diff --git a/.gitignore b/.gitignore index bdf2aebc93e..097c8806a40 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,13 @@ lib/ ubuntu-xenial/ ubuntu-xenial-hwe/ +# Docs +doc/doxygen/html/ +*.html.lnk + # CMake -build/ +build*/ +connectivity_check # XCode .DS_Store @@ -83,3 +88,4 @@ librealsense-log.txt *.ini *.cxx +.vscode/* diff --git a/.travis.yml b/.travis.yml index 4bf1245d4d3..4a24bd431cb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,142 +1,153 @@ -os: - - linux - - osx +env: + global: + - LRS_BUILD_CONFIG=Debug + - LRS_RUN_CONFIG=Release +matrix: + include: + - name: "Windows Testing - cpp, Win USB (Win7)" + os: windows + language: cpp + env: VS15=false RS_CPP_TEST=true + script: + - cmake .. -G "Visual Studio 15 2017 Win64" -DBUILD_UNIT_TESTS=true -DBUILD_EXAMPLES=false -DBUILD_GRAPHICAL_EXAMPLES=false -DBUILD_WITH_TM2=false -DFORCE_RSUSB_BACKEND=true + - cmake --build . --config $LRS_RUN_CONFIG -- -m + - cd $LRS_RUN_CONFIG + - ls + - ./live-test.exe -d yes -i [software-device] + - for i in ../records/single_cam/*; do ./live-test -d yes -i ~[multicam] from "$i"; done + - for i in ../records/multi_cam/*; do ./live-test -d yes -i [multicam] from "$i"; done + - unset LRS_LOG_LEVEL + - C:/Python38/python.exe ../../unit-tests/run-unit-tests.py --verbose . + + - name: "Windows - cpp" + os: windows + language: cpp + env: VS15=true + script: + - cmake .. -G "Visual Studio 14 2015 Win64" -DBUILD_EXAMPLES=true -DBUILD_WITH_TM2=true + - cmake --build . --config $LRS_BUILD_CONFIG -- -m + - ls $LRS_BUILD_CONFIG -language: cpp + - name: "Windows - C#" + os: windows + language: cpp + env: VS15=true + script: + - cmake .. -G "Visual Studio 14 2015 Win64" -DBUILD_EXAMPLES=false -DBUILD_CSHARP_BINDINGS=true -DDOTNET_VERSION_LIBRARY="4.5" -DDOTNET_VERSION_EXAMPLES="4.5" + - cmake --build . --config $LRS_BUILD_CONFIG -- -m + - ls $LRS_BUILD_CONFIG -sudo: required -dist: trusty -osx_image: xcode7 + - name: "Linux Testing - cpp" + os: linux + language: cpp + sudo: required + dist: xenial + env: RS_CPP_TEST=true + script: + - cmake .. -DBUILD_UNIT_TESTS=true -DBUILD_EXAMPLES=false -DBUILD_WITH_TM2=false + - cmake --build . --config $LRS_RUN_CONFIG -- -j4 + - ./unit-tests/live-test -d yes -i [software-device] + - for i in ./records/single_cam/*; do ./unit-tests/live-test -d yes -i ~[multicam] from "$i"; done + - for i in ./records/multi_cam/*; do ./unit-tests/live-test -d yes -i [multicam] from "$i"; done + + - name: "Linux - cpp - static" + os: linux + language: cpp + sudo: required + dist: xenial + script: + - cd ../scripts && ./pr_check.sh && cd ../build + - cmake .. -DBUILD_UNIT_TESTS=true -DBUILD_EXAMPLES=true -DBUILD_WITH_TM2=true -DBUILD_SHARED_LIBS=false + - cmake --build . --config $LRS_BUILD_CONFIG -- -j4 + - python3 ../unit-tests/run-unit-tests.py --verbose . + + - name: "Linux - python & nodejs" + os: linux + language: cpp + sudo: required + dist: xenial + python: "2.7" + node_js: "6" + env: LRS_BUILD_NODEJS=true + script: + - cmake .. -DBUILD_PYTHON_BINDINGS=true -DBUILD_NODEJS_BINDINGS=true -DPYBIND11_PYTHON_VERSION=2.7 + - cmake --build . --config $LRS_BUILD_CONFIG -- -j4 + - cd ../wrappers/nodejs/ + - npm install + - cd test + - wget http://realsense-hw-public.s3.amazonaws.com/rs-tests/nodejs_records.rec + - mocha test-functional.js --playback nodejs_records.rec + + - name: "Mac - cpp" + os: osx + language: cpp + sudo: required + osx_image: xcode7 + script: + - cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false + - cmake --build . --config $LRS_BUILD_CONFIG -- -j4 + - ls + + - name: "Android - cpp" + os: linux + language: cpp + sudo: required + dist: xenial + env: LRS_BUILD_ANDROID=true + script: + - cmake .. -DCMAKE_TOOLCHAIN_FILE=../android-ndk-r16b/build/cmake/android.toolchain.cmake + - cmake --build . --config $LRS_BUILD_CONFIG -- -j4 + - ls before_install: - # Install nodejs via nvm - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash; - source ~/.bashrc; - nvm install 6 && nvm use 6; + - cd scripts && ./api_check.sh && cd .. + - if [[ "$LRS_BUILD_NODEJS" == "true" ]]; then + nvm use 6; npm install -g node-gyp; npm install -g mocha; - fi - # Remove duplicated python 2.x, only leave python2.7; Otherwise node-gyp will complain and stop - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - for i in `pyenv versions|sed 's/ //g'|grep "^2"`; do if [ $i = "2.7" ]; then continue; else pyenv uninstall -f $i; fi; done; - fi - # Run linter - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git; export OLDPATH=$PATH && export PATH=$PATH:$(pwd)/depot_tools; cd wrappers/nodejs/tools && npm install && cd ..; node ./tools/linter.js; export PATH=$OLDPATH && unset OLDPATH && cd ../../; fi - - # Get logical CPU number - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - export CPU_NUM=`grep -c ^processor /proc/cpuinfo`; - elif [ "$TRAVIS_OS_NAME" == "osx" ]; then - export CPU_NUM=`sysctl -n hw.logicalcpu_max`; + - if [[ "$LRS_BUILD_ANDROID" == "true" ]]; then + wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip; + unzip -q android-ndk-r16b-linux-x86_64.zip -d ./; fi - - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - brew uninstall xctool; - brew install xctool --HEAD; - brew install homebrew/core/glfw3; - brew list libusb || brew install libusb; + - mkdir build && cd build + - if [[ "$RS_CPP_TEST" == "true" ]]; then + export LRS_LOG_LEVEL="DEBUG"; + url_records_path="http://realsense-hw-public.s3.amazonaws.com/rs-tests/lrs_2.8.3/"; + records_name="records_test.txt"; + url_records_list=$url_records_path$records_name; + wget $url_records_path$records_name; + tests_list=`cat $records_name`; + for record in $tests_list; do echo $url_records_path$record; wget $url_records_path$record -P "records/"$(echo $record | cut -d '/' -f 1); done; fi - # Install linux required packages +install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test; sudo apt-get update; sudo apt-get install -qq build-essential xorg-dev libgl1-mesa-dev libglu1-mesa-dev libglew-dev libglm-dev; sudo apt-get install -qq libusb-1.0-0-dev; sudo apt-get install -qq libgtk-3-dev; - sudo apt-get install -qq python python-dev; sudo apt-get install gcc-5 g++-5; sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5; + sudo apt-get install libglfw3-dev libglfw3; fi -install: - # Install nodejs via nvm - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - wget https://github.com/glfw/glfw/releases/download/3.1.1/glfw-3.1.1.zip; - unzip glfw-3.1.1.zip && cd glfw-3.1.1; - cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON; - make -j $CPU_NUM; - sudo make install && cd ..; + - if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then + choco install -y python3 --version 3.8.1; + if [[ "$VS15" == "true" ]]; then + choco install -y vcbuildtools --version 2015.4 --force; + fi; fi -#Unit-Test Suite -# Each successful build will invoke a set of predefined unit-test that will run from recorded live test sessions -# The records are available for download from the location specified in the tests, and are arranged in the following convention -# | -# |---| .. -# | | Records.txt -# | | -# | | single_cam -# | | .. -# | | Recorded_Test_1 -# | | Recorded_Test_2 -# | | ...... -# | -# | | multi_cam -# | | .. -# | | Recorded_Test_3 -# | | Recorded_Test_4 -# | | ...... -# | -# The content of Records.txt is a list of all record paths one per line, e.g: -# single_cam/Recorded_Test_1 -# single_cam/Recorded_Test_2 -# multi_cam/Recorded_Test_3 -# multi_cam/Recorded_Test_4 -# -script: - # Exit immediately if a command exits with a non-zero status - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - set -e; - pyenv install 3.6.1; - pyenv local `pyenv versions|sed 's/ //g'|grep "^3"|tail -1`; - - cd scripts; - ./api_check.sh; - cd ..; - - mkdir build && cd build; - cmake .. -DBUILD_EXAMPLES:BOOL=true -DBUILD_PYTHON_BINDINGS:BOOL=true -DBUILD_NODEJS_BINDINGS:BOOL=true -DBUILD_UNIT_TESTS:BOOL=true; - make -j $CPU_NUM; - sudo "PATH=$PATH" make install; - - export LRS_LOG_LEVEL="DEBUG"; - - url_records_path="http://realsense-hw-public.s3.amazonaws.com/rs-tests/lrs_2.8.3/"; - records_name="records.txt"; - url_records_list=$url_records_path$records_name; - wget $url_records_path$records_name; - tests_list=`cat $records_name`; - echo "Downloading unit-test records..."; - for record in $tests_list; do echo $url_records_path$record; wget $url_records_path$record -P "records/"$(echo $record | cut -d '/' -f 1); done; - - ./unit-tests/live-test -d yes -i [software-device]; - for i in ./records/single_cam/*; do ./unit-tests/live-test -d yes -i ~[multicam] from "$i"; done; - for i in ./records/multi_cam/*; do ./unit-tests/live-test -d yes -i [multicam] from "$i"; done; - - echo "Build RealSense SDK for Android..."; - cd ../; - wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip; - unzip android-ndk-r16b-linux-x86_64.zip -d ./; - mkdir build_android && cd build_android; - cmake .. -DCMAKE_TOOLCHAIN_FILE=../android-ndk-r16b/build/cmake/android.toolchain.cmake; - make -j $CPU_NUM; - fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then - mkdir build && cd build; - cmake .. -DBUILD_EXAMPLES:BOOL=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false; - make -j $CPU_NUM; - fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - cd ../wrappers/nodejs/test; - wget http://realsense-hw-public.s3.amazonaws.com/rs-tests/nodejs_record.rec; - mocha test-functional.js --playback nodejs_record.rec; - cd ../../..; - fi + brew uninstall xctool; + brew install xctool --HEAD; + brew install homebrew/core/glfw3; + brew list libusb || brew install libusb; + fi \ No newline at end of file diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 62cb34c0ddc..00000000000 --- a/AUTHORS +++ /dev/null @@ -1,5 +0,0 @@ -Sterling Orsten, sterling.g.orsten@intel.com -Dimitri Diakopoulos, dimitri.diakopoulos@intel.com -Sergey Dorodnicov, sergey.dorodnicov@intel.com -Google Inc., ravenblack@google.com -Eliezer Tamir, eliezer.tamir@intel.com diff --git a/CMake/FindLibUSB.cmake b/CMake/FindLibUSB.cmake deleted file mode 100644 index 8b259e3e9bc..00000000000 --- a/CMake/FindLibUSB.cmake +++ /dev/null @@ -1,106 +0,0 @@ -# - Find libusb for portable USB support -# This module will find libusb as published by -# http://libusb.sf.net and -# http://libusb-win32.sf.net -# -# It will use PkgConfig if present and supported, else search -# it on its own. If the LibUSB_ROOT_DIR environment variable -# is defined, it will be used as base path. -# The following standard variables get defined: -# LibUSB_FOUND: true if LibUSB was found -# LibUSB_HEADER_FILE: the location of the C header file -# LibUSB_INCLUDE_DIRS: the directory that contains the include file -# LibUSB_LIBRARIES: the library - -include ( CheckLibraryExists ) -include ( CheckIncludeFile ) - -find_package ( PkgConfig ) -if ( PKG_CONFIG_FOUND ) - pkg_check_modules ( PKGCONFIG_LIBUSB libusb-1.0 ) - if ( NOT PKGCONFIG_LIBUSB_FOUND ) - pkg_check_modules ( PKGCONFIG_LIBUSB libusb ) - endif ( NOT PKGCONFIG_LIBUSB_FOUND ) -endif ( PKG_CONFIG_FOUND ) - -if ( PKGCONFIG_LIBUSB_FOUND ) - set ( LibUSB_INCLUDE_DIRS ${PKGCONFIG_LIBUSB_INCLUDE_DIRS} ) - foreach ( i ${PKGCONFIG_LIBUSB_LIBRARIES} ) - string ( REGEX MATCH "[^-]*" ibase "${i}" ) - find_library ( ${ibase}_LIBRARY - NAMES ${i} - PATHS ${PKGCONFIG_LIBUSB_LIBRARY_DIRS} - ) - if ( ${ibase}_LIBRARY ) - list ( APPEND LibUSB_LIBRARIES ${${ibase}_LIBRARY} ) - endif ( ${ibase}_LIBRARY ) - mark_as_advanced ( ${ibase}_LIBRARY ) - endforeach ( i ) - -else ( PKGCONFIG_LIBUSB_FOUND ) - find_file ( LibUSB_HEADER_FILE - NAMES - libusb.h usb.h - PATHS - $ENV{ProgramFiles}/LibUSB-Win32 - $ENV{LibUSB_ROOT_DIR} - PATH_SUFFIXES - include - ) - mark_as_advanced ( LibUSB_HEADER_FILE ) - get_filename_component ( LibUSB_INCLUDE_DIRS "${LibUSB_HEADER_FILE}" PATH ) - - if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" ) - # LibUSB-Win32 binary distribution contains several libs. - # Use the lib that got compiled with the same compiler. - if ( MSVC ) - if ( WIN32 ) - set ( LibUSB_LIBRARY_PATH_SUFFIX lib/msvc ) - else ( WIN32 ) - set ( LibUSB_LIBRARY_PATH_SUFFIX lib/msvc_x64 ) - endif ( WIN32 ) - elseif ( BORLAND ) - set ( LibUSB_LIBRARY_PATH_SUFFIX lib/bcc ) - elseif ( CMAKE_COMPILER_IS_GNUCC ) - set ( LibUSB_LIBRARY_PATH_SUFFIX lib/gcc ) - endif ( MSVC ) - endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" ) - - find_library ( usb_LIBRARY - NAMES - usb-1.0 libusb usb - PATHS - $ENV{ProgramFiles}/LibUSB-Win32 - $ENV{LibUSB_ROOT_DIR} - PATH_SUFFIXES - ${LibUSB_LIBRARY_PATH_SUFFIX} - ) - mark_as_advanced ( usb_LIBRARY ) - if ( usb_LIBRARY ) - set ( LibUSB_LIBRARIES ${usb_LIBRARY} ) - endif ( usb_LIBRARY ) - -endif ( PKGCONFIG_LIBUSB_FOUND ) - -if ( LibUSB_INCLUDE_DIRS AND LibUSB_LIBRARIES ) - set ( LibUSB_FOUND true ) -endif ( LibUSB_INCLUDE_DIRS AND LibUSB_LIBRARIES ) - -if ( LibUSB_FOUND ) - set ( CMAKE_REQUIRED_INCLUDES "${LibUSB_INCLUDE_DIRS}" ) - check_include_file ( "${LibUSB_HEADER_FILE}" LibUSB_FOUND ) -endif ( LibUSB_FOUND ) - -if ( LibUSB_FOUND ) - check_library_exists ( "${usb_LIBRARY}" usb_open "" LibUSB_FOUND ) - check_library_exists ( "${usb_LIBRARY}" libusb_get_device_list "" LibUSB_VERSION_1.0 ) -endif ( LibUSB_FOUND ) - -if ( NOT LibUSB_FOUND ) - if ( NOT LibUSB_FIND_QUIETLY ) - message ( STATUS "LibUSB not found, try setting LibUSB_ROOT_DIR environment variable." ) - endif ( NOT LibUSB_FIND_QUIETLY ) - if ( LibUSB_FIND_REQUIRED ) - message ( FATAL_ERROR "" ) - endif ( LibUSB_FIND_REQUIRED ) -endif ( NOT LibUSB_FOUND ) diff --git a/CMake/Findlibtm.cmake b/CMake/Findlibtm.cmake deleted file mode 100644 index 604c3aee090..00000000000 --- a/CMake/Findlibtm.cmake +++ /dev/null @@ -1,86 +0,0 @@ -# - Find libtm -# Find the LIBTM headers and libraries. -# Set root directory of libtm as ENVIRONMENT VARIABLE: LIBTM_DIR -# Then use with find_package(libtm) in your project - - -#add windows/linux SUFFIX for libraries -if(WIN32) - set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") -else() - set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") -endif() - -#try to search for the LIBTM_DIR enviroment VARIABLE -set(LIBTM_DIR - "$ENV{LIBTM_DIR}" - CACHE - PATH - "Root directory to search for LIBTM") - -# Look for the header file. -find_path(LIBTM_INCLUDE_DIR - NAMES - TrackingManager.h - HINTS - "${LIBTM_DIR}/../libtm/include" - ) - -# Look for the library. -find_library(LIBTM_LIBRARY - NAMES - tm - HINTS - "${LIBTM_DIR}/bin/Release" - ) -# Look for the library debug flavor. -find_library(LIBTM_LIBRARY_DEBUG - NAMES - tm - HINTS - "${LIBTM_DIR}/bin/Debug" - ) - - # Look for the library. -find_library(INFRA_LIBRARY - NAMES - infra - HINTS - "${LIBTM_DIR}/bin/Release" - ) -# Look for the library debug flavor. -find_library(INFRA_LIBRARY_DEBUG - NAMES - infra - HINTS - "${LIBTM_DIR}/bin/Debug" - ) - - -# handle the LIBTM and REQUIRED arguments and set LIBTM_FOUND to TRUE if -# all listed variables are TRUE -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LIBTM - DEFAULT_MSG - LIBTM_LIBRARY - LIBTM_LIBRARY_DEBUG - LIBTM_INCLUDE_DIR) - -if (LIBTM_FOUND AND NOT TARGET libtm) - message(STATUS "LIBTM_INCLUDE_DIR: ${LIBTM_INCLUDE_DIR} LIBTM_LIBRARY: ${LIBTM_LIBRARY} INFRA_LIBRARY : ${INFRA_LIBRARY}") - add_library(libtm INTERFACE) - set_property(TARGET libtm PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${LIBTM_INCLUDE_DIR}) - target_include_directories(libtm INTERFACE ${LIBTM_INCLUDE_DIR}) - target_link_libraries(libtm INTERFACE optimized ${LIBTM_LIBRARY} ${INFRA_LIBRARY} debug ${LIBTM_LIBRARY_DEBUG} ${INFRA_LIBRARY_DEBUG}) - if (WIN32) - #set target architeture variable - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(TARGET_ARCH x64) - else() - set(TARGET_ARCH win32) - endif() - # Force-link to libusb on Windows - target_link_libraries(libtm INTERFACE ${LIBTM_DIR}/../3rdparty/win/libusb/bin/${TARGET_ARCH}/libusb-1.0.lib) - endif() - mark_as_advanced(LIBTM_DIR LIBTM_LIBRARY LIBTM_INCLUDE_DIR) -endif() diff --git a/CMake/android_config.cmake b/CMake/android_config.cmake new file mode 100644 index 00000000000..d9e54251318 --- /dev/null +++ b/CMake/android_config.cmake @@ -0,0 +1,33 @@ +message(STATUS "Setting Android configurations") +message(STATUS "Prepare RealSense SDK for Android OS (${ANDROID_NDK_ABI_NAME})") + +macro(os_set_flags) + unset(WIN32) + unset(UNIX) + unset(APPLE) + set(BUILD_WITH_TM2 OFF) + set(BUILD_UNIT_TESTS OFF) + set(BUILD_EXAMPLES OFF) + set(BUILD_WITH_OPENMP OFF) + set(BUILD_GRAPHICAL_EXAMPLES OFF) + set(ANDROID_STL "c++_static") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pedantic -g -D_DEFAULT_SOURCE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic -g -Wno-missing-field-initializers") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie") + set(HWM_OVER_XU ON) + + if(FORCE_RSUSB_BACKEND) + set(BACKEND RS2_USE_ANDROID_BACKEND) + set(IMPORT_DEPTH_CAM_FW OFF) + else() + set(BACKEND RS2_USE_V4L2_BACKEND) + endif() +endmacro() + +macro(os_target_config) + if(BUILD_SHARED_LIBS) + find_library(log-lib log) + target_link_libraries(${LRS_TARGET} PRIVATE log) + endif() +endmacro() diff --git a/CMake/connectivity_check.cmake b/CMake/connectivity_check.cmake new file mode 100644 index 00000000000..923049419e5 --- /dev/null +++ b/CMake/connectivity_check.cmake @@ -0,0 +1,11 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved.message(STATUS "Checking internet connection...") +file(DOWNLOAD "http://realsense-hw-public.s3-eu-west-1.amazonaws.com/Releases/connectivity_check" "${CMAKE_CURRENT_SOURCE_DIR}/connectivity_check" SHOW_PROGRESS TIMEOUT 5 STATUS status) +list (FIND status "\"No error\"" _index) +if (${_index} EQUAL -1) + message(STATUS "Failed to identify Internet connection") + set(INTERNET_CONNECTION OFF) +else() + message(STATUS "Internet connection identified") + set(INTERNET_CONNECTION ON) +endif() \ No newline at end of file diff --git a/CMake/cuda_config.cmake b/CMake/cuda_config.cmake new file mode 100644 index 00000000000..d03a0f53dfb --- /dev/null +++ b/CMake/cuda_config.cmake @@ -0,0 +1,15 @@ +info("Building with CUDA requires CMake v3.8+") +cmake_minimum_required(VERSION 3.8.0) +project(librealsense2 LANGUAGES CXX C CUDA) + +find_package(CUDA REQUIRED) + +include_directories(${CUDA_INCLUDE_DIRS}) +SET(ALL_CUDA_LIBS ${CUDA_LIBRARIES} ${CUDA_cusparse_LIBRARY} ${CUDA_cublas_LIBRARY}) +SET(LIBS ${LIBS} ${ALL_CUDA_LIBS}) + +message(STATUS "CUDA_LIBRARIES: ${CUDA_INCLUDE_DIRS} ${ALL_CUDA_LIBS}") + +set(CUDA_PROPAGATE_HOST_FLAGS OFF) +set(CUDA_SEPARABLE_COMPILATION ON) +set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}; -O3 -gencode arch=compute_53,code=sm_53 -gencode arch=compute_62,code=sm_62;") diff --git a/CMake/embedd_udev_rules.cmake b/CMake/embedd_udev_rules.cmake new file mode 100644 index 00000000000..93247744a07 --- /dev/null +++ b/CMake/embedd_udev_rules.cmake @@ -0,0 +1,28 @@ +file(READ "config/99-realsense-libusb.rules" contents HEX) + +set(UDEV_HEADER "${CMAKE_CURRENT_BINARY_DIR}/udev-rules.h") + +file(WRITE "${UDEV_HEADER}" "#ifndef __UDEV_RULES_H__\n") +file(APPEND "${UDEV_HEADER}" "#define __UDEV_RULES_H__\n") +file(APPEND "${UDEV_HEADER}" "#ifdef __cplusplus\n") +file(APPEND "${UDEV_HEADER}" "extern \"C\" {\n") +file(APPEND "${UDEV_HEADER}" "#endif\n") + +file(APPEND "${UDEV_HEADER}" "const char " + "realsense_udev_rules[] = {") + +string(LENGTH "${contents}" contents_length) +math(EXPR contents_length "${contents_length} - 1") + +foreach(iter RANGE 0 ${contents_length} 2) + string(SUBSTRING ${contents} ${iter} 2 line) + file(APPEND "${UDEV_HEADER}" "0x${line},") +endforeach() + +file(APPEND "${UDEV_HEADER}" "};\n") + +file(APPEND "${UDEV_HEADER}" "#ifdef __cplusplus\n") +file(APPEND "${UDEV_HEADER}" "}\n") +file(APPEND "${UDEV_HEADER}" "#endif\n") + +file(APPEND "${UDEV_HEADER}" "#endif//\n") diff --git a/CMake/external_libusb.cmake b/CMake/external_libusb.cmake new file mode 100644 index 00000000000..dfbbd460597 --- /dev/null +++ b/CMake/external_libusb.cmake @@ -0,0 +1,34 @@ +include(ExternalProject) + +ExternalProject_Add( + libusb + + GIT_REPOSITORY "https://github.com/libusb/libusb.git" + GIT_TAG "2a7372db54094a406a755f0b8548b614ba8c78ec" # "v1.0.22" + Mac get_device_list hang fix + + UPDATE_COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libusb/CMakeLists.txt + ${CMAKE_CURRENT_BINARY_DIR}/third-party/libusb/CMakeLists.txt + PATCH_COMMAND "" + + SOURCE_DIR "third-party/libusb/" + CMAKE_ARGS -DCMAKE_CXX_STANDARD_LIBRARIES=${CMAKE_CXX_STANDARD_LIBRARIES} + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DANDROID_ABI=${ANDROID_ABI} + -DANDROID_STL=${ANDROID_STL} + -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/libusb_install + TEST_COMMAND "" + BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/libusb_install/lib/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX} +) + +add_library(usb INTERFACE) +target_include_directories(usb INTERFACE $) +target_link_libraries(usb INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/libusb_install/lib/${CMAKE_STATIC_LIBRARY_PREFIX}usb${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(USE_EXTERNAL_USB ON) # INTERFACE libraries can't have real deps, so targets that link with usb need to also depend on libusb + +if (APPLE) + find_library(corefoundation_lib CoreFoundation) + find_library(iokit_lib IOKit) + target_link_libraries(usb INTERFACE objc ${corefoundation_lib} ${iokit_lib}) +endif() diff --git a/CMake/global_config.cmake b/CMake/global_config.cmake new file mode 100644 index 00000000000..7a7155b1a72 --- /dev/null +++ b/CMake/global_config.cmake @@ -0,0 +1,103 @@ +# Save the command line compile commands in the build output +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) +set(CMAKE_CXX_STANDARD 11) +# View the makefile commands during build +#set(CMAKE_VERBOSE_MAKEFILE on) + +include(GNUInstallDirs) +# include librealsense helper macros +include(CMake/lrs_macros.cmake) +include(CMake/version_config.cmake) + +if(ENABLE_CCACHE) + find_program(CCACHE_FOUND ccache) + if(CCACHE_FOUND) + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) + endif(CCACHE_FOUND) +endif() + +macro(global_set_flags) + set(LRS_TARGET realsense2) + set(LRS_LIB_NAME ${LRS_TARGET}) + + add_definitions(-DELPP_THREAD_SAFE) + add_definitions(-DELPP_NO_DEFAULT_LOG_FILE) + + if (BUILD_GLSL_EXTENSIONS) + set(LRS_GL_TARGET realsense2-gl) + set(LRS_GL_LIB_NAME ${LRS_GL_TARGET}) + endif() + + if (ENABLE_ZERO_COPY) + add_definitions(-DZERO_COPY) + endif() + + if (BUILD_EASYLOGGINGPP) + add_definitions(-DBUILD_EASYLOGGINGPP) + endif() + + if(TRACE_API) + add_definitions(-DTRACE_API) + endif() + + if(HWM_OVER_XU) + add_definitions(-DHWM_OVER_XU) + endif() + + if (ENFORCE_METADATA) + add_definitions(-DENFORCE_METADATA) + endif() + + if (BUILD_WITH_CUDA) + add_definitions(-DRS2_USE_CUDA) + endif() + + if (BUILD_SHARED_LIBS) + add_definitions(-DBUILD_SHARED_LIBS) + endif() + + if (BUILD_INTERNAL_UNIT_TESTS) + add_definitions(-DBUILD_INTERNAL_UNIT_TESTS) + endif() + + if (BUILD_WITH_CUDA) + include(CMake/cuda_config.cmake) + endif() + + if(BUILD_PYTHON_BINDINGS) + include(libusb_config) + endif() + + add_definitions(-D${BACKEND} -DUNICODE) +endmacro() + +macro(global_target_config) + target_link_libraries(${LRS_TARGET} PRIVATE realsense-file ${CMAKE_THREAD_LIBS_INIT}) + + include_directories(${LRS_TARGET} src) + + set_target_properties (${LRS_TARGET} PROPERTIES FOLDER Library) + + target_include_directories(${LRS_TARGET} + PRIVATE + ${ROSBAG_HEADER_DIRS} + ${BOOST_INCLUDE_PATH} + ${LZ4_INCLUDE_PATH} + ${LIBUSB_LOCAL_INCLUDE_PATH} + PUBLIC + $ + $ + PRIVATE ${USB_INCLUDE_DIRS} + ) +endmacro() + +macro(add_tm2) + message(STATUS "Building with TM2") + include(libusb_config) + target_link_libraries(${LRS_TARGET} PRIVATE usb) + if(USE_EXTERNAL_USB) + add_dependencies(${LRS_TARGET} libusb) + endif() + target_compile_definitions(${LRS_TARGET} PRIVATE WITH_TRACKING=1) +endmacro() diff --git a/CMake/include_os.cmake b/CMake/include_os.cmake new file mode 100644 index 00000000000..5a1f10685fa --- /dev/null +++ b/CMake/include_os.cmake @@ -0,0 +1,7 @@ +if(ANDROID_NDK_TOOLCHAIN_INCLUDED) + include(CMake/android_config.cmake) +elseif (WIN32) + include(CMake/windows_config.cmake) +else() + include(CMake/unix_config.cmake) +endif() diff --git a/CMake/install_config.cmake b/CMake/install_config.cmake new file mode 100644 index 00000000000..9f56666117f --- /dev/null +++ b/CMake/install_config.cmake @@ -0,0 +1,51 @@ +# Set CMAKE_INSTALL_* if not defined +set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${LRS_TARGET}") + +add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +include(CMakePackageConfigHelpers) + +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/realsense2ConfigVersion.cmake" + VERSION ${REALSENSE_VERSION_STRING} COMPATIBILITY AnyNewerVersion) + +configure_package_config_file(CMake/realsense2Config.cmake.in realsense2Config.cmake + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} + INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/bin + PATH_VARS CMAKE_INSTALL_INCLUDEDIR +) + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) +configure_file(config/librealsense.pc.in config/realsense2.pc @ONLY) + +install(TARGETS ${LRS_TARGET} + EXPORT realsense2Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include/librealsense2" +) + +install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/librealsense2 + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(EXPORT realsense2Targets + FILE realsense2Targets.cmake + NAMESPACE ${LRS_TARGET}:: + DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/realsense2Config.cmake" + DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/realsense2ConfigVersion.cmake" + DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +# Set library pkgconfig file for facilitating 3rd party integration +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/config/realsense2.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" +) + +install(CODE "execute_process(COMMAND ldconfig)") diff --git a/CMake/libusb_config.cmake b/CMake/libusb_config.cmake new file mode 100644 index 00000000000..ca221ca66da --- /dev/null +++ b/CMake/libusb_config.cmake @@ -0,0 +1,14 @@ +if (NOT TARGET usb) + find_library(LIBUSB_LIB usb-1.0) + find_path(LIBUSB_INC libusb.h HINTS PATH_SUFFIXES libusb-1.0) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(usb "libusb not found; using internal version" LIBUSB_LIB LIBUSB_INC) + if (USB_FOUND AND NOT USE_EXTERNAL_USB) + add_library(usb INTERFACE) + target_include_directories(usb INTERFACE ${LIBUSB_INC}) + target_link_libraries(usb INTERFACE ${LIBUSB_LIB}) + else() + include(CMake/external_libusb.cmake) + endif() + install(TARGETS usb EXPORT realsense2Targets) +endif() diff --git a/CMake/lrs_macros.cmake b/CMake/lrs_macros.cmake new file mode 100644 index 00000000000..d4f7136360b --- /dev/null +++ b/CMake/lrs_macros.cmake @@ -0,0 +1,33 @@ +macro(info msg) + message(STATUS "Info: ${msg}") +endmacro() + +macro(infoValue variableName) + info("${variableName}=\${${variableName}}") +endmacro() + +macro(config_cxx_flags) + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) + CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) + if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CUDA_STANDARD 11) + elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") + endif() +endmacro() + +macro(config_crt) + if(BUILD_WITH_STATIC_CRT) + foreach(flag_var + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif(${flag_var} MATCHES "/MD") + endforeach(flag_var) + endif(BUILD_WITH_STATIC_CRT) +endmacro() diff --git a/CMake/lrs_options.cmake b/CMake/lrs_options.cmake new file mode 100644 index 00000000000..d3100a4a8ca --- /dev/null +++ b/CMake/lrs_options.cmake @@ -0,0 +1,32 @@ +option(ENABLE_CCACHE "Build with ccache." ON) +option(BUILD_WITH_CUDA "Enable CUDA" OFF) +option(BUILD_GRAPHICAL_EXAMPLES "Build graphical examples and tools. Implies BUILD_GLSL_EXTENSIONS" ON) +option(BUILD_GLSL_EXTENSIONS "Build GLSL extensions API" ON) +option(BUILD_WITH_OPENMP "Use OpenMP" OFF) +option(ENABLE_ZERO_COPY "Enable zero copy functionality" OFF) +option(BUILD_WITH_TM2 "Build with support for Intel TM2 tracking device" ON) +option(BUILD_EASYLOGGINGPP "Build EasyLogging++ as a part of the build" ON) +option(BUILD_WITH_STATIC_CRT "Build with static link CRT" ON) +option(HWM_OVER_XU "Send HWM commands over UVC XU control" ON) +option(BUILD_SHARED_LIBS "Build shared library" ON) +option(BUILD_UNIT_TESTS "Build realsense unit tests. Note that when enabled, additional tests data set will be downloaded from a web server and stored in a temp directory" OFF) +option(BUILD_INTERNAL_UNIT_TESTS "Test package for components under librealsense namespace, requires BUILD_SHARED_LIBS=OFF and BUILD_UNIT_TESTS=ON" OFF) +option(BUILD_EXAMPLES "Build realsense examples and tools." ON) +option(ENFORCE_METADATA "Require WinSDK with Metadata support during compilation. Windows OS Only" OFF) +option(BUILD_PYTHON_BINDINGS "Build Python bindings" OFF) +option(BUILD_PYTHON_DOCS "Build Documentation for Python bindings" OFF) +option(BUILD_CSHARP_BINDINGS "Build C# bindings" OFF) +option(BUILD_MATLAB_BINDINGS "Build Matlab bindings" OFF) +option(BUILD_UNITY_BINDINGS "Copy the unity project to the build folder with the required dependencies" OFF) +option(BUILD_CV_EXAMPLES "Build OpenCV examples" OFF) +option(BUILD_DLIB_EXAMPLES "Build DLIB examples - requires DLIB_DIR" OFF) +option(BUILD_OPENVINO_EXAMPLES "Build Intel OpenVINO Toolkit examples - requires INTEL_OPENVINO_DIR" OFF) +option(BUILD_PCL_EXAMPLES "Build PCL examples" OFF) +option(BUILD_NODEJS_BINDINGS "Build Node.js bindings" OFF) +option(BUILD_OPENNI2_BINDINGS "Build OpenNI bindings" OFF) +option(IMPORT_DEPTH_CAM_FW "Download the latest firmware for the depth cameras" ON) +option(BUILD_CV_KINFU_EXAMPLE "Build OpenCV KinectFusion example" OFF) +option(FORCE_RSUSB_BACKEND "Use RS USB backend, mandatory for Win7/MacOS/Android, optional for Linux" OFF) +option(FORCE_LIBUVC "Explicitly turn-on libuvc backend - deprecated, use FORCE_RSUSB_BACKEND instead" OFF) +option(FORCE_WINUSB_UVC "Explicitly turn-on winusb_uvc (for win7) backend - deprecated, use FORCE_RSUSB_BACKEND instead" OFF) +option(ANDROID_USB_HOST_UVC "Build UVC backend for Android - deprecated, use FORCE_RSUSB_BACKEND instead" OFF) \ No newline at end of file diff --git a/CMake/opengl_config.cmake b/CMake/opengl_config.cmake new file mode 100644 index 00000000000..3c75caf036a --- /dev/null +++ b/CMake/opengl_config.cmake @@ -0,0 +1,2 @@ +find_package(OpenGL REQUIRED) +set(DEPENDENCIES realsense2 glfw ${OPENGL_LIBRARIES}) diff --git a/CMake/realsense2-glConfig.cmake.in b/CMake/realsense2-glConfig.cmake.in new file mode 100644 index 00000000000..2908731e605 --- /dev/null +++ b/CMake/realsense2-glConfig.cmake.in @@ -0,0 +1,12 @@ +@PACKAGE_INIT@ + +set(realsense2-gl_VERSION_MAJOR "@REALSENSE_VERSION_MAJOR@") +set(realsense2-gl_VERSION_MINOR "@REALSENSE_VERSION_MINOR@") +set(realsense2-gl_VERSION_PATCH "@REALSENSE_VERSION_PATCH@") + +set(realsense2-gl_VERSION ${realsense2-gl_VERSION_MAJOR}.${realsense2-gl_VERSION_MINOR}.${realsense2-gl_VERSION_PATCH}) + +set_and_check(realsense2-gl_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + +include("${CMAKE_CURRENT_LIST_DIR}/realsense2-glTargets.cmake") +set(realsense2-gl_LIBRARY realsense2-gl::realsense2-gl) diff --git a/CMake/realsense2Config.cmake.in b/CMake/realsense2Config.cmake.in index 158fa538b54..b7319a6ad0d 100644 --- a/CMake/realsense2Config.cmake.in +++ b/CMake/realsense2Config.cmake.in @@ -1,10 +1,12 @@ @PACKAGE_INIT@ -set(realsense_VERSION_MAJOR "@REALSENSE_VERSION_MAJOR@") -set(realsense_VERSION_MINOR "@REALSENSE_VERSION_MINOR@") -set(realsense_VERSION_PATCH "@REALSENSE_VERSION_PATCH@") +set(realsense2_VERSION_MAJOR "@REALSENSE_VERSION_MAJOR@") +set(realsense2_VERSION_MINOR "@REALSENSE_VERSION_MINOR@") +set(realsense2_VERSION_PATCH "@REALSENSE_VERSION_PATCH@") -set_and_check(realsense_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") +set(realsense2_VERSION ${realsense2_VERSION_MAJOR}.${realsense2_VERSION_MINOR}.${realsense2_VERSION_PATCH}) + +set_and_check(realsense2_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") include("${CMAKE_CURRENT_LIST_DIR}/realsense2Targets.cmake") set(realsense2_LIBRARY realsense2::realsense2) diff --git a/CMake/unix_config.cmake b/CMake/unix_config.cmake new file mode 100644 index 00000000000..2ecd1ed02a8 --- /dev/null +++ b/CMake/unix_config.cmake @@ -0,0 +1,48 @@ +message(STATUS "Setting Unix configurations") + +macro(os_set_flags) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic -g -D_DEFAULT_SOURCE") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -g -Wno-missing-field-initializers") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar -Wsequence-point -Wformat -Wformat-security") + + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE) + if(${MACHINE} MATCHES "arm-linux-gnueabihf") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize -latomic") + elseif(${MACHINE} MATCHES "aarch64-linux-gnu") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstrict-align -ftree-vectorize") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstrict-align -ftree-vectorize") + elseif(${MACHINE} MATCHES "powerpc64(le)?-linux-gnu") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftree-vectorize") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mssse3") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3") + set(LRS_TRY_USE_AVX true) + endif(${MACHINE} MATCHES "arm-linux-gnueabihf") + + if(BUILD_WITH_OPENMP) + find_package(OpenMP REQUIRED) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") + endif() + + if(APPLE) + set(FORCE_RSUSB_BACKEND ON) + set(BUILD_WITH_TM2 ON) + endif() + + if(FORCE_RSUSB_BACKEND) + set(BACKEND RS2_USE_LIBUVC_BACKEND) + else() + set(BACKEND RS2_USE_V4L2_BACKEND) + endif() +endmacro() + +macro(os_target_config) +endmacro() diff --git a/CMake/version_config.cmake b/CMake/version_config.cmake new file mode 100644 index 00000000000..525a1fe36f3 --- /dev/null +++ b/CMake/version_config.cmake @@ -0,0 +1,28 @@ +################################################################## +# Parse librealsense version and assign it to CMake variables # +# This function parses librealsense public API header file, rs.h # +# and retrieves version numbers embedded in the source code. # +# Since the function relies on hard-coded variables, it is prone # +# for failures should these constants be modified in future # +################################################################## +function(assign_version_property VER_COMPONENT) + file(STRINGS "./include/librealsense2/rs.h" REALSENSE_VERSION_${VER_COMPONENT} REGEX "#define RS2_API_${VER_COMPONENT}_VERSION") + separate_arguments(REALSENSE_VERSION_${VER_COMPONENT}) + list(GET REALSENSE_VERSION_${VER_COMPONENT} -1 tmp) + if (tmp LESS 0) + message( FATAL_ERROR "Could not obtain valid Librealsense version ${VER_COMPONENT} component - actual value is ${tmp}" ) + endif() + set(REALSENSE_VERSION_${VER_COMPONENT} ${tmp} PARENT_SCOPE) +endfunction() + +set(REALSENSE_VERSION_MAJOR -1) +set(REALSENSE_VERSION_MINOR -1) +set(REALSENSE_VERSION_PATCH -1) +assign_version_property(MAJOR) +assign_version_property(MINOR) +assign_version_property(PATCH) +set(REALSENSE_VERSION_STRING ${REALSENSE_VERSION_MAJOR}.${REALSENSE_VERSION_MINOR}.${REALSENSE_VERSION_PATCH}) +infoValue(REALSENSE_VERSION_STRING) +if (BUILD_GLSL_EXTENSIONS) + set(REALSENSE-GL_VERSION_STRING ${REALSENSE_VERSION_MAJOR}.${REALSENSE_VERSION_MINOR}.${REALSENSE_VERSION_PATCH}) +endif() diff --git a/CMake/windows_config.cmake b/CMake/windows_config.cmake new file mode 100644 index 00000000000..1ee2eb8f550 --- /dev/null +++ b/CMake/windows_config.cmake @@ -0,0 +1,91 @@ +message(STATUS "Setting Windows configurations") + +config_crt() + +macro(os_set_flags) + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + + # Makes VS15 find the DLL when trying to run examples/tests + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + + if(BUILD_WITH_OPENMP) + find_package(OpenMP REQUIRED) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") + endif() + + ## Check for Windows Version ## + if(${CMAKE_SYSTEM_VERSION} EQUAL 6.1) # Windows 7 + set(FORCE_RSUSB_BACKEND ON) + endif() + + if(FORCE_RSUSB_BACKEND) + set(BACKEND RS2_USE_WINUSB_UVC_BACKEND) + else() + set(BACKEND RS2_USE_WMF_BACKEND) + endif() + + if(MSVC) + # Set CMAKE_DEBUG_POSTFIX to "d" to add a trailing "d" to library + # built in debug mode. In this Windows user can compile, build and install the + # library in both Release and Debug configuration avoiding naming clashes in the + # installation directories. + set(CMAKE_DEBUG_POSTFIX "d") + + # build with multiple cores + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") + + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /wd4819") + set(LRS_TRY_USE_AVX true) + add_definitions(-D_UNICODE) + endif() + set(DOTNET_VERSION_LIBRARY "3.5" CACHE STRING ".Net Version, defaulting to '3.5', the Unity wrapper currently supports only .NET 3.5") + set(DOTNET_VERSION_EXAMPLES "4.0" CACHE STRING ".Net Version, defaulting to '4.0'") + + if(BUILD_EASYLOGGINGPP) + add_definitions(-DNOMINMAX) + endif() +endmacro() + +macro(os_target_config) + add_definitions(-D__SSSE3__ -D_CRT_SECURE_NO_WARNINGS) + + if(FORCE_RSUSB_BACKEND) + if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) + message("Preparing Windows 7 drivers" ) + make_directory(${CMAKE_CURRENT_BINARY_DIR}/drivers/) + file(GLOB DRIVERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/" "${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/*") + foreach(item IN LISTS DRIVERS) + message("Copying ${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/${item} to ${CMAKE_CURRENT_BINARY_DIR}/drivers/" ) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/${item}" "${CMAKE_CURRENT_BINARY_DIR}/drivers/${item}" COPYONLY) + endforeach() + endif() + + add_custom_target(realsense-driver ALL DEPENDS ${DRIVERS}) + add_dependencies(${LRS_TARGET} realsense-driver) + set_target_properties (realsense-driver PROPERTIES FOLDER Library) + endif() + + get_target_property(LRS_FILES ${LRS_TARGET} SOURCES) + list(APPEND LRS_HEADERS ${LRS_FILES}) + list(APPEND LRS_SOURCES ${LRS_FILES}) + list(FILTER LRS_HEADERS INCLUDE REGEX ".\\.h$|.\\.hpp$|.\\.def$|.\\.cuh$") + list(FILTER LRS_SOURCES INCLUDE REGEX ".\\.c$|.\\.cpp$|.\\.cc$|.\\.cu$") + + foreach(_file IN ITEMS ${LRS_HEADERS}) + string(REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/ "" _relative_file ${_file}) + get_filename_component(_file_path "${_relative_file}" PATH) + string(REPLACE "/" "\\" _file_path_msvc "${_file_path}") + source_group("Header Files\\${_file_path_msvc}" FILES "${_relative_file}") + endforeach() + + foreach(_file IN ITEMS ${LRS_SOURCES}) + string(REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/ "" _relative_file ${_file}) + get_filename_component(_file_path "${_relative_file}" PATH) + string(REPLACE "/" "\\" _file_path_msvc "${_file_path}") + source_group("Source Files\\${_file_path_msvc}" FILES "${_relative_file}") + endforeach() +endmacro() diff --git a/CMakeLists.txt b/CMakeLists.txt index cf949782270..16ced1bbc8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,1091 +1,98 @@ # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) +project(librealsense2 LANGUAGES CXX C) -macro(info msg) - message(STATUS "Info: ${msg}") -endmacro() +include(CMake/lrs_options.cmake) +include(CMake/connectivity_check.cmake) -macro(infoValue variableName) - info("${variableName}=\${${variableName}}") -endmacro() - -option(BUILD_WITH_CUDA "Enable CUDA" OFF) - -if(BUILD_WITH_CUDA) - info("Building with CUDA requires CMake v3.8+") - cmake_minimum_required(VERSION 3.8.0) - project(librealsense2 LANGUAGES CXX C CUDA) -else() - project(librealsense2 LANGUAGES CXX C) -endif() - - -################################################################## -# Parse librealsense version and assign it to CMake variables # -# This function parses librealsense public API header file, rs.h # -# and retrieves version numbers embedded in the source code. # -# Since the function relies on hard-coded variables, it is prone # -# for failures should these constants be modified in future # -################################################################## -function(assign_version_property VER_COMPONENT) - file(STRINGS "./include/librealsense2/rs.h" REALSENSE_VERSION_${VER_COMPONENT} REGEX "#define RS2_API_${VER_COMPONENT}_VERSION") - separate_arguments(REALSENSE_VERSION_${VER_COMPONENT}) - list(GET REALSENSE_VERSION_${VER_COMPONENT} -1 tmp) - if (tmp LESS 0) - message( FATAL_ERROR "Could not obtain valid Librealsense version ${VER_COMPONENT} component - actual value is ${tmp}" ) - endif() - set(REALSENSE_VERSION_${VER_COMPONENT} ${tmp} PARENT_SCOPE) -endfunction() - -set(REALSENSE_VERSION_MAJOR -1) -set(REALSENSE_VERSION_MINOR -1) -set(REALSENSE_VERSION_PATCH -1) -assign_version_property(MAJOR) -assign_version_property(MINOR) -assign_version_property(PATCH) -set(REALSENSE_VERSION_STRING ${REALSENSE_VERSION_MAJOR}.${REALSENSE_VERSION_MINOR}.${REALSENSE_VERSION_PATCH}) -infoValue(REALSENSE_VERSION_STRING) - -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) -# View the makefile commands during build -#set(CMAKE_VERBOSE_MAKEFILE on) - -option(ENABLE_CCACHE "Build with ccache." ON) -if(ENABLE_CCACHE) - find_program(CCACHE_FOUND ccache) - if(CCACHE_FOUND) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) - endif(CCACHE_FOUND) -endif() - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_STANDARD 11) - set(CMAKE_CUDA_STANDARD 11) -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - -# This parameter is meant for disabling graphical examples when building for -# save-to-disk targets. -option(BUILD_GRAPHICAL_EXAMPLES "Build graphical examples and tools." ON) - -option(BUILD_WITH_OPENMP "Use OpenMP" OFF) - -option(USE_SYSTEM_LIBUSB "Use the distribution libusb package" ON) -if (WIN32) - set(USE_SYSTEM_LIBUSB OFF) -endif() - -option(ENABLE_ZERO_COPY "Enable zero copy functionality" OFF) -if (ENABLE_ZERO_COPY) - add_definitions(-DZERO_COPY) -endif() - -if(ANDROID_NDK_TOOLCHAIN_INCLUDED) - unset(WIN32) - unset(UNIX) - unset(APPLE) - set(USE_SYSTEM_LIBUSB OFF) - set(BUILD_WITH_OPENMP OFF) - set(FORCE_LIBUVC ON) - set(BUILD_GRAPHICAL_EXAMPLES OFF) - set(ANDROID_STL "c++_static") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pedantic -g -D_BSD_SOURCE") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic -g -Wno-missing-field-initializers") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIE -pie") - message(STATUS "Prepare RealSense SDK for Android OS (${ANDROID_NDK_ABI_NAME})") -endif() - -if(USE_SYSTEM_LIBUSB) - add_definitions(-DUSE_SYSTEM_LIBUSB) -endif() - -if(BUILD_WITH_OPENMP) - find_package(OpenMP) - if(NOT OPENMP_FOUND) - message(FATAL_ERROR "\n\n OpenMP package is missing!\n\n") - else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") - endif() -elseif(UNIX) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") +#Deprecation message, should be removed in future releases +if(${FORCE_LIBUVC} OR ${FORCE_WINUSB_UVC} OR ${ANDROID_USB_HOST_UVC}) + MESSAGE(DEPRECATION "FORCE_LIBUVC, FORCE_WINUSB_UVC and ANDROID_USB_HOST_UVC are deprecated, use FORCE_RSUSB_BACKEND instead") + set(FORCE_RSUSB_BACKEND ON) endif() - -option(BUILD_WITH_TM2 "Build with support for Intel TM2 tracking device" OFF) - -option(BUILD_EASYLOGGINGPP "Build EasyLogging++ as a part of the build" ON) - -if (BUILD_EASYLOGGINGPP) - add_definitions(-DBUILD_EASYLOGGINGPP) +# Checking Internet connection, as TM2 needs to download the FW from amazon cloud +if(BUILD_WITH_TM2 AND NOT INTERNET_CONNECTION) + message(WARNING "No internet connection, disabling BUILD_WITH_TM2") + set(BUILD_WITH_TM2 OFF) endif() -if (BUILD_WITH_CUDA) - find_package(CUDA REQUIRED) - if(CUDA_FOUND) - include_directories(${CUDA_INCLUDE_DIRS}) - SET(ALL_CUDA_LIBS ${CUDA_LIBRARIES} ${CUDA_cusparse_LIBRARY} ${CUDA_cublas_LIBRARY}) - SET(LIBS ${LIBS} ${ALL_CUDA_LIBS}) - message(STATUS "CUDA_LIBRARIES: ${CUDA_INCLUDE_DIRS} ${ALL_CUDA_LIBS}") - set(CUDA_PROPAGATE_HOST_FLAGS OFF) - set(CUDA_SEPARABLE_COMPILATION ON) - set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS}; -O3 -gencode arch=compute_53,code=sm_53 - -gencode arch=compute_62,code=sm_62;") - endif() +# Checking Internet connection, as TM2 needs to download the FW from amazon cloud +if(IMPORT_DEPTH_CAM_FW AND NOT INTERNET_CONNECTION) + message(WARNING "No internet connection, disabling IMPORT_DEPTH_CAM_FW") + set(IMPORT_DEPTH_CAM_FW OFF) endif() +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/CMake) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake) - -set(REALSENSE_CPP - src/environment.cpp - src/device_hub.cpp - src/pipeline.cpp - src/archive.cpp - src/context.cpp - src/device.cpp - src/sensor.cpp - src/algo.cpp - src/sync.cpp - src/stream.cpp - src/option.cpp - src/error-handling.cpp - src/hw-monitor.cpp - src/image.cpp - src/image_avx.cpp - src/ivcam/ivcam-private.cpp - src/log.cpp - src/rs.cpp - src/ivcam/sr300.cpp - src/types.cpp - src/linux/backend-v4l2.cpp - src/linux/backend-hid.cpp - src/backend.cpp - src/verify.c - src/software-device.cpp - src/proc/align.cpp - src/proc/colorizer.cpp - src/proc/pointcloud.cpp - src/proc/occlusion-filter.cpp - src/proc/synthetic-stream.cpp - src/proc/syncer-processing-block.cpp - src/proc/decimation-filter.cpp - src/proc/spatial-filter.cpp - src/proc/temporal-filter.cpp - src/proc/hole-filling-filter.cpp - src/proc/disparity-transform.cpp - src/source.cpp - src/ds5/ds5-options.cpp - src/ds5/ds5-timestamp.cpp - src/ds5/ds5-private.cpp - src/ds5/ds5-motion.cpp - src/ds5/ds5-rolling-shutter.cpp - src/ds5/ds5-device.cpp - src/ds5/ds5-color.cpp - src/ds5/ds5-active.cpp - src/ds5/ds5-factory.cpp - - src/l500/l500.cpp - src/l500/l500-private.cpp - - src/ds5/advanced_mode/rs_advanced_mode.cpp - src/ds5/advanced_mode/presets.cpp - src/ds5/advanced_mode/advanced_mode.cpp - - third-party/sqlite/sqlite3.c - - src/mock/sql.cpp - src/mock/recorder.cpp - - src/media/record/record_device.cpp - src/media/record/record_sensor.cpp - src/media/playback/playback_device.cpp - src/media/playback/playback_sensor.cpp - ) - -## Check for Windows Version ## -if( (${CMAKE_SYSTEM_VERSION} EQUAL 6.1) OR (FORCE_WINUSB_UVC) ) # Windows 7 - if (NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR) - message("Preparing Windows 7 drivers" ) - make_directory(${CMAKE_CURRENT_BINARY_DIR}/drivers/) - file(GLOB DRIVERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/" "${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/*") - foreach(item IN LISTS DRIVERS) - message("Copying ${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/${item} to ${CMAKE_CURRENT_BINARY_DIR}/drivers/" ) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/win7/drivers/${item}" "${CMAKE_CURRENT_BINARY_DIR}/drivers/${item}" COPYONLY) - endforeach() - endif() - add_custom_target(realsense-driver ALL DEPENDS ${DRIVERS}) - - list(APPEND REALSENSE_CPP - src/win7/win7-helpers.cpp - src/win7/win7-uvc.cpp - src/win7/win7-usb.cpp - src/win7/win7-hid.cpp - src/win7/win7-backend.cpp - ) -else() # Some other windows version - list(APPEND REALSENSE_CPP - src/win/win-helpers.cpp - src/win/win-uvc.cpp - src/win/win-usb.cpp - src/win/win-hid.cpp - src/win/win-backend.cpp - ) -endif() - -if (BUILD_WITH_CUDA) - set(REALSENSE_CU - src/cuda/cuda-conversion.cu - src/cuda/cuda-pointcloud.cu - ) - - set(REALSENSE_CUH - src/cuda/cuda-conversion.cuh - src/cuda/cuda-pointcloud.cuh - ) -endif() - -set(REALSENSE_HPP - include/librealsense2/rs.hpp - include/librealsense2/rs.h - - include/librealsense2/h/rs_types.h - include/librealsense2/h/rs_context.h - include/librealsense2/h/rs_device.h - include/librealsense2/h/rs_frame.h - include/librealsense2/h/rs_option.h - include/librealsense2/h/rs_processing.h - include/librealsense2/h/rs_record_playback.h - include/librealsense2/h/rs_sensor.h - include/librealsense2/h/rs_internal.h - include/librealsense2/h/rs_pipeline.h - - include/librealsense2/hpp/rs_types.hpp - include/librealsense2/hpp/rs_context.hpp - include/librealsense2/hpp/rs_device.hpp - include/librealsense2/hpp/rs_frame.hpp - include/librealsense2/hpp/rs_processing.hpp - include/librealsense2/hpp/rs_record_playback.hpp - include/librealsense2/hpp/rs_sensor.hpp - include/librealsense2/hpp/rs_internal.hpp - include/librealsense2/hpp/rs_pipeline.hpp - - include/librealsense2/rsutil.h - include/librealsense2/rs_advanced_mode.h - include/librealsense2/rs_advanced_mode.hpp - include/librealsense2/h/rs_advanced_mode_command.h +# include librealsense general configuration +include(CMake/global_config.cmake) - src/res/resource.h - src/core/streaming.h - src/core/debug.h - src/core/advanced_mode.h - src/core/roi.h - src/core/motion.h - src/core/video.h - src/core/options.h - src/core/info.h - src/core/extension.h - src/core/processing.h - src/software-device.h +config_cxx_flags() - src/environment.h - src/device_hub.h - src/pipeline.h - src/config.h - src/archive.h - src/concurrency.h - src/context.h - src/sensor.h - src/sync.h - src/sensor.h - src/stream.h - src/proc/align.h - src/proc/colorizer.h - src/proc/pointcloud.h - src/proc/occlusion-filter.h - src/proc/synthetic-stream.h - src/proc/decimation-filter.h - src/proc/spatial-filter.h - src/proc/temporal-filter.h - src/proc/hole-filling-filter.h - src/proc/syncer-processing-block.h - src/proc/disparity-transform.h - src/algo.h - src/option.h - src/metadata.h - src/metadata-parser.h - src/error-handling.h - src/hw-monitor.h - src/image.h - src/image_avx.h - src/source.h - src/ivcam/ivcam-private.h - src/types.h - src/backend.h - src/device.h - src/ivcam/sr300.h - src/ds5/ds5-factory.h - src/ds5/ds5-device.h - src/ds5/ds5-options.h - src/ds5/ds5-private.h - src/ds5/ds5-timestamp.h - src/ds5/ds5-active.h - src/ds5/ds5-motion.h - src/ds5/ds5-rolling-shutter.h - src/ds5/ds5-color.h - src/linux/backend-v4l2.h - src/linux/backend-hid.h - src/api.h - src/core/serialization.h +# include os specific macros +# macro definition located at "CMake/global_config.cmake" +include(CMake/include_os.cmake) - src/l500/l500.h - src/l500/l500-private.h +# set os specific configuration flags +# macro definition located at "CMake/_config.cmake" +os_set_flags() - src/media/record/record_device.h - src/media/record/record_sensor.h - src/media/playback/playback_device.h - src/media/playback/playback_sensor.h - src/media/ros/ros_reader.h - src/media/ros/ros_writer.h +# set global configuration flags +# macro definition located at "CMake/global_config.cmake" +global_set_flags() - src/ds5/advanced_mode/json_loader.hpp - src/ds5/advanced_mode/presets.h - - third-party/sqlite/sqlite3.h - src/mock/sql.h - src/mock/recorder.h - - src/media/ros/ros_file_format.h -) - -if(WIN32) - ## Check for Windows Version ## - if( ${CMAKE_SYSTEM_VERSION} EQUAL 6.1 ) # Windows 7 - list(APPEND REALSENSE_HPP - src/win7/win7-helpers.h - src/win7/win7-uvc.h - src/win7/win7-usb.h - src/win7/win7-hid.h - src/win7/win7-backend.h - ) - else() # Some other windows version - list(APPEND REALSENSE_HPP - src/win/win-helpers.h - src/win/win-uvc.h - src/win/win-usb.h - src/win/win-hid.h - src/win/win-backend.h - ) - endif() -endif() - -if(BUILD_EASYLOGGINGPP) - list(APPEND REALSENSE_CPP third-party/easyloggingpp/src/easylogging++.cc) - list(APPEND REALSENSE_HPP third-party/easyloggingpp/src/easylogging++.h) -endif() - -option(BUILD_WITH_STATIC_CRT "Build with static link CRT" ON) - -if(WIN32) - ## Check for Windows Version ## - if( ${CMAKE_SYSTEM_VERSION} EQUAL 6.1 ) # Windows 7 - source_group("Source Files\\Backend" FILES - src/win7/win7-helpers.cpp - src/win7/win7-uvc.cpp - src/win7/win7-usb.cpp - src/win7/win7-hid.cpp - src/win7/win7-backend.cpp - src/linux/backend-v4l2.cpp - src/linux/backend-hid.cpp - src/backend.cpp - ) - - source_group("Header Files\\Backend" FILES - src/win7/win7-helpers.h - src/win7/win7-uvc.h - src/win7/win7-usb.h - src/win7/win7-hid.h - src/win7/win7-backend.h - src/linux/backend-v4l2.h - src/linux/backend-hid.h - src/backend.h) - - else() # Some other windows version - source_group("Source Files\\Backend" FILES - src/win/win-helpers.cpp - src/win/win-uvc.cpp - src/win/win-usb.cpp - src/win/win-hid.cpp - src/win/win-backend.cpp - src/linux/backend-v4l2.cpp - src/linux/backend-hid.cpp - src/backend.cpp - src/win7/win7-helpers.cpp - src/win7/win7-uvc.cpp - src/win7/win7-usb.cpp - src/win7/win7-hid.cpp - src/win7/win7-backend.cpp - ) - - source_group("Header Files\\Backend" FILES - src/win/win-helpers.h - src/win/win-uvc.h - src/win/win-usb.h - src/win/win-hid.h - src/win/win-backend.h - src/linux/backend-v4l2.h - src/linux/backend-hid.h - src/backend.h) - endif() - - source_group("Source Files\\Logging" FILES - third-party/easyloggingpp/src/easylogging++.cc - src/log.cpp - ) - - source_group("Source Files\\Media" FILES - src/media/record/record_device.cpp - src/media/record/record_sensor.cpp - src/media/playback/playback_device.cpp - src/media/playback/playback_sensor.cpp - ) - - source_group("Header Files\\API" FILES - include/librealsense2/rs.hpp - include/librealsense2/rs.h - CMake/realsense.def - ) - - source_group("Header Files\\API\\C Headers" FILES - include/librealsense2/h/rs_context.h - include/librealsense2/h/rs_device.h - include/librealsense2/h/rs_frame.h - include/librealsense2/h/rs_types.h - include/librealsense2/h/rs_sensor.h - include/librealsense2/h/rs_option.h - include/librealsense2/h/rs_processing.h - include/librealsense2/h/rs_record_playback.h - include/librealsense2/h/rs_pipeline.h - include/librealsense2/h/rs_internal.h - - include/librealsense2/rsutil.h - include/librealsense2/rs_advanced_mode.h - include/librealsense2/h/rs_advanced_mode_command.h - ) - - source_group("Header Files\\API\\C++ Headers" FILES - include/librealsense2/hpp/rs_types.hpp - include/librealsense2/hpp/rs_context.hpp - include/librealsense2/hpp/rs_device.hpp - include/librealsense2/hpp/rs_frame.hpp - include/librealsense2/hpp/rs_processing.hpp - include/librealsense2/hpp/rs_pipeline.hpp - include/librealsense2/hpp/rs_record_playback.hpp - include/librealsense2/hpp/rs_sensor.hpp - include/librealsense2/hpp/rs_internal.hpp - - include/librealsense2/rs_advanced_mode.hpp - ) - - source_group("Header Files\\Recorder" FILES - third-party/sqlite/sqlite3.h - src/mock/sql.h - src/mock/recorder.h - ) - - source_group("Source Files\\Recorder" FILES - third-party/sqlite/sqlite3.c - src/mock/sql.cpp - src/mock/recorder.cpp - ) - - source_group("Source Files\\API" FILES - src/rs.cpp - src/verify.c - src/ds5/advanced_mode/rs_advanced_mode.cpp - ) - - source_group("Header Files\\Media" FILES - src/media/record/record_device.h - src/media/record/record_sensor.h - src/media/playback/playback_device.h - src/media/playback/playback_sensor.h - ) - source_group("Header Files\\Media\\Ros Serializer" FILES - src/media/ros/ros_reader.h - src/media/ros/ros_writer.h - src/media/ros/ros_file_format.h - ) - - source_group("Source Files\\Devices" FILES - src/l500/l500.cpp - src/l500/l500-private.cpp - - src/ds5/ds5-device.cpp - src/ds5/ds5-factory.cpp - src/ds5/ds5-options.cpp - src/ds5/ds5-private.cpp - src/ds5/ds5-timestamp.cpp - src/ds5/ds5-motion.cpp - src/ds5/ds5-rolling-shutter.cpp - src/ds5/ds5-color.cpp - src/ds5/ds5-active.cpp - src/ivcam/sr300.cpp - src/ivcam/ivcam-private.cpp - src/software-device.cpp - ) - - source_group("Source Files\\Devices\\Advanced Mode" FILES - src/ds5/advanced_mode/rs_advanced_mode.cpp - src/ds5/advanced_mode/presets.cpp - src/ds5/advanced_mode/advanced_mode.cpp - ) - - source_group("Header Files\\Devices\\Advanced Mode" FILES - src/ds5/advanced_mode/json_loader.hpp - src/ds5/advanced_mode/presets.h - ) - - source_group("Header Files\\Devices" FILES - src/l500/l500.h - src/l500/l500-private.h - - src/ds5/ds5-device.h - src/ds5/ds5-options.h - src/ds5/ds5-private.h - src/ds5/ds5-timestamp.h - src/ds5/ds5-factory.h - src/ds5/ds5-active.h - src/ds5/ds5-motion.h - src/ds5/ds5-rolling-shutter.h - src/ds5/ds5-color.h - src/ivcam/sr300.h - src/ivcam/ivcam-private.h - src/software-device.h - ) - - source_group("Header Files\\Core" FILES - src/core/streaming.h - src/core/debug.h - src/core/roi.h - src/core/video.h - src/core/motion.h - src/core/info.h - src/core/options.h - src/core/extension.h - src/core/processing.h - ) - - source_group("Header Files\\Logging" FILES - third-party/easyloggingpp/src/easylogging++.h - ) - - source_group("Source Files\\Processing Blocks" FILES - src/proc/colorizer.cpp - src/proc/synthetic-stream.cpp - src/proc/align.cpp - src/proc/pointcloud.cpp - src/proc/occlusion-filter.cpp - src/proc/decimation-filter.cpp - src/proc/spatial-filter.cpp - src/proc/temporal-filter.cpp - src/proc/hole-filling-filter.cpp - src/proc/syncer-processing-block.cpp - src/proc/disparity-transform.cpp - ) - - source_group("Header Files\\Processing Blocks" FILES - src/proc/colorizer.h - src/proc/align.h - src/proc/pointcloud.h - src/proc/occlusion-filter.h - src/proc/synthetic-stream.h - src/proc/decimation-filter.h - src/proc/spatial-filter.h - src/proc/temporal-filter.h - src/proc/syncer-processing-block.h - src/proc/disparity-transform.h - src/proc/hole-filling-filter.h - ) - - if(BUILD_WITH_STATIC_CRT) - foreach(flag_var - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) - if(${flag_var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - endif(${flag_var} MATCHES "/MD") - endforeach(flag_var) - endif() -else() - -endif() - -option(FORCE_LIBUVC "Explicitly turn-on libuvc backend" OFF) -option(FORCE_WINUSB_UVC "Explicitly turn-on winusb_uvc (for win7) backend" OFF) - -if(WIN32) - ## Check for Windows Version ## - if( ${CMAKE_SYSTEM_VERSION} EQUAL 6.1 ) # Windows 7 - set(FORCE_WINUSB_UVC ON) - else() # Some other windows version - set(BACKEND RS2_USE_WMF_BACKEND) - endif() - - set(REALSENSE_DEF CMake/realsense.def) - # Makes VS15 find the DLL when trying to run examples/tests - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) - # build with multiple cores - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") - add_definitions(-D__SSSE3__ -D_CRT_SECURE_NO_WARNINGS) - set_property(GLOBAL PROPERTY USE_FOLDERS ON) -elseif(APPLE) - set(FORCE_LIBUVC ON) -else() - set(BACKEND RS2_USE_V4L2_BACKEND) -endif() - - -if(FORCE_WINUSB_UVC) - set(BACKEND RS2_USE_WINUSB_UVC_BACKEND) -# - list(APPEND REALSENSE_CPP - src/win7/winusb_uvc/winusb_uvc.cpp - ) -# - list(APPEND REALSENSE_HPP - src/libuvc/utlist.h - src/win7/winusb_uvc/winusb_uvc.h - ) -# - source_group("Source Files\\WinUsbUvc" FILES - src/win7/winusb_uvc/winusb_uvc.cpp - ) -# - source_group("Header Files\\WinUsbUvc" FILES - src/libuvc/utlist.h - src/win7/winusb_uvc/winusb_uvc.h - ) -# -# message( WARNING "Using winusb_uvc!" ) -endif() - - -if(FORCE_LIBUVC) - set(BACKEND RS2_USE_LIBUVC_BACKEND) - - list(APPEND REALSENSE_CPP - src/libuvc/ctrl.cpp - src/libuvc/ctrl-gen.cpp - src/libuvc/device.cpp - src/libuvc/diag.cpp - src/libuvc/frame.cpp - src/libuvc/init.cpp - src/libuvc/misc.cpp - src/libuvc/stream.cpp - src/libuvc/libuvc.cpp - ) - - list(APPEND REALSENSE_HPP - src/libuvc/libuvc.h - src/libuvc/libuvc_internal.h - src/libuvc/utlist.h - src/libuvc/libuvc_config.h - ) - - source_group("Header Files\\LibUvc" FILES - src/libuvc/libuvc.h - src/libuvc/libuvc_internal.h - src/libuvc/utlist.h - src/libuvc/libuvc_config.h - ) - - source_group("Source Files\\LibUvc" FILES - src/libuvc/ctrl.cpp - src/libuvc/ctrl-gen.cpp - src/libuvc/device.cpp - src/libuvc/diag.cpp - src/libuvc/frame.cpp - src/libuvc/init.cpp - src/libuvc/misc.cpp - src/libuvc/stream.cpp - src/libuvc/libuvc.cpp - ) - - message( WARNING "Using libuvc!" ) -endif() - -if (MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /wd4819") - add_definitions(-D_UNICODE) - set(LRS_TRY_USE_AVX true) -endif() - -add_definitions(-D${BACKEND} -DUNICODE) - -if(UNIX) - find_package(PkgConfig) - if(NOT PKG_CONFIG_FOUND) - message(FATAL_ERROR "\n\n PkgConfig package is missing!\n\n") - endif() - - if (USE_SYSTEM_LIBUSB) - pkg_search_module(LIBUSB1 REQUIRED libusb-1.0) - if(LIBUSB1_FOUND) - include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS}) - link_directories(${LIBUSB1_LIBRARY_DIRS}) - list(APPEND librealsense_PKG_DEPS "libusb-1.0") - else() - message( FATAL_ERROR "Failed to find libusb-1.0" ) - endif(LIBUSB1_FOUND) - endif() - - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pedantic -g -D_BSD_SOURCE") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic -g -Wno-missing-field-initializers") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar -Wsequence-point -Wformat-security") - - execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE MACHINE) - if(${MACHINE} MATCHES "arm-linux-gnueabihf") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpu=neon -mfloat-abi=hard -ftree-vectorize") - elseif(${MACHINE} MATCHES "aarch64-linux-gnu") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstrict-align -ftree-vectorize") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstrict-align -ftree-vectorize") - else() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mssse3") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3") - set(LRS_TRY_USE_AVX true) - endif(${MACHINE} MATCHES "arm-linux-gnueabihf") -endif() - -# Set CMAKE_INSTALL_* if not defined -include(GNUInstallDirs) - -option(TRACE_API "Log all C API calls" OFF) -if(TRACE_API) - add_definitions(-DTRACE_API) -endif() - -option(HWM_OVER_XU "Send HWM commands over UVC XU control" ON) -if(HWM_OVER_XU) - add_definitions(-DHWM_OVER_XU) -endif() - -if (NOT USE_SYSTEM_LIBUSB) - if(NOT WIN32 OR FORCE_LIBUVC) - include(ExternalProject) - - ExternalProject_Add( - libusb - - GIT_REPOSITORY "https://github.com/libusb/libusb.git" - GIT_TAG "master" - - UPDATE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libusb/CMakeLists.txt - ${CMAKE_CURRENT_BINARY_DIR}/third-party/libusb/CMakeLists.txt - PATCH_COMMAND "" - - SOURCE_DIR "third-party/libusb/" - CMAKE_ARGS -DCMAKE_CXX_STANDARD_LIBRARIES=${CMAKE_CXX_STANDARD_LIBRARIES} - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/libusb_install - - TEST_COMMAND "" - ) - - set(LIBUSB_LOCAL_INCLUDE_PATH ${CMAKE_CURRENT_BINARY_DIR}/third-party/libusb) - - set(LIBUSB1_LIBRARY_DIRS ${CMAKE_CURRENT_BINARY_DIR}/libusb_install/lib) - link_directories(${LIBUSB1_LIBRARY_DIRS}) - - set(LIBUSB1_LIBRARIES usb log) - endif() -endif() - -add_subdirectory(third-party/realsense-file) - - -if (BUILD_WITH_TM2) - message(STATUS "Building with TM2") - - if(WIN32) - source_group("Source Files\\Devices\\Tracking" FILES - src/tm2/tm-context.cpp - src/tm2/tm-info.cpp - src/tm2/tm-device.cpp - ) - - source_group("Header Files\\Devices\\Tracking" FILES - src/tm2/tm-context.h - src/tm2/tm-info.h - src/tm2/tm-device.h - src/tm2/tm-conversions.h - src/tm2/controller_event_serializer.h - ) - endif() - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake) - find_package(libtm REQUIRED) - - if(BUILD_WITH_STATIC_CRT) - foreach(flag_var - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO - CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) - if(${flag_var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - endif(${flag_var} MATCHES "/MD") - endforeach(flag_var) - endif() - - list(APPEND REALSENSE_HPP - src/tm2/tm-context.h - src/tm2/tm-device.h - src/tm2/tm-info.h - src/tm2/tm-conversions.h - src/tm2/controller_event_serializer.h - ) - - list(APPEND REALSENSE_CPP - src/tm2/tm-context.cpp - src/tm2/tm-device.cpp - src/tm2/tm-info.cpp - ) - - include_directories(${LIBTM_INCLUDE_DIR}) - set(TRACKING_DEVICE_LIBS libtm) - - install(TARGETS libtm - EXPORT realsense2Targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) -endif() - -if(LRS_TRY_USE_AVX) - set_source_files_properties(src/image_avx.cpp PROPERTIES COMPILE_FLAGS -mavx2) -endif() - -option(BUILD_SHARED_LIBS "Build shared library" ON) if(BUILD_SHARED_LIBS) - if(WIN32) - add_library(realsense2 SHARED - ${REALSENSE_CPP} ${REALSENSE_HPP} ${REALSENSE_DEF} ${REALSENSE_CU} ${REALSENSE_CUH} - src/res/resource.h - src/res/librealsense.rc) - source_group("Resources" FILES - src/res/resource.h - src/res/librealsense.rc - ) - else() - add_library(realsense2 SHARED ${REALSENSE_CPP} ${REALSENSE_HPP} ${REALSENSE_CU} ${REALSENSE_CUH} ${REALSENSE_DEF}) - endif() + add_library(${LRS_TARGET} SHARED "") else() - add_library(realsense2 STATIC ${REALSENSE_CPP} ${REALSENSE_HPP} ${REALSENSE_CU} ${REALSENSE_CUH}) + add_library(${LRS_TARGET} STATIC "") endif() +# set library version +set_target_properties(${LRS_TARGET} PROPERTIES VERSION ${REALSENSE_VERSION_STRING} SOVERSION "${REALSENSE_VERSION_MAJOR}.${REALSENSE_VERSION_MINOR}") -if(BUILD_WITH_TM2) - target_compile_definitions(realsense2 PRIVATE WITH_TRACKING=1 BUILD_STATIC=1) -endif() -set_target_properties(realsense2 PROPERTIES VERSION ${REALSENSE_VERSION_STRING} - SOVERSION ${REALSENSE_VERSION_MAJOR}) - -if(ANDROID_NDK_TOOLCHAIN_INCLUDED) - if(BUILD_SHARED_LIBS) - find_library(log-lib log) - target_link_libraries(realsense2 PRIVATE realsense-file ${CMAKE_THREAD_LIBS_INIT} ${TRACKING_DEVICE_LIBS} log) - else() - target_link_libraries(realsense2 PRIVATE realsense-file ${CMAKE_THREAD_LIBS_INIT} ${TRACKING_DEVICE_LIBS}) - endif() -else() - target_link_libraries(realsense2 PRIVATE realsense-file ${CMAKE_THREAD_LIBS_INIT} ${TRACKING_DEVICE_LIBS}) -endif() - -if (NOT USE_SYSTEM_LIBUSB) - if (NOT WIN32) - add_dependencies(realsense2 libusb) - target_link_libraries(realsense2 PRIVATE ${LIBUSB1_LIBRARIES}) - endif() -else() - target_include_directories(realsense2 PRIVATE ${LIBUSB1_INCLUDE_DIRS}) - target_link_libraries(realsense2 PRIVATE ${LIBUSB1_LIBRARIES}) -endif() - - -add_definitions(-DELPP_THREAD_SAFE) -add_definitions(-DELPP_NO_DEFAULT_LOG_FILE) - +include(include/CMakeLists.txt) +include(src/CMakeLists.txt) +include(third-party/CMakeLists.txt) -list(APPEND librealsense_PKG_LIBS ${CMAKE_THREAD_LIBS_INIT}) +# configure the project according to OS specific requirments +# macro definition located at "CMake/_config.cmake" +os_target_config() +# global project configuration +# macro definition located at "CMake/global_config.cmake" +global_target_config() -include_directories(realsense2 src) - -set_target_properties (realsense2 PROPERTIES - FOLDER Library -) - -set(LRS_LIB_NAME realsense2) - -# Add additional include directories to allow file to include rosbag headers -include(${CMAKE_CURRENT_LIST_DIR}/third-party/realsense-file/config.cmake) -target_include_directories(realsense2 PRIVATE - ${ROSBAG_HEADER_DIRS} - ${BOOST_INCLUDE_PATH} - ${LZ4_INCLUDE_PATH} - ${LIBUSB_LOCAL_INCLUDE_PATH} - ) -if( (${CMAKE_SYSTEM_VERSION} EQUAL 6.1) OR (FORCE_WINUSB_UVC) ) # Windows 7 - add_dependencies(realsense2 realsense-driver) - set_target_properties (realsense-driver PROPERTIES - FOLDER Library - ) -endif() - -target_include_directories(realsense2 PUBLIC - $ - $ - PRIVATE ${USB_INCLUDE_DIRS}) - -set_target_properties(realsense2 - PROPERTIES - PUBLIC_HEADER - "include/librealsense2/rs.hpp;include/librealsense2/rs.h;include/librealsense2/h/rs_context.h;include/librealsense2/h/rs_device.h;include/librealsense2/h/rs_frame.h;include/librealsense2/h/rs_types.h;include/librealsense2/h/rs_sensor.h;include/librealsense2/h/rs_option.h;include/librealsense2/h/rs_processing.h;include/librealsense2/h/rs_record_playback.h;include/librealsense2/h/rs_pipeline.h;include/librealsense2/h/rs_internal.h;include/librealsense2/rsutil.h;include/librealsense2/rs_advanced_mode.h;include/librealsense2/h/rs_advanced_mode_command.h;include/librealsense2/hpp/rs_types.hpp;include/librealsense2/hpp/rs_context.hpp;include/librealsense2/hpp/rs_device.hpp;include/librealsense2/hpp/rs_frame.hpp;include/librealsense2/hpp/rs_processing.hpp;include/librealsense2/hpp/rs_pipeline.hpp;include/librealsense2/hpp/rs_record_playback.hpp;include/librealsense2/hpp/rs_sensor.hpp;include/librealsense2/hpp/rs_internal.hpp;include/librealsense2/rs_advanced_mode.hpp" - ) - -set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/realsense2") - -install(TARGETS realsense2 -EXPORT realsense2Targets -RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_PREFIX}/include/librealsense2" -) - -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/librealsense2 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -include(CMakePackageConfigHelpers) -configure_package_config_file(CMake/realsense2Config.cmake.in realsense2Config.cmake - INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} - INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/bin - PATH_VARS CMAKE_INSTALL_INCLUDEDIR) -write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/realsense2ConfigVersion.cmake" - VERSION ${REALSENSE_VERSION_STRING} COMPATIBILITY AnyNewerVersion) - -install(EXPORT realsense2Targets FILE realsense2Targets.cmake NAMESPACE realsense2:: - DESTINATION ${CMAKECONFIG_INSTALL_DIR}) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/realsense2Config.cmake" - DESTINATION ${CMAKECONFIG_INSTALL_DIR}) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/realsense2ConfigVersion.cmake" - DESTINATION ${CMAKECONFIG_INSTALL_DIR}) - -install(CODE "execute_process(COMMAND ldconfig)") - -option(BUILD_UNIT_TESTS "Build realsense unit tests. Note that when enabled, additional tests data set will be downloaded from a web server and stored in a temp directory" OFF) -option(BUILD_EXAMPLES "Build realsense examples and tools." ON) -option(ENFORCE_METADATA "Require WinSDK with Metadata support during compilation. Windows OS Only" OFF) -option(BUILD_PYTHON_BINDINGS "Build Python bindings" OFF) -option(BUILD_CSHARP_BINDINGS "Build C# bindings" OFF) -#option(BUILD_MATLAB_BINDINGS "Build Matlab bindings" OFF) -option(BUILD_UNITY_BINDINGS "Copy the unity project to the build folder with the required dependencies" OFF) -option(BUILD_CV_EXAMPLES "Build OpenCV examples" OFF) -option(BUILD_PCL_EXAMPLES "Build PCL examples" OFF) -option(BUILD_NODEJS_BINDINGS "Build Node.js bindings" OFF) -SET(DOTNET_VERSION_LIBRARY "3.5" CACHE STRING ".Net Version, defaulting to '3.5', the Unity wrapper currently supports only .NET 3.5") -SET(DOTNET_VERSION_EXAMPLES "4.0" CACHE STRING ".Net Version, defaulting to '4.0'") +include(CMake/install_config.cmake) add_subdirectory(wrappers) -if((BUILD_EXAMPLES AND BUILD_GRAPHICAL_EXAMPLES) AND WIN32) - add_subdirectory(third-party/glfw) +if (BUILD_EXAMPLES AND BUILD_GLSL_EXTENSIONS) + find_package(glfw3 3.3 QUIET) + if(NOT TARGET glfw) + message(STATUS "GLFW 3.3 not found; using internal version") + set(GLFW_INSTALL ON CACHE BOOL "" FORCE) + add_subdirectory(third-party/glfw) + endif() + add_subdirectory(src/gl) endif() if(BUILD_EXAMPLES) - add_subdirectory(examples) - add_subdirectory(tools) + add_subdirectory(examples) + add_subdirectory(tools) endif() if(BUILD_UNIT_TESTS) - add_subdirectory(unit-tests) + add_subdirectory(unit-tests) endif() -if (ENFORCE_METADATA) - add_definitions(-DENFORCE_METADATA) -endif() - -if (BUILD_WITH_CUDA) - add_definitions(-DRS2_USE_CUDA) -endif() - -if (BUILD_MATLAB_BINDINGS) - add_subdirectory(wrappers/matlab) +if(BUILD_WITH_TM2) + add_tm2() endif() - -# Check for unreferenced files -FILE(GLOB_RECURSE AllSources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - "src/*.c" "src/*.cpp" "src/*.cc" "src/*.c++" "src/*.cu" - "src/*.h" "src/*.hpp" "src/*.hh" "src/*.h++" "src/*.cuh") -#message ( "${AllSources}" ) -#message ( "${REALSENSE_CPP}" ) -#message ( "${REALSENSE_HPP}" ) -if (BUILD_WITH_CUDA) - foreach(afile ${REALSENSE_CPP}) - list(REMOVE_ITEM AllSources ${afile}) - endforeach(afile) - foreach(afile ${REALSENSE_HPP}) - list(REMOVE_ITEM AllSources ${afile}) - endforeach(afile) - foreach(afile ${REALSENSE_CU}) - list(REMOVE_ITEM AllSources ${afile}) - endforeach(afile) - foreach(afile ${REALSENSE_CUH}) - list(REMOVE_ITEM AllSources ${afile}) - endforeach(afile) +if(IMPORT_DEPTH_CAM_FW) + add_subdirectory(common/fw) endif() -list(LENGTH AllSources ignore_count) -#if(${ignore_count} GREATER 0) -# if(${ignore_count} GREATER 1) -# message ( WARNING "${ignore_count} source files ignored: ${AllSources}" ) -# else(${ignore_count} GREATER 1) -# message ( WARNING "Source file ignored: ${AllSources}" ) -# endif(${ignore_count} GREATER 1) -#endif(${ignore_count} GREATER 0) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") - -# Support pkg-config meta-data file -# Export library compile and link-time dependencies -foreach(arg ${librealsense_PKG_DEPS}) - set(LRS_PKG_DEPS "${LRS_PKG_DEPS} ${arg}") -endforeach() -foreach(arg ${librealsense_PKG_LIBS}) - set(LRS_PKG_LIBS "${LRS_PKG_LIBS} ${arg}") -endforeach() -# Set library pkgconfig file for facilitating 3rd party integration -configure_file(config/librealsense.pc.in config/realsense2.pc @ONLY) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/config/realsense2.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") -# Update system cache with newly installed binaries/libraries -if(UNIX) - install(CODE "execute_process(COMMAND ldconfig)") -endif() +include(CMake/embedd_udev_rules.cmake) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 862dea6f33e..6fe055350d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,17 @@ You are welcome to propose and discuss enhancements using project [issues](https > The `development` branch is the one where all contributions must be merged before being promoted to master. > If you plan to propose a patch, please commit into the `development` branch, or its own feature branch. -We recommend enabling [travis-ci](https://travis-ci.org/) and [AppVeyor](https://www.appveyor.com/) on your fork of `librealsense` to make sure the changes compile on all platforms and pass unit-tests. +We recommend enabling [travis-ci](https://travis-ci.org/) on your fork of `librealsense` to make sure the changes compile on all platforms and pass unit-tests. + +In addition, please run `pr_check.sh` and `api_check.sh` under `scripts` directory. These scripts verify compliance with project's standards: + +1. Every example / source file must refer to [LICENSE](https://github.com/IntelRealSense/librealsense/blob/master/LICENSE) +2. Every example / source file must include correct copyright notice +3. For indentation we are using spaces and not tabs +4. Line-endings must be Unix and not DOS style +5. Every API header file must be able to compile as the first included header (no implicit dependencies) + +Most common issues can be automatically resolved by running `./pr_check.sh --fix` Please familirize yourself with the [Apache License 2.0](https://github.com/IntelRealSense/librealsense/blob/master/LICENSE) before contributing. @@ -48,3 +58,16 @@ To return to your PR (in order to make more changes): 4. `git push fork` The pull request will be automatically updated +## Comment about the Wrappers + +> It is very time consuming (and often impossible) for a single developer to test contributed functionality using all of the supported [wrappers](https://github.com/IntelRealSense/librealsense/tree/master/wrappers). There is no expectation of adding new functionality to all of the wrappers. One noteable exception is maintaining parity of public enumerations. Without strict maintanance it is easy for these lists to go out of sync and this can have serious runtime consequences. + +For example, when adding new value to [`rs2_option`](https://github.com/IntelRealSense/librealsense/blob/master/include/librealsense2/h/rs_option.h) enum, please also add it to: +1. The list of Matlab options under [`wrappers/matlab/option.m`](https://github.com/IntelRealSense/librealsense/blob/master/wrappers/matlab/option.m#L3-L46) +2. The list of Node.js options [here](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/nodejs/index.js#L4661), [here](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/nodejs/index.js#L4927) and [here](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/nodejs/src/addon.cpp#L4629-L4692) +3. The list of options for [Unreal Engine](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/unrealengine4/Plugins/RealSense/Source/RealSense/Public/RealSenseTypes.h#L56-L118) integration +4. The list of options in the C# wrapper - [`wrappers/csharp/Intel.RealSense/Types/Enums/Option.cs`](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/csharp/Intel.RealSense/Types/Enums/Option.cs) +5. The list of Java options used for Android integration - [`wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/Option.java`](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/android/librealsense/src/main/java/com/intel/realsense/librealsense/Option.java#L4-L64) +6. The list of options in the [python](https://github.com/IntelRealSense/librealsense/blob/v2.32.1/wrappers/python/pybackend.cpp#L102-L165) wrapper + +Once all are updated [travis-ci](https://travis-ci.org/IntelRealSense/librealsense) will give clear indication that each of the wrappers is still passing compilation. diff --git a/COPYING b/NOTICE similarity index 96% rename from COPYING rename to NOTICE index 78df2135aa0..9e0e29bbc78 100644 --- a/COPYING +++ b/NOTICE @@ -90,27 +90,26 @@ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -noc_file_dialog library (MIT License), https://github.com/guillaumechereau/noc -============================================================================== -Copyright (c) 2015 Guillaume Chereau +tiny file dialogs library (zlib licence), http://tinyfiledialogs.sourceforge.net +================================================================================ +Copyright (c) 2014 - 2016 Guillaume Vareille http://ysengrin.com -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. fontawesome (SIL OPEN FONT LICENSE) - http://fontawesome.io =============================================================================== @@ -383,6 +382,20 @@ 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. +libusbhost (Apache License, Version 2.0 ), https://android.googlesource.com/platform/system/core/+/master/libusbhost/include/usbhost/usbhost.h +=============================================================================== + +Copyright (C) 2010 The Android Open Source Project +Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 +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. + libusb (LGPL 2.1), https://github.com/libusb/libusb =============================================================================== GNU LESSER GENERAL PUBLIC LICENSE diff --git a/appveyor.yml b/appveyor.yml index 226f1177dec..4835377a136 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -91,7 +91,7 @@ test_script: if ($LASTEXITCODE -ne 0) { - $test_failed += $element + $test_failed += "software-device" } foreach ($element in $records) diff --git a/code-of-conduct.md b/code-of-conduct.md new file mode 100644 index 00000000000..867958fba3e --- /dev/null +++ b/code-of-conduct.md @@ -0,0 +1,77 @@ +# librealsense Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [sergey.dorodnicov@intel.com](mailto://sergey.dorodnicov@intel.com). All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq + diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 00000000000..3bcc1698e8f --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1,29 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +set(COMMON_SRC + "${CMAKE_CURRENT_LIST_DIR}/rendering.h" + "${CMAKE_CURRENT_LIST_DIR}/model-views.h" + "${CMAKE_CURRENT_LIST_DIR}/model-views.cpp" + "${CMAKE_CURRENT_LIST_DIR}/notifications.h" + "${CMAKE_CURRENT_LIST_DIR}/notifications.cpp" + "${CMAKE_CURRENT_LIST_DIR}/viewer.h" + "${CMAKE_CURRENT_LIST_DIR}/viewer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ux-window.h" + "${CMAKE_CURRENT_LIST_DIR}/ux-window.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ux-alignment.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ux-alignment.h" + "${CMAKE_CURRENT_LIST_DIR}/opengl3.cpp" + "${CMAKE_CURRENT_LIST_DIR}/opengl3.h" + "${CMAKE_CURRENT_LIST_DIR}/rs-config.h" + "${CMAKE_CURRENT_LIST_DIR}/rs-config.cpp" + "${CMAKE_CURRENT_LIST_DIR}/os.h" + "${CMAKE_CURRENT_LIST_DIR}/os.cpp" + "${CMAKE_CURRENT_LIST_DIR}/fw-update-helper.h" + "${CMAKE_CURRENT_LIST_DIR}/fw-update-helper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/metadata-helper.h" + "${CMAKE_CURRENT_LIST_DIR}/metadata-helper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/on-chip-calib.h" + "${CMAKE_CURRENT_LIST_DIR}/on-chip-calib.cpp" + "${CMAKE_CURRENT_LIST_DIR}/decompress-huffman.h" +) diff --git a/common/decompress-huffman.h b/common/decompress-huffman.h new file mode 100644 index 00000000000..ab9e1fde645 --- /dev/null +++ b/common/decompress-huffman.h @@ -0,0 +1,8947 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#pragma once + + +#include +#include + +#define ONE_NIBBLE_ROLLED() \ + currentState = stateWord & 0x7fc0; \ + nextStateWord = *(uint32_t *)(((unsigned char *)DecompressionStateTable) + currentState + nibble); \ + if (stateWord & 0x8) { \ + *currentImageLine++ = byteAbove + (unsigned char)(stateWord >> 24); \ + byteAbove = *previousImageLine++; \ + for (i = 0; i < (stateWord & 0x7); i++) { \ + *currentImageLine++ = byteAbove; \ + byteAbove = *previousImageLine++; \ + } \ + } \ + stateWord = nextStateWord; + +#define ONE_NIBBLE_UNROLLED() \ + currentState = stateWord & 0x7fc0; \ + nextStateWord = *(uint32_t *)(((unsigned char *)DecompressionStateTable) + currentState + nibble); \ + if (stateWord & 0x8) { \ + *currentImageLine++ = byteAbove + (unsigned char)(stateWord >> 24); \ + byteAbove = *previousImageLine++; \ + currentImageLine += (stateWord & 0x7); \ + previousImageLine += (stateWord &0x7); \ + switch (stateWord & 0x7) { \ + case 7:\ + currentImageLine[-7] = byteAbove; \ + byteAbove = previousImageLine[-7]; \ + case 6:\ + currentImageLine[-6] = byteAbove; \ + byteAbove = previousImageLine[-6]; \ + case 5:\ + currentImageLine[-5] = byteAbove; \ + byteAbove = previousImageLine[-5]; \ + case 4:\ + currentImageLine[-4] = byteAbove; \ + byteAbove = previousImageLine[-4]; \ + case 3:\ + currentImageLine[-3] = byteAbove; \ + byteAbove = previousImageLine[-3]; \ + case 2:\ + currentImageLine[-2] = byteAbove; \ + byteAbove = previousImageLine[-2]; \ + case 1:\ + currentImageLine[-1] = byteAbove; \ + byteAbove = previousImageLine[-1]; \ + break; \ + default: \ + break; \ + } \ + } \ + stateWord = nextStateWord; + +#define ONE_NIBBLE_LONG() \ + currentState = stateWord & 0x7fc0; \ + nextStateWord = *(uint32_t *)(((unsigned char *)DecompressionStateTable) + currentState + nibble); \ + switch (stateWord & 0xf) { \ + case 0xf:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 8; \ + previousImageLine += 8; \ + currentImageLine[-7] = previousImageLine[-8]; \ + currentImageLine[-6] = previousImageLine[-7]; \ + currentImageLine[-5] = previousImageLine[-6]; \ + currentImageLine[-4] = previousImageLine[-5]; \ + currentImageLine[-3] = previousImageLine[-4]; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0xe:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 7; \ + previousImageLine += 7; \ + currentImageLine[-6] = previousImageLine[-7]; \ + currentImageLine[-5] = previousImageLine[-6]; \ + currentImageLine[-4] = previousImageLine[-5]; \ + currentImageLine[-3] = previousImageLine[-4]; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0xd:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 6; \ + previousImageLine += 6; \ + currentImageLine[-5] = previousImageLine[-6]; \ + currentImageLine[-4] = previousImageLine[-5]; \ + currentImageLine[-3] = previousImageLine[-4]; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0xc:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 5; \ + previousImageLine += 5; \ + currentImageLine[-4] = previousImageLine[-5]; \ + currentImageLine[-3] = previousImageLine[-4]; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0xb: \ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 4; \ + previousImageLine += 4; \ + currentImageLine[-3] = previousImageLine[-4]; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0xa: \ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 3; \ + previousImageLine += 3; \ + currentImageLine[-2] = previousImageLine[-3]; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0x9:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + currentImageLine += 2; \ + previousImageLine += 2; \ + currentImageLine[-1] = previousImageLine[-2]; \ + byteAbove = previousImageLine[-1]; \ + break; \ + case 0x8:\ + *currentImageLine = byteAbove + (unsigned char)(stateWord >> 24); \ + byteAbove = *previousImageLine; \ + currentImageLine += 1; \ + previousImageLine += 1; \ + break; \ + } \ + stateWord = nextStateWord; + +#define ONE_NIBBLE_ROLLED_CHECKING(_bound_) \ + currentState = stateWord & 0x7fc0; \ + nextStateWord = *(uint32_t *)(((unsigned char *)DecompressionStateTable) + currentState + nibble); \ + if (stateWord & 0x8) { \ + *currentImageLine++ = byteAbove + (unsigned char)(stateWord >> 24); \ + byteAbove = *previousImageLine++; \ + for (i = 0; i < (stateWord & 0x7) && currentImageLine < (_bound_); i++) { \ + *currentImageLine++ = byteAbove; \ + byteAbove = *previousImageLine++; \ + } \ + } \ + stateWord = nextStateWord; + +#define ONE_NIBBLE ONE_NIBBLE_LONG + +static int DecompressionStateTable[510 * 16] = +{ + // State 0 + (0 << 24) | (4 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (112 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (149 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (150 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (225 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (261 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (295 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (398 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (0 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (0 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (0 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 1 + (0 << 24) | (5 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (20 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (113 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (129 << 6) | (0 << 3) | 0, // nibble 03 + (1 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (255 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (151 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (152 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (226 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (239 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (262 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (263 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (296 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (396 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (399 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (471 << 6) | (0 << 3) | 0, // nibble 0f + // State 2 + (9 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (6 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (21 << 6) | (0 << 3) | 0, // nibble 02 + (248 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (8 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (114 << 6) | (0 << 3) | 0, // nibble 05 + (7 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (130 << 6) | (0 << 3) | 0, // nibble 07 + (1 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (1 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (255 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (255 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (249 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (250 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (153 << 6) | (0 << 3) | 0, // nibble 0e + (6 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 3 + (9 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (7 << 6) | (0 << 3) | 0, // nibble 02 + (15 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (0 << 24) | (22 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (50 << 6) | (0 << 3) | 0, // nibble 05 + (248 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (248 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (8 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (8 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (242 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (115 << 6) | (0 << 3) | 0, // nibble 0b + (7 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (7 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (131 << 6) | (0 << 3) | 0, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 4 + (9 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (9 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (9 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (8 << 6) | (0 << 3) | 0, // nibble 04 + (236 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (15 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (15 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (0 << 24) | (23 << 6) | (0 << 3) | 0, // nibble 08 + (20 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (51 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (78 << 6) | (0 << 3) | 0, // nibble 0b + (248 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (248 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (248 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (248 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 5 + (9 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (9 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (9 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (9 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (9 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (9 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (9 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (232 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (9 << 6) | (0 << 3) | 0, // nibble 09 + (236 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (236 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (15 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (15 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (15 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (15 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 6 + (232 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (10 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (16 << 6) | (0 << 3) | 0, // nibble 03 + (236 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (236 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (236 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (236 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (15 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (15 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (15 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (15 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (15 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (15 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (15 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (15 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 7 + (232 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (232 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (232 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (11 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (13 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (17 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (18 << 6) | (0 << 3) | 0, // nibble 07 + (236 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (236 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (236 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (236 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (236 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (236 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (236 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (236 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 8 + (232 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (232 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (232 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (232 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (232 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (232 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (232 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (244 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (12 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (14 << 6) | (0 << 3) | 0, // nibble 0a + (245 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (193 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (207 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (247 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (19 << 6) | (0 << 3) | 0, // nibble 0f + // State 9 + (244 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (244 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (152 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (80 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (82 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (15 << 6) | (0 << 3) | 0, // nibble 05 + (245 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (245 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (193 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (193 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (207 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (207 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (247 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (247 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (160 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (171 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 10 + (244 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (244 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (244 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (244 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (152 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (152 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (80 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (80 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (82 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (82 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (211 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (30 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (245 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (245 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (245 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (245 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 11 + (244 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (244 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (244 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (244 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (244 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (244 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (244 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (244 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (152 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (152 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (152 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (152 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (80 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (80 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (80 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (80 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 12 + (152 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (152 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (152 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (152 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (152 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (152 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (152 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (152 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (80 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (80 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (80 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (80 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (80 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (80 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (80 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (80 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 13 + (82 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (82 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (82 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (82 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (211 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (211 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (30 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (30 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (245 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (245 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (245 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (245 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (245 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (245 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (245 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (245 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 14 + (82 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (82 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (82 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (82 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (82 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (82 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (82 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (82 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (211 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (211 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (211 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (211 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (30 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (30 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (30 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (30 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 15 + (211 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (211 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (211 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (211 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (211 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (211 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (211 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (211 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (30 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (30 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (30 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (30 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (30 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (30 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (30 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (30 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 16 + (193 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (193 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (193 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (193 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (207 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (207 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (207 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (207 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (247 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (247 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (247 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (247 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (160 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (160 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (171 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (171 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 17 + (193 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (193 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (193 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (193 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (193 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (193 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (193 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (193 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (207 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (207 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (207 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (207 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (207 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (207 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (207 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (207 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 18 + (247 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (247 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (247 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (247 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (247 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (247 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (247 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (247 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (160 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (160 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (160 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (160 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (171 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (171 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (171 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (171 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 19 + (160 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (160 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (160 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (160 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (160 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (160 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (160 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (160 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (171 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (171 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (171 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (171 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (171 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (171 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (171 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (171 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 20 + (0 << 24) | (24 << 6) | (0 << 3) | 0, // nibble 00 + (25 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (20 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (20 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (0 << 24) | (52 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (63 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (79 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (102 << 6) | (0 << 3) | 0, // nibble 07 + (248 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (248 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (248 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (248 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (248 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (248 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (248 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (248 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 21 + (0 << 24) | (25 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (43 << 6) | (0 << 3) | 0, // nibble 01 + (25 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (25 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (20 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (20 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (20 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (20 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (53 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (60 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (64 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (73 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (80 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (87 << 6) | (0 << 3) | 0, // nibble 0d + (228 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (103 << 6) | (0 << 3) | 0, // nibble 0f + // State 22 + (0 << 24) | (26 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (32 << 6) | (0 << 3) | 0, // nibble 01 + (36 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (44 << 6) | (0 << 3) | 0, // nibble 03 + (25 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (25 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (25 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (25 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (20 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (20 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (20 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (20 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (20 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (20 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (20 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (20 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 23 + (0 << 24) | (27 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (29 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (33 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (36 << 6) | (0 << 3) | 0, // nibble 03 + (36 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (36 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (0 << 24) | (45 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (49 << 6) | (0 << 3) | 0, // nibble 07 + (25 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (25 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (25 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (25 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (25 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (25 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (25 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (25 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 24 + (232 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (28 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (30 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (31 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (34 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (35 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (37 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (40 << 6) | (0 << 3) | 0, // nibble 07 + (36 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (36 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (36 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (36 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (46 << 6) | (0 << 3) | 0, // nibble 0c + (156 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (164 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (83 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 25 + (232 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (32 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (141 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (97 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (103 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (147 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (156 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (165 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (179 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (192 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (213 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (0 << 24) | (38 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (39 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (41 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (42 << 6) | (0 << 3) | 0, // nibble 0f + // State 26 + (232 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (232 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (232 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (32 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (32 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (141 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (141 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (97 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (97 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (103 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (103 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (147 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (147 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (156 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (156 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 27 + (232 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (232 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (232 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (232 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (232 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (232 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (232 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (232 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (32 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (32 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (32 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (32 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (141 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (141 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (141 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 28 + (32 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (32 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (32 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (32 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (32 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (32 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (32 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (32 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (141 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (141 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (141 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (141 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (141 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (141 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (141 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 29 + (97 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (97 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (97 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (97 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (103 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (103 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (103 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (103 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (147 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (147 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (147 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (147 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (156 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (156 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (156 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (156 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 30 + (97 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (97 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (97 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (97 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (97 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (97 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (97 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (97 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (103 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (103 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (103 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (103 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (103 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (103 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (103 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (103 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 31 + (147 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (147 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (147 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (147 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (147 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (147 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (147 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (147 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (156 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (156 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (156 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (156 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (156 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (156 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (156 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (156 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 32 + (165 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (179 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (179 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (192 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (192 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (213 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (213 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (1 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (39 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (47 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (122 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (117 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (135 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (136 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 33 + (165 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (165 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (165 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (179 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (179 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (179 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (179 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (192 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (192 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (192 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (192 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (213 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (213 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (213 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (213 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 34 + (165 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (165 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (165 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (165 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (165 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (165 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (165 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (179 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (179 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (179 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (179 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (179 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (179 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (179 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (179 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 35 + (192 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (192 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (192 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (192 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (192 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (192 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (192 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (192 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (213 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (213 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (213 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (213 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (213 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (213 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (213 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (213 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 36 + (1 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (1 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (39 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (39 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (47 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (47 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (122 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (122 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (117 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (117 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (135 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (135 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (136 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (136 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (141 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 37 + (1 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (1 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (1 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (1 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (39 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (39 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (39 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (39 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (47 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (47 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (47 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (47 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (122 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (122 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (122 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (122 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 38 + (1 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (1 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (1 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (1 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (1 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (1 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (1 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (1 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (39 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (39 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (39 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (39 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (39 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (39 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (39 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (39 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 39 + (47 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (47 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (47 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (47 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (47 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (47 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (47 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (47 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (122 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (122 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (122 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (122 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (122 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (122 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (122 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (122 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 40 + (117 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (117 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (117 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (117 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (135 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (135 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (135 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (135 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (136 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (136 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (136 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (136 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (141 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (141 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (141 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 41 + (117 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (117 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (117 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (117 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (117 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (117 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (117 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (117 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (135 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (135 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (135 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (135 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (135 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (135 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (135 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (135 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 42 + (136 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (136 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (136 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (136 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (136 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (136 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (136 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (136 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (141 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (141 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (141 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (141 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (141 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (141 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (141 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (141 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 43 + (36 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (36 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (36 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (36 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (36 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (36 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (36 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (36 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (47 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (48 << 6) | (0 << 3) | 0, // nibble 09 + (156 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (156 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (164 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (164 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (83 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (83 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 44 + (144 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (149 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (151 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (155 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (156 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (156 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (156 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (156 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (164 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (164 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (164 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (164 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (83 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (83 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (83 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (83 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 45 + (144 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (144 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (149 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (149 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (151 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (151 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (155 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (155 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (156 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (156 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (156 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (156 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (156 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (156 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (156 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (156 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 46 + (144 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (144 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (144 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (144 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (149 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (149 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (149 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (149 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (151 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (151 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (151 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (151 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (155 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (155 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (155 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (155 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 47 + (144 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (144 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (144 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (144 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (144 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (144 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (144 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (144 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (149 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (149 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (149 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (149 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (149 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (149 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (149 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (149 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 48 + (151 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (151 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (151 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (151 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (151 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (151 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (151 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (151 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (155 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (155 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (155 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (155 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (155 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (155 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (155 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (155 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 49 + (164 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (164 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (164 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (164 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (164 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (164 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (164 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (164 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (83 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (83 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (83 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (83 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (83 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (83 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (83 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (83 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 50 + (0 << 24) | (54 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (59 << 6) | (0 << 3) | 0, // nibble 01 + (221 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (61 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (65 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (69 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (74 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (76 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (81 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (82 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (88 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (91 << 6) | (0 << 3) | 0, // nibble 0b + (228 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (228 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (104 << 6) | (0 << 3) | 0, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 51 + (0 << 24) | (55 << 6) | (0 << 3) | 0, // nibble 00 + (17 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (208 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (243 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (221 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (221 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (246 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (62 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (66 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (67 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (70 << 6) | (0 << 3) | 0, // nibble 0a + (48 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (248 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (0 << 24) | (75 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (77 << 6) | (0 << 3) | 0, // nibble 0e + (8 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 52 + (84 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (56 << 6) | (0 << 3) | 0, // nibble 01 + (17 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (17 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (208 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (208 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (243 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (243 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (221 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (221 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (221 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (221 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (246 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (246 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (23 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (150 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 53 + (84 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (84 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (57 << 6) | (0 << 3) | 0, // nibble 02 + (126 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (17 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (17 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (17 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (17 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (208 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (208 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (208 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (208 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (243 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (243 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (243 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (243 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 54 + (84 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (84 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (84 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (84 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (188 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (58 << 6) | (0 << 3) | 0, // nibble 05 + (126 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (126 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (17 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (17 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (17 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (17 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (17 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (17 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (17 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (17 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 55 + (84 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (84 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (84 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (84 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (84 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (84 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (84 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (84 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (188 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (188 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (48 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (97 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (126 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (126 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (126 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (126 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 56 + (188 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (188 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (188 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (188 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (48 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (48 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (97 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (97 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (126 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (126 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (126 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (126 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (126 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (126 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (126 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (126 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 57 + (188 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (188 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (188 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (188 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (188 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (188 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (188 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (188 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (48 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (48 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (48 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (48 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (97 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (97 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (97 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (97 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 58 + (48 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (48 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (48 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (48 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (48 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (48 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (48 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (48 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (97 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (97 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (97 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (97 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (97 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (97 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (97 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (97 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 59 + (208 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (208 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (208 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (208 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (208 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (208 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (208 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (208 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (243 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (243 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (243 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (243 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (243 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (243 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (243 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (243 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 60 + (221 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (221 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (221 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (221 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (221 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (221 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (221 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (221 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (246 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (246 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (246 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (246 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (23 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (23 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (150 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (150 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 61 + (246 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (246 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (246 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (246 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (246 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (246 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (246 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (246 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (23 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (23 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (23 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (23 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (150 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (150 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (150 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (150 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 62 + (23 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (23 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (23 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (23 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (23 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (23 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (23 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (23 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (150 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (150 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (150 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (150 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (150 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (150 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (150 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (150 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 63 + (73 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (92 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (231 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (68 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (71 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (72 << 6) | (0 << 3) | 0, // nibble 05 + (48 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (48 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (248 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (248 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (163 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (170 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (65 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (76 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (8 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (8 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 64 + (73 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (73 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (92 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (92 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (231 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (231 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (130 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (132 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (140 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (107 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (168 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (224 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (48 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (48 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (48 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (48 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 65 + (73 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (73 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (73 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (73 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (92 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (92 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (92 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (92 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (231 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (231 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (231 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (231 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (130 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (130 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (132 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (132 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 66 + (73 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (73 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (73 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (73 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (73 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (73 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (73 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (73 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (92 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (92 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (92 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (92 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (92 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (92 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (92 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (92 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 67 + (231 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (231 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (231 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (231 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (231 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (231 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (231 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (231 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (130 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (130 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (130 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (130 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (132 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (132 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (132 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (132 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 68 + (130 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (130 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (130 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (130 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (130 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (130 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (130 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (130 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (132 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (132 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (132 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (132 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (132 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (132 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (132 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (132 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 69 + (140 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (140 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (107 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (107 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (168 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (168 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (224 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (224 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (48 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (48 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (48 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (48 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (48 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (48 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (48 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (48 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 70 + (140 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (140 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (140 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (140 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (107 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (107 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (107 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (107 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (168 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (168 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (168 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (168 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (224 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (224 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (224 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (224 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 71 + (140 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (140 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (140 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (140 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (140 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (140 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (140 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (140 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (107 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (107 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (107 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (107 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (107 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (107 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (107 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (107 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 72 + (168 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (168 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (168 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (168 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (168 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (168 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (168 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (168 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (224 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (224 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (224 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (224 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (224 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (224 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (224 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (224 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 73 + (248 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (248 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (248 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (248 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (163 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (163 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (170 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (170 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (65 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (65 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (76 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (76 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (8 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (8 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (8 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (8 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 74 + (248 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (248 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (248 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (248 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (248 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (248 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (248 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (248 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (163 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (163 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (163 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (163 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (170 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (170 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (170 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (170 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 75 + (163 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (163 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (163 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (163 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (163 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (163 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (163 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (163 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (170 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (170 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (170 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (170 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (170 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (170 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (170 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (170 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 76 + (65 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (65 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (65 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (65 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (76 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (76 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (76 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (76 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (8 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (8 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (8 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (8 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (8 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (8 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (8 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (8 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 77 + (65 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (65 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (65 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (65 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (65 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (65 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (65 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (65 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (76 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (76 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (76 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (76 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (76 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (76 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (76 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (76 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 78 + (9 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (209 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (44 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (83 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (89 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (90 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (92 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (95 << 6) | (0 << 3) | 0, // nibble 07 + (228 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (228 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (228 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (228 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (105 << 6) | (0 << 3) | 0, // nibble 0c + (210 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (222 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 79 + (9 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (209 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (209 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (44 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (44 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (0 << 24) | (84 << 6) | (0 << 3) | 0, // nibble 06 + (172 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (187 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (78 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (98 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (102 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (0 << 24) | (93 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (94 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (96 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (99 << 6) | (0 << 3) | 0, // nibble 0f + // State 80 + (9 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (9 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (9 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (209 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (209 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (209 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (209 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (44 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (44 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (44 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (44 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (85 << 6) | (0 << 3) | 0, // nibble 0c + (29 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 81 + (9 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (9 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (9 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (9 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (9 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (9 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (9 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (9 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (209 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (209 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (209 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (209 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (209 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (209 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (209 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (209 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 82 + (44 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (44 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (44 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (44 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (44 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (44 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (44 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (44 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (86 << 6) | (0 << 3) | 0, // nibble 08 + (49 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (29 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (29 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (172 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (172 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 83 + (112 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (195 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (49 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (49 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (29 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (29 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (29 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (29 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (172 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (172 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (172 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (172 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (172 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (172 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 84 + (112 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (195 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (195 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (49 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (49 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (49 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (49 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (29 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (29 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (29 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (29 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (29 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (29 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (29 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (29 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 85 + (112 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (112 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (112 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (195 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (195 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (195 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (195 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (49 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (49 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (49 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (49 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (49 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (49 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (49 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (49 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 86 + (112 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (112 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (112 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (112 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (112 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (112 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (112 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (195 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (195 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (195 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (195 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (195 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (195 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (195 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (195 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 87 + (187 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (187 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (78 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (78 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (98 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (98 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (102 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (102 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (206 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (217 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (223 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (230 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (0 << 24) | (97 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (98 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (100 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (101 << 6) | (0 << 3) | 0, // nibble 0f + // State 88 + (187 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (187 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (187 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (187 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (78 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (78 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (78 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (78 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (98 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (98 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (98 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (98 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (102 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (102 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (102 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (102 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 89 + (187 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (187 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (187 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (187 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (187 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (187 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (187 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (187 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (78 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (78 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (78 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (78 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (78 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (78 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (78 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (78 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 90 + (98 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (98 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (98 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (98 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (98 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (98 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (98 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (98 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (102 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (102 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (102 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (102 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (102 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (102 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (102 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (102 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 91 + (206 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (206 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (217 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (217 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (223 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (223 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (230 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (230 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (54 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (60 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (65 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (69 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (76 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (78 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (96 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (117 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 92 + (206 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (206 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (206 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (206 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (217 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (217 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (217 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (217 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (223 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (223 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (223 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (223 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (230 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (230 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (230 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (230 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 93 + (206 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (206 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (206 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (206 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (206 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (206 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (206 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (206 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (217 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (217 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (217 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (217 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (217 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (217 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (217 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (217 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 94 + (223 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (223 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (223 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (223 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (223 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (223 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (223 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (223 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (230 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (230 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (230 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (230 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (230 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (230 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (230 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (230 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 95 + (54 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (54 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (60 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (60 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (65 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (65 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (69 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (69 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (76 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (76 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (78 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (78 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (96 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (96 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (117 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (117 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 96 + (54 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (54 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (54 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (54 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (60 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (60 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (60 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (60 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (65 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (65 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (65 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (65 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (69 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (69 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (69 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (69 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 97 + (54 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (54 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (54 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (54 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (54 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (54 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (54 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (54 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (60 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (60 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (60 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (60 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (60 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (60 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (60 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (60 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 98 + (65 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (65 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (65 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (65 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (65 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (65 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (65 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (65 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (69 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (69 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (69 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (69 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (69 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (69 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (69 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (69 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 99 + (76 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (76 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (76 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (76 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (78 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (78 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (78 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (78 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (96 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (96 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (96 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (96 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (117 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (117 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (117 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (117 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 100 + (76 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (76 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (76 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (76 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (76 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (76 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (76 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (76 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (78 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (78 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (78 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (78 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (78 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (78 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (78 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (78 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 101 + (96 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (96 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (96 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (96 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (96 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (96 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (96 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (96 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (117 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (117 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (117 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (117 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (117 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (117 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (117 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (117 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 102 + (228 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (228 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (228 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (228 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (228 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (228 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (228 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (228 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (106 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (109 << 6) | (0 << 3) | 0, // nibble 09 + (210 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (210 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (222 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (222 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (222 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 103 + (0 << 24) | (107 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (108 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (110 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (111 << 6) | (0 << 3) | 0, // nibble 03 + (210 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (210 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (210 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (210 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (222 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (222 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (222 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (222 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (222 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (222 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (222 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 104 + (119 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (114 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (122 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (146 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (153 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (157 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (194 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (201 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (210 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (210 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (210 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (210 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (210 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (210 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (210 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (210 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 105 + (119 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (119 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (114 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (114 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (122 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (122 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (146 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (146 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (153 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (153 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (157 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (157 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (194 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (194 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 106 + (119 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (119 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (119 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (119 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (114 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (114 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (114 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (114 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (122 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (122 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (122 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (122 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (146 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (146 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (146 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (146 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 107 + (119 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (119 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (119 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (119 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (119 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (119 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (119 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (119 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (114 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (114 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (114 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (114 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (114 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (114 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (114 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (114 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 108 + (122 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (122 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (122 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (122 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (122 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (122 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (122 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (122 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (146 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (146 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (146 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (146 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (146 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (146 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (146 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (146 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 109 + (153 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (153 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (153 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (153 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (157 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (157 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (157 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (157 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (194 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (194 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (194 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (194 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (201 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (201 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 110 + (153 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (153 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (153 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (153 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (153 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (153 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (153 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (153 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (157 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (157 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (157 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (157 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (157 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (157 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (157 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (157 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 111 + (194 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (194 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (194 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (194 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (194 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (194 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (194 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (194 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (201 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (201 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (201 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (201 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (201 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (201 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 112 + (8 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (8 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (8 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (8 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (242 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (242 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (237 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (116 << 6) | (0 << 3) | 0, // nibble 07 + (7 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (7 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (7 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (7 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (132 << 6) | (0 << 3) | 0, // nibble 0c + (19 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 113 + (8 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (8 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (8 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (8 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (8 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (8 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (8 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (8 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (242 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (242 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (242 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (242 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (237 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (237 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (24 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (117 << 6) | (0 << 3) | 0, // nibble 0f + // State 114 + (242 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (242 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (242 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (242 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (242 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (242 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (242 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (242 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (237 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (237 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (237 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (237 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (24 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (24 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (118 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (124 << 6) | (0 << 3) | 0, // nibble 0f + // State 115 + (237 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (237 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (237 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (237 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (237 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (237 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (237 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (237 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (24 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (24 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (24 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (24 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (119 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (121 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (125 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (127 << 6) | (0 << 3) | 0, // nibble 0f + // State 116 + (24 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (24 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (24 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (24 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (24 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (24 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (24 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (24 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (10 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (120 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (122 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (123 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (126 << 6) | (0 << 3) | 0, // nibble 0c + (46 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (217 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (128 << 6) | (0 << 3) | 0, // nibble 0f + // State 117 + (10 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (10 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (25 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (159 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (162 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (169 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (173 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (87 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (89 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (234 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (46 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (46 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (217 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (217 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (24 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 118 + (10 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (10 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (10 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (10 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (25 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (25 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (159 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (159 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (162 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (162 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (169 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (169 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (173 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (173 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (87 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (87 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 119 + (10 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (10 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (10 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (10 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (10 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (10 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (10 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (10 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (25 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (25 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (25 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (25 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (159 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (159 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (159 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (159 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 120 + (25 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (25 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (25 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (25 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (25 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (25 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (25 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (25 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (159 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (159 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (159 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (159 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (159 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (159 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (159 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (159 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 121 + (162 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (162 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (162 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (162 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (169 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (169 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (169 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (169 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (173 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (173 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (173 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (173 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (87 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (87 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (87 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (87 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 122 + (162 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (162 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (162 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (162 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (162 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (162 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (162 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (162 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (169 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (169 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (169 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (169 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (169 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (169 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (169 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (169 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 123 + (173 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (173 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (173 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (173 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (173 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (173 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (173 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (173 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (87 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (87 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (87 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (87 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (87 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (87 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (87 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (87 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 124 + (89 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (89 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (234 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (234 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (46 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (46 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (46 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (46 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (217 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (217 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (217 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (217 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (24 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (24 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 125 + (89 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (89 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (89 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (89 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (234 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (234 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (234 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (234 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (46 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (46 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (46 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (46 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (46 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (46 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (46 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (46 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 126 + (89 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (89 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (89 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (89 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (89 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (89 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (89 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (89 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (234 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (234 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (234 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (234 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (234 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (234 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (234 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (234 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 127 + (217 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (217 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (217 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (217 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (217 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (217 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (217 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (217 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (24 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (24 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (24 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (24 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (177 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (177 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 128 + (24 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (24 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (24 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (24 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (24 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (24 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (24 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (24 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (177 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (177 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (177 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (177 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (177 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (177 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 129 + (7 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (7 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (7 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (7 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (7 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (7 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (7 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (7 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (233 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (133 << 6) | (0 << 3) | 0, // nibble 09 + (19 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (19 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (14 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (14 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 130 + (233 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (134 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (140 << 6) | (0 << 3) | 0, // nibble 03 + (19 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (19 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (19 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (19 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (14 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (14 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (14 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (14 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (14 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (14 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 131 + (233 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (233 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (233 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (135 << 6) | (0 << 3) | 0, // nibble 04 + (34 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (141 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (145 << 6) | (0 << 3) | 0, // nibble 07 + (19 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (19 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (19 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (19 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (19 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (19 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (19 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (19 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 132 + (233 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (233 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (233 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (233 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (233 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (233 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (233 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (136 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (137 << 6) | (0 << 3) | 0, // nibble 09 + (34 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (34 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (142 << 6) | (0 << 3) | 0, // nibble 0c + (12 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (146 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (147 << 6) | (0 << 3) | 0, // nibble 0f + // State 133 + (233 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (252 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (138 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (139 << 6) | (0 << 3) | 0, // nibble 03 + (34 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (34 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (34 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (34 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (143 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (144 << 6) | (0 << 3) | 0, // nibble 09 + (12 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (12 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (69 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (71 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (77 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (79 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 134 + (233 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (252 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (252 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (138 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (139 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (145 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (161 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (34 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (34 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (34 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (34 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (34 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (34 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (34 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (34 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 135 + (233 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (233 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (233 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (252 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (252 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (252 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (252 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (138 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (138 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (139 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (139 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (145 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (145 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (161 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (161 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 136 + (233 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (233 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (233 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (233 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (233 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (233 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (233 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (233 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (252 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (252 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (252 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (252 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (252 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (252 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (252 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (252 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 137 + (138 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (138 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (138 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (138 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (139 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (139 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (139 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (139 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (145 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (145 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (145 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (145 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (161 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (161 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (161 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (161 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 138 + (138 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (138 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (138 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (138 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (138 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (138 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (138 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (138 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (139 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (139 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (139 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (139 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (139 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (139 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (139 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (139 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 139 + (145 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (145 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (145 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (145 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (145 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (145 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (145 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (145 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (161 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (161 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (161 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (161 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (161 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (161 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (161 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (161 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 140 + (112 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (119 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (127 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (216 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (12 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (12 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (12 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (12 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (69 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (69 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (71 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (71 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (77 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (77 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (79 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (79 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 141 + (112 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (119 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (119 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (127 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (127 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (216 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (216 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (12 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (12 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (12 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (12 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (12 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (12 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (12 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (12 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 142 + (112 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (112 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (112 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (119 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (119 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (119 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (119 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (127 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (127 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (127 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (127 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (216 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (216 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (216 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (216 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 143 + (112 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (112 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (112 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (112 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (112 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (112 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (112 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (112 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (119 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (119 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (119 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (119 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (119 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (119 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (119 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (119 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 144 + (127 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (127 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (127 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (127 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (127 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (127 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (127 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (127 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (216 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (216 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (216 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (216 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (216 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (216 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (216 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (216 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 145 + (69 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (69 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (69 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (69 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (71 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (71 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (71 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (71 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (77 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (77 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (77 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (77 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (79 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (79 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (79 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (79 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 146 + (69 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (69 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (69 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (69 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (69 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (69 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (69 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (69 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (71 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (71 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (71 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (71 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (71 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (71 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (71 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (71 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 147 + (77 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (77 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (77 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (77 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (77 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (77 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (77 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (77 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (79 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (79 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (79 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (79 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (79 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (79 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (79 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (79 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 148 + (1 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (1 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (1 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (1 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (255 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (255 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (255 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (255 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (249 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (249 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (250 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (250 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (154 << 6) | (0 << 3) | 0, // nibble 0c + (243 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (6 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (6 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 149 + (1 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (1 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (1 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (1 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (1 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (1 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (1 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (1 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (255 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (255 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (255 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (255 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (255 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (255 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (255 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (255 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 150 + (249 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (249 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (249 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (249 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (250 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (250 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (250 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (250 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (155 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (185 << 6) | (0 << 3) | 0, // nibble 09 + (243 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (243 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (6 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (6 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (6 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (6 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 151 + (249 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (249 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (249 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (249 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (249 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (249 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (249 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (249 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (250 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (250 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (250 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (250 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (250 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (250 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (250 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (250 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 152 + (0 << 24) | (156 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (173 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (186 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (196 << 6) | (0 << 3) | 0, // nibble 03 + (243 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (243 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (243 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (243 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (6 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (6 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (6 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (6 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (6 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (6 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (6 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (6 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 153 + (29 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (157 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (174 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (181 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (187 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (195 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (197 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (216 << 6) | (0 << 3) | 0, // nibble 07 + (243 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (243 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (243 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (243 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (243 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (243 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (243 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (243 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 154 + (29 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (29 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (158 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (172 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (175 << 6) | (0 << 3) | 0, // nibble 04 + (35 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (182 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (183 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (188 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (193 << 6) | (0 << 3) | 0, // nibble 09 + (224 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (223 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (0 << 24) | (198 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (201 << 6) | (0 << 3) | 0, // nibble 0d + (33 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (217 << 6) | (0 << 3) | 0, // nibble 0f + // State 155 + (29 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (29 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (29 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (29 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (159 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (165 << 6) | (0 << 3) | 0, // nibble 05 + (11 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (14 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (42 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (176 << 6) | (0 << 3) | 0, // nibble 09 + (35 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (35 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (16 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (212 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (184 << 6) | (0 << 3) | 0, // nibble 0e + (218 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 156 + (29 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (29 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (29 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (29 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (29 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (29 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (29 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (29 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (160 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (164 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (166 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (169 << 6) | (0 << 3) | 0, // nibble 0b + (11 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (11 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 157 + (0 << 24) | (161 << 6) | (0 << 3) | 0, // nibble 00 + (136 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (104 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (109 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (0 << 24) | (167 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (168 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (170 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (171 << 6) | (0 << 3) | 0, // nibble 07 + (11 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (11 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (11 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (11 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (14 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (14 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 158 + (0 << 24) | (162 << 6) | (0 << 3) | 0, // nibble 00 + (43 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (136 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (136 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (104 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (104 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (109 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (109 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (68 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (81 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (84 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (129 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (150 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (173 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (185 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 159 + (0 << 24) | (163 << 6) | (0 << 3) | 0, // nibble 00 + (37 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (43 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (43 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (136 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (136 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (136 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (136 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (104 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (104 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (104 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (104 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (109 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (109 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (109 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (109 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 160 + (103 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (62 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (37 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (37 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (43 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (43 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (43 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (43 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (136 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (136 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (136 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (136 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (136 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (136 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (136 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (136 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 161 + (103 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (103 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (62 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (62 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (37 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (37 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (37 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (37 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (43 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (43 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (43 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (43 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (43 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (43 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (43 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (43 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 162 + (103 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (103 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (103 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (103 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (62 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (62 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (62 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (62 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (37 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (37 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (37 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (37 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (37 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (37 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (37 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (37 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 163 + (103 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (103 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (103 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (103 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (103 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (103 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (103 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (103 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (62 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (62 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (62 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (62 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (62 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (62 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (62 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (62 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 164 + (104 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (104 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (104 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (104 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (104 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (104 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (104 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (104 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (109 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (109 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (109 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (109 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (109 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (109 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (109 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (109 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 165 + (68 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (68 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (81 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (81 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (84 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (84 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (129 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (129 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (150 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (150 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (173 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (173 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (185 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (185 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (203 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 166 + (68 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (68 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (68 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (68 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (81 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (81 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (81 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (81 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (84 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (84 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (84 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (84 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (129 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (129 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (129 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (129 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 167 + (68 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (68 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (68 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (68 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (68 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (68 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (68 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (68 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (81 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (81 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (81 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (81 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (81 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (81 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (81 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (81 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 168 + (84 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (84 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (84 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (84 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (84 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (84 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (84 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (84 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (129 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (129 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (129 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (129 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (129 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (129 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (129 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (129 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 169 + (150 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (150 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (150 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (150 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (173 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (173 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (173 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (173 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (185 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (185 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (185 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (185 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (203 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (203 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (203 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 170 + (150 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (150 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (150 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (150 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (150 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (150 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (150 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (150 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (173 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (173 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (173 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (173 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (173 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (173 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (173 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (173 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 171 + (185 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (185 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (185 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (185 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (185 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (185 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (185 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (185 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (203 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (203 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (203 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (203 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (203 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (203 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (203 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 172 + (11 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (11 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (11 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (11 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (11 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (11 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (11 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (11 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (14 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (14 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (14 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (14 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (14 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (14 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (14 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (14 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 173 + (42 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (42 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (177 << 6) | (0 << 3) | 0, // nibble 02 + (158 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (35 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (35 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (35 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (35 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (16 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (16 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (212 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (212 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (62 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (66 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (218 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (218 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 174 + (42 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (42 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (42 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (42 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (178 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (179 << 6) | (0 << 3) | 0, // nibble 05 + (158 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (158 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (35 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (35 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (35 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (35 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (35 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (35 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (35 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (35 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 175 + (42 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (42 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (42 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (42 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (42 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (42 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (42 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (42 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (205 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (208 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (255 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (180 << 6) | (0 << 3) | 0, // nibble 0b + (158 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (158 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (158 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (158 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 176 + (205 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (205 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (208 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (208 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (255 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (255 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (94 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (102 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (158 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (158 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (158 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (158 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (158 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (158 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (158 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (158 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 177 + (205 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (205 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (205 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (205 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (208 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (208 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (208 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (208 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (255 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (255 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (255 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (255 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (94 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (94 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (102 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (102 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 178 + (205 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (205 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (205 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (205 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (205 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (205 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (205 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (205 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (208 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (208 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (208 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (208 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (208 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (208 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (208 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (208 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 179 + (255 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (255 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (255 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (255 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (255 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (255 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (255 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (255 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (94 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (94 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (94 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (94 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (102 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (102 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (102 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (102 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 180 + (94 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (94 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (94 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (94 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (94 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (94 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (94 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (94 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (102 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (102 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (102 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (102 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (102 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (102 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (102 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (102 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 181 + (16 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (16 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (16 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (16 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (212 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (212 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (212 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (212 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (62 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (62 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (66 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (66 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (218 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (218 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (218 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (218 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 182 + (16 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (16 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (16 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (16 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (16 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (16 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (16 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (16 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (212 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (212 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (212 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (212 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (212 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (212 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (212 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (212 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 183 + (62 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (62 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (62 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (62 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (66 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (66 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (66 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (66 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (218 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (218 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (218 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (218 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (218 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (218 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (218 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (218 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 184 + (62 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (62 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (62 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (62 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (62 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (62 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (62 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (62 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (66 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (66 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (66 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (66 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (66 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (66 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (66 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (66 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 185 + (0 << 24) | (189 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (190 << 6) | (0 << 3) | 0, // nibble 01 + (43 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (194 << 6) | (0 << 3) | 0, // nibble 03 + (224 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (224 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (223 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (223 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (0 << 24) | (199 << 6) | (0 << 3) | 0, // nibble 08 + (216 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (202 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (209 << 6) | (0 << 3) | 0, // nibble 0b + (33 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (33 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (218 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (222 << 6) | (0 << 3) | 0, // nibble 0f + // State 186 + (186 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (251 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (191 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (192 << 6) | (0 << 3) | 0, // nibble 03 + (43 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (43 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (168 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (64 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (224 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (224 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (224 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (224 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (223 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (223 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (223 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (223 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 187 + (186 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (251 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (251 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (28 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (135 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (226 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (227 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (43 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (43 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (43 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (43 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (168 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (168 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (64 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (64 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 188 + (186 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (186 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (186 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (251 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (251 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (251 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (251 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (28 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (28 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (135 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (135 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (226 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (226 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (227 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (227 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 189 + (186 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (186 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (186 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (186 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (186 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (186 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (186 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (251 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (251 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (251 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (251 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (251 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (251 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (251 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (251 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 190 + (28 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (28 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (28 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (28 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (135 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (135 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (135 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (135 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (226 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (226 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (226 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (226 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (227 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (227 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (227 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (227 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 191 + (28 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (28 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (28 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (28 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (28 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (28 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (28 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (28 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (135 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (135 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (135 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (135 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (135 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (135 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (135 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (135 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 192 + (226 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (226 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (226 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (226 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (226 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (226 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (226 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (226 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (227 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (227 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (227 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (227 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (227 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (227 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (227 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (227 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 193 + (43 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (43 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (43 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (43 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (43 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (43 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (43 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (43 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (168 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (168 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (168 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (168 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (64 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (64 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (64 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (64 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 194 + (168 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (168 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (168 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (168 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (168 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (168 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (168 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (168 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (64 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (64 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (64 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (64 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (64 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (64 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (64 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (64 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 195 + (224 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (224 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (224 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (224 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (224 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (224 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (224 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (224 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (223 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (223 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (223 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (223 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (223 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (223 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (223 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (223 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 196 + (0 << 24) | (200 << 6) | (0 << 3) | 0, // nibble 00 + (249 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (216 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (216 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (0 << 24) | (203 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (206 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (210 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (213 << 6) | (0 << 3) | 0, // nibble 07 + (33 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (33 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (33 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (33 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (219 << 6) | (0 << 3) | 0, // nibble 0c + (61 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (21 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (176 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 197 + (229 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (171 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (249 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (249 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (216 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (216 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (216 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (216 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (204 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (205 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (207 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (208 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (211 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (212 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (214 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (215 << 6) | (0 << 3) | 0, // nibble 0f + // State 198 + (229 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (229 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (171 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (171 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (249 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (249 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (249 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (249 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (216 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (216 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (216 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (216 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (216 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (216 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (216 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (216 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 199 + (229 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (229 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (229 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (229 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (171 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (171 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (171 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (171 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (249 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (249 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (249 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (249 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (249 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (249 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (249 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (249 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 200 + (229 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (229 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (229 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (229 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (229 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (229 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (229 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (229 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (171 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (171 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (171 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (171 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (171 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (171 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (171 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (171 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 201 + (45 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (46 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (58 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (67 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (74 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (79 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (82 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (85 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (87 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (89 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (93 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (101 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (104 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (107 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (110 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 202 + (45 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (45 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (46 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (46 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (58 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (58 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (67 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (67 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (74 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (74 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (79 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (79 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (82 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (82 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (85 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (85 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 203 + (45 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (45 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (45 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (45 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (46 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (46 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (46 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (46 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (58 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (58 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (58 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (58 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (67 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (67 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (67 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (67 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 204 + (45 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (45 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (45 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (45 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (45 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (45 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (45 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (45 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (46 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (46 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (46 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (46 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (46 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (46 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (46 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (46 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 205 + (58 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (58 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (58 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (58 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (58 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (58 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (58 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (58 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (67 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (67 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (67 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (67 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (67 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (67 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (67 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (67 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 206 + (74 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (74 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (74 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (74 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (79 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (79 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (79 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (79 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (82 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (82 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (82 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (82 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (85 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (85 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (85 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (85 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 207 + (74 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (74 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (74 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (74 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (74 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (74 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (74 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (74 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (79 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (79 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (79 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (79 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (79 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (79 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (79 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (79 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 208 + (82 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (82 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (82 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (82 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (82 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (82 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (82 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (82 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (85 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (85 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (85 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (85 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (85 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (85 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (85 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (85 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 209 + (87 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (87 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (89 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (89 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (93 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (93 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (101 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (101 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (104 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (104 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (107 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (107 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (110 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (110 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (115 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 210 + (87 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (87 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (87 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (87 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (89 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (89 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (89 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (89 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (93 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (93 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (93 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (93 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (101 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (101 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (101 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (101 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 211 + (87 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (87 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (87 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (87 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (87 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (87 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (87 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (87 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (89 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (89 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (89 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (89 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (89 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (89 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (89 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (89 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 212 + (93 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (93 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (93 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (93 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (93 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (93 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (93 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (93 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (101 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (101 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (101 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (101 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (101 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (101 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (101 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (101 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 213 + (104 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (104 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (104 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (104 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (107 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (107 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (107 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (107 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (110 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (110 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (110 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (110 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (115 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (115 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (115 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 214 + (104 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (104 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (104 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (104 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (104 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (104 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (104 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (104 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (107 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (107 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (107 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (107 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (107 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (107 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (107 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (107 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 215 + (110 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (110 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (110 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (110 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (110 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (110 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (110 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (110 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (115 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (115 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (115 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (115 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (115 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (115 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (115 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 216 + (33 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (33 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (33 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (33 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (33 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (33 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (33 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (33 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (220 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (221 << 6) | (0 << 3) | 0, // nibble 09 + (61 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (61 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (21 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (21 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (176 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (176 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 217 + (142 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (154 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (215 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (222 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (61 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (61 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (61 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (61 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (21 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (21 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (21 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (21 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (176 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (176 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (176 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (176 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 218 + (142 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (142 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (154 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (154 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (215 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (215 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (222 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (222 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (61 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (61 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (61 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (61 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (61 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (61 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (61 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (61 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 219 + (142 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (142 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (142 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (142 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (154 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (154 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (154 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (154 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (215 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (215 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (215 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (215 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (222 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (222 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (222 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 220 + (142 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (142 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (142 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (142 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (142 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (142 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (142 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (142 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (154 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (154 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (154 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (154 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (154 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (154 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (154 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (154 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 221 + (215 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (215 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (215 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (215 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (215 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (215 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (215 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (215 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (222 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (222 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (222 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (222 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (222 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (222 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (222 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (222 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 222 + (21 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (21 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (21 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (21 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (21 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (21 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (21 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (21 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (176 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (176 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (176 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (176 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (176 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (176 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (176 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (176 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 223 + (0 << 24) | (227 << 6) | (0 << 3) | 0, // nibble 00 + (251 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (240 << 6) | (0 << 3) | 0, // nibble 02 + (5 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (252 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (4 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (264 << 6) | (0 << 3) | 0, // nibble 06 + (253 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (0 << 24) | (297 << 6) | (0 << 3) | 0, // nibble 08 + (3 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (397 << 6) | (0 << 3) | 0, // nibble 0a + (254 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (2 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (0 << 24) | (400 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (472 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (473 << 6) | (0 << 3) | 0, // nibble 0f + // State 224 + (13 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (228 << 6) | (0 << 3) | 0, // nibble 01 + (251 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (251 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (0 << 24) | (241 << 6) | (0 << 3) | 0, // nibble 04 + (244 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (5 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (5 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (252 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (252 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (4 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (4 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (12 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (0 << 24) | (265 << 6) | (0 << 3) | 0, // nibble 0d + (253 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (253 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 225 + (13 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (13 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (238 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (229 << 6) | (0 << 3) | 0, // nibble 03 + (251 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (251 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (251 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (251 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (18 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (242 << 6) | (0 << 3) | 0, // nibble 09 + (244 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (244 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (5 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (5 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (5 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (5 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 226 + (13 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (13 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (13 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (13 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (238 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (238 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (23 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (230 << 6) | (0 << 3) | 0, // nibble 07 + (251 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (251 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (251 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (251 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (251 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (251 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (251 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (251 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 227 + (13 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (13 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (13 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (13 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (13 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (13 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (13 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (13 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (238 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (238 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (238 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (238 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (23 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (23 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (231 << 6) | (0 << 3) | 0, // nibble 0e + (229 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 228 + (238 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (238 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (238 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (238 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (238 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (238 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (238 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (238 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (23 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (23 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (23 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (23 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (232 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (236 << 6) | (0 << 3) | 0, // nibble 0d + (229 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (229 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 229 + (23 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (23 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (23 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (23 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (23 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (23 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (23 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (23 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (233 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (234 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (237 << 6) | (0 << 3) | 0, // nibble 0a + (41 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (229 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (229 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (229 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (229 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 230 + (60 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (70 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (74 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (235 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (238 << 6) | (0 << 3) | 0, // nibble 04 + (175 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (41 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (41 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (229 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (229 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (229 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (229 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (229 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (229 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (229 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (229 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 231 + (60 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (60 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (70 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (70 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (74 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (74 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (129 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (144 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (93 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (106 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (175 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (175 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (41 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (41 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (41 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (41 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 232 + (60 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (60 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (60 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (60 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (70 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (70 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (70 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (70 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (74 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (74 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (74 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (74 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (129 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (129 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (144 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (144 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 233 + (60 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (60 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (60 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (60 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (60 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (60 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (60 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (60 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (70 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (70 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (70 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (70 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (70 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (70 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (70 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (70 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 234 + (74 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (74 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (74 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (74 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (74 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (74 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (74 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (74 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (129 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (129 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (129 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (129 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (144 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (144 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (144 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (144 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 235 + (129 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (129 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (129 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (129 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (129 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (129 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (129 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (129 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (144 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (144 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (144 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (144 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (144 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (144 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (144 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (144 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 236 + (93 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (93 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (106 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (106 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (175 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (175 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (175 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (175 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (41 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (41 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (41 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (41 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (41 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (41 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (41 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (41 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 237 + (93 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (93 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (93 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (93 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (106 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (106 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (106 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (106 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (175 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (175 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (175 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (175 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (175 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (175 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (175 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (175 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 238 + (93 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (93 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (93 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (93 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (93 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (93 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (93 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (93 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (106 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (106 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (106 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (106 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (106 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (106 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (106 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (106 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 239 + (18 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (18 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (0 << 24) | (243 << 6) | (0 << 3) | 0, // nibble 02 + (234 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (244 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (244 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (244 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (244 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (5 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (5 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (5 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (5 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (5 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (5 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (5 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (5 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 240 + (18 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (18 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (18 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (18 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (244 << 6) | (0 << 3) | 0, // nibble 04 + (28 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (234 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (234 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (244 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (244 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (244 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (244 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (244 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (244 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (244 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (244 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 241 + (18 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (18 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (18 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (18 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (18 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (18 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (18 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (18 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (245 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (248 << 6) | (0 << 3) | 0, // nibble 09 + (28 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (28 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (234 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (234 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (234 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (234 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 242 + (0 << 24) | (246 << 6) | (0 << 3) | 0, // nibble 00 + (13 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (249 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (254 << 6) | (0 << 3) | 0, // nibble 03 + (28 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (28 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (28 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (28 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (234 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (234 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (234 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (234 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (234 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (234 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (234 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (234 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 243 + (0 << 24) | (247 << 6) | (0 << 3) | 0, // nibble 00 + (154 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (13 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (13 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (0 << 24) | (250 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (251 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (255 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (258 << 6) | (0 << 3) | 0, // nibble 07 + (28 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (28 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (28 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (28 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (28 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (28 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (28 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (28 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 244 + (169 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (99 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (154 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (154 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (13 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (13 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (13 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (13 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (101 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (253 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (252 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (253 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (256 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (257 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (259 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (260 << 6) | (0 << 3) | 0, // nibble 0f + // State 245 + (169 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (169 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (99 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (99 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (154 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (154 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (154 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (154 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (13 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (13 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (13 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (13 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (13 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (13 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (13 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (13 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 246 + (169 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (169 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (169 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (169 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (99 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (99 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (99 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (99 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (154 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (154 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (154 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (154 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (154 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (154 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (154 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (154 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 247 + (169 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (169 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (169 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (169 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (169 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (169 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (169 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (169 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (99 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (99 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (99 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (99 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (99 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (99 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (99 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (99 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 248 + (101 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (101 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (253 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (253 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (34 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (36 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (57 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (66 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (71 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (75 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (114 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (118 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (128 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (116 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (134 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (139 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 249 + (101 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (101 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (101 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (101 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (253 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (253 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (253 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (253 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (34 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (34 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (36 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (36 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (57 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (57 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (66 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (66 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 250 + (101 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (101 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (101 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (101 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (101 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (101 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (101 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (101 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (253 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (253 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (253 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (253 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (253 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (253 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (253 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (253 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 251 + (34 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (34 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (34 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (34 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (36 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (36 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (36 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (36 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (57 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (57 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (57 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (57 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (66 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (66 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (66 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (66 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 252 + (34 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (34 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (34 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (34 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (34 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (34 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (34 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (34 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (36 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (36 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (36 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (36 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (36 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (36 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (36 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (36 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 253 + (57 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (57 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (57 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (57 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (57 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (57 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (57 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (57 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (66 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (66 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (66 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (66 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (66 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (66 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (66 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (66 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 254 + (71 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (71 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (75 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (75 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (114 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (114 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (118 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (118 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (128 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (128 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (116 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (116 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (134 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (134 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (139 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (139 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 255 + (71 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (71 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (71 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (71 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (75 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (75 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (75 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (75 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (114 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (114 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (114 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (114 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (118 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (118 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (118 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (118 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 256 + (71 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (71 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (71 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (71 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (71 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (71 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (71 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (71 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (75 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (75 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (75 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (75 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (75 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (75 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (75 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (75 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 257 + (114 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (114 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (114 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (114 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (114 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (114 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (114 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (114 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (118 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (118 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (118 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (118 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (118 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (118 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (118 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (118 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 258 + (128 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (128 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (128 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (128 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (116 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (116 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (116 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (116 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (134 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (134 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (134 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (134 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (139 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (139 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (139 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (139 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 259 + (128 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (128 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (128 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (128 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (128 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (128 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (128 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (128 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (116 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (116 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (116 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (116 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (116 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (116 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (116 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (116 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 260 + (134 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (134 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (134 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (134 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (134 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (134 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (134 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (134 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (139 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (139 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (139 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (139 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (139 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (139 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (139 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (139 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 261 + (252 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (252 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (252 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (252 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (4 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (4 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (4 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (4 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (12 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (12 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (0 << 24) | (266 << 6) | (0 << 3) | 0, // nibble 0a + (239 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (253 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (253 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (253 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (253 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 262 + (252 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (252 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (252 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (252 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (252 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (252 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (252 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (252 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (4 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (4 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (4 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (4 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (4 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (4 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (4 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (4 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 263 + (12 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (12 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (12 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (12 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (267 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (293 << 6) | (0 << 3) | 0, // nibble 05 + (239 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (239 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (253 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (253 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (253 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (253 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (253 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (253 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (253 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (253 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 264 + (12 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (12 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (12 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (12 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (12 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (12 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (12 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (12 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (268 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (283 << 6) | (0 << 3) | 0, // nibble 09 + (27 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (230 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (239 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (239 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (239 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 265 + (0 << 24) | (269 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (280 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (284 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (287 << 6) | (0 << 3) | 0, // nibble 03 + (27 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (27 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (230 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (230 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (239 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (239 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (239 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (239 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (239 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (239 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (239 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 266 + (0 << 24) | (270 << 6) | (0 << 3) | 0, // nibble 00 + (213 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (281 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (282 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (285 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (286 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (288 << 6) | (0 << 3) | 0, // nibble 06 + (214 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (27 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (27 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (27 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (27 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (230 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (230 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (230 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (230 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 267 + (0 << 24) | (271 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (274 << 6) | (0 << 3) | 0, // nibble 01 + (213 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (213 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (22 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (189 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (58 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (236 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (174 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (194 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (72 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (75 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (235 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (0 << 24) | (289 << 6) | (0 << 3) | 0, // nibble 0d + (214 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (214 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 268 + (0 << 24) | (272 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (273 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (275 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (277 << 6) | (0 << 3) | 0, // nibble 03 + (213 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (213 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (213 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (213 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (22 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (22 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (189 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (189 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (58 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (58 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (236 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (236 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 269 + (186 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (193 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (204 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (209 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (225 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (276 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (278 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (279 << 6) | (0 << 3) | 0, // nibble 07 + (213 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (213 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (213 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (213 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (213 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (213 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (213 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (213 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 270 + (186 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (193 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (193 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (204 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (204 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (209 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (209 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (225 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (225 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (44 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (53 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (56 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (64 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (109 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (181 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 271 + (186 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (186 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (186 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (193 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (193 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (193 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (193 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (204 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (204 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (204 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (204 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (209 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (209 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (209 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (209 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 272 + (186 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (186 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (186 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (186 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (186 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (186 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (186 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (186 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (193 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (193 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (193 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (193 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (193 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (193 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (193 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (193 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 273 + (204 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (204 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (204 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (204 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (204 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (204 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (204 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (204 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (209 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (209 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (209 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (209 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (209 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (209 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (209 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (209 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 274 + (225 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (225 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (225 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (225 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (44 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (44 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (53 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (53 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (56 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (56 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (64 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (64 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (109 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (109 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (181 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (181 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 275 + (225 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (225 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (225 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (225 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (225 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (225 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (225 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (225 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (44 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (44 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (44 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (44 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (53 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (53 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (53 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (53 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 276 + (44 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (44 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (44 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (44 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (44 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (44 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (44 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (44 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (53 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (53 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (53 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (53 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (53 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (53 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (53 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (53 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 277 + (56 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (56 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (56 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (56 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (64 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (64 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (64 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (64 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (109 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (109 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (109 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (109 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (181 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (181 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (181 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (181 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 278 + (56 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (56 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (56 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (56 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (56 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (56 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (56 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (56 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (64 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (64 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (64 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (64 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (64 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (64 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (64 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (64 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 279 + (109 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (109 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (109 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (109 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (109 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (109 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (109 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (109 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (181 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (181 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (181 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (181 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (181 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (181 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (181 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (181 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 280 + (22 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (22 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (22 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (22 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (189 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (189 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (189 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (189 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (58 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (58 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (58 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (58 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (236 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (236 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (236 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (236 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 281 + (22 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (22 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (22 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (22 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (22 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (22 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (22 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (22 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (189 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (189 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (189 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (189 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (189 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (189 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (189 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (189 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 282 + (58 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (58 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (58 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (58 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (58 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (58 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (58 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (58 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (236 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (236 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (236 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (236 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (236 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (236 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (236 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (236 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 283 + (174 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (174 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (194 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (194 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (72 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (72 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (75 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (75 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (235 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (235 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (170 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (290 << 6) | (0 << 3) | 0, // nibble 0b + (214 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (214 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (214 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (214 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 284 + (174 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (174 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (174 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (174 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (194 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (194 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (194 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (194 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (72 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (72 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (72 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (72 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (75 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (75 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (75 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (75 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 285 + (174 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (174 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (174 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (174 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (174 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (174 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (174 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (174 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (194 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (194 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (194 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (194 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (194 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (194 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (194 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (194 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 286 + (72 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (72 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (72 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (72 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (72 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (72 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (72 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (72 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (75 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (75 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (75 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (75 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (75 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (75 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (75 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (75 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 287 + (235 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (235 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (235 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (235 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (170 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (170 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (0 << 24) | (291 << 6) | (0 << 3) | 0, // nibble 06 + (72 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (214 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (214 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (214 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (214 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (214 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (214 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (214 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (214 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 288 + (235 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (235 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (235 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (235 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (235 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (235 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (235 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (235 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (170 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (170 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (170 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (170 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (200 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (0 << 24) | (292 << 6) | (0 << 3) | 0, // nibble 0d + (72 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (72 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 289 + (170 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (170 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (170 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (170 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (170 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (170 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (170 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (170 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (200 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (200 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (196 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (106 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (72 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (72 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (72 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (72 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 290 + (200 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (200 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (200 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (200 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (196 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (196 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (106 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (106 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (72 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (72 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (72 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (72 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (72 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (72 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (72 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (72 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 291 + (200 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (200 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (200 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (200 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (200 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (200 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (200 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (200 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (196 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (196 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (196 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (196 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (106 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (106 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (106 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (106 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 292 + (196 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (196 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (196 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (196 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (196 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (196 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (196 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (196 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (106 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (106 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (106 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (106 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (106 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (106 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (106 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (106 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 293 + (27 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (27 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (27 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (27 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (27 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (27 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (27 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (27 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (230 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (230 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (230 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (230 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (230 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (230 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (230 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (230 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 294 + (0 << 24) | (298 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (345 << 6) | (0 << 3) | 0, // nibble 01 + (3 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (3 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (245 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (11 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (254 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (254 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (2 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (2 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (0 << 24) | (401 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (413 << 6) | (0 << 3) | 0, // nibble 0b + (246 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (10 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (474 << 6) | (0 << 3) | 0, // nibble 0e + (247 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 295 + (0 << 24) | (299 << 6) | (0 << 3) | 0, // nibble 00 + (17 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (346 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (347 << 6) | (0 << 3) | 0, // nibble 03 + (3 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (3 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (3 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (3 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (245 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (245 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (11 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (11 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (254 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (254 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (254 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (254 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 296 + (0 << 24) | (300 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (325 << 6) | (0 << 3) | 0, // nibble 01 + (17 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (17 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (22 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (235 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (348 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (384 << 6) | (0 << 3) | 0, // nibble 07 + (3 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (3 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (3 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (3 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (3 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (3 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (3 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (3 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 297 + (0 << 24) | (301 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (307 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (326 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (339 << 6) | (0 << 3) | 0, // nibble 03 + (17 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (17 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (17 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (17 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (22 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (22 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (235 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (235 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (349 << 6) | (0 << 3) | 0, // nibble 0c + (26 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (385 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (390 << 6) | (0 << 3) | 0, // nibble 0f + // State 298 + (0 << 24) | (302 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (304 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (308 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (312 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (327 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (334 << 6) | (0 << 3) | 0, // nibble 05 + (225 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (340 << 6) | (0 << 3) | 0, // nibble 07 + (17 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (17 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (17 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (17 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (17 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (17 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (17 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (17 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 299 + (0 << 24) | (303 << 6) | (0 << 3) | 0, // nibble 00 + (39 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (305 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (306 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (309 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (310 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (313 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (318 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (328 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (332 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (335 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (338 << 6) | (0 << 3) | 0, // nibble 0b + (225 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (225 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (341 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (342 << 6) | (0 << 3) | 0, // nibble 0f + // State 300 + (165 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (178 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (39 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (39 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (181 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (185 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (188 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (54 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (55 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (67 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (237 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (311 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (314 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (315 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (319 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (322 << 6) | (0 << 3) | 0, // nibble 0f + // State 301 + (165 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (178 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (178 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (39 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (39 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (39 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (39 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (181 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (181 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (185 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (185 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (188 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (188 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (54 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (54 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 302 + (165 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (165 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (165 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (178 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (178 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (178 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (178 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (39 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (39 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (39 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (39 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (39 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (39 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (39 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (39 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 303 + (165 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (165 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (165 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (165 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (165 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (165 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (165 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (165 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (178 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (178 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (178 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (178 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (178 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (178 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (178 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (178 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 304 + (181 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (181 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (181 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (181 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (185 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (185 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (185 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (185 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (188 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (188 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (188 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (188 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (54 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (54 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (54 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (54 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 305 + (181 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (181 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (181 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (181 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (181 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (181 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (181 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (181 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (185 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (185 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (185 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (185 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (185 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (185 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (185 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (185 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 306 + (188 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (188 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (188 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (188 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (188 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (188 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (188 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (188 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (54 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (54 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (54 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (54 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (54 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (54 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (54 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (54 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 307 + (55 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (55 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (67 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (67 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (237 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (237 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (134 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (146 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (228 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (254 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (316 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (317 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (320 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (321 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (323 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (324 << 6) | (0 << 3) | 0, // nibble 0f + // State 308 + (55 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (55 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (55 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (55 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (67 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (67 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (67 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (67 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (237 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (237 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (237 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (237 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (134 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (134 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (146 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (146 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 309 + (55 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (55 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (55 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (55 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (55 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (55 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (55 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (55 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (67 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (67 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (67 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (67 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (67 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (67 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (67 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (67 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 310 + (237 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (237 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (237 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (237 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (237 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (237 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (237 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (237 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (134 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (134 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (134 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (134 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (146 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (146 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (146 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (146 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 311 + (134 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (134 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (134 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (134 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (134 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (134 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (134 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (134 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (146 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (146 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (146 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (146 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (146 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (146 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (146 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (146 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 312 + (228 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (228 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (254 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (254 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (80 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (88 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (95 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (98 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (110 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (116 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (121 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (125 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (133 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (118 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (132 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (152 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 313 + (228 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (228 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (228 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (228 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (254 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (254 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (254 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (254 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (80 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (80 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (88 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (88 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (95 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (95 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (98 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (98 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 314 + (228 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (228 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (228 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (228 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (228 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (228 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (228 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (228 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (254 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (254 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (254 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (254 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (254 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (254 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (254 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (254 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 315 + (80 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (80 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (80 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (80 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (88 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (88 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (88 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (88 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (95 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (95 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (95 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (95 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (98 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (98 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (98 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (98 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 316 + (80 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (80 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (80 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (80 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (80 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (80 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (80 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (80 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (88 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (88 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (88 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (88 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (88 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (88 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (88 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (88 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 317 + (95 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (95 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (95 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (95 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (95 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (95 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (95 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (95 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (98 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (98 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (98 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (98 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (98 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (98 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (98 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (98 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 318 + (110 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (110 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (116 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (116 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (121 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (121 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (125 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (125 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (133 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (133 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (118 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (118 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (132 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (132 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (152 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (152 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 319 + (110 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (110 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (110 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (110 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (116 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (116 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (116 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (116 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (121 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (121 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (121 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (121 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (125 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (125 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (125 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (125 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 320 + (110 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (110 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (110 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (110 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (110 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (110 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (110 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (110 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (116 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (116 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (116 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (116 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (116 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (116 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (116 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (116 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 321 + (121 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (121 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (121 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (121 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (121 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (121 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (121 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (121 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (125 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (125 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (125 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (125 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (125 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (125 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (125 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (125 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 322 + (133 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (133 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (133 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (133 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (118 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (118 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (118 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (118 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (132 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (132 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (132 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (132 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (152 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (152 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (152 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (152 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 323 + (133 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (133 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (133 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (133 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (133 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (133 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (133 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (133 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (118 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (118 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (118 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (118 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (118 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (118 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (118 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (118 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 324 + (132 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (132 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (132 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (132 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (132 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (132 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (132 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (132 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (152 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (152 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (152 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (152 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (152 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (152 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (152 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (152 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 325 + (0 << 24) | (329 << 6) | (0 << 3) | 0, // nibble 00 + (7 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (20 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (333 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (336 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (337 << 6) | (0 << 3) | 0, // nibble 05 + (191 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (59 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (225 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (225 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (225 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (225 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (241 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (250 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (0 << 24) | (343 << 6) | (0 << 3) | 0, // nibble 0e + (57 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 326 + (0 << 24) | (330 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (331 << 6) | (0 << 3) | 0, // nibble 01 + (7 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (7 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (20 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (20 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (27 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (147 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (155 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (86 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (88 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (96 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (191 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (191 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (59 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (59 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 327 + (158 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (197 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (198 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (210 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (7 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (7 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (7 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (7 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (20 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (20 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (20 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (20 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (27 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (27 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (147 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (147 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 328 + (158 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (158 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (197 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (197 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (198 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (198 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (210 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (210 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (7 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (7 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (7 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (7 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (7 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (7 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (7 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (7 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 329 + (158 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (158 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (158 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (158 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (197 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (197 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (197 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (197 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (198 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (198 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (198 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (198 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (210 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (210 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (210 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (210 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 330 + (158 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (158 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (158 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (158 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (158 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (158 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (158 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (158 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (197 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (197 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (197 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (197 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (197 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (197 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (197 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (197 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 331 + (198 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (198 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (198 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (198 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (198 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (198 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (198 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (198 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (210 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (210 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (210 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (210 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (210 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (210 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (210 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (210 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 332 + (20 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (20 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (20 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (20 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (20 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (20 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (20 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (20 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (27 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (27 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (27 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (27 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (147 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (147 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (147 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (147 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 333 + (27 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (27 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (27 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (27 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (27 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (27 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (27 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (27 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (147 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (147 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (147 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (147 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (147 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (147 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (147 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (147 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 334 + (155 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (155 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (86 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (86 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (88 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (88 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (96 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (96 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (191 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (191 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (191 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (191 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (59 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (59 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (59 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (59 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 335 + (155 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (155 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (155 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (155 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (86 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (86 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (86 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (86 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (88 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (88 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (88 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (88 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (96 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (96 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (96 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (96 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 336 + (155 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (155 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (155 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (155 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (155 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (155 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (155 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (155 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (86 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (86 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (86 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (86 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (86 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (86 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (86 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (86 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 337 + (88 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (88 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (88 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (88 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (88 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (88 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (88 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (88 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (96 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (96 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (96 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (96 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (96 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (96 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (96 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (96 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 338 + (191 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (191 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (191 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (191 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (191 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (191 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (191 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (191 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (59 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (59 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (59 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (59 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (59 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (59 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (59 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (59 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 339 + (225 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (225 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (225 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (225 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (225 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (225 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (225 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (225 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (241 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (241 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (250 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (250 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (344 << 6) | (0 << 3) | 0, // nibble 0c + (143 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (57 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (57 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 340 + (241 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (241 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (241 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (241 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (250 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (250 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (250 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (250 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (219 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (33 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (143 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (143 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (57 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (57 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (57 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (57 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 341 + (241 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (241 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (241 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (241 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (241 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (241 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (241 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (241 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (250 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (250 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (250 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (250 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (250 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (250 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (250 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (250 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 342 + (219 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (219 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (33 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (33 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (143 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (143 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (143 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (143 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (57 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (57 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (57 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (57 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (57 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (57 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (57 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (57 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 343 + (219 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (219 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (219 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (219 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (33 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (33 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (33 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (33 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (143 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (143 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (143 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (143 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (143 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (143 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (143 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (143 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 344 + (219 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (219 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (219 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (219 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (219 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (219 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (219 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (219 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (33 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (33 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (33 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (33 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (33 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (33 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (33 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (33 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 345 + (22 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (22 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (22 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (22 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (235 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (235 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (235 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (235 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (350 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (363 << 6) | (0 << 3) | 0, // nibble 09 + (26 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (26 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (386 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (387 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (391 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (394 << 6) | (0 << 3) | 0, // nibble 0f + // State 346 + (22 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (22 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (22 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (22 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (22 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (22 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (22 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (22 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (235 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (235 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (235 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (235 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (235 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (235 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (235 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (235 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 347 + (0 << 24) | (351 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (356 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (364 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (374 << 6) | (0 << 3) | 0, // nibble 03 + (26 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (26 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (26 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (26 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (215 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (220 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (388 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (389 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (392 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (393 << 6) | (0 << 3) | 0, // nibble 0d + (37 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (395 << 6) | (0 << 3) | 0, // nibble 0f + // State 348 + (0 << 24) | (352 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (353 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (357 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (360 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (365 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (368 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (375 << 6) | (0 << 3) | 0, // nibble 06 + (19 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (26 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (26 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (26 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (26 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (26 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (26 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (26 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (26 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 349 + (148 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (151 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (0 << 24) | (354 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (355 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (358 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (359 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (361 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (362 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (366 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (367 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (369 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (371 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (376 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (379 << 6) | (0 << 3) | 0, // nibble 0d + (19 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (19 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 350 + (148 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (151 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (151 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (35 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (73 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (124 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (100 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (125 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (126 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (130 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (131 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (137 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (159 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (162 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 351 + (148 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (148 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (148 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (151 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (151 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (151 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (151 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (35 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (35 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (73 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (73 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (124 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (124 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (100 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (100 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 352 + (148 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (148 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (148 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (148 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (148 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (148 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (148 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (151 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (151 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (151 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (151 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (151 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (151 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (151 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (151 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 353 + (35 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (35 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (35 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (35 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (73 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (73 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (73 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (73 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (124 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (124 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (124 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (124 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (100 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (100 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (100 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (100 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 354 + (35 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (35 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (35 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (35 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (35 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (35 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (35 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (35 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (73 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (73 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (73 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (73 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (73 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (73 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (73 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (73 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 355 + (124 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (124 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (124 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (124 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (124 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (124 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (124 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (124 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (100 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (100 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (100 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (100 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (100 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (100 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (100 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (100 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 356 + (125 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (125 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (126 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (126 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (130 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (130 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (131 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (131 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (137 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (137 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (159 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (159 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (162 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (162 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 357 + (125 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (125 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (125 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (125 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (126 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (126 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (126 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (126 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (130 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (130 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (130 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (130 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (131 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (131 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (131 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (131 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 358 + (125 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (125 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (125 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (125 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (125 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (125 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (125 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (125 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (126 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (126 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (126 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (126 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (126 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (126 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (126 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (126 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 359 + (130 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (130 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (130 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (130 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (130 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (130 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (130 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (130 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (131 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (131 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (131 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (131 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (131 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (131 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (131 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (131 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 360 + (137 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (137 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (137 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (137 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (159 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (159 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (159 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (159 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (162 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (162 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (162 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (162 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (172 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (172 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 361 + (137 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (137 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (137 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (137 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (137 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (137 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (137 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (137 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (159 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (159 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (159 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (159 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (159 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (159 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (159 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (159 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 362 + (162 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (162 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (162 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (162 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (162 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (162 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (162 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (162 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (172 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (172 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (172 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (172 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (172 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (172 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (172 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (172 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 363 + (182 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (189 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (212 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (214 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (218 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (370 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (372 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (373 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (377 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (378 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (380 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (381 << 6) | (0 << 3) | 0, // nibble 0b + (19 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (19 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (19 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (19 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 364 + (182 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (182 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (189 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (189 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (212 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (212 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (214 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (214 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (218 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (218 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (42 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (50 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (51 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (52 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (55 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (90 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 365 + (182 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (182 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (182 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (182 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (189 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (189 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (189 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (189 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (212 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (212 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (212 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (212 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (214 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (214 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (214 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (214 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 366 + (182 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (182 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (182 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (182 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (182 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (182 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (182 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (182 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (189 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (189 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (189 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (189 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (189 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (189 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (189 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (189 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 367 + (212 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (212 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (212 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (212 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (212 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (212 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (212 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (212 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (214 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (214 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (214 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (214 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (214 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (214 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (214 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (214 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 368 + (218 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (218 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (218 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (218 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (42 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (42 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (50 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (50 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (51 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (51 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (52 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (52 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (55 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (55 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (90 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (90 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 369 + (218 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (218 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (218 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (218 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (218 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (218 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (218 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (218 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (42 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (42 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (42 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (42 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (50 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (50 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (50 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (50 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 370 + (42 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (42 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (42 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (42 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (42 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (42 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (42 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (42 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (50 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (50 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (50 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (50 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (50 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (50 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (50 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (50 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 371 + (51 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (51 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (51 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (51 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (52 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (52 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (52 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (52 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (55 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (55 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (55 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (55 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (90 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (90 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (90 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (90 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 372 + (51 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (51 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (51 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (51 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (51 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (51 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (51 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (51 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (52 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (52 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (52 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (52 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (52 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (52 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (52 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (52 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 373 + (55 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (55 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (55 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (55 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (55 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (55 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (55 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (55 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (90 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (90 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (90 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (90 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (90 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (90 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (90 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (90 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 374 + (100 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (113 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (143 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (180 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (187 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (199 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (382 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (383 << 6) | (0 << 3) | 0, // nibble 07 + (19 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (19 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (19 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (19 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (19 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (19 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (19 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (19 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 375 + (100 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (100 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (113 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (113 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (143 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (143 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (180 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (180 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (187 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (187 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (199 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (199 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (108 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (111 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (140 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (145 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 376 + (100 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (100 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (100 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (100 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (113 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (113 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (113 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (113 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (143 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (143 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (143 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (143 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (180 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (180 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (180 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (180 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 377 + (100 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (100 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (100 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (100 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (100 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (100 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (100 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (100 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (113 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (113 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (113 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (113 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (113 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (113 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (113 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (113 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 378 + (143 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (143 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (143 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (143 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (143 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (143 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (143 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (143 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (180 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (180 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (180 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (180 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (180 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (180 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (180 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (180 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 379 + (187 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (187 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (187 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (187 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (199 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (199 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (199 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (199 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (108 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (108 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (111 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (111 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (140 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (140 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (145 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (145 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 380 + (187 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (187 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (187 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (187 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (187 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (187 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (187 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (187 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (199 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (199 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (199 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (199 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (199 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (199 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (199 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (199 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 381 + (108 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (108 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (108 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (108 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (111 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (111 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (111 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (111 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (140 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (140 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (140 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (140 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (145 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (145 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (145 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (145 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 382 + (108 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (108 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (108 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (108 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (108 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (108 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (108 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (108 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (111 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (111 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (111 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (111 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (111 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (111 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (111 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (111 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 383 + (140 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (140 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (140 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (140 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (140 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (140 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (140 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (140 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (145 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (145 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (145 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (145 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (145 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (145 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (145 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (145 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 384 + (215 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (215 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (220 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (220 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (182 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (63 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (238 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (18 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (180 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (195 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (196 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (198 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (37 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (37 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (199 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (68 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 385 + (215 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (215 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (215 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (215 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (220 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (220 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (220 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (220 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (182 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (182 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (63 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (63 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (238 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (238 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (18 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (18 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 386 + (215 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (215 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (215 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (215 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (215 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (215 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (215 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (215 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (220 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (220 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (220 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (220 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (220 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (220 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (220 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (220 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 387 + (182 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (182 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (182 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (182 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (63 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (63 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (63 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (63 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (238 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (238 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (238 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (238 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (18 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (18 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (18 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (18 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 388 + (182 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (182 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (182 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (182 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (182 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (182 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (182 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (182 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (63 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (63 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (63 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (63 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (63 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (63 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (63 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (63 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 389 + (238 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (238 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (238 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (238 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (238 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (238 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (238 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (238 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (18 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (18 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (18 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (18 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (18 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (18 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (18 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (18 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 390 + (180 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (180 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (195 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (195 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (196 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (196 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (198 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (198 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (37 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (37 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (37 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (37 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (199 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (199 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (68 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (68 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 391 + (180 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (180 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (180 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (180 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (195 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (195 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (195 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (195 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (196 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (196 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (196 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (196 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (198 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (198 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (198 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (198 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 392 + (180 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (180 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (180 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (180 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (180 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (180 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (180 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (180 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (195 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (195 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (195 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (195 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (195 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (195 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (195 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (195 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 393 + (196 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (196 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (196 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (196 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (196 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (196 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (196 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (196 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (198 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (198 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (198 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (198 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (198 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (198 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (198 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (198 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 394 + (37 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (37 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (37 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (37 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (37 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (37 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (37 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (37 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (199 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (199 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (199 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (199 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (68 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (68 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (68 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (68 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 395 + (199 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (199 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (199 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (199 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (199 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (199 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (199 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (199 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (68 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (68 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (68 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (68 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (68 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (68 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (68 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (68 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 396 + (245 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (245 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (245 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (245 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (11 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (11 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (11 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (11 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (254 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (254 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (254 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (254 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (254 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (254 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (254 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (254 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 397 + (245 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (245 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (245 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (245 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (245 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (245 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (245 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (245 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (11 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (11 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (11 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (11 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (11 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (11 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (11 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (11 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 398 + (2 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (2 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (2 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (2 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (240 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (402 << 6) | (0 << 3) | 0, // nibble 05 + (16 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (414 << 6) | (0 << 3) | 0, // nibble 07 + (246 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (246 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (10 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (10 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (0 << 24) | (475 << 6) | (0 << 3) | 0, // nibble 0c + (241 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (247 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (247 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 399 + (2 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (2 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (2 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (2 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (2 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (2 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (2 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (2 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (240 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (240 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (0 << 24) | (403 << 6) | (0 << 3) | 0, // nibble 0a + (21 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (16 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (16 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (415 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (442 << 6) | (0 << 3) | 0, // nibble 0f + // State 400 + (240 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (240 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (240 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (240 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (0 << 24) | (404 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (408 << 6) | (0 << 3) | 0, // nibble 05 + (21 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (21 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (16 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (16 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (16 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (16 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (416 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (430 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (443 << 6) | (0 << 3) | 0, // nibble 0e + (231 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 401 + (240 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (240 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (240 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (240 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (240 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (240 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (240 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (240 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (32 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (0 << 24) | (405 << 6) | (0 << 3) | 0, // nibble 09 + (226 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (0 << 24) | (409 << 6) | (0 << 3) | 0, // nibble 0b + (21 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (21 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (21 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (21 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 402 + (32 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (32 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (40 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (406 << 6) | (0 << 3) | 0, // nibble 03 + (226 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (226 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (38 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (410 << 6) | (0 << 3) | 0, // nibble 07 + (21 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (21 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (21 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (21 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (21 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (21 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (21 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (21 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 403 + (32 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (32 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (32 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (32 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (40 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (40 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (0 << 24) | (407 << 6) | (0 << 3) | 0, // nibble 06 + (49 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (226 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (226 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (226 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (226 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (38 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (38 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (50 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (411 << 6) | (0 << 3) | 0, // nibble 0f + // State 404 + (32 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (32 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (32 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (32 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (32 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (32 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (32 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (32 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (40 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (40 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (40 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (40 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (149 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (81 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (49 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (49 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 405 + (40 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (40 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (40 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (40 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (40 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (40 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (40 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (40 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (149 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (149 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (81 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (81 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (49 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (49 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (49 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (49 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 406 + (149 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (149 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (149 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (149 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (81 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (81 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (81 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (81 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (49 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (49 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (49 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (49 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (49 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (49 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (49 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (49 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 407 + (149 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (149 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (149 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (149 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (149 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (149 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (149 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (149 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (81 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (81 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (81 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (81 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (81 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (81 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (81 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (81 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 408 + (226 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (226 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (226 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (226 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (226 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (226 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (226 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (226 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (38 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (38 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (38 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (38 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (50 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (50 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (90 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (412 << 6) | (0 << 3) | 0, // nibble 0f + // State 409 + (38 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (38 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (38 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (38 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (38 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (38 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (38 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (38 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (50 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (50 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (50 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (50 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (90 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (90 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (99 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (123 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 410 + (50 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (50 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (50 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (50 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (50 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (50 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (50 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (50 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (90 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (90 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (90 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (90 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (99 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (99 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (123 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (123 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 411 + (90 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (90 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (90 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (90 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (90 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (90 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (90 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (90 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (99 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (99 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (99 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (99 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (123 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (123 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (123 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (123 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 412 + (99 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (99 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (99 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (99 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (99 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (99 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (99 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (99 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (123 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (123 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (123 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (123 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (123 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (123 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (123 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (123 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 413 + (16 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (16 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (16 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (16 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (16 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (16 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (16 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (16 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (417 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (426 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (431 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (436 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (444 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (468 << 6) | (0 << 3) | 0, // nibble 0d + (231 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (231 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 414 + (0 << 24) | (418 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (425 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (427 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (428 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (432 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (433 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (437 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (438 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (445 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (453 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (469 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (470 << 6) | (0 << 3) | 0, // nibble 0b + (231 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (231 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (231 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (231 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 415 + (0 << 24) | (419 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (422 << 6) | (0 << 3) | 0, // nibble 01 + (53 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (5 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (6 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (197 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (0 << 24) | (429 << 6) | (0 << 3) | 0, // nibble 06 + (179 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (184 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (52 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (0 << 24) | (434 << 6) | (0 << 3) | 0, // nibble 0a + (183 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (200 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (45 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (51 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (439 << 6) | (0 << 3) | 0, // nibble 0f + // State 416 + (0 << 24) | (420 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (421 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (423 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (424 << 6) | (0 << 3) | 0, // nibble 03 + (53 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (53 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (5 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (5 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (6 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (6 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (197 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (197 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (3 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (4 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (179 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (179 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 417 + (113 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (124 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (133 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (160 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (163 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (174 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (175 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (177 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (53 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (53 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (53 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (53 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (5 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (5 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (5 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (5 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 418 + (113 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (113 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (124 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (124 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (133 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (133 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (160 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (160 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (163 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (163 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (174 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (174 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (175 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (175 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 419 + (113 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (113 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (113 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (113 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (124 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (124 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (124 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (124 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (133 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (133 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (133 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (133 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (160 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (160 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (160 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (160 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 420 + (113 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (113 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (113 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (113 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (113 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (113 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (113 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (113 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (124 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (124 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (124 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (124 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (124 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (124 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (124 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (124 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 421 + (133 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (133 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (133 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (133 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (133 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (133 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (133 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (133 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (160 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (160 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (160 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (160 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (160 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (160 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (160 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (160 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 422 + (163 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (163 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (163 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (163 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (174 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (174 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (174 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (174 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (175 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (175 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (175 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (175 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (177 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (177 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 423 + (163 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (163 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (163 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (163 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (163 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (163 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (163 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (163 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (174 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (174 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (174 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (174 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (174 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (174 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (174 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (174 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 424 + (175 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (175 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (175 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (175 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (175 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (175 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (175 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (175 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (177 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (177 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (177 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (177 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (177 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (177 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (177 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (177 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 425 + (53 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (53 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (53 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (53 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (53 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (53 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (53 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (53 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (5 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (5 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (5 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (5 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (5 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (5 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (5 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (5 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 426 + (6 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (6 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (6 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (6 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (197 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (197 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (197 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (197 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (3 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (3 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (4 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (4 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (179 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (179 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (179 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (179 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 427 + (6 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (6 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (6 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (6 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (6 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (6 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (6 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (6 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (197 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (197 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (197 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (197 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (197 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (197 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (197 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (197 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 428 + (3 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (3 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (3 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (3 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (4 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (4 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (4 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (4 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (179 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (179 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (179 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (179 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (179 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (179 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (179 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (179 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 429 + (3 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (3 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (3 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (3 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (3 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (3 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (3 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (3 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (4 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (4 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (4 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (4 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (4 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (4 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (4 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (4 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 430 + (184 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (184 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (52 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (52 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (0 << 24) | (435 << 6) | (0 << 3) | 0, // nibble 04 + (91 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (183 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (183 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (200 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (200 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (45 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (45 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (51 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (51 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (0 << 24) | (440 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (441 << 6) | (0 << 3) | 0, // nibble 0f + // State 431 + (184 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (184 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (184 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (184 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (52 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (52 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (52 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (52 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (178 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (131 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (91 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (91 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (183 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (183 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (183 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (183 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 432 + (184 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (184 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (184 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (184 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (184 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (184 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (184 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (184 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (52 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (52 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (52 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (52 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (52 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (52 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (52 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (52 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 433 + (178 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (178 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (131 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (131 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (91 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (91 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (91 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (91 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (183 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (183 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (183 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (183 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (183 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (183 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (183 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (183 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 434 + (178 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (178 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (178 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (178 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (131 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (131 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (131 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (131 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (91 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (91 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (91 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (91 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (91 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (91 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (91 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (91 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 435 + (178 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (178 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (178 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (178 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (178 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (178 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (178 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (178 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (131 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (131 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (131 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (131 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (131 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (131 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (131 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (131 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 436 + (200 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (200 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (200 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (200 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (45 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (45 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (45 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (45 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (51 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (51 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (51 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (51 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (142 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (105 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (111 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (121 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 437 + (200 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (200 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (200 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (200 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (200 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (200 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (200 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (200 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (45 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (45 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (45 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (45 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (45 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (45 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (45 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (45 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 438 + (51 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (51 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (51 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (51 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (51 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (51 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (51 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (51 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (142 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (142 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (105 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (105 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (111 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (111 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (121 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (121 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 439 + (142 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (142 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (142 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (142 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (105 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (105 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (105 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (105 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (111 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (111 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (111 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (111 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (121 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (121 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (121 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (121 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 440 + (142 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (142 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (142 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (142 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (142 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (142 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (142 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (142 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (105 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (105 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (105 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (105 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (105 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (105 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (105 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (105 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 441 + (111 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (111 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (111 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (111 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (111 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (111 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (111 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (111 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (121 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (121 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (121 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (121 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (121 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (121 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (121 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (121 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 442 + (0 << 24) | (446 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (449 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (454 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (461 << 6) | (0 << 3) | 0, // nibble 03 + (190 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (192 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (15 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (56 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (231 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (231 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (231 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (231 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (231 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (231 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (231 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (231 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 443 + (0 << 24) | (447 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (448 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (450 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (451 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (455 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (458 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (462 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (465 << 6) | (0 << 3) | 0, // nibble 07 + (190 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (190 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (192 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (192 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (15 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (15 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (56 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (56 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 444 + (161 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (167 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (176 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (183 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (207 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (220 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (221 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (452 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (456 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (457 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (459 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (460 << 6) | (0 << 3) | 0, // nibble 0b + (0 << 24) | (463 << 6) | (0 << 3) | 0, // nibble 0c + (0 << 24) | (464 << 6) | (0 << 3) | 0, // nibble 0d + (0 << 24) | (466 << 6) | (0 << 3) | 0, // nibble 0e + (0 << 24) | (467 << 6) | (0 << 3) | 0, // nibble 0f + // State 445 + (161 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (161 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (167 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (167 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (176 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (176 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (183 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (183 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (207 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (207 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (220 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (220 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (221 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (221 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (38 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (40 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 446 + (161 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (161 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (161 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (161 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (167 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (167 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (167 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (167 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (176 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (176 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (176 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (176 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (183 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (183 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (183 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (183 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 447 + (161 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (161 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (161 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (161 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (161 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (161 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (161 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (161 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (167 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (167 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (167 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (167 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (167 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (167 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (167 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (167 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 448 + (176 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (176 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (176 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (176 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (176 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (176 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (176 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (176 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (183 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (183 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (183 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (183 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (183 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (183 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (183 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (183 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 449 + (207 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (207 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (207 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (207 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (220 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (220 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (220 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (220 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (221 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (221 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (221 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (221 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (38 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (38 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (40 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (40 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 450 + (207 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (207 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (207 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (207 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (207 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (207 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (207 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (207 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (220 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (220 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (220 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (220 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (220 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (220 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (220 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (220 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 451 + (221 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (221 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (221 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (221 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (221 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (221 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (221 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (221 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (38 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (38 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (38 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (38 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (40 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (40 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (40 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (40 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 452 + (38 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (38 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (38 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (38 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (38 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (38 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (38 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (38 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (40 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (40 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (40 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (40 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (40 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (40 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (40 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (40 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 453 + (41 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (59 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (61 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (63 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (70 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (77 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (83 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (86 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (91 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 08 + (92 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (105 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (115 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (120 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (123 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (128 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (138 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 454 + (41 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (41 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (59 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (59 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (61 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (61 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (63 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (63 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (70 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (70 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (77 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (77 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (83 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (83 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (86 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (86 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 455 + (41 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (41 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (41 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (41 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (59 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (59 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (59 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (59 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (61 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (61 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (61 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (61 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (63 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (63 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (63 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (63 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 456 + (41 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (41 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (41 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (41 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (41 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (41 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (41 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (41 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (59 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (59 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (59 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (59 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (59 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (59 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (59 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (59 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 457 + (61 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (61 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (61 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (61 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (61 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (61 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (61 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (61 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (63 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (63 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (63 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (63 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (63 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (63 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (63 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (63 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 458 + (70 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (70 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (70 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (70 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (77 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (77 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (77 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (77 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (83 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (83 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (83 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (83 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (86 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (86 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (86 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (86 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 459 + (70 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (70 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (70 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (70 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (70 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (70 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (70 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (70 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (77 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (77 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (77 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (77 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (77 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (77 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (77 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (77 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 460 + (83 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (83 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (83 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (83 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (83 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (83 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (83 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (83 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (86 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (86 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (86 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (86 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (86 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (86 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (86 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (86 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 461 + (91 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (91 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (92 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (92 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (105 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (105 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (115 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (115 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (120 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (120 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (123 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (123 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (128 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (128 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (138 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (138 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 462 + (91 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (91 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (91 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (91 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (92 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (92 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (92 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (92 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (105 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (105 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (105 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (105 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (115 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (115 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (115 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 463 + (91 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (91 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (91 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (91 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (91 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (91 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (91 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (91 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (92 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (92 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (92 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (92 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (92 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (92 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (92 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (92 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 464 + (105 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (105 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (105 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (105 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (105 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (105 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (105 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (105 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (115 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (115 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (115 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (115 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (115 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (115 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (115 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (115 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 465 + (120 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (120 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (120 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (120 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (123 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (123 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (123 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (123 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (128 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (128 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (128 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (128 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (138 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (138 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (138 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (138 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 466 + (120 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (120 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (120 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (120 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (120 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (120 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (120 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (120 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (123 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (123 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (123 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (123 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (123 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (123 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (123 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (123 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 467 + (128 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (128 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (128 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (128 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (128 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (128 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (128 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (128 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (138 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (138 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (138 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (138 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (138 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (138 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (138 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (138 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 468 + (190 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (190 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (190 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (190 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (192 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (192 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (192 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (192 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (15 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (15 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (15 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (15 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (56 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (56 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (56 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (56 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 469 + (190 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (190 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (190 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (190 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (190 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (190 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (190 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (190 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (192 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (192 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (192 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (192 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (192 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (192 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (192 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (192 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 470 + (15 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (15 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (15 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (15 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (15 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (15 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (15 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (15 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (56 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (56 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (56 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (56 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (56 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (56 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (56 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (56 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 471 + (246 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (246 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (246 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (246 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (10 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (10 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (10 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (10 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (0 << 24) | (476 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (490 << 6) | (0 << 3) | 0, // nibble 09 + (241 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (241 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (247 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (247 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (247 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (247 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 472 + (246 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (246 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (246 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (246 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (246 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (246 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (246 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (246 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (10 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (10 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (10 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (10 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (10 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (10 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (10 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (10 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 473 + (0 << 24) | (477 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (483 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (491 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (507 << 6) | (0 << 3) | 0, // nibble 03 + (241 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (241 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (241 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (241 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (247 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (247 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (247 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (247 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (247 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (247 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (247 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (247 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 474 + (0 << 24) | (478 << 6) | (0 << 3) | 0, // nibble 00 + (227 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (30 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (0 << 24) | (484 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (492 << 6) | (0 << 3) | 0, // nibble 04 + (0 << 24) | (501 << 6) | (0 << 3) | 0, // nibble 05 + (31 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (0 << 24) | (508 << 6) | (0 << 3) | 0, // nibble 07 + (241 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (241 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (241 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (241 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (241 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (241 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (241 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (241 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 475 + (0 << 24) | (479 << 6) | (0 << 3) | 0, // nibble 00 + (0 << 24) | (481 << 6) | (0 << 3) | 0, // nibble 01 + (227 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (227 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (30 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (30 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (0 << 24) | (485 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (489 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (493 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (495 << 6) | (0 << 3) | 0, // nibble 09 + (0 << 24) | (502 << 6) | (0 << 3) | 0, // nibble 0a + (0 << 24) | (506 << 6) | (0 << 3) | 0, // nibble 0b + (31 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (31 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (219 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (0 << 24) | (509 << 6) | (0 << 3) | 0, // nibble 0f + // State 476 + (240 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (480 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (482 << 6) | (0 << 3) | 0, // nibble 02 + (203 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (227 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (227 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (227 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (227 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (30 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (30 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (30 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (30 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (0 << 24) | (486 << 6) | (0 << 3) | 0, // nibble 0c + (202 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (204 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (211 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 477 + (240 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (240 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (26 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (167 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (94 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (95 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (203 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (203 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (227 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (227 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (227 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (227 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (227 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (227 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (227 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (227 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 478 + (240 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (240 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (240 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (240 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (26 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (26 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (167 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (167 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (94 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (94 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (95 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (95 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (203 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (203 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (203 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 479 + (240 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (240 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (240 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (240 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (240 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (240 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (240 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (240 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (26 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (26 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (26 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (26 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (167 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (167 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (167 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (167 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 480 + (26 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (26 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (26 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (26 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (26 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (26 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (26 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (26 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (167 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (167 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (167 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (167 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (167 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (167 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (167 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (167 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 481 + (94 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (94 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (94 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (94 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (95 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (95 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (95 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (95 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (203 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (203 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (203 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (203 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (203 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (203 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (203 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (203 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 482 + (94 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (94 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (94 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (94 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (94 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (94 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (94 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (94 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (95 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (95 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (95 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (95 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (95 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (95 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (95 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (95 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 483 + (30 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (30 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (30 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (30 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (30 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (30 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (30 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (30 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (0 << 24) | (487 << 6) | (0 << 3) | 0, // nibble 08 + (153 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 09 + (202 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (202 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (204 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (204 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (211 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (211 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 484 + (0 << 24) | (488 << 6) | (0 << 3) | 0, // nibble 00 + (2 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (153 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (153 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (202 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (202 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (202 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (202 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (204 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (204 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (204 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (204 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (211 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (211 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (211 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (211 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 485 + (148 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (191 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (2 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (2 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (153 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (153 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (153 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (153 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (202 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (202 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (202 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (202 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (202 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (202 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (202 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (202 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 486 + (148 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (191 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (191 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (2 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (2 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (2 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (2 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (153 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (153 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (153 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (153 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (153 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (153 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (153 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (153 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 487 + (148 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (148 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (148 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (191 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (191 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (191 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (191 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (2 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (2 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (2 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (2 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (2 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (2 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (2 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (2 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 488 + (148 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (148 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (148 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (148 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (148 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (148 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (148 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (148 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (191 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (191 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (191 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (191 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (191 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (191 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (191 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (191 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 489 + (204 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (204 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (204 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (204 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (204 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (204 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (204 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (204 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (211 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (211 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (211 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (211 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (211 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (211 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (211 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (211 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 490 + (47 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (0 << 24) | (494 << 6) | (0 << 3) | 0, // nibble 01 + (0 << 24) | (496 << 6) | (0 << 3) | 0, // nibble 02 + (0 << 24) | (498 << 6) | (0 << 3) | 0, // nibble 03 + (0 << 24) | (503 << 6) | (0 << 3) | 0, // nibble 04 + (206 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 05 + (242 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 06 + (201 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 07 + (31 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (31 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (31 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (31 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (219 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (219 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (205 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 491 + (47 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (47 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (157 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (166 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (85 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 04 + (0 << 24) | (497 << 6) | (0 << 3) | 0, // nibble 05 + (0 << 24) | (499 << 6) | (0 << 3) | 0, // nibble 06 + (0 << 24) | (500 << 6) | (0 << 3) | 0, // nibble 07 + (0 << 24) | (504 << 6) | (0 << 3) | 0, // nibble 08 + (0 << 24) | (505 << 6) | (0 << 3) | 0, // nibble 09 + (206 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (206 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (242 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (242 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 492 + (47 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (47 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (47 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (47 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (157 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (157 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (166 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (166 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (85 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (85 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (31 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0a + (127 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0b + (137 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0c + (108 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0d + (120 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0e + (164 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 0f + // State 493 + (47 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (47 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (47 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (47 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (47 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (47 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (47 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (47 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (157 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (157 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (157 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (157 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (166 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (166 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (166 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (166 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 494 + (157 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (157 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (157 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (157 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (157 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (157 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (157 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (157 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (166 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (166 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (166 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (166 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (166 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (166 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (166 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (166 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 495 + (85 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (85 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (85 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (85 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (31 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (31 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (127 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (127 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (137 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 08 + (137 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 09 + (108 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0a + (108 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0b + (120 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (120 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (164 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (164 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 496 + (85 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (85 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (85 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (85 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (85 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (85 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (85 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (85 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (31 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (31 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (31 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (31 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (127 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (127 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (127 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (127 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 497 + (31 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (31 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (31 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (31 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (31 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (31 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (31 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (31 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (127 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (127 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (127 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (127 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (127 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (127 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (127 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (127 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 498 + (137 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (137 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (137 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (137 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (108 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (108 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (108 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (108 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (120 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (120 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (120 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (120 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (164 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (164 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (164 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (164 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 499 + (137 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (137 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (137 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (137 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (137 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (137 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (137 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (137 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (108 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (108 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (108 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (108 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (108 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (108 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (108 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (108 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 500 + (120 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (120 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (120 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (120 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (120 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (120 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (120 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (120 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (164 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (164 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (164 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (164 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (164 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (164 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (164 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (164 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 501 + (166 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 00 + (184 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 01 + (190 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 02 + (202 << 24) | (0 << 6) | (1 << 3) | 0, // nibble 03 + (206 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (206 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (206 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (206 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (242 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (242 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (242 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (242 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (201 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (201 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 502 + (166 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 00 + (166 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 01 + (184 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 02 + (184 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 03 + (190 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 04 + (190 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 05 + (202 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 06 + (202 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 07 + (206 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (206 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (206 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (206 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (206 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (206 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (206 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (206 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 503 + (166 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 00 + (166 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 01 + (166 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 02 + (166 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 03 + (184 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 04 + (184 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 05 + (184 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 06 + (184 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 07 + (190 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (190 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (190 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (190 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (202 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (202 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (202 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (202 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 504 + (166 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (166 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (166 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (166 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (166 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (166 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (166 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (166 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (184 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (184 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (184 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (184 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (184 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (184 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (184 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (184 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 505 + (190 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (190 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (190 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (190 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (190 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (190 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (190 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (190 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (202 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (202 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (202 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (202 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (202 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (202 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (202 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (202 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 506 + (242 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (242 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (242 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (242 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (242 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (242 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (242 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (242 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (201 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (201 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (201 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (201 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (201 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (201 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (201 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (201 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f + // State 507 + (31 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (31 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (31 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (31 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (31 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (31 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (31 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (31 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (219 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (219 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (219 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (219 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (205 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0c + (205 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0d + (239 << 24) | (1 << 6) | (1 << 3) | 0, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 1, // nibble 0f + // State 508 + (219 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (219 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (219 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (219 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (219 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (219 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (219 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (219 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (205 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 08 + (205 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 09 + (205 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0a + (205 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0b + (239 << 24) | (2 << 6) | (1 << 3) | 0, // nibble 0c + (239 << 24) | (223 << 6) | (1 << 3) | 0, // nibble 0d + (239 << 24) | (1 << 6) | (1 << 3) | 1, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 2, // nibble 0f + // State 509 + (205 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 00 + (205 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 01 + (205 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 02 + (205 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 03 + (205 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 04 + (205 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 05 + (205 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 06 + (205 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 07 + (239 << 24) | (3 << 6) | (1 << 3) | 0, // nibble 08 + (239 << 24) | (148 << 6) | (1 << 3) | 0, // nibble 09 + (239 << 24) | (224 << 6) | (1 << 3) | 0, // nibble 0a + (239 << 24) | (294 << 6) | (1 << 3) | 0, // nibble 0b + (239 << 24) | (2 << 6) | (1 << 3) | 1, // nibble 0c + (239 << 24) | (223 << 6) | (1 << 3) | 1, // nibble 0d + (239 << 24) | (1 << 6) | (1 << 3) | 2, // nibble 0e + (239 << 24) | (0 << 6) | (1 << 3) | 3, // nibble 0f +}; + + +bool unhuffimage4(uint32_t* compressed_image, uint32_t compressed_length_u32s, uint32_t stride_bytes, uint32_t height, unsigned char* image) +{ + memcpy(((char*)(image)), ((char*)(compressed_image)), stride_bytes); + uint32_t wordCount = (stride_bytes + 3) >> 2; + uint32_t* currentCompressedWordP = compressed_image + wordCount; + unsigned char* previousImageLine = image; + unsigned char* currentImageLine = image + stride_bytes; + uint32_t currentState = 0; + unsigned char byteAbove = *previousImageLine++; + uint32_t* compressedLim = compressed_image + compressed_length_u32s; + + // start first loop + uint32_t compressedWord = *currentCompressedWordP++; + uint32_t nibble = (compressedWord >> 26) & 0x3c; + uint32_t stateWord = *(uint32_t*)(((unsigned char*)DecompressionStateTable) + currentState + nibble); + + unsigned char* end = image + stride_bytes * height - 32; + while (currentImageLine < end) { + + uint32_t nextStateWord; + uint32_t i; + + nibble = (compressedWord >> 22) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord >> 18) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord >> 14) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord >> 10) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord >> 6) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord >> 2) & 0x3c; + + ONE_NIBBLE(); + + nibble = (compressedWord << 2) & 0x3c; + + if (currentCompressedWordP >= compressedLim) { + // we need to avoid accessing the next word of compressed data + end += 32; + ONE_NIBBLE_ROLLED_CHECKING(end); // processing 'nibble = (compressedWord >> 2) & 0x3c' + ONE_NIBBLE_ROLLED_CHECKING(end); // processing 'nibble = (compressedWord << 2) & 0x3c' + goto done; + } + compressedWord = *currentCompressedWordP++; + + ONE_NIBBLE(); // processing 'nibble = (compressedWord >> 2) & 0x3c' + + nibble = (compressedWord >> 26) & 0x3c; + + ONE_NIBBLE(); // processing 'nibble = (compressedWord << 2) & 0x3c' + } + + end += 32; + + while (currentImageLine < end && currentCompressedWordP <= compressedLim) { + uint32_t nextStateWord; + uint32_t i; + nibble = (compressedWord >> 22) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord >> 18) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord >> 14) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord >> 10) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord >> 6) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord >> 2) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); + if (currentImageLine < end) { + nibble = (compressedWord << 2) & 0x3c; + ONE_NIBBLE_ROLLED_CHECKING(end); // processing 'nibble = (compressedWord >> 2) & 0x3c' + if (currentImageLine < end) { + if (currentCompressedWordP == compressedLim) { + ONE_NIBBLE_ROLLED_CHECKING(end); // processing 'nibble = (compressedWord << 2) & 0x3c' + goto done; + } + else { + compressedWord = *currentCompressedWordP++; + nibble = (compressedWord >> 26) & 0x3c; // processing 'nibble = (compressedWord << 2) & 0x3c' + ONE_NIBBLE_ROLLED_CHECKING(end); + } + } + } + } + } + } + } + } + } + +done: + int64_t compressionOffset = (int64_t)(currentCompressedWordP - compressedLim); + int64_t resultOffset = end - currentImageLine; + + bool good = compressionOffset == 0 && resultOffset == 0; + + return good; +} diff --git a/common/fw-update-helper.cpp b/common/fw-update-helper.cpp new file mode 100644 index 00000000000..cd51d45d3cb --- /dev/null +++ b/common/fw-update-helper.cpp @@ -0,0 +1,558 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. +#include + +#include "fw-update-helper.h" + +#include +#include +#include +#include +#include +#include + +#include "os.h" + +#ifdef INTERNAL_FW +#include "common/fw/D4XX_FW_Image.h" +#include "common/fw/D4XX_RC_Image.h" +#include "common/fw/SR3XX_FW_Image.h" +#else +#define FW_D4XX_FW_IMAGE_VERSION "" +#define FW_D4XX_RC_IMAGE_VERSION "" +#define FW_SR3XX_FW_IMAGE_VERSION "" +const char* fw_get_D4XX_FW_Image(int) { return NULL; } +const char* fw_get_D4XX_RC_Image(int) { return NULL; } +const char* fw_get_SR3XX_FW_Image(int) { return NULL; } +#endif // INTERNAL_FW + +constexpr const char* recommended_fw_url = "https://dev.intelrealsense.com/docs/firmware-releases"; + +namespace rs2 +{ + enum firmware_update_ui_state + { + RS2_FWU_STATE_INITIAL_PROMPT = 0, + RS2_FWU_STATE_IN_PROGRESS = 1, + RS2_FWU_STATE_COMPLETE = 2, + RS2_FWU_STATE_FAILED = 3, + }; + + bool is_recommended_fw_available(std::string id) + { + auto pl = parse_product_line(id); + auto fv = get_available_firmware_version(pl); + return !(fv == ""); + } + + int parse_product_line(std::string id) + { + if (id == "D400") return RS2_PRODUCT_LINE_D400; + else if (id == "SR300") return RS2_PRODUCT_LINE_SR300; + else return -1; + } + + std::string get_available_firmware_version(int product_line) + { + bool allow_rc_firmware = config_file::instance().get_or_default(configurations::update::allow_rc_firmware, false); + + if (product_line == RS2_PRODUCT_LINE_D400 && allow_rc_firmware) return FW_D4XX_RC_IMAGE_VERSION; + else if (product_line == RS2_PRODUCT_LINE_D400) return FW_D4XX_FW_IMAGE_VERSION; + //else if (product_line == RS2_PRODUCT_LINE_SR300) return FW_SR3XX_FW_IMAGE_VERSION; + else return ""; + } + + std::map> create_default_fw_table() + { + bool allow_rc_firmware = config_file::instance().get_or_default(configurations::update::allow_rc_firmware, false); + + std::map> rv; + + if (strlen(FW_D4XX_FW_IMAGE_VERSION) && !allow_rc_firmware) + { + int size = 0; + auto hex = fw_get_D4XX_FW_Image(size); + auto vec = std::vector(hex, hex + size); + rv[RS2_PRODUCT_LINE_D400] = vec; + } + + if (strlen(FW_D4XX_RC_IMAGE_VERSION) && allow_rc_firmware) + { + int size = 0; + auto hex = fw_get_D4XX_RC_Image(size); + auto vec = std::vector(hex, hex + size); + rv[RS2_PRODUCT_LINE_D400] = vec; + } + + if (strlen(FW_SR3XX_FW_IMAGE_VERSION)) + { + int size = 0; + auto hex = fw_get_SR3XX_FW_Image(size); + auto vec = std::vector(hex, hex + size); + rv[RS2_PRODUCT_LINE_SR300] = vec; + } + + return rv; + } + + std::vector parse_fw_version(const std::string& fw) + { + std::vector rv; + size_t pos = 0; + std::string delimiter = "."; + auto str = fw + delimiter; + while ((pos = str.find(delimiter)) != std::string::npos) { + auto s = str.substr(0, pos); + int val = std::stoi(s); + rv.push_back(val); + str.erase(0, pos + delimiter.length()); + } + return rv; + } + + bool is_upgradeable(const std::string& curr, const std::string& available) + { + if (curr == "" || available == "") return false; + + size_t fw_string_size = 4; + auto c = parse_fw_version(curr); + auto a = parse_fw_version(available); + if (a.size() != fw_string_size || c.size() != fw_string_size) + return false; + + for (int i = 0; i < fw_string_size; i++) { + if (c[i] > a[i]) + return false; + if (c[i] < a[i]) + return true; + } + return false; //equle + } + + bool firmware_update_manager::check_for( + std::function action, std::function cleanup, + std::chrono::system_clock::duration delta) + { + using namespace std; + using namespace std::chrono; + + auto start = system_clock::now(); + auto now = system_clock::now(); + do + { + try + { + + if (action()) return true; + } + catch (const error& e) + { + fail(error_to_string(e)); + cleanup(); + return false; + } + catch (const std::exception& ex) + { + fail(ex.what()); + cleanup(); + return false; + } + catch (...) + { + fail("Unknown error during update.\nPlease reconnect the camera to exit recovery mode"); + cleanup(); + return false; + } + + now = system_clock::now(); + this_thread::sleep_for(milliseconds(100)); + } while (now - start < delta); + return false; + } + + void firmware_update_manager::process_flow( + std::function cleanup, + invoker invoke) + { + std::string serial = ""; + if (_dev.supports(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID)) + serial = _dev.get_info(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID); + else + serial = _dev.query_sensors().front().get_info(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID); + + _model.related_notifications.clear(); + + _progress = 5; + + int next_progress = 10; + + update_device dfu{}; + + if (auto upd = _dev.as()) + { + log("Backing-up camera flash memory"); + + auto flash = upd.create_flash_backup([&](const float progress) + { + _progress = ((ceil(progress * 5) / 5) * (30 - next_progress)) + next_progress; + }); + + auto temp = get_folder_path(special_folder::app_data); + temp += serial + "." + get_timestamped_file_name() + ".bin"; + + { + std::ofstream file(temp.c_str(), std::ios::binary); + file.write((const char*)flash.data(), flash.size()); + } + + std::string log_line = "Backup completed and saved as '"; + log_line += temp + "'"; + log(log_line); + + next_progress = 40; + + if (_is_signed) + { + log("Requesting to switch to recovery mode"); + upd.enter_update_state(); + + if (!check_for([this, serial, &dfu]() { + auto devs = _ctx.query_devices(); + + for (int j = 0; j < devs.size(); j++) + { + try + { + auto d = devs[j]; + if (d.is()) + { + if (d.supports(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID)) + { + if (serial == d.get_info(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID)) + { + dfu = d; + return true; + } + } + } + } + catch (std::exception &e) { + std::stringstream s; + s << "Exception caught in FW Update process-flow: " << e.what(); + log(s.str().c_str()); + } + catch (...) {} + } + + return false; + }, cleanup, std::chrono::seconds(60))) + { + fail("Recovery device did not connect in time!"); + return; + } + } + } + else + { + dfu = _dev.as(); + } + + if (dfu) + { + _progress = next_progress; + + log("Recovery device connected, starting update"); + + dfu.update(_fw, [&](const float progress) + { + _progress = (ceil(progress * 10) / 10 * (90 - next_progress)) + next_progress; + }); + + log("Firmware Download completed, await DFU transition event"); + std::this_thread::sleep_for(std::chrono::seconds(3)); + log("Firmware Update completed, waiting for device to reconnect"); + } + else + { + auto upd = _dev.as(); + upd.update_unsigned(_fw, [&](const float progress) + { + _progress = (ceil(progress * 10) / 10 * (90 - next_progress)) + next_progress; + }); + log("Firmware Update completed, waiting for device to reconnect"); + } + + if (!check_for([this, serial, &dfu]() { + auto devs = _ctx.query_devices(); + + for (int j = 0; j < devs.size(); j++) + { + try + { + auto d = devs[j]; + + if (d.query_sensors().size() && d.query_sensors().front().supports(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID)) + { + auto s = d.query_sensors().front().get_info(RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID); + if (s == serial) + { + log("Discovered connection of the original device"); + return true; + } + } + } + catch (...) {} + } + + return false; + }, cleanup, std::chrono::seconds(60))) + { + fail("Original device did not reconnect in time!"); + return; + } + + log("Device reconnected succesfully!"); + + _progress = 100; + + _done = true; + } + + void fw_update_notification_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + using namespace std; + using namespace chrono; + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 4) }); + + ImVec4 shadow{ 1.f, 1.f, 1.f, 0.1f }; + ImGui::GetWindowDrawList()->AddRectFilled({ float(x), float(y) }, + { float(x + width), float(y + 25) }, ImColor(shadow)); + + if (update_state != RS2_FWU_STATE_COMPLETE) + { + ImGui::Text("Firmware Update Recommended!"); + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + 27) }); + + draw_text(get_title().c_str(), x, y, height - 50); + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + height - 67) }); + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(light_grey, 1. - t)); + + if (update_state == RS2_FWU_STATE_INITIAL_PROMPT) + ImGui::Text("Firmware updates offer critical bug fixes and\nunlock new camera capabilities."); + else + ImGui::Text("Firmware update is underway...\nPlease do not disconnect the device"); + + ImGui::PopStyleColor(); + } + else + { + //ImGui::PushStyleColor(ImGuiCol_Text, alpha(light_blue, 1.f - t)); + ImGui::Text("Update Completed"); + //ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos({ float(x + 10), float(y + 35) }); + ImGui::PushFont(win.get_large_font()); + std::string txt = to_string() << textual_icons::throphy; + ImGui::Text("%s", txt.c_str()); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 40), float(y + 35) }); + ImGui::Text("Camera Firmware Updated Successfully"); + } + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + + const auto bar_width = width - 115; + + if (update_manager) + { + if (update_state == RS2_FWU_STATE_INITIAL_PROMPT) + { + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + std::string button_name = to_string() << "Install" << "##fwupdate" << index; + + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f }) || update_manager->started()) + { + if (!update_manager->started()) update_manager->start(shared_from_this()); + + update_state = RS2_FWU_STATE_IN_PROGRESS; + enable_dismiss = false; + last_progress_time = system_clock::now(); + } + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "New firmware will be flashed to the device"); + } + } + else if (update_state == RS2_FWU_STATE_IN_PROGRESS) + { + if (update_manager->done()) + { + update_state = RS2_FWU_STATE_COMPLETE; + pinned = false; + last_progress_time = last_interacted = system_clock::now(); + } + + if (!expanded) + { + if (update_manager->failed()) + { + update_manager->check_error(error_message); + update_state = RS2_FWU_STATE_FAILED; + pinned = false; + dismiss(false); + } + + draw_progress_bar(win, bar_width); + + ImGui::SetCursorScreenPos({ float(x + width - 105), float(y + height - 25) }); + + string id = to_string() << "Expand" << "##" << index; + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + if (ImGui::Button(id.c_str(), { 100, 20 })) + { + expanded = true; + } + + ImGui::PopStyleColor(); + } + } + } + else + { + std::string button_name = to_string() << "Learn More..." << "##" << index; + + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20 })) + { + open_url(recommended_fw_url); + } + if (ImGui::IsItemHovered()) + { + win.link_hovered(); + ImGui::SetTooltip("%s", "Internet connection required"); + } + } + } + + void fw_update_notification_model::draw_expanded(ux_window& win, std::string& error_message) + { + if (update_manager->started() && update_state == RS2_FWU_STATE_INITIAL_PROMPT) + update_state = RS2_FWU_STATE_IN_PROGRESS; + + auto flags = ImGuiWindowFlags_NoResize | + ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse; + + ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0, 0, 0, 0 }); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(500, 100)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0); + + std::string title = "Firmware Update"; + if (update_manager->failed()) title += " Failed"; + + ImGui::OpenPopup(title.c_str()); + if (ImGui::BeginPopupModal(title.c_str(), nullptr, flags)) + { + ImGui::SetCursorPosX(200); + std::string progress_str = to_string() << "Progress: " << update_manager->get_progress() << "%"; + ImGui::Text("%s", progress_str.c_str()); + + ImGui::SetCursorPosX(5); + + draw_progress_bar(win, 490); + + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); + auto s = update_manager->get_log(); + ImGui::InputTextMultiline("##fw_update_log", const_cast(s.c_str()), + s.size() + 1, { 490,100 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(); + + ImGui::SetCursorPosX(190); + if (visible || update_manager->done() || update_manager->failed()) + { + if (ImGui::Button("OK", ImVec2(120, 0))) + { + if (update_manager->done() || update_manager->failed()) + { + update_state = RS2_FWU_STATE_FAILED; + pinned = false; + dismiss(false); + } + expanded = false; + ImGui::CloseCurrentPopup(); + } + } + else + { + ImGui::PushStyleColor(ImGuiCol_Button, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, transparent); + ImGui::PushStyleColor(ImGuiCol_Text, transparent); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, transparent); + ImGui::Button("OK", ImVec2(120, 0)); + ImGui::PopStyleColor(5); + } + + ImGui::EndPopup(); + } + + ImGui::PopStyleVar(3); + ImGui::PopStyleColor(4); + + error_message = ""; + } + + int fw_update_notification_model::calc_height() + { + if (update_state != RS2_FWU_STATE_COMPLETE) return 150; + else return 65; + } + + void fw_update_notification_model::set_color_scheme(float t) const + { + notification_model::set_color_scheme(t); + + ImGui::PopStyleColor(1); + + ImVec4 c; + + if (update_state == RS2_FWU_STATE_COMPLETE) + { + c = alpha(saturate(light_blue, 0.7f), 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + else + { + c = alpha(sensor_bg, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + } + + fw_update_notification_model::fw_update_notification_model(std::string name, + std::shared_ptr manager, bool exp) + : process_notification_model(manager) + { + enable_expand = false; + expanded = exp; + if (expanded) visible = false; + + message = name; + this->severity = RS2_LOG_SEVERITY_INFO; + this->category = RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED; + + pinned = true; + } +} diff --git a/common/fw-update-helper.h b/common/fw-update-helper.h new file mode 100644 index 00000000000..602f5e95ece --- /dev/null +++ b/common/fw-update-helper.h @@ -0,0 +1,48 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "notifications.h" + +namespace rs2 +{ + int parse_product_line(std::string id); + std::string get_available_firmware_version(int product_line); + std::map> create_default_fw_table(); + std::vector parse_fw_version(const std::string& fw); + bool is_upgradeable(const std::string& curr, const std::string& available); + bool is_recommended_fw_available(std::string version); + + class firmware_update_manager : public process_manager + { + public: + firmware_update_manager(device_model& model, device dev, context ctx, std::vector fw, bool is_signed) + : process_manager("Firmware Update"), _model(model), + _fw(fw), _is_signed(is_signed), _dev(dev), _ctx(ctx) {} + + private: + void process_flow(std::function cleanup, + invoker invoke) override; + bool check_for( + std::function action, std::function cleanup, + std::chrono::system_clock::duration delta); + + device _dev; + context _ctx; + std::vector _fw; + bool _is_signed; + device_model& _model; + }; + + struct fw_update_notification_model : public process_notification_model + { + fw_update_notification_model(std::string name, + std::shared_ptr manager, bool expaned); + + void set_color_scheme(float t) const override; + void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override; + void draw_expanded(ux_window& win, std::string& error_message) override; + int calc_height() override; + }; +} \ No newline at end of file diff --git a/common/fw/CMakeLists.txt b/common/fw/CMakeLists.txt new file mode 100644 index 00000000000..e26a18563c0 --- /dev/null +++ b/common/fw/CMakeLists.txt @@ -0,0 +1,85 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +cmake_minimum_required(VERSION 3.1.3) + +project(uvc_fw) + +file(READ "firmware-version.h" ver) + +message(STATUS "Fetching recommended firmwares:") + +string(REGEX MATCH "D4XX_RC_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" _ ${ver}) +set(D4XX_RC_VERSION ${CMAKE_MATCH_1}) +message(STATUS "D4XX_RC_VERSION: ${D4XX_RC_VERSION}") +set(D4XX_RC_SHA1 be77db800142110b35d1cc7f12dfc77e75ed9c8a) +set(D4XX_RC_URL "http://realsense-hw-public.s3-eu-west-1.amazonaws.com/Releases/RS4xx/FW") + +string(REGEX MATCH "D4XX_RECOMMENDED_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" _ ${ver}) +set(D4XX_FW_VERSION ${CMAKE_MATCH_1}) +message(STATUS "D4XX_FW_VERSION: ${D4XX_FW_VERSION}") +set(D4XX_FW_SHA1 be77db800142110b35d1cc7f12dfc77e75ed9c8a) +set(D4XX_FW_URL "http://realsense-hw-public.s3-eu-west-1.amazonaws.com/Releases/RS4xx/FW") + + +string(REGEX MATCH "SR3XX_RECOMMENDED_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" _ ${ver}) +set(SR3XX_FW_VERSION ${CMAKE_MATCH_1}) +message(STATUS "SR3XX_FW_VERSION: ${SR3XX_FW_VERSION}") +set(SR3XX_FW_SHA1 55237dba5d7db20e7c218975375d05b4210e9460) +set(SR3XX_FW_URL "http://realsense-hw-public.s3-eu-west-1.amazonaws.com/Releases/SR300/FW") + +string(REGEX MATCH "T26X_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" _ ${ver}) +set(T26X_FW_VERSION ${CMAKE_MATCH_1}) +message(STATUS "T26X_FW_VERSION: ${T26X_FW_VERSION}") +set(T26X_FW_SHA1 fb857641b003977478c4e5855658803e13a784c7) +set(T26X_FW_URL "http://realsense-hw-public.s3.amazonaws.com/Releases/TM2/FW/target/${T26X_FW_VERSION}") + +add_library(${PROJECT_NAME} STATIC empty.c) + +if (MSVC) + # lib.exe can't handle multiple .res files, so include them in one. + # even then, the linker won't grab a .res out of a .lib object, so it needs to be explicitly listed + # and to find the name of the .res file (across cmake generators) we need to create our own rule. :( + add_custom_command(TARGET ${PROJECT_NAME} BYPRODUCTS ${PROJECT_NAME}.res COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_RC_FLAGS} /I . /fo "${PROJECT_NAME}.res" "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.rc") + target_link_libraries(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res") +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC $) +set_target_properties (${PROJECT_NAME} PROPERTIES FOLDER Resources) + +function(target_binary url version sha1 symbol ext) + set(binary "${CMAKE_CURRENT_BINARY_DIR}/${symbol}-${version}${ext}") + message(STATUS "${url}/${symbol}-${version}${ext}") + file(DOWNLOAD "${url}/${symbol}-${version}${ext}" "${binary}" + EXPECTED_HASH SHA1=${sha1} + STATUS status) + list(GET status 0 error_code) + if (NOT ${error_code} EQUAL 0) + message(FATAL_ERROR "Download firmwnare (${status}) - ${url}") + else() + message(STATUS "Download firmware ${status} for ${symbol}-${version}${ext}") + endif() + string(TOUPPER ${symbol} SYMBOL) + string(REPLACE "." "," version_commas ${version}) + string(REPLACE "\\" "\\\\" binary_escaped "${binary}") + configure_file(fw.c.in "${CMAKE_CURRENT_BINARY_DIR}/${symbol}.c" @ONLY) + configure_file(fw.h.in "${CMAKE_CURRENT_BINARY_DIR}/${symbol}.h" @ONLY) + configure_file(fw.rc.in "${CMAKE_CURRENT_BINARY_DIR}/${symbol}.rc" @ONLY) + if (MSVC) + enable_language(RC) + set_source_files_properties("${PROJECT_NAME}.rc" OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${symbol}.rc") + set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/${symbol}.rc" OBJECT_DEPENDS "${binary}") + else() + set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/${symbol}.c" OBJECT_DEPENDS "${binary}") + endif() + target_sources(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/${symbol}.c") +endfunction() + +target_binary( "${D4XX_FW_URL}" "${D4XX_FW_VERSION}" "${D4XX_FW_SHA1}" D4XX_FW_Image .bin) +target_binary( "${D4XX_RC_URL}" "${D4XX_RC_VERSION}" "${D4XX_RC_SHA1}" D4XX_RC_Image .bin) +target_binary( "${SR3XX_FW_URL}" "${SR3XX_FW_VERSION}" "${SR3XX_FW_SHA1}" SR3XX_FW_Image .bin) +target_binary( "${T26X_FW_URL}" "${T26X_FW_VERSION}" "${T26X_FW_SHA1}" target .mvcmd) + +install(TARGETS ${PROJECT_NAME} EXPORT realsense2Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/common/fw/empty.c b/common/fw/empty.c new file mode 100644 index 00000000000..e69de29bb2d diff --git a/common/fw/firmware-version.h b/common/fw/firmware-version.h new file mode 100644 index 00000000000..a59b0682e1e --- /dev/null +++ b/common/fw/firmware-version.h @@ -0,0 +1,9 @@ +/* License: Apache 2.0. See LICENSE file in root directory. + Copyright(c) 2017 Intel Corporation. All Rights Reserved. */ + +#pragma once + +#define D4XX_RECOMMENDED_FIRMWARE_VERSION "5.12.3.0" +#define SR3XX_RECOMMENDED_FIRMWARE_VERSION "3.26.1.0" +#define D4XX_RC_FIRMWARE_VERSION "5.12.3.0" +#define T26X_FIRMWARE_VERSION "0.2.0.926" diff --git a/common/fw/fw.c.in b/common/fw/fw.c.in new file mode 100644 index 00000000000..86755f7bee8 --- /dev/null +++ b/common/fw/fw.c.in @@ -0,0 +1,25 @@ +// All included firmware files are +// INTEL CORPORATION PROPRIETARY INFORMATION +// Copyright(c) 2019 Intel Corporation. All Rights Reserved +const int fw_@symbol@_version[4] = {@version_commas@}; +#ifndef _MSC_VER +__asm__( + "#version @sha1@\n" +#ifdef __APPLE__ + ".const_data\n" +#define _ "_" +#else + ".section .rodata\n" +#define _ "" +#endif + ".global "_"fw_@symbol@_data\n" + _"fw_@symbol@_data:\n" + ".incbin \"@binary_escaped@\"\n" + ".global "_"fw_@symbol@_size\n" + _"fw_@symbol@_size:\n" + "1:\n" + ".int 1b - "_"fw_@symbol@_data\n" + ".previous" +); +#undef _ +#endif diff --git a/common/fw/fw.h.in b/common/fw/fw.h.in new file mode 100644 index 00000000000..a0de8806964 --- /dev/null +++ b/common/fw/fw.h.in @@ -0,0 +1,25 @@ +#pragma once + +#define FW_@SYMBOL@_VERSION "@version@" + +extern "C" const unsigned char fw_@symbol@_data[]; +extern "C" const int fw_@symbol@_size; +extern "C" const int fw_@symbol@_version[4]; + +#ifdef _MSC_VER +#include +extern "C" IMAGE_DOS_HEADER __ImageBase; +#endif + +static inline const unsigned char *fw_get_@symbol@(int &size) +{ +#ifdef _MSC_VER + HRSRC rc = ::FindResourceA((HMODULE)&__ImageBase, "@SYMBOL@_DATA" , "@SYMBOL@_RC"); + HGLOBAL data = ::LoadResource((HMODULE)&__ImageBase, rc); + size = ::SizeofResource((HMODULE)&__ImageBase, rc); + return static_cast(::LockResource(data)); +#else + size = fw_@symbol@_size; + return fw_@symbol@_data; +#endif +} diff --git a/common/fw/fw.rc.in b/common/fw/fw.rc.in new file mode 100644 index 00000000000..cae03a124ac --- /dev/null +++ b/common/fw/fw.rc.in @@ -0,0 +1 @@ +@SYMBOL@_DATA @SYMBOL@_RC "@binary_escaped@" diff --git a/common/fw/uvc_fw.rc b/common/fw/uvc_fw.rc new file mode 100644 index 00000000000..da17e4db89f --- /dev/null +++ b/common/fw/uvc_fw.rc @@ -0,0 +1,4 @@ +#include "D4XX_FW_Image.rc" +#include "D4XX_RC_Image.rc" +#include "SR3XX_FW_Image.rc" +#include "target.rc" diff --git a/common/metadata-helper.cpp b/common/metadata-helper.cpp new file mode 100644 index 00000000000..d590ea55bc9 --- /dev/null +++ b/common/metadata-helper.cpp @@ -0,0 +1,350 @@ +#include "metadata-helper.h" + +#ifdef WIN32 + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#define MAX_KEY_LENGTH 255 +#define MAX_VALUE_NAME 16383 + +#ifdef _MSC_VER +#define strncasecmp _strnicmp +#define strcasecmp _stricmp +#endif + +#endif + +namespace rs2 +{ +#ifdef WIN32 + struct device_id + { + std::string pid, mi, guid, sn; + }; + + inline bool equal(const std::string& a, const std::string& b) + { + return strcasecmp(a.c_str(), b.c_str()) == 0; + } + + inline bool operator==(const device_id& a, const device_id& b) + { + return equal(a.pid, b.pid) && + equal(a.guid, b.guid) && + equal(a.mi, b.mi) && + equal(a.sn, b.sn); + } + + class windows_metadata_helper : public metadata_helper + { + public: + static bool parse_device_id(const std::string& id, device_id* res) + { + static const std::regex regex("pid_([0-9a-f]+)&mi_([0-9]+)#[0-9]&([0-9a-f]+)&[\\s\\S]*\\{([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\}", std::regex_constants::icase); + + std::match_results match; + + if (std::regex_search(id, match, regex) && match.size() > 4) + { + res->pid = match[1]; + res->mi = match[2]; + res->sn = match[3]; + res->guid = match[4]; + return true; + } + return false; + } + + static void foreach_device_path(const std::vector& devices, + std::function action) + { + std::map> guid_to_devices; + for (auto&& d : devices) + { + guid_to_devices[d.guid].push_back(d); + } + + for (auto&& kvp : guid_to_devices) + { + auto guid = kvp.first; + + std::stringstream ss; + ss << "SYSTEM\\CurrentControlSet\\Control\\DeviceClasses\\{" << guid << "}"; + auto s = ss.str(); + std::wstring prefix(s.begin(), s.end()); + + HKEY key; + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, prefix.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &key) == ERROR_SUCCESS) + { + // Don't forget to release in the end: + std::shared_ptr raii(key, RegCloseKey); + + TCHAR achClass[MAX_PATH] = TEXT(""); // buffer for class name + DWORD cchClassName = MAX_PATH; // size of class string + DWORD cSubKeys = 0; // number of subkeys + DWORD cbMaxSubKey; // longest subkey size + DWORD cchMaxClass; // longest class string + DWORD cValues; // number of values for key + DWORD cchMaxValue; // longest value name + DWORD cbMaxValueData; // longest value data + DWORD cbSecurityDescriptor; // size of security descriptor + FILETIME ftLastWriteTime; // last write time + + DWORD retCode = RegQueryInfoKey( + key, // key handle + achClass, // buffer for class name + &cchClassName, // size of class string + NULL, // reserved + &cSubKeys, // number of subkeys + &cbMaxSubKey, // longest subkey size + &cchMaxClass, // longest class string + &cValues, // number of values for this key + &cchMaxValue, // longest value name + &cbMaxValueData, // longest value data + &cbSecurityDescriptor, // security descriptor + &ftLastWriteTime); // last write time + + for (int i = 0; i raii(admin_group, FreeSid); + + if (!CheckTokenMembership(NULL, admin_group, &result)) + { + rs2::log(RS2_LOG_SEVERITY_WARN, "Unable to query permissions - CheckTokenMembership failed"); + return false; + } + + return result; + } + + bool elevate_to_admin() + { + if (!is_running_as_admin()) + { + wchar_t szPath[MAX_PATH]; + if (GetModuleFileName(NULL, szPath, ARRAYSIZE(szPath))) + { + SHELLEXECUTEINFO sei = { sizeof(sei) }; + + sei.lpVerb = L"runas"; + sei.fMask = SEE_MASK_NOCLOSEPROCESS; + sei.lpFile = szPath; + sei.hwnd = NULL; + sei.nShow = SW_NORMAL; + auto cmd_line = get_command_line_param(); + std::wstring wcmd(cmd_line.begin(), cmd_line.end()); + sei.lpParameters = wcmd.c_str(); + + if (ShellExecuteEx(&sei) != ERROR_SUCCESS) + { + rs2::log(RS2_LOG_SEVERITY_WARN, "Unable to elevate to admin privilege to enable metadata!"); + return false; + } + else + { + WaitForSingleObject(sei.hProcess, INFINITE); + DWORD exitCode = 0; + GetExitCodeProcess(sei.hProcess, &exitCode); + CloseHandle(sei.hProcess); + if (exitCode) + throw std::runtime_error("Failed to set metadata registry keys!"); + } + } + else + { + rs2::log(RS2_LOG_SEVERITY_WARN, "Unable to fetch module name!"); + return false; + } + } + else + { + return true; + } + } + + bool is_enabled(std::string id) const override + { + bool res = false; + + device_id did; + if (parse_device_id(id, &did)) + foreach_device_path({ did }, [&res, did](const device_id&, std::wstring path) { + + HKEY key; + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, path.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &key) == ERROR_SUCCESS) + { + // Don't forget to release in the end: + std::shared_ptr raii(key, RegCloseKey); + + bool found = true; + DWORD len = sizeof(DWORD);//size of data + + for (int i = 0; i < number_of_mediapins(did.pid, did.mi); i++) + { + std::wstringstream ss; ss << L"MetadataBufferSizeInKB" << i; + std::wstring metadatakey = ss.str(); + + DWORD MetadataBufferSizeInKB = 0; + if (RegQueryValueEx( + key, + metadatakey.c_str(), + NULL, + NULL, + (LPBYTE)(&MetadataBufferSizeInKB), + &len) != ERROR_SUCCESS) + rs2::log(RS2_LOG_SEVERITY_DEBUG, "Unable to read metadata registry key!"); + + found = found && MetadataBufferSizeInKB; + } + + if (found) res = true; + } + }); + + return res; + } + + void enable_metadata() override + { + if (elevate_to_admin()) // Elevation to admin was succesful? + { + std::vector dids; + + rs2::context ctx; + auto list = ctx.query_devices(); + for (int i = 0; i < list.size(); i++) + { + try + { + rs2::device dev = list[i]; + if (dev.supports(RS2_CAMERA_INFO_PRODUCT_LINE) && dev.supports(RS2_CAMERA_INFO_PHYSICAL_PORT)) + { + std::string product = dev.get_info(RS2_CAMERA_INFO_PRODUCT_LINE); + if (can_support_metadata(product)) + { + std::string port = dev.get_info(RS2_CAMERA_INFO_PHYSICAL_PORT); + device_id did; + if (parse_device_id(port, &did)) dids.push_back(did); + } + } + } + catch (...) {} + } + + bool failure = false; + foreach_device_path(dids, [&failure](const device_id& did, std::wstring path) { + HKEY key; + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, path.c_str(), 0, KEY_WRITE | KEY_WOW64_64KEY, &key) == ERROR_SUCCESS) + { + // Don't forget to release in the end: + std::shared_ptr raii(key, RegCloseKey); + + bool found = true; + DWORD len = sizeof(DWORD);//size of data + + for (int i = 0; i < number_of_mediapins(did.pid, did.mi); i++) + { + std::wstringstream ss; ss << L"MetadataBufferSizeInKB" << i; + std::wstring metadatakey = ss.str(); + + DWORD MetadataBufferSizeInKB = 5; + if (RegSetValueEx(key, metadatakey.c_str(), 0, REG_DWORD, + (const BYTE*)&MetadataBufferSizeInKB, sizeof(DWORD)) != ERROR_SUCCESS) + { + rs2::log(RS2_LOG_SEVERITY_DEBUG, "Unable to write metadata registry key!"); + failure = true; + } + } + } + }); + if (failure) throw std::runtime_error("Unable to write to metadata registry key!"); + } + } + }; +#endif + + metadata_helper& metadata_helper::instance() + { +#ifdef WIN32 + static windows_metadata_helper instance; +#else + static metadata_helper instance; +#endif + return instance; + } +} \ No newline at end of file diff --git a/common/metadata-helper.h b/common/metadata-helper.h new file mode 100644 index 00000000000..af0f6b1c03a --- /dev/null +++ b/common/metadata-helper.h @@ -0,0 +1,31 @@ +#pragma once + +#include + +namespace rs2 +{ + // Helper class that is responsible for enabling per-frame metadata on different platforms + // Currently implemented for Windows + class metadata_helper + { + public: + static metadata_helper& instance(); + + // Check if metadata is enabled using Physical Port ID + // (can be retrieved with device::get_info(RS2_CAMERA_INFO_PHYSICAL_PORT)) + // throws runtime_error in case of errors + virtual bool is_enabled(std::string id) const { return true; } + + // Enable metadata for all connected devices + // throws runtime_error in case of errors + virtual void enable_metadata() { } + + static bool can_support_metadata(const std::string& product) + { + return product == "D400" || product == "SR300" || product == "L500"; + } + + // This is the command-line parameter that gets passed to another process (running as admin) in order to enable metadata -- see WinMain + static std::string get_command_line_param() { return "--enable_metadata"; } + }; +} \ No newline at end of file diff --git a/common/model-views.cpp b/common/model-views.cpp index 143cd39b760..d59c0ba8872 100644 --- a/common/model-views.cpp +++ b/common/model-views.cpp @@ -11,27 +11,38 @@ #include #include #include + +#include + #include #include #include "model-views.h" +#include "notifications.h" +#include "fw-update-helper.h" +#include "on-chip-calib.h" +#include "viewer.h" #include +#include -#define STB_IMAGE_WRITE_IMPLEMENTATION -#include - -#define NOC_FILE_DIALOG_IMPLEMENTATION -#include - -#define ARCBALL_CAMERA_IMPLEMENTATION -#include +#include "os.h" -constexpr const char* recommended_fw_url = "https://downloadcenter.intel.com/download/27522/Latest-Firmware-for-Intel-RealSense-D400-Product-Family?v=t"; -constexpr const char* store_url = "https://click.intel.com/"; +#include "metadata-helper.h" using namespace rs400; using namespace nlohmann; + +static rs2_sensor_mode resolution_from_width_height(int width, int height) +{ + if ((width == 640 && height == 480) || (height == 640 && width == 480)) + return RS2_SENSOR_MODE_VGA; + else if ((width == 1024 && height == 768) || (height == 768 && width == 1024)) + return RS2_SENSOR_MODE_XGA; + else + return RS2_SENSOR_MODE_COUNT; +} + ImVec4 flip(const ImVec4& c) { return{ c.y, c.x, c.z, c.w }; @@ -56,51 +67,76 @@ ImVec4 operator+(const ImVec4& c, float v) ); } -void open_url(const char* url) +struct attribute { -#if (defined(_WIN32) || defined(_WIN64)) - if (reinterpret_cast(ShellExecuteA(NULL, "open", url, NULL, NULL, SW_SHOW)) < 32) - throw std::runtime_error("Failed opening URL"); -#elif defined __linux__ || defined(__linux__) - std::string command_name = "xdg-open "; - std::string command = command_name + url; - if (system(command.c_str())) - throw std::runtime_error("Failed opening URL"); -#elif __APPLE__ - std::string command_name = "open "; - std::string command = command_name + url; - if (system(command.c_str())) - throw std::runtime_error("Failed opening URL"); -#else -#pragma message ( "\nLibrealsense couldn't establish OS/Build environment. \ -Some auxillary functionalities might be affected. Please report this message if encountered") -#endif -} + std::string name; + std::string value; + std::string description; +}; -std::vector split_string(std::string& input, char delim) +namespace rs2 { - std::vector result; - auto e = input.end(); - auto i = input.begin(); - while (i != e) { - i = find_if_not(i, e, [delim](char c) { return c == delim; }); - if (i == e) break; - auto j = find(i, e, delim); - result.emplace_back(i, j); - i = j; + template + std::string safe_call(T t) + { + try + { + t(); + return ""; + } + catch (const error& e) + { + return error_to_string(e); + } + catch (const std::exception& e) + { + return e.what(); + } + catch (...) + { + return "Unknown error occurred"; + } + } + + std::vector bytes_from_bin_file(const std::string& filename) + { + std::ifstream file(filename.c_str(), std::ios::binary); + if (!file.good()) + throw std::runtime_error(to_string() << "Invalid binary file specified " << filename << " verify the source path and location permissions"); + + // Determine the file length + file.seekg(0, std::ios_base::end); + std::size_t size = file.tellg(); + if (!size) + throw std::runtime_error(to_string() << "Invalid binary file " << filename << " provided - zero-size "); + file.seekg(0, std::ios_base::beg); + + // Create a vector to store the data + std::vector v(size); + + // Load the data + file.read((char*)&v[0], size); + + return v; + } + + // Flush binary stream to file, override previous if exists + void bin_file_from_bytes(const std::string& filename, const std::vector bytes) + { + std::ofstream file(filename, std::ios::binary | std::ios::trunc); + if (!file.good()) + throw std::runtime_error(to_string() << "Invalid binary file specified " << filename << " verify the target path and location permissions"); + file.write((char*)bytes.data(), bytes.size()); } - return result; -} -namespace rs2 -{ void imgui_easy_theming(ImFont*& font_14, ImFont*& font_18) { ImGuiStyle& style = ImGui::GetStyle(); ImGuiIO& io = ImGui::GetIO(); + io.IniFilename = nullptr; - const auto OVERSAMPLE = 1; + const int OVERSAMPLE = config_file::instance().get(configurations::performance::font_oversample); static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope. @@ -160,67 +196,99 @@ namespace rs2 style.Colors[ImGuiCol_TitleBgActive] = header_color; } - // Helper function to get window rect from GLFW - rect get_window_rect(GLFWwindow* window) + void save_processing_block_to_config_file(const char* name, + std::shared_ptr pb, bool enable) + { + for (auto opt : pb->get_supported_options()) + { + auto val = pb->get_option(opt); + std::string key = name; + key += "."; + key += pb->get_option_name(opt); + config_file::instance().set(key.c_str(), val); + } + + std::string key = name; + key += ".enabled"; + config_file::instance().set(key.c_str(), enable); + } + + bool restore_processing_block(const char* name, + std::shared_ptr pb, bool enable = true) { - int width, height; - glfwGetWindowSize(window, &width, &height); - int xpos, ypos; - glfwGetWindowPos(window, &xpos, &ypos); + for (auto opt : pb->get_supported_options()) + { + std::string key = name; + key += "."; + key += pb->get_option_name(opt); + if (config_file::instance().contains(key.c_str())) + { + float val = config_file::instance().get(key.c_str()); + try + { + auto range = pb->get_option_range(opt); + if (val >= range.min && val <= range.max) + pb->set_option(opt, val); + } + catch (...) + { + } + } + } - return{ (float)xpos, (float)ypos, - (float)width, (float)height }; + std::string key = name; + key += ".enabled"; + if (config_file::instance().contains(key.c_str())) + { + return config_file::instance().get(key.c_str()); + } + return enable; } - // Helper function to get monitor rect from GLFW - rect get_monitor_rect(GLFWmonitor* monitor) + void hyperlink(ux_window& window, const char* title, const char* link) { - const GLFWvidmode* mode = glfwGetVideoMode(monitor); - int xpos, ypos; - glfwGetMonitorPos(monitor, &xpos, &ypos); + if (ImGui::Button(title)) + { + open_url(link); + } + if (ImGui::IsItemHovered()) + { + window.link_hovered(); + } + } - return{ (float)xpos, (float)ypos, - (float)mode->width, (float)mode->height }; + void open_issue(std::string body) + { + std::string link = "https://github.com/IntelRealSense/librealsense/issues/new?body=" + url_encode(body); + open_url(link.c_str()); } - // Select appropriate scale factor based on the display - // that most of the application is presented on - int pick_scale_factor(GLFWwindow* window) + void open_issue(const device_models_list& devices) { - auto window_rect = get_window_rect(window); - int count; - GLFWmonitor** monitors = glfwGetMonitors(&count); - if (count == 0) return 1; // Not sure if possible, but better be safe + std::stringstream ss; + + rs2_error* e = nullptr; + + ss << "| | |\n"; + ss << "|---|---|\n"; + ss << "|**librealsense**|" << api_version_to_string(rs2_get_api_version(&e)) << (is_debug() ? " DEBUG" : " RELEASE") << "|\n"; + ss << "|**OS**|" << get_os_name() << "|\n"; - // Find the monitor that covers most of the application pixels: - GLFWmonitor* best = monitors[0]; - float best_area = 0.f; - for (int i = 0; i < count; i++) + for (auto& dm : devices) { - auto int_area = window_rect.intersection( - get_monitor_rect(monitors[i])).area(); - if (int_area >= best_area) + for (auto& kvp : dm->infos) { - best_area = int_area; - best = monitors[i]; + if (kvp.first != "Recommended Firmware Version" && + kvp.first != "Debug Op Code" && + kvp.first != "Physical Port" && + kvp.first != "Product Id") + ss << "|**" << kvp.first << "**|" << kvp.second << "|\n"; } } - int widthMM = 0; - int heightMM = 0; - glfwGetMonitorPhysicalSize(best, &widthMM, &heightMM); + ss << "\nPlease provide a description of the problem"; - // This indicates that the monitor dimentions are unknown - if (widthMM * heightMM == 0) return 1; - - // The actual calculation is somewhat arbitrary, but we are going for - // about 1cm buttons, regardless of resultion - // We discourage fractional scale factors - float how_many_pixels_in_mm = - get_monitor_rect(best).area() / (widthMM * heightMM); - float scale = sqrt(how_many_pixels_in_mm) / 5.f; - if (scale < 1.f) return 1; - return (int)(floor(scale)); + open_issue(ss.str()); } std::tuple get_texcolor(video_frame texture, texture_coordinate texcoords) @@ -234,41 +302,16 @@ namespace rs2 texture_data[idx], texture_data[idx + 1], texture_data[idx + 2]); } - void export_to_ply(const std::string& fname, notifications_model& ns, frameset frames, video_frame texture, bool notify) + void export_frame(const std::string& fname, std::unique_ptr exporter, + notifications_model& ns, frame data, bool notify) { - std::thread([&ns, frames, texture, fname, notify]() mutable { - - points p; - - for (auto&& f : frames) - { - if (p = f.as()) - { - break; - } - } + auto manager = std::make_shared(fname, std::move(exporter), data); - if (p) - { - p.export_to_ply(fname, texture); - if (notify) ns.add_notification({ to_string() << "Finished saving 3D view " << (texture ? "to " : "without texture to ") << fname, - std::chrono::duration_cast>(std::chrono::high_resolution_clock::now().time_since_epoch()).count(), - RS2_LOG_SEVERITY_INFO, - RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); - } - }).detach(); - } + auto n = std::make_shared(manager); + ns.add_notification(n); + n->forced = true; - const char* file_dialog_open(file_dialog_mode flags, const char* filters, const char* default_path, const char* default_name) - { - return noc_file_dialog_open(flags, filters, default_path, default_name); - } - - int save_to_png(const char* filename, - size_t pixel_width, size_t pixels_height, size_t bytes_per_pixel, - const void* raster_data, size_t stride_bytes) - { - return stbi_write_png(filename, (int)pixel_width, (int)pixels_height, (int)bytes_per_pixel, raster_data, (int)stride_bytes); + manager->start(n); } bool save_frame_raw_data(const std::string& filename, rs2::frame frame) @@ -378,10 +421,48 @@ namespace rs2 throw std::runtime_error(std::string("Failed to match MAC in string: ") + data); } + option_model create_option_model(rs2_option opt, + const std::string& opt_base_label, + subdevice_model* model, + std::shared_ptr options, + bool* options_invalidated, + std::string& error_message) + { + option_model option; + + std::stringstream ss; + + ss << opt_base_label << "/" << options->get_option_name(opt); + option.id = ss.str(); + option.opt = opt; + option.endpoint = options; + option.label = options->get_option_name(opt) + std::string("##") + ss.str(); + option.invalidate_flag = options_invalidated; + option.dev = model; + + option.supported = options->supports(opt); + if (option.supported) + { + try + { + option.range = options->get_option_range(opt); + option.read_only = options->is_option_read_only(opt); + option.value = options->get_option(opt); + } + catch (const error& e) + { + option.range = { 0, 1, 0, 0 }; + option.value = 0; + error_message = error_to_string(e); + } + } + return option; + } + bool option_model::draw(std::string& error_message, notifications_model& model, bool new_line, bool use_option_name) { auto res = false; - if (supported) + if (endpoint->supports(opt)) { // The option's rendering model supports an alternative option title derived from its description rather than name. // This is applied to the Holes Filling as its display must conform with the names used by a 3rd-party tools for consistency. @@ -422,7 +503,7 @@ namespace rs2 { if (!is_enum()) { - std::string txt = to_string() << rs2_option_to_string(opt) << ":"; + std::string txt = to_string() << endpoint->get_option_name(opt) << ":"; ImGui::Text("%s", txt.c_str()); ImGui::SameLine(); @@ -489,7 +570,7 @@ namespace rs2 { if (read_only) { - ImVec2 vec{ 0, 14 }; + ImVec2 vec{ 0, 20 }; std::string text = (value == (int)value) ? std::to_string((int)value) : std::to_string(value); if (range.min != range.max) { @@ -568,7 +649,7 @@ namespace rs2 if (value >= 0) value = (loffset < roffset) ? value - loffset : value + roffset; else - value = (loffset < roffset) ? value + loffset : value - roffset; + value = (loffset < roffset) ? value + loffset : value - roffset; value = (value < range.min) ? range.min : value; value = (value > range.max) ? range.max : value; model.add_log(to_string() << "Setting " << opt << " to " << value); @@ -585,7 +666,7 @@ namespace rs2 } else { - std::string txt = to_string() << (use_option_name ? rs2_option_to_string(opt) : desc) << ":"; + std::string txt = to_string() << (use_option_name ? endpoint->get_option_name(opt) : desc) << ":"; auto pos_x = ImGui::GetCursorPosX(); @@ -701,7 +782,7 @@ namespace rs2 { try { - if (supported = endpoint->supports(opt)) + if ((supported = endpoint->supports(opt))) { value = endpoint->get_option(opt); range = endpoint->get_option_range(opt); @@ -711,9 +792,7 @@ namespace rs2 catch (const error& e) { if (read_only) { - auto timestamp = std::chrono::duration(std::chrono::system_clock::now().time_since_epoch()).count(); - model.add_notification({ to_string() << "Could not refresh read-only option " << rs2_option_to_string(opt) << ": " << e.what(), - timestamp, + model.add_notification({ to_string() << "Could not refresh read-only option " << endpoint->get_option_name(opt) << ": " << e.what(), RS2_LOG_SEVERITY_WARN, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); } @@ -754,72 +833,98 @@ namespace rs2 bool* options_invalidated, std::string& error_message) { - for (auto i = 0; i < RS2_OPTION_COUNT; i++) + for (auto&& i: options->get_supported_options()) { - option_model metadata; auto opt = static_cast(i); - std::stringstream ss; - ss << opt_base_label << "/" << rs2_option_to_string(opt); - metadata.id = ss.str(); - metadata.opt = opt; - metadata.endpoint = options; - metadata.label = rs2_option_to_string(opt) + std::string("##") + ss.str(); - metadata.invalidate_flag = options_invalidated; - metadata.dev = model; - - metadata.supported = options->supports(opt); - if (metadata.supported) - { - try - { - metadata.range = options->get_option_range(opt); - metadata.read_only = options->is_option_read_only(opt); - if (!metadata.read_only) - metadata.value = options->get_option(opt); - } - catch (const error& e) - { - metadata.range = { 0, 1, 0, 0 }; - metadata.value = 0; - error_message = error_to_string(e); - } - } - opt_container[opt] = metadata; + opt_container[opt] = create_option_model(opt, opt_base_label, model, options, options_invalidated, error_message); } } + std::string get_device_sensor_name(subdevice_model* sub) + { + std::stringstream ss; + ss << configurations::viewer::post_processing + << "." << sub->dev.get_info(RS2_CAMERA_INFO_NAME) + << "." << sub->s->get_info(RS2_CAMERA_INFO_NAME); + return ss.str(); + } processing_block_model::processing_block_model( subdevice_model* owner, const std::string& name, - std::shared_ptr block, + std::shared_ptr block, std::function invoker, - std::string& error_message) - : _name(name), _block(block), _invoker(invoker) + std::string& error_message, bool enable) + : _owner(owner), _name(name), _block(block), _invoker(invoker), enabled(enable) { std::stringstream ss; ss << "##" << ((owner) ? owner->dev.get_info(RS2_CAMERA_INFO_NAME) : _name) << "/" << ((owner) ? (*owner->s).get_info(RS2_CAMERA_INFO_NAME) : "_") << "/" << (long long)this; - subdevice_model::populate_options(options_metadata, - ss.str().c_str(),owner , block, owner ? &owner->options_invalidated : nullptr, error_message); + if (_owner) + _full_name = get_device_sensor_name(_owner) + "." + _name; + else + _full_name = _name; + + enabled = restore_processing_block(_full_name.c_str(), + block, enabled); + + populate_options(ss.str().c_str(), owner, owner ? &owner->_options_invalidated : nullptr, error_message); + } + + void processing_block_model::save_to_config_file() + { + save_processing_block_to_config_file(_full_name.c_str(), _block, enabled); + } + + option_model& processing_block_model::get_option(rs2_option opt) + { + if (options_metadata.find(opt) != options_metadata.end()) + return options_metadata[opt]; + + std::string error_message; + options_metadata[opt] = create_option_model(opt, get_name(), _owner, _block, _owner ? &_owner->_options_invalidated : nullptr, error_message); + return options_metadata[opt]; + } + + void processing_block_model::populate_options(const std::string& opt_base_label, + subdevice_model* model, + bool* options_invalidated, + std::string& error_message) + { + for (auto opt : _block->get_supported_options()) + { + options_metadata[opt] = create_option_model(opt, opt_base_label, model, _block, model ? &model->_options_invalidated : nullptr, error_message); + } } subdevice_model::subdevice_model( device& dev, - std::shared_ptr s, std::string& error_message) - : s(s), dev(dev), ui(), last_valid_ui(), + std::shared_ptr s, std::string& error_message, viewer_model& viewer) + : s(s), dev(dev), tm2(), ui(), last_valid_ui(), streaming(false), _pause(false), - depth_colorizer(std::make_shared()), - decimation_filter(), - spatial_filter(), - temporal_filter(), - hole_filling_filter(), - depth_to_disparity(), - disparity_to_depth() + depth_colorizer(std::make_shared()), + yuy2rgb(std::make_shared()), + depth_decoder(std::make_shared()), + viewer(viewer) { + supported_options = s->get_supported_options(); + restore_processing_block("colorizer", depth_colorizer); + restore_processing_block("yuy2rgb", yuy2rgb); + + std::stringstream ss; + ss << configurations::viewer::post_processing + << "." << dev.get_info(RS2_CAMERA_INFO_NAME) + << "." << s->get_info(RS2_CAMERA_INFO_NAME); + auto key = ss.str(); + + if (config_file::instance().contains(key.c_str())) + { + post_processing_enabled = config_file::instance().get(key.c_str()); + } + try { if (s->supports(RS2_OPTION_ENABLE_AUTO_EXPOSURE)) @@ -844,96 +949,90 @@ namespace rs2 } catch (...) {} - if (s->is()) - { - auto colorizer = std::make_shared( - this, "Depth Visualization", depth_colorizer, - [=](rs2::frame f) { return depth_colorizer->colorize(f); }, error_message); - const_effects.push_back(colorizer); - - auto decimate = std::make_shared(); - decimation_filter = std::make_shared( - this, "Decimation Filter", decimate, - [=](rs2::frame f) { return decimate->process(f); }, - error_message); - decimation_filter->enabled = true; - post_processing.push_back(decimation_filter); - - auto depth_2_disparity = std::make_shared(); - depth_to_disparity = std::make_shared( - this, "Depth->Disparity", depth_2_disparity, - [=](rs2::frame f) { return depth_2_disparity->process(f); }, error_message); - if (s->is()) - { - depth_to_disparity->enabled = true; - post_processing.push_back(depth_to_disparity); - } - - auto spatial = std::make_shared(); - spatial_filter = std::make_shared( - this, "Spatial Filter", spatial, - [=](rs2::frame f) { return spatial->process(f); }, - error_message); - spatial_filter->enabled = true; - post_processing.push_back(spatial_filter); - - auto temporal = std::make_shared(); - temporal_filter = std::make_shared( - this, "Temporal Filter", temporal, - [=](rs2::frame f) { return temporal->process(f); }, error_message); - temporal_filter->enabled = true; - post_processing.push_back(temporal_filter); - - auto hole_filling = std::make_shared(); - hole_filling_filter = std::make_shared( - this, "Hole Filling Filter", hole_filling, - [=](rs2::frame f) { return hole_filling->process(f); }, error_message); - hole_filling_filter->enabled = false; - post_processing.push_back(hole_filling_filter); - - auto disparity_2_depth = std::make_shared(false); - disparity_to_depth = std::make_shared( - this, "Disparity->Depth", disparity_2_depth, - [=](rs2::frame f) { return disparity_2_depth->process(f); }, error_message); - disparity_to_depth->enabled = s->is(); - if (s->is()) - { - disparity_to_depth->enabled = true; - // the block will be internally available, but removed from UI - //post_processing.push_back(disparity_to_depth); - } - } - else + auto filters = s->get_recommended_filters(); + + auto it = std::find_if(filters.begin(), filters.end(), [&](const filter &f) + { + if (f.is()) + return true; + return false; + }); + + auto is_zo = it != filters.end(); + + for (auto&& f : s->get_recommended_filters()) { - rs2_error* e = nullptr; - if (rs2_is_sensor_extendable_to(s->get().get(), RS2_EXTENSION_VIDEO, &e) && !e) + auto shared_filter = std::make_shared(f); + auto model = std::make_shared( + this, shared_filter->get_info(RS2_CAMERA_INFO_NAME), shared_filter, + [=](rs2::frame f) { return shared_filter->process(f); }, error_message); + + if (shared_filter->is()) + model->visible = false; + + if (is_zo) + { + if (shared_filter->is()) + { + zero_order_artifact_fix = model; + viewer.zo_sensors++; + } + else + model->enabled = false; + } + + if (shared_filter->is()) + model->enabled = false; + + if (shared_filter->is()) { - auto decimate = std::make_shared(); - decimation_filter = std::make_shared( - this, "Decimation Filter", decimate, - [=](rs2::frame f) { return decimate->process(f); }, - error_message); - decimation_filter->enabled = true; - post_processing.push_back(decimation_filter); + std::string sn_name(s->get_info(RS2_CAMERA_INFO_NAME)); + if (sn_name == "RGB Camera") + model->enabled = false; } + + post_processing.push_back(model); } - std::stringstream ss; + auto colorizer = std::make_shared( + this, "Depth Visualization", depth_colorizer, + [=](rs2::frame f) { return depth_colorizer->colorize(f); }, error_message); + const_effects.push_back(colorizer); + + ss.str(""); ss << "##" << dev.get_info(RS2_CAMERA_INFO_NAME) << "/" << s->get_info(RS2_CAMERA_INFO_NAME) << "/" << (long long)this; - populate_options(options_metadata, ss.str().c_str(), this, s, &options_invalidated, error_message); + + if (dev.supports(RS2_CAMERA_INFO_PHYSICAL_PORT) && dev.supports(RS2_CAMERA_INFO_PRODUCT_LINE)) + { + std::string product = dev.get_info(RS2_CAMERA_INFO_PRODUCT_LINE); + std::string id = dev.get_info(RS2_CAMERA_INFO_PHYSICAL_PORT); + bool has_metadata = !rs2::metadata_helper::instance().can_support_metadata(product) + || rs2::metadata_helper::instance().is_enabled(id); + static bool showed_metadata_prompt = false; + + if (!has_metadata && !showed_metadata_prompt) + { + auto n = std::make_shared(); + viewer.not_model.add_notification(n); + showed_metadata_prompt = true; + } + } try { auto sensor_profiles = s->get_stream_profiles(); reverse(begin(sensor_profiles), end(sensor_profiles)); rs2_format def_format{ RS2_FORMAT_ANY }; + auto default_resolution = std::make_pair(1280, 720); for (auto&& profile : sensor_profiles) { std::stringstream res; if (auto vid_prof = profile.as()) { + if (profile.is_default()) + default_resolution = std::pair(vid_prof.width(), vid_prof.height()); res << vid_prof.width() << " x " << vid_prof.height(); push_back_if_not_exists(res_values, std::pair(vid_prof.width(), vid_prof.height())); push_back_if_not_exists(resolutions, res.str()); @@ -986,7 +1085,20 @@ namespace rs2 } int fps_constrain = usb2 ? 15 : 30; - auto resolution_constrain = usb2 ? std::make_pair(640, 480) :std::make_pair(1280, 720); + auto resolution_constrain = usb2 ? std::make_pair(640, 480) : default_resolution; + + // TODO: Once GLSL parts are properly optimised + // and tested on all types of hardware + // make sure we use Full-HD YUY overriding the default + // This will lower CPU utilisation and generally be faster + // if (!usb2 && std::string(s->get_info(RS2_CAMERA_INFO_NAME)) == "RGB Camera") + // { + // if (config_file::instance().get(configurations::performance::glsl_for_rendering)) + // { + // resolution_constrain = std::make_pair(1920, 1080); + // def_format = RS2_FORMAT_YUYV; + // } + // } if (!show_single_fps_list) { @@ -1017,6 +1129,9 @@ namespace rs2 get_default_selection_index(res_values, resolution_constrain, &selection_index); ui.selected_res_id = selection_index; + if (s->supports(RS2_OPTION_SENSOR_MODE)) + s->set_option(RS2_OPTION_SENSOR_MODE, resolution_from_width_height(res_values[ui.selected_res_id].first, res_values[ui.selected_res_id].second)); + while (ui.selected_res_id >= 0 && !is_selected_combination_supported()) ui.selected_res_id--; last_valid_ui = ui; } @@ -1024,13 +1139,20 @@ namespace rs2 { error_message = error_to_string(e); } + populate_options(options_metadata, ss.str().c_str(), this, s, &_options_invalidated, error_message); + } + subdevice_model::~subdevice_model() + { + if(zero_order_artifact_fix) + viewer.zo_sensors--; + } bool subdevice_model::is_there_common_fps() { std::vector first_fps_group; - auto group_index = 0; + size_t group_index = 0; for (; group_index < fps_values_per_stream.size(); ++group_index) { if (!fps_values_per_stream[(rs2_stream)group_index].empty()) @@ -1040,7 +1162,7 @@ namespace rs2 } } - for (int i = group_index + 1; i < fps_values_per_stream.size(); ++i) + for (size_t i = group_index + 1; i < fps_values_per_stream.size(); ++i) { auto fps_group = fps_values_per_stream[(rs2_stream)i]; if (fps_group.empty()) @@ -1105,6 +1227,16 @@ namespace rs2 static_cast(res_chars.size()))) { res = true; + _options_invalidated = true; + + if (s->supports(RS2_OPTION_SENSOR_MODE)) + { + auto width = res_values[ui.selected_res_id].first; + auto height = res_values[ui.selected_res_id].second; + auto res = resolution_from_width_height(width, height); + if (res >= RS2_SENSOR_MODE_XGA && res < RS2_SENSOR_MODE_COUNT) + s->set_option(RS2_OPTION_SENSOR_MODE, res); + } } ImGui::PopStyleColor(); ImGui::PopItemWidth(); @@ -1172,8 +1304,12 @@ namespace rs2 } else { + auto tmp = stream_enabled; label = to_string() << stream_display_names[f.first] << "##" << f.first; - ImGui::Checkbox(label.c_str(), &stream_enabled[f.first]); + if (ImGui::Checkbox(label.c_str(), &stream_enabled[f.first])) + { + prev_stream_enabled = tmp; + } } } @@ -1297,82 +1433,330 @@ namespace rs2 } } + if (results.size() == 0) + return false; // Verify that the number of found matches corrseponds to the number of the requested streams // TODO - review whether the comparison can be made strict (==) return results.size() >= size_t(std::count_if(stream_enabled.begin(), stream_enabled.end(), [](const std::pair& kpv)-> bool { return kpv.second == true; })); } - std::vector subdevice_model::get_selected_profiles() + void subdevice_model::update_ui(std::vector profiles_vec) { - std::vector results; + if (profiles_vec.empty()) + return; + for (auto& s : stream_enabled) + s.second = false; + for (auto& p : profiles_vec) + { + stream_enabled[p.unique_id()] = true; - std::stringstream error_message; - error_message << "The profile "; + auto format_vec = format_values[p.unique_id()]; + for (int i = 0; i < format_vec.size(); i++) + { + if (format_vec[i] == p.format()) + { + ui.selected_format_id[p.unique_id()] = i; + break; + } + } + for (int i = 0; i < res_values.size(); i++) + { + if (auto vid_prof = p.as()) + if (res_values[i].first == vid_prof.width() && res_values[i].second == vid_prof.height()) + { + ui.selected_res_id = i; + break; + } + } + for (int i = 0; i < shared_fps_values.size(); i++) + { + if (shared_fps_values[i] == p.fps()) + { + ui.selected_shared_fps_id = i; + break; + } + } + } + last_valid_ui = ui; + prev_stream_enabled = stream_enabled; // prev differs from curr only after user changes + } - for (auto&& f : formats) + template + bool subdevice_model::check_profile (stream_profile p, T cond, std::map>& profiles_map, + std::vector& results, V key, int num_streams, stream_profile& def_p) + { + bool found = false; + if (auto vid_prof = p.as()) { - auto stream = f.first; - if (stream_enabled[stream]) + for (auto& s : stream_enabled) { - auto format = format_values[stream][ui.selected_format_id[stream]]; - - auto fps = 0; - if (show_single_fps_list) - fps = shared_fps_values[ui.selected_shared_fps_id]; - else - fps = fps_values_per_stream[stream][ui.selected_fps_id[stream]]; - - for (auto&& p : profiles) + // find profiles that have an enabled stream and match the required condition + if (s.second == true && vid_prof.unique_id() == s.first && cond(vid_prof)) { - if (auto vid_prof = p.as()) + profiles_map[key].insert(std::pair(p.unique_id(), p)); + if (profiles_map[key].size() == num_streams) { - if (res_values.size() > 0) - { - auto width = res_values[ui.selected_res_id].first; - auto height = res_values[ui.selected_res_id].second; - - error_message << "\n{" << stream_display_names[stream] << "," - << width << "x" << height << " at " << fps << "Hz, " - << rs2_format_to_string(format) << "} "; - - if (vid_prof.width() == width && - vid_prof.height() == height && - p.unique_id() == stream && - p.fps() == fps && - p.format() == format) - results.push_back(p); - } + results.clear(); // make sure only current profiles are saved + for (auto& it : profiles_map[key]) + results.push_back(it.second); + found = true; } - else + else if (results.empty() && num_streams > 1 && profiles_map[key].size() == num_streams-1) { - error_message << "\n{" << stream_display_names[stream] << ", at " << fps << "Hz, " - << rs2_format_to_string(format) << "} "; - - if (p.fps() == fps && - p.unique_id() == stream && - p.format() == format) - results.push_back(p); + for (auto& it : profiles_map[key]) + results.push_back(it.second); } } - } - } - if (results.size() == 0) - { - error_message << " is unsupported!"; - throw std::runtime_error(error_message.str()); - } - return results; + else if (!def_p.get() && cond(vid_prof)) + def_p = p; // in case no matching profile for current stream will be found, we'll use some profile that matches the condition + } + } + return found; + } + + + void subdevice_model::get_sorted_profiles(std::vector& profiles) + { + auto fps = shared_fps_values[ui.selected_shared_fps_id]; + auto width = res_values[ui.selected_res_id].first; + auto height = res_values[ui.selected_res_id].second; + std::sort(profiles.begin(), profiles.end(), [&](stream_profile a, stream_profile b) { + int score_a = 0, score_b = 0; + if (a.fps() != fps) + score_a++; + if (b.fps() != fps) + score_b++; + + if (a.format() != format_values[a.unique_id()][ui.selected_format_id[a.unique_id()]]) + score_a++; + if (b.format() != format_values[b.unique_id()][ui.selected_format_id[b.unique_id()]]) + score_b++; + + auto a_vp = a.as(); + auto b_vp = a.as(); + if (!a_vp || !b_vp) + return score_a < score_b; + if (a_vp.width() != width || a_vp.height() != height) + score_a++; + if (b_vp.width() != width || b_vp.height() != height) + score_b++; + return score_a < score_b; + }); } - void subdevice_model::stop(viewer_model& viewer) + std::vector subdevice_model::get_supported_profiles() + { + std::vector results; + if (!show_single_fps_list || res_values.size() == 0) + return results; + + int num_streams = 0; + for (auto& s : stream_enabled) + if (s.second == true) + num_streams++; + stream_profile def_p; + auto fps = shared_fps_values[ui.selected_shared_fps_id]; + auto width = res_values[ui.selected_res_id].first; + auto height = res_values[ui.selected_res_id].second; + std::vector sorted_profiles = profiles; + + if (ui.selected_res_id != last_valid_ui.selected_res_id) + { + get_sorted_profiles(sorted_profiles); + std::map> profiles_by_fps; + for (auto&& p : sorted_profiles) + { + if (check_profile(p, [&](video_stream_profile vsp) + { return (vsp.width() == width && vsp.height() == height); }, + profiles_by_fps, results, p.fps(), num_streams, def_p)) + break; + } + } + else if (ui.selected_shared_fps_id != last_valid_ui.selected_shared_fps_id) + { + get_sorted_profiles(sorted_profiles); + std::map, std::map> profiles_by_res; + + for (auto&& p : sorted_profiles) + { + if (auto vid_prof = p.as()) + { + if (check_profile(p, [&](video_stream_profile vsp) { return (vsp.fps() == fps); }, + profiles_by_res, results, std::make_tuple(vid_prof.width(), vid_prof.height()), num_streams, def_p)) + break; + } + } + } + else if (ui.selected_format_id != last_valid_ui.selected_format_id) + { + if (num_streams == 0) + { + last_valid_ui = ui; + return results; + } + get_sorted_profiles(sorted_profiles); + std::vector matching_profiles; + std::map, std::map> profiles_by_fps_res; //fps, width, height + rs2_format format; + int stream_id; + // find the stream to which the user made changes + for (auto& it : ui.selected_format_id) + { + if (stream_enabled[it.first]) + { + auto last_valid_it = last_valid_ui.selected_format_id.find(it.first); + if ((last_valid_it == last_valid_ui.selected_format_id.end() || it.second != last_valid_it->second)) + { + format = format_values[it.first][it.second]; + stream_id = it.first; + } + } + } + for (auto&& p : sorted_profiles) + { + if (auto vid_prof = p.as()) + if (p.unique_id() == stream_id && p.format() == format) // && stream_enabled[stream_id] + { + profiles_by_fps_res[std::make_tuple(p.fps(), vid_prof.width(), vid_prof.height())].insert(std::pair(p.unique_id(), p)); + matching_profiles.push_back(p); + if (!def_p.get()) + def_p = p; + } + } + // take profiles not in matching_profiles with enabled stream and fps+resolution matching some profile in matching_profiles + for (auto&& p : sorted_profiles) + { + if (auto vid_prof = p.as()) + { + auto key = std::make_tuple(p.fps(), vid_prof.width(), vid_prof.height()); + if (check_profile(p, [&](stream_profile prof) { return (std::find_if(matching_profiles.begin(), matching_profiles.end(), [&](stream_profile sp) + { return (stream_id != p.unique_id() && sp.fps() == p.fps() && sp.as().width() == vid_prof.width() && + sp.as().height() == vid_prof.height()); }) != matching_profiles.end()); }, + profiles_by_fps_res, results, std::make_tuple(p.fps(), vid_prof.width(), vid_prof.height()), num_streams, def_p)) + break; + } + } + } + else if (stream_enabled != prev_stream_enabled) + { + if (num_streams == 0) + return results; + get_sorted_profiles(sorted_profiles); + std::vector matching_profiles; + std::map> profiles_by_format; + + for (auto&& p : sorted_profiles) + { + // first try to find profile from the new stream to meatch the current configuration + if (check_profile(p, [&](video_stream_profile vid_prof) + { return (p.fps() == fps && vid_prof.width() == width && vid_prof.height() == height); }, + profiles_by_format, results, p.format(), num_streams, def_p)) + break; + } + if (results.size() < num_streams) + { + results.clear(); + std::map, std::map> profiles_by_fps_res; + for (auto&& p : sorted_profiles) + { + if (auto vid_prof = p.as()) + { + // if no stream with current configuration was found, try to find some configuration to match all enabled streams + if (check_profile(p, [&](video_stream_profile vsp) { return true; }, profiles_by_fps_res, results, + std::make_tuple(p.fps(), vid_prof.width(), vid_prof.height()), num_streams, def_p)) + break; + } + } + } + } + if (results.empty()) + results.push_back(def_p); + update_ui(results); + return results; + } + + std::vector subdevice_model::get_selected_profiles() + { + std::vector results; + + std::stringstream error_message; + error_message << "The profile "; + + for (auto&& f : formats) + { + auto stream = f.first; + if (stream_enabled[stream]) + { + auto format = format_values[stream][ui.selected_format_id[stream]]; + + auto fps = 0; + if (show_single_fps_list) + fps = shared_fps_values[ui.selected_shared_fps_id]; + else + fps = fps_values_per_stream[stream][ui.selected_fps_id[stream]]; + + for (auto&& p : profiles) + { + if (auto vid_prof = p.as()) + { + if (res_values.size() > 0) + { + auto width = res_values[ui.selected_res_id].first; + auto height = res_values[ui.selected_res_id].second; + + error_message << "\n{" << stream_display_names[stream] << "," + << width << "x" << height << " at " << fps << "Hz, " + << rs2_format_to_string(format) << "} "; + + if (vid_prof.width() == width && + vid_prof.height() == height && + p.unique_id() == stream && + p.fps() == fps && + p.format() == format) + results.push_back(p); + } + } + else + { + error_message << "\n{" << stream_display_names[stream] << ", at " << fps << "Hz, " + << rs2_format_to_string(format) << "} "; + + if (p.fps() == fps && + p.unique_id() == stream && + p.format() == format) + results.push_back(p); + } + } + } + } + if (results.size() == 0) + { + error_message << " is unsupported!"; + throw std::runtime_error(error_message.str()); + } + return results; + } + + void subdevice_model::stop(viewer_model& viewer) { viewer.not_model.add_log("Stopping streaming"); + for_each(stream_display_names.begin(), stream_display_names.end(), [this, &viewer](std::pair kvp) + { + if ("Pose" == kvp.second) + { + this->tm2.reset_trajectory(); + this->tm2.record_trajectory(false); + } + }); + streaming = false; _pause = false; s->stop(); + _options_invalidated = true; + queues.foreach([&](frame_queue& q) { frame f; @@ -1397,11 +1781,42 @@ namespace rs2 _pause = false; } - void subdevice_model::play(const std::vector& profiles, viewer_model& viewer) + bool subdevice_model::can_enable_zero_order() + { + auto ir = std::find_if(profiles.begin(), profiles.end(), [&](stream_profile p) { return (p.stream_type() == RS2_STREAM_INFRARED); }); + auto depth = std::find_if(profiles.begin(), profiles.end(), [&](stream_profile p) { return (p.stream_type() == RS2_STREAM_DEPTH); }); + + return !(ir == profiles.end() || depth == profiles.end() || !stream_enabled[depth->unique_id()] || !stream_enabled[ir->unique_id()]); + } + + void subdevice_model::verify_zero_order_conditions() + { + if(!can_enable_zero_order()) + throw std::runtime_error(to_string() << "Zero order filter requires both IR and Depth streams turned on.\nPlease rectify the configuration and rerun"); + } + + //The function decides if specific frame should be sent to the syncer + bool subdevice_model::is_synchronized_frame(viewer_model& viewer, const frame& f) + { + if(zero_order_artifact_fix && zero_order_artifact_fix->enabled && + (f.get_profile().stream_type() == RS2_STREAM_DEPTH || f.get_profile().stream_type() == RS2_STREAM_INFRARED || f.get_profile().stream_type() == RS2_STREAM_CONFIDENCE)) + return true; + if (!viewer.is_3d_view || viewer.is_3d_depth_source(f) || viewer.is_3d_texture_source(f)) + return true; + + return false; + } + + void subdevice_model::play(const std::vector& profiles, viewer_model& viewer, std::shared_ptr syncer) { + if (post_processing_enabled && zero_order_artifact_fix && zero_order_artifact_fix->enabled) + { + verify_zero_order_conditions(); + } + std::stringstream ss; ss << "Starting streaming of "; - for (int i = 0; i < profiles.size(); i++) + for (size_t i = 0; i < profiles.size(); i++) { ss << profiles[i].stream_type(); if (i < profiles.size() - 1) ss << ", "; @@ -1409,19 +1824,30 @@ namespace rs2 ss << "..."; viewer.not_model.add_log(ss.str()); + // TODO - refactor tm2 from viewer to subdevice + for_each(stream_display_names.begin(), stream_display_names.end(), [this, &viewer](std::pair kvp) + { + if ("Pose" == kvp.second) + { + this->tm2.record_trajectory(true); + } + }); + s->open(profiles); try { - s->start([&](frame f) + s->start([&, syncer](frame f) { - if (viewer.synchronization_enable && (!viewer.is_3d_view || viewer.is_3d_depth_source(f) || viewer.is_3d_texture_source(f))) + if (viewer.synchronization_enable && is_synchronized_frame(viewer, f)) { - viewer.s.invoke(f); + syncer->invoke(f); } else { auto id = f.get_profile().unique_id(); viewer.ppf.frames_queue[id].enqueue(f); + + on_frame(); } }); } @@ -1432,56 +1858,64 @@ namespace rs2 throw; } + _options_invalidated = true; streaming = true; } - void subdevice_model::update(std::string& error_message, notifications_model& notifications) { - if (options_invalidated) + if (_options_invalidated) { next_option = 0; - options_invalidated = false; + _options_invalidated = false; + + save_processing_block_to_config_file("colorizer", depth_colorizer); + save_processing_block_to_config_file("yuy2rgb", yuy2rgb); + + for (auto&& pbm : post_processing) pbm->save_to_config_file(); } - if (next_option < RS2_OPTION_COUNT) - { - auto& opt_md = options_metadata[static_cast(next_option)]; - opt_md.update_all_fields(error_message, notifications); - if (next_option == RS2_OPTION_ENABLE_AUTO_EXPOSURE) + if (next_option < supported_options.size()) + { + auto next = supported_options[next_option]; + if (options_metadata.find(static_cast(next)) != options_metadata.end()) { - auto old_ae_enabled = auto_exposure_enabled; - auto_exposure_enabled = opt_md.value > 0; + auto& opt_md = options_metadata[static_cast(next)]; + opt_md.update_all_fields(error_message, notifications); - if (!old_ae_enabled && auto_exposure_enabled) + if (next_option == RS2_OPTION_ENABLE_AUTO_EXPOSURE) { - try + auto old_ae_enabled = auto_exposure_enabled; + auto_exposure_enabled = opt_md.value > 0; + + if (!old_ae_enabled && auto_exposure_enabled) { - if (s->is()) + try { - auto r = s->as().get_region_of_interest(); - roi_rect.x = static_cast(r.min_x); - roi_rect.y = static_cast(r.min_y); - roi_rect.w = static_cast(r.max_x - r.min_x); - roi_rect.h = static_cast(r.max_y - r.min_y); + if (s->is()) + { + auto r = s->as().get_region_of_interest(); + roi_rect.x = static_cast(r.min_x); + roi_rect.y = static_cast(r.min_y); + roi_rect.w = static_cast(r.max_x - r.min_x); + roi_rect.h = static_cast(r.max_y - r.min_y); + } + } + catch (...) + { + auto_exposure_enabled = false; } - } - catch (...) - { - auto_exposure_enabled = false; } } + if (next_option == RS2_OPTION_DEPTH_UNITS) + { + opt_md.dev->depth_units = opt_md.value; + } + if (next_option == RS2_OPTION_STEREO_BASELINE) + opt_md.dev->stereo_baseline = opt_md.value; } - if (next_option == RS2_OPTION_DEPTH_UNITS) - { - opt_md.dev->depth_units = opt_md.value; - } - - if (next_option == RS2_OPTION_STEREO_BASELINE) - opt_md.dev->stereo_baseline = opt_md.value; - next_option++; } } @@ -1498,7 +1932,7 @@ namespace rs2 for (auto i = 0; i < RS2_OPTION_COUNT; i++) { auto opt = static_cast(i); - if (opt == RS2_OPTION_FRAMES_QUEUE_SIZE) continue; + if (skip_option(opt)) continue; if (std::find(drawing_order.begin(), drawing_order.end(), opt) == drawing_order.end()) { draw_option(opt, update_read_only_options, error_message, notifications); @@ -1511,7 +1945,7 @@ namespace rs2 return (uint64_t)std::count_if( std::begin(options_metadata), std::end(options_metadata), - [](const std::pair& p) {return p.second.supported && p.second.opt != RS2_OPTION_FRAMES_QUEUE_SIZE; }); + [](const std::pair& p) {return p.second.supported && !skip_option(p.second.opt); }); } bool option_model::draw_option(bool update_read_only_options, @@ -1539,9 +1973,14 @@ namespace rs2 stream_model::stream_model() : texture(std::unique_ptr(new texture_buffer())), _stream_not_alive(std::chrono::milliseconds(1500)) - {} + { + show_map_ruler = config_file::instance().get_or_default( + configurations::viewer::show_map_ruler, true); + show_stream_details = config_file::instance().get_or_default( + configurations::viewer::show_stream_details, false); + } - texture_buffer* stream_model::upload_frame(frame&& f) + std::shared_ptr stream_model::upload_frame(frame&& f) { if (dev && dev->is_paused() && !dev->dev.is()) return nullptr; @@ -1558,6 +1997,7 @@ namespace rs2 timestamp = f.get_timestamp(); fps.add_timestamp(f.get_timestamp(), f.get_frame_number()); + view_fps.add_timestamp(glfwGetTime() * 1000, count++); // populate frame metadata attributes for (auto i = 0; i < RS2_FRAME_METADATA_COUNT; i++) @@ -1569,7 +2009,7 @@ namespace rs2 } texture->upload(f); - return texture.get(); + return texture; } void outline_rect(const rect& r) @@ -1649,6 +2089,8 @@ namespace rs2 profile = p; texture->colorize = d->depth_colorizer; + texture->yuy2rgb = d->yuy2rgb; + texture->depth_decode = d->depth_decoder; if (auto vd = p.as()) { @@ -1770,546 +2212,117 @@ namespace rs2 } } - std::string get_file_name(const std::string& path) - { - std::string file_name; - for (auto rit = path.rbegin(); rit != path.rend(); ++rit) - { - if (*rit == '\\' || *rit == '/') - break; - file_name += *rit; - } - std::reverse(file_name.begin(), file_name.end()); - return file_name; - } - bool draw_combo_box(const std::string& id, const std::vector& device_names, int& new_index) { std::vector device_names_chars = get_string_pointers(device_names); return ImGui::Combo(id.c_str(), &new_index, device_names_chars.data(), static_cast(device_names.size())); } - void viewer_model::show_3dviewer_header(ImFont* font, rs2::rect stream_rect, bool& paused, std::string& error_message) + void stream_model::show_stream_header(ImFont* font, const rect &stream_rect, viewer_model& viewer) { - int combo_boxes = 0; - const float combo_box_width = 200; + const auto top_bar_height = 32.f; + auto num_of_buttons = 5; - // Initialize and prepare depth and texture sources - int selected_depth_source = -1; - std::vector depth_sources_str; - std::vector depth_sources; - int i = 0; - for (auto&& s : streams) - { - if (s.second.is_stream_visible() && - s.second.texture->get_last_frame() && - s.second.profile.stream_type() == RS2_STREAM_DEPTH) - { - if (selected_depth_source_uid == -1) - { - selected_depth_source_uid = streams_origin[s.second.profile.unique_id()]; - } - if (streams_origin[s.second.profile.unique_id()] == selected_depth_source_uid) - { - selected_depth_source = i; - } + if (!viewer.allow_stream_close) --num_of_buttons; + if (viewer.streams.size() > 1) ++num_of_buttons; + if (RS2_STREAM_DEPTH == profile.stream_type()) ++num_of_buttons; // Color map ruler button + + ImGui_ScopePushFont(font); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - depth_sources.push_back(s.second.profile.unique_id()); + std::string label = to_string() << "Stream of " << profile.unique_id(); - auto dev_name = s.second.dev ? s.second.dev->dev.get_info(RS2_CAMERA_INFO_NAME) : "Unknown"; - auto stream_name = rs2_stream_to_string(s.second.profile.stream_type()); + ImGui::GetWindowDrawList()->AddRectFilled({ stream_rect.x, stream_rect.y - top_bar_height }, + { stream_rect.x + stream_rect.w, stream_rect.y }, ImColor(sensor_bg)); - depth_sources_str.push_back(to_string() << dev_name << " " << stream_name); + int offset = 5; + if (dev->_is_being_recorded) offset += 23; + auto p = dev->dev.as(); + if (dev->is_paused() || (p && p.current_status() == RS2_PLAYBACK_STATUS_PAUSED)) offset += 23; - i++; - } - } - if (depth_sources_str.size() > 0 && allow_3d_source_change) combo_boxes++; + ImGui::SetCursorScreenPos({ stream_rect.x + 4 + offset, stream_rect.y - top_bar_height + 7 }); - int selected_tex_source = 0; - std::vector tex_sources_str; - std::vector tex_sources; - i = 0; - for (auto&& s : streams) + std::string tooltip; + if (dev && dev->dev.supports(RS2_CAMERA_INFO_NAME) && + dev->dev.supports(RS2_CAMERA_INFO_SERIAL_NUMBER) && + dev->s->supports(RS2_CAMERA_INFO_NAME)) { - if (s.second.is_stream_visible() && - s.second.texture->get_last_frame() && - (s.second.profile.stream_type() == RS2_STREAM_COLOR || - s.second.profile.stream_type() == RS2_STREAM_INFRARED || - s.second.profile.stream_type() == RS2_STREAM_DEPTH || - s.second.profile.stream_type() == RS2_STREAM_FISHEYE)) - { - if (selected_tex_source_uid == -1 && selected_depth_source_uid != -1) - { - selected_tex_source_uid = streams_origin[s.second.profile.unique_id()]; - } - if (streams_origin[s.second.profile.unique_id()] == selected_tex_source_uid) - { - selected_tex_source = i; - } + std::string dev_name = dev->dev.get_info(RS2_CAMERA_INFO_NAME); + std::string dev_serial = dev->dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); + std::string sensor_name = dev->s->get_info(RS2_CAMERA_INFO_NAME); + std::string stream_name = rs2_stream_to_string(profile.stream_type()); - // The texture source shall always refer to the raw (original) streams - tex_sources.push_back(streams_origin[s.second.profile.unique_id()]); + tooltip = to_string() << dev_name << " s.n:" << dev_serial << " | " << sensor_name << ", " << stream_name << " stream"; + const auto approx_char_width = 12; + if (stream_rect.w - 32 * num_of_buttons >= (dev_name.size() + dev_serial.size() + sensor_name.size() + stream_name.size()) * approx_char_width) + label = tooltip; + else + { + // Use only the SKU type for compact representation and use only the last three digits for S.N + auto short_name = split_string(dev_name, ' ').back(); + auto short_sn = dev_serial; + short_sn.erase(0, dev_serial.size() - 5).replace(0, 2, ".."); - auto dev_name = s.second.dev ? s.second.dev->dev.get_info(RS2_CAMERA_INFO_NAME) : "Unknown"; - std::string stream_name = rs2_stream_to_string(s.second.profile.stream_type()); - if (s.second.profile.stream_index()) - stream_name += "_" + std::to_string(s.second.profile.stream_index()); - tex_sources_str.push_back(to_string() << dev_name << " " << stream_name); + auto label_length = stream_rect.w - 32 * num_of_buttons; - i++; + if (label_length >= (short_name.size() + dev_serial.size() + sensor_name.size() + stream_name.size()) * approx_char_width) + label = to_string() << short_name << " s.n:" << dev_serial << " | " << sensor_name << " " << stream_name << " stream"; + else if (label_length >= (short_name.size() + short_sn.size() + stream_name.size()) * approx_char_width) + label = to_string() << short_name << " s.n:" << short_sn << " " << stream_name << " stream"; + else if (label_length >= short_name.size() * approx_char_width) + label = to_string() << short_name << " " << stream_name; + else + label = ""; } } - - if (tex_sources_str.size() && depth_sources_str.size()) + else { - combo_boxes++; - if (RS2_STREAM_COLOR == streams[selected_tex_source_uid].profile.stream_type()) - combo_boxes++; + label = to_string() << "Unknown " << rs2_stream_to_string(profile.stream_type()) << " stream"; + tooltip = label; } - auto top_bar_height = 32.f; - const auto buttons_heights = top_bar_height; - const auto num_of_buttons = 5; - - if (num_of_buttons * 40 + combo_boxes * (combo_box_width + 100) > stream_rect.w) - top_bar_height = 2 * top_bar_height; + ImGui::PushTextWrapPos(stream_rect.x + stream_rect.w - 32 * num_of_buttons - 5); + ImGui::Text("%s", label.c_str()); + if (tooltip != label && ImGui::IsItemHovered()) + ImGui::SetTooltip("%s", tooltip.c_str()); + ImGui::PopTextWrapPos(); - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; + ImGui::SetCursorScreenPos({ stream_rect.x + stream_rect.w - 32 * num_of_buttons, stream_rect.y - top_bar_height }); - ImGui::PushFont(font); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 0, 0 }); - ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_WindowBg, header_window_bg); - ImGui::SetNextWindowPos({ stream_rect.x, stream_rect.y }); - ImGui::SetNextWindowSize({ stream_rect.w, top_bar_height }); - std::string label = to_string() << "header of 3dviewer"; - ImGui::Begin(label.c_str(), nullptr, flags); - - if (depth_sources_str.size() > 0 && allow_3d_source_change) - { - ImGui::SetCursorPos({ 7, 7 }); - ImGui::Text("Depth Source:"); ImGui::SameLine(); - - ImGui::SetCursorPosY(7); - ImGui::PushItemWidth(combo_box_width); - draw_combo_box("##Depth Source", depth_sources_str, selected_depth_source); - i = 0; - for (auto&& s : streams) - { - if (s.second.is_stream_visible() && - s.second.texture->get_last_frame() && - s.second.profile.stream_type() == RS2_STREAM_DEPTH) - { - if (i == selected_depth_source) - { - selected_depth_source_uid = streams_origin[s.second.profile.unique_id()]; - } - i++; - } + label = to_string() << textual_icons::metadata << "##Metadata" << profile.unique_id(); + if (show_metadata) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + if (ImGui::Button(label.c_str(), { 24, top_bar_height })) + { + show_metadata = false; } - - ImGui::PopItemWidth(); - - if (buttons_heights == top_bar_height) ImGui::SameLine(); - } - - if (!allow_3d_source_change) ImGui::SetCursorPos({ 7, 7 }); - - // Only allow to change texture if we have something to put it on: - if (tex_sources_str.size() && depth_sources_str.size()) - { - if (buttons_heights == top_bar_height) ImGui::SetCursorPosY(7); - else ImGui::SetCursorPos({ 7, buttons_heights + 7 }); - - ImGui::Text("Texture Source:"); ImGui::SameLine(); - - if (buttons_heights == top_bar_height) ImGui::SetCursorPosY(7); - else ImGui::SetCursorPosY(buttons_heights + 7); - - ImGui::PushItemWidth(combo_box_width); - draw_combo_box("##Tex Source", tex_sources_str, selected_tex_source); - selected_tex_source_uid = tex_sources[selected_tex_source]; - texture.colorize = streams[tex_sources[selected_tex_source]].texture->colorize; - ImGui::PopItemWidth(); - - ImGui::SameLine(); - - // Occlusion control for RGB UV-Map uses option's description as label - // Position is dynamically adjusted to avoid overlapping on resize - if (RS2_STREAM_COLOR==streams[selected_tex_source_uid].profile.stream_type()) - { - ImGui::PushItemWidth(combo_box_width); - ppf.get_pc_model()->get_option(rs2_option::RS2_OPTION_FILTER_MAGNITUDE).draw(error_message, - not_model, stream_rect.w < 1000, false); - ImGui::PopItemWidth(); - } - } - - ImGui::SetCursorPos({ stream_rect.w - 32 * num_of_buttons - 5, 0 }); - - if (paused) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - label = to_string() << textual_icons::play << "##Resume 3d"; - if (ImGui::Button(label.c_str(), { 24, buttons_heights })) - { - paused = false; - for (auto&& s : streams) - { - if (s.second.dev) s.second.dev->resume(); - } - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Resume All"); - } - ImGui::PopStyleColor(2); - } - else - { - label = to_string() << textual_icons::pause << "##Pause 3d"; - if (ImGui::Button(label.c_str(), { 24, buttons_heights })) - { - paused = true; - for (auto&& s : streams) - { - if (s.second.dev) s.second.dev->pause(); - } - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Pause All"); - } - } - - ImGui::SameLine(); - - if (ImGui::Button(textual_icons::floppy, { 24, buttons_heights })) - { - if (auto ret = file_dialog_open(save_file, "Polygon File Format (PLY)\0*.ply\0", NULL, NULL)) - { - auto model = ppf.get_points(); - - frame tex; - if (selected_tex_source_uid >= 0) - { - tex = streams[selected_tex_source_uid].texture->get_last_frame(true); - if (tex) ppf.update_texture(tex); - } - - std::string fname(ret); - if (!ends_with(to_lower(fname), ".ply")) fname += ".ply"; - export_to_ply(fname.c_str(), not_model, model, tex); - } - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Export 3D model to PLY format"); - - ImGui::SameLine(); - - if (ImGui::Button(textual_icons::refresh, { 24, buttons_heights })) - { - reset_camera(); - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Reset View"); - - ImGui::SameLine(); - - if (render_quads) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - label = to_string() << textual_icons::cubes << "##Render Quads"; - if (ImGui::Button(label.c_str(), { 24, buttons_heights })) - { - render_quads = false; - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Render Quads"); - } - ImGui::PopStyleColor(2); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Hide frame metadata"); + } + ImGui::PopStyleColor(2); } else { - label = to_string() << textual_icons::cubes << "##Render Points"; - if (ImGui::Button(label.c_str(), { 24, buttons_heights })) + if (ImGui::Button(label.c_str(), { 24, top_bar_height })) { - render_quads = true; + show_metadata = true; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Render Points"); + ImGui::SetTooltip("Show frame metadata"); } } ImGui::SameLine(); - if (support_non_syncronized_mode) - { - if (synchronization_enable) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - if (ImGui::Button(textual_icons::lock, { 24, buttons_heights })) - { - synchronization_enable = false; - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Disable syncronization between the pointcloud and the texture"); - ImGui::PopStyleColor(2); - } - else - { - if (ImGui::Button(textual_icons::unlock, { 24, buttons_heights })) - { - synchronization_enable = true; - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Keep the pointcloud and the texture sycronized"); - } - } - - - ImGui::End(); - - // Draw pose header if pose stream exists - bool render_pose = false; - - for (auto&& s : streams) - { - if (s.second.is_stream_visible() && - s.second.profile.stream_type() == RS2_STREAM_POSE) - { - render_pose = true; - } - } - - auto total_top_bar_height = top_bar_height; // may include single bar or additional bar for pose - - if (render_pose) - { - total_top_bar_height += top_bar_height; // add additional bar height for pose - const int num_of_pose_buttons = 3; // trajectory, draw camera, boundary selection - - ImGui::SetNextWindowPos({ stream_rect.x, stream_rect.y + buttons_heights }); - ImGui::SetNextWindowSize({ stream_rect.w, buttons_heights }); - std::string pose_label = to_string() << "header of 3dviewer - pose"; - ImGui::Begin(pose_label.c_str(), nullptr, flags); - - // Draw selection buttons on the pose header - ImGui::SetCursorPos({ stream_rect.w - 32 * num_of_pose_buttons - 5, 0 }); - - // Draw camera object button - if (ImGui::Button(tm2.camera_object_button.get_icon().c_str(), { 24, buttons_heights })) - { - tm2.camera_object_button.toggle_button(); - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("%s", tm2.camera_object_button.get_tooltip().c_str()); - - // Draw trajectory button - ImGui::SameLine(); - bool color_icon = tm2.trajectory_button.is_pressed(); //draw trajectory is on - color the icon - if (color_icon) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - } - if (ImGui::Button(tm2.trajectory_button.get_icon().c_str(), { 24, buttons_heights })) - { - tm2.trajectory_button.toggle_button(); - } - if (color_icon) - { - ImGui::PopStyleColor(2); - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("%s", tm2.trajectory_button.get_tooltip().c_str()); - - // Draw boundary selection button - ImGui::SameLine(); - color_icon = tm2.boundary_button.is_pressed(); //draw boundary is on - color the icon - if (color_icon) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - } - if (ImGui::Button(tm2.boundary_button.get_icon().c_str(), { 24, buttons_heights })) - { - tm2.boundary_button.toggle_button(); - } - if (color_icon) - { - ImGui::PopStyleColor(2); - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("%s", tm2.boundary_button.get_tooltip().c_str()); - - ImGui::End(); - } - - ImGui::PopStyleColor(6); - ImGui::PopStyleVar(); - - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 5, 5 }); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); - - ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_WindowBg, dark_sensor_bg); - - ImGui::SetNextWindowPos({ stream_rect.x + stream_rect.w - 265, stream_rect.y + total_top_bar_height + 5 }); - ImGui::SetNextWindowSize({ 260, 65 }); - ImGui::Begin("3D Info box", nullptr, flags); - - ImGui::Columns(2, 0, false); - ImGui::SetColumnOffset(1, 90); - - ImGui::Text("Rotate Camera:"); - ImGui::NextColumn(); - ImGui::Text("Left Mouse Button"); - ImGui::NextColumn(); - - ImGui::Text("Pan:"); - ImGui::NextColumn(); - ImGui::Text("Middle Mouse Button"); - ImGui::NextColumn(); - - ImGui::Text("Zoom In/Out:"); - ImGui::NextColumn(); - ImGui::Text("Mouse Wheel"); - ImGui::NextColumn(); - - ImGui::Columns(); - - ImGui::End(); - ImGui::PopStyleColor(6); - ImGui::PopStyleVar(2); - - - ImGui::PopFont(); - } - - void viewer_model::gc_streams() - { - std::lock_guard lock(streams_mutex); - std::vector streams_to_remove; - for (auto&& kvp : streams) - { - if (!kvp.second.is_stream_visible() && - (!kvp.second.dev || (!kvp.second.dev->is_paused() && !kvp.second.dev->streaming))) - { - if (kvp.first == selected_depth_source_uid) - { - ppf.depth_stream_active = false; - } - streams_to_remove.push_back(kvp.first); - } - } - for (auto&& i : streams_to_remove) { - if(selected_depth_source_uid == i) - selected_depth_source_uid = -1; - if(selected_tex_source_uid == i) - selected_tex_source_uid = -1; - streams.erase(i); - - if(ppf.frames_queue.find(i) != ppf.frames_queue.end()) - { - ppf.frames_queue.erase(i); - } - } - } - - void stream_model::show_stream_header(ImFont* font, const rect &stream_rect, viewer_model& viewer) - { - const auto top_bar_height = 32.f; - auto num_of_buttons = 4; - if (!viewer.allow_stream_close) --num_of_buttons; - if (viewer.streams.size() > 1) ++num_of_buttons; - if (RS2_STREAM_DEPTH == profile.stream_type()) ++num_of_buttons; // Color map ruler button - - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoBringToFrontOnFocus; - - ImGui_ScopePushFont(font); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 0, 0 }); - - ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_WindowBg, header_window_bg); - ImGui::SetNextWindowPos({ stream_rect.x, stream_rect.y - top_bar_height }); - ImGui::SetNextWindowSize({ stream_rect.w, top_bar_height }); - std::string label = to_string() << "Stream of " << profile.unique_id(); - ImGui::Begin(label.c_str(), nullptr, flags); - - ImGui::SetCursorPos({ 9, 7 }); - - std::string tooltip; - if (dev && dev->dev.supports(RS2_CAMERA_INFO_NAME) && - dev->dev.supports(RS2_CAMERA_INFO_SERIAL_NUMBER) && - dev->s->supports(RS2_CAMERA_INFO_NAME)) - { - std::string dev_name = dev->dev.get_info(RS2_CAMERA_INFO_NAME); - std::string dev_serial = dev->dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); - std::string sensor_name = dev->s->get_info(RS2_CAMERA_INFO_NAME); - std::string stream_name = rs2_stream_to_string(profile.stream_type()); - - tooltip = to_string() << dev_name << " s.n:" << dev_serial << " | " << sensor_name << ", " << stream_name << " stream"; - const auto approx_char_width = 12; - if (stream_rect.w - 32 * num_of_buttons >= (dev_name.size() + dev_serial.size() + sensor_name.size() + stream_name.size()) * approx_char_width) - label = tooltip; - else - { - // Use only the SKU type for compact representation and use only the last three digits for S.N - auto short_name = split_string(dev_name, ' ').back(); - auto short_sn = dev_serial; - short_sn.erase(0, dev_serial.size() - 5).replace(0, 2, ".."); - - auto label_length = stream_rect.w - 32 * num_of_buttons; - - if (label_length >= (short_name.size() + dev_serial.size() + sensor_name.size() + stream_name.size()) * approx_char_width) - label = to_string() << short_name << " s.n:" << dev_serial << " | " << sensor_name << " " << stream_name << " stream"; - else if (label_length >= (short_name.size() + short_sn.size() + stream_name.size()) * approx_char_width) - label = to_string() << short_name << " s.n:" << short_sn << " " << stream_name << " stream"; - else if (label_length >= short_name.size() * approx_char_width) - label = to_string() << short_name << " " << stream_name; - else - label = ""; - } - } - else - { - label = to_string() << "Unknown " << rs2_stream_to_string(profile.stream_type()) << " stream"; - tooltip = label; - } - - ImGui::PushTextWrapPos(stream_rect.w - 32 * num_of_buttons - 5); - ImGui::Text("%s", label.c_str()); - if (tooltip != label && ImGui::IsItemHovered()) - ImGui::SetTooltip("%s", tooltip.c_str()); - ImGui::PopTextWrapPos(); - - ImGui::SetCursorPos({ stream_rect.w - 32 * num_of_buttons, 0 }); - if (RS2_STREAM_DEPTH == profile.stream_type()) { label = to_string() << textual_icons::bar_chart << "##Color map"; @@ -2320,6 +2333,7 @@ namespace rs2 if (ImGui::Button(label.c_str(), { 24, top_bar_height })) { show_map_ruler = false; + config_file::instance().set(configurations::viewer::show_map_ruler, show_map_ruler); } if (ImGui::IsItemHovered()) { @@ -2332,6 +2346,7 @@ namespace rs2 if (ImGui::Button(label.c_str(), { 24, top_bar_height })) { show_map_ruler = true; + config_file::instance().set(configurations::viewer::show_map_ruler, show_map_ruler); } if (ImGui::IsItemHovered()) { @@ -2341,7 +2356,6 @@ namespace rs2 ImGui::SameLine(); } - auto p = dev->dev.as(); if (dev->is_paused() || (p && p.current_status() == RS2_PLAYBACK_STATUS_PAUSED)) { ImGui::PushStyleColor(ImGuiCol_Text, light_blue); @@ -2354,6 +2368,7 @@ namespace rs2 p.resume(); } dev->resume(); + viewer.paused = false; } if (ImGui::IsItemHovered()) { @@ -2371,6 +2386,7 @@ namespace rs2 p.pause(); } dev->pause(); + viewer.paused = true; } if (ImGui::IsItemHovered()) { @@ -2404,6 +2420,9 @@ namespace rs2 if (ImGui::Button(label.c_str(), { 24, top_bar_height })) { show_stream_details = false; + config_file::instance().set( + configurations::viewer::show_stream_details, + show_stream_details); } if (ImGui::IsItemHovered()) { @@ -2417,6 +2436,9 @@ namespace rs2 if (ImGui::Button(label.c_str(), { 24, top_bar_height })) { show_stream_details = true; + config_file::instance().set( + configurations::viewer::show_stream_details, + show_stream_details); } if (ImGui::IsItemHovered()) { @@ -2479,97 +2501,281 @@ namespace rs2 { ImGui::SetTooltip("Stop this sensor"); } - } - ImGui::End(); - ImGui::PopStyleColor(6); - ImGui::PopStyleVar(); + ImGui::PopStyleColor(5); - if (show_stream_details) - { - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; + _info_height = (show_stream_details || show_metadata) ? (show_metadata ? stream_rect.h : 32.f) : 0.f; - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 5, 5 }); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + static const auto y_offset_info_rect = 0.f; + static const auto x_offset_info_rect = 0.f; + auto width_info_rect = stream_rect.w - 2.f * x_offset_info_rect; - ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - ImGui::PushStyleColor(ImGuiCol_WindowBg, from_rgba(9, 11, 13, 100)); - static const auto width_info_rect = 270.f; - static const auto height_info_rect = 45.f; - static const auto y_offset_info_rect = 5.f; - static const auto x_offset_info_rect = 275.f; - curr_info_rect = rect{ stream_rect.x + stream_rect.w - x_offset_info_rect, - stream_rect.y + y_offset_info_rect, - width_info_rect, - height_info_rect }; - ImGui::SetNextWindowPos({ curr_info_rect.x, curr_info_rect.y }); - ImGui::SetNextWindowSize({ curr_info_rect.w, curr_info_rect.h }); - std::string label = to_string() << "Stream Info of " << profile.unique_id(); - ImGui::Begin(label.c_str(), nullptr, flags); - - label = to_string() << size.x << "x" << size.y << ", " - << rs2_format_to_string(profile.format()) << ", " - << "FPS:"; - ImGui::Text("%s", label.c_str()); - ImGui::SameLine(); + curr_info_rect = rect{ stream_rect.x + x_offset_info_rect, + stream_rect.y + y_offset_info_rect, + width_info_rect, + _info_height }; - label = to_string() << std::setprecision(2) << std::fixed << fps.get_fps(); - ImGui::Text("%s", label.c_str()); - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("FPS is calculated based on timestamps and not viewer time"); - } - ImGui::SameLine(); + ImGui::GetWindowDrawList()->AddRectFilled({ curr_info_rect.x, curr_info_rect.y }, + { curr_info_rect.x + curr_info_rect.w, curr_info_rect.y + curr_info_rect.h }, + ImColor(dark_sensor_bg)); - label = to_string() << "Frame#" << frame_number; - ImGui::Text("%s", label.c_str()); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::Columns(2, 0, false); - ImGui::SetColumnOffset(1, 160); - label = to_string() << "Timestamp: " << std::fixed << std::setprecision(3) << timestamp; - ImGui::Text("%s", label.c_str()); - ImGui::NextColumn(); + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); - label = to_string() << rs2_timestamp_domain_to_string(timestamp_domain); + float line_y = curr_info_rect.y + 8; - if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) + if (show_stream_details && !show_metadata) + { + if (_info_height.get() > line_y + ImGui::GetTextLineHeight() - curr_info_rect.y) { - ImGui::PushStyleColor(ImGuiCol_Text, { 1.0f, 0.0f, 0.0f, 1.0f }); + ImGui::SetCursorScreenPos({ curr_info_rect.x + 10, line_y }); + + if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) + ImGui::PushStyleColor(ImGuiCol_Text, redish); + + label = to_string() << "Time: " << std::left << std::fixed << std::setprecision(1) << timestamp << " "; + + if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) label = to_string() << textual_icons::exclamation_triangle << label; + ImGui::Text("%s", label.c_str()); + + if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) ImGui::PopStyleColor(); + if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Hardware Timestamp unavailable! This is often an indication of improperly applied Kernel patch.\nPlease refer to installation.md for mode information"); - } - ImGui::PopStyleColor(); - } - else - { + if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) + { + ImGui::BeginTooltip(); + ImGui::PushTextWrapPos(450.0f); + ImGui::TextUnformatted("Timestamp Domain: System Time. Hardware Timestamps unavailable!\nPlease refer to frame_metadata.md for more information"); + ImGui::PopTextWrapPos(); + ImGui::EndTooltip(); + } + else if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_GLOBAL_TIME) + { + ImGui::SetTooltip("Timestamp: Global Time"); + } + else + { + ImGui::SetTooltip("Timestamp: Hardware Clock"); + } + } + + ImGui::SameLine(); + + label = to_string() << " Frame: " << std::left << frame_number; + ImGui::Text("%s", label.c_str()); + + ImGui::SameLine(); + + std::string res; + if (profile.as()) + res = to_string() << size.x << "x" << size.y << ", "; + label = to_string() << res << truncate_string(rs2_format_to_string(profile.format()), 9) << ", "; + ImGui::Text("%s", label.c_str()); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Stream Resolution, Format"); + } + + ImGui::SameLine(); + + label = to_string() << "FPS: " << std::setprecision(2) << std::setw(7) << std::fixed << fps.get_fps(); ImGui::Text("%s", label.c_str()); if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Specifies the clock-domain for the timestamp (hardware-clock / system-time)"); + ImGui::SetTooltip("%s", "FPS is calculated based on timestamps and not viewer time"); } + + line_y += ImGui::GetTextLineHeight() + 5; } + } - ImGui::Columns(1); + + + if (show_metadata) + { + std::vector stream_details; + + if (true) // Always show stream details options + { + stream_details.push_back({ "Frame Timestamp", + to_string() << std::fixed << std::setprecision(1) << timestamp, + "Frame Timestamp is normalized represetation of when the frame was taken.\n" + "It's a property of every frame, so when exact creation time is not provided by the hardware, an approximation will be used.\n" + "Clock Domain feilds helps to interpret the meaning of timestamp\n" + "Timestamp is measured in milliseconds, and is allowed to roll-over (reset to zero) in some situations" }); + stream_details.push_back({ "Clock Domain", + to_string() << rs2_timestamp_domain_to_string(timestamp_domain), + "Clock Domain describes the format of Timestamp field. It can be one of the following:\n" + "1. System Time - When no hardware timestamp is available, system time of arrival will be used.\n" + " System time benefits from being comparable between device, but suffers from not being able to approximate latency.\n" + "2. Hardware Clock - Hardware timestamp is attached to the frame by the device, and is consistent accross device sensors.\n" + " Hardware timestamp encodes precisely when frame was captured, but cannot be compared across devices\n" + "3. Global Time - Global time is provided when the device can both offer hardware timestamp and implements Global Timestamp Protocol.\n" + " Global timestamps encode exact time of capture and at the same time are comparable accross devices." }); + stream_details.push_back({ "Frame Number", + to_string() << frame_number, "Frame Number is a rolling ID assigned to frames.\n" + "Most devices do not guarantee consequitive frames to have conseuquitive frame numbers\n" + "But it is true most of the time" }); + + if (profile.as()) + { + stream_details.push_back({ "Hardware Size", + to_string() << original_size.x << " x " << original_size.y, "" }); + + stream_details.push_back({ "Display Size", + to_string() << size.x << " x " << size.y, + "When Post-Processing is enabled, the actual display size of the frame may differ from original capture size" }); + } + stream_details.push_back({ "Pixel Format", + to_string() << rs2_format_to_string(profile.format()), "" }); + + stream_details.push_back({ "Hardware FPS", + to_string() << std::setprecision(2) << std::fixed << fps.get_fps(), + "Hardware FPS captures the number of frames per second produced by the device.\n" + "It is possible and likely that not all of these frames will make it to the application." }); + + stream_details.push_back({ "Viewer FPS", + to_string() << std::setprecision(2) << std::fixed << view_fps.get_fps(), + "Viewer FPS captures how many frames the application manages to render.\n" + "Frame drops can occur for variety of reasons." }); + + stream_details.push_back({ "", "", "" }); + } + + const std::string no_md = "no md"; + + if (timestamp_domain == RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME) + { + stream_details.push_back({ no_md, "", "" }); + } + + std::map descriptions = { + { RS2_FRAME_METADATA_FRAME_COUNTER , "A sequential index managed per-stream. Integer value" }, + { RS2_FRAME_METADATA_FRAME_TIMESTAMP , "Timestamp set by device clock when data readout and transmit commence. Units are device dependent" }, + { RS2_FRAME_METADATA_SENSOR_TIMESTAMP , "Timestamp of the middle of sensor's exposure calculated by device. usec" }, + { RS2_FRAME_METADATA_ACTUAL_EXPOSURE , "Sensor's exposure width. When Auto Exposure (AE) is on the value is controlled by firmware. usec" }, + { RS2_FRAME_METADATA_GAIN_LEVEL , "A relative value increasing which will increase the Sensor's gain factor.\n" + "When AE is set On, the value is controlled by firmware. Integer value" }, + { RS2_FRAME_METADATA_AUTO_EXPOSURE , "Auto Exposure Mode indicator. Zero corresponds to AE switched off. " }, + { RS2_FRAME_METADATA_WHITE_BALANCE , "White Balance setting as a color temperature. Kelvin degrees" }, + { RS2_FRAME_METADATA_TIME_OF_ARRIVAL , "Time of arrival in system clock " }, + { RS2_FRAME_METADATA_TEMPERATURE , "Temperature of the device, measured at the time of the frame capture. Celsius degrees " }, + { RS2_FRAME_METADATA_BACKEND_TIMESTAMP , "Timestamp get from uvc driver. usec" }, + { RS2_FRAME_METADATA_ACTUAL_FPS , "Actual hardware FPS. May differ from requested due to Auto-Exposure" }, + { RS2_FRAME_METADATA_FRAME_LASER_POWER_MODE , "Laser power mode. Zero corresponds to Laser power switched off and one for switched on." }, + { RS2_FRAME_METADATA_EXPOSURE_PRIORITY , "Exposure priority. When enabled Auto-exposure algorithm is allowed to reduce requested FPS to sufficiently increase exposure time (an get enough light)" }, + { RS2_FRAME_METADATA_POWER_LINE_FREQUENCY , "Power Line Frequency for anti-flickering Off/50Hz/60Hz/Auto. " }, + }; + + for (auto i = 0; i < RS2_FRAME_METADATA_COUNT; i++) + { + auto&& kvp = frame_md.md_attributes[i]; + if (kvp.first) + { + auto val = (rs2_frame_metadata_value)i; + std::string name = to_string() << rs2_frame_metadata_to_string(val); + std::string desc = ""; + if (descriptions.find(val) != descriptions.end()) desc = descriptions[val]; + stream_details.push_back({ name, to_string() << kvp.second, desc }); + } + } + + float max_text_width = 0.; + for (auto&& kvp : stream_details) + max_text_width = std::max(max_text_width, ImGui::CalcTextSize(kvp.name.c_str()).x); + + for (auto&& at : stream_details) + { + if (_info_height.get() > line_y + ImGui::GetTextLineHeight() - curr_info_rect.y) + { + ImGui::SetCursorScreenPos({ curr_info_rect.x + 10, line_y }); + + if (at.name == no_md) + { + auto text = "Per-frame metadata is not enabled at the OS level!\nPlease follow the installation guide for the details"; + auto size = ImGui::CalcTextSize(text); + + for (int i = 3; i > 0; i-=1) + ImGui::GetWindowDrawList()->AddRectFilled({ curr_info_rect.x + 10 - i, line_y - i }, + { curr_info_rect.x + 10 + i + size.x, line_y + size.y + i }, + ImColor(alpha(sensor_bg, 0.1f))); + + ImGui::PushStyleColor(ImGuiCol_Text, redish); + ImGui::Text("%s", text); + ImGui::PopStyleColor(); + + line_y += ImGui::GetTextLineHeight() + 3; + } + else + { + std::string text = ""; + if (at.name != "") text = to_string() << at.name << ":"; + auto size = ImGui::CalcTextSize(text.c_str()); + + for (int i = 3; i > 0; i-=1) + ImGui::GetWindowDrawList()->AddRectFilled({ curr_info_rect.x + 10 - i, line_y - i }, + { curr_info_rect.x + 10 + i + size.x, line_y + size.y + i }, + ImColor(alpha(sensor_bg, 0.1f))); + + ImGui::PushStyleColor(ImGuiCol_Text, white); + ImGui::Text("%s", text.c_str()); ImGui::SameLine(); + + if (at.description != "") + { + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", at.description.c_str()); + } + } + + text = at.value; + size = ImGui::CalcTextSize(text.c_str()); + + for (int i = 3; i > 0; i-=1) + ImGui::GetWindowDrawList()->AddRectFilled({ curr_info_rect.x + 20 + max_text_width - i, line_y - i }, + { curr_info_rect.x + 30 + max_text_width + i + size.x, line_y + size.y + i }, + ImColor(alpha(sensor_bg, 0.1f))); + + ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos({ curr_info_rect.x + 20 + max_text_width, line_y }); + + std::string id = to_string() << "##" << at.name << "-" << profile.unique_id(); + + ImGui::PushStyleColor(ImGuiCol_FrameBg, transparent); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - ImGui::End(); - ImGui::PopStyleColor(6); - ImGui::PopStyleVar(2); + ImGui::InputText(id.c_str(), + (char*)text.c_str(), + text.size() + 1, + ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + + ImGui::PopStyleColor(2); + } + + line_y += ImGui::GetTextLineHeight() + 3; + } + } } + + ImGui::PopStyleColor(5); } - void stream_model::show_stream_footer(ImFont* font, const rect &stream_rect, const mouse_info& mouse) + void stream_model::show_stream_footer(ImFont* font, const rect &stream_rect, const mouse_info& mouse, viewer_model& viewer) { - if (stream_rect.contains(mouse.cursor)) + auto non_visual_stream = (profile.stream_type() == RS2_STREAM_GYRO) + || (profile.stream_type() == RS2_STREAM_ACCEL) + || (profile.stream_type() == RS2_STREAM_GPIO) + || (profile.stream_type() == RS2_STREAM_POSE); + + if (stream_rect.contains(mouse.cursor) && !non_visual_stream && !show_metadata) { std::stringstream ss; rect cursor_rect{ mouse.cursor.x, mouse.cursor.y }; @@ -2583,42 +2789,269 @@ namespace rs2 float val{}; if (texture->try_pick(x, y, &val)) { - ss << ", *p: 0x" << std::hex << static_cast(round(val)); + ss << " 0x" << std::hex << static_cast(round(val)) << " ="; } if (texture->get_last_frame().is()) { auto meters = texture->get_last_frame().as().get_distance(x, y); - ss << std::dec << ", " << std::setprecision(2) << meters << " meters"; + if (viewer.metric_system) + ss << std::dec << " " << std::setprecision(3) << meters << " meters"; + else + ss << std::dec << " " << std::setprecision(3) << meters / FEET_TO_METER << " feet"; } std::string msg(ss.str().c_str()); - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar | - ImGuiWindowFlags_NoInputs; - ImGui_ScopePushFont(font); // adjust windows size to the message length - ImGui::SetNextWindowPos({ stream_rect.x, stream_rect.y + stream_rect.h - 35 }); - ImGui::SetNextWindowSize({ float(msg.size()*8), 20 }); + + auto width = float(msg.size()*8); + auto align = 20; + width += align - (int)width % align; + + ImVec2 pos { stream_rect.x + 5, stream_rect.y + stream_rect.h - 35 }; + ImGui::GetWindowDrawList()->AddRectFilled({ pos.x, pos.y }, + { pos.x + width, pos.y + 30 }, ImColor(dark_sensor_bg)); + + ImGui::SetCursorScreenPos({ pos.x + 10, pos.y + 5 }); std::string label = to_string() << "Footer for stream of " << profile.unique_id(); - ImGui::Begin(label.c_str(), nullptr, flags); - ImGui::PushStyleColor(ImGuiCol_WindowBg, from_rgba(9, 11, 13, 100)); ImGui::PushStyleColor(ImGuiCol_Text, light_grey); ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); ImGui::Text("%s", msg.c_str()); - ImGui::PopStyleColor(3); + ImGui::PopStyleColor(2); + } + } + + void stream_model::show_stream_imu(ImFont* font, const rect &stream_rect, const rs2_vector& axis, const mouse_info& mouse) + { + if (stream_rect.contains(mouse.cursor)) + { + const auto precision = 3; + rs2_stream stream_type = profile.stream_type(); + + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); + + float y_offset = 0; + if (show_stream_details) + { + y_offset += 30; + } + + std::string label = to_string() << "IMU Stream Info of " << profile.unique_id(); + + ImVec2 pos { stream_rect.x, stream_rect.y + y_offset }; + ImGui::SetCursorScreenPos({ pos.x + 5, pos.y + 5 }); + + struct motion_data { + std::string name; + float coordinate; + std::string units; + std::string toolTip; + ImVec4 colorFg; + ImVec4 colorBg; + int nameExtraSpace; + }; + + float norm = std::sqrt((axis.x*axis.x) + (axis.y*axis.y) + (axis.z*axis.z)); + + std::map motion_unit = { { RS2_STREAM_GYRO, "Radians/Sec" },{ RS2_STREAM_ACCEL, "Meter/Sec^2" } }; + std::vector motion_vector = { { "X", axis.x, motion_unit[stream_type].c_str(), "Vector X", from_rgba(233, 0, 0, 255, true) , from_rgba(233, 0, 0, 255, true), 0}, + { "Y", axis.y, motion_unit[stream_type].c_str(), "Vector Y", from_rgba(0, 255, 0, 255, true) , from_rgba(2, 100, 2, 255, true), 0}, + { "Z", axis.z, motion_unit[stream_type].c_str(), "Vector Z", from_rgba(85, 89, 245, 255, true) , from_rgba(0, 0, 245, 255, true), 0}, + { "N", norm, "Norm", "||V|| = SQRT(X^2 + Y^2 + Z^2)",from_rgba(255, 255, 255, 255, true) , from_rgba(255, 255, 255, 255, true), 0} }; + + int line_h = 18; + for (auto&& motion : motion_vector) + { + auto rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x + 12, rc.y + 4 }); + ImGui::PushStyleColor(ImGuiCol_Text, motion.colorFg); + ImGui::Text("%s:", motion.name.c_str()); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s",motion.toolTip.c_str()); + } + ImGui::PopStyleColor(1); + + ImGui::SameLine(); + ImGui::PushStyleColor(ImGuiCol_FrameBg, black); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, motion.colorBg); + + ImGui::PushItemWidth(100); + ImGui::SetCursorPos({ rc.x + 27 + motion.nameExtraSpace, rc.y + 1 }); + std::string label = to_string() << "##" << profile.unique_id() << " " << motion.name.c_str(); + std::string coordinate = to_string() << std::fixed << std::setprecision(precision) << std::showpos << motion.coordinate; + ImGui::InputText(label.c_str(), (char*)coordinate.c_str(), coordinate.size() + 1, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopItemWidth(); + + ImGui::SetCursorPos({ rc.x + 80 + motion.nameExtraSpace, rc.y + 4 }); + ImGui::PushStyleColor(ImGuiCol_Text, from_rgba(255, 255, 255, 100, true)); + ImGui::Text("(%s)", motion.units.c_str()); + + ImGui::PopStyleColor(3); + ImGui::SetCursorPos({ rc.x, rc.y + line_h }); + } - ImGui::End(); + ImGui::PopStyleColor(5); + } + } + + void stream_model::show_stream_pose(ImFont* font, const rect &stream_rect, + const rs2_pose& pose_frame, rs2_stream stream_type, bool fullScreen, float y_offset, + viewer_model& viewer) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); + + std::string label = to_string() << "Pose Stream Info of " << profile.unique_id(); + + ImVec2 pos { stream_rect.x, stream_rect.y + y_offset }; + ImGui::SetCursorScreenPos({ pos.x + 5, pos.y + 5 }); + + std::string confidenceName[4] = { "Failed", "Low", "Medium", "High" }; + struct pose_data { + std::string name; + float floatData[4]; + std::string strData; + uint8_t precision; + bool signedNumber; + std::string units; + std::string toolTip; + uint32_t nameExtraSpace; + bool showOnNonFullScreen; + bool fixedPlace; + bool fixedColor; + }; + + rs2_vector velocity = pose_frame.velocity; + rs2_vector acceleration = pose_frame.acceleration; + rs2_vector translation = pose_frame.translation; + const float feetTranslator = 3.2808f; + std::string unit = viewer.metric_system ? "meters" : "feet"; + + if (!viewer.metric_system) + { + velocity.x *= feetTranslator; velocity.y *= feetTranslator; velocity.z *= feetTranslator; + acceleration.x *= feetTranslator; acceleration.y *= feetTranslator; acceleration.z *= feetTranslator; + translation.x *= feetTranslator; translation.y *= feetTranslator; translation.z *= feetTranslator; + } + + std::vector pose_vector = { + { "Confidence",{ FLT_MAX , FLT_MAX , FLT_MAX , FLT_MAX }, confidenceName[pose_frame.tracker_confidence], 3, true, "", "Tracker confidence: High=Green, Medium=Yellow, Low=Red, Failed=Grey", 50, false, true, false }, + { "Velocity", {velocity.x, velocity.y , velocity.z , FLT_MAX }, "", 3, true, "(" + unit + "/Sec)", "Velocity: X, Y, Z values of velocity, in " + unit + "/Sec", 50, false, true, false}, + { "Angular Velocity",{ pose_frame.angular_velocity.x, pose_frame.angular_velocity.y , pose_frame.angular_velocity.z , FLT_MAX }, "", 3, true, "(Radians/Sec)", "Angular Velocity: X, Y, Z values of angular velocity, in Radians/Sec", 50, false, true, false }, + { "Acceleration",{ acceleration.x, acceleration.y , acceleration.z , FLT_MAX }, "", 3, true, "(" + unit + "/Sec^2)", "Acceleration: X, Y, Z values of acceleration, in " + unit + "/Sec^2", 50, false, true, false }, + { "Angular Acceleration",{ pose_frame.angular_acceleration.x, pose_frame.angular_acceleration.y , pose_frame.angular_acceleration.z , FLT_MAX }, "", 3, true, "(Radians/Sec^2)", "Angular Acceleration: X, Y, Z values of angular acceleration, in Radians/Sec^2", 50, false, true, false }, + { "Translation",{ translation.x, translation.y , translation.z , FLT_MAX }, "", 3, true, "(" + unit + ")", "Translation: X, Y, Z values of translation in " + unit + " (relative to initial position)", 50, true, true, false }, + { "Rotation",{ pose_frame.rotation.x, pose_frame.rotation.y , pose_frame.rotation.z , pose_frame.rotation.w }, "", 3, true, "(Quaternion)", "Rotation: Qi, Qj, Qk, Qr components of rotation as represented in quaternion rotation (relative to initial position)", 50, true, true, false }, + }; + + int line_h = 18; + if (fullScreen) + { + line_h += 2; + } + + for (auto&& pose : pose_vector) + { + if ((fullScreen == false) && (pose.showOnNonFullScreen == false)) + { + continue; + } + + auto rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x + 12, rc.y + 4 }); + ImGui::Text("%s:", pose.name.c_str()); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s",pose.toolTip.c_str()); + } + + if (pose.fixedColor == false) + { + switch (pose_frame.tracker_confidence) //color the line according to confidence + { + case 3: // High confidence - Green + ImGui::PushStyleColor(ImGuiCol_Text, green); + break; + case 2: // Medium confidence - Yellow + ImGui::PushStyleColor(ImGuiCol_Text, yellow); + break; + case 1: // Low confidence - Red + ImGui::PushStyleColor(ImGuiCol_Text, red); + break; + case 0: // Failed confidence - Grey + default: // Fall thourgh + ImGui::PushStyleColor(ImGuiCol_Text, grey); + break; + } + } + + ImGui::SetCursorPos({ rc.x + 100 + (fullScreen?pose.nameExtraSpace:0), rc.y + 1 }); + std::string label = to_string() << "##" << profile.unique_id() << " " << pose.name.c_str(); + std::string data = ""; + + if (pose.strData.empty()) + { + data = "["; + std::string comma = ""; + unsigned int i = 0; + while ((i<4) && (pose.floatData[i] != FLT_MAX)) + { + + data += to_string() << std::fixed << std::setprecision(pose.precision) << (pose.signedNumber ? std::showpos : std::noshowpos) << comma << pose.floatData[i]; + comma = ", "; + i++; + } + data += "]"; + } + else + { + data = pose.strData; + } + + auto textSize = ImGui::CalcTextSize((char*)data.c_str(), (char*)data.c_str() + data.size() + 1); + ImGui::PushItemWidth(textSize.x); + ImGui::InputText(label.c_str(), (char*)data.c_str(), data.size() + 1, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopItemWidth(); + + if (pose.fixedColor == false) + { + ImGui::PopStyleColor(1); + } + + if (pose.fixedPlace == true) + { + ImGui::SetCursorPos({ rc.x + 300 + (fullScreen?pose.nameExtraSpace:0), rc.y + 4 }); + } + else + { + ImGui::SameLine(); + } + + ImGui::PushStyleColor(ImGuiCol_Text, from_rgba(255, 255, 255, 100, true)); + ImGui::Text("%s", pose.units.c_str()); + ImGui::PopStyleColor(1); + + ImGui::SetCursorPos({ rc.x, rc.y + line_h }); } + + ImGui::PopStyleColor(5); } void stream_model::snapshot_frame(const char* filename, viewer_model& viewer) const @@ -2656,7 +3089,7 @@ namespace rs2 ss << "Raw data is captured into " << filename << std::endl; else viewer.not_model.add_notification({ to_string() << "Failed to save frame raw data " << filename, - 0, RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); + RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); // And the frame's attributes filename = filename_base + "_" + stream_desc + "_metadata.csv"; @@ -2667,17 +3100,18 @@ namespace rs2 ss << "The frame attributes are saved into " << filename; else viewer.not_model.add_notification({ to_string() << "Failed to save frame metadata file " << filename, - 0, RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); + RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); } catch (std::exception& e) { viewer.not_model.add_notification({ to_string() << e.what(), - 0, RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); + RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); } } if (ss.str().size()) - viewer.not_model.add_notification({ ss.str().c_str(), 0, RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_HARDWARE_EVENT }); + viewer.not_model.add_notification(notification_data{ + ss.str().c_str(), RS2_LOG_SEVERITY_INFO, RS2_NOTIFICATION_CATEGORY_HARDWARE_EVENT }); } @@ -2767,40 +3201,12 @@ namespace rs2 _middle_pos = g.cursor; } - void stream_model::show_metadata(const mouse_info& g) - { - auto flags = ImGuiWindowFlags_ShowBorders; - - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0.3f, 0.3f, 0.3f, 0.5 }); - ImGui::PushStyleColor(ImGuiCol_TitleBg, { 0.f, 0.25f, 0.3f, 1 }); - ImGui::PushStyleColor(ImGuiCol_TitleBgActive, { 0.f, 0.3f, 0.8f, 1 }); - ImGui::PushStyleColor(ImGuiCol_Text, { 1, 1, 1, 1 }); - - std::string label = to_string() << profile.stream_name() << " Stream Metadata"; - ImGui::Begin(label.c_str(), nullptr, flags); - - // Print all available frame metadata attributes - for (size_t i = 0; i < RS2_FRAME_METADATA_COUNT; i++) - { - if (frame_md.md_attributes[i].first) - { - label = to_string() << rs2_frame_metadata_to_string((rs2_frame_metadata_value)i) << " = " << frame_md.md_attributes[i].second; - ImGui::Text("%s", label.c_str()); - } - } - - ImGui::End(); - - ImGui::PopStyleColor(); - ImGui::PopStyleColor(); - ImGui::PopStyleColor(); - ImGui::PopStyleColor(); - } - void device_model::reset() { + syncer->remove_syncer(dev_syncer); subdevices.resize(0); _recorder.reset(); + } std::pair get_device_name(const device& dev) @@ -2824,40 +3230,141 @@ namespace rs2 return std::make_pair(s.str(), serial); // push name and sn to list } - device_model::device_model(device& dev, std::string& error_message, viewer_model& viewer) - : dev(dev) + device_model::~device_model() { - for (auto&& sub : dev.query_sensors()) - { - auto model = std::make_shared(dev, std::make_shared(sub), error_message); - subdevices.push_back(model); - } + for (auto&& n : related_notifications) n->dismiss(false); + } + + void device_model::refresh_notifications(viewer_model& viewer) + { + for (auto&& n : related_notifications) n->dismiss(false); auto name = get_device_name(dev); - id = to_string() << name.first << ", " << name.second; - // Initialize static camera info: - for (auto i = 0; i < RS2_CAMERA_INFO_COUNT; i++) + if ((bool)config_file::instance().get(configurations::update::recommend_updates)) { - auto info = static_cast(i); - - try + bool fw_update_required = false; + for (auto&& sub : dev.query_sensors()) { - if (dev.supports(info)) + if (sub.supports(RS2_CAMERA_INFO_FIRMWARE_VERSION) && + sub.supports(RS2_CAMERA_INFO_RECOMMENDED_FIRMWARE_VERSION) && + sub.supports(RS2_CAMERA_INFO_PRODUCT_LINE)) { - auto value = dev.get_info(info); - infos.push_back({ std::string(rs2_camera_info_to_string(info)), - std::string(value) }); + std::string fw = sub.get_info(RS2_CAMERA_INFO_FIRMWARE_VERSION); + std::string recommended = sub.get_info(RS2_CAMERA_INFO_RECOMMENDED_FIRMWARE_VERSION); + + int product_line = parse_product_line(sub.get_info(RS2_CAMERA_INFO_PRODUCT_LINE)); + + bool allow_rc_firmware = config_file::instance().get_or_default(configurations::update::allow_rc_firmware, false); + bool is_rc = (product_line == RS2_PRODUCT_LINE_D400) && allow_rc_firmware; + std::string available = get_available_firmware_version(product_line); + + std::shared_ptr manager = nullptr; + + if (is_upgradeable(fw, available)) + { + recommended = available; + + static auto table = create_default_fw_table(); + + manager = std::make_shared(*this, dev, viewer.ctx, table[product_line], true); + } + + if (is_upgradeable(fw, recommended)) + { + std::stringstream msg; + msg << name.first << " (S/N " << name.second << ")\n" + << "Current Version: " << fw << "\n"; + + if (is_rc) + msg << "Release Candidate: " << recommended << " Pre-Release"; + else + msg << "Recommended Version: " << recommended; + + if (!fw_update_required) + { + auto n = std::make_shared( + msg.str(), manager, false); + viewer.not_model.add_notification(n); + + fw_update_required = true; + + related_notifications.push_back(n); + } + } } } - catch (...) - { - infos.push_back({ std::string(rs2_camera_info_to_string(info)), - std::string("???") }); - } } - if (dev.is()) + if ((bool)config_file::instance().get(configurations::update::recommend_calibration)) + { + for (auto&& model : subdevices) + { + if (model->supports_on_chip_calib()) + { + // Make sure we don't spam calibration remainders too often: + time_t rawtime; + time(&rawtime); + std::string id = to_string() << configurations::viewer::last_calib_notice << "." << name.second; + long long last_time = config_file::instance().get_or_default(id.c_str(), (long long)0); + + std::string msg = to_string() + << name.first << " (S/N " << name.second << ")"; + auto manager = std::make_shared(viewer, model, *this, dev); + auto n = std::make_shared( + msg, manager, false); + + // Recommend calibration once a week per device + if (rawtime - last_time < 60) + { + n->snoozed = true; + } + + // NOTE: For now do not pre-emptively suggest auto-calibration + // TODO: Revert in later release + //viewer.not_model.add_notification(n); + //related_notifications.push_back(n); + } + } + } + } + + device_model::device_model(device& dev, std::string& error_message, viewer_model& viewer) + : dev(dev), + syncer(viewer.syncer), + _update_readonly_options_timer(std::chrono::seconds(6)) + { + auto name = get_device_name(dev); + id = to_string() << name.first << ", " << name.second; + + for (auto&& sub : dev.query_sensors()) + { + auto model = std::make_shared(dev, std::make_shared(sub), error_message, viewer); + subdevices.push_back(model); + } + + // Initialize static camera info: + for (auto i = 0; i < RS2_CAMERA_INFO_COUNT; i++) + { + auto info = static_cast(i); + + try + { + if (dev.supports(info)) + { + auto value = dev.get_info(info); + infos.push_back({ std::string(rs2_camera_info_to_string(info)), + std::string(value) }); + } + } + catch (...) + { + infos.push_back({ std::string(rs2_camera_info_to_string(info)), + std::string("???") }); + } + } + + if (dev.is()) { for (auto&& sub : subdevices) { @@ -2868,9 +3375,13 @@ namespace rs2 } play_defaults(viewer); } + + refresh_notifications(viewer); } void device_model::play_defaults(viewer_model& viewer) { + if(!dev_syncer) + dev_syncer = viewer.syncer->create_syncer(); for (auto&& sub : subdevices) { if (!sub->streaming) @@ -2888,215 +3399,97 @@ namespace rs2 if (profiles.empty()) continue; - sub->play(profiles, viewer); + std::string friendly_name = sub->s->get_info(RS2_CAMERA_INFO_NAME); + if ((friendly_name.find("Tracking") != std::string::npos) || + (friendly_name.find("Motion") != std::string::npos)) + { + viewer.synchronization_enable = false; + } + sub->play(profiles, viewer, dev_syncer); for (auto&& profile : profiles) { viewer.begin_stream(sub, profile); - } } } } - void viewer_model::show_event_log(ImFont* font_14, float x, float y, float w, float h) + rs2::frame post_processing_filters::apply_filters(rs2::frame f, const rs2::frame_source& source) { - auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | - ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysVerticalScrollbar; - - ImGui::PushFont(font_14); - ImGui::SetNextWindowPos({ x, y }); - ImGui::SetNextWindowSize({ w, h }); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); - is_output_collapsed = ImGui::Begin("Output", nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_ShowBorders); - - int i = 0; - not_model.foreach_log([&](const std::string& line) { - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - - auto rc = ImGui::GetCursorPos(); - ImGui::SetCursorPos({ rc.x + 10, rc.y + 4 }); - - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::Icon(textual_icons::minus); ImGui::SameLine(); - ImGui::PopStyleColor(); - - rc = ImGui::GetCursorPos(); - ImGui::SetCursorPos({ rc.x, rc.y - 4 }); - - std::string label = to_string() << "##log_entry" << i++; - ImGui::InputTextEx(label.c_str(), - (char*)line.data(), - static_cast(line.size() + 1), - ImVec2(-1, ImGui::GetTextLineHeight() * 1.5f * float(std::max(1,(int)std::count(line.begin(),line.end(), '\n')))), - ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); - ImGui::PopStyleColor(2); - - rc = ImGui::GetCursorPos(); - ImGui::SetCursorPos({ rc.x, rc.y - 6 }); - }); + std::vector frames; + if (auto composite = f.as()) + { + for (auto&& f : composite) + frames.push_back(f); + } + else + frames.push_back(f); - ImGui::End(); - ImGui::PopStyleVar(); - ImGui::PopFont(); - } + auto res = f; - void viewer_model::popup_if_error(ImFont* font_14, std::string& error_message) - { - auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | - ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysVerticalScrollbar; + //In order to know what are the processing blocks we need to apply + //We should find all the sub devices releted to the frames + std::set> subdevices; + for (auto f : frames) + { + auto sub = get_frame_origin(f); + if(sub) + subdevices.insert(sub); + } - ImGui_ScopePushFont(font_14); - ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(3, 3)); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); - - // The list of errors the user asked not to show again: - static std::set errors_not_to_show; - static bool dont_show_this_error = false; - auto simplify_error_message = [](const std::string& s) { - std::regex e("\\b(0x)([^ ,]*)"); - return std::regex_replace(s, e, "address"); - }; + for (auto sub : subdevices) + { + if (!sub->post_processing_enabled) + continue; - std::string name = std::string(textual_icons::exclamation_triangle) + " Oops, something went wrong!"; + for(auto&& pp : sub->post_processing) + if (pp->enabled) + res = pp->invoke(res); + } - if (error_message != "") + // Override the zero pixel in texture frame with black color for occlusion invalidation + // TODO - this is a temporal solution to be refactored from the app level into the core library + if (auto set = res.as()) { - if (errors_not_to_show.count(simplify_error_message(error_message))) - { - not_model.add_notification({ error_message, - std::chrono::duration(std::chrono::system_clock::now().time_since_epoch()).count(), - RS2_LOG_SEVERITY_ERROR, - RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); - error_message = ""; - } - else + for (auto f : set) { - ImGui::OpenPopup(name.c_str()); + zero_first_pixel(f); } - } - if (ImGui::BeginPopupModal(name.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize)) + } + else { - ImGui::Text("RealSense error calling:"); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); - ImGui::InputTextMultiline("error", const_cast(error_message.c_str()), - error_message.size() + 1, { 500,100 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); - ImGui::PopStyleColor(); - - if (ImGui::Button("OK", ImVec2(120, 0))) - { - if (dont_show_this_error) - { - errors_not_to_show.insert(simplify_error_message(error_message)); - } - error_message = ""; - ImGui::CloseCurrentPopup(); - dont_show_this_error = false; - } - - ImGui::SameLine(); - ImGui::Checkbox("Don't show this error again", &dont_show_this_error); - - ImGui::EndPopup(); - } - - ImGui::PopStyleColor(3); - ImGui::PopStyleVar(2); - } - void viewer_model::show_icon(ImFont* font_18, const char* label_str, const char* text, int x, int y, int id, - const ImVec4& text_color, const std::string& tooltip) - { - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; - - ImGui_ScopePushFont(font_18); - ImGui::PushStyleColor(ImGuiCol_WindowBg, transparent); - ImGui::SetNextWindowPos({ (float)x, (float)y }); - ImGui::SetNextWindowSize({ 320.f, 32.f }); - std::string label = to_string() << label_str << id; - ImGui::Begin(label.c_str(), nullptr, flags); - - ImGui::PushStyleColor(ImGuiCol_Text, text_color); - ImGui::Text("%s", text); - ImGui::PopStyleColor(); - if (ImGui::IsItemHovered() && tooltip != "") - ImGui::SetTooltip("%s", tooltip.c_str()); - - ImGui::End(); - ImGui::PopStyleColor(); - } - void viewer_model::show_paused_icon(ImFont* font_18, int x, int y, int id) - { - show_icon(font_18, "paused_icon", textual_icons::pause, x, y, id, white); - } - void viewer_model::show_recording_icon(ImFont* font_18, int x, int y, int id, float alpha_delta) - { - show_icon(font_18, "recording_icon", textual_icons::circle, x, y, id, from_rgba(255, 46, 54, static_cast(alpha_delta * 255))); + zero_first_pixel(f); + } + return res; } - rs2::frame post_processing_filters::apply_filters(rs2::frame f) + std::shared_ptr post_processing_filters::get_frame_origin(const rs2::frame& f) { - rs2_stream stream_type = f.get_profile().stream_type(); - if (stream_type == RS2_STREAM_DEPTH || stream_type == RS2_STREAM_COLOR || stream_type == RS2_STREAM_INFRARED) + for (auto&& s : viewer.streams) { - for (auto&& s : viewer.streams) + if (s.second.dev) { - if (!s.second.dev) continue; auto dev = s.second.dev; if (s.second.original_profile.unique_id() == f.get_profile().unique_id()) { - if (dev->post_processing_enabled) - { - auto dec_filter = s.second.dev->decimation_filter; - if (dec_filter->enabled) - f = dec_filter->invoke(f); - - if (stream_type == RS2_STREAM_DEPTH) - { - auto depth_2_disparity = s.second.dev->depth_to_disparity; - auto spatial_filter = s.second.dev->spatial_filter; - auto temp_filter = s.second.dev->temporal_filter; - auto hole_filling = s.second.dev->hole_filling_filter; - auto disparity_2_depth = s.second.dev->disparity_to_depth; - - if (depth_2_disparity->enabled) - f = depth_2_disparity->invoke(f); - - if (spatial_filter->enabled) - f = spatial_filter->invoke(f); - - if (temp_filter->enabled) - f = temp_filter->invoke(f); - - if (disparity_2_depth->enabled) - f = disparity_2_depth->invoke(f); - - if (hole_filling->enabled) - f = hole_filling->invoke(f); - } - - break; - } + return dev; } } } + return nullptr; + } - // Override the zero pixel in texture frame with black color for occlusion invalidation - // TODO - this is a temporal solution to be refactored from the app level into the core library - switch (stream_type) - { - case RS2_STREAM_COLOR: - { + //Zero the first pixel on frame ,used to invalidate the occlusion pixels + void post_processing_filters::zero_first_pixel(const rs2::frame& f) + { + auto stream_type = f.get_profile().stream_type(); + + switch (stream_type) + { + case RS2_STREAM_COLOR: + { auto rgb_stream = const_cast(static_cast(f.get_data())); memset(rgb_stream, 0, 3); // Alternatively, enable the next two lines to render invalidation with magenta color for inspection @@ -3113,76 +3506,155 @@ namespace rs2 default: break; } + } + + void post_processing_filters::map_id(rs2::frame new_frame, rs2::frame old_frame) + { + if (auto new_set = new_frame.as()) + { + if (auto old_set = old_frame.as()) + { + map_id_frameset_to_frameset(new_set, old_set); + } + else + { + map_id_frameset_to_frame(new_set, old_frame); + } + } + else if (auto old_set = old_frame.as()) + { + map_id_frameset_to_frame(old_set, new_frame); + } + else + map_id_frame_to_frame(new_frame, old_frame); + } + + void post_processing_filters::map_id_frameset_to_frame(rs2::frameset first, rs2::frame second) + { + if(auto f = first.first_or_default(second.get_profile().stream_type())) + { + auto first_uid = f.get_profile().unique_id(); + auto second_uid = second.get_profile().unique_id(); + + viewer.streams_origin[first_uid] = second_uid; + viewer.streams_origin[second_uid] = first_uid; + } + } + + void post_processing_filters::map_id_frameset_to_frameset(rs2::frameset first, rs2::frameset second) + { + for (auto&& f : first) + { + auto first_uid = f.get_profile().unique_id(); + if (auto second_f = second.first_or_default(f.get_profile().stream_type())) + { + auto second_uid = second_f.get_profile().unique_id(); + + viewer.streams_origin[first_uid] = second_uid; + viewer.streams_origin[second_uid] = first_uid; + } + } + } + + void rs2::post_processing_filters::map_id_frame_to_frame(rs2::frame first, rs2::frame second) + { + if (first.get_profile().stream_type() == second.get_profile().stream_type()) + { + auto first_uid = first.get_profile().unique_id(); + auto second_uid = second.get_profile().unique_id(); - return f; + viewer.streams_origin[first_uid] = second_uid; + viewer.streams_origin[second_uid] = first_uid; + } } - std::vector post_processing_filters::handle_frame(rs2::frame f) + + std::vector post_processing_filters::handle_frame(rs2::frame f, const rs2::frame_source& source) { std::vector res; - auto filtered = apply_filters(f); - res.push_back(filtered); - auto uid = f.get_profile().unique_id(); - auto new_uid = filtered.get_profile().unique_id(); - viewer.streams_origin[uid] = new_uid; - viewer.streams_origin[new_uid] = uid; + if (uploader) f = uploader->process(f); + + auto filtered = apply_filters(f, source); + + map_id(filtered, f); + + if (auto composite = filtered.as()) + { + for (auto&& frame : composite) + { + res.push_back(frame); + } + } + else + res.push_back(filtered); if(viewer.is_3d_view) { - if(viewer.is_3d_depth_source(f)) + if(auto depth = viewer.get_3d_depth_source(filtered)) { - res.push_back(pc->calculate(filtered)); + switch (depth.get_profile().format()) + { + case RS2_FORMAT_DISPARITY32: depth = disp_to_depth.process(depth); break; + case RS2_FORMAT_Z16H: depth = depth_decoder.process(depth); break; + default: break; + } + + res.push_back(pc->calculate(depth)); } - if(viewer.is_3d_texture_source(f)) + if(auto texture = viewer.get_3d_texture_source(filtered)) { - update_texture(filtered); + update_texture(texture); } } return res; } + void post_processing_filters::process(rs2::frame f, const rs2::frame_source& source) { points p; std::vector results; - frame res; - if (auto composite = f.as()) + auto res = handle_frame(f, source); + auto frame = source.allocate_composite_frame(res); + + if(frame) + source.frame_ready(std::move(frame)); + } + + void post_processing_filters::start() + { + stop(); + if (render_thread_active.exchange(true) == false) { - for (auto&& f : composite) - { - auto res = handle_frame(f); - results.insert(results.end(), res.begin(), res.end()); - } + viewer.syncer->start(); + render_thread = std::make_shared([&](){post_processing_filters::render_loop();}); } - else + } + + void post_processing_filters::stop() + { + if (render_thread_active.exchange(false) == true) { - auto res = handle_frame(f); - results.insert(results.end(), res.begin(), res.end()); + viewer.syncer->stop(); + render_thread->join(); + render_thread.reset(); } - - res = source.allocate_composite_frame(results); - - if(res) - source.frame_ready(std::move(res)); } - - void post_processing_filters::render_loop() { while (render_thread_active) { try { - frame frm; if(viewer.synchronization_enable) { - auto index = 0; - while (syncer_queue.try_wait_for_frame(&frm, 30) && ++index <= syncer_queue.capacity()) + auto frames = viewer.syncer->try_wait_for_frames(); + for(auto f:frames) { - processing_block.invoke(frm); + processing_block.invoke(f); } } else @@ -3206,1565 +3678,713 @@ namespace rs2 } } - void viewer_model::show_no_stream_overlay(ImFont* font_18, int min_x, int min_y, int max_x, int max_y) + void device_model::start_recording(const std::string& path, std::string& error_message) { - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; - - ImGui::PushFont(font_18); - ImGui::PushStyleColor(ImGuiCol_WindowBg, transparent); - ImGui::SetNextWindowPos({ (min_x + max_x) / 2.f - 150, (min_y + max_y) / 2.f - 20 }); - ImGui::SetNextWindowSize({ float(max_x - min_x), 50.f }); - ImGui::Begin("nostreaming_popup", nullptr, flags); - - ImGui::PushStyleColor(ImGuiCol_Text, sensor_header_light_blue); - std::string text = to_string() << "Nothing is streaming! Toggle " << textual_icons::toggle_off << " to start"; - ImGui::Text("%s", text.c_str()); - ImGui::PopStyleColor(); + if (_recorder != nullptr) + { + return; //already recording + } - ImGui::End(); - ImGui::PopStyleColor(); - ImGui::PopFont(); - } + try + { + int compression_mode = config_file::instance().get(configurations::record::compression_mode); + if (compression_mode == 2) + _recorder = std::make_shared(path, dev); + else + _recorder = std::make_shared(path, dev, compression_mode == 0); - void viewer_model::show_no_device_overlay(ImFont* font_18, int x, int y) - { - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; - - ImGui::PushStyleColor(ImGuiCol_WindowBg, transparent); - ImGui::SetNextWindowPos({ float(x), float(y) }); - ImGui::SetNextWindowSize({ 250.f, 70.f }); - ImGui::Begin("nostreaming_popup", nullptr, flags); - - ImGui::PushFont(font_18); - ImGui::PushStyleColor(ImGuiCol_Text, from_rgba(0x70, 0x8f, 0xa8, 0xff)); - ImGui::Text("Connect a RealSense Camera\nor Add Source"); - ImGui::PopStyleColor(); - ImGui::PopFont(); - ImGui::SetCursorPos({ 0, 43 }); - ImGui::PushStyleColor(ImGuiCol_Button, dark_window_background); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, dark_window_background); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, dark_window_background); - ImGui::PushStyleColor(ImGuiCol_Text, button_color + 0.25f); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, button_color + 0.55f); - ImGui::Spacing(); - std::string message = to_string() << textual_icons::shopping_cart << " Buy Now"; - if (ImGui::Button(message.c_str(), { 75, 20 })) - { - open_url(store_url); + for (auto&& sub_dev_model : subdevices) + { + sub_dev_model->_is_being_recorded = true; + } + is_recording = true; } - if (ImGui::IsItemHovered()) + catch (const rs2::error& e) { - ImGui::SetTooltip("Go to click.intel.com"); + error_message = error_to_string(e); + } + catch (const std::exception& e) + { + error_message = e.what(); } - ImGui::PopStyleColor(5); - ImGui::End(); - ImGui::PopStyleColor(); } - // Generate streams layout, creates a grid-like layout with factor amount of columns - std::map generate_layout(const rect& r, - int top_bar_height, int factor, - const std::set& active_streams, - std::map& stream_index - ) + void device_model::stop_recording(viewer_model& viewer) { - std::map results; - if (factor == 0) return results; - - // Calc the number of rows - auto complement = ceil((float)active_streams.size() / factor); - - auto cell_width = static_cast(r.w / factor); - auto cell_height = static_cast(r.h / complement); - - auto it = active_streams.begin(); - for (auto x = 0; x < factor; x++) + auto saved_to_filename = _recorder->filename(); + _recorder.reset(); + for (auto&& sub_dev_model : subdevices) { - for (auto y = 0; y < complement; y++) - { - // There might be spare boxes at the end (3 streams in 2x2 array for example) - if (it == active_streams.end()) break; - - rect rxy = { r.x + x * cell_width, r.y + y * cell_height + top_bar_height, - cell_width, cell_height - top_bar_height }; - // Generate box to display the stream in - results[stream_index[*it]] = rxy.adjust_ratio((*it)->size); - ++it; - } + sub_dev_model->_is_being_recorded = false; } - - return results; + is_recording = false; + notification_data nd{ to_string() << "Saved recording to: " << saved_to_filename, + RS2_LOG_SEVERITY_INFO, + RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }; + viewer.not_model.add_notification(nd); } - // Return the total display area of the layout - // The bigger it is, the more details we can see - float evaluate_layout(const std::map& l) + void device_model::pause_record() { - float res = 0.f; - for (auto&& kvp : l) res += kvp.second.area(); - return res; + _recorder->pause(); } - std::map viewer_model::calc_layout(const rect& r) + void device_model::resume_record() { - const int top_bar_height = 32; - - std::set active_streams; - std::map stream_index; - for (auto&& stream : streams) - { - if (stream.second.is_stream_visible()) - { - active_streams.insert(&stream.second); - stream_index[&stream.second] = stream.first; - } - } - - if (fullscreen) - { - if (active_streams.count(selected_stream) == 0) fullscreen = false; - } + _recorder->resume(); + } - std::map results; + int device_model::draw_playback_controls(ux_window& window, ImFont* font, viewer_model& viewer) + { + auto p = dev.as(); + rs2_playback_status current_playback_status = p.current_status(); - if (fullscreen) - { - results[stream_index[selected_stream]] = { r.x, r.y + top_bar_height, - r.w, r.h - top_bar_height }; - } - else - { - // Go over all available fx(something) layouts - for (int f = 1; f <= active_streams.size(); f++) - { - auto l = generate_layout(r, top_bar_height, f, - active_streams, stream_index); - - // Keep the "best" layout in result - if (evaluate_layout(l) > evaluate_layout(results)) - results = l; - } - } + const int playback_control_height = 35; + const float combo_box_width = 90.f; + const float icon_width = 28; + const float line_width = 255; //Ideally should use: ImGui::GetContentRegionMax().x + //Line looks like this ("-" == space, "[]" == icon, "[ ]" == combo_box): |-[]-[]-[]-[]-[]-[ ]-[]-| + const int num_icons_in_line = 6; + const int num_combo_boxes_in_line = 1; + const int num_spaces_in_line = num_icons_in_line + num_combo_boxes_in_line + 1; + const float required_row_width = (num_combo_boxes_in_line * combo_box_width) + (num_icons_in_line * icon_width); + float space_width = std::max(line_width - required_row_width, 0.f) / num_spaces_in_line; + ImVec2 button_dim = { icon_width, icon_width }; - return get_interpolated_layout(results); - } + const bool supports_playback_step = current_playback_status == RS2_PLAYBACK_STATUS_PAUSED; - rs2::frame viewer_model::handle_ready_frames(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message) - { - texture_buffer* texture_frame = nullptr; - points p; - frame f{}, depth{}; + ImGui::PushFont(font); - std::map last_frames; - try + //////////////////// Step Backwards Button //////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + std::string label = to_string() << textual_icons::step_backward << "##Step Backward " << id; + if (ImGui::ButtonEx(label.c_str(), button_dim, supports_playback_step ? 0 : ImGuiButtonFlags_Disabled)) { - auto index = 0; - while (ppf.resulting_queue.poll_for_frame(&f) && ++index < ppf.resulting_queue_max_size) - { - last_frames[f.get_profile().unique_id()] = f; - } - - for(auto&& frame : last_frames) + int fps = 0; + for (auto&& s : viewer.streams) { - auto f = frame.second; - frameset frames; - if (frames = f.as()) - { - for (auto&& frame : frames) - { - if (frame.is()) // find and store the 3d points frame for later use - { - p = frame.as(); - continue; - } - - if (frame.is() && !paused) - depth = frame; - - auto texture = upload_frame(std::move(frame)); - - if ((selected_tex_source_uid == -1 && frame.get_profile().format() == RS2_FORMAT_Z16) || frame.get_profile().format() != RS2_FORMAT_ANY && is_3d_texture_source(frame)) - { - texture_frame = texture; - } - } - } - else if (!p) - { - upload_frame(std::move(f)); - } + if (s.second.profile.fps() > fps) + fps = s.second.profile.fps(); } + auto curr_frame = p.get_position(); + uint64_t step = 1000.0 / (float)fps * 1e6; + p.seek(std::chrono::nanoseconds(curr_frame - step)); } - catch (const error& ex) - { - error_message = error_to_string(ex); - } - catch (const std::exception& ex) - { - error_message = ex.what(); - } - - - gc_streams(); - - window.begin_viewport(); - - draw_viewport(viewer_rect, window, devices, error_message, texture_frame, p); - - not_model.draw(window.get_font(), static_cast(window.width()), static_cast(window.height())); - - popup_if_error(window.get_font(), error_message); - - return f; - } - - void viewer_model::reset_camera(float3 p) - { - target = { 0.0f, 0.0f, 0.0f }; - pos = p; - - // initialize "up" to be tangent to the sphere! - // up = cross(cross(look, world_up), look) + if (ImGui::IsItemHovered()) { - float3 look = { target.x - pos.x, target.y - pos.y, target.z - pos.z }; - look = look.normalize(); - - float world_up[3] = { 0.0f, 1.0f, 0.0f }; - - float across[3] = { - look.y * world_up[2] - look.z * world_up[1], - look.z * world_up[0] - look.x * world_up[2], - look.x * world_up[1] - look.y * world_up[0], - }; - - up.x = across[1] * look.z - across[2] * look.y; - up.y = across[2] * look.x - across[0] * look.z; - up.z = across[0] * look.y - across[1] * look.x; - - float up_len = up.length(); - up.x /= -up_len; - up.y /= -up_len; - up.z /= -up_len; + std::string tooltip = to_string() << "Step Backwards" << (supports_playback_step ? "" : "(Not available)"); + ImGui::SetTooltip("%s", tooltip.c_str()); } - } - - void viewer_model::draw_color_ruler(const mouse_info& mouse, - const stream_model& s_model, - const rect& stream_rect, - std::vector rgb_per_distance_vec, - float ruler_length, - const std::string& ruler_units) - { - if (rgb_per_distance_vec.empty() || (ruler_length <= 0.f)) - return; - - ruler_length = std::ceil(ruler_length); - std::sort(rgb_per_distance_vec.begin(), rgb_per_distance_vec.end(), [](const rgb_per_distance& a, - const rgb_per_distance& b) { - return a.depth_val < b.depth_val; - }); + ImGui::SameLine(); + //////////////////// Step Backwards Button //////////////////// - const auto stream_height = stream_rect.y + stream_rect.h; - const auto stream_width = stream_rect.x + stream_rect.w; - - static const auto ruler_distance_offset = 10; - auto bottom_y_ruler = stream_height - ruler_distance_offset; - if (s_model.texture->zoom_preview) - { - bottom_y_ruler = s_model.texture->curr_preview_rect.y - ruler_distance_offset; - } - - static const auto top_y_offset = 50; - auto top_y_ruler = stream_rect.y + top_y_offset; - if (s_model.show_stream_details) - { - top_y_ruler = s_model.curr_info_rect.y + s_model.curr_info_rect.h + ruler_distance_offset; - } - - static const auto left_x_colored_ruler_offset = 50; - static const auto colored_ruler_width = 20; - const auto left_x_colored_ruler = stream_width - left_x_colored_ruler_offset; - const auto right_x_colored_ruler = stream_width - (left_x_colored_ruler_offset - colored_ruler_width); - const auto first_rgb = rgb_per_distance_vec.begin()->rgb_val; - assert((bottom_y_ruler - top_y_ruler) != 0.f); - const auto ratio = (bottom_y_ruler - top_y_ruler) / ruler_length; - - // Draw numbered ruler - float y_ruler_val = 0.f; - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar | - ImGuiWindowFlags_NoScrollWithMouse | - ImGuiWindowFlags_NoScrollbar; - static const auto numbered_ruler_width = 20.f; - const auto numbered_ruler_height = bottom_y_ruler - top_y_ruler; - ImGui::SetNextWindowPos({ right_x_colored_ruler, top_y_ruler }); - ImGui::SetNextWindowSize({ numbered_ruler_width, numbered_ruler_height }); - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0.f, 0.f, 0.f, 0.f }); - ImGui::Begin("numbered_ruler", nullptr, flags); - - const auto right_x_numbered_ruler = right_x_colored_ruler + numbered_ruler_width; - static const auto hovered_numbered_ruler_opac = 0.8f; - static const auto unhovered_numbered_ruler_opac = 0.6f; - float colored_ruler_opac = unhovered_numbered_ruler_opac; - float numbered_ruler_background_opac = unhovered_numbered_ruler_opac; - bool is_ruler_hovered = false; - if (mouse.cursor.x >= left_x_colored_ruler && - mouse.cursor.x <= right_x_numbered_ruler && - mouse.cursor.y >= top_y_ruler && - mouse.cursor.y <= bottom_y_ruler) - is_ruler_hovered = true; - - if (is_ruler_hovered) - { - std::stringstream ss; - auto relative_mouse_y = ImGui::GetMousePos().y - top_y_ruler; - auto y = (bottom_y_ruler - top_y_ruler) - relative_mouse_y; - ss << std::fixed << std::setprecision(2) << (y / ratio) << ruler_units; - ImGui::SetTooltip("%s", ss.str().c_str()); - colored_ruler_opac = 1.f; - numbered_ruler_background_opac = hovered_numbered_ruler_opac; - } - - // Draw a background to the numbered ruler - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glColor4f(0.0, 0.0, 0.0, numbered_ruler_background_opac); - glBegin(GL_POLYGON); - glVertex2f(right_x_colored_ruler, top_y_ruler); - glVertex2f(right_x_numbered_ruler , top_y_ruler); - glVertex2f(right_x_numbered_ruler , bottom_y_ruler); - glVertex2f(right_x_colored_ruler, bottom_y_ruler); - glEnd(); + //////////////////// Stop Button //////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + label = to_string() << textual_icons::stop << "##Stop Playback " << id; - static const float x_ruler_val = 4.0f; - ImGui::SetCursorPos({ x_ruler_val, y_ruler_val }); - const auto font_size = ImGui::GetFontSize(); - ImGui::TextUnformatted(std::to_string(static_cast(ruler_length)).c_str()); - const auto skip_numbers = ((ruler_length / 10.f) - 1.f); - auto to_skip = (skip_numbers < 0.f)?0.f: skip_numbers; - for (int i = static_cast(ruler_length - 1); i > 0; --i) + if (ImGui::ButtonEx(label.c_str(), button_dim)) { - y_ruler_val += ((bottom_y_ruler - top_y_ruler) / ruler_length); - ImGui::SetCursorPos({ x_ruler_val, y_ruler_val - font_size / 2 }); - if (((to_skip--) > 0)) - continue; - - ImGui::TextUnformatted(std::to_string(i).c_str()); - to_skip = skip_numbers; + bool prev = _playback_repeat; + _playback_repeat = false; + p.stop(); + _playback_repeat = prev; } - y_ruler_val += ((bottom_y_ruler - top_y_ruler) / ruler_length); - ImGui::SetCursorPos({ x_ruler_val, y_ruler_val - font_size }); - ImGui::Text("0"); - ImGui::End(); - ImGui::PopStyleColor(); - - auto total_depth_scale = rgb_per_distance_vec.back().depth_val - rgb_per_distance_vec.front().depth_val; - static const auto sensitivity_factor = 0.01f; - auto sensitivity = sensitivity_factor * total_depth_scale; - - // Draw colored ruler - auto last_y = bottom_y_ruler; - auto last_depth_value = 0.f; - auto last_index = 0; - for (auto i = 1; i < rgb_per_distance_vec.size(); ++i) - { - auto curr_depth = rgb_per_distance_vec[i].depth_val; - if ((((curr_depth - last_depth_value) < sensitivity) && (i != rgb_per_distance_vec.size() - 1))) - continue; - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBegin(GL_QUADS); - glColor4f(rgb_per_distance_vec[last_index].rgb_val.r / 255.f, - rgb_per_distance_vec[last_index].rgb_val.g / 255.f, - rgb_per_distance_vec[last_index].rgb_val.b / 255.f, - colored_ruler_opac); - glVertex2f(left_x_colored_ruler, last_y); - glVertex2f(right_x_colored_ruler, last_y); - - last_depth_value = curr_depth; - last_index = i; - - auto y = bottom_y_ruler - ((rgb_per_distance_vec[i].depth_val) * ratio); - if ((i == (rgb_per_distance_vec.size() - 1)) || (std::ceil(curr_depth) > ruler_length)) - y = top_y_ruler; - - glColor4f(rgb_per_distance_vec[i].rgb_val.r / 255.f, - rgb_per_distance_vec[i].rgb_val.g / 255.f, - rgb_per_distance_vec[i].rgb_val.b / 255.f, - colored_ruler_opac); - - glVertex2f(right_x_colored_ruler, y); - glVertex2f(left_x_colored_ruler, y); - last_y = y; - glEnd(); - } - - // Draw ruler border - static const auto top_line_offset = 0.5f; - static const auto right_line_offset = top_line_offset / 2; - glColor4f(0.0, 0.0, 0.0, colored_ruler_opac); - glBegin(GL_LINE_LOOP); - glVertex2f(left_x_colored_ruler - top_line_offset, top_y_ruler - top_line_offset); - glVertex2f(right_x_numbered_ruler + right_line_offset / 2, top_y_ruler - top_line_offset); - glVertex2f(right_x_numbered_ruler + right_line_offset / 2, bottom_y_ruler + top_line_offset); - glVertex2f(left_x_colored_ruler - top_line_offset, bottom_y_ruler + top_line_offset); - glEnd(); - } - - float viewer_model::calculate_ruler_max_distance(const std::vector& distances) const - { - assert(!distances.empty()); - - float mean = std::accumulate(distances.begin(), - distances.end(), 0.0f) / distances.size(); - - float e = 0; - float inverse = 1.f / distances.size(); - for (auto elem : distances) + if (ImGui::IsItemHovered()) { - e += pow(elem - mean, 2); + std::string tooltip = to_string() << "Stop Playback"; + ImGui::SetTooltip("%s", tooltip.c_str()); } + ImGui::SameLine(); + //////////////////// Stop Button //////////////////// - auto standard_deviation = sqrt(inverse * e); - static const auto length_jump = 4.f; - return std::ceil((mean + 1.5f * standard_deviation) / length_jump) * length_jump; - } - - void viewer_model::render_2d_view(const rect& view_rect, - ux_window& win, int output_height, - ImFont *font1, ImFont *font2, size_t dev_model_num, - const mouse_info &mouse, std::string& error_message) - { - static periodic_timer every_sec(std::chrono::seconds(1)); - static bool icon_visible = false; - if (every_sec) icon_visible = !icon_visible; - float alpha = icon_visible ? 1.f : 0.2f; - - glViewport(0, 0, - static_cast(win.framebuf_width()), static_cast(win.framebuf_height())); - glLoadIdentity(); - glOrtho(0, win.width(), win.height(), 0, -1, +1); - - auto layout = calc_layout(view_rect); - if ((layout.size() == 0) && (dev_model_num > 0)) - { - show_no_stream_overlay(font2, static_cast(view_rect.x), static_cast(view_rect.y), static_cast(win.width()), static_cast(win.height() - output_height)); - } - for (auto &&kvp : layout) + //////////////////// Pause/Play Button //////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + if (current_playback_status == RS2_PLAYBACK_STATUS_PAUSED || current_playback_status == RS2_PLAYBACK_STATUS_STOPPED) { - auto&& view_rect = kvp.second; - auto stream = kvp.first; - auto&& stream_mv = streams[stream]; - auto&& stream_size = stream_mv.size; - auto stream_rect = view_rect.adjust_ratio(stream_size).grow(-3); - - stream_mv.show_frame(stream_rect, mouse, error_message); - - auto p = stream_mv.dev->dev.as(); - float pos = stream_rect.x + 5; - - if (stream_mv.dev->_is_being_recorded) - { - show_recording_icon(font2, static_cast(pos), static_cast(stream_rect.y + 5), stream_mv.profile.unique_id(), alpha); - pos += 23; - } - - if (!stream_mv.is_stream_alive()) - { - std::string message = to_string() << textual_icons::exclamation_triangle << " No Frames Received!"; - show_icon(font2, "warning_icon", message.c_str(), - static_cast(stream_rect.center().x - 100), - static_cast(stream_rect.center().y - 25), - stream_mv.profile.unique_id(), - blend(dark_red, alpha), - "Did not receive frames from the platform within a reasonable time window,\nplease try reducing the FPS or the resolution"); - } - - if (stream_mv.dev->is_paused() || (p && p.current_status() == RS2_PLAYBACK_STATUS_PAUSED)) - show_paused_icon(font2, static_cast(pos), static_cast(stream_rect.y + 5), stream_mv.profile.unique_id()); - - stream_mv.show_stream_header(font1, stream_rect, *this); - stream_mv.show_stream_footer(font1, stream_rect, mouse); - - glColor3f(header_window_bg.x, header_window_bg.y, header_window_bg.z); - stream_rect.y -= 32; - stream_rect.h += 32; - stream_rect.w += 1; - draw_rect(stream_rect); - - auto frame = streams[stream].texture->get_last_frame().as(); - auto textured_frame = streams[stream].texture->get_last_frame(true).as(); - if (streams[stream].show_map_ruler && frame && textured_frame && - RS2_STREAM_DEPTH == stream_mv.profile.stream_type() && - RS2_FORMAT_Z16 == stream_mv.profile.format()) + label = to_string() << textual_icons::play << "##Play " << id; + if (ImGui::ButtonEx(label.c_str(), button_dim)) { - assert(RS2_FORMAT_RGB8 == textured_frame.get_profile().format()); - static const std::string depth_units = "m"; - float ruler_length = 0.f; - auto depth_vid_profile = stream_mv.profile.as(); - auto depth_width = depth_vid_profile.width(); - auto depth_height = depth_vid_profile.height(); - auto num_of_pixels = depth_width * depth_height; - auto depth_data = static_cast(frame.get_data()); - auto textured_depth_data = static_cast(textured_frame.get_data()); - static const auto skip_pixels_factor = 30; - std::vector rgb_per_distance_vec; - std::vector distances; - for (uint64_t i = 0; i < depth_height; i+= skip_pixels_factor) + if (current_playback_status == RS2_PLAYBACK_STATUS_STOPPED) + { + play_defaults(viewer); + } + else { - for (uint64_t j = 0; j < depth_width; j+= skip_pixels_factor) + syncer->on_frame = []{}; + for (auto&& s : subdevices) { - auto depth_index = i*depth_width + j; - auto length = depth_data[depth_index] * stream_mv.dev->depth_units; - if (length > 0.f) - { - auto textured_depth_index = depth_index * 3; - auto r = textured_depth_data[textured_depth_index]; - auto g = textured_depth_data[textured_depth_index + 1]; - auto b = textured_depth_data[textured_depth_index + 2]; - rgb_per_distance_vec.push_back({ length, { r, g, b } }); - distances.push_back(length); - } + s->on_frame = []{}; + if (s->streaming) + s->resume(); } + + p.resume(); } - if (!distances.empty()) - { - ruler_length = calculate_ruler_max_distance(distances); - draw_color_ruler(mouse, streams[stream], stream_rect, rgb_per_distance_vec, ruler_length, depth_units); - } + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip(current_playback_status == RS2_PLAYBACK_STATUS_PAUSED ? "Resume Playback" : "Start Playback"); } } - - // Metadata overlay windows shall be drawn after textures to preserve z-buffer functionality - for (auto &&kvp : layout) - { - if (streams[kvp.first].metadata_displayed) - streams[kvp.first].show_metadata(mouse); - } - } - - void viewer_model::render_3d_view(const rect& viewer_rect, texture_buffer* texture, rs2::points points) - { - if(!paused) + else { - if(points) + label = to_string() << textual_icons::pause << "##Pause Playback " << id; + if (ImGui::ButtonEx(label.c_str(), button_dim)) { - last_points = points; + p.pause(); + for (auto&& s : subdevices) + { + if (s->streaming) + s->pause(); + } + viewer.paused = true; } - if(texture) + if (ImGui::IsItemHovered()) { - last_texture = texture; + ImGui::SetTooltip("Pause Playback"); } } - glViewport(static_cast(viewer_rect.x), 0, - static_cast(viewer_rect.w), static_cast(viewer_rect.h)); - - glClearColor(0, 0, 0, 1); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - gluPerspective(60, (float)viewer_rect.w / viewer_rect.h, 0.001f, 100.0f); - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadMatrixf(view); - - glDisable(GL_TEXTURE_2D); - - glEnable(GL_DEPTH_TEST); - - glLineWidth(1); - glBegin(GL_LINES); - glColor4f(0.4f, 0.4f, 0.4f, 1.f); + ImGui::SameLine(); + //////////////////// Pause/Play Button //////////////////// - glTranslatef(0, 0, -1); - for (int i = 0; i <= 6; i++) - { - glVertex3i(i - 3, 1, 0); - glVertex3i(i - 3, 1, 6); - glVertex3i(-3, 1, i); - glVertex3i(3, 1, i); - } - glEnd(); - texture_buffer::draw_axis(0.1f, 1); - if (draw_plane) + //////////////////// Step Forward Button //////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + label = to_string() << textual_icons::step_forward << "##Step Forward " << id; + if (ImGui::ButtonEx(label.c_str(), button_dim, supports_playback_step ? 0 : ImGuiButtonFlags_Disabled)) { - glLineWidth(2); - glBegin(GL_LINES); - - if (is_valid(roi_rect)) + int fps = 0; + for (auto&& s : viewer.streams) { - glColor4f(yellow.x, yellow.y, yellow.z, 1.f); - - auto rects = subdivide(roi_rect); - for (auto&& r : rects) - { - for (int i = 0; i < 4; i++) - { - auto j = (i + 1) % 4; - glVertex3f(r[i].x, r[i].y, r[i].z); - glVertex3f(r[j].x, r[j].y, r[j].z); - } - } + if (s.second.profile.fps() > fps) + fps = s.second.profile.fps(); } - - glEnd(); + auto curr_frame = p.get_position(); + uint64_t step = 1000.0 / (float)fps * 1e6; + p.seek(std::chrono::nanoseconds(curr_frame + step)); } - - for (auto&& stream : streams) + if (ImGui::IsItemHovered()) { - if (stream.second.profile.stream_type() == RS2_STREAM_POSE) - { - auto f = stream.second.texture->get_last_frame(); - auto pose = f.as(); - if (!pose) - continue; - - rs2_pose pose_data = pose.get_pose_data(); - matrix4 pose_trans = tm2_pose_to_world_transformation(pose_data); - float model[16]; - pose_trans.to_column_major(model); + std::string tooltip = to_string() << "Step Forward" << (supports_playback_step ? "" : "(Not available)"); + ImGui::SetTooltip("%s", tooltip.c_str()); + } + ImGui::SameLine(); + //////////////////// Step Forward Button //////////////////// - // set the pose transformation as the model matrix to draw the axis - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - glLoadMatrixf(view); - glMultMatrixf(model); // = view x model - if (stream.second.profile.stream_index() > 1) //TODO: use a more robust way to identfy this - { - tm2.draw_controller_pose_object(); - } - else - { - tm2.draw_pose_object(); - } - // remove model matrix from the rest of the render - glPopMatrix(); - rs2_vector translation{ pose_trans.mat[0][3], pose_trans.mat[1][3], pose_trans.mat[2][3] }; - tracked_point p{ translation , pose_data.tracker_confidence }; //TODO: Osnat - use tracker_confidence or mapper_confidence ? - tm2.draw_trajectory(p); - tm2.draw_boundary(p); - } + /////////////////// Repeat Button ///////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + if (_playback_repeat) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); } - - glColor4f(1.f, 1.f, 1.f, 1.f); - - if (draw_frustrum && last_points) + else { - glLineWidth(1.f); - glBegin(GL_LINES); - - auto intrin = last_points.get_profile().as().get_intrinsics(); - - glColor4f(sensor_bg.x, sensor_bg.y, sensor_bg.z, 0.5f); - - for (float d = 1; d < 6; d += 2) - { - auto get_point = [&](float x, float y) -> float3 - { - float point[3]; - float pixel[2]{ x, y }; - rs2_deproject_pixel_to_point(point, &intrin, pixel, d); - glVertex3f(0.f, 0.f, 0.f); - glVertex3fv(point); - return{ point[0], point[1], point[2] }; - }; - - auto top_left = get_point(0, 0); - auto top_right = get_point(static_cast(intrin.width), 0); - auto bottom_right = get_point(static_cast(intrin.width), static_cast(intrin.height)); - auto bottom_left = get_point(0, static_cast(intrin.height)); - - glVertex3fv(&top_left.x); glVertex3fv(&top_right.x); - glVertex3fv(&top_right.x); glVertex3fv(&bottom_right.x); - glVertex3fv(&bottom_right.x); glVertex3fv(&bottom_left.x); - glVertex3fv(&bottom_left.x); glVertex3fv(&top_left.x); - } - - glEnd(); - - glColor4f(1.f, 1.f, 1.f, 1.f); + ImGui::PushStyleColor(ImGuiCol_Text, white); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); } - - if (last_points && last_texture) + label = to_string() << textual_icons::repeat << "##Repeat " << id; + if (ImGui::ButtonEx(label.c_str(), button_dim)) + { + _playback_repeat = !_playback_repeat; + } + if (ImGui::IsItemHovered()) { - auto vf_profile = last_points.get_profile().as(); - // Non-linear correspondence customized for non-flat surface exploration - glPointSize(std::sqrt(viewer_rect.w / vf_profile.width())); + std::string tooltip = to_string() << (_playback_repeat ? "Disable " : "Enable ") << "Repeat "; + ImGui::SetTooltip("%s", tooltip.c_str()); + } + ImGui::PopStyleColor(2); + ImGui::SameLine(); + /////////////////// Repeat Button ///////////////////// - auto tex = last_texture->get_gl_handle(); - glBindTexture(GL_TEXTURE_2D, tex); - glEnable(GL_TEXTURE_2D); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, texture_border_mode); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, texture_border_mode); + //////////////////// Speed combo box //////////////////// + auto pos = ImGui::GetCursorPos(); + const float speed_combo_box_v_alignment = 3.f; + ImGui::SetCursorPos({ pos.x + space_width, pos.y + speed_combo_box_v_alignment }); + ImGui::PushItemWidth(combo_box_width); - //glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, tex_border_color); + ImGui::PushStyleColor(ImGuiCol_FrameBg, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); - auto vertices = last_points.get_vertices(); - auto tex_coords = last_points.get_texture_coordinates(); - if (!render_quads) - { - glBegin(GL_POINTS); - for (int i = 0; i < last_points.size(); i++) - { - if (vertices[i].z) - { - glVertex3fv(vertices[i]); - glTexCoord2fv(tex_coords[i + 1]); - } - } - glEnd(); - } - else + label = to_string() << "## " << id; + if (ImGui::Combo(label.c_str(), &playback_speed_index, "Speed: x0.25\0Speed: x0.5\0Speed: x1\0Speed: x1.5\0Speed: x2\0\0", -1, false)) + { + float speed = 1; + switch (playback_speed_index) { - // Visualization with quads produces better results but requires further optimization - glBegin(GL_QUADS); - - const auto threshold = 0.05f; - auto width = vf_profile.width(), height = vf_profile.height(); - for (int x = 0; x < width - 1; ++x) { - for (int y = 0; y < height - 1; ++y) { - auto a = y * width + x, b = y * width + x + 1, c = (y + 1)*width + x, d = (y + 1)*width + x + 1; - if (vertices[a].z && vertices[b].z && vertices[c].z && vertices[d].z - && abs(vertices[a].z - vertices[b].z) < threshold && abs(vertices[a].z - vertices[c].z) < threshold - && abs(vertices[b].z - vertices[d].z) < threshold && abs(vertices[c].z - vertices[d].z) < threshold) { - glVertex3fv(vertices[a]); glTexCoord2fv(tex_coords[a]); - glVertex3fv(vertices[b]); glTexCoord2fv(tex_coords[b]); - glVertex3fv(vertices[d]); glTexCoord2fv(tex_coords[d]); - glVertex3fv(vertices[c]); glTexCoord2fv(tex_coords[c]); - } - } - } - glEnd(); + case 0: speed = 0.25f; break; + case 1: speed = 0.5f; break; + case 2: speed = 1.0f; break; + case 3: speed = 1.5f; break; + case 4: speed = 2.0f; break; + default: + throw std::runtime_error(to_string() << "Speed #" << playback_speed_index << " is unhandled"); } + p.set_playback_speed(speed); } - - glDisable(GL_DEPTH_TEST); - - glPopMatrix(); - glMatrixMode(GL_PROJECTION); - glPopMatrix(); - glPopAttrib(); - - - if (ImGui::IsKeyPressed('R') || ImGui::IsKeyPressed('r')) + if (ImGui::IsItemHovered()) { - reset_camera(); + ImGui::SetTooltip("Change playback speed rate"); } - } - - void viewer_model::show_top_bar(ux_window& window, const rect& viewer_rect) - { - auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | - ImGuiWindowFlags_NoSavedSettings; - - ImGui::SetNextWindowPos({ panel_width, 0 }); - ImGui::SetNextWindowSize({ window.width() - panel_width, panel_y }); - - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); - ImGui::PushStyleColor(ImGuiCol_WindowBg, button_color); - ImGui::Begin("Toolbar Panel", nullptr, flags); - - ImGui::PushFont(window.get_large_font()); - ImGui::PushStyleColor(ImGuiCol_Border, black); - - ImGui::SetCursorPosX(window.width() - panel_width - panel_y * 2); - ImGui::PushStyleColor(ImGuiCol_Text, is_3d_view ? light_grey : light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, is_3d_view ? light_grey : light_blue); - if (ImGui::Button("2D", { panel_y, panel_y })) is_3d_view = false; ImGui::PopStyleColor(2); ImGui::SameLine(); + //Restore Y movement + pos = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ pos.x, pos.y - speed_combo_box_v_alignment }); + //////////////////// Speed combo box //////////////////// - ImGui::SetCursorPosX(window.width() - panel_width - panel_y * 1); - auto pos1 = ImGui::GetCursorScreenPos(); - - ImGui::PushStyleColor(ImGuiCol_Text, !is_3d_view ? light_grey : light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, !is_3d_view ? light_grey : light_blue); - if (ImGui::Button("3D", { panel_y,panel_y })) - { - is_3d_view = true; - update_3d_camera(viewer_rect, window.get_mouse(), true); - } - ImGui::PopStyleColor(3); - - ImGui::GetWindowDrawList()->AddLine({ pos1.x, pos1.y + 10 }, { pos1.x,pos1.y + panel_y - 10 }, ImColor(light_grey)); - - - ImGui::SameLine(); - ImGui::SetCursorPosX(window.width() - panel_width - panel_y); - - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderHovered, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + //////////////////// Info Icon //////////////////// + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); + draw_info_icon(window, font, button_dim); + //////////////////// Info Icon //////////////////// - //if (ImGui::Button(u8"\uf013textual_icons::caret_down", { panel_y,panel_y })) - // ImGui::OpenPopup("global_menu"); - - //ImGui::PushFont(font_14); - //if (ImGui::BeginPopup("global_menu")) - //{ - // ImGui::PushStyleColor(ImGuiCol_Text, dark_grey); - // if (ImGui::Selectable("About RealSense Viewer")) - // { - // } - - // ImGui::PopStyleColor(); - // ImGui::EndPopup(); - //} - //ImGui::PopFont(); - ImGui::PopStyleVar(); - ImGui::PopStyleColor(4); ImGui::PopFont(); - ImGui::End(); - ImGui::PopStyleColor(); - ImGui::PopStyleVar(); + return playback_control_height; } - void viewer_model::update_3d_camera(const rect& viewer_rect, - mouse_info& mouse, bool force) + std::string device_model::pretty_time(std::chrono::nanoseconds duration) { - auto now = std::chrono::high_resolution_clock::now(); - static auto view_clock = std::chrono::high_resolution_clock::now(); - auto sec_since_update = std::chrono::duration(now - view_clock).count() / 1000; - view_clock = now; + using namespace std::chrono; + auto hhh = duration_cast(duration); + duration -= hhh; + auto mm = duration_cast(duration); + duration -= mm; + auto ss = duration_cast(duration); + duration -= ss; + auto ms = duration_cast(duration); - if (fixed_up) - up = { 0.f, -1.f, 0.f }; + std::ostringstream stream; + stream << std::setfill('0') << std::setw(hhh.count() >= 10 ? 2 : 1) << hhh.count() << ':' << + std::setfill('0') << std::setw(2) << mm.count() << ':' << + std::setfill('0') << std::setw(2) << ss.count();// << '.' << + //std::setfill('0') << std::setw(3) << ms.count(); + return stream.str(); + } - auto dir = target - pos; - auto x_axis = cross(dir, up); - auto step = sec_since_update * 0.3f; + int device_model::draw_seek_bar() + { + auto pos = ImGui::GetCursorPos(); - if (ImGui::IsKeyPressed('w') || ImGui::IsKeyPressed('W')) - { - pos = pos + dir * step; - target = target + dir * step; - } - if (ImGui::IsKeyPressed('s') || ImGui::IsKeyPressed('S')) - { - pos = pos - dir * step; - target = target - dir * step; - } - if (ImGui::IsKeyPressed('d') || ImGui::IsKeyPressed('D')) + auto p = dev.as(); + rs2_playback_status current_playback_status = p.current_status(); + int64_t playback_total_duration = p.get_duration().count(); + auto progress = p.get_position(); + double part = (1.0 * progress) / playback_total_duration; + seek_pos = static_cast(std::max(0.0, std::min(part, 1.0)) * 100); + auto playback_status = p.current_status(); + if (seek_pos != 0 && playback_status == RS2_PLAYBACK_STATUS_STOPPED) { - pos = pos + x_axis * step; - target = target + x_axis * step; + seek_pos = 0; } - if (ImGui::IsKeyPressed('a') || ImGui::IsKeyPressed('A')) + float seek_bar_width = 300.f; + ImGui::PushItemWidth(seek_bar_width); + std::string label1 = "## " + id; + if (ImGui::SeekSlider(label1.c_str(), &seek_pos, "")) { - pos = pos - x_axis * step; - target = target - x_axis * step; + //Seek was dragged + if (playback_status != RS2_PLAYBACK_STATUS_STOPPED) //Ignore seek when playback is stopped + { + auto duration_db = std::chrono::duration_cast>(p.get_duration()); + auto single_percent = duration_db.count() / 100; + auto seek_time = std::chrono::duration(seek_pos * single_percent); + p.seek(std::chrono::duration_cast(seek_time)); + } } - if (viewer_rect.contains(mouse.cursor) || force) - { - arcball_camera_update( - (float*)&pos, (float*)&target, (float*)&up, view, - sec_since_update, - 0.2f, // zoom per tick - -0.1f, // pan speed - 3.0f, // rotation multiplier - static_cast(viewer_rect.w), static_cast(viewer_rect.h), // screen (window) size - static_cast(mouse.prev_cursor.x), static_cast(mouse.cursor.x), - static_cast(mouse.prev_cursor.y), static_cast(mouse.cursor.y), - (ImGui::GetIO().MouseDown[2] || ImGui::GetIO().MouseDown[1]) ? 1 : 0, - ImGui::GetIO().MouseDown[0] ? 1 : 0, - mouse.mouse_wheel, - 0); - } + ImGui::SetCursorPos({ pos.x, pos.y + 17 }); - mouse.prev_cursor = mouse.cursor; - } + std::string time_elapsed = pretty_time(std::chrono::nanoseconds(progress)); + std::string duration_str = pretty_time(std::chrono::nanoseconds(playback_total_duration)); + ImGui::Text("%s", time_elapsed.c_str()); + ImGui::SameLine(); + float pos_y = ImGui::GetCursorPosY(); - void viewer_model::begin_stream(std::shared_ptr d, rs2::stream_profile p) - { - // Starting post processing filter rendering thread - ppf.start(); - streams[p.unique_id()].begin_stream(d, p); - ppf.frames_queue.emplace(p.unique_id(), rs2::frame_queue(5)); + ImGui::SetCursorPos({ pos.x + seek_bar_width - 45 , pos_y }); + ImGui::Text("%s", duration_str.c_str()); + + return 50; } - bool viewer_model::is_3d_texture_source(frame f) + int device_model::draw_playback_panel(ux_window& window, ImFont* font, viewer_model& view) { - auto index = f.get_profile().unique_id(); - auto mapped_index = streams_origin[index]; + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered, from_rgba(0, 0xae, 0xff, 255)); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - if (index == selected_tex_source_uid || mapped_index == selected_tex_source_uid || selected_tex_source_uid == -1) - return true; - return false; - } - bool viewer_model::is_3d_depth_source(frame f) - { - auto index = f.get_profile().unique_id(); - auto mapped_index = streams_origin[index]; + auto pos = ImGui::GetCursorPos(); + auto controls_height = draw_playback_controls(window, font, view); + float seek_bar_left_alignment = 4.f; + ImGui::SetCursorPos({ pos.x + seek_bar_left_alignment, pos.y + controls_height }); + ImGui::PushFont(font); + auto seek_bar_height = draw_seek_bar(); + ImGui::PopFont(); + ImGui::PopStyleColor(5); + return controls_height + seek_bar_height; - if(index == selected_depth_source_uid || mapped_index == selected_depth_source_uid - ||(selected_depth_source_uid == -1 && f.get_profile().stream_type() == RS2_STREAM_DEPTH)) - return true; - return false; } - texture_buffer* viewer_model::upload_frame(frame&& f) + std::vector get_device_info(const device& dev, bool include_location) { - if (f.get_profile().stream_type() == RS2_STREAM_DEPTH) - ppf.depth_stream_active = true; + std::vector res; + for (auto i = 0; i < RS2_CAMERA_INFO_COUNT; i++) + { + auto info = static_cast(i); - auto index = f.get_profile().unique_id(); + // When camera is being reset, either because of "hardware reset" + // or because of switch into advanced mode, + // we don't want to capture the info that is about to change + if ((info == RS2_CAMERA_INFO_PHYSICAL_PORT || + info == RS2_CAMERA_INFO_ADVANCED_MODE) + && !include_location) continue; - std::lock_guard lock(streams_mutex); - return streams[streams_origin[index]].upload_frame(std::move(f)); + if (dev.supports(info)) + { + auto value = dev.get_info(info); + res.push_back(value); + } + } + return res; } - void device_model::start_recording(const std::string& path, std::string& error_message) + std::vector> get_devices_names(const device_list& list) { - if (_recorder != nullptr) - { - return; //already recording - } + std::vector> device_names; - try + for (uint32_t i = 0; i < list.size(); i++) { - _recorder = std::make_shared(path, dev); - for (auto&& sub_dev_model : subdevices) + try { - sub_dev_model->_is_being_recorded = true; + auto dev = list[i]; + device_names.push_back(get_device_name(dev)); // push name and sn to list + } + catch (...) + { + device_names.push_back(std::pair(to_string() << "Unknown Device #" << i, "")); } - is_recording = true; - } - catch (const rs2::error& e) - { - error_message = error_to_string(e); - } - catch (const std::exception& e) - { - error_message = e.what(); } + return device_names; } - void device_model::stop_recording(viewer_model& viewer) + bool yes_no_dialog(const std::string& title, const std::string& message_text, bool& approved, ux_window& window) { - auto saved_to_filename = _recorder->filename(); - _recorder.reset(); - for (auto&& sub_dev_model : subdevices) + ImGui_ScopePushFont(window.get_font()); + ImGui_ScopePushStyleColor(ImGuiCol_Button, button_color); + ImGui_ScopePushStyleColor(ImGuiCol_ButtonHovered, sensor_header_light_blue); //TODO: Change color? + ImGui_ScopePushStyleColor(ImGuiCol_ButtonActive, regular_blue); //TODO: Change color? + ImGui_ScopePushStyleColor(ImGuiCol_Text, light_grey); + ImGui_ScopePushStyleColor(ImGuiCol_TextSelectedBg, light_grey); + ImGui_ScopePushStyleColor(ImGuiCol_TitleBg, header_color); + ImGui_ScopePushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui_ScopePushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + auto clicked = false; + ImGui::OpenPopup(title.c_str()); + if (ImGui::BeginPopupModal(title.c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) { - sub_dev_model->_is_being_recorded = false; + ImGui::Text("\n%s\n\n", message_text.c_str()); + auto width = ImGui::GetWindowWidth(); + ImGui::Dummy(ImVec2(0, 0)); + ImGui::Dummy(ImVec2(width / 4.f, 0)); + ImGui::SameLine(); + if (ImGui::Button("Yes", ImVec2(60, 30))) + { + ImGui::CloseCurrentPopup(); + approved = true; + clicked = true; + } + ImGui::SameLine(); + if (ImGui::Button("No", ImVec2(60, 30))) + { + ImGui::CloseCurrentPopup(); + approved = false; + clicked = true; + } + ImGui::NewLine(); + ImGui::EndPopup(); } - is_recording = false; - notification_data nd{ to_string() << "Saved recording to: " << saved_to_filename, - (double)std::chrono::high_resolution_clock::now().time_since_epoch().count(), - RS2_LOG_SEVERITY_INFO, - RS2_NOTIFICATION_CATEGORY_COUNT }; - viewer.not_model.add_notification(nd); + return clicked; } - - void device_model::pause_record() + bool device_model::prompt_toggle_advanced_mode(bool enable_advanced_mode, const std::string& message_text, std::vector& restarting_device_info, viewer_model& view, ux_window& window) { - _recorder->pause(); + bool keep_showing = true; + bool yes_was_chosen = false; + if (yes_no_dialog("Advanced Mode", message_text, yes_was_chosen, window)) + { + if (yes_was_chosen) + { + dev.as().toggle_advanced_mode(enable_advanced_mode); + restarting_device_info = get_device_info(dev, false); + view.not_model.add_log(enable_advanced_mode ? "Turning on advanced mode..." : "Turning off advanced mode..."); + } + keep_showing = false; + } + return keep_showing; } - void device_model::resume_record() + bool device_model::draw_advanced_controls(viewer_model& view, ux_window& window, std::string& error_message) { - _recorder->resume(); - } + bool was_set = false; - int device_model::draw_playback_controls(ImFont* font, viewer_model& viewer) - { - auto p = dev.as(); - rs2_playback_status current_playback_status = p.current_status(); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, { 0.9f, 0.9f, 0.9f, 1 }); - const int playback_control_height = 35; - const float combo_box_width = 90.f; - const float icon_width = 28; - const float line_width = 255; //Ideally should use: ImGui::GetContentRegionMax().x - //Line looks like this ("-" == space, "[]" == icon, "[ ]" == combo_box): |-[]-[]-[]-[]-[]-[ ]-[]-| - const int num_icons_in_line = 6; - const int num_combo_boxes_in_line = 1; - const int num_spaces_in_line = num_icons_in_line + num_combo_boxes_in_line + 1; - const float required_row_width = (num_combo_boxes_in_line * combo_box_width) + (num_icons_in_line * icon_width); - float space_width = std::max(line_width - required_row_width, 0.f) / num_spaces_in_line; - ImVec2 button_dim = { icon_width, icon_width }; - - const bool supports_playback_step = false; - - ImGui::PushFont(font); - - //////////////////// Step Backwards Button //////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - - std::string label = to_string() << textual_icons::step_backward << "##Step Backwards " << id; - - if (ImGui::ButtonEx(label.c_str(), button_dim, supports_playback_step ? 0 : ImGuiButtonFlags_Disabled)) + auto is_advanced_mode = dev.is(); + if (is_advanced_mode && ImGui::TreeNode("Advanced Controls")) { - //p.skip_frames(1); - } - + try + { + auto advanced = dev.as(); + if (advanced.is_enabled()) + { + draw_advanced_mode_controls(advanced, amc, get_curr_advanced_controls, was_set, error_message); + } + else + { + ImGui::TextColored(redish, "Device is not in advanced mode"); + std::string button_text = to_string() << "Turn on Advanced Mode" << "##" << id; + static bool show_yes_no_modal = false; + if (ImGui::Button(button_text.c_str(), ImVec2{ 226, 0 })) + { + show_yes_no_modal = true; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Advanced mode is a persistent camera state unlocking calibration formats and depth generation controls\nYou can always reset the camera to factory defaults by disabling advanced mode"); + } + if (show_yes_no_modal) + { + show_yes_no_modal = prompt_toggle_advanced_mode(true, "\t\tAre you sure you want to turn on Advanced Mode?\t\t", restarting_device_info, view, window); + } + } + } + catch (const std::exception& ex) + { + error_message = ex.what(); + } - if (ImGui::IsItemHovered()) - { - std::string tooltip = to_string() << "Step Backwards" << (supports_playback_step ? "" : "(Not available)"); - ImGui::SetTooltip("%s", tooltip.c_str()); + ImGui::TreePop(); } - ImGui::SameLine(); - //////////////////// Step Backwards Button //////////////////// + ImGui::PopStyleColor(); + return was_set; + } - //////////////////// Stop Button //////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - label = to_string() << textual_icons::stop << "##Stop Playback " << id; - - if (ImGui::ButtonEx(label.c_str(), button_dim)) + void device_model::draw_info_icon(ux_window& window, ImFont* font, const ImVec2& size) + { + std::string info_button_name = to_string() << textual_icons::info_circle << "##" << id; + auto info_button_color = show_device_info ? light_blue : light_grey; + ImGui::PushStyleColor(ImGuiCol_Text, info_button_color); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, info_button_color); + if (ImGui::Button(info_button_name.c_str(), size)) { - bool prev = _playback_repeat; - _playback_repeat = false; - p.stop(); - _playback_repeat = prev; + show_device_info = !show_device_info; } if (ImGui::IsItemHovered()) { - std::string tooltip = to_string() << "Stop Playback"; - ImGui::SetTooltip("%s", tooltip.c_str()); + ImGui::SetTooltip("%s", show_device_info ? "Hide Device Details" : "Show Device Details"); + window.link_hovered(); } - ImGui::SameLine(); - //////////////////// Stop Button //////////////////// - - + ImGui::PopStyleColor(2); + } - //////////////////// Pause/Play Button //////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - if (current_playback_status == RS2_PLAYBACK_STATUS_PAUSED || current_playback_status == RS2_PLAYBACK_STATUS_STOPPED) + void device_model::begin_update_unsigned(viewer_model& viewer, std::string& error_message) + { + try { - label = to_string() << textual_icons::play << "##Play " << id; - if (ImGui::ButtonEx(label.c_str(), button_dim)) + std::vector data; + auto ret = file_dialog_open(open_file, "Unsigned Firmware Image\0*.bin\0", NULL, NULL); + if (ret) { - if (current_playback_status == RS2_PLAYBACK_STATUS_STOPPED) + std::ifstream file(ret, std::ios::binary | std::ios::in); + if (file.good()) { - play_defaults(viewer); + data = std::vector((std::istreambuf_iterator(file)), + std::istreambuf_iterator()); } else { - p.resume(); - for (auto&& s : subdevices) - { - if (s->streaming) - s->resume(); - } - } - - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip(current_playback_status == RS2_PLAYBACK_STATUS_PAUSED ? "Resume Playback" : "Start Playback"); - } - } - else - { - label = to_string() << textual_icons::pause << "##Pause Playback " << id; - if (ImGui::ButtonEx(label.c_str(), button_dim)) - { - p.pause(); - for (auto&& s : subdevices) - { - if (s->streaming) - s->pause(); + error_message = to_string() << "Could not open file '" << ret << "'"; + return; } } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Pause Playback"); - } - } - ImGui::SameLine(); - //////////////////// Pause/Play Button //////////////////// + else return; // Aborted by the user + auto manager = std::make_shared(*this, dev, viewer.ctx, data, false); + auto n = std::make_shared( + "Manual Update requested", manager, true); + n->forced = true; + viewer.not_model.add_notification(n); + for (auto&& n : related_notifications) + if (dynamic_cast(n.get())) + n->dismiss(false); - //////////////////// Step Forward Button //////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - label = to_string() << textual_icons::step_forward << "##Step Forward " << id; - if (ImGui::ButtonEx(label.c_str(), button_dim, supports_playback_step ? 0 : ImGuiButtonFlags_Disabled)) + manager->start(n); + } + catch (const error& e) { - //p.skip_frames(-1); + error_message = error_to_string(e); } - if (ImGui::IsItemHovered()) + catch (const std::exception& e) { - std::string tooltip = to_string() << "Step Forward" << (supports_playback_step ? "" : "(Not available)"); - ImGui::SetTooltip("%s", tooltip.c_str()); + error_message = e.what(); } - ImGui::SameLine(); - //////////////////// Step Forward Button //////////////////// + } + void device_model::begin_update(std::vector data, viewer_model& viewer, std::string& error_message) + { + try + { + if (data.size() == 0) + { + auto ret = file_dialog_open(open_file, "Signed Firmware Image\0*.bin\0", NULL, NULL); + if (ret) + { + std::ifstream file(ret, std::ios::binary | std::ios::in); + if (file.good()) + { + data = std::vector((std::istreambuf_iterator(file)), + std::istreambuf_iterator()); + } + else + { + error_message = to_string() << "Could not open file '" << ret << "'"; + return; + } + } + else return; // Aborted by the user + } + + auto manager = std::make_shared(*this, dev, viewer.ctx, data, true); + auto n = std::make_shared( + "Manual Update requested", manager, true); + viewer.not_model.add_notification(n); + n->forced = true; + for (auto&& n : related_notifications) + n->dismiss(false); - /////////////////// Repeat Button ///////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - if (_playback_repeat) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - } - else - { - ImGui::PushStyleColor(ImGuiCol_Text, white); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + manager->start(n); } - label = to_string() << textual_icons::repeat << "##Repeat " << id; - if (ImGui::ButtonEx(label.c_str(), button_dim)) + catch (const error& e) { - _playback_repeat = !_playback_repeat; + error_message = error_to_string(e); } - if (ImGui::IsItemHovered()) + catch (const std::exception& e) { - std::string tooltip = to_string() << (_playback_repeat ? "Disable " : "Enable ") << "Repeat "; - ImGui::SetTooltip("%s", tooltip.c_str()); + error_message = e.what(); } - ImGui::PopStyleColor(2); - ImGui::SameLine(); - /////////////////// Repeat Button ///////////////////// + } - //////////////////// Speed combo box //////////////////// - auto pos = ImGui::GetCursorPos(); - const float speed_combo_box_v_alignment = 3.f; - ImGui::SetCursorPos({ pos.x + space_width, pos.y + speed_combo_box_v_alignment }); - ImGui::PushItemWidth(combo_box_width); + bool subdevice_model::supports_on_chip_calib() + { + bool is_d400 = s->supports(RS2_CAMERA_INFO_PRODUCT_LINE) ? + std::string(s->get_info(RS2_CAMERA_INFO_PRODUCT_LINE)) == "D400" : false; - ImGui::PushStyleColor(ImGuiCol_FrameBg, sensor_bg); + std::string fw_version = s->supports(RS2_CAMERA_INFO_FIRMWARE_VERSION) ? + s->get_info(RS2_CAMERA_INFO_FIRMWARE_VERSION) : ""; + + bool supported_fw = s->supports(RS2_CAMERA_INFO_FIRMWARE_VERSION) ? + is_upgradeable("05.11.12.0", fw_version) : false; + + return s->is() && is_d400 && supported_fw; + // TODO: Once auto-calib makes it into the API, switch to querying camera info + } + + float device_model::draw_device_panel(float panel_width, + ux_window& window, + std::string& error_message, + viewer_model& viewer) + { + /* + ============================= + [o] [@] [i] [=] + Record Sync Info More + ============================= + */ + + const bool is_playback_device = dev.is(); + const float device_panel_height = 60.0f; + auto panel_pos = ImGui::GetCursorPos(); + + ImGui::PushFont(window.get_large_font()); + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_grey); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); - label = to_string() << "## " << id; - if (ImGui::Combo(label.c_str(), &playback_speed_index, "Speed: x0.25\0Speed: x0.5\0Speed: x1\0Speed: x1.5\0Speed: x2\0\0", -1, false)) + //////////////////////////////////////// + // Draw recording icon + //////////////////////////////////////// + bool is_streaming = std::any_of(subdevices.begin(), subdevices.end(), [](const std::shared_ptr& sm) { - float speed = 1; - switch (playback_speed_index) + return sm->streaming; + }); + textual_icon button_icon = is_recording ? textual_icons::stop : textual_icons::circle; + const float icons_width = 78.0f; + const ImVec2 device_panel_icons_size{ icons_width, 25 }; + std::string recorod_button_name = to_string() << button_icon << "##" << id; + auto record_button_color = is_recording ? light_blue : light_grey; + ImGui::PushStyleColor(ImGuiCol_Text, record_button_color); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, record_button_color); + if (ImGui::ButtonEx(recorod_button_name.c_str(), device_panel_icons_size, (!is_streaming || is_playback_device) ? ImGuiButtonFlags_Disabled : 0)) + { + if (is_recording) //is_recording is changed inside stop/start_recording { - case 0: speed = 0.25f; break; - case 1: speed = 0.5f; break; - case 2: speed = 1.0f; break; - case 3: speed = 1.5f; break; - case 4: speed = 2.0f; break; - default: - throw std::runtime_error(to_string() << "Speed #" << playback_speed_index << " is unhandled"); + stop_recording(viewer); + } + else + { + int recording_setting = config_file::instance().get(configurations::record::file_save_mode); + std::string path = ""; + std::string default_path = config_file::instance().get(configurations::record::default_path); + if (!ends_with(default_path, "/") && !ends_with(default_path, "\\")) default_path += "/"; + std::string default_filename = rs2::get_timestamped_file_name() + ".bag"; + if (recording_setting == 0) + { + path = default_path + default_filename; + } + else + { + if (const char* ret = file_dialog_open(file_dialog_mode::save_file, "ROS-bag\0*.bag\0", + default_path.c_str(), default_filename.c_str())) + { + path = ret; + if (!ends_with(to_lower(path), ".bag")) path += ".bag"; + } + } + + if (path != "") start_recording(path, error_message); } - p.set_playback_speed(speed); } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("Change playback speed rate"); + std::string record_button_hover_text = (!is_streaming ? "Start streaming to enable recording" : (is_recording ? "Stop Recording" : "Start Recording")); + ImGui::SetTooltip("%s", record_button_hover_text.c_str()); + if (is_streaming) window.link_hovered(); } - ImGui::PopStyleColor(2); - ImGui::SameLine(); - //Restore Y movement - pos = ImGui::GetCursorPos(); - ImGui::SetCursorPos({ pos.x, pos.y - speed_combo_box_v_alignment }); - //////////////////// Speed combo box //////////////////// - - //////////////////// Info Icon //////////////////// - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + space_width); - draw_info_icon(button_dim); - //////////////////// Info Icon //////////////////// - - ImGui::PopFont(); - - return playback_control_height; - } - - std::string device_model::pretty_time(std::chrono::nanoseconds duration) - { - using namespace std::chrono; - auto hhh = duration_cast(duration); - duration -= hhh; - auto mm = duration_cast(duration); - duration -= mm; - auto ss = duration_cast(duration); - duration -= ss; - auto ms = duration_cast(duration); - - std::ostringstream stream; - stream << std::setfill('0') << std::setw(hhh.count() >= 10 ? 2 : 1) << hhh.count() << ':' << - std::setfill('0') << std::setw(2) << mm.count() << ':' << - std::setfill('0') << std::setw(2) << ss.count();// << '.' << - //std::setfill('0') << std::setw(3) << ms.count(); - return stream.str(); - } - - int device_model::draw_seek_bar() - { - auto pos = ImGui::GetCursorPos(); - - auto p = dev.as(); - rs2_playback_status current_playback_status = p.current_status(); - int64_t playback_total_duration = p.get_duration().count(); - auto progress = p.get_position(); - double part = (1.0 * progress) / playback_total_duration; - seek_pos = static_cast(std::max(0.0, std::min(part, 1.0)) * 100); - auto playback_status = p.current_status(); - if (seek_pos != 0 && playback_status == RS2_PLAYBACK_STATUS_STOPPED) - { - seek_pos = 0; - } - float seek_bar_width = 300.f; - ImGui::PushItemWidth(seek_bar_width); - std::string label1 = "## " + id; - if (ImGui::SeekSlider(label1.c_str(), &seek_pos, "")) - { - //Seek was dragged - if (playback_status != RS2_PLAYBACK_STATUS_STOPPED) //Ignore seek when playback is stopped - { - auto duration_db = std::chrono::duration_cast>(p.get_duration()); - auto single_percent = duration_db.count() / 100; - auto seek_time = std::chrono::duration(seek_pos * single_percent); - p.seek(std::chrono::duration_cast(seek_time)); - } - } - - ImGui::SetCursorPos({ pos.x, pos.y + 17 }); - - std::string time_elapsed = pretty_time(std::chrono::nanoseconds(progress)); - std::string duration_str = pretty_time(std::chrono::nanoseconds(playback_total_duration)); - ImGui::Text("%s", time_elapsed.c_str()); - ImGui::SameLine(); - float pos_y = ImGui::GetCursorPosY(); - - ImGui::SetCursorPos({ pos.x + seek_bar_width - 45 , pos_y }); - ImGui::Text("%s", duration_str.c_str()); - - return 50; - } - - int device_model::draw_playback_panel(ImFont* font, viewer_model& view) - { - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderHovered, from_rgba(0, 0xae, 0xff, 255)); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - - - auto pos = ImGui::GetCursorPos(); - auto controls_height = draw_playback_controls(font, view); - float seek_bar_left_alignment = 4.f; - ImGui::SetCursorPos({ pos.x + seek_bar_left_alignment, pos.y + controls_height }); - ImGui::PushFont(font); - auto seek_bar_height = draw_seek_bar(); - ImGui::PopFont(); - ImGui::PopStyleColor(5); - return controls_height + seek_bar_height; - - } - - void device_model::draw_controllers_panel(ImFont* font, bool is_device_streaming) - { - if (!is_device_streaming) - { - controllers.clear(); - available_controllers.clear(); - return; - } - - if (controllers.size() > 0 || available_controllers.size() > 0) - { - int flags = dev.is() ? ImGuiButtonFlags_Disabled : 0; - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderHovered, from_rgba(0, 0xae, 0xff, 255)); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushFont(font); - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, { 10,0 }); - const float button_dim = 30.f; - for (auto&& c : available_controllers) - { - ImGui::PushStyleColor(ImGuiCol_Text, white); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - std::string action = "Attach controller"; - std::string mac = to_string() << (int)c[0] << ":" << (int)c[1] << ":" << (int)c[2] << ":" << (int)c[3] << ":" << (int)c[4] << ":" << (int)c[5]; - std::string label = to_string() << u8"\uf11b" << "##" << action << mac; - if (ImGui::ButtonEx(label.c_str(), { button_dim , button_dim }, flags)) - { - dev.as().connect_controller(c); - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("%s", action.c_str()); - } - ImGui::SameLine(); - ImGui::Text("%s", mac.c_str()); - ImGui::PopStyleColor(2); - } - for (auto&& c : controllers) - { - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); - std::string action = "Detach controller"; - std::string label = to_string() << u8"\uf11b" << "##" << action << c.first; - if (ImGui::ButtonEx(label.c_str(), { button_dim , button_dim }, flags)) - { - dev.as().disconnect_controller(c.first); - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("%s", action.c_str()); - } - ImGui::SameLine(); - ImGui::Text("Controller #%d (connected)", c.first); - ImGui::PopStyleColor(2); - } - ImGui::PopStyleVar(); - ImGui::PopFont(); - ImGui::PopStyleColor(5); - } - } - - std::vector get_device_info(const device& dev, bool include_location) - { - std::vector res; - for (auto i = 0; i < RS2_CAMERA_INFO_COUNT; i++) - { - auto info = static_cast(i); - - // When camera is being reset, either because of "hardware reset" - // or because of switch into advanced mode, - // we don't want to capture the info that is about to change - if ((info == RS2_CAMERA_INFO_PHYSICAL_PORT || - info == RS2_CAMERA_INFO_ADVANCED_MODE) - && !include_location) continue; - - if (dev.supports(info)) - { - auto value = dev.get_info(info); - res.push_back(value); - } - } - return res; - } - - std::vector> get_devices_names(const device_list& list) - { - std::vector> device_names; - - for (uint32_t i = 0; i < list.size(); i++) - { - try - { - auto dev = list[i]; - device_names.push_back(get_device_name(dev)); // push name and sn to list - } - catch (...) - { - device_names.push_back(std::pair(to_string() << "Unknown Device #" << i, "")); - } - } - return device_names; - } - - bool yes_no_dialog(const std::string& title, const std::string& message_text, bool& approved, ux_window& window) - { - ImGui_ScopePushFont(window.get_font()); - ImGui_ScopePushStyleColor(ImGuiCol_Button, button_color); - ImGui_ScopePushStyleColor(ImGuiCol_ButtonHovered, sensor_header_light_blue); //TODO: Change color? - ImGui_ScopePushStyleColor(ImGuiCol_ButtonActive, regular_blue); //TODO: Change color? - ImGui_ScopePushStyleColor(ImGuiCol_Text, light_grey); - ImGui_ScopePushStyleColor(ImGuiCol_TextSelectedBg, light_grey); - ImGui_ScopePushStyleColor(ImGuiCol_TitleBg, header_color); - ImGui_ScopePushStyleColor(ImGuiCol_PopupBg, sensor_bg); - ImGui_ScopePushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); - auto clicked = false; - ImGui::OpenPopup(title.c_str()); - if (ImGui::BeginPopupModal(title.c_str(), NULL, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::Text("\n%s\n\n", message_text.c_str()); - auto width = ImGui::GetWindowWidth(); - ImGui::Dummy(ImVec2(0, 0)); - ImGui::Dummy(ImVec2(width / 4.f, 0)); - ImGui::SameLine(); - if (ImGui::Button("Yes", ImVec2(60, 30))) - { - ImGui::CloseCurrentPopup(); - approved = true; - clicked = true; - } - ImGui::SameLine(); - if (ImGui::Button("No", ImVec2(60, 30))) - { - ImGui::CloseCurrentPopup(); - approved = false; - clicked = true; - } - ImGui::NewLine(); - ImGui::EndPopup(); - } - return clicked; - } - bool device_model::prompt_toggle_advanced_mode(bool enable_advanced_mode, const std::string& message_text, std::vector& restarting_device_info, viewer_model& view, ux_window& window) - { - bool keep_showing = true; - bool yes_was_chosen = false; - if (yes_no_dialog("Advanced Mode", message_text, yes_was_chosen, window)) - { - if (yes_was_chosen) - { - dev.as().toggle_advanced_mode(enable_advanced_mode); - restarting_device_info = get_device_info(dev, false); - view.not_model.add_log(enable_advanced_mode ? "Turning on advanced mode..." : "Turning off advanced mode..."); - } - keep_showing = false; - } - return keep_showing; - } - - bool device_model::draw_advanced_controls(viewer_model& view, ux_window& window, std::string& error_message) - { - bool was_set = false; - - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, { 0.9f, 0.9f, 0.9f, 1 }); - - auto is_advanced_mode = dev.is(); - if (is_advanced_mode && ImGui::TreeNode("Advanced Controls")) - { - try - { - auto advanced = dev.as(); - if (advanced.is_enabled()) - { - draw_advanced_mode_controls(advanced, amc, get_curr_advanced_controls, was_set, error_message); - } - else - { - ImGui::TextColored(redish, "Device is not in advanced mode"); - std::string button_text = to_string() << "Turn on Advanced Mode" << "##" << id; - static bool show_yes_no_modal = false; - if (ImGui::Button(button_text.c_str(), ImVec2{ 226, 0 })) - { - show_yes_no_modal = true; - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Advanced mode is a persistent camera state unlocking calibration formats and depth generation controls\nYou can always reset the camera to factory defaults by disabling advanced mode"); - } - if (show_yes_no_modal) - { - show_yes_no_modal = prompt_toggle_advanced_mode(true, "\t\tAre you sure you want to turn on Advanced Mode?\t\t", restarting_device_info, view, window); - } - } - } - catch (...) - { - ImGui::TextColored(redish, "Couldn't fetch Advanced Mode settings"); - } - - ImGui::TreePop(); - } - - ImGui::PopStyleColor(); - return was_set; - } - - void device_model::draw_info_icon(const ImVec2& size) - { - std::string info_button_name = to_string() << textual_icons::info_circle << "##" << id; - auto info_button_color = show_device_info ? light_blue : light_grey; - ImGui::PushStyleColor(ImGuiCol_Text, info_button_color); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, info_button_color); - if (ImGui::Button(info_button_name.c_str(), size)) - { - show_device_info = !show_device_info; - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("%s", show_device_info ? "Hide Device Details" : "Show Device Details"); - } - ImGui::PopStyleColor(2); - } - - float device_model::draw_device_panel(float panel_width, - ux_window& window, - std::string& error_message, - viewer_model& viewer) - { - /* - ============================= - [o] [@] [i] [=] - Record Sync Info More - ============================= - */ - - const bool is_playback_device = dev.is(); - const float device_panel_height = 60.0f; - auto panel_pos = ImGui::GetCursorPos(); - - ImGui::PushFont(window.get_large_font()); - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderHovered, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_grey); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); - - //////////////////////////////////////// - // Draw recording icon - //////////////////////////////////////// - bool is_streaming = std::any_of(subdevices.begin(), subdevices.end(), [](const std::shared_ptr& sm) - { - return sm->streaming; - }); - textual_icon button_icon = is_recording ? textual_icons::stop : textual_icons::circle; - const float icons_width = 78.0f; - const ImVec2 device_panel_icons_size{ icons_width, 25 }; - std::string recorod_button_name = to_string() << button_icon << "##" << id; - auto record_button_color = is_recording ? light_blue : light_grey; - ImGui::PushStyleColor(ImGuiCol_Text, record_button_color); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, record_button_color); - if (ImGui::ButtonEx(recorod_button_name.c_str(), device_panel_icons_size, (!is_streaming || is_playback_device) ? ImGuiButtonFlags_Disabled : 0)) - { - if (is_recording) //is_recording is changed inside stop/start_recording - { - stop_recording(viewer); - } - else - { - auto path = rs2::get_folder_path(rs2::special_folder::user_documents) + rs2::get_timestamped_file_name() + ".bag"; - start_recording(path, error_message); - } - } - if (ImGui::IsItemHovered()) - { - std::string record_button_hover_text = (!is_streaming ? "Start streaming to enable recording" : (is_recording ? "Stop Recording" : "Start Recording")); - ImGui::SetTooltip("%s", record_button_hover_text.c_str()); - } - + ImGui::PopStyleColor(2); ImGui::SameLine(); //////////////////////////////////////// @@ -4788,7 +4408,7 @@ namespace rs2 //////////////////////////////////////// // Draw Info icon //////////////////////////////////////// - draw_info_icon(device_panel_icons_size); + draw_info_icon(window, window.get_font(), device_panel_icons_size); ImGui::SameLine(); //////////////////////////////////////// @@ -4804,6 +4424,7 @@ namespace rs2 if (ImGui::IsItemHovered()) { ImGui::SetTooltip("%s", "Click for more"); + window.link_hovered(); } ImGui::PopFont(); ImGui::PushFont(window.get_font()); @@ -4812,21 +4433,21 @@ namespace rs2 { bool something_to_show = false; ImGui::PushStyleColor(ImGuiCol_Text, dark_grey); - if (auto loopback = dev.as()) + if (auto tm2_extensions = dev.as()) { something_to_show = true; try { - if (!loopback.is_loopback_enabled() && ImGui::Selectable("Enable loopback...", false, is_streaming ? ImGuiSelectableFlags_Disabled : 0)) + if (!tm2_extensions.is_loopback_enabled() && ImGui::Selectable("Enable loopback...", false, is_streaming ? ImGuiSelectableFlags_Disabled : 0)) { if (const char* ret = file_dialog_open(file_dialog_mode::open_file, "ROS-bag\0*.bag\0", NULL, NULL)) { - loopback.enable_loopback(ret); + tm2_extensions.enable_loopback(ret); } } - if (loopback.is_loopback_enabled() && ImGui::Selectable("Disable loopback...", false, is_streaming ? ImGuiSelectableFlags_Disabled : 0)) + if (tm2_extensions.is_loopback_enabled() && ImGui::Selectable("Disable loopback...", false, is_streaming ? ImGuiSelectableFlags_Disabled : 0)) { - loopback.disable_loopback(); + tm2_extensions.disable_loopback(); } if (ImGui::IsItemHovered()) { @@ -4835,6 +4456,54 @@ namespace rs2 else ImGui::SetTooltip("Enter the device to loopback mode (inject frames from file to FW)"); } + + if (auto tm_sensor = dev.first()) + { + if (ImGui::Selectable("Export Localization map")) + { + if (auto target_path = file_dialog_open(save_file, "Tracking device Localization map (RAW)\0*.map\0", NULL, NULL)) + { + error_message = safe_call([&]() + { + std::stringstream ss; + ss << "Exporting localization map to " << target_path << " ... "; + viewer.not_model.add_log(ss.str()); + bin_file_from_bytes(target_path, tm_sensor.export_localization_map()); + ss.clear(); + ss << "completed"; + viewer.not_model.add_log(ss.str()); + }); + } + } + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Retrieve the localization map from device"); + } + + if (ImGui::Selectable("Import Localization map", false, is_streaming ? ImGuiSelectableFlags_Disabled : 0)) + { + if (auto source_path = file_dialog_open(open_file, "Tracking device Localization map (RAW)\0*.map\0", NULL, NULL)) + { + error_message = safe_call([&]() + { + std::stringstream ss; + ss << "Importing localization map from " << source_path << " ... "; + tm_sensor.import_localization_map(bytes_from_bin_file(source_path)); + ss << "completed"; + viewer.not_model.add_log(ss.str()); + }); + } + } + + if (ImGui::IsItemHovered()) + { + if (is_streaming) + ImGui::SetTooltip("Stop streaming to Import localization map"); + else + ImGui::SetTooltip("Load localization map from host to device"); + } + } } catch (const rs2::error& e) { @@ -4858,9 +4527,9 @@ namespace rs2 { keep_showing_advanced_mode_modal = true; } - } - ImGui::Separator(); + ImGui::Separator(); + } if (ImGui::Selectable("Hardware Reset")) { @@ -4878,8 +4547,131 @@ namespace rs2 error_message = e.what(); } } + + if (dev.is() || dev.is()) + { + if (ImGui::Selectable("Update Firmware...")) + { + begin_update({}, viewer, error_message); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Install official signed firmware from file to the device"); + + if (dev.supports(RS2_CAMERA_INFO_PRODUCT_LINE) && is_recommended_fw_available(dev.get_info(RS2_CAMERA_INFO_PRODUCT_LINE))) + { + if (ImGui::Selectable("Install Recommended Firmware ")) + { + auto sensors = dev.query_sensors(); + auto product_line_str = ""; + if (dev.supports(RS2_CAMERA_INFO_PRODUCT_LINE)) + product_line_str = dev.get_info(RS2_CAMERA_INFO_PRODUCT_LINE); + if (sensors.size() && sensors.front().supports(RS2_CAMERA_INFO_PRODUCT_LINE)) + product_line_str = sensors.front().get_info(RS2_CAMERA_INFO_PRODUCT_LINE); + int product_line = parse_product_line(product_line_str); + + auto table = create_default_fw_table(); + + begin_update(table[product_line], viewer, error_message); + } + } + + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Install default recommended firmware for this device"); + } + + bool is_locked = true; + if (dev.supports(RS2_CAMERA_INFO_CAMERA_LOCKED)) + is_locked = std::string(dev.get_info(RS2_CAMERA_INFO_CAMERA_LOCKED)) == "YES" ? true : false; + + if (dev.is() && !is_locked) + { + if (ImGui::Selectable("Update Unsigned Firmware...")) + { + begin_update_unsigned(viewer, error_message); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Install non official unsigned firmware from file to the device"); + } } + bool has_autocalib = false; + for (auto&& sub : subdevices) + { + if (sub->supports_on_chip_calib() && !has_autocalib) + { + something_to_show = true; + if (ImGui::Selectable("On-Chip Calibration")) + { + try + { + auto manager = std::make_shared(viewer, sub, *this, dev); + auto n = std::make_shared( + "", manager, false); + + viewer.not_model.add_notification(n); + n->forced = true; + n->update_state = autocalib_notification_model::RS2_CALIB_STATE_SELF_INPUT; + + for (auto&& n : related_notifications) + if (dynamic_cast(n.get())) + n->dismiss(false); + } + catch (const error& e) + { + error_message = error_to_string(e); + } + catch (const std::exception& e) + { + error_message = e.what(); + } + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip( "This will improve the depth noise.\n" + "Point at a scene that normally would have > 50 %% valid depth pixels,\n" + "then press calibrate." + "The health-check will be calculated.\n" + "If >0.25 we recommend applying the new calibration.\n" + "\"White wall\" mode should only be used when pointing at a flat white wall with projector on"); + + if (ImGui::Selectable("Tare Calibration")) + { + try + { + auto manager = std::make_shared(viewer, sub, *this, dev); + auto n = std::make_shared( + "", manager, false); + + viewer.not_model.add_notification(n); + n->forced = true; + n->update_state = autocalib_notification_model::RS2_CALIB_STATE_TARE_INPUT; + + for (auto&& n : related_notifications) + if (dynamic_cast(n.get())) + n->dismiss(false); + } + catch (const error& e) + { + error_message = error_to_string(e); + } + catch (const std::exception& e) + { + error_message = e.what(); + } + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip( "Tare calibration is used to adjust camera absolute distance to flat target.\n" + "User needs to enter the known ground truth"); + + has_autocalib = true; + } + } + if (!has_autocalib) + { + bool selected = false; + something_to_show = true; + ImGui::Selectable("On-Chip Calibration", &selected, ImGuiSelectableFlags_Disabled); + ImGui::Selectable("Tare Calibration", &selected, ImGuiSelectableFlags_Disabled); + } if (!something_to_show) { @@ -4906,10 +4698,24 @@ namespace rs2 ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImColor(0, 0, 0, 0)); ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImColor(0,0,0,0)); const ImVec2 device_panel_icons_text_size = { icons_width, 5 }; + + ImGui::PushStyleColor(ImGuiCol_Text, record_button_color); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, record_button_color); ImGui::ButtonEx(is_recording ? "Stop" : "Record", device_panel_icons_size, (!is_streaming ? ImGuiButtonFlags_Disabled : 0)); + if (ImGui::IsItemHovered() && is_streaming) window.link_hovered(); + ImGui::PopStyleColor(2); + ImGui::SameLine(); ImGui::ButtonEx("Sync", device_panel_icons_size, ImGuiButtonFlags_Disabled); + + auto info_button_color = show_device_info ? light_blue : light_grey; + ImGui::PushStyleColor(ImGuiCol_Text, info_button_color); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, info_button_color); ImGui::SameLine(); ImGui::ButtonEx("Info", device_panel_icons_size); + if (ImGui::IsItemHovered()) window.link_hovered(); + ImGui::PopStyleColor(2); + ImGui::SameLine(); ImGui::ButtonEx("More", device_panel_icons_size); + if (ImGui::IsItemHovered()) window.link_hovered(); ImGui::PopStyleColor(3); ImGui::PopStyleVar(); @@ -4919,28 +4725,6 @@ namespace rs2 return device_panel_height; } - template - std::string safe_call(T t) - { - try - { - t(); - return ""; - } - catch (const error& e) - { - return error_to_string(e); - } - catch (const std::exception& e) - { - return e.what(); - } - catch (...) - { - return "Unknown error occurred"; - } - } - void device_model::save_viewer_configurations(std::ofstream& outfile, json& j) { for (auto&& sub : subdevices) @@ -4986,7 +4770,7 @@ namespace rs2 } } - // Load viewer configuration for stereo module (depth/infrared streams) only + // Load viewer configuration for stereo module (depth/infrared streams) only void device_model::load_viewer_configurations(const std::string& json_str) { json j = json::parse(json_str); @@ -5041,22 +4825,29 @@ namespace rs2 { assert(it.value().is_string()); std::string formatstr = it.value(); - if (formatstr == "R8L8") - { - requested_streams[std::make_pair(RS2_STREAM_INFRARED, 1)].format = RS2_FORMAT_Y8; - requested_streams[std::make_pair(RS2_STREAM_INFRARED, 2)].format = RS2_FORMAT_Y8; - } - else if (formatstr == "Y8") - { - requested_streams[std::make_pair(RS2_STREAM_INFRARED, 1)].format = RS2_FORMAT_Y8; - } - else if (formatstr == "UYVY") + + bool found = false; + for (int i = 0; i < RS2_FORMAT_COUNT; i++) { - requested_streams[std::make_pair(RS2_STREAM_INFRARED, 1)].format = RS2_FORMAT_UYVY; + auto format = (rs2_format)i; + if (ends_with(rs2_format_to_string(format), formatstr)) + { + requested_streams[std::make_pair(RS2_STREAM_INFRARED, 1)].format = format; + found = true; + } } - else + + if (!found) { - throw std::runtime_error(to_string() << "Unsupported stream-ir-format: " << formatstr); + if (formatstr == "R8L8") + { + requested_streams[std::make_pair(RS2_STREAM_INFRARED, 1)].format = RS2_FORMAT_Y8; + requested_streams[std::make_pair(RS2_STREAM_INFRARED, 2)].format = RS2_FORMAT_Y8; + } + else + { + throw std::runtime_error(to_string() << "Unsupported stream-ir-format: " << formatstr); + } } // Disable infrared stream on all sub devices @@ -5110,7 +4901,7 @@ namespace rs2 sub->stream_enabled[uid] = true; //Find format - int format_id = 0; + size_t format_id = 0; rs2_format requested_format = kvp.second.format; for (; format_id < sub->format_values[uid].size(); format_id++) { @@ -5121,11 +4912,11 @@ namespace rs2 { throw std::runtime_error(to_string() << "No match found for requested format: " << requested_format); } - sub->ui.selected_format_id[uid] = format_id; + sub->ui.selected_format_id[uid] = int(format_id); //Find fps int requested_fps = kvp.second.fps; - int fps_id = 0; + size_t fps_id = 0; for (; fps_id < sub->shared_fps_values.size(); fps_id++) { if (sub->shared_fps_values[fps_id] == requested_fps) @@ -5135,11 +4926,11 @@ namespace rs2 { throw std::runtime_error(to_string() << "No match found for requested fps: " << requested_fps); } - sub->ui.selected_shared_fps_id = fps_id; + sub->ui.selected_shared_fps_id = int(fps_id); //Find Resolution std::pair requested_res{ kvp.second.width,kvp.second.height }; - int res_id = 0; + size_t res_id = 0; for (; res_id < sub->res_values.size(); res_id++) { if (sub->res_values[res_id] == requested_res) @@ -5149,52 +4940,12 @@ namespace rs2 { throw std::runtime_error(to_string() << "No match found for requested resolution: " << requested_res.first << "x" << requested_res.second); } - sub->ui.selected_res_id = res_id; + sub->ui.selected_res_id = int(res_id); } } } } - // Generic helper functions for comparison of fw versions - std::vector fw_version_to_int_vec(std::string fw_version) - { - size_t start{}, end{}; - std::vector values; - std::string delimiter("."); - std::string substr; - while ((end = fw_version.find(delimiter, start)) != std::string::npos) - { - substr = fw_version.substr(start, end-start); - start = start + substr.length() + delimiter.length(); - values.push_back(atoi(substr.c_str())); - } - values.push_back(atoi(fw_version.substr(start, fw_version.length() - start).c_str())); - return values; - } - - bool fw_version_less_than(std::string fw_version, std::string min_fw_version) - { - std::vector curr_values = fw_version_to_int_vec(fw_version); - std::vector min_values = fw_version_to_int_vec(min_fw_version); - - for (int i = 0; i < curr_values.size(); i++) - { - if (i >= min_values.size()) - { - return false; - } - if (curr_values[i] < min_values[i]) - { - return true; - } - if (curr_values[i] > min_values[i]) - { - return false; - } - } - return false; - } - float device_model::draw_preset_panel(float panel_width, ux_window& window, std::string& error_message, @@ -5214,8 +4965,9 @@ namespace rs2 ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_grey); ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); ImGui::PushFont(window.get_font()); + auto serializable = dev.as(); - const auto load_json = [&](const std::string f) { + const auto load_json = [&, serializable](const std::string f) { std::ifstream file(f); if (!file.good()) { @@ -5225,9 +4977,10 @@ namespace rs2 throw std::runtime_error(to_string() << "Failed to read configuration file:\n\"" << f << "\"\nRemoving it from presets."); } std::string str((std::istreambuf_iterator(file)), std::istreambuf_iterator()); - if (auto advanced = dev.as()) + + if (serializable) { - advanced.load_json(str); + serializable.load_json(str); for (auto&& sub : subdevices) { //If json was loaded correctly, we want the presets combo box to show the name of the configuration file @@ -5250,15 +5003,14 @@ namespace rs2 viewer.not_model.add_log(to_string() << "Loaded settings from \"" << f << "\"..."); }; - const auto save_to_json = [&](std::string full_filename) + const auto save_to_json = [&, serializable](std::string full_filename) { - auto advanced = dev.as(); if (!ends_with(to_lower(full_filename), ".json")) full_filename += ".json"; std::ofstream outfile(full_filename); json saved_configuraion; - if (auto advanced = dev.as()) + if (serializable) { - saved_configuraion = json::parse(advanced.serialize_json()); + saved_configuraion = json::parse(serializable.serialize_json()); } save_viewer_configurations(outfile, saved_configuraion); outfile << saved_configuraion.dump(4); @@ -5333,38 +5085,38 @@ namespace rs2 if (ImGui::Combo(opt_model.id.c_str(), &selected, labels.data(), static_cast(labels.size()))) { + *opt_model.invalidate_flag = true; + auto advanced = dev.as(); if (advanced) - { - if (advanced.is_enabled()) + if (!advanced.is_enabled()) + keep_showing_popup = true; + + if(!keep_showing_popup) + if (selected < static_cast(labels.size() - files_labels.size())) { - if (selected < static_cast(labels.size() - files_labels.size())) - { - //Known preset was chosen - auto new_val = opt_model.range.min + opt_model.range.step * selected; - model.add_log(to_string() << "Setting " << opt_model.opt << " to " - << opt_model.value << " (" << labels[selected] << ")"); - - opt_model.endpoint->set_option(opt_model.opt, new_val); - - // Only apply preset to GUI if set_option was succesful - selected_file_preset = ""; - opt_model.value = new_val; - is_clicked = true; - } - else - { - //File was chosen - auto f = full_files_names[selected - static_cast(labels.size() - files_labels.size())]; - error_message = safe_call([&]() { load_json(f); }); - selected_file_preset = f; - } + //Known preset was chosen + auto new_val = opt_model.range.min + opt_model.range.step * selected; + model.add_log(to_string() << "Setting " << opt_model.opt << " to " + << opt_model.value << " (" << labels[selected] << ")"); + + opt_model.endpoint->set_option(opt_model.opt, new_val); + + // Only apply preset to GUI if set_option was succesful + selected_file_preset = ""; + opt_model.value = new_val; + is_clicked = true; } else { - keep_showing_popup = true; + //File was chosen + auto file = selected - static_cast(labels.size() - files_labels.size()); + if(file < 0 || file >= full_files_names.size()) + throw std::runtime_error("not a valid format"); + auto f = full_files_names[file]; + error_message = safe_call([&]() { load_json(f); }); + selected_file_preset = f; } - } } if (keep_showing_popup) { @@ -5392,14 +5144,17 @@ namespace rs2 const ImVec2 icons_size{ 20, 20 }; //TODO: Change this once we have support for loading jsons with more data than only advanced controls bool is_streaming = std::any_of(subdevices.begin(), subdevices.end(), [](const std::shared_ptr& sm) { return sm->streaming; }); - const int buttons_flags = dev.is() ? 0 : ImGuiButtonFlags_Disabled; + const int buttons_flags = serializable ? 0 : ImGuiButtonFlags_Disabled; static bool require_advanced_mode_enable_prompt = false; auto advanced_dev = dev.as(); - bool is_advanced_mode_enabled = false; + auto is_advanced_device = false; + auto is_advanced_mode_enabled = false; if (advanced_dev) { + is_advanced_device = true; is_advanced_mode_enabled = advanced_dev.is_enabled(); } + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 3); //////////////////////////////////////// @@ -5411,7 +5166,7 @@ namespace rs2 if (ImGui::ButtonEx(upload_button_name.c_str(), icons_size, (is_streaming && !load_json_if_streaming) ? ImGuiButtonFlags_Disabled : buttons_flags)) { - if (is_advanced_mode_enabled) + if (serializable && (!is_advanced_device || is_advanced_mode_enabled)) { json_loading([&]() { @@ -5443,7 +5198,7 @@ namespace rs2 ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 1); //Align the two icons to buttom if (ImGui::ButtonEx(save_button_name.c_str(), icons_size, buttons_flags)) { - if (is_advanced_mode_enabled) + if (serializable && (!is_advanced_device || is_advanced_mode_enabled)) { auto ret = file_dialog_open(save_file, "JavaScript Object Notation (JSON)\0*.json\0", NULL, NULL); if (ret) @@ -5477,6 +5232,46 @@ namespace rs2 } + // Generic helper functions for comparison of fw versions + std::vector fw_version_to_int_vec(std::string fw_version) + { + size_t start{}, end{}; + std::vector values; + std::string delimiter("."); + std::string substr; + while ((end = fw_version.find(delimiter, start)) != std::string::npos) + { + substr = fw_version.substr(start, end-start); + start = start + substr.length() + delimiter.length(); + values.push_back(atoi(substr.c_str())); + } + values.push_back(atoi(fw_version.substr(start, fw_version.length() - start).c_str())); + return values; + } + + bool fw_version_less_than(std::string fw_version, std::string min_fw_version) + { + std::vector curr_values = fw_version_to_int_vec(fw_version); + std::vector min_values = fw_version_to_int_vec(min_fw_version); + + for (size_t i = 0; i < curr_values.size(); i++) + { + if (i >= min_values.size()) + { + return false; + } + if (curr_values[i] < min_values[i]) + { + return true; + } + if (curr_values[i] > min_values[i]) + { + return false; + } + } + return false; + } + bool rs2::device_model::is_streaming() const { return std::any_of(subdevices.begin(), subdevices.end(), [](const std::shared_ptr& sm) @@ -5490,7 +5285,6 @@ namespace rs2 std::string& error_message, device_model*& device_to_remove, viewer_model& viewer, float windows_width, - bool update_read_only_options, std::vector>& draw_later, bool load_json_if_streaming, json_loading_func json_loading, @@ -5507,6 +5301,8 @@ namespace rs2 const float left_space = 3.f; const float upper_space = 3.f; + bool update_read_only_options = _update_readonly_options_timer; + const ImVec2 initial_screen_pos = ImGui::GetCursorScreenPos(); //Upper Space ImGui::GetWindowDrawList()->AddRectFilled({ initial_screen_pos.x,initial_screen_pos.y }, { initial_screen_pos.x + panel_width,initial_screen_pos.y + upper_space }, ImColor(black)); @@ -5529,11 +5325,30 @@ namespace rs2 const ImVec2 name_pos = { pos.x + 9, pos.y + 17 }; ImGui::SetCursorPos(name_pos); std::stringstream ss; - ss << dev.get_info(RS2_CAMERA_INFO_NAME); + if(dev.supports(RS2_CAMERA_INFO_NAME)) + ss << dev.get_info(RS2_CAMERA_INFO_NAME); + ImGui::Text(" %s", ss.str().c_str()); if (dev.supports(RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR)) - ss << " " << textual_icons::usb_type << " " << dev.get_info(RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR); + { + std::string desc = dev.get_info(RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR); + ss.str(""); + ss << " " << textual_icons::usb_type << " " << desc; + ImGui::SameLine(); + if (!starts_with(desc, "3.")) ImGui::PushStyleColor(ImGuiCol_Text, yellow); + else ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::Text(" %s", ss.str().c_str()); + ImGui::PopStyleColor(); + ss.str(""); + ss << "The camera was detected by the OS as connected to a USB " << desc << " port"; + ImGui::PushFont(window.get_font()); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip(" %s", ss.str().c_str()); + ImGui::PopStyleColor(); + ImGui::PopFont(); + } - ImGui::Text(" %s", ss.str().c_str()); + //ImGui::Text(" %s", dev.get_info(RS2_CAMERA_INFO_NAME)); ImGui::PopFont(); @@ -5561,6 +5376,12 @@ namespace rs2 } device_to_remove = this; } + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Remove selected device from current view\n(can be restored by clicking Add Source)"); + window.link_hovered(); + } } ImGui::PopStyleColor(4); ImGui::PopStyleVar(); @@ -5600,7 +5421,8 @@ namespace rs2 //////////////////////////////////////// // draw advanced mode panel //////////////////////////////////////// - if (dev.is()) + auto serialize = dev.is(); + if (serialize) { pos = ImGui::GetCursorPos(); const float vertical_space_before_advanced_mode_control = 10.0f; @@ -5620,7 +5442,7 @@ namespace rs2 float space_before_playback_control = 18.0f; auto playback_panel_pos = ImVec2{ pos.x + 10, pos.y + space_before_playback_control }; ImGui::SetCursorPos(playback_panel_pos); - auto playback_panel_height = draw_playback_panel(window.get_font(), viewer); + auto playback_panel_height = draw_playback_panel(window, window.get_font(), viewer); ImGui::SetCursorPos({ playback_panel_pos.x, playback_panel_pos.y + playback_panel_height }); } @@ -5628,7 +5450,6 @@ namespace rs2 { return sm->streaming; }); - draw_controllers_panel(window.get_font(), is_streaming); pos = ImGui::GetCursorPos(); @@ -5681,29 +5502,6 @@ namespace rs2 } ImGui::SetCursorPos({ rc.x + 225, rc.y - 107 }); - - if (fw_version_less_than(fw_version, min_fw_version)) - { - std::string label1 = to_string() << textual_icons::exclamation_triangle << "##" << id; - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_Text, yellow); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, yellow + 0.1f); - - if (ImGui::SmallButton(label1.c_str())) - { - open_url(recommended_fw_url); - } - - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Click here to update firmware\n(internet connection required)"); - } - - ImGui::PopStyleColor(5); - } - ImGui::PopFont(); } @@ -5747,798 +5545,439 @@ namespace rs2 ImGui_ScopePushStyleColor(ImGuiCol_Text, redish); ImGui_ScopePushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - if (sub->is_selected_combination_supported()) - { - if (ImGui::Button(label.c_str(), { 30,30 })) - { - auto profiles = sub->get_selected_profiles(); - try - { - sub->play(profiles, viewer); - } - catch (const error& e) - { - error_message = error_to_string(e); - } - catch (const std::exception& e) - { - error_message = e.what(); - } - - for (auto&& profile : profiles) - { - viewer.begin_stream(sub, profile); - } - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Start streaming data from this sensor"); - } - } - else - { - std::string text = to_string() << " " << textual_icons::toggle_off << "\noff "; - ImGui::TextDisabled("%s", text.c_str()); - if (std::any_of(sub->stream_enabled.begin(), sub->stream_enabled.end(), [](std::pair const& s) { return s.second; })) - { - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Selected configuration (FPS, Resolution) is not supported"); - } - } - else - { - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("No stream selected"); - } - } - - } - } - else - { - std::string label = to_string() << " " << textual_icons::toggle_on << "\n on##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME); - ImGui_ScopePushStyleColor(ImGuiCol_Text, light_blue); - ImGui_ScopePushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - - if (ImGui::Button(label.c_str(), { 30,30 })) - { - sub->stop(viewer); - - if (!std::any_of(subdevices.begin(), subdevices.end(), - [](const std::shared_ptr& sm) - { - return sm->streaming; - })) - { - stop_recording = true; - } - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Stop streaming data from selected sub-device"); - } - } - - if (is_recording && stop_recording) - { - this->stop_recording(viewer); - for (auto&& sub : subdevices) - { - //TODO: Fix case where sensor X recorded stream 0, then stopped, and then started recording stream 1 (need 2 sensors for this to happen) - if (sub->is_selected_combination_supported()) - { - auto profiles = sub->get_selected_profiles(); - for (auto&& profile : profiles) - { - viewer.streams[profile.unique_id()].dev = sub; - } - } - } - } - }); - } - - //ImGui::GetWindowDrawList()->AddLine({ abs_pos.x, abs_pos.y - 1 }, - //{ abs_pos.x + panel_width, abs_pos.y - 1 }, - // ImColor(black), 1.f); - - std::string label = to_string() << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "##" << id; - ImGui::PushStyleColor(ImGuiCol_Header, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderActive, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_HeaderHovered, sensor_bg); - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, { 10, 10 }); - ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, { 0, 0 }); - ImGuiTreeNodeFlags flags{}; - if (show_depth_only) flags = ImGuiTreeNodeFlags_DefaultOpen; - if (ImGui::TreeNodeEx(label.c_str(), flags)) - { - ImGui::PopStyleVar(); - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, { 2, 2 }); - - if (show_stream_selection) - sub->draw_stream_selection(); - - static const std::vector drawing_order = dev.is() ? - std::vector{ RS2_OPTION_EMITTER_ENABLED, RS2_OPTION_ENABLE_AUTO_EXPOSURE } - : std::vector{ RS2_OPTION_VISUAL_PRESET, RS2_OPTION_EMITTER_ENABLED, RS2_OPTION_ENABLE_AUTO_EXPOSURE }; - - for (auto& opt : drawing_order) - { - if (sub->draw_option(opt, dev.is() || update_read_only_options, error_message, viewer.not_model)) - { - get_curr_advanced_controls = true; - selected_file_preset.clear(); - } - } - - if (sub->num_supported_non_default_options()) - { - label = to_string() << "Controls ##" << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << id; - if (ImGui::TreeNode(label.c_str())) - { - for (auto i = 0; i < RS2_OPTION_COUNT; i++) - { - auto opt = static_cast(i); - if (opt == RS2_OPTION_FRAMES_QUEUE_SIZE) continue; - if (std::find(drawing_order.begin(), drawing_order.end(), opt) == drawing_order.end()) - { - if (dev.is() && opt == RS2_OPTION_VISUAL_PRESET) - continue; - if (sub->draw_option(opt, dev.is() || update_read_only_options, error_message, viewer.not_model)) - { - get_curr_advanced_controls = true; - selected_file_preset.clear(); - } - } - } - - ImGui::TreePop(); - } - } - if (dev.is() && sub->s->is()) - { - if (draw_advanced_controls(viewer, window, error_message)) - { - sub->options_invalidated = true; - selected_file_preset.clear(); - } - } - - - for (auto&& pb : sub->const_effects) - { - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); - - label = to_string() << pb->get_name() << "##" << id; - if (ImGui::TreeNode(label.c_str())) - { - for (auto i = 0; i < RS2_OPTION_COUNT; i++) - { - auto opt = static_cast(i); - if (opt == RS2_OPTION_FRAMES_QUEUE_SIZE) continue; - pb->get_option(opt).draw_option( - dev.is() || update_read_only_options, - false, error_message, viewer.not_model); - } - - ImGui::TreePop(); - } - } - - if (sub->post_processing.size() > 0) - { - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); - const ImVec2 pos = ImGui::GetCursorPos(); - - draw_later.push_back([windows_width, &window, sub, pos, &viewer, this]() { - if (!sub->streaming) ImGui::SetCursorPos({ windows_width -27 , pos.y - 1 }); - else - ImGui::SetCursorPos({ windows_width - 32, pos.y - 3 }); - - ImGui::PushFont(window.get_font()); - - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - - if (!sub->streaming) - { - if (!sub->post_processing_enabled) - { - std::string label = to_string() << textual_icons::toggle_off; - - ImGui::PushStyleColor(ImGuiCol_Text, redish); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - ImGui::TextDisabled("%s", label.c_str()); - } - else - { - std::string label = to_string() << textual_icons::toggle_on; - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - ImGui::TextDisabled("%s", label.c_str()); - } - } + std::vector profiles; + auto is_comb_supported = sub->is_selected_combination_supported(); + bool can_stream = false; + if (is_comb_supported) + can_stream = true; else { - if (!sub->post_processing_enabled) - { - std::string label = to_string() << " " << textual_icons::toggle_off << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << ",post"; - - ImGui::PushStyleColor(ImGuiCol_Text, redish); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - - if (ImGui::Button(label.c_str(), { 30,24 })) - { - sub->post_processing_enabled = true; - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Enable post-processing filters"); - } - } - else - { - std::string label = to_string() << " " << textual_icons::toggle_on << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << ",post"; - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - - if (ImGui::Button(label.c_str(), { 30,24 })) - { - sub->post_processing_enabled = false; - } - if (ImGui::IsItemHovered()) - { - ImGui::SetTooltip("Disable post-processing filters"); - } - } - } - - ImGui::PopStyleColor(5); - ImGui::PopFont(); - }); - - label = to_string() << "Post-Processing##" << id; - if (ImGui::TreeNode(label.c_str())) - { - for (auto&& pb : sub->post_processing) - { - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); - - const ImVec2 pos = ImGui::GetCursorPos(); - const ImVec2 abs_pos = ImGui::GetCursorScreenPos(); - - draw_later.push_back([windows_width, &window, sub, pos, &viewer, this, pb]() { - if (!sub->streaming || !sub->post_processing_enabled) ImGui::SetCursorPos({ windows_width - 27, pos.y + 1 }); - else - ImGui::SetCursorPos({ windows_width - 35, pos.y - 3 }); - - ImGui::PushFont(window.get_font()); - - ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - - if (!sub->streaming || !sub->post_processing_enabled) + profiles = sub->get_supported_profiles(); + if (!profiles.empty()) + can_stream = true; + else + { + std::string text = to_string() << " " << textual_icons::toggle_off << "\noff "; + ImGui::TextDisabled("%s", text.c_str()); + if (std::any_of(sub->stream_enabled.begin(), sub->stream_enabled.end(), [](std::pair const& s) { return s.second; })) { - if (!pb->enabled) - { - std::string label = to_string() << textual_icons::toggle_off; - - ImGui::PushStyleColor(ImGuiCol_Text, redish); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - ImGui::TextDisabled("%s", label.c_str()); - } - else + if (ImGui::IsItemHovered()) { - std::string label = to_string() << textual_icons::toggle_on; - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - ImGui::TextDisabled("%s", label.c_str()); + // ImGui::SetTooltip("Selected configuration (FPS, Resolution) is not supported"); + ImGui::SetTooltip("Selected value is not supported"); } } else { - if (!pb->enabled) + if (ImGui::IsItemHovered()) { - std::string label = to_string() << " " << textual_icons::toggle_off << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); - - ImGui::PushStyleColor(ImGuiCol_Text, redish); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - - if (ImGui::Button(label.c_str(), { 30,24 })) - { - pb->enabled = true; - } - if (ImGui::IsItemHovered()) - { - label = to_string() << "Enable " << pb->get_name() << " post-processing filter"; - ImGui::SetTooltip("%s", label.c_str()); - } + ImGui::SetTooltip("No stream selected"); } - else - { - std::string label = to_string() << " " << textual_icons::toggle_on << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); - ImGui::PushStyleColor(ImGuiCol_Text, light_blue); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); + } + } + } + if (can_stream) + { + if (ImGui::Button(label.c_str(), { 30,30 })) + { + if (profiles.empty()) // profiles might be already filled + profiles = sub->get_selected_profiles(); + try + { + if (!dev_syncer) + dev_syncer = viewer.syncer->create_syncer(); - if (ImGui::Button(label.c_str(), { 30,24 })) - { - pb->enabled = false; - } - if (ImGui::IsItemHovered()) - { - label = to_string() << "Disable " << pb->get_name() << " post-processing filter"; - ImGui::SetTooltip("%s", label.c_str()); - } + std::string friendly_name = sub->s->get_info(RS2_CAMERA_INFO_NAME); + if (!viewer.zo_sensors.load() && + ((friendly_name.find("Tracking") != std::string::npos) || + (friendly_name.find("Motion") != std::string::npos))) + { + viewer.synchronization_enable = false; } + _update_readonly_options_timer.signal(); + sub->play(profiles, viewer, dev_syncer); } - - ImGui::PopStyleColor(5); - ImGui::PopFont(); - }); - - label = to_string() << pb->get_name() << "##" << id; - if (ImGui::TreeNode(label.c_str())) - { - for (auto i = 0; i < RS2_OPTION_COUNT; i++) + catch (const error& e) { - auto opt = static_cast(i); - if (opt == RS2_OPTION_FRAMES_QUEUE_SIZE) continue; - pb->get_option(opt).draw_option( - dev.is() || update_read_only_options, - false, error_message, viewer.not_model); + error_message = error_to_string(e); + } + catch (const std::exception& e) + { + error_message = e.what(); } - ImGui::TreePop(); + for (auto&& profile : profiles) + { + viewer.begin_stream(sub, profile); + } + } + if (ImGui::IsItemHovered()) + { + window.link_hovered(); + ImGui::SetTooltip("Start streaming data from this sensor"); } } - ImGui::TreePop(); } - } - - ImGui::TreePop(); - } - - ImGui::PopStyleVar(); - ImGui::PopStyleVar(); - ImGui::PopStyleColor(3); - - ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 2); - } - - for (auto&& sub : subdevices) - { - sub->update(error_message, viewer.not_model); - } - - ImGui::PopStyleColor(2); - ImGui::PopFont(); + else + { + std::string label = to_string() << " " << textual_icons::toggle_on << "\n on##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME); + ImGui_ScopePushStyleColor(ImGuiCol_Text, light_blue); + ImGui_ScopePushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - auto end_screen_pos = ImGui::GetCursorScreenPos(); + if (ImGui::Button(label.c_str(), { 30,30 })) + { + sub->stop(viewer); - if (draw_device_outline) - { - //Left space - ImGui::GetWindowDrawList()->AddRectFilled({ initial_screen_pos.x,initial_screen_pos.y }, { end_screen_pos.x + left_space, end_screen_pos.y }, ImColor(black)); - //Left line - ImGui::GetWindowDrawList()->AddLine({ initial_screen_pos.x + left_space,initial_screen_pos.y + upper_space }, { end_screen_pos.x + left_space, end_screen_pos.y }, ImColor(header_color)); - //Right line - const float compenstaion_right = 17.f;; - ImGui::GetWindowDrawList()->AddLine({ initial_screen_pos.x + panel_width - compenstaion_right, initial_screen_pos.y + upper_space }, { end_screen_pos.x + panel_width - compenstaion_right, end_screen_pos.y }, ImColor(header_color)); - //Button line - const float compenstaion_button = 1.0f; - ImGui::GetWindowDrawList()->AddLine({ end_screen_pos.x + left_space, end_screen_pos.y - compenstaion_button }, { end_screen_pos.x + left_space + panel_width, end_screen_pos.y - compenstaion_button }, ImColor(header_color)); - } - } + if (!std::any_of(subdevices.begin(), subdevices.end(), + [](const std::shared_ptr& sm) + { + return sm->streaming; + })) + { + stop_recording = true; + _update_readonly_options_timer.signal(); + } + } + if (ImGui::IsItemHovered()) + { + window.link_hovered(); + ImGui::SetTooltip("Stop streaming data from selected sub-device"); + } + } - void device_model::handle_hardware_events(const std::string& serialized_data) - { - //TODO: Move under hour glass - std::string event_type = get_event_type(serialized_data); - if (event_type == "Controller Event") - { - std::string subtype = get_subtype(serialized_data); - if (subtype == "Connection") - { - std::array mac_addr = get_mac(serialized_data); - int id = get_id(serialized_data); - controllers[id] = mac_addr; - available_controllers.erase(mac_addr); - } - else if (subtype == "Discovery") - { - std::array mac_addr = get_mac(serialized_data); - available_controllers.insert(mac_addr); - } - else if (subtype == "Disconnection") - { - int id = get_id(serialized_data); - controllers.erase(id); + if (is_recording && stop_recording) + { + this->stop_recording(viewer); + for (auto&& sub : subdevices) + { + //TODO: Fix case where sensor X recorded stream 0, then stopped, and then started recording stream 1 (need 2 sensors for this to happen) + if (sub->is_selected_combination_supported()) + { + auto profiles = sub->get_selected_profiles(); + for (auto&& profile : profiles) + { + viewer.streams[profile.unique_id()].dev = sub; + } + } + } + } + }); } - } - } + //ImGui::GetWindowDrawList()->AddLine({ abs_pos.x, abs_pos.y - 1 }, + //{ abs_pos.x + panel_width, abs_pos.y - 1 }, + // ImColor(black), 1.f); - void viewer_model::draw_viewport(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message, texture_buffer* texture, points points) - { - if (!is_3d_view) - { - render_2d_view(viewer_rect, window, - static_cast(get_output_height()), window.get_font(), window.get_large_font(), - devices, window.get_mouse(), error_message); - } - else - { - if (paused) - show_paused_icon(window.get_large_font(), static_cast(panel_width + 15), static_cast(panel_y + 15 + 32), 0); - - show_3dviewer_header(window.get_font(), viewer_rect, paused, error_message); - - update_3d_camera(viewer_rect, window.get_mouse()); + std::string label = to_string() << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "##" << id; + ImGui::PushStyleColor(ImGuiCol_Header, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderActive, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered, sensor_bg); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, { 10, 10 }); + ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing, { 0, 0 }); + ImGuiTreeNodeFlags flags{}; + if (show_depth_only) flags = ImGuiTreeNodeFlags_DefaultOpen; + if (ImGui::TreeNodeEx(label.c_str(), flags)) + { + ImGui::PopStyleVar(); + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, { 2, 2 }); - rect window_size{ 0, 0, (float)window.width(), (float)window.height() }; - rect fb_size{ 0, 0, (float)window.framebuf_width(), (float)window.framebuf_height() }; - rect new_rect = viewer_rect.normalize(window_size).unnormalize(fb_size); + if (show_stream_selection) + sub->draw_stream_selection(); - render_3d_view(new_rect, texture, points); - } + static const std::vector drawing_order = serialize ? + std::vector{ RS2_OPTION_EMITTER_ENABLED, RS2_OPTION_ENABLE_AUTO_EXPOSURE } + : std::vector{ RS2_OPTION_VISUAL_PRESET, RS2_OPTION_EMITTER_ENABLED, RS2_OPTION_ENABLE_AUTO_EXPOSURE }; - if (ImGui::IsKeyPressed(' ')) - { - if (paused) - { - for (auto&& s : streams) + for (auto& opt : drawing_order) { - if (s.second.dev) + if (sub->draw_option(opt, dev.is() || update_read_only_options, error_message, viewer.not_model)) { - s.second.dev->resume(); - if (s.second.dev->dev.is()) - { - auto p = s.second.dev->dev.as(); - p.resume(); - } + get_curr_advanced_controls = true; + selected_file_preset.clear(); } } - } - else - { - for (auto&& s : streams) + + if (sub->num_supported_non_default_options()) { - if (s.second.dev) + label = to_string() << "Controls ##" << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << id; + if (ImGui::TreeNode(label.c_str())) { - s.second.dev->pause(); - if (s.second.dev->dev.is()) + for (auto&& i:sub->s->get_supported_options()) { - auto p = s.second.dev->dev.as(); - p.pause(); + auto opt = static_cast(i); + if (skip_option(opt)) continue; + if (std::find(drawing_order.begin(), drawing_order.end(), opt) == drawing_order.end()) + { + if (serialize && opt == RS2_OPTION_VISUAL_PRESET) + continue; + if (sub->draw_option(opt, dev.is() || update_read_only_options, error_message, viewer.not_model)) + { + get_curr_advanced_controls = true; + selected_file_preset.clear(); + } + } } + + ImGui::TreePop(); + } + } + if (dev.is() && sub->s->is()) + { + if (draw_advanced_controls(viewer, window, error_message)) + { + sub->_options_invalidated = true; + selected_file_preset.clear(); } } - } - paused = !paused; - } - } - - std::map viewer_model::get_interpolated_layout(const std::map& l) - { - using namespace std::chrono; - auto now = high_resolution_clock::now(); - if (l != _layout) // detect layout change - { - _transition_start_time = now; - _old_layout = _layout; - _layout = l; - } - - //if (_old_layout.size() == 0 && l.size() == 1) return l; - - auto diff = now - _transition_start_time; - auto ms = duration_cast(diff).count(); - auto t = smoothstep(static_cast(ms), 0, 100); - - std::map results; - for (auto&& kvp : l) - { - auto stream = kvp.first; - if (_old_layout.find(stream) == _old_layout.end()) - { - _old_layout[stream] = _layout[stream].center(); - } - results[stream] = _old_layout[stream].lerp(t, _layout[stream]); - } - - return results; - } - - notification_data::notification_data(std::string description, - double timestamp, - rs2_log_severity severity, - rs2_notification_category category) - : _description(description), - _timestamp(timestamp), - _severity(severity), - _category(category) {} - - - rs2_notification_category notification_data::get_category() const - { - return _category; - } - - std::string notification_data::get_description() const - { - return _description; - } - - - double notification_data::get_timestamp() const - { - return _timestamp; - } - - - rs2_log_severity notification_data::get_severity() const - { - return _severity; - } - - notification_model::notification_model() - { - message = ""; - } - - notification_model::notification_model(const notification_data& n) - { - message = n.get_description(); - timestamp = n.get_timestamp(); - severity = n.get_severity(); - created_time = std::chrono::high_resolution_clock::now(); - category = n._category; - } - - double notification_model::get_age_in_ms() const - { - return std::chrono::duration(std::chrono::high_resolution_clock::now() - created_time).count(); - } - - // Pops the 6 colors that were pushed in set_color_scheme - void notification_model::unset_color_scheme() const - { - ImGui::PopStyleColor(6); - } - - /* Sets color scheme for notifications, must be used with unset_color_scheme to pop all colors in the end - Parameter t indicates the transparency of the nofication interface */ - void notification_model::set_color_scheme(float t) const - { - ImGui::PushStyleColor(ImGuiCol_CloseButton, { 0, 0, 0, 0 }); - ImGui::PushStyleColor(ImGuiCol_CloseButtonActive, { 0, 0, 0, 0 }); - if (category == RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED) - { - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 33/255.f, 40/255.f, 46/255.f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBg, { 62 / 255.f, 77 / 255.f, 89 / 255.f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBgActive, { 62 / 255.f, 77 / 255.f, 89 / 255.f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_CloseButtonHovered, { 62 / 255.f + 0.1f, 77 / 255.f + 0.1f, 89 / 255.f + 0.1f, 1 - t }); - } - else - { - if (severity == RS2_LOG_SEVERITY_ERROR || - severity == RS2_LOG_SEVERITY_WARN) - { - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0.3f, 0.f, 0.f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBg, { 0.5f, 0.2f, 0.2f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBgActive, { 0.6f, 0.2f, 0.2f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_CloseButtonHovered, { 0.5f + 0.1f, 0.2f + 0.1f, 0.2f + 0.1f, 1 - t }); - } - else - { - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0.3f, 0.3f, 0.3f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBg, { 0.4f, 0.4f, 0.4f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_TitleBgActive, { 0.6f, 0.6f, 0.6f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_CloseButtonHovered, { 0.6f + 0.1f, 0.6f + 0.1f, 0.6f + 0.1f, 1 - t }); - } - } - } - - const int notification_model::get_max_lifetime_ms() const - { - if (category == RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED) - { - return 30000; - } - return 10000; - } - void notification_model::draw(int w, int y, notification_model& selected) - { - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse; + if (sub->s->is()) { + for (auto&& pb : sub->const_effects) + { + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + label = to_string() << pb->get_name() << "##" << id; + if (ImGui::TreeNode(label.c_str())) + { + for (auto i = 0; i < RS2_OPTION_COUNT; i++) + { + auto opt = static_cast(i); + if (skip_option(opt)) continue; + pb->get_option(opt).draw_option( + dev.is() || update_read_only_options, + false, error_message, viewer.not_model); + } - auto ms = get_age_in_ms() / get_max_lifetime_ms(); - auto t = smoothstep(static_cast(ms), 0.7f, 1.0f); + ImGui::TreePop(); + } + } + } - set_color_scheme(t); - ImGui::PushStyleColor(ImGuiCol_Text, { 1, 1, 1, 1 - t }); + if (sub->post_processing.size() > 0) + { + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); + const ImVec2 pos = ImGui::GetCursorPos(); - auto lines = static_cast(std::count(message.begin(), message.end(), '\n') + 1); - ImGui::SetNextWindowPos({ float(w - 330), float(y) }); - height = lines * 30 + 20; - ImGui::SetNextWindowSize({ float(315), float(height) }); + draw_later.push_back([windows_width, &window, sub, pos, &viewer, this]() { + if (!sub->streaming) ImGui::SetCursorPos({ windows_width - 34 , pos.y - 3 }); + else ImGui::SetCursorPos({ windows_width - 34, pos.y - 3 }); - bool opened = true; - std::string label; + try + { - if (category == RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED) - { - label = to_string() << "Firmware update recommended" << "##" << index; - } - else - { - label = to_string() << "Hardware Notification #" << index; - } + ImGui::PushFont(window.get_font()); - ImGui::Begin(label.c_str(), &opened, flags); + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - if (!opened) - to_close = true; + if (!sub->post_processing_enabled) + { + std::string label = to_string() << " " << textual_icons::toggle_off << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << ",post"; - if (category == RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED) - { - std::regex version_regex("([0-9]+.[0-9]+.[0-9]+.[0-9]+\n)"); - std::smatch sm; - std::regex_search(message, sm, version_regex); - std::string message_prefix = sm.prefix(); - std::string curr_version = sm.str(); - std::string message_suffix = sm.suffix(); - ImGui::Text("%s", message_prefix.c_str()); - ImGui::SameLine(0, 0); - ImGui::PushStyleColor(ImGuiCol_Text, { (float)255 / 255, (float)46 / 255, (float)54 / 255, 1 - t }); - ImGui::Text("%s", curr_version.c_str()); - ImGui::PopStyleColor(); - ImGui::Text("%s", message_suffix.c_str()); + ImGui::PushStyleColor(ImGuiCol_Text, redish); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, { 1, 1, 1, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_Button, { 62 / 255.f, 77 / 255.f, 89 / 255.f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, { 62 / 255.f + 0.1f, 77 / 255.f + 0.1f, 89 / 255.f + 0.1f, 1 - t }); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, { 62 / 255.f - 0.1f, 77 / 255.f - 0.1f, 89 / 255.f - 0.1f, 1 - t }); - ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 2); - std::string button_name = to_string() << "Download update" << "##" << index; - ImGui::Indent(80); - if (ImGui::Button(button_name.c_str(), { 130, 30 })) - { - open_url(recommended_fw_url); - } - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("%s", "Internet connection required"); - ImGui::PopStyleVar(); - ImGui::PopStyleColor(4); - } - else - { - ImGui::Text("%s", message.c_str()); - } + if (ImGui::Button(label.c_str(), { 30,24 })) + { + if (sub->zero_order_artifact_fix && sub->zero_order_artifact_fix->enabled) + sub->verify_zero_order_conditions(); + sub->post_processing_enabled = true; + config_file::instance().set(get_device_sensor_name(sub.get()).c_str(), + sub->post_processing_enabled); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Enable post-processing filters"); + window.link_hovered(); + } + } + else + { + std::string label = to_string() << " " << textual_icons::toggle_on << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << ",post"; + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); - if (lines == 1) - ImGui::SameLine(); + if (ImGui::Button(label.c_str(), { 30,24 })) + { + sub->post_processing_enabled = false; + config_file::instance().set(get_device_sensor_name(sub.get()).c_str(), + sub->post_processing_enabled); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Disable post-processing filters"); + window.link_hovered(); + } + } + ImGui::PopStyleColor(5); + ImGui::PopFont(); + } + catch (...) + { + ImGui::PopStyleColor(5); + ImGui::PopFont(); + throw; + } + }); - if (category != RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED) - { - ImGui::Text("(...)"); + label = to_string() << "Post-Processing##" << id; + if (ImGui::TreeNode(label.c_str())) + { + for (auto&& pb : sub->post_processing) + { + if (!pb->visible) continue; - if (ImGui::IsMouseClicked(0) && ImGui::IsItemHovered()) - { - selected = *this; - } - } + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 5); - ImGui::End(); - ImGui::PopStyleColor(1); - unset_color_scheme(); - ImGui::PopStyleVar(); - } + const ImVec2 pos = ImGui::GetCursorPos(); + const ImVec2 abs_pos = ImGui::GetCursorScreenPos(); - void notifications_model::add_notification(const notification_data& n) - { - { - std::lock_guard lock(m); // need to protect the pending_notifications queue because the insertion of notifications - // done from the notifications callback and proccesing and removing of old notifications done from the main thread + draw_later.push_back([windows_width, &window, sub, pos, &viewer, this, pb]() { + if (!sub->streaming || !sub->post_processing_enabled) ImGui::SetCursorPos({ windows_width - 35, pos.y -3 }); + else + ImGui::SetCursorPos({ windows_width - 35, pos.y - 3 }); - notification_model m(n); - m.index = index++; - m.timestamp = std::chrono::duration(std::chrono::system_clock::now().time_since_epoch()).count(); - pending_notifications.push_back(m); + try + { + ImGui::PushFont(window.get_font()); - if (pending_notifications.size() > MAX_SIZE) - pending_notifications.erase(pending_notifications.begin()); - } + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); - add_log(n.get_description()); - } + if (!sub->post_processing_enabled) + { + if (!pb->enabled) + { + std::string label = to_string() << " " << textual_icons::toggle_off << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); - void notifications_model::draw(ImFont* font, int w, int h) - { - ImGui::PushFont(font); - std::lock_guard lock(m); - if (pending_notifications.size() > 0) - { - // loop over all notifications, remove "old" ones - pending_notifications.erase(std::remove_if(std::begin(pending_notifications), - std::end(pending_notifications), - [&](notification_model& n) - { - return (n.get_age_in_ms() > n.get_max_lifetime_ms() || n.to_close); - }), end(pending_notifications)); + ImGui::PushStyleColor(ImGuiCol_Text, redish); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); + ImGui::ButtonEx(label.c_str(), { 25,24 }, ImGuiButtonFlags_Disabled); + } + else + { + std::string label = to_string() << " " << textual_icons::toggle_on << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); + ImGui::ButtonEx(label.c_str(), { 25,24 }, ImGuiButtonFlags_Disabled); + } + } + else + { + if (!pb->enabled) + { + std::string label = to_string() << " " << textual_icons::toggle_off << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); + + ImGui::PushStyleColor(ImGuiCol_Text, redish); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, redish + 0.1f); + + if (ImGui::Button(label.c_str(), { 25,24 })) + { + if (pb->get_block()->is()) + sub->verify_zero_order_conditions(); + pb->enabled = true; + pb->save_to_config_file(); + } + if (ImGui::IsItemHovered()) + { + label = to_string() << "Enable " << pb->get_name() << " post-processing filter"; + ImGui::SetTooltip("%s", label.c_str()); + window.link_hovered(); + } + } + else + { + std::string label = to_string() << " " << textual_icons::toggle_on << "##" << id << "," << sub->s->get_info(RS2_CAMERA_INFO_NAME) << "," << pb->get_name(); + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue + 0.1f); + + if (ImGui::Button(label.c_str(), { 25,24 })) + { + pb->enabled = false; + pb->save_to_config_file(); + } + if (ImGui::IsItemHovered()) + { + label = to_string() << "Disable " << pb->get_name() << " post-processing filter"; + ImGui::SetTooltip("%s", label.c_str()); + window.link_hovered(); + } + } + } - int idx = 0; - auto height = 55; - for (auto& noti : pending_notifications) - { - noti.draw(w, height, selected); - height += noti.height + 4; - idx++; - } - } + ImGui::PopStyleColor(5); + ImGui::PopFont(); + } + catch (...) + { + ImGui::PopStyleColor(5); + ImGui::PopFont(); + throw; + } + }); + label = to_string() << pb->get_name() << "##" << id; + if (ImGui::TreeNode(label.c_str())) + { + for (auto&& opt : pb->get_option_list()) + { + if (skip_option(opt)) continue; + pb->get_option(opt).draw_option( + dev.is() || update_read_only_options, + false, error_message, viewer.not_model); + } - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; + ImGui::TreePop(); + } + } + ImGui::TreePop(); + } + } - ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0, 0, 0, 0 }); - ImGui::Begin("Notification parent window", nullptr, flags); + ImGui::TreePop(); + } - selected.set_color_scheme(0.f); - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui::PopStyleVar(); + ImGui::PopStyleVar(); + ImGui::PopStyleColor(3); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(3, 3)); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 2); + } - if (selected.message != "") - ImGui::OpenPopup("Notification from Hardware"); - if (ImGui::BeginPopupModal("Notification from Hardware", nullptr, ImGuiWindowFlags_AlwaysAutoResize)) + for (auto&& sub : subdevices) { - ImGui::Text("Received the following notification:"); - std::stringstream ss; - ss << "Timestamp: " - << std::fixed << selected.timestamp - << "\nSeverity: " << selected.severity - << "\nDescription: " << selected.message; - auto s = ss.str(); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); - ImGui::InputTextMultiline("notification", const_cast(s.c_str()), - s.size() + 1, { 500,100 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); - ImGui::PopStyleColor(); + sub->update(error_message, viewer.not_model); + } - if (ImGui::Button("OK", ImVec2(120, 0))) - { - selected.message = ""; - ImGui::CloseCurrentPopup(); - } + ImGui::PopStyleColor(2); + ImGui::PopFont(); - ImGui::EndPopup(); - } + auto end_screen_pos = ImGui::GetCursorScreenPos(); - ImGui::PopStyleVar(2); - ImGui::PopStyleColor(3); - selected.unset_color_scheme(); - ImGui::End(); + if (draw_device_outline) + { + //Left space + ImGui::GetWindowDrawList()->AddRectFilled({ initial_screen_pos.x,initial_screen_pos.y }, { end_screen_pos.x + left_space, end_screen_pos.y }, ImColor(black)); + //Left line + ImGui::GetWindowDrawList()->AddLine({ initial_screen_pos.x + left_space,initial_screen_pos.y + upper_space }, { end_screen_pos.x + left_space, end_screen_pos.y }, ImColor(header_color)); + //Right line + const float compenstaion_right = 17.f;; + ImGui::GetWindowDrawList()->AddLine({ initial_screen_pos.x + panel_width - compenstaion_right, initial_screen_pos.y + upper_space }, { end_screen_pos.x + panel_width - compenstaion_right, end_screen_pos.y }, ImColor(header_color)); + //Button line + const float compenstaion_button = 1.0f; + ImGui::GetWindowDrawList()->AddLine({ end_screen_pos.x + left_space, end_screen_pos.y - compenstaion_button }, { end_screen_pos.x + left_space + panel_width, end_screen_pos.y - compenstaion_button }, ImColor(header_color)); + } + } - ImGui::PopStyleColor(); - ImGui::PopFont(); + void device_model::handle_hardware_events(const std::string& serialized_data) + { + //TODO: Move under hour glass } device_changes::device_changes(rs2::context& ctx) { - _changes.emplace(rs2::device_list{}, ctx.query_devices()); + _changes.emplace(rs2::device_list{}, ctx.query_devices(RS2_PRODUCT_LINE_ANY)); ctx.set_devices_changed_callback([&](event_information& info) { add_changes(info); @@ -6561,53 +6000,42 @@ namespace rs2 _changes.pop(); return true; } - void tm2_model::draw_controller_pose_object() - { - const float sphere_radius = 0.02f; - const float controller_height = 0.2f; - //TODO: Draw controller holder as cylinder - texture_buffer::draw_circle(1, 0, 0, 0, 1, 0, sphere_radius, { 0.0, controller_height + sphere_radius, 0.0 }, 1.0f); - texture_buffer::draw_circle(0, 1, 0, 0, 0, 1, sphere_radius, { 0.0, controller_height + sphere_radius, 0.0 }, 1.0f); - texture_buffer::draw_circle(1, 0, 0, 0, 0, 1, sphere_radius, { 0.0, controller_height + sphere_radius, 0.0 }, 1.0f); - } - void tm2_model::draw_pose_object() + // Aggregate the trajectory path + void tm2_model::update_model_trajectory(const pose_frame& pose, bool track) { - if (!camera_object_button.is_pressed()) // draw camera box - { - glBegin(GL_QUADS); - for (auto&& colored_face : camera_box) - { - auto& c = colored_face.second; - glColor3f(c[0], c[1], c[2]); - for (auto&& v : colored_face.first) - { - glVertex3f(v.x, v.y, v.z); - } - } - glEnd(); + static bool prev_track = track; + if (!_trajectory_tracking) + return; - texture_buffer::draw_circle(1, 0, 0, 0, 1, 0, lens_radius, center_left, 1.0f); - texture_buffer::draw_circle(1, 0, 0, 0, 1, 0, lens_radius, center_right, 1.0f); - } - else //draw axis + if (track) { - texture_buffer::draw_axis(0.1f, 1.f); + // Reset the waypoints on stream resume + if (!prev_track) + reset_trajectory(); + + rs2_pose pose_data = const_cast(pose).get_pose_data(); + auto t = tm2_pose_to_world_transformation(pose_data); + float model[4][4]; + t.to_column_major((float*)model); + + rs2_vector translation{ t.mat[0][3], t.mat[1][3], t.mat[2][3] }; + tracked_point p{ translation , pose_data.tracker_confidence }; //TODO: Osnat - use tracker_confidence or mapper_confidence ? + // register the new waypoint + add_to_trajectory(p); } + + prev_track = track; } - void tm2_model::draw_trajectory(tracked_point& p) + void tm2_model::draw_trajectory(bool is_trajectory_button_pressed) { - if (!trajectory_button.is_pressed()) + if (!is_trajectory_button_pressed) { - if (trajectory.size() > 0) - { - //cleanup last trajectory - trajectory.clear(); - } + record_trajectory(false); + reset_trajectory(); return; } - add_to_trajectory(p); glLineWidth(3.0f); glBegin(GL_LINE_STRIP); @@ -6663,167 +6091,4 @@ namespace rs2 } } } - - void tm2_model::draw_boundary(tracked_point& p) - { - if (!boundary_button.is_pressed()) - { - //TODO - separate button - if (boundary.size() > 0) - { - //cleanup last boundary - boundary.clear(); - } - return; - } - - // if new boundary - grab from trajectory - if (boundary.size() == 0) - { - std::vector trajectory_projection; - //create the boundary from the trajectory - for (auto&& v : trajectory) - { - // project the trajectory on XZ plane - ignore y coordinate of the point - float2 p{ v.first.x, v.first.z }; - trajectory_projection.push_back(p); - } - boundary = simplify_line(trajectory_projection); - } - // check if there is any boundary to render - if (boundary.size() == 0) - { - return; - } - - // check if the current position is inside or outside the boundary, to color it accordingly - float2 point{ p.first.x, p.first.z }; - bool inside = point_in_polygon_2D(boundary, point); - color c; - if (inside) - { - c = { 0.0f, 1.0f, 0.0f }; - } - else - { - c = { 1.0f, 0.0f, 0.0f }; - } - // draw the boundary lines parallel to XZ plane - glLineWidth(1.0f); - for (float height = -1.0f; height < 1.0f; height += 0.2f) - { - glBegin(GL_LINE_STRIP); - glColor3f(c[0], c[1], c[2]); - for (auto&& v : boundary) - { - glVertex3f(v.x, height, v.y); - } - glVertex3f(boundary[0].x, height, boundary[0].y); - glEnd(); - } - - // draw vertical lines along the boundary - glLineWidth(1.0f); - glBegin(GL_LINES); - glColor3f(c[0], c[1], c[2]); - for (auto&& v : boundary) - { - glVertex3f(v.x, -1.0f, v.y); - glVertex3f(v.x, 1.0f, v.y); - } - glEnd(); - } - - std::string get_timestamped_file_name() - { - std::time_t now = std::time(NULL); - std::tm * ptm = std::localtime(&now); - char buffer[16]; - // Format: 20170529_205500 - std::strftime(buffer, 16, "%Y%m%d_%H%M%S", ptm); - return buffer; - } - std::string get_folder_path(special_folder f) - { - std::string res; -#ifdef _WIN32 - if (f == temp_folder) - { - TCHAR buf[MAX_PATH]; - if (GetTempPath(MAX_PATH, buf) != 0) - { - char str[1024]; - wcstombs(str, buf, 1023); - res = str; - } - } - else - { - GUID folder; - switch (f) - { - case user_desktop: folder = FOLDERID_Desktop; - break; - case user_documents: folder = FOLDERID_Documents; - break; - case user_pictures: folder = FOLDERID_Pictures; - break; - case user_videos: folder = FOLDERID_Videos; - break; - default: - throw std::invalid_argument( - std::string("Value of f (") + std::to_string(f) + std::string(") is not supported")); - } - PWSTR folder_path = NULL; - HRESULT hr = SHGetKnownFolderPath(folder, KF_FLAG_DEFAULT_PATH, NULL, &folder_path); - if (SUCCEEDED(hr)) - { - char str[1024]; - wcstombs(str, folder_path, 1023); - CoTaskMemFree(folder_path); - res = str; - res += "\\"; - } - else - { - throw std::runtime_error("Failed to get requested special folder"); - } - } -#endif //_WIN32 -#if defined __linux__ || defined __APPLE__ - if (f == special_folder::temp_folder) - { - const char* tmp_dir = getenv("TMPDIR"); - res = tmp_dir ? tmp_dir : "/tmp/"; - } - else - { - const char* home_dir = getenv("HOME"); - if (!home_dir) - { - struct passwd* pw = getpwuid(getuid()); - home_dir = (pw && pw->pw_dir) ? pw->pw_dir : ""; - } - if (home_dir) - { - res = home_dir; - switch (f) - { - case user_desktop: res += "/Desktop/"; - break; - case user_documents: res += "/Documents/"; - break; - case user_pictures: res += "/Pictures/"; - break; - case user_videos: res += "/Videos/"; - break; - default: - throw std::invalid_argument( - std::string("Value of f (") + std::to_string(f) + std::string(") is not supported")); - } - } - } -#endif // defined __linux__ || defined __APPLE__ - return res; - } } diff --git a/common/model-views.h b/common/model-views.h index 52f0b9e3725..e60a31b661f 100644 --- a/common/model-views.h +++ b/common/model-views.h @@ -7,9 +7,11 @@ #include "rendering.h" #include "ux-window.h" #include "parser.hpp" +#include "rs-config.h" #define GLFW_INCLUDE_GLU #include +#include "opengl3.h" #include #include #include @@ -22,18 +24,7 @@ #include "../third-party/json.hpp" #include "realsense-ui-advanced-mode.h" -#ifdef _WIN32 -#include -#include -#include -#include -#endif - -#if defined __linux__ || defined __APPLE__ -#include -#include -#include -#endif +#include "fw-update-helper.h" ImVec4 from_rgba(uint8_t r, uint8_t g, uint8_t b, uint8_t a, bool consistent_color = false); ImVec4 operator+(const ImVec4& c, float v); @@ -53,6 +44,7 @@ static const ImVec4 dark_grey = from_rgba(30, 30, 30, 255); static const ImVec4 sensor_header_light_blue = from_rgba(80, 99, 115, 0xff); static const ImVec4 sensor_bg = from_rgba(36, 44, 51, 0xff); static const ImVec4 redish = from_rgba(255, 46, 54, 255, true); +static const ImVec4 light_red = from_rgba(255, 146, 154, 255, true); static const ImVec4 dark_red = from_rgba(200, 46, 54, 255, true); static const ImVec4 button_color = from_rgba(62, 77, 89, 0xff); static const ImVec4 header_window_bg = from_rgba(36, 44, 54, 0xff); @@ -60,8 +52,49 @@ static const ImVec4 header_color = from_rgba(62, 77, 89, 255); static const ImVec4 title_color = from_rgba(27, 33, 38, 255); static const ImVec4 device_info_color = from_rgba(33, 40, 46, 255); static const ImVec4 yellow = from_rgba(229, 195, 101, 255, true); +static const ImVec4 yellowish = from_rgba(255, 253, 191, 255, true); static const ImVec4 green = from_rgba(0x20, 0xe0, 0x20, 0xff, true); -static const ImVec4 dark_sensor_bg = from_rgba(0x1b, 0x21, 0x25, 200); +static const ImVec4 dark_sensor_bg = from_rgba(0x1b, 0x21, 0x25, 170); +static const ImVec4 red = from_rgba(233, 0, 0, 255, true); +static const ImVec4 greenish = from_rgba(33, 104, 0, 255); + +// Helper class that lets smoothly animate between its values +template +class animated +{ +private: + T _old, _new; + std::chrono::system_clock::time_point _last_update; + std::chrono::system_clock::duration _duration; +public: + animated(T def, std::chrono::system_clock::duration duration = std::chrono::milliseconds(200)) + : _duration(duration) + { + _last_update = std::chrono::system_clock::now(); + } + animated& operator=(const T& other) + { + if (other != _new) + { + _old = get(); + _new = other; + _last_update = std::chrono::system_clock::now(); + } + return *this; + } + T get() const + { + auto now = std::chrono::system_clock::now(); + auto ms = std::chrono::duration_cast(now - _last_update).count(); + auto duration_ms = std::chrono::duration_cast(_duration).count(); + auto t = (float)ms / duration_ms; + t = std::max(0.f, std::min(rs2::smoothstep(t, 0.f, 1.f), 1.f)); + return _old * (1.f - t) + _new * t; + } + operator T() const { return get(); } + T value() const { return _new; } +}; + inline ImVec4 blend(const ImVec4& c, float a) { @@ -70,8 +103,20 @@ inline ImVec4 blend(const ImVec4& c, float a) namespace rs2 { + void prepare_config_file(); + bool frame_metadata_to_csv(const std::string& filename, rs2::frame frame); + void open_issue(std::string body); + + class device_model; + + typedef std::vector> device_models_list; + + void open_issue(const device_models_list& devices); + + void hyperlink(ux_window& window, const char* title, const char* link); + struct textual_icon { explicit constexpr textual_icon(const char (&unicode_icon)[4]) : @@ -91,6 +136,75 @@ namespace rs2 return os << static_cast(i); } + static const float FEET_TO_METER = 0.3048f; + + namespace configurations + { + namespace record + { + static const char* file_save_mode { "record.file_save_mode" }; + static const char* default_path { "record.default_path" }; + static const char* compression_mode { "record.compression" }; + } + namespace update + { + static const char* allow_rc_firmware { "update.allow_rc_firmware" }; + static const char* recommend_updates { "update.recommend_updates" }; + static const char* recommend_calibration { "update.recommend_calibration" }; + } + namespace viewer + { + static const char* is_3d_view { "viewer_model.is_3d_view" }; + static const char* continue_with_ui_not_aligned { "viewer_model.continue_with_ui_not_aligned" }; + static const char* continue_with_current_fw{ "viewer_model.continue_with_current_fw" }; + static const char* settings_tab { "viewer_model.settings_tab" }; + static const char* sdk_version { "viewer_model.sdk_version" }; + static const char* last_calib_notice { "viewer_model.last_calib_notice" }; + + static const char* log_to_console { "viewer_model.log_to_console" }; + static const char* log_to_file { "viewer_model.log_to_file" }; + static const char* log_filename { "viewer_model.log_filename" }; + static const char* log_severity { "viewer_model.log_severity" }; + static const char* post_processing { "viewer_model.post_processing" }; + static const char* show_map_ruler { "viewer_model.show_map_ruler" }; + static const char* show_stream_details { "viewer_model.show_stream_details" }; + static const char* metric_system { "viewer_model.metric_system" }; + } + namespace window + { + static const char* is_fullscreen { "window.is_fullscreen" }; + static const char* saved_pos { "window.saved_pos" }; + static const char* position_x { "window.position_x" }; + static const char* position_y { "window.position_y" }; + static const char* saved_size { "window.saved_size" }; + static const char* width { "window.width" }; + static const char* height { "window.height" }; + static const char* maximized { "window.maximized" }; + } + namespace performance + { + static const char* glsl_for_rendering { "performance.glsl_for_rendering.v2" }; + static const char* glsl_for_processing { "performance.glsl_for_processing.v2" }; + static const char* enable_msaa { "performance.msaa" }; + static const char* msaa_samples { "performance.msaa_samples" }; + static const char* show_fps { "performance.show_fps" }; + static const char* vsync { "performance.vsync" }; + static const char* font_oversample { "performance.font_oversample.v2" }; + } + namespace ply + { + static const char* mesh { "ply.mesh" }; + static const char* use_normals { "ply.normals" }; + static const char* encoding { "ply.encoding" }; + + enum encoding_types + { + textual = 0, + binary = 1 + }; + } + } + namespace textual_icons { // A note to a maintainer - preserve order when adding values to avoid duplicates @@ -133,6 +247,15 @@ namespace rs2 static const textual_icon braille { u8"\uf2a1" }; static const textual_icon window_maximize { u8"\uf2d0" }; static const textual_icon window_restore { u8"\uf2d2" }; + static const textual_icon grid { u8"\uf1cb" }; + static const textual_icon exit { u8"\uf011" }; + static const textual_icon see_less { u8"\uf070" }; + static const textual_icon dotdotdot { u8"\uf141" }; + static const textual_icon link { u8"\uf08e" }; + static const textual_icon throphy { u8"\uF091" }; + static const textual_icon metadata { u8"\uF0AE" }; + static const textual_icon check { u8"\uF00C" }; + static const textual_icon mail { u8"\uF01C" }; } class subdevice_model; @@ -140,15 +263,17 @@ namespace rs2 void imgui_easy_theming(ImFont*& font_14, ImFont*& font_18); - // Helper function to get window rect from GLFW - rect get_window_rect(GLFWwindow* window); - - // Helper function to get monitor rect from GLFW - rect get_monitor_rect(GLFWmonitor* monitor); - - // Select appropriate scale factor based on the display - // that most of the application is presented on - int pick_scale_factor(GLFWwindow* window); + // avoid display the following options + bool static skip_option(rs2_option opt) + { + if (opt == RS2_OPTION_STREAM_FILTER || + opt == RS2_OPTION_STREAM_FORMAT_FILTER || + opt == RS2_OPTION_STREAM_INDEX_FILTER || + opt == RS2_OPTION_FRAMES_QUEUE_SIZE || + opt == RS2_OPTION_SENSOR_MODE) + return true; + return false; + } template void sort_together(std::vector& vec, std::vector& names) @@ -248,30 +373,218 @@ namespace rs2 std::map selected_format_id; }; - class viewer_model; - class subdevice_model; + class viewer_model; + class subdevice_model; + + void save_processing_block_to_config_file(const char* name, + std::shared_ptr pb, bool enable = true); class processing_block_model { public: processing_block_model(subdevice_model* owner, const std::string& name, - std::shared_ptr block, + std::shared_ptr block, std::function invoker, - std::string& error_message); + std::string& error_message, + bool enabled = true); const std::string& get_name() const { return _name; } - option_model& get_option(rs2_option opt) { return options_metadata[opt]; } + option_model& get_option(rs2_option opt); rs2::frame invoke(rs2::frame f) const { return _invoker(f); } - bool enabled = false; + void save_to_config_file(); + + std::vector get_option_list() + { + return _block->get_supported_options(); + } + + void populate_options(const std::string& opt_base_label, + subdevice_model* model, + bool* options_invalidated, + std::string& error_message); + + std::shared_ptr get_block() { return _block; } + + bool enabled = true; + bool visible = true; private: - std::shared_ptr _block; + std::shared_ptr _block; std::map options_metadata; std::string _name; + std::string _full_name; std::function _invoker; + subdevice_model* _owner; + }; + + class syncer_model + { + public: + syncer_model(): + _active(true){} + + std::shared_ptr create_syncer() + { + stop(); + std::lock_guard lock(_mutex); + auto shared_syncer = std::make_shared(); + rs2::frame_queue q; + + _syncers.push_back({shared_syncer,q}); + shared_syncer->start([this, q](rs2::frame f) + { + q.enqueue(f); + on_frame(); + }); + start(); + return shared_syncer; + } + + void remove_syncer(std::shared_ptr s) + { + stop(); + std::lock_guard lock(_mutex); + _syncers.erase(std::remove_if(_syncers.begin(), _syncers.end(), + [s](std::pair, rs2::frame_queue> pair) + { + return pair.first.get() == s.get(); + }), _syncers.end()) ; + start(); + } + + std::vector try_wait_for_frames() + { + std::lock_guard lock(_mutex); + + std::vector result; + for(auto&& s = _syncers.begin(); s!=_syncers.end() && _active; s++) + { + rs2::frameset f; + if(s->second.try_wait_for_frame(&f,1)) + { + result.push_back(f); + } + } + + return result; + } + + void stop() + { + _active.exchange(false); + } + + void start() + { + _active.exchange(true); + } + + std::function on_frame = []{}; + private: + std::vector, rs2::frame_queue>> _syncers; + std::mutex _mutex; + std::atomic _active; + }; + + option_model create_option_mode(rs2_option opt, std::shared_ptr options, const std::string& opt_base_label, bool* options_invalidated, std::string& error_message); + + using color = std::array; + using face = std::array; + using colored_cube = std::array, 6>; + using tracked_point = std::pair; // translation and confidence + + class press_button_model + { + public: + press_button_model(const char* icon_default, const char* icon_pressed, std::string tooltip_default, std::string tooltip_pressed, + bool init_pressed) + { + state_pressed = init_pressed; + tooltip[unpressed] = tooltip_default; + tooltip[pressed] = tooltip_pressed; + icon[unpressed] = icon_default; + icon[pressed] = icon_pressed; + } + + void toggle_button() { state_pressed = !state_pressed; } + void set_button_pressed(bool p) { state_pressed = p; } + bool is_pressed() { return state_pressed; } + std::string get_tooltip() { return(state_pressed ? tooltip[pressed] : tooltip[unpressed]); } + std::string get_icon() { return(state_pressed ? icon[pressed] : icon[unpressed]); } + + private: + enum button_state + { + unpressed, //default + pressed + }; + + bool state_pressed = false; + std::string tooltip[2]; + std::string icon[2]; + }; + + class tm2_model + { + public: + tm2_model() : _trajectory_tracking(true) + { + } + void draw_trajectory(bool is_trajectory_button_pressed); + void update_model_trajectory(const pose_frame& pose, bool track); + void record_trajectory(bool on) { _trajectory_tracking = on; }; + void reset_trajectory() { trajectory.clear(); }; + + private: + void add_to_trajectory(tracked_point& p); + + const float len_x = 0.1f; + const float len_y = 0.03f; + const float len_z = 0.01f; + const float lens_radius = 0.005f; + /* + 4--------------------------3 + /| /| + 5-|------------------------6 | + | /1 | /2 + |/ |/ + 7--------------------------8 + */ + float3 v1{ -len_x / 2, -len_y / 2, len_z / 2 }; + float3 v2{ len_x / 2, -len_y / 2, len_z / 2 }; + float3 v3{ len_x / 2, len_y / 2, len_z / 2 }; + float3 v4{ -len_x / 2, len_y / 2, len_z / 2 }; + float3 v5{ -len_x / 2, len_y / 2, -len_z / 2 }; + float3 v6{ len_x / 2, len_y / 2, -len_z / 2 }; + float3 v7{ -len_x / 2, -len_y / 2, -len_z / 2 }; + float3 v8{ len_x / 2, -len_y / 2, -len_z / 2 }; + face f1{ { v1,v2,v3,v4 } }; //Back + face f2{ { v2,v8,v6,v3 } }; //Right side + face f3{ { v4,v3,v6,v5 } }; //Top side + face f4{ { v1,v4,v5,v7 } }; //Left side + face f5{ { v7,v8,v6,v5 } }; //Front + face f6{ { v1,v2,v8,v7 } }; //Bottom side + + std::array colors{ { + { { 0.5f, 0.5f, 0.5f } }, //Back + { { 0.7f, 0.7f, 0.7f } }, //Right side + { { 1.0f, 0.7f, 0.7f } }, //Top side + { { 0.7f, 0.7f, 0.7f } }, //Left side + { { 0.4f, 0.4f, 0.4f } }, //Front + { { 0.7f, 0.7f, 0.7f } } //Bottom side + } }; + + colored_cube camera_box{ { { f1,colors[0] },{ f2,colors[1] },{ f3,colors[2] },{ f4,colors[3] },{ f5,colors[4] },{ f6,colors[5] } } }; + float3 center_left{ v5.x + len_x / 3, v6.y - len_y / 3, v5.z }; + float3 center_right{ v6.x - len_x / 3, v6.y - len_y / 3, v5.z }; + + std::vector trajectory; + std::vector boundary; + bool _trajectory_tracking; + }; class subdevice_model @@ -284,13 +597,18 @@ namespace rs2 bool* options_invalidated, std::string& error_message); - subdevice_model(device& dev, std::shared_ptr s, std::string& error_message); + subdevice_model(device& dev, std::shared_ptr s, std::string& error_message, viewer_model& viewer); + ~subdevice_model(); + bool is_there_common_fps() ; + bool supports_on_chip_calib(); bool draw_stream_selection(); bool is_selected_combination_supported(); std::vector get_selected_profiles(); + std::vector get_supported_profiles(); void stop(viewer_model& viewer); - void play(const std::vector& profiles, viewer_model& viewer); + void play(const std::vector& profiles, viewer_model& viewer, std::shared_ptr); + bool is_synchronized_frame(viewer_model& viewer, const frame& f); void update(std::string& error_message, notifications_model& model); void draw_options(const std::vector& drawing_order, bool update_read_only_options, std::string& error_message, @@ -299,13 +617,25 @@ namespace rs2 bool draw_option(rs2_option opt, bool update_read_only_options, std::string& error_message, notifications_model& model) { - return options_metadata[opt].draw_option(update_read_only_options, streaming, error_message, model); + if(options_metadata.find(opt)!=options_metadata.end()) + return options_metadata[opt].draw_option(update_read_only_options, streaming, error_message, model); + return false; } bool is_paused() const; void pause(); void resume(); + bool can_enable_zero_order(); + void verify_zero_order_conditions(); + + void update_ui(std::vector profiles_vec); + void get_sorted_profiles(std::vector& profiles); + + template + bool check_profile(stream_profile p, T cond, std::map>& profiles_map, + std::vector& results, V key, int num_streams, stream_profile& def_p); + void restore_ui_selection() { ui = last_valid_ui; } void store_ui_selection() { last_valid_ui = ui; } @@ -330,8 +660,11 @@ namespace rs2 return false; } + viewer_model& viewer; + std::function on_frame = []{}; std::shared_ptr s; device dev; + tm2_model tm2; std::map options_metadata; std::vector resolutions; @@ -339,6 +672,7 @@ namespace rs2 std::vector shared_fpses; std::map> formats; std::map stream_enabled; + std::map prev_stream_enabled; std::map stream_display_names; subdevice_ui_selection ui; @@ -354,8 +688,9 @@ namespace rs2 frame_queues queues; std::mutex _queue_lock; - bool options_invalidated = false; - int next_option = RS2_OPTION_COUNT; + bool _options_invalidated = false; + int next_option = 0; + std::vector supported_options; bool streaming = false; rect normalized_zoom{0, 0, 1, 1}; @@ -376,28 +711,17 @@ namespace rs2 bool show_algo_roi = false; std::shared_ptr depth_colorizer; - std::shared_ptr decimation_filter; - std::shared_ptr spatial_filter; - std::shared_ptr temporal_filter; - std::shared_ptr hole_filling_filter; - std::shared_ptr depth_to_disparity; - std::shared_ptr disparity_to_depth; + std::shared_ptr yuy2rgb; + std::shared_ptr zero_order_artifact_fix; + std::shared_ptr depth_decoder; std::vector> post_processing; - bool post_processing_enabled = false; + bool post_processing_enabled = true; std::vector> const_effects; }; class viewer_model; - inline bool ends_with(const std::string& s, const std::string& suffix) - { - auto i = s.rbegin(), j = suffix.rbegin(); - for (; i != s.rend() && j != suffix.rend() && *i == *j; - i++, j++); - return j == suffix.rend(); - } - void outline_rect(const rect& r); void draw_rect(const rect& r, int line_width = 1); @@ -405,23 +729,25 @@ namespace rs2 { public: stream_model(); - texture_buffer* upload_frame(frame&& f); + std::shared_ptr upload_frame(frame&& f); bool is_stream_visible(); void update_ae_roi_rect(const rect& stream_rect, const mouse_info& mouse, std::string& error_message); void show_frame(const rect& stream_rect, const mouse_info& g, std::string& error_message); - void show_metadata(const mouse_info& g); rect get_normalized_zoom(const rect& stream_rect, const mouse_info& g, bool is_middle_clicked, float zoom_val); bool is_stream_alive(); - void show_stream_footer(ImFont* font, const rect& stream_rect,const mouse_info& mouse); + void show_stream_footer(ImFont* font, const rect& stream_rect,const mouse_info& mouse, viewer_model& viewer); void show_stream_header(ImFont* font, const rect& stream_rect, viewer_model& viewer); + void show_stream_imu(ImFont* font, const rect& stream_rect, const rs2_vector& axis, const mouse_info& mouse); + void show_stream_pose(ImFont* font, const rect& stream_rect, const rs2_pose& pose_data, + rs2_stream stream_type, bool fullScreen, float y_offset, viewer_model& viewer); void snapshot_frame(const char* filename,viewer_model& viewer) const; void begin_stream(std::shared_ptr d, rs2::stream_profile p); rect layout; - std::unique_ptr texture; + std::shared_ptr texture; float2 size; float2 original_size; rect get_stream_bounds() const { return { 0, 0, size.x, size.y };} @@ -432,13 +758,13 @@ namespace rs2 double timestamp = 0.0; unsigned long long frame_number = 0; rs2_timestamp_domain timestamp_domain = RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME; - fps_calc fps; + fps_calc fps, view_fps; + int count = 0; rect roi_display_rect{}; frame_metadata frame_md; - bool metadata_displayed = false; bool capturing_roi = false; // active modification of roi std::shared_ptr dev; - float _frame_timeout = 5000.0f; + float _frame_timeout = RS2_DEFAULT_TIMEOUT; float _min_timeout = 167.0f; bool _mid_click = false; @@ -449,6 +775,9 @@ namespace rs2 rect curr_info_rect{}; temporal_event _stream_not_alive; bool show_map_ruler = true; + bool show_metadata = false; + + animated _info_height{ 0.f }; }; std::pair get_device_name(const device& dev); @@ -462,25 +791,33 @@ namespace rs2 void reset(); explicit device_model(device& dev, std::string& error_message, viewer_model& viewer); + ~device_model(); void start_recording(const std::string& path, std::string& error_message); void stop_recording(viewer_model& viewer); void pause_record(); void resume_record(); - int draw_playback_panel(ImFont* font, viewer_model& view); + + void refresh_notifications(viewer_model& viewer); + + int draw_playback_panel(ux_window& window, ImFont* font, viewer_model& view); bool draw_advanced_controls(viewer_model& view, ux_window& window, std::string& error_message); void draw_controls(float panel_width, float panel_height, ux_window& window, std::string& error_message, device_model*& device_to_remove, viewer_model& viewer, float windows_width, - bool update_read_only_options, std::vector>& draw_later, bool load_json_if_streaming = false, json_loading_func json_loading = [](std::function load) {load(); }, bool draw_device_outline = true); void handle_hardware_events(const std::string& serialized_data); + void begin_update(std::vector data, + viewer_model& viewer, std::string& error_message); + void begin_update_unsigned(viewer_model& viewer, std::string& error_message); std::vector> subdevices; + std::shared_ptr syncer; + std::shared_ptr dev_syncer; bool is_streaming() const; bool metadata_supported = false; bool get_curr_advanced_controls = true; @@ -492,23 +829,22 @@ namespace rs2 bool _playback_repeat = true; bool _should_replay = false; bool show_device_info = false; - bool allow_remove = true; bool show_depth_only = false; bool show_stream_selection = true; - std::map> controllers; - std::set> available_controllers; std::vector> infos; std::vector restarting_device_info; std::set advanced_mode_settings_file_names; std::string selected_file_preset; + + std::vector> related_notifications; + private: - void draw_info_icon(const ImVec2& size); + void draw_info_icon(ux_window& window, ImFont* font, const ImVec2& size); int draw_seek_bar(); - int draw_playback_controls(ImFont* font, viewer_model& view); + int draw_playback_controls(ux_window& window, ImFont* font, viewer_model& view); advanced_mode_control amc; std::string pretty_time(std::chrono::nanoseconds duration); - void draw_controllers_panel(ImFont* font, bool is_device_streaming); float draw_device_panel(float panel_width, ux_window& window, std::string& error_message, @@ -530,91 +866,10 @@ namespace rs2 std::shared_ptr _recorder; std::vector> live_subdevices; + periodic_timer _update_readonly_options_timer; + bool pause_required = false; }; - struct notification_data - { - notification_data(std::string description, - double timestamp, - rs2_log_severity severity, - rs2_notification_category category); - rs2_notification_category get_category() const; - std::string get_description() const; - double get_timestamp() const; - rs2_log_severity get_severity() const; - - std::string _description; - double _timestamp; - rs2_log_severity _severity; - rs2_notification_category _category; - }; - - struct notification_model - { - notification_model(); - notification_model(const notification_data& n); - double get_age_in_ms() const; - void draw(int w, int y, notification_model& selected); - void set_color_scheme(float t) const; - void unset_color_scheme() const; - const int get_max_lifetime_ms() const; - - int height = 40; - int index = 0; - std::string message; - double timestamp = 0.0; - rs2_log_severity severity = RS2_LOG_SEVERITY_NONE; - std::chrono::high_resolution_clock::time_point created_time; - rs2_notification_category category; - bool to_close = false; // true when user clicks on close notification - // TODO: Add more info - }; - - struct notifications_model - { - void add_notification(const notification_data& n); - void draw(ImFont* font, int w, int h); - - void foreach_log(std::function action) - { - std::lock_guard lock(m); - for (auto&& l : log) - { - action(l); - } - - auto rc = ImGui::GetCursorPos(); - ImGui::SetCursorPos({ rc.x, rc.y + 5 }); - - if (new_log) - { - ImGui::SetScrollPosHere(); - new_log = false; - } - } - - void add_log(std::string line) - { - std::lock_guard lock(m); - if (!line.size()) return; - if (line[line.size() - 1] != '\n') line += "\n"; - log.push_back(line); - new_log = true; - } - - private: - std::vector pending_notifications; - int index = 1; - const int MAX_SIZE = 6; - std::mutex m; - bool new_log = false; - - std::vector log; - notification_model selected; - }; - - std::string get_file_name(const std::string& path); - class viewer_model; class post_processing_filters { @@ -622,7 +877,7 @@ namespace rs2 post_processing_filters(viewer_model& viewer) : processing_block([&](rs2::frame f, const rs2::frame_source& source) { - process(std::move(f),source); + process(std::move(f), source); }), viewer(viewer), depth_stream_active(false), @@ -630,7 +885,9 @@ namespace rs2 resulting_queue(static_cast(resulting_queue_max_size)), render_thread(), render_thread_active(false), - pc(new pointcloud()) + pc(new gl::pointcloud()), + uploader(new gl::uploader()), + disp_to_depth(false) { std::string s; pc_gen = std::make_shared(nullptr, "Pointcloud Engine", pc, [=](rs2::frame f) { return pc->calculate(f); }, s); @@ -642,22 +899,10 @@ namespace rs2 void update_texture(frame f) { pc->map_to(f); } /* Start the rendering thread in case its disabled */ - void start() - { - if (render_thread_active.exchange(true) == false) - { - render_thread = std::thread(&post_processing_filters::render_loop, this); - } - } + void start(); /* Stop the rendering thread in case its enabled */ - void stop() - { - if (render_thread_active.exchange(false) == true) - { - render_thread.join(); - } - } + void stop(); bool is_rendering() const { @@ -686,7 +931,6 @@ namespace rs2 const size_t resulting_queue_max_size; std::map frames_queue; - rs2::frame_queue syncer_queue; rs2::frame_queue resulting_queue; std::shared_ptr get_pc() const { return pc; } @@ -695,274 +939,38 @@ namespace rs2 private: viewer_model& viewer; void process(rs2::frame f, const rs2::frame_source& source); - std::vector handle_frame(rs2::frame f); + std::vector handle_frame(rs2::frame f, const rs2::frame_source& source); + + void map_id(rs2::frame new_frame, rs2::frame old_frame); + void map_id_frameset_to_frame(rs2::frameset first, rs2::frame second); + void map_id_frameset_to_frameset(rs2::frameset first, rs2::frameset second); + void map_id_frame_to_frame(rs2::frame first, rs2::frame second); + + rs2::frame apply_filters(rs2::frame f, const rs2::frame_source& source); + std::shared_ptr get_frame_origin(const rs2::frame& f); - rs2::frame apply_filters(rs2::frame f); + void zero_first_pixel(const rs2::frame& f); rs2::frame last_tex_frame; rs2::processing_block processing_block; std::shared_ptr pc; rs2::frameset model; std::shared_ptr pc_gen; + rs2::disparity_transform disp_to_depth; + rs2::depth_huffman_decoder depth_decoder; /* Post processing filter rendering */ std::atomic render_thread_active; // True when render post processing filter rendering thread is active, False otherwise - std::thread render_thread; // Post processing filter rendering Thread running render_loop() + std::shared_ptr render_thread; // Post processing filter rendering Thread running render_loop() void render_loop(); // Post processing filter rendering function int last_frame_number = 0; double last_timestamp = 0; int last_stream_id = 0; - }; - - class press_button_model - { - public: - press_button_model(const char* icon_default, const char* icon_pressed, std::string tooltip_default, std::string tooltip_pressed) - { - tooltip[unpressed] = tooltip_default; - tooltip[pressed] = tooltip_pressed; - icon[unpressed] = icon_default; - icon[pressed] = icon_pressed; - } - void toggle_button() { state_pressed = !state_pressed; } - void set_button_pressed(bool p) { state_pressed = p; } - bool is_pressed() { return state_pressed; } - std::string get_tooltip() { return(state_pressed ? tooltip[pressed]: tooltip[unpressed]); } - std::string get_icon() { return(state_pressed ? icon[pressed] : icon[unpressed]); } - - private: - enum button_state - { - unpressed, //default - pressed - }; - - bool state_pressed = false; - std::string tooltip[2]; - std::string icon[2]; + std::shared_ptr uploader; // GL element that helps pre-emptively copy frames to the GPU }; - using color = std::array; - using face = std::array; - using colored_cube = std::array, 6>; - using tracked_point = std::pair; // translation and confidence - - class tm2_model - { - public: - void draw_controller_pose_object(); - void draw_pose_object(); - void draw_trajectory(tracked_point& p); - void draw_boundary(tracked_point& p); - - press_button_model trajectory_button{ u8"\uf1b0", u8"\uf1b0","Draw trajectory", "Stop drawing trajectory" }; - press_button_model camera_object_button{ u8"\uf047", u8"\uf083", "Draw pose axis", "Draw camera pose" }; - press_button_model boundary_button{ u8"\uf278", u8"\uf278", "Set trajectory as boundary", "Discard boundary" }; - - private: - void add_to_trajectory(tracked_point& p); - - const float len_x = 0.1f; - const float len_y = 0.03f; - const float len_z = 0.01f; - const float lens_radius = 0.005f; - /* - 4--------------------------3 - /| /| - 5-|------------------------6 | - | /1 | /2 - |/ |/ - 7--------------------------8 - */ - float3 v1{ -len_x/2, -len_y/2, len_z/2 }; - float3 v2{ len_x/2, -len_y/2, len_z/2 }; - float3 v3{ len_x/2, len_y/2, len_z/2 }; - float3 v4{ -len_x/2, len_y/2, len_z/2 }; - float3 v5{ -len_x/2, len_y/2, -len_z/2 }; - float3 v6{ len_x/2, len_y/2, -len_z/2 }; - float3 v7{ -len_x/2, -len_y/2, -len_z/2 }; - float3 v8{ len_x/2, -len_y/2, -len_z/2 }; - face f1{ { v1,v2,v3,v4 } }; //Back - face f2{ { v2,v8,v6,v3 } }; //Right side - face f3{ { v4,v3,v6,v5 } }; //Top side - face f4{ { v1,v4,v5,v7 } }; //Left side - face f5{ { v7,v8,v6,v5 } }; //Front - face f6{ { v1,v2,v8,v7 } }; //Bottom side - - std::array colors{ { - {{ 0.5f, 0.5f, 0.5f }}, //Back - {{ 0.7f, 0.7f, 0.7f }}, //Right side - {{ 1.0f, 0.7f, 0.7f }}, //Top side - {{ 0.7f, 0.7f, 0.7f }}, //Left side - {{ 0.4f, 0.4f, 0.4f }}, //Front - {{ 0.7f, 0.7f, 0.7f }} //Bottom side - } }; - - colored_cube camera_box{ { { f1,colors[0] },{ f2,colors[1] },{ f3,colors[2] },{ f4,colors[3] },{ f5,colors[4] },{ f6,colors[5] } } }; - float3 center_left{ v5.x + len_x / 3, v6.y - len_y / 3, v5.z }; - float3 center_right{ v6.x - len_x / 3, v6.y - len_y / 3, v5.z }; - - std::vector trajectory; - std::vector boundary; - - }; - - class viewer_model - { - public: - void reset_camera(float3 pos = { 0.0f, 0.0f, -1.0f }); - - const float panel_width = 340.f; - const float panel_y = 50.f; - const float default_log_h = 110.f; - - float get_output_height() const { return (is_output_collapsed ? default_log_h : 20); } - - rs2::frame handle_ready_frames(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message); - - viewer_model() - : ppf(*this), - synchronization_enable(true) - { - s.start(ppf.syncer_queue); - reset_camera(); - rs2_error* e = nullptr; - not_model.add_log(to_string() << "librealsense version: " << api_version_to_string(rs2_get_api_version(&e)) << "\n"); - } - - ~viewer_model() - { - // Stopping post processing filter rendering thread - ppf.stop(); - streams.clear(); - } - - void begin_stream(std::shared_ptr d, rs2::stream_profile p); - - bool is_3d_texture_source(frame f); - bool is_3d_depth_source(frame f); - - texture_buffer* upload_frame(frame&& f); - - std::map calc_layout(const rect& r); - - void show_no_stream_overlay(ImFont* font, int min_x, int min_y, int max_x, int max_y); - void show_no_device_overlay(ImFont* font, int min_x, int min_y); - - void show_paused_icon(ImFont* font, int x, int y, int id); - void show_recording_icon(ImFont* font_18, int x, int y, int id, float alpha_delta); - - void popup_if_error(ImFont* font, std::string& error_message); - - void show_event_log(ImFont* font_14, float x, float y, float w, float h); - - void show_3dviewer_header(ImFont* font, rs2::rect stream_rect, bool& paused, std::string& error_message); - - void update_3d_camera(const rect& viewer_rect, - mouse_info& mouse, bool force = false); - - void show_top_bar(ux_window& window, const rect& viewer_rect); - - void render_3d_view(const rect& view_rect, texture_buffer* texture, rs2::points points); - - void render_2d_view(const rect& view_rect, ux_window& win, int output_height, - ImFont *font1, ImFont *font2, size_t dev_model_num, const mouse_info &mouse, std::string& error_message); - - void gc_streams(); - - std::mutex streams_mutex; - std::map streams; - std::map streams_origin; - bool fullscreen = false; - stream_model* selected_stream = nullptr; - - post_processing_filters ppf; - tm2_model tm2; - - notifications_model not_model; - bool is_output_collapsed = false; - bool is_3d_view = false; - bool paused = false; - - - void draw_viewport(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message, texture_buffer* texture, rs2::points f = rs2::points()); - - bool allow_3d_source_change = true; - bool allow_stream_close = true; - - std::array roi_rect; - bool draw_plane = false; - - bool draw_frustrum = true; - bool support_non_syncronized_mode = true; - std::atomic synchronization_enable; - - int selected_depth_source_uid = -1; - int selected_tex_source_uid = -1; - - float dim_level = 1.f; - - rs2::asynchronous_syncer s; - private: - struct rgb { - uint32_t r, g, b; - }; - - struct rgb_per_distance { - float depth_val; - rgb rgb_val; - }; - - friend class post_processing_filters; - std::map get_interpolated_layout(const std::map& l); - void show_icon(ImFont* font_18, const char* label_str, const char* text, int x, int y, - int id, const ImVec4& color, const std::string& tooltip = ""); - void draw_color_ruler(const mouse_info& mouse, - const stream_model& s_model, - const rect& stream_rect, - std::vector rgb_per_distance_vec, - float ruler_length, - const std::string& ruler_units); - float calculate_ruler_max_distance(const std::vector& distances) const; - - streams_layout _layout; - streams_layout _old_layout; - std::chrono::high_resolution_clock::time_point _transition_start_time; - - // 3D-Viewer state - float3 pos = { 0.0f, 0.0f, -0.5f }; - float3 target = { 0.0f, 0.0f, 0.0f }; - float3 up; - bool fixed_up = true; - bool render_quads = true; - - float view[16]; - bool texture_wrapping_on = true; - GLint texture_border_mode = GL_CLAMP_TO_EDGE; // GL_CLAMP_TO_BORDER - - rs2::points last_points; - texture_buffer* last_texture; - texture_buffer texture; - - }; - - void export_to_ply(const std::string& file_name, notifications_model& ns, frameset points, video_frame texture, bool notify = true); - - // Wrapper for cross-platform dialog control - enum file_dialog_mode { - open_file = (1 << 0), - save_file = (1 << 1), - open_dir = (1 << 2), - override_file = (1 << 3) - }; - - const char* file_dialog_open(file_dialog_mode flags, const char* filters, const char* default_path, const char* default_name); - - // Encapsulate helper function to resolve linking - int save_to_png(const char* filename, - size_t pixel_width, size_t pixels_height, size_t bytes_per_pixel, - const void* raster_data, size_t stride_bytes); + void export_frame(const std::string& fname, std::unique_ptr exporter, notifications_model& ns, rs2::frame data, bool notify = true); // Auxillary function to save stream data in its internal (raw) format bool save_frame_raw_data(const std::string& filename, rs2::frame frame); @@ -980,16 +988,4 @@ namespace rs2 std::queue _changes; std::mutex _mtx; }; - - enum special_folder - { - user_desktop, - user_documents, - user_pictures, - user_videos, - temp_folder - }; - - std::string get_timestamped_file_name(); - std::string get_folder_path(special_folder f); } diff --git a/common/notifications.cpp b/common/notifications.cpp new file mode 100644 index 00000000000..7f51373da4b --- /dev/null +++ b/common/notifications.cpp @@ -0,0 +1,1039 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#ifdef _MSC_VER +#ifndef NOMINMAX +#define NOMINMAX +#endif +#endif + +#include +#include +#include +#include + +#include + +#include "notifications.h" +#include + +#include "model-views.h" + +#include "os.h" + +#include "viewer.h" + +#include "metadata-helper.h" + +using namespace std; +using namespace chrono; + +namespace rs2 +{ + notification_data::notification_data(std::string description, + rs2_log_severity severity, + rs2_notification_category category) + : _description(description), + _severity(severity), + _category(category) + { + _timestamp = (double)std::chrono::high_resolution_clock::now().time_since_epoch().count(); + } + + rs2_notification_category notification_data::get_category() const + { + return _category; + } + + std::string notification_data::get_description() const + { + return _description; + } + + + double notification_data::get_timestamp() const + { + return _timestamp; + } + + rs2_log_severity notification_data::get_severity() const + { + return _severity; + } + + notification_model::notification_model() + { + custom_action = []{}; + last_x = 500000; + last_y = 200; + message = ""; + last_moved = std::chrono::system_clock::now(); + + created_time = std::chrono::system_clock::now(); + last_interacted = std::chrono::system_clock::now() - std::chrono::milliseconds(500); + } + + notification_model::notification_model(const notification_data& n) + : notification_model() + { + message = n.get_description(); + timestamp = n.get_timestamp(); + severity = n.get_severity(); + created_time = std::chrono::system_clock::now(); + last_interacted = std::chrono::system_clock::now() - std::chrono::milliseconds(500); + category = n.get_category(); + } + + double notification_model::get_age_in_ms(bool total) const + { + auto interacted = duration(last_interacted - created_time).count(); + return duration(system_clock::now() - created_time).count() - (total ? 0.0 : interacted); + } + + bool notification_model::interacted() const + { + return duration(system_clock::now() - last_interacted).count() < 100; + } + + // Pops the N colors that were pushed in set_color_scheme + void notification_model::unset_color_scheme() const + { + ImGui::PopStyleColor(6); + } + + void process_notification_model::draw_progress_bar(ux_window & win, int bar_width) + { + auto progress = update_manager->get_progress(); + + auto now = system_clock::now(); + auto ellapsed = duration_cast(now - last_progress_time).count() / 1000.f; + + auto new_progress = last_progress + ellapsed * progress_speed; + curr_progress_value = std::min(threshold_progress, new_progress); + + if (last_progress != progress) + { + last_progress_time = system_clock::now(); + + int delta = progress - last_progress; + + if (ellapsed > 0.f) progress_speed = delta / ellapsed; + + threshold_progress = float(std::min(100, progress + delta)); + + last_progress = progress; + } + + auto filled_w = (curr_progress_value * (bar_width - 4)) / 100.f; + + auto pos = ImGui::GetCursorScreenPos(); + ImGui::GetWindowDrawList()->AddRectFilled({ float(pos.x), float(pos.y) }, + { float(pos.x + bar_width), float(pos.y + 20) }, ImColor(black)); + + if (curr_progress_value > 0.f) + { + for (int i = 20; i >= 0; i -= 2) + { + auto a = curr_progress_value / 100.f; + ImGui::GetWindowDrawList()->AddRectFilled({ float(pos.x + 3 - i), float(pos.y + 3 - i) }, + { float(pos.x + filled_w + i), float(pos.y + 17 + i) }, + ImColor(alpha(light_blue, sqrt(a) * 0.02f)), i); + } + + ImGui::GetWindowDrawList()->AddRectFilled({ float(pos.x + 3), float(pos.y + 3) }, + { float(pos.x + filled_w), float(pos.y + 17) }, ImColor(light_blue)); + + ImGui::GetWindowDrawList()->AddRectFilledMultiColor({ float(pos.x + 5), float(pos.y + 5) }, + { float(pos.x + filled_w), float(pos.y + 15) }, + ImColor(saturate(light_blue, 1.f)), ImColor(saturate(light_blue, 0.9f)), + ImColor(saturate(light_blue, 0.8f)), ImColor(saturate(light_blue, 1.f))); + + rs2::rect pbar{ float(pos.x + 3), float(pos.y + 3), float(bar_width), 17.f }; + auto mouse = win.get_mouse(); + if (pbar.contains(mouse.cursor)) + { + std::string progress_str = to_string() << progress << "%"; + ImGui::SetTooltip("%s", progress_str.c_str()); + } + } + + ImGui::SetCursorScreenPos({ float(pos.x), float(pos.y + 25) }); + } + + /* Sets color scheme for notifications, must be used with unset_color_scheme to pop all colors in the end + Parameter t indicates the transparency of the nofication interface */ + void notification_model::set_color_scheme(float t) const + { + ImVec4 c; + + ImGui::PushStyleColor(ImGuiCol_Button, saturate(c, 1.3)); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, saturate(c, 0.9)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(c, 1.5)); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + c = alpha(white, 1 - t); + ImGui::PushStyleColor(ImGuiCol_Text, c); + + if (severity == RS2_LOG_SEVERITY_ERROR || + severity == RS2_LOG_SEVERITY_WARN) + { + c = alpha(dark_red, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + else + { + c = alpha(saturate(grey, 0.7f), 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + } + + const int notification_model::get_max_lifetime_ms() const + { + return 10000; + } + + void notification_model::draw_text(const char* msg, int x, int y, int h) + { + std::string text_name = to_string() << "##notification_text_" << index; + ImGui::PushTextWrapPos(x + width - 100); + ImGui::PushStyleColor(ImGuiCol_FrameBg, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarBg, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrab, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabActive, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabHovered, transparent); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); + if (enable_click) ImGui::Text("%s", msg); + else ImGui::InputTextMultiline(text_name.c_str(), const_cast(msg), + strlen(msg) + 1, { float(width - (count > 1 ? 40 : 10)), float(h) }, + ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(6); + ImGui::PopTextWrapPos(); + + if (ImGui::IsItemHovered()) + { + last_interacted = system_clock::now(); + } + } + + std::string notification_model::get_title() + { + auto title = message; + + auto parts = split_string(title, '`'); + if (parts.size() > 1) title = parts[0]; + + return title; + } + + int notification_model::calc_height() + { + auto title = get_title(); + auto lines = static_cast(std::count(title.begin(), title.end(), '\n') + 1); + return (lines + 1) * ImGui::GetTextLineHeight() + 5; + } + + void process_notification_model::draw_pre_effect(int x, int y) + { + // TODO: Make polymorphic + if (update_state == 2) + { + auto k = duration_cast(system_clock::now() - last_progress_time).count() / 500.f; + if (k <= 1.f) + { + auto size = 100; + k = pow(1.f - smoothstep(static_cast(k), 0.f, 1.f), 2.f); + ImGui::GetWindowDrawList()->AddRectFilled({ float(x - size * k), float(y - size * k) }, + { float(x + width + size * k), float(y + height + size * k) }, + ImColor(alpha(white, (1.f - k) / 2)), (size * k) / 2); + } + } + } + + void notification_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + draw_text(get_title().c_str(), x, y, height - 35); + } + + void rs2::notification_model::draw_dismiss(ux_window & win, int x, int y) + { + ImGui::SetCursorScreenPos({ float(x + width - 105), float(y + height - 25) }); + + string id = to_string() << "Dismiss" << "##" << index; + if (ImGui::Button(id.c_str(), { 100, 20 })) + { + dismiss(true); + } + } + + std::function notification_model::draw(ux_window& win, int w, int y, + std::shared_ptr& selected, std::string& error_message) + { + std::function action; + while(dispatch_queue.try_dequeue(&action)) action(); + + std::function follow_up = []{}; + + if (visible) + { + auto stack = std::min(count, max_stack); + auto x = w - width - 10; + + if (dismissed) + { + x = w + width; + } + + if (!animating && (fabs(x - last_x) > 1.f || fabs(y - last_y) > 1.f)) + { + if (last_x > 100000) + { + last_x = x + 500; + last_y = y; + } + last_moved = system_clock::now(); + animating = true; + } + + auto elapsed = duration(system_clock::now() - last_moved).count(); + auto s = smoothstep(static_cast(elapsed / 250.f), 0.0f, 1.0f); + + if (s < 1.f) + { + x = s * x + (1 - s) * last_x; + y = s * y + (1 - s) * last_y; + } + else + { + last_x = x; last_y = y; + animating = false; + if (dismissed && !expanded) to_close = true; + } + + auto ms = get_age_in_ms() / get_max_lifetime_ms(); + auto t = smoothstep(static_cast(ms), 0.8f, 1.f); + if (pinned) t = 0.f; + + set_color_scheme(t); + + height = calc_height(); + + auto c = ImGui::GetStyle().Colors[ImGuiCol_WindowBg]; + c.w = smoothstep(static_cast(get_age_in_ms(true) / 200.f), 0.0f, 1.0f); + c.w = std::min(c.w, 1.f - t); + + draw_pre_effect(x, y); + + for (int i = stack - 1; i >= 0; i--) + { + auto ccopy = alpha(c, (0.9f * c.w) / (i + 1)); + + ImVec4 shadow{ 0.1f, 0.1f, 0.1f, 0.1f }; + + ImGui::GetWindowDrawList()->AddRectFilled({ float(x + 2 + i * stack_offset), float(y + 2 + i * stack_offset) }, + { float(x + 2 + width + i * stack_offset), float(y + 2 + height + i * stack_offset) }, ImColor(shadow)); + + ImGui::GetWindowDrawList()->AddRectFilledMultiColor({ float(x + i * stack_offset), float(y + i * stack_offset) }, + { float(x + width + i * stack_offset), float(y + height + i * stack_offset) }, + ImColor(saturate(ccopy, 0.9f)), ImColor(saturate(ccopy, 0.95f)), + ImColor(saturate(ccopy, 1.2f)), ImColor(saturate(ccopy, 1.1f))); + + ImGui::GetWindowDrawList()->AddRect({ float(x + i * stack_offset), float(y + i * stack_offset) }, + { float(x + width + i * stack_offset), float(y + height + i * stack_offset) }, ImColor(saturate(ccopy, 0.5f))); + } + + ImGui::SetCursorScreenPos({ float(x), float(y) }); + + if (enable_click) + { + std::string button_name = to_string() << "##" << index; + + ImGui::PushStyleColor(ImGuiCol_Button, transparent); + + if (ImGui::Button(button_name.c_str(), { (float)width, (float)height })) + { + follow_up = custom_action; + dismiss(false); + } + if (ImGui::IsItemHovered()) + win.link_hovered(); + + ImGui::PopStyleColor(); + } + + if (count > 1) + { + std::string count_str = to_string() << "x " << count; + ImGui::SetCursorScreenPos({ float(x + width - 22 - count_str.size() * 5), float(y + 7) }); + ImGui::Text("%s", count_str.c_str()); + } + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + 5) }); + + draw_content(win, x, y, t, error_message); + + if (enable_expand) + { + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + + ImGui::PushFont(win.get_large_font()); + + ImGui::PushStyleColor(ImGuiCol_Button, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, transparent); + string id = to_string() << textual_icons::dotdotdot << "##" << index; + if (ImGui::Button(id.c_str())) + { + selected = shared_from_this(); + } + + if (ImGui::IsItemHovered()) + win.link_hovered(); + + ImGui::PopStyleColor(3); + ImGui::PopFont(); + } + + if (enable_dismiss) + { + draw_dismiss(win, x, y); + } + + unset_color_scheme(); + } + + if (expanded) + { + draw_expanded(win, error_message); + } + + + return follow_up; + } + + std::shared_ptr notifications_model::add_notification(const notification_data& n) + { + return add_notification(n, []{}, false); + } + + std::shared_ptr notifications_model::add_notification(const notification_data& n, + std::function custom_action, bool use_custom_action) + { + std::shared_ptr result = nullptr; + { + using namespace std; + using namespace chrono; + lock_guard lock(m); // need to protect the pending_notifications queue because the insertion of notifications + // done from the notifications callback and proccesing and removing of old notifications done from the main thread + + for (auto&& nm : pending_notifications) + { + if (nm->category == n.get_category() && nm->message == n.get_description()) + { + nm->last_interacted = std::chrono::system_clock::now(); + nm->count++; + return nm; + } + } + + auto m = std::make_shared(n); + m->index = index++; + result = m; + m->timestamp = duration(system_clock::now().time_since_epoch()).count(); + + if (n.get_category() == RS2_NOTIFICATION_CATEGORY_COUNT) + { + m->pinned = true; + } + + if (use_custom_action) + { + m->custom_action = custom_action; + m->enable_click = true; + m->enable_expand = false; + m->enable_dismiss = false; + } + + pending_notifications.push_back(m); + + if (pending_notifications.size() > (size_t)MAX_SIZE) + { + auto it = pending_notifications.begin(); + while (it != pending_notifications.end() && (*it)->pinned) it++; + + if (it != pending_notifications.end()) + pending_notifications.erase(it); + } + } + + add_log(n.get_description()); + return result; + } + + void notifications_model::add_notification(std::shared_ptr model) + { + { + using namespace std; + using namespace chrono; + lock_guard lock(m); // need to protect the pending_notifications queue because the insertion of notifications + // done from the notifications callback and proccesing and removing of old notifications done from the main thread + + model->index = index++; + model->timestamp = duration(system_clock::now().time_since_epoch()).count(); + + pending_notifications.push_back(model); + + if (pending_notifications.size() > (size_t)MAX_SIZE) + { + auto it = pending_notifications.begin(); + while (it != pending_notifications.end() && (*it)->pinned) it++; + + if (it != pending_notifications.end()) + pending_notifications.erase(it); + } + } + + add_log(model->get_title()); + } + + void notifications_model::draw_snoozed_button() + { + auto has_snoozed = snoozed_notifications.size(); + ImGui::PushStyleColor(ImGuiCol_Text, !has_snoozed ? sensor_bg : light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, !has_snoozed ? sensor_bg : light_blue); + + const auto width = 50.f; + + using namespace std; + using namespace chrono; + + if (!has_snoozed) + { + ImGui::ButtonEx(textual_icons::mail, { width, width }, ImGuiButtonFlags_Disabled); + + if (ImGui::IsItemActive()) + ImGui::SetTooltip("No pending notifications at this point"); + } + else + { + auto k = duration_cast(system_clock::now() - last_snoozed).count() / 500.f; + if (k <= 1.f) + { + auto size = 50.f; + + ImGui::PopStyleColor(); + ImGui::PushStyleColor(ImGuiCol_Text, saturate(white, smoothstep(static_cast(k), 0.f, 1.f))); + } + + if (ImGui::Button(textual_icons::mail, { width, width })) + { + for (auto&& n : snoozed_notifications) + { + n->forced = true; + n->snoozed = false; + n->last_y -= 500; + pending_notifications.push_back(n); + } + snoozed_notifications.clear(); + } + + if (ImGui::IsItemActive()) + ImGui::SetTooltip("Pending notifications available. Click to review"); + } + + ImGui::PopStyleColor(2); + } + + void notifications_model::draw(ux_window& win, int w, int h, std::string& error_message) + { + ImGui::PushFont(win.get_font()); + + std::vector> follow_up; + + { + bool pinned_drawn = false; + std::lock_guard lock(m); + if (pending_notifications.size() > 0) + { + snoozed_notifications.erase(std::remove_if(std::begin(snoozed_notifications), + std::end(snoozed_notifications), + [&](std::shared_ptr& n) + { + return n->dismissed; + }), end(snoozed_notifications)); + + // loop over all notifications, remove "old" ones + pending_notifications.erase(std::remove_if(std::begin(pending_notifications), + std::end(pending_notifications), + [&](std::shared_ptr& n) + { + if (n->snoozed && n->pinned) + { + n->dismissed = false; + n->to_close = false; + snoozed_notifications.push_back(n); + last_snoozed = std::chrono::system_clock::now(); + return true; + } + return ((n->get_age_in_ms() > n->get_max_lifetime_ms() && + !n->pinned && !n->expanded) || n->to_close); + }), end(pending_notifications)); + + auto height = 60; + for (auto& noti : pending_notifications) + { + if (pinned_drawn && noti->pinned && !noti->forced) + { + continue; + } + + follow_up.push_back(noti->draw(win, w, height, selected, error_message)); + + if (noti->pinned) pinned_drawn = true; + + if (noti->visible) + height += noti->height + 4 + + std::min(noti->count, noti->max_stack) * noti->stack_offset; + } + } + + auto flags = ImGuiWindowFlags_NoResize | + ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | + ImGuiWindowFlags_NoTitleBar; + + ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0, 0, 0, 0 }); + //ImGui::Begin("Notification parent window", nullptr, flags); + + //selected.set_color_scheme(0.f); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(3, 3)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + + if (selected && selected->message != "") + ImGui::OpenPopup("Notification from Hardware"); + if (ImGui::BeginPopupModal("Notification from Hardware", nullptr, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::Text("Received the following notification:"); + + auto parts = split_string(selected->message, '`'); + + std::stringstream ss; + ss << "Timestamp: " + << std::fixed << selected->timestamp + << "\nSeverity: " << selected->severity + << "\nDescription: "; + + for (auto&& part : parts) ss << part << "\n"; + + auto s = ss.str(); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); + ImGui::InputTextMultiline("notification", const_cast(s.c_str()), + s.size() + 1, { 500,100 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(); + + if (ImGui::Button("OK", ImVec2(120, 0))) + { + selected->message = ""; + selected = nullptr; + ImGui::CloseCurrentPopup(); + } + else + { + std::string clip = ""; + auto lines = split_string(selected->message, '\n'); + for (auto line : lines) + { + if (line.size() && line[0] == '$') clip += line.substr(2) + "\n"; + } + if (clip != "") + { + ImGui::SameLine(); + if (ImGui::Button(" Copy Commands ")) + { + glfwSetClipboardString(win, clip.c_str()); + } + if (ImGui::IsItemActive()) + ImGui::SetTooltip("Paste the copied commands to a terminal and enter your password to run"); + } + } + + ImGui::EndPopup(); + } + + ImGui::PopStyleVar(2); + ImGui::PopStyleColor(3); + + ImGui::PopStyleColor(); + } + + for (auto& action : follow_up) + { + try + { + action(); + } + catch (...) {} + } + + ImGui::PopFont(); + } + + void notifications_model::foreach_log(std::function action) + { + std::lock_guard lock(m); + for (auto&& l : log) + { + action(l); + } + + auto rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x, rc.y + 5 }); + + if (new_log) + { + ImGui::SetScrollPosHere(); + new_log = false; + } + } + + void notifications_model::add_log(std::string line) + { + std::lock_guard lock(m); + if (!line.size()) return; + if (line[line.size() - 1] != '\n') line += "\n"; + log.push_back(line); + new_log = true; + } + + version_upgrade_model::version_upgrade_model(int version) + : process_notification_model(nullptr), _version(version) + { + enable_expand = false; + enable_dismiss = true; + update_state = 2; + //pinned = true; + last_progress_time = system_clock::now(); + } + + void version_upgrade_model::set_color_scheme(float t) const + { + notification_model::set_color_scheme(t); + ImGui::PopStyleColor(1); + auto c = alpha(sensor_bg, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + + void version_upgrade_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + if (_first) + { + last_progress_time = system_clock::now(); + _first = false; + } + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(light_grey, 1.f - t)); + ImGui::PushFont(win.get_large_font()); + + ImGui::SetCursorScreenPos({ float(x + 20), float(y + 16) }); + ImGui::Text("Welcome to"); ImGui::SameLine(); + std::string txt = to_string() << "librealsense " << RS2_API_VERSION_STR << "!"; + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(white, 1.f - t)); + ImGui::Text("%s", txt.c_str()); + ImGui::PopStyleColor(); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 17), float(y + 41) }); + + std::string link = to_string() << "https://github.com/IntelRealSense/librealsense/wiki/Release-Notes#release-" << _version; + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(white, 1.f - t)); + if (ImGui::Button("What's new")) + { + open_url(link.c_str()); + } + ImGui::PopStyleColor(); + if (ImGui::IsItemHovered()) + { + win.link_hovered(); + ImGui::SetTooltip("Open the Release Notes. Internet connection is required"); + } + ImGui::SameLine(); + ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 5); + ImGui::Text("in this release?"); + ImGui::PopStyleColor(); + } + + int version_upgrade_model::calc_height() + { + return 80; + } + + void process_manager::log(std::string line) + { + std::lock_guard lock(_log_lock); + _log += line + "\n"; + } + + void process_manager::reset() + { + _progress = 0; + _started = false; + _done = false; + _failed = false; + _last_error = ""; + } + + void process_manager::fail(std::string error) + { + _last_error = error; + _progress = 0; + log("\nERROR: " + error); + _failed = true; + } + + void notification_model::invoke(std::function action) + { + single_consumer_queue q; + dispatch_queue.enqueue([&q, &action](){ + try + { + action(); + q.enqueue(true); + } + catch(...) + { + q.enqueue(false); + } + }); + bool res; + if (!q.dequeue(&res, 100000) || !res) + throw std::runtime_error("Invoke operation failed!"); + } + + void process_manager::start(std::shared_ptr n) + { + auto cleanup = [n]() { + //n->dismiss(false); + }; + + auto invoke = [n](std::function action) { + n->invoke(action); + }; + + log(to_string() << "Started " << _process_name << " process"); + + auto me = shared_from_this(); + std::weak_ptr ptr(me); + + std::thread t([ptr, cleanup, invoke]() { + auto self = ptr.lock(); + if (!self) return; + + try + { + self->process_flow(cleanup, invoke); + } + catch (const error& e) + { + self->fail(error_to_string(e)); + cleanup(); + } + catch (const std::exception& ex) + { + self->fail(ex.what()); + cleanup(); + } + catch (...) + { + self->fail(to_string() << "Unknown error during " << self->_process_name << " process!"); + cleanup(); + } + }); + t.detach(); + + _started = true; + } + + void export_manager::process_flow( + std::function cleanup, + invoker invoke) + { + _progress = 5; + _exporter->process(_data); + _progress = 100; + + _done = true; + } + + void export_notification_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + using namespace std; + using namespace chrono; + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 4) }); + + ImVec4 shadow{ 1.f, 1.f, 1.f, 0.1f }; + ImGui::GetWindowDrawList()->AddRectFilled({ float(x), float(y) }, + { float(x + width), float(y + 25) }, ImColor(shadow)); + + if (update_state != STATE_COMPLETE) + { + ImGui::Text("Export in progress"); + + ImGui::SetCursorScreenPos({ float(x + 10), float(y + 35) }); + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(light_grey, 1. - t)); + + std::string s = to_string() << "Saving 3D view to " << + get_file_name(get_manager().get_filename()); + ImGui::Text("%s", s.c_str()); + + ImGui::PopStyleColor(); + } + else + { + ImGui::Text("Export Completed"); + + ImGui::SetCursorScreenPos({ float(x + 10), float(y + 35) }); + ImGui::PushFont(win.get_large_font()); + std::string txt = to_string() << textual_icons::throphy; + ImGui::Text("%s", txt.c_str()); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 40), float(y + 35) }); + std::string s = to_string() << "Finished saving 3D view to " << + get_file_name(get_manager().get_filename()); + + ImGui::Text("%s", s.c_str()); + } + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + + const auto bar_width = width - 115; + + if (update_state == STATE_IN_PROGRESS) + { + if (update_manager->done()) + { + update_state = STATE_COMPLETE; + pinned = false; + last_progress_time = last_interacted = system_clock::now(); + } + + if (!expanded) + { + if (update_manager->failed()) + { + update_manager->check_error(error_message); + update_state = STATE_FAILED; + pinned = false; + dismiss(false); + } + + draw_progress_bar(win, bar_width); + + ImGui::SetCursorScreenPos({ float(x + width - 105), float(y + height - 25) }); + } + } + } + + int export_notification_model::calc_height() + { + return 85; + } + + void export_notification_model::set_color_scheme(float t) const + { + notification_model::set_color_scheme(t); + + ImGui::PopStyleColor(1); + + ImVec4 c; + + if (update_state == STATE_COMPLETE) + { + c = alpha(saturate(light_blue, 0.7f), 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + else + { + c = alpha(sensor_bg, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + } + + export_notification_model::export_notification_model(std::shared_ptr manager) + : process_notification_model(manager) + { + enable_expand = false; + expanded = false; + if (expanded) visible = false; + + message = ""; + update_state = STATE_IN_PROGRESS; + this->severity = RS2_LOG_SEVERITY_INFO; + this->category = RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED; + + pinned = true; + } + + metadata_warning_model::metadata_warning_model() + : notification_model() + { + enable_expand = false; + enable_dismiss = true; + pinned = true; + message = "Frame Metadata is a device feature allowing\n" + "software synchronization between different\n" + "camera streams.\n" + "It must be explicitly enabled on Windows OS\n"; + } + + void metadata_warning_model::set_color_scheme(float t) const + { + notification_model::set_color_scheme(t); + ImGui::PopStyleColor(1); + auto c = alpha(sensor_bg, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + + void metadata_warning_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 4) }); + + ImVec4 shadow{ 1.f, 1.f, 1.f, 0.1f }; + ImGui::GetWindowDrawList()->AddRectFilled({ float(x), float(y) }, + { float(x + width), float(y + 25) }, ImColor(shadow)); + + ImGui::Text("Frame Metadata Disabled"); + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + 27) }); + + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + draw_text(get_title().c_str(), x, y, height - 50); + ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + std::string button_name = to_string() << "Enable" << "##enable_metadata" << index; + + const auto bar_width = width - 115; + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f })) + { + metadata_helper::instance().enable_metadata(); + dismiss(false); + } + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Enables metadata on connected devices (you may be prompted for administrator privileges)"); + } + } +} diff --git a/common/notifications.h b/common/notifications.h new file mode 100644 index 00000000000..72ac37dff6d --- /dev/null +++ b/common/notifications.h @@ -0,0 +1,252 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#pragma once + +#include +#include +#include +#include + +#include "ux-window.h" +#include "../src/concurrency.h" + +namespace rs2 +{ + class notification_data + { + public: + notification_data(std::string description, + rs2_log_severity severity, + rs2_notification_category category); + + rs2_notification_category get_category() const; + std::string get_description() const; + double get_timestamp() const; + rs2_log_severity get_severity() const; + private: + std::string _description; + double _timestamp; + rs2_log_severity _severity; + rs2_notification_category _category; + }; + + struct notification_model : public std::enable_shared_from_this + { + notification_model(); + notification_model(const notification_data& n); + double get_age_in_ms(bool total = false) const; + bool interacted() const; + std::function draw(ux_window& win, int w, int y, + std::shared_ptr& selected, std::string& error_message); + void draw_text(const char* msg, int x, int y, int h); + virtual void set_color_scheme(float t) const; + void unset_color_scheme() const; + virtual const int get_max_lifetime_ms() const; + + virtual int calc_height(); + virtual void draw_pre_effect(int x, int y) {} + virtual void draw_content(ux_window& win, int x, int y, float t, std::string& error_message); + virtual void draw_dismiss(ux_window& win, int x, int y); + virtual void draw_expanded(ux_window& win, std::string& error_message) {} + + virtual void dismiss(bool snooze) { dismissed = true; snoozed = snooze; } + + std::string get_title(); + + std::function custom_action; + + int count = 1; + int height = 40; + int index = 0; + std::string message; + double timestamp = 0.0; + rs2_log_severity severity = RS2_LOG_SEVERITY_NONE; + std::chrono::system_clock::time_point created_time; + rs2_notification_category category; + bool to_close = false; // true when user clicks on close notification + + int width = 320; + int stack_offset = 4; + int max_stack = 3; + + // Behaviour variables + bool dismissed = false; + bool expanded = false; + bool visible = true; + bool pinned = false; + bool forced = false; + bool snoozed = false; + bool enable_dismiss = true; + bool enable_expand = true; + bool enable_click = false; + + float last_x, last_y; + bool animating = false; + std::chrono::system_clock::time_point last_moved; + std::chrono::system_clock::time_point last_interacted; + + single_consumer_queue> dispatch_queue; + void invoke(std::function action); + }; + + class device_model; + + using invoker = std::function)>; + + class process_manager : public std::enable_shared_from_this + { + public: + process_manager(std::string name) + : _process_name(name) {} + + void start(std::shared_ptr n); + int get_progress() const { return _progress; } + bool done() const { return _done; } + bool started() const { return _started; } + bool failed() const { return _failed; } + const std::string& get_log() const { return _log; } + void reset(); + + void check_error(std::string& error) { if (_failed) error = _last_error; } + + void log(std::string line); + void fail(std::string error); + + protected: + virtual void process_flow( + std::function cleanup, + invoker invoke) = 0; + + std::string _log; + bool _started = false; + bool _done = false; + bool _failed = false; + int _progress = 0; + + std::mutex _log_lock; + std::string _last_error; + std::string _process_name; + }; + + struct process_notification_model : public notification_model + { + process_notification_model(std::shared_ptr manager) + : update_manager(manager) {} + + void draw_progress_bar(ux_window& win, int w); + + void draw_pre_effect(int x, int y) override; + + std::shared_ptr update_manager = nullptr; + int update_state = 0; + float progress_speed = 5.f; + std::chrono::system_clock::time_point last_progress_time; + int last_progress = 0; + float curr_progress_value = 0.f; + float threshold_progress = 5.f; + }; + + struct version_upgrade_model : public process_notification_model + { + version_upgrade_model(int version); + + void set_color_scheme(float t) const override; + void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override; + int calc_height() override; + const int get_max_lifetime_ms() const override { return 40000; } + + int _version; + bool _first = true; + }; + + struct metadata_warning_model : public notification_model + { + metadata_warning_model(); + + void set_color_scheme(float t) const override; + void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override; + int calc_height() override { return 130; } + const int get_max_lifetime_ms() const override { return 40000; } + }; + + + struct notifications_model + { + std::shared_ptr add_notification(const notification_data& n); + std::shared_ptr add_notification(const notification_data& n, + std::function custom_action, + bool use_custom_action = true); + void add_notification(std::shared_ptr model); + void draw(ux_window& win, int w, int h, std::string& error_message); + + void foreach_log(std::function action); + void add_log(std::string line); + + void draw_snoozed_button(); + + notifications_model() : last_snoozed(std::chrono::system_clock::now()) {} + + private: + std::vector> pending_notifications; + std::vector> snoozed_notifications; + int index = 1; + const int MAX_SIZE = 6; + std::recursive_mutex m; + bool new_log = false; + + std::vector log; + std::shared_ptr selected; + std::chrono::system_clock::time_point last_snoozed; + }; + + inline ImVec4 saturate(const ImVec4& a, float f) + { + return{ f * a.x, f * a.y, f * a.z, a.w }; + } + + inline ImVec4 alpha(const ImVec4& v, float a) + { + return{ v.x, v.y, v.z, a }; + } + + class export_manager : public process_manager + { + public: + export_manager(const std::string& fname, std::unique_ptr exporter, frame data) + : process_manager("Export"), _fname(fname), _exporter(std::move(exporter)), _data(data) {} + + std::string get_filename() const { return _fname; } + frame get_data() const { return _data; } + + + private: + void process_flow(std::function cleanup, + invoker invoke) override; + + std::string _fname; + std::unique_ptr _exporter; + frame _data; + }; + + struct export_notification_model : public process_notification_model + { + enum states + { + STATE_INITIAL_PROMPT = 0, + STATE_IN_PROGRESS = 1, + STATE_COMPLETE = 2, + STATE_FAILED = 3, + }; + + export_manager& get_manager() { + return *std::dynamic_pointer_cast(update_manager); + } + + export_notification_model(std::shared_ptr manager); + + void set_color_scheme(float t) const override; + void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override; + int calc_height() override; + }; +} diff --git a/common/on-chip-calib.cpp b/common/on-chip-calib.cpp new file mode 100644 index 00000000000..fca8071df13 --- /dev/null +++ b/common/on-chip-calib.cpp @@ -0,0 +1,1176 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#include +#include "on-chip-calib.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "../tools/depth-quality/depth-metrics.h" + +namespace rs2 +{ + void on_chip_calib_manager::stop_viewer(invoker invoke) + { + try + { + auto profiles = _sub->get_selected_profiles(); + + invoke([&](){ + // Stop viewer UI + _sub->stop(_viewer); + }); + + // Wait until frames from all active profiles stop arriving + bool frame_arrived = false; + while (frame_arrived && _viewer.streams.size()) + { + for (auto&& stream : _viewer.streams) + { + if (std::find(profiles.begin(), profiles.end(), + stream.second.original_profile) != profiles.end()) + { + auto now = std::chrono::high_resolution_clock::now(); + if (now - stream.second.last_frame > std::chrono::milliseconds(200)) + frame_arrived = false; + } + else frame_arrived = false; + } + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + } + catch (...) {} + } + + // Wait for next depth frame and return it + rs2::depth_frame on_chip_calib_manager::fetch_depth_frame(invoker invoke) + { + auto profiles = _sub->get_selected_profiles(); + bool frame_arrived = false; + rs2::depth_frame res = rs2::frame{}; + while (!frame_arrived) + { + for (auto&& stream : _viewer.streams) + { + if (std::find(profiles.begin(), profiles.end(), + stream.second.original_profile) != profiles.end()) + { + auto now = std::chrono::high_resolution_clock::now(); + if (now - stream.second.last_frame < std::chrono::milliseconds(100)) + { + if (auto f = stream.second.texture->get_last_frame(false).as()) + { + frame_arrived = true; + res = f; + } + } + } + } + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + return res; + } + + void on_chip_calib_manager::start_viewer(int w, int h, int fps, invoker invoke) + { + try + { + if (_ui) _sub->ui = *_ui; // Save previous configuration + + // Select only depth stream + _sub->ui.selected_format_id.clear(); + _sub->ui.selected_format_id[RS2_STREAM_DEPTH] = 0; + + // Select FPS value + for (int i = 0; i < _sub->shared_fps_values.size(); i++) + { + if (_sub->shared_fps_values[i] == fps) + _sub->ui.selected_shared_fps_id = i; + } + + // Select Resolution + for (int i = 0; i < _sub->res_values.size(); i++) + { + auto kvp = _sub->res_values[i]; + if (kvp.first == w && kvp.second == h) + _sub->ui.selected_res_id = i; + } + + // If not supported, try WxHx30 + if (!_sub->is_selected_combination_supported()) + { + for (int i = 0; i < _sub->shared_fps_values.size(); i++) + { + //if (_sub->shared_fps_values[i] == 30) + _sub->ui.selected_shared_fps_id = i; + if (_sub->is_selected_combination_supported()) break; + } + + // If still not supported, try VGA30 + if (!_sub->is_selected_combination_supported()) + { + for (int i = 0; i < _sub->res_values.size(); i++) + { + auto kvp = _sub->res_values[i]; + if (kvp.first == 640 && kvp.second == 480) + _sub->ui.selected_res_id = i; + } + } + } + + auto profiles = _sub->get_selected_profiles(); + + invoke([&](){ + if (!_model.dev_syncer) + _model.dev_syncer = _viewer.syncer->create_syncer(); + + // Start streaming + _sub->play(profiles, _viewer, _model.dev_syncer); + for (auto&& profile : profiles) + { + _viewer.begin_stream(_sub, profile); + } + }); + + // Wait for frames to arrive + bool frame_arrived = false; + int count = 0; + while (!frame_arrived && count++ < 100) + { + for (auto&& stream : _viewer.streams) + { + if (std::find(profiles.begin(), profiles.end(), + stream.second.original_profile) != profiles.end()) + { + auto now = std::chrono::high_resolution_clock::now(); + if (now - stream.second.last_frame < std::chrono::milliseconds(100)) + frame_arrived = true; + } + } + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + } + catch (...) {} + } + + std::pair on_chip_calib_manager::get_metric(bool use_new) + { + return _metrics[use_new ? 1 : 0]; + } + + std::pair on_chip_calib_manager::get_depth_metrics(invoker invoke) + { + using namespace depth_quality; + + auto f = fetch_depth_frame(invoke); + auto sensor = _sub->s->as(); + auto intr = f.get_profile().as().get_intrinsics(); + rs2::region_of_interest roi { (int)(f.get_width() * 0.45f), (int)(f.get_height() * 0.45f), + (int)(f.get_width() * 0.55f), (int)(f.get_height() * 0.55f) }; + std::vector v; + + std::vector fill_rates; + std::vector rmses; + + auto show_plane = _viewer.draw_plane; + + auto on_frame = [sensor, &fill_rates, &rmses, this]( + const std::vector& points, + const plane p, + const rs2::region_of_interest roi, + const float baseline_mm, + const float focal_length_pixels, + const int ground_thruth_mm, + const bool plane_fit, + const float plane_fit_to_ground_truth_mm, + const float distance_mm, + bool record, + std::vector& samples) + { + float TO_METERS = sensor.get_depth_scale(); + static const float TO_MM = 1000.f; + static const float TO_PERCENT = 100.f; + + // Calculate fill rate relative to the ROI + auto fill_rate = points.size() / float((roi.max_x - roi.min_x)*(roi.max_y - roi.min_y)) * TO_PERCENT; + fill_rates.push_back(fill_rate); + + if (!plane_fit) return; + + std::vector points_set = points; + std::vector distances; + + // Reserve memory for the data + distances.reserve(points.size()); + + // Convert Z values into Depth values by aligning the Fitted plane with the Ground Truth (GT) plane + // Calculate distance and disparity of Z values to the fitted plane. + // Use the rotated plane fit to calculate GT errors + for (auto point : points_set) + { + // Find distance from point to the reconstructed plane + auto dist2plane = p.a*point.x + p.b*point.y + p.c*point.z + p.d; + // Project the point to plane in 3D and find distance to the intersection point + rs2::float3 plane_intersect = { float(point.x - dist2plane*p.a), + float(point.y - dist2plane*p.b), + float(point.z - dist2plane*p.c) }; + + // Store distance, disparity and gt- error + distances.push_back(dist2plane * TO_MM); + } + + // Remove outliers [below 1% and above 99%) + std::sort(points_set.begin(), points_set.end(), [](const rs2::float3& a, const rs2::float3& b) { return a.z < b.z; }); + size_t outliers = points_set.size() / 50; + points_set.erase(points_set.begin(), points_set.begin() + outliers); // crop min 0.5% of the dataset + points_set.resize(points_set.size() - outliers); // crop max 0.5% of the dataset + + // Calculate Plane Fit RMS (Spatial Noise) mm + double plane_fit_err_sqr_sum = std::inner_product(distances.begin(), distances.end(), distances.begin(), 0.); + auto rms_error_val = static_cast(std::sqrt(plane_fit_err_sqr_sum / distances.size())); + auto rms_error_val_per = TO_PERCENT * (rms_error_val / distance_mm); + rmses.push_back(rms_error_val_per); + }; + + auto rms_std = 1000.f; + auto new_rms_std = rms_std; + auto count = 0; + + // Capture metrics on bundles of 31 frame + // Repeat until get "decent" bundle or reach 10 sec + do + { + rms_std = new_rms_std; + + rmses.clear(); + + for (int i = 0; i < 31; i++) + { + f = fetch_depth_frame(invoke); + auto res = depth_quality::analyze_depth_image(f, sensor.get_depth_scale(), sensor.get_stereo_baseline(), + &intr, roi, 0, true, v, false, on_frame); + + _viewer.draw_plane = true; + _viewer.roi_rect = res.plane_corners; + } + + auto rmses_sum_sqr = std::inner_product(rmses.begin(), rmses.end(), rmses.begin(), 0.); + new_rms_std = static_cast(std::sqrt(rmses_sum_sqr / rmses.size())); + } while ((new_rms_std < rms_std * 0.8f && new_rms_std > 10.f) && count++ < 10); + + std::sort(fill_rates.begin(), fill_rates.end()); + std::sort(rmses.begin(), rmses.end()); + + float median_fill_rate, median_rms; + if (fill_rates.empty()) + median_fill_rate = 0; + else + median_fill_rate = fill_rates[fill_rates.size() / 2]; + if (rmses.empty()) + median_rms = 0; + else + median_rms = rmses[rmses.size() / 2]; + + _viewer.draw_plane = show_plane; + + return { median_fill_rate, median_rms }; + } + + std::vector on_chip_calib_manager::safe_send_command( + const std::vector& cmd, const std::string& name) + { + auto dp = _dev.as(); + if (!dp) throw std::runtime_error("Device does not support debug protocol!"); + + auto res = dp.send_and_receive_raw_data(cmd); + + if (res.size() < sizeof(int32_t)) throw std::runtime_error(to_string() << "Not enough data from " << name << "!"); + auto return_code = *((int32_t*)res.data()); + if (return_code < 0) throw std::runtime_error(to_string() << "Firmware error (" << return_code << ") from " << name << "!"); + + return res; + } + + void on_chip_calib_manager::update_last_used() + { + time_t rawtime; + time(&rawtime); + std::string id = to_string() << configurations::viewer::last_calib_notice << "." << _sub->s->get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); + config_file::instance().set(id.c_str(), (long long)rawtime); + } + + void on_chip_calib_manager::calibrate() + { + std::stringstream ss; + ss << "{\n \"speed\":" << speed << + ",\n \"average step count\":" << average_step_count << + ",\n \"scan parameter\":" << (intrinsic_scan ? 0 : 1) << + ",\n \"step count\":" << step_count << + ",\n \"apply preset\":" << (apply_preset ? 1 : 0) << + ",\n \"accuracy\":" << accuracy <<"}"; + + std::string json = ss.str(); + + + auto calib_dev = _dev.as(); + if (tare) + _new_calib = calib_dev.run_tare_calibration(ground_truth, json, [&](const float progress) {_progress = progress;}, 5000); + else + _new_calib = calib_dev.run_on_chip_calibration(json, &_health, [&](const float progress) {_progress = progress;}, 5000); + } + + void on_chip_calib_manager::process_flow(std::function cleanup, + invoker invoke) + { + update_last_used(); + + log(to_string() << "Starting calibration at speed " << speed); + + _in_3d_view = _viewer.is_3d_view; + _viewer.is_3d_view = true; + + auto calib_dev = _dev.as(); + _old_calib = calib_dev.get_calibration_table(); + + _was_streaming = _sub->streaming; + _synchronized = _viewer.synchronization_enable.load(); + _post_processing = _sub->post_processing_enabled; + _sub->post_processing_enabled = false; + _viewer.synchronization_enable = false; + + _restored = false; + + if (!_was_streaming) + { + start_viewer(0,0,0, invoke); + } + + // Capture metrics before + auto metrics_before = get_depth_metrics(invoke); + _metrics.push_back(metrics_before); + + stop_viewer(invoke); + + _ui = std::make_shared(_sub->ui); + + // Switch into special Auto-Calibration mode + start_viewer(256, 144, 90, invoke); + + calibrate(); + + log(to_string() << "Calibration completed, health factor = " << _health); + + stop_viewer(invoke); + + start_viewer(0, 0, 0, invoke); // Start with default settings + + // Make new calibration active + apply_calib(true); + + // Capture metrics after + auto metrics_after = get_depth_metrics(invoke); + _metrics.push_back(metrics_after); + + _progress = 100; + + _done = true; + } + + void on_chip_calib_manager::restore_workspace(invoker invoke) + { + try + { + if (_restored) return; + + _viewer.is_3d_view = _in_3d_view; + + _viewer.synchronization_enable = _synchronized; + + stop_viewer(invoke); + + if (_ui.get()) + { + _sub->ui = *_ui; + _ui.reset(); + } + + _sub->post_processing_enabled = _post_processing; + + std::this_thread::sleep_for(std::chrono::milliseconds(200)); + + if (_was_streaming) start_viewer(0, 0, 0, invoke); + + _restored = true; + } + catch (...) {} + } + + void on_chip_calib_manager::keep() + { + // Write new calibration using SETINITCAL command + auto calib_dev = _dev.as(); + calib_dev.write_calibration(); + + } + + void on_chip_calib_manager::apply_calib(bool use_new) + { + auto calib_dev = _dev.as(); + calib_dev.set_calibration_table(use_new ? _new_calib : _old_calib); + } + + void autocalib_notification_model::draw_dismiss(ux_window& win, int x, int y) + { + using namespace std; + using namespace chrono; + + auto health = get_manager().get_health(); + auto recommend_keep = health > 0.25; + if (!recommend_keep && update_state == RS2_CALIB_STATE_CALIB_COMPLETE && !get_manager().tare) + { + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + notification_model::draw_dismiss(win, x, y); + ImGui::PopStyleColor(2); + } + else + notification_model::draw_dismiss(win, x, y); + } + + void autocalib_notification_model::draw_intrinsic_extrinsic(int x, int y) + { + bool intrinsic = get_manager().intrinsic_scan; + bool extrinsic = !intrinsic; + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 35 + ImGui::GetTextLineHeightWithSpacing()) }); + + std::string id = to_string() << "##Intrinsic_" << index; + if (ImGui::Checkbox("Intrinsic", &intrinsic)) + { + extrinsic = !intrinsic; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Calibrate intrinsic parameters of the camera"); + } + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 35 + ImGui::GetTextLineHeightWithSpacing()) }); + + id = to_string() << "##Intrinsic_" << index; + + if (ImGui::Checkbox("Extrinsic", &extrinsic)) + { + intrinsic = !extrinsic; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Calibrate extrinsic parameters between left and right cameras"); + } + + get_manager().intrinsic_scan = intrinsic; + } + + void autocalib_notification_model::draw_content(ux_window& win, int x, int y, float t, std::string& error_message) + { + using namespace std; + using namespace chrono; + + const auto bar_width = width - 115; + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 4) }); + + ImVec4 shadow{ 1.f, 1.f, 1.f, 0.1f }; + ImGui::GetWindowDrawList()->AddRectFilled({ float(x), float(y) }, + { float(x + width), float(y + 25) }, ImColor(shadow)); + + if (update_state != RS2_CALIB_STATE_COMPLETE) + { + if (update_state == RS2_CALIB_STATE_INITIAL_PROMPT) + ImGui::Text("%s", "Calibration Health-Check"); + else if (update_state == RS2_CALIB_STATE_CALIB_IN_PROCESS || + update_state == RS2_CALIB_STATE_CALIB_COMPLETE || + update_state == RS2_CALIB_STATE_SELF_INPUT) + ImGui::Text("%s", "On-Chip Calibration"); + else if (update_state == RS2_CALIB_STATE_TARE_INPUT || update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + ImGui::Text("%s", "Tare Calibration"); + if (update_state == RS2_CALIB_STATE_FAILED) + ImGui::Text("%s", "Calibration Failed"); + + if (update_state == RS2_CALIB_STATE_TARE_INPUT || update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + ImGui::SetCursorScreenPos({ float(x + width - 30), float(y) }); + else + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 27) }); + + ImGui::PushStyleColor(ImGuiCol_Text, alpha(light_grey, 1. - t)); + + if (update_state == RS2_CALIB_STATE_INITIAL_PROMPT) + { + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 2); + + ImGui::Text("%s", "Following devices support On-Chip Calibration:"); + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 47) }); + + ImGui::PushStyleColor(ImGuiCol_Text, white); + ImGui::Text("%s", message.c_str()); + ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 65) }); + ImGui::Text("%s", "Run quick calibration Health-Check? (~30 sec)"); + } + else if (update_state == RS2_CALIB_STATE_CALIB_IN_PROCESS) + { + enable_dismiss = false; + ImGui::Text("%s", "Camera is being calibrated...\nKeep the camera stationary pointing at a wall"); + } + else if (update_state == RS2_CALIB_STATE_TARE_INPUT || update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + { + ImGui::PushStyleColor(ImGuiCol_Text, update_state != RS2_CALIB_STATE_TARE_INPUT_ADVANCED ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, update_state != RS2_CALIB_STATE_TARE_INPUT_ADVANCED ? light_grey : light_blue); + + if (ImGui::Button(u8"\uf0d7")) + { + if (update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + update_state = RS2_CALIB_STATE_TARE_INPUT; + else + update_state = RS2_CALIB_STATE_TARE_INPUT_ADVANCED; + } + + if (ImGui::IsItemHovered()) + { + if(update_state == RS2_CALIB_STATE_TARE_INPUT) + ImGui::SetTooltip("%s", "More Options..."); + else + ImGui::SetTooltip("%s", "Less Options..."); + } + + ImGui::PopStyleColor(2); + if(update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + { + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 33) }); + ImGui::Text("%s", "Avg Step Count:"); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Number of frames to average, Min = 1, Max = 30, Default = 10"); + } + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 30) }); + + std::string id = to_string() << "##avg_step_count_" << index; + ImGui::PushItemWidth(width - 145); + ImGui::SliderInt(id.c_str(), &get_manager().average_step_count, 1, 30); + ImGui::PopItemWidth(); + + //------------------------- + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 38 + ImGui::GetTextLineHeightWithSpacing()) }); + ImGui::Text("%s", "Step Count:"); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Max iteration steps, Min = 5, Max = 30, Default = 10"); + } + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 35 + ImGui::GetTextLineHeightWithSpacing()) }); + + id = to_string() << "##step_count_" << index; + + ImGui::PushItemWidth(width - 145); + ImGui::SliderInt(id.c_str(), &get_manager().step_count, 1, 30); + ImGui::PopItemWidth(); + + //------------------------- + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 43 + 2 * ImGui::GetTextLineHeightWithSpacing()) }); + ImGui::Text("%s", "Accuracy:"); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Subpixel accuracy level, Very high = 0 (0.025%), High = 1 (0.05%), Medium = 2 (0.1%), Low = 3 (0.2%), Default = Very high (0.025%)"); + } + + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 40 + 2 * ImGui::GetTextLineHeightWithSpacing()) }); + + id = to_string() << "##accuracy_" << index; + + std::vector vals{ "Very High", "High", "Medium", "Low" }; + std::vector vals_cstr; + for (auto&& s : vals) vals_cstr.push_back(s.c_str()); + + ImGui::PushItemWidth(width - 145); + ImGui::Combo(id.c_str(), &get_manager().accuracy, vals_cstr.data(), vals.size()); + + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 35 + ImGui::GetTextLineHeightWithSpacing()) }); + + ImGui::PopItemWidth(); + + draw_intrinsic_extrinsic(x, y + 3 * ImGui::GetTextLineHeightWithSpacing() - 10); + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 52 + 4 * ImGui::GetTextLineHeightWithSpacing()) }); + id = to_string() << "Apply High-Accuracy Preset##apply_preset_" << index; + ImGui::Checkbox(id.c_str(), &get_manager().apply_preset); + } + + if (update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) + { + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 60 + 5 * ImGui::GetTextLineHeightWithSpacing()) }); + ImGui::Text("%s", "Ground Truth(mm):"); + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 58 + 5 * ImGui::GetTextLineHeightWithSpacing()) }); + } + else + { + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 33) }); + ImGui::Text("%s", "Ground Truth(mm):"); + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 30) }); + } + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Tare depth in 1 / 100 of depth unit, Min = 2500, Max = 2000000"); + } + + + //ImGui::SetCursorScreenPos({ float(x + 135), float(y + 45 + 3 * ImGui::GetTextLineHeightWithSpacing()) }); + + std::string id = to_string() << "##ground_truth_for_tare" << index; + + std::string gt = to_string() << get_manager().ground_truth; + const int MAX_SIZE = 256; + char buff[MAX_SIZE]; + memcpy(buff, gt.c_str(), gt.size() + 1); + + ImGui::PushItemWidth(width - 145); + if (ImGui::InputText(id.c_str(), buff, std::max((int)gt.size() + 1, 10))) + { + std::stringstream ss; + ss << buff; + ss >> get_manager().ground_truth; + } + ImGui::PopItemWidth(); + + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + + std::string button_name = to_string() << "Calibrate" << "##tare" << index; + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f })) + { + get_manager().restore_workspace([this](std::function a){ a(); }); + get_manager().reset(); + get_manager().tare = true; + get_manager().start(shared_from_this()); + update_state = RS2_CALIB_STATE_CALIB_IN_PROCESS; + enable_dismiss = false; + } + + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Begin Tare Calibration"); + } + } + else if (update_state == RS2_CALIB_STATE_SELF_INPUT) + { + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 33) }); + ImGui::Text("%s", "Speed:"); + + ImGui::SetCursorScreenPos({ float(x + 135), float(y + 30) }); + + std::string id = to_string() << "##speed_" << index; + + std::vector vals{ "Very Fast", "Fast", "Medium", "Slow", "White Wall" }; + std::vector vals_cstr; + for (auto&& s : vals) vals_cstr.push_back(s.c_str()); + + ImGui::PushItemWidth(width - 145); + ImGui::Combo(id.c_str(), &get_manager().speed, vals_cstr.data(), vals.size()); + ImGui::PopItemWidth(); + + draw_intrinsic_extrinsic(x, y); + + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + + std::string button_name = to_string() << "Calibrate" << "##self" << index; + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f })) + { + get_manager().restore_workspace([this](std::function a) { a(); }); + get_manager().reset(); + get_manager().tare = false; + get_manager().start(shared_from_this()); + update_state = RS2_CALIB_STATE_CALIB_IN_PROCESS; + enable_dismiss = false; + } + + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Begin On-Chip Calibration"); + } + } + else if (update_state == RS2_CALIB_STATE_FAILED) + { + ImGui::Text("%s", _error_message.c_str()); + + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + + ImGui::PushStyleColor(ImGuiCol_Button, saturate(redish, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(redish, 1.5f)); + + std::string button_name = to_string() << "Retry" << "##retry" << index; + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f })) + { + get_manager().restore_workspace([this](std::function a){ a(); }); + get_manager().reset(); + get_manager().start(shared_from_this()); + update_state = RS2_CALIB_STATE_CALIB_IN_PROCESS; + enable_dismiss = false; + } + + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Retry on-chip calibration process"); + } + } + else if (update_state == RS2_CALIB_STATE_CALIB_COMPLETE) + { + auto health = get_manager().get_health(); + + auto recommend_keep = health > 0.25; + + ImGui::SetCursorScreenPos({ float(x + 15), float(y + 33) }); + + if (get_manager().tare) + { + ImGui::Text("%s", "Tare calibration complete:"); + } + else + { + ImGui::Text("%s", "Health-Check: "); + + std::stringstream ss; ss << std::fixed << std::setprecision(2) << health; + auto health_str = ss.str(); + + std::string text_name = to_string() << "##notification_text_" << index; + + ImGui::SetCursorScreenPos({ float(x + 136), float(y + 30) }); + ImGui::PushStyleColor(ImGuiCol_Text, white); + ImGui::PushStyleColor(ImGuiCol_FrameBg, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarBg, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrab, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabActive, transparent); + ImGui::PushStyleColor(ImGuiCol_ScrollbarGrabHovered, transparent); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::InputTextMultiline(text_name.c_str(), const_cast(health_str.c_str()), + strlen(health_str.c_str()) + 1, { 50, + ImGui::GetTextLineHeight() + 6 }, + ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(7); + + ImGui::SetCursorScreenPos({ float(x + 172), float(y + 33) }); + + if (!recommend_keep) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::Text("%s", "(Good)"); + } + else if (health < 0.75f) + { + ImGui::PushStyleColor(ImGuiCol_Text, yellowish); + ImGui::Text("%s", "(Can be Improved)"); + } + else + { + ImGui::PushStyleColor(ImGuiCol_Text, redish); + ImGui::Text("%s", "(Requires Calibration)"); + } + ImGui::PopStyleColor(); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Calibration Health-Check captures how far camera calibration is from the optimal one\n" + "[0, 0.15) - Good\n" + "[0.15, 0.25) - Can be Improved\n" + "[0.25, ) - Requires Calibration"); + } + } + + auto old_fr = get_manager().get_metric(false).first; + auto new_fr = get_manager().get_metric(true).first; + + auto old_rms = fabs(get_manager().get_metric(false).second); + auto new_rms = fabs(get_manager().get_metric(true).second); + + auto fr_improvement = 100.f * ((new_fr - old_fr) / old_fr); + auto rms_improvement = 100.f * ((old_rms - new_rms) / old_rms); + + std::string old_units = "mm"; + if (old_rms > 10.f) + { + old_rms /= 10.f; + old_units = "cm"; + } + std::string new_units = "mm"; + if (new_rms > 10.f) + { + new_rms /= 10.f; + new_units = "cm"; + } + + // NOTE: Disabling metrics temporarily + // TODO: Re-enable in future release + if (/* fr_improvement > 1.f || rms_improvement > 1.f */ false) + { + std::string txt = to_string() << " Fill-Rate: " << std::setprecision(1) << std::fixed << new_fr << "%%"; + + if (!use_new_calib) + { + txt = to_string() << " Fill-Rate: " << std::setprecision(1) << std::fixed << old_fr << "%%\n"; + } + + ImGui::SetCursorScreenPos({ float(x + 12), float(y + 90) }); + ImGui::PushFont(win.get_large_font()); + ImGui::Text("%s", static_cast(textual_icons::check)); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 35), float(y + 92) }); + ImGui::Text("%s", txt.c_str()); + + if (use_new_calib) + { + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Text, white); + txt = to_string() << " ( +" << std::fixed << std::setprecision(0) << fr_improvement << "%% )"; + ImGui::Text("%s", txt.c_str()); + ImGui::PopStyleColor(); + } + + if (rms_improvement > 1.f) + { + if (use_new_calib) + { + txt = to_string() << " Noise Estimate: " << std::setprecision(2) << std::fixed << new_rms << new_units; + } + else + { + txt = to_string() << " Noise Estimate: " << std::setprecision(2) << std::fixed << old_rms << old_units; + } + + ImGui::SetCursorScreenPos({ float(x + 12), float(y + 90 + ImGui::GetTextLineHeight() + 6) }); + ImGui::PushFont(win.get_large_font()); + ImGui::Text("%s", static_cast(textual_icons::check)); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 35), float(y + 92 + ImGui::GetTextLineHeight() + 6) }); + ImGui::Text("%s", txt.c_str()); + + if (use_new_calib) + { + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Text, white); + txt = to_string() << " ( -" << std::setprecision(0) << std::fixed << rms_improvement << "%% )"; + ImGui::Text("%s", txt.c_str()); + ImGui::PopStyleColor(); + } + } + } + else + { + ImGui::SetCursorScreenPos({ float(x + 12), float(y + 100) }); + ImGui::Text("%s", "Please compare new vs old calibration\nand decide if to keep or discard the result..."); + } + + ImGui::SetCursorScreenPos({ float(x + 9), float(y + 60) }); + + if (ImGui::RadioButton("New", use_new_calib)) + { + use_new_calib = true; + get_manager().apply_calib(true); + } + + ImGui::SetCursorScreenPos({ float(x + 150), float(y + 60) }); + if (ImGui::RadioButton("Original", !use_new_calib)) + { + use_new_calib = false; + get_manager().apply_calib(false); + } + + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + + if (recommend_keep || get_manager().tare) + { + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + } + + std::string button_name = to_string() << "Apply New" << "##apply" << index; + if (!use_new_calib) button_name = to_string() << "Keep Original" << "##original" << index; + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f })) + { + if (use_new_calib) + { + get_manager().keep(); + update_state = RS2_CALIB_STATE_COMPLETE; + pinned = false; + enable_dismiss = false; + last_progress_time = last_interacted = system_clock::now() + milliseconds(500); + } + else dismiss(false); + + get_manager().restore_workspace([this](std::function a) { a(); }); + } + if (recommend_keep || get_manager().tare) + { + ImGui::PopStyleColor(2); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "New calibration values will be saved in device memory"); + } + } + + ImGui::PopStyleColor(); + } + else + { + ImGui::Text("%s", "Calibration Complete"); + + ImGui::SetCursorScreenPos({ float(x + 10), float(y + 35) }); + ImGui::PushFont(win.get_large_font()); + std::string txt = to_string() << textual_icons::throphy; + ImGui::Text("%s", txt.c_str()); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos({ float(x + 40), float(y + 35) }); + + ImGui::Text("%s", "Camera Calibration Applied Successfully"); + } + + ImGui::SetCursorScreenPos({ float(x + 5), float(y + height - 25) }); + + if (update_manager) + { + if (update_state == RS2_CALIB_STATE_INITIAL_PROMPT) + { + auto sat = 1.f + sin(duration_cast(system_clock::now() - created_time).count() / 700.f) * 0.1f; + ImGui::PushStyleColor(ImGuiCol_Button, saturate(sensor_header_light_blue, sat)); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, saturate(sensor_header_light_blue, 1.5f)); + std::string button_name = to_string() << "Health-Check" << "##health_check" << index; + + if (ImGui::Button(button_name.c_str(), { float(bar_width), 20.f }) || update_manager->started()) + { + if (!update_manager->started()) update_manager->start(shared_from_this()); + + update_state = RS2_CALIB_STATE_CALIB_IN_PROCESS; + enable_dismiss = false; + last_progress_time = system_clock::now(); + } + ImGui::PopStyleColor(2); + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Keep the camera pointing at an object or a wall"); + } + } + else if (update_state == RS2_CALIB_STATE_CALIB_IN_PROCESS) + { + if (update_manager->done()) + { + update_state = RS2_CALIB_STATE_CALIB_COMPLETE; + enable_dismiss = true; + get_manager().apply_calib(true); + use_new_calib = true; + } + + if (!expanded) + { + if (update_manager->failed()) + { + update_manager->check_error(_error_message); + update_state = RS2_CALIB_STATE_FAILED; + enable_dismiss = true; + //pinned = false; + //dismiss(false); + } + + draw_progress_bar(win, bar_width); + + ImGui::SetCursorScreenPos({ float(x + width - 105), float(y + height - 25) }); + + string id = to_string() << "Expand" << "##" << index; + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + if (ImGui::Button(id.c_str(), { 100, 20 })) + { + expanded = true; + } + + ImGui::PopStyleColor(); + } + } + } + } + + void autocalib_notification_model::dismiss(bool snooze) + { + get_manager().update_last_used(); + + if (!use_new_calib && get_manager().done()) + get_manager().apply_calib(false); + + get_manager().restore_workspace([this](std::function a){ a(); }); + + if (update_state != RS2_CALIB_STATE_TARE_INPUT) + update_state = RS2_CALIB_STATE_INITIAL_PROMPT; + get_manager().reset(); + + notification_model::dismiss(snooze); + } + + void autocalib_notification_model::draw_expanded(ux_window& win, std::string& error_message) + { + if (update_manager->started() && update_state == RS2_CALIB_STATE_INITIAL_PROMPT) + update_state = RS2_CALIB_STATE_CALIB_IN_PROCESS; + + auto flags = ImGuiWindowFlags_NoResize | + ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse; + + ImGui::PushStyleColor(ImGuiCol_WindowBg, { 0, 0, 0, 0 }); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(500, 100)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0); + + std::string title = "On-Chip Calibration"; + if (update_manager->failed()) title += " Failed"; + + ImGui::OpenPopup(title.c_str()); + if (ImGui::BeginPopupModal(title.c_str(), nullptr, flags)) + { + ImGui::SetCursorPosX(200); + std::string progress_str = to_string() << "Progress: " << update_manager->get_progress() << "%"; + ImGui::Text("%s", progress_str.c_str()); + + ImGui::SetCursorPosX(5); + + draw_progress_bar(win, 490); + + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); + auto s = update_manager->get_log(); + ImGui::InputTextMultiline("##autocalib_log", const_cast(s.c_str()), + s.size() + 1, { 490,100 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(); + + ImGui::SetCursorPosX(190); + if (visible || update_manager->done() || update_manager->failed()) + { + if (ImGui::Button("OK", ImVec2(120, 0))) + { + if (update_manager->failed()) + { + update_state = RS2_CALIB_STATE_FAILED; + //pinned = false; + //dismiss(false); + } + expanded = false; + ImGui::CloseCurrentPopup(); + } + } + else + { + ImGui::PushStyleColor(ImGuiCol_Button, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, transparent); + ImGui::PushStyleColor(ImGuiCol_Text, transparent); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, transparent); + ImGui::Button("OK", ImVec2(120, 0)); + ImGui::PopStyleColor(5); + } + + ImGui::EndPopup(); + } + + ImGui::PopStyleVar(3); + ImGui::PopStyleColor(4); + + error_message = ""; + } + + int autocalib_notification_model::calc_height() + { + if (update_state == RS2_CALIB_STATE_COMPLETE) return 65; + else if (update_state == RS2_CALIB_STATE_INITIAL_PROMPT) return 120; + else if (update_state == RS2_CALIB_STATE_CALIB_COMPLETE) + { + if (get_manager().allow_calib_keep()) return 170; + else return 80; + } + else if (update_state == RS2_CALIB_STATE_SELF_INPUT) return 110; + else if (update_state == RS2_CALIB_STATE_TARE_INPUT) return 85; + else if (update_state == RS2_CALIB_STATE_TARE_INPUT_ADVANCED) return 210; + else return 100; + } + + void autocalib_notification_model::set_color_scheme(float t) const + { + notification_model::set_color_scheme(t); + + ImGui::PopStyleColor(1); + + ImVec4 c; + + if (update_state == RS2_CALIB_STATE_COMPLETE) + { + c = alpha(saturate(light_blue, 0.7f), 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + else if (update_state == RS2_CALIB_STATE_FAILED) + { + c = alpha(dark_red, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + else + { + c = alpha(sensor_bg, 1 - t); + ImGui::PushStyleColor(ImGuiCol_WindowBg, c); + } + } + + autocalib_notification_model::autocalib_notification_model(std::string name, + std::shared_ptr manager, bool exp) + : process_notification_model(manager) + { + enable_expand = false; + enable_dismiss = true; + expanded = exp; + if (expanded) visible = false; + + message = name; + this->severity = RS2_LOG_SEVERITY_INFO; + this->category = RS2_NOTIFICATION_CATEGORY_HARDWARE_EVENT; + + pinned = true; + } +} diff --git a/common/on-chip-calib.h b/common/on-chip-calib.h new file mode 100644 index 00000000000..f20bf7c8bc9 --- /dev/null +++ b/common/on-chip-calib.h @@ -0,0 +1,127 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "notifications.h" +#include "../src/concurrency.h" + +#include + +namespace rs2 +{ + class viewer_model; + class subdevice_model; + struct subdevice_ui_selection; + + // On-chip Calibration manager owns the background thread + // leading the calibration process + // It is controlled by autocalib_notification_model UI object + // that invokes the process when needed + class on_chip_calib_manager : public process_manager + { + public: + on_chip_calib_manager(viewer_model& viewer, std::shared_ptr sub, + device_model& model, device dev) + : process_manager("On-Chip Calibration"), _model(model), + _dev(dev), _sub(sub), _viewer(viewer) + { + } + + bool allow_calib_keep() const { return true; } + + // Get health number from the calibration summary + float get_health() const { return _health; } + + // Write new calibration to the device + void keep(); + + // Restore Viewer UI to how it was before auto-calib + void restore_workspace(invoker invoke); + + // Ask the firmware to use one of the before/after calibration tables + void apply_calib(bool old); + + // Get depth metrics for before/after calibration tables + std::pair get_metric(bool use_new); + + void update_last_used(); + + uint32_t ground_truth = 2500; + int average_step_count = 20; + int step_count = 20; + int accuracy = 2; + int speed = 3; + bool tare = false; + bool intrinsic_scan = true; + bool apply_preset = true; + + void calibrate(); + + private: + + std::vector safe_send_command(const std::vector& cmd, const std::string& name); + + rs2::depth_frame fetch_depth_frame(invoker invoke); + + std::pair get_depth_metrics(invoker invoke); + + void process_flow(std::function cleanup, invoker invoke) override; + + float _health = -1.0f; + device _dev; + + bool _was_streaming = false; + bool _synchronized = false; + bool _post_processing = false; + std::shared_ptr _ui { nullptr }; + bool _in_3d_view = false; + + viewer_model& _viewer; + std::shared_ptr _sub; + + std::vector _old_calib, _new_calib; + std::vector> _metrics; + device_model& _model; + + bool _restored = true; + + void stop_viewer(invoker invoke); + void start_viewer(int w, int h, int fps, invoker invoke); + }; + + // Auto-calib notification model is managing the UI state-machine + // controling auto-calibration + struct autocalib_notification_model : public process_notification_model + { + enum auto_calib_ui_state + { + RS2_CALIB_STATE_INITIAL_PROMPT, // First screen, would you like to run Health-Check? + RS2_CALIB_STATE_FAILED, // Failed, show _error_message + RS2_CALIB_STATE_COMPLETE, // After write, quick blue notification + RS2_CALIB_STATE_CALIB_IN_PROCESS,// Calibration in process... Shows progressbar + RS2_CALIB_STATE_CALIB_COMPLETE, // Calibration complete, show before/after toggle and metrics + RS2_CALIB_STATE_TARE_INPUT, // Collect input parameters for Tare calib + RS2_CALIB_STATE_TARE_INPUT_ADVANCED, // Collect input parameters for Tare calib + RS2_CALIB_STATE_SELF_INPUT, // Collect input parameters for Self calib + }; + + autocalib_notification_model(std::string name, + std::shared_ptr manager, bool expaned); + + on_chip_calib_manager& get_manager() { + return *std::dynamic_pointer_cast(update_manager); + } + + void set_color_scheme(float t) const override; + void draw_content(ux_window& win, int x, int y, float t, std::string& error_message) override; + void draw_dismiss(ux_window& win, int x, int y) override; + void draw_expanded(ux_window& win, std::string& error_message) override; + void draw_intrinsic_extrinsic(int x, int y); + int calc_height() override; + void dismiss(bool snooze) override; + + bool use_new_calib = true; + std::string _error_message = ""; + }; +} diff --git a/common/opengl3.cpp b/common/opengl3.cpp new file mode 100644 index 00000000000..c06ef1ef77a --- /dev/null +++ b/common/opengl3.cpp @@ -0,0 +1,603 @@ +#include "opengl3.h" + +#include +#include + +using namespace rs2; + +int vbo::convert_type(vbo_type type) +{ + switch (type) { + case vbo_type::array_buffer: return GL_ARRAY_BUFFER; + case vbo_type::element_array_buffer: return GL_ELEMENT_ARRAY_BUFFER; + default: throw std::runtime_error("Not supported VBO type!"); + } +} + +vbo::vbo(vbo_type type) + : _type(type) +{ + glGenBuffers(1, &_id); +} + +void vbo::bind() +{ + glBindBuffer(convert_type(_type), _id); +} + +void vbo::unbind() +{ + glBindBuffer(convert_type(_type), 0); +} + +void vbo::upload(int attribute, const float* xyz, int size, int count, bool dynamic) +{ + assert(_type == vbo_type::array_buffer); + bind(); + glBufferData(convert_type(_type), count * size * sizeof(float), xyz, + dynamic ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); + glVertexAttribPointer(attribute, size, GL_FLOAT, GL_FALSE, 0, 0); + _size = count; + unbind(); +} + +void vbo::upload(const int3* indx, int count) +{ + assert(_type == vbo_type::element_array_buffer); + bind(); + glBufferData(convert_type(_type), count * sizeof(int3), indx, GL_STATIC_DRAW); + _size = count; +} + +void vbo::draw_points() +{ + assert(_type == vbo_type::array_buffer); + bind(); + glDrawArrays(GL_POINTS, 0, _size); + unbind(); +} + +void vbo::draw_triangles() +{ + assert(_type == vbo_type::array_buffer); + bind(); + glDrawArrays(GL_TRIANGLES, 0, _size); + unbind(); +} + +void vbo::draw_indexed_triangles() +{ + assert(_type == vbo_type::element_array_buffer); + glDrawElements(GL_TRIANGLES, _size * (sizeof(int3) / sizeof(int)), GL_UNSIGNED_INT, 0); +} + +vbo::vbo(vbo&& other) + : _id(other._id), _type(other._type), _size(other._size) +{ + other._id = 0; +} + +vbo::~vbo() +{ + if (_id) glDeleteBuffers(1, &_id); +} + +vao::vao(const float3* vert, const float2* uvs, const float3* normals, + const float3* tangents, int vert_count, const int3* indx, int indx_count) + : _vertexes(vbo_type::array_buffer), + _uvs(vbo_type::array_buffer), + _indexes(vbo_type::element_array_buffer), + _tangents(vbo_type::array_buffer), + _vertex_count(vert_count) +{ + glGenVertexArrays(1, &_id); + bind(); + _indexes.upload(indx, indx_count); + _vertexes.upload(0, (float*)vert, 3, vert_count, true); + if (normals) _normals.upload(2, (float*)normals, 3, vert_count); + if (tangents) _tangents.upload(3, (float*)tangents, 3, vert_count); + if (uvs) _uvs.upload(1, (float*)uvs, 2, vert_count); + unbind(); +} + +std::unique_ptr vao::create(const obj_mesh& mesh) +{ + return std::unique_ptr(new vao(mesh.positions.data(), + mesh.uvs.data(), + mesh.normals.data(), + mesh.tangents.data(), + mesh.positions.size(), + mesh.indexes.data(), + mesh.indexes.size())); +} + +vao::vao(vao&& other) + : _id(other._id), + _indexes(std::move(other._indexes)), + _vertexes(std::move(other._vertexes)), + _uvs(std::move(other._uvs)), + _normals(std::move(other._normals)), + _tangents(std::move(other._tangents)) +{ + other._id = 0; +} + +vao::~vao() +{ + if (_id) glDeleteVertexArrays(1, &_id); +} + +void vao::bind() +{ + glBindVertexArray(_id); +} + +void vao::unbind() +{ + glBindVertexArray(0); +} + +void vao::draw_points() +{ + bind(); + + glEnableVertexAttribArray(0); // vertex + if (_uvs.size()) glEnableVertexAttribArray(1); // uv + if (_normals.size()) glEnableVertexAttribArray(2); // normals + if (_tangents.size()) glEnableVertexAttribArray(3); // tangents + + _vertexes.draw_points(); + + glDisableVertexAttribArray(0); + if (_uvs.size()) glDisableVertexAttribArray(1); + if (_normals.size()) glDisableVertexAttribArray(2); + if (_tangents.size()) glDisableVertexAttribArray(3); + + unbind(); +} + +void vao::draw() +{ + bind(); + + glEnableVertexAttribArray(0); // vertex + if (_uvs.size()) glEnableVertexAttribArray(1); // uv + if (_normals.size()) glEnableVertexAttribArray(2); // normals + if (_tangents.size()) glEnableVertexAttribArray(3); // tangents + + _indexes.draw_indexed_triangles(); + + glDisableVertexAttribArray(0); + if (_uvs.size()) glDisableVertexAttribArray(1); + if (_normals.size()) glDisableVertexAttribArray(2); + if (_tangents.size()) glDisableVertexAttribArray(3); + + unbind(); +} + +void vao::update_positions(const float3* vert) +{ + _vertexes.upload(0, (float*)vert, 3, _vertex_count, true); +} + +static const char* vertex_shader_text = +"#version 110\n" +"attribute vec3 position;\n" +"attribute vec2 textureCoords;\n" +"varying vec2 textCoords;\n" +"uniform vec2 elementPosition;\n" +"uniform vec2 elementScale;\n" +"void main(void)\n" +"{\n" +" gl_Position = vec4(position * vec3(elementScale, 1.0) + vec3(elementPosition, 0.0), 1.0);\n" +" textCoords = textureCoords;\n" +"}"; + +static const char* splash_shader_text = +"#version 110\n" +"varying vec2 textCoords;\n" +"uniform sampler2D textureSampler;\n" +"uniform float opacity;\n" +"uniform vec2 rayOrigin;\n" +"uniform float power;\n" +"void main(void) {\n" +" vec4 FragColor = texture2D(textureSampler, textCoords);\n" +" int samples = 120;\n" +" vec2 delta = vec2(textCoords - rayOrigin);\n" +" delta *= 1.0 / float(samples) * 0.99;" +" vec2 coord = textCoords;\n" +" float illuminationDecay = power;\n" +" for(int i=0; i < samples ; i++)\n" +" {\n" +" coord -= delta;\n" +" vec4 texel = texture2D(textureSampler, coord);\n" +" texel *= illuminationDecay * 0.4;\n" +" texel.x *= 80.0 / 255.0;\n" +" texel.y *= 99.0 / 255.0;\n" +" texel.z *= 115.0 / 255.0;\n" +" FragColor += texel;\n" +" illuminationDecay *= power;\n" +" }\n" +" FragColor = clamp(FragColor, 0.0, 1.0);\n" +" gl_FragColor = vec4(FragColor.xyz, opacity);\n" +"}"; + +static const char* fragment_shader_text = +"#version 110\n" +"varying vec2 textCoords;\n" +"uniform sampler2D textureSampler;\n" +"uniform float opacity;\n" +"void main(void) {\n" +" vec2 tex = vec2(textCoords.x, 1.0 - textCoords.y);\n" +" vec4 color = texture2D(textureSampler, tex);\n" +" gl_FragColor = vec4(color.xyz, opacity);\n" +"}"; + +using namespace rs2; + +texture_2d_shader::texture_2d_shader(std::unique_ptr shader) + : _shader(std::move(shader)) +{ + init(); +} + +const char* texture_2d_shader::default_vertex_shader() +{ + return vertex_shader_text; +} + +texture_2d_shader::texture_2d_shader() +{ + _shader = shader_program::load( + vertex_shader_text, + fragment_shader_text, "position", "textureCoords"); + + init(); +} + +void visualizer_2d::draw_texture(uint32_t tex, float opacity) +{ + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + tex_2d_shader->begin(); + tex_2d_shader->set_opacity(opacity); + tex_2d_shader->end(); + draw_texture({ 0.f, 0.f }, { 1.f, 1.f }, tex); + glDisable(GL_BLEND); +} + +void texture_2d_shader::set_position_and_scale( + const float2& position, + const float2& scale) +{ + _shader->load_uniform(_position_location, position); + _shader->load_uniform(_scale_location, scale); +} + +void splash_screen_shader::set_ray_center(const float2& center) +{ + _shader->load_uniform(_rays_location, center); +} + +void splash_screen_shader::set_power(float power) +{ + _shader->load_uniform(_power_location, power); +} + +void texture_2d_shader::init() +{ + _position_location = _shader->get_uniform_location("elementPosition"); + _scale_location = _shader->get_uniform_location("elementScale"); + _opacity_location = _shader->get_uniform_location("opacity"); + + auto texture0_sampler_location = _shader->get_uniform_location("textureSampler"); + + _shader->begin(); + _shader->load_uniform(texture0_sampler_location, 0); + set_opacity(1.f); + _shader->end(); +} + +splash_screen_shader::splash_screen_shader() + : texture_2d_shader(shader_program::load( + vertex_shader_text, + splash_shader_text, "position", "textureCoords")) +{ + + _rays_location = _shader->get_uniform_location("rayOrigin"); + _power_location = _shader->get_uniform_location("power"); +} + +void texture_2d_shader::begin() { _shader->begin(); } +void texture_2d_shader::end() { _shader->end(); } + +void texture_2d_shader::set_opacity(float opacity) +{ + _shader->load_uniform(_opacity_location, opacity); +} + +void texture_visualizer::draw(texture_2d_shader& shader, uint32_t tex) +{ + shader.begin(); + shader.set_position_and_scale(_position, _scale); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, tex); + _geometry->draw(); + glBindTexture(GL_TEXTURE_2D, 0); + shader.end(); +} + +obj_mesh texture_visualizer::create_mesh() +{ + obj_mesh res; + + res.positions.reserve(4); + res.positions.emplace_back(float3{ -1.f, -1.f, 0.f }); + res.positions.emplace_back(float3{ 1.f, -1.f, 0.f }); + res.positions.emplace_back(float3{ 1.f, 1.f, 0.f }); + res.positions.emplace_back(float3{ -1.f, 1.f, 0.f }); + + res.uvs.reserve(4); + res.uvs.emplace_back(float2{ 0.f, 1.f }); + res.uvs.emplace_back(float2{ 1.f, 1.f }); + res.uvs.emplace_back(float2{ 1.f, 0.f }); + res.uvs.emplace_back(float2{ 0.f, 0.f }); + + res.indexes.reserve(2); + res.indexes.emplace_back(int3{ 0, 1, 2 }); + res.indexes.emplace_back(int3{ 2, 3, 0 }); + + return res; +} + +#include + +using namespace rs2; + +int shader_program::get_uniform_location(const std::string& name) +{ + return glGetUniformLocation(_id, name.c_str()); +} + +void shader_program::load_uniform(int location, int value) +{ + glUniform1i(location, value); +} + +void shader_program::load_uniform(int location, float value) +{ + glUniform1f(location, value); +} + +void shader_program::load_uniform(int location, bool value) +{ + load_uniform(location, value ? 1.f : 0.f); +} + +void shader_program::load_uniform(int location, const float3& vec) +{ + glUniform3f(location, vec.x, vec.y, vec.z); +} + +void shader_program::load_uniform(int location, const float2& vec) +{ + glUniform2f(location, vec.x, vec.y); +} + +void shader_program::load_uniform(int location, const matrix4& matrix) +{ + glUniformMatrix4fv(location, 1, GL_FALSE, (float*)&matrix); +} + +void shader_program::bind_attribute(int attr, const std::string& name) +{ + glBindAttribLocation(_id, attr, name.c_str()); +} + +shader::shader(const std::string& shader_code, shader_type type) +{ + auto lambda = [&]() { + switch (type) + { + case shader_type::vertex: return GL_VERTEX_SHADER; + case shader_type::fragment: return GL_FRAGMENT_SHADER; + default: + throw std::runtime_error("Unknown shader type!"); + } + }; + const auto gl_type = lambda(); + + GLuint shader_id = glCreateShader(gl_type); + + char const * source_ptr = shader_code.c_str(); + int length = shader_code.size(); + glShaderSource(shader_id, 1, &source_ptr, &length); + + glCompileShader(shader_id); + + GLint result; + int log_length; + + glGetShaderiv(shader_id, GL_COMPILE_STATUS, &result); + glGetShaderiv(shader_id, GL_INFO_LOG_LENGTH, &log_length); + if ((result == GL_FALSE) && (log_length > 0)) { + std::vector error_message(log_length + 1); + glGetShaderInfoLog(shader_id, log_length, NULL, &error_message[0]); + std::string error(&error_message[0]); + std::cerr << error; + glDeleteShader(shader_id); + throw std::runtime_error(error); + } + + _id = shader_id; +} + +shader::~shader() +{ + glDeleteShader(_id); +} + +shader_program::shader_program() +{ + GLuint program_id = glCreateProgram(); + _id = program_id; +} +shader_program::~shader_program() +{ + glUseProgram(0); + glDeleteProgram(_id); +} + +void shader_program::attach(const shader& shader) +{ + _shaders.push_back(&shader); +} +void shader_program::link() +{ + for (auto ps : _shaders) + { + glAttachShader(_id, ps->get_id()); + } + + glLinkProgram(_id); + + GLint result; + int log_length; + + glGetProgramiv(_id, GL_LINK_STATUS, &result); + glGetProgramiv(_id, GL_INFO_LOG_LENGTH, &log_length); + if ((result == GL_FALSE) && (log_length > 0)) { + std::vector error_message(log_length + 1); + glGetProgramInfoLog(_id, log_length, NULL, &error_message[0]); + std::string error(&error_message[0]); + std::cerr << error; + for (auto ps : _shaders) + { + glDetachShader(_id, ps->get_id()); + } + throw std::runtime_error(error); + } + + glValidateProgram(_id); + + glGetProgramiv(_id, GL_VALIDATE_STATUS, &result); + glGetProgramiv(_id, GL_INFO_LOG_LENGTH, &log_length); + if ((result == GL_FALSE) && (log_length > 0)) { + std::vector error_message(log_length + 1); + glGetProgramInfoLog(_id, log_length, NULL, &error_message[0]); + std::string error(&error_message[0]); + std::cerr << error; + for (auto ps : _shaders) + { + glDetachShader(_id, ps->get_id()); + } + throw std::runtime_error(error); + } + + for (auto ps : _shaders) + { + glDetachShader(_id, ps->get_id()); + } + _shaders.clear(); +} + +void shader_program::begin() const +{ + glUseProgram(_id); +} +void shader_program::end() const +{ + glUseProgram(0); +} + +std::unique_ptr shader_program::load( + const std::string& vertex_shader, + const std::string& fragment_shader, + const char* input0, + const char* input1, + const char* output0, + const char* output1) +{ + std::unique_ptr res(new shader_program()); + shader vertex(vertex_shader, shader_type::vertex); + shader fragment(fragment_shader, shader_type::fragment); + res->attach(vertex); + res->attach(fragment); + + if (input0) glBindAttribLocation(res->get_id(), 0, input0); + if (input1) glBindAttribLocation(res->get_id(), 1, input1); + + if (output0) glBindFragDataLocation(res->get_id(), 0, output0); + if (output1) glBindFragDataLocation(res->get_id(), 1, output1); + + res->link(); + return std::move(res); +} + +fbo::fbo(int w, int h) : _w(w), _h(h) +{ + glGenFramebuffers(1, &_id); + glBindFramebuffer(GL_FRAMEBUFFER, _id); + glDrawBuffer(GL_COLOR_ATTACHMENT0); +} + +void fbo::createTextureAttachment(uint32_t handle) +{ + glBindTexture(GL_TEXTURE_2D, handle); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, _w, _h, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, handle, 0); + glBindTexture(GL_TEXTURE_2D, 0); +} + +void fbo::createDepthTextureAttachment(uint32_t handle) +{ + glBindTexture(GL_TEXTURE_2D, handle); + glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32, _w, _h, 0, GL_DEPTH_COMPONENT, GL_FLOAT, nullptr); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, handle, 0); + glBindTexture(GL_TEXTURE_2D, 0); +} + +void fbo::bind() +{ + glBindTexture(GL_TEXTURE_2D, 0); + glBindFramebuffer(GL_FRAMEBUFFER, _id); + glViewport(0, 0, _w, _h); +} + +void fbo::unbind() +{ + glBindFramebuffer(GL_FRAMEBUFFER, 0); +} + +void fbo::createDepthBufferAttachment() +{ + if (_db) glDeleteRenderbuffers(1, &_db); + glGenRenderbuffers(1, &_db); + glBindRenderbuffer(GL_RENDERBUFFER, _db); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, _w, _h); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, _db); +} + +fbo::~fbo() +{ + glDeleteRenderbuffers(1, &_db); + glDeleteFramebuffers(1, &_id); +} + +std::string fbo::get_status() +{ + std::string res = "UNKNOWN"; + + bind(); + auto s = glCheckFramebufferStatus(GL_FRAMEBUFFER); + + if (s == GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT) res = "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"; + else if (s == 0x8CD9) res = "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"; + else if (s == GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT) res = "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"; + else if (s == GL_FRAMEBUFFER_UNSUPPORTED) res = "GL_FRAMEBUFFER_UNSUPPORTED"; + else if (s == GL_FRAMEBUFFER_COMPLETE) res = "GL_FRAMEBUFFER_COMPLETE"; + + unbind(); + + return res; +} diff --git a/common/opengl3.h b/common/opengl3.h new file mode 100644 index 00000000000..ece7a78cecd --- /dev/null +++ b/common/opengl3.h @@ -0,0 +1,305 @@ +#pragma once + +#include "rendering.h" + +#include +#include +#include +#include + +namespace rs2 +{ + enum class shader_type + { + vertex, + fragment + }; + + struct int3 + { + int x, y, z; + }; + + struct obj_mesh + { + std::string name; + std::vector indexes; + std::vector positions; + std::vector normals; + std::vector uvs; + std::vector tangents; + }; + + class shader + { + public: + shader(const std::string& code, shader_type type); + ~shader(); + + unsigned int get_id() const { return _id; } + + private: + unsigned int _id; + }; + + class shader_program + { + public: + shader_program(); + ~shader_program(); + + void attach(const shader& shader); + void link(); + + void begin() const; + void end() const; + + static std::unique_ptr load( + const std::string& vertex_shader, + const std::string& fragment_shader, + const char* input0 = nullptr, + const char* input1 = nullptr, + const char* output0 = nullptr, + const char* output1 = nullptr); + + unsigned int get_id() const { return _id; } + + int get_uniform_location(const std::string& name); + void load_uniform(int location, float value); + void load_uniform(int location, const float2& vec); + void load_uniform(int location, const float3& vec); + void load_uniform(int location, bool value); + void load_uniform(int location, int value); + void load_uniform(int location, const matrix4& matrix); + + void bind_attribute(int attr, const std::string& name); + + private: + std::vector _shaders; + unsigned int _id; + }; + + enum class vbo_type + { + array_buffer, + element_array_buffer, + }; + + class vbo + { + public: + vbo(vbo_type type = vbo_type::array_buffer); + vbo(vbo&& other); + ~vbo(); + + void upload(int attribute, const float* xyz, int size, int count, bool dynamic = false); + void upload(const int3* indx, int count); + + void draw_points(); + void draw_triangles(); + void draw_indexed_triangles(); + + void bind(); + void unbind(); + + uint32_t size() const { return _size; } + private: + vbo(const vbo& other) = delete; + static int convert_type(vbo_type type); + + uint32_t _id; + uint32_t _size = 0; + vbo_type _type; + }; + + struct float3; + struct float2; + struct int3; + + struct obj_mesh; + + class vao + { + public: + static std::unique_ptr create(const obj_mesh& m); + + vao(const float3* vert, const float2* uvs, const float3* normals, + const float3* tangents, int vert_count, const int3* indx, int indx_count); + ~vao(); + void bind(); + void unbind(); + void draw(); + void draw_points(); + + // void update_uvs(const float2* uvs); + void update_positions(const float3* vert); + + vao(vao&& other); + + private: + vao(const vao& other) = delete; + + uint32_t _id; + int _vertex_count; + vbo _vertexes, _normals, _indexes, _uvs, _tangents; + }; + + class texture_2d_shader + { + public: + texture_2d_shader(); + + void begin(); + void end(); + + void set_opacity(float opacity); + + void set_position_and_scale( + const float2& position, + const float2& scale); + protected: + texture_2d_shader(std::unique_ptr shader); + + std::unique_ptr _shader; + + static const char* default_vertex_shader(); + + private: + void init(); + + uint32_t _position_location; + uint32_t _scale_location; + uint32_t _opacity_location; + }; + + class splash_screen_shader : public texture_2d_shader + { + public: + splash_screen_shader(); + + void set_ray_center(const float2& center); + void set_power(float power); + private: + uint32_t _rays_location; + uint32_t _power_location; + }; + + class texture_visualizer + { + public: + texture_visualizer(float2 pos, float2 scale) + : _position(std::move(pos)), + _scale(std::move(scale)), + _geometry(vao::create(create_mesh())) + { + + } + + texture_visualizer() + : texture_visualizer({ 0.f, 0.f }, { 1.f, 1.f }) {} + + void set_position(float2 pos) { _position = pos; } + void set_scale(float2 scale) { _scale = scale; } + + void draw(texture_2d_shader& shader, uint32_t tex); + + private: + static obj_mesh create_mesh(); + + float2 _position; + float2 _scale; + std::shared_ptr _geometry; + }; + + class visualizer_2d + { + public: + visualizer_2d() + : visualizer_2d(std::make_shared()) + { + } + + visualizer_2d(std::shared_ptr shader) + : tex_2d_shader(shader) + { + } + + void draw_texture(uint32_t tex, float opacity = 1.f); + + void draw_texture(float2 pos, float2 scale, uint32_t tex) + { + tex_2d_shader->begin(); + _visualizer.set_position(pos); + _visualizer.set_scale(scale); + _visualizer.draw(*tex_2d_shader, tex); + tex_2d_shader->end(); + } + + texture_2d_shader& get_shader() { return *tex_2d_shader; } + + private: + texture_visualizer _visualizer; + std::shared_ptr tex_2d_shader; + }; + + inline obj_mesh make_grid(int a, int b) + { + obj_mesh res; + + auto toidx = [&](int i, int j) { + return i * b + j; + }; + + for (auto i = 0; i < a; i++) + { + for (auto j = 0; j < b; j++) + { + float3 point{ (float)j, (float)i, 1.f }; + res.positions.push_back(point); + res.normals.push_back(float3{ 0.f, 0.f, -1.f }); + + res.uvs.emplace_back(float2{ (i+0.5f)/(float)(a), (j+0.5f)/(float)(b) }); + + if (i < a - 1 && j < b - 1) + { + auto curr = toidx(i, j); + auto next_a = toidx(i + 1, j); + auto next_b = toidx(i, j + 1); + auto next_ab = toidx(i + 1, j + 1); + res.indexes.emplace_back(int3{ curr, next_a, next_b }); + res.indexes.emplace_back(int3{ next_a, next_ab, next_b }); + } + } + } + + return res; + } + + class fbo + { + public: + fbo(int w, int h); + + void createTextureAttachment(uint32_t texture); + + void createDepthTextureAttachment(uint32_t texture); + + void bind(); + + void unbind(); + + void createDepthBufferAttachment(); + + ~fbo(); + + std::string get_status(); + + int get_width() const { return _w; } + int get_height() const { return _h; } + uint32_t get() const { return _id; } + private: + uint32_t _id; + uint32_t _db = 0; + int _w, _h; + }; +} \ No newline at end of file diff --git a/common/os.cpp b/common/os.cpp new file mode 100644 index 00000000000..5f61921e6a2 --- /dev/null +++ b/common/os.cpp @@ -0,0 +1,407 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. +#ifdef _MSC_VER +#ifndef NOMINMAX +#define NOMINMAX +#endif +#endif + +#include +#include +#include +#include + +#include +#include + +#include "os.h" + +#define STB_IMAGE_WRITE_IMPLEMENTATION +#include + +#include + +#ifdef _WIN32 +#include +#include +#include +#include +#endif + +#if (defined(_WIN32) || defined(_WIN64)) +#include "ShellAPI.h" +#endif + +#if defined __linux__ || defined __APPLE__ +#include +#include +#include +#endif + +#include + +namespace rs2 +{ + + // Use shortcuts for long names to avoid trimming of essential data + std::string truncate_string(const std::string& str, size_t width) + { + if (str.length() > width) + { + std::stringstream ss; + ss << str.substr(0, width / 3) << "..." << str.substr(str.length() - width / 3); + return ss.str().c_str(); + } + return str; + } + + void open_url(const char* url) + { +#if (defined(_WIN32) || defined(_WIN64)) + if (reinterpret_cast(ShellExecuteA(NULL, "open", url, NULL, NULL, SW_SHOW)) < 32) + throw std::runtime_error("Failed opening URL"); +#elif defined __linux__ || defined(__linux__) + std::string command_name = "xdg-open "; + std::string command = command_name + url; + if (system(command.c_str())) + throw std::runtime_error("Failed opening URL"); +#elif __APPLE__ + std::string command_name = "open "; + std::string command = command_name + url; + if (system(command.c_str())) + throw std::runtime_error("Failed opening URL"); +#else +#pragma message ( "\nLibrealsense couldn't establish OS/Build environment. \ +Some auxillary functionalities might be affected. Please report this message if encountered") +#endif + } + + std::vector split_string(std::string& input, char delim) + { + std::vector result; + auto e = input.end(); + auto i = input.begin(); + while (i != e) { + i = find_if_not(i, e, [delim](char c) { return c == delim; }); + if (i == e) break; + auto j = find(i, e, delim); + result.emplace_back(i, j); + i = j; + } + return result; + } + + // Helper function to get window rect from GLFW + rect get_window_rect(GLFWwindow* window) + { + int width, height; + glfwGetWindowSize(window, &width, &height); + int xpos, ypos; + glfwGetWindowPos(window, &xpos, &ypos); + + return{ (float)xpos, (float)ypos, + (float)width, (float)height }; + } + + // Helper function to get monitor rect from GLFW + rect get_monitor_rect(GLFWmonitor* monitor) + { + const GLFWvidmode* mode = glfwGetVideoMode(monitor); + int xpos, ypos; + glfwGetMonitorPos(monitor, &xpos, &ypos); + + return{ (float)xpos, (float)ypos, + (float)mode->width, (float)mode->height }; + } + + // Select appropriate scale factor based on the display + // that most of the application is presented on + int pick_scale_factor(GLFWwindow* window) + { + auto window_rect = get_window_rect(window); + int count; + GLFWmonitor** monitors = glfwGetMonitors(&count); + if (count == 0) return 1; // Not sure if possible, but better be safe + + // Find the monitor that covers most of the application pixels: + GLFWmonitor* best = monitors[0]; + float best_area = 0.f; + for (int i = 0; i < count; i++) + { + auto int_area = window_rect.intersection( + get_monitor_rect(monitors[i])).area(); + if (int_area >= best_area) + { + best_area = int_area; + best = monitors[i]; + } + } + + int widthMM = 0; + int heightMM = 0; + glfwGetMonitorPhysicalSize(best, &widthMM, &heightMM); + + // This indicates that the monitor dimentions are unknown + if (widthMM * heightMM == 0) return 1; + + // The actual calculation is somewhat arbitrary, but we are going for + // about 1cm buttons, regardless of resultion + // We discourage fractional scale factors + float how_many_pixels_in_mm = + get_monitor_rect(best).area() / (widthMM * heightMM); + float scale = sqrt(how_many_pixels_in_mm) / 5.f; + if (scale < 1.f) return 1; + return (int)(floor(scale)); + } + + bool directory_exists(const char* dir) + { + struct stat info; + + if (stat(dir, &info ) != 0) + return false; + else if (info.st_mode & S_IFDIR) + return true; + else + return false; + } + + const char* file_dialog_open(file_dialog_mode flags, const char* filters, + const char* default_path, const char* default_name) + { + std::string def = ""; + if (default_path) def += default_path; + if (default_name && default_path) def += "/"; + if (default_name) def += default_name; + const char* def_ptr = nullptr; + if (default_name || default_path) + def_ptr = def.c_str(); + int num_filters = filters == nullptr ? 0 : 1; + + char const * const * aFilterPatterns = nullptr; + char const * aSingleFilterDescription = nullptr; + + std::vector filters_split; + + if (num_filters) + { + auto curr = filters; + while (*curr != '\0') + { + auto end = curr + strlen(curr); + filters_split.push_back({ curr, end }); + curr = end + 1; + } + } + + std::vector filter; + + if (filters_split.size() == 2) + { + filter.push_back(filters_split[1].c_str()); + aFilterPatterns = filter.data(); + aSingleFilterDescription = filters_split[0].c_str(); + } + + if (flags == save_file) + { + return tinyfd_saveFileDialog("Save File", def_ptr, num_filters, aFilterPatterns, aSingleFilterDescription); + } + if (flags == open_file) + { + return tinyfd_openFileDialog("Open File", def_ptr, num_filters, aFilterPatterns, aSingleFilterDescription, 0); + } + return nullptr; + } + + int save_to_png(const char* filename, + size_t pixel_width, size_t pixels_height, size_t bytes_per_pixel, + const void* raster_data, size_t stride_bytes) + { + return stbi_write_png(filename, (int)pixel_width, (int)pixels_height, (int)bytes_per_pixel, raster_data, (int)stride_bytes); + } + + std::string get_file_name(const std::string& path) + { + std::string file_name; + for (auto rit = path.rbegin(); rit != path.rend(); ++rit) + { + if (*rit == '\\' || *rit == '/') + break; + file_name += *rit; + } + std::reverse(file_name.begin(), file_name.end()); + return file_name; + } + + std::string get_timestamped_file_name() + { + std::time_t now = std::time(NULL); + std::tm * ptm = std::localtime(&now); + char buffer[16]; + // Format: 20170529_205500 + std::strftime(buffer, 16, "%Y%m%d_%H%M%S", ptm); + return buffer; + } + + std::string get_folder_path(special_folder f) + { + std::string res; +#ifdef _WIN32 + if (f == temp_folder) + { + TCHAR buf[MAX_PATH]; + if (GetTempPath(MAX_PATH, buf) != 0) + { + char str[1024]; + wcstombs(str, buf, 1023); + res = str; + } + } + else + { + GUID folder; + switch (f) + { + case user_desktop: folder = FOLDERID_Desktop; + break; + case user_documents: folder = FOLDERID_Documents; + break; + case user_pictures: folder = FOLDERID_Pictures; + break; + case user_videos: folder = FOLDERID_Videos; + break; + case app_data: folder = FOLDERID_RoamingAppData; + break; + default: + throw std::invalid_argument( + std::string("Value of f (") + std::to_string(f) + std::string(") is not supported")); + } + PWSTR folder_path = NULL; + HRESULT hr = SHGetKnownFolderPath(folder, KF_FLAG_DEFAULT_PATH, NULL, &folder_path); + if (SUCCEEDED(hr)) + { + char str[1024]; + wcstombs(str, folder_path, 1023); + CoTaskMemFree(folder_path); + res = str; + res += "\\"; + } + else + { + throw std::runtime_error("Failed to get requested special folder"); + } + } +#endif //_WIN32 +#if defined __linux__ || defined __APPLE__ + if (f == special_folder::temp_folder) + { + const char* tmp_dir = getenv("TMPDIR"); + res = tmp_dir ? tmp_dir : "/tmp/"; + } + else + { + const char* home_dir = getenv("HOME"); + if (!home_dir) + { + struct passwd* pw = getpwuid(getuid()); + home_dir = (pw && pw->pw_dir) ? pw->pw_dir : ""; + } + if (home_dir) + { + res = home_dir; + switch (f) + { + case user_desktop: res += "/Desktop/"; + break; + case user_documents: res += "/Documents/"; + break; + case user_pictures: res += "/Pictures/"; + break; + case user_videos: res += "/Videos/"; + break; + case app_data: res += "/."; + break; + default: + throw std::invalid_argument( + std::string("Value of f (") + std::to_string(f) + std::string(") is not supported")); + } + } + } +#endif // defined __linux__ || defined __APPLE__ + return res; + } + + bool ends_with(const std::string& s, const std::string& suffix) + { + auto i = s.rbegin(), j = suffix.rbegin(); + for (; i != s.rend() && j != suffix.rend() && *i == *j; + i++, j++); + return j == suffix.rend(); + } + + bool starts_with(const std::string& s, const std::string& prefix) + { + auto i = s.begin(), j = prefix.begin(); + for (; i != s.end() && j != prefix.end() && *i == *j; + i++, j++); + return j == prefix.end(); + } + + std::string get_os_name() + { +#ifdef _WIN32 + return "Windows"; +#else +#ifdef __APPLE__ + return "Mac OS"; +#else +#ifdef __linux__ + return "Linux"; +#else + return "Unknown"; +#endif +#endif +#endif + } + + bool is_debug() + { +#ifndef NDEBUG + return false; +#else +#ifndef _DEBUG + return false; +#else + return true; +#endif +#endif + } + + std::string url_encode(const std::string &value) + { + // based on https://stackoverflow.com/a/17708801 + using namespace std; + + ostringstream escaped; + escaped.fill('0'); + escaped << hex; + + for (string::const_iterator i = value.begin(), n = value.end(); i != n; ++i) { + string::value_type c = (*i); + + // Keep alphanumeric and other accepted characters intact + if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') { + escaped << c; + continue; + } + + // Any other characters are percent-encoded + escaped << uppercase; + escaped << '%' << setw(2) << int((unsigned char)c); + escaped << nouppercase; + } + + return escaped.str(); + } +} \ No newline at end of file diff --git a/common/os.h b/common/os.h new file mode 100644 index 00000000000..79007bc8953 --- /dev/null +++ b/common/os.h @@ -0,0 +1,69 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once +#include +#include +#include + +struct GLFWmonitor; +struct GLFWwindow; + +// Either OS specific or common helper functions +namespace rs2 +{ + bool starts_with(const std::string& s, const std::string& prefix); + bool ends_with(const std::string& s, const std::string& prefix); + + std::string truncate_string(const std::string& str, size_t width); + + void open_url(const char* url); + + bool directory_exists(const char* dir); + + std::vector split_string(std::string& input, char delim); + + // Helper function to get window rect from GLFW + rect get_window_rect(GLFWwindow* window); + + // Helper function to get monitor rect from GLFW + rect get_monitor_rect(GLFWmonitor* monitor); + + // Select appropriate scale factor based on the display + // that most of the application is presented on + int pick_scale_factor(GLFWwindow* window); + + std::string get_file_name(const std::string& path); + + // Wrapper for cross-platform dialog control + enum file_dialog_mode { + open_file = (1 << 0), + save_file = (1 << 1), + }; + + const char* file_dialog_open(file_dialog_mode flags, const char* filters, const char* default_path, const char* default_name); + + // Encapsulate helper function to resolve linking + int save_to_png(const char* filename, + size_t pixel_width, size_t pixels_height, size_t bytes_per_pixel, + const void* raster_data, size_t stride_bytes); + + enum special_folder + { + user_desktop, + user_documents, + user_pictures, + user_videos, + temp_folder, + app_data + }; + + std::string get_timestamped_file_name(); + std::string get_folder_path(special_folder f); + + std::string url_encode(const std::string &value); + + std::string get_os_name(); + + bool is_debug(); +} diff --git a/common/parser.hpp b/common/parser.hpp index f2030d9a6fc..e07acd6bf5c 100644 --- a/common/parser.hpp +++ b/common/parser.hpp @@ -575,13 +575,13 @@ inline void decode_string_from_raw_data(const command& command, const std::map= temp_end_address) break; @@ -612,7 +612,7 @@ inline void decode_string_from_raw_data(const command& command, const std::map "; - for (auto offset = 0; offset < data_size; ++offset) + for (size_t offset = 0; offset < data_size; ++offset) { ++bytes_per_line; ++bytes; @@ -630,7 +630,7 @@ inline void decode_string_from_raw_data(const command& command, const std::map= end_address) break; diff --git a/common/realsense-ui-advanced-mode.h b/common/realsense-ui-advanced-mode.h index 4e3aa54913d..28fb40295fb 100644 --- a/common/realsense-ui-advanced-mode.h +++ b/common/realsense-ui-advanced-mode.h @@ -100,12 +100,6 @@ inline void slider_int(std::string& error_message, const char* id, T* val, S T:: { error_message = "Invalid numeric input!"; } - else if (new_value < min || new_value > max) - { - error_message = rs2::to_string() << new_value - << " is out of bounds [" << min << ", " - << max << "]"; - } else { val->*field = static_cast(new_value); @@ -162,12 +156,6 @@ inline void slider_float(std::string& error_message, const char* id, T* val, S T { error_message = "Invalid numeric input!"; } - else if (new_value < min || new_value > max) - { - error_message = rs2::to_string() << new_value - << " is out of bounds [" << min << ", " - << max << "]"; - } else { val->*field = static_cast(new_value); @@ -207,6 +195,7 @@ struct advanced_mode_control param_group depth_table; param_group ae; param_group census; + param_group amp_factor; }; inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, @@ -227,6 +216,7 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, amc.cc.vals[k] = advanced.get_color_correction(k); amc.depth_table.vals[k] = advanced.get_depth_table(k); amc.census.vals[k] = advanced.get_census(k); + amc.amp_factor.vals[k] = advanced.get_amp_factor(k); } amc.hdad.vals[0] = advanced.get_hdad(); amc.hdad.vals[1] = amc.hdad.vals[0]; //setting min/max to the same value @@ -258,7 +248,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_depth_control(amc.depth_controls.vals[0]); + try + { + advanced.set_depth_control(amc.depth_controls.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -280,7 +278,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_rsm(amc.rsm.vals[0]); + try + { + advanced.set_rsm(amc.rsm.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -307,7 +313,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_rau_support_vector_control(amc.rsvc.vals[0]); + try + { + advanced.set_rau_support_vector_control(amc.rsvc.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -330,7 +344,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_color_control(amc.color_control.vals[0]); + try + { + advanced.set_color_control(amc.color_control.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -351,7 +373,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_rau_thresholds_control(amc.rctc.vals[0]); + try + { + advanced.set_rau_thresholds_control(amc.rctc.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -372,7 +402,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_slo_color_thresholds_control(amc.sctc.vals[0]); + try + { + advanced.set_slo_color_thresholds_control(amc.sctc.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -396,7 +434,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_slo_penalty_control(amc.spc.vals[0]); + try + { + advanced.set_slo_penalty_control(amc.spc.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -419,7 +465,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_hdad(amc.hdad.vals[0]); + try + { + advanced.set_hdad(amc.hdad.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -449,7 +503,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_color_correction(amc.cc.vals[0]); + try + { + advanced.set_color_correction(amc.cc.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -472,7 +534,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_depth_table(amc.depth_table.vals[0]); + try + { + advanced.set_depth_table(amc.depth_table.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -491,7 +561,15 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_ae_control(amc.ae.vals[0]); + try + { + advanced.set_ae_control(amc.ae.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } @@ -511,11 +589,45 @@ inline void draw_advanced_mode_controls(rs400::advanced_mode& advanced, if (to_set) { - advanced.set_census(amc.census.vals[0]); + try + { + advanced.set_census(amc.census.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } was_set = true; } ImGui::TreePop(); } -} + if (ImGui::TreeNode("Disparity Modulation")) + { + ImGui::PushItemWidth(-1); + + auto to_set = false; + + slider_float(error_message, "A Factor", amc.amp_factor.vals, &STAFactor::amplitude, to_set); + + ImGui::PopItemWidth(); + + if (to_set) + { + try + { + advanced.set_amp_factor(amc.amp_factor.vals[0]); + } + catch (...) + { + ImGui::TreePop(); + throw; + } + was_set = true; + } + + ImGui::TreePop(); + } +} diff --git a/common/rendering.h b/common/rendering.h index 1e1875dfe33..9aae952c252 100644 --- a/common/rendering.h +++ b/common/rendering.h @@ -3,10 +3,13 @@ #pragma once -#include +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include -#define GLFW_INCLUDE_GLU -#include +#include +#include #include #include @@ -14,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -21,7 +25,12 @@ #define _USE_MATH_DEFINES #include #include +#include #include +#include +#include +#include +#include #ifdef _MSC_VER #ifndef GL_CLAMP_TO_BORDER @@ -81,10 +90,10 @@ namespace rs2 private: static const int _numerator = 1000; static const int _skip_frames = 5; - unsigned long long _num_of_frames; int _counter; double _delta; double _last_timestamp; + unsigned long long _num_of_frames; unsigned long long _last_frame_counter; mutable std::mutex _mtx; }; @@ -210,7 +219,7 @@ namespace rs2 { std::vector angles; angles.reserve(4); - for (int i = 0; i < p.size(); i++) + for (size_t i = 0; i < p.size(); i++) { auto p1 = p[i]; auto p2 = p[(i+1) % p.size()]; @@ -239,6 +248,19 @@ namespace rs2 { float mat[4][4]; + operator float*() const + { + return (float*)&mat; + } + + static matrix4 identity() + { + matrix4 m; + for (int i = 0; i < 4; i++) + m.mat[i][i] = 1.f; + return m; + } + matrix4() { std::memset(mat, 0, sizeof(mat)); @@ -249,8 +271,10 @@ namespace rs2 std::memcpy(mat,vals,sizeof(mat)); } + float& operator()(int i, int j) { return mat[i][j]; } + //init rotation matrix from quaternion - matrix4(rs2_quaternion q) + matrix4(const rs2_quaternion& q) { mat[0][0] = 1 - 2*q.y*q.y - 2*q.z*q.z; mat[0][1] = 2*q.x*q.y - 2*q.z*q.w; mat[0][2] = 2*q.x*q.z + 2*q.y*q.w; mat[0][3] = 0.0f; mat[1][0] = 2*q.x*q.y + 2*q.z*q.w; mat[1][1] = 1 - 2*q.x*q.x - 2*q.z*q.z; mat[1][2] = 2*q.y*q.z - 2*q.x*q.w; mat[1][3] = 0.0f; @@ -259,7 +283,7 @@ namespace rs2 } //init translation matrix from vector - matrix4(rs2_vector t) + matrix4(const rs2_vector& t) { mat[0][0] = 1.0f; mat[0][1] = 0.0f; mat[0][2] = 0.0f; mat[0][3] = t.x; mat[1][0] = 0.0f; mat[1][1] = 1.0f; mat[1][2] = 0.0f; mat[1][3] = t.y; @@ -339,7 +363,7 @@ namespace rs2 } }; - inline matrix4 operator*(matrix4 a, matrix4 b) + inline matrix4 operator*(const matrix4& a, const matrix4& b) { matrix4 res; for (int i = 0; i < 4; i++) @@ -393,7 +417,7 @@ namespace rs2 // return the distance between p and the line created by p1 and p2 inline float point_to_line_dist(float2 p1, float2 p2, float2 p) { - float d = abs((p2.x - p1.x)*(p1.y - p.y) - (p1.x - p.x)*(p2.y - p1.y)) / sqrt((p2.x - p1.x)*(p2.x - p1.x) + (p2.y - p1.y)*(p2.y - p1.y)); + float d = std::abs((p2.x - p1.x)*(p1.y - p.y) - (p1.x - p.x)*(p2.y - p1.y)) / sqrt((p2.x - p1.x)*(p2.x - p1.x) + (p2.y - p1.y)*(p2.y - p1.y)); return d; } @@ -404,13 +428,13 @@ namespace rs2 int max_distance_index = 0; float distance_limit = 0.01f; //1 centimeter // Find the point with the maximum distance from the 2 end points of the vector - for (int i = 1; i < points.size() - 1; i++) + for (size_t i = 1; i < points.size() - 1; i++) { float d = point_to_line_dist(points[0], points.back(), points[i]); if (d > max_distance) { max_distance = d; - max_distance_index = i; + max_distance_index = (int)i; } } // If max distance is greater than the limit, recursively simplify @@ -459,7 +483,7 @@ namespace rs2 struct mouse_info { - float2 cursor; + float2 cursor{ 0.f, 0.f }; float2 prev_cursor{ 0.f, 0.f }; bool mouse_down = false; int mouse_wheel = 0; @@ -921,6 +945,11 @@ namespace rs2 return false; } + void signal() const + { + _last = _time.now() - _delta; + } + private: timer _time; mutable clock::time_point _last; @@ -983,8 +1012,11 @@ namespace rs2 mutable rs2::frame last[2]; public: std::shared_ptr colorize; + std::shared_ptr yuy2rgb; + std::shared_ptr depth_decode; bool zoom_preview = false; rect curr_preview_rect{}; + int texture_id = 0; texture_buffer(const texture_buffer& other) { @@ -1003,10 +1035,18 @@ namespace rs2 return last[idx]; } - texture_buffer() : last_queue(), texture(), - colorize(std::make_shared()) {} + texture_buffer() : last_queue(), texture() {} - GLuint get_gl_handle() const { return texture; } + GLuint get_gl_handle() const { + // If the frame is already a GPU frame + // Just get the texture from the frame + if (auto gf = get_last_frame(true).as()) + { + auto tex = gf.get_texture_id(texture_id); + return tex; + } + else return texture; + } // Simplified version of upload that lets us load basic RGBA textures // This is used for the splash screen @@ -1023,10 +1063,8 @@ namespace rs2 glBindTexture(GL_TEXTURE_2D, 0); } - void upload(rs2::frame frame) + void upload(rs2::frame frame, rs2_format prefered_format = RS2_FORMAT_ANY) { - last_queue[0].enqueue(frame); - // If the frame timestamp has changed since the last time show(...) was called, re-upload the texture if (!texture) glGenTextures(1, &texture); @@ -1034,7 +1072,19 @@ namespace rs2 int height = 0; int stride = 0; auto format = frame.get_profile().format(); - auto data = frame.get_data(); + + // Decode compressed data required for mouse pointer depth calculations + if (RS2_FORMAT_Z16H==format) + { + frame = depth_decode->process(frame); + format = frame.get_profile().format(); + } + + last_queue[0].enqueue(frame); + + // When frame is a GPU frame + // we don't need to access pixels, keep data NULL + auto data = !frame.is() ? frame.get_data() : nullptr; auto rendered_frame = frame; auto image = frame.as(); @@ -1045,146 +1095,228 @@ namespace rs2 height = image.get_height(); stride = image.get_stride_in_bytes(); } + else if (auto profile = frame.get_profile().as()) + { + width = profile.width(); + height = profile.height(); + stride = width; + } glBindTexture(GL_TEXTURE_2D, texture); stride = stride == 0 ? width : stride; //glPixelStorei(GL_UNPACK_ROW_LENGTH, stride); - switch (format) + + // Allow upload of points frame type + if (auto pc = frame.as()) { - case RS2_FORMAT_ANY: - throw std::runtime_error("not a valid format"); - case RS2_FORMAT_Z16: - case RS2_FORMAT_DISPARITY16: - if (frame.is()) + if (!frame.is()) { - if (auto colorized_frame = colorize->colorize(frame).as()) + // Points can be uploaded as two different + // formats: XYZ for verteces and UV for texture coordinates + if (prefered_format == RS2_FORMAT_XYZ32F) { - data = colorized_frame.get_data(); - // Override the first pixel in the colorized image for occlusion invalidation. - memset((void*)data,0, colorized_frame.get_bytes_per_pixel()); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, - colorized_frame.get_width(), - colorized_frame.get_height(), - 0, GL_RGB, GL_UNSIGNED_BYTE, - colorized_frame.get_data()); - rendered_frame = colorized_frame; + // Upload vertices + data = pc.get_vertices(); + auto v = pc.get_vertices(); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB16F, width, height, 0, GL_RGB, GL_FLOAT, data); + } + else + { + // Upload texture coordinates + data = pc.get_texture_coordinates(); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG16F, width, height, 0, GL_RG, GL_FLOAT, data); } - } - else glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, data); - break; - case RS2_FORMAT_DISPARITY32: - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, data); - break; - case RS2_FORMAT_XYZ32F: - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, data); - break; - case RS2_FORMAT_YUYV: // Display YUYV by showing the luminance channel and packing chrominance into ignored alpha channel - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, data); - break; - case RS2_FORMAT_UYVY: // Use luminance component only to avoid costly UVUY->RGB conversion - glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, data); - break; - case RS2_FORMAT_RGB8: case RS2_FORMAT_BGR8: // Display both RGB and BGR by interpreting them RGB, to show the flipped byte ordering. Obviously, GL_BGR could be used on OpenGL 1.2+ - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); - break; - case RS2_FORMAT_RGBA8: case RS2_FORMAT_BGRA8: // Display both RGBA and BGRA by interpreting them RGBA, to show the flipped byte ordering. Obviously, GL_BGRA could be used on OpenGL 1.2+ - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); - break; - case RS2_FORMAT_Y8: - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data); - break; - case RS2_FORMAT_MOTION_XYZ32F: - { - if (auto motion = frame.as()) - { - auto axes = motion.get_motion_data(); - draw_motion_data(axes.x, axes.y, axes.z); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); } else { - throw std::runtime_error("Not expecting a frame with motion format that is not a motion_frame"); + // Update texture_id based on desired format + if (prefered_format == RS2_FORMAT_XYZ32F) texture_id = 0; + else texture_id = 1; } - break; } - case RS2_FORMAT_Y16: - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, data); - break; - case RS2_FORMAT_RAW8: - case RS2_FORMAT_MOTION_RAW: - case RS2_FORMAT_GPIO_RAW: - glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data); - break; - case RS2_FORMAT_6DOF: + else { - if (auto pose = frame.as()) + switch (format) { - rs2_pose pose_data = pose.get_pose_data(); - draw_pose_data(pose_data, frame.get_profile().unique_id()); + case RS2_FORMAT_ANY: + throw std::runtime_error("not a valid format"); + case RS2_FORMAT_Z16H: + throw std::runtime_error("unexpected format: Z16H. Check decoder processing block"); + case RS2_FORMAT_Z16: + case RS2_FORMAT_DISPARITY16: + case RS2_FORMAT_DISPARITY32: + if (frame.is()) + { + if (prefered_format == RS2_FORMAT_Z16) + { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, width, height, 0, GL_RG, GL_UNSIGNED_BYTE, data); + } + else if (prefered_format == RS2_FORMAT_DISPARITY32) + { + glTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, width, height, 0, GL_RED, GL_FLOAT, data); + } + else + { + if (auto colorized_frame = colorize->colorize(frame).as()) + { + if (!colorized_frame.is()) + { + data = colorized_frame.get_data(); + // Override the first pixel in the colorized image for occlusion invalidation. + memset((void*)data, 0, colorized_frame.get_bytes_per_pixel()); + { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, + colorized_frame.get_width(), + colorized_frame.get_height(), + 0, GL_RGB, GL_UNSIGNED_BYTE, + data); + } + } + rendered_frame = colorized_frame; + } + } + } + else glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, width, height, 0, GL_RG, GL_UNSIGNED_BYTE, data); + break; + case RS2_FORMAT_XYZ32F: + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, data); + break; + case RS2_FORMAT_YUYV: + if (yuy2rgb) + { + if (auto colorized_frame = yuy2rgb->process(frame).as()) + { + if (!colorized_frame.is()) + { + glBindTexture(GL_TEXTURE_2D, texture); + data = colorized_frame.get_data(); + + // Override the first pixel in the colorized image for occlusion invalidation. + memset((void*)data, 0, colorized_frame.get_bytes_per_pixel()); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, + colorized_frame.get_width(), + colorized_frame.get_height(), + 0, GL_RGB, GL_UNSIGNED_BYTE, + colorized_frame.get_data()); + } + rendered_frame = colorized_frame; + } + } + else + { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, data); + } + break; + case RS2_FORMAT_UYVY: // Use luminance component only to avoid costly UVUY->RGB conversion + glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, data); + break; + case RS2_FORMAT_RGB8: case RS2_FORMAT_BGR8: // Display both RGB and BGR by interpreting them RGB, to show the flipped byte ordering. Obviously, GL_BGR could be used on OpenGL 1.2+ + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); + break; + case RS2_FORMAT_RGBA8: case RS2_FORMAT_BGRA8: // Display both RGBA and BGRA by interpreting them RGBA, to show the flipped byte ordering. Obviously, GL_BGRA could be used on OpenGL 1.2+ + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + break; + case RS2_FORMAT_Y8: + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data); + break; + case RS2_FORMAT_MOTION_XYZ32F: + { + if (auto motion = frame.as()) + { + auto axes = motion.get_motion_data(); + draw_motion_data(axes.x, axes.y, axes.z); + } + else + { + throw std::runtime_error("Not expecting a frame with motion format that is not a motion_frame"); + } + break; } - else + case RS2_FORMAT_Y16: + case RS2_FORMAT_Y10BPACK: + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, data); + break; + case RS2_FORMAT_RAW8: + case RS2_FORMAT_MOTION_RAW: + case RS2_FORMAT_GPIO_RAW: + glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data); + break; + case RS2_FORMAT_6DOF: + { + if (auto pose = frame.as()) + { + rs2_pose pose_data = pose.get_pose_data(); + draw_pose_data(pose_data, frame.get_profile().unique_id()); + } + else + { + throw std::runtime_error("Not expecting a frame with 6DOF format that is not a pose_frame"); + } + break; + } + //case RS2_FORMAT_RAW10: + //{ + // // Visualize Raw10 by performing a naive down sample. Each 2x2 block contains one red pixel, two green pixels, and one blue pixel, so combine them into a single RGB triple. + // rgb.clear(); rgb.resize(width / 2 * height / 2 * 3); + // auto out = rgb.data(); auto in0 = reinterpret_cast(data), in1 = in0 + width * 5 / 4; + // for (auto y = 0; y RGB RGB + // *out++ = in0[2]; *out++ = (in0[3] + in1[2]) / 2; *out++ = in1[3]; // GBGB + // in0 += 5; in1 += 5; + // } + // in0 = in1; in1 += width * 5 / 4; + // } + // glPixelStorei(GL_UNPACK_ROW_LENGTH, width / 2); // Update row stride to reflect post-downsampling dimensions of the target texture + // glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width / 2, height / 2, 0, GL_RGB, GL_UNSIGNED_BYTE, rgb.data()); + //} + //break; + default: { - throw std::runtime_error("Not expecting a frame with 6DOF format that is not a pose_frame"); + memset((void*)data, 0, height*width); + glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, data); } - break; - } - //case RS2_FORMAT_RAW10: - //{ - // // Visualize Raw10 by performing a naive down sample. Each 2x2 block contains one red pixel, two green pixels, and one blue pixel, so combine them into a single RGB triple. - // rgb.clear(); rgb.resize(width / 2 * height / 2 * 3); - // auto out = rgb.data(); auto in0 = reinterpret_cast(data), in1 = in0 + width * 5 / 4; - // for (auto y = 0; y RGB RGB - // *out++ = in0[2]; *out++ = (in0[3] + in1[2]) / 2; *out++ = in1[3]; // GBGB - // in0 += 5; in1 += 5; - // } - // in0 = in1; in1 += width * 5 / 4; - // } - // glPixelStorei(GL_UNPACK_ROW_LENGTH, width / 2); // Update row stride to reflect post-downsampling dimensions of the target texture - // glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width / 2, height / 2, 0, GL_RGB, GL_UNSIGNED_BYTE, rgb.data()); - //} - //break; - default: - throw std::runtime_error("The requested format is not supported for rendering"); + } + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); } - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); - glPixelStorei(GL_PACK_ALIGNMENT, 1); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glBindTexture(GL_TEXTURE_2D, 0); last_queue[1].enqueue(rendered_frame); } - static void draw_axis(float axis_size = 1.f, float axisWidth = 4.f) + static void draw_axes(float axis_size = 1.f, float axisWidth = 4.f) { // Triangles For X axis glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); - glVertex3f(axis_size * 1.1f, 0.0f, 0.0f); - glVertex3f(axis_size, axis_size * 0.05f, 0.0f); - glVertex3f(axis_size, -0.05f * axis_size, 0.0f); + glVertex3f(axis_size * 1.1f, 0.f, 0.f); + glVertex3f(axis_size, -axis_size * 0.05f, 0.f); + glVertex3f(axis_size, axis_size * 0.05f, 0.f); + glVertex3f(axis_size * 1.1f, 0.f, 0.f); + glVertex3f(axis_size, 0.f, -axis_size * 0.05f); + glVertex3f(axis_size, 0.f, axis_size * 0.05f); glEnd(); // Triangles For Y axis glBegin(GL_TRIANGLES); - glColor3f(0.0f, 1.0f, 0.0f); - glVertex3f(0.0f, -1.1f * axis_size, 0.0f); - glVertex3f(0.0f, -1.0f * axis_size, 0.05f * axis_size); - glVertex3f(0.0f, -1.0f * axis_size, -0.05f * axis_size); - glEnd(); - glBegin(GL_TRIANGLES); - glColor3f(0.0f, 1.0f, 0.0f); - glVertex3f(0.0f, -1.1f * axis_size, 0.0f); - glVertex3f(0.05f * axis_size, -1.0f * axis_size, 0.0f); - glVertex3f(-0.05f * axis_size, -1.0f * axis_size, 0.0f); + glColor3f(0.f, 1.f, 0.f); + glVertex3f(0.f, axis_size * 1.1f, 0.0f); + glVertex3f(0.f, axis_size, 0.05f * axis_size); + glVertex3f(0.f, axis_size, -0.05f * axis_size); + glVertex3f(0.f, axis_size * 1.1f, 0.0f); + glVertex3f( 0.05f * axis_size, axis_size, 0.f); + glVertex3f(-0.05f * axis_size, axis_size, 0.f); glEnd(); // Triangles For Z axis @@ -1193,6 +1325,9 @@ namespace rs2 glVertex3f(0.0f, 0.0f, 1.1f * axis_size); glVertex3f(0.0f, 0.05f * axis_size, 1.0f * axis_size); glVertex3f(0.0f, -0.05f * axis_size, 1.0f * axis_size); + glVertex3f(0.0f, 0.0f, 1.1f * axis_size); + glVertex3f(0.05f * axis_size, 0.f, 1.0f * axis_size); + glVertex3f(-0.05f * axis_size, 0.f, 1.0f * axis_size); glEnd(); glLineWidth(axisWidth); @@ -1207,7 +1342,7 @@ namespace rs2 // Y axis - Green glColor3f(0.0f, 1.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f); - glVertex3f(0.0f, -axis_size, 0.0f); + glVertex3f(0.0f, axis_size, 0.0f); // Z axis - Blue glColor3f(0.0f, 0.0f, 1.0f); @@ -1282,7 +1417,7 @@ namespace rs2 glMatrixMode(GL_MODELVIEW); glPushMatrix(); - glViewport(0, 0, 1024, 1024); + glViewport(0, 0, 768, 768); glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); @@ -1291,21 +1426,22 @@ namespace rs2 glOrtho(-2.8, 2.8, -2.4, 2.4, -7, 7); - glRotatef(-25, 1.0f, 0.0f, 0.0f); + glRotatef(25, 1.0f, 0.0f, 0.0f); - glTranslatef(0, 0.33f, -1.f); + glTranslatef(0, -0.33f, -1.f); float norm = std::sqrt(x*x + y*y + z*z); - glRotatef(-45, 0.0f, 1.0f, 0.0f); + glRotatef(-135, 0.0f, 1.0f, 0.0f); + + draw_axes(); - draw_axis(); draw_circle(1, 0, 0, 0, 1, 0); draw_circle(0, 1, 0, 0, 0, 1); draw_circle(1, 0, 0, 0, 0, 1); const auto canvas_size = 230; - const auto vec_threshold = 0.01f; + const auto vec_threshold = 0.2f; if (norm < vec_threshold) { const auto radius = 0.05; @@ -1331,7 +1467,7 @@ namespace rs2 glBegin(GL_LINES); glColor3f(1.0f, 1.0f, 1.0f); glVertex3f(0.0f, 0.0f, 0.0f); - glVertex3f(-x / norm, -y / norm, -z / norm); + glVertex3f(x / norm, y / norm, z / norm); glEnd(); // Save model and projection matrix for later @@ -1346,15 +1482,11 @@ namespace rs2 std::ostringstream s1; const auto precision = 3; - s1 << "(" << std::fixed << std::setprecision(precision) << x << "," << std::fixed << std::setprecision(precision) << y << "," << std::fixed << std::setprecision(precision) << z << ")"; - print_text_in_3d(-x, -y, -z, s1.str().c_str(), false, model, proj, 1 / norm); - - std::ostringstream s2; - s2 << std::setprecision(precision) << norm; - print_text_in_3d(-x / 2, -y / 2, -z / 2, s2.str().c_str(), true, model, proj, 1 / norm); + s1 << std::setprecision(precision) << norm; + print_text_in_3d(x / 2, y / 2, z / 2, s1.str().c_str(), true, model, proj, 1 / norm); } - glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 1024, 1024, 0); + glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, 768, 768, 0); glMatrixMode(GL_MODELVIEW); glPopMatrix(); @@ -1363,12 +1495,12 @@ namespace rs2 } - void draw_grid() + void draw_grid(float step) { glBegin(GL_LINES); - glColor4f(0.4f, 0.4f, 0.4f, 0.8f); + glColor4f(0.1f, 0.1f, 0.1f, 0.8f); glLineWidth(1); - float step = 0.1f; + for (float x = -1.5; x < 1.5; x += step) { for (float y = -1.5; y < 1.5; y += step) @@ -1398,8 +1530,8 @@ namespace rs2 glMatrixMode(GL_PROJECTION); glLoadIdentity(); - draw_grid(); - draw_axis(0.3f, 2.f); + draw_grid(1.f); + draw_axes(0.3f, 2.f); // Drawing pose: matrix4 pose_trans = tm2_pose_to_world_transformation(pose); @@ -1411,14 +1543,11 @@ namespace rs2 glPushMatrix(); glLoadMatrixf(model); - draw_axis(0.3f, 2.f); + draw_axes(0.3f, 2.f); // remove model matrix from the rest of the render glPopMatrix(); - const auto canvas_size = 230; - const auto vec_threshold = 0.01f; - glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 1024, 1024, 0); glMatrixMode(GL_MODELVIEW); @@ -1482,7 +1611,8 @@ namespace rs2 glColor4f(1.0f, 1.0f, 1.0f, 1 - alpha); glEnd(); - glBindTexture(GL_TEXTURE_2D, texture); + glBindTexture(GL_TEXTURE_2D, get_gl_handle()); + glEnable(GL_TEXTURE_2D); draw_texture(normalized_zoom, r); @@ -1494,7 +1624,8 @@ namespace rs2 void show_preview(const rect& r, const rect& normalized_zoom = rect{0, 0, 1, 1}) { - glBindTexture(GL_TEXTURE_2D, texture); + glBindTexture(GL_TEXTURE_2D, get_gl_handle()); + glEnable(GL_TEXTURE_2D); // Show stream thumbnail @@ -1545,30 +1676,6 @@ namespace rs2 glVertex2f(normalized_thumbnail_roi.x, normalized_thumbnail_roi.y); glEnd(); } - - /*if (last) - { - if (last.get_profile().stream_type() == RS2_STREAM_DEPTH) - { - const int segments = 16; - for (int i = 1; i <= segments; i++) - { - auto t1 = (float)i/segments; - auto k1 = cm->min_key() + t1*(cm->max_key() - cm->min_key()); - auto t2 = (float)(i - 1)/segments; - auto k2 = cm->min_key() + t2*(cm->max_key() - cm->min_key()); - auto c1 = cm->get(k1); - auto c2 = cm->get(k2); - - glBegin(GL_QUADS); - glColor3f(c1.x / 255, c1.y / 255, c1.z / 255); glVertex2f(r.x + r.w - 150 + t1 * 140, r.y + r.h - 22); - glColor3f(c2.x / 255, c2.y / 255, c2.z / 255); glVertex2f(r.x + r.w - 150 + t2 * 140, r.y + r.h - 22); - glColor3f(c2.x / 255, c2.y / 255, c2.z / 255); glVertex2f(r.x + r.w - 150 + t2 * 140, r.y + r.h - 4); - glColor3f(c1.x / 255, c1.y / 255, c1.z / 255); glVertex2f(r.x + r.w - 150 + t1 * 140, r.y + r.h - 4); - glEnd(); - } - } - }*/ } }; @@ -1610,6 +1717,23 @@ namespace rs2 return false; } + inline bool is_rasterizeable(rs2_format format) + { + // Check whether the produced + switch (format) + { + case RS2_FORMAT_ANY: + case RS2_FORMAT_XYZ32F: + case RS2_FORMAT_MOTION_RAW: + case RS2_FORMAT_MOTION_XYZ32F: + case RS2_FORMAT_GPIO_RAW: + case RS2_FORMAT_6DOF: + return false; + default: + return true; + } + } + // RS4xx with RealTec RGB sensor may additionally require sensor orientation control to make runtime adjustments inline void rotate_rgb_image(device& dev,uint32_t res_width) { @@ -1637,4 +1761,37 @@ namespace rs2 flip = !flip; } + + inline float to_rad(float deg) + { + return static_cast(deg * (M_PI / 180.f)); + } + + inline matrix4 create_perspective_projection_matrix(float width, float height, float fov, float n, float f) + { + auto ar = width / height; + auto y_scale = (1.f / (float)std::tan(to_rad(fov / 2.f))) * ar; + auto x_scale = y_scale / ar; + auto length = f - n; + + matrix4 res; + for (int i = 0; i < 4; i++) + for (int j = 0; j < 4; j++) + res.mat[0][0] = 0.f; + res.mat[0][0] = x_scale; + res.mat[1][1] = y_scale; + res.mat[2][2] = -((f + n) / length); + res.mat[2][3] = -1; + res.mat[3][2] = -((2 * n * f) / length); + return res; + } + + inline matrix4 identity_matrix() + { + matrix4 data; + for (int i = 0; i < 4; i++) + for (int j = 0; j < 4; j++) + data.mat[i][j] = (i == j) ? 1.f : 0.f; + return data; + } } diff --git a/common/res/d415.h b/common/res/d415.h new file mode 100644 index 00000000000..bd0478a23d6 --- /dev/null +++ b/common/res/d415.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from d415.obj +static uint32_t d415_obj_data [] { 0xe2a5fff5,0x40413614,0xc7c117b6,0x4a3fab64,0x2e413848,0x32c11852,0x1c3f9874,0xd5c269d9,0x1bc12ced,0x40c0742c,0xc3c2694c,0x72c12d89,0xfbc07da4,0x55413856,0xeac11fb9,0x4cbf1b79,0xe841364e,0x16c1205b,0xccbf42f8,0xb6c24da3,0x73c12082,0x56bf4c65,0x17c2504c,0x1cc121b2,0x7ebf8b0c,0xaec25214,0x3fc12415,0x2cbfd555,0x61c25400,0x77c12d68,0x9cc07b9d,0x32c2695a,0xefc117bc,0xc83faaab,0xc3c269dc,0xe1c1185e,0x4c3f96ec,0x6041364e,0xe5c1190d,0xf83fad61,0xf2413856,0xcfc119af,0x8e3f99a2,0x6a413826,0x49c12137,0x16bf20f6,0x2641359a,0x5bc121b9,0xbcbf407a,0xddc24ddc,0x26c121df,0x46bf49e2,0x65c25088,0xc2c12335,0x36bf8e6c,0xaac2522a,0x5bc1259c,0x36bfd928,0xa1c2540c,0xfcc12ec3,0x9cc07ade,0xffc2695a,0x7c12ed4,0xc8c07bed,0x6dc269dc,0x80c12e32,0x1cc0720d,0x5dc269d9,0x17c119a3,0x403f9b2a,0x6ec2694c,0xc5c11907,0x823fae1a,0xcdc04902,0xdf413715,0x3fc1307f,0xc1c0c481,0xd5413715,0x80c1307f,0xca412949,0xde4132ba,0x18c0ed80,0x6c4117ba,0x974132b1,0x46c0eb57,0xe9c140e0,0x37413775,0xc9c13d36,0x68c168f9,0x504136a3,0x2bc12743,0x79c15587,0x714136bf,0x26c12935,0xf5c256cb,0x344137fe,0x97c1561e,0x3dc072e4,0xe5413713,0x80c13025,0xcac126b6,0xd84132ba,0xeac0ed80,0x6cc13845,0x974132b1,0xdac0eb57,0x56c25870,0x79413818,0x40c14f01,0x24fb5b,0x2117a44,0x350078c2,0xc0e117a,0x820df400,0xb5414706,0x674136a3,0xc8c12743,0x68c138f9,0x4f4136a3,0x58c12743,0x84c0eb0e,0xf9c83100,0xf4001808,0x27434e11,0xe818eac1,0x37df01c1,0x50ea8d41,0xe85100c1,0x379ce8c1,0x56b33641,0x845e9c1,0x440060c1,0xc0ed6d01,0xdf40078,0xc24f2e4a,0x41371339,0xc13025e1,0xc24c9032,0x41371530,0xc1307f48,0xc209ada0,0x24f50024,0xc258937e,0x413678e3,0xc1242cc8,0xc251614a,0x4136bdbf,0xc1293587,0xc1e35b1a,0x412bede0,0xc08af156,0xc1e35b40,0x4132baca,0xc0ed80d2,0x6cec22f5,0x2800f500,0xc3c24090,0xd6413715,0x58c1307f,0xb48b0e,0xb1f39144,0x4400b4c0,0xc2432e4a,0xd2440138,0x8c0b08b,0x8a19f401,0x92c08d58,0x4241329c,0x1cc0eb5c,0xd9be1028,0xf0413715,0xc3c1307f,0x80c13874,0x9941379b,0x3ac141e5,0x3cbf4b92,0xcb18f500,0x79c24561,0x734136bf,0x72c12935,0x69c24a3e,0x514136a3,0x65c12743,0x26c1cb5b,0xbc412bee,0xf5c08af4,0x9cd422,0x3fe301f4,0xa8aec1d4,0xb478412b,0x5622c087,0x6cc1cb,0x902a00f5,0x15a2c234,0x7fb74137,0x2e4ac130,0x35009c37,0x9c2117a0,0xb4034400,0x234bfb5,0xb35b6531,0xc1110060,0xbc110060,0x95710060,0xe3c0eb57,0x60bc3f,0xb47a10f5,0x611ac087,0xbceac239,0x35324136,0x3de0c129,0xa554c23e,0x42b34136,0x5622c127,0x440078b3,0x3ef742ff,0xfd4400fc,0x603fca4b,0x39504400,0xd8bfac,0x23e72153,0x28869c0,0x28902853,0x114dbc2,0x2b2e4a35,0xdf400a8,0x4036fd7e,0x413715e9,0xc1308003,0xc1304e90,0x4137d39d,0xc14c96df,0x400d1b71,0x6537012c,0xb49b5b,0xb4a417,0xb4a411,0x1147611,0x9c9b15,0x5ee86044,0x44009c40,0x4092a778,0xf1012c,0xc251b1d4,0x4132f8ea,0xc0f0df33,0x10835b1a,0x10521102,0x10831102,0x10d81102,0x608c1502,0x611a3700,0x1501082d,0x31010832,0x788c3fe3,0x7a10f700,0x28c087b4,0x9c21c90,0x23413716,0xc0c13080,0x72c1e1af,0x1e41379c,0x30c13f0a,0x84cf74,0x84f215,0x1f2e4a35,0x443500fc,0xb456ac,0x6845ea31,0x11f40078,0xc0eb5797,0x3fd3c6b0,0x4136bf79,0xc1293572,0xc259a29c,0x413597e1,0xc1171244,0x3ee0c6f8,0xbf530150,0x640bb7e,0xf50078,0x41951151,0x4137e4ad,0xc156b442,0x582161cb,0x8db93502,0x350144a6,0x64263e72,0x6600f102,0xe0c0ed6c,0x58412bed,0xc5c08af1,0xcc087f,0xb47804f5,0x9027c087,0x15f1c210,0x80074137,0x2e4ac130,0xf400a813,0x8d6d9419,0x2bee27c0,0x8af4c741,0x3e1454c0,0x327035c2,0xe787e841,0x39b050c0,0x32ee0dc2,0xf085ba41,0xb0ff8bc0,0x4402a0c0,0xbfb5b19e,0x11310060,0x1821ff,0x87b47a84,0xca4e62c0,0x3500183f,0xa81561cb,0x3e723500,0x44009c1a,0x3ef00779,0x1f40030,0x4092926c,0x412bee27,0xc08af4c9,0x405e00e7,0xac440060,0x204094f1,0xdf19f401,0x69405c18,0x534136a3,0x27c12743,0xdfc20490,0xf3413715,0xf8c1307f,0x4dc1dc7f,0xf341376f,0xccc13b9d,0x78412949,0x5419f400,0xdd410dbf,0xfb413715,0xebc1307f,0xd3419572,0xaa412c6d,0x7ec0930a,0xef414780,0x35412ba8,0xdcc087b4,0x7c410346,0x2e4a3102,0xf5010807,0x3025e440,0x5b5e00c1,0x34ea4ec2,0xe537441,0x5d8942c1,0x345750c2,0x7af5f41,0x51ada6c1,0x2bee0ec2,0x8aecc441,0x4a117ac0,0x32b16bc2,0xeb578841,0x4a1ff2c0,0x2ba8adc2,0x87b47441,0x45ad8dc0,0x2bede0c2,0x8af15441,0x45ada0c0,0x543704b0,0x1503214,0x1502d15,0x961cb31,0x71110120,0xe240420,0xf4054cc2,0xf1204e01,0x3715d0c1,0x307fe341,0xf65c94c1,0x35009cc1,0x14f4f1ac,0xc6f3501,0xf50114ce,0x3dbf0600,0x3714f941,0x307f2b41,0x3346dcc1,0x964400d8,0x94c1fac3,0x3e723505,0xf5006002,0xd9205500,0x371593c1,0x307fa741,0x26117ac1,0xa03105dc,0x56421ad,0xed80de75,0xde5c94c0,0x96350078,0x48e2c3,0xec7ce431,0x4f8405dc,0xd6c12743,0xa4412a78,0x6384401,0x1a44117,0xc1205535,0x94350060,0x48c65c,0x1a117a35,0x1244006c,0xb4c215ab,0xc3963103,0x710060ca,0xc1293572,0x60d47ce5,0x43507700,0x2055c127,0x150048a9,0xf10048ae,0x60c30800,0x33f91bc2,0x3a8aa41,0xb2c396c1,0x7111003c,0xbc15003c,0xcf5003c,0xc191204f,0x413715c0,0xc1307fd3,0xc1473e6b,0x4137736b,0xc13b4de7,0x48965c94,0xc3963500,0x35003c9a,0x3ca47ce4,0x40aa3500,0x37007872,0x307cb928,0x30821700,0x308c1700,0x30421500,0xad8d3500,0x35020439,0x1c3e1ff2,0xb9283502,0x3100484c,0x242dad8d,0xf1527500,0x1ff2c08a,0xf5002432,0x6af1700c,0x339e05c2,0x3574641,0x12409fc1,0x3715bcc1,0x307fcf41,0x1cb928c1,0x8e31003c,0x3c21ad,0x3c5811,0x3c2615,0x25872b35,0xb344009c,0x54c215ad,0x1ff24403,0x36cc21a,0xd9725044,0x37024cc0,0x4809ad8d,0x240e1100,0x765ff200,0x7ac087b4,0x3ac1e666,0x9d4137d5,0xb0c14813,0x19c1e6a5,0x2d413749,0xf2c14b73,0xd1c1dc40,0xfc413690,0x28c13c65,0xcec1e7ab,0xf34136f4,0x34c15100,0x8bc1dfe9,0x234136f8,0xa2c13e9d,0x62c1e29b,0x64413712,0x3cc141df,0x23c1e4e5,0xa741372f,0x48c1463b,0x48c256da,0xf3c12bff,0x32c15626,0x2fc1c295,0xfac12bff,0xf5000cb3,0x37ffff98,0x56b3fbc1,0x564618c1,0x37fdd3c2,0x568db0c1,0xe82244c1,0x2bff31c1,0x56b3fa41,0xe10709c1,0x6da7fc41,0x56b3fb40,0xe49b41c1,0x93972241,0x56b3fa40,0xde5dc1c1,0x9086f241,0x56b3fbc0,0xe49b3fc1,0x93973141,0x56b3fac0,0xe9fbe7c1,0x24db6641,0x56b3fa40,0x2e738fc1,0x37a636c1,0x56b24741,0xb51edbc1,0x28c47441,0x56b3fac1,0xb5b4edc1,0x1b021341,0x56b3fbc1,0xe54539c1,0xd5f29941,0x56b3fb3f,0xdc4c3bc1,0xcfa56e41,0x56b3f8c0,0xd5d0dbc1,0xcabae441,0x56b3fbc0,0x2ed79bc1,0x28f10090,0x41ebd417,0x3f87d11c,0xc156b3fa,0x41c4224f,0xc118268e,0xc156b3f8,0x41c41b59,0xc109676f,0xc156b3fb,0x41e63eb5,0xbede8cce,0xc156b3fb,0x41d158b7,0x24023fa6,0xff10f100,0xab41ec2e,0xffbf0b93,0x8dc156b3,0x7a4159e4,0xfdc137ff,0x53c156b3,0xf14196f9,0x3c2b8d,0x477b00f5,0x23b1419a,0xb3fb412b,0xf1bfc156,0x71012c79,0x41a4d4bf,0x143385b4,0x85557101,0x9e3441ac,0x71002422,0x41b51edb,0x1828c476,0xd6f97100,0x73ac41bb,0xf1001814,0xc4224f04,0x18269141,0x56b3f841,0xe3e9e9c1,0x2189f841,0x4f1012c,0x41e9fbe5,0xc024dba1,0xc156b3fa,0x41c97b7b,0x300094b4,0xddbb7100,0xa7c341a5,0x71008426,0x41a4d4bf,0xc3385b2,0x58b97100,0x3fa441d1,0x71004802,0x41d4ecb7,0x8ccf895b,0x4c3b9301,0xa57041dc,0xa8f840cf,0x1c80400,0x573224f5,0xff8ac204,0x30bec137,0x98f0c069,0xff98c1f4,0x4f55c137,0x4892c064,0xfcf1c23e,0x2b6fc137,0x259bc084,0xff75c238,0xc02bc137,0x5732c06f,0xf1003040,0x35c23e30,0x37fe0ec2,0x632f23c1,0x19c261c0,0x37ff7f40,0x312262c1,0xf92f3cc1,0x37ff8a3f,0x2e04e8c1,0xdaf20fc1,0x37ff8abd,0x300335c1,0xfb10bdc1,0x37fedcc1,0x864f83c1,0x24892c0,0x5f40060,0xc0842b6d,0xc239885f,0xc137fedc,0xc0864f85,0xbf18f67b,0x78440048,0x90c2064c,0xb091f400,0x3c412b00,0x9dc137f2,0x28bf909f,0xd7c22192,0x32c137fe,0x52c126c0,0x65c2265f,0x89c137fc,0x2c128f8,0xd7bfb245,0x33c137fe,0x76c126c0,0x2fc2424c,0xf8c137ff,0x76c06450,0xaa4116dd,0xa6c137fc,0xabc0842b,0x15410cf5,0xcfc137fd,0xc065d9,0x99c1d4bf,0x29c137fb,0x86c128f8,0x8ac22036,0xeac137ff,0xb3c12e04,0x14c1da05,0x31c137fd,0x97c13103,0x59c24425,0x87c137ff,0xf9c06fc0,0xb2c025f3,0xadc137fc,0xa8c128f8,0x754102eb,0xbac137ff,0x7ac06815,0xe4c2286d,0x2cd64400,0x12cc0e1,0x220d00f1,0xfd2cc109,0x2b3bc137,0xfd0cc084,0xf4000ce2,0x281f2341,0xec4333c1,0x37fefcc0,0x864f6ec1,0x115cdac0,0x37ff59c1,0x69316ec1,0x1e63dbc0,0x37ff8dc2,0x312271c1,0xdedfaac1,0x37ff73c1,0x2fe882c1,0xc78e41c1,0x37fe0e40,0x76d285c1,0xf4c1b3c0,0x37fcb340,0x827829c1,0xd263bfc0,0xf10120c0,0xceefeb0c,0x37ffc840,0x8b4f1ac1,0x322202c0,0x37ffc8c2,0x8b4f1ec1,0x2d9228c0,0x3384012c,0xdac126c0,0x5cc22a63,0x31df3501,0xf501ec19,0xb59a6100,0x37ff5940,0x64b0eec1,0x45885fc0,0x2f3018c,0xc24e87a6,0xc137deaf,0xbff4a70d,0xc1ecbea2,0xf4016866,0x8259719,0x37ff59c2,0x6fc083c1,0xf0e2fc0,0x37fe3fc2,0x76d1fec1,0x98866c0,0x37fefcc2,0x864f6cc1,0xa5d74fc0,0x44012040,0xbf86d0c4,0xb2310210,0x240114c,0xb02d10f5,0x2205c064,0xffbfc20e,0x4f20c137,0xd7b6c08b,0xff72c046,0x31fc137,0x5f52c130,0xf101d432,0x1681fe00,0x37fb9941,0x28f82ac1,0x2c3686c1,0xea77003c,0x82c12e04,0x1144f1c,0x1149415,0x346d7a31,0x5f50024,0xc1300335,0xc08c9100,0xc137feb6,0xc126c02b,0xc0663d9f,0x343400fc,0x84402b,0x58c00f5,0xfe67c1f2,0x482c137,0x9228c131,0x35012c39,0x505ddfd7,0xda01f401,0x6dc23663,0x50c137ff,0x87c13122,0x8c0b2fa,0xfd0c3501,0x4601d4fa,0xc120966b,0x391101f8,0x3b840018,0x99c0842b,0xecc12621,0x5f523501,0x3500d83e,0xf8415cdc,0x400f101,0x4e410e4a,0xffc137ff,0x86c13002,0xc03836,0x2e04ea84,0xf36ebfc1,0xf402e840,0x406d7801,0x37ff9ac2,0x300345c1,0x25f51c1,0xf10084c2,0x4b110a18,0x37fe68c1,0x64c101c1,0x670a2c0,0x37ff3241,0x312216c1,0x459216c1,0x37fe8dc2,0x26c01bc1,0x15885ec1,0x4f501d4,0xc0864f87,0xc213b6f2,0xc137fe40,0xc06a739f,0x841a4892,0x4400f103,0x9ac081b4,0xf7c137ff,0x34c12e04,0x3f01c57,0x310529f4,0x367dc069,0xff4ec244,0x4bbc137,0x63d6c12e,0xff00c242,0x21e2c137,0x161ec131,0xfe89c0c8,0x4a4c137,0x4c78c131,0xffa3c21e,0x4f27c137,0x603c064,0x32440cd,0xc70901f4,0xc19f,0x1798c138,0xc782c05c,0x24c064,0x71c82144,0x4402d03e,0x3fd306cd,0xf03501bc,0x294dc98,0xebf42e44,0x310330c0,0xa00baec9,0x16238402,0xfeb5c068,0x2dc3eee,0xdfa601f4,0xff58c1f6,0xe867c137,0x2c4c12f,0x90c205,0xa6590844,0x3501e0be,0xb8097d44,0x7e864402,0x54c209,0xfe4bcf31,0x10f10204,0xc12e04e8,0xc1140b20,0xc137fe3e,0xc131045a,0xc0db7e91,0xc137ff58,0xc12fe868,0x24bc9438,0x3504f100,0xa3c13003,0xfbc20e3e,0xac137fe,0x17c1270d,0x1e025fa,0x1f2304f5,0xe13bc128,0xff5540ac,0x2238c137,0x885ec131,0x31016821,0x4420259b,0xc02b7101,0xe38c06f,0x75052827,0xc076d285,0xd4936ebf,0x4cb43101,0x75002429,0xc064b07d,0xb4262202,0x8101f403,0x3cc13957,0x3ac137fd,0x27c12870,0x20c1559f,0xf2523101,0x71015087,0xc0950b46,0xc82884c,0xae277100,0xf2f6c0b0,0x75000c8e,0xc07fbefd,0x805a0c07,0x228a3101,0xf100187e,0xd0f09904,0x10101cc0,0x37fe0dc2,0x2f97adc1,0x9712bdc1,0x1c840018,0x84c06528,0xa8bf5145,0x733f4403,0x1f8c045,0xacf92344,0x440078bf,0xc024891a,0xd24405ac,0x74c2076f,0xbf553101,0xf104a41d,0x2fe88110,0x415cc8c1,0x37ff88c1,0x2fe894c1,0x55f8e7c1,0x37fbebc1,0x281e9fc1,0x159228c1,0x32710354,0xcfc126c0,0x1509e4b,0x2e04e886,0x39284ac1,0x1503f040,0x3503181a,0xa02bb6f2,0xe383502,0x31013833,0x5c2d885f,0x8504f101,0x32c0864f,0x38c14b97,0xd3c137fc,0xc0c130f6,0xccb79b,0x950b4671,0xb09b1cc0,0xfd84000c,0x23c07fbe,0xb4c1d491,0xbafe4400,0x843fcd,0xa87b5531,0x1c750024,0x6ec06528,0x384d8ae,0xbd05c631,0x27710018,0xcdc0b0ae,0xcc07c,0xf09905f4,0x63f2c0d0,0xfc5ac213,0x678dc137,0x6035c130,0x2dc3ed0,0x1c6d7a35,0xb64405f4,0x24c0812c,0x441a3106,0x7502b8b2,0xc0842b3b,0xe88c4333,0xb9b43105,0x810024c2,0xc069316e,0xc1e04b3c,0xbf610510,0x9107c06f,0x75024cec,0xc0842b3d,0x20e310bd,0xae684407,0x18cc1f0,0xf84b3631,0x93f2000c,0xc06fc02b,0x40f93709,0xc134d347,0xc124409b,0x40ffe0cc,0xc134b844,0xc12aa2d5,0x4106a826,0xc134d3d1,0xc12ddc7b,0x410cea92,0xc134c1e7,0xc12d2342,0x4111e836,0xc134d3d2,0xc1296e45,0x41144b1a,0xc134cc51,0xc1243010,0x4114210c,0xc1219999,0xc1255fa1,0x411007aa,0xc1219999,0xc12b51ad,0x410a4e48,0xc1219999,0xc12dd998,0x4104153e,0xc1219999,0xc12d2e03,0x40fda4b3,0xc1219999,0xc129498f,0x40f92a73,0xc1219999,0xc123fdb3,0x40f96180,0xc12cccce,0xc0d63b92,0xcbf51,0x28d610f1,0x48fec089,0xcf044114,0x1abdc134,0x195cc08c,0xc9414112,0x942c134,0x29c4c082,0x71000c0d,0xc074ab11,0xc06f688,0x33277100,0x28fcc071,0xf1000c01,0x7a989e10,0xf993f0c0,0x34d4d040,0x892277c1,0xdc34c0,0x2cccce41,0x7b8c50c1,0x69592c0,0xa471000c,0xb0c0716c,0xc0e36,0x75f5ed71,0x13f4fec0,0x2471000c,0xb7c0887b,0xc145c,0xa47f04f1,0xe069c0d9,0x999ac0b8,0x3dc0c121,0x8f36c0d2,0xf1000c7c,0xca92f710,0xf0e4a8c0,0x21999ac1,0xc7c7c5c1,0xecc28bc0,0x219615c1,0x86afb4c1,0xc662c7c0,0x47710024,0xa8c0c6da,0xc65a9,0xc5831f71,0xee0581c0,0xf5710030,0xa4c0d547,0xce1ac,0xd8b76d71,0x8640b3c0,0x1cf10024,0xc0d5f5a7,0x410f93c2,0xc121999a,0xc0c9e111,0x412a04fa,0xc1218e69,0xc086b029,0xc2331c0e,0xc121999a,0xc0d23db6,0xc2bc8f4,0x92fb7100,0xc816c0ca,0x31000c2c,0xc0d5f5a1,0x999ab100,0x47efc121,0xb536c0d5,0x710060f4,0xc0c5831f,0x2434cc59,0xda477100,0xd4d6c0c6,0xf1006cd2,0xc5831f04,0xd61452c0,0x219999c1,0x26d00bc1,0xc27173c1,0x4f1000c,0xc146b3fa,0x40d77749,0xc1218a71,0xc01e03d5,0x900808ca,0xe8b87100,0x5a9ac0c4,0x7100482a,0xc0c5831f,0x60f791e8,0xf911f400,0x58c0ca92,0x9340d4d8,0xbec12195,0x90c086af,0x99c030a2,0xcc12199,0x43c126d0,0xe0bf9b56,0xdc323101,0xf1004800,0xca92f904,0x26f7bec0,0x219999c2,0x255f9fc1,0x20dab2c1,0xb871000c,0x30c123fd,0x84d955,0x2cf61771,0x896d33c1,0x8f62003c,0x6ac12949,0xf400244b,0x29498c05,0x378ebac1,0x218d3c41,0x46b02bc1,0xbf2785c1,0x31012c40,0x3cdc6cc5,0xecaa7100,0xe9fdc12d,0x710018c7,0xc0d547ef,0xcf9bf51,0xf5a37100,0xa986c0d5,0x84009c4a,0xc12cf617,0xbf3eac21,0xf50294,0xc2494bf1,0xc1217d85,0xc01e00b9,0xe4365a9a,0x8a00f100,0xe6c21102,0xc9c1217b,0x94c01e03,0x48b011,0xc4e8b871,0x27fe16c0,0xae7100b4,0xb0c12b51,0xc1efa,0x2d2e0371,0x636630c1,0x4f10060,0xc12decaa,0xbe7f3cf7,0xc1219999,0xc12da0bd,0x24296c6e,0xd9987100,0x7254c12d,0x71006004,0xc0c7c7c5,0x44f9902d,0xf5a37101,0xb865c0d5,0x710060a1,0xc0ca92f9,0x240302c0,0x47f77500,0x6c6ec0d5,0x31003c1d,0x30133164,0xda477100,0x479bc0c6,0x7101c8de,0xc0ca92f7,0x180c7035,0x3dc07100,0xef7ac0d2,0x710108ed,0xc1255fa0,0x24e640b3,0xf5a77100,0x980ec0d5,0x710018e1,0xc125ba72,0x603f1c0e,0x24c0200,0xc3711,0x11024c02,0x71000c38,0xc0d5f5a1,0xc40cc59,0xda477100,0x6a6bc0c6,0x71006019,0xc0c5831f,0xe4b7bde8,0x5fa17100,0x6035c125,0x71000c86,0xc125ba71,0x30425a9a,0x831f7100,0xfc2dc0c5,0x71006cef,0xc12b51af,0xcdf57ef,0xaaa37100,0xf7bec12b,0x7100cc32,0xc1255f9f,0xc2ccc06,0x7404f100,0x1ac125ba,0x4bc21166,0xb8c12196,0xf4c086af,0x4807c8,0xca92f971,0x65a9bc0,0x1f84000c,0xfac0c583,0xdc404fd3,0x4f093102,0x71000c3e,0xc0c9e111,0xc99bf51,0xf5a37100,0x2329c0d5,0x71000c20,0xc0c4e8b8,0x78f2d8dc,0xd9987100,0xf0b0c12d,0x7100a8bf,0xc12b51ae,0xc7abf6e,0xaaa37100,0xc8f4c12b,0x84006043,0xc0ca92fb,0x40c84218,0x163104c8,0x9c33fe,0x2b51ae71,0x2b54b6c1,0x4471000c,0x6dc12cb7,0x3ccb63,0x2dd99871,0x44c816c1,0xa171003c,0x6ec0d5f5,0x24356c,0x1101e002,0x71001810,0xc0c7c7c5,0xc08c816,0xf5a37100,0x2c0c0d5,0x71000c0f,0xc0d547f7,0x6cc00f54,0x51ad7100,0xc7cbc12b,0xf1001812,0xc5f4d304,0x433164c0,0x21999ac1,0xc6da49c1,0x1f23cec0,0xf971000c,0x35c0ca92,0xc3c70,0xd23dc071,0x23205ac0,0xa771000c,0xbdc0d5f5,0x7802f7,0x255fa071,0xf9980ec1,0x737100f0,0x91c125ba,0x60b49c,0x2dd99871,0x3ef7bec1,0x74020024,0xc381101,0xba747100,0x6a6ac125,0x71004849,0xc0c5831f,0x183ffe16,0xf00200,0xc3711,0x2cb74471,0xbdef4c1,0xa1710054,0x48c1255f,0xa814b2,0xd315c871,0x3fe16c0,0xaf710024,0x35c12b51,0x114e660,0x25ba7171,0x416c6ec1,0x98710018,0x6ac12dd9,0x3cf6a9,0xb74504f1,0xf291c12c,0x999a3e63,0x3dbac121,0x70cac0d2,0x8401a403,0xc0ca92f9,0x3fe6fd44,0x58310120,0x300ff8,0x2b51ae84,0x4c58efc1,0x35027cbe,0x54056c6e,0xa5a73100,0xf1006cda,0x2cb74504,0x4daa7cc1,0x218c1cc2,0x46b244c1,0x44cc06c1,0x74710024,0xb6c125ba,0xc4354,0x2cb74471,0x116c6ec1,0x9871000c,0xb7c12dd9,0x6015b1,0x21069001,0xc7a39,0x46b3fa84,0x16a6a0c1,0xf10108bf,0xed80ce00,0x217ffec1,0x1e03a7c1,0x9fc709c0,0x98710120,0xbdc05c17,0xc9712,0x65281c71,0x508430c0,0xa171015c,0x73c1255f,0xc992a,0x23fdb371,0x9da4b3c1,0x8f71000c,0xec12949,0x12c1b1c,0xd23db871,0x1ccc59c0,0x4771000c,0x52c0c6da,0x4887f2,0x950b4671,0x401ea8c0,0x4020030,0x241e1102,0xf4d37100,0x884cc0c5,0x71002482,0xc0b0ae27,0xc4f23d0,0x92f97100,0xf7bdc0ca,0x7100cc0e,0xc1255fa0,0xc08cc07,0xba737100,0x2a7cc125,0x710048a8,0xc12d2e03,0xd83c28a2,0xd00a7100,0x301ac126,0x71000c23,0xc125ba72,0x488ef2f6,0xbefd7100,0x3922c07f,0x71003029,0xc12dd998,0x187e228a,0xf0977100,0x2059c0d0,0x71000c53,0xc0d5f5a3,0x600ffe16,0x51af7100,0x54b5c12b,0x71000c07,0xc12cb745,0x541d52d3,0xb7457100,0xaa60c12c,0x71000c42,0xc12cf617,0x3c7b90b8,0xac2a7100,0xc58fc0f3,0x7104744c,0xc0c6da47,0x5c723cfb,0x92f97101,0xc0d7c0ca,0x71001831,0xc0d23dba,0x189902bc,0xf5a37100,0x1c0ec0d5,0x7100fc27,0xc0d23db6,0xc20b248,0x15c87100,0xcc59c0d3,0x84000c28,0xc0c6da47,0x3e75d702,0xce440654,0x543fe4a9,0xd98a3106,0x71008448,0xc12decaa,0xc4eafde,0xaaa27100,0x301ac12b,0x71000c53,0xc125ba72,0x30f692cd,0x498f7100,0xf7bec129,0x200cc1a,0x14110678,0xb871000c,0x1cc123fd,0xc0b09b,0x7fbefd71,0xb79bc0c0,0x4671000c,0x55c0950b,0xca87b,0x65281c62,0x304b6ac0,0x498c7100,0x381bc129,0x710018d6,0xc0d23dbc,0xcbd05c6,0x9f00400,0x31015004,0x18d998b2,0xda477100,0x54f8c0c6,0x71017410,0xc12d2e03,0x781bfe16,0x51ad7100,0xfab0c12b,0x71000c12,0xc12d2e03,0x30dcb535,0x831f7100,0x40d0c0c5,0xf4000ce0,0xccaa3511,0x3eed3ac0,0x34cc51c2,0x24300dc1,0x3f85f3c1,0x34d3d2c2,0x296e46c1,0x40c55cc1,0x44099cc2,0xc24255f6,0x24f109b4,0xc24403e7,0xc134b843,0xc12aa2d4,0xc244d91f,0xc134d347,0xc124409f,0xc23eedc0,0xc134cf04,0xc08c1ac8,0xc23ee8d3,0xc12cccce,0xc0d9a489,0xc44d3d0,0x3b8c7100,0xabf8c0d6,0x71000c43,0xc0c9e10f,0xc423662,0x5cf97100,0xaa99c0c5,0x71000c40,0xc0c74a1f,0xc3f72a8,0x24536200,0x1c0ec0cf,0xeb62000c,0x5ac08570,0x620024cc,0xc0741aef,0x3c5a9c,0x716ca462,0x54c8f4c0,0x8c586200,0xc816c07b,0x10f1006c,0xc08928d4,0xc23f79aa,0xc134c941,0xc0820940,0xc240b590,0xc134c942,0xc074ab0d,0x1842425e,0x33277100,0xb5c2c071,0xf7000c43,0x7a989e04,0x44cd82c0,0x34d4d0c2,0x892273c1,0x32ed3ac0,0x33170114,0x34170114,0x36170114,0x38170114,0x38170114,0x32170114,0x32110114,0x140200d8,0xc381101,0x1140200,0xc3711,0x11011402,0x2000c36,0x34110114,0x1402000c,0xc331101,0x1140200,0x2000c02,0x24020114,0x1140200,0x2003c02,0x54020114,0x1140200,0x2006c02,0x33110114,0x140200f0,0x14341701,0x18361101,0x1140200,0xc3711,0x17011402,0x17011438,0x17011426,0x17011427,0x17011428,0x1701142a,0x1701142c,0x1701142c,0x11011426,0x200d826,0x2c110114,0x1402000c,0xc2b1101,0x1140200,0xc2a11,0x11011402,0x2000c28,0x27110114,0x1402000c,0xc0201,0x2011402,0x14020024,0x3c0201,0x2011402,0x14020054,0x6c0201,0x11011402,0x200f027,0x28170114,0x2a110114,0x14020018,0xc2b1101,0x1140200,0x1142c17,0x52c21a35,0x1b17033c,0x1c170114,0x1e170114,0x20170114,0x20110114,0x9e110114,0x1a11033c,0xc5110114,0x1a11033c,0x877100d8,0x9ac0d9a4,0xc20dd,0xd935af62,0xc3e24c0,0x3c7b7100,0x9504c0ce,0x7100181e,0xc0c587fd,0xc1caa99,0x1140200,0xc1b11,0x2011402,0x1402000c,0x240201,0x2011402,0x1402003c,0x301f1101,0x3c5d1100,0x600203,0x11011402,0x200f01b,0x1c170114,0x1e110114,0x14020018,0xc1f1101,0x3ca21100,0xc2203303,0xf1033cd1,0xef9860c,0x34d4d0c2,0x25a386c1,0x101148c1,0x34c940c2,0x2b8e9dc1,0x1184acc1,0xf871000c,0x7ac12de7,0xc1311,0x9fd04f5,0x431ec12d,0xc212c214,0x55bfc134,0xd91fc129,0xf1011414,0xefb7000,0x34c8cec2,0x893c23c1,0x14dd9ac0,0x80200a8,0xc0201,0x11010802,0x71001812,0xc0c587fd,0xc1044ce,0x9a0b7100,0xf0c5c0c8,0x62000c0e,0xc0d6f41d,0x187254,0x75f5e831,0xcea20924,0x2bc12ccc,0x9cc0887b,0x2003c5a,0x13110108,0x8020030,0x600201,0x28d404f1,0x5392c089,0xc4bec210,0xcd8c134,0x425ec077,0x200f012,0x131100fc,0xfc02000c,0xfc141700,0xfc021500,0x8318f100,0x9dc20469,0x86c134b6,0x97c12ca2,0x7ec2065a,0x29c134cb,0x3ec12dd9,0xa4c2080b,0x12c134c8,0x1fc12a86,0xf008d9,0x2440a075,0x2fb70c1,0xd03100f0,0x9008d3,0x5348a11,0xc0711,0x11030c02,0x71000c06,0xc0c55cf9,0xc0444ce,0xf00200,0xc0211,0xd6f41d62,0x187255c0,0xf00200,0x180311,0x887b2b31,0xf0060aec,0x540200,0x1f85411,0x11006c02,0x1700f0d6,0x1100f004,0x7100e406,0xc0713327,0xc07b5c1,0x3000200,0xf00811,0x89227584,0xedf30dc0,0x4401ecc1,0xc1f0d306,0x2e4400f0,0xf0c1f4b5,0x167b4400,0xf0c1f8,0xf9b23e44,0x4400f0c1,0xc1edf6e1,0xa04401e0,0xf0c1f9a7,0x57f03100,0x71000cf7,0xc0c9e10f,0xcf46cc5,0x5cf97100,0x899bc0c5,0x71000cf0,0xc0c89a0b,0xcede18a,0xf41b6200,0xe4aac0d6,0xe8310018,0xf0075f5,0x2201e004,0x3cb536,0x716ca462,0x5491e7c0,0x8c543100,0x40d147b,0x234400f0,0xe0c1f0a7,0x84bc4401,0xf0c1f4,0xf76b8231,0x9e86000c,0x5c07a98,0xf0c1f99b,0xf0d51100,0xa3877100,0xd305c125,0x7500f0d8,0xc12ca285,0xf0dcb52d,0xdc0cf500,0x43c1e024,0xb5c134b8,0x58c12a68,0xeac1e1b3,0xb2c134d7,0xe1c12433,0xf0d5f6,0xd6058231,0x267100c0,0x34c0887b,0xce1bb,0xd935aa71,0xdff679c0,0xd671000c,0x78c0cb80,0xcdb92,0xc4e8b871,0xd7fc2ac0,0xf971000c,0x8bc0ca92,0xcd5e1,0xd6f41d71,0xd8e4a9c0,0xed71000c,0x36c075f5,0xcdcb5,0x200f002,0xf0020048,0x600200,0x8928d671,0xd8a722c0,0xdd7100f0,0xbcc0770c,0xe4dc84,0x71332771,0xdf6b82c0,0x9a11000c,0xe11500f0,0xcf100f0,0xc13bb2e5,0xc134cffa,0xc1242450,0xc13e10bf,0xc134c1e7,0xc129659e,0xf0433189,0x2d9b7100,0x6a5ac12d,0x71000c49,0xc12dd929,0xfc5049b8,0x68b67100,0x66b0c12a,0x7500fc53,0xc12433b0,0xfc3bedc2,0xb023100,0x7100a83c,0xc0887b29,0xc537668,0x35af7100,0xf890c0d9,0x71000c50,0xc0ce3c79,0xc4a5412,0x87fd7100,0x1336c0c5,0x71000c41,0xc0c89a0d,0xc3bc315,0xf4196200,0xc952c0d6,0xed710018,0xcec075f5,0x184f23,0x7b8c5462,0x542058c0,0x28d67100,0x6a6cc089,0x75001849,0xc0716ca4,0xec414e46,0x9783101,0x7100f049,0xc0713322,0xc4ed706,0x989e7500,0x360ac07a,0x3500fc53,0xec0be61a,0xa60c3101,0x7501ec11,0xc12ca286,0xf0196a5b,0x2cf43100,0x7102dc20,0xc12a8613,0xdc23647d,0x9e04f102,0x1c12440,0x5c10bb7,0xb9c134cf,0x41c08c1a,0x84234f,0xd63b8e71,0x1eafe0c0,0xd71000c,0xefc0c9e1,0xc1724,0xc4e8b871,0xff854c0,0xf971000c,0x15c0ca92,0xc0bc3,0x1100e402,0x71000c11,0xc075f5e8,0xc0c0b02,0x7b268400,0x6a6dc088,0x3ccc119,0x1f23cc31,0x5031000c,0xdbc7b8c,0x2cccceb1,0x8928dac1,0xde6a4c0,0x427100d8,0x3cc08209,0xc12d6,0x74ab1171,0x190978c0,0x2771000c,0x4c07133,0xc1ed7,0xfc9a11,0xfc2311,0x3412cc01,0xe8c0b7cc,0x4c184402,0x3d8c0c3,0xd2d4b744,0x4403d8c0,0xc0e059e8,0xf94400fc,0xfcc0e6c8,0x6e034400,0xfcc0b7,0xe69e8244,0x3100fcc0,0xcdd5fc0,0xe10d7100,0x49dec0c9,0x71000cce,0xc0c4e8b8,0xcbff0a8,0x92f97100,0x8629c0ca,0x71000cb7,0xc0d6f419,0xcc392a3,0xf5e87100,0x1603c075,0x71000cb8,0xc0887b26,0xcd2d4da,0x6ca47100,0x4797c071,0x62000cde,0xc07b8c50,0x6c40b3,0x8928da84,0xbbcd49c0,0x3113c8c0,0xcc5ac77,0xab117100,0x12f1c074,0x71000cd2,0xc0713327,0xcddae08,0x989a9300,0x6c14c07a,0xc8d1c0e6,0x990df413,0x51c02ed3,0xfc134cc,0x20c12430,0xd2c0385f,0x44c134d3,0xb9c1296e,0x10c04c55,0x5f67440b,0xb10c065,0x1f2e00f5,0xb843c080,0xa2d6c134,0xc8f9c12a,0xf1010886,0x2edc0a00,0x34cf04c0,0x8c1abfc1,0x2e8d26c0,0x7d7100a8,0x82c0d9a4,0xc869e,0xd63b8e71,0x7abf7fc0,0xd71000c,0x27c0c9e1,0xc6366,0xc55cf971,0x4aa98fc0,0x1f71000c,0x78c0c74a,0xc372a,0xcf245731,0xceb10ce4,0xefc12ccc,0x97c08570,0x184cc5,0x741aef71,0x65a9b9c0,0xa471000c,0x2ec0716c,0xc7c8f,0x2011402,0xda71006c,0x91c08928,0xf0379a,0x82094271,0x4b58efc0,0xd71000c,0xe1c074ab,0xc6425,0x71332771,0x7b5c10c0,0x1402000c,0x14861501,0x63354401,0x1143e89,0xf41bfc44,0x4401143d,0xbe455b8a,0x9e440114,0x14bf157d,0x7cd04401,0x15f0bf80,0x9b23dd44,0x441608bf,0x3e891fb4,0xf10114,0xbf9a79ff,0xc12cccce,0xc0d63b90,0xc6afe1e,0xe10f7100,0x989ec0c9,0x84000c0d,0xc0c55cf9,0xbe2a98ee,0xf10108,0x3e80bbf5,0xc12cccce,0xc0d4231e,0xc63f291,0x70ef7100,0x5975c085,0x7100244c,0xc0741aef,0x3c16a6e3,0x6ca47100,0x3cdac071,0x31000c72,0x107b8c54,0x5f4040e,0x656ef44,0x53021c3e,0xbe358eeb,0x440c1841,0xbf109785,0x61310108,0xc6d70,0x7a989e84,0x99b03ec0,0x44021cbf,0x40512c67,0xd7441698,0xb04047a0,0xaa474416,0x1084033,0x1aa09944,0x44010840,0x3fff8330,0x23440108,0x83fe4dc,0x23f64401,0x16744051,0x4fd3fa44,0x31161440,0xc5172da,0xa47f8400,0x8601c0d9,0x16b03fe5,0x5408131,0xd710018,0xd9c0c9e1,0xc1c99,0xc55cf971,0x35567ac0,0x1f71000c,0x88c0c74a,0xc48d5,0xcf245771,0x38dabec0,0xed71000c,0x47c075f5,0xc1a56,0x716ca471,0x370d2c0,0x5071000c,0x44c07b8c,0x60e6fd,0x8928d684,0x48656fc0,0x31011440,0xc34a711,0xab117100,0xda1fc074,0x71000c1b,0xc0713327,0xc04a3f0,0x989e8400,0x4fc2c07a,0x16f83fe6,0xc8963335,0x6c350114,0x114c3d0,0xb9d52435,0x4c350114,0x114ad50,0x9fe0cc44,0x35011440,0x24993709,0x91fb3518,0x310114c8,0xa8c7e9fd,0x7b247100,0xb96dc088,0x71000cc8,0xc0d9a47f,0xc996180,0x3b927100,0xa040c0d6,0x71000ca2,0xc0c9e10d,0xcae4cec,0x5cf97100,0xab3dc0c5,0x75000cba,0xc0c74a1f,0x14c46ac4,0x6d5f3101,0x71000cbc,0xc075f5ed,0xcad2b24,0x6ca47100,0xb869c071,0x62000ca1,0xc07b8c50,0x60bf51,0x8928d671,0xc432b7c0,0x427100f0,0x89c08209,0xcba53,0x74ab1171,0xaded0fc0,0x2771000c,0xf8c07133,0xca251,0x15180c02,0x44180c99,0x41015020,0x7631009c,0xc0726,0xc55cf971,0xd559ec0,0x1f71000c,0x62c0c74a,0xc1235,0x2457c9f4,0x4e68c0cf,0x5619c20f,0xb1a3c11f,0xb565c086,0xa115c20d,0x1659c11b,0x53e3c01e,0x86c8c24c,0xcbcfc11f,0xfcd4c086,0x3cf1c24d,0x31dc11b,0x2327c01e,0xa13cc1f4,0x1b22c11b,0xdec8c01e,0x431b40e5,0xb148c11f,0x43e3c086,0xf06640f1,0x1466c11b,0xf14cc01e,0x5611c1f0,0xb0e8c11f,0x10c5c086,0x59ff41af,0xafdc4081,0xd137c086,0x17741cc,0xafa340a2,0xac91c086,0x5c8e41d4,0xafa3401f,0x5265c086,0x33ee41a7,0xafcf40a0,0x160bc086,0xc47e41b6,0xb24a40fc,0x8447c086,0xa6141c9,0xc7ae40ba,0xdf5ac086,0x5dfd4156,0xb0c64113,0xf9c6c086,0x7b87c0b6,0xafa340a0,0x32b2c086,0x6e364154,0xb0e4c113,0x8fc086,0x7b87c08c,0x54c0a0,0x33ec09f4,0xafcfc0a0,0x8444c086,0x6f9fc255,0xbb7ec113,0xc122c086,0x24c1c9,0x7e9801f4,0x64e5c255,0xb14b4113,0x2d4c086,0x54c1bf,0x73703c44,0xf20090c2,0x99797f43,0xac51f8c0,0x86b006c0,0x91b917c0,0xa81e7cc0,0x86af30c0,0xc68462c0,0xac1568c1,0x86af4bc0,0xc86c68c0,0xa78df8c1,0x86ae53c0,0x80f0b4c0,0xd150a4c2,0x86b2adc0,0x774f6cc0,0x8159fbc2,0x86afd3c0,0x7bdbd4c0,0xf80b97c2,0x60b240c0,0x9c0400,0xf6205bf2,0xf17ac274,0xb351c109,0x6189c086,0x6406c283,0xb348c0a1,0x82e4c086,0xf5b8c26a,0xb257c112,0x26f2c086,0xb884c286,0xb435bfba,0x24ecc086,0xbf44c285,0xb433c054,0x49b6c086,0x5e39c262,0xb235c113,0x140ec086,0x9d1bc260,0xae88c11b,0xe530c086,0x4bb4c25b,0xafcbc120,0xa18cc086,0x7fe8c257,0xae45c11b,0xff20060,0x40a16408,0xc086b348,0xc2774ca2,0x40817b65,0xc086afcd,0xc28524eb,0x4054bf6a,0x6cb433,0xbab7cc62,0xccb4353f,0x50a66200,0xb2ad40d1,0xa26200c0,0x3e40f80b,0x9200b4b2,0x4109f179,0xc086b34e,0xf300a8e2,0xb255411f,0x49b0c086,0x5e57c262,0xb3c04113,0x1364c086,0x9ecac260,0xae82411b,0xe384c086,0x4bd1c25b,0xafc04120,0xb3a6c086,0x18cbc257,0x6428f100,0x8c1bf00,0xd541135a,0xbc086b3,0xdb41958d,0x74c112f5,0x4bc086b3,0x841a7ac,0x2bc10ba4,0x4dc086b2,0x2441b61d,0xbac0fca8,0x33c086b1,0x6341af0b,0x1d4817b,0xd06b1cf1,0x2d2341c2,0xb23cc0d6,0x771dc086,0x992641ca,0xb752c0b3,0xfe6fc086,0x5498c0b6,0xb5954113,0x7e01c086,0x70d641d4,0xf2021023,0x5fb2ba43,0x1b87e741,0x86aebc41,0x7012a2c0,0x2043c741,0x86b00e41,0x851047c0,0x1350bc41,0x86b28741,0x809421c0,0x1ba3de41,0x86af1441,0xd77449c0,0xe9dd5d41,0x86afa33e,0x95930bc0,0x12f6d741,0x86b3e141,0xa7a5ebc0,0xbacfa41,0x88b31841,0x2068f502,0x83411336,0xc6bf9abe,0x76c0b6f9,0x8340adf9,0x43bf9abe,0x52c0e71c,0x29411a6d,0x7cc0e995,0xddc0e5e3,0xf6411a61,0x2fc0d40c,0xa1c0cd7a,0x27411888,0x8bbf9abe,0xdac0cda7,0x6b411844,0xd2c0c529,0x31c0db54,0xae4119e5,0x48c0c88d,0x66c1807c,0x7b411a66,0x4fc0ce3c,0x66c18ee5,0x57411a66,0x12c0cf24,0x66c17a54,0xfd411a66,0x9c0c587,0xc952a,0x915531b1,0x1a6666c1,0xc74a1f41,0x18040abc,0x55f73100,0xf10018b1,0xd23dbe04,0xb8e12c0,0x1ab6fec1,0xed372441,0xbfbcac0,0xa3710018,0x9c0d5f5,0xcad2a,0xc587fd71,0xa95531c0,0xf1000c,0xc0c74a1f,0xc1b1dec0,0x411aa79d,0x20efc47c,0x6614f10a,0xf9411a66,0x6dc0ca92,0x87c1538d,0xab411a39,0xf3c0daa2,0xeec16b86,0xc5411a27,0x90c0dc58,0x3c50f8,0xce3c7771,0x6dcaa0c0,0x5571000c,0xb6c0cf24,0x3099c6,0xdaa2a971,0xa5c379c0,0xc3710030,0x63c0dc58,0x2472aa,0xc74a1f71,0x987c48c0,0xf002000c,0xca61100,0x5704f100,0xe5c0cf24,0xc1c12355,0x53411a3b,0xcac0d6a5,0x183bfb,0xf5a500f1,0x8e12c0d5,0x9b9dc13b,0x12a3411a,0x710ad4ec,0x411a6666,0xacc9e10d,0xc010b,0xc0c89a61,0x301724ef,0xe8b87100,0xc6b6c0c4,0x11008481,0x150084ab,0xf400848d,0xb98d2b0d,0x183497c1,0xc7f54741,0xb9814dc0,0x187b05c1,0x9abe2f41,0xbf02d4bf,0xf401d4c1,0x6a7a3aff,0xe7044160,0x9c90411b,0xadcac101,0xf09c416f,0xb670411f,0xf4aec146,0x49c9417d,0x50ad411d,0xb5e4c111,0xb560c269,0x4680411a,0x4fb0c0f0,0xaa6ac260,0x493a411a,0xa641c0f0,0x72bc4196,0xb3f2411f,0x5e32c146,0xa66d4114,0x656a411e,0x9728c124,0x9fad412c,0x2354411e,0x7d34c125,0x1187c254,0xa6be4120,0xcb90c146,0xf63cc24d,0x487c411e,0x364c12e,0xf92c1ee,0x4774119,0x78d4c0d5,0xe2c1e1,0xa4e4119,0xba5cc0d4,0xd26ec24f,0x7a23411e,0x2b1ac12b,0x4fd7c204,0x8ce34118,0xcf34c0c9,0x3de1c1f6,0x7edc4118,0x676bc0c8,0x9767c153,0x2b6f411e,0xc8cec125,0x8499c250,0xc7bf411e,0x1b2c125,0xf92c24b,0x47b4119,0xbc69c0d5,0xe1c244,0xa484119,0x8738c0d4,0xa66dc02e,0x656a411e,0x46c3c124,0x9fadbf9b,0x2354411e,0xcb90c125,0xf63dc241,0x487c411e,0xe489c12e,0x7bbdc13b,0x367a411e,0x676bc125,0x9767c123,0x2b70411e,0x3abac125,0xc7f1c10f,0xb023411e,0xd2d8c12a,0xd26ec0dd,0x7a25411e,0xba5cc12b,0xd26ec243,0x7a26411e,0xceaec12b,0x24c24b,0x57775a35,0x25f40120,0xc2500bca,0x41187189,0xc0cb8375,0xc205befc,0x411802ec,0xc0c513d5,0xc244da36,0x411e9fad,0xc1252355,0xc24ae874,0x411ea66d,0xc1246567,0xc1d60364,0xd24400c0,0xc0c1c978,0xcb903500,0x4400a835,0xc238bc69,0xb2440018,0x30c23f01,0x56344400,0x12cc1f0,0x7df600f5,0x2ecc1f3,0x13d74118,0xceaec0c5,0xf4009c3f,0x37ba5c19,0x1ed26ec2,0x2b7a2641,0xbe49ac1,0x1e7b04c1,0x2536c241,0xe6467ec1,0x1e8476c0,0x25c7aa41,0xce5c7dc1,0x5301a4c0,0xc05cb902,0xf1007830,0x46e40b0c,0x1f88dec1,0x3c66c241,0x3b9c91c1,0x1fa973c1,0x40b8bb41,0xee874c1,0x10f700c0,0xc1246565,0xc208da36,0x411e9fae,0xc1252357,0xc1bddc28,0x41194a97,0xc0d64d25,0x243ee874,0x24381100,0x23557500,0xcb90c125,0xf500d829,0xdecf3500,0x183de1c1,0xc87edf41,0x7ba5b1c0,0x75440168,0xc0c0be75,0xceae3700,0x1500cc33,0xf100cc2b,0xe4ebdc0c,0x1fcef7c1,0x46b3fa41,0xe1360cc1,0x1fa4fec1,0x3ffe2f41,0xd85634c1,0xe5710114,0xf6c0c98c,0x114db7d,0x15018002,0x3500842c,0x9c32e874,0x446b3500,0xf5004835,0x4c2b1a0c,0x184fd7c2,0xc98ce141,0x1dcb90c0,0x1ef617c2,0x2e487b41,0xc6cf35c1,0x5c3500a8,0x841fba,0x27ceae35,0xb235009c,0x1983301,0x2cbc6935,0xf65301b0,0xe5c1c37d,0x1f40084,0xc0b7c900,0x411e7bf6,0xc1253652,0xc086d1b1,0x11530138,0x23bee5c8,0x7435006c,0x9c02e8,0xf9b46c44,0x530024c1,0xc1c05634,0x350318d4,0x2426e874,0xda363100,0xf300d820,0x25235606,0xdbf455c1,0x1f8917c1,0x3c6f7741,0x11cb90c1,0x1c839c2,0x679b01f4,0x3de1c243,0x7ee14118,0xbc64c0c8,0x3b440c8,0xf92e4f44,0x3503b440,0xcc1bceae,0xba5c3500,0x4400e413,0xbf6e96c4,0xe2350240,0x1983cea,0x4dbefc53,0xd8f8c2,0x1ae87437,0x14150090,0x90530090,0x53c205cb,0xf50084,0x41445c72,0x411eab61,0xc124708a,0x68402b1a,0xbefc3501,0x31032441,0x7807ba5c,0x7a237100,0xceafc12b,0xf500900f,0x2ab02510,0xb723b8c1,0x199df7c0,0xdb1d2841,0x85e349c0,0x1900f7c0,0xd40a4c41,0x2701b2c0,0x6935030c,0x17420bc,0x1dbefc53,0x30ce1c2,0x11befc35,0x1f40060,0xc0301b22,0x41190f92,0xc0d50479,0xbf978d1e,0x20530354,0x44c1f397,0x65300a8,0x2c402347,0xf5000c,0xc1edd0e8,0x411ea66d,0xc1246564,0x8ce1b46c,0x1600f501,0x4ec0be24,0xc441186c,0x9bc0cb32,0x15c3767,0xf774b744,0x3104c8c1,0xc003ceaf,0xb0238400,0x5a4fc12a,0x1444004,0x45479d44,0x4401443d,0x3e7e4de4,0x2f30090,0x3fe872e2,0x411900e2,0xc0d40a4a,0xc07679af,0xf701b0e6,0xdb972000,0x1ef654c1,0x2e487d41,0x342b1ac1,0x35150138,0x5d4400d8,0x54c1ef9d,0x74b63100,0xf40084df,0x2b7a2505,0x42b19ec1,0x184fd7c0,0xc98cdf41,0x5befaec0,0x44048cc0,0x409a1cb9,0xde46006c,0x44404fe4,0x44141501,0x1b23501,0x44015c1b,0xbf59e6bc,0x43440240,0x403e8bc6,0xb93d4402,0x2403fe4,0xc3972031,0x7c8400a8,0x83c12e48,0xbc40b1a3,0x679d4404,0x84bd2c,0xdf7d7444,0x350084be,0x382b679b,0x9d5d3101,0x7100c0d7,0xc12ab024,0xc0c774b6,0x7a267500,0xf26fc12b,0x35009cc7,0xb4fa1cb9,0x2d283500,0x440150a2,0x40098659,0x1e440444,0x8404315,0x4e594401,0x78403d,0x24105244,0x35021040,0xc8c9b46c,0xd0e73101,0x7101e0d5,0xc1246565,0xc0ab971f,0x487d8400,0xf938c12e,0x1144113,0x2d0e5c44,0xf5012c41,0x50e2b400,0x19a58fc2,0xdb1d6f41,0x282b1ac0,0x2d35018c,0x84a4c3,0x29befc35,0xb6440198,0xd4c1af74,0x9d5d3104,0x7500e4bf,0xc12ab025,0x9cbea72d,0x8294400,0x5b840b2,0xf01b231,0x77930174,0x6ac0d504,0xe2c208bc,0x964402e8,0xe4410261,0x2e4f3500,0xf503b499,0x43f93a00,0x19100c41,0xd5047d41,0x5178c8c0,0xc24403d8,0x804108d1,0xcf0cf101,0xabc1b1b3,0x3f411e99,0x42c1252a,0xd9c1bdf2,0x6a411e7b,0x9cc12536,0x1801f67,0xc87ee393,0x93971fc0,0x2f446c1,0xf539644,0x44013841,0x41090414,0x8f35009c,0x15cc18a,0x1169444,0x3502d041,0x9c326196,0x9d5d3100,0x1100e4a7,0x1501c823,0xf300fc97,0x3f539002,0x184fdb41,0xc98cd641,0x390416c0,0x438fc41,0x547d1e35,0x4a530858,0xe74140c5,0x1a31003c,0x15c1c2b,0x8cdf04f5,0xf245c0c9,0x7bbdc1a5,0x367c411e,0xb3b6c125,0x3507a499,0xb0772e41,0x1b23501,0x44013803,0xc1f978d3,0x6c350138,0x847ee9,0x8f9d5d35,0xf5009c,0x41333e66,0x411ee8ba,0xc12d2521,0x813679c,0x4801f401,0xf2413bb3,0x6e411eec,0x48c12d87,0x4c4110c5,0xb3b63502,0x53007881,0xc18df244,0x350090bf,0x84472e41,0xe96c3100,0x71006c4e,0xc12b7a26,0x6c6f3aba,0xb0247100,0x2b1ac12a,0x7100cc10,0xc0c98ce1,0xcc6be488,0x36797100,0x2e3fc125,0x71003c17,0xc12e487c,0x8407679a,0x7edc7100,0xe96cc0c8,0x1100481e,0x11004825,0xf100483f,0x2ab02508,0x5d0c16c1,0x1ffaa8c2,0xf0495241,0x599442c0,0x1ea32dc2,0x5f70990,0xc255e90c,0xc126aa8d,0xc0f0493d,0xc25d0c6c,0xc11ffa69,0xc1b20024,0xc0f0493a,0xc26b5ae4,0x246561,0x54a2d071,0x229933c2,0xb8030030,0x240108,0xa65c04f1,0x3ca3c288,0x493dbf7b,0x343c0f0,0xee0fc288,0xf1000c2a,0x86d14f28,0xa142fc2,0xf04932c0,0x873bdcc0,0x266666c2,0xf0493abf,0x881ce5c0,0x2d943ac2,0xf0493dc0,0x8578dbc0,0x838a5bc2,0xf04930c0,0x857a26c0,0xb59451c2,0xf1710018,0xe5c28353,0x18bc0e,0x7b7904f1,0x3b6c280,0x492ec0ec,0x26cbc0f0,0x6ebbc281,0xf1008401,0x7a211c04,0x89c0bc2,0xf0492cc1,0x7b0ef8c0,0x147284c2,0x4f10018,0xc27275fa,0xc114fc12,0xc0f04928,0xc272fd26,0x182112f6,0x98e61200,0x98c1170a,0xc0010a,0x1024c03,0xa803000c,0x3a3fd400,0x16c0f049,0x88c287fb,0xcc3f2a4b,0x340bf200,0x32400a14,0x4c0f049,0x86c26ac7,0x3d412693,0xcac0f049,0x2dc255cf,0x3000c8d,0x9f100a8,0xf0492e40,0x83f62bc0,0xd672a1c2,0xf0493d40,0x80da04c0,0x35ac5c2,0xd8030030,0x3040c100,0xf2c0f049,0x2ec2549d,0x182251,0x8661e271,0x9cf4e0c2,0x4f10030,0xc27a211a,0x41089c0d,0xc0f0492c,0xc27c9a08,0xb010db52,0x78db7101,0x8a5fc285,0x71003c83,0xc2766328,0x3c1cb196,0x2797100,0x6c94c288,0x3003c39,0x41c100fc,0xc0f04928,0xc288a937,0xc079c11e,0xca04f100,0x2ec255cf,0xd3c1268d,0x52c10357,0xbbc25492,0xc220a,0x6ac70462,0x189387c2,0x632a7100,0xb193c276,0x300181c,0xc1530078,0xc10357d1,0x180100c0,0xf004f100,0xafc28543,0xd3c0bab5,0x79c10357,0x8bc28802,0xc396c,0xd304f1,0xadd1c288,0x57d3bf2b,0xa937c103,0xc10dc288,0x71000c79,0xc2876b15,0xc25f751,0x61302100,0x69f10204,0x357d13f,0x4f694ec1,0x1ffae7c2,0x46b448c1,0x547d1ec1,0x1fcef6c2,0x46b3fac1,0xbbd6f7c1,0x1473ab41,0x46b3fbc1,0xb70613c1,0xbf95b41,0x46b3f8c1,0xc2aecbc1,0xf838a641,0x46b13ec0,0xc5a37dc1,0xe94c0e41,0x46aeb1c0,0xd4ecb7c1,0xcf895741,0x46b3fbc0,0xc5dc4fc1,0xe7aeef41,0x46ae8b40,0xd5d0dbc1,0xcabae941,0x46b3fb40,0xd47e03c1,0x2370c541,0x7b71000c,0xb241c97b,0x600094,0xe1881171,0x62630f41,0x6b710018,0x31c13544,0xa142bff,0x9990ad71,0x2b5e2941,0x3e710024,0x2fc17a39,0x9c2bff,0xda4310f1,0xcff64195,0xb3fb412b,0x5b29c146,0x44a241d7,0xb3fb3f27,0x7d6dc146,0x450241e5,0xf1000cbe,0xe62beb28,0x1f161a41,0x46b3fbbf,0x3dc938c1,0x201fa841,0x46b46ec1,0x969911c1,0x1f734041,0x46b3f7c1,0xa6b379c1,0x19997041,0x46b3f741,0xadedf1c1,0x219c2641,0x4f10054,0x41b7060f,0x410bf963,0xc146b3f8,0x41bd1f7d,0x1812e9dc,0xac917100,0x5c7041d4,0x7100e41f,0x41e38cd9,0xc2d261c,0xb3757100,0x997241a6,0x71005419,0x41ca9741,0xccfd249c,0x85557100,0x9e3241ac,0x7100c022,0x41ddb9ff,0x3095efeb,0x8a9a7100,0x4f7cc254,0x62001826,0xc255b118,0xe4cd98,0xc2717335,0xc87100e4,0xbc2548c,0x78268c,0xe4ebdc35,0x62620114,0x1bc255c5,0xf100fcdc,0xc3e2c310,0xf3093141,0x46a38e40,0xd4668dc1,0x2651a441,0xde72e40,0xc99b7fc1,0xc5246a41,0x4f1000c,0x41c9a359,0x40c47c8b,0xc12de72e,0x41d4d221,0xc1a50ce,0x10440400,0xe72e00f5,0xacdfc12d,0xb09241d4,0xe72ec01d,0xf101502d,0xde72e08,0xd48d37c1,0x2392c041,0xde72ec0,0xd13367c1,0xb4e86241,0x59710024,0x8941c9a3,0xcc47c,0xd98b7971,0x93a64841,0x4171000c,0xe041de9f,0xc5e66,0x727110f1,0x3c3641e3,0xe72ebedd,0x7385c12d,0xb01041e2,0xe72e3fd4,0x78d9c12d,0xf03941de,0x71008461,0x41d0c59f,0xcb5f755,0xeeb97100,0xd5c941d8,0x71000c96,0x41c9a327,0x78c5315d,0x29057100,0xafb441d1,0x71000cb4,0x41d8eeb9,0xc96d5c7,0xb1af7100,0x51f441de,0xf1000c5e,0xe288a71c,0xc8d95a41,0xde72ebf,0xe36c2bc1,0x41,0xde72d00,0xe2acf1c1,0xbd27d441,0xde72e3f,0xded75dc1,0x5a998d41,0xf3710114,0xaf41d194,0xcb396,0xd98b7971,0x93a64a41,0x28f1000c,0x41456766,0xc11cf18e,0xc10d1dd5,0x4142c156,0xc11b3572,0xc0d9eea2,0xc2586d52,0xc12bff42,0xc14ec8a0,0xc258976e,0xc12bffd4,0xc122f0dc,0xc255fa38,0x902be7e3,0x70fff203,0xc259c660,0xc12bff2f,0xc1168b04,0xc25c43bc,0xc12bffbb,0xc10ae278,0xc2608524,0xc12c00bc,0xc1039960,0xc1308441,0x412bff1b,0xc14e97fb,0xc2585f0a,0x412bff4e,0xc15007aa,0xc2568d1e,0x412bff3e,0xc1566304,0xc25897e6,0x412bffc7,0xc122e104,0xc26088a2,0x412c00dd,0xc103986f,0xc25d49ea,0x412bff30,0xc1087cd6,0xc25a776a,0x412bff22,0xc111d374,0xc1e71c7e,0x412bff4d,0xc14db55d,0xc14147b0,0x4136775d,0xc13df196,0xc13b9de9,0x413687b4,0xc140dcee,0xc13680f9,0x4136e986,0xc1450c7b,0xc12fed30,0x41371798,0xc150523f,0xc147531a,0x4136a12d,0xc13c4728,0xc132a28f,0x4136cb3f,0xc14a573e,0xc25487cc,0x4126364f,0xc10357d3,0xc255adb8,0x412bc39a,0xc10357d3,0xc2549614,0x4122546f,0xc10357d3,0xc255e90c,0x4126aa8c,0xc10357d3,0xc283ddde,0xc0fec19a,0xc10357c9,0xc2868d73,0xc0cadef6,0xc10357cc,0xc2809fb6,0xc114dd67,0xc10357cc,0xc288961b,0xc08feddd,0xc10357ce,0xc279e144,0xc12522bf,0xc10357ce,0xc289e5db,0xc0201373,0xc10357d0,0xc2716936,0xc1302102,0xc10357b1,0xc28a6d98,0x3f0448bf,0xc10357d3,0xc288a65c,0x3f7b3cb4,0xc10357d3,0xc28808a2,0x3f2c6ab1,0xc10357d3,0xc260b012,0xc133f822,0x48b2a2,0x137702f3,0x57d04020,0x1ce5c103,0x943ec288,0x78d3402d,0xedf25300,0xc0ce408f,0x73283100,0x7101b027,0xc2868f4a,0x249780a8,0xb40300,0x57cc40c1,0x349ac103,0xb24fc284,0xf30018d1,0x83dddd06,0xfec1a4c2,0x357c940,0x8126cbc1,0x16ebac2,0xd8d341,0xdd6800f1,0x57cc4114,0xef8c103,0x7283c27b,0xf1001814,0x79e14404,0x2522c1c2,0x357ce41,0x72fd26c1,0x2112f7c2,0xd8030018,0xaf415300,0xc8c10357,0x180107,0x67fffff6,0xc2588cbe,0xc1367898,0xc1222748,0xc2586a4a,0xc137f11d,0xc14e8c65,0xc257abc8,0xc137fbb5,0xc1538622,0xc2556d02,0xc137c87d,0xc13a5032,0xc253f9ea,0xc137e950,0xc11b27ef,0xc250d48a,0xc135f3e5,0xc08889b7,0xc25283ce,0xc135c067,0xc0da67a1,0xc2544c5c,0xc135b400,0xc10edbb5,0xc2536d78,0xc12c9f61,0xc093b470,0xc2551894,0xc13449c0,0xc1071973,0xc253944e,0xc13106f0,0xc0c994fb,0xc254f362,0xc1369b41,0xc1204553,0xc25a99e0,0xc1353060,0xc1118fc8,0xc25d6ddc,0xc1345779,0xc107e8ff,0xc2804beb,0x40db1281,0x40075fc8,0xc27e974e,0x40e60cce,0x400b6f50,0xc27d9a02,0x40ee7e9b,0x40075fb3,0xc27a5f8a,0x40ff505b,0x40075f9a,0xc274a898,0x41088773,0x400b6b7f,0xc276f160,0x4106ac8a,0x40075f81,0xc2735922,0x410c38b0,0x40075f52,0xc26baf10,0x41117012,0x400b32a9,0xc26fa0d8,0x41103d18,0x40075f20,0xc26ab730,0x41135a8c,0x40061b9b,0xc26e55a4,0xc110491c,0x400b61e5,0xc26aa5ae,0xc1134742,0x40070c7c,0xc26f9142,0xc1104a79,0x40075f78,0xc27349ea,0xc10c4c94,0x40075f96,0xc27c38e0,0xc0f3d18f,0x400b6f4c,0xc276e2b8,0xc106c6bb,0x40075fb7,0xc27a5196,0xc0ff90ef,0x40075fc4,0xc27d8cf8,0xc0eeca79,0x40075fcc,0xc28045ec,0xc0db68f7,0x40075fc4,0xc2836e25,0xc09c93a1,0x400b6f4c,0xc281a2eb,0xc0c5a294,0x40075fc4,0xc282d9aa,0xc0adb40f,0x40075fb3,0xc283e6c9,0xc093e00f,0x40075f91,0xc284c754,0xc070dda5,0x40075f81,0xc2856bbe,0xc0370015,0x4009cc53,0xc2863fd8,0xbebb75c9,0x400b6d55,0xc2864794,0xbf7bd167,0x40075ee1,0xc286628f,0xbbed80a1,0x40075e03,0xc286486d,0x3f77e005,0x40075f4a,0xc284f6bc,0x4058d717,0x400b6f4c,0xc285fb10,0x3ff5b973,0x40075f85,0xc2857b56,0x4036661f,0x40075f9a,0xc284ca9a,0x406ff317,0x40075fbb,0xc283ead2,0x4093707a,0x40075fc0,0xc282d031,0x40ad19ed,0x4009cc6c,0x4195e635,0x4113389c,0x40072c02,0x419d1d35,0x4110491c,0x400b61e9,0xbf266341,0x4129ae69,0xc06287ad,0xc21e998e,0x2a15000c,0x3a44000c,0x8411780,0x5f24f543,0xcec1816f,0x47412a7f,0x76c074c7,0xa3c18ff5,0xaf4129f1,0xe3c06879,0xaec1ec3f,0x76412ba8,0x13c087b4,0x80c19533,0x1e4129ae,0x76c06287,0x24a7f5,0x6998d044,0xf40054c0,0xe90a0301,0x2a7fce3f,0x74c74c41,0xa89fc7c0,0x3500483b,0x6052debe,0x7fc63500,0xf5005468,0x56b6ca0c,0x2bee26c1,0x8af4c141,0x26b633c0,0x2bede0c1,0x8af15841,0x387fc6c0,0xb0440024,0x54c214b7,0xfabc4400,0x54c21b,0x9a428144,0x44001840,0x40405450,0x30440018,0x90401667,0x1000f500,0x92c1ad33,0xb64129ae,0x81c06286,0x30fa42,0xf2926c44,0x443dbc40,0x40cf0073,0xb0310108,0x6c08b7,0x74c75075,0xffabcc0,0x8e35006c,0x1381299,0xb79800f1,0x7f6ac250,0xc832412a,0x6f60c074,0x8400d8f9,0xc074c750,0xc2021ff2,0x1a35012c,0xccfb5b,0xc02a2835,0x9835009c,0x9cab33,0x6feaee35,0x26350144,0x15c7a66,0x2d214044,0x3500d841,0x6022debf,0xb7b03100,0x11009c44,0x15009c4c,0x44009c03,0x41101514,0xcc4400fc,0xfc410599,0x33143500,0xf50054f5,0x6998400,0x29aea4c2,0x62864041,0xc53313c0,0x13350018,0xcdd33,0xe16f6035,0xf5006c,0x414014cc,0x4129f123,0xc0687bb3,0x6c4bfabc,0xce01f400,0x6a413599,0xa94129ae,0xb0c06287,0xa8c238b7,0xeaee3100,0xf400cc3f,0x6879ab05,0xd4cc59c0,0x29ae76c0,0x62875941,0xe5bd7dc0,0x350120c0,0x6c1a6627,0x66263500,0x35000c4a,0x3ceff578,0x6f603100,0x110084c9,0x1500e447,0x3500783f,0x8042998e,0xeaed3101,0x7500300f,0xc06879af,0x842cb7b0,0x7d0cf500,0xcfc085bd,0x54412a7f,0x8cc074c7,0x39c24e99,0x984129ae,0x77c06288,0x30d7f5,0xb16f5f37,0x33170060,0x36150060,0xda440060,0xc0bfd5,0xb7b03503,0x44006020,0xbf96f5fd,0x763700f0,0x54bff5,0x549917,0x542715,0x3fabb035,0xfff70048,0x50dbda15,0x2898a4c2,0x8adcc841,0x50d740c0,0x24cceac2,0x89d7dc41,0x4af694c0,0x33658bc2,0x25531441,0x4bd245c1,0x33b1bbc2,0x2aa9b141,0x4cf752c1,0x33e0dac2,0x2d664c41,0x4e56ddc1,0x33e771c2,0x2dd7b841,0x4f9e8ac1,0x33c960c2,0x2bcc2641,0x50cad6c1,0x3370b6c2,0x25f27f41,0x4ae7d6c1,0x24ccdec2,0x8cc20941,0x4ffce4c0,0x274618c2,0x7e737941,0x4e7079c0,0x268168c2,0x7128a241,0x4c78bcc0,0x26c76bc2,0x76279e41,0x4af1e3c0,0x28641fc2,0x88d1db41,0x4fb9c5c0,0x24ccbbc2,0x7acc5c41,0x4e5057c0,0x24cce2c2,0x71567141,0x4cbfa4c0,0x24ccd9c2,0x744cd341,0x4b7c13c0,0x24ccb6c2,0x81f18441,0x4fb958c0,0x24ccd3c2,0xca2fba41,0x50d530c0,0x24ccb2c2,0xd6822841,0x4e4ee2c0,0x24ccd0c2,0xc5750241,0x4cb9e3c0,0x24ccd3c2,0xc7080741,0x4afe9ec0,0x24cc98c2,0xd4091a41,0x44dbdbc0,0x2898a4c2,0x8adcd141,0x44d741c0,0x24cce6c2,0x89d7e941,0x3ef694c0,0x3f170108,0x40170108,0x42170108,0xcf30108,0xc95fc243,0xcc244133,0xcad5c12b,0x70b5c244,0xf2804133,0xe7d6c125,0x8e0c23e,0xfce53701,0x17010843,0x17010842,0x15010840,0xf701083e,0x43b9c600,0x24ccb7c2,0x7acc6441,0x425057c0,0xaf50108,0xccdbc240,0x4ccf4124,0x7c13c074,0xccbac23f,0xf1824124,0xb958c081,0xf7010843,0x44d52f00,0x24ccb2c2,0xd6823441,0x424ee2c0,0x40110108,0x8020024,0x83e1701,0x10381101,0x1080202,0x1083817,0x2103217,0x1083317,0x1083417,0x1083617,0x1083717,0x1083817,0x1083217,0x1083717,0x1083617,0x1083417,0x1083217,0x1083717,0x1083617,0x1083417,0x1083317,0xe43711,0xca2fba77,0x38d52fc0,0x36170108,0x34110108,0x8020024,0x8321701,0x82c1701,0xc22c3501,0x170108e8,0x17010826,0x17010827,0x17010828,0x1701082a,0x1701082b,0xd701082c,0xccddc226,0xc20b4124,0xfce5c08c,0x1701082b,0x1701082a,0x17010828,0x71010826,0xccbec22b,0x10604124,0x82a1702,0xc2283501,0x350210de,0x18adc227,0xe42b1103,0x1080200,0x1082c17,0x1082a17,0x242811,0x17010802,0x17010826,0x17010820,0x15010820,0x9101081a,0xc21bd246,0x4133b1bc,0x170420b3,0x1701081c,0x1701081e,0x1701081f,0x11010820,0x1101081a,0x11010807,0x7701081f,0xc07e737e,0x81e7079,0x81c1701,0x81a1501,0xb9c53101,0x201081f,0x1e170420,0x1c170108,0x1b170108,0x1f110108,0xb81100e4,0x20110210,0x36750108,0xe2c0d682,0x1081e4e,0x1cb9e431,0x5750024,0x9ec0c708,0x1081afe,0xdbd400f7,0x9924c214,0xdb6a4128,0xd741c08a,0x11010814,0x7101080e,0xc1255317,0x80fd246,0x8b51101,0x8101701,0x8121701,0x8131701,0x8141701,0x80e1101,0x8011101,0x8131701,0x8121701,0x8101101,0x27a27101,0xf1e3c076,0x7701080e,0xc088d1d7,0x813b9c5,0x8121701,0x8101101,0x5280201,0x1080f17,0xe41311,0x17010802,0x15010814,0x31010812,0x2410b9e3,0x1080200,0x1080e15,0x8dbdb31,0xd7710210,0x41c08adc,0x10808d7,0x630e611,0x1080217,0xbdc20371,0xb44133b1,0x4150108,0xdc370108,0x1080656,0x5ec20735,0x8110528,0x81110108,0x2150528,0xe4310108,0x10807fc,0x2106d11,0x1080617,0x1080411,0x35063002,0x81ec202,0x8071101,0x18571101,0x8061703,0x8041701,0x8031501,0xb9573101,0x7700e407,0xc0ca2fb6,0x808d52f,0x8061501,0xb9e43101,0x2002404,0x2110108,0x1c840108,0xb6c0d409,0x8c1f9b7,0xae824401,0x108c1f9,0xeded2844,0x530108c1,0xc1efa48b,0x440318bd,0xc1f1eea4,0xb8440738,0x38c1f4ad,0x3d144407,0x108c1f7,0xf995aa44,0xf40108c1,0xedcfac01,0x24ccddc1,0x8cc20541,0xf7f9c8c0,0x440108c1,0xc1f4e0f2,0x78440630,0x30c1f0f1,0xc601f406,0x1fc1ede3,0xd9412864,0x8ac088d1,0x8c1f773,0xa0ae4401,0x630c1f4,0xf17f4644,0x530210c1,0xc1eef826,0x440630ad,0xc1f772ae,0x5e440108,0x18c1f9aa,0x9dc34403,0x630c1f4,0xf173c731,0x5860024,0x3cc0c708,0x8c1edfd,0xc1e13501,0x330108a5,0x8e6c1e1,0xed273101,0x710108d5,0xc1255316,0x8d7a48b,0xa9b47501,0xeea4c12a,0x370108d9,0x8dcadb9,0xc1df3301,0x3102105f,0x8e195aa,0xf2827101,0xcfacc125,0x7100b4d5,0xc08cc207,0x8dff9c9,0x73757501,0xe0f2c07e,0x370108dc,0x8d8f177,0x8d51501,0x73895501,0x8b7c1df,0x48dc1101,0x56719500,0x7f47c071,0x8e1c1d9,0xc1d6d101,0x4124ccba,0xc081f180,0xe4df72ad,0x2fb47500,0xaa5ec0ca,0x370108e1,0x8dc9dc2,0x24d91101,0x1080200,0x108d515,0xb7a900f1,0x9926c1c9,0xdb734128,0xae82c08a,0x710210c9,0xc089d7e9,0x8bded27,0x8141101,0x8bf1701,0x8c11501,0xadb83701,0x170108c4,0x330108c7,0x10b6c1c9,0xcfab3102,0x1100c0bd,0x11021007,0x110108c7,0x17010871,0x170108c4,0x110108c0,0x110108bd,0x170210db,0x350108c7,0x8dbc1c4,0x8c11701,0x8be1101,0xf1827101,0x72aec081,0x1100e4c7,0x110108b8,0x770108c9,0xc0d68234,0x8c49dc2,0x24c11101,0x1080200,0x108bd17,0x108b115,0xb1ae8131,0xeb110108,0xa5170108,0xa7170108,0xa9170108,0xac170108,0xaf170108,0xb1110108,0x82750108,0xabc125f2,0x108a5cf,0xd0f300f1,0xcccec1a5,0x4e1c4124,0xf9c9c0d9,0x20114af,0xac17021c,0xa8170114,0xa5150114,0x89370114,0x114af73,0x114ac17,0x114a917,0x114a611,0x81f18071,0xaf91e8c0,0xf971006c,0x6cc0ca92,0xcb1b0,0xd7170f71,0xacb535c0,0x4f1000c,0xc0c5831f,0xc1a998b2,0x4124ccce,0xc0c6da49,0xca711ca,0x3c7b7500,0xb7a9c0ce,0x31011499,0x1899be30,0xbef77700,0xae82c0d9,0x17012099,0x1701208d,0x1701208f,0x17012091,0x17012094,0x17012097,0x17012099,0x1101208d,0x2006c8d,0x97170120,0x94170120,0x90170120,0x8d170120,0x97170120,0x94170120,0x91170120,0x8e150120,0xc3310120,0x6c98a8,0xcf245771,0x958f97c0,0xd371000c,0xb2c0c5f4,0xc9198,0x11011402,0x75000c8f,0xc0ce3c7b,0x3881b7b6,0xbe303104,0x75001881,0xc0d9bef7,0x1481ae81,0xda4e3101,0x7501146b,0xc1255316,0x146f4916,0xdd483501,0x35011473,0x14795b71,0x7a283701,0x1501147e,0x31011481,0x146b9f57,0xc2057101,0xa1e6c08c,0x75006c6b,0xc0d94e1e,0x147ff392,0xc1e43501,0x35011479,0x1471e2ed,0xc78b5301,0x581ec16b,0xe7123505,0x3501147e,0x1479415c,0xfe8e3501,0x31011472,0x146df04c,0xf17e7101,0xa8c3c081,0x71006c80,0xc0cf2457,0xc7b1f2d,0x3de00200,0xc7311,0xc6da4771,0x6e2394c0,0x7971000c,0x52c0ce3c,0x228536f,0x8adb7577,0x535d03c0,0x3b110108,0x18110108,0x3f170108,0x43170108,0x49170108,0x4e150108,0x54310108,0x108532b,0x25f28171,0x3b9f57c1,0x1110108,0x3b110108,0x16710078,0x91c0d94e,0x1084ff3,0x7e737175,0x49c1e4c0,0xee370108,0x10841e2,0x1083b15,0x4ee71337,0x49170108,0x42170108,0x3d110108,0x82310108,0x3cc081f1,0x31033c04,0x785360d9,0x170f7100,0x6a6ac0d7,0x71000c49,0xc0c5831f,0xc433164,0xda497100,0x2393c0c6,0x71000c3e,0xc0ce3c7b,0x28236f6b,0xdcd97702,0x5d03c08a,0x17011423,0x1101140b,0x7701140f,0xc12aa9b3,0x1413dd46,0x14191501,0x7a263101,0x7501141e,0xc12bcc25,0x58232b53,0x9f573105,0x7101140b,0xc08cc1ff,0x780ba1e6,0x1140200,0x1141f11,0x7e736d75,0x19c1e3c0,0xed370114,0x11411e2,0x1140b11,0x88d1d775,0x1ee712c0,0x5c35066c,0x1141941,0x12fe8d35,0x4d310114,0x1140df0,0x81f18051,0x3210cec0,0x11011404,0x71007823,0xc0d7170f,0xc196a6b,0x831f7100,0x3164c0c5,0x11000c13,0x11011447,0xf4000c0e,0xce3c7b05,0xe6ded7c0,0x2898a5c0,0x8adcd941,0xe6ba06c0,0x440564c0,0xc0b7b49c,0x2b440228,0x7cc0be92,0xba8c4408,0x87cc0c7,0xd2b6e144,0x440774c0,0xc0dcf44b,0xa8440114,0x14c0e656,0x3ead4401,0x114c0b7,0x4ae401f4,0xccc9c0b7,0x4f034124,0xe721c0d9,0x888c0df,0xd383c744,0x440888c0,0xc0c3c5da,0x17440990,0x90c0b78f,0xce254409,0x114c0dd,0xd282b844,0x440678c0,0xc0c5fd1a,0x9a440780,0x80c0bbe0,0x2b3cf507,0xd4c0ddce,0xdd4124cc,0xedc0ca32,0xaec0e6b9,0xf44124cc,0xb3c0d6a4,0xcac0d243,0x594124cc,0x98c0c56a,0xd3c0c5ec,0x624124cc,0xf0c0c707,0xd0c0bc16,0xb84124cc,0xa2c0ce77,0x26c086de,0x77412899,0x6c08adb,0x11486ba,0x2f693831,0x16750114,0x46c12553,0x1143d24,0x4f752153,0x10c8dbc0,0x656dca35,0x96370114,0x11479e8,0x1148615,0x2e7d5631,0x7710114,0x42c08cc2,0x1087fce,0x7e737175,0x670792c0,0xb1310108,0x108478b,0x7627a271,0x2f1e2ec0,0xd9710108,0x49c088d1,0x1087b9c,0x7acc5c75,0x650571c0,0x37350108,0x1084bfa,0x37c12f31,0x7e710108,0x68c081f1,0xe47b95,0xca2fb684,0x86a97ac0,0x310990c0,0xf064ee18,0x75027100,0x9e30c0c5,0xf400244b,0xc708051d,0x2fe9e2c0,0x24cc98c0,0xd4091841,0x9b7b53c0,0x2898a6bf,0x8adcd541,0x9ae810c0,0x24cce8bf,0x89d7ef41,0x84b641c0,0x4401083e,0x3d36ee74,0x1144021c,0x8be7752,0xb7284401,0x21cbf15,0x67a27b44,0x440990bf,0xbf995a8e,0x4d4410c8,0x83e8c15,0x39194401,0x11d0bf7f,0x1c1e4744,0x440210bf,0xbdf17614,0x91440108,0x403e870e,0x71474405,0x108bf6e,0x1415c244,0x440210bf,0xbe3fa377,0x1f40210,0x3e03ed0f,0x4124ccba,0xc081f17e,0xbf6e55e3,0x1f40888,0xbf9aa5df,0x4124ccb2,0xc0d68238,0xbf13b85f,0x440a98,0x8be39e3,0xb0f24401,0x1083e80,0xe484ad44,0x440a983f,0x3fe517f0,0xc8440108,0xa0405096,0xdbba530b,0xd8bc4042,0x8adf4412,0x1084030,0x1a923644,0x44010840,0x40061761,0x72530108,0xb53fe6a5,0xaa4412d8,0x8405182,0x31ba5301,0x7c174000,0xf8774408,0x1084018,0x38744f44,0x53010840,0x4050e1d2,0x5306481f,0x400463aa,0x440fc0b7,0x401afa98,0xc9440108,0x8403405,0x3ed14401,0x1084048,0x46a9044,0x44010840,0x3fe55a21,0xe8440108,0x8401b11,0x61d83101,0xf4002434,0xc7080705,0x50161ec0,0x24cc9840,0xd4091641,0x99215cc0,0x530a9840,0x409945fc,0x350210e5,0x8c84b64,0x6ddd3501,0x350108c1,0x8b8456f,0x491b3501,0x350108ad,0x8a30bb1,0xa95d4401,0x1084099,0xc8c15535,0xdd350108,0x108a018,0xac7c3b35,0x28350108,0x108bc3a,0xc870e935,0xd5530108,0xb040a231,0x4c310108,0x48ad7d,0x71567171,0xba02e4c0,0xd393000c,0x68c0744c,0xb640c41f,0x48310210,0xe4a235,0xca2fb884,0x995688c0,0x35010840,0x8ad88f4,0x30ec3101,0x770024ba,0xc0c70807,0x8c80b0f,0x8f91701,0x8f91501,0x25b24401,0xeb84114,0x10b6ee44,0x44021041,0x410c22b8,0x8d440210,0x104106a4,0x85d84402,0x2104101,0xf9a95d35,0xaa440108,0x10411460,0xc6e4402,0x2104100,0x63e1e44,0x44021041,0x410e1d14,0x75440210,0x10411438,0x18ea4402,0x1084101,0x6bea631,0x71710048,0x72c07156,0xc0d01,0x744cd384,0x120fb4c0,0x44010841,0x41011aa4,0x88350210,0x108f956,0x6c47a44,0x31021041,0x240d1876,0x8078400,0x588c0c7,0x2104114,0x2c909644,0x44031841,0x412ca2fe,0xcf70210,0x414425b6,0x4133658a,0xc1255315,0x4140b6f2,0x4133b1bd,0xc12aa9b0,0x83c22b8,0x8361701,0x8311501,0xd4ae4401,0x210412c,0x4460aa31,0xfd7700b4,0x6ec08cc1,0x108300c,0x1083617,0x1083e15,0x44387631,0xd4770108,0xeac088d1,0x1083118,0x483611,0x11010802,0x93000c3d,0xc0744cd3,0x41420fb6,0x3112d8b5,0xe4311aa4,0x2fb88400,0xab44c0ca,0x210412c,0x36c47a35,0x74310108,0x243d18,0xc7080575,0x44058ac0,0xfff30108,0xffffffff,0x9c2587ff,0xdfa841ce,0x12b2c0c1,0xee95be03,0xf4b41da,0xec46c092,0x52d3c017,0x93b841da,0xcc4dc0b1,0xa19bc092,0x128141c1,0x5fc4c0db,0x786d4007,0xf24541c3,0x75b0c102,0xabd7c017,0xc6c841c3,0xc830c10a,0xa089c092,0xcce41bd,0x6f4cc0e6,0xa5f3400b,0x7e9b41bb,0x5fb3c0ee,0x31014007,0x505b41b5,0x5f96c0ff,0xc31d4007,0x877341a9,0x6b7bc108,0x54af400b,0xac8a41ae,0x5f7cc106,0x24334007,0x38b041a7,0x5f4ec10c,0xd00f4007,0x70124197,0x32a5c111,0xb39d400b,0x3d18419f,0x5f1cc110,0xab254007,0x70734195,0xca86c113,0x94714005,0x4a79419f,0x5f7c4110,0x5c34007,0x4c9441a7,0x5f9a410c,0xe3ad4007,0xd18f41b8,0x6f5040f3,0x375f400b,0xc6bb41ae,0x5fbb4106,0x15194007,0x90ef41b5,0x5fc440ff,0x8bdf4007,0xca7941bb,0x5fcc40ee,0x899f4007,0x68f741c1,0x5fc840db,0x2a814007,0x93a141ce,0x6f4c409c,0xfd99400b,0xa29441c6,0x5fc440c5,0xd8974007,0xb40f41cb,0x5fb340ad,0xd114007,0xe00f41d0,0x5f964093,0x8f3d4007,0xdda541d3,0x5f814070,0x20e74007,0x1541d6,0xcc534037,0x714d4009,0x75c941d9,0x6d553ebb,0x903d400b,0xd16741d9,0x5ee13f7b,0xfc294007,0x80a141d9,0x5e033bed,0x93a14007,0xe00541d9,0x5f4abf77,0x4cdf4007,0xd71741d4,0x6f4cc058,0x5e2d400b,0xb97341d8,0x5f85bff5,0x5f454007,0x661f41d6,0x5f9ac036,0x9c574007,0xf31741d3,0x5fbbc06f,0x1d354007,0x707a41d0,0x5fc0c093,0xb2b34007,0x19ed41cb,0xcc6cc0ad,0xd8324009,0x1728414e,0xd2b9c12d,0x4232c098,0xfbe74134,0x8cbdc11f,0xf6d0bf2e,0x644ac24f,0xea1cc123,0x7504bfc1,0xe590c24d,0x4dbec120,0xb49abf63,0xb4ce4156,0xbb09c135,0x6d66c118,0x8a1c4153,0x66f3c132,0xfc29c0e9,0xf2df4154,0xe942c137,0xadac134,0x70d94151,0xf2f7c137,0x5bcec116,0x30a0414b,0xdb6cc136,0x1172c0e1,0xb1be414f,0x9e5ac130,0x4b46c0c5,0xe7d6414c,0x98b5c131,0x88aac0c4,0x82294145,0xea6cc133,0x202ac093,0xf2ea414a,0x4ecac12a,0x5bac075,0xef054146,0x9b11c137,0xbcbec0be,0xfe854144,0x1903c136,0x40f6c099,0x76424144,0x9b24c135,0xd4bac087,0xea4c413a,0x172fc137,0xc7c2bff5,0x3df0413d,0xe8c4c136,0xa376c004,0x36174132,0xa748c136,0xf38abf96,0x35de412c,0xc136,0x89c0bf84,0x362e4137,0x53b9c136,0x7776bfb4,0xe21b4134,0xbf72c137,0x6850bfb1,0x3b55413b,0x725c136,0x861abfdc,0xf4ddc24a,0x6b76c137,0xaebcbf91,0x3631c24d,0xf9cac136,0xa376bfb4,0x2e89c24e,0x584fc136,0x7650bfdc,0x3610c24c,0x1d2ec136,0xc39ebf97,0xeae6c24c,0x2e38c137,0x741bfaf,0x4268c24b,0x3737c136,0x38d4bf84,0x2d6bc24f,0xa238c136,0x4706c004,0x4fb6c24f,0xe792c12e,0x257ac004,0x4340c252,0x2d3cc12a,0x42d2c065,0xd4f6c250,0x9093c126,0x9147c005,0x23c2c24f,0xf651c12b,0x9a07c00b,0xdeeec24a,0x5382c122,0x7f3ebf5f,0xae34c24a,0x9d67c126,0x3ef6bf79,0x82f7c24c,0xac11c123,0x99a7bf80,0xc6a6c24c,0xe169c127,0x7620bf94,0x6467c24d,0x6ec1c124,0x1bc8bf98,0x5143c24f,0xe81dc125,0x23d2bfc5,0x115ac24e,0xd81bc128,0x6d6bfbc,0x7844c24f,0x62f6c129,0x97e2bfe6,0x518e4140,0x6291c123,0x4b76bfc0,0x1d16413e,0xf8c2c127,0xdc04bfe3,0xd4be413e,0x82cfc12a,0x43aec007,0x3560413b,0x4780c12a,0x4b8bfd2,0x4e36413e,0x1434c12e,0x63d6c005,0xc191413b,0xd239c125,0x179ebfbd,0xa6a64137,0x1294c121,0x8206bf7a,0x932e4137,0x60d9c124,0xed24bf9d,0xe7704133,0xe586c127,0xd2aabf97,0xa5e94132,0x4fa0c123,0x2d4abf84,0x1696412c,0x46fac121,0xa876bf44,0x1619412b,0xcf10c124,0x3242bf6a,0xc6c7412b,0xf4f5c126,0xf12bf79,0xcfa54141,0x7660c12f,0x305ac03a,0xb8b74141,0x50f4c128,0x6732c010,0x18c14144,0x33f4c128,0x339dc024,0xbcde41e3,0xa1aa4099,0xc6cdc127,0xce8841cd,0x1d00c101,0x7e33c0f1,0xd30241b5,0xaf124122,0xd25bc0f0,0x8cd841bd,0xb082411e,0x817ac127,0xafbec27d,0x967dc0bd,0x1eb5400b,0x72fcc281,0x967dc092,0xd38d400b,0xbc27c282,0x967dc03f,0x7628400b,0x28b7c274,0x967dc0ec,0xc95b400b,0xea79c283,0x9681bfa1,0x8c48400b,0x6d91c26c,0x967dc0fe,0xf3ca400b,0x8690c283,0x96813f07,0xb44e400b,0x29f1c282,0x96814049,0xef78400b,0x9c32c280,0x96814096,0x8b60400b,0x3ee0c27e,0x968140b5,0x31de400b,0xcf4ac27a,0x968140d2,0x76da400b,0x5945c270,0x968140f7,0x48b8400b,0xc819c26a,0x968140ff,0x35d400b,0xc8194195,0x967dc0ff,0x5fa3400b,0x594541a1,0x967dc0f7,0xd5ab400b,0xcf4a41b4,0x967dc0d2,0x88af400b,0x3ee041bd,0x967dc0b5,0x2fcf400b,0x9c3241c4,0x967dc096,0x4327400b,0x29f141cb,0x967dc049,0x4115400b,0x869041d0,0x9681bf07,0x8a7d400b,0x6d914199,0x968140fe,0x9759400b,0xea7941cf,0x96813fa1,0x5e3d400b,0x28b741a9,0x968140ec,0xc021400b,0xbc2741cb,0x9681403f,0xecc3400b,0x72fc41c4,0x96814092,0x74e3400b,0xafbe41bb,0x968140bd,0x4329400b,0x29d041cb,0x22c44049,0x2fcd3fb0,0x9c3f41c4,0x22c44096,0xf8993fb0,0x75754195,0x22bcc0ff,0x996d3fb0,0xefa841a2,0x22bcc0f5,0x81653fb0,0x162041ba,0x22c440c1,0xd1f93fb0,0x69b141af,0x22bcc0df,0xb4253fb0,0xe19541ae,0x22c440e1,0x74e13fb0,0xafc441bb,0x22bcc0bd,0x5fa33fb0,0x594341a1,0x22c440f7,0x35d3fb0,0xc8194195,0x22c440ff,0xecc93fb0,0x72da41c4,0x22bcc092,0xc01f3fb0,0xbc5a41cb,0x22bcc03f,0x97593fb0,0xea7941cf,0x22bcbfa1,0x41153fb0,0x869041d0,0x22bc3f07,0x1503fb0,0x22bcc0c1,0xb44f3fb0,0x29d0c282,0x71000c49,0xc280ef78,0xc969c3f,0xc3566200,0x7575c26a,0xc0710060,0xa8c27113,0x90f5ef,0x7d07bc71,0xc11620c2,0x6710024,0xb1c277b0,0x18df69,0x77211c71,0xe1e195c2,0x7a710018,0xc4c27d81,0x18bdaf,0x7076da71,0xf75943c2,0xb7710018,0xdac2811e,0x189272,0x82d38c71,0x3fbc5ac2,0x4003000c,0xc43f5302,0x343fb022,0xbf24f202,0x3fb022bc,0xc27a474a,0xc08b2ff3,0x3fb02036,0xc2756bcc,0xc0b3e7b2,0x3fb02225,0xc273e0f4,0xc0b932a2,0x3fb0223e,0xc27a5380,0x408a91fd,0x241f9f,0xb3e7b656,0x242d40,0x464015f1,0xfa3fb022,0xb3c1c8f8,0xa8c0c34d,0x1b3fb000,0xccc1cccf,0xecc0b99b,0x7a3fb013,0x66c1c49e,0x9cc666,0xf8e004f1,0x47bbc1b1,0x1fe240c5,0xc7093fb0,0x999ac1b6,0xf1009cb9,0x9077d904,0xc415a5c0,0xb0025cc0,0x7fd1e13f,0xb9999ac0,0x25f40030,0x41a8126d,0xc0b93b73,0x3fb0224f,0x41ab3055,0xc0b43ffd,0x3fb0221d,0x41b518ef,0xc08a91fd,0x3fb01f97,0xc0ea2ffd,0x40c4dee3,0x3fb02014,0xc0d7e8f1,0x1f40054,0x41b50081,0x408b2ff9,0x3fb02036,0x41a833d7,0x875300a8,0xb241ab49,0x7f200c0,0xc0dcc051,0x40aee873,0xbf9ab945,0xc0f12f64,0x40ba438b,0x3708bf01,0x4438d004,0xc1b59131,0xfff10024,0xb0a43129,0xba06ddc1,0x9abee840,0x860cddbf,0xab6b01c0,0xe38162c0,0x931f06bf,0xb941e1c0,0x7c7842c0,0x30be4abf,0x4e3d43c1,0x636b5c40,0x417cc8c1,0x4ad9bac1,0x3e675740,0x338d8fc1,0x4bd491c1,0x491b8c40,0x4201f5c1,0x4f8124c1,0x713d1840,0xde99a1c1,0x4ad046c1,0x3e001d40,0xe5e81cc1,0x4bbae9c1,0x48035940,0xde99a1c1,0x4f88f8c1,0x71929640,0xe77864c1,0x4e42afc1,0x63a6a640,0xef1b2ec1,0x40869c3f,0x8c6a11bf,0x4e32e8c1,0xa6304440,0x8c6410bf,0x84d0b1c1,0xbe3b2540,0x8c67b5be,0x7a1340c1,0x670af640,0x8c67d33f,0xdfa7b1c1,0xb00bd3f,0x8c67c83f,0x28f9a0c1,0x9f2a7c40,0x8c67a23f,0x2c872ac1,0x40856ec2,0x8c64d0bf,0x5d7c04c1,0xf0d7edc2,0x8c1bdfc0,0x27ccfec1,0xa5c23bc2,0x8c65a5bf,0x5d7b34c1,0xf0f2b2c2,0x8c109340,0x2d2b37c1,0xbe3b47c2,0x8c67bb3e,0x297488c1,0xa62dbec2,0x8c614f3f,0x23f302c1,0x2cccffc2,0x8c673abf,0x2391bdc1,0x1e59d1c2,0x8c67dd3f,0x5d7bc4c1,0xed8748c2,0x48ab7540,0xba71000c,0xd1413619,0xc18a9,0x8c5f8371,0x635aea40,0x1771000c,0x6a40e438,0xc62a1,0xa15e10f1,0xc8f0c0f9,0x7824c148,0xefe3c25d,0x6424c123,0x7608c17f,0xaf68c25d,0x5de4c10f,0x62002488,0xc0f47a10,0x3c0f20,0x360eac62,0x54a682c1,0xfa4c7100,0xc632c08b,0xf1002447,0x62f13904,0x3d32b3c0,0x5d769cc1,0x35c3b8c2,0x5e8540c1,0xe2710018,0xd4c1054b,0xc58ec,0xd5b58071,0x511d81c0,0x4244000c,0xc410525,0xf26d7100,0xf0bd408c,0x62001848,0x40d5f9ab,0x24e02d,0x6566e071,0x6e930040,0x2710018,0xae413708,0xc5a29,0x670bf671,0x3d7f0f40,0x6b62000c,0xa0c08cf2,0x7100cceb,0x4100edbe,0x185f7a82,0x24855300,0xc84c0de,0xc9f07100,0xab984126,0xf100187c,0x1bffffff,0xc0670be5,0xc16e5d52,0xc2581510,0x4137a1ad,0xc1561c38,0xc25d7c72,0x410d7e44,0xc188dd30,0x419a72e1,0x41152fc8,0xc18690f3,0x419d6123,0x412c9575,0xc1720bb0,0x41be26e9,0xc10bb0d0,0xc1800969,0x41bbab7b,0x410eb0f7,0xc17ff086,0x41bcc63b,0x40e9b177,0xc1887683,0x41c0aed7,0xc0dce5e4,0xc1889e81,0x41cc6a43,0xc0e13244,0xc18262ae,0x41c7a479,0x40fc70aa,0xc17feef4,0x41e9d579,0xbfe60a85,0xc16f5000,0x41e52af5,0x3e1de97d,0xc18033d9,0x41dd0979,0x40dcf10f,0xc1566986,0x41b9bfd1,0xc127574a,0xc15667fe,0x41ec0811,0xc04705f7,0xc15669ae,0x41c18103,0x411ff5da,0xc156a99c,0x41d1a049,0x410066e0,0xc167d534,0x41db0a9f,0x402168a1,0xc18708c5,0x41c7908b,0xc1111ba9,0xc168040c,0x41efb739,0x3f0a543f,0xc156a9a6,0x41ad4d25,0x411227e6,0xc1843455,0x41e949f1,0x3fffe005,0xc170363c,0x41d1e6e1,0xc05c87d3,0xc18a36ed,0x41a4d379,0x40ff603b,0xc18ae65d,0x41d3d11b,0xc1036b77,0xc156693e,0x41e0369f,0x4063af96,0xc17ffeca,0x41a7ae63,0xc0f1dab6,0xc18bc48f,0x4199f665,0xc10b57cf,0xc1893364,0x41d6d913,0xc0dfa081,0xc16f6918,0x41ac8477,0x412863ae,0xc16ee9ba,0x41daf6cf,0xc09ee738,0xc180191e,0x419e8eb1,0xc123617f,0xc17f4ac2,0x41a2507f,0x41364aec,0xc1567a45,0x41d0daeb,0x40a852e5,0xc186fed0,0x41dea7fb,0xc013f9e4,0xc1848200,0x41e95635,0x40862134,0xc156e589,0x419f8d0d,0xc1313467,0xc166f17c,0x41af790d,0xc1102be6,0xc1846854,0x41ded7c1,0x40b255eb,0xc16f410c,0x41e2fe93,0xc0ba9e7e,0xc156e71a,0x41d5a2a1,0x3eb060fe,0xc18b083c,0x41d1e5c3,0x40d3ddd9,0xc17ff55c,0x41e5fda5,0xc069b820,0xc16f612f,0x419e52c1,0xc13652ac,0xc1566aab,0x41b2756b,0xc123b81d,0xc16f7f0e,0xc258154c,0xc137da9d,0xc155ee1a,0xc258155e,0xc134620a,0xc1030ce8,0xc2839ebb,0xc0c6ebff,0xc1030ce8,0xc283d719,0xc0f38fdc,0xc1030cdd,0xc279f39a,0xc11131b7,0xc1030ce8,0xc27e1aaa,0xc119e320,0xc1030cd4,0xc2876500,0xc0a15ac9,0xc1030cd6,0xc26f8732,0xc131a229,0xc1030c54,0xc286f333,0xc031fd50,0xc1030ce8,0xc289a0ef,0xbfb58bf0,0xc1030cc1,0xc26c5aa2,0xc12295f6,0xc1030ce8,0xc287961d,0xbf400000,0xc1030ce7,0xc287acd9,0x3f43dfc2,0xc1030ce8,0xc2892fa2,0x4025e970,0xc1030cc9,0xc285a198,0x3f4114b1,0xc1030ce8,0xc2859496,0xbf400000,0xc1030ce7,0xc2866c2f,0x40614f94,0xc1030ce8,0xc254155e,0xc128cbfd,0xc1030ce7,0xc257f264,0xc1273153,0xc1030ce8,0xc254155e,0xc11ccbfd,0xc1030ce7,0xc286f2c5,0x40ad22c0,0xc1030ce4,0xc283de66,0x3cbfaca8,0x6e10f100,0x21c257ae,0xe8c119dd,0x93c1030c,0x7ec28360,0xc140fd0a,0x16c1030c,0x25c26d13,0x181224,0x63c804f1,0xe636c27a,0xce8c0fa,0x9802c103,0x63a2c281,0x71000cb9,0xc2848f43,0xc5341d5,0xea10f100,0x57c27e78,0xe8410527,0xb6c1030c,0x87c27922,0xc44124e5,0x22c1030c,0xbec270ae,0x181fb9,0x8401bd71,0x7d0e17c2,0x34710078,0x49c27d0e,0xced72,0x6e1cc071,0x1149ebc2,0x4f10024,0xc26b5692,0x4133bf24,0xc1030d82,0xc257f1f8,0x182663fc,0xe40200,0xe7411c33,0x343300b4,0x1816ee,0x2501bc01,0x24e641,0x242811,0x155e08f3,0xcbfec254,0xd9b4411c,0x66b3c12f,0xde924197,0xd9b24128,0x1100182f,0x35001828,0x2457aef6,0xcd04f100,0x5f41cb8f,0xb440fec3,0x73c12fd9,0xeb41aeea,0x2420a4,0xdd98ff71,0xa34ba141,0x31710018,0x3841e641,0xc0c4c,0x155e06f3,0xcbfcc254,0xd9b4c11c,0xf09fc12f,0xe12d4197,0x60b3c128,0xcbfc3100,0x35001828,0x2457aef6,0xcb10f100,0x6941e792,0xb4bfb48e,0xafc12fd9,0x9b41daf6,0xb4c0b91f,0x19c12fd9,0xa41c65a,0x3006d9,0xb124f771,0x1f0ca541,0x28f1000c,0xc258155e,0x4128cbfe,0xc1566910,0x41e81651,0xbf99a605,0xc1566910,0x41dd98ff,0xc0a34b9f,0xc1566910,0x41a321f3,0x41269789,0xc15669fb,0x41c0168b,0x30106685,0x8fcd7100,0xc35d41cb,0xf10024fe,0xd587e710,0xd3961e41,0x56691040,0xaa3917c1,0x24487841,0x566a76c1,0xe3c157c1,0x5bdc7741,0x9f20018,0xc258155e,0xc128cbfc,0xc1566910,0xc257aef6,0x4123ff30,0xc0e619ce,0x1318000c,0xc116000c,0x23110018,0x10f1000c,0xc285a8db,0x3f437250,0xc0e619d0,0xc2847ff5,0x404eeba2,0xc0e619d0,0xc2819ba6,0xcbbbf92,0x8804f100,0xec2776d,0xd041041c,0x60c0e619,0x6cc26bb9,0xc12be,0x87a4b071,0x41372ac2,0x1371003c,0xec2857b,0x309aa1,0x7f5b7471,0x2821dc2,0x8710024,0xf8c2709e,0xc2043,0xc1030c03,0xe619d0bf,0x87acd9c0,0x43dfb1c2,0x4f1000c,0xc28607e4,0xc0827bb9,0xc0e619d0,0xc28455bb,0xc603dc0,0x37a87100,0x3620c283,0x71000ccc,0xc281446d,0xcc0c8bd,0xa404f100,0x42c27cab,0xd0c10ac0,0x92c0e619,0x60c2798b,0x18fdf8,0x1028803,0x8c710018,0xcac26e6e,0xc214b,0x6e3036f3,0xc04dc289,0xa64f4027,0xd7c1c118,0xc98cc285,0xa65a40d2,0x2ab2c118,0xc472c26e,0xa675c133,0xa3dac118,0x86b9c27a,0xa66ac123,0xe652c118,0x6a3bc27d,0xa617411d,0x14fcc118,0x16c8c284,0x303fc0f7,0x750ef100,0x764133c4,0x38c118a6,0x44c2886f,0x6dc083fb,0x96c118a6,0x9bc289d9,0x77bf86ab,0x6f10774,0xfa4cc251,0x162ac08b,0x7bc4c164,0xf135c251,0xa9aec062,0x62000c6e,0x4064b1d5,0xc77b0,0x8c999e71,0x63aa9a40,0x4e420018,0xa4408bfa,0xc2519107,0x4062f13d,0x183d32b3,0xbed4200,0x744c067,0x6dc25162,0x80c08cf2,0xc2516207,0xc0d5f9a9,0x51620780,0xed8746c2,0x62084cc0,0x2540c251,0x7b0c105,0xbdc25162,0x68c100ed,0xc2516207,0xc0e43813,0x5162084c,0xde2489c2,0x64077440,0xb583c251,0x3040d5,0xf47a1442,0x62084040,0x4be4c251,0x8104105,0xc2510ef1,0x40f9a160,0xc148c8f0,0xc223f300,0x3f2ccc57,0xc160cf76,0xc2287f70,0xcaa3b04,0x7610f100,0x12c22d29,0x763ee74a,0xbcc160cf,0x37c22be4,0x76bf7a71,0x1ac160cf,0xd6c226cc,0xc9c54,0x67ab04f1,0x49aec223,0xcf76bee7,0x3befc160,0xcc363fec,0x6200182c,0x3fdad142,0x3c49cf,0x3ee4ef71,0xaa3afb40,0xa9530018,0xf14084c2,0x96710030,0xde4023af,0x6c9c54,0x7539a871,0x7a715840,0xfff2000c,0xdf3df214,0x2d2d14c1,0x70c6b841,0xe5ee8cc1,0x3222c9c1,0x662ce641,0xe7cebac1,0x3759fcc1,0x5672ee41,0xe7c394c1,0x288536c1,0x565f2f41,0xe347fec1,0x28c980c1,0x409d3341,0x422844c1,0x2cf556c1,0x7115a441,0x42cb8cc1,0x28cd26c1,0x3d9c7641,0x33d0c3c1,0x31fb9bc1,0x65e4b641,0x349687c1,0x28a4eac1,0x47287d41,0x300d10c1,0x375eedc1,0x56789b41,0x30237cc1,0x28523cc1,0x56674541,0xe36e1cc1,0x133338c1,0x45b90241,0xde6a86c1,0x133334c1,0x4c773e41,0xe12910c1,0x13333bc1,0x42084341,0xde9dc8c1,0x133339c1,0x3f79ec41,0xdd0eb7c1,0x133334c1,0x4a617a41,0xe5e90ec1,0x133336c1,0x4c921d41,0xdf7568c1,0x133334c1,0x4f2edb41,0xdc9ae6c1,0x133334c1,0x3e566141,0xdb79b0c1,0x133334c1,0x4911f141,0xe6ec54c1,0x133337c1,0x51caaa41,0xe01d2cc1,0x133334c1,0x5258ea41,0xd9c709c1,0x133334c1,0x489f7f41,0xe76048c1,0x133333c1,0x578bcc41,0x245665c1,0xbe377500,0x1462c155,0xb50048d8,0xc1e6ee44,0x41133336,0x486001f6,0x23847100,0x7f5bc159,0xf50024d6,0x4a617a00,0xe52ff0c1,0x133335c1,0x67caee41,0x9335009c,0xe45c4d,0x52f00f5,0x6ebcc15f,0x3339c1e3,0x28b64113,0xf500d86c,0x611af40c,0xe12a31c1,0x133341c1,0x6fd98041,0xde9e78c1,0x13333bc1,0x72684c41,0x7e7100cc,0x4cc1626a,0x6cc914,0x463dbc71,0xc893d6c1,0x2b71000c,0x8cc1455f,0xcd523,0x4c773e62,0x245beec1,0x96106200,0x1c8ec147,0x75710024,0xaac14500,0x24d418,0x21012c01,0xcd370,0x5258ea62,0xc37adc1,0xbe377100,0xce23c155,0x350018da,0x207416fb,0xdcf03501,0x3500e462,0x14611af4,0x6a7e6201,0x591dc162,0x4435006c,0x546a69,0x59238435,0x9335006c,0x9c5c4d,0x5f052f62,0x3029c2c1,0x57d06200,0xba7ac16b,0xbc62009c,0x4cc16c58,0x71000c0e,0xc16ce802,0x846eff83,0xfad47100,0x6f82c144,0x71000c49,0xc13dd0e4,0xc6df478,0x5f2b6200,0xb46c145,0xd171000c,0xeac1461e,0x186c69,0x47799471,0x54d50cc1,0x3e71000c,0xcfc14c77,0xc56ea,0x4f2edb71,0x521d6ec1,0x7a71000c,0x60c14a61,0xc4ef3,0x4911f171,0x583a58c1,0xea62000c,0xcac15258,0x71000cac,0xc155be37,0x184b8e12,0x21c0100,0x606412,0x6a4cc871,0x4828c4c1,0xf1710018,0x57c14911,0xc45e6,0x3e566171,0x41ca7ec1,0x3c3501f8,0x543f84,0x59238471,0x44feb6c1,0x7a710024,0x9ac14a61,0x1f83ccd,0x4209ca35,0x9371009c,0x18c15c4d,0x244247,0x4c773e35,0xf500c0,0xc15f052f,0xc1384fc8,0x4113333d,0xc045a2d0,0x1af47100,0x3155c161,0x71003040,0xc14f2edb,0x5434ac71,0x28b07100,0xe1ccc14a,0x6200183e,0xc15258ea,0xc6f5a,0x55be3771,0x313f95c1,0x26202b8,0xa0c151e1,0xf200ccc8,0x6b57d003,0x49b23cc1,0x133333c1,0x741a2241,0x508846c1,0x41046201,0xe30fc16c,0x60350180,0x1086ce2,0x62dcf035,0x7e710138,0x9c1626a,0x3c305b,0x5a56bf35,0x84350078,0x1205923,0x6a7e00f5,0x87cfc162,0x332bc144,0x3f164113,0x7100b473,0xc15c4d93,0x2c3141c6,0x49a3501,0xf1012060,0x611af404,0x3f2979c1,0x133330c1,0x71307241,0x333b41c1,0x4a350300,0x1206537,0xfffffff1,0xd6ffffff,0xc15f052f,0xc13a6dda,0x41133337,0xc16e1ff8,0xc1365cbc,0x4113333f,0xc16a1572,0xc1e4e753,0x41365583,0xc14942d2,0xc1e61c92,0x4136652e,0xc14d6df4,0xc1db27ad,0x412db225,0xc1740182,0xc1d9eaee,0x412df987,0xc1741afe,0xc1deae4f,0x412e8c1c,0xc17252d2,0xc1dc65ae,0x41360c81,0xc13e3ff1,0xc1d9d2ae,0x41364c34,0xc13dc301,0xc1e1054e,0x412fa97c,0xc16ff6ca,0xc1e31cb2,0x4131028c,0xc16cb620,0xc1e4e79a,0x413235be,0xc16898d4,0xc1e70604,0x41352a81,0xc15f14b4,0xc1e757c7,0x4136b10b,0xc159d806,0xc1e75c35,0x4136b26b,0xc1580f6f,0xc1e6f89e,0x413664dc,0xc1524990,0xc1de9795,0x412f357c,0xc172341a,0xc1e0e39a,0x41304c8a,0xc16fdf20,0xc1de631c,0x412fc3b9,0xc171c822,0xc1e0b32e,0x4130db55,0xc16f69ae,0xc1e6e200,0x4135ca5b,0xc15f33f8,0xc1e71028,0x41377178,0xc15a0382,0xc1e6958e,0x41365fe1,0xc15f01d2,0xc1e6b466,0x4137bd94,0xc15a1b04,0xc1dae290,0x412e65d3,0xc173e7ec,0xc1e61224,0x41346110,0xc1641bca,0xc1e5885b,0x4134cd0d,0xc164af3e,0xc1e59206,0x4133521a,0xc166652e,0xc1e55ea1,0x4133f8fd,0xc1665c5a,0xc1e46b06,0x4133b6e0,0xc16825c6,0xc1e4ca85,0x4132dfd2,0xc168a6e0,0xc1e3002e,0x41317f2f,0xc16cad56,0xc1e2d432,0x4131fd6b,0xc16c7328,0xc14babe8,0x412e2061,0xc1741a62,0xc1316769,0x4134b59d,0xc160789e,0xc1305f73,0x41365eed,0xc159db10,0xc130cca2,0x41360c74,0xc15d1fd4,0xc13190fd,0x41352500,0xc1609d54,0xc130af27,0x413725b7,0xc159f635,0xc1313cae,0x413698c4,0xc15d4294,0xc131f471,0x4135bd5b,0xc16086f4,0xc1467c8a,0x412e3076,0xc173a528,0xc141f9c4,0x412ecc05,0xc1725ff6,0xc131fec8,0x4136f4c7,0xc15d3e38,0xc1315963,0x4137a69e,0xc15a0d91,0xc131f724,0x4137c2cb,0xc15a0fb6,0xc13da333,0x412f7dd6,0xc17050aa,0xc142304b,0x412f5904,0xc1722a48,0xc14265f5,0x412fbeac,0xc171d006,0xc139c17f,0x4130af4b,0xc16d827e,0xc13de71e,0x413023b9,0xc1703958,0xc13686d0,0x4131ef53,0xc16a2d52,0xc13a0df1,0x41315ce0,0xc16d69a8,0xc13a8e87,0x4131df12,0xc16d0766,0xc1365c5d,0x41329d76,0xc169b09c,0xc136b995,0x4132f26c,0xc169a9ca,0xc1338264,0x413332f3,0xc165a770,0xc133b7df,0x4133dd23,0xc165b14c,0xc133e94d,0x41347a2d,0xc1652c7c,0xc1345d74,0x4134aafc,0xc1652a32,0xc1335493,0x4134558e,0xc164a6b8,0xc1815573,0x41366b69,0xc15f46c8,0xc180ab17,0x4136c3ae,0xc15df9e2,0xc187c824,0x4137e761,0xc159711f,0xc1802adb,0x41372cc0,0xc15c6367,0xc132a681,0x41362b46,0xc160341e,0xc17fb580,0x41379f81,0xc15a9e13,0xc183e88d,0x4135f6c2,0xc160f052,0xc182ff2d,0x41360171,0xc160ca08,0xc184d026,0x413609f2,0xc160ab98,0xc1821fad,0x41362942,0xc1603a2e,0xc185aa64,0x41363991,0xc15ffee6,0xc1866c49,0x41368245,0xc15ef186,0xc1870b96,0x4136dfc0,0xc15d8e88,0xc1877e96,0x41374cd0,0xc15be60d,0xc17f8bcc,0x4137ffd1,0xc15885e0,0xc13063a1,0x4136b246,0xc1581110,0xc130b0d9,0x4137623e,0xc15812a2,0xc1317bd8,0x4137f4a4,0xc15809bb,0xc13d3172,0x41376820,0xc1428906,0xc1414bde,0x4136af0e,0xc13fd783,0xc13cee8c,0x4136be8c,0xc1421ca8,0xc145b37e,0x41360cf7,0xc13e5e45,0xc14178bc,0x4137593b,0xc1404dfe,0xc1310bf6,0x41366a58,0xc152d521,0xc132b19d,0x41365c05,0xc14de48d,0xc1312b45,0x4137065c,0xc152d5b1,0xc131abc9,0x4137ac61,0xc152f227,0xc145c7fa,0x41367255,0xc13e6647,0xc13512be,0x41364c10,0xc1499e2c,0xc132d180,0x4136f71a,0xc14de35c,0xc145d3ca,0x41370293,0xc13ea631,0xc148744c,0x413609e3,0xc13deb9d,0xc1334774,0x41379ec2,0xc14e19ac,0xc145f08c,0x41378838,0xc13f4c4b,0xc14b782e,0x41364c72,0xc13dc1c5,0xc13537a9,0x4136e6eb,0xc1499918,0xc148777c,0x41369b5c,0xc13e0242,0xc14b88e8,0x4137069b,0xc13e129e,0xc148df68,0x41375389,0xc13e7ee9,0xc138b44b,0x4136d28a,0xc1457685,0xc1390c6f,0x41377b85,0xc145d3b1,0xc1397878,0x4137c593,0xc1464ad2,0xc1d9c4f1,0x4136ffff,0xc13e0cef,0xc1d99cbc,0x413794b9,0xc13ed0a2,0xc1e51cd6,0x413746c7,0xc14a7fe6,0xc1e49b5c,0x4137ccd1,0xc14a3810,0xc1e548da,0x41366534,0xc14a68bb,0xc1e66ab0,0x41367551,0xc14ed9ba,0xc1dc65a7,0x4136a428,0xc13e597c,0xc1e63d17,0x4137561a,0xc14ee205,0xc1dc5786,0x41374e97,0xc13ed45f,0xc1e6ee06,0x41370306,0xc1526d89,0xc1dee51a,0x4136aeff,0xc13fd7e1,0xc1e6ade4,0x4137a9fc,0xc1528672,0xc1decadf,0x41375913,0xc1404b26,0xc1e12eef,0x4136bf4a,0xc1423a76,0xc1e72caa,0x4137061b,0xc154facd,0xc1e735b0,0x41376223,0xc1581365,0xc1e10952,0x413768c6,0xc142a184,0xc1e6eb9e,0x4137ad6b,0xc1550738,0xc1e6d06e,0x4137f471,0xc15814b1,0xc1e35158,0x4136a049,0xc14599af,0xc1e3381a,0x4137306a,0xc145c5e8,0xc1e30c71,0x413797c0,0xc1461a80,0xc187b70e,0x413801e3,0xc1576fde,0xc1873994,0x4137fd6b,0xc154c800,0xc1864a7c,0x4137fa42,0xc152b83d,0xc1857c1b,0x4137f84b,0xc151b557,0xc18494fb,0x4137f6fd,0xc1511b43,0xc1800274,0x4137fedc,0xc15641f1,0xc1806ef3,0x4137fd16,0xc1548db0,0xc1810beb,0x4137faeb,0xc1531901,0xc181d07c,0x4137f8d6,0xc151f903,0xc182b17f,0x4137f74b,0xc1513e10,0xc183a233,0x4137f6a1,0xc150f2bd,0xc187c709,0x41233334,0xc158f16a,0xc187a425,0x41233334,0xc15b037a,0xc1873dd8,0x41233334,0xc15cf16a,0xc1869b1d,0x41233334,0xc15e9992,0xc185c709,0x41233334,0xc15fdf08,0xc185c709,0x41133334,0xc15fdf08,0xc184d011,0x41133334,0xc160aba2,0xc183c709,0x41133334,0xc160f16a,0xc182be01,0x41133334,0xc160aba2,0xc181c709,0x41133334,0xc15fdf08,0xbc80f2f5,0x99926207,0x503ac15e,0x6a71000c,0xdac15cf1,0xc7fd3,0x5b037a62,0xc8e12c1,0xf16a3500,0x37001858,0x3056df5b,0xc1544200,0x3cf2f5,0x53494335,0xcc350060,0x785203,0x51373371,0x83c709c1,0x6a350054,0xa850f1,0x11001802,0x3300d885,0xc5203cc,0x3c0200,0x869b1d31,0x43370018,0x1085349,0x1205415,0x56df5b71,0x87c709c1,0x6a620024,0x1c160f1,0x20030be,0x891100fc,0x8710018,0x11c15fdf,0xc88d0,0x60aba271,0x8ba425c1,0x7a62000c,0xd8c15b03,0x2000c3d,0x8a11015c,0x92640018,0x9c15e99,0x150018c7,0x35003058,0x2456df5b,0x900200,0x15002404,0x35006c54,0x6c5203cc,0xd80200,0x15009c04,0x2009c50,0x8b640018,0xfccccfc1,0x44006040,0x40fccccf,0x18020090,0x6c5c1100,0xcccf4200,0x9040fc,0x308911,0x4200cc04,0x40fccccf,0x871100e4,0xfc040018,0x180600,0x188511,0x201e002,0x92710168,0xf5c15e99,0x1884f2,0x201ec02,0x6a620018,0x3ac15cf1,0x62001850,0xc15cf16a,0x1a4e9ed,0x5b037a31,0x9c04000c,0x1bc0600,0x1c85811,0x1100a802,0x4005458,0x540601f8,0x3c541100,0x3334a200,0xdf5b4113,0xe9edc156,0x34020030,0x6c0402,0x3c5411,0xfccccf42,0x2023440,0x340200b4,0xcc0202,0x4012c02,0x501100e4,0x1806015c,0x1140200,0x5203cc35,0x9804012c,0x9c0201,0x1bc5411,0xb1007804,0xc1c95bee,0x40fcccd1,0xc6a4cc8,0xcccfb10c,0x57d040fc,0xc9efc16b,0x620018c8,0xc16c4104,0xc1c8a,0x6ce26071,0x6eff8cc1,0x2710018,0x30c16ce8,0xc6da7,0x6c58bc31,0xcfa20cfc,0x2b40fccc,0x6fc1455f,0x62004808,0xc1461ed1,0x180e50,0x44fad431,0xcf710c9c,0x9440fccc,0xc244779,0xfcccd171,0x6a694440,0x78040b04,0xe3083100,0x31018c6e,0xe8450075,0xcccfa20b,0x961040fc,0xf38cc147,0xbc71000c,0x78c1463d,0x246df4,0x455f2b31,0xce710ce4,0x84412ccc,0xd385923,0xccce00f5,0xbe37412c,0x18aac155,0xcccec1d4,0x710cf02c,0x412cccce,0x385f052f,0xccce350d,0x320d382c,0x402cccce,0xd9c7210b,0xf0310030,0xde062dc,0x31001804,0x18dd0eb7,0x1af47100,0x6a86c161,0x71000cde,0xc15f052f,0xcdf7568,0x4d933100,0x40e7c5c,0x65220084,0x35000c56,0x1855be37,0x58ea3500,0x35003052,0x484f2edb,0x773e3500,0x3500604c,0x784a617a,0x11f13500,0x31009049,0xe0489f7f,0x18040d,0x3500c004,0xd84a617a,0x773e3500,0x400f04c,0x78040e4c,0x1d6e3100,0x3100a852,0xcc4a617a,0x30040c,0x4ef36031,0xf1310018,0xcfc4911,0x31003c04,0x18583a58,0x58ea3100,0x40c6c52,0xc4310084,0x184828,0x4911f171,0x44feb6c1,0x7a31000c,0xc0c4a61,0x4005404,0x93350048,0x6c5c4d,0x5f052f35,0xf4310084,0xd8c611a,0x31012c04,0x48403155,0x2edb3100,0x40cb44f,0xca2200b4,0x350024ac,0x1855be37,0x23846200,0x6f5ac159,0x37310024,0xcfc55be,0x3101a404,0x484b8e12,0xdcf03500,0x3500a862,0xa8626a7e,0xda40400,0x4021004,0x2cf100b4,0xc15f052f,0xc17808a4,0xc0b14cd9,0xc085b9f7,0xc16affc3,0xc0d5ff91,0xc085b9e0,0xc20eb712,0xc0b144d6,0xc0859c73,0xc1894ceb,0xc0aa4342,0xc085b8d6,0xc12ff478,0x24d21cde,0x9d9a6200,0xd022c134,0x28f10030,0xc12af080,0xc0c96d1c,0xc085b9e2,0x41d784db,0xbf05f7f9,0xc085b9e0,0x41d673f5,0xbfc67853,0xc085ba3d,0x41d3d4f7,0xbff6f588,0xc085b9dc,0xc28672e9,0x24c758fb,0xe304f100,0xc9c285f5,0xd2bfe821,0xac085b9,0xa3c12880,0x60beae,0x38f713f2,0x70434190,0xb9de4112,0x200ac085,0x7c78413d,0x98ee40fb,0xe04dc085,0x4cdbc127,0xba06c0b1,0xb856003c,0xd23fe821,0x3f170054,0x2df10078,0x85ba3d3f,0xd3cb91c0,0xf7f44d41,0x85b9da3f,0x510f0cc0,0xf84945c2,0x8598f0c0,0x539574c0,0xe8bc06c2,0x85b969c0,0x67e384c0,0x127043c2,0x85b9e0c1,0xa52cc5c0,0xc509541,0x12f60078,0x41b85ff7,0x40f4e951,0xc085b9de,0x41c7fe89,0x40b98293,0xc085b9f1,0x41c46cc7,0x40cd5a23,0x1003ce7,0x1f40030,0xc103da55,0xbee69f27,0xc0859c15,0xc18712e2,0x1cf10054,0xc1872f3c,0xc10ea56d,0xc085a92e,0xc18729f6,0xc0fd87af,0xc085b0e6,0xc107af7a,0x3dbf9b56,0xc0859f02,0xc26bf98c,0x84118609,0x8104f100,0xcc0fb08,0xefbf021e,0x7ac0859a,0xbbc273f1,0x180a45,0x7b4fa671,0xf84339c2,0x20710120,0x9ac28239,0xcb741,0x84687971,0x800304c2,0x9396000c,0x87c0f1f2,0x76bea116,0x9c01003c,0x4fa67100,0x433bc27b,0x7100ccf8,0xc2823920,0xcb7419c,0x7907f500,0x6c28468,0xe0408003,0xf8c085b9,0xac2510f,0x7140b478,0x100909c,0x4ff5003c,0xc0e245e7,0x40c4105c,0xc085b97e,0xc10562ea,0x3ec0c1b9,0xc0859aef,0xc0fec58b,0x3f0656bd,0xc0859c7a,0xc0ce1f43,0x40b46ec4,0xc0859f49,0xc2516172,0x40fd8f9f,0xc085b96d,0xc0f316b9,0x3eba2ea1,0xc0859685,0xc1f664cc,0xc0f7a69a,0xc085b869,0xc1fa73c7,0xc0d3a9a0,0x1ec9c9b,0xe0c107f3,0x20c085b9,0xdac1f90e,0xefc0bb37,0x6bc0859d,0xd440da47,0x30350288,0x150b87b,0xbca34ea2,0xfd8acac1,0x18ca3cc0,0x99ca3100,0xf500fcfd,0xc8166930,0xb8b22341,0x85ba7cc0,0xc46d05c0,0xcd64c941,0x85b9c3c0,0xb63a81c0,0xfae9a541,0x85bc32c0,0x9ad5fbc0,0x11103941,0x85bb73c1,0xa89393c0,0xa487d41,0x85b96dc1,0x7768e7c0,0x7253027c,0x1ac174f8,0x783502d0,0x2f46ff4,0xfffffff1,0xed7ca07,0xe9cf74c2,0x739a8dc0,0xf7ea7c0,0xf2386bc2,0x82c305c0,0xeaffac0,0xeb81e9c2,0x7cca8ac0,0xe66d1c0,0xeefe4cc2,0x82e475c0,0xd83e0c0,0xe761e5c2,0x82e3b2c0,0xdf68cc0,0xe54478c2,0x7ccbefc0,0xe8568c0,0xf68985c2,0x854522c0,0xf93c3c0,0xee2c8ac2,0x7c600bc0,0xc71d4c0,0xe62e0cc2,0x859d49c0,0xd327ec0,0xdf6fb9c2,0x82c9efc0,0xe32dac0,0xe4521ac2,0x739b0fc0,0xfa1f4c0,0xec3552c2,0x732ad0c0,0xdb2edc0,0xdeb316c2,0x7c9360c0,0xdf52dc0,0xde7052c2,0x732f2bc0,0x503850c0,0xf252bbc2,0x82caa9c0,0x5020b0c0,0xee4f6ac2,0x7c93fbc0,0x501820c0,0xec3f83c2,0x733301c0,0x5183dac0,0xe52a99c2,0x739a95c0,0x51ba2ac0,0xe6691fc2,0x7cca9bc0,0x531b1cc0,0xe7bdb2c2,0x854522c0,0x5229b6c0,0xe8b26ac2,0x82e477c0,0x529132c0,0xdfef6bc2,0x82c20fc0,0x513628c0,0xefc9ebc2,0x82e3b4c0,0x50f27cc0,0xec348bc2,0x7ccbf7c0,0x520f7cc0,0xdf4adac2,0x7c600fc0,0x50d42ec0,0xea5222c2,0x739b02c0,0x51d096c0,0xded949c2,0x732ad8c0,0x52948cc0,0xca29f6c2,0x82c9ebc0,0x52141cc0,0xcae673c2,0x7c9364c0,0x51d1dcc0,0xcb2950c2,0x732f12c0,0x50ef3ec0,0xbfca1fc2,0x739a91c0,0x504862c0,0xb7612ac2,0x82c307c0,0x511710c0,0xbe17afc2,0x7cca8ac0,0x516038c0,0xba9b4cc2,0x82e473c0,0x52432ac0,0xc237b7c2,0x82e3b9c0,0x51d07ec0,0xc4552ac2,0x7ccbe6c0,0x5141a4c0,0xb31019c2,0x854522c0,0x503344c0,0xbb6d09c2,0x7c6013c0,0x532e38c0,0xc4386bc2,0x853a75c0,0x519430c0,0xc54791c2,0x739ae5c0,0x502516c0,0xbd6443c2,0x732ad8c0,0xf8ebac0,0xb746dac2,0x82caacc0,0xfa65ac0,0xbb4a2cc2,0x7c93ffc0,0xfaeeac0,0xbd5a12c2,0x73330dc0,0xe4330c0,0xc46ef6c2,0x739a8dc0,0xe0ce2c0,0xc33070c2,0x7cca8ac0,0xcabeec0,0xc1dbe4c2,0x854522c0,0xd9d54c0,0xc0e736c2,0x82e475c0,0xd35d7c0,0xc9aa24c2,0x82c20bc0,0xe90e2c0,0xb9cfabc2,0x82e3b2c0,0xed48fc0,0xbd6504c2,0x7ccbf3c0,0xdb78dc0,0xca4ec2c2,0x7c600bc0,0xef2dac0,0xbf477ac2,0x739b17c0,0xdf674c0,0xcac040c2,0x732ad0c0,0xe4954c0,0xccaa2cc2,0x1f4f90c0,0xe4851c0,0xdc9b67c2,0x1f1712c0,0xfe9a4c0,0xca7b83c2,0xbb76bc0,0xe9645c0,0xcd3a45c2,0x14ed5bc0,0xe7d4ac0,0xdc1f30c2,0x175b3ec0,0x502efcc0,0xd0237dc2,0xbb7e140,0x502df6c0,0xdfd18bc2,0xbb92c40,0xbafeffc0,0xd02d80c1,0xbb92840,0xbba02ac0,0xe2514ac1,0xbb75f40,0xc484ecc0,0xcdaee4c0,0xbb75a40,0xc70931c0,0xdfd248c0,0xbb92840,0x399bdfc0,0xd02e8241,0xfff2003c,0xb22effff,0x4241399f,0xe940dfdd,0xf2c00bb7,0xa2c2502e,0xe1c0dca9,0xe6c00bb7,0x2dc2502d,0x1fc0ccfa,0xfc00bb9,0xacc20f99,0x34c0dc9e,0x45c00bb9,0xeb40d33b,0xc3c0dc9c,0x25c00bb6,0xb540d0b3,0x6bc0ca6e,0x17c00bb8,0x36c1b970,0x4b40ce5b,0x69c0121f,0x5cc1bb98,0x7c40ccac,0x27c00c43,0xac1bb8b,0x7240c32e,0x86c01f4e,0x98c1bbaf,0x3140c595,0xb1c014ed,0x5bc1bb49,0xa040c9dc,0x57c00ea5,0x69c1b8e1,0x8c40cb0f,0xecc01d4c,0x12c1ba65,0xe640c7b2,0x2fc014b2,0x7dc1b92d,0xf440cbbf,0x60c0176d,0xb8c1ba0a,0xb140cf49,0x5dc00e88,0x86c1b8c7,0x6840d0ad,0x6dc0175b,0x6cc1b85d,0x940d031,0x42c01f17,0x20c1ba18,0xce40c56e,0x74c01f1a,0x13c1b8f9,0x2140df8d,0x65c014e8,0xc9c1b85f,0xe340e022,0xa8c01f53,0xf1c1bb2a,0x1d40e88e,0xd5c0121f,0x87c1babe,0x7c40dfed,0x4dc00c43,0x41c1ba0b,0x4440e128,0xa8c00ea4,0xfdc1ba57,0xd340eac9,0x4ec01d4c,0x91c1b980,0x3140e4b7,0xd6c014b3,0xd4c1ba83,0xad40e99a,0x4ec0176d,0x2bc1bb66,0xf040e626,0x3cc00e88,0xe4c1bbbf,0x6c40eb31,0xa6c0175b,0xb9c1bba7,0x3c40ece2,0x3cc01f31,0xc0c1b8ef,0xfc40e5ed,0x22c01f19,0xfbc24fd6,0xbb40ea68,0xe0c014ec,0xedc24feb,0x7840ecc5,0x7ec01f28,0xa5c250f5,0x6840e1a2,0x52c0121f,0xcec24fe1,0x6c40e352,0xacc00c43,0x72c25008,0x1e40e623,0xcec00ea6,0x5fc2513c,0x5140e4f0,0x74c01d4d,0x2dc2507a,0x2540e84e,0xdec014b3,0x46c25116,0x8b40e440,0x54c0176e,0x7ec250a8,0xfd40e0b5,0xbcc00e88,0xc4c25149,0x2d40df51,0xbec0175b,0x46c2517e,0xd740dfce,0x50c01f17,0x9fc250a1,0xf440ea91,0xc6c01f19,0x9cc25130,0xa640d069,0xa0c014f0,0x83c2517d,0x5540cfdd,0x26c01f4c,0xfec25018,0x6d40c770,0xa2c0121f,0xc25081,0xb640c536,0x8cc01d4c,0x28c2506b,0xfc40c665,0x3cc0176d,0x19c250ed,0xa240cb48,0xf2c014b2,0x41c250a7,0x6640ced8,0x36c00ea4,0xcbc24ffa,0xdb40c9d9,0xe3c00e88,0x1cc24fd7,0x5740cca3,0xd1c00c3f,0x25c24fcd,0x5b40c4ce,0x51c0175b,0x65c24fdd,0xa940c326,0xdec01f16,0x60c25135,0xb040ca12,0x20c01f1b,0x47c25018,0x940c08d,0xb4c07333,0x78c1bb10,0xdc40c097,0x26c0732a,0x7dc1b7b7,0x2740ce5c,0x81c0732f,0xadc1b832,0xb40c87a,0x62c0739b,0x56c1b97c,0x8d40c2fd,0xb4c0739a,0x89c1b7b9,0xdc40e20c,0x62c0732a,0x8cc1bb2d,0xda40ef76,0x82c0733c,0x57c1b9b2,0x1340ed85,0x2cc0739b,0xd5c1b853,0x8940e85d,0x9ac0739a,0xa5c25025,0x2540ef66,0xdcc07323,0x7fc251d1,0xe40e1a3,0x30c0732f,0x40c25194,0xe540e785,0x3ec0739a,0xacc250ef,0x8040ed02,0x96c0739a,0x84c251d0,0xd440cdf3,0x2ec0732a,0xabc250d4,0xb40c27a,0x5305889b,0x40c7a232,0x53058891,0x40c663ac,0xf3058892,0xc50f1b0e,0x85452040,0x5229b4c0,0xc41a63c2,0x82e47540,0x529132c0,0xccdd64c2,0x5880d40,0xbd02e253,0x588b040,0xc0983953,0x588ef40,0x81f102f3,0x600b40cd,0x3850c07c,0x7a12c250,0xca740ba,0x7d637106,0x93f740be,0x5305887c,0x40e2a2d7,0x710588e9,0x40e1e65c,0x707c9360,0x6ba05305,0x700340f5,0x1e01f405,0x8240eeb5,0x38c07cca,0x81c25160,0x7040f231,0x95185305,0x70b740ea,0x77a94405,0x57040e8,0xf9bcb431,0x467100b4,0xc2c25033,0x84f15f,0xfffffff4,0x53537840,0xe9582cc2,0x85990340,0xbaeb1ac0,0xf58835c1,0x82c9eb40,0xbb1a42c0,0xf184c0c1,0x7c935c40,0xb638eec0,0xe326f0c1,0x82c30540,0xb7e68fc0,0xe99c5ac1,0x7cca8640,0xb70775c0,0xebe599c1,0x82e47340,0xb8ee90c0,0xf2fd20c1,0x82e3b040,0xb975ecc0,0xef67cbc1,0x7ccbe640,0xb524a8c0,0xeaf0ebc1,0x85452040,0xb73be6c0,0xe27e0dc1,0x7c600740,0xb93bedc0,0xfb8b09c1,0x859c8440,0xb631c8c0,0xcd5d12c1,0x82c9ed40,0xb732a6c0,0xce19b7c1,0x7c935c40,0xbaca1bc0,0xba9462c1,0x82c30340,0xb92cc1c0,0xc14ae0c1,0x7cca8a40,0xb89a71c0,0xbdce7dc1,0x82e47540,0xb6d48fc0,0xc56ae8c1,0x82e3b040,0xb7b9e4c0,0xc7884fc1,0x7ccbea40,0xb8d79ac0,0xb6434ac1,0x85452040,0xbaf455c0,0xbea043c1,0x7c600b40,0xb4af4fc0,0xc69bc5c1,0x859eb240,0x388302c0,0xc32e0a41,0x1f4e3c40,0x383b92c0,0xc5965141,0x14ed1c40,0x3cb942c0,0xce5abe41,0x121eda40,0x38692ec0,0xccad4541,0xc436740,0x3906b2c0,0xc9dcc441,0xea61640,0x3dd704c0,0xcb0f9541,0x1d4cf940,0x3acd84c0,0xc7b20741,0x14b28140,0x3d3f32c0,0xcbbf9e41,0x176db540,0x3b84e8c0,0xcf495a41,0xe88ca40,0x3e0ae2c0,0xd0ad6441,0x175b6c40,0x3edec6c0,0xd0317741,0x1f174440,0x3b68dec0,0xc56de341,0x1f1b2640,0x3da55ec0,0xdf915341,0x14e68a40,0x3edadec0,0xe01fb441,0x1f530540,0x39448ac0,0xe88eb441,0x121ee240,0x3aea4cc0,0xeac9eb41,0x1d4cba40,0x3a9217c0,0xe99a9e41,0x176dad40,0x3c986ac0,0xe4b84c41,0x14b23140,0x3b8234c0,0xe1281741,0xea29c40,0x38cd68c0,0xe6260141,0xe88f840,0x38433ac0,0xe35d0b41,0xc3f6440,0x381b1ec0,0xeb31dd41,0x175b5b40,0x38592bc0,0xecd99f41,0x1f16db40,0x3dbab0c0,0xe5ee9341,0x1f197640,0xc446aac0,0xea69f7c0,0x14ec8540,0xc4d7a8c0,0xecd1cac0,0x1f4ec240,0xcd44e3c0,0xe1a418c0,0x121f4b40,0xc4a312c0,0xe353b7c0,0xc437840,0xc5de0bc0,0xe62392c0,0xea5a940,0xcf7febc0,0xe4f04ac0,0x1d4cf540,0xc96cf6c0,0xe84e03c0,0x14b2af40,0xce5065c0,0xe4403cc0,0x176dfc40,0xcadba1c0,0xe0b5f2c0,0xe88a440,0xcfe79dc0,0xdf5267c0,0x175b6040,0xd18f65c0,0xdfce8bc0,0x1f171240,0xcaa366c0,0xea924bc0,0x1f1a8740,0xcf1f7bc0,0xd07391c0,0x14ea1c40,0xd18803c0,0xcfddf4c0,0x1f53f840,0xc65aa3c0,0xc7711bc0,0x121f1940,0xc80af8c0,0xd01394c0,0xc439140,0xc9a689c0,0xc53615c0,0x1d4cb240,0xc8f621c0,0xc66556c0,0x176db940,0xcd036fc0,0xcb47d8c0,0x14b34240,0xcad9b2c0,0xced93ec0,0xea47640,0xc56c2dc0,0xc9d9f3c0,0xe88df40,0xc40820c0,0xc4ce1ec0,0x175b6840,0xc48425c0,0xc3265dc0,0x1f16d340,0xcf47f7c0,0xca11e4c0,0x1f1b3340,0xc65a94c0,0xc08d47c0,0x73330540,0x397834c0,0x5304d441,0x41402b4e,0xf404d46e,0x3f349a25,0xc87aab41,0x739b1b40,0x3ca0dac0,0xc2fd5941,0x739a9540,0x402632c0,0xe20c8b41,0x732ad040,0x39445cc0,0xef72bb41,0x73330540,0x3c3498c0,0xf304d441,0x3ef34462,0xe85dd541,0x739a8d40,0xc6c244c0,0xef688ac0,0x732ad840,0xd4287ec0,0xe1a385c0,0x732f3040,0xd23b15c0,0xe78551c0,0x739b1340,0xcd138cc0,0xed02aec0,0x739a8940,0xd41e45c0,0xcdf37ec0,0x732ad440,0xcc3b0ec0,0xc27aabc0,0x739b1340,0xd1b865c0,0xc7a22fc0,0x739a7840,0xd36addc0,0xc663aec0,0x7cca8a40,0xde7273c0,0x4d413c0,0xe73e26f3,0x1a70c0d6,0xe47140c4,0x2325c082,0xdd59c0da,0xc20940cc,0x4ad5c082,0x2e2c0cf,0xe3b240bd,0x2d69c082,0x9839c0cd,0xcbea40c0,0x157dc07c,0xd4f3c0d6,0x5c104404,0x4d4c0c7,0xc69f1044,0x5304d4c0,0xc0da3df1,0xf404d4e8,0xd63a7c01,0xe1e649c0,0x7c935740,0xc7dca9c0,0xf104d4c0,0xce521104,0xeeb522c0,0x7cca8a40,0xd09b50c0,0xf23187c0,0xdb710558,0x18c0d7b2,0x54cea95,0x1d7e02f3,0x77bcc0d4,0xcbf340e8,0xa6adc07c,0xd4b6c0cf,0x33c24404,0x4d4c0c7,0x40c404f1,0x5fa4c0e0,0x9c8440e9,0xc519c085,0x85f04139,0xf10564f5,0x39669810,0xf1829f41,0x7c93fb40,0x3fcc80c0,0xe99c5441,0x7cca8e40,0x45504ec0,0xeaf0e541,0xb253051c,0x9041418a,0xa67104d4,0x9f414328,0x5d0e322,0x3dbc7e53,0x4e01a41,0x3cadc871,0xef67c941,0xce710084,0x13414121,0x54ce27e,0x43360a71,0xcd5d2b41,0x4f105b8,0x4141344e,0x40ce199a,0xc07c9364,0x413a0564,0xb8ba9462,0x1802f305,0xe4413d40,0x7d40c14a,0xb8c07cca,0x79413e64,0x867104c8,0xec4141f0,0x5b8c56a,0x25d002f3,0x884f4140,0xcbde40c7,0xea6cc07c,0xc84c413d,0xb0f05304,0xc8404139,0xfffff304,0xffffffff,0xb232ffff,0xcf414638,0x4740c69e,0x3ec0859d,0x47c20fdf,0xcac0e99e,0xacc01f51,0xfcc20ff1,0x1dc0e735,0xa8c014e8,0xa2c20ed1,0x2ec0de71,0xc2c0121f,0xa3c20fe5,0x6cc0e01f,0x5ec00c43,0xc6c20fbe,0x2fc0e2ee,0x3ec00ea5,0x25c20e8a,0xc2c0e1bd,0x85c01d4c,0x8fc20f4c,0x3ec0e51a,0x2ac014b3,0xdfc20eb0,0xd2c0e10c,0xccc0176d,0x58c20f1e,0xb5c0dd83,0xc7c00e88,0xe5c20f25,0x7ec0e75e,0x4ec01f18,0x6ac24fdd,0x83c0e9a6,0xd4c01f16,0xb3c24fcd,0x7dc0e7fe,0xa0c0175b,0xaec2517d,0xecc0dcef,0xc4c01f4b,0xe0c25130,0xb7c0dc64,0x26c014f0,0xcfc25018,0x71c0e55b,0xa8c0121f,0xb3c25081,0x5c0e796,0x8ec01d4d,0x8ec2506b,0x9c0e667,0x2ec0176e,0xf9c250ed,0x64c0e184,0xe6c014b2,0x3ac250a7,0x59c0ddf4,0x4ac00ea4,0xc1c24ffa,0xe8c0e2f2,0xd6c00e88,0xcac24fd7,0x60c0e029,0xe8c00c3f,0x6fc25135,0xebc0e2ba,0xbec01f1c,0x80c2517e,0xe3c0ccfe,0xbcc01f17,0x1ac25149,0x29c0cd7b,0x8cc0175b,0xadc24fe7,0x1c0bffa,0x57c01f4e,0xb6c24fd6,0xb7c0c264,0x80c014ee,0x61c250f5,0x5cc0cb2a,0x62c0121f,0x16c24fe1,0x78c0c979,0x80c00c43,0xa2c25008,0x11c0c6a7,0xd0c00ea6,0x8cc2513c,0x8cc0c7dc,0x68c01d4d,0x7ec2507a,0xeec0c47e,0xe2c014b2,0xc3c25116,0xa4c0c88c,0x56c0176e,0x59c250a8,0x16c0cc17,0x3ec00e89,0x9dc250a1,0xb5c0c23a,0xb4c01f19,0x1bc20fe9,0x44c0bff3,0x34c01f17,0xebc20ff9,0x60c0c19a,0xe0c0175b,0xfdc20fae,0x2ac0c43d,0xcc0121f,0x20c20f79,0x63c0ccdf,0x6fc00c43,0xcbc20f45,0xb6c0c202,0x72c01d4c,0x29c20f5b,0x9c0c332,0xd3c0176e,0x9cc20ed9,0x29c0c814,0x22c014b3,0x38c20f1f,0x76c0cba4,0xadc00ea5,0xbc20fcc,0xbec0c6a7,0x35c00e88,0xb3c20e91,0x6ac0c6df,0x80c01f18,0x4240d060,0x94c0e9c2,0x6dc01f84,0x9ec1a1c4,0x83c0ea8c,0xf4c02918,0xc40d03f,0xdc0e804,0x9dc0176f,0xb740d2a1,0x80c0e56b,0x49c01248,0xe3c185e8,0x70c0ec7a,0x3c073b6,0x5940d2f7,0x37c0ec34,0x6ac07336,0x40c19116,0xc8c0eac1,0x56c039b2,0xa1c1f1bc,0xb8c0e990,0x3ac01e3c,0x9c1f1e5,0xa6c0ec44,0xcbc07328,0x9540e058,0x84c0de80,0x51c07348,0x8540de6b,0x30c0e44f,0xebc0739d,0xe340db62,0xe5c0e2d3,0x8bc01f09,0x5340d943,0x39c0e9ce,0x78c0739a,0xf040d60d,0xb5c0e819,0xb7c022a5,0xaf40d6fa,0x8c0dddc,0x5dc00e92,0xc540dda7,0x57c0dd1f,0xd0c01f24,0x2340d57f,0x21c0e723,0x78c01a04,0x5540d943,0x42c0e169,0x7dc014b2,0x8940d1b3,0x92c0e2f9,0xe4c00e97,0x8140d0a0,0x31c0e024,0x6fc00c40,0x4940db37,0xb7c0dc4c,0x30c014b2,0x7b40ddcc,0x25c0cd24,0x20c01f5c,0xae40dc1b,0x11c0cd70,0xc5c0176f,0x3640d982,0x45c0cb0f,0x84c01248,0x1840e04b,0xbcc0cac1,0xd8c07324,0xc340d28e,0xddc0bd53,0x74c0735b,0xac40d116,0x3ac0bffd,0x95c01f3f,0x5a40d866,0x1fc0bf45,0xbcc0739d,0x6840d6ea,0x42c0c24d,0x64c01f0a,0x2040dde5,0x28c0c46d,0x10c0739a,0x6040dc31,0xcec0c7a3,0x61c022a5,0x2040d1f0,0x4c0c6b3,0x45c00e91,0xff40db3a,0x47c0c830,0x4c01a04,0xa240d580,0xafc0c46c,0xe0c014b2,0x6740d710,0xabc0cbfd,0x9dc00e97,0xda40d43b,0x35c0cd0f,0xb0c00c40,0x1d40d065,0xaec0c275,0x77c014bc,0x2ac10ec5,0x74c0c936,0x8cc00b95,0x6cc10b9c,0xcbc0bd22,0xf3c071d7,0x69c10ce7,0x17c0bfd5,0x97c01cbc,0xe0c10d18,0xb7c0c15b,0x5ac0167a,0x7ec10d85,0x1ac0c455,0x51c01017,0x7fc11442,0xdbc0c150,0xc3c00d30,0xcbc114a8,0xdc0b9a2,0x86c01efe,0xd0c111a0,0xb6c0bb28,0x71c01f13,0x35c11509,0xcac0bc0c,0xc7c014dc,0xdec113b9,0x29c0b702,0x65c07397,0x11c11049,0x29c0b89b,0x62c07505,0x22c18611,0x15c0b6fd,0x1dc0738d,0x6ac185ad,0xdbc0b9b2,0xcac01ec4,0xfdc185f6,0xf9c0beeb,0x89c00ff8,0xf6c18733,0x1c0bb42,0xe5c01edd,0xbec1862c,0x2fc0bbcd,0x6ec016bf,0x74c187d0,0xc4c0b89b,0xf5c0750b,0x7cc18a20,0xe3c0bd26,0xec0714f,0x8dc1897d,0x7c0bfe2,0xd6c01c61,0x46c1896c,0xbbc0c16e,0x39c0165e,0x82c18931,0x37c0c455,0xf8c01018,0x3ec1f3e0,0x17c0bd4e,0x48c073d8,0xb9c1f6fb,0xafc0d36c,0xa3c073cd,0xb7c1f603,0xacc0d48d,0x50c01f39,0x81c1f63b,0x33c0cea6,0x72c01efc,0xb0c1f742,0x6dc0cf2a,0x26c074ac,0xdc1f72e,0xd8c0c933,0x81c07511,0x8fc1f5ce,0x83c0c7d2,0x6dc021fc,0xd0c1f649,0x86c0c27c,0x90c07521,0x87c1f47f,0x52c0c25f,0xbac01f2a,0x5dc1f51e,0xd2c0befc,0x84c074c3,0xc9c1f300,0x10c0bff3,0x84c01f20,0x41c1f59d,0x79c0d40e,0xb8c01795,0x90c1f54e,0xc1c0d120,0xbac01239,0x55c1f5d0,0xb9c0cec1,0xecc0176d,0xf8c1f4a8,0xb4c0d0c1,0x92c00e94,0x75c1f5aa,0xbdc0c7d5,0x8c01d73,0xeec1f3f8,0x5dc0cf06,0xe8c00c34,0x5ac1f55f,0x59c0c89f,0x20c0176e,0xe5c1f4ad,0xdec0ca44,0x2c0103a,0x73c1f430,0x8dc0c49f,0x5fc014b3,0xd2c1f2e8,0xbc0c270,0x78c014d2,0x21c1f33a,0x84c0c695,0xc2c00ea0,0x92c1f2ee,0x74c0c96c,0xd2c00c41,0xb8c1f3d3,0xaec0e2ac,0x6cc0179d,0xb1c1f443,0xc8c0e244,0x20c01d97,0x67c1f2d8,0xe3c0e852,0xafc022df,0x8cc1f346,0xe9c0ea85,0xec07365,0x8c1f4a4,0x56c0e5d8,0x55c07345,0xd4c1f432,0x8ac0e3d4,0x23c02304,0xdcc1f165,0xb4c0e81b,0x7ec01772,0x2cc1f36f,0x26c0e61c,0xc01d54,0x6ec1f1ae,0xc4c0e344,0x36c00e96,0xb5c1f1df,0x1bc0e5c6,0x6ac01246,0xb7c1f36a,0x97c0e16d,0xbdc0128c,0x90c1f2a4,0xa3c0e693,0x58c01774,0x8dc1f1d8,0xa4c0dff0,0xc6c00c34,0x52c1f2e3,0x3c0dfd6,0xcac00eb0,0xbbc19cae,0xbcc0f689,0xdcc0413d,0x4ec1a20b,0x38c0ec7a,0xcec03210,0x9c1a2f0,0xe2c0f05e,0xa3c03bb1,0x22c1a063,0x24c0fa44,0x36c040f1,0xbbc1a2f4,0xe8c0f680,0x75c0414a,0x16c1a913,0x49c0fa4c,0x83c04a4b,0xdcc18651,0x64c0ee7f,0x3fc07c90,0x47c186a0,0xdbc0f10f,0x39c0814f,0xb6c1a986,0xabc0f09f,0xacc044b0,0xd8c186e1,0x64c0f3fd,0xf4c0835a,0x24c186fb,0xe1c0f897,0xacc0858b,0x87c1a964,0x13c0f686,0x62c04a0e,0x16c1b05b,0x65c0ee3e,0xc0c052a7,0xf5c18810,0x23c0f7e7,0x76c081bc,0x7bc1afca,0x6ec0f42e,0xe3c05ac1,0x5ac1b7de,0x2ec0f5f1,0x3ac080ad,0xc18d3d,0xd2c0ec63,0x6ac0531c,0x9bc1af9e,0xe8c0f973,0x9ec05cfa,0x65c1b75d,0x56c0fd2a,0xf0c080e5,0xd8c18e0b,0xa9c0f153,0x8bc05d89,0xbcc18e66,0xa2c0f6f7,0x3c0620a,0x65c18eb6,0xf4c0fbb4,0x75c061fc,0x3bc1955e,0x44c0eba7,0xf8c03915,0x32c195d1,0x36c0f0a1,0x74c044e4,0xc9c195f5,0x28c0f693,0x84c04a43,0xb1c19720,0x7cc0faa5,0x38c0490c,0x49c19c52,0x83c0eb64,0x7fc02f88,0x4740db93,0x79c0f69d,0x93c0853f,0x1040d40b,0x8ec0f230,0x30c082bc,0xcc40d35a,0x9ac0ee50,0x34c07ccf,0xe240da80,0x82c0eb81,0x71c07cca,0x5840dcc9,0x7ac0eefe,0xc082e4,0xe540e3e1,0xb7c0e761,0xa1c082e3,0x7e40e04b,0xeac0e544,0x7cc07ccb,0x140ec63,0x5c0e625,0x14c08599,0xc140e66c,0xd8f514b8,0x40e2689d,0xc0deb316,0xc07c9357,0x40eaa099,0xc0c1dbe0,0xc0854522,0x40e65148,0xc0c9aa22,0xc082c20d,0x40e243a0,0xc0ca4ec8,0xc07c600b,0x40df9901,0xc0c33077,0xc07cca97,0x40e3155f,0xc0c0e73e,0xc082e473,0x40db7901,0xc0b9cfaf,0xc082e3b4,0x40d95b94,0xc0bd6504,0xc07ccbfb,0x40d38a31,0xc0b746da,0xc082caa9,0x40d2cd2b,0xc0bb4a2c,0xc07c9403,0xc10b153d,0xc0b3d758,0xc08479a5,0xc10b2f0f,0xc0b9f50a,0xc07fd22d,0xc1115558,0xc0ac3b69,0xc0852b00,0xc1119a0a,0xc0b05e27,0xc0836091,0xc11364f3,0xc0b401ba,0xc07fd36f,0xc177f3ca,0xc0b67d48,0xc0750e17,0xc186428a,0xc0b40c7c,0xc07fb863,0xc177f476,0xc0b3fa5b,0xc07efafd,0xc127f522,0xc0b67ce3,0xc0750e13,0x1827f47a,0x3628f100,0xcc177dd,0x28c0abd8,0x60c0858f,0x44c1280b,0xd6c0abde,0xb2c0858b,0xcc17766,0x5ac0bebf,0x20c0750d,0xa4c1747f,0x52c0caa8,0x88c0750d,0x47c16ff1,0x18d220,0x6b137571,0xd5da23c1,0xf5000c,0xc1352ced,0xc0d608a2,0xc0750d56,0x3c28823e,0x69d25300,0x3ca6c12b,0xf7693500,0xf5003c2f,0xffffffff,0xc742ffff,0x86c18732,0x94c0b0d9,0x4fc08324,0x7dc18a71,0x83c0b415,0xfcc0845f,0xcbc18748,0xbbc0ac39,0x1c0852b,0x2cc18a62,0xf5c0ba1a,0xe5c07f83,0x5bc1f770,0x62c0d407,0x6ac07cbf,0x5dc1f80b,0xcfc0d4fd,0x38c08176,0x1ac1f7d9,0x4ac0ccfd,0x85c07d7c,0xd0c1f885,0xb5c0ccf2,0xb3c081c3,0x3fc1f95d,0x79c0ccf1,0x5ec08405,0x9cc1f753,0xf7c0c4a4,0x4cc07dc9,0xe1c1f7ee,0x5ac0c35e,0xf8c081e3,0x2bc1fa24,0xa1c0c65c,0x2cc08566,0xdac1f8b1,0xb5c0c1d7,0x86c0841b,0x63c1f5e3,0x62c0be39,0x1cc07d85,0x81c1f649,0x49c0bc0a,0x9ec081c7,0x93c1f6c9,0x90c0b951,0x2ec08408,0x7dc1f3fd,0xa9c0bb4f,0xc8c07cc0,0xeec1f41d,0xa7c0b8c0,0x2cc08178,0xfdc1f575,0x7ec0b13f,0xc2c08598,0x90c1f448,0x50c0b583,0x32c083d2,0xe0c1f6fb,0xc9c0ece4,0xcdc0853b,0xf7c1f514,0x9dc0e71d,0x56c07cd7,0x13c1f3a5,0x7ec0ed57,0x9c0800a,0xcec1f209,0x2ac0ef6f,0xedc0800d,0x80c1f399,0xeac0f6f3,0x3ec08533,0xaec1f348,0xcdc0f328,0xecc08395,0x90c1f644,0x50c0eaa4,0x46c083d1,0x34c1f59b,0x8fc0e8ac,0xdcc0817d,0xe3c1bad7,0x51c0ef52,0xc8c07e6a,0x39c1bca3,0x60c0f5b5,0x7bc08491,0x83c1ba0e,0xcc0fd79,0x9cc084a2,0xb0c1ba1f,0xbfc0f5fe,0x24c0839d,0x9dc186d5,0x9cc10014,0x56c0a2fd,0xbcc17b41,0x29c11740,0x39c0b8fa,0x83c18132,0xf6c111c0,0xf2c09fec,0x8ec18242,0xccc11676,0x74c09a29,0x30c17a46,0x98c110f9,0x5ac0bda3,0xc1c176d6,0x22c117e7,0x2bc0d2de,0x2cc1c3a2,0x43c1109c,0xd6c0cb81,0xe8c1c4ff,0x37c11922,0x4c0e87a,0xbbc175e0,0xfec11030,0x62c0db7d,0x87c1c38a,0x1bc117b1,0x42c0ca2f,0xacc1754d,0x12c11911,0xc9c0e488,0x6dc1c051,0xbcc1116d,0xb8c0ac4f,0xe6c1bfbc,0xe7c116d5,0xa9c0a842,0x14c1bce1,0xdbc111f5,0xaac09816,0x26c1baac,0x14c11627,0xf6c08dcb,0x60c1b32e,0x40c11607,0x14c06c31,0x10c1aafb,0x83c1152c,0xe1c04ea1,0x66c1a070,0x6fc10e66,0x3dc040f0,0x4cc1a23c,0x73c11521,0x8cc04166,0x43c19922,0x60c1155f,0x61c04576,0x25c19735,0x8cc10e93,0xf5c048d9,0xb9c1906a,0xe3c11561,0xb6c05b36,0x79c18ec0,0xe6c10ea8,0x8ac061af,0x2dc188b1,0x1fc115ef,0x91c08049,0x54c069f0,0xeec10ca5,0x9ac13164,0x79c15692,0xc3c10d0d,0xeac129a1,0xb7c1719d,0x6ac10c75,0xb6c134f1,0xf4c152d9,0xcc10cd6,0x58c12db2,0xf3409028,0xdc10d2d,0x70c12736,0x23406644,0x6dc10d6c,0xf7c12293,0x4f405fac,0xacc10d28,0xb8c127a1,0x5440ab07,0xeec10ca5,0xa4c13164,0xdc409f55,0xafc10cc0,0xdec12f57,0x3c402faa,0x6ec10ca9,0x94c1311a,0x37c0f279,0x4c1103d,0x60c0d9a9,0x3ec1087a,0x44c1108b,0x6fc0ce07,0x70c10664,0xeec11034,0x70c0daf7,0xe9c14e1a,0xc6c10cb2,0x60c13061,0xcec15948,0x98c10d62,0x80c12345,0x8b408d39,0x36c10d72,0x26c12219,0xc9c147ed,0x64c10ca2,0x18c13195,0xc14126ff,0xfdc11053,0x1cc0d64c,0x23411991,0x6dc10d6c,0x71c12293,0x7dc0ef56,0x5ec1107c,0xdcc0d03a,0xcb41197b,0xdfc11044,0x5c0d887,0x17c0e9d0,0x97c110b4,0x3fc0c7f0,0xcf3fb637,0x20c1103f,0xfec0d946,0x713f19b8,0xe0c11034,0xe0c0daf7,0x233f1911,0x6ec10d6c,0xe6c12293,0x884116af,0xabc1109a,0xedc0cbbf,0xf8c10e72,0x51c110dd,0x6ac0c1b2,0x23412af0,0x1bc110b2,0xdec0c83b,0xe24112cd,0xb3c110d0,0xf6c0c3a5,0x3e3ef0b3,0x40c1108b,0x2cc0ce07,0x35412f2d,0xd7c110e0,0x9ec0c15c,0x36c0e1a5,0xd3c110e0,0x9ac0c15c,0xd410e19,0xd4c110f3,0x33c0be8d,0x7d3fc2a6,0x5ec1107c,0xe6c0d03a,0x574134fd,0xbc110fe,0x3cc0bcdf,0x57c0d604,0xdc110fe,0x68c0bcdf,0xfac11499,0x32c110fc,0x86c0bd13,0xc0410940,0x1fc11100,0xb1c0bc83,0xf23fdede,0x45c110bf,0xdbc0c62c,0xf83dc685,0x48c110dd,0xb9c0c1b2,0xf4c122d9,0x9c10cd6,0xb2c12db2,0xc8c13bd3,0x63c10ce1,0x9bc12ce3,0x79c12692,0xbfc10d0d,0x9fc129a1,0x3dc14194,0x8ec10cb3,0x20c1305b,0x9740067d,0xc0c110f0,0xc2c0beeb,0x4fc13814,0xacc10d28,0x6dc127a1,0xe9c11e1a,0xc6c10cb2,0xf7c13061,0xb7419038,0x6ac10c75,0x1ec134f1,0x25414991,0x65c10d6c,0x34c12293,0xb2bf8ca0,0x13c10cc9,0x62c12eaf,0xfac024c0,0x76c10d09,0xd7c129e4,0x26c03ba3,0xedc10cc4,0x3ec12f18,0x4f4147eb,0xacc10d28,0x2c127a1,0xb5414528,0x99c10cf0,0xac12bc6,0xfabe932d,0x32c110fc,0x56c0bd13,0xbc4140de,0xe0c10cc2,0xb8c12f33,0x3c413bea,0x6ec10ca9,0x61c1311a,0xcdc12948,0x96c10d62,0xe4c12345,0x23c1366e,0x6ac10d6c,0x2dc12293,0x2bfb25a,0x5c10d08,0xa6c12a0a,0x34401a7c,0xeac11100,0x98c0bc97,0xf9413b66,0x32c110fc,0x16c0bd13,0xf841418d,0x51c110dd,0xa2c0c1b2,0x3f414785,0x44c1108b,0x96c0ce07,0x6f41499b,0x27c11034,0x2ac0daf8,0x4cc11915,0x80c10ca4,0xd1c13178,0xfac0c932,0x32c110fc,0xa1c0bd13,0xfac05265,0x32c110fc,0xe8c0bd13,0xd1402ddb,0x44c110fc,0xcc0bd19,0xc040b281,0x1fc11100,0x22c0bc83,0x3cc05055,0x6ec10ca9,0xcac1311a,0x37c1593c,0xfcc1103d,0xb0c0d9a8,0x58bfc9fe,0xb1c10d5e,0x88c1239a,0x23c019bb,0x6ec10d6c,0x64c12293,0x7040f696,0x8c10ced,0x7c12c05,0xb640ca50,0x92c10cf0,0x9dc12bc6,0xbc40c1bc,0xe4c10cc2,0x44c12f33,0x54bf27c2,0xeec10ca5,0xa4c13164,0x348ff55,0x8fe300f5,0x9ad3c156,0xb4c6c110,0x2858c0cb,0x350390f0,0x84cfd67c,0xd56f3503,0xf4036cb7,0x9201d401,0x1053c0c0,0xd64d01c1,0xacddc6c0,0xf40138c0,0xacc8de01,0x103470c0,0xdaf7eec1,0xd32238c0,0x44033040,0x410583dc,0xcf50414,0xc14fb700,0xc110ea46,0xc0bfdcc6,0xc0b0f4bf,0xc1108b3e,0xc0ce0744,0x84ed3980,0xd719f403,0x3c147d2,0xebc11102,0x30c0bc52,0x23c08a1f,0x1dc110b2,0x24c0c83b,0xe3408d8d,0x9c1103f,0x70c0d943,0x784065ef,0xe5da4403,0x18cc0bc,0xa5a06df4,0xe036c081,0x5cd5c110,0x6b18c0c1,0x9f234093,0x1017c110,0xbf98c0cb,0x9a88405a,0xbfabc110,0x699cc0cb,0xed70c0e9,0x507c10c,0x3017c12c,0x9fac109,0xe475c10d,0xe8f6c129,0xc426c10e,0x18edc10c,0x870c12f,0xfe57c06c,0xdf0dc110,0xaa5cc0bc,0xc0dcc0e0,0x57aec10c,0xd7a8c12f,0x2df3c0ef,0x3610c10d,0xb8f1c127,0xdcef4046,0xd9e8c110,0x1546c0c1,0x120c114,0x7de501f4,0xe151409e,0x3285c110,0x6ee3c0c1,0x120c106,0xd4f84f44,0xf40108c0,0xa829740d,0x10faaf40,0xbd6a87c1,0xf35fccc0,0xcc9b23f,0x2eaf13c1,0xa50071c1,0x4401bc3e,0x3d5e4e6a,0x31f401bc,0xc0f2c680,0xc10d728b,0xc122193a,0x3fcda5d3,0xc10d0802,0xc12a0a05,0x3efd67ba,0xc10d284f,0xc127a1ac,0xc1293cca,0xc1103d38,0xc0d9a8fe,0xc136646f,0xc1103470,0xc0daf7f7,0xbe82a90d,0x5044009c,0x403fb601,0xf6f4402,0x904016,0xd42419f4,0x76d9c137,0x11a3c110,0x4b32c0d1,0xed70412b,0x508c10c,0xcfe8c12c,0x9fa4116,0xe476c10d,0x170ac129,0x1204111,0x2faad244,0x31024041,0x40268fe1,0xb4c08402,0x142cc0cb,0x2404128,0xb93c0df4,0xc1c7c13b,0xe630c110,0x73ec0c5,0x53c1bfc8,0x4cfdc110,0xeab8c0d6,0x90410b,0x1991c144,0x31051cc0,0x1021e981,0x7407502,0x83dcc0ce,0xf4023435,0x210a5b01,0x10debbc1,0xc19544c1,0x269cc0c0,0xf3022841,0x41a58302,0x10f1e3c1,0xbeba30c1,0x1b021ec0,0x1b056c1,0xa87caf91,0x10b223bf,0x2341bc1,0x234ed15,0xd2f7b835,0xd1310234,0x23439cb,0xc1b248d1,0x8696a2c0,0x10e035bf,0x234d7c1,0x234f315,0xcd5fcc35,0xf50234,0xbf3021c0,0xc110fe57,0xc0bcdf0b,0x4089699c,0xf901f402,0xb6c0b5af,0x93c10cf0,0x61c12bc6,0xb0c0be43,0xaa5c3501,0xf5023480,0xc59bbd00,0x10d0e240,0xc3a5b3c1,0x8fd7a8c0,0x84440240,0xbcc0b029,0x7de53501,0x440234fe,0xc0c82a8d,0x1f40120,0x40bc3333,0xc110f30d,0xc0be8dd4,0x410414ba,0x64350234,0x3f09696,0x54a00e44,0x44023440,0x4043793a,0x80350084,0x23492c6,0x69f0a44,0x4401ecc2,0xc2110552,0xd0440060,0x58c20a58,0xb931f402,0x23c20d9b,0x6cc10d6c,0x9ec12293,0x23c23992,0x1bc1109f,0x5cc0cb10,0xe3c23a4e,0x7c1103f,0x6c0d943,0x88c23e54,0xafc1109a,0xd2c0cbbf,0x2c25192,0x9c10d08,0x84c12a0a,0xe0c253e3,0x5a18f107,0x1ac250a9,0x5bc10cd5,0x3bc12dd5,0xc0c21640,0xffc11053,0x1cc0d64c,0x70c21999,0xe8c11034,0xbac0daf7,0x6c199b,0x93731cf1,0x869dc122,0xb2e9c24f,0x61c4c10c,0x4ff6c130,0x5e58c252,0x9ab6c10d,0x9c44c123,0x4014c1e4,0x3bc5c110,0x3772c0d9,0x710348eb,0xc1229369,0xdceb3238,0xfb10f502,0x72c0daf7,0xefc23f94,0xe6c110dc,0x4bc0c1d9,0x4cc24e45,0x81c10ca4,0x30c13178,0x804ec3d,0x1e9818f5,0x8b3ec21a,0x73cc110,0xb2ec0ce,0xa36bc1e3,0x6cadc110,0x3044c0ca,0xe151c238,0x3283c110,0x552c0c1,0xf401144d,0xef397701,0x10ddf8c1,0xc1b24fc1,0x36fad2c0,0x440174c2,0xc2412242,0x1af305ac,0xc1dfb16f,0xc110ebe2,0xc0bf9f51,0xc21543e5,0xc110b223,0xc0c83b19,0xc253e384,0xc10e8e61,0xc10cf16a,0xc1f24cb4,0xf40630fa,0x35afdf01,0x1100c0c2,0xbc831fc1,0x1b9cbdc0,0x44027cc2,0xc21434b4,0x344404b0,0x78c2452d,0x4c064403,0x498c24a,0x4bba3e44,0x530378c2,0xc212c088,0x3702e857,0x30212d34,0x30261700,0x30271500,0x265a4400,0x84c21d,0x44154c44,0xf70294c2,0x45faf500,0xd2df2c2,0x273612c1,0x20154cc1,0x21d50018,0xd2df3c2,0x27360fc1,0x499bbac1,0xa3501a4,0x240429f,0xd3323831,0x5f40180,0xc0daf7f5,0xc1d33772,0xc10d6c25,0xc1229368,0xc1c6bf1d,0xd0310204,0x2584658,0x22193375,0x290552c1,0xcf5015c,0xc1d42ad2,0xc11086e3,0xc0cead8c,0xc1d710e1,0xc110dbce,0xc0c20508,0x6c259bba,0x3219f400,0x38c2524f,0xf4c1103d,0x70c0d9a8,0x36c26a8b,0x6dc10e42,0x60c10cf1,0x5c1fa03,0xc1c10ce3,0xffc12ccb,0xf4c202b5,0x6c0cf502,0xbcc203c8,0xe3c10cc2,0x59c12f33,0x86c1db6b,0x55c11102,0xac0bc3f,0xb41e9f,0x2258d035,0xf50090,0xc2425836,0xc1110034,0xc0bc97ea,0x9829afdf,0x265a3501,0x35012c11,0xc05265a,0xf5ea4400,0x3b4c1fb,0x2053044,0xf503b4c2,0x51eace00,0x107c7dc2,0xd03a5ec1,0x2e4e5cc0,0xa440324,0x9cc231a1,0x9bba3506,0xf500d831,0xf70d3800,0xcb2e9c1,0x3061c6c1,0x50552c1,0xf10114,0xc2513a02,0xc110b417,0xc0c7f099,0x30019bb9,0x6c05f400,0xb6c12293,0x35c25034,0xd9c110e0,0xa0c0c15c,0xa8c1fcb1,0x8a954403,0x2e8c1f4,0x2d929e35,0x63503a8,0x39c3254,0x4ec08853,0x22856c2,0x403b00f1,0x53c0c20a,0x4d03c110,0x991cc0d6,0xf103840d,0xdaf7f204,0x334c89c0,0x10d0e2c2,0xc3a5b1c1,0xe1e98c0,0x44750324,0x5ac0ce07,0xfc4d26,0x2c304435,0x34370324,0x270392d,0x2703e17,0x2703f15,0x34799a44,0x3504b0c2,0x3c2afad2,0x43e63103,0x77032409,0xc0c83b1b,0x7038154c,0x88391502,0x9cbc3102,0x7503180f,0xc0c1b24f,0x20410552,0x34b43101,0x71032408,0xc0c15cd3,0x203d9bba,0x93737501,0x9f0ac122,0xf101e036,0x14650200,0xcc9b2c2,0x2eaf12c1,0x1ab5ffc1,0x9175021c,0x6cc12bc6,0x21c1bc8,0x6c08835,0xd035033c,0x2103a58,0x1592d235,0x303504c8,0x1e01a05,0x4e4600f1,0x3fcfc246,0x4626c110,0x991cc0d9,0x75013849,0xc0daf7e8,0x9c1d0552,0x4ff63100,0x7504b016,0xc1239aaf,0x90129f0a,0x1e983100,0xf401504a,0xce073c05,0xe13a95c0,0xcd2e3c1,0x2dffa1c1,0xed6bfec1,0xf502b8c1,0xef76940c,0xcc499c1,0x2f1070c1,0xe325a2c1,0xd0802c1,0x2a0a08c1,0x45eacec1,0x61440258,0x70c1ec0a,0x3318f502,0x37c2224f,0xdc1103d,0xac0d9a9,0xf2c24509,0x43c110bf,0x3ac0c62c,0xbfc1ded4,0x1ac10cb0,0xac1308b,0x27c25a1,0xed9500f1,0xa9afc1f1,0x11dac10c,0x9cbdc131,0xf5015c4b,0xc1b2481c,0xe49fecc0,0xd5e58c1,0x239ab2c1,0xdbce6ac1,0xca324c1,0x318ea2c1,0x43982ec1,0x10f097c2,0xbeebc0c1,0x21eacec0,0x6350084,0x2582654,0x213a0031,0x918602ac,0x76c0c7f0,0x58c1fc80,0x20011102,0x2580201,0x2582717,0x1080211,0xce074471,0x2034b4c0,0xd57501c8,0x9ac0c15c,0x2282879,0x1ec08835,0x2350198,0x1c82c65,0x324c0637,0x33150264,0xd2350264,0x1b02d92,0xfa87cc44,0x3107ecc1,0xe4039cbc,0x2400200,0x1a43515,0xf8696844,0x310240c1,0xb02e4ff6,0x9aae7501,0x9f0ac123,0x5301b02a,0xc1f58110,0x37033057,0x88092d34,0x840e1105,0xe4737100,0xba3dc129,0x7700840f,0xc12f18ec,0xc408154c,0xc2092402,0xa350420,0x1803da1,0xd40a6135,0x1cf101bc,0xc1d5e9d9,0xc10ce1c8,0xc12ce362,0xc1d8ca50,0xc10cb33d,0xc1305b8e,0x41c14f0b,0x40c8e8c9,0xc134f16a,0x41b2dedf,0xcf45a32,0x8b04f100,0x6419941,0x6a410b4b,0xb1c134f1,0xe241a223,0xc07cf,0x20c105f4,0x303e41c3,0xb717c0d0,0x23b1c0a5,0xcfe041a2,0x3cc107,0x5a305cf9,0xf16ac0f4,0xdb43c134,0xed8341c1,0xf147c0c6,0xc5b5c134,0xa0b41c4,0xf16f40b8,0x58dbc134,0xd4e141d1,0xf1613fd9,0x45d7c134,0x8f6041d1,0xf15cbfdb,0xcb19c134,0xf24941d3,0xf16a3fac,0x8e8bc134,0x74cd41d4,0xf16abee7,0xe384c134,0x75b9c253,0xf16a410c,0xbf1dc134,0xc7f3c1c6,0xf16ac108,0x69eac134,0x31000cb7,0x84000000,0x24283900,0x5000c88,0x9d250024,0x93000c71,0x41c4fa41,0xc0b62d08,0x4400786e,0xbfacf239,0xfff4006c,0xe8e6236,0xcf16a41,0x3772c1c1,0x10d8d4c0,0xc2768c41,0x86b841c0,0x10e0a7bf,0xc14be041,0xfbb4ac0,0xcc49ac2,0x2f106f41,0x81645c1,0xcc06cc2,0x2f603841,0x468766c1,0xd05a241,0x2a377941,0x41d612c1,0x11a586c2,0xa5416641,0x434393c0,0x10f6c6c2,0xbdffd241,0x44aea9c0,0x10cfe2c2,0xc3cc0e41,0x41ba04c0,0x11180ac2,0xbc6c0b41,0x3ff70ac0,0xcba8a41,0x2fd07741,0x3e41c4c1,0x10faadbf,0xbd6acf41,0x49a00ac0,0x104675c2,0xd8484341,0x465af6c0,0xd7c4dc2,0x215f2f41,0x49a1dec1,0xd64bac2,0x23210041,0x46548cc1,0x1037e8c2,0xda73aa41,0x114314c0,0xca561c2,0x31641741,0x6d7fec1,0xca8a1c2,0x31262b41,0x564a27c1,0x11006ec0,0xbc8f4541,0x40f748c0,0x1209d6c2,0x94e6b841,0x49788ec0,0xd64bb41,0x2320f641,0xda1ddc1,0xd64bac2,0x2320fc41,0xa0f2ec1,0xd351ac2,0x26adbe41,0xe6a67c1,0xd0163c2,0x2a888141,0xa5af6c1,0xd7c4ec2,0x215f1b41,0x39695ec1,0xca46041,0x31773441,0x308d3fc1,0x120a1140,0x94e5ed41,0x5a5a9c0,0xf50018c2,0x45cfee18,0x1089a2c2,0xce44e341,0x1a00ac0,0x104675c2,0xd8484b41,0xfca69cc0,0x103c21c1,0xd9d28d41,0x1a1ddc0,0x25f40078,0xc24a5526,0x411099f8,0xc0cbd558,0xc109a99e,0x410d0163,0xc12a8882,0xc0e95a7b,0x410cedc5,0xc12bfecf,0xc24b772c,0x4110d8d4,0xc0c2768a,0xc0f0796c,0xdf400a8,0xc1fb23b0,0x41109f2c,0xc0cb0ec3,0xc10eed28,0x410cc49a,0xc12f1070,0xc0e0b225,0xa34401a4,0x8c24d64,0x250df401,0xf7c20255,0x63411099,0x62c0cbd5,0x63411656,0x83410d01,0xc2c12a88,0x6c412b52,0x4e0df400,0x194127c3,0xc5410d35,0xd6c126ad,0x9a411112,0x71410cc4,0xeec12f10,0x54412fa6,0x800f100,0xadc24ef9,0xd14110fa,0x2bc0bd6a,0x9c0377,0x769005f4,0x6b82c0c2,0xe0a7c1f8,0x4bdc4110,0xc4ac0c1,0x198c115,0xaf3b444,0xf4000c41,0x34a00a01,0xca8a141,0x31262c41,0xd6bff0c1,0xf4000cc0,0x19788c3d,0xd64ba41,0x2320fd41,0x26942cc1,0xd7c4d41,0x215f2c41,0x68774c1,0xd64bac1,0x2320f941,0xf2d7aac1,0xd7c4ec0,0x215f1d41,0x6a8b70c1,0xe4238c2,0xcf16e41,0x52534ec1,0x103c21c2,0xd9d28041,0xf5f210c0,0x44024cc1,0xc0cd2d45,0x18f50198,0xc25191d8,0x41109f2d,0xc0cb0ec1,0xc25035c2,0x4110e0a7,0xc0c14be2,0x4149886a,0x411041ff,0xc0d8f29b,0x2c0564a2,0x1219f401,0x1ec1dab0,0x15410ca5,0x31c13169,0xfac148a6,0xc8410ca3,0xddc1317e,0x48bf0e94,0x2f410ca2,0x49c1319f,0xe0c0ad00,0x9a704401,0x1e0c092,0x92d7aa35,0xdf400a8,0x4124dfa8,0x41120815,0xc094e5de,0xc223e384,0x41120a8c,0xc094e380,0xc0ad0ee9,0xf500d8,0xc145e5e2,0x41110090,0xc0bc8a35,0xc04be41e,0xe80df500,0xd4c1db8c,0x24411100,0x9ec0bc80,0x534146d2,0x28411097,0xc1c0cc3a,0xf8c08c8e,0xb2a93401,0xf501d4c0,0x42235a24,0x10d8d441,0xc2769241,0x1a5e26c0,0xd05a3c2,0x2a377241,0x157824c1,0xcfe6dc2,0x2ac10541,0x1c023ec1,0xcba8ac2,0x2fd07841,0x141644c1,0x563103cc,0x3fcbbb9,0x769211f4,0xae0ac0c2,0xe0a7c081,0x4bde4110,0x4eedc0c1,0x6071c216,0x72cb410d,0x9079c123,0x9cc06f,0x12d7fe31,0x2c75036c,0x14c13126,0x36ccb25,0x19a1de31,0x18402dc,0x54c12321,0x2cc21e3a,0xcb01f401,0xa240cd0e,0x75410d05,0x85c12a37,0x7040f6a5,0x869c4402,0x27040ef,0xbfee0b44,0x35009c40,0x3c0da00a,0x4ddb4403,0x27c40ff,0xa534e31,0x8d7501ec,0x9ec0d9d2,0x33039a9,0x84c60df4,0xeb38c124,0x2f85410c,0xb697c12c,0x281ac127,0xa5c6410d,0x91d8c127,0x12cc209,0x21b20cf5,0xc2bfc13f,0x33e3410c,0x1fc9c12f,0xbf1cc120,0x7944410c,0xa00ac12f,0x35029404,0x240e5525,0xf1174403,0x29440d2,0xed285844,0xf4029440,0x2813e20d,0x10d09e41,0xc5b9dc41,0x29b89ec0,0x109f2c41,0xcb0ece41,0x2f28f8c0,0x44053441,0x40b2d2bb,0x2b35027c,0x3240f77,0x835c131,0x5f4027c,0xc0c14bdc,0xc143dbe0,0x410caa22,0xc1310975,0xc11b5ff8,0x7435030c,0x2f43687,0x57af18f1,0x6d98c129,0x77d6410d,0xa014c122,0x32e54119,0x32ca4110,0xb2c8c0db,0x3c214126,0xd2914110,0xf908c0d9,0xf3039006,0xbd6acf12,0x17c5a6c0,0x1083ad41,0xcf280541,0x6779bc0,0x1041ffc1,0xd8f28441,0x1164a3c0,0x4086fc2,0xf29a7035,0xe44402ac,0xd441341b,0x6d764401,0x42c413a,0xec8ec135,0xcf10264,0xc1092d5f,0x41109752,0xc0cc3a38,0x4113fa86,0x4110c2f0,0xc0c5b9de,0x28266a68,0x88828405,0x2b50c12a,0x1d4c221,0xf2d01f4,0x3519c222,0xadc3410d,0xdcabc126,0x294c10d,0x27bb4a35,0x44350648,0x27c2016,0xe1ae0831,0xdc750270,0x41c0c14b,0x264d7c8,0x5a1d9737,0x96170234,0x8f150234,0x14440234,0x5cc22943,0x928a4404,0xc0c115,0x25a1de31,0x4f50288,0xc1232100,0xc2225af6,0x410d7c4d,0xc1215f2f,0x643fdc16,0x4ddb3502,0xf102589f,0x199de700,0x104200c2,0xd8f27c41,0x16534ec0,0x91840264,0x14c0d9d2,0x9840a940,0xe22e3701,0x15021065,0x3502108d,0xec25a576,0x779a3101,0xf1017436,0xd8f28604,0x294d38c0,0x103c21c1,0xd9d28b41,0x1591d8c0,0xc9930288,0x29c0cb0e,0xe640d340,0x18f501c8,0x40ed5a4d,0x41103848,0xc0da656b,0xc21a4b58,0x41109752,0xc0cc3a30,0xc126165b,0x4110a36b,0xc0ca6cab,0x80392d5f,0x8b4c5301,0xe0ae40cf,0x1b00f101,0x740f19e,0xae41108b,0x2cc0ce0f,0x2641b77,0xc2768a71,0x1435c2c0,0x11f40264,0xc0c14bde,0xc13e21bf,0x4110dbcd,0xc0c2050c,0xc1209e47,0x4110e211,0xc0c115ee,0x40c7f50c,0x3501c8,0xcf88b,0x1be42135,0x8350480,0x25812f9,0x1d64a335,0xb744051c,0xcc3ed0ec,0xa001f403,0x6d3fd0fb,0x4410cfe,0xa8c12ac1,0xc0bb0fa7,0x376d4403,0x3b43ffd,0xd4ce19f4,0x163c1d4,0x887f410d,0x4b41c12a,0x803c156,0xa0c410d,0x7527c12a,0xd2e6c152,0xffa2410c,0x2260c12d,0x4683fb6,0x326a6835,0x24350258,0x4bc2d78,0xd790d831,0xe27703c0,0x4ac12f33,0x24c33bb,0x6cc22cd5,0x39410cc0,0x28c12f60,0x1b01280,0x320218f1,0x5c0cc159,0xc6ab410d,0x88b9c123,0x64ba3f17,0x20fa410d,0xa873c123,0xb0c1c14d,0x8b1b410c,0x4eedc130,0xf704e02e,0x2372c804,0xd343bac1,0xd64bac1,0x2320f841,0x668052c1,0x8d1501a4,0x143501a4,0x2703543,0x2ad7fe35,0xde350504,0x27031a1,0x5f169837,0x911501a4,0xf501a4,0xc22597fc,0x411032e6,0xc0db32be,0x6422534e,0xea183502,0x3501804f,0xc988b00,0x8500f500,0xe3c223e3,0xd14110c2,0xd8c0c5bb,0x2402191,0xbc4c1af3,0x5a2c1ec,0x3773410d,0x494ec12a,0xd7bc1e3,0xa1bf410d,0xf1a9c129,0xcbfcc1e0,0x8390410c,0x35c2c12e,0xc4a8c220,0x9618f505,0xadc2260e,0x9411083,0x7bc0cf28,0x28c1ef74,0xec410cc4,0xdac12f18,0x71c1e49d,0xcf410d60,0xf0c12372,0x48cf1ed,0xcc6800f1,0xa90dc1dd,0x1e11410c,0x43bac131,0x840114eb,0xc12320fa,0xc227015e,0x76440234,0x40c026a6,0x4604408,0x204bfaf,0x3bb4a644,0x440834c0,0xbf82c893,0xf10204,0xc1d327e4,0x411026b0,0xc0dd04b6,0x18594d38,0xbc871103,0x641e1504,0xdda04402,0x204bfc9,0xc1a200f1,0x6fb4c1d3,0x223e4110,0x165dc0d2,0x84030c56,0xc0ca6caf,0xc054312f,0x683509f0,0x2283e6a,0x392b5035,0xd2310480,0x75c1a1d,0x2320fa71,0x3a0f2dc1,0xc577048c,0x4ac126ad,0x2343fbb,0x2343815,0x1ef200f1,0xc812c1d6,0xf6124110,0x9e4ac0c4,0x77032450,0xc0c115f0,0xec414314,0xec361501,0x9ef14401,0xaec4022,0xbc6d644,0xf40aec40,0xea2adc01,0x10cfe13f,0xc3cc1041,0x245fd0c0,0x350aec40,0x1c3da1de,0x5af63502,0xf4048c3a,0xd90bc001,0x10f40ec1,0xbe678441,0x17fda4c0,0xf50af83f,0xb56e9300,0x1037e83f,0xda739d41,0x3197fcc0,0xb7440234,0x88c22e54,0xe965302,0xd4aec232,0x3d19f401,0x7c22dcc,0xb041108b,0x5cc0ce0f,0xa23fc602,0xdd411089,0xc2c0ce44,0xf83ed56d,0x61411099,0x26c0cbd5,0x34c2025e,0x494f3102,0x750234fb,0xc129a1bc,0x34f8f1a9,0x15e3502,0x3501e033,0xc2ceea0,0x23f3500,0x44083404,0x3e08d3f2,0xf70c24,0xc1fc9dda,0x410d6071,0xc12372d0,0x8c4a6a68,0x8c451501,0xbc00f501,0x60c1f516,0x36410ca4,0x2dc13177,0x18c460f,0xb2513b44,0x3705acbe,0x984bbb4a,0x98441501,0xce0cf701,0xffc1eb3b,0x8a411041,0x8cc0d8f2,0xa9c1e4a8,0xe4411038,0x14c0da56,0x1984d43,0xa0c24233,0x32440888,0x98c0b2f1,0x5a7b4404,0x690c089,0x90796c35,0x1f40b34,0xc1e347f1,0x41109ad2,0xc0cbb4c2,0xc0c011f5,0x273104b0,0xb3480b2,0x2f603777,0x3d97fcc1,0x3a150174,0xb0310174,0x588ec96,0xcc3a3677,0x3e0e96c0,0x39150180,0x56310180,0x6f0eeee,0x769005f4,0x852ec0c2,0xdebbc1e0,0x95424110,0x7fd0c0c1,0x648c06d,0x3f015e35,0xa035015c,0xc38ee,0x4ed7fe35,0xdf400cc,0xc250678c,0x410cc902,0xc12ebc59,0xc1de0e9d,0x4110fa29,0xc0bd7e8b,0xc01a0097,0xbe440d20,0x4bfca69,0xc9454408,0x150c1f2,0x51a4a844,0xf40414c2,0x524eec01,0xd6071c2,0x2372d341,0xb23b0cc1,0x3108acbf,0x38255248,0xd561750a,0x2b50c0cb,0xf101b009,0x7acbd204,0xf1ae47c2,0xcf16a40,0x81d836c1,0xb265dac2,0x12f6000c,0xc2857c2f,0xbfdf1a54,0xc10cf166,0xc285ffd3,0xbfb6d174,0xc10cf16a,0xc2857c30,0x3fdf1a09,0x100186a,0xbc84000c,0x60c283f8,0x48c0793c,0x65d63100,0x71000cb2,0xc27acbd4,0xcf1ae45,0x9faa7100,0x9b43c273,0x7115b406,0xc2739faa,0x88069b45,0xf8bc710e,0x3c64c283,0xf1007879,0x3faec004,0x13be3340,0xbff97f41,0x4fea18c0,0x13f74340,0x8644087c,0xc4113fa,0x71ee3500,0x71000c20,0x412369a8,0x24123396,0xf50c3500,0x370030c7,0xcf88b00,0xc981500,0x15e4400,0x48c227,0x23e38435,0x5e35000c,0xc3301,0x2ceea035,0x5e35000c,0xc3f01,0x38eea035,0x19f4000c,0x4100fd3a,0x4114225d,0xc0bf4d01,0x4107edac,0x411435bc,0xc0bc69e0,0x410fbeda,0x411420a5,0xc0bf8e8a,0x40bf7db5,0x7444000c,0x3040a1fa,0xdb574400,0x3040af,0x28104a44,0x460024c2,0xc22a0496,0x34150018,0xb2440018,0x3cc22bc0,0x5144400,0x120c240,0x37c0b235,0x96350018,0x3c3604,0x8c6007f2,0x1f9b4120,0xe3f34114,0x4c0ec094,0x48704042,0xe3f84114,0x68f50c90,0x41145cfa,0xc094e380,0xc23fe334,0x4114363f,0xc094e413,0xc1c802aa,0xc10d0034,0xc1652cce,0xc1c7fb7e,0xc11efa94,0xc1652d16,0xc1c6fc98,0xc11ff0cd,0xc1578b43,0xc1c483aa,0xc11a56a6,0xc0e6c893,0xc1c3a3bc,0xc11a5fce,0xc0d87d89,0xc1719aff,0xc11ffa8f,0xc15701d2,0xc17cbea8,0xc11fffff,0xc156b3fa,0xc16f24e9,0xc11ef8df,0xc1652d0c,0x18c12ebe,0x8e00f500,0x2bc1759c,0xdcc119db,0xd0c0e682,0x786f16,0x92e600f9,0x75f9c1b6,0x249dc10a,0xfb2cc148,0x31000c88,0x18010197,0x92e63500,0xf2000cb6,0xbea24f81,0x1a0f3ac1,0xcabdcbc1,0x89b211c0,0x18ae79c1,0x961defc1,0x848bf8c0,0x19510dc1,0xae5a42c1,0x900d59c0,0x1833bcc1,0x83d1eec1,0x810a7fc0,0x1a0688c1,0xc97749c1,0x9668a2c0,0x17ec23c1,0x724b40c1,0x9cc3ebc0,0x17cafac1,0x686849c1,0xa31f33c0,0x17cbdac1,0x68aaf8c1,0xaabd2fc0,0x17f7a1c1,0x75d335c1,0xb13f62c0,0x184f72c1,0x87f377c1,0xb57c3ec0,0x18a560c1,0x94c2afc1,0xbaedcdc0,0x194dd5c1,0xaddf7ac1,0x5300fcc0,0xb3fbc137,0x200f056,0xf1000c,0xc1806a12,0xc1380000,0xc0d277be,0xc83bc93,0x89597100,0xed87c0b3,0x71000c88,0xc09909c8,0xc8fa45b,0xbd2e7100,0x6e7ec084,0x71000c97,0xc06ffbc2,0xc9fc709,0x4acb7100,0x1f94c067,0x71000ca8,0xc06ffbc2,0xcafe9b7,0xbd2e7100,0xa08bc084,0x71000cb6,0xc09909c8,0xcbbd17f,0x89597100,0x2400c0b3,0x62000cbf,0xc0d277be,0x786117,0xd79be771,0x8260a3c0,0xcc350018,0x18f60b,0xa3dd971,0xb49101c1,0xeb710018,0x16c0a2e3,0xcb93d,0xbb3eff71,0xae7a3cc0,0x9471000c,0xfbc09033,0xcbc2c,0xd79be771,0xa76303c0,0x431000c,0xa88474,0xffff08f1,0xd2b3c137,0x50fcc135,0xffffc186,0x6c4dc137,0xfd11c118,0x71000c8a,0xc12499d6,0xc9113d6,0xf2027100,0x2b0fc12d,0x71000c98,0xc133d1ca,0x48bd2d6f,0xbcc3100,0x750048f6,0xc1380000,0x6c807232,0x3dd93100,0x400300a,0xd631006c,0x309113,0x90339471,0x8afd11c0,0xeb71000c,0xfcc0a2e3,0xc8650,0x400b404,0x131006c,0x6cb491,0x2499d671,0xb93d16c1,0x4d71000c,0x3c1186c,0xca763,0xd1008402,0xc1b9,0xbcac128,0x4fdfc0f6,0xf1000cb8,0x82bc904,0xb5c648c1,0x27ffffc1,0x146c4cc1,0xb1bcedc1,0xad71000c,0x3cc11ef1,0xcac7a,0x27046271,0xa659fbc1,0x9271000c,0x9c12c17,0xc9fc7,0x2dd2b271,0x993417c1,0x9271000c,0xd6c12c17,0xc9313,0x27046271,0x89c7cac1,0x4c71000c,0x25c1146c,0xc8dd1,0x1ef1ad75,0x873e33c1,0xa3310078,0xc8660,0xf60bca44,0x710018c0,0xc0dbc001,0x1889c7ca,0x3efd7100,0xd125c0c3,0x71000c8d,0xc0ae343b,0xc9313d6,0xed27100,0x3417c09e,0x33000c99,0x5093e873,0xc1289501,0xc0907232,0x18a659fb,0x7a3c3100,0x71000cac,0xc09e0ed2,0xcb1bced,0x343b7100,0xc648c0ae,0x35000cb5,0x8c33efd,0xc0014201,0x90c0db,0x90c00026,0xc0002600,0x260090,0x350090c0,0x9039c000,0xc0003500,0x260090d0,0x90c000,0x90c00026,0x180200,0x2009002,0x90020030,0x480200,0x2009002,0x98020060,0x780201,0x201b002,0x18040090,0x1b00400,0x44,0x4401b0c0,0xc0000000,0xf84401b0,0xb0bfffff,0xfff84401,0x1b0bfff,0xfffff844,0x401b0bf,0xd6350018,0x309313,0x2016802,0x80020048,0x600201,0x2019802,0xa8020078,0x6f103,0xa45c12c0,0xa5101fc0,0xc1,0xa724a0c0,0xae37bec0,0x4e71000c,0xc117e7,0xca9fd,0x1e64ef71,0x8c0d3ec1,0x1262000c,0x8ec10598,0x7100a876,0xc10f71d3,0x188b5b1b,0xbca4400,0x24c0f6,0xe0e77171,0x9a7df3c0,0xa0310018,0x60a724,0xfffff8b1,0x22797bbf,0xb380d4c1,0x12310018,0x27c0598,0xfffff8b1,0x23ddc1bf,0x8e1784c1,0xee710018,0xf7c0cd33,0xcb432,0xf60bca71,0x959112c0,0xb671000c,0x54c0af4d,0xc9156,0xbc48f731,0x540c0060,0xe7713500,0x350030e0,0xa81e64ef,0x33ee3500,0x44003ccd,0xc117e74e,0xf74400e4,0x78c0bc48,0x71d33500,0x3100f00f,0x88af4db6,0xbd14f102,0xc1358637,0x2dc123dd,0xf6c19a8e,0x2ab953cf,0x12c12283,0xbdc19591,0xef358637,0x54c11e64,0xc9156,0x17e74e34,0x4400c0,0x2c0f71d3,0x12004401,0x1200598,0x1200017,0xe7710044,0x170078e0,0x44009c00,0xbc48f700,0x1f100c0,0xaf4db600,0x9a8f94c0,0x807358c1,0xa7161a39,0x830090,0x12000000,0x98c0a45c,0x240101,0xa4fbfaa5,0x5a1a93c1,0xbc10b838,0xf7005301,0xa4c0bc48,0x600101,0x1017403,0x5c030078,0x900101,0x7001804,0xc00101d4,0x37be3500,0xb100d8ae,0xc1a50349,0xb60637bd,0x20227ff4,0xfc0401,0x9fc723b1,0xc44674c1,0xf610303f,0x10f10090,0x3f445415,0xc0f60bca,0xc1a11f2b,0x3f92b4c8,0xc1052fbe,0xc19e63de,0x3f91e122,0x380555ae,0x240401,0x5bfffff4,0xc181e53b,0xc1186ee8,0xc09edfc2,0xc1b22a50,0xc117af12,0xc06d176e,0xc1ae6f10,0xc115f291,0xc058d8a1,0xc18035f0,0xc116cf1e,0xc0a58944,0xc1ae6d05,0xc1172886,0xc05c4824,0xc17cfbf2,0xc117e5be,0xc0b2116f,0xc17e020e,0xc118eba7,0xc0b16c70,0xc1aa0e7b,0xc1166a4d,0xc04d9d3d,0xc1aa2ac8,0xc11768ad,0xc052aeef,0xc1a6dc73,0xc115aebd,0xc0465de1,0xc179f5b8,0xc118edbc,0xc0c1b385,0xc1794662,0xc11828ed,0xc0c32ced,0xc17c2b48,0xc11994fd,0xc0bc24a7,0xc1a4c2be,0xc116aecd,0xc045de6a,0xc1c448bb,0xc118fa5a,0xc0d66506,0xc1a2d647,0xc11742ad,0xc0478e54,0xc1a030b8,0xc1165d0d,0xc0424f8b,0xc176e520,0xc1193f6f,0xc0d51177,0xc177403a,0xc11a6f9a,0xc0dce332,0xc19cfdd6,0xc115a087,0xc041c2a0,0xc1c2f38c,0xc119872a,0xc0c8b0f5,0xc19cdc02,0xc1171df9,0xc0465140,0xc1c1d23a,0xc11746c8,0xc0b7dc62,0xc1983c9b,0xc11695dc,0xc0490264,0xc1c1d21e,0xc11823c7,0xc0b8aa41,0xc1989d5c,0xc1174f7a,0xc04c37ca,0xc1c16f82,0xc1195b89,0xc0ba0ee0,0xc1938df4,0xc1161cf0,0xc0518cef,0xc193f7c5,0xc117658d,0xc055e647,0xc1bf257b,0xc118aa3b,0xc0a7b8fa,0xc18f9ba8,0xc1170143,0xc060b6f6,0xc18d327b,0xc1161bdd,0xc0685116,0xc1bdf24e,0xc1176ff1,0xc09e033e,0xc18c9f3f,0xc116ed8e,0xc06ce61d,0xc1bd7d8e,0xc118d22f,0xc09f9635,0xc1884c2b,0xc117855c,0xc0830818,0xc1b75804,0xc116a696,0xc081e7ab,0xc1b626c6,0xc117f6ab,0xc0815a5c,0xc1849f8c,0xc116ff00,0xc08f62c5,0xc184be6a,0xc117e850,0xc0907e7c,0xc1b54d96,0xc1171908,0xc0795d4a,0xc183ed5e,0xc118a36b,0xc096df5b,0xc18186f4,0xc1177804,0xc09e7834,0x41c69921,0xc0bf4b21,0xc0a58f7e,0xc186d524,0xc10e6666,0xc0a2fd9c,0xc0f092cf,0x0,0xc0841eed,0xc0f1249c,0xbdf43a64,0xc083faf8,0xc0f29e8a,0xbe6b8887,0xc0840aa6,0xc0fb7b78,0xbee096dd,0xc0840aa6,0xc0ff3d27,0xbee7f584,0xc0840aa6,0xc1068d7d,0xbdec892b,0xc084034f,0xc106d2bb,0x4f10048,0xc1017e4d,0xbedf8573,0xc0840aa6,0xc105dd62,0xc6461fa,0x7004f100,0x26c0ee60,0x83bbf1c3,0x10c08596,0x14c0f7f9,0x18c9ea,0xb9e610f1,0x8f7ec104,0xaa4bea2,0x8ec7c084,0x5e5bc107,0x86f9be09,0x3c34c085,0xd9bac103,0x710024c7,0xc0f4f32e,0x24a57a9a,0xd41cf100,0x71c10689,0xf83df43b,0xdfc083fa,0x87c105cc,0xa43e6b88,0x67c0840a,0xffc1015e,0xa63ee096,0x1ec0840a,0x84c0fefb,0xce7f5,0x1d4b04f1,0x892bc0f1,0x34f3dec,0x3baec084,0x8573c0fb,0x710018df,0xc0f27d82,0xc64623d,0x1f9b7100,0xea14c103,0x71000cc9,0xc0f4c47a,0x54a28f7e,0xbfdf7100,0xd9bac0f7,0x710018c7,0xc104a28d,0x18a57abc,0x310f100,0xdac1061b,0x87bdd592,0x8ac05f34,0xd5c105b2,0xbc3e26d0,0x3cc05f3f,0x6fc10392,0xcaa83,0xf14a04f1,0x4b7fc0fe,0x34873ed8,0xe519c05f,0x45ddc0f6,0xf10018a8,0xf2de4828,0x269403c0,0x5f30343e,0xf1d745c0,0x5f99c4c0,0x5f44e5bd,0xf4ab52c0,0x84f82fc0,0x5f5743be,0xfa1c02c0,0xc5f783c0,0x5f3fbcbe,0x7b9dc0,0xd372e7c1,0x9771000c,0xddc103a9,0xca845,0x6ae6f8f1,0xc0f5,0x3f4f0000,0x3105c058,0x6388c0f8,0x3bd1be5d,0x14bac058,0xdc12c0fe,0x3fbcbe98,0x20d5c058,0x302bc102,0x3ce6be84,0x90dc058,0xd7edc104,0x3f2dbddd,0x369cc058,0x64b6c104,0x3f183db5,0x467bc058,0xa234c101,0x38153e94,0xc964c058,0xee1cc0f8,0x37093e73,0x57e0c058,0x1d19c1ca,0xc3d2c090,0xf5953fa0,0x1fefc1c6,0xf31bc07a,0xf4953f98,0xe729c1b0,0x8f97c077,0xee2b3f98,0x7fdec1ab,0x1acc09c,0x36c43fa0,0x5f31c1ad,0x81f1c084,0x71543f9b,0x6b72c1c6,0x68fdc07b,0x8ae83f58,0xf35ac1c9,0x471bc088,0x69943f60,0x6b33c1ca,0xe8b8c097,0x60a23f68,0xb14fc1ca,0x699cc09e,0x60a23f98,0x558dc1ca,0x3259c0aa,0xfa3c3f53,0x5929c1ab,0x53dfc0aa,0xefe93f49,0xa8e5c1ab,0xfa40c098,0xd943f66,0xc109c1b0,0x2d5ac07a,0xcff63f58,0xf35ac1ac,0x471bc088,0x71003c60,0xc09f912c,0x3c30e9c4,0xf914f100,0xb1c09f92,0x853f2bfa,0xc1ca2e,0xc0a000,0x98c063c6,0x31c1c9f7,0x53c0ab33,0xcfc06978,0x18c6ba,0x81af4f71,0xc60484c0,0x3710018,0x6fc0828b,0xcb72d,0x83537862,0xc0e86c0,0x2a04f100,0xa8c069ff,0x33c1aab1,0xb1c0ab33,0xfc0186c,0xcabea,0x30e004f1,0xf47ec00c,0xffd4c177,0x2221c0aa,0x9e74c067,0x7100187a,0xc01af6d3,0xc78205c,0x14a97100,0x1a0ec027,0x71006c78,0xc026eae2,0xc7ab0d6,0x11a57100,0xe13fc01b,0x71000cab,0xc00d2357,0xcaa8f35,0xdf377100,0x1473c018,0x31000cb7,0x906b5a21,0xfbfff300,0xc0a00000,0xc0835378,0xc1b595c1,0xc09fffdc,0xc05ed94d,0xc1b4bc4e,0xc0ab3c3c,0xc05d6d55,0xc1b2a055,0xc09fc8da,0xc0652a80,0xc1b2eef3,0xc0aaa079,0xc0691a76,0xc1b24f6a,0xc0a64da5,0xc07bf7e8,0xc17816ea,0xc0a37553,0xc080d445,0xc1b260a0,0xc098bb9d,0xc0859f34,0xc176d7e0,0xc09a06a7,0xc085271e,0xc1740060,0xc094af90,0xc085c23b,0xc177f47b,0xc09fb1b8,0xc065d096,0xc1778487,0xc098247d,0xc0748c3f,0xc171594e,0xc094f410,0xc0750cc8,0xc16eed69,0xc098b726,0xc085b9e0,0xc16e7b39,0xc09b9fa1,0xc0750d5a,0xc12e3a02,0xc01b9e3d,0xc0750d5a,0xc10fe9a0,0x40f8f9f4,0xc0750d56,0xc10a569b,0x40f1a223,0xc0750d56,0xc0e98288,0x410a348e,0xc074d82c,0xc1341f3a,0xc0d0e4b0,0xc0750d5a,0xc1066d05,0x40e4afc0,0xc0750d56,0xc16b84d0,0xc0d11df3,0xc0750d5a,0xc16e28e6,0xc0cb4001,0xc0750d5a,0xc1b260a2,0xc09813e8,0xc074c090,0xc1a8a2b5,0x40cd487c,0xc0750d56,0xc1b260a3,0x410a5ca6,0xc074d28d,0xc1a011db,0xc0083187,0xc0750d5a,0xc19d1b8b,0xc01ce7c9,0xc0750d5a,0xc13327ad,0x410a6264,0xc074c6d2,0xc11a7e1f,0x40f6e8c0,0xc0750d56,0xc1213e3d,0x40e67c20,0xc0750d56,0xc1334d41,0x409b56fc,0xc0750d5a,0xc120bc38,0x40d4833e,0xc0750d56,0xc11c8d1b,0x40c90e9f,0xc0750d56,0xc1161054,0x40c351fe,0xc0750d56,0xc0e9828a,0x3f2147ae,0xc0750d5a,0xc1082a74,0x40cfb64c,0xc0750d56,0xc10f02e8,0x40c4d6e4,0xc0750d56,0xc10529a4,0x3f198d47,0xc0750d5a,0xc12e153d,0x401faaef,0xc0750d5a,0xc1369011,0x40949f80,0xc07507a3,0xc129190c,0x40076f37,0xc0750d5a,0xc10b14da,0x3e0a2a91,0xc0750d5a,0xc1030fe7,0xbf0ffd72,0xf1006c5a,0x11eb8518,0x750d5abf,0x9c02efc0,0xe8de76c1,0x750d5640,0x932d6fc0,0xa3798c1,0x74d2bf41,0x9e39ffc0,0xf4ff9bc1,0x3c710018,0x9dc1a1a9,0xcfb12,0xc6f1cf1,0xebbcc129,0xd5ac003,0x6567c075,0xed46c108,0xd5abec6,0x60cc075,0x458dc193,0xd5a409a,0xbe19c075,0xd6efc19b,0x710030d5,0xc19e7f8e,0xcc6f7b6,0xa304f100,0xbcc1915c,0x174094c9,0xcc0750d,0xd1c1a565,0x18f976,0xa904cf71,0xedf3acc1,0x2871000c,0x6dc1a200,0xcc18c,0xa9fd8871,0xdb4ae6c1,0x4f1000c,0xc12bbc95,0xc094b3dd,0xc07515cf,0xc1310d54,0x849915c6,0xa4436200,0x754fc19d,0xd620108,0x36c1a5b6,0x710150dc,0xc131ae6c,0x24cac6c3,0x3b0d6200,0xc2cac1a0,0x4f10114,0xc16e3a84,0xc0cac6c5,0xc085b9e0,0xc16bc9b5,0xcd0e4b2,0x641f3100,0xb1022834,0xc085b9e0,0xc131c00c,0x18cb3fff,0x687c7100,0x56fec131,0xf2000c9b,0x2dfad2cb,0x9484eec1,0x85b8c7c0,0x28993ec0,0x983032c1,0x741612c0,0x28551cc0,0x9d58b6c1,0x841360c0,0x27d3dec0,0xa47645c1,0x7f91efc0,0x2a095fc0,0x972672c1,0x85a798c0,0x27dbc4c0,0x9f4902c1,0x69eca7c0,0xdd1fd8c0,0x9ffde9c0,0x5e4ca1c0,0xe757d6c0,0x9fdaeac0,0x62faf0c0,0xe9b5f8c0,0x9a40cac0,0x73f199c0,0x27f470c0,0xaaf89ac1,0x676184c0,0x27b6a5c0,0xa00000c1,0x252ebec0,0x279a04c0,0xab3333c1,0x241b2ec0,0x24af62c0,0xa00000c1,0x1a6cdfc0,0x24a4efc0,0xab3333c1,0x1a8616c0,0x4badec0,0xa00000c1,0x190e9dc0,0x1cbe6c0,0xa00000c1,0xe7e52c0,0x9af304c0,0xa00000c0,0x828b03c0,0xd69a82c0,0xa00000c0,0x6bbb49c0,0xc4f59c0,0x7848f500,0x47c08353,0xc08acc,0x62c0a000,0xccc06866,0x31c0d750,0xf3c0ab33,0xb3c06738,0xcac0df88,0xa1c0ab32,0x9c05e4c,0xb5c0e8c1,0xd3c0a98c,0xb3c06fbd,0x2dc0e9c3,0x12c0a542,0xb0c07dfa,0xac0e558,0x4fc0ab21,0x9bc0635a,0xb2c0e982,0xefc098f2,0x2708590,0xb9e000f1,0x3d40c085,0x75bcc103,0xb9e03f1e,0xf2024085,0xe5a5b90f,0x85b9e03e,0xb08a4c0,0x1b1b7ac1,0x85b9e03c,0x68cc5c0,0x1d3ddc1,0x3cb9e0bf,0x47ae3100,0xa2003021,0xc0e98288,0x410cde87,0xc46c1,0x3d3d04f1,0x9952410e,0x8288c067,0x1efcc0e9,0xe7f74113,0xf1000c70,0x1406ef04,0x560b8541,0x3327adc0,0xe57bcc1,0x663dc541,0xf771000c,0x5c410bf7,0xc8573,0x11e9a171,0x79474141,0x6ff2000c,0x41142e80,0xc05c9b84,0xc133a867,0x409915cd,0xc085b9e0,0xc137c484,0x40949f99,0xc085b99d,0xc13c62b4,0x4098ced3,0xc073ca1d,0xc13cc69b,0x40a0365b,0xc082fff6,0xc13a020e,0x409575cf,0xc075012a,0xc13aacd3,0x4097278d,0xc085aa65,0xc18e60a3,0x40aa18ec,0xc06ee808,0xc13cc144,0x40aacfe6,0xc068a52b,0xc18e83e8,0x409ce5b4,0xc084a71a,0xc190a395,0x40944cbe,0x30c6d4,0x72dc1cf1,0xc77e409f,0x9817c066,0x28c6c18e,0x8bb14098,0x60a3c074,0xe2dac18e,0xbc8440a9,0xc1443f6e,0x6664c13c,0x979e40aa,0xf1000c56,0x9f868a00,0x6706af40,0x930966c0,0x9a20c5c1,0x6fa200b4,0xb7c1932d,0xf3410ce6,0x4000c3b,0x6f440120,0x20c1932d,0x2d6f4401,0x120c193,0xb260a335,0xf50120,0xc1b260a3,0x410bec7a,0xc0857f13,0x20b260a3,0x60a33501,0xf10120b2,0x82a7404,0xed1683c1,0x85b9de40,0x10cfd0c0,0xf9754fc1,0x571000c,0x11c1066d,0xcd81d,0xa86d5671,0xcc3240c1,0x4f1000c,0xc19d1119,0xc01cb55b,0xc085b9e0,0xc1a0188f,0xc08c4a4,0x35a47100,0x79bcc120,0x710024eb,0xc1197f07,0xcf7772b,0x3e3d7100,0x50afc121,0x71000cd6,0xc11c09b8,0xcc844fe,0x6c217100,0x26c2c115,0x71000cc3,0xc10c9c6b,0xcc6d261,0x3a053100,0xb103fc2e,0xc085b9e0,0xc1290c6f,0x807c2c6,0x7f8e7101,0xd519c19e,0x710024f5,0xc19c247c,0xcea2279,0x297100,0x4062c1a2,0x62000cfb,0xc1295ed4,0x903183,0x9b908a31,0xde710468,0x5dc085b9,0x60c9ceb,0x85b9de71,0x9fd805c0,0xdeb10450,0xe4c085b9,0xa1c1a943,0x3cec3e,0xa5b60d71,0xf8f09bc1,0x1671000c,0x31c1a9f2,0xcd9ef,0xa4710a71,0xc1c00cc1,0x7331000c,0x6302f4b,0x85b9e0a2,0x9db6a7c0,0xa8aaefc1,0x34bf6200,0x6f3bc1a0,0x7d3100a8,0x7e004f7,0x19551971,0x1e887c0,0xea84000c,0x59c00f91,0x40c0d64f,0x19d93108,0x71000c98,0xc081af4f,0xc8a8d11,0x1d18f100,0x12c064c9,0xa7c1018e,0x9cc0a9db,0x123f5934,0x96c1018e,0x8fc09e41,0x413f998a,0x56c101a2,0xeec0988f,0x18677c,0xf408c404,0x896cb301,0x9782a5c0,0x68d10fc0,0x8982883f,0xf308e8c0,0x8940333e,0x993487c0,0xa1a6cec0,0x8dfb503f,0x86429ec0,0x5e6506c0,0x8d217f3f,0x8754ebc0,0x9c8b22c0,0x9a14a93f,0x79225bc0,0x98c6bdc0,0x9d8fbb3f,0x798d09c0,0x57c19cc0,0x171603f,0x8f91ffc1,0xa07bfec0,0xf56fe73f,0x9d8ebc0,0x82880ef3,0x2e6dc089,0x69e4c0aa,0x5ee53f59,0x6b72c0f3,0x690ec07b,0xc53f3f58,0x6c60c0ff,0x27adb109,0x583ac133,0xc1f8410c,0x7103b448,0x410df784,0xc539824,0xf887100,0x68e0410b,0x71039c47,0x411156fb,0xc3f20d5,0xd4e87100,0x1848410b,0xf4002431,0x64a4f6ff,0xd06410e,0x82b2c033,0xeca4c0e9,0xe81940bd,0x82ebc020,0x110ac0e9,0xc11e40bb,0x4f53c036,0x171ec11e,0xde940ff,0x8d40c043,0xb7dfc123,0x5c0740ef,0x3fe5c040,0x74f2c115,0x6c6e4103,0x2769c044,0x1e62c133,0xbeb640bb,0xbc46c036,0x67fc123,0xd19640d0,0xbc49c03a,0xf883c11f,0x1cb040bf,0xd759c038,0x1f09c10b,0x9b1b4101,0x930cc043,0xf99c104,0xc6f840f2,0x23ddc040,0x1bb5c104,0x16040d1,0x15e5c03b,0xa8aec107,0x898b40c2,0x7df0c038,0x4821c104,0x27c440f1,0x99a0c02a,0x886c109,0xbcf54100,0xa908c02c,0xf1e7c112,0x1b544103,0x1197c02e,0x9bfec11c,0x4a274101,0x2a6dc02d,0xa125c123,0x8f6040f3,0x75eac02a,0xe6c1c123,0xcbd540cc,0xbadec023,0x1776c11e,0x8be740c0,0xed08c021,0x1867c117,0xbce840b7,0x2657c033,0xc32fc116,0x4f7640ba,0x86f7c01e,0xe6c3c10e,0x81f940b7,0xdb34c034,0xae9c109,0x269140bf,0x8288c021,0xf4a1c0e9,0x75a340a3,0x27adc007,0xac45c133,0xf0ae40a3,0x27b2c004,0x3d1bc133,0xcf640ab,0x8275c024,0x2f71c0e9,0xd4c740ac,0x27c5c025,0x293fc133,0x8db040b0,0x279ac00e,0xe450c133,0xe79240bd,0x5507c020,0x2c6fc104,0x21940ce,0x827ec024,0x5d76c0e9,0x248d40b0,0x8288c00e,0x76f1c0e9,0xdb5940a2,0x82883f86,0x23c8c0e9,0x7ff640ad,0x27ad3f98,0x65e2c133,0x206840a2,0x27ad3f86,0x621ec133,0xcfee40ad,0x27ad3f91,0x7606c133,0x310e409f,0x82883fca,0x9fcbc0e9,0xa498409d,0x27ad3fca,0xaa91c133,0x7a42409a,0x82883f9e,0x752cc0e9,0x50a4409a,0xc3713f9e,0xc176c132,0xaaf4084,0xdc033f98,0x90bc12b,0x88b5406a,0xa2d33f92,0x54e3c0f8,0x692f4069,0x4afd3f92,0x24c0ea,0x6c9c19f4,0xff11c0ea,0xbf3c4083,0x33613fc4,0x9153c0f7,0x3f964068,0xd0d3fbf,0xcdffc12c,0x1d694067,0xb2a23fbf,0x24c132,0xb260a335,0x6f44027c,0x7cc1932d,0x2d6f4402,0x27cc193,0xb260a335,0xa335027c,0x27cb260,0x932d6f44,0x53027cc1,0xc1932d84,0x4402700c,0xc1932d7c,0x76350288,0x27ca7f4,0xaa936d53,0x27cdcc1,0xa36cbf35,0x8135027c,0x27cb260,0xaaaaf053,0x27c7dc1,0xa8aaf135,0x7853027c,0x8c19eb8,0x5353027c,0x9bc19b16,0xbc53027c,0xb0c19ade,0xbf35027c,0x27c9c57,0x9b0bc635,0x9d35027c,0x27c9d99,0xa2215135,0xf5027c,0xc1a6d599,0x41019bfd,0xc02d4a27,0x7caa6203,0x87c25302,0x7cc3c1aa,0x2a3c3502,0x35027ca8,0x7ca4c351,0xdff93502,0x53027ca3,0xc1a01048,0xb1027cc5,0xc19dba68,0x40bf0ae7,0x44212691,0x27c040a,0xb260a335,0xa631027c,0x27cb260,0xcf204f6,0x2d6bc024,0x2f71c193,0xd4c740ac,0x60afc025,0x25027cb2,0x27cb260,0x9af75035,0x6d44027c,0x7cc1932d,0x2d6f4402,0x27cc193,0x932d6f44,0x35027cc1,0x7cb260a3,0x60a33502,0x35027cb2,0x7cb260a3,0x2d6f4402,0x27cc193,0x60a301f4,0xaa91c1b2,0x7a42409a,0x2d6f3f9e,0x27cc193,0xb22e8653,0x25878c1,0xae989044,0x350270c1,0x8896d343,0x5f8c3502,0xf5002493,0x93967918,0x80f12cc1,0xc3ad9f40,0x97898e3f,0x665f85c1,0xbedd4840,0xae24e73f,0x66e32ac1,0xbef45140,0xb1f7993f,0x8f10024,0xc13cbb13,0x40982817,0x3f768dda,0xc18e657f,0x4097b98a,0xd47705b8,0x2e30f107,0xcf409f48,0xa33f4585,0xd4c18e60,0x16409f57,0x53f46dd,0xc1c13ca9,0x61409e49,0xee3fa4fa,0xb4c1440c,0x874079ae,0xe43fa918,0x30c143db,0x74407967,0x6d3f7897,0x87c13dc2,0x188a5e,0x3d86c771,0x8b7e8bc1,0x53310018,0x248ad3,0x188708f1,0x66dd3fa9,0xce03c18e,0x6534409a,0xfde23fa7,0x7e8fc18d,0x3100308b,0x548abace,0x9774b100,0xe00f3f78,0x5e8bc18d,0xf5003c8a,0xd3caf33c,0x136a14c1,0x56995e41,0xd3fc38c1,0x134129c1,0x56925241,0xdf8fafc1,0x12e0e4c1,0x569c2241,0xdf45cdc1,0x131e45c1,0x56910e41,0x4b0b1c1,0x3af0e5c1,0xa7d0d0c0,0x20050d3f,0x600000c1,0xa7d0d0c0,0x4b0b13f,0xd35000c,0x242005,0x692d12f3,0x364cc104,0xa1b2befe,0xba313f4f,0xd86bc104,0x86c3e6f,0xfa5f3f36,0x5886c104,0x3cea3e1d,0xc81cf100,0xd9bef545,0xd53fa7d0,0xf1c103cb,0xd03eab2a,0xa4be93ef,0xa3c10467,0xc7c0601e,0x2d3f4fa0,0xd0c10469,0xa1c039d2,0x244fa1,0x4b2cf5,0xeff2c060,0x7c47be93,0x7e1cc109,0xd0c03ee7,0x8f593fa7,0xc376c109,0x7e63ef6,0xd6bf3f36,0x618dc1a9,0xd0b73e2e,0x681f3fa7,0x100ec1a7,0xd0e13eec,0x2863fa7,0x35006caa,0xc960286,0xbebf3500,0x71000c8c,0xc1960286,0xe4a28790,0xbebf3500,0x35000c8c,0x242cb0b1,0x38403900,0x400183f,0x40350030,0x243f38,0xcbd56bf2,0xf095c12b,0xefd0bf08,0x824ebe93,0xd45ac116,0xefaebf0f,0x76dcbe93,0x5343c116,0xa1d3bf02,0x87593f4f,0xda62c111,0xa190bf4b,0x643f4f,0x3d25c112,0xf013bf5c,0x33e7be93,0xdb44c116,0xa16ec038,0x63413f4f,0xdec111,0xa1c2c025,0x24f13f4f,0x2f16c112,0xefaec024,0xc605be93,0xe4ebc116,0xeff2c035,0xe9e8be93,0x5d74c120,0xeff2c037,0x4c91be93,0xa1b10198,0xe83f4fa1,0x46c120e9,0x12ca451,0x204c9171,0xa31698c1,0xc1620144,0xa5c1166d,0x71002412,0xc1156521,0x18871dbb,0xcb927100,0x696c10b,0xf1000c91,0x10c36904,0x9ffafdc1,0x4fb7d8c0,0x1a73173f,0x6cab7ac1,0x48710018,0xe9c10f76,0xc7d7e,0x1a337271,0x809581c1,0x4f1000c,0xc0ef4771,0xc08ddae4,0x3f5007dd,0xc1116f5a,0x18647625,0xec10f100,0x28c0ef68,0x15c08c1a,0x22be9336,0x72c110f1,0xadc0a2b3,0x38be93c1,0x3dc10bea,0x9c90f0,0xb080a453,0x242ac1,0xaa74f435,0xf501e0,0xc1a499f4,0xc09a6b68,0xbe93f013,0xcc9be5eb,0x74f43500,0xf1000ca4,0xa6edec04,0x90af8ac1,0x93efd0c0,0xa43465be,0x813f75c1,0x3e710054,0x96c1a20c,0xc86cd,0xa4826b71,0x6e4e12c1,0x8762000c,0x1ec19f66,0x710024f0,0xc1a1811b,0x185dff8f,0x19b87100,0xa487c1a1,0x71004835,0xc1a35073,0x1823202e,0xaac7100,0xbde8c19f,0x35000c6f,0x689be5eb,0x53bd7101,0xfb05c1a3,0x3501d457,0xb8aa74f4,0xf7db7102,0xd2aac1a0,0xf501c80e,0xa273b500,0xaadeb1c1,0x93efd03f,0x9674f4be,0x17710210,0xacc11a73,0x548010,0x15b21435,0x5f7100a8,0x95c10f67,0x187ed3,0x1a337371,0x6ba1cfc1,0x6171000c,0xc2c11622,0xc5f6c,0x113faa71,0x65b0d1c1,0xf435000c,0x1089674,0x2bcbd535,0x5435000c,0x7813ce,0x5d5d10f1,0x6666c114,0x8183fa6,0xfd433f36,0x9bd4c1a9,0x83a3e71,0xc7753f36,0x40b8c1a7,0x35000cf2,0x24a22c30,0x2863600,0x2503e4aa,0x384aa27,0xaa028635,0x493503f0,0x390aa26,0xaa264935,0x24f503e4,0xc1a140eb,0xbf02f955,0x3f4fa16e,0xc1a39efd,0xbf5009c4,0x3f4fa1c2,0xc1a11f6f,0xc03904cd,0x3f4fa1d3,0xc1a3a283,0xc0260f1b,0x3f4fa17f,0x6c9c5858,0x34963100,0x1300609c,0x40018a1,0x96350450,0x2b89c34,0x9eee5735,0x5d71027c,0x73c1a121,0x2648657,0x408500f1,0x3622c1a6,0xa1b2c091,0x83663f4f,0xa201b0a4,0x3f4fa1a1,0xc1a2c18a,0x5459c5,0xf3b904f1,0xc834c1a3,0xb3eac0a0,0xf8063f4f,0x4958c1a3,0x44003c83,0xc1b08902,0xe05302b8,0x29c19fea,0xf502b8,0xc13f8e12,0xc0a33333,0x3f360807,0xc8c93d6,0x8e129300,0xc13f,0x1818bf00,0xc0400,0x35f291f4,0xde05c0ca,0x4fc63f11,0x715e3f57,0x7ea2c0e7,0x4fc6405a,0xde573f57,0x5404c0d8,0xccea4068,0x450f3f59,0xa559c0bb,0x4fc63e74,0x8f693f57,0xe4b8c044,0x82e83ed0,0x9ecc3f5a,0xc272,0x4fb5c090,0x80103f57,0xb639c263,0x82e8c01e,0x6d403f5a,0x1e08c039,0x6d01bf89,0x70b43f5b,0x1cc1c267,0x82f9bf99,0x49ea3f5a,0x4e1ec275,0x4fb5c075,0x85503f57,0x5726c25d,0x82e8c046,0x24b73f5a,0x1130c04b,0xe4acc08f,0x8d713f57,0xd2e9bf95,0x82e8c038,0x23463f5a,0x243edf,0x6849ea96,0xc2,0x48e800,0x300a801,0x3f940060,0x3f5a82f9,0xc2571a9e,0xe1b4003c,0xe3c0c9ec,0xa740887f,0xa85bca,0xf1003001,0xbc274810,0x8f341ec0,0x582a3540,0x64a8283f,0xc4a4dc2,0x5a82f940,0x1cee803f,0xf39160c0,0x6c710048,0xe5c260ac,0x1838d2,0x5ac734b4,0x46928ac2,0x58977440,0x1801009c,0xe07a7100,0x66663ce3,0xf3000c46,0x51f8226e,0xf3918ac2,0x5a82e8bf,0x4fe9483f,0x4d65d4c2,0x5a82f9bf,0x332b343f,0x74a59cc2,0x574fc6be,0x8cad713f,0x3b35053f,0x593b4b40,0x31b99a3f,0x917c6c2,0x574fc6bf,0x4f7e123f,0xd0e4dac2,0x5a82f93e,0x3a9a993f,0x991d0d40,0x5a82e8bf,0xe4318c3f,0x980fdc40,0x574fc6be,0xf1c03c3f,0x11de0540,0x574fc6bf,0x3327f83f,0x4cba73c2,0x574fc63e,0x51f8223f,0xb49bc2,0xf720d153,0x1803d3f,0x321cb971,0x26f61c2,0x4f101d4,0x40482e17,0x0,0x3f5a82f9,0x40e2471b,0xc84b8994,0x4504f101,0xbdc22da4,0xe3bf008a,0x523f5971,0xc4c255b0,0xcc2bd1,0x1008403,0x51710108,0xbec22e4e,0x480b2e,0xf05f4c71,0x106a4d40,0x7f71000c,0x224001a0,0x15c18fa,0x864604f1,0xefa6c203,0x4fb5c023,0xc1ec3f57,0x332fc201,0xf1000c3b,0x2c6ae010,0x9918a0c2,0x5a82e8bd,0x51775e3f,0x1d799641,0x593b3ac0,0x457d823f,0xc6669041,0x1271012c,0x3c410132,0x120a969,0xdc2604f1,0xe4da413e,0x82f9bed0,0x9b8e3f5a,0xa3c24163,0xf100483f,0x27c7204,0xaeaa6d41,0x574fc63d,0x396b83f,0x1de66dc2,0x4af301c8,0xc22d5b88,0x3ef13922,0x3f5b4fc6,0x40fc9fc5,0x3efe3c75,0x3f5b137b,0x4141a4ae,0x3f891dde,0x3f5971e3,0xc1d22b54,0xc08de313,0x3f58e94f,0xc1cc2c3b,0xc0719c0b,0x3f59ee03,0xc2022280,0x403a2c1b,0x3f574fc6,0x414a336a,0x3fffb1af,0x3f5bcaa7,0x4157a52a,0x440108d9,0x4176f91a,0x8744027c,0xe841a5af,0x720d4402,0x2e84187,0x8f535544,0xb402dc41,0xc1bcbfc0,0xc03b3676,0xc0590e99,0xa80100,0xab05c344,0x4402f441,0x419105c3,0x540302c4,0x240100,0x1004803,0xf120174,0x40c10060,0x3f5a82f9,0x417d484f,0xc3fa3c2,0xaeb400,0x928a416c,0x4a0e4046,0x100545c,0x5e71003c,0xbdc1bdf4,0x248f7b,0xebec04f1,0xd6fc1bb,0xfeef4039,0x93ec3f58,0xddfdc1b6,0x71002468,0xc1b929ae,0x241e2546,0x3d8f7100,0x6ad5c1ba,0x62000c88,0xc1b30ca0,0x3f0e81d,0x908e7371,0x6ccccdc0,0x4f10174,0xc1b97228,0xc0253f4f,0x3f5916db,0xc07c053e,0x1878a516,0xa71cf100,0x48c0d624,0xd5bef08a,0xf3f5923,0xe3c0ddc4,0x8abce670,0x373f5a1c,0x4dc0c3c2,0xe2bf04f5,0x113f5b73,0xa6c0bc0d,0x1d4875e,0x828850f5,0x4a38c00a,0x82e8c00c,0xa0f3f5a,0x6666c02a,0x4fb5bfc6,0x370f3f57,0xa0d7c0da,0x82f93eaf,0xadec3f5a,0xa3c2c258,0xb62c403f,0xfa443f5d,0x10e9c0cf,0xb61c3f0c,0x67f13f5d,0x1aacc0c2,0xb61c3ef4,0x46803f5d,0xd29ac0e7,0xb62c405a,0xad303f5d,0x7f63c0b9,0xb61c3d59,0x3504805d,0x5c5db61c,0x1c00f404,0x5f3f5db6,0x8ac053b6,0xfc08ea1,0x185cba,0x3006001,0xc010030,0xb5bd4400,0xcc0b4,0x643610f1,0x475c232,0xb61cbef8,0x58613f5d,0xfb98c233,0xb61c3dc4,0x824f3f5d,0x693c40e4,0xf10018a9,0xf7915804,0x1242c040,0x5db61cbf,0x31fd263f,0x5b739c2,0x240300a8,0x180103,0xcf5504f1,0xa55940e2,0xb61c3e74,0xd6f3f5d,0x504840ed,0x3002404,0xc0410270,0xc45db61c,0xe6683102,0x71000c1d,0x415c3c4a,0xc36d480,0xd59e7100,0x7a354101,0x44006c65,0xc1d56a75,0xac7100d8,0x9441024f,0x544b89,0x1036c03,0x6c0300c0,0xc0103,0x1024c03,0xb8710048,0xc0c1bd7b,0xc3c07,0xc89da871,0x6ccccdc1,0x3403000c,0xc0102,0x1003003,0x1803003c,0xc0100,0xbd82fb71,0x3c3cb4c1,0x5c71000c,0x5c1b4bd,0xc5d31,0x4cb04f1,0xff69c083,0x27a2c070,0x3acb3f5d,0x5dbcc0da,0xf400a8a7,0x6049ea20,0x4c5361c2,0x48cb6040,0x6049eac1,0x43a87ac2,0x486d2040,0x33dc9c1,0x99999ac0,0x641c82bf,0x17c6113f,0xa1b9b6c0,0x641c82be,0x9f101bc,0x5db61cbd,0x5b7a9a3f,0x8e8944c0,0x5f37a8c0,0xb902043f,0xf5bf62bf,0xf2b40030,0xcabe937b,0x82c0198d,0x5b8641c,0x5400b401,0xc261c810,0x6100247b,0xf9c264d4,0x306d13,0x4401f808,0xc25d26f8,0x1e31003c,0x630657d,0x1002407,0x10f100cc,0xc0daef11,0x406daf14,0x3f641c93,0xc0c723c6,0x408d36d2,0x3f5fbb84,0xc2596772,0x78145dc4,0xf203f200,0x1ac264d4,0x823f6d14,0x2f3f641c,0xc7c00d4f,0x71000c13,0xc0be198d,0x8cb1fe00,0x6ea4b401,0xef393f5b,0x542c010,0x100a867,0x10b40060,0x6ac261c8,0x933ff5bf,0x90641c,0x3006c01,0x180100e4,0x67727100,0x5dc0c259,0x44001814,0xbf17e5b8,0x2f3000c,0x3e78997c,0x4019bbc7,0x3f608e58,0xc255fefa,0x3500f062,0xf052f216,0x43127100,0xb264c232,0x35027000,0xe45249ea,0x5e304400,0x318c233,0x10dea953,0x120d740,0x35064804,0x485db61c,0x1c00f406,0x343f5db6,0x333fc984,0xd3bfecde,0x606133,0x3100f001,0x301b6156,0x1c823506,0x75063064,0x3f5db61c,0xd855fefa,0x6600400,0x5db61cb1,0x2daa503f,0x26f61c2,0x78030090,0x480100,0xb1063004,0x3f5db61c,0x3fdcc882,0xfcd93932,0x5307f600,0x43f8577,0xb4400c04,0x763f6692,0x36c20201,0xf2c00aad,0xb1060c5d,0x3f5db61c,0x4151ba06,0xe0bc9197,0x6480401,0x1c8207f2,0x34f23f64,0x3ff4160,0x92b4c00c,0xe7a3f66,0xb8cc414a,0x4f10258,0x416d0179,0xc019bbc7,0x3f608e58,0x4101a50e,0xa4a041ee,0xa24b7101,0xb772c1d1,0xf301d48e,0x2d5c9502,0xf3e985c2,0x6705423e,0x4cac363f,0xa8f941,0xd6f10f1,0x17c6c22e,0xb61c3f09,0xb35a3f5d,0xde3c4157,0x33d33fec,0x5aa33f61,0x3a11c1cb,0xa5003c76,0xc1ffb83e,0x402441f6,0x5b8d081,0x44029401,0x417a623a,0xf530234,0x6a418402,0xd36201b0,0x1a418a1b,0xf402a014,0x632cf608,0x10ef3941,0x67054240,0xc007e53f,0x234407c1,0x5a42afc0,0x480105c4,0x6c2b3100,0xe506188b,0x3f641c82,0xc1bc6626,0xc00bf9f0,0x6c008f,0x53025801,0x418a1bd3,0x5302940a,0x4184020d,0x44024c7b,0x41757fbe,0xcc080264,0x3cda7103,0x8918c1bd,0x5302648f,0xc1b60580,0x7102f410,0xc1b9dde7,0x1889993d,0x1604f100,0xb0c1bc5e,0xaf400a8e,0xfa3f59d2,0xd5c1b275,0x1860ed,0xc6a204f1,0x8fe7c0dc,0x7829be69,0xb3853f66,0x2a49c0d2,0xf4018c03,0xdddfd919,0x9a32b1c0,0x5db61cbc,0xc814293f,0xc307fc0,0x674fb5bf,0xc0e96e3f,0xe55f14c0,0x63879cbe,0xe92d2e3f,0x40048c0,0x1cb10a5c,0xe33f5db6,0x2bc0d909,0x198c46e,0x861efb71,0x765a86c0,0x74f400fc,0xc1bfeaec,0x4023650e,0x3f5ae632,0xc200355c,0xc0236128,0x3f5ac722,0xc202144e,0x40074c1b,0x3f5aa50d,0xc201460a,0x4017039f,0x3f556627,0xc1ffe256,0x400126d9,0x3ec2ba9d,0xc1c06e5c,0x4000dfa0,0x3ec2db83,0xc1c07886,0xc00126b3,0x3ec2ba17,0xc1ffeb48,0xc000d56f,0x3ec29a5f,0xc1fe6914,0x3fea20c5,0x3ec7e932,0xc1c1f1ca,0x3fea20bc,0x3ec7ecdd,0xc1fe6914,0xbfea20bc,0x18c888f8,0xbf84f500,0x3ec8854d,0xc1ffc396,0xc0002852,0x3edb3722,0xc1c08e40,0xbfffd1cc,0x3edb543b,0xc1c09745,0x40002863,0x3edb37eb,0xc1ffcb92,0x3fffc055,0x3edb1c22,0xc201ef1c,0xc009e600,0x3f664e48,0xc2007a98,0x4021109d,0x3f66e3c5,0xc201fcb3,0x400632d7,0x3f6651e3,0xc1bc7c2e,0x4009f113,0x3f665ebb,0xc1bffc20,0x4022270b,0x3f66fdeb,0xc1bf55b3,0xc020bd3c,0x3f665ebb,0xc1bc4ef4,0xc004bdb2,0x3f66fddb,0xc200322d,0xc0222fcf,0x45c2af1,0x82e8c0c1,0x71a83f6a,0x4a25c051,0x4000c8f,0xe8340b4c,0x5586a82,0x183d17,0x82f94045,0x3407446a,0x486a82e8,0x180100,0xbd7a7871,0x8fa1e4c0,0xfc04000c,0x82e83506,0x3506fc6a,0xfc6a82e8,0xe800f506,0x83f6a82,0x4140f2d9,0xe8bf0fb7,0x6e46a82,0x6a82e835,0xe8340708,0x45c6a82,0x82e83fc1,0xc9e43f6a,0xb739c22d,0xf5003005,0xc5b608,0xbb101341,0x6a82e8be,0x205a03f,0x8b595841,0x6a82e83e,0xe8350954,0x30c6a82,0x1001807,0xd004009c,0x82f9a202,0xfaa93f6a,0xd699c085,0x28040024,0x82e8b108,0x2a993f6a,0xffec0db,0x35005498,0x183f95e6,0xf8703512,0xf112183f,0x8240d31c,0x8c8c24c0,0xa72cf9c0,0x5581413f,0xb502e0c0,0xa6602dc0,0xc66ad13f,0x17f649c0,0xa49d9dc0,0x933c103f,0x76365dc0,0x8a710024,0x78c273b6,0xcb5ff,0xa53404f1,0x5895c274,0x2ac3c0b4,0xaf43fa2,0xdf46c27a,0xf1001882,0x79d1a61c,0x8ae8b4c2,0xa24817c0,0x6751fc3f,0xd3335dc2,0xa3f9c6bf,0x6538fa3f,0x15573fc2,0xa3f9c6c0,0xb83cd83f,0x7583ac0,0x20710060,0x92c2627d,0x1836e7,0x68a39471,0x5aa61ac2,0x20710030,0xe7c25f4e,0x184c00,0x5be38471,0x533333c2,0xb831000c,0x5dc6916,0xa3f9c634,0x7f3006c,0xa5ab7e40,0x5753d03f,0x4748f1c2,0xa50addc0,0x138f8e3f,0x6c43c0,0x351fda53,0x842bc0,0xb2890ef3,0xecabc0af,0x2d02bfcd,0xa3923fa7,0xa6b1c268,0xf9cf3f5a,0xa3b13fa3,0x8496bfcf,0x51fe7100,0x333cc267,0xf10018d3,0x74a70008,0xb43de0c2,0xa23af340,0x73a5d43f,0xb6084ac2,0xa72d0240,0x36d300cc,0xcf401557,0x2e3fa3f9,0x5dc04a39,0xbe4400b4,0xb4bf5387,0xfb747100,0xbf7bc260,0x71002444,0xc247afff,0x201a2f55,0xfe04f101,0xaec25361,0xb8c022d8,0x353fa2e8,0xd0c0f1c0,0x2460ed,0xc0393471,0x1b057c0,0x4f10060,0xc245471c,0xc03d08c8,0x3fa5e54b,0xc0e4446b,0x246ccd81,0xdc484400,0x1083ce3,0x50750c53,0xd855c2,0x6b760df4,0xc5acc051,0xf9c636a7,0xf3d23fa3,0xd19ac0af,0x2d023fb1,0x23763fa7,0x9cc24f,0xd96912b4,0x84fb6cc0,0xa46ed240,0x54010150,0xb0523500,0xf101504e,0x95863408,0x4748f13f,0xa54174c0,0x5753ce3f,0x4748edc2,0xa2e8b840,0x3b1300e4,0x2471012c,0xefc24798,0xa81dc5,0x1008403,0x7653012c,0x6ec24f23,0x4f10024,0xc2536200,0x4022d8b2,0x3fa50add,0xc0d18232,0x6caa0ae9,0x4e02f300,0x6cc0d77c,0x43409c24,0xd13fa371,0x44c0351f,0xf003003c,0x8040c100,0xb63fa1f0,0xc8c24495,0x603f43,0x175302f3,0xf701c0c3,0x808d40b4,0x8f973fa6,0x743fc013,0x6e614401,0x15cbf9f,0xa2800d53,0x15c5140,0x9e00953,0x15cb640,0xb5c71f44,0x71014440,0xc20045c8,0x40051cf3,0x2ee67102,0xc5efc216,0x71018c1d,0xc20393bc,0x70806ae4,0xaf3e4402,0x1504038,0x18bb5e71,0x3e50a4c2,0x9f530024,0x8f404dc8,0xe84401e0,0x7c4054fa,0xc7e87102,0xfc0dc1f7,0x3005423,0xe4010198,0x1440300,0xf1013801,0x4491e04,0xaf33cac2,0xa3f9c63e,0x16170a3f,0x1a2f51c2,0xb47100d8,0xc841133a,0x603f43,0x2355471,0xcc4862c2,0xeb710144,0xccc1d16c,0x18b47a,0xa33ee844,0x44016840,0x4038af47,0x90030294,0x300100,0xcdaa26d2,0xa6343bc1,0xa37143c0,0xfc013f,0x62017401,0xc1cc3528,0x3d8a57d,0xfe2d6f71,0x101b4cc1,0xdb71009c,0xb2c21888,0x843d65,0x1012003,0x54440174,0x7440bb52,0xd80301,0x71003001,0x414e6bda,0x5422d8b2,0x446a4403,0x138411f,0x4e00f5,0x8c84116,0xf078c03d,0xc62b3fa1,0x710108c7,0xc1c81c05,0xc0770a63,0xb80e4400,0x1504142,0x3d71b444,0x71028841,0x415e3316,0x4748ed,0x2835303,0x98f8c1bf,0xa5243101,0x9307ec3b,0x3fa3f9c6,0x411fa3d8,0x71012c55,0xc194d587,0x540bd18d,0x71b44400,0x264413d,0x97911d71,0xd83800c1,0x9f7103cc,0x5ec1b9c3,0x1c8a666,0x1007803,0x4f10120,0xc191f35e,0xc017f649,0x3fa37143,0x414e6bd6,0x9822d8ae,0xbd957101,0x84a41a7,0xf30054b6,0xb6fbd602,0xaf340dc1,0xa3f9c6be,0x8ae3e33f,0x4383641,0x8268d571,0x44bf7b41,0xee4401e0,0x78417071,0x56677103,0xc101c1b2,0x3014463,0x2c0100c0,0xef02f301,0xe041a9bf,0xf3c0b43d,0xe93fa23a,0x3c418f15,0x9971039c,0x31c1b64b,0x30845e,0x1012c03,0x1a710030,0xf1415e33,0x1b04748,0xc1015003,0xa5e55440,0xb8669a3f,0x806adbc1,0x18f500c0,0xc1b701c2,0x40a022ad,0x3fa49da6,0xc1baf853,0x40b39d39,0x3fa5d7aa,0x41b4153b,0xc08ae8b4,0x3fa5ab7e,0x38929f5f,0xb9135301,0xacb14191,0xa16f7102,0x8644c197,0x710408a7,0xc1957edc,0x54e84a06,0x87d77100,0xdf4641b4,0x53009082,0x418f15e7,0x53012c5d,0x4191b915,0x7102581a,0x41a7df01,0x24b5ff78,0x64ea7100,0x22f74177,0x7100b453,0x41856c2d,0xc36e792,0xe3e34400,0x390418a,0x92175671,0x4b70bc1,0x9c030030,0x1740c100,0x3fa248,0xbfc07770,0x144a7aa,0x7e9b04f1,0x9b84c091,0xc693c077,0xc3a03fa0,0xe39c04a,0x71000cb6,0xc08205c2,0xc8d56aa,0xf3d2b400,0x3800c0af,0xc693bfd8,0xc10654a0,0xa0c69b40,0xc5daee3f,0x4b70bc0,0x8003000c,0x300104,0xb17729b4,0xc8588ac0,0xa0c69b3f,0x18010438,0x5700300,0x71003001,0xc0be0028,0xcb5ff78,0x3540300,0x3002401,0xc010390,0x591200,0xc0103,0x1032403,0x2c03000c,0x3c0104,0xd249e971,0xb57bd9c1,0x74030018,0x180104,0xcc3c5762,0xc03ed1c1,0x4380300,0x3001801,0x300102c4,0x392c7100,0xb59ec1c8,0x3000c76,0x24010348,0x30477100,0xbef0c197,0x7100f0ee,0xc1b63047,0x18811d0f,0x20b21200,0xc0104,0xb1427871,0x62492cc1,0xa771000c,0x4ac1bd62,0xcb608,0x101c803,0x1d710054,0x9ac19791,0x108b1d1,0xbc5704f1,0x589541a9,0x2ac340b4,0x72a13fa2,0x3997c191,0xf1003005,0x7986b804,0x87eb5bc2,0xc0c693c0,0x8059be3f,0x8ef87dc2,0x2871000c,0xd4c277f9,0xcd00c,0x745e4071,0xb1c1dfc2,0x4f1000c,0xc282d363,0xbfe08095,0x3fc0c693,0xc26d3384,0x18f0bfaf,0xc10f100,0x6c28309,0x9b3f9d0f,0x2e3fc0c6,0x16c27975,0x9b40893e,0x213fc0c6,0xedc2814d,0xc6b45,0x7e428671,0xa51052c2,0xf471000c,0x7cc2773d,0xcd38e,0x745b1471,0xb184b2c2,0x5c71000c,0x98c26c8c,0xcf186,0xcb899471,0xb4203cc1,0x4a710060,0x35c1c4b9,0xcc4a4,0xb7507171,0xb4138ac1,0xe3710024,0xa8c1b038,0xcc536,0x86708962,0x305f55c0,0x664b7100,0x6095c0a3,0x440030c5,0xc0d5c350,0x76710030,0xfec0f143,0x30c4d1,0xa9009d71,0xb1e66641,0xa5710024,0x9841998a,0xcf186,0xaeedd771,0xd38e7c41,0x4971000c,0x1641b35c,0xc893e,0xbcf6fb71,0xa5105241,0x7171000c,0xed41c5a6,0xc6b45,0xcc961f71,0x9d0f0641,0xf7710114,0xaf419ad8,0x60f0bf,0xa9554962,0xd85a1d41,0xbf797100,0x809541cb,0x710120e0,0x41b0643f,0x24d00cd4,0xd8e77100,0xf87d41c1,0x71000c8e,0x41b37f5d,0xc87eb5b,0x540300,0x22c43f44,0x440054b0,0xb022bcc0,0x40440078,0x48b022c4,0x180100,0x1009c03,0xc0030018,0xc0100,0x1006003,0xe4030024,0x180100,0x44009003,0xb022bcbf,0x180101c8,0x1c80300,0x3001801,0x3c0101bc,0x2100300,0x3002401,0x180101c8,0x1c80300,0x3000c01,0x24010240,0x1c80300,0x3001801,0xcc010234,0x21c0300,0x3001801,0xc0101f8,0x2880300,0x3003c01,0xc010270,0x50717100,0x138ac1cb,0x710024b4,0xc1c438e3,0xcc536a8,0x89947100,0x203cc1b7,0x710024b4,0xc1b0b94a,0xcc4a435,0xc3504400,0x30c085,0xa1437871,0xc4d1fec0,0x89620030,0x55c0d670,0x7100305f,0xc0f3664b,0x30c56095,0x1a40300,0x3002401,0xc010180,0x21c0300,0x2002402,0xc010204,0xb1c0400,0xa0c693b1,0x5ccf893f,0xb4323ec0,0xee71036c,0x3ec0c5da,0xc17ea,0xa20b1c04,0x3fa0c693,0xc27488aa,0x24f512,0x79ed1e51,0x24cbcc2,0xea3fa091,0x56c266a0,0x3e4fb0c,0xb1772944,0x7103f0c0,0xc2614462,0x4842a027,0xc204f100,0x3cc2691c,0x93beb64d,0xe83fa0c6,0xd9c25a76,0x185393,0x79db9471,0x8a9168c2,0xa25303c0,0x3dc02a0e,0x92710048,0x7fc268a3,0x3f05aa6,0xa88bf453,0x482cbf,0x663f1062,0xf07e89c2,0x71c06203,0x199cc274,0x2e7104f8,0x7fc04a39,0x845aa6,0x627d1e71,0x36e792c2,0x22710054,0xd9c25d50,0xc5393,0x1053403,0xfa710078,0x8dc25187,0xc057e,0x5549ea31,0x93b10ba0,0x4c3fa0c6,0x58c0ead1,0x306338,0x930ab004,0x3fa0c69b,0xc2453e2e,0x40534ae,0x93c40aa4,0x673fa0c6,0xd6c0507c,0xdc3f02fe,0x4a40405,0x4ebf4271,0x2fee7c2,0x1a710090,0xaac0d936,0x54852a,0x9d1ad271,0x46785b3f,0xa8710078,0x23c25682,0x1842a0,0x105f403,0x2071000c,0x6fc25126,0xfcfb0c,0x4f237635,0x70710108,0xdfc0d608,0x24a4a3,0x23f0fe53,0x10880c0,0x450bab35,0xa8620594,0xd3c0c1d6,0x71011441,0xbf95fbdf,0x3046785b,0x5d00300,0x44007801,0x4027806f,0x915300fc,0xb240b60e,0x5b7100d8,0x86c20076,0x240291,0x1061803,0x7271000c,0xdcc203a9,0xcc71f2,0x1060003,0xd8530018,0xc540540b,0x857100e4,0x22c1f7bc,0x18244f,0x1012003,0xde530078,0x273fafaa,0xeb3100e4,0xb880449,0x69c9b16,0x71002401,0xc20378fb,0xf0879980,0x27544400,0x288c1d1,0x106cc03,0x17530024,0x46402d9e,0x9f440114,0x1c404dc8,0x5c237102,0x2b52c1cd,0x710078a3,0xc20011e2,0x30076313,0x31105300,0xdc20c1cc,0x6f00302,0x44001801,0x40b7a2ab,0x7a71012c,0x72c1f7d7,0x18238a,0x457c5a53,0x27c6f41,0x930a0804,0x3fa0c693,0x415aee7e,0x44027c23,0x41151288,0x997100fc,0x72c1c7b6,0x78238a,0x840a1404,0x3fa0c693,0x413d71b4,0x4f710288,0x13c1bf6a,0x240763,0x3be0e653,0x228e741,0x1073803,0xc5710078,0x86c1937f,0x2414e3,0xb109f004,0x3fa0c693,0xc1b89c1c,0x74879978,0x3c25301,0xec8d4147,0x556f6201,0x199c41a9,0x3c4407a4,0x50c1b6fa,0xf00f5301,0xd089418c,0xc42b1202,0x93c09408,0x633fa0c6,0x6c417624,0x7fc67103,0xb613c1b2,0x71007864,0xc1bea15c,0xc02918a,0x911e7100,0xbecdc1b6,0x71000c86,0xc1c7d18e,0xc244f22,0xb864400,0x3484156,0x15dc9653,0x144ae41,0xb83b2e71,0x71f2bbc1,0x7e4401b0,0x60416abf,0x11b55303,0x903dc1bc,0x4a556203,0x2941c1b7,0x177102ac,0x6841b429,0x908a91,0xab7300f5,0x4d3c4192,0xc6933eb6,0xb9133fa0,0x44012c91,0xc1973047,0x2b5108e8,0xbc41b44c,0xa0730774,0x8db3c33f,0x30c5641,0xa9834171,0xb4f51241,0xb144009c,0x584182fa,0x99c0402,0xa0c69b93,0x7b29073f,0x2105ac0,0x7c808f4,0xfdcac269,0xdf11bf02,0x3f103f39,0x7e91c266,0xdf11c005,0x1042039,0x2003000c,0xc0104,0x1039003,0x8403000c,0x3c0103,0x44038403,0x39df22bf,0x1f403d8,0x39df113f,0x5187fa3f,0x57e91c2,0x39df2240,0xc010444,0x4e00300,0x12000c01,0x1050460,0xfa71000c,0x47c26538,0xc1557,0x684b0a71,0x998b61c2,0x38040048,0xdf11b10a,0x39343f39,0xe38ac0c0,0x71008414,0xc051e719,0xcb59c69,0xa440400,0x39df11b1,0x74857e3f,0xb4b7e7c2,0x40030018,0xc0105,0x10a5c04,0xa00200e4,0x6c0105,0x1042c03,0x14030024,0xc0104,0x749c1871,0xb48d52c2,0x40040024,0xdf223505,0xb10a8c39,0x3f39df22,0xc0e905ff,0x2464b613,0xa980400,0x39df1134,0x48010474,0x3f00300,0x4000c01,0x8f10ab0,0x3f39df22,0xc051cc18,0x3eb64ef0,0x3f39df11,0xc0d9d6b6,0x48845e29,0x14ef1200,0x300104,0x1059403,0x710018,0xf8c0d670,0xca338,0x2a0ea2b4,0xfb0c46c0,0x39df223f,0x1801057c,0x1c4c7100,0x6bd7c0c2,0x44000cb5,0xbfa88bfc,0x1753015c,0x4e402d9e,0x380301b0,0x600104,0x103f003,0x7403000c,0xc0104,0x1042c03,0x2003000c,0xc0104,0x1045c03,0x980301ec,0x2040104,0x1042c03,0xd8530024,0xd640540b,0x50440204,0xec3ec48c,0x4eae7101,0xa26ac204,0x300f08f,0xa8010540,0x33c0300,0x71003c01,0xc20259b6,0xd8c5cba3,0x96b06200,0xe4d2c1d1,0x677101c8,0x97c1cd83,0x24a481,0x38af4771,0xd3333340,0xb8030024,0x480105,0xfe9bae71,0x2bd6623f,0xd453000c,0xa8c1cc3f,0x70710210,0x6ec1fa68,0x18214f,0x105a003,0xdc03000c,0xc0105,0x1047403,0xc2440060,0xc414703,0x3e40303,0x4001801,0x11340bc4,0x40839df,0x3001801,0x80104bc,0x3f00301,0x3001801,0xc010444,0x5340300,0x3006c01,0xc0010504,0xc000400,0x39df11b1,0x9217563f,0x17ea3ec1,0x44030030,0x540104,0x1057c03,0xaf120030,0x240103d8,0xe3e17100,0x5747418a,0x4000c15,0x22a204ec,0x1d3f39df,0x5241a9aa,0x301388d,0x78010564,0x5a997100,0xd11c1b6,0x71000c82,0x41910803,0x60998b59,0x5ac0300,0x3001801,0xc0105c4,0x5dc0300,0x71000c01,0xc1b11756,0xc61af5c,0x57c0300,0x62039c01,0xc1bc76bd,0x2708eb9,0x1049803,0x7d710090,0xca419281,0x2402fd,0xb7a9dc71,0xa6d43dc1,0xa804003c,0xdf22840c,0xf00f3f39,0x420418c,0x1050403,0xeb620024,0xe741a97c,0x30378b7,0x180105a0,0x7fc57100,0xb057c193,0x3000c01,0xc0105c4,0x3f317100,0x8ab5c076,0xf10078a8,0xbf1b531c,0xa9f96841,0xc2602dc0,0x87ea733f,0xca43dd41,0xc3f9c6bf,0x8c22533f,0xc67a9641,0xc3f9cfbe,0xc67ef53f,0x821f3441,0xaf710024,0xd41cbcc,0xc2a89,0xd043baf6,0x8d3b41ce,0x602dbf94,0x51c93fc2,0xdb0e41cf,0x60353f46,0xbc193fc2,0x5b424194,0xf9cf40fc,0xc3ad3fc3,0xbcd83fd1,0x2d023ff6,0x71ee3fc3,0x9069415c,0x6035400a,0xe1423fc2,0xd2c417f,0x60354015,0x2e3a3fc2,0xf3b2416b,0x6035401f,0x475e3fc2,0xf92b3f64,0x93684016,0xcc9a3fc1,0x239abe48,0x40c4020,0x5d5b3fc3,0x46304186,0xf9cf3fe2,0x86f93fc3,0x3a264198,0x2d0240fb,0x45d3fc1,0xa47f418b,0xf9cf3f68,0xf5b63fc3,0x4630c262,0xf9c6bfe2,0xa863fc3,0x3a26c26c,0x1cd2c0fb,0x25163fc1,0x5b42c26a,0xf9c6c0fc,0x52e3fc3,0x4dd7c274,0x602dc0ea,0x7c4b3fc2,0x4dd741a8,0xd83540ea,0x9c0100,0x65493871,0x68a47fc2,0x44710108,0x6fc27abc,0xf0cb4b,0x7f54b244,0x3012cc2,0x30010114,0xea777100,0x4b6f41b5,0x71000ccb,0xc25fbf5a,0x30150d2c,0x15c0300,0x44001801,0xc2818342,0xb0440144,0x44c282d6,0x97954401,0x144c283,0xd7bd04f1,0x9197c1c8,0xd7aa4011,0x51a73fc1,0x1034c1f7,0x71003c11,0xc1c447c8,0x5007a5f0,0x3201f401,0x96c265d8,0xcf3ec67a,0xf73fc3f9,0x74c283b7,0x92987101,0xf3b2c25a,0x300781f,0x3c010060,0x780300,0x3000c01,0xc0100c0,0xbc429600,0x43ddc263,0xe4cf3fca,0x180100,0x55c01cb4,0xfffc7ec2,0xc2602dbf,0x1801012c,0x1500300,0xabc940a3,0xbf5a3fc3,0xbc28c25f,0x300301,0x301f801,0x30010084,0x5fc37100,0xf92bc201,0x710144ae,0xc25292b2,0x5476f4bf,0xa810f100,0xb9c1fe69,0x68bff1fe,0xc43fc193,0xaac20318,0xbfbe52f1,0xf23fc30f,0x69c251de,0xd88a1c,0x100fc03,0x777100cc,0x99c202c6,0x601864,0x11b9071,0xba1555c2,0x4f100b4,0xc252c5ec,0x3f875150,0x3fc1d7aa,0xc1fcfa3c,0x24fef534,0x1440300,0x404c0a3,0xdd723fc3,0xccb1bfc0,0x7704f100,0xd7c1c0d7,0xc6bfef87,0xb03fc3f9,0xc008c8,0xca000,0xa71d02f3,0x29e9c1bc,0xd7aabfaa,0x38763fc1,0x44b6be9a,0x81777101,0x1bc1c01e,0xf103008a,0xb9620d04,0x9afc8bc1,0xc26035be,0xba7c8d3f,0x5607e6c1,0x40710084,0xe3bffc6d,0x78c46c,0xbec44771,0xd02c1bc1,0x22b40018,0x7bbf83c2,0x5e4011d9,0x2acc1bc,0xa390c044,0xf502dcc3,0x2cf9c000,0x90b63fc3,0xf5f5414f,0x2d02bfb8,0x14010324,0x58214401,0x9c400c,0x532e04f1,0x84e04159,0xbc56c003,0x75023fc1,0x77254148,0x620084a8,0x402112a1,0x39c79ab,0x1033c03,0x4253012c,0x28417fe1,0x4f1027c,0x414ab3a2,0x3f5d27f6,0x3fc1d7aa,0x401c5409,0x9c25a4f0,0xefa5300,0xf8d44151,0x6c0301,0x300c001,0x4801030c,0x2d00300,0x3000c01,0xc04403cc,0x48c0c693,0x9b40c103,0x5d3fc0c6,0x3c418b04,0xfd868a4,0x8c2253b4,0xc67ab741,0xc0c6933e,0xcc010444,0x264030f,0xf1002401,0x65d83204,0xc67ab7c2,0xc0c693be,0x6549383f,0x68a43cc2,0xb4030024,0xc0103,0x25de471,0x6fe804c2,0x84330030,0xbdc51e3,0x24cc014,0x71002401,0xc1c447c8,0x9007a5ec,0xa9d27100,0x6280c011,0xf1003082,0x1e2ad004,0xb85c25c0,0xc1bc5e3e,0xbad24b3f,0x6fe825c1,0xf8030030,0xc0101,0x1822e253,0xb4a040,0x1014403,0x5c0300b4,0x480104,0x54292644,0xf5009041,0xc324f50c,0xe53094c2,0x6ca8b23f,0xc324f5c1,0xef80b2c2,0x6a5b6c3f,0x571f5ec1,0x10f12c1c,0xc1568b9a,0x41131e45,0xc156910e,0x41605dd2,0x3fc8afbc,0xc0128e3b,0x418180cf,0xcd810ae,0x1104f100,0xfb4181a7,0x83fd693,0xbac00f5b,0xfc415cc6,0x18adfe,0x5c5f9e71,0xaac4d641,0x79710018,0x8d417bc1,0x18f1f1,0x7c17c671,0xf1202141,0x46710018,0x8d415a45,0x189547,0xbe5b10f1,0x856e4188,0x8e3b3e10,0xc48bc012,0x77704188,0x5b083d56,0xdb9ac00f,0x31274158,0x71003084,0x4158308a,0x30745165,0x37100,0x2e3c4188,0x7100182a,0x4187eb85,0x1831ba2c,0xea267100,0xeda64173,0x71000cfb,0x41735846,0x24fc390d,0x30aa7100,0x2e904156,0x7100182a,0x415659c2,0x1831bf05,0xdfee7100,0xe11a416e,0x710018f9,0x4186ca89,0x1880ba62,0xaa957100,0x300a4186,0x71001884,0x4154e1f6,0x9c9a0a96,0xaa04f100,0xd641551d,0x83ec6e3,0x91c00f5b,0x15416e50,0x30f8fe,0x54a79a71,0xab1bbd41,0x4f100b4,0x4154b3f6,0xbbaa64c3,0xc0128e3b,0x4184e893,0x48aac3db,0x12b17100,0xc3694185,0x710030a7,0x4165686a,0x18e239e7,0xb4117100,0xe7ef4166,0x710018e6,0x41632f32,0xcd8113c,0x85d67100,0xd84d4152,0xf1002412,0x78391204,0xe7231441,0x128e3bbf,0x7c1796c0,0xdfbb0641,0xea71000c,0x8d417a91,0xcfcd5,0x73582671,0xead38441,0x2e71000c,0xe54151b1,0xb481d5,0x8490e171,0xd2ebc441,0xe7710048,0xdc41875c,0xca0b9,0x36fa04f1,0xbeba4172,0x8e3bc001,0xacc3c012,0xd97f4188,0x71001879,0x41801f0b,0xcff801b,0x207a7100,0x6bad416f,0xf10054e8,0x551d9a04,0x81433941,0x128e3bbe,0x51f356c0,0x808dd241,0x271000c,0x4a416b75,0x24e30b,0x89c49571,0x1b0a8141,0xf671003c,0xdb4169bb,0x18f8f7,0x52d9be71,0x2092441,0x9a71000c,0x24415659,0xc0eed,0x282604f1,0xf3c34178,0x8e3b4008,0xb3eac012,0x81d84166,0x710018d5,0x41585aca,0xc5677d5,0xdf8a7100,0x80884161,0x71000cdd,0x4156265e,0xc7d8f2e,0xc0fa7100,0xd24e416f,0xf1003c09,0x8a4e2b04,0x44c7b041,0x128e32bd,0x5fefb2c0,0xb4471341,0x5d710024,0xde4188a7,0xa828e7,0x5d044671,0x9ea73741,0xb6620018,0x13415b43,0xf100240f,0x89eb2b04,0xc68b3b41,0x128e1dbe,0x678f7ec0,0x24df941,0xf710054,0xe6418820,0x3cf25c,0x8740dd71,0x426f7241,0x4571003c,0x24418884,0xc6060,0x87740971,0x8d370941,0x8a71000c,0x16416017,0xfce5bf,0x5cc73e71,0xd0f22841,0xe571000c,0xce418465,0x24a216,0x84b0c171,0xbfc6c941,0x6371000c,0x9b41821b,0xcc0ad,0x57414271,0x9e428d41,0x81710030,0xef41813a,0x18e5c7,0x549daa71,0x72367e41,0x1cf10018,0x41518f56,0x3d8aa194,0xbff853d2,0x415207d2,0xbe8e9ec3,0xbff835b5,0x415300fa,0xbf0a5b75,0xbff84fa9,0x415667b6,0xc8235a4,0x95e67100,0x9df9415b,0x71000cb6,0x4162395e,0xcdf2874,0xbb427100,0x3fea416a,0xf1000cfb,0x73e19204,0x1c10d41,0xf84fa9c0,0x7c2432bf,0xf9a32b41,0xa7620018,0xb64181eb,0x710030bd,0x4185404b,0x18b76c37,0xdb157100,0x2e944187,0xf1000c83,0x88dba928,0x49143c41,0xf86613bf,0x89f011bf,0xc34d4941,0xf81a72be,0x8a48b5bf,0xa4cf8d41,0xf84fecbd,0x89ee63bf,0x387cf41,0xf84fa93f,0x888799bf,0x81286b41,0xbf72000c,0xe5418777,0xc9e41,0x4184b461,0xcd0f1ed,0xcfd57100,0xbc304180,0xf1000cfa,0x77904210,0x9671f41,0xf84fb140,0x6f26a2bf,0x9aaeb41,0xf84fa940,0x65f2d2bf,0xff80cb41,0x72710024,0xee415eb0,0xcdd97,0x58195e71,0xa8393741,0x3671000c,0x444154d7,0xc79db,0x52a77a71,0x1b090f41,0xfff3000c,0x51ba2e2b,0x8dbf8c41,0xf84fa93e,0x8a241dbf,0x129dc741,0xf84fec3f,0x53444ebf,0x8fd94541,0xf84f443f,0x671486bf,0xc11e441,0xf84e1e40,0x63952abf,0x66d6141,0xf8162f40,0x74a8b6bf,0x12781841,0xf8470b40,0x4f1862bf,0x8b2bfe41,0xf84fa93d,0x85740dbf,0xd4576441,0xf84ef03f,0x8a84e3bf,0xcc13ba41,0xf84f6e3d,0x5fe0febf,0xfc6a4d41,0xf84a383f,0x8812f1bf,0x9e680141,0xf84f333f,0x5117f6bf,0x4f81e941,0xf84ec63f,0x825361bf,0xfb8e3241,0xf84f903f,0x4fe86abf,0xc8de341,0xf84e273f,0x6f86b2bf,0x12834d41,0xf848ae40,0x59112ebf,0xcff60141,0xf849c33f,0x7d5daebf,0xb98e141,0xf84f6e40,0x895171bf,0x69651b41,0xf84fa93f,0x5630eabf,0xb4a09041,0xf84d663f,0x6b5402bf,0x1066a141,0xf849cb40,0x5f9e82bf,0xfaf16f41,0xf72cae3f,0x595d6abf,0xd21ff341,0xf60cfa3f,0x569d8abf,0xb8d64d41,0xf57f6b3f,0x54805abf,0xa075cd41,0xf4ec073f,0x52a836bf,0x85ed9e41,0xf466f53f,0x4fdfdabf,0x8d17441,0xf31fb43f,0xf05ebf,0xf2251862,0xca18abf,0xfffff700,0x51ffffff,0xbfefab65,0x4189848b,0x3edd794a,0xbf90ea18,0x418adc05,0x3f0c2b73,0xbf9e9b95,0x4189ba89,0x3e6331a1,0xbf9169d3,0x41585a8e,0x3f9bd5a2,0xbfc4ddb5,0x415749ce,0x3fb8c2df,0xbfd31d04,0x415adc2a,0x3fb56590,0xbfc58655,0x417deb56,0xbfec3305,0xbff82a67,0x417aeb2e,0xbff3712a,0xbff84f7f,0x41810393,0xbfdfeb64,0xbff8465a,0x415334fa,0x3f84d9c7,0xbfd1f5cf,0x41809269,0xbfe1852f,0xbff77b6c,0x418857df,0x3f67661f,0xbf8fa67a,0x41510172,0x3f30fd6d,0xbfd1130e,0x4181eb4f,0xbfd5bb49,0xbff7059f,0x418894ad,0x3f9f2924,0xbf9cd539,0x4153a7d6,0x3f124f87,0xbfc303e2,0x4184008b,0xbfc2cb5c,0xbff84ff4,0x41866d8f,0x3fa6a23c,0xbf8e6b51,0x4152e4f6,0x3ea4aec9,0xbfc261d0,0x414fd39a,0x3e9a413e,0xbfd032a0,0x4184f865,0xbfafbbe0,0xbff5d934,0x4185178d,0x3fbf2c49,0xbf8dc2b1,0x4152a1aa,0x3df6312f,0xbfc1ea14,0x4186c0f9,0xbf988d7e,0xbff85048,0x418393c9,0x3fd4d01c,0xbf8d209f,0x4152d546,0xbe29e4d6,0xbfc12f4d,0x41875e5d,0xbf7ebe59,0xbff497f2,0x417faa0e,0x3ff87c07,0xbf8bd945,0x4153cae2,0xbeef991c,0xbfc075ff,0x4188fc91,0xbf0e8a61,0xbff35497,0x4154f65e,0xbf2f864d,0xbfbfdfd2,0x4179f70e,0x40034df4,0xbf8ae68e,0x41783476,0x4010d60f,0xbf986b8b,0x4156836e,0xbf64a687,0xbfbf4691,0x4189739f,0xbeaba2e0,0xbff2bee8,0x4176ae0e,0x40056078,0xbf8a5e35,0x4189c11f,0x3e2f4129,0xbff188b1,0x415af416,0xbfa4d795,0xbfbe01b4,0x41729f7a,0x4006284a,0xbf89b2b3,0x41898615,0x3ed8fe69,0xbff0ecaf,0x416e9146,0x4004e6b0,0xbf890721,0x416b2202,0x400e98d0,0xbf967d9a,0x4160c2d2,0xbfcd8d8b,0xbfbcce2d,0x41890b21,0x3f2b97ee,0xbff048e0,0x416af8b6,0x400209ea,0xbf886fb5,0x41677a6e,0x3ffb23a3,0xbf87dde3,0x4163a1c6,0xbff6a127,0xbfc9fe22,0x4167e0a6,0xbfeb2c38,0xbfbba49c,0x41642292,0x3fef1d15,0xbf875222,0x41876641,0x3f905e9a,0xbfeeff5c,0x4160a586,0x3fde50e7,0xbf86b91b,0x415d1ff2,0x3fe77015,0xbf945283,0x416b4056,0xc005fe2a,0xbfc8d90e,0x415d7386,0x3fca2d17,0xbf861aac,0x416f1a62,0xbff8fa2f,0xbfba6f61,0x415adc12,0x3fb564c7,0xbf85863c,0x41578d42,0x3fbb6a83,0xbf9333a0,0x417329ce,0xbffaf2bf,0xbfb9c3c6,0x4183fbb1,0x3fcfc2e3,0xbfed463d,0x41585a7a,0x3f9bd4c7,0xbf84dd9c,0x41545336,0x3f96d938,0xbf926530,0x41569d06,0x3f8580fe,0xbf845b5b,0x4177392a,0xbff8d706,0xbfb91801,0x4182468f,0x3fe3b952,0xbfec95e1,0x417b763a,0xc00584d3,0xbfc66ce3,0x4154c3ce,0x3f4a39f7,0xbf839a20,0x4151146e,0x3f34f9a0,0xbf911d69,0x417f9a02,0xc0007920,0xbfc5c090,0x4153a7ce,0x3f124d7f,0xbf83035c,0x417fa7ea,0x3ff8836f,0xbfebd70a,0x417eb6ce,0xbfe9bd73,0xbfb7ddc2,0x414fc2d6,0x3e89f905,0xbf9013cb,0x417ab0c2,0x400290de,0xbfeb05e2,0x4183644b,0xbfe34b6a,0xbfc4b6c8,0x4152a3aa,0x3d8b29e5,0xbf81c68f,0x4182c5a7,0xbfcceb81,0xbfb6b913,0x4184a355,0xbfb51594,0xbfb6049f,0x4173061a,0x40062bc3,0xbfe9c31e,0x416ef662,0x40051d15,0xbfe91993,0x4186eb9d,0xbf8a6349,0xbfb4dd51,0x416b5bfa,0x40026df4,0xbfe8812c,0x4188a3b5,0xbf2d7647,0xbfb3aad6,0x41671ba6,0x3ffa24ab,0xbfe7d391,0x418ae42d,0xbecbd945,0xbfc0b5cc,0x416421ce,0x3fef1a00,0xbfe7511e,0x4160a5ae,0x3fde51a0,0xbfe6b8e1,0x4189a5e3,0xbe3e2d62,0xbfb261d0,0x4189c747,0x3c8767d3,0xbfb1e932,0x415d73da,0x3fca2f6a,0xbfe61a9c,0x415b1dce,0x3fb7e458,0xbfe597dd,0x41898497,0x3edd6799,0xbfb0e63a,0x415859fe,0x3f9bcdd5,0xbfe4dc6e,0x418927a7,0x3f1f9e9d,0xbfb068dc,0x415672be,0x3f82bdec,0xbfe442c8,0x41885717,0x3f679ca6,0xbfafa58f,0x4189f1bd,0x3f6a3e6c,0xbfbdaeef,0x4154e91a,0x3f5038c1,0xbfe3a9a8,0x4153a7ba,0x3f12493d,0xbfe300f7,0x41880a0f,0x3fac3a00,0xbfbc8a59,0x4152e4ee,0x3ea4aa11,0xbfe25f5b,0x4186b127,0x3fc72b99,0xbfbbe647,0x4185178b,0x3fbf2c73,0xbfadc2b1,0x4152a1aa,0x3df6451c,0xbfe1e8f7,0x4152d5ae,0xbe2ac322,0xbfe12d6f,0x4182427d,0x3fe3e482,0xbfaca561,0x41822c37,0x40004b34,0xbfba42fa,0x417fb4ba,0x3ff857f3,0xbfabd9b2,0x4153cae2,0xbeef98fa,0xbfe07610,0x4154f65e,0xbf2f864d,0xbfdfdfca,0x4156836e,0xbf64a687,0xbfdf4691,0x4179fd0e,0x40034888,0xbfaaedd5,0x4155b14e,0xbf95fd0d,0xbfeca5a4,0x41586e0e,0xbf8b523b,0xbfdeabd6,0x4176ae32,0x40056063,0x9caa5e3e,0xde9af703,0x729f9abf,0x6284e41,0xa9b2bc40,0x70f99ebf,0x11f2aa41,0xb75be640,0x5d8d66bf,0xb9811f41,0xdd6cd7bf,0x6e9166bf,0x4e6bc41,0xa9073140,0x6af8dabf,0x20a0741,0xa86fbd40,0x697f3abf,0xce96041,0xb639ef40,0x63e5debf,0xdcb9cb41,0xdc44bfbf,0x677a8ebf,0xfb23ff41,0xa7ddec3f,0x6a686abf,0xf1ace641,0xdb381dbf,0x6422aebf,0xef1d9341,0xa752333f,0x60a5a7bf,0xde518741,0xa6b9243f,0x5e7c7abf,0xef944241,0xb48c9c3f,0x5d739ebf,0xca2dc741,0xa61ab53f,0x70c0f2bf,0x943b741,0xe8093ec0,0xa51705d0,0xd9d7036c,0x7541f2bf,0x93e9241,0xe7585cc0,0x2ef7060c,0x97a6bfa4,0x2d134156,0x4b883f85,0x106ebfa4,0x8964154,0x3e103f92,0x7b16bfb2,0x5660417a,0x9ab3bff4,0x279ebfd8,0xafee417d,0x3316c003,0x782abfe6,0xe4864152,0xb1073f70,0xf70330b1,0xdebfd70a,0xef4154c3,0x203f4a3b,0x4bbfa39a,0xa2418107,0x22bfddb6,0x5e8d752,0xbfa30af7,0x4150ca9e,0x3f22d4b2,0xbfb0ef13,0x4184a31b,0xbfb518f4,0xe8d5f916,0xa22ef705,0x52a19bbf,0xf5150541,0xa1e52a3d,0x85cbb3bf,0xa1a16e41,0xd5761dbf,0x52d566bf,0x2a183741,0xa1392abe,0x87def9bf,0x62b37841,0xd443d4bf,0x89322dbf,0x78f1a241,0xe23b9bbf,0xaf705b8,0x836ebfa0,0xa6984156,0x4691bf64,0x446bbf9f,0x127f4189,0x3e2bedf,0x170324d3,0xd501e0d2,0x42c6bf9e,0xab324159,0xc7acbfb9,0xf701d4ab,0x9d6cce0c,0x5edf62bf,0xe09cfe41,0xaab4eabf,0x8983f1bf,0xde43ee41,0xd0e03b3e,0x9c17057c,0x52f701d4,0xb7b6bf9c,0xf7d34162,0x2129bff2,0xdd6bbfaa,0xb934418a,0x9e6f3f0c,0x57f1bfde,0x61aa4188,0xa61e3f67,0x1a7ebfcf,0xf45a416b,0x17f0bff2,0x73babf9b,0x4938416e,0x5e70c008,0x8fe3bfa8,0x99dd4187,0x16f43f8b,0x6d8dbfcf,0xa26e4186,0x6b513fa6,0x4845bfce,0x1aef4186,0xb59e3fce,0xd70540db,0x9f32bf99,0x3d324175,0x51adc009,0x170348a7,0xf70528cd,0xeabf9946,0x6e417ab6,0x2fc00630,0x8ebfa686,0xb9417a7b,0xd1bff455,0xc7bf9891,0x35418393,0x9f3fd4d0,0xddbfcd20,0x9d418243,0xbc3fe3d6,0xd1bfcc96,0xa241832f,0x363ff6d4,0xa9bfda94,0xbb418011,0xedbfff9d,0x4abfa5b6,0xa9417fb8,0x393ff84b,0x1e0cbef,0xbf972ef7,0x4182d70f,0xbfe8ef0b,0xbfa4defc,0x4182c5a7,0xbfcceb79,0xbf96b913,0x417a0192,0x400344c3,0xbfcae200,0x417b161e,0x400e8dca,0xbfd8df93,0x4184a373,0xbfb513d7,0x6c9600b0,0x60ca1703,0x1cc91703,0x54941705,0xbfc9d703,0x416b6e42,0x400eda16,0x60d68406,0xbfc8d703,0x4188b3d9,0xbf8ae3a4,0x54a27ab7,0xbfc7d703,0x41645f22,0x40058141,0x4d574bc,0x60931702,0xbfc7d703,0x4189c74b,0x3c8a222d,0x5491e508,0xc60af503,0x5a0636bf,0xd1638841,0xd3b9ae3f,0x501dc6bf,0x8b2bfe41,0x63d2a63d,0xfff205f4,0xffffffff,0xffffffff,0xffffffff,0x7b20a770,0x4f1876bf,0x8b2e1741,0x8d32163d,0x4f187ebf,0x8b2d0a41,0x63d2853d,0x8798fdbf,0x8b0baf41,0x8ad95a3f,0x86da7dbf,0x9d988541,0xca70f43f,0x86b10dbf,0xa0fbf441,0x8a57eb3f,0x872907bf,0xc530be41,0x7335e33f,0x843399bf,0xccb24a41,0x892ddc3f,0x84334dbf,0xccb66b41,0xc92e7b3f,0x85ad77bf,0xdd877241,0x71d1f63f,0x81b8a7bf,0xe8fe2641,0xc853543f,0x81d2c3bf,0x1ca4b41,0x745f9e40,0x801cc7bf,0xf626a241,0x87b82c3f,0x7c62d6bf,0xbd1241,0x87172740,0x83c9d9bf,0xf04d6641,0xbac7003f,0x7b7fd2bf,0x1d9a141,0xc6ed8940,0x7906b6bf,0x40edc41,0x868b0940,0x7ce1aebf,0xcb17541,0xb924d140,0x7c752ebf,0xd2be541,0x72398240,0x749cc6bf,0x6084241,0x85d22040,0x74c4eebf,0x5ffc141,0xc5d67c40,0x70d55ebf,0x5db1641,0x8536d640,0x711ecebf,0x5ee0b41,0xc53d4b40,0x74050ebf,0x145f6c41,0x6ac2ce40,0x6cae72bf,0x3adfb41,0x848c1540,0x7056a6bf,0x13e61d41,0x698f5040,0x74e64abf,0x12055c41,0xb7f0cc40,0x6d760abf,0x4333741,0xc4a36240,0x69694abf,0x40b341,0x83fcfc40,0x65b84ebf,0xf544c341,0x835ec03f,0x68441ebf,0xdadd641,0x67310a40,0x6447d2bf,0x792da41,0x6611a940,0x628146bf,0xe7d6d841,0x82dc1a3f,0x664ba2bf,0xf75d7941,0xc377fb3f,0x5f631abf,0xd72e0641,0x823bcd3f,0x6213cebf,0xcdc441,0xb51d8240,0x621dbebf,0xe5fa3c41,0xc2c58f3f,0x5c5702bf,0xc1dd3c41,0x81b0573f,0x5fb0febf,0xd90c3d41,0xc2471b3f,0x59d65abf,0xabca1041,0x8112ba3f,0x577582bf,0xbe023a41,0x63df4c3f,0x5c1006bf,0xbfa0b641,0xc197703f,0x553c72bf,0xa42be941,0x63c4b13f,0x571016bf,0x8b9b0b41,0x804a7b3f,0x557002bf,0x6452e741,0x7f53823f,0x587d06bf,0xc43bac41,0xb3668c3f,0x59a1a6bf,0xa9af5c41,0xc100043f,0x53ef0ebf,0x90d81241,0x640d6f3f,0x56eb8ebf,0x89e1d241,0xc028673f,0x553472bf,0x5bc44c41,0xbf9b133f,0x51ae97bf,0x494ac341,0x63d2853f,0x5423a6bf,0x2d6e7a41,0x7e249a3f,0x5409c2bf,0x284f6e41,0xbf0ce53f,0x533c3ebf,0xe8df5941,0xbe7ebf3e,0x5065debf,0xe14a2c41,0x63d32c3e,0x52aa5abf,0x38687741,0xbdcdd53e,0x533c7abf,0xe90a3541,0x7cfc723e,0x4fa82abf,0x1c67e041,0xafd9dc3e,0x5353eebf,0xb58c4c41,0xbc7a8dbe,0x5044f6bf,0xb3890d41,0xaec005be,0x7ff862bf,0x85dd541,0x73d5dc40,0x5136aabf,0x16150141,0xae3201bf,0x551abebf,0x35c7ce41,0xbb946cbf,0x54707ebf,0x85f2dc41,0xacfc50bf,0x5b1a8abf,0xa6814541,0xb9a900bf,0x50a342bf,0xe99e9541,0xee8063be,0x54073abf,0x2c7e7c41,0xf84fc2bf,0x51e24ebf,0x3581e041,0xede20dbf,0x539d1ebf,0x73dac741,0xed3d86bf,0x57bc52bf,0x8a1e2641,0xf84fb9bf,0x59897abf,0x9c55b041,0xf84ebebf,0x60d575bf,0xcdf56241,0xb89d0fbf,0x5c7822bf,0xb434f441,0xf84ed7bf,0x5fbbd6bf,0xc8bed741,0xf84dd3bf,0x5acc1ebf,0xc5f48041,0xeb7764bf,0x67903abf,0xea00a841,0xb77764bf,0x5e08d2bf,0xdb924341,0xeaded3bf,0x62e0c6bf,0xd8193341,0xf84f44bf,0x6622f2bf,0xe557c541,0xf7b4eebf,0x6a2826bf,0xf1166e41,0xf70dd0bf,0x6b916ebf,0xf4123041,0xb6c8f7bf,0x6502eabf,0xfbaf3241,0xe9c98abf,0x68fcd2bf,0x39ea141,0xe930adc0,0x6d8132bf,0xf70f1741,0xf67e39bf,0x717be6bf,0xfaa29041,0xf5d285bf,0x6a3df2bf,0x504b041,0xa8ffa8c0,0x75136ebf,0xfa76c041,0xf53c82bf,0x6ef4b2bf,0xf8d4b241,0xb63be6bf,0x7715eabf,0xf8fadf41,0xb4e600bf,0x78bcd2bf,0xf6fece41,0xf4a290bf,0x7c145ebf,0xf0fae841,0xf41451bf,0x7e6a12bf,0xeadefc41,0xb3ae36bf,0x7ffc76bf,0xe59e8441,0xf37996bf,0x806401bf,0xfd095b41,0xe59c95bf,0x820a9fbf,0xd48aa441,0xf2c4c6bf,0x836315bf,0xc5e0f041,0xf24a38bf,0x82b75bbf,0xcd898b41,0xb288dfbf,0x840fc9bf,0xdbc30541,0xe4793ebf,0x84c621bf,0xb2efe541,0xf1b646bf,0x858d3dbf,0xc81cac41,0xe3eea2bf,0x838583bf,0xc4e2c141,0xb1e647bf,0x8451d1bf,0xb97e9941,0xb1ea03bf,0x882fe5bf,0x97592e41,0xe2bf87bf,0x87c557bf,0x69575841,0xf011d3bf,0x8861a5bf,0x412c8c41,0xefa92abf,0x84678fbf,0xd79d2c41,0xa45acdbf,0x89330bbf,0xf1a45941,0xeed6aabe,0x874f57bf,0xaa2af541,0xa32ecfbf,0x8703efbf,0x8854ef41,0xb098e5bf,0x8aade5bf,0xfca441,0xe0f3b2bf,0x89952fbf,0x77bf6241,0xee59e2be,0x89c2a3bf,0x86983541,0xedd3aabc,0x889d3fbf,0x2f7f2841,0xaf76eebf,0x8a4c65bf,0x289ecb41,0xa156c9bf,0x89baefbf,0x5c161641,0xed504c3e,0x8b4639bf,0x57518b41,0xdfc92e3c,0x89b05dbf,0x213cef41,0xae1f86be,0x8b27cfbf,0x45c3df41,0xa03c32be,0x890261bf,0x2ecb8641,0xec1b333f,0x89b655bf,0x889e3441,0xad159c3e,0x8849ddbf,0x6a738241,0xeb6ef83f,0x8b4799bf,0x8f4e8741,0x9faa263d,0x876d99bf,0x8f326141,0xeacfea3f,0x8991fbbf,0x82369741,0xdd6f2a3f,0x8952adbf,0xb5d7941,0xac6fbd3f,0x88a557bf,0x9d786841,0xdcda553f,0x88a3f1bf,0x50304d41,0xabac2e3f,0x898a01bf,0x833ede41,0x9d6a833f,0x8776f1bf,0x8ead7941,0xaab67c3f,0x83c5e7bf,0xd2516e41,0xe8fe263f,0x8517e1bf,0xbf80bb41,0xa983a53f,0x8261cbbf,0xe2cb3241,0xe86aca3f,0x863d77bf,0xcecb6c41,0x9bb16c3f,0x8266bbbf,0xe29d5241,0xa87efa3f,0x83222dbf,0xf75f0341,0x9a90713f,0x8019afbf,0xf63b9b41,0xe7b7f13f,0x7f24febf,0x9c30d41,0xd97c5740,0x7b229ebf,0x23d9641,0xe6cd0840,0x8019d1bf,0xf63ab041,0xa7b7203f,0x7f6abebf,0x95c9e41,0x9987ad40,0x7b886abf,0x1d06c41,0xa6dcb140,0x742536bf,0x6234241,0xe5c3bd40,0x77bcb6bf,0x4d2dd41,0xa6629940,0x74197ebf,0x6236c41,0xa5c4a840,0x711b56bf,0x5ed2041,0xe53cf740,0x7373eabf,0x1232c641,0xd7b92840,0x711bfabf,0x5ed4641,0xa53cac40,0x6c9376bf,0x39a5b41,0xe4718240,0x735536bf,0x1233ce41,0x97b49a40,0x6c3922bf,0x34f7641,0xa463fa40,0x690d0ebf,0xff969e41,0xe3f2803f,0x690cfabf,0xff922941,0xa3fb0d3f,0x656ef6bf,0xf43f1441,0xe359de3f,0x657a5ebf,0xf4655241,0xa357153f,0x620badbf,0xe5a4d741,0xe2c28b3f,0x6179f6bf,0xe2f4e041,0xa2a5ce3f,0x5f71f2bf,0xd7890541,0xe250943f,0x640b6ebf,0x4cc8a41,0x95685a40,0x605d6ebf,0xf99d8041,0x94d9173f,0x5cf69ebf,0xe65c3e41,0xd448f93f,0x5ecb7abf,0xd3485641,0xa22a673f,0x5c1202bf,0xbfb0cd41,0xa197dd3f,0x5c11c2bf,0xbfaecd41,0xe198743f,0x59a3a6bf,0xa9c41a41,0xe0ff8f3f,0x59a39abf,0xa9c36941,0xa0ff3b3f,0x574f9ebf,0x8ee6b841,0xe056583f,0x55aacebf,0x6d158c41,0xdfc78a3f,0x574f02bf,0x8edf9c41,0xa056363f,0x55ac0abf,0x6d9a8441,0x9fbdf13f,0x54237abf,0x2d65e441,0xdf125e3f,0x5423b2bf,0x2d71b041,0x9f12553f,0x533c7abf,0xe90d9d41,0x9e7e743e,0x533c52bf,0xe8f30241,0xde7e523e,0x52ca12bf,0x867d1341,0xde059a3e,0x52a34ebf,0x81b9fa41,0xdd8d503d,0x52bdd9bf,0xd805e641,0xdd27a2bd,0x52bdaabf,0xd6edee41,0x9d2831bd,0x4fa182bf,0x8b2af141,0x8fab863d,0x4fd952bf,0x350bd841,0xcf2496be,0x537212bf,0xc6277c41,0xdc6898be,0x537186bf,0xc5dd4c41,0x9c670ebe,0x54c496bf,0x27542a41,0xdbd031bf,0x54e96ebf,0x2d7d3941,0x9babf3bf,0x51a74abf,0x2b754341,0xcdfa6ebf,0x5672f6bf,0x62ba1741,0x9b12ecbf,0x534c4abf,0x69d7aa41,0xcd598abf,0x5817b2bf,0x874b0e41,0xda9f30bf,0x5532e6bf,0x8fe7f341,0xccc469bf,0x548ca6bf,0x8ffe1141,0x8a48f9bf,0x5ca0eebf,0xb2eb4641,0xd9588ebf,0x59f176bf,0xbf4b5a41,0x8ba53cbf,0x5c970abf,0xb2a02341,0x9959f7bf,0x59ff2abf,0xbfbe0a41,0xcba0bebf,0x60552ebf,0xe80c1741,0xca8095bf,0x647882bf,0xdf130641,0xd807abbf,0x6490b2bf,0xdf745841,0x9806c0bf,0x6387b2bf,0xfb2f6641,0x876b4cbf,0x6bb33ebf,0xf452c641,0xd6b264bf,0x6bc506bf,0xf473e741,0x96b229bf,0x732d4ebf,0xfaf96e41,0xd58b3fbf,0x730432bf,0xfaf25241,0x95939abf,0x6edf06bf,0xa9e9541,0x85dd5dc0,0x734b62bf,0x9813d41,0xc7a3cac0,0x7b1732bf,0xf2f28441,0xd4403abf,0x765376bf,0xb2e8c41,0x84ab0dc0,0x7e6b2ebf,0xeadbb641,0xd3ad43bf,0x7b17b2bf,0xf2f1a241,0x944042bf,0x7e6c16bf,0xead90641,0x93ad5cbf,0x7f8f5abf,0x463541,0x860885c0,0x81257fbf,0xdcb97841,0xd310fdbf,0x812475bf,0xdcc26a41,0x93115abf,0x833f9fbf,0xe9e99f41,0x824fa0bf,0x841049bf,0xbd1a3b41,0xd20d5fbf,0x84254dbf,0xbbf2bb41,0x920653bf,0x856c1fbf,0xa851db41,0xd176cdbf,0x863bb1bf,0xbd88e341,0xc3a7a8bf,0x8583a5bf,0xa6b0f241,0x916955bf,0x869611bf,0xbdeb1041,0x8112fdbf,0x86c6a1bf,0x8da23841,0x90caacbf,0x88b72bbf,0x8a392641,0xc274e2bf,0x87d6b9bf,0x649ff941,0xd0106bbf,0x89b4a1bf,0x58358b41,0xc1d0c0bf,0x889d3fbf,0x2f7f2841,0xcf76f7bf,0x8932f5bf,0xef8ab141,0xcee076be,0x89f46dbf,0x5bdccf41,0x7e8debbf,0x892177bf,0xfed45f41,0x8f04abbe,0x89b37bbf,0x14866a41,0xcdf9f8be,0x8aa995bf,0x21855941,0x7d6e48bf,0x89c791bf,0xe9678841,0xcd700d3d,0x8b3a31bf,0xd19ef941,0xc008d1bd,0x89c7a7bf,0xe4ac6d41,0x8d75b83d,0x8b4363bf,0x2532a541,0xbf78c43e,0x899e53bf,0xb1b79e41,0xccf6513e,0x893a9bbf,0x172f0141,0xcc4ee83f,0x899ccbbf,0xb4597541,0x8cf8be3e,0x88a2b9bf,0x50926841,0xcbab653f,0x893ad3bf,0x1712b241,0x8c4df43f,0x8b0d1bbf,0xd7f9b541,0x7dcfee3e,0x8aa289bf,0x28fe8b41,0xbe56d63f,0x889a55bf,0x532e7b41,0x8ba97e3f,0x8af045bf,0x2619ca41,0x77cb3e3f,0x50e606bf,0x235bd541,0x8ba05abf,0x58a976bf,0xbacf4241,0x89599bbf,0x5b6e7ebf,0xd0557541,0x88cdafbf,0x5ed2efbf,0xe54c0141,0x8837c5bf,0x6a8376bf,0x77f0f41,0x867760c0,0x7e05d2bf,0x4f06f41,0x8390dac0,0x8b1679bf,0xdfd9ba41,0x7c9a02be,0x8b79a9bf,0x92a6d241,0x7967dc3e,0x88d883bf,0xa0c27a41,0x74b2313f,0x827e53bf,0x14e0141,0x6fb01d40,0x8097e1bf,0x8dbfd41,0x6e900440,0x6a257ebf,0xfd3c341,0x67bc3c40,0x6087b2bf,0xff9f1241,0x6435593f,0x5b68eabf,0xe20b4e41,0x63cbb43f,0x6ccc8ebf,0xfef90141,0x63d285bf,0x6ea2e6bf,0xab8d841,0x63d242c0,0x8a4ce1bf,0x41034341,0x63d2743e,0x8b57a5bf,0xd378ab41,0x63d2203e,0x71f076bf,0x1bb5a41,0x63d263c0,0x5a0dbabf,0xbb320e41,0x63d2743f,0x60476abf,0xe6c95c41,0x63d2853f,0x57556abf,0x9f38ef41,0x63d2853f,0x64b3b2bf,0x88bf041,0x63d70a40,0x552caabf,0x81e1ca41,0x63d2853f,0x67db66bf,0x2bd2341,0x63d28540,0x8b7d4dbf,0xfdbfcf41,0x63d295bd,0x537f6abf,0x4533a041,0x63d2853f,0x78819ebf,0xa0cd441,0x63d0f2c0,0x6a20babf,0xfe0eb41,0x63d89d40,0x7a3f12bf,0xfd6b2b41,0x63d285bf,0x8b28bdbf,0xcdf41b41,0x63d35fbe,0x89ee03bf,0xc20cae41,0x63d285be,0x6ccc9abf,0x82f4d41,0x63d28540,0x7cc3fabf,0x66c3c41,0x63d285c0,0x6e78e2bf,0x133b9741,0x63d33d40,0x7e552abf,0xf4151241,0x63d285bf,0x51b55ebf,0x86d04e41,0x63d2743e,0x71f086bf,0xa6e1e41,0x63d26340,0x72e0c6bf,0x14697b41,0x63d27440,0x89c089bf,0x6a4fa941,0x63d46bbf,0x88820bbf,0x60f69d41,0x63d285bf,0x83567fbf,0xe923bc41,0x63d31cbf,0x82f4a1bf,0xd563e541,0x63d285bf,0x789daabf,0x12d8e841,0x63d27440,0x4fe9e2bf,0xd3aeef41,0x63d285be,0x86117fbf,0xa9cc1841,0x63d274bf,0x52549dbf,0xb409ab41,0x1628f100,0x55417a3f,0x85400768,0x75bf63d2,0xb74186a8,0x63bfbcd1,0x1ebf63d2,0x40417deb,0x39400dc3,0x6abf63d4,0x2f415118,0x85bf2ca7,0x7ebf63d2,0x9441537f,0xc226b,0x7e554a71,0x2bd1f41,0x4f1003c,0x41818801,0x4005957d,0xbf63d1ab,0x4154df36,0x2494008f,0x55757100,0xd3ed4157,0xf2000c8d,0x82f4b54b,0xe6c89341,0x63d2853f,0x583f6ebf,0xb7b44641,0x63d252bf,0x84b40fbf,0xd1088141,0x63d2743f,0x85a2e5bf,0xde491b41,0x63d4063f,0x5cc86ebf,0xbfa20541,0x63d274bf,0x8783f5bf,0xbefa7b41,0x63d2c83f,0x60477ebf,0xd5645241,0x63d285bf,0x876d7bbf,0xf83c8241,0xba04f101,0x8a415f8e,0xc8bfe95b,0x9bbf63d2,0x3f418924,0x5498c4,0x4e6e04f1,0x2abb4164,0xd295bffe,0xdb4ebf63,0x147b4167,0x620090f4,0x418958a1,0x1f8348b,0xdd711cf1,0x312b418a,0xd0af3f2f,0x68bdbf63,0x16d34185,0x5a7bfb5,0x4c22bf17,0xb4744161,0x5b8bfda,0xd101bf17,0x1ef34186,0x71000c9b,0x41694646,0xcf7d628,0x8a04f100,0x5e4151d1,0xa7be50f5,0x21bf1705,0x9a4188cd,0x184d7a,0x970e03f2,0xd9e0416e,0x5b8c000,0xcf3ebf17,0xa14d416e,0x4a71000c,0x5e415307,0x240bbc,0xbda704f1,0x70374189,0x5b8bef7,0x184ebf17,0xd4b74173,0x35003001,0x30776166,0x2b7d7100,0xa46e418a,0xf500244c,0x8a528100,0x8d38ce41,0x1705b83c,0x77999ebf,0x6a710060,0x3e4156ab,0x5485ae,0x7cea6a35,0x3f2009c,0x4158807e,0xbf9ab702,0xbf17063e,0x415b5f42,0xd81748,0x82723f53,0xd8a641,0x5e9e1e71,0xcb9aae41,0x42f3003c,0x4183c4dd,0xbfcb9629,0xbf170596,0x415b5f2e,0x3fc67c31,0xbf1705a7,0x41827265,0x3fec18ce,0xbf1705b8,0x41588082,0x3fac1cc5,0xbf17063e,0x417ceaa6,0x40049d8c,0xbf1705b8,0x4156ab8a,0x3f971583,0xbf1705b8,0x418a2fad,0x3eade11a,0x3100a8a7,0x24098ca8,0x616e6200,0x54114177,0xa571000c,0x97418994,0x542e8d,0x53073a62,0xc850141,0x18627100,0x877b4173,0xf500300a,0x51d06600,0xae41f641,0x1705b83e,0x6ecf46bf,0xe53003c,0xa4416e97,0x49620054,0xc14187c2,0x5300781c,0x41694646,0x710090d8,0x4186d92b,0x60ac0d56,0x68916200,0x7f0b4185,0x266200cc,0xd41614c,0x7100cc1a,0x4183c135,0x24dd8ae3,0x9e266200,0x58415e,0xd971000c,0x614189e6,0x788c1c,0x899fc571,0x2f1d8241,0x1cf1000c,0x41898c67,0x3d049fd8,0xbf1705b8,0x4189c7cd,0xbdd40032,0xbf1705b8,0x418cb067,0xbed8e7ff,0xbf1705b8,0x418b724b,0xcb79e38,0x7d04f100,0x7d418c03,0xb4beca23,0x45be9471,0x23418b1e,0xca931,0xb5a104f1,0x7ff1418c,0x71d6bed7,0x222bbe94,0xb574418d,0xf1008411,0x8d25c110,0x10c08b41,0x9471d63f,0x8c6d0fbe,0xc8de341,0x9471b43f,0x8bb335be,0x34a6641,0x4f10024,0x418b72d1,0x3efd66ae,0xbe9471f8,0x418abef3,0x9cda66dc,0x904f100,0x46418a9f,0xb43ed224,0xb3be9471,0x304189e9,0xc9065,0x91e910f1,0x50874189,0x71d63e05,0x93c3be94,0x7644189,0x71d6ba95,0xdb77be94,0xbe064189,0x71008402,0x418a624b,0x9c75579b,0xa12f7100,0xaaa418a,0x7100c08d,0x4189de4f,0x1ca36638,0x9dff6202,0x307b4188,0xa9710300,0xa7418791,0x189979,0x83dddd71,0xecf12441,0x3f2000c,0x4183ca4b,0xbfe8791c,0xbe9471f8,0x41848ee1,0x2d01540,0x2cdb1cf1,0x6dad4184,0x71b4bff8,0x97bbbe94,0x9e14184,0x71d6c001,0xdcd3be94,0xd8304189,0x71d6bfa3,0x391dbe94,0x553b4189,0x7100249e,0x418839cb,0xc9a06ea,0x314b7100,0xf1954187,0x71000c99,0x4185ff09,0x6c9f6e8b,0x2ff37100,0x1d194186,0x71003c9e,0x41851031,0x18a91b9b,0x45eb7100,0x66664185,0x710018a6,0x41845517,0x18b683cb,0x86617100,0x35b54184,0x710018b2,0x4183e8a5,0x54c3d378,0xae196200,0x55b04183,0xe57103e4,0x684183ae,0x18d776,0x830b5171,0x88c1541,0x2e620390,0xbd417994,0x71000cc3,0x417aac92,0x18112863,0xe027100,0x7343417b,0x53000c18,0x416b841a,0x71001878,0x416bcbf6,0xe40e5d1c,0x1fe26200,0x9bae416b,0x3f20024,0x416b198e,0xc0186384,0xbe94712e,0x417b16c6,0xc5cb8,0x7a64b653,0x300b41,0x79378271,0x6ee5b41,0x4f1003c,0x417795b7,0xc00113b2,0xbe9471b4,0x4175eec1,0xccfb4e90,0xa59e7100,0x7f994175,0x6200a8fa,0x4173a72a,0x48c42c4,0x185603f2,0x2e64173,0x7193bff7,0xf7d6be94,0xf0d44171,0xda530018,0xc2417041,0x1235003c,0x3c708b,0x6e9b1653,0x606641,0x6c9c7e53,0xe4c241,0x6cf92e53,0x845f41,0x5ed46e71,0xd6effe41,0x56710078,0x12415e9a,0xce811,0x652f9e62,0x8bed341,0xfd867101,0xcdff415d,0x620018f5,0x415d0142,0x1f809c8,0x44000c04,0xbe9471d6,0xd6440024,0x48be9471,0x180100,0x415ecf61,0x98d99371,0x8f867101,0xb36c415e,0xf1000cc9,0x5e16b210,0xbea79341,0x1705eabf,0x5ce11ebf,0xaf9c4941,0x170542bf,0x5dd386bf,0xbad17441,0x46710024,0xf1415b9d,0x78a665,0x5ca73e71,0xaddba141,0x3f20018,0x415a28ea,0xbf9f56f3,0xbf1706d5,0x415b1d7e,0x264a15e,0x594eda71,0x9cc65841,0x4f10024,0x4155936e,0xbf9a2435,0xbf1704ff,0x4157583f,0x1899b83d,0xae04f100,0x9841534e,0xcdbf9fc0,0x1ebf1704,0xf0415559,0x189aa7,0x53716271,0x9f867741,0x8a71000c,0xd54151bf,0xca805,0x51b5e671,0xa8280b41,0x2e710084,0xb3414be5,0x354dbea,0x4be52a71,0xdbeb3a41,0x36710348,0xd4414e8a,0x307329,0x4eba0271,0x79c53f41,0x22710030,0xf94150ca,0x2491f7,0x4edc6671,0xbfd15741,0x2271000c,0xbf414d15,0xcd52c,0x4d866e71,0xd1c79b41,0xe671039c,0x81414fa4,0xcb094,0x515ed171,0x7a1a5041,0x7e71000c,0x954152cd,0x48c950b,0x93ca00f1,0x56e74152,0x723bbde8,0x184ebe94,0xd3156c53,0xbf1705b8,0x415316e6,0x3d027fa2,0x31003071,0x3855b318,0x2367104,0x9bfa4153,0xf1042010,0x5293ce04,0x7f56eb41,0x94723b3e,0x50ca0ebe,0xd7903241,0xce710024,0xf041515e,0x450c2a3,0x4fa4ee71,0xf629fa41,0x8271000c,0xc0414edc,0x49802b2,0x866a04f1,0xaede414d,0x71b43f0b,0x1522be94,0x615f414d,0x7900180d,0x414be52a,0xc10c07b,0x1f80100,0x4151bf61,0xecb96b55,0xbf8e7104,0x6b664151,0x710024b9,0x414ce3c6,0xc4ff317,0xc1f27100,0x7ea414c,0xf1002449,0x55938210,0xab89a441,0x1704ff3f,0x534e9ebf,0xb1264a41,0x1704cd3f,0x53715ebf,0xb0ebff41,0x1e710024,0x6f415559,0xcac0d,0x57583f71,0xab1dbd41,0x4f1000c,0x415a28e2,0x3fb0bc62,0xbf1706d5,0x41594ed6,0x18ae2bd8,0x9d4e7100,0xcb9b415b,0x71006cb7,0x415b1d7e,0x18b506dd,0xe1229300,0x1fc415c,0x58423fc1,0x41203102,0x930018bf,0x415e16a6,0x3fd00c41,0x310288ea,0x18cc36f4,0x8f867100,0x18ec415e,0x71000cdb,0x415ed46e,0x54e85682,0xcf867100,0xf8f0415e,0x710018ea,0x415e9a56,0x18f97692,0xc0400,0x61010801,0xc8415dfd,0x6f00399,0xfd8604f9,0x99c4415d,0x71d64003,0x142be94,0xbc90415d,0xd3000c09,0xbf1705b8,0x416b1986,0x40211648,0x31045c2e,0x3c214e72,0x2f9a7100,0x71934165,0x71000c1a,0x4164c31a,0x3c19cde2,0x841a7100,0xdb27416b,0x71001819,0x416c9c82,0xc11767d,0xac9a5300,0x186e417a,0x64b67100,0xfc3417a,0x53003017,0x417b10ce,0x53005477,0x417b1726,0x53006c40,0x416bcbfe,0x710024a1,0x416cf92a,0x300fa127,0xa10f100,0x4c416e9b,0xb44009c6,0xeabe9471,0x14417041,0xb840065a,0x16bf1705,0x9141708b,0x1805f2,0x72898271,0x4542a41,0x5a810018,0x33417318,0xa4400434,0x74385204,0x18ab2e41,0xeeda5300,0x3c324175,0xa5aa5300,0x3ca64175,0x95aa5300,0x60544177,0x94365300,0xc0a34179,0x37825300,0x84234179,0x97c35300,0x20494184,0x152d6201,0x80994184,0x67710150,0xf4183ba,0x174f4f0,0x80809553,0x1207141,0x89707571,0xb1504c41,0xf7620018,0xaa418917,0x620210f3,0x418a37f1,0x2887a5f,0x39d310f1,0x2eae418a,0x710d3fb9,0x92abbe94,0xc5224184,0x712e4009,0xef65be94,0xbc7b4183,0x7100fc00,0x4183b1b9,0xe0f0501e,0xc0f97101,0xce464183,0x710300de,0x4184091b,0x60d09d1f,0x19bb7100,0x70764184,0x710018ce,0x41847dd3,0x18c4912a,0xe797100,0x91d14185,0xf1000cba,0x84d92904,0xbd8c7e41,0x9471933f,0x860a33be,0xb08d0041,0x75710018,0x5b4185e7,0x3cb196,0x86ed3571,0xac0b3d41,0x6562000c,0xf0418805,0x7102dc17,0x41884f81,0x30aba366,0x3a877100,0xcaac418c,0x71000c76,0x418c4f0b,0x9c6ffeb0,0x11697100,0xc7824177,0x710498ef,0x416a2d7a,0xf08a16c6,0xe6d67103,0x9093416b,0x71000ce8,0x41790179,0x24c961a2,0xc3127100,0x1b154164,0x71068411,0x4179b58e,0x24fb0681,0x99aa7100,0x4153417a,0x71002495,0x41775fce,0x6018d003,0x6cb67100,0xe37e417b,0x710024b3,0x416e1df2,0x18120557,0xc22e7100,0xdd51417b,0x7100302c,0x41702f6f,0x18215800,0xb6d55300,0xa0c84180,0x17b67102,0xe01e416c,0x710024a9,0x416e4a5a,0xce1cf78,0x47967100,0x3a08416a,0x71000c1a,0x4170f72e,0x40027829,0xd80b7105,0x66494182,0xf1009c09,0x7c69d210,0x4901d41,0x9471d6bd,0x699ccabe,0x718b9341,0x9471d63d,0x726c4abe,0x284d8741,0xba71006c,0x71417c7d,0x9c17e6,0x74619271,0x4f13d41,0x1e710048,0xbb4174b3,0x24267d,0xd8a904f1,0x60c84178,0xaf47becd,0x79b6be9e,0x59c0417a,0xf1000c9a,0x69a6ba04,0x1e1c1541,0x9eaf473d,0x7baceebe,0x38abd641,0x76710018,0x8416a2d,0xc0901,0x7dbe04f1,0xd124417c,0xaf47bc4b,0xe6dabe9e,0xfaf8416b,0x710018a2,0x416e8f92,0xce7c137,0x8204f100,0xfc41714a,0x47bf031c,0x5ebe9eaf,0x73417418,0xc057f,0x76e21a71,0xf270d241,0x32810024,0xf6416cea,0x243f047d,0xe03f100,0x1837416b,0xaf473ec2,0x69d6be9e,0x475e417c,0x71000c2c,0x4169ec2a,0xc5fc7a4,0xc2367100,0x2f3417b,0x73000c9c,0x417a99b2,0xcdad5bf,0x7802f100,0xcf40e41,0x9eaf683f,0x758116be,0x2428e541,0x52710054,0x84417218,0xc284a,0x6f4e9671,0x1c039b41,0x27f2000c,0x416d70b3,0xbec5ab5c,0xbe9eb2d1,0x416aaa6e,0xbe2737da,0xbe9eb314,0x417072da,0xbef5082d,0xbe9eaf25,0x416aaa62,0x3e992dfd,0xbe9eb314,0x4175bde2,0x1807a7,0x78c00a62,0x3ca9ca41,0xaa1bf200,0x49416d70,0xd13f05a0,0x4abe9eb2,0xc6417b86,0x35be2730,0xc6be9eb3,0xd3417072,0x253f1d4e,0xd2be9eaf,0x274175bd,0xf3000c4f,0x7b864202,0x99305941,0x9eb3353e,0x78c002be,0x3c9d41,0x8a129ff2,0xeed94170,0x4f9cbec6,0x9fcabeb5,0x27354171,0x50a93f0b,0x90eebeb5,0xb8064174,0x50a9bed0,0xfc22beb5,0xc2d7416d,0x50013edc,0xca86beb5,0x2967416b,0x50443e69,0x7c3abeb5,0x5458416b,0x5193bcc4,0x48a6beb5,0xbd23416d,0x5022be80,0xa69abeb5,0x428d4175,0x4f9c3f06,0x3492beb5,0x2c0e4178,0x5022be97,0x662abeb5,0xf61b417a,0x5065bdbb,0xb476beb5,0xb81b417a,0x51b53e23,0xe80ebeb5,0x52df4178,0x50223ec6,0x741ebeb5,0x45bb4179,0x4bad3e98,0xe73abeb5,0xeda2416d,0x4bad3ec8,0xbc86beb5,0x446b416c,0x6a620018,0xd0417849,0xf10018ee,0x78497204,0x8357c541,0xb54badbe,0x76c42abe,0xa8ae9741,0x4262000c,0xd1416de7,0xf1001858,0x6f6c8204,0xee449541,0xb54bad3e,0x6cbc8ebe,0x255fbb41,0x8a620024,0x60416f6c,0x620030af,0x41797426,0x185d1c,0xc60ff2,0x2abb416c,0x4bcfbd50,0x31d6beb5,0xdedb4171,0x4bad3f02,0x2feabeb5,0x1f32417a,0xe2710018,0xfa417131,0x48c027,0x73184e71,0x6dfb541,0x4f10024,0x416bc0ba,0x3d8b2852,0xbeb54bcf,0x4173185e,0x24c8294a,0x6ff26200,0x2e9d417a,0xca620018,0xd4174fe,0x810054df,0x416c00c2,0x3e3f3344,0xfe43006c,0x54954174,0x2fe66200,0x3626417a,0x22620018,0x5f4176c4,0xf100c045,0x6bad4228,0x8b2bfe41,0xc694cd3d,0x6bedfabe,0x4076c041,0xc694cd3e,0x6c9fcabe,0x969fcf41,0xc54e2b3e,0x6ddddebe,0xca9da641,0xc50ce53e,0x6f62cabe,0xf05f6c41,0x4f10024,0x41712cce,0x3f040b46,0xbec694cd,0x41731852,0xc0816ad,0xe602f300,0xd24174fe,0x3e3f041d,0xdebec67b,0xd04176cd,0xee620030,0x2e417856,0xf200481a,0x79909103,0x96111241,0xc53a823e,0x7a42b2be,0x78774741,0x836b3500,0xf200907a,0x7471aa9f,0x8632e441,0xa5421c3e,0x7482f6be,0x6b7b41,0x9ded293e,0x78572abe,0x85109041,0xc694cdbe,0x7990debe,0x22153341,0xc54e2bbe,0x7428a6be,0xbc63f141,0xafb8d43e,0x7231d6be,0x8e3de641,0xa589483e,0x731856be,0xb7e13341,0xa18288bd,0x7a42b2be,0x552e3041,0xc694cdbd,0x7427babe,0xd16fca41,0x9ed15bbc,0x76cddabe,0xaaca1541,0xc694cdbe,0x74ea12be,0xc3012141,0xc5f8d3be,0x7355a2be,0x3f4dbe41,0x9bee803d,0x73184abe,0xca975b41,0xc694cdbe,0x714242be,0xc323bc41,0xc60c39be,0x6f62c6be,0x3cc92a41,0xd97a6200,0xfa6416d,0x12b1009c,0xa6416ca0,0xa3be20f0,0x15cc53a,0x7829fe22,0xe6c5f400,0xd64171ff,0x233e19e4,0xd6be9e66,0x37416f9a,0xecbe6050,0x22beb6a4,0xbc4171b3,0x913c0d21,0x6ebe9df0,0x244166b9,0x52bfe797,0x16bff846,0x56416b88,0xe3bff3f2,0xc6bff84f,0xa0417115,0xa8bffade,0xd6bff851,0xf741768f,0x61bff991,0xb7bff852,0xa3418438,0x8bfa4e9,0x2ac00f5b,0x6e416737,0x8bfd786,0xdec00f5b,0xcf415530,0x8be9368,0xdbc00f5b,0x9e4186ea,0x8bf567c,0xd2c00f5b,0x914170da,0x8bfea2c,0xb7c00f5b,0x2a4187bf,0x8bf1ca8,0x76c00f5b,0x67415691,0x8bf1761,0x92c00f5b,0x2d4175e6,0x8bfe995,0x71c00f5b,0x9d418873,0x8bea313,0x52c00f5b,0x2c415830,0x8bf5180,0x6ac00f5b,0xc8417abb,0x70bfe30b,0x7c00f12f,0x8bf9c99,0xa2c00f5b,0xf541605d,0xcb748,0x81e64771,0xc2e57141,0x271000c,0x2b417e5d,0xcd615,0xd3ee04f1,0x1c584157,0x5b083f5a,0x89e5c00f,0x6ec64185,0x71000c99,0x41825c0d,0xccb0fc7,0x24767100,0x98d04156,0x71000c11,0x418712b3,0xc6270f4,0xb6c67100,0x63884178,0x710048e3,0x417dd496,0x18e8ee4a,0x166d7100,0xfca04188,0x71000c09,0x417a146a,0xcf2391d,0xba04f100,0x3d415522,0x83e530e,0x46c00f5b,0xd24173e7,0x3ce754,0x887da371,0x76c97e41,0x66710018,0x5a417249,0x30f8ba,0x356a04f1,0x3c924155,0x5b08bdd7,0x79eec00f,0xc919416d,0xf10018f4,0x88570104,0x7e53eb41,0xf5b08be,0x6c1c4bc0,0xe0d39541,0x6e710048,0xaf4155d3,0x18b1e9,0x573f6271,0x22e5ac41,0xa6710018,0xab4167d3,0x3ce77a,0x64cb1271,0xca682341,0xea710018,0x7e41609c,0xcb4c3,0x86f6cb71,0x46b8b741,0x671000c,0xbf415c59,0xc9446,0x63649671,0xd555ce41,0x8371003c,0x80418563,0x188b29,0x5f793771,0xbeadde41,0xb5710018,0xd441835b,0x18ad48,0x5c010271,0xa2189c41,0xb710018,0x4e418166,0x18c3f0,0xcafffff1,0x41853047,0xbf8ed834,0xbffadb62,0x416a8842,0xbfdd70b5,0xbffadc90,0x41873f47,0xbf32a9d6,0xbffadc33,0x415517b2,0x3df88228,0xbffae8e2,0x416e5ec2,0xbfe46cca,0xbffadd1e,0x41553af6,0xbdf502ac,0xbffadb8c,0x41723dd2,0xbfe752db,0xbffae86c,0x41885e1d,0xbe68d584,0xbffadd8b,0x41570882,0xbf190364,0xbffadafd,0x4179fb22,0xbfe104f7,0xbffadaec,0x4158ab42,0xbf5251f4,0xbffadae4,0x4180a9f1,0xbfcab5c4,0xbffadaba,0x415d44d2,0xbf9c213a,0xbffadb16,0x418254f7,0xbfb9fd3f,0xbffadadc,0x4183d949,0xbfa5eb6c,0xbffadb05,0x41635cae,0xbfc3c9de,0xbffadbad,0x415bd012,0x3fa03d25,0xbffadb62,0x417ba872,0x3feed634,0xbffadc98,0x417f5936,0x3fe3e532,0xbffadc12,0x4157b21a,0x3f557471,0xbffadc44,0x4177d1f2,0x3ff5d24a,0xbffadd1e,0x41887adb,0x3e82d85e,0xbffadb83,0x415653fa,0x3f1a687f,0xbffadcca,0x4173f2de,0x3ff8b85a,0xbffae86c,0x4188279f,0x3eff2991,0xbffadb38,0x41557476,0x3eba0147,0xbffadd72,0x416c3592,0x3ff26a87,0xbffadae4,0x4186c2b7,0x3f751cc1,0xbffadaec,0x4185b725,0x3f953fe2,0xbffadaec,0x4164dcd6,0x3fdc1b76,0xbffadac2,0x4161869a,0x3fcb61dd,0xbffadad3,0x418304dd,0x3fc2f473,0xbffadb51,0x415e7e02,0x3fb7504c,0xbffadb05,0x41882035,0x3ec903a7,0xbff7abf3,0x4188501d,0x3e46da01,0xbff7ac0c,0x416de6a6,0x3ff1f3bf,0xbff7ab8f,0x41711346,0x3ff4f230,0xbff7aba8,0x41885943,0x3c402f30,0xbff7a0a5,0x4155e562,0x3ec14f27,0xbff7a9a8,0x41780c8a,0x3ff24a9d,0xbff7a954,0x4156d6ee,0x3f1f6007,0xbff7a97e,0x41584e8e,0x3f5b77d1,0xbff7a97e,0x417fb97a,0x3fdf015c,0xbff7a954,0x415a4536,0x3f89e721,0xbff7a97e,0x41819f6d,0x3fcf4c3c,0xbff7a965,0x415cb1be,0x3fa3ae82,0xbff7a9a0,0x41833bd7,0x3fbbe88a,0xbff7a997,0x4184aa4f,0x3fa5328b,0xbff7a9da,0x4162bc3a,0x3fce3212,0xbff7aa26,0x4185e41b,0x3f8b93ff,0xbff7aa3f,0x4186e357,0x3f5f0e3d,0xbff7aabd,0x4187a33d,0x3f2321a3,0xbff7ab54,0x4169fc62,0x3fea2396,0xbff7ab00,0x417ff9ca,0x3fde0a9e,0xbff41ff3,0x415ce44e,0x3fa57c5f,0xbff41ff3,0x4159e642,0x3f85a640,0xbff41ff3,0x4188495d,0x3e7bf6e4,0xbff41ff3,0x418857e3,0xbbd31fcd,0xbff41ff3,0x41784dc2,0x3ff1ee46,0xbff41ff3,0x41579c5a,0x3f41e604,0xbff41ff3,0x4187da89,0x3c0d716d,0x97ce7100,0x2d664156,0xf1000c11,0x55f0ea04,0xc972ef41,0xf41ff33e,0x6f4f6abf,0xf3e8ff41,0x4f710018,0xe41871f,0xc4e12,0x867fa171,0x77222941,0x8e71000c,0xb2416a4e,0xceaf3,0x85668371,0x96b62041,0xd771000c,0x9c418414,0xcaf36,0x6300a171,0xcf980741,0x171000c,0xfa418291,0xcc49b,0x813cd171,0xd305b841,0x28f1000c,0x4164abee,0xbfc63bef,0xbff7a94c,0x416636c6,0xbfcca498,0xbff41ff3,0x4184bf77,0xbf924913,0xbff7a98f,0x41685182,0xbfd3fd37,0xbff7a93b,0x416ada59,0x24db1a87,0xe15b7100,0xe0334185,0xf1000c74,0x55a1d628,0xfd313341,0xf7b7a6bd,0x85f5c3bf,0x71024741,0xf7a96dbf,0x6c2a42bf,0xdda79841,0xf7a943bf,0x55a3e6bf,0xf85be241,0xf41ff3bd,0x86f119bf,0x38aab941,0x4f10024,0x417023ea,0xbfe30d06,0xbff7a954,0x4170d1ab,0x54e3c11e,0xd504f100,0xa04187ac,0x8fbef933,0x59bff7a9,0xef4187a2,0x1800ad,0x354204f1,0x10524174,0xa030bfe4,0x3446bff7,0x32614157,0xf200180d,0x5799ca0f,0x1eb5c441,0xf7aadebf,0x88259dbf,0x77842341,0xf7a9a0be,0x75f202bf,0x54209641,0x46167100,0x87054158,0xf1003037,0x784a1e04,0xe08e0d41,0xf7ab86bf,0x79eebebf,0xddd38941,0x10f10018,0x415959ea,0xbf58da3c,0xbff7aa61,0x417c343e,0xbfd8be27,0xbff7aaef,0x415bf0e6,0x248b63b2,0xcaf27100,0x3afb417d,0xf1000cd4,0x5b945210,0x87535841,0xf7aa04bf,0x7ff2fabf,0xccbfa941,0xf7aa7abf,0x80ba0dbf,0xc684e841,0x4f10024,0x415e3e12,0xbf9f8b37,0xbff7a9b0,0x415f7f3e,0x18a8ee52,0x3b04f100,0x794181ba,0x15bfbccc,0x61bff7aa,0xd841826c,0x18b4f2,0x4ab204f1,0xa4664161,0xa976bfb4,0xb3febff7,0xa0664162,0xf10018bc,0x83541b04,0xa9302741,0xf7a9cabf,0x83a62bbf,0xa45dc041,0x93f20018,0x415cf0ca,0xbdced1bf,0xbff42060,0x416f9b92,0xbfa7da8c,0xbff41fe2,0x416ab22e,0xbf9d0953,0xbff420bc,0x415ecce6,0xbf032e8c,0xbff4204f,0x41811ed5,0x3f8bcc42,0xbff42081,0x41824805,0x3f6fb225,0xbff42081,0x417f88aa,0x3f9cf030,0xbff4202e,0x41635152,0xbf6ba659,0xbff41fc1,0x41842c69,0x3eff54b0,0xbff4201d,0x417695ea,0x3fb93ea3,0xbff4201d,0x4184afb9,0x3e3c4dec,0xbff420cd,0x416de962,0x3fb68755,0xbff41f97,0x41842c67,0xbeb9bf7b,0xbff4201d,0x4166a83a,0x54f14e,0xfffffff1,0x8248037f,0x4ce76841,0xf42081bf,0x61a0a6bf,0x6fb24641,0xf420793f,0x7f888abf,0x8b8b5041,0xf42036bf,0x5dd7f2bf,0xff5c2941,0xf420143e,0x784752bf,0xa521c441,0xf41fa7bf,0x5cd142bf,0x3c52e741,0xf420c53e,0x6d5126bf,0xa3a3fd41,0x6ecea3f,0x6c0f52c0,0x9a04a741,0x9b8a23f,0x6f8482c0,0xa1e2bd41,0x9b8a23f,0x6f397ec0,0xae6eca41,0x270f83f,0x68c5cac0,0xa2c9d141,0x104cf03e,0x6a30bec0,0x67c84b41,0xef6403e,0x6a041ac0,0x1c0b9a41,0xf0037bd,0x673889c0,0x3e9e9041,0x1048d43f,0x6a47b6c0,0x753b9f41,0xf9a953f,0x65eebec0,0x51692b41,0xe1b373f,0x687732c0,0x7e5e6841,0xd47243f,0x65f90ac0,0x77bea941,0x9b8a23f,0x69d976c0,0x987faa41,0x6ea643f,0x6ac7f6c0,0x8e4d2b41,0xc284e3f,0x68007ec0,0x980dfe41,0x270f83f,0x731856c0,0xb3277841,0x10ba23f,0x6642a2c0,0xcfe9b841,0x1106ffbb,0x72d5dac0,0xce70441,0x5fcad3c,0x641a9ec0,0x8da7f41,0xf9a993f,0x6334cec0,0x10016041,0xe147f3f,0x638cfec0,0x4d3dea41,0x9b8a23f,0x66b432c0,0x88755841,0x6ea683f,0x683696c0,0x72442041,0x104cf0bd,0x61961ac0,0x8b8c3341,0xe1b373e,0x633c0ec0,0x2e8c4841,0xc284e3f,0x61a87ac0,0x1c577e41,0x9b8a23f,0x63faeec0,0x68217d41,0x6ea7d3f,0x62470ec0,0x5ca0b241,0x270f83f,0x626b4ec0,0x288e7a41,0xf9a913e,0x61b326c0,0xfa7b4e41,0xc284e3e,0x605bfac0,0xcd6b4441,0x9b8a23e,0x61c57ec0,0x3809b341,0x6ea7d3f,0x6d875ac0,0xc9108041,0xf0037be,0x73185ac0,0x9e7afa41,0x6f6d7bd,0x731856c0,0x8b30b641,0x5b6fa3d,0x61d63ec0,0x74f72341,0xed191bd,0x60270ec0,0x244c841,0x6ea603f,0x5ed31ec0,0xdb650241,0x270f83e,0x61f0eac0,0xa2ae8e41,0xd4734be,0x5fb2c6c0,0x3587d741,0x9b8a2bd,0x5f2dc6c0,0x914e3c41,0x6ea5b3e,0x5e1c1ec0,0x421d9741,0x270f83e,0x70c262c0,0xfbdb7f41,0xf032ebe,0x641a66c0,0xcc10d841,0xf9a95be,0x605bd6c0,0x87c4c141,0x9b8a2be,0x5ee22ac0,0x5270b041,0x6ea853d,0x5e1c0ec0,0x5b328b41,0x270f8bd,0x6e8822c0,0x10847341,0x104bfdbf,0x73185ec0,0x9ebde441,0x37460bf,0x731526c0,0x4c272041,0x6c5653e,0x61a83ec0,0xf3098541,0x9b8a2be,0x5f46b2c0,0x38c60d41,0x6ea60be,0x6c1e3ac0,0x4ec7c941,0x10894cbf,0x685c42c0,0x5207b341,0xe1b2ebf,0x638caec0,0x2a6c0941,0x9b89dbf,0x60580ec0,0xcec2f041,0x6ea57be,0x603a96c0,0x4e59341,0x270f8bf,0x73f21ac0,0x4cfe141,0xf30bebf,0x6a474ac0,0x526c7f41,0xf9a95bf,0x654ee6c0,0x37afa741,0xc284ebf,0x65f8a6c0,0x54ede541,0x9b89dbf,0x620ceec0,0x1c747541,0x6ea7dbf,0x6f2af2c0,0x6601de41,0x106456bf,0x6fa846c0,0x1ab37841,0xef5ba3f,0x731856c0,0x3caf3e41,0x10278d3f,0x6e5a12c0,0x80bd5541,0xe1defbf,0x68d706c0,0x77979a41,0x9b89dbf,0x645652c0,0x4b9b4541,0x6ea53bf,0x64e576c0,0x67cb6041,0x270f4bf,0x6ac786c0,0x79cbab41,0x4f10078,0x41672062,0xbf733b32,0xc006ea53,0x416dfd56,0x1886d8e4,0xe210f100,0xb1416a52,0x6cbf88fd,0x46c006ea,0x8c416b7b,0xf4bf9484,0xeac00270,0x68416f38,0xc9d08,0xe2a208f1,0xd3d4172,0xf1d03df8,0xd5d2c005,0x48f1416f,0x147f3f94,0x7102e80e,0x3f9e520d,0xc0c0974,0xe7cd7100,0x3593bf88,0x71000c0d,0xbf936356,0xc099d34,0x44fff200,0x3fa960c8,0xc00767f5,0x41724ca2,0x3e5cf4e8,0xc0071ae3,0x416f465a,0x3f371d0d,0xc01052c1,0x416c451e,0x3ee9ee24,0xc00f0032,0x416d7c62,0x3f8ca644,0xc00ec0e8,0x417ea956,0xbf1754b0,0xc010894c,0x417b088a,0xbf6dbac3,0xc00e1b37,0x417d5946,0xbf779b45,0xc009b8a2,0x417a2172,0xbf889ec3,0xc009b8a2,0x4178dfa6,0xbf923e42,0xc006ece1,0x417832f6,0xbf86d9cf,0xc00c2852,0x4176ac4a,0xbf907cfa,0xc009b8a2,0x4176f752,0xbf9d0907,0xc00270f8,0x417d104e,0xbe78240b,0xc010466f,0x417fe1e2,0xbda6dacb,0xc0110664,0x417c505a,0x3c6e392e,0xc00ef645,0x417e5626,0xbf5cd003,0xc00c2852,0x41801bdb,0xbf54f29d,0xc009b8a2,0x417c574e,0xbf8719f8,0xc006ea53,0x417e3047,0xbf86a7e7,0xc00270f8,0x41735c5a,0x3e022dd8,0xc005fcbd,0x417f7c8a,0xbf6e1f5c,0xc006ea53,0x417dfa16,0x3e47bf62,0xc0104cf0,0x41824d4d,0xbe0bef8d,0xc00e1b26,0x4182441d,0xbef3167f,0xc009b8a2,0x41811ae3,0xbf455619,0xc006ea7d,0x4181f4d5,0xbf39d463,0xc00270f8,0x417e27da,0x3efded8d,0xc0110664,0x4179ebbe,0x12ce7b8,0x3ec527f2,0xe2f34182,0x2852beb4,0x359fc00c,0x3d324182,0xea74bf15,0xd85fc006,0xb58d4180,0x894c3ed7,0x4d51c010,0x81954182,0x1b373e8b,0x3eedc00e,0xfe544183,0x33f20378,0x418304d3,0xbebef34d,0xc006ea46,0x4183aec9,0xbe95cc64,0xc00270f8,0x4176889a,0x3f1ab24a,0xc00ef5ba,0x4182e00f,0x3d8b1359,0xc00c2852,0x41838175,0xbe176966,0xc006ea70,0x4182ea69,0x42c5c74,0xa7434bf2,0x21bc4183,0xea743dad,0xa4dc006,0xfcd24184,0x70f83e41,0xdfebc002,0xe2584177,0x512f3f31,0x211bc010,0x64954180,0x1b2e3f51,0x3ed7c00e,0x6d484182,0x28523efa,0x4435c00c,0x506a4182,0xb8a23f1c,0x74fdc009,0xf98b4183,0xea683ea1,0xaed9c006,0x54e34183,0x10f10438,0x4182ec53,0x3f0a2be0,0xc006ea4b,0x417be966,0x3f75373b,0xc00f9a99,0x417b08ea,0x54884192,0x10ff200,0x3941801c,0xa23f77b9,0xd9c009b8,0xc418211,0x923f3f40,0xf7c006ea,0xd04181f4,0xf304f899,0x77251227,0x83ef6341,0x106a3c3f,0x7e5676c0,0x7f973541,0xc284e3f,0x80ed2bc0,0x6e665641,0x6ea603f,0x7f1032c0,0x8b036441,0x6ea793f,0x7e30a6c0,0xd00ba241,0x78336105,0x983e7d41,0xb2620030,0xeb4176ac,0xf10678e1,0x7bddd204,0x9a634941,0x6ea573f,0x7ab562c0,0xa5ea1441,0x3f20030,0x41785b4a,0x3fa4db59,0xc006e747,0x4176f7be,0x69c6df0,0x4d8227f2,0xdc774173,0xf1dc3c70,0x5af6c005,0xe32e4176,0x147fbf82,0xc06ec00e,0xfdf84173,0x17b1be0b,0x361ac008,0xca8e4177,0x32bee5,0xa85ec00f,0x85c24177,0x10f104c8,0x417aef1e,0xbf14b5bb,0xc0110668,0xbf94c3a0,0x3fc8afbc,0xc0128e3b,0x3f805abc,0xcd810ae,0xbee07100,0x93fb3f82,0x710d5cd6,0xbfb17c5f,0x18adfefc,0xb53d4400,0x3e58bfb4,0xcb33e71,0xf1f18d3f,0x5710018,0x213f1218,0x30f120,0xc5880171,0x95478dbf,0x10f10018,0x3ff43383,0x3e10856e,0xc0128e3b,0x3ff49681,0x3d567770,0xc00f5b08,0xbfd0d563,0x30843127,0x2de04400,0x3e58bfd6,0xe84dfd44,0x443e583f,0x3fe7061c,0x37713e58,0xa63d73e0,0x54fbed,0xc4007571,0xfc390d3c,0xdc71003c,0x90bfe62c,0x182a2e,0xe4e42144,0x443e58bf,0xbe82caff,0x62443e58,0x583fd4f6,0xf723443e,0x3e583fd2,0xf0a27f44,0x443e58bf,0xbfeec4df,0x85623e58,0x15be94b6,0x710f18fe,0xbff27560,0xb4ab1bbd,0x8404f100,0xc3bff212,0x3bbbaa64,0xfec0128e,0xdb3fb6d6,0x78aac3,0xb978dd71,0xa7c3693f,0xc6710090,0xe7bf58dd,0x18e239,0x44234244,0x713e58bf,0xbf7c713f,0x24d8113c,0xc1c27100,0xd84dc001,0xf1002412,0xa8598604,0xe723143e,0x128e3bbf,0x121501c0,0xdfbb063f,0x7944000c,0x583ef374,0xbf72443e,0x3e583cc3,0x5146244,0x713e58c0,0x3fb15bdd,0x48d2ebc4,0x1c3f7100,0xb9dc3fde,0x44000ca0,0xbd3f4ba5,0x713e58,0x7f3ff31a,0x1879d9,0x547cfa71,0xff801b3f,0x2144000c,0x58be7573,0x5d04f13e,0x39bfeec5,0x3bbe8143,0xbfc0128e,0xd2c0040b,0xc808d,0xf0288071,0xe30b4abe,0x90710090,0x8140024b,0x3c1b0a,0x13a4f844,0x713e58bf,0xc0007222,0x24020924,0xe5607100,0xed24bfe4,0xf4000c0e,0xa63c1001,0x8f3c33e,0x128e3b40,0x4425c0c0,0x443e58bf,0xbfd4dbe0,0xdd713e58,0x88bf88b5,0x30dd80,0xe67f3d44,0x713e58bf,0xbe4d5305,0x3c09d24e,0x98424400,0x3e584006,0x9834a071,0xb44713bf,0xa0710030,0xde3ff2c3,0xa828e7,0xaf900071,0x9ea737bf,0x7d440018,0x58bfbd94,0x8041443e,0x3e584003,0x366c7f71,0x24df9bf,0xbe710054,0xe63fea4e,0x3cf25c,0xdc5b9f71,0x426f723f,0x1d71003c,0x243ff092,0xc6060,0xdf8e5c71,0x8d37093f,0xe471000c,0x16bf96f5,0xfce5bf,0xb1783e71,0xd0f228bf,0x2144000c,0x583faeac,0x59de713e,0xc6c93fb3,0x440030bf,0x3f8a03ff,0x1e713e58,0x8dbfdda8,0x309e42,0x77ebc071,0xe5c7ef3f,0xdf710024,0x7ebff2c4,0x187236,0x9bbf19f4,0xa194c005,0x53d23d8a,0xb9d0bff8,0x9ec3c003,0x35b5be8e,0xaa61bff8,0x5b75bfff,0x4fa9bf0a,0x747ebff8,0x3e58bfe4,0xbb030071,0xb69df9bf,0x43710018,0x74bf85e7,0xcdf28,0x3b03e71,0xfb3feabf,0x7f44000c,0x583d6b4c,0xdeb9713e,0xa32b3f12,0x440018f9,0x3f87083e,0x83443e58,0x583fbc52,0xff1e713e,0x2e943fe5,0xf4002483,0xf6086301,0x49143c3f,0xf86613bf,0x3a772bf,0xf43e5840,0x66c8f01,0xa4cf8d40,0xf84fecbd,0x399febf,0x443e5840,0x3ff0c75c,0xbc443e58,0x583fdfc9,0xc401f43e,0xed3fb399,0xa93fd0f1,0x3ebff84f,0x583f6a96,0x3f85443e,0x3e583e93,0x73e92144,0x713e58be,0xbf50373f,0x30ff80cb,0x2ea17100,0x97eebfa2,0x71000cdd,0xbfd6e73e,0xca83937,0xf8837100,0xdb44bff0,0x44000c79,0xc0013b32,0xdf43e58,0xc004f05f,0x3e8dbf8c,0xbff84fa9,0x400547d0,0x3f129dc7,0xbff84fec,0xbffd8fbd,0x1f43e58,0xbf3e1c04,0x400c11e4,0xbff84e1e,0xbf7611ba,0x15443e58,0x583dd938,0x7792443e,0x3e58c00f,0xbf8e9f44,0xf43e583f,0x84e013d,0xcc13ba40,0xf84f6e3d,0x98aa43bf,0xfc6a4dbf,0xf84a383f,0xe97cddbf,0x9e68013f,0xf84f333f,0x77942bf,0x4f81e9c0,0xf84ec63f,0x8d83e0bf,0xfb8e323f,0xf84f903f,0xc3772bf,0xc8de3c0,0xf84e273f,0x5be511bf,0xf13e58be,0xcf28bf10,0xcff601bf,0xf849c33f,0x267686bf,0xb98e13f,0xf84f6e40,0xfd64e0bf,0x69651b3f,0x52f300e4,0xbfe62adc,0x3fb4a090,0xbff84d66,0xbef4488c,0x401066a1,0xbff849cb,0xbf9abe1f,0x3ffaf16f,0xbff72cae,0xbfccc6de,0x3fd21ff3,0xbff60cfa,0xbfe2c5e3,0x3fb8d64d,0xbff57f6b,0xbff3af64,0x3fa075cd,0xbff4ec07,0xc001383f,0x3f85ed9e,0xbff466f5,0xc00c59b0,0x3f08d174,0xbff31fb4,0x7100f09f,0xbff22518,0xfc0d52f0,0xab658400,0x4b40bfef,0x3e584000,0xb071044,0x443e5840,0x4001fb2f,0x19f43e58,0xbfd4ddbe,0x3f9bd5a2,0xbfc4ddb5,0xbfdd63c3,0x3fb8c2df,0xbfd31d04,0xbfc0d0dd,0x3fb56590,0xbfc58655,0x3f2f5105,0xf443e58,0x583efe9d,0x201f43e,0x643f710e,0x5abfdfeb,0x63bff846,0x58bffe0a,0xc049f43e,0x2f3f62e8,0x6cbfe185,0xbcbff77b,0x1f3fedcb,0x7a3f6766,0x4ebf8fa6,0x6dc007d3,0xe3f30fd,0xbcbfd113,0x493f8702,0x9fbfd5bb,0x9ebff705,0x243ff198,0x393f9f29,0x82bf9cd5,0x87bffa73,0xe23f124f,0x82bfc303,0x5c3fa856,0xf4bfc2cb,0xc0bff84f,0x583fcf26,0x410df43e,0xc9c00045,0xd03ea4ae,0xb1bfc261,0x3ec00c8a,0xa03e9a41,0x20bfd032,0x583fb7d4,0xa001f43e,0x493fb9c6,0xb13fbf2c,0x72bf8dc2,0x58c00152,0x6401f43e,0x7e3fd45d,0x48bf988d,0x5dbff850,0x583fa18a,0x20df43e,0xd6c00084,0x4dbe29e4,0x9cbfc12f,0x593fde33,0xf2bf7ebe,0x82bff497,0x583f4b3c,0x1d01f43e,0x1cbff95b,0xffbeef99,0xdfbfc075,0x583ff816,0x3f01f43e,0x4dbfefff,0xd2bf2f86,0x9bfbfdf,0x583ee019,0xef01f23e,0xf3ea7c5,0x8b4010d6,0xc0bf986b,0xc8bfe396,0xbf33f43a,0xff87bebf,0xaba2e03f,0xf2bee8be,0x6df1e1bf,0x560783e,0x8a5e3540,0x22fe0bf,0x2f412940,0xf188b13e,0xc01180bf,0xa4d795bf,0xbe01b4bf,0xad98bfbf,0x6284abc,0x89b2b340,0x578ebf,0x443e5840,0xbe8c9ff9,0x8b443e58,0x58befa88,0xa225f43e,0x8bbf919b,0x2dbfcd8d,0xe3bfbcce,0xee3ff8ff,0xe03f2b97,0x3bff048,0xeabeffb2,0xb5400209,0x7bbf886f,0xa3bf37bd,0xe33ffb23,0x2bf87dd,0x58bf7548,0x801f43e,0x38bf315a,0x9cbfeb2c,0x3abfbba4,0x58bf6d3b,0xdde5f43e,0x9a3fdeb1,0x5c3f905e,0xfdbfeeff,0xe7bf9285,0x1b3fde50,0x9ebf86b9,0x15bfaeb2,0x833fe770,0xf5bf9452,0x2abef6bd,0xec005fe,0xfdbfc8d9,0x17bfac15,0xac3fca2d,0xf0bf861a,0x2fbe76f8,0x61bff8fa,0x9ebfba6f,0xc7bfc0d1,0x3c3fb564,0x24bf8586,0x83bfdb48,0xa03fbb6a,0x8abf9333,0xbf3c4e20,0xc6bffaf2,0xe1bfb9c3,0xe33fa808,0x3d3fcfc2,0x5dbfed46,0xc7bfd4de,0x9c3f9bd4,0x7ebf84dd,0x38bff518,0x303f96d9,0x4bf9265,0xfebfe2ca,0x5b3f8580,0x89bf845b,0x63e885c,0x1bff8d7,0xbfbfb918,0x523f8cb6,0xe13fe3b9,0x47bfec95,0xd33f07ff,0xe3c00584,0xbcbfc66c,0xf7bff193,0x203f4a39,0x62bf839a,0xa0c00787,0x693f34f9,0xbcbf911d,0x203f4a3b,0x90c00079,0xbdbfc5c0,0x7fbffa73,0x5c3f124d,0x3bbf8303,0x583f4b1a,0x8532f13e,0x733f3c08,0xc2bfe9bd,0xc0bfb7dd,0x5c00ccd,0xcb3e89f9,0x72bf9013,0xde3ef74f,0xe2400290,0x81bfeb05,0x6a3f9e92,0xc8bfe34b,0x6fbfc4b6,0xe5c0014a,0x8f3d8b29,0x44bf81c6,0x813f94a8,0x33f43954,0x8323bfb6,0x15943fb2,0x49fbfb5,0x3b2abfb6,0x2bc33b7d,0xc31e4006,0xf8ecbfe9,0x1d15be7f,0x19934005,0x79ebfe9,0x63493fd7,0xdd51bf8a,0x497bbfb4,0x6df4bef3,0x812c4002,0x8922bfe8,0x3e583ff2,0xa9fc01f4,0x24abbf3d,0xd3913ffa,0x4852bfe7,0x3e58400b,0x477c55f4,0x1a00bf6d,0x511e3fef,0x84bebfe7,0x51a0bf92,0xb8e13fde,0x5600bfe6,0x2d624001,0x61d0be3e,0x6120bfb2,0x67d34002,0xe9323c87,0x135ebfb1,0x2f6abfac,0x1a9c3fca,0xc3c2bfe6,0xe458bfbe,0x97dd3fb7,0x4ba1bfe5,0x67994000,0xe63a3edd,0xe243bfb0,0xcdd5bfd4,0xdc6e3f9b,0xc83fbfe4,0x3e583ffa,0x1c3f0df4,0xbdecbfe4,0x42c83f82,0xbf40bfe4,0x9ca63fed,0xa58f3f67,0xb4d0bfaf,0x3e584003,0x69623df4,0x38c1bff0,0xa9a83f50,0x745cbfe3,0x493dbffa,0xf73f12,0xeebfbfe3,0x3a003fe8,0x8a593fac,0x455fbfbc,0xaa11c000,0x5f5b3ea4,0x6042bfe2,0x2b993fd3,0xe6473fc7,0xc67ebfbb,0x2c733fb9,0xc2b13fbf,0x5272bfad,0x3e58c001,0x825e2cf5,0xc322c000,0x2d6fbe2a,0x75a3bfe1,0xe4823f8c,0xa5613fe3,0x1141bfac,0x4b343f8b,0x42fa4000,0xe73abfba,0x57f33f4b,0xd9b23ff8,0x5b1dbfab,0x98fabff9,0x7610beef,0x3703a8e0,0x90dfdfca,0xdf03f403,0xe0d90ebf,0x348883e,0xaaedd540,0xea27bfbf,0xf73e58bf,0xd441c408,0x8b523bbf,0xdeabd6bf,0x6dfb0dbf,0x560633e,0xaa5e3e40,0xff4039c,0x57bcbfde,0x284ebcad,0xb2bc4006,0x542ebfa9,0xf2aabdfe,0x5be64011,0x46febfb7,0x3e58bfab,0x9c0b01f4,0xe6bcbe8c,0x7314004,0xad8ebfa9,0x3e58beff,0x70bd31f4,0xe960bf17,0x39ef400c,0x679bfb6,0xb9cbbf71,0x44bfbfdc,0xbb84bfdc,0x23ffbf37,0xddec3ffb,0xddc6bfa7,0xace6bf08,0x381dbff1,0x3986bfdb,0x1d93bf6d,0x52333fef,0x8501bfa7,0x3e58bf92,0xce6414f7,0x9442bfa3,0x8c9c3fef,0x153cbfb4,0x2dc7bfac,0x1ab53fca,0x551dbfa6,0x43b7be0d,0x93ec009,0x1705d0e8,0xd7036ca5,0xeb1cbfd9,0x3e923e12,0x585cc009,0xf7060ce7,0x2bfa42e,0x13bfe2f5,0x883f852d,0xbebfa44b,0x96bff72e,0x103f9208,0x2bfb23e,0x603ef09a,0xb3bff456,0x83bfd89a,0xee3f2315,0x16c003af,0x6ebfe633,0x86c001f8,0x73f70e4,0x330b1b1,0xbfd70af7,0xbff1933e,0x3f4a3bef,0xbfa39a20,0x3f718506,0xbfddb6a2,0xe8d75222,0xbfa36405,0xc008ae9f,0x80b73e58,0xf43fb27f,0x16bfb518,0x5e8d5f9,0xb1bfa264,0x58c00152,0xff01f43e,0x6e3fc508,0x1dbfa1a1,0x7fbfd576,0x58c00083,0x3d60443e,0x3e583fe6,0xfb70a4b1,0x78f1a23f,0xe23b9bbf,0xb8020204,0xf8a01105,0xa698c401,0x4691bf64,0x9481bf9f,0x3e583ffc,0x17032406,0xd501e0d2,0x9bfebf9e,0xab32bfcd,0xc7acbfb9,0x8401d4ab,0xbf9d6cce,0xbfa0b724,0x6fb73e58,0xee400046,0x3b3ede43,0x57cd0e0,0x1d49c17,0x80bf9c64,0x58bf81f4,0x1240443e,0x3e58400b,0xedcce244,0xf73e583f,0xfb79102c,0xf2f45abe,0x9b17f0bf,0x905187bf,0x84938be,0xa85e70c0,0xe14c01bf,0x8b99dd3f,0xcf16f43f,0xcf269ebf,0xa6a26e3f,0xce6b513f,0xccd224bf,0xce1aef3f,0xdbb59e3f,0x99d701d4,0x2a3b15bf,0x93d323e,0xa751adc0,0xcd170348,0x99640528,0xf81472bf,0x443e583e,0x3ef0a8f4,0x1f43e58,0x3fa18a44,0x3fd4d035,0xbfcd209f,0x3f8c8ba0,0xdf43e58,0x3f9b4ae4,0x3ff6d4a2,0xbfda9436,0x3f52d0c4,0xbfff9dbb,0xbfa5b6ed,0x3f4c203e,0xe0063e58,0xbf97d101,0x3f95bec2,0xbfe8ef0b,0x4a4defc,0x4791105,0x9603f405,0xe1697fbf,0x344c33e,0xcae20040,0x1fd7abf,0xb73e583f,0x3fb28501,0xbfb513d7,0x6c9600b0,0x60ca1703,0x1cc91703,0x54941705,0xbfc9d703,0xbef10082,0x400eda16,0x60d68406,0xbfc86403,0x3ff38b61,0x54063e58,0xbfc7d703,0xbf697247,0x40058141,0x4d574bc,0x60931702,0xbfc7d703,0x40026141,0x3c8a222d,0x5491e508,0xbfc66403,0xbfc78080,0xfe313e58,0x96c0b61,0x63d2a635,0xa78405f4,0x3ebf7b20,0x58c00f77,0x2101f43e,0xac00f77,0x853d8b2d,0xa0bf63d2,0x583fe1dd,0x9d01f43e,0x853fd5f5,0xf43f9d98,0x9ebfca70,0x583fd35e,0xde44443e,0x3e583fda,0x876201f4,0xb24a3fab,0x2ddc3fcc,0x82a1bf89,0x3e583fab,0x253e01f4,0x87723fc3,0xd1f63fdd,0xd841bf71,0x3e583f83,0x7a0319f4,0xca4b3f85,0x5f9e4001,0x347fbf74,0x26a23f54,0xb82c3ff6,0xc908bf87,0xbd123f16,0x17274000,0xeb5fbf87,0x3e583fa4,0x98c419f4,0xd9a13f08,0xed894001,0xdfebfc6,0xedc3ec2,0x8b094004,0xb67cbf86,0xb1753f1e,0x24d1400c,0xee80bfb9,0x3e583f17,0xd33fc844,0xf43e583d,0x53e7b2ff,0xffc13de7,0xd67c4005,0x3a11bfc5,0xdb16be08,0x36d64005,0xbc2cbf85,0xee0bbdeb,0x3d4b4005,0x6428bfc5,0x5f6c3d87,0xc2ce4014,0xfa7bbf6a,0xadfbbec8,0x8c154003,0xe804bf84,0xe61dbe27,0x8f504013,0x23abf69,0x55c3df8,0xf0cc4012,0x779bfb7,0x3337beb0,0xa3624004,0xcfc0bfc4,0x40b3bf18,0xfcfc4000,0xdf7fbf83,0x44c3bf53,0x5ec03ff5,0x227dbf83,0xadd6bf2b,0x310a400d,0xe73ebf67,0x92dabf6a,0x11a94007,0xa7fcbf66,0xd6d8bf83,0xdc1a3fe7,0xaa3bbf82,0x5d79bf4a,0x77fb3ff7,0x9963bfc3,0x2e06bf9c,0x3bcd3fd7,0x13bebf82,0xcdc4bf87,0x1d824000,0xc43fbfb5,0xfa3cbf86,0xc58f3fe5,0xfa1ebfc2,0xdd3cbfb4,0xb0573fc1,0x2a3dbf81,0xc3dbf9a,0x471b3fd9,0xff5cbfc2,0xca10bfc8,0x12ba3fab,0x621bf81,0x23abfdc,0xdf4c3fbe,0x31fdbf63,0xa0b6bfb7,0x97703fbf,0xce9ebfc1,0x2be9bfed,0xc4b13fa4,0x317fbf63,0x9b0bbfdf,0x4a7b3f8b,0x3223bf80,0x52e7bfec,0x53823f64,0xca00bf7f,0x3bacbfd3,0x668c3fc4,0xa4fdbfb3,0xaf5cbfca,0x43fa9,0x39bdbfc1,0xd812bff8,0xd6f3f90,0x55c1bf64,0xe1d2bfe0,0x28673f89,0xe9dbfc0,0xc44cbfee,0x9b133f5b,0x1ec1bfbf,0x4ac3c005,0xd2853f49,0x94ffbf63,0x6e7abff6,0x249a3f2d,0x641fbf7e,0x4f6ebff7,0xce53f28,0xd042bfbf,0xdf59bffd,0x7ebf3ee8,0x419ebfbe,0x4a2cc00a,0xd32c3ee1,0x2fb2bf63,0x6877c001,0xcdd53e38,0xce64bfbd,0xa35bffd,0xfc723ee9,0x3871bf7c,0x3e58c00d,0x12c261f4,0x8c4cbffd,0x7a8dbeb5,0xc53fbfbc,0x890dc00a,0xc005beb3,0x21c0bfae,0x5dd53f50,0xd5dc4008,0xfe72bf73,0x1501c006,0x3201bf16,0xdc3cbfae,0xc7cebfee,0x946cbf35,0x2e3cbfbb,0xf2dcbff4,0xfc50bf85,0xdddfbfac,0x8145bfbe,0xa900bfa6,0x4c0ebfb9,0x9e95c009,0x8063bee9,0x7860bfee,0x7e7cbff7,0x4fc2bf2c,0x4fdfbff8,0x3e58c004,0xc94301f4,0xdac7bffa,0x3d86bf73,0xcfa2bfed,0x3e58bfd9,0x2bfffff4,0xbfcb6662,0xbf9c55b0,0xbff84ebe,0xbf910681,0xbfcdf562,0xbfb89d0f,0xbfb3f120,0xbfb434f4,0xbff84ed7,0xbf99d380,0xbfc8bed7,0xbff84dd3,0xbfc15140,0xbfc5f480,0xbfeb7764,0xbf3660c4,0xbfea00a8,0xbfb77764,0xbfa76ba0,0xbfdb9243,0xbfeaded3,0xbf80ac00,0xbfd81933,0xbff84f44,0xbf4d3544,0xbfe557c5,0xbff7b4ee,0xbf0ce1f8,0xbff1166e,0xbff70dd0,0xbeec9afe,0xbff41230,0xbfb6c8f7,0xbf5f35c2,0xbffbaf32,0xbfe9c98a,0xbf1f9746,0xc0039ea1,0xbfe930ad,0xbeaea290,0xbff70f17,0xbff67e39,0xbdbd3027,0xbffaa290,0xbff5d285,0xbf0b8540,0xc00504b0,0xbfa8ffa8,0x3e0749f1,0xbffa76c0,0xbff53c82,0xbe803276,0xbff8d4b2,0xbfb63be6,0x3e83f488,0xbff8fadf,0xbfb4e600,0x3eb8d174,0xbff6fece,0xbff4a290,0x3f11e17e,0xbff0fae8,0xbff41451,0x3f373cc5,0xbfeadefc,0xbfb3ae36,0x3f506306,0xbfe59e84,0xbff37996,0x3f5d1bc5,0xbffd095b,0xbfe59c95,0x3f88f7c2,0xbfd48aa4,0xbff2c4c6,0x3f9e7f24,0xbfc5e0f0,0xbff24a38,0x3f93c383,0xbfcd898b,0xbfb288df,0x3fa94a5e,0xbfdbc305,0xbfe4793e,0x3fb4afde,0xbfb2efe5,0xbff1b646,0x3fc121a3,0xbfc81cac,0xbfe3eea2,0x3fa0a601,0xbfc4e2c1,0xbfb1e647,0x3fad6adf,0xbfb97e99,0xbfb1ea03,0x3feb4c23,0xbf97592e,0xbfe2bf87,0x3fe4a340,0xbf695758,0xbff011d3,0x3fee6823,0xbf412c8c,0xbfefa92a,0x3faec6bd,0xbfd79d2c,0xbfa45acd,0x3ffb7e80,0xbef1a459,0xbfeed6aa,0x3fdd4342,0xbfaa2af5,0xbfa32ecf,0x3fd88cbd,0xbf8854ef,0xbfb098e5,0x40099610,0xbf00fca4,0xbfe0f3b2,0x4000d05f,0xbe77bf62,0xbfee59e2,0x40023c00,0xbc869835,0xbfedd3aa,0x3ff221c0,0xbf2f7f28,0xbfaf76ee,0x40068a11,0xbf289ecb,0xbfa156c9,0x4001fe61,0x3e5c1616,0xbfed504c,0x400e58b0,0x3c57518b,0xbfdfc92e,0x4001a9d2,0xbe213cef,0xbfae1f86,0x400d655e,0xfff43e58,0xde64ffff,0x863ff873,0x333f2ecb,0x90bfec1b,0x344001d9,0x9c3e889e,0xa2bfad15,0x823feceb,0xf83f6a73,0xaebfeb6e,0x87400e63,0x263d8f4e,0x5fbf9faa,0x613fdf27,0xea3f8f32,0xbfbfeacf,0x974000b6,0x2a3f8236,0xa3bfdd6f,0x793ffd78,0xbd3f0b5d,0x40bfac6f,0x683ff2a3,0x553f9d78,0xdfbfdcda,0x4d3ff28c,0x2e3f5030,0xeebfabac,0xde400076,0x833f833e,0xe4bf9d6a,0x793fdfbc,0x7c3f8ead,0x43bfaab6,0x6e3fa4ac,0x263fd251,0xdebfe8fe,0xbb3fb9cb,0xa53fbf80,0x7fbfa983,0x323f8e6a,0xca3fe2cb,0x42bfe86a,0x6c3fcc25,0x6c3fcecb,0x80bf9bb1,0x523f8eb9,0xfa3fe29d,0xa0bfa87e,0x33f9a70,0x713ff75f,0x78bf9a90,0x9b3f53d1,0xf13ff63b,0x81bfe7b7,0xd3f42eb,0x574009c3,0x7ebfd97c,0x963f02c5,0x840023d,0xbbbfe6cd,0xb03f53d5,0x203ff63a,0x84bfa7b7,0x9e3f4747,0xad40095c,0x42bf9987,0x6c3f0922,0xb14001d0,0xd1bfa6dc,0x423d9777,0xbd400623,0xcbfe5c3,0xdd3e98ce,0x994004d2,0xd4bfa662,0x6c3d919b,0xa8400623,0x3ebfa5c4,0x20bded78,0xf74005ed,0xabfe53c,0xc63cfb48,0x28401232,0xeebfd7b9,0x46bded25,0xac4005ed,0xfbbfa53c,0x5bbecc59,0x8240039a,0xcabfe471,0xce3cbddf,0x9a401233,0x83bf97b4,0x76bed7a4,0xfa40034f,0x7dbfa463,0x9ebf1e93,0x803fff96,0xbcbfe3f2,0x29bf1e94,0xd3fff92,0xfbbfa3fb,0x14bf5874,0xde3ff43f,0x88bfe359,0x52bf57be,0x153ff465,0xc1bfa357,0xd7bf8754,0x8b3fe5a4,0x82bfe2c2,0xe0bf8be2,0xce3fe2f4,0xa3bfa2a5,0x5bf9c22,0x943fd789,0x82bfe250,0x8abf6ead,0x5a4004cc,0xbdbf9568,0x80bf94c6,0x173ff99d,0x3fbf94d9,0x3ebfaffd,0xf93fe65c,0x5cbfd448,0x56bfa156,0x673fd348,0x21bfa22a,0xcdbfb722,0xdd3fbfb0,0x20bfa197,0xcdbfb724,0x743fbfae,0xffbfe198,0x1abfca94,0x8f3fa9c4,0x64bfe0ff,0x69bfca95,0x3b3fa9c3,0x44bfa0ff,0xb8bfdd35,0x583f8ee6,0xc0bfe056,0x8cbfea5b,0x8a3f6d15,0x1dbfdfc7,0x9cbfdd3a,0x363f8edf,0xe3bfa056,0x84bfea51,0xf13f6d9a,0x5fbf9fbd,0xe4bff696,0x5e3f2d65,0xa3bfdf12,0xb0bff694,0x553f2d71,0x64bf9f12,0x9dbffdce,0x743ee90d,0xa2bf9e7e,0x2bffdcf,0x523ee8f3,0xd1bfde7e,0x13c000b0,0x9a3e867d,0xe0bfde05,0xfac0014b,0x503d81b9,0xb1bfdd8d,0xe6c000e1,0xa2bdd805,0x71bfdd27,0xeec000e2,0x31bdd6ed,0x11bf9d28,0xf1c00d53,0x863d8b2a,0xd2bf8fab,0xd8c00c73,0x96be350b,0x9fbfcf24,0x7cbffc21,0x98bec627,0x3bfdc68,0x4cbffc26,0xebec5dd,0x82bf9c67,0x2abff18d,0x31bf2754,0xc3bfdbd0,0x39bff066,0xf3bf2d7d,0xefbf9bab,0x43c0053b,0x6ebf2b75,0x82bfcdfa,0x17bfe41a,0xecbf62ba,0xdfbf9b12,0xaabffd4f,0x8abf69d7,0x9dbfcd59,0xebfd6f4,0x30bf874b,0xbfda9f,0xf3bfee1b,0x69bf8fe7,0xfdbfccc4,0x11bff34c,0xf9bf8ffe,0xc1bf8a48,0x46bfb2aa,0x8ebfb2eb,0x81bfd958,0x5abfc826,0x3cbfbf4b,0xe4bf8ba5,0x58bfb2f9,0xdc31f43e,0xabfc7b8,0xbebfbfbe,0xc4bfcba0,0x17bf9508,0x95bfe80c,0x38bfca80,0x6bf67dc,0xabbfdf13,0x3abfd807,0x58bf6659,0xc0bfdf74,0x47bf9806,0x66bf76e9,0x4cbffb2f,0xfebf876b,0x58bee860,0x201f43e,0xe7bee628,0x29bff473,0x79bf96b2,0x583c5c1e,0xc285f43e,0x523b5ec1,0x9abffaf2,0xf7bf9593,0x95be82e7,0x5dc00a9e,0xb9bf85dd,0x3d3caa38,0xcac00981,0xc7bfc7a3,0x843f020e,0x3abff2f2,0xabfd440,0x8c3e574c,0xdc00b2e,0x87bf84ab,0xb63f374e,0x43bfeadb,0xc6bfd3ad,0xa23f0216,0x42bff2f1,0x3bf9440,0x63f375d,0x5cbfead9,0x47bf93ad,0x353f4991,0x85c00046,0x7bbf8608,0x783f754b,0xfdbfdcb9,0x41bfd310,0x6a3f752a,0x5abfdcc2,0xc3bf9311,0x9f3f9c47,0xa0bfe9e9,0x5dbf824f,0x583fa952,0xa15cf53e,0xbb3faaa2,0x53bfbbf2,0xbfbf9206,0xdb3fbf0f,0xcdbfa851,0xe1bfd176,0xe33fcc08,0xa8bfbd88,0x1ebfc3a7,0xf23fc088,0x55bfa6b0,0xdebf9169,0x103fd1ae,0xfdbfbdeb,0xdcbf8112,0x383fd4b7,0xacbf8da2,0x7fbf90ca,0x263ff3c0,0xe2bf8a39,0x63bfc274,0xf93fe5b9,0x6bbf649f,0xefbfd010,0x8b4001cb,0xc0bf5835,0x528c1d0,0xb6fffff1,0xbfcf76f7,0x3ffb7d20,0xbeef8ab1,0xbfcee076,0x4003ca4f,0xbf5bdccf,0xbf7e8deb,0x3ffa6541,0xbefed45f,0xbf8f04ab,0x4001c2c2,0xbe14866a,0xbfcdf9f8,0x4009738e,0xbf218559,0xbf7d6e48,0x4002636f,0x3de96788,0xbfcd700d,0x400df86e,0xbdd19ef9,0xbfc008d1,0x4002641f,0x3de4ac6d,0xbf8d75b8,0x400e41ff,0x3e2532a5,0xbfbf78c4,0x4001197e,0x3eb1b79e,0xbfccf651,0x3ffbf783,0x3f172f01,0xbfcc4ee8,0x40010d41,0x3eb45975,0xbf8cf8be,0x3ff2795f,0x3f509268,0xbfcbab65,0x3ffbfafd,0x3f1712b2,0xbf8c4df4,0x400c8fc1,0x3ed7f9b5,0xbf7dcfee,0x40093b32,0x3f28fe8b,0xbfbe56d6,0x3ff1f31f,0x3f532e7b,0xbf8ba97e,0x400ba911,0x3f2619ca,0xbf77cb3e,0xc00840ff,0xbf235bd5,0xbf8ba05a,0xbfd26680,0xbfbacf42,0xbf89599b,0xbfbc3e42,0xbfd05575,0xbf88cdaf,0xbfa11ac1,0xbfe54c01,0xbf8837c5,0xbf072cf9,0xc0077f0f,0xbf867760,0x3f30f8c6,0xc004f06f,0xbf8390da,0x400cdab2,0xbedfd9ba,0xbf7c9a02,0x400ff430,0x3e92a6d2,0xbf7967dc,0x3ff5d5fe,0x3fa0c27a,0xbf74b231,0x3f9032fd,0x40014e01,0xbf6fb01d,0x3f6397bb,0x4008dbfd,0xbf6e9004,0xbf0d0c80,0x400fd3c3,0xbf67bc3c,0xbf9374a3,0x3fff9f12,0xbf643559,0xbfbc6ae4,0x3fe20b4e,0xbf63cbb4,0xbec536f8,0xbffef901,0xbf63d285,0xbe8a6bf8,0xc00ab8d8,0xbf63d242,0x40068def,0x3e410343,0xbf63d274,0x400ee411,0x3ed378ab,0xbf63d220,0xbd82e7f7,0xc001bb5a,0xbf63d263,0xbfc7445f,0x3fbb320e,0xbf63d274,0xbf9576de,0x3fe6c95c,0xbf63d285,0xbfdd06dd,0x3f9f38ef,0xbf63d285,0xbf642939,0x40088bf0,0xbf63d70a,0xbfee4ce0,0x3f81e1ca,0xbf63d285,0xbf31adfb,0x4002bd23,0xbf63d285,0x40101151,0xbdfdbfcf,0xbf63d295,0xbffbb6dd,0x3f4533a0,0xbf63d285,0x3eb16af0,0xc00a0cd4,0xbf63d0f2,0xbf0d58b8,0x400fe0eb,0xbf63d89d,0x3ee9198b,0xbffd6b2b,0xbf63d285,0x400d6cce,0xbecdf41b,0xbf63d35f,0x400396ff,0xbec20cae,0xbf63d285,0xbec53587,0x40082f4d,0xbf63d285,0x3f1cdb38,0xc0066c3c,0xbf63d285,0xbe8fac82,0x40133b97,0xbf63d33d,0x3f35ee46,0xbff41512,0xbf63d285,0xc005039f,0x3e86d04e,0xbf63d274,0xbd82e01a,0x400a6e1e,0xbf63d263,0xbbabffce,0x4014697b,0xbf63d274,0x40022b30,0xbf6a4fa9,0xbf63d46b,0x3ff06e7e,0x3c60f69d,0xbf04f100,0xbc3f9db5,0x1cbfe923,0xddbf63d3,0xe53f9797,0x18d563,0xec851bf2,0xd8e83eb4,0xd2744012,0x3190bf63,0xaeefc00c,0xd285bed3,0x65c3bf63,0xcc183fc9,0xd274bfa9,0x86a1bf63,0x9abc002,0xf04400b4,0x583ee919,0x2010f13e,0xb73fd2d5,0x63bfbcd1,0x7bbf63d2,0x403f2f4d,0x39400dc3,0x70bf63d4,0x2fc00777,0x602ca7,0xfbb63d44,0x533e58bf,0x3f35f03d,0xf401501f,0x80cde201,0x5957d3f,0x63d1ab40,0xf0b87cbf,0x443e58bf,0xbfdd0681,0x24623e58,0x933f9799,0x4401b0c8,0xbfd5b6c3,0xc1443e58,0x583fb38e,0x2004f13e,0x1b3fc27c,0x63fde49,0xbdbf63d4,0x5bfb16e,0xb4bfa2,0x8d2203f2,0xfa7b3fe0,0xd2c83fbe,0x763ebf63,0x6452bf95,0x28f100f0,0x3fdf2581,0x3f9f3c82,0xbf63d285,0xbf9b3c60,0xbfe95b8a,0xbf63d2c8,0x3ffa977d,0x3f98c43f,0xbf63d274,0xbf6a7d78,0xbffe2abb,0xbf63d295,0xbf31af7d,0xccf4147b,0xd7dc6200,0x348b3ffd,0x1f401f8,0x400b126f,0x3f2f312b,0xbf63d0af,0x3fbed99d,0x1f43e58,0xbf8d511e,0xbfdab474,0xbf1705b8,0x3fd55ddd,0x4713e58,0x28bf1b00,0x18f7d6,0x92ef04f1,0xf55ec004,0x5a7be50,0x1fdebf17,0x7a9a3ff5,0x4400184d,0xbe8be708,0xfc443e58,0x58be84e0,0x77e2713e,0xbc5ebfff,0xf100240b,0x2141f04,0xf7703740,0x1705b8be,0x81e47bf,0x1d4b73c,0xf443aa4,0x303e8d64,0x82cf7100,0xa46e4005,0xf400244c,0x6baf101,0x8d38ce40,0x1705b83c,0x946b05bf,0x7100603e,0xbfe256de,0x5485ae3e,0x42464400,0x9c3f1f,0xae3e01f4,0xb702bfd3,0x63ebf9a,0xb820bf17,0x3e58bfbc,0x8f71c144,0x713e583f,0xbfa2c144,0x3ccb9aae,0x9d0df400,0x293fa49b,0x96bfcb96,0xbfbf1705,0x31bfbcb8,0xa73fc67c,0x1dbf1705,0x583f8f74,0xae1d443e,0x3e58bfd3,0x460212f3,0x9d8c3f1f,0x5b84004,0x55e3bf17,0x1583bfe2,0x5b83f97,0xa451bf17,0xe11a4005,0xa8a73ead,0x8ca83100,0x62002409,0x3e8d64f9,0xc5411,0xcc1071,0x2e8d9740,0x60440030,0x58bfff78,0x6df8713e,0x877b3c08,0xf400300a,0x4978101,0xae41f6c0,0x1705b83e,0x84dff0bf,0x53003cbe,0xbe8be708,0x620054a4,0x3fe4725c,0x781cc1,0x1b000453,0x90d8bf,0xd5e08371,0xac0d563f,0xdc620060,0xb3fbed6,0x7100cc7f,0xbf8d50fc,0x18ec1a0d,0x61207100,0x8ae33fa4,0x62000cdd,0xbfa2c101,0xc0058,0x35daf44,0x713e5840,0x40012510,0x842f1d82,0x1e01f400,0xd840008a,0xb83d049f,0x52bf1705,0x58400265,0xaa22713e,0xe7ff4019,0x4401a4d8,0x400fb941,0x4f13e58,0x401442d0,0xbeca237d,0xbe9471b4,0x400d1911,0xca93123,0xf204f100,0xf14019d3,0xd6bed77f,0x3fbe9471,0x74401d38,0x8411b5,0x1d54ef71,0x10c08b40,0x1f434ec,0x40178f60,0x3f0c8de3,0xbe9471b4,0x4011c090,0x6f443e58,0x58400fbd,0x1e82713e,0x66dc400a,0xf1009cda,0x91f3204,0xd2244640,0x9471b43e,0x37482be,0x90653040,0x1f4000c,0x4000b631,0x3e055087,0xbe9471d6,0x4000c500,0x9f723e58,0x6400302,0x8402be,0x40073934,0x62713e58,0xaa400930,0xcc8d0a,0x3196171,0xa3663840,0xbe71021c,0x7b3ff22d,0xc9b30,0xe1686271,0x9979a73f,0x9d44000c,0x583fa62b,0x8403f23e,0x1c3fa4f2,0xf8bfe879,0xe2be9471,0x403fb13b,0x8102d015,0x3fab1b82,0xbff86dad,0xf4009c,0xe13fb1c9,0xd6c00109,0x80be9471,0x5840030d,0xdfa0713e,0x553b3ffb,0x7100249e,0x3febea81,0xc9a06ea,0x627c7100,0xf1953fdb,0x44000c99,0x3fc83e64,0x4f13e58,0x3fcb4cfd,0xbf9e1d19,0xbe9471d6,0x3fb950e3,0x90a91b9b,0xac7e7100,0x66663fbc,0x710018a6,0x3fad9f3c,0x18b683cb,0xb3dd7100,0x35b53fb0,0x710018b2,0x3fa6d823,0x54c3d378,0x2f5e7100,0x55b03fa3,0x440024da,0x3fa33c1d,0xde623e58,0x153f9902,0x623e4c8c,0x3ed3bcf5,0xcc3bd,0xf6c97e71,0x1128633e,0xc87103a8,0x433f017b,0xc1873,0xee458053,0x1878be,0xe549f971,0xe5d1cbe,0x716200e4,0xaebefacc,0x4400249b,0xbefb96f2,0x7443e58,0x583f0208,0xcdf7533e,0x300b3eed,0x740ef300,0x5b3ec827,0xd6c006ee,0xfabe9471,0xb23e93ed,0xb4c00113,0xf7be9471,0x903e3e1e,0x1f713e1c,0x993e2bd6,0xc0fa7f,0x30e3ce62,0x8c42c43d,0xd501f404,0xe63c083f,0x93bff702,0x7ebe9471,0x58bd7e70,0x1aeb533e,0x3cc2be2d,0xcd184400,0x3cbe1a,0x8b660e53,0x6066be,0xcb38f853,0xe4c2be,0xbfa2f053,0x845fbe,0xa10ec371,0xd6effebf,0x83710120,0x12bfa2df,0xce811,0x5c6a7f44,0x713e58bf,0xbfa7c600,0x18f5cdff,0xa81e6200,0x9c8bfaf,0xc0401f8,0x27c0100,0x44002403,0xbe9471d6,0xd6b10048,0xfcbe9471,0x71bfa135,0x198d993,0xa335fc71,0xc9b36cbf,0x1f4000c,0xbfa6fca4,0xbfbea793,0xbf1705ea,0xbfb0a93f,0x1713e58,0x74bfa916,0x24bad1,0xbac80444,0x713e58bf,0xbfb27842,0x18addba1,0xe404f100,0xf3bfc66a,0xd5bf9f56,0x3fbf1706,0x5ebfbec6,0x18a3a1,0xcd3b5c44,0xf43e58bf,0xeb16c201,0x9a2435bf,0x1704ffbf,0xdcf041bf,0x443e58bf,0xbffd3cbc,0x3e443e58,0x58bfece9,0x2720713e,0x8677bffc,0x4400489f,0xc004daf0,0x82713e58,0xbc00501,0xfca828,0x1c445f44,0x713e58c0,0xc01c4470,0x48dbeb3a,0xb03e7103,0x29d4c011,0x71003c73,0xc010f10f,0x3079c53f,0xb0927100,0xf7f9c008,0x44002491,0xc010677f,0x90713e58,0xbfc01784,0x18d52c,0x15bf6244,0x453e58c0,0xc00d4580,0x5d613e58,0x1a50c006,0x4404507a,0xc000a31e,0x4f13e58,0xc00189f0,0xbde856e7,0xbe94723b,0xbffeefc3,0xb08b2bfe,0xfb019304,0x7fa2bffe,0x30713d02,0xb3183100,0x71043855,0xbfffa084,0x20109bfa,0x89df4404,0x3e58c001,0x8b0e271,0xd79032c0,0xe1710024,0xf0c0065d,0x450c2a3,0xd455f44,0x443e58c0,0xc010670e,0x6e723e58,0xdec015bf,0x4b00bae,0xc0178434,0x70713e58,0x7bc01c44,0x4e010c0,0xf2000c04,0x9471d607,0x4db01be,0xb96b55c0,0x9471d63f,0x4dae0be,0xd06b66c0,0x4a02713b,0xf317c018,0x7100304f,0xc018d14e,0x244907ea,0x2310f100,0xa4bfeb16,0xff3fab89,0x43bf1704,0x4abffd3d,0xcd3fb126,0x42bf1704,0xffbffc27,0x24b0eb,0xece93e44,0x443e58bf,0xbfdcf041,0x4f13e58,0xbfc66b1e,0x3fb0bc62,0xbf1706d5,0xbfcd3b7e,0x30ae2bd8,0xc7c14400,0x3e58bfba,0xbec63f44,0x933e58bf,0xbfb0a91e,0x3fc101fc,0x31025842,0x30bf4120,0xfd009300,0xc41bfa6,0x88ea3fd0,0x3e580402,0xa335fc71,0xdb18ecbf,0xc3710024,0x82bfa10e,0xc0e856,0xa135fc71,0xeaf8f0bf,0x83710018,0x92bfa2df,0x18f976,0x4000c04,0xc8310318,0x6f00399,0xc60004f9,0x99c4bfa7,0x71d64003,0xa81ebe94,0xbc90bfaf,0xd3000c09,0xbf1705b8,0xbefb97ff,0x40211648,0x31045c2e,0x3c214e72,0x6ac27100,0x7193bf5c,0x71000c1a,0xbf6332be,0x3c19cde2,0x45807100,0xdb27beee,0x71001819,0xbecb3871,0xc11767d,0xca8a5300,0x186e3ef6,0xcdf77100,0xfc33eed,0x53003017,0x3f01a87a,0x53005477,0x3f020dfe,0x53006c40,0xbee5490e,0x710024a1,0xbebfa377,0x300fa127,0x677f4400,0x3e58be8b,0x16fd0ff2,0x5a14be2d,0x5b84006,0xcc0cbf17,0xf291be1a,0x71b44005,0x87c6be94,0x542abcd9,0x1f40828,0x3c08509c,0x40043433,0xbe947193,0x3da14834,0xff533e58,0x323e3e24,0x253003c,0xa63e2bd9,0x8971003c,0x543e93ec,0x4809c6,0xd3be0153,0xc0a33e,0xc8277453,0x84233e,0xb1ca0053,0x120493f,0xa9a09d62,0x5080993f,0xf43c7101,0xf00f3fa3,0x530174f4,0x3f60ae43,0x71012071,0x3fff551d,0x18b1504c,0xcd3e6200,0xf3aa3ff9,0x71710210,0x5f4005e6,0x18b97a,0xf57f10f1,0x2eae4005,0x710d3fb9,0x7881be94,0xc5223fb1,0x712e4009,0x4424be94,0xbc7b3fa7,0x7100fc00,0x3fa3695e,0xe0f0501e,0x5d647101,0xce463fa4,0x710300de,0x3fa8df83,0x48d09d1f,0xe97d7100,0x70763fa9,0x710018ce,0x3fb02afe,0x18c4912a,0x355d7100,0x91d13fb9,0xf1000cba,0xb5e06104,0xbd8c7e3f,0x9471933f,0xc8f102be,0xb08d003f,0x22710018,0x5b3fc6c5,0x3cb196,0xd7211d71,0xac0b3d3f,0x2371000c,0xf03fe8a4,0x78ab17,0xed45e171,0xaba3663f,0x1e440030,0x584015fb,0x9f41713e,0xfeb04016,0x4400246f,0x3e83647c,0xc5713e58,0xc6bf0c8c,0x3f08a16,0xe1ee0344,0x713e58be,0x3ec1667b,0x10c961a2,0x33447108,0x1b15bf63,0x71068411,0x3ed7e910,0x30fb0681,0x6c764400,0x3e583ef4,0x8d30f071,0x18d0033e,0xf9710060,0x7e3f0766,0x24b3e3,0x9b0a7071,0x120557be,0x83710018,0x513f0cbe,0x542cdd,0x31b60b71,0x215800be,0x3e530018,0xc83f6776,0xf7102a0,0x1ebedbd2,0x24a9e0,0x957d7c71,0xe1cf78be,0xfb71000c,0x8bf0aea,0xc1a3a,0xff8c2271,0x27829bd,0x7d440540,0x583f95ce,0x38c5443e,0x3e583f17,0x1597c444,0x443e58bf,0xbd09fc6e,0x47443e58,0x583f1877,0xa640443e,0x3e583db5,0xde6bc644,0xf13e583d,0xbc4c7b04,0xcd60c83e,0x9eaf47be,0xf06df8be,0x9a59c03e,0x4f1000c,0xbf14f8c6,0x3d1e1c15,0xbe9eaf47,0x3f0b6a83,0x1838abd6,0x8cf84400,0x3e58bf0c,0x777904f1,0xd1243f18,0xaf47bc4b,0xed7cbe9e,0xfaf8bee1,0x710024a2,0xbe8cd680,0xce7c137,0x401f400,0xfcbdd5e2,0x47bf031c,0x2cbe9eaf,0x583d910c,0xf4f1713e,0x70d23e7a,0x440024f2,0xbec18288,0x4f13e58,0xbefcfd09,0x3ec21837,0xbe9eaf47,0x3f173908,0xc2c475e,0xa1be7100,0xc7a4bf10,0x71000c5f,0x3f0cbef9,0xc9c02f3,0x6d837300,0xd5bf3ef4,0xf1000cda,0xe3eb40e,0x683f0cf4,0xfbe9eaf,0xe53e22b4,0x473f2428,0x3cbe9eaf,0x84bd5df4,0xc284a,0x69ebea71,0x1c039bbe,0xdf4000c,0xbeb0b285,0xbec5ab5c,0xbe9eb2d1,0xbf04bd88,0xbe2737da,0xbe9eb314,0xbe20dae4,0x40443e58,0x58bf04be,0xe710623e,0x7a73e31,0x7a620018,0xca3eb938,0xf2003ca9,0xb0b3701b,0x5a049be,0x9eb2d13f,0x9003fbe,0x2730c63f,0x9eb335be,0x20dfdfbe,0x1d4ed3be,0x9eaf253f,0x31e2dfbe,0xc4f273e,0xffb94400,0x3e583f08,0xb9378f53,0x3c9d3e,0xd0f01f4,0xeed9be1b,0x4f9cbec6,0x3dd1beb5,0x3e58bdab,0xcd541144,0xf43e583d,0x9f447001,0xdcc2d7be,0xb550013e,0xe577fbbe,0xf13e58be,0xef418d1c,0xc45458be,0xb55193bc,0xb5b403be,0x80bd23be,0xb55022be,0x2c1509be,0x6428d3e,0xb54f9c3f,0xa7c979be,0x972c0e3e,0x28f10018,0x3eedfc7e,0xbdbbf61b,0xbeb55065,0x3ef7c5ef,0x3e23b81b,0xbeb551b5,0x3ebe390d,0x3ec652df,0xbeb55022,0x3ecfbb0e,0x3e9845bb,0xbeb54bad,0xbea1e18f,0xcc8eda2,0x37fc6200,0x446bbec7,0x80620018,0xd03eaa64,0x440018ee,0x3eaa658c,0xee623e58,0x973e7378,0x713e28ae,0xbea1e083,0xd48358d1,0x70f4713d,0x4495be62,0x710048ee,0xbec736f0,0x18255fbb,0x6f1e4400,0x3e58be62,0xcfbbf962,0x185d1c3e,0x100ff200,0xbbbedeb0,0xcfbd502a,0xcebeb54b,0xdbbde237,0xad3f02de,0x72beb54b,0x323ee734,0x7100181f,0xbde23209,0x48c027fa,0x1e477100,0xdfb53c08,0xf1002406,0xe6b18104,0x8b2852be,0xb54bcf3d,0x86163be,0xc8294a3c,0x7e620024,0x9d3eef35,0x6200182e,0x3e0220ff,0x54df0d,0xb07502f3,0x3344bede,0x4bcf3e3f,0x23e2beb5,0x54953e02,0x340d6200,0x36263ee7,0x18620018,0x5f3e7377,0x4400c045,0xbee9207d,0x1f43e58,0xbee1098d,0x3e4076c0,0xbec694cd,0xbecacf74,0xf443e58,0x58bea30d,0xdf05713e,0x5f6cbe64,0x710024f0,0xbde4bc27,0x4c040b46,0x2f0e713e,0x16ad3c08,0xf3000c08,0x2281302,0x41dd23e,0xc67b3e3f,0x75e5f3be,0x30d03e,0xac150944,0x443e583e,0x3ed3497b,0x8b623e58,0x473ee98d,0x44007877,0x3ef1a47b,0x4bf20090,0x3dbdb22d,0x3e8632e4,0xbea5421c,0x3dc6583f,0x3e006b7b,0xbe9ded29,0x3eac1c82,0xbe851090,0xbec694cd,0x3ed3530d,0xbe221533,0xbec54e2b,0x3d993038,0x3ebc63f1,0xbeafb8d4,0xbd446f9c,0x3e8e3de6,0xbea58948,0x3c083fd5,0xbdb7e133,0xbea18288,0x3ee98d8b,0x3de02e30,0x98ba4144,0x713e583d,0x3e75e4e7,0x54aaca15,0x2510f100,0x213df9e6,0xd3bec301,0xccbec5f8,0xbe3cbeb7,0x803d3f4d,0xb2be9bee,0x5b3c0811,0x24ca97,0x1ef03f2,0x23bcbdda,0xc39bec3,0xe011bec6,0xc92abe64,0x7062003c,0xa6bea399,0xf4009c0f,0xcac68b01,0x20f0a6be,0xc53aa3be,0xe1098dbe,0xf43e58be,0x765fd901,0x19e4d6bd,0x9e66233e,0x56dc1abe,0xf43e58be,0xa1922101,0xd21bcbd,0x9df0913c,0x43cd79be,0x443e58bf,0xbeedc5f8,0x1cf13e58,0xbdf0403a,0xbffadea0,0xbff851a8,0x3e66640a,0xbff991f7,0xbff85261,0x3fabd93c,0xbfa4e9a3,0xc00f5b08,0xbf3bf1c7,0xcd7866e,0x2b414400,0x3e58bfee,0xd6fb7f44,0x713e583f,0xbe06dce4,0x24ea2c91,0x493d7100,0xa82a3fe4,0x71000c1c,0xbfe3267c,0xc176167,0x12f14400,0x3e583e3c,0x84e404f1,0x139d3fef,0x5b08bea3,0x2f9dc00f,0x802cbfd6,0x71002451,0x3ef8a47f,0xce30bc8,0x7c5f7100,0x997cbfb1,0x44000c9c,0xbf94c522,0x42443e58,0x583f86b2,0x6bc6713e,0x152b3f36,0xf10024d6,0xd912c204,0x5a1c58bf,0xf5b083f,0xc0ec20c0,0x996ec63f,0x9d71000c,0xc73f8e0e,0xccb0f,0xe68e8271,0x1198d0bf,0xff71000c,0xf43fd978,0xc6270,0xb80ffe62,0x7863883e,0xe5087100,0xee4a3f2d,0x710018e8,0x3fe9b4a2,0xc09fca0,0xc48f7100,0x391d3ee3,0xf1000cf2,0xee9c5e04,0x530e3dbf,0xf5b083e,0x71001dc0,0xe754d23d,0x2710084,0x7e3ff028,0x1876c9,0x2ce03371,0xf8ba5abd,0xe2440030,0x58bfee06,0x8af4713e,0xc919beaf,0x710018f4,0x3fedbde0,0x87e53eb,0x3f857101,0xd395bedb,0x710048e0,0xbfe916c2,0x18b1e9af,0xb7204400,0x3e58bfdd,0x3229fa71,0xe77aabbf,0x4671003c,0x23bf62b3,0x30ca68,0x92cade71,0xb4c37ebf,0x8071000c,0xb73fd7ba,0xc46b8,0xb4e9ff44,0x713e58bf,0xbf791afc,0x3cd555ce,0x85fd7100,0x29803fbe,0x7100248b,0xbf9be881,0x18beadde,0x91c4400,0x3e583f9e,0xb7aa1d71,0xa2189cbf,0xfb710018,0x4e3f7d5c,0x30c3f0,0x52440df4,0xd8343fbb,0xdb62bf8e,0xe03bbffa,0x70b5bf06,0xdc90bfdd,0x4242bffa,0x3e583fdc,0xf49d01f4,0x8228bfee,0xe8e23df8,0xf07cbffa,0x3e58be92,0xda833df4,0x2acbfed,0xdb8cbdf5,0x7486bffa,0x52dbbd38,0xe86cbfe7,0x2f9dbffa,0xd5843fee,0xdd8bbe68,0x6e1ebffa,0x364bfdf,0xdafdbf19,0x9b74bffa,0x4f73ee0,0xdaecbfe1,0x581dbffa,0x51f4bfd2,0xdae4bf52,0xd9c2bffa,0x3e583f65,0x8ba431f4,0x213abfad,0xdb16bf9c,0x9d3dbffa,0xfd3f3f8d,0xdadcbfb9,0xe261bffa,0xeb6c3fa5,0xdb05bfa5,0x9978bffa,0xc9debf79,0xdbadbfc3,0x31a1bffa,0x3d25bfb9,0xdb623fa0,0x22c0bffa,0x3e583f0b,0x2f0625f4,0xe5323f46,0xdc123fe3,0x2164bffa,0x7471bfda,0xdc443f55,0x7586bffa,0xd24a3e9b,0xdd1e3ff5,0xfb83bffa,0xd85e3fef,0xdb833e82,0x125ebffa,0x3e58bfe5,0x979691f4,0xb85a3d7c,0xe86c3ff8,0xc7c1bffa,0x29913fea,0xdb383eff,0xe84bffa,0x147bfec,0xdd723eba,0x168bbffa,0x6a87bed8,0xdae43ff2,0x793ebffa,0x1cc13fd4,0xdaec3f75,0xc023bffa,0x3fe23fc3,0xdaec3f95,0x96fbbffa,0x1b76bf61,0xdac23fdc,0x7d63bffa,0x61ddbf8b,0xdad33fcb,0x9b9dbffa,0xf4733f98,0xdb513fc2,0xc222bffa,0x504cbfa3,0xdb053fb7,0x5122bffa,0x3a73fea,0xabf33ec9,0x4f9cbff7,0xda013fed,0xac0c3e46,0xf40abff7,0xf3bfbea1,0xab8f3ff1,0x800abff7,0x3e58bdf1,0xe1fc01f4,0x2f303fed,0xa0a53c40,0x8723bff7,0x3e58bfe8,0xc88210f1,0x4a9d3ea2,0xa9543ff2,0xfabebff7,0x6007bfe0,0xa97e3f1f,0x3dc0bff7,0x77d1bfd5,0x71000c5b,0x3f4c3340,0x24df015c,0x887f7100,0xe721bfc5,0xf4001889,0x82449e49,0xcf4c3c3f,0xf7a9653f,0xb2243ebf,0xa3ae82bf,0xf7a9a03f,0x9c0b3dbf,0xbbe88a3f,0xf7a9973f,0xb2f2bfbf,0xa5328b3f,0xf7a9da3f,0x81d063bf,0xce3212bf,0xf7aa263f,0xc68f7ebf,0x8b93ff3f,0xf7aa3f3f,0xd6833cbf,0x5f0e3d3f,0xf7aabd3f,0xe281a1bf,0xf13e583f,0xf9e3810,0xea2396bf,0xf7ab003f,0x50383bbf,0xde0a9e3f,0xf41ff33f,0xb08fc1bf,0xa57c5fbf,0x1f71000c,0x40bfc880,0xc85a6,0xe3a410f1,0xf6e43fec,0x1ff33e7b,0xcbffbff4,0x1fcd3fed,0x1ff3bbd3,0xef70bff4,0xee463eaa,0x710024f1,0xbfdacf64,0xc41e604,0xf65e7100,0x716d3fe5,0x44000c0d,0xbfe2f3c3,0xdc713e58,0xefbfe82a,0x48c972,0x69b6f671,0xf3e8ffbe,0xc0710024,0xe3fda42,0xc4e12,0xd047dc71,0x7722293f,0x8171000c,0xb2bf0a7b,0xceaf3,0xbeb5fe71,0x96b6203f,0x3d71000c,0x9c3fa99b,0xcaf36,0x7f5a4271,0xcf9807bf,0xdd71000c,0xfa3f915d,0xcc49b,0x7835bd71,0xd305b83f,0x28f1000c,0xbf64a57a,0xbfc63bef,0xbff7a94c,0xbf4bf801,0xbfcca498,0xbff41ff3,0x3fb4453d,0xbf924913,0xbff7a98f,0xbf2a4c40,0xbfd3fd37,0xbff7a93b,0xbf01bec2,0x24db1a87,0x637c7100,0xe0333fc6,0xf4000c74,0xeaa3830d,0xfd3133bf,0xf7b7a6bd,0xc7a9fcbf,0x7102473f,0xf7a96dbf,0xd98091bf,0xf13e58be,0xea92ff04,0xf85be2bf,0xf41ff3bd,0xd75f5fbf,0x38aab93f,0x1f40024,0xbe3496ee,0xbfe30d06,0xbff7a954,0xbe09270b,0x1e443e58,0x583fe31b,0x7360443e,0x3e583fe2,0x7dfa01f4,0x10523d9f,0xa030bfe4,0xffebff7,0x3e58bfde,0xe3de10f1,0xb5c4bfda,0xaadebf1e,0xa7a4bff7,0x84233fea,0xa9a0be77,0xef1cbff7,0x20963e3e,0x4400a8e3,0xbfd58184,0x4f13e58,0x3eaa7b0b,0xbfe08e0d,0xbff7ab86,0x3edf0ef5,0x24ddd389,0xe310f100,0x3cbfcce2,0x61bf58da,0x7fbff7aa,0x273f13df,0xefbfd8be,0xfebff7aa,0xb2bfb82a,0x248b63,0x2d4ac371,0xd43afb3f,0x10f1000c,0xbfbb0f9d,0xbf875358,0xbff7aa04,0x3f4fcb3e,0xbfccbfa9,0xbff7aa7a,0x3f67dd44,0x24c684e8,0xc19c4400,0x3e58bfa5,0x9bb83d71,0xa8ee52bf,0x7c440018,0x583f83f1,0x13e0713e,0xf2d83f8f,0xf10018b4,0x8d5c9e04,0xb4a466bf,0xf7a976bf,0x821240bf,0xbca066bf,0x82440018,0x583f9d8f,0xb07d713e,0x5dc03fa2,0x440018a4,0xbfb02be0,0x19f43e58,0xbe56aceb,0xbfa7da8c,0xbff41fe2,0xbf044178,0xbf9d0953,0xbff420bc,0xbfa14afd,0xbf032e8c,0xbff4204f,0x3f74763a,0x57f23e58,0x3f8cce1c,0x3f6fb225,0xbff42081,0x3f492642,0x3f9cf030,0xbff4202e,0xbf7a4f44,0xbf6ba659,0xbff41fc1,0x3fab145e,0x3eff54b0,0xbff4201d,0x3e67e910,0x3fb93ea3,0xbff4201d,0x3fb34962,0x3e3c4dec,0xbff420cd,0xbea19c7c,0x3fb68755,0xbff41f97,0x3fab143c,0xbeb9bf7b,0xbff4201d,0xbf44e0b9,0x54f14e,0xce039df4,0xe7683f8c,0x2081bf4c,0xad04bff4,0xb246bf8a,0x20793f6f,0x243abff4,0x8b503f49,0x2036bf8b,0xf29dbff4,0x5c29bfa8,0x20143eff,0x2186bff4,0x21c43eaa,0x1fa7bfa5,0x2820bff4,0x52e7bfb1,0x20c53e3c,0xa409bff4,0xa3fdbeb4,0xecea3fa3,0xde7fc006,0x4a7bedc,0xb8a23f9a,0x710dc009,0xe2bdbe5c,0xb8a23fa1,0x31f4c009,0x6ecabe6f,0x70f83fae,0x7c0c002,0xc9d1bf23,0x4cf03ea2,0x5879c010,0xc84bbf0c,0xf6403e67,0x22c0c00e,0xb9abf0f,0x37bd1c,0xdbc2c00f,0x9e90bf3b,0x48d43f3e,0xe903c010,0x3e58bf0a,0x7885b5f4,0x692bbf50,0x1b373f51,0xf141c00e,0x5e68bf27,0x47243f7e,0xd3c3c00d,0xbea9bf4f,0xb8a23f77,0xccfbc009,0x7faabf11,0xea643f98,0xe504c006,0x4d2bbf02,0x284e3f8e,0x5c7dc00c,0xdfebf2f,0x70f83f98,0x3fd5c002,0x27783c08,0xba23fb3,0x3a47c001,0xe9b8bf4b,0x6ffbbcf,0xadebc011,0xe704bc01,0xfcad3c0c,0xba80c005,0xda7fbf6d,0x9a993f08,0x1787c00f,0x160bf7c,0x147f3f10,0x9479c00e,0x3deabf76,0xb8a23f4d,0x213ac009,0x7558bf44,0xea683f88,0xfb05c006,0x4420bf2b,0x4cf0bd72,0x15cc010,0x8c33bf8b,0x1b373e8b,0xa387c00e,0x8c48bf7b,0x284e3f2e,0x6e5dc00c,0x3e58bf8a,0x7ce2fff4,0x7dbf6fb5,0x7d3f6821,0xc0c006ea,0xb2bf8579,0xf83f5ca0,0xc1c00270,0x7abf8457,0x913e288e,0x1c00f9a,0x4ebf8a19,0x4e3efa7b,0x5fc00c28,0x44bf94d2,0xa23ecd6b,0x3cc009b8,0xb3bf8986,0x7d3f3809,0x90c006ea,0x80beaddd,0x37bec910,0x9cc00f00,0xfa3c0850,0xd7bd9e7a,0xd5c006f6,0xb63c083f,0xfa3d8b30,0x3fc005b6,0x23bf8900,0x91bd74f7,0xc4c00ed1,0xc8bf9679,0x603f0244,0x3fc006ea,0x2bfa119,0xf83edb65,0xdcc00270,0x8ebf882a,0x34bea2ae,0xfcc00d47,0xd7bf9a1b,0xa2bd3587,0xfec009b8,0x3cbf9e43,0x5b3e914e,0x42c006ea,0x97bfa6d1,0xf83e421d,0x1ac00270,0x7fbe0cf9,0x2ebefbdb,0xf9c00f03,0xd8bf6dbd,0x95becc10,0x7cc00f9a,0xc1bf94d3,0xa2be87c4,0xe4c009b8,0xb0bfa0a0,0x853d5270,0xbfc006ea,0x8bbfa6d1,0xf8bd5b32,0x87c00270,0x73be8dc4,0xfdbf1084,0x63c0104b,0xe43c0861,0x60bf9ebd,0x54c00374,0x203bf701,0x653e4c27,0x43c006c5,0x85bf8a70,0xa2bef309,0xa2c009b8,0xdbf9d7c,0x60be38c6,0x86c006ea,0xc9bedb01,0x4cbf4ec7,0x38c01089,0xb3bf29a0,0x2ebf5207,0x85c00e1b,0x9bf7699,0x9dbf2a6c,0xc3c009b8,0xf0bf94f1,0x57becec2,0x7fc006ea,0x93bf95dd,0xf8bf04e5,0x80c00270,0xe13d7bd3,0xbebf04cf,0xc3c00f30,0x7fbf0aef,0x95bf526c,0xffc00f9a,0xa7bf5a75,0x4ebf37af,0xfdc00c28,0xe5bf4fd9,0x9dbf54ed,0xc3c009b8,0x75bf874a,0x7dbf1c74,0x17c006ea,0xdebe72d5,0x56bf6601,0x2c01064,0x78be5380,0xba3f1ab3,0xd5c00ef5,0x3e3c083f,0x8d3f3caf,0x90c01027,0x55be9386,0xefbf80bd,0xf9c00e1d,0x9abf21f3,0x9dbf7797,0x3fc009b8,0x58bf69ff,0x619f43e,0x60bf610d,0xf4bf67cb,0x7c00270,0xabbf02ec,0x4ebf79cb,0x39c00c28,0x32bf3d5e,0x53bf733b,0x8c006ea,0x58be9f1e,0x363b443e,0x3e58bf0a,0xef5ff671,0x94848cbe,0xeb71003c,0x68be6f56,0xc9d08,0x1f6007f2,0xd3dbb9d,0xf1d03df8,0x1cf8c005,0x48f1be48,0x147f3f94,0xdc4009c,0x743f9e52,0xd5c00c09,0x583c083f,0x3fd5b13e,0x63563c08,0x9d34bf93,0xf4001809,0xa960c821,0x767f53f,0x29a3d3c0,0x5cf4e8bd,0x71ae33e,0x6bfb16c0,0x371d0dbe,0x1052c13f,0xd624ffc0,0xe9ee24be,0xf00323e,0xaf3c71c0,0x443e58be,0x3f3b30f9,0x10f13e58,0x3f01243a,0xbf6dbac3,0xc00e1b37,0x3f263001,0xbf779b45,0xc009b8a2,0x3ee56580,0xc889ec3,0xf510f100,0x423ebd2b,0xe1bf923e,0xf6c006ec,0xcf3ea795,0x52bf86d9,0xe5c00c28,0xfa3e6d80,0x24907c,0x80218e44,0xf13e583e,0x21a07b1c,0x78240b3f,0x10466fbe,0x4eb9c3c0,0xa6dacb3f,0x110664bd,0x15a145c0,0x6e392e3f,0xef6453c,0x35fe00c0,0x5cd0033f,0x1710048,0x9d3f5417,0x4854f2,0x107b0df4,0x19f83f16,0xea53bf87,0x9ffdc006,0xa7e73f33,0x70f8bf86,0x2720c002,0x3e583ccc,0x48644571,0x6e1f5c3f,0x28f10024,0x3f303d04,0x3e47bf62,0xc0104cf0,0x3f8d229f,0xbe0bef8d,0xc00e1b26,0x3f8c8f9f,0xbef3167f,0xc009b8a2,0x3f73f801,0xbf455619,0xc006ea7d,0x3f879b24,0x5439d463,0x3f03f200,0x8d3f3319,0x643efded,0x4c01106,0xb83edeaf,0xf4012ce7,0x8c3a2101,0xb4e2f33f,0xc2852be,0x8ba7c1c0,0xf23e583f,0x6ba78703,0xd7b58d3f,0x10894c3e,0x8d22e2c0,0x2c81953f,0x3c9f6304,0xfe543f9c,0x9a340378,0x3e583f98,0x3a6003f2,0xcc643fa3,0x70f8be95,0x9518c002,0xb24a3e64,0xbe44027c,0x583f964e,0x1f03f23e,0x663fa065,0x70be1769,0x62c006ea,0x743f96f4,0xf4042c5c,0xa2c1fd01,0xad21bc3f,0x6ea743d,0xa8f29dc0,0xf13e583f,0x9d347a1c,0x31e2583e,0x10512f3f,0x54bef9c0,0x5164953f,0xe1b2e3f,0x8c3b3fc0,0xfa6d483f,0xc28523e,0x8c9121c0,0x1c506a3f,0xa1440558,0x583f9f9d,0x3b5c623e,0x54e33fa3,0x10f10438,0x3f9712fd,0x3f0a2be0,0xc006ea4b,0x3f0f3205,0x3f75373b,0xc00f9a99,0x3f012a41,0x54884192,0x1bb96200,0xb9393f54,0x5d4405a0,0x583f896b,0x9d3d443e,0x3e583f87,0x85d97f44,0x713e583e,0x3f3602fb,0xb87f9735,0x40fb4405,0x3e583f6e,0x419ec744,0x623e583f,0x3f33a605,0x5d00ba2,0xa7a20544,0x623e583e,0x3e6d9b1b,0x678e1eb,0x78c001f4,0x63493f0e,0xea573f9a,0xe38fc006,0x3e583ef7,0xa07f03f2,0xdb593eac,0xe7473fa4,0x2f0ec006,0x6df03e80,0xc44069c,0x583cae77,0x625f43e,0x2e3e592c,0x7fbf82e3,0x78c00e14,0xf83d4a28,0xb1be0bfd,0x7fc00817,0x8e3e87fa,0x32bee5ca,0x3c00f00,0xc23e9643,0xfdbf1085,0x4c0104b,0x583eff1b,0xf04f13e,0x2c26005,0x333fc57e,0x1cc01318,0xfcc2575c,0xcd4de,0x48fb04f1,0x624ac257,0xe5043fd3,0xead5c00f,0xcd4bc260,0x710018aa,0xc261049c,0x18a79325,0x2c257100,0xbfd3c259,0x710018ee,0xc2591692,0x18edee67,0x8b327100,0x15dbc261,0xf1001892,0x53bd5610,0xedefc8c2,0x1318333d,0x53ba3ec0,0xe0828cc2,0xfe5043c,0x61e59dc0,0x80ff6dc2,0x61710030,0xf2c26210,0x306ded,0x541c8271,0x23cadac2,0xc1710018,0xb8c25426,0x182b56,0x5b21fa71,0xf8bbf5c2,0x7271000c,0x53c25b46,0x24f907,0x62905971,0x23cb1dc2,0x4f10018,0xc2628613,0x3f2b5ba3,0xc00fe504,0xc25c6488,0x18f6af60,0xb73f7100,0x1162c254,0x7100187b,0xc254c739,0x1880fe58,0x610f100,0xd0c262e4,0x333e8d43,0x19c01318,0x11c262d5,0x43eba1d,0x5fc00fe5,0x64c25c88,0x30f5cc,0xf29d10f1,0x43c262,0xe5043d70,0xef86c00f,0x585c262,0x1833bcf7,0xa83ac013,0x9221c255,0x710048a7,0xc255932b,0x30a491b8,0xc2697100,0x82dc25e,0x710018df,0xc25e6f7f,0x18e3b63d,0x50b77100,0xdf8bc25f,0x71000cd4,0xc2637b0e,0x240c74eb,0x3f04f100,0xc5c25a0e,0x33bfea54,0x9ec01318,0xc0c25916,0xce2ec,0x780904f1,0x39fc259,0x1833c000,0x467ac013,0x53ec25b,0x710018ee,0xc263b038,0xb46a1e3f,0xd4137100,0xba13c255,0x710048cf,0xc2546e10,0xc9d882b,0x8ec57100,0x5793c25b,0x71003c03,0xc253c622,0x1873761d,0xcfe7100,0x4e6ac258,0x71000cfc,0xc25c5465,0x54eb9d5e,0x1d04f100,0xffc262d5,0x33be8e09,0xaec01318,0x97c2639f,0xc8d54,0x5d3f4371,0xe63cfbc2,0x39710024,0x1ec2533a,0x3c14a7,0x5dad8671,0xfc298dc2,0x14710018,0x87c26366,0xc086c,0x62861d71,0x155087c2,0x4f1000c,0xc25a127a,0x40075aea,0xc0131833,0xc25e6f89,0x18d8b389,0x5d17100,0xdb38c262,0x71000c5c,0xc25fa4a1,0xce0b242,0x92ec7100,0xf951c262,0x71000c81,0xc25c2c45,0x3c083975,0x6e04f100,0xedc252f5,0x2fbd957e,0x97c01318,0xcdc26020,0x24b778,0x53c8d571,0x427568c2,0x727100a8,0xe8c260db,0x18a1d8,0x614b9662,0x2440ccc2,0xee04f100,0xc25326,0x1abed352,0xa4c01318,0x20c25e38,0x5400b5,0x540c7c71,0xff23abc2,0x1571003c,0xe5c2547c,0x3c48d2,0x53da6171,0x66c387c2,0x7f71000c,0xbac25462,0xc9068,0x6016a171,0xe28d65c2,0xb47100fc,0x76c260ea,0xccdc0,0x55e99171,0xa54880c2,0x23710024,0x7bc255c4,0xcc2f8,0x570ed271,0xc3df4cc2,0x3371000c,0xdcc2624c,0x309b10,0x577f4371,0xe8f9a9c2,0x19710018,0xbc262f5,0x186bd3,0xb8ae1cf1,0xcfec263,0x67c33d2f,0x9a8fbff9,0x6588c263,0x49aebe9b,0x5c45bff9,0xbed7c263,0x63a2bf10,0x8296bff9,0x675ec262,0x71000c85,0xc261370a,0xcb9cfb3,0x8e2c7100,0x5a25c25f,0x71000ce2,0xc25d6db3,0xcfe71a4,0x1f04f100,0xe6c25b24,0xa2c00359,0x77bff963,0xdcc25913,0x18fcd4,0x5726b062,0x30ef67c2,0x7c5e7100,0x9de9c255,0x710018ba,0xc2542ef9,0xc86604e,0xdffff300,0xc253aeaf,0xbf4f779f,0xbff97a0b,0xc253247b,0xbed0142f,0xbff92e62,0xc252f829,0xbdd7eaa3,0xbff963e5,0xc2532552,0x3efa48b6,0xbff963a2,0xc253d8b7,0x3f7bed63,0xbff963a2,0xc25460a4,0x3f9b1034,0xbff963a2,0xc255c224,0x3fcdc033,0xbff963a2,0xc257b499,0x3ff78a76,0xbff963a2,0xc25a3873,0x4007ce46,0xbff963aa,0xc25c52db,0x40081212,0xbff963a2,0xc25e9fcf,0x3ffc4f1a,0xbff963a2,0xc2607067,0x3fda663c,0xbff963a2,0xc262162c,0x3fa50785,0xbff963a2,0xc262e6b6,0x3f7377d1,0xbff963a2,0xc26372a5,0x3f14a5ad,0xbff963a2,0xc263adf8,0x3e80f8a5,0xbff963a2,0xc2530a75,0x3f0c3a64,0xbff963e5,0xc2634b70,0x3f8ca78b,0xbff9633d,0xc25e5762,0x400a790c,0xbff96217,0xc25f3739,0x4004d489,0xbff92a28,0xc25af256,0x4010df3b,0xbff95b03,0xc264566b,0x3d3021d1,0xbff963a2,0xc255627d,0x3fd125b3,0xbff962e9,0xc252da12,0x3d98f8a5,0xbff96367,0xc2602444,0x3ff9389b,0xbff95e31,0xc254130b,0x3f9b3650,0xbff9632c,0xc263d686,0x3f491e86,0xbff962bf,0xc256f2d3,0x3ff85c81,0xbff96388,0xc2642269,0x3f062a80,0xbff96220,0xc25c3ad7,0x4010ea70,0xbff95ca7,0xc261d838,0x3fccc448,0xbff95dbc,0xc258c518,0x400a0004,0xbff9635e,0xc25373cb,0x3f6301b8,0xbff963a2,0xc2629049,0x3fb16ed6,0xbff96156,0xc25d4783,0x400ecdc8,0xbff95dc4,0xc26034e3,0x3ff7bfbe,0xbff840a7,0xc261c529,0x3fceee39,0xbff720f3,0xc2627521,0x3fb5a494,0xbff69364,0xc262fc6d,0x3f9d441c,0xbff60000,0xc2637276,0x3f82bbed,0xbff57aee,0xc264248d,0x3f026e01,0xbff433ad,0x6200f06c,0xbff33911,0xc3421,0xfffffff7,0x5d51ffff,0x3ebff0bf,0x85c2535a,0x113ed0b2,0x81bf91fe,0xc252ae,0x8e3f05c8,0x3fbf9faf,0x16c2533f,0xcc3e49a4,0xe0bf927d,0xf0c26205,0xae3f98a3,0x10bfc5f1,0x2ec2624a,0xf53fb591,0x79bfd430,0xdfc26165,0x4e3fb233,0xaebfc69a,0xb6c258a1,0x60bfef64,0xb8bff93e,0xe4c25961,0x78bff6a2,0xbabff963,0x15c2579a,0x53bfe31d,0x45bff95a,0x15c2634f,0xc83f81a8,0x4fbfd309,0xe9c257d3,0x65bfe4b6,0x94bff88f,0xbcc253f0,0x733f6102,0x27bf90ba,0xbc263dc,0x73f2a9a,0xdcbfd227,0x3c25726,0x98bfd8ed,0x2dbff819,0x73c253d2,0x323f9bf7,0x8ebf9de9,0x25c26332,0xdb3f0bec,0x3ebfc417,0x15c2561c,0xedbfc5fd,0xbcbff963,0x8bc254e5,0x4a3fa370,0x46bf8f7f,0x4c26363,0xc93e97e8,0x9dbfc375,0x78c26427,0x993e8d7a,0x51bfd146,0x91c255a0,0x2dbfb2ed,0xbdbff6ed,0x98c25590,0xaa3fbbfa,0x19bf8ed6,0x1ac26374,0xd3dc316,0x7bfc2fe,0x38c254bc,0x41bf9bbf,0x9fbff964,0x6bc25652,0x983fd19e,0x32bf8e34,0x60c26367,0x46be4372,0x55bfc243,0xdec2546d,0xebbf8290,0xbff5ab,0x56c25832,0x3e3ff54a,0xcbbf8ced,0xe1c26329,0xf8befc5f,0x3bbfc189,0xc4c2539e,0x90bf14ed,0xecbff468,0xafc262de,0xcbbf35e9,0xc0bfc0f3,0x1cc2599e,0x874001b5,0x66bf8bfa,0x36c25a0f,0x84400f3d,0xa8bf997f,0xeac2627b,0x8abf6b09,0xb4bfc05a,0xa5c25362,0xe1beb869,0xbff3d2,0x9bc25a71,0x2e4003c7,0xf4bf8b72,0x9ec2533b,0xaa3e15b3,0x7ebff29c,0x46c2615f,0xadbfa809,0xa5bfbf15,0x6dc25b74,0xac40048f,0x79bf8ac6,0xa4c25359,0xa83ecc37,0x32bff200,0xd3c25c78,0x1940034d,0x3bf8a1b,0xf3c25d54,0x92400cff,0xcfbf9791,0x3cc25feb,0x26bfd0bf,0xf3bfbde2,0x8bc25396,0xd93f2534,0x56bff15c,0xdc25d5e,0xae400071,0xe8bf8983,0xf1c25e3d,0xdc3ff7f1,0x12bf88f1,0xd8c25f34,0x12bff9d2,0x5abfcb12,0xf2c25e24,0x8dbfee5d,0xdfbfbcb8,0x64c25f13,0x1b3febeb,0x63bf8866,0xe9c25469,0x553f8d2c,0x22bff013,0x36c25ff3,0x143fdb1f,0x87bf87cd,0x5cc260d4,0x7b3fe43e,0x6ebf9566,0x7c25d4c,0xffc00797,0xa2bfc9ec,0x65c260bf,0xa53fc6fb,0xebbf872e,0xe0c25c55,0x5abffc2b,0x7fbfbb83,0x16c26165,0x353fb233,0x33bf869a,0xd2c26239,0x993fb838,0x10bf9447,0x70c25b52,0xb6bffe24,0xabbfbad7,0x32c2561e,0x363fcc91,0xe5bfee5a,0x16c26205,0x953f98a3,0xb6bf85f1,0x7ec26307,0x293f93a7,0x42bf9379,0x4cc26275,0x4c3f824f,0x39bf856f,0xb7c25a4e,0xfabffc08,0x3cbfba2b,0x98c256f9,0xd23fe087,0xf5bfeda9,0xacc2593e,0xd4c0071d,0x90bfc780,0x95c262eb,0x193f43d6,0x68bf84ae,0x3ec263d7,0x623f2e96,0x3bf9231,0xfdc25836,0x89c00211,0x90bfc6d4,0x1cc26332,0x553f0bea,0x89bf8417,0xbdc25832,0x33ff551,0xd0bfeceb,0x24c2586e,0xbbbfecef,0xcebfb8f1,0x3dc2642b,0xc43e7a64,0x53bf9127,0x1c25970,0xd24000f8,0x5ebfec19,0x1cc2566a,0xc1bfe67d,0x99bfc5ca,0x9fc26373,0x883d301d,0xb0bf82da,0x32c256b9,0xcbfd01d,0xd9bfb7cd,0x45c255ca,0x98bfb847,0xfdbfb718,0xeac25b5a,0x17400492,0xebbfead7,0x38c25c5e,0x8c400384,0xb5bfea2d,0xfbc254a6,0x4abf8d94,0x85bfb5f1,0x1bc25d45,0x254000d5,0xa9bfe995,0xa9c253ca,0xcfbf33d9,0x9abfb4be,0xfac25e55,0x8a3ff6f2,0x6dbfe8e7,0x2cc252aa,0xc5bed8a0,0x10bfc1c9,0x4fc25f14,0x173febe8,0x18bfe865,0xefc25ff3,0xd93fdb1f,0x92bfe7cc,0xedc25349,0xc9be57ba,0xe0bfb375,0x35c25338,0x2abc0a0d,0x8dbfb2fd,0xb9c260bf,0x943fc6fd,0x10bfe72e,0x9ec26155,0xd63fb4b2,0x38bfe6ab,0xb2c2535a,0x333ed0a0,0x4bfb1fa,0x24c26206,0x673f989c,0xb0bfe5f0,0x3ac25388,0xd43f193b,0xd4bfb17c,0x76c2627f,0xc13f7f18,0xf8bfe556,0x43c253f0,0x883f6139,0xa5bfb0b9,0xac25323,0xe73f63db,0x3dbfbec2,0x5ec262e2,0xa13f49d5,0x95bfe4bd,0xdac26332,0xf03f0be5,0x7cbfe414,0x4fc25417,0x523fa908,0x48bfbd9e,0x4cc26363,0x543e97e3,0xf0bfe373,0xdfc254c3,0x403fc3f9,0xbebfbcfa,0xc2c25590,0xaa3fbbfa,0x19bfaed6,0x6c26374,0xf03dc32a,0x18bfe2fc,0xadc26367,0x68be4450,0x45bfe241,0xc8c256fb,0x5a3fe0b2,0x68bfadb9,0xb6c25706,0xf33ffd64,0x55bfbb56,0x42c2582f,0xa23ff526,0xcbbfaced,0xc0c26329,0x9befc5f,0xecbfe18a,0xafc262de,0xc3bf35e9,0xa8bfe0f3,0xeac2627b,0x8abf6b09,0x40bfe05a,0xb0c2599d,0xcd4001af,0x30bfac01,0xc7c262b0,0x9dbf992e,0xbfedb9,0xedc26201,0xc6bf8e83,0xf7bfdfbf,0x8ac25a70,0x2e4003c7,0x39cab72,0xbfdf9af7,0xc25b749d,0x40048f71,0xbfaac6b5,0xc25bde1c,0x401059d1,0xbfb86fdf,0xc260b92a,0xbfbcb2d1,0xbfde80d0,0xc25c782a,0x40034de4,0xbfaa1b2a,0xc25d5e4d,0x4000712e,0xbfa983b6,0xc25dbcb5,0x400b5083,0xbfb74de8,0xc25f230c,0xbfdfeb7d,0xbfdd58b8,0xc25e3de0,0x3ff7f24e,0xbfa8f1e5,0xc25d8269,0xbff4de98,0xbfdc4c16,0xc25f13d8,0x3febebe1,0xbfa8662c,0xc25ff31a,0x3fdb1fd6,0xbfa7cd1c,0xc2607d65,0x3fec6291,0xbfb5a094,0xc260bf9c,0x3fc6fc16,0xbfa72eae,0xc25bec47,0xc00adc94,0xd0e91d36,0x6ca61705,0xbfdad703,0xc25acc07,0xc00ad76b,0xce86c55,0xa52ef706,0x62769abf,0x81fb61c2,0xa55f813f,0x631868bf,0x8ed6e4c2,0xb352093f,0x597dbebf,0xf7881ac2,0xd9aeabbf,0x58d29cbf,0x548cbc2,0xe74706c0,0x637e79bf,0x6a8113c2,0xb2c5003f,0xaf70330,0xeb8cbfd8,0xd88cc262,0xae193f43,0x98debfa4,0xe853c257,0x661bbfe0,0xf705e8d8,0xdcbfa40a,0x50c263e9,0xc3f1c71,0xf6bfb203,0xaec255ca,0x6bfb84a,0x5e8d70d,0xbfa32ef7,0xc263741d,0x3dc1f9f0,0xbfa2f923,0xc25536aa,0xbfa4d320,0xbfd68a16,0xc263672a,0xbe43a5c2,0xbfa24d23,0xc2542d07,0xbf6916db,0xbfd557cd,0xc253836d,0xbf7f5504,0xb8e34f94,0xa10af705,0x627ba8bf,0x6b09fac2,0xa05a8abf,0x537a4ebf,0xebd945c2,0xd417d3be,0xd3170324,0x9fd501e0,0x61cbd2bf,0xbcdce4c2,0xacdba5bf,0xcf701d4,0xbf9e80c7,0xc26064ab,0xbfe3ceb8,0xbfabc8e2,0xc2535a8b,0x3ed17d28,0x7cd1f434,0xd49d1705,0x9d52f701,0x5f6e96bf,0xf6298dc2,0xab3522bf,0x52adcebf,0x655c1c2,0xdfb2683f,0x53f08bbf,0x60fe48c2,0xd0ba173f,0x5d55e4bf,0xf6260bc2,0x9c2be9bf,0x5c7f95bf,0x9e215c2,0xa97260c0,0x545492bf,0x88682bc2,0xd02aed3f,0x54e5bdbf,0xa370bdc2,0xcf7f4a3f,0x54f861bf,0xcae93ec2,0xdcc9973f,0x9ad70540,0x5ab4b7bf,0xad60ac2,0xa865a5c0,0xce170348,0x46f70528,0x6ec9bf9a,0xc94bc259,0x9a28c007,0x7da0bfa7,0x876ac259,0xa5cabff7,0x52a0bf99,0x9e84c256,0x34983fd1,0xfa95bfce,0xa4ecc256,0xaab43fe0,0x849bbfcd,0xa2e8c256,0xa82f3ff3,0x13afbfdb,0x67bac258,0xcadec001,0x2e71bfa6,0x19f8c258,0x3323ff5,0xf701e0cd,0xfcbf982e,0xbcc256b0,0xf5bfec20,0xb0bfa5f2,0x2ac256b9,0xcbfd01d,0x1fbf97cd,0xe7c2599c,0xf94001ab,0xfcbfcbf5,0xf1c25956,0x84400cf4,0xcabfd9f3,0x89c255ca,0xa1bfb845,0x36c9714,0x360cb17,0x51cca17,0x3549517,0xf3bfcad7,0x3ec25d40,0xf6400d41,0x360d797,0x97bfc9d7,0x55c253c2,0xb0bf8e15,0x354a38e,0xbbbfc8d5,0x64c25f04,0xb54003e8,0x204d688,0x9417db37,0xc8d70360,0x5338debf,0x4944fc2,0x92f901bc,0x1f20354,0x9af6bfc7,0x31d7c261,0xcd9f3fce,0x1512bfd4,0x9835096c,0x5f465fa,0xfffffff2,0xffffffff,0xffffffff,0x9970ffff,0x66bf7d48,0x3c26456,0x63d3026,0x64bf8e46,0xeac26456,0x763d3023,0x5bf65fa,0xf5c25450,0x4a3f87d9,0x45bf8bed,0xcbc254af,0xec3f9a66,0xfdbfcb84,0x43c254c3,0xe33f9dca,0xbf8b6b,0xdc25488,0xd53fc1ff,0xb7bf755d,0x99c25602,0xcc3fc980,0xddbf8a41,0xbac25602,0x743fc984,0xc8bfca42,0xb9c25545,0xe83fda55,0x30bf73f9,0x75c25740,0x4d3fe5cc,0x22bfc967,0x6ec25733,0x90400031,0x20bf7687,0xf1c2580e,0x253ff2f4,0xcebf88cc,0x73c25903,0x1f3ffe48,0x97bf882b,0xb5c25637,0xf03fed1b,0x8fbfbbda,0xc4c2593c,0x82400040,0xd6bfc801,0x4c259da,0x2400276,0x18bf879f,0x98c258e4,0xc9400b18,0x38bfba38,0xcc258ff,0x74400b93,0x52bf7461,0x69c25af5,0x1040046f,0x48bf86e6,0xe4c25aeb,0x6c400466,0x2cbfc6ea,0x3ec25be7,0xcf400442,0xd0bf864a,0x32c25bd4,0x44400455,0x40bfc651,0x93c25b1b,0xc04012c6,0xe7bf6cea,0x1ec25cf0,0xe400215,0xdabf85a0,0x44c25c06,0x3140124d,0xf1bf6bb7,0x83c25ae2,0xbc40106c,0x1bfb904,0x5fc25cbf,0x5a40029a,0x31bfc5b7,0xb5c25dc2,0xf53ffd4f,0x70bf8510,0x12c25eae,0xb93ff213,0x7cbf8472,0xfdc25e0b,0xfb400c14,0x8fbf6958,0xfdc25f0a,0x9b4005f9,0x32bf6839,0x27c25f7c,0x133fe4a5,0x9bbf83f0,0xc7c25e89,0xf43ff42b,0xbdbfc48b,0x54c26043,0xc63fd3fc,0x90bf834f,0xd7c25f97,0x7b3ffe69,0x14bfb631,0x8ac25f95,0x883fe2c8,0xc3bfc3d9,0x82c26106,0x503fbeab,0x44bf82c4,0x83c26030,0x143fd5da,0xedbfc35b,0x5fc261a6,0xb33fa898,0x23bf8226,0x89c2623f,0x3e3fbad0,0x82bf6607,0x5c26118,0x693fbc6f,0x67bfc2ab,0x2fc262cd,0xa23fa0fa,0x7ebf65ec,0x59c26258,0x743f8869,0x83bf815e,0x74c262c0,0xba3f5def,0x42bf80bd,0xfac261fd,0x7d3fc109,0x1abfb47a,0xaac261b4,0xfd3fa67d,0xc0bfc213,0x59c26320,0x613f8da6,0xa0bf6635,0x21c26261,0x603f86b0,0x67bfc13c,0xe9c262cf,0xc3f5560,0xdebfc0af,0x60c263b0,0x763f42e7,0x9abf65fa,0x18c26313,0x463f270b,0x13bf8026,0xbc2631a,0xde3f21ec,0x74bfc020,0x93c2634d,0xb83edc18,0xcbfbf92,0x45c26403,0xd3ed483,0xedbf65fb,0xecc26371,0xce3e1eda,0x65bfbee1,0x70c2634d,0x643edc43,0x79bf7f24,0x12c26432,0xd53e02da,0x88bfb0ed,0x11c26347,0x86bec253,0x46bfbd8e,0xd3c2640b,0xfebec04f,0x6bbfafd3,0xf8c2581e,0xce4006c4,0xd9bf75fd,0x64c263ce,0xfabf1c78,0xd4bfaf45,0x41c262d5,0x65bf3c2b,0x64bfbca8,0x96c26300,0x49bf8924,0xe1bfae10,0xf6c26155,0xf9bfa9b2,0xb3bfbabc,0x7cc263f3,0x5bbef665,0xb5bfef94,0xdfc2631a,0xbbbf32e1,0xf0bff963,0x43c263a3,0x6bf3be5,0x3cbfeef6,0x29c26335,0x76bf7a3e,0x6fbfee51,0xd7c2622d,0xaabf8d4f,0x25bff963,0x6ac261ba,0xb7bf9f87,0x26bff962,0x13c25fe7,0x7bfd127,0x7bbfb9b1,0xa5c260fe,0xd0bfb766,0x8ebff962,0x89c2602d,0xccbfcbf0,0x7cbff961,0x31c26169,0x5dbfc926,0x75bfec8b,0x59c25e38,0x5dbfed32,0x4fbfb88b,0xf4c2609a,0xcbbfdec3,0x52bfebf2,0xe4c25f64,0x3dbfdb4a,0xc7bff963,0x76c25e93,0xe7bfe889,0x7abff8c8,0x1fc25d92,0xc9bff448,0x28bff821,0xe1c25d38,0xf0bff743,0xc9bfb7dc,0xe3c25edb,0x83bffee0,0x4fbfeadd,0x7ac25ddd,0xa6c00537,0x37bfea44,0xc8c25cbc,0x32bffa40,0x8abff792,0x41c25bbd,0x7dbffdd4,0x7bff6e6,0x88c25d8d,0xa1c0069d,0xa8bfaa13,0x72c25ad7,0x7abffda8,0x57bff650,0x6cc25c5f,0xdfbffc06,0x9bfb74f,0x99c25a57,0xf8bffc2c,0x4fbfb5f9,0x88c259ed,0x89bffa30,0x6cbff5b6,0x99c25917,0x4abff42c,0xffbff528,0xb6c25881,0x27bfee10,0x66bfb4c2,0x35c2581d,0x86bfe8d0,0x83bff48d,0x8ac257ea,0x8ec0001d,0x34bfe6b0,0x56c25717,0xb6bfd7bc,0xf9bff3d8,0xa9c2566a,0x31bfc912,0xd6bff35e,0x45c256c0,0xd8bfd0bb,0x9fbfb39c,0xb6c25614,0x37bfdef4,0x73bfe58d,0x9fc255b9,0x3ebfb621,0xe5bff2ca,0x66c25555,0x93bfcb4e,0xc2bfe502,0x72c25659,0x40bfc814,0x9bbfb2fa,0x4bc255f3,0xfcbfbcb0,0x91bfb2fd,0xdfc25404,0x80bf9a8a,0xd8bfe3d3,0xbac25439,0xccbf6fba,0xb1bff125,0xefc253eb,0x23bf478f,0xbcbff0bd,0xe6c255e8,0xc6bfdace,0xfebfa56e,0x1ec25382,0xa3befe6b,0xd8bfefea,0xafc25474,0xc8bfad5c,0x8cbfa442,0xa1c2549a,0xdebf8b86,0x91bfb1ac,0x7c252c5,0xabbf0760,0xecbfe207,0x76c25351,0xdbbe88a6,0x32bfef6d,0x51c2533b,0xa3bd2983,0xe4bfeee7,0x8bc253cd,0xe7bf35e2,0x51bfb08a,0x2ec252f6,0xc2bf2f02,0xcbfa26a,0x48c2533f,0x453e4288,0x67bfee64,0x1ec25279,0x27bc4187,0x55bfe0dd,0x79c25344,0x7fbe3aca,0x9cbfaf33,0x69c25288,0x2bbe5f51,0x53bfa150,0x23c2539b,0x2b3f2868,0x59bfed2f,0x9bc25341,0x953e77ae,0x95bfae29,0x1fc253f7,0xf13f6410,0xb7bfec82,0xe4c25278,0x1f3d3866,0xb7bfa0be,0xa8c25465,0xda3f8c00,0x86bfebe3,0xccc25353,0x233f7e09,0x2dbfde83,0x16c25373,0xb63f04fa,0xd8bfad83,0xaec253c9,0x4e3f9a46,0x8bbfddee,0xeac253ca,0x273f49cc,0x83bfacc0,0x2cc25357,0x7c3f800d,0xbbf9e7e,0xc0c25461,0x753f8b7b,0x90bfabca,0xbcc25639,0x1f3fcf1f,0x93bfea12,0x9c25590,0x9e3fbc4f,0x9ebfaa97,0x80c256eb,0xc33fdf99,0xc8bfe97e,0xbbc254fd,0x653fcb99,0x26bf9cc5,0xa0c256e9,0xf33fdf6b,0x6dbfa992,0x49c2568b,0x6a3ff42d,0xacbf9ba4,0xeac2580f,0xe23ff309,0x44bfe8cb,0x35c25853,0x4f40082a,0xdcbfda90,0xbec25953,0x4000a4,0x9bbfe7e1,0xffc2580f,0x193ff308,0xd4bfa8cb,0xc2c25841,0xa64007c3,0x69bf9a9b,0x93c2593a,0xaa400037,0x36bfa7f0,0x65c25b13,0xb640048a,0x56bfe6d7,0x4c25a2d,0x9240033a,0x24bfa776,0x8fc25b16,0xa140048a,0xaebfa6d8,0x47c25bd5,0xf0400454,0x89bfe650,0xedc25b3f,0x21401099,0x85bfd8cd,0x6dc25bd5,0xa4400454,0xa6bfa650,0x7ec25cf7,0x7b400201,0x36bfe585,0xf2c25b47,0x8a40109a,0x3bbf98c8,0x9ec25d0e,0xf24001b6,0x40bfa577,0xedc25dd9,0x793ffc64,0x45bfe506,0x78c25dd9,0x63ffc60,0xc6bfa50f,0x63c25ec0,0xd73ff10d,0xecbfe46d,0xa0c25ebd,0xe3ff133,0x98bfa46b,0x26c25f99,0x843fe273,0x6bfe3d6,0x2fc25fbe,0xc73fdfc3,0x7bfa3b9,0x54c26040,0x8c3fd457,0xa8bfe364,0xb1c25f19,0x4a400333,0x28bf967c,0xcfc26005,0xf3ff66b,0xdcbf95ed,0x8dc260de,0xea3fe32a,0xa5bfd55c,0xa5c26069,0x603fd016,0x3bfa33e,0x13c26118,0xd63fbc7f,0x13bfa2ab,0x1cc26118,0x6d3fbc7d,0x9abfe2ac,0x60c261b3,0x883fa692,0x9dbfe213,0xb8c261b3,0x343fa691,0x9cbfa213,0x7c26248,0x513f8bb5,0xd0bfe16a,0x29c262b1,0x833f66b2,0xc3bfe0db,0xe2c26248,0x2f3f8bad,0x81bfa16a,0x11c262b1,0xe93f6737,0xa5bfa0d1,0x82c26313,0x573f2702,0x97bfe026,0x4ec26313,0x4e3f270e,0x65bfa026,0xd8c2634d,0x643edc46,0x6fbf9f92,0x3dc2634d,0x4b3edc2c,0xffbfdf92,0x59c26369,0x933e736c,0xb0bfdf19,0xc9c26373,0x493d1d3d,0xdbfdea1,0x7ec2636d,0x92be0590,0x19bfde3b,0x81c2636d,0x29be0504,0x23bf9e3c,0xb8c26434,0x7f3d301f,0x2fbf90bf,0x63c26426,0x8fbe4e99,0xffbfd038,0x63c2633f,0x91bed2ee,0x22bfdd7c,0x33c26340,0x7bed2a4,0x5ebf9d7b,0x8dc262eb,0x2abf2db7,0x28bfdce4,0x9cc262e2,0xecbf33e0,0xb1bf9cbf,0xa5c263b2,0x67bf31d8,0xc6bfcf0e,0x7ac2627f,0xe5bf691d,0x71bf9c26,0xcc26349,0x83bf703b,0x97bfce6d,0xc8c26216,0x29bf8a7c,0xcabfdbb3,0xacc262cf,0x62bf9319,0x5abfcdd8,0xc2c262f9,0xf2bf932f,0x48bf8b5c,0xc260f4,0x87bfb61d,0x26bfda6c,0x13c261a0,0x34bfc27d,0xc1bf8cb9,0xd4c260f6,0xf0bfb5d1,0xb9bf9a6d,0xbbc2619c,0xb7bfc2ef,0x38bfccb4,0xd1c26007,0x8ebfeb3d,0x63bfcb94,0xbfc25efe,0xa4bfe244,0x57bfd91b,0x11c25ef8,0xb9bfe2a6,0x97bf991a,0x17c25f3a,0x45bffe61,0xb4bf887f,0x77c25d2f,0x54bff784,0x42bfd7c6,0xa0c25d2b,0x22bff7a5,0x30bf97c6,0x28c25b51,0x38bffe2b,0x77bfd69f,0x3c25b5b,0x93bffe24,0xc2bf96a7,0x6dc25c64,0x56c00c37,0xabbf86f1,0x15c25b49,0xc3c00b1a,0xb7bfc8b7,0x35c25956,0x2abff624,0xa6bfd554,0x69c25a87,0x5c00cc7,0xb8bf85bf,0x67c25881,0x3cbfee0d,0x97bfd4c1,0x53c25956,0x3bbff623,0x7ebf9554,0xb7c25881,0x55bfee0a,0xadbf94c1,0xdc25838,0x7ec001df,0xc4bf871c,0x29c25789,0xf6bfdfeb,0x49bfd424,0x1bc2578a,0x53bfdff4,0xb4bf9425,0x50c2567c,0x99bfed1b,0x5fbf8363,0xf5c25614,0x57bfc04b,0xddbfd321,0x6cc25609,0x4cbfbf24,0x74bf931a,0x8cc25566,0xc6bfab83,0xabbfd28a,0x95c254fe,0xa1bfc0ba,0xb1bfc4bb,0xa4c2555a,0x4ebfa9e2,0x7bbf927d,0xc1c254d1,0xf6bfc11c,0x33bf8226,0xf2c254b9,0xa4bf90d3,0xeebf91de,0xd7c253c0,0xdbbf8d6a,0x27bfc388,0x5cc25431,0x64bf6b03,0x33bfd124,0xeec25342,0xb0bf5e98,0xe4bfc2e4,0x8bc253cd,0xf0bf35e2,0x9bfd08a,0x76c25383,0x6fbefc51,0x4dbfcff4,0x42c25322,0xeebf6240,0xc8bf805a,0x92c2538b,0xa4bf05cd,0xc6bf9018,0xf5c25342,0xf1be2e13,0xb9bfcf0d,0xcdc252c7,0x29bf27e8,0xbbbf7f96,0x73c25338,0x63db64c,0x6bbfce84,0x7c2527f,0xc9be025d,0xb0bfc11c,0xd1c25338,0xb13db190,0xd2bf8e89,0xd7c2527a,0xbd3e0ba4,0x5abfc08c,0xb7c2534d,0x4a3ea4f0,0x36bfce0a,0x9fc2537f,0xd83f10cb,0x1ebfcd62,0xb0c2534e,0xae3ea792,0x27bf8e0c,0xf5c253cb,0x5d3f4a2e,0x1abfccbf,0x4fc2537f,0xed3f10af,0xf6bf8d61,0xf0c25295,0xe03ecb32,0x3fbf7ff7,0x17c252cb,0xcf3f229b,0x59bfbf6a,0x19c253cf,0x773f4ccb,0x61bf8cbd,0x67c252a4,0x303f1fb6,0x2bf79f3,0x38c263e3,0x4abf29bf,0x26bf8cb4,0xf3c261f2,0x94bfbe00,0xe4bf8a6d,0x27c26140,0xa8bfd387,0xc8bf89e1,0xb3c26067,0xb6bfe87d,0xa6bf894b,0xe7c25d7b,0x59c00917,0xfbf878b,0x48c2589b,0xd3c00689,0x47bf84a4,0x7fc25291,0xf4beeca0,0xafbf7ec1,0xecc2525f,0xcd3e85df,0x42bf7b8f,0xc9c253b0,0x233f9d90,0x5abf76da,0x51c256dd,0xe3fff6a,0x93bf71d8,0x20c257d0,0xf6400743,0x24bf70b7,0xebc25d93,0x2e400e3a,0x97bf69e4,0x61c25ffa,0x4a3ffc6d,0x49bf665d,0x9dc26142,0xa53fded9,0x60bf65f3,0x5dc25ce9,0x76c00115,0xcabf65fa,0xb1c25c73,0x33c00c51,0x13bf65fa,0xb8c252f6,0x663e2775,0xb1bf65fa,0xe6c25270,0x123ec6b1,0x66bf65fa,0x33c25ba0,0x55c00354,0x15bf65fa,0x54c26199,0x663fb800,0xa9bf65fa,0xabc2600a,0x763fe397,0x29bf65fa,0x3ec26247,0x763f9c07,0x97bf65fa,0x13c25eef,0xfc4006f3,0x59bf65fe,0x31c262d1,0x763f7d60,0xaabf65fa,0x46c25e25,0x76400124,0xddbf65fa,0xb5c2525d,0x87be186d,0xa9bf65fa,0x3ec2633c,0x763f3ed0,0x1cbf65fa,0xb1c259fc,0xe4c00ba5,0x55bf65f8,0xfc25d94,0x8f400e48,0xbfbf6600,0x6ec2598c,0x76c0004e,0x25bf65fa,0x2c25288,0x50bedabb,0x82bf65fb,0x74c25325,0x76beced3,0x5dbf65fa,0x74c25ce9,0x76400696,0x85bf65fa,0x14c258eb,0x76c00805,0x4bbf65fa,0xbac25c7e,0x2f4011a2,0x39bf65fb,0xc3c25887,0x76bff746,0x2cbf65fa,0xcfc263af,0x663e7412,0x62bf65fa,0x41c25ba0,0x554008d5,0x52bf65fa,0xa2c25b64,0x664012d0,0x3fbf65fa,0xbc2533c,0x5dbf70b3,0x7ebf65fc,0xffc253db,0x76bf6759,0x44bf65fa,0x75c25671,0xdbfec55,0x33bf65fb,0x96c256a2,0x76bfd895,0x19bf65fa,0x10c259f5,0x66401140,0xbbf65fa,0xb4c26422,0x76bee075,0xc4bf65fa,0xd2c25513,0x66bfacfd,0x5cbf65fa,0x91c26387,0xf100b4d0,0x598cbe28,0x5cf7dc2,0x65fa7640,0x54c849bf,0xc00368c2,0x65fa55bf,0x58a1bcbf,0xc2a67c2,0x65fc2b40,0x63d669bf,0x330a91c2,0x65fa76bf,0x633ca4bf,0x28cef6c2,0x3171000c,0x46c25887,0x3c0124,0x588304f1,0xfca4c257,0xf99c4003,0xe4b6bf65,0x3240c262,0x71002497,0xc2624726,0xc9105a7,0x294bf200,0xe1c256a2,0x763fe396,0xa8bf65fa,0xf7c2620c,0x44bfbae5,0x7cbf65fa,0xc7c255c2,0x663fcdd6,0x11bf65fa,0x6ac2554b,0xf83fdb17,0x68bf65fb,0xbfc260ea,0x66bfc2d3,0x89bf65fa,0xc9c2545a,0xb93fbbc8,0xa4bf65fa,0x3c2600a,0x76bfd896,0xc6bf65fa,0xc8c25465,0xf101f80a,0x6038d504,0xec8d3bc2,0x65fab9bf,0x538a36bf,0x95928ec2,0x4f10054,0xc25f08e8,0xc000ae36,0xbf65fa87,0xc25e25b0,0x90f74635,0x70336200,0xd128c253,0x1cf101f8,0xc252adcb,0x3f28cdb8,0xbf65f890,0xc2556825,0xbfb8488c,0xbf192d99,0xc25fc97b,0xbfdde625,0xbf192daa,0xc254b403,0xc9e50a4,0xcaf27100,0x7d9c25d,0xf1000cfb,0x63a82104,0x6a832cc2,0x192d99be,0x53b5f3bf,0x53de0dc2,0x10f1003c,0xc25c76c0,0xc00272b9,0xbf192d99,0xc25c68b4,0xc0023a26,0xbf192daa,0xc2635ab1,0x3c121fd1,0x3db07100,0x1b7ec253,0x71000c02,0xc25b5670,0x24036d94,0x442a5300,0x302ac25a,0xc50cf500,0xf9c25306,0xaabe6631,0x43bf192d,0x80c252f3,0x99bbfcd6,0x1cbf192d,0x605a36,0x6271a971,0x88dff0c2,0xe9530048,0xe1c258e1,0x2f3009c,0xc261fc64,0xbf9de8b4,0xbf192e30,0xc26144b3,0x5300d8f9,0xc256e364,0x7100d860,0xc26074fc,0x3ccecc60,0x1510f100,0xe3c2563a,0x88bfcec7,0xb8bf192d,0x80c26144,0x993fc34a,0x51bf192d,0x1dc256e3,0xce8e7,0xfc631df4,0xeb14c261,0x2e303fa8,0xe1dabf19,0x4b4c258,0x2daa4003,0x71a1bf19,0xe3d2c262,0x2daa3f93,0x4adbf19,0x1a54c253,0xa83ea1,0xf3cb00f1,0x2d994007,0x4428bf19,0xbb34c25a,0x71003007,0xc2535231,0x30282a35,0x5ab56200,0x218ec263,0x6b71000c,0xa2c25b56,0x2408ee,0xa86a02f3,0x7b0fc263,0x2daa3ea1,0x68b2bf19,0x3c38c25c,0x76c03500,0x6200545c,0xc2543b5f,0x78eb10,0x5dcaf253,0x90fbc2,0x54afee71,0xa8db9cc2,0x3b620060,0x51c25568,0x7100cc4d,0xc25fc97a,0x18e8e853,0x3be97100,0x5932c256,0x71000cda,0xc26074fa,0xcd9cea7,0x29177100,0xab36c253,0x7100787e,0xc2534ca1,0xc158ff7,0x5004f100,0x6ac25356,0xaa3bf34d,0x9dbf192d,0xe7c25338,0x198038d,0x51c45071,0xe5aec5c2,0x5e71000c,0xfec25263,0xcc464,0x1ac504f1,0xea42c252,0xc198bed6,0x8d61be98,0xf7e8c252,0x71000cb5,0xc251c1b3,0xce446b7,0x8b6e7100,0x5200c251,0xf100780b,0x5189a304,0xa5d29c2,0x98c1983f,0x51e5fcbe,0x62a6fc2,0xe971000c,0x7c25242,0x84f9ce,0x631b04f1,0x9fe8c252,0xc1b93ef0,0xbd0abe98,0x9ff5c252,0xf10168cd,0x52ccff04,0xc55d81c2,0x98c1983e,0x5327aabe,0x839e49c2,0x10f1000c,0xc253538f,0x3dd78573,0xbe98c1b9,0xc25352a2,0xbcd5bccb,0xbe98c1b9,0xc2532ec8,0x841c4bd3,0xeb5e7100,0x72b4c252,0x71000c87,0xc252cbec,0xc099d170,0x2d5c7100,0x97f2c253,0x62021ca6,0xc253cd84,0x300622c,0x5453af71,0x9cab60c2,0x95710018,0xd5c2562d,0xcf022,0x375e03f2,0xaacec256,0xc1b9bfeb,0xd513be98,0xae1dc255,0x10f102f4,0xc2560616,0xbffb9f5e,0xbe98c198,0xc255d0a6,0xc002a2ba,0xbe98c198,0xc2532e1a,0x18a709e1,0x7ff57100,0x86ecc253,0x71000ca1,0xc253ff9e,0xc9d389b,0x83de6200,0x2346c254,0xff71000c,0x3cc2551c,0x6ca2a0,0x55048a62,0x304ecac2,0x946b7100,0x4d55c255,0x710018ac,0xc255798e,0x84a99820,0xf1f87100,0xb585c255,0x710018b9,0xc255d953,0x18b5676f,0x28317100,0x532c256,0x710060c7,0xc2564577,0xb4dd876a,0x45117103,0xa81ac256,0x710018da,0xc25696db,0x900a24f2,0xb7786203,0x5c9ac259,0x5f71000c,0x40c25971,0x3d812c1,0x59590371,0x1a0c20c2,0x7d530024,0x55c25d3b,0x3f20018,0xc25d2986,0xc00ff5f9,0xbe98c1b9,0xc25d548b,0x243487,0x562003f2,0xfc5dc25d,0xc112c019,0x56d2be98,0xf594c259,0x5653000c,0xe4c25983,0xa3710030,0x38c259ce,0x3c0887,0x5a371662,0x2cac8ac2,0xa0d37101,0x8041c25a,0x7100ccfe,0xc25ab31c,0xa8fdb14b,0x32b97100,0x7475c25b,0xf200c0fa,0x5b566e03,0xfa3498c2,0x98c176bf,0x5b9e8ebe,0xa42285c2,0xc0d5304,0x3c7cc25c,0xf9bf3500,0x53003c5b,0xc25c75be,0x5300603f,0xc25cf564,0x3500e49e,0x845cde38,0x67687100,0x21afc260,0x710078da,0xc26075ee,0xceb42c4,0xd09c7100,0x57b0c25e,0x7100fc13,0xc2609d22,0x18f8ffb0,0xdc336200,0xa2a1c260,0xc0401f8,0xc1984400,0x24be98,0x98c19844,0xb10048be,0xbe98c198,0xc26068a2,0xccdcc522,0x78a27100,0xe51dc260,0xf1000ccc,0x6096d710,0xc1d94dc2,0x192ddcbf,0x60e43cbf,0xb2cdfbc2,0x192d34bf,0x60a7a2bf,0xbe0325c2,0x32710024,0xa2c26135,0x78a997,0x60f2b471,0xb10d52c2,0x4f10018,0xc2619249,0xbfa288ad,0xbf192ec7,0xc2615524,0x18a6d30f,0xc8cd7100,0xf80ac261,0xf1000c9f,0x62b7a804,0x9d55e7c2,0x192cf1bf,0x624674bf,0x9ce9eec2,0x3f20018,0xc26348d8,0xbfa2f249,0xbf192cbf,0xc262c63c,0x27cd9a1,0x63402b71,0xa2b828c2,0xa1710024,0x86c263ac,0xcab37,0x63af0a71,0xab59bcc2,0x38710084,0x79c26523,0x348e8b1,0x65233971,0xe8b1ffc2,0xf6710348,0x37c26479,0x30798d,0x646e0371,0x801451c2,0xfb710030,0xbec263e9,0x249ebe,0x64656a71,0xcc981cc2,0x3b71000c,0x84c264d7,0xce1f3,0x64bae871,0xde8e82c2,0x4a710054,0x46c26433,0xcbd5b,0x63c4cf71,0x89d40fc2,0x1ef3000c,0xc2636924,0xbdc826ab,0xbf192daa,0xc2637791,0xbe0db941,0xbe98c21e,0xc2635670,0x3d3021d1,0xbf192daa,0xc26356ca,0x3be24357,0x31003055,0x503c254a,0xf610f104,0xdec2635b,0x983dee1c,0x90be98c1,0x1dc26377,0x1e3e65c9,0xbe98c2,0x4bc263ea,0x24cac9,0x63c4d071,0xb5dd2bc2,0x48710450,0x35c26433,0xce963,0x64656371,0xf89ebac2,0xe9710024,0x7bc264ba,0x4b0054b,0x64d73b71,0x6fdfcc2,0x397904d4,0x18c26523,0xc0a5d,0x98c198b1,0x63aca2be,0xb639a4c2,0xa0710030,0xb4c263ac,0x24b639,0x64e39271,0x498fb4c2,0x771000c,0x87c264ec,0x2442a4,0xb7a310f1,0x57f3c262,0x2cf13fa8,0x48dcbf19,0xf499c263,0x2cbf3fad,0x402cbf19,0xba4dc263,0x710024ad,0xc262c63c,0xca8dbbe,0x46747100,0xec0bc262,0xf1000ca7,0x61924b04,0xad8aa8c2,0x192ec73f,0x61c8cebf,0xaafa27c2,0x30710018,0xe9c26135,0x6cb499,0x61552471,0xb1d52cc2,0x4f10018,0xc260e43b,0x3fbdd04a,0xbf192d34,0xc260f2b4,0x18bc0f6f,0x96da9300,0xda90c260,0x88dc3fcc,0x5423102,0x710018c9,0xc26078a2,0xcd7e73a,0x67687100,0x24d1c260,0x710054e5,0xc26068a2,0x18e7c73f,0x75ee7100,0x44e1c260,0x40018f6,0x1804000c,0xeb3103,0x406f002,0x98b9000c,0x33be98c1,0xb8c260dc,0xc0823,0x192daad3,0x5d5622bf,0x1f7d70c2,0x45c1240,0x1fb59a31,0x9d71003c,0xb6c25ed0,0xc18d8,0x5eebbd71,0x183509c2,0x7d71003c,0x4ec25d3b,0x7801842,0x5cf56371,0xfdda5c2,0x5d530024,0x96c25971,0xf50018,0xc2598356,0x401576ea,0xbe98c1b9,0x54595850,0x56ba5300,0x6c63c259,0x29845300,0x24c5c25d,0xde397100,0x84ac25c,0x6200300e,0xc25c75c1,0xa82d73,0x5c0c0971,0x4c13cc2,0xbe710060,0xb8c25bf9,0x840459,0x5b7a2371,0x2bb4dc2,0x3f20084,0xc25b566d,0x40029b5a,0xbe98c176,0xc25b0e4e,0x8401251,0x5aa0cd53,0x3c59c2,0x5ab31953,0x3ccdc2,0x5a371953,0x607bc2,0x59b77653,0xc0cac2,0x59cea353,0x8446c2,0x55d0a253,0x1206cc2,0x5611ed71,0x1e7bcc2,0x5071006c,0x5ec2563f,0x174f1be,0x57dc3953,0x12099c2,0x53644971,0xae1e9bc2,0x888108d0,0xf0c25390,0xac3fabc1,0x53005205,0x8848aec2,0x9a04f102,0xfcc252ff,0xf03fb5fc,0x2ebe98c0,0x45c255d3,0x174082c,0x5624d171,0xfe473dc2,0xa7710030,0x64c25643,0xced1e,0x563c0771,0xdb9c95c2,0xf67101ec,0x6ec25617,0x78cd6b,0x560fa671,0xcb3ec4c2,0x9a710018,0x78c255dd,0x18c15f,0x55954771,0xb76018c2,0x4f10084,0xc255afef,0x3fba5ac4,0xbe98c176,0xc255176a,0x24ad5b4f,0x28c97100,0x64a1c255,0x62003cae,0xc254a5e9,0x2dcd98c,0x5419d171,0xa7e63fc2,0xc3620078,0xb4c253f4,0x7108e871,0xc251ff40,0x3c706738,0xf4fe7100,0x9b3dc251,0x71003c69,0xc25a5829,0x2cfc8e47,0x2504f104,0x2c25d91,0xb93e7aa0,0xcebe98c1,0xacc25d22,0x3ccdbc9,0x59dc2571,0xd62867c2,0xbf710024,0xeec25eeb,0x7a412b3,0x59af2071,0xee3fbcc2,0x19710024,0x18c25976,0x24a208,0x5a449071,0x126c8fc2,0x56710060,0xb9c25941,0x24a71c,0x5c950771,0xba1e4c2,0xf8710018,0x1ec2592b,0x30466b,0x5c10a871,0x1af48cc2,0x19620018,0xecc257c1,0x7102a034,0xc25d1696,0x24b6a6e3,0x89ed7100,0x963ec25c,0x71000cee,0xc25d8a9e,0xc33c793,0xdeb87100,0xdb8cc25b,0x71054008,0xc256b07e,0x9c0aff26,0xf04f100,0x47c25902,0x98bd6ac6,0x51be98c1,0x5cc25db5,0x8e80b54,0x5b817171,0x21ea25c2,0x1571006c,0xcdc258fd,0x18fcb1,0x5b041f71,0xb54b0c2,0xbc710048,0x58c25aef,0x24201a,0xe65904f1,0x278dc259,0xff2abeda,0x7e16bea2,0x2086c259,0xf1000ca7,0x5db2d504,0x5f97abc2,0xa2ff2a3c,0x593148be,0x5239a4c2,0x26710018,0xd6c25d91,0xc228e,0xfd1404f1,0x2b80c258,0xff2abd19,0x22cdbea2,0xc1bec25d,0x710018af,0xc25c789f,0xcf487fd,0xe304f100,0x5ec25bc9,0x2abf0980,0x6cbea2ff,0xd6c25b16,0xc0be2,0x5a63fd71,0xff3797c2,0x4f10024,0xc25ce1f7,0x3efc3526,0xbea2ff2a,0xc25d58ec,0xcb55150,0x20e7100,0xb9d4c259,0x71000c12,0xc25da179,0xc463a19,0x2bf67100,0x3c2ec259,0x72000c8f,0xc2597617,0xcce0efa,0xf603f100,0x909bc259,0xff2a3f06,0xbc3ebea2,0xc572c25a,0x71000c1d,0xc25b966f,0xc21e721,0x48de7100,0xa027c25c,0xf3000c15,0x5cc05726,0xd27222c2,0xa302b4be,0x5d71e8be,0x40c565c2,0xa302f7be,0x5bffcdbe,0xe779c2,0xa2ff09bf,0x5d71ebbe,0x8c6738c2,0xa302f73e,0x5aad0bbe,0x1836c2,0x59ec8162,0x3c708fc2,0x591af300,0xccc25cc0,0xb43efe79,0xf1bea302,0x51c2593a,0x19be40be,0xd2bea303,0x5fc25bff,0x93f16eb,0xfbea2ff,0xc4c25aad,0x3f2000c,0xc2593af3,0x3e8c6973,0xbea30319,0xc259ec83,0x3c7a74,0xf9ff9ff2,0xb59ec25b,0x9f80bed3,0xb491beb9,0xc3d2c25b,0xa06a3f04,0xf848beb9,0x7eccc25a,0xa06abedd,0x9d7bbeb9,0xfbf0c25c,0x9fe43ecf,0x29e2beb9,0x9bdcc25d,0xa0273e4f,0x3d75beb9,0x6057c25d,0xa177bd48,0xca5abeb9,0x840ac25c,0xa006be8d,0xb2ddbeb9,0xbe34c25a,0x9f803eff,0xf5fbeb9,0xf2d4c25a,0xa006bea3,0x82f9beb9,0x11b6c259,0xa049bdef,0x6f66beb9,0x2a91c259,0xa1983e0a,0xe280beb9,0x8c19c259,0xa0063eb9,0xbf7cbeb9,0x7ef6c259,0x9b913e8b,0xa2b5beb9,0x26ddc25c,0x9b913ebc,0xed62beb9,0x7da6c25c,0x29620018,0xbc25a0a,0xf1001828,0x5a0a2704,0x901e8ac2,0xb99b91be,0x5a6b79be,0xb5755cc2,0xb362000c,0x97c25ca2,0xf100181f,0x5c416304,0xe17dd0c2,0xb99b913e,0x5ced60be,0x3eed46c2,0x61620024,0x25c25c41,0x62003076,0xc259bf7a,0x18eaa7,0x1c5204f1,0x3073c25d,0x9bb2bd9b,0xd00ebeb9,0xf6f1c25b,0x62003cf8,0xc2599089,0x182aae,0x5bd00b71,0xcceebfc2,0x10f10048,0xc25b5670,0x3f007c52,0xbeb99b91,0xc25d2c55,0x3d301a7a,0xbeb99bb2,0xc25b566c,0x24d4f00f,0x80876200,0x270fc259,0xd1620018,0x55c25adc,0xf30054f7,0x5d1c5302,0x25a5b9c2,0xb99bb23e,0x5adccebe,0x545bc2,0x59908a62,0x18a89cc2,0x6b7b6200,0x7e99c25a,0x28f100c0,0xc25d3133,0x3d3021d1,0xbecae4b0,0xc25d2105,0x3e26e936,0xbecae4b0,0xc25cf491,0x3e89d8e8,0xbec99e0e,0xc25ca50c,0x3ebdd6bf,0xbec95cc8,0xc25c43d1,0x24e398a6,0xd1507100,0x4fc6c25b,0xf2000cfb,0x5b566f0f,0x1b34ac2,0xcae4b03f,0x5adccabe,0xfb74dec2,0xcacb213e,0x5a690cbe,0x30990bc2,0x6c86200,0x5369c25a,0x2f30048,0xc259b85f,0x3e894a2c,0xbec98a65,0xc2598bd7,0x350078bc,0x90597ba9,0x199ff200,0x3cc25b00,0xff3e72d8,0xc6bea991,0xe0c25afb,0xea3dcdbb,0xb9bea23c,0x56c25a06,0xb0be91d7,0x4cbecae4,0xbec259b8,0xebe3ba2,0x5abec99e,0xac25b12,0xb73eaf9d,0xebeb408,0xffc25b90,0x2b3e8176,0x6ebea9d9,0x48c25b56,0x6bbdeafc,0xd7bea5d2,0x2dc2598b,0xb0bd9db2,0x95becae4,0x1cc25b12,0x3ebd4eef,0xdbea321,0xdac25a69,0xb0beb790,0xffbecae4,0xe7c25ae1,0xb6becfc7,0x1bbeca48,0xec25b47,0x643cb22d,0x71bea03e,0x20c25b56,0xb0bed75e,0xf3becae4,0x81c25bcb,0x1cbecfea,0xd2beca5c,0xefc25c43,0x62003c8f,0xc25ca625,0x9cd66b,0x5cf47fb1,0x3a7e74c2,0xc98a87be,0x1422015c,0xf10078b0,0x9c8a62ff,0x5708c25b,0xb6073e00,0x35cebea2,0xddc2c25c,0xf4cfbe79,0xafbbbeba,0xdd90c25b,0x4074bc85,0x6e28bea2,0xc8dec25e,0x5a4bbfea,0x3a7ebff9,0x2410c25d,0x63dcbff7,0xd712bff9,0x105ac25b,0x65a1bffe,0x788ebff9,0xc3a8c25a,0x665abffc,0x28bff9,0x1b54c256,0xe504bfa8,0x4eb9c00f,0xb828c25e,0xe504bfda,0xd04cc00f,0x2fb6c262,0xe504bea0,0xa716c00f,0xe001c254,0xe504bf5c,0xe5cfc00f,0x5e42c25b,0xe504bfed,0x3ca8c00f,0xb8dc254,0xe504bf23,0x7826c00f,0xc4cac262,0xe504bf1d,0xa2dfc00f,0xc6dec25a,0xe504bfec,0xe2cbc00f,0xda83c253,0xe504beaf,0x106fc00f,0xe38fc262,0xe504bf57,0x6da9c00f,0x3d81c259,0xe504bfe6,0xead5c00f,0xcb36c260,0xe504bf9f,0x51bc00f,0x7aa7c260,0xe504bfba,0x2960c00f,0x1722c257,0xe504bfc6,0x8543c00f,0x46e5c258,0xe504bfd9,0x2788c00f,0xb8f5c262,0xe5043f53,0x5791c00f,0x3d14c255,0xe5043f96,0xee7dc00f,0xde0dc256,0xe5043fc7,0x9366c00f,0x356ec262,0xe5043f0b,0x932ac00f,0xd80c254,0xe5043f5c,0xeed2c00f,0x953ac259,0xe504bfe6,0xa75ec00f,0xbc99c258,0xe5043fe5,0x114dc00f,0x992dc254,0xe5043f03,0x9769c00f,0x764c259,0x9c3fef,0xc262d361,0x2839806f,0xb204f12f,0x83c25b22,0x4bfea86,0xb2c00fe5,0xf3c253dd,0x185d3b,0x8a2a10f1,0x88a9c25b,0xe5043ff5,0xcf29c00f,0x2bd4c262,0xe504be05,0xbe08c00f,0x975fc25c,0x710018f1,0xc253f103,0x188bf0dc,0x15717100,0x54fc25d,0x710048e4,0xc262a7a8,0x18beb096,0x4cab7100,0x490ec262,0x71001829,0xc25e279a,0x3ce448f9,0xe9bf7100,0x99d4c25e,0x710018cd,0xc25ff549,0xcb7f538,0xa11e7100,0x1c2ac254,0x71000c4d,0xc2610642,0xc977870,0x435e7100,0x241cc25f,0x71003cd2,0xc2556ac2,0x188e5b3a,0x3e367100,0x7c2dc260,0x710018bb,0xc2566ea9,0x18b07a85,0x1c437100,0xe6e2c261,0x7100189e,0xc257697e,0x18c72208,0xfffff100,0x558460ca,0x9209e5c2,0xfbef5bbf,0x5d7a73bf,0xe0a266c2,0xfbf089bf,0x547ce0bf,0x390d4ac2,0xfbf02cbf,0x62d697bf,0xc5668cc2,0xfbfcd23d,0x5c84d3bf,0xe79e7cc2,0xfbf117bf,0x62cdc6bf,0x140ee0c2,0xfbef85be,0x5b8d0fbf,0xea848cc2,0xfbfc65bf,0x53ed75bf,0x8131a9c2,0xfbf184be,0x625a63bf,0x1f66c7c2,0xfbeef6bf,0x599dbbbf,0xe436a8c2,0xfbeee5bf,0x61f1b3bf,0x58b567c2,0xfbeeddbf,0x57c78bbf,0xcde775c2,0xfbeeaabf,0x60cb4fbf,0x9f52f4c2,0xfbef0fbf,0x56f208bf,0xbd2ef9c2,0xfbeed4bf,0x562fdfbf,0xa91d1dc2,0xfbeefebf,0x5f4558bf,0xc6fb8fc2,0xfbefa6bf,0x61287fbf,0x9d0b6bc2,0xfbef5b3f,0x593267bf,0xeba483c2,0xfbf0913f,0x584636bf,0xe0b381c2,0xfbf0023f,0x622ffdbf,0x4f110ec2,0xfbf03d3f,0x5a2807bf,0xf2a099c2,0xfbf1173f,0x53df16bf,0x6c22eec2,0xfbef7c3e,0x628785bf,0x14050cc2,0xfbf0c33f,0x5b1fccbf,0xf586a9c2,0xfbfc653f,0x5408b4bf,0xf262ccc2,0xfbef313e,0x62bf66bf,0xad3a82c2,0xfbf16b3e,0x5d0f1fbf,0xef38cec2,0xfbeedd3f,0x54bb28bf,0x6eb94ec2,0xfbeee53f,0x5540f1bf,0x920e30c2,0xfbeee53f,0x5ee54ebf,0xd8e9bcc2,0xfbeebb3f,0x5fbaddbf,0xc8302bc2,0xfbeecc3f,0x569a15bf,0xbfc2c2c2,0xfbef4a3f,0x607d03bf,0xb41e93c2,0xfbeefe3f,0x540c69bf,0xbc3cc0c2,0xf8bfec3e,0x53f475bf,0x2d4c77c2,0xf8c0053e,0x5ca2dabf,0xeec20dc2,0xf8bf873f,0x5bd7b2bf,0xf1c07fc2,0xf8bfa13f,0x53efe2bf,0x58a97ac2,0xf8b49ebc,0x62a32bbf,0xb48861c2,0xf8bda13e,0x5a1961bf,0xef18e3c2,0xf8bd4d3f,0x6266c8bf,0x18fca4c2,0xf8bd773f,0x6208e0bf,0x55146ec2,0xf8bd773f,0x582e25bf,0xdbcfa2c2,0xf8bd4d3f,0x618b36bf,0x86b570c2,0xf8bd6f3f,0x574ccdbf,0xcc1a82c2,0xf8bd5e3f,0x60f014bf,0xa07cd0c2,0xf8bd983f,0x567e98bf,0xb8b6d8c2,0xf8bd903f,0x55c75cbf,0xa200dac2,0xf8bdd33f,0x5f6d75bf,0xcb0058c2,0xf8be1f3f,0x552a76bf,0x88624ec2,0xf8be383f,0x54aad8bf,0x58aadac2,0xf8beb63f,0x544ae5bf,0x1cbe2fc2,0xf8bf4d3f,0x5d9d6bbf,0xe6f1dcc2,0xf8bef93f,0x581e11bf,0xdad8e4c2,0xf533ec3f,0x60e370bf,0xa24aaec2,0xf533ec3f,0x61a2f3bf,0x827486c2,0xf533ec3f,0x53f7d5bf,0x626916c2,0xf533ec3e,0x53f092bf,0x9a24c2,0xf533ecbd,0x5a0913bf,0xeebc94c2,0xf533ec3f,0x62356dbf,0x3b82a1c2,0xf533ec3f,0x542f3fbf,0x70e0bc2,0x9071003c,0x4c26276,0xc0aca,0xa04904f1,0xac2ac262,0x33ec3ebc,0x48a9bff5,0xb74ec25c,0x710018f0,0xc2548cdc,0xc47aeab,0xdcb37100,0xbec6c254,0x71000c70,0xc25d88e0,0xce7c201,0x69427100,0x846fc255,0x71000c93,0xc2561218,0xcac04ea,0x5c5b7100,0x664dc25f,0x71000ccc,0xc256d403,0xcc16a40,0x7e1b7100,0xd406c257,0xf1000ccf,0x5ef18828,0xc96da0c2,0xf8bd45bf,0x5e8ed2bf,0xcfd649c2,0xf533ecbf,0x55bcc8bf,0x957ac4c2,0xf8bd88bf,0x5e0823bf,0xd72ef1c2,0xf8bd34bf,0x5d65edbf,0xde4c38c2,0xd6710024,0x96c2552b,0xc7b43,0xb40e28f1,0x2624c262,0xcb96be18,0x21a2bff8,0x65aac255,0xbd66bf77,0x11f3bff8,0xd949c25d,0xbd3cbfe0,0xb38abff8,0xbb7bc262,0x33ecbe15,0xa3f7bff5,0xe1bc254,0xf100243f,0x5c138904,0xe63ec0c2,0xf8bd4dbf,0x5be819bf,0xe6f2d8c2,0x19710054,0x33c25446,0x8402fd,0x544b5771,0x71151c2,0x4f10018,0xc25b0f33,0xbfe74203,0xbff8b429,0xc2624f72,0x181395c4,0x110ff200,0x26c26236,0xd7bf2519,0xb5bff8be,0xd7c25409,0x98be8888,0x3bff8bd,0x50c25aa0,0x71005452,0xc2620afe,0x303dea68,0xfc04f100,0xc6c25a09,0x7fbfe3bf,0xd4bff8bf,0x3ac259a0,0x18e105,0xc60910f1,0x3db0c261,0xbe59bf5f,0xf74bff8,0xefd8c259,0xbee8bfdb,0x204abff8,0x9564c261,0x7100248e,0xc258a9c7,0xcd76cad,0x6f10f100,0xac26137,0xfdbf8a85,0xc5bff8bd,0x5ac2581f,0x6abfcff1,0x7dbff8be,0x9ac257bf,0x24c9b6,0x8cff04f1,0xbce8c260,0xbda9bfa2,0x3cb4bff8,0x2004c260,0xf10018ac,0x573f6604,0xbffe2ac2,0xf8be0ebf,0x56e653bf,0xb82492c2,0xd7710018,0x17c25fc9,0x120b7d6,0x5f6f8471,0xbfd218c2,0x4f10018,0xc2567276,0xbfac61d8,0xbff8bdba,0xc256496e,0x18a78f71,0x5193f200,0xadc260e0,0x59be00f6,0x9fbff534,0x3dc25c35,0xdbbfab0c,0xf8bff533,0x4c25d6f,0xb5bfa03b,0x4abff534,0xffc26069,0x48bf0991,0x19bff534,0x91c2578d,0x723f889a,0x81bff534,0xc2c256f8,0x7a3f694e,0x59bff534,0x77c2583a,0x263f99be,0x2fbff534,0xbbc25f48,0xb9bf7209,0x4fbff533,0xebc25606,0x163ef28d,0x9bff534,0xe9c25a77,0x163fb60c,0xa7bff534,0x1ec255c4,0xc63e22c0,0x2bbff534,0x9bc25ca2,0x8f3fb355,0x50bff533,0x40c25606,0x16bec686,0x75bff534,0x94c25e72,0xf10054bf,0x56f88204,0x534acbc2,0xf5347abf,0x5fb45abf,0x694ed3c2,0xfff20084,0xffffffff,0x3a6151ff,0xbd01c258,0x342fbf8e,0xa687bff5,0x9564c260,0x340d3ef2,0xaafbff5,0x5376c25a,0x33a0bfa8,0xe833bff5,0xc519c260,0x34bd3e22,0xc83abff5,0x724bc25c,0x76e63fa0,0x18afc007,0xd2edc25d,0x429e3f96,0x3b63c00a,0xb103c25c,0x429e3f9e,0x4e24c00a,0x3d19c25c,0xfaf43fab,0xeb11c002,0x2ebc25d,0xd6ed3e96,0x9054c010,0x3ac1c25d,0x803d3e4e,0x9b7dc00f,0x20e2c25d,0x8a33bd81,0x4e61c00f,0x3b1dc25e,0xd2d03f38,0x8a96c010,0xd82cc25d,0x24923f6e,0xa0d4c010,0x5c9c25e,0xa52f3f4b,0xfeb7c00e,0xfb05c25d,0xd1203f77,0x9e41c00d,0x5b46c25e,0x429e3f71,0xa626c00a,0x4df9c25d,0x74603f95,0x6a86c007,0x1b7ac25d,0xb24a3f8b,0x1c64c00c,0xdc44c25e,0xfaf43f94,0x566ec002,0xf5bec25b,0x959e3faf,0x8bdbc001,0x3361c25e,0x90f7bd00,0x670dc011,0xfaecc25b,0x86a9bc85,0x15dcc006,0x771dc25f,0x24963f02,0x4f50c010,0x9dfec25f,0x9e773f09,0x3944c00e,0xda88c25f,0x429e3f46,0x6f77c00a,0x43a6c25e,0x74643f85,0xedec007,0x3d25c25e,0xd6edbdac,0xb6fdc010,0x8a98c25f,0xa5333e7d,0x4d80c00e,0x28e5c25f,0xb24a3f28,0xb265c00c,0xf41bc25f,0x429e3f15,0x1dc8c00a,0xbe1bc25f,0x74753f61,0x8ac0c007,0x3d4fc25f,0xfaf43f56,0x81b0c002,0xefc25f,0x248d3e0f,0xafbac010,0xb489c25f,0xb24a3eed,0x585c00c,0xa47fc260,0x429e3ec0,0xab24c00a,0xa650c25f,0x74753f31,0xbaadc007,0xd745c25c,0x8a33bed5,0x566dc00f,0x9696c25b,0x80d4bdd1,0x566ec007,0x2b41c25b,0x40f63d30,0xa6f4c006,0x972dc25f,0x5b8ebdad,0x12c0c00f,0xc2cac260,0x745c3ef7,0x67bcc007,0x9e3dc260,0xfaf43ece,0xa049c002,0x7553c25f,0xd131beaf,0x2fd2c00d,0xdf01c260,0x429ebd8d,0x5112c00a,0x8777c260,0x74583e84,0x957cc007,0x900cc260,0xfaf43e28,0xebebc002,0x5122c25b,0x8d2abf04,0x15eac00f,0xd7bfc25f,0x2492bed8,0x58ec010,0x8b87c260,0x429ebe94,0x63f9c00a,0x750cc260,0x74823cd8,0x9580c007,0xb45bc260,0xfaf4bda0,0x7a7bc002,0xe7d5c25c,0xd5fabf16,0x566cc010,0xef95c25b,0xfe5dbfa1,0x573ac003,0x9952c25b,0x4f613e32,0xb274c007,0xd04ac25f,0x429ebeff,0x4ad7c00a,0x5397c260,0x745cbe52,0x14f5c007,0x2b3dc25d,0x1349bf55,0x573c011,0x6b16c25e,0xa52bbf58,0x3958c00e,0xcf6cc25f,0x429abf30,0x680c00a,0x89b5c260,0x7454bedb,0xddec007,0x48f5c260,0xfaf4bf0b,0x1ffdc002,0x3355c25b,0xbababf0b,0x8ab1c00f,0xcff2c25d,0x2492bf58,0xc8cac010,0x130ac25e,0xb24abf3e,0x9e5ac00c,0x5148c25e,0x429abf5b,0x9948c00a,0xd7d8c25f,0x7475bf22,0x51c7c007,0x6541c25c,0xee52bf6c,0x3272c010,0x5016c25c,0x7fb73f14,0x566ec00f,0x4bdcc25b,0xb1853f36,0x85ffc010,0xef07c25c,0xa7e7bf83,0xe6c2c00e,0xfb0dc25d,0x429abf7d,0x6efc00a,0xfeb9c25f,0x744fbf51,0xe326c007,0x2ec3c25e,0xfaf0bf6e,0x6aa2c002,0x1787c25d,0xb24abf80,0x546bc00c,0x9e95c25e,0x744bbf79,0x9d2ec007,0xa9ec25c,0xb24abf8a,0x87cbc00c,0x2f62c25d,0x7469bf8c,0x3db2c007,0xb63dc25d,0xfaf0bf97,0x4e49c002,0x3a19c25c,0xfaf0bfa0,0x63dbc002,0xf228c25b,0x7bcc3dc4,0x270fc006,0x1737c25c,0x9e773f91,0x566ec00e,0x205cc25b,0x93713f9b,0x566ec00c,0x197ec25b,0xbf90bf8c,0x566ec00d,0x9510c25b,0x2731bf96,0x566ec00a,0x2f0ec25b,0xf1ed3fa6,0x895bc007,0x671bc25b,0xa4db3e43,0x4aedc007,0xb9aac25c,0xdcbe3f30,0xb3cc010,0x275fc25d,0x8a2f3edd,0xbd6bc00f,0x7492c25c,0x4ae43f89,0x722ec00f,0xb813c258,0x1349bf1d,0x5a61c011,0x1e26c259,0xa52fbf74,0xc632c00e,0xfea8c258,0x429ebf7d,0x9427c00a,0xd07dc259,0x429ebf8b,0xe49ac00a,0x6ffcc259,0x76debf95,0xfc6c007,0xb80c25a,0xb24fbf8a,0x7171c00c,0xaeb4c25a,0x429ebf93,0x5eafc00a,0x3ac1c25a,0xfaf4bfa0,0xd870c002,0xd8cbc258,0xd06cbe88,0x240bc010,0xf5e0c258,0x9060bdd9,0x86dc011,0x9f7bc259,0x8041bc2a,0x86fac00f,0x3366c258,0xb24fbf63,0xe96c00c,0x5600c258,0x429ebf5b,0x6b0c00a,0x4ba9c259,0x744fbf8a,0x9072c007,0xd9a1c258,0xfaf4bf89,0x456dc002,0x4014c25b,0x86ba3dd1,0x3d61c006,0x82bfc258,0x744fbf74,0x9dfec007,0x31d7c258,0xd6ed3e2e,0xf5ddc010,0x7d5bc256,0xa522be25,0xfa75c00e,0xdd44c256,0x429ebeff,0x8f12c00a,0xb97cc257,0x7475bf4b,0x2219c007,0x37c5c257,0xfaf4bf40,0x928dc002,0x26a6c258,0x90603ef1,0xa194c011,0x20d1c259,0x8a2f3edd,0xfd21c00f,0xa9b9c256,0xb24fbec1,0x1b4c00c,0xa094c257,0x7471bf1b,0xb054c007,0xeea6c257,0x13493eca,0xf5dbc011,0x755cc256,0xa5333e7d,0x7d0dc00e,0x1a3fc256,0x429ebd8e,0x9a1ac00a,0xba13c256,0x7443becb,0x451fc007,0x9329c256,0xfaf4bea2,0x7a5dc002,0x4ee8c25a,0x7fb73f14,0xac7cc00f,0xf089c256,0xb24f3d2f,0x5bc9c00c,0xf6f1c256,0x746dbe30,0xa74fc007,0x95afc256,0x429e3ec0,0x48e2c00a,0xc41c256,0x74713d74,0x175dc007,0x6f48c256,0xfaf43e28,0x2489c002,0x7ef6c25a,0xdb2b3f2b,0xbf6c010,0x132c258,0xa52b3f4b,0xfd18c00e,0xa683c256,0xb24f3eed,0xfa69c00c,0xed07c256,0x429e3f15,0x6205c00a,0x32c6c256,0x74643e95,0x4517c007,0x8e1dc256,0xfaf43ece,0xa65ac002,0xc86dc256,0x74473f03,0x222ac007,0xd3c8c259,0x24963f6e,0x5a49c010,0xfd8c259,0xa52b3f85,0xe83c00e,0x55d6c258,0x57f205a0,0xc2571397,0x3f38dca9,0xc007748e,0xc2572208,0x3f56366d,0xc002faf4,0xc25a533f,0x3f80bdb2,0xc010f438,0xc25886e6,0x3f7933d3,0xc00cb24a,0xc257a5ee,0x3f6802f3,0xc007745c,0xc2585877,0x3f87d1b3,0xc0077471,0xc258905a,0x3f94d9e8,0xc002faf4,0xc25a0fae,0x3f950cc3,0xc00cb24a,0xc25a7157,0x678b03a,0x250f04f1,0x3190c259,0x74543f97,0x6f2bc007,0xb863c259,0xf2006ca2,0x5a05b103,0xa1a9a8c2,0x771433f,0x5a5e94c0,0x9c3c36c2,0x2327f206,0x65c25b49,0xd9bc2800,0xc6c0067b,0xe8c25a85,0x77bf8614,0x68c00e9e,0x82c25b2c,0xa9be258b,0xfdc008a1,0x53c25a4e,0x2fbef291,0x6cc00f8a,0x25c25a32,0xf104c8e9,0x5960bc14,0x1b191ec2,0x119064bf,0xfd9018c0,0xbf7ceec1,0xafa9f4bc,0xc3f67ebf,0xd03327c1,0xadccd93f,0xfff2000c,0xe7effff,0x5bfd62f,0x45bfb187,0x7cc24558,0xf440640a,0x58c13285,0x89c24568,0x2cc06924,0x66c132df,0x8bc24104,0xca4035aa,0x13c16b6c,0xfcc24100,0xd5c033c7,0x6bc16bad,0x61c23d5e,0xf6c04519,0xf2c16bb2,0x3c243cc,0x70408e5f,0x34c14298,0xe8c23ab3,0x80407bd8,0x46c156f0,0xcec25af8,0x82408941,0xc6c15fb3,0xd5c25aa5,0xf2407f75,0xc5c1422d,0x70c23c12,0xd84007d0,0x74c13cae,0xdc24555,0x543f6d17,0xd0c16a63,0xf5c25603,0x9e404c2a,0x2c13aaf,0x79c255d4,0x84408f85,0x50c15079,0x7c2556f,0xfa408599,0xa3c1520a,0xdac2421f,0xb6401858,0xa6c13c9b,0xd6c241ff,0x14402ec5,0xcbc13fa5,0x16c2422e,0x6e3fcfa4,0xb3c13dbe,0xb2c23b43,0x4407566,0x8fc14017,0x33c24039,0x4440646f,0xc9c13f8c,0x3ac241a7,0xc408449,0x2dc13f3c,0x46c23ce0,0x863f6d7a,0xc0c16cf1,0xe3c25544,0x60404ec5,0x3fc157d1,0x54c24ec8,0x4e404fc3,0x2bc1591d,0xb0c24e9a,0xac04901,0xe8c15b84,0x91c25567,0xcec05109,0x2dc157b8,0x34c25a41,0x8c03dba,0x92c15500,0x73c23c3a,0x12c009f5,0xdec13f30,0x4bc24221,0x7cc01892,0x48c13e66,0xaec24223,0x60c03b47,0xfbc13e16,0x83c23fc5,0x54c06368,0x2dc14003,0x11c23c16,0xbac0281b,0xaec13d31,0x66c23b51,0x92c07485,0xb8c1408c,0x1c25b0b,0x22406332,0xe9c16b68,0xa5c23d83,0x4e406cd9,0x62c166e9,0xa0c23bfc,0x3c408a62,0xebc156ae,0xaec25ac8,0x32c079d9,0xc1c141e5,0xeec25b06,0x8ac08315,0x75c1683f,0xd2c25b19,0x78c08535,0xb0c1403e,0x30c25b21,0xee40821e,0x3cc13dd5,0xf7c25a3f,0x48403f03,0x77c1539e,0x63c2465e,0xeabf6c97,0x2cc16ad4,0x3ac24dd4,0x18403deb,0xd0c13c70,0xccc24640,0xb44081d1,0xfac145be,0x9ec24685,0x32405e41,0x15c14047,0xec24838,0x6ebf93a0,0x21c14010,0x53c247dd,0x38bf9720,0xe5c14083,0xe4c255c4,0x96c03c6a,0xc4c13d48,0x4c255f1,0xb2c08f54,0xffc14f25,0x6c2555f,0x88c0852a,0x2cc152b6,0x6fc23daa,0xb0c0853c,0xb0c1596c,0xa8c247fc,0xd8407a51,0x69c14416,0xb4c2481d,0x54404203,0xe6c1454f,0xffc23c6e,0x40404823,0x1fc16c1f,0xbec242e1,0x2bf75f5,0x84c16bd2,0xb1c24005,0x1ebf8133,0xcec16d9c,0x92c23ffc,0xc8bf885e,0x65c168b6,0xf1c23cdb,0x56bf64f2,0x40c16acf,0xfcc23cf3,0xeabf696f,0x24c16bb0,0x75c23d9d,0xbcbf3f75,0xd2c16d7a,0x5cc23d5f,0xaebf5a3a,0xd9c168d3,0x39c2420e,0xfabfb461,0x36c1405f,0x75c23c8e,0x7abf1ee6,0xd4c14043,0x2ec23bfe,0x4ebf1ee3,0x4ec13d7e,0xe9c24211,0xb2bfcf7d,0xc7c13cd0,0xe3c23c37,0x3ebfc88d,0xf2c13dd5,0x44c23bfe,0xfabf946a,0xbfc13e31,0xeac23c00,0xcd3eae5b,0x4c13e32,0xe0c23c3c,0x36bd88a1,0x3fc13dfd,0x9ac2554f,0xd6c04ecc,0x7cc150da,0x5c2469e,0xccbf9353,0x7cc16894,0x5ac2469e,0xccc00782,0x48c16894,0x9dc2446b,0xcc01d7f,0x25c168c9,0xeec243d3,0x69bf8ad0,0x3ec168ad,0x45c243d4,0x423f8e47,0x48c16886,0x94c2446b,0xb0401f4c,0x62003c7a,0x40094de0,0xc5152,0xfffffff5,0xa46e98ff,0x791e3f96,0x3815c168,0xf855c248,0x8f8c3f95,0xfd14c168,0x810fc247,0xaf84008,0x28c168,0x16c6c248,0x5140c001,0xe810c168,0x4ce4c23e,0x31903f8d,0x9bd6c168,0xbacbc23d,0x90b23f47,0x239ac168,0x7a4ac240,0x3dd03f94,0xe37fc168,0x615fc245,0x7fb2c04a,0x637bc13d,0x3190c23a,0x4da64080,0x807fc166,0xe0a2c245,0x1572c086,0x40d0c153,0x7462c246,0x3ef4c081,0xf958c146,0x1cc9c245,0x35e8c082,0xb621c148,0x8169c247,0x12a0c082,0x79c9c149,0x34bc23d,0x7666c06a,0x44bc167,0xa444c241,0x87e83f84,0xcbe1c16c,0x4fb9c240,0x1c004020,0xbe82c168,0xa93fc24e,0x2be3404b,0xf918c14e,0x9579c23f,0x7c243f89,0xf068c16d,0x51bdc23f,0x56c23fa1,0xba15c168,0xeb0bc245,0x2c843f72,0x1785c13f,0xe593c248,0x82b43f9e,0xababc167,0xd3c3c247,0x8454c05d,0x665c166,0x5326c248,0xe2bec072,0xfeb2c159,0x650ec247,0x76cac007,0xf7dc140,0x6517c248,0x8404c036,0x5521c147,0x8ccac255,0xb3914050,0x9a7ac150,0xa0a1c23c,0x29643f90,0xfed4c140,0x1c19c23b,0x66903f61,0x46ec13d,0x9581c23c,0x13b43fb3,0xf068c13e,0xbf90c23f,0x84ecbf9c,0xcabec168,0xf816c240,0x633ec01e,0x239ac168,0xe569c240,0x6216bf90,0x4a62c168,0xada7c23b,0xcade4046,0x339c167,0xd667c248,0xeb3a404d,0xd560c15c,0x3cdc23a,0xb604c04d,0xa32fc16a,0x9a63c23a,0x761cc07b,0x6313c157,0xe88ac23a,0xa53ec07f,0x7f76c166,0xe645c23d,0x354084,0x72b7c158,0x4cecc23b,0x6bb4408a,0xb9e4c132,0x8b28c23f,0x5e184086,0xc55bc135,0xb5a2c23b,0x8b50c08a,0x67c1c157,0x19a2c23b,0x1e74c08a,0xca9fc133,0x23b3c24d,0xb006c041,0xc822c13c,0xe07ac254,0xd3a4402b,0xf451c13f,0x172bc246,0xc649404f,0x5498c13f,0x445bc245,0x38be404b,0xf72cc13d,0xa872c247,0x1f383f95,0x84f2c140,0xd4e1c246,0x1e28c04e,0xe915c140,0x531ac24d,0xab76408f,0x9a3ec14e,0x4730c245,0x9a10407c,0xa37cc13c,0x47cbc245,0x222e408b,0x4590c152,0xe1f8c254,0x8818408b,0x486ec132,0xcfecc254,0x127ac08b,0x61acc133,0x97e1c24f,0xfdecc088,0xac7c132,0xcb3ac246,0x8c064050,0xfae0c13b,0x202c242,0x2fb6c081,0xba84c13f,0xb9c3c23f,0xda1cc08d,0xb62bc135,0xcb8ec243,0x490cc085,0x43cc143,0x3f25c24e,0xb1c6c085,0xf0a6c152,0xe680c24d,0x9c58c08e,0xce05c14f,0xdc98c23f,0x73f84076,0xd477c13a,0x717cc245,0x2aec08f,0x982fc152,0x96bcc245,0x386c07a,0xa82c13d,0xcb2ec24e,0xf8f44085,0x607c151,0x999ec240,0xd754c071,0xfc07c130,0x22ec23e,0x5990c081,0xcb0bc140,0x370dc24e,0x53bec04e,0xabc5c14f,0xdcecc247,0x74a84058,0xc85bc166,0x55acc245,0x1cc64087,0x44e4c153,0xb075c23d,0x8ff4bf9a,0x3d93c168,0xcac1c247,0xb7ec05d,0x5b4fc141,0xac2ac24f,0x76224088,0x23b8c132,0xea89c246,0x2d7a4066,0xa7ac13f,0x3335c246,0x48ee4082,0x23dac147,0x4cf0c246,0xcf50c05d,0x239ac140,0xe6c1c246,0x8ffcc049,0xafcbc140,0xcd8ec24d,0xcd243f46,0xbab1c15d,0xedf6c24d,0xb4183f44,0x239ac15d,0x7caac246,0x28ba404a,0x23dac140,0xdd0ec246,0x61b6405d,0x9e43c140,0xdd6ac24d,0x6f12bfc6,0xb5ffc14b,0x2f6fc24d,0x840bf41,0x9c4cc14b,0x68e8c24d,0xa1fe3f49,0xa2b3c14a,0x9e38c24d,0x89a43fc7,0x9bcdc14a,0xa72fc24d,0x90a03fc6,0x43b0c14a,0xf67bc24c,0x9b363fc6,0x9b89c14a,0x9e73c24d,0x9ec23f49,0x9ad7c14a,0x73dec24d,0xeb1ebf44,0x5c14c14a,0x2f1bc24d,0x18863f55,0xeae1c15e,0x239ac211,0x7bfac0f2,0x6ae1c147,0x29c7c210,0x5d44c0f2,0x58d4c144,0xa1a5c1dd,0xf5564006,0x58d4c144,0x9d17c1de,0xc7d04046,0x58d4c143,0xaa58c1db,0x20e44046,0x2e94c147,0x2e34c118,0x4e48c069,0x54f8c151,0x9507c0fc,0x54b4c081,0x54f8c151,0x6680c0fc,0x14f6c069,0x2e94c143,0xb12dc118,0x1b62c081,0xda21c143,0x16d340c4,0x8af2c09b,0x2fdec144,0x440048ff,0xc20117ef,0xef440060,0x78c20097,0x4913f200,0x67c22bfc,0x2a406ad1,0x49c146a1,0xaac22bfc,0x503f88d6,0x77c146ca,0xd74150d3,0xc640a896,0x62002404,0xbf7ef588,0x24eb00,0x237904f1,0x1428c066,0x100c147,0x3a79c09d,0xb8444060,0xc4000c44,0x40403a86,0xc144c02e,0xc1f158d4,0x20f10060,0xc1dcc978,0x409b50a9,0xc144c9ce,0xc1ddfcaa,0x408821e8,0xc1470eb0,0x3fe05615,0x40cce9db,0xc1448a5c,0x3f40ac2a,0x40d4e879,0xc43d4ea,0xeb40b700,0x3fd040c4,0x17efc145,0x2400b409,0xccc207,0x445807f2,0xa387c1f5,0xe0ce4059,0x4458c144,0xa08cc1fd,0x1e624069,0x33f2000c,0x4049a683,0xc145a338,0xc1a52fde,0xc0d7dfa2,0xc1469f1e,0xc1a22fde,0xc0d7e643,0xc1434606,0x4114fc6d,0xbfc48ece,0xc14848e2,0x40ec8835,0xbfc4a3e8,0xc1459e38,0xc211c1eb,0xc042f755,0xc46da,0xf74408f7,0x4ec4c062,0x8c06c145,0x8f6dc1a1,0xa5a3f46,0x8c06c145,0xf1000ca5,0x73c1a312,0x863fe347,0x7ac144fa,0xfbc1a4f4,0x74bfb0b2,0xfcc1512a,0xadc1a1b4,0x30c04069,0x185144,0xa1f515f4,0xae0c040,0xb4fec143,0x2389c1a1,0xf124bfb1,0x9644c142,0xbd81c187,0xf45840cb,0x58d4c160,0xd8c1ef,0x97ef18f5,0x794dc216,0x8e18c0b5,0x97efc146,0x7fe7c216,0x3af2c0c1,0xfe55c143,0x1b4c21a,0x170abcd8,0x8e12c145,0xf10078b3,0x4f936820,0x66219fc0,0x478af2c0,0x379368c1,0x662ee0c0,0x4431dcc0,0x44e779c1,0x323b6940,0x45b9e2bf,0x8273bdc1,0x320eb640,0x488d82bf,0x4a71000c,0xcc00628,0x2445d0,0x1d1952f3,0xa3acc006,0xfcaac148,0xc422c1d1,0x4610c03f,0xcb23c145,0x134dc205,0x6064c0cf,0xcb23c146,0x1559c201,0x5822c0d3,0x641ac145,0x93b4c1b8,0xd2e84056,0xc978c142,0xa183c1b6,0xe3984056,0x97b8c144,0xfb33c1b7,0x5a524029,0x97efc143,0xc913c21f,0x847e40d8,0x97efc144,0xc10c21d,0x200b100,0x8106c07a,0x92e3f59,0x62022845,0x3f8cba95,0x23446c4,0x8cf404f1,0xcb9a3f19,0x1aacc145,0xdcf44050,0xfa143fe6,0xf2000c44,0xa6dd161b,0x4501fe3f,0x326d11c1,0x5b856241,0x44eede3d,0x16fe55c1,0x6b3ffc2,0x45dd6cbf,0x12fe55c1,0x8d7fd8c2,0xc1b00be,0xf304f100,0x14c0643e,0x3bc1454f,0xacc164ca,0x6c09203,0xc5365,0x9223d5b9,0x432386c0,0x40ca3bc1,0x2404000c,0x3701f800,0xc1c11c74,0x4ec0cd36,0x6cc15382,0xcc0f0e8,0x56ebc400,0x40cec0cd,0x7437c143,0xcc11c,0x964620f1,0xb6ccc1e7,0xab9a4089,0x9646c144,0xb826c1df,0x59224091,0x356c145,0xc444192,0x33984100,0xa565c142,0x6144115,0xf41e4100,0xf200183b,0xffff8433,0x358fc640,0xa4e86cc1,0x2d07f6c0,0x44ebd640,0xd79646c1,0x9caf0ec1,0x453d38c0,0xd89646c1,0x796256c1,0x442328c0,0xd59644c1,0x795600c1,0x4741dec0,0xe79646c1,0x99b6c3c1,0x6ca3ae40,0xb81d7100,0x513840a1,0xf2007845,0x91b5670f,0x43f62640,0x1097efc1,0x6a10ac2,0x44ce6c40,0xbabd2ec1,0xdb7903c1,0xcaacac0,0x3c14f700,0xb0c0eb76,0xfcc14615,0xe7c187b4,0x783fe06f,0xf9c14422,0x71c17f69,0xec3fc075,0xefc144d7,0x3600d17,0x4140c15,0x964648f7,0xb6bdc1e1,0x9fba40a1,0x9646c144,0xb8bdc1e2,0x9a2240c1,0x3c64c145,0x1eebc0b0,0x1656c01c,0x3c64c145,0x1ab1c0ac,0x3066c05c,0x3c64c146,0x2707c0b8,0x11aec05c,0x64bbc143,0xe22ac215,0x5296c0c7,0x73bdc145,0xde614082,0x233cbf4b,0x73bdc145,0xf2000c92,0xf6408a11,0x10bfe5ee,0x68c14533,0x95c03f93,0xbac0262a,0x38c1453f,0x55c1f394,0x18c0db15,0xf2000c5c,0xeb154f0f,0x456402c0,0x8b8c06c1,0xc0769fc1,0x44fed63f,0x938c06c1,0xe070b0c1,0xc3c6a3f,0x950ff200,0x403fa07c,0x55c145c1,0xa3c169f9,0x96c0d540,0x55c1463e,0x16c179f9,0x14c0dd42,0x62001884,0xc0e5438b,0x240c993,0x3eea09f4,0x530ac074,0xd377c145,0x9ccb415a,0xb45a4046,0xd377c143,0x144415c,0xa04514f1,0x13f0410d,0xff7ebf7f,0xaac0c144,0x8883c181,0x867abd14,0x9d2cc145,0xe53bc164,0x3124bd11,0x71000c48,0xbf74cd31,0x24459509,0xfd1cf100,0xb2bf74a2,0x77c1483f,0x264160d3,0x104046a9,0x77c146d3,0x584118d3,0xeabfbf8f,0x77c14455,0xc64128d3,0x5ebfdf89,0x18450b,0x843c14f5,0xc0d0bfff,0xcb23c145,0xe9cdc214,0x7a8840ec,0xcb22c144,0xedeec218,0x92f640e4,0xc978c146,0x350204d0,0x1cd3c978,0xc9783502,0xf20234d2,0xbfcaa713,0xe4670cbf,0x44a5a740,0xafcaa7c1,0xc464e5bf,0x4397c840,0xdc1ebc1,0x12f805c2,0xd41410c0,0xfaca7104,0x5e9ec002,0xf1000c44,0x22f54110,0x45c984c0,0x18cb23c1,0xf0e7bcc2,0x436e5040,0x44e779c1,0x32251040,0x4723b2bf,0x10f1000c,0xc00622b4,0xc14739dc,0xc1bac55e,0xc0a1742a,0xc149218c,0xc1d600c2,0xc0a17a10,0xc462656,0xa7357100,0x4ab4c0f4,0xf5002449,0xf4ad1b20,0x464f7ec0,0x7f557fc1,0xc31562c1,0x455036c0,0x2ecb23c1,0xc8acebc2,0x465d3cc0,0x2acb23c1,0xccaef7c2,0x4554f8c0,0xa78c06c1,0x2cf104bc,0xc1a68c06,0x3f46a10e,0xc146280a,0xc236fe55,0xc0a97bd5,0xc145438e,0xc1699499,0x40c34b36,0xc14222a4,0xc168224b,0x40c35d94,0xc14b4768,0xc1dac978,0x3fa6cb6c,0xc42c69a,0xea10f100,0xe63fa73f,0x88c1517e,0xa7c20a31,0xc03fa705,0x78c14a22,0xa6c18ec9,0x27405698,0xc42a6,0x5cfd8762,0xc424440,0xc8267100,0xbb7a4029,0xb5001841,0x4029d4d0,0xc144eead,0xc88f9644,0xc9783704,0x17003ca6,0x15003ca6,0xf5003ca6,0xa72fde0c,0x5107eec1,0x44e4fc40,0x985e80c1,0x2a1d93c1,0x4357dc40,0x972fdec1,0x78350018,0x3096c9,0xd3770cf5,0xe9424150,0xe5a8bf85,0xd377c145,0xde614160,0x233ebf4b,0x5e80c145,0xb1003ca8,0xc205cb23,0xc0e31553,0x7045600c,0x3000405,0xac2a07f2,0xe8713f40,0xccfe40e4,0x5615c143,0xe9d33fe0,0x827240dc,0x38b5072c,0xe440d4eb,0x44c14537,0x648bf96,0x92ef20f1,0x8f58c172,0x62d240f3,0xbbe4c164,0xbebcc171,0x88cf40a6,0xda9dc162,0xabbdc172,0xef3c40a6,0x2fdec158,0x1b4ac1dc,0xb59a4088,0x62058843,0x40403a86,0x5a0c02c,0x303a8eb5,0x44c42240,0x597efc1,0xef370768,0x8340717,0x4200615,0xc97818f5,0x21d9c1e6,0xfedc40a8,0xfcaac146,0x1b39c1e4,0xa5c640a8,0x97efc143,0x7b81c212,0x7260c0b9,0x58d4c145,0x4406d8eb,0xc1ee58d4,0xd4350048,0x81ced58,0xef240cf5,0xf5b63d9c,0xbc78bf5b,0xcef2c145,0xc9043f89,0x9018bf5b,0x8c06c148,0xf1021cb6,0xb98c0608,0x466c1ac1,0x42cef63f,0xbec978c1,0x938e19c1,0x63d9fc40,0xe77100fc,0xec40937e,0x4f85c2b,0x35d204f1,0x7f1ac0d3,0xbd2ec145,0x3806c1b2,0x6364c0d7,0xf5000c44,0xcb316a08,0x47b688c0,0xd76d4ec1,0xd3150cc1,0x457f0cc0,0x1f9368c1,0x68370474,0x7442f93,0x7441715,0xfb4089a2,0xa070ca40,0xc44543f,0x6e04f100,0x2a3f40f9,0x55c145c9,0x68c173f9,0x4cbf9ab1,0xc446b,0xa58b04f1,0xf022bfda,0x8e50c145,0x757c0f4,0xc0f9403d,0xb7000c44,0x401d0764,0xc144c8e2,0xfce658d4,0x14e31500,0xbb06f301,0x96c227e4,0x86c0c3dd,0x88c147a2,0x98c22db1,0x87c0c3dd,0x1c62000c,0x16c08244,0xf5002482,0x823b6644,0x4be878c0,0x27e4bbc1,0x824cd1c2,0x431bb0c0,0x29d2d0c1,0x9c9f41bf,0x4843f2bf,0x2555f8c1,0x9cb45bc0,0x459948bf,0x13fe55c1,0x3f024fc2,0x461a40bf,0x1dfe55c1,0x3f34f8c2,0x42e70ebf,0x1dfe55c1,0x3626bbc2,0x463b7ec0,0x13fe55c1,0x2cf1000c,0xc205cb22,0xc0db1974,0xc143479c,0xc1a82fde,0xc0d7e1d6,0xc145816c,0xc1aa2fde,0xc0f7dd5b,0xc147cca2,0xc1a72fde,0xc0f7e3fc,0xc144738c,0xc21afe55,0xc0643c04,0xc460d8c,0xea22f300,0x88c08220,0xefc14498,0xa9c22097,0xe0c0ccae,0x4fc1457b,0xbebf3f95,0xbe40e466,0x9dc1447e,0xcdbeff2a,0x9040c466,0x3bc1448e,0xbcbe7e55,0xef440018,0x7cc21117,0x7808f105,0xcec1d8c9,0x8e4081b6,0x72c144af,0x1ec1ed73,0x640f841,0xc4a4e,0xecad04f1,0x74a64084,0x8a9fc152,0xdcfdc204,0x87184084,0x79000c4a,0x40f850ce,0x78523b92,0x17efa200,0xb0cfc220,0x6e04c0ec,0x50f501b0,0xbf9f89e7,0xc1450374,0xbf9f26d9,0xc0562a7c,0xc1454b9a,0xbe7936c6,0xc0662a78,0xc1454f8e,0xc1d96310,0xc0aaf226,0xc14688e4,0xc1d86310,0xc0caf44d,0xc1457b06,0x412f39de,0xc070fff8,0xc1484a0e,0x412f39de,0xc0f3fa96,0xc14dba56,0x41026d11,0xc0f404e0,0xc1488726,0x24026d11,0x9208f100,0x84411ad7,0xa6c0462a,0x92c14547,0x80410ad7,0x3ac0362d,0xc4485,0x56278d71,0x460a10c0,0x31b508b8,0x96bcd97b,0x79c14458,0x57004e7,0x89fcaa31,0x6a950174,0xaac14581,0xd8c185fc,0xaf7000c,0xe1e5c187,0x7198c0b7,0xcaa7c145,0x6b85bfdf,0xf0de40c4,0x17efc146,0x15039005,0xf50b1003,0x32016700,0x7eb639c2,0x4aeafebf,0x320167c1,0x20f10ba0,0xc2320167,0xbf7f34d7,0xc142eb02,0x40101aac,0x3fc6dd05,0xc144fe0a,0xc16992f0,0xc0dd4261,0xc1455d2a,0xc15992f0,0xc0d54107,0xc460ab2,0xbd14f500,0xa0c0e543,0xefc144af,0x44c21e97,0x3840843e,0xefc144d5,0xa6c21d97,0xc40487c,0xefc144e5,0xc1f97,0xc80f08f1,0x1e60c210,0xf900bf16,0xc80fc144,0xfb16c20c,0x984beab,0xb5000c47,0xbf362ec3,0xc143f0bc,0xf0e558d4,0xf9553503,0xf5079831,0xd3fcaa0c,0x67518bc1,0x44e16a3f,0xd1fcaac1,0xc56ffcc1,0x44f13ebd,0xcffcaac1,0x55370018,0x7d421f9,0x7c82115,0x557f00f5,0x1514c13b,0x7720c0c3,0x557fc145,0xf5000c33,0xdc1eb0c,0x52f74dc2,0x454ad0c0,0x6eae1c1,0xd227c8c2,0x4557aec0,0x66ae0c1,0x8f10d74,0xc1906282,0x4056ccd1,0xc1428dc0,0xc1906004,0x402a013b,0xcc42cf0a,0xdd04f103,0x403eeee9,0xaac1450f,0x1c181fc,0xd43f3769,0xc444c,0x5e032eb5,0x45d1ab3e,0xcd9646c1,0x8f100a8,0x412fc93b,0x3fc07e4a,0xc145f6a2,0x414510e9,0x3fc0979e,0xc4929d4,0x609ab500,0x7423ee8,0xc93bc146,0x44000c2f,0xc20f97ef,0xf7081c,0xc227cb23,0xc0bb1566,0xc1454c42,0xc25cb23,0x2616f500,0x9b1574c2,0x453c6ec0,0xc4e86cc1,0x1d0aeec0,0x45ae4240,0x772c88c1,0xc26c01c1,0x481cb2c0,0x6a5fbbc1,0xdeb1000c,0x65c1c52f,0x4a40939b,0xc06a92,0xb1000c04,0xc1c5e310,0x40f391b8,0x20659604,0x95fd7107,0xf0dec0bc,0xb5000c51,0xc0bcb31c,0xc1433892,0x40ffcaa7,0x922af108,0x83c16b03,0x9640e35d,0x55c14b37,0x17c167f9,0xf840e372,0x55c1559d,0x7bc16bf9,0x1640f34a,0x7ec14196,0x8dc17b55,0xe8c0a319,0xf0c1432b,0xf3c1a05e,0xba402a1e,0x9fd506fc,0x51a737c1,0x44e4d440,0x9ec978c1,0x2cf106fc,0xc18d8c06,0x3fa076b0,0xc14502ca,0xc18f8c06,0x3e819525,0xc142d73a,0xc180aac0,0xc0a31360,0xc1464aa0,0xc22169db,0x40b10c28,0xc145574a,0xc21d69db,0x40b111c1,0x5c482aea,0xfb10f104,0x20c0543e,0x55c1454b,0x40c20dfe,0xca40b8cd,0x55c146a8,0x13c20c7e,0x1340b8c7,0x6c438a,0x15060c06,0x350d509f,0x189f9644,0xfe553506,0x37004812,0x88ea58d4,0x94e91605,0x1efea102,0x4c3a93c2,0x4666d6c0,0xc772000c,0xb1c06447,0xc4313,0x3ef26761,0xc4450ac,0x8a507100,0xd582bcd6,0x7103cc45,0xc04441f2,0xc4488b4,0x3c04b700,0xd8ac064,0x9368c146,0x1506545f,0xf7064857,0x1f318800,0x5fc4acc2,0x452710c0,0x213188c1,0x20d5000c,0x1fc4cec2,0x45173cc0,0xfe2fdec1,0xde37009c,0x9cfd2f,0x43c21ad7,0x163e64ff,0x78c14513,0x6fc86c9,0xe48715,0xa02019f4,0xb656c215,0x52a403e,0xa020c146,0xb1f7c211,0xed664026,0xa020c144,0xa922c215,0xb2024026,0x686ac142,0x588c040,0x9b8c063a,0xa4050b4c,0x932ef501,0xe07696c1,0x44fae03f,0xc8ddf2c1,0xa177bac1,0x475412c0,0xc5ddf2c1,0xa17de7c1,0x44355cc0,0xf39438c1,0xdb13f7c1,0x460d94c0,0xeb9438c1,0xd31559c1,0x455822c0,0xb78c06c1,0x13f20f0c,0xc1df9644,0x40c1b290,0xc1427b6a,0xc20e97ef,0xc0af12e8,0xc1468aee,0xc20a97ef,0xc0b3151c,0x8e86f36,0xf308f404,0xfb96461a,0xdb13f7c1,0x460d96c0,0xfb9646c1,0xeb16afc1,0x44b284c0,0x1664bbc1,0xe7e21bc2,0x45626ac0,0x1464bbc1,0xc1ec2,0xad8c0637,0xa9150f90,0x7f2000c,0xc187b4fc,0x3fa07000,0xc1442a62,0x412a6d11,0xbfbc982d,0xe40070b,0xf5000c04,0x97c9b418,0x662785c0,0x460e06c0,0x6f9368c1,0x562a7cc0,0x454b9ac0,0x35a333c1,0x543cc0c2,0x46ce1e3f,0x2f3cccc1,0x8f1000c,0x4128d377,0xc00fc43b,0xc1453a2e,0x4118d377,0xbfff8e6d,0xc4477c4,0xc1446200,0xfc9cc01f,0x43710e7c,0x183e64ff,0xfd84513,0xd23520f5,0x13f4bf7e,0x9644c147,0x39fc184,0xf53ebf7f,0xf955c143,0xab7ac163,0x2db8bfba,0xfcaac145,0xbf2c1bf,0x16f8bcaf,0xfcaac145,0xa2000cbb,0xc216fe55,0x3ef27f5f,0xc0f22,0x1b410f1,0x170cbcd8,0x9644c145,0x2f5ac185,0xefa63b86,0x54f8c144,0x9839c0fc,0x327abff1,0x71000c51,0xc013003f,0xc42ff96,0xc3d2b700,0x3f54c02c,0x17efc151,0x1506240b,0xf1062409,0x38506608,0x362b4941,0x484ce8bf,0x49568bc1,0x35d5d441,0x4db34cbf,0x17b5000c,0xfec00ef3,0x66c14864,0xc3850,0xfe5507f2,0xcfa7c21d,0x4d72bf3e,0x92f0c149,0x4212c159,0x880ac0e5,0xb710630,0xf4c0f542,0x648458f,0xed420dc4,0x458c00c0,0x897efc1,0xf411f4c2,0x9d01000d,0x783e8ac0,0x45bc9040,0x7a0200c1,0x703a71c0,0x44b44e40,0x131d0dc1,0xa20df8c2,0xc20f1d0d,0xc002f773,0xc3704,0xc5ef0762,0x202f1cbf,0x4004f110,0xc8406032,0x55c142a3,0xd6c222fe,0x46c00fc4,0x3844513,0xff843c62,0xcc0cebf,0xc78f6200,0x65bec01f,0x4c040294,0x94383502,0xf1024ceb,0x2197ef20,0xecaa2ec2,0x47c718c0,0xf93d7c1,0xd158c5c2,0x4675fec0,0xf93d6c1,0xf2f8a3c2,0x43536ac0,0xa41ebc1,0xf2f24ec2,0x46869cc0,0x2404000c,0x7e55a200,0xb1c4c219,0x24abf06,0x1d7108e8,0x92bf06e3,0x3c42e3,0xebf810f1,0xb9cec0f2,0xb3cc149,0xf738c20d,0xd1703f63,0x57d5c142,0xf716c20b,0xd0d33f63,0x62001842,0x3fa86866,0x18ca18,0xf5000c04,0x3db5e900,0xd3b36140,0x42763240,0x227f6bc1,0x6fa2000c,0x2b40227f,0x5240c618,0xf100247c,0xc6182b04,0x427cee40,0xdb4089c1,0xa0757940,0x44dbe03f,0x3571000c,0xca3f40eb,0x8a044e3,0xf40f2a71,0x4353f4c0,0x496213a4,0x52be97bd,0x620c601b,0xbf0bde83,0xc1f48,0x3dec5fc4,0x45175ebd,0x220631c1,0x440f6040,0x402a0631,0xf71224,0xc1938c06,0x3f40eda2,0xc1450ab4,0xc978c06,0x8951500,0x1008f104,0xc6c1d663,0xcec0aaf8,0xefc1432f,0xbac22197,0xcc0acae,0x804456c,0x35000c04,0x1c11f955,0xf9553502,0x35021c11,0x1c21f955,0x4e0cf902,0xa7c19a6d,0xe4c054eb,0x4ec1430f,0x50c19a6d,0x66c054ab,0x82c15351,0xc8ba0,0xf1002404,0xc78c0614,0x26a11fc1,0x462a063f,0xbf8c06c1,0x68f8ec1,0x450e503f,0xc78c06c1,0x8cd8bac1,0x42d6e03e,0x2e62003c,0xc8bf8957,0xf100482d,0x89d7d410,0x42ec46bf,0x1f954fc1,0xc4b407bf,0x45db2ebe,0xcfcaa7c1,0x2265aebf,0x4520acbf,0x58b70018,0x2abf6271,0x89c14466,0xbdcbb40,0xc040db82,0xc03f8076,0x7103cc06,0x3fdd4c34,0x604618f6,0x31d3b512,0xc5d03fad,0xe554c142,0xf505401f,0xd1fcaa0c,0x7f05b8c1,0x45e4debf,0xd1fcaac1,0xbf8e86c1,0x446fdbbf,0x497efc1,0xf90300,0xc19ec978,0xc0eaf9c2,0xc1534f7e,0xc8d2fde,0x196b6200,0x4f86c0eb,0xc0406c0,0xcb234400,0x10ecc201,0x35fe55b1,0xc97bc6c2,0x455362c0,0xbe710fb4,0x8ac022fa,0xfd84466,0x32f7f962,0x181bfec0,0x3004f100,0x70c042f5,0x88c145d1,0x59c12f2c,0x56c09d4d,0xc480a,0x15082806,0xa2082822,0xc1225fbb,0xc09d5702,0x2342910,0xc6d71f71,0x443f943f,0x45f40e94,0x3fa6dd16,0xc1450200,0xc168c623,0xc083cd31,0xc14582d6,0xc168c622,0xc08ffc5d,0xc14cbc12,0xc17f2c88,0xc087e668,0xc1431e74,0xc23afe55,0xc0a97b87,0xc1456a78,0xc23a7e55,0xc0c97942,0xc14697fe,0xc23bfe55,0xc0c97fe3,0xc1433ee8,0xc1da58d4,0xd4440bdc,0x58c1d958,0x6d11b111,0x4bf9412e,0x16dec01e,0xf5005445,0x87d36b08,0x4cb80ac0,0x17fe55c1,0xf27a85c2,0x44e83a3e,0x177e55c1,0x6350378,0xdf8a98c,0xeae114f1,0x239ac207,0x7bfac0f2,0xcb22c147,0xb310c22e,0x4472c0d4,0x9438c143,0x155bc1fb,0x542cc0cb,0x4069c45,0x14f10690,0xc1fb9438,0xc0db1555,0xc1455c16,0xc22e3a57,0x40ce7ee3,0xc135a848,0xc22f0554,0x40c14dea,0x6c4277a2,0x16bc710f,0xa2aec0cb,0x4000c44,0x3b3506d8,0x141064ca,0x64ca3b35,0x200813f8,0x8c063507,0x44033091,0xc0f0e86c,0x6c441470,0x64c0f0e8,0x4900f514,0xd3c22bfc,0xfe407467,0xafc145d1,0xc2595,0xdac978b1,0xbca48bc1,0x4a94bac0,0x34040714,0xeae13505,0x370ab010,0x98af9644,0xb0ae1510,0x5e803510,0x371038b0,0xb086c978,0xb0861710,0xb0861710,0xc1879110,0x405226a2,0x3844e4b4,0x43b3710a,0xeb9ac09d,0x4000c4c,0x88350210,0x240772c,0xb58e1235,0x12350750,0xcb18e,0x7f954f35,0x4f350a2c,0x126c5f95,0x631213f2,0x63bfc1c8,0x3c8407a,0xeb9ac169,0x2470c1ca,0x3ce407a,0x9528c159,0xf933c1bf,0x591c4029,0x4f710270,0xd2bf0bea,0x150c4460,0xffff8071,0x368d0ac0,0x14f5000c,0xc0ffe62e,0xc14359d0,0xc1cb9646,0x40951831,0xc16ba2a0,0xc1c79646,0x40996f24,0xc16f5c38,0xfc9fcaa7,0x10e9b10c,0x64f54145,0xc3703fc0,0xc407bc42,0xc066219f,0xc1478af2,0xc00fe554,0xa7350d20,0x9cefca,0xfb2fde44,0x3506fcc1,0x20a79644,0x6310370a,0x150948a8,0x370948a7,0x248f9644,0x24901700,0x248f1500,0xc9783700,0x15001896,0x35003097,0x24979644,0x2c893500,0x3500187f,0x307d92ef,0x63113500,0xb1000c80,0x40101aac,0x40c029da,0x984b04ba,0x3b1cf10d,0x703b871a,0x54c1471f,0x68c06fe5,0x7840c021,0x21c146c0,0xe340c4da,0x58c097e0,0x21c145ec,0x4840e4da,0xe4c08fe2,0x184536,0x87e3aa71,0x448172c0,0x8e510978,0x4e3f068f,0xaf5051c,0x83a1c1bf,0x4be43f46,0x8c06c144,0x36d6c1bf,0xd0ba3e8d,0x9368c145,0x808f40f,0xf50f0c,0xc09d0100,0x40203a97,0xc144c816,0x280b97ef,0x5fbb3508,0x35039c36,0xfc365fbb,0xb401f403,0x77c097c9,0x2ec0462d,0xd4c14489,0x4cc1f258,0xfc49b11a,0xc1bec22b,0xb4f4401a,0xf202e842,0x1ace641b,0x45e82640,0xd6c978c1,0x736da4c1,0x44b38240,0xa22cc1,0x80d37cc2,0x45ba3c40,0xf94458c1,0x79a2dbc1,0x50b1fa40,0xbfcb6210,0x1ef4bf06,0xd00407e0,0x7831f417,0x70c1dec9,0x104081b5,0x78c143fe,0x69c1dec9,0xf6406370,0x55c14568,0x13c20cfe,0x7e40d8c9,0xefc14484,0x83c20e97,0xc8c0bb19,0x20c14337,0x9cc1059b,0x2cbe4886,0xaec14757,0xcc09e48,0x6718f500,0xccc1447c,0x32c0509a,0x67c15148,0x41c1447c,0xcc08249,0x80c15155,0xa7c15e80,0xa0c06a96,0x96c1514e,0x132cc64e,0x97ef14f1,0xc921c21e,0x945040b8,0xa045c144,0xf9fd4159,0x2e3ec029,0xa046c147,0x4a7415d,0x9f0bfd4,0x62077445,0xbf85f506,0x54068bc,0xa5ef1762,0x802b26bf,0xf638710a,0x95483f40,0x62176445,0x3f80758a,0x4f8dfd6,0xf261bf71,0x44f736be,0x4f1003c,0x3f86e30d,0xc145c46a,0xc22bfc49,0xbf58acc1,0x38450ac4,0x8af07101,0x2ce4bf58,0x62000c47,0xc00fc4a0,0x2420ee,0xfbc30b5,0x474310c0,0xaf8e12c1,0x96351a64,0x1a64ac4e,0xaf8e1235,0x96351a64,0x1a64ac4e,0x6d4e08f1,0x12dac1df,0x9ac2c0cf,0x2e94c146,0xc7f7c118,0x38e8c012,0x71000c51,0xc02cfc1a,0xc430604,0x8c8b500,0xf92abff2,0x9438c142,0xf10b7ceb,0xa472814,0x2d075bc1,0x44c4ee40,0x9a8c06c1,0xa06dd7c1,0x43e5183f,0x998c06c1,0x81dbcbc1,0x45129e3e,0x1cf10b28,0xbf1228ed,0xc146e446,0xc235a332,0xbf11e99f,0xc14ae444,0xc1978c06,0x3fa08859,0xc1473e2c,0xc21e4b22,0xc0b24010,0xc4999d0,0xba27f200,0x6ec0b24c,0x88c14333,0x65c217b1,0xa0c0b246,0xe1c14666,0xb7c212ea,0x80c0f227,0xe1c14567,0xb9c2136a,0xeac0d225,0xdec14661,0xc8c1a42f,0x3fc0f7e1,0x4084c91,0x553510b0,0x10b011f9,0x11f95535,0x1f410b0,0x40cc8835,0x3eed989e,0xc146d3e6,0x4104fc6d,0xef35000c,0x7980e97,0xd97ef35,0x233702e8,0xf842fcb,0xc2d17,0xf842e15,0xba508f1,0xb702c223,0xca523f88,0xba5c142,0x6b12c223,0x8aca3f89,0x800fc59,0x2404000c,0x8c063500,0xf10d08bb,0xbdfcaa08,0x82bbf5c1,0x4526ccbf,0xe0c978c1,0xdb1683c1,0x44c48ac0,0x8f5000c,0xc0eb1388,0xc1464960,0x410da045,0x3f00eb57,0xc144e7be,0x30b02fde,0x2fde3700,0x15000cac,0x540c24ae,0xc207eae1,0x26012cb9,0x13809ea,0xec08ea25,0x8b08f110,0xbf414956,0x84bf3680,0xfc142e6,0xd8c20cc8,0xd4bf8b0d,0x6c4527,0x82d403f2,0xe8d2bf9f,0xa045c145,0x1184411d,0x2668bf7f,0x14040378,0x4500f519,0x71410da0,0xfcbf3f1d,0xd4c14463,0xe88e158,0xe258d435,0xd43503f0,0x558df58,0xcef220f1,0x32d73fa9,0x38d0c00a,0xcef2c145,0x77923fc9,0xed98bf94,0xfe55c142,0x436cc20e,0xfd403fcd,0x97efc144,0x7955c216,0x862ec0a5,0x4162046,0x13f20840,0xc21697ef,0xc0b17fed,0xc1433308,0x3f99cef2,0xbf945d18,0xc14646ae,0xc189fcaa,0xc0f7e213,0x13146a54,0xc1513,0xaf8c0635,0x8f1015c,0xc1ed7372,0x4084cd4d,0xc142998a,0xc2048a9f,0x40f8316e,0x54426076,0xdb0ea603,0x1b58401a,0x8c06c149,0x340806c0,0x1008f10e,0x2dc0d259,0x14bf6dec,0xaac1450c,0x6dc0abf2,0x36bf6dca,0xc472e,0x1c1eb462,0x2423fcc0,0x4408f500,0x1cc01c16,0x35c14746,0x9140ec88,0x72c01d28,0x6c14857,0x894bd8c,0xba8c0635,0x23b116a4,0x75c22acb,0x96c0c8ac,0x4e04697,0x84d00bb5,0x43fc8640,0xf14458c1,0x2cf104ec,0xc1f94458,0x4069a5a4,0xc145676b,0x4114fc6d,0xc01d331e,0xc145acc8,0xbe7936c6,0xc0462a84,0xc14547a4,0xc24bac08,0x408e1e0c,0xc135ca1a,0xc24bdc37,0x409132cf,0xf4429272,0x7104f105,0xfec06d8f,0xeec14315,0xb540f1a6,0xaec07870,0x63c4318,0xb72d671,0x4611d540,0x4bb5000c,0xb03fe6cb,0x46c142be,0x4b055a0,0xa04601f4,0x6574157,0xf88c02a,0x4089c144,0x49840fb,0x4e779b1,0x611e840,0x4b774ac0,0x7b711494,0x6cc00633,0xb1c42fc,0x3516ec04,0xc30cb23,0x220cf503,0x47c231cb,0xbcc0bb11,0x23c14760,0x74c2304b,0x6c0bb17,0x22c14442,0x9902acb,0x32cb2335,0x23350030,0x24324b,0x6d110cf5,0x866e4142,0x9c663e9b,0x6d11c145,0x49e94142,0x4156be49,0xcb22c144,0xa2005433,0xc1d9fcaa,0xbf9f88b1,0x24c2a5c,0x4bde6171,0x45233cbf,0xc04009c,0xf207f200,0xf63fe9ce,0x10bfe5ee,0x23c14533,0xa9c226cb,0xe0c0ccae,0x40c607b,0x78a20c0c,0x7fc19ec9,0xacc0a493,0x40b7c2c,0x78b1000c,0x29c19ec9,0xb4c0a4b3,0xb94432c,0xf1000c04,0xa8eb720,0x438594c2,0x45951e3f,0xe8eb7c1,0x37ab3c2,0x44e7963f,0xa8eb7c1,0x86dfa4c2,0x443a0f3e,0x89cef2c1,0x9e4dc23f,0x45d9febe,0x8f5000c,0xbf4f3e25,0xc14464fc,0xc187fcaa,0xc0d7e224,0xc1455a82,0xb837fe55,0x5fbb350b,0xf5096c22,0x37557f0c,0xa31523c1,0x45674cc0,0x886280c1,0x56cb04c1,0x428fb840,0x96c978c1,0x8ab109c0,0x4bc19862,0xb44056cb,0x12d8428c,0xf51ac404,0xa062a00c,0x56c7dec1,0x42900e40,0xa86288c1,0x56cd10c1,0x428d5a40,0xaec978c1,0x18f5003c,0xc1b062a2,0x4056bc1b,0xc1428a69,0xc1b6c9f0,0x405708d9,0xc1426834,0xc1bec926,0x4056e8b4,0xc14278d6,0x50bf9644,0xa400f50a,0xe9c1c062,0x2e405710,0x44c14262,0x48cb96,0xeb9a0cf5,0xf14ec1c8,0xc854056,0x9644c159,0x5044c1c7,0xc784057,0x2c88c171,0x35000c6f,0x246c81dd,0x2c883500,0x35003c67,0xc7d92ef,0xf01af300,0x54c17d92,0x5e404b6e,0x6ec144e6,0x65c18061,0x4240568c,0x24c142e2,0x7b3d9cef,0x7cbf0f32,0x46c1451f,0x6ec1df96,0xd44407e0,0x18c1d758,0x8818f515,0x2fc1672c,0xa2409518,0x88c16ba2,0xe1c1672c,0x3240f3a7,0xaac170c9,0x3ac16d4e,0xa640f375,0xddc1572f,0xa686881,0x6d92ef35,0x37440a80,0x88c11c74,0x3700f50b,0xd5c11c74,0x86c09223,0x55c14323,0xfc018fe,0xc8853435,0x9cb10048,0x50c1c730,0xae40f347,0x1084303,0xf5006c04,0x73f9550c,0xf358bac1,0x48c94640,0xd9fcaac1,0x2fc71dc1,0x4483a4c0,0x805e81c1,0x18f51bf0,0xbe31886e,0xbfa79a4a,0xc1450472,0xc1ca624c,0x40c34d53,0xc1424130,0xc1cb1b64,0x40c35d94,0xc14b4768,0x54c9aac0,0x2fde3515,0xf21554cb,0x9cef2413,0x9e28243d,0x470916be,0x98c437c1,0x9e8af8be,0x43ea60be,0xce9646c1,0x67620fc1,0x34eba83f,0x3a82b511,0xbc384050,0x5e80c144,0xa2007888,0xc1cb9644,0x3f6730a5,0x240ccf0,0xfdca14f5,0x52a8405c,0x5ef8c142,0xfb4cc1c0,0x735cc048,0xc2c149,0x7f6c1b6,0x402ac049,0xca3bc146,0x440cc040,0xc140ca3b,0x63520dc,0xfe48f8c,0xf17ef44,0xa209ccc2,0xc22169db,0x4084450b,0x1ecc4112,0xa0985562,0xb8c73040,0x99d07108,0x899c4098,0x4027c45,0x78350078,0xc6caec9,0xe86c0cf5,0x4ffc0c4,0x296c403d,0x69dbc144,0x3f72c21d,0x6d744084,0x92efc145,0x350c9c7d,0x307d92ef,0x5500f500,0xeac173f9,0xc2409358,0xdec148f8,0xcc52f,0xcb2c01f4,0xf2dac249,0xf162c0ff,0xfe55c13c,0xc30c24e,0x4efe5544,0xa20c30c2,0xc19e7580,0xc040a1f5,0xc0ae0,0x35091804,0x6c9ec978,0x2013f200,0x6f4189bf,0x16c0c30f,0x55c1428a,0x7dc24269,0x8a407a21,0xf7c135d0,0x47c2439a,0x54408113,0xf500189d,0x52dd1ef8,0x42a71440,0x439558c1,0x4a77b4c2,0x35dcbe40,0x445a77c1,0x557881c2,0x3642d0c0,0x44bdb5c1,0x7067e4c2,0x431a4cc0,0x436016c1,0x51d9d7c2,0x430e46c0,0x53d764c1,0x8d2637c2,0x4320dac0,0x3f33dec1,0x90feedc2,0x36565cc0,0x3f061dc1,0x9217f2c2,0x431fa4c0,0x3e2d46c1,0x5311dcc2,0x430c96c0,0x3f0915c1,0x5ae23bc2,0x36446cc0,0x146df0c1,0xb9781c41,0x35b3f840,0x142677c1,0xba14c841,0x427c0e40,0x5785bc1,0xa4bb2e41,0x4286da40,0x2f93bc1,0xa47fb741,0x35bddc40,0x3f2d5cc1,0x5c30a5c2,0x35d7ae40,0x3f32bbc1,0x90f6e4c2,0x428fa040,0x3f0a25c1,0x92356cc2,0x35c60240,0x3c63c6c1,0x70d0e1c2,0x364aa0c0,0x32fe55c1,0x92485ec2,0x455efec0,0x3697efc1,0xc68c2,0x42587441,0x4efe55c1,0xc6cc2,0x425c8e41,0x4efe55c1,0xffff84c2,0x358fc640,0x3697efc1,0x30f5000c,0xc18c8c06,0x3e81ff0d,0xc1463050,0xc243cbb9,0x404bd23d,0xc142a938,0xc2362b99,0x40cd341a,0xc135a9cc,0xc235ceba,0x40c96fae,0xc142746e,0xc23df8f5,0x40533633,0xc142a4d6,0x6cc5bf3a,0x9368351e,0xf50c300f,0x3097ef24,0x8d7729c2,0x479800c0,0x3097efc1,0x94b0f9c2,0x44427cc0,0x59b20c1,0x19ddadc1,0x472e0440,0x11a020c1,0x46b1eac2,0x44e57c40,0xe758d4c1,0x67b10864,0xaac23201,0x503f88d6,0x1adc46ca,0x6ac194b5,0x42a12c40,0xb79644c1,0x44350d74,0xd74b796,0x22fe5544,0x442178c2,0xc21efe55,0xf52178,0xc222fe55,0xbfff843c,0xc145c0d0,0x8ca6c978,0xc978350d,0x35000cae,0x48af9644,0x96443500,0x350060af,0x24986310,0x5400f700,0xe3c06fe5,0xb43ba8e2,0x8ac14b63,0x247f2c,0x248815,0x7c780cf9,0x4be0c1db,0x3b74c0bc,0x7c76c143,0xe712c1db,0x42cac0c9,0xe346c143,0xf1000cde,0xbc4bde04,0x433c10c0,0xe59644c1,0xbb509ac1,0x44b9fa40,0x8f50474,0xc04fc12b,0xc146087a,0xc1b2bd2e,0xc0e377a1,0xc145603c,0x60a06310,0xa22ca200,0x9aaac200,0xa1744069,0xb671081c,0x42c0784a,0x81c4cb2,0x6d6973b5,0x4caf92c0,0x1ff955c1,0x553511c4,0x11dc1ff9,0xb0631035,0x2f30048,0xc187b4fc,0x3fa07afa,0xc1458d5e,0xc050686a,0x531da0be,0xc030686a,0xf5000cbc,0x447c6800,0x6aceeec1,0x43154ec0,0xc06310c1,0x3844003c,0x40c1f394,0xf200f711,0xdd3f89ce,0xa0c01096,0xefc145d2,0xb700297,0xb700115,0x317ef35,0x1f40468,0x3d9cef24,0xc0108bac,0xc148a640,0x4170d377,0x8f103e4,0x4170d1c4,0xc0ffe673,0xc14338b0,0xc1d8c978,0xc0e31505,0xb04586f6,0x6564710d,0x1bbcc082,0xb5076843,0xc0a97bd5,0xc145438e,0x7438fe55,0x48aeb107,0xcbfbc09e,0xb5324019,0xc40d6842,0xbfc5e929,0xc145ed92,0xc1df6d4e,0xf51ee4,0xc212fe55,0xc0821f71,0xc14556fe,0x185fa046,0xfe553509,0xf2228039,0xcaddf207,0xa17bd9c1,0x453f98c0,0xcbddf2c1,0x8179d9c1,0xac3a02c0,0x1428040b,0xa90f1a35,0x13f20480,0xc0845841,0x3ed4d595,0xc142d8f4,0xc084583f,0xbc1bb6aa,0xc142df12,0xc091f37c,0x3ed4d5b7,0xcd856,0x44001804,0xbe7e553b,0xb1a228ec,0xdb3f406a,0x5c40cce9,0xf408708a,0x5ebd9015,0x44ef823c,0xe8eb7c1,0x71e7dac2,0x45a4f4be,0x7e553bc1,0xc4eb40be,0x453fd040,0x320631c1,0x3510f840,0xcc4a0631,0x3208f115,0x3cc235a3,0x48bf1268,0xf8c142e4,0xcbc02555,0x83c00930,0x20284852,0x93b5871,0x45a7d7c0,0xbe620cc0,0x16bf4fd8,0x620ccce8,0xbf4e70a0,0xccca88e,0xa2000c04,0x4150d377,0x3f80758a,0x141cdfd4,0x35167404,0xa850d377,0x4b23b10c,0x1318c21e,0x80bec0e7,0x40dc846,0x77a2000c,0x5b4150d3,0x1a409098,0x4003ccf,0x14f10630,0x40cc8835,0xbee970b5,0xc146e274,0x40eb4089,0xc0425419,0xc1451fc8,0x4105a045,0xc0325422,0xb0451bd4,0xef52710d,0xe276bee9,0x71007842,0x408896e6,0x2444149a,0x1102f300,0xbcc05254,0xfc14523,0xd2c210c8,0xdebf561b,0x8f5000c,0xbfab0dd0,0xc1452bc8,0xc1bbc978,0xbf82ac11,0xc14728d8,0xcb09646,0x7714f100,0x564148d3,0xa43ffd4a,0x77c145da,0x244158d3,0x623fed42,0x45c144d2,0x674109a0,0x92befe28,0x3c44f7,0x12d308f5,0x1904bcab,0x9644c147,0x764fc1b0,0xdb94bcb3,0xa045c142,0xf4002411,0xb096440d,0xa2af57c1,0x4b5672bc,0x48d377c1,0xcd31c241,0x42c1dc3f,0xfb9438c1,0x3523b8c1,0xc419fe55,0xda0cf914,0x7bc21d69,0x5640e031,0xdac1426c,0x4cc21d69,0x4405b34,0x69c142a5,0xc0e2c,0xb1002404,0xc20e2c69,0x405b7970,0x30541dd0,0xc0800,0xe0540d71,0x53e52240,0xc04003c,0x1aaca200,0x6e724050,0xf6204003,0x12b50bd0,0x88bf3f14,0x78c144fb,0x27b4d6c9,0x12063135,0x78530228,0xbfc1dac9,0x45350018,0x10d451a0,0x6d1108f1,0xdbcf414a,0xd7223fc6,0x6d11c144,0xb813414e,0xe6f43f0d,0x417a044,0x1135174c,0x18466d,0x2fe55435,0x54350420,0x4200fe5,0x6f2c8835,0x8f113b0,0x40c4da21,0xc0ab140e,0xc145f5d8,0x40e4da21,0xc0a31570,0x94454066,0x71de7108,0x5a30bfc6,0xf508ac49,0xc68b3308,0x4626febf,0x9e48aec1,0x19ef5fc0,0x4ba6d640,0x326d11c1,0xcf51bb4,0xc237bf98,0x4089ee31,0xc14292ba,0xc237b99b,0x4089b289,0xc135c9d0,0x242a6d11,0x2e94b100,0x6aa1c118,0xe88c04f,0xf51b0043,0x4f325908,0x5147d8c0,0x84aac0c1,0xa31759c1,0x44499ac0,0x83aac0c1,0xbfb1201c,0xb8c181aa,0xb0c0a310,0x1c6847a2,0xf41cbc06,0x73c1abe3,0x863fe347,0x61c144fa,0x66c243d2,0x4080a0,0x8c135cf,0x4fc24bac,0xb0c0865c,0x3cc13652,0x9ac24bab,0xeac08d7a,0x98c1431c,0xdec253ed,0xe8408bf4,0x66c135ce,0x2ac253d7,0x8e408754,0x23c14297,0xa6c231d1,0x9e40bb8f,0xa3c135b1,0xdcc24884,0xfcc0cd82,0xb9c14337,0xc6c248eb,0x56c0d44f,0x1bc13676,0x5cc237b7,0xc08b9f,0x34c13654,0xbfc237c6,0x40c08780,0x57c1431b,0xc5416f95,0xc8c0b949,0x43c1366b,0x43416f4e,0xacc0b966,0xeac1430e,0xaf40e6d9,0xbe40bafc,0xedc135b1,0x1640e87f,0xa40b807,0xaac142b3,0xcc415c5a,0x12c0a498,0x2cc1365c,0x30416076,0x1ec0a4b8,0x4dc14300,0x4ac23c9c,0xb8c0808a,0x21c14316,0x6840e4da,0x7441000c,0xc7c14258,0x4ac22dca,0x8e410008,0x21c13e15,0x9040e4da,0x5507f32a,0x36c240fe,0xb8c0ffe6,0x45c14355,0x80414da0,0xdac0ffe6,0x3000c30,0x553715a8,0x98440fe,0xc25604f1,0x40c018f8,0xc1427c36,0xc256fe55,0xc0bfe64d,0x912ca028,0xffa0c256,0x6d62c0bf,0xf1001836,0xbfffa404,0x35af6f40,0x8f7ba4c1,0x6b5b42c1,0x514ed0c0,0xb271000c,0xeec082c7,0xc431b,0x8fa97ab5,0x515baac0,0xb86310c1,0x78370654,0xcb6c9,0xc8e15,0xadcaf8f1,0xea5d414e,0xf24c0b8,0x84b9c143,0xba6fc241,0x3fbcc0d7,0x838bc143,0xbc6fc250,0xbb2ac0bf,0x88c3c142,0xecb3c24c,0x97d6407f,0x87ccc142,0xd9f5c250,0xb15440bf,0x9cdac141,0x1e7c24c,0x1634c07f,0x647ec143,0x8f2c242,0x13d2c070,0x9fd3c143,0xe923c242,0x78f8c0cd,0x9c4dc136,0xbce4c23c,0x97744080,0xab7dc142,0xb56cc250,0xb03440c6,0x167c141,0xe13bc232,0xa128406a,0x8080c14a,0xd313c15e,0xee0c050,0x7db0c143,0xab8cc19c,0x553ec082,0x7db0c151,0xc5a0c19c,0x225ac08f,0xddf2c143,0x7be7c1c6,0x2fc6c081,0x9cdac145,0x3487c24c,0xcf4a407f,0xed99c135,0x8579c253,0x56cac088,0x547bc136,0x147c242,0x463ac063,0x68a3c136,0x66f9c23c,0xd1b24070,0x7db0c135,0x938ac19c,0x157ec06b,0x5783c143,0xae94414e,0x6c3cc0bd,0x3276c136,0xf76ec244,0x49a2c079,0xf100cc36,0x94e01828,0x36580cc0,0xc8ddf2c1,0x818006c1,0x431b4ac0,0x4bac88c1,0x424e59c2,0x525bd8bf,0x4bad36c1,0xc6a6dbc2,0x526208bf,0xa90f1ac1,0xb0b2fbc1,0x512a74bf,0xd0040654,0x631350e,0x351c1442,0x182f3ccc,0xfffff006,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x6d99ffff,0x174104fc,0x73bee8f2,0xe1c14ae2,0xe7c211ea,0x32c0d22b,0x5bc14343,0x4b084c08,0xa806ba08,0xd06b706,0x1000400,0xe000d00,0x5000400,0xe000400,0xe000500,0x7000f00,0x10000600,0x10000700,0x8001100,0x11000700,0x11000800,0x13001200,0x3001400,0x3001300,0x1000900,0xd000c00,0x14000200,0xd1001500,0x8400b600,0xa205b805,0xb205a005,0xb3011301,0xeb037501,0xe7037601,0xc6020701,0x4e003701,0x7f004700,0x80015d01,0x40009401,0xb5004006,0x9e05a005,0x16000a05,0xd0001700,0xc203c001,0x83078b03,0xaa043c04,0x53085405,0x8b018908,0xe4038c03,0xe603bd01,0xc203c301,0x3703c003,0x3d063e00,0xcf002b06,0xd200d000,0xd0002b00,0x6f031200,0x2c031302,0xd2002b00,0x6700d400,0x3d00d300,0xf000ee05,0xcf00d000,0x100d500,0x3052d05,0xe3071705,0x2d071e04,0x25032903,0x35085903,0x36085a08,0x33062406,0xbe06d006,0xe606cd06,0xe306d406,0xf8080a06,0xc4080707,0xb908b603,0xc607bd08,0xe907c207,0xee07f207,0x16051c07,0x67051f05,0x6d026e02,0x43019b02,0x92013c01,0x96029302,0x59040d02,0xa4042207,0x4c01a301,0x4c01a401,0x55016901,0x61036001,0xa701a803,0xa7013701,0xa901a801,0xa901a701,0xa601aa01,0xaa01a701,0xaa01a601,0xa501ab01,0xab01a601,0xab01a501,0xa401ac01,0xac01a501,0xac01a401,0xc201ad01,0xc108b208,0xe01a008,0x89031d03,0x79011003,0xb101b203,0xb4011201,0x1301b301,0x1301b401,0xb5011901,0x1901b401,0x1901b501,0xb6012301,0x2301b501,0x18031d01,0x31031c03,0x30032e03,0xb301b203,0xb201b901,0xba01b901,0xb201b101,0x2c01ba01,0xa805a901,0xba01a805,0x3a01bb01,0xc003c302,0xd501e203,0x8401db01,0x81037e03,0x2a01cf03,0xa401df02,0xa1069206,0x5f023806,0x4e025e02,0x9010801,0x68036701,0x72036b03,0x21027102,0x21027202,0x73022402,0x24027202,0x24027302,0x74022a02,0x2a027302,0x2a027402,0x75023502,0x35027402,0x75027602,0x75023402,0x34023502,0x76027502,0x75015102,0x57015102,0xb8012001,0x3b02b902,0x8a028901,0x72027102,0xa8014802,0xb1011201,0x7e027101,0x90027802,0x9101f902,0xe5029102,0x92029201,0x9301cc02,0x9401cc02,0x78029302,0xf8027d02,0x58075901,0x7e075207,0x7c028202,0x87027902,0x60023402,0x49084708,0x77028308,0xc8010102,0xc9015602,0x5a02c902,0x702ca01,0x801a203,0xa029d03,0x9e029e01,0x9d029802,0x97029d02,0x9c029c02,0x9b029602,0x65086202,0x77086008,0x7e028302,0x88028902,0x89020202,0x10020202,0x89028a02,0x8a021002,0x14021002,0x8a028b02,0x8b021402,0x25021402,0x8b028c02,0x8d022502,0x22028c02,0x25028c02,0x8c022202,0x40028d02,0x40028c01,0x15014b01,0xba02b901,0xa1012802,0x1a02a202,0xa102a001,0x89028802,0x9f013602,0xa5017502,0x95028802,0xa7028f02,0xa801c802,0xd202a802,0xa902a901,0xaa025b02,0xab025b02,0x8f02aa02,0xc7029402,0x9e029001,0x8d022202,0xb502a401,0xb1017502,0x9b02a502,0x8c029a02,0x8c029b01,0x9c010401,0x4029b02,0x3002f401,0xb502f501,0xb402af02,0xae02b402,0xb302b302,0xb202ad02,0xb102ad02,0x8e02b202,0x95029a02,0x9f02a002,0xa001d802,0xe801d802,0xa002a101,0xa101e802,0xec01e802,0xa102a201,0xa201ec02,0x1101ec02,0xa202a302,0xa4021102,0x302a302,0x1102a302,0xa3020302,0x2702a402,0x2702a301,0x57013801,0x75027401,0xa3016f02,0x9f03a403,0xf02a002,0xfc03e401,0x9f03e304,0xa602ac02,0xf3034e02,0x67034f01,0x68025503,0xc2024103,0xa602c102,0x5902ab02,0xb002ac02,0xa702aa02,0x302b502,0xbb017002,0xb202cc02,0x7202b102,0x7202b201,0xb3017401,0x7402b202,0x7402b301,0xb4018b01,0x8b02b302,0x6d02ce01,0xf502cd01,0xf402f002,0xb801b502,0x7f01b401,0x84028302,0xb102a502,0xb702ac02,0x6202b602,0x6202b702,0xb8026d02,0x6d02b702,0x6d02b802,0xb901f102,0xf102b802,0xf102b901,0xba01e901,0xe902b902,0xe902ba01,0x6101dc01,0x8e038f02,0xbb02ba03,0xba010e02,0x15010e02,0x77013201,0x3d037803,0x60035f01,0x72014d03,0xb6027302,0x8a02b702,0x1027101,0xea027701,0xeb01ed02,0xc302b602,0xbf02bd02,0x5a02be02,0x1902d502,0x5502d602,0x68086908,0xc202bd08,0x41024002,0x42083e08,0xd2015208,0xc802e102,0x5402bc02,0x3505bd01,0x44083608,0x45012903,0x2e02f303,0x4602f401,0x47014703,0xdc02e103,0xe002e002,0xdf02db02,0x99039f02,0x96039e03,0x9b029a02,0xc802bc02,0xb102c302,0xb008c008,0x3602ce08,0xa002cf02,0x9f039a03,0xd202d103,0xd1018702,0x97018702,0xd102d001,0xcf019702,0x9702d002,0x9702cf01,0xce017d01,0x7d02cf02,0xbc01e601,0xf6020403,0x30202,0xd402d503,0x77022702,0xa508a608,0x7901db08,0xeb037803,0xec01f002,0xd702dd02,0xbb02d902,0xbe025a02,0x62019c02,0xd3037303,0x2f013402,0xd302de01,0xde012f02,0x33012f02,0xde02df01,0xdf013302,0x53013302,0xdf02e001,0xb4015302,0xb5018d02,0x42077702,0x86045504,0x85028002,0xee02f202,0xf602e702,0xf7020002,0x2802e302,0xe4023102,0x3102e302,0x3102e402,0xe5025102,0x5102e402,0xe502e602,0xe5024802,0x48025102,0xe602e502,0xe4016802,0x8302e502,0x6802e501,0xe3018301,0x6502e402,0x8302e401,0xe3016501,0x4e016502,0xe302e201,0xf6014e02,0xfb019f02,0xda02de02,0xfc02d302,0xfd01d302,0xcb02fd02,0xfe02fe01,0xff01be02,0x6a055002,0xe800d802,0x4802f502,0xbc049d02,0xf204af07,0x902e702,0x902f201,0xa100ff01,0x6030701,0x9a037103,0x9037201,0x8030403,0x3030803,0x1b030703,0x1a031603,0x25032f03,0x33032403,0x34022f03,0x2f703,0xf8020b02,0xb02f702,0xb02f802,0xf9022b02,0x2b02f802,0xf902fa02,0xf9021f02,0x1f022b02,0xfa02f902,0xf8014402,0x6402f902,0x4402f901,0xf7016401,0x3f02f802,0x6402f801,0xf7013f01,0x2d013f02,0xf702f601,0xe2012d02,0xec02ee02,0xff027a02,0xc0027b01,0xc1024102,0x1702d702,0x4202d802,0x78017902,0x6d055b01,0xfc056905,0x1f030902,0x37014702,0x6034703,0x9f02fb03,0x9f030601,0x9401a101,0x1a031b01,0x24035903,0x1c035a01,0x1d01a003,0x2c033203,0x71033103,0x70036b03,0x2b033003,0x1a032f03,0xf031003,0x1f034303,0xea034401,0xec00e300,0xd030e00,0xd01f703,0xf7020103,0xe030d01,0xc011d03,0x21030d03,0x1d030d01,0xb012101,0x16030c03,0x21030c01,0xb011601,0x14011603,0xb030a01,0xdf011403,0x11050303,0x61084905,0x13085f08,0x6b026f03,0x13031402,0x14026b03,0x68026b03,0x14031502,0x11026803,0xe031d03,0xf031a03,0x1a019103,0x94019103,0xe4086e01,0xca080f00,0xcb017102,0x2b028602,0x89028701,0x88038303,0x55035b03,0xdf035a03,0xde02d902,0x10030a02,0x1f031503,0x4a031e03,0x92088002,0xc089008,0xd020103,0x22032303,0x22026003,0x60025f03,0x23032202,0x21018603,0x8e032203,0x86032201,0x3e018e01,0x5f086b08,0x1f031e08,0xc1017603,0xc203d508,0x7705b108,0x27057605,0x4f032603,0x4f032702,0x28024602,0x46032703,0x46032802,0x29022302,0x1c021a03,0x29032a02,0x26021c03,0x60033203,0x24032f02,0x2f014603,0x49014603,0x79001f01,0x31002305,0x4f033003,0x4f033101,0x32017701,0x77033103,0xc602cc01,0x4602cb02,0x45034003,0xed02f303,0x602f202,0xfb030203,0xc034802,0x34034902,0x37022f03,0x34033502,0x35023703,0x52023703,0x35033602,0x37025203,0x4b033603,0x52033602,0x36024b02,0x6e033703,0x36033501,0x36018403,0x84016e03,0x35033401,0x35016a03,0x6a018403,0x6a033401,0x33016701,0x67033403,0x4d014301,0x48034803,0x52035403,0x56037b03,0x91037c02,0x33062a00,0xfc033b00,0x3c01f201,0xf2033b03,0xf2033c01,0x3d01f401,0xf4033c03,0x3c034201,0x39033f03,0x4b034703,0x4c011e02,0x43035c03,0x1c033803,0x9d035801,0x70035901,0x71015d03,0x1b035a03,0x5b035b01,0x5c011e03,0x56035c03,0x72035b03,0x71036c03,0x59035503,0x43035a03,0x3e034403,0x3e034303,0x38033f03,0x3f034303,0xc034903,0x4a021202,0x12034903,0x12034a02,0x4b023202,0x32034a03,0x4b034c02,0x4b022903,0x29023203,0x4c034b02,0x4a016103,0x6b034b03,0x61034b01,0x49016b01,0x59034a03,0x6b034a01,0x49015901,0x43015903,0x49034801,0xba014303,0x208bc08,0xbd036504,0x3a036601,0x3b01fc03,0xcd035003,0x5101c001,0xc0035003,0xc0035101,0x5201bc01,0xbc035103,0x50034f01,0x4e035303,0x29035c03,0xe6013002,0x5802f502,0x9b034d03,0x80036f01,0x84037001,0x85011102,0x17028502,0x72028601,0x73019c03,0x6d037303,0xf4037203,0xf302ef02,0xb403b002,0x5803b503,0x53035903,0x53035803,0x4d035403,0x54035803,0x5d035e03,0xbe01d503,0x2f01e403,0xef057805,0xaf053b00,0xaa05a705,0x61036205,0x6101fe03,0xfe020d03,0x62036101,0x61013c03,0x55013c03,0x8b014b01,0x5028c02,0x8d038c01,0xa2016c03,0x5d03a303,0x18035e03,0x5402b601,0xe002bc01,0xe1015202,0x6a035d02,0xe8036403,0xe9020502,0x39037c02,0x7d037d02,0x7e023003,0x7d01fb03,0x64027c02,0x57036903,0x73036502,0x2b01fe03,0x87027601,0x63036f02,0x83018203,0x84010302,0x45034502,0x8034601,0x9010803,0x81028703,0x88028602,0x87038203,0x81038703,0x81038603,0x86038503,0x6f036303,0x75036a03,0x5c037403,0xc202ff02,0x77030001,0xeb037603,0xeb037701,0x7801e301,0xe3037703,0xe3037801,0xdc01db01,0xba02bb01,0x79037802,0x78011003,0x32011003,0x8d010601,0x42038e03,0x8b028a01,0xb7019902,0x7402b802,0x98037503,0x41038a01,0x6b039001,0x70036f03,0x38016703,0x79033303,0x7a020e02,0x602e902,0x7b02ea02,0x7c01fb02,0x2e038f02,0x60039302,0x61020d03,0x9c014103,0x86039003,0x5e038503,0x5e038601,0x87016601,0x66038603,0x66038701,0x88017f01,0x7f038703,0x7f038801,0x89018101,0x81038803,0x41034701,0xcb034603,0xca02c502,0xb003b602,0xc403b503,0xc902c802,0x85037a02,0x8b038003,0x3d038a03,0x3d038b02,0x8c024302,0x43038b03,0x43038c02,0x8d024d02,0x4d038c03,0x4d038d02,0x8e026c02,0x6c038d03,0x6c038e02,0x3f026102,0xa503a602,0x8f038e03,0x8e019203,0x6019203,0xa4018801,0x5003a503,0xa501a601,0x5e013501,0x8a035f03,0x7b038b03,0x2503a101,0x8a03a701,0x92039103,0xef03aa03,0xef03ab01,0xab03ac01,0x95039603,0x96020a03,0x8020a03,0x96039702,0x97020803,0x7020803,0x97039202,0xa6020703,0xaa020903,0x7303b703,0x2503a601,0xa703b301,0x9c039d03,0x9d013903,0x3e013903,0x9d039e01,0x9e013e03,0x62013e03,0x9e039f01,0x9f016203,0x5f016203,0x9f03a001,0xb7015f03,0xb603b103,0x7f028503,0xb8028402,0xb401b301,0x9d039c01,0x9c039803,0x91039803,0x9c039003,0xa2039103,0xf03a103,0xf03a202,0xa3021802,0x1803a203,0x1803a302,0xa4022002,0x2003a303,0x2003a402,0xa5024902,0x4903a403,0x4903a502,0xad023f02,0xa401a301,0xa603a501,0xa5017303,0x88017303,0xa2013801,0x5802a302,0x74027301,0x75010702,0xa1037603,0x5b03a203,0x26028801,0xa1028e01,0xa903a803,0xd701af03,0xd703b801,0xb803b901,0xac03ad03,0xad01e703,0xde01e703,0xad03ae01,0xae01de03,0xe001de03,0xae03a901,0xa801e003,0xad03b203,0xe101a303,0xb601af01,0xa3014c01,0x9a012601,0xb4028e02,0x2203b303,0x2203b401,0xb5012a01,0x2a03b403,0x2a03b501,0xb6013101,0x3103b503,0x3103b601,0xb7013a01,0x3a03b603,0xb701b601,0xca01b501,0xc902c402,0x9d039902,0xb3039e03,0xaf03b403,0xaf03b303,0xa703a803,0xa803b303,0x1b033903,0xba033a02,0xd103b903,0xd103ba01,0xbb01c501,0xc503ba03,0xc503bb01,0xbb01ca01,0xca03bb01,0xba03b901,0xfe01b903,0xf9055c03,0xdb03d803,0x2003d603,0x6f087008,0x7b00d308,0x33046504,0xf603f405,0x6f056303,0xf8056505,0x1040203,0x6e02cf04,0x8102d002,0x92089508,0xeb07fa08,0xfa04e004,0x2903ca03,0x82035d04,0xfd036301,0xfc042b03,0xe1050e03,0x1b050f03,0x1c019e03,0x1f072503,0xbd072a07,0xc008b008,0x73078708,0x5d078307,0x53044107,0x9a079104,0xac079607,0xb007a707,0x44034007,0xbe034503,0xbf03bd03,0xdc07d303,0x1307d807,0x11041207,0x65017d04,0x18301,0xc001700,0x803da00,0xee03d805,0x2d03ed03,0xf803ef04,0xd104f904,0x4503f003,0x8050d04,0xc3050a05,0xc102c702,0xd208ac02,0xdb08be03,0xfc053700,0xc101d000,0x9d01d403,0x18051d05,0x43041b05,0x1c041807,0xb072a04,0xd2026704,0xf902d102,0xef03f004,0x2b03ff03,0xdd042a04,0xe0050503,0xec052103,0x3d03eb03,0x3b086b08,0x2c037e08,0x16037f02,0xe903ea05,0xe9051903,0xdc03e503,0xda050a03,0x69086603,0xd3086508,0x97059c05,0xe7051305,0x2803e803,0x29021a03,0x604c703,0x1404d207,0x15058905,0xcf03e405,0x2a04ff03,0x6d00df08,0xfc03e308,0x4a04fb04,0xa601a701,0xe203e101,0x2c050f03,0xec03ed04,0xfe052303,0xf052404,0x5000600,0x6700d500,0xd00d400,0x46084501,0x38053f08,0x6e054105,0x62044007,0x33054e07,0x11055002,0x44004206,0xb2060300,0x8c06b106,0x307f900,0xf4062308,0xe2062c05,0xe3022802,0xf300ff02,0x8402f202,0xd1047b05,0xc01da00,0xd9030b03,0xa708aa03,0x6000b08,0x93000700,0x94022d03,0x48084003,0xf9011308,0x8804e007,0x2f060804,0x88062e06,0x99048d07,0x15058804,0xce058905,0xb308c103,0x5a06b908,0x6d06ae04,0x28082708,0x74077b08,0x8e048d07,0xa1079a04,0x7a002c04,0x79001f05,0x23003205,0x5e056700,0x59056605,0x65056005,0xf108be05,0x21042803,0x22025f03,0xe1081803,0x12081700,0x6041307,0x6d056207,0x1e056305,0x8705d608,0x3078508,0xd0077904,0xd1026702,0x4b085802,0x40084d08,0x4100ea05,0xbc05c105,0x7005c005,0x4203f205,0x2a00ec05,0x1c082b08,0xea03eb05,0x86040703,0x10040607,0x14001600,0xff030500,0x3b030202,0x5c017e02,0x7c024501,0x64017901,0x90019302,0x5c026601,0x65019301,0x8f019002,0x78024c01,0x3c017a01,0x7e017a02,0x95026a01,0x72019601,0x74057305,0xe5054d05,0x47053500,0x4b00f805,0x5f085e05,0x4b086b08,0x3700fc05,0xe2035e05,0x45035f01,0x4700f405,0xfc04eb05,0xe904e907,0x39053100,0xf6054105,0xef054900,0x3e054500,0xdd054905,0x3a054d00,0x4000e305,0x10052405,0x8c053005,0x8f088a08,0xc1036608,0x2d036701,0x94039502,0xb505b603,0x7105b305,0xcc01c605,0x60056b03,0x80056905,0x81003e05,0x1c058005,0x83003e00,0xe0005705,0xb6058400,0x84001c00,0x80001c05,0x57058505,0x81058300,0x82003e05,0xb01ce05,0x65030a03,0xd300d404,0x5b085900,0x51085808,0x8804df05,0xf1042705,0x12042603,0x16031303,0x4b012c03,0x27084c08,0xb050905,0x93059205,0xfa052b05,0xfd052504,0x2c050404,0x74050005,0x7f038003,0x9d051703,0x20051805,0x1b059905,0xb052605,0x25050d05,0xfd050d05,0x4f085804,0x85085608,0x20031f01,0x6e008f03,0xd7057e00,0xd608ad03,0x1405a103,0xd6051f05,0xa600d900,0xa6057205,0x7205a505,0xa600d605,0x85058205,0xcd057805,0xd3013402,0x5c085302,0x67085b08,0x63086608,0xd700d908,0x1b00d800,0x17059b05,0xac085205,0x5305ae05,0x52083508,0xa905a808,0xae05aa05,0xad05ac05,0x91030a05,0x6b030f01,0x61056205,0xf2054a05,0x4d03f303,0x20074607,0x12000904,0x76001300,0xb0057505,0xb0057605,0xd905b105,0x57015800,0x98010501,0x56010701,0x58085708,0x3c079008,0x65007900,0x64056e05,0x5d076405,0xc040f07,0xe03de05,0x82005705,0x22003e05,0x20059605,0x6052a05,0x8052905,0x902fa01,0x8f057d03,0xab057e00,0x5305aa05,0x5405a908,0x6305aa08,0x62086408,0x21018508,0x81018e03,0x86069804,0xe082f04,0xde00f708,0xe4080f00,0x15000b00,0x35001600,0x39062a04,0xc905c804,0xc7058d05,0x8a058b05,0x69055f05,0x7b056005,0x32006e05,0x6d041e00,0xb042107,0x77037601,0x8a05c403,0x5d058c05,0x5f056805,0x503f805,0xb4040604,0xb305b205,0xb405b505,0x1605b305,0x13081508,0xb705b808,0x1605b605,0x18081a08,0xba05bb08,0xbe05b905,0xbc05bd05,0xbe05bf05,0x1f05bc05,0x1e05d608,0xc105c208,0xc305c005,0xc005c205,0xc305c405,0x1e05c005,0x22082408,0xc605c708,0xc805c505,0xc505c705,0xc805c905,0xca05c505,0xc505c905,0x28082a05,0xcd082908,0xcb05cc05,0xcd05ce05,0x2905cb05,0x2c082e08,0xd005d108,0xd205cf05,0xcf05d105,0xd205d305,0xd405cf05,0xcf05d305,0x32081005,0xd5081308,0xb905bb05,0xd505d605,0xc05b905,0xd077c06,0x4403ff06,0x2e040005,0x24040807,0xb0060304,0x8d05f106,0x8e087f08,0x6a016708,0x1016b01,0x2b052c05,0xf2060405,0x4f061106,0x5001cd03,0x35062a03,0xdc043906,0x2500fb00,0x5600bf08,0x26004d06,0x41062506,0x41062600,0x27003000,0x30062606,0xe6008a00,0x2907e507,0x2f062806,0x2f062900,0x2a003300,0x33062906,0xbb07b700,0x8004d004,0x6c067f04,0x27043204,0x3e062806,0x3e044306,0x79044204,0x3b045407,0x4e044e06,0xcd006806,0xff07d707,0x9061906,0x2060907,0x12080108,0x44064506,0x24063006,0x24062c06,0x2c062306,0x30063106,0x30062d06,0x2d062c06,0x48064306,0x33064706,0x2e063206,0x2e063306,0x2b062f06,0x2f063306,0x22011906,0x46012301,0x3504c304,0x35044606,0x6b063406,0x37048404,0x36048406,0x89063706,0x4e064e04,0x5d066104,0xcd065604,0x9806ae00,0x3b063c00,0x3c004e06,0x37004e06,0x3c063d00,0x9a003706,0xc106c200,0x3e063f06,0x3f003a06,0x40003a06,0x3f064000,0x51004006,0x69046206,0x53046204,0x3e044c06,0x3e063d04,0x52065406,0x8b044c04,0x5a06ae04,0x70065104,0x4f066404,0x58060a06,0x58061b06,0x1b060a06,0x59065a06,0x5b061a06,0x46065a06,0x42063a06,0x39063a06,0x47064206,0x43064606,0x42064606,0x59064306,0x5d065e06,0x48064906,0x49064406,0x45064406,0x49064106,0x4c064506,0x49063a06,0x60044d06,0x9a049a06,0xa4066204,0x8a048904,0x8a064d04,0x4d064c04,0x6404a306,0x77047006,0x6c046806,0x5200d006,0xc2057f05,0x63066c00,0x51065200,0x52006406,0x46006406,0x52065300,0xaa004606,0xed06ee00,0x54065506,0x55004706,0x4d004706,0x55065600,0x67004d06,0x79046f06,0x69046f04,0x4c045e06,0x54065304,0x63066a06,0x63045e04,0x68066c04,0x4a06d504,0x7a06e804,0x45063b00,0x56056406,0x65055705,0x6e061506,0x6e05d906,0xd9061506,0x6f067005,0x71062106,0x5c067006,0x58065006,0x4f065006,0x5d065806,0x59065c06,0x58065c06,0xc7065906,0xcb06cc06,0x5e065f06,0x5f065a06,0x5b065a06,0x5f065706,0x63065b06,0x5c066206,0x76047106,0xb404b406,0xc6067804,0xa404a304,0xa4066304,0x63066204,0x7a04c406,0xc7048f06,0xbc04af07,0x67066807,0x68007406,0x54007406,0x68066900,0x77005406,0x95069600,0x6a066b06,0x6b005506,0x63005506,0x6b066c00,0x7d006306,0x85048006,0xab049c04,0x5e048706,0x6a066904,0x81069606,0x93047c04,0xa604cb06,0x7d00ac06,0xa7068706,0xb005f106,0x65060e06,0xd805fd07,0x85068605,0x3060706,0x72080208,0x6e066606,0x65066606,0x73066e06,0x6f067206,0x6e067206,0x85066f06,0x89068a06,0x74067506,0x75067006,0x71067006,0x75066d06,0x31067106,0x3a013901,0x66067801,0x94067506,0xad07b004,0x9c04a104,0xc404a807,0x7904c604,0x7804c606,0xe1067906,0xac069004,0x30080904,0x5407fe04,0x56015301,0xfe008901,0x7e00a807,0x81067d06,0x81067e00,0x7f006600,0x66067e06,0xa4003d00,0x8107a307,0x6a068006,0x6a068100,0x82007200,0x72068106,0xb506d500,0xd804bf04,0xb107cf04,0x7f046c04,0xb6068006,0xbe06f004,0xe506a904,0x4806bc04,0x95078b00,0xfe063907,0xf3064205,0xe8069a05,0x9c05f305,0xdf069b06,0xb070c05,0x7c068807,0x7c068406,0x84067b06,0x88068906,0x88068506,0x85068406,0xa0069b06,0x8b069f06,0x86068a06,0x86068b06,0x83068706,0x87068b06,0x7c068e06,0xab068b06,0xea06a204,0xe6045f04,0xe1046706,0x8f049104,0x8e049106,0xdd068f06,0xcf080c04,0xbe06fb04,0x2e06f004,0x3504ed07,0x51085c07,0x94085008,0x99069306,0x99069400,0x95007700,0x77069406,0xac008700,0x9706ab06,0x78069606,0x78069700,0x98008000,0x80069706,0x304db00,0x7c04c007,0x96069504,0xb606ee06,0x6e04b004,0x7a068204,0x3a062504,0x25063804,0xb306a900,0xe107b506,0x907be05,0xfc080006,0x9405e005,0xff079307,0xb206b305,0x92069e06,0x92069a06,0x9a069106,0x9e069f06,0x9e069b06,0x9b069a06,0x3e073906,0xa1073d07,0x9c06a006,0x9c06a106,0x99069d06,0x9d06a106,0xc604a006,0xd404ba07,0x91068e04,0x9204f204,0x9206a504,0xa506a404,0xbc043606,0xcf04e506,0xc4047706,0xc405f706,0xaa00a006,0xa106a906,0xa106aa00,0xab008700,0x8706aa06,0x1c00b500,0xad071b07,0x8e06ac06,0x8e06ad00,0xae009800,0x9806ad06,0xa506bf00,0xc8049704,0xb006ed04,0xab048704,0xd806ac06,0xa204a606,0xc4049b04,0xbf047706,0xd2043306,0xda02cd06,0x3602d802,0xc906bf00,0xf506bd06,0x1706c605,0xf4062c06,0xb05ed05,0xdc070a07,0x23072405,0xa806b407,0xa806b006,0xb006a706,0xb406b506,0xb406b106,0xb106b006,0xda07d506,0xb707d907,0xb206b606,0xb206b706,0xaf06b306,0xb306b706,0xce04e606,0x37043706,0x5006d004,0x47043604,0x4706bb04,0xbb06ba04,0xca04bc06,0xe504aa07,0xda049806,0x6205e606,0xc000c907,0xa706bf06,0xa706c000,0xc1009a00,0x9a06c006,0x6000c500,0xc3075f07,0x9b06c206,0x9b06c300,0xc400a000,0xa006c306,0x8c069300,0x41045904,0xf4075f04,0xc1049504,0x6006c206,0xf404f607,0xda04a604,0xcd049806,0xe004b707,0x19006207,0xa0072407,0x8f019203,0xa805d703,0xfb061e07,0x39073a05,0xdf061807,0xca06de06,0xc606be06,0xbd06be06,0xcb06c606,0xc706ca06,0xc606ca06,0xb106c706,0xb506b606,0xcc06cd06,0xcd06c806,0xc906c806,0xcd06c506,0x9506c906,0x98039603,0xe4043403,0xba045f06,0xbd07c804,0x50044f04,0x5006d104,0xd106d004,0xa604f206,0x4b04cb06,0x40044806,0x35006006,0xd600bc07,0xaf06d506,0xaf06d600,0xd700a200,0xa206d606,0x3300ba00,0xd9073207,0xa506d806,0xa506d900,0xda00a600,0xa606d906,0x9c06a900,0xf1047604,0xe4073204,0xd704a204,0x406d806,0xc004c707,0x90046004,0x8b047407,0x9e049307,0x46002207,0x2d075107,0x3805db07,0x2105de07,0x4062007,0xf306f406,0xf5061f06,0xe006f406,0xdc06d406,0xd306d406,0xe106dc06,0xdd06e006,0xdc06e006,0xa06dd06,0xe070f07,0xe206e307,0xe306de06,0xdf06de06,0xe306db06,0xfc06df06,0xf906ea06,0xfa044b06,0xad046d06,0xb307b204,0x67046604,0x6706e704,0xe706e604,0xb404b206,0xdd049f07,0xd204ce07,0x6b074b07,0xec05e500,0xb406eb06,0xb406ec00,0xed00aa00,0xaa06ec06,0x400b000,0xef070307,0xab06ee06,0xab06ef00,0xf000ae00,0xae06ef06,0x61077400,0xf7047304,0xef074804,0xed04b004,0xd006ee06,0xb104b907,0xa6048204,0xeb043d07,0xfe045b06,0x1005a06,0x16070c07,0x21062007,0x905ed07,0xde061907,0x22072305,0x95062207,0xf6079407,0xf206ea06,0xe906ea06,0xf706f206,0xf306f606,0xf206f606,0x2206f306,0x26072707,0xf806f907,0xf906f406,0xf506f406,0xf906f106,0x9006f506,0xd4068c04,0x4c047d04,0x78048a06,0xfd047204,0xfc047206,0x5b06fd06,0xfe047804,0xfd047806,0x9c06fe06,0x9d010202,0x5c071e02,0x2005900,0xb9070107,0xb9070200,0x300b000,0xb0070207,0xd800a200,0x506d706,0xb1070407,0xb1070500,0x600b300,0xb3070507,0xe8071900,0xe804ee04,0xd5071b04,0x304c004,0x1c070407,0xd504dc07,0x51009604,0x6c065b06,0x3b073000,0x16078907,0xfb079206,0xdb073805,0xde060505,0x1006dd06,0xc806c906,0x70d06,0x70907,0x906ff07,0xd070e07,0xd070a07,0xa070907,0x54074f07,0x10075307,0xb070f07,0xb071007,0x7070c07,0xc071007,0x10070007,0xe071407,0x11071204,0xe041107,0x11071104,0x13071104,0x2c040c07,0x18040907,0x16073704,0xaf03d404,0x4608b208,0x84063604,0xad069804,0x1a00ca00,0xbd071907,0xbd071a00,0x1b00b500,0xb5071a07,0x77001900,0x1d077607,0xb7071c07,0xb7071d00,0x1e00b800,0xb8071d07,0xf1073000,0x8304f304,0x56078d04,0x1b04d504,0x33071c07,0xe404e707,0x4b04f004,0x37043807,0x16073007,0x5d002d04,0x44076807,0x4e05e307,0xc8060207,0xb06c706,0x50075106,0x18072507,0x18072107,0x21071607,0x25072607,0x25072207,0x22072107,0x6080107,0x28080508,0x23072707,0x23072807,0x1f072407,0x24072807,0x41074207,0x64073c07,0x53055104,0x2b040b05,0x8040c07,0xa074104,0x8041d04,0xb6041a07,0xb805ba05,0x79007505,0x31002907,0x1d073007,0x1d073100,0x3200ba00,0xba073107,0x4900be00,0x34074807,0xbb073307,0xbb073400,0x3500bc00,0xbc073407,0xf7074600,0x9e043f04,0x7507a304,0x3204e404,0x49073307,0xef04f007,0x6204f604,0x8044007,0x1a070107,0x78017704,0xa3017901,0x71066700,0xfd075b06,0xf076505,0xe3074e06,0x50060f05,0x99074f07,0x8d087e08,0x2f073c08,0x2f073807,0x38072d07,0x3c073d07,0x3c073907,0x39073807,0xe206dd07,0x3f06e106,0x3a073e07,0x3a073f07,0x36073b07,0x3b073f07,0x1c071707,0xa041904,0x1b074204,0x2b03fb04,0x1203fd04,0x1d071504,0x46040004,0x5703c805,0x4b043807,0x4f070607,0x47004a00,0x28074607,0x28074700,0x4800be00,0xbe074707,0x80006600,0x4a067f06,0xc1074907,0xc1074a00,0x4b001e00,0x1e074a07,0xc806eb00,0x6104d304,0x55077604,0x4804ef04,0x28074907,0x32043506,0xac067d04,0x20069004,0x25071907,0xeb004b04,0xcb06f506,0xd405ea07,0x67060e07,0xfa076607,0x3a073b05,0x45075207,0x45074e07,0x4e074407,0x52075307,0x52074f07,0x4f074e07,0xf806f307,0x5506f706,0x50075407,0x50075507,0x4c075107,0x51075507,0x15041707,0x17075704,0x56075704,0x17040d07,0xd075604,0x58075604,0xa404ea07,0x22049206,0x5a075904,0x22041f07,0x1f075a04,0x4d075a04,0xda003407,0x5e00a606,0x2a075d07,0x2a075e00,0x5f00c500,0xc5075e07,0x6a005400,0x61066906,0xc6076007,0xc6076100,0x6200c900,0xc9076107,0xdb070100,0xf904e204,0x4c053c00,0x5f04f405,0x8e076007,0x56046007,0x1e04dc04,0x2004e307,0x21025e03,0x2702d203,0x3b02d402,0x7f077400,0xd077207,0xec077c06,0xe107be05,0x7e060c05,0x1c077d07,0x7e077f06,0x5c076907,0x5c076507,0x65075b07,0x69076a07,0x69076607,0x66076507,0x82077d07,0x6c078107,0x67076b07,0x67076c07,0x63076807,0x68076c07,0x6c075c07,0x11077007,0x12027003,0x8c05c203,0x23058e05,0x70076f04,0x23041407,0x14077004,0x71077004,0x14041007,0x10077104,0x64077104,0xbc007f07,0x75006d07,0x39077407,0x39077500,0x76001900,0x19077507,0x8e001800,0x78078d07,0xcc077707,0xcc077800,0x79002900,0x29077807,0xc104a500,0x55049506,0x77077604,0x9b06c207,0x1c049504,0x1b031703,0xd5004303,0x7b06df06,0x84061d06,0x9205e006,0x13061607,0x43064406,0x9d05f206,0x80069c06,0x7c077307,0x72077307,0x81077c07,0x7d078007,0x7c078007,0xbf077d07,0xc307c407,0x82078307,0x83077e07,0x7f077e07,0x83077a07,0xc8077f07,0xc9055403,0x46084a03,0x99084f08,0x87040604,0x86040607,0x99078707,0x88078704,0x8606a307,0xd2069804,0x83005e07,0x8b078c00,0x8c005307,0x18005307,0x8c078d00,0x46001807,0x53065400,0x8e078f06,0x8f002007,0x38002007,0x8f079000,0xa1003807,0xae049e07,0xd704b504,0x5604a206,0x8e078d04,0x8b06ac07,0x52048704,0x5d065604,0x9f07a104,0x9207b404,0x2f062500,0x1106e906,0x1306f206,0xfe064206,0xaa05d705,0xe207a907,0xaa07ab05,0x8a079607,0x8a079207,0x92078907,0x96079707,0x96079307,0x93079207,0xae07a907,0x9907ad07,0x94079807,0x94079907,0x91079507,0x95079907,0x5f016607,0xcc016201,0xf506b804,0xba04f504,0xa7044706,0x9d04a804,0x9c04a807,0x6b079d07,0x3a063804,0x7a068d04,0xa2068204,0x6f07a107,0x6f07a200,0xa3003d00,0x3d07a207,0xba005600,0xa507b907,0x3f07a407,0x3f07a500,0xa6005200,0x5207a507,0x44062500,0xbb044904,0x9607b904,0xa3047504,0xba07a407,0x96049d07,0x40044304,0xb7044806,0xca04aa07,0xb7005d07,0xd307c107,0xdc060606,0xdc060506,0xec060606,0xbf07c005,0xc105eb07,0xac07c007,0xa807a007,0x9f07a007,0xad07a807,0xa907ac07,0xa807ac07,0x6607a907,0x6a076b07,0xae07af07,0xaf07aa07,0xab07aa07,0xaf07a707,0xda07ab07,0xd000d200,0xfc046d00,0xb2047206,0xb304b304,0xb204b307,0xa707b307,0x93079e04,0x3d07b104,0xc707a604,0x72068200,0xb707b800,0xb8008607,0x56008607,0xb807b900,0x70005607,0xcf07d000,0xba07bb07,0xbb005807,0x6d005807,0xbb07bc00,0xcd006d07,0x7e04d807,0x27044404,0x96043206,0xba07b904,0x6e068007,0xb9046c04,0xce07d204,0xcf07f904,0xf7080c04,0x5fc07,0xd405f908,0xf905ea07,0xd507d605,0xd705f807,0xc207d607,0xbe07b607,0xb507b607,0xc307be07,0xbf07c207,0xbe07c207,0x8b07bf07,0x88088608,0xc407c508,0xc507c007,0xc107c007,0xc507bd07,0xa907c107,0xc507dc04,0xf404cd04,0xbc04d707,0xc904bd04,0xc804bd07,0xc907c907,0xb707e004,0x7f07f304,0xe807e804,0xef006907,0xcd07ce05,0xce009d07,0x70009d07,0xce07cf00,0x30007007,0x27062800,0xd007d106,0xd1007307,0x85007307,0xd107d200,0xe3008507,0x2f04ec07,0xe504ec04,0xb104d107,0xd007cf04,0xd907e607,0xd904d104,0x7f07e804,0xc107e304,0x1b07f604,0xed07e300,0xee07e107,0x107ea05,0xee07ea06,0xec060105,0x7eb07,0xec07ed06,0xcc07d807,0xcc07d407,0xd407cb07,0xd807d907,0xd807d507,0xd507d407,0xf007eb07,0xdb07ef07,0xd607da07,0xd607db07,0xd307d707,0xd707db07,0xf204b807,0x5f04cd07,0x6a086108,0xca04c908,0xca07df04,0xdf07de04,0xf604d607,0x7404c107,0xa008a208,0xab05ad08,0xca05ae05,0xd704cd04,0x4506f004,0xe4004200,0xa907e307,0xa907e400,0xe5008a00,0x8a07e407,0xfc009e00,0xe707fb07,0x8d07e607,0x8d07e700,0xe8009c00,0x9c07e707,0x51063b00,0x51045c04,0x3e063d04,0xe504d104,0xa407e607,0x75048207,0x8f066704,0x50067a04,0xab07a100,0xe8069107,0xd8069a05,0x1d068405,0x2e061706,0x14062d06,0x67076806,0xe207ee07,0xe207ea07,0xea07e107,0xee07ef07,0xee07eb07,0xeb07ea07,0x74066f07,0xf1067306,0xec07f007,0xec07f107,0xe907ed07,0xed07f107,0x804c207,0xda04da08,0xde080a04,0xd704d604,0xd707f504,0xf507f404,0xe8046607,0x7d044a06,0x5207a600,0xf907fa00,0xfa002707,0x9e002707,0xfa07fb00,0x15009e07,0x1200e108,0xfc07fd08,0xfd009f07,0xa8009f07,0xfd07fe00,0x3d00a807,0x4e00fe05,0xfc04e902,0x6507fd07,0x45084608,0x1502d608,0xb802d702,0xbc08bd08,0xa5016908,0x9f01a401,0xa8061e07,0xc6060207,0xe905f506,0x86068705,0xf8080406,0xf8080007,0x7f707,0x4080508,0x4080108,0x1080008,0x98079308,0x7079707,0x2080608,0x2080708,0xff080308,0x3080707,0x4a043b08,0xc5047d06,0xca07de04,0xde04dd04,0xde080b04,0xb080a04,0xa5057308,0x2905a405,0xfa03fb04,0xd405b203,0x2205b305,0x92059305,0xc605c005,0xf105c405,0x37044703,0x3f033304,0x2e033d03,0x11051205,0x8d010a05,0x6e029e02,0xeb00e808,0x5b03c600,0x4303fe05,0x48084708,0x30014908,0xc5032f03,0x56053603,0x3900e505,0xe7053505,0xed073504,0xbe04b604,0xac04bf04,0x9108b008,0x703d808,0x2603dd05,0x9d069300,0x23017706,0x5f033203,0x6001ea03,0xd083103,0xe9080f08,0x3007fe04,0x10081404,0x15081308,0x13081408,0x46085608,0x18086908,0x16081708,0xe5051e08,0x1b03e703,0x19081a08,0xd5081c08,0x1d05d605,0xd6081c08,0x1f082005,0x21081e08,0x1e082008,0x21082208,0x25081e08,0x23082408,0x25082608,0x27082308,0x23082608,0x27082808,0x4082308,0x7078404,0x2a082b04,0x2c082908,0x29082b08,0xb503f508,0x2f08b608,0x2d082e08,0x2f083008,0x31082d08,0x2d083008,0x31083208,0xcc082d08,0xcb05ca05,0x1b05bd05,0xbc081908,0x1905bd05,0x95048c08,0x55047c06,0x68036902,0x95019103,0x2f018f01,0xcf051005,0x3700ed03,0x3a083908,0x3b083d08,0x33083808,0x3b083c08,0x3e083a08,0x3f083308,0xfb083c08,0x22087000,0x43084408,0x44084108,0x42084108,0x45084708,0x49084808,0x44084308,0x7505a408,0x51057305,0x53058705,0x4b084d05,0x1f084e08,0x20025303,0x50084c03,0x63012c08,0x7a038501,0x902e203,0x1d02e701,0xf1086f08,0x58037900,0x57037b02,0x58085908,0x3603c908,0x8803c505,0x6700d300,0x67086800,0x6c085508,0x5e085d08,0x4c00e208,0x11053105,0x32086e08,0x34085d08,0x5e086308,0x60086208,0xe204fb08,0x9103e303,0xce05cd05,0x34086305,0x64086708,0x65086608,0x3e084208,0xbf086a08,0xc0024402,0xab03e602,0x3408aa08,0x5e056605,0x1f059f05,0x32051d05,0xf403f305,0x42084403,0x34086108,0xf703f605,0x45086503,0x7084708,0x6030103,0x7c009003,0x9c00b205,0xb405b205,0x51085005,0xee05a908,0xef04f803,0x20040903,0xcb042507,0xce05d005,0x4d084a05,0x84084e08,0x58058005,0x32062d04,0x74063106,0x7a016303,0x53057b03,0xcd058705,0xce025002,0x74079b02,0xcb079004,0xcc017002,0x55083602,0xd5083408,0x64046500,0x203e004,0x2403df05,0x4a032a03,0x48055902,0xb2055a05,0x9908af08,0xae03db08,0x8103d008,0x6a053b05,0xbc05c504,0x9a087405,0x9b087208,0x7c089c08,0x8b089d08,0x8c088908,0x9f087c08,0x71089d08,0x9e08a008,0xa1087b08,0xca089f08,0x8f059105,0x93089405,0x7a088508,0xa108a308,0x71089b08,0x8a089e08,0x8f089108,0x39083d08,0x9a083f08,0x73087508,0x7d089408,0x95089c08,0x96088308,0x7808a308,0x2908a408,0x28050905,0x90087f05,0xd0088e08,0x9705d105,0x93088705,0x99089108,0x7608a208,0x83089708,0x84088408,0x97089808,0x7808a508,0xea087708,0xf102ee02,0xc0040102,0x1e042808,0x24014603,0xbb03c703,0xd908ba08,0xdb08a803,0xb403ce03,0x2108b508,0x23076f04,0xbf05be04,0xd0058e05,0xd708ae03,0xd608af03,0x8308ad03,0x7800e605,0xa803db05,0x5808a908,0x59053f05,0xac03d305,0xc408ab08,0xc708bb03,0x8f026903,0x4f019501,0x98057405,0x4f054e05,0x4f059805,0x3306d204,0x5c085b04,0xb8084c08,0xa806b906,0xb406a806,0xb506b506,0xb706b606,0xaf06b706,0xb706bc06,0xbb06bc06,0xb506a806,0xba06b706,0xa806b806,0xbb06b706,0x106ba06,0xc000000,0x3000200,0xd1001400,0xb6008800,0xb705a000,0xb805b805,0xa205ba05,0x1201b205,0x75011301,0xeb025c03,0xab01dd01,0xdd01aa01,0xa901aa01,0xd4020a01,0x801c601,0xc6020a02,0xdd01c601,0xc601a901,0xca01a901,0x8020701,0xc601c602,0xc501ca01,0xc501c601,0x2001d101,0x43024d02,0x20024902,0x49024302,0x3d024302,0x49023f02,0xc6023d02,0xd701d101,0x3d023f01,0x3e020702,0x7023f02,0xad01ae02,0xae021801,0xf021801,0xae01e102,0xe1020f01,0xe0020f01,0xe101d701,0xd701e001,0xde01e001,0x3e020901,0xef020702,0x7020901,0xd701c602,0xe701de01,0x701ef01,0xde01c602,0x8101e701,0xad00ac00,0xad008100,0x66008000,0x80008100,0x80006600,0x66007800,0x77007800,0x26009900,0x99003100,0x98003100,0x98009900,0x77008e00,0x8e009900,0x8e007700,0x66008700,0x87007700,0x2500a100,0xa1002400,0xa0002400,0xa000a100,0x87009b00,0x9b00a100,0x9b008700,0x66009a00,0x9a008700,0x3600a700,0xa7003500,0xa6003500,0xa600a700,0x9a00a500,0xa500a700,0xa5009a00,0xaf00a200,0x45004300,0x4500af00,0xa200ae00,0xae00af00,0xae00a200,0xa200ab00,0xaa00ab00,0x4b00b400,0x9a004f00,0xaa00a200,0x4f00b400,0xaa00b300,0xb300b400,0xb300aa00,0xaa00b100,0xb000b100,0x5a00b900,0x9a005c00,0xb000aa00,0x5c00b900,0x6600b800,0xb0009a00,0xb900b000,0xb000b800,0xb700b800,0xb700b000,0xbd00b500,0x61006200,0xb0006600,0xbd00b500,0xbc006100,0xbd00b500,0xb500bc00,0xbb00bc00,0xbb00b500,0x1d00ba00,0x6b006c00,0x6b001d00,0x1d001e00,0xc1001e00,0x1d00ba00,0xba00c100,0xbe00c100,0xba00b500,0x2800be00,0x21002200,0x21002800,0x2800c900,0xc600c900,0x2800be00,0xbe00c600,0xc500c600,0xbe00b500,0x2a00c500,0x2e002d00,0xb5006600,0x2a00c500,0x29002e00,0x2a00c500,0xc5002900,0xcc002900,0xcc00c500,0x39001900,0x3c003b00,0xc5006600,0x39001900,0x38003c00,0x39001900,0x19003800,0x20003800,0x20001900,0x53001800,0x49004800,0x19006600,0x53001800,0x52004900,0x53001800,0x18005200,0x3f005200,0x3f001800,0x6f003d00,0x51005000,0x18006600,0x6f003d00,0x6d005100,0x6f003d00,0x3d006d00,0x58006d00,0x58003d00,0x86005600,0x5e005d00,0x3d006600,0x86005600,0x85005e00,0x86005600,0x56008500,0x73008500,0x73005600,0x9d007000,0x69006800,0x56006600,0x9d007000,0x9c006900,0x9d007000,0x70009c00,0x8d009c00,0x8d007000,0xa9008a00,0x1a001b00,0x1a00a900,0xa900a800,0x9f00a800,0xa9008a00,0x8a009f00,0x9e009f00,0x8c002700,0x71008b00,0x5700e000,0x57007100,0x27003e00,0x71008b00,0x27009e00,0x71007100,0x1c003e00,0x1c007100,0x8a00b600,0x71009e00,0x8a007000,0x70007100,0xb6007100,0x70006600,0x6600b600,0x8800b600,0x66006a00,0x6a008800,0x67008800,0xa400a300,0x6a007200,0xcf006700,0xa3007400,0x6a007200,0x2b00cf00,0x72007400,0x54006a00,0x6a007400,0x2b006a00,0x2c002c00,0x23001f00,0x2c006a00,0x54002300,0x23006a00,0x54005500,0x96002300,0x63009700,0xc400b200,0x90005f00,0x5f00b200,0x90008f00,0x8f005f00,0x33005f00,0x8f006e00,0x6e003300,0x2f003300,0x6e003200,0x23002f00,0x2f003200,0x96006400,0x46006300,0x63006400,0x2f002300,0x41003000,0x95009200,0x95004100,0x41004000,0x3a004000,0x41003000,0x30003a00,0x37003a00,0x63004600,0x46005500,0x23005500,0x30002300,0x4e003700,0x7b007a00,0x23004600,0x4e003700,0x4d007b00,0x46004700,0x4e003700,0x47004d00,0x82018000,0x7f018101,0x5d016601,0x81018001,0x40017f01,0x94009500,0x39009400,0x9e064006,0xb505b405,0xb705b505,0xa05a005,0x16000b00,0x3a01d000,0x8b03c002,0x83078c07,0x7b018904,0xe4038b01,0xbd03bf01,0xc103c303,0x3703c203,0x3e003a00,0x70031206,0x3d026f02,0xee053c05,0x2b050100,0x16052d05,0x17071807,0x19071707,0x1e04e304,0x17071607,0x2b032507,0x2e032e03,0x2d032c03,0x26032d03,0x2d032703,0x28032703,0x2e032503,0x29032d03,0x25032a03,0x28032d03,0x59032903,0x35083608,0x35063408,0x24062406,0x31063006,0x32063106,0x33063306,0x38062b06,0x38063306,0x24063706,0x33063106,0x34063606,0x33062406,0x36063706,0xcf06ce06,0xbe06be06,0xcb06ca06,0xcc06cb06,0xcd06cd06,0xd206c506,0xd206cd06,0xbe06d106,0xcd06cb06,0xce06d006,0xcd06be06,0xd006d106,0xe506e406,0xd406d406,0xe106e006,0xe206e106,0xe306e306,0xe806db06,0xe806e306,0xd406e706,0xe306e106,0xe406e606,0xe306d406,0xe606e706,0x9080806,0xf807f808,0x5080407,0x6080508,0x7080708,0xc07ff08,0xc080708,0xf8080b08,0x7080507,0x8080a08,0x707f808,0xa080b08,0xf503c408,0xc208b603,0xc407c307,0xc507c407,0xbd07bd07,0xc907ca07,0xc907bd07,0xc207c807,0xbd07c407,0xb607c707,0xbd07c207,0xc607c807,0xc707c607,0xee07c207,0xf007ef07,0xf107f007,0xe907e907,0xf507f607,0xf507e907,0xee07f407,0xe907f007,0xe207f307,0xe907ee07,0xf207f407,0xf307f207,0xf807ee07,0x2c042d04,0x4504df04,0x1504f904,0xdf051a05,0x14051f04,0x18051505,0x1f051d05,0x17051b05,0x22051805,0x1b052005,0x12051105,0x13052205,0x22051105,0x18051b05,0x15051f05,0xf904df05,0xf9051504,0x1304f804,0x1b052205,0x13051e05,0x1f051b05,0xf8051505,0xf8051f04,0x19042c04,0x1b051e05,0x19051605,0x1f051b05,0x21042c05,0x21051f05,0x16051c05,0x1f051b05,0x25022205,0x22022a02,0x24022a02,0x24022202,0x22022102,0xf8022102,0x2201fa01,0xfa01f802,0xfb01f801,0xfa01f901,0xff01fb01,0xe4020e01,0xfb01f901,0xe501ff01,0xff01f901,0xe401ff01,0xff01e601,0x401e601,0xff01e502,0xbf020401,0x6b023a01,0x401e502,0xcc01bf02,0xbf01e501,0x6b01bf01,0x6f026f02,0xbe027002,0xd301cb01,0x6f01ed01,0xcb01be02,0x1401ec01,0x11021002,0x1001ec02,0x10021102,0x3020202,0x2021102,0x2020302,0xc901c702,0xc7020301,0x6f01bf01,0xcb01cb02,0x601ed01,0x5020602,0x6021502,0x19021502,0xcb01bf02,0xc9020601,0xcc01c701,0xc901c801,0xbf01cc01,0x19020601,0xc801d202,0x4401cc01,0xd2025b02,0xcc01d201,0xd201bf01,0x1901bf01,0xd2024402,0x41021901,0x19024402,0x41024002,0x40021902,0x27021902,0x40026202,0x62022702,0x63022702,0xf1023602,0x6d026d01,0x63026202,0x63026d02,0x6e026702,0x6d023602,0x5d019a02,0x9a012401,0x9d012401,0x9a019c01,0x9c019d01,0x9b019d01,0x55014301,0x3c013c01,0x9b019c01,0x98029701,0x99029902,0x91029002,0x91029902,0x96029202,0x99029702,0x95028f02,0x94029602,0x96028f02,0x99029602,0x93029202,0x96029402,0x58040d02,0x55075907,0x60013d01,0xd508c203,0xb203d403,0xc108b308,0xd408c208,0xa008b203,0xe011d01,0x81038903,0x1d011001,0x18031903,0x2c033103,0x2c032e03,0xa9085001,0xa901ca05,0xa801a801,0xba01b101,0xca01bb01,0x3a01a801,0xc301bf02,0x4f024603,0x46025402,0x4e025402,0x46022302,0x23024e02,0x45024e02,0x23021a02,0x42024502,0xcd024c02,0x45021a01,0x4b024202,0x1c024a02,0x4b021d02,0x1b021c02,0x1c021d02,0x1c021b02,0xfc021a02,0x1a021b01,0xcd024202,0xfc01f301,0x42021a01,0xfc01f202,0xbc024201,0xc401bd01,0xc401bc01,0xfd01fe01,0xfe01bc01,0xfe01fd01,0xc020d01,0xd01fd02,0xd020c02,0x1201ea02,0xea020c02,0x4201f201,0xf401f302,0xf301f201,0xf301f401,0x2601f601,0xf601f402,0xf6022601,0x2f022901,0x29022602,0x29022f02,0x38023202,0x37025202,0x2f023702,0x37023202,0x12023202,0x3801dd02,0xac023702,0xdd01ab01,0xad021801,0x2001ac01,0xac021802,0x3701dd01,0xdd021202,0xea021201,0xac022001,0x4d01dd01,0xdd022002,0xea01dd01,0xeb01e201,0xdd024d01,0xeb01e301,0x5501dd01,0x3901c102,0x39025502,0x57025602,0x56025502,0x56025702,0xd5025802,0x58025701,0x5801d502,0xe301d602,0xe201dd01,0xd601d501,0xdb01db01,0xe201e301,0x83038201,0x84038403,0x7c037b03,0x7c038403,0x81037d03,0x84038203,0x80037f03,0x84038103,0x7e037d03,0x7f037e03,0xd4038103,0x2d020a01,0xd401d002,0x68022d01,0x3a026b02,0x4d026c02,0x6c01eb02,0x5c01eb02,0x6c026102,0x61025c02,0x2c025c02,0x61025d02,0x2e022c02,0x2c025d02,0x2e022d02,0x2d022c02,0x30022c02,0x7001be02,0xc201c302,0xc301be01,0xc301c201,0xf501f701,0xf701c201,0xf701f501,0x20101,0x101f502,0x1020002,0xb01df02,0xdf020002,0xd301ed01,0xf001ee01,0xee01ed01,0xee01f001,0x1e021f01,0x1f01f002,0x1f021e02,0x28022b02,0x2b021e02,0x2b022802,0x31020b02,0xb022802,0xb023102,0xd001df02,0x30022d01,0x3001d002,0x15023902,0x16020502,0x15021702,0x17021602,0x48021602,0x17024702,0x47024802,0x51024802,0x47025002,0x50025102,0x31025102,0x50023602,0x36023102,0xdf023102,0x3601f101,0x5b01df02,0x5a024402,0x5b025902,0x59025a02,0xd9025a02,0x5901d801,0xd801d902,0xdc01d901,0xd801e801,0xe801dc01,0xe901dc01,0xe801ec01,0xec01e901,0xf101e901,0x25022a01,0x14021402,0xf101ec02,0xf1021401,0x2a01df01,0xdf021402,0xe01e401,0xcd021302,0x3c024c01,0xbc01bd02,0xc001c001,0x3c01cd01,0xc001bd02,0xd0023c01,0xc1023901,0xbd01c101,0xd0023c01,0x3c01c101,0x1301e402,0xd0023402,0x3b023c01,0xe4023302,0x3a023401,0x3b01d002,0x3b023a02,0x3a026602,0x64026602,0x3a026802,0x68026402,0x65026402,0x65026802,0x68026902,0x6a026902,0x6801ce02,0x33026a02,0x35023402,0x35023302,0xce022a02,0xcf026a01,0xce01da01,0xcf01cf01,0x2a023301,0xda01df02,0xa201cf01,0x9206a306,0x9e069206,0x9f069f06,0xa106a006,0x9906a106,0xa106a606,0xa506a606,0x9f069206,0xa406a106,0x9206a206,0xa506a106,0x5306a406,0x4b024a02,0x52024b02,0x38023802,0x4f025402,0x4f023802,0x53026002,0x38024b02,0x53025e02,0x38023802,0x5f026002,0x3f016502,0x65016401,0x44016401,0x65014e01,0x8014401,0xff01a201,0x44014e00,0x8010801,0x900ff01,0x6d036c01,0x6e036e03,0x66036503,0x66036e03,0x6b036703,0x6e036c03,0x6a036403,0x69036b03,0x6b036403,0x6e036b03,0x68036703,0x6b036903,0x99012003,0x3b02b801,0x89013601,0x3701a802,0xf8011201,0x71022101,0x77027102,0x78027e02,0x7101f802,0xfa029002,0x9101f901,0xe501f902,0xe5029201,0xcc01cc01,0x9401c701,0x53075202,0x54075407,0x4c075507,0x4d074c07,0x4c075a07,0x59075a07,0x54075207,0x57074c07,0x52074507,0x57075607,0x52075207,0x59074c07,0x56075807,0x7d075207,0x7e027802,0x7f027e02,0x80028002,0x82028102,0x79028202,0x82027a02,0x7b027a02,0x80027e02,0x7c028202,0x7e027d02,0x7b028202,0x79027c02,0x87028202,0x76028702,0x34023402,0x79021302,0x65086002,0xc8084708,0x56015402,0x5602c901,0x7015a01,0xa2010003,0x2029d01,0x9e010a01,0x98029902,0x98029d02,0x9c029702,0x96029702,0x64086202,0x15086508,0xb9012001,0x1a012802,0x1a02a101,0xa0010f01,0xf029f02,0xc7017501,0x88020201,0x8e028802,0x8f029502,0x8801c702,0xc902a702,0xa801c801,0xd201c802,0xd202a901,0x5b025b01,0xab025902,0x99029002,0x9e029e02,0x22028d02,0xfa022202,0x8d029001,0xa4012701,0x72017502,0xf402b101,0x30012e02,0xb002b501,0xb402af02,0xae02af02,0xae02b302,0xad02ad02,0xb102ac02,0x58015702,0x6f027401,0xa3016c01,0xff03e403,0x5904fc04,0x9f01d802,0xa5029f02,0xa602ac02,0x9f025902,0xf6034e02,0x6701f301,0x5501c103,0x40024102,0xab02c202,0xac02a602,0xad02ac02,0xae02ae02,0xb002af02,0xa702b002,0xb002a802,0xa902a802,0xae02ac02,0xaa02b002,0xac02ab02,0xa902b002,0xa702aa02,0xb502b002,0xa402b502,0x3020302,0xa701c902,0xe017002,0xce02bb01,0x6d017d02,0xf102f501,0xb502f002,0xb801b701,0x7e027f01,0x61028302,0x8f025d02,0xb013203,0x3d037701,0x5f013501,0x48014d03,0x71027201,0x1014802,0x602ea01,0x4001ed02,0xb6026202,0xbc02b602,0xbd02c302,0xb6024002,0x2702d502,0x55021902,0x69085608,0x3a084108,0x52083e08,0xd2018701,0xed083702,0xfa00fa00,0x1a081800,0x1a00fa08,0x3c081b08,0x37083908,0xfa083708,0xbd081b00,0x94059005,0x9405bd05,0x3805b105,0x37083c08,0x37083808,0xbd081b08,0xb005b105,0xa505a405,0xbd05a605,0xa405b005,0x38083305,0x5d081b08,0x1b083308,0xa605a408,0xd900d905,0xad05a700,0xd905a405,0x3405ad00,0x1b085d08,0x34083608,0xbd081b08,0xad05a405,0xad05bd05,0x3605ac05,0xbd081b08,0xac05bd05,0x44083505,0x29011f03,0xc02f301,0x46012e01,0x47014503,0xdd02e101,0xe002dc02,0xdb02dc02,0x9a039f02,0x96039903,0x9a029502,0xbf08b102,0xce08c008,0x36025002,0x9b03a002,0xe6039a03,0xbc03bd01,0xf501c203,0xf602f601,0x202fb02,0xc2030003,0x7702f601,0xa6087508,0xd601db08,0xeb037901,0xf001ed02,0xdc02db01,0xdd02dd02,0xd502d402,0xd502dd02,0xd902d602,0xdd02db02,0xda02d802,0xdd02d902,0xd702d602,0xd802d702,0xc702d902,0xbb02cc02,0xd902bb02,0xbe025a01,0xbb02c702,0x3c019c02,0xb4036201,0x8d018b02,0x78077701,0x86044207,0x80028102,0xed02f202,0xf602ee02,0x1f502,0x2d02f602,0xde019f01,0xda02d902,0xee02fc02,0xfd01d301,0xcb01d302,0xcb02fe01,0x5001be01,0x6a01cf05,0x96026a02,0xd800d801,0x5000d700,0xf102e805,0xf502f502,0x4802e602,0x16024802,0x9d02e802,0xbc07bb04,0x1a107,0x71030701,0x9a015d03,0x5030901,0x8030403,0x3030403,0x17031b03,0x2f031603,0x25032b03,0x26033303,0xf0022f02,0xe2021e01,0xe702e202,0xec02ee02,0xe201f002,0xe027a02,0xc001ff02,0x41024402,0x1502d702,0x42021702,0x79024502,0x56055501,0x6e056e05,0x6d056f05,0x6c056d05,0x6b056b05,0x69056a05,0x68056905,0x67056705,0x5c056605,0x55055b05,0x69056e05,0x5c056705,0x6e055b05,0x69056d05,0x5b055c05,0x6b056d05,0xfc056905,0x9030502,0xfa030903,0x1f021f02,0xfc01ee02,0x6e014702,0x94033701,0x1b016001,0x9d035903,0x1c012401,0xa0019e03,0x2d033201,0x71032c03,0x6b036c03,0x2e033003,0x1a032b03,0x10031603,0x1c034303,0xed011f01,0xf000fe00,0xf000ed00,0xe100ee00,0xed00fa00,0xe800eb00,0xde00e100,0xeb00e400,0xf700ec00,0xdf00de00,0xec00e700,0xdc00fd00,0xf500df00,0xfd00fb00,0xf300f100,0xe000f500,0xf1007100,0xe600ef00,0xef00e000,0xf100e000,0xdf00fd00,0xde00ec00,0xe100eb00,0xed00e100,0xe100ee00,0xf900ee00,0xf100ef00,0xf200f500,0xf500ef00,0xf900e100,0xe100e200,0xe900e200,0xf200f400,0xf800f500,0xf500f400,0xe100de00,0xde00e900,0xe500e900,0xf500f800,0xfc00fd00,0xfd00f800,0xe500de00,0xde00dd00,0xf600dd00,0xfc00db00,0xe300fd00,0xfd00db00,0xde00ec00,0xec00f600,0xea00f600,0xfd00e300,0x1300ec00,0xdf03e805,0x203df03,0x3050305,0x2e052d05,0x13051105,0x303df05,0x11052e05,0x60085f05,0x49084908,0x61084408,0xf7030e08,0x1101c301,0x1d031903,0xc3030e03,0xf031101,0x6e080d08,0xeb086e08,0xca00e400,0x71015a02,0x17028601,0x89012b01,0x83038403,0x56035b03,0xdf035503,0xd902db02,0xce026802,0xa030a01,0x10030f03,0x68031503,0x80030a02,0x92088108,0xdf030c08,0x3e020101,0x6b083b08,0xcd08c108,0xb103d503,0x77059405,0x2d032605,0x32033203,0x60032303,0x4f026002,0x1f032602,0x79057a00,0xc702cc05,0x4602c602,0x40034103,0xef02f303,0x602ed02,0x2030103,0xfd034803,0x43020c01,0x4d019b01,0xfd01bc03,0x48034801,0x54034d03,0xbc035203,0x7b034801,0x56025803,0x5f003302,0x91009100,0x2a062300,0x3e033f06,0x40034003,0x42034103,0x39034203,0x42033a03,0x3b033a03,0x40033f03,0x3c034203,0x3f033d03,0x3b034203,0x39033c03,0x47034203,0x37034703,0x4b024b03,0x39021d02,0x61011e03,0x58034c01,0x9d019b03,0x80037001,0x5a015d01,0x1b012403,0x1b035b01,0x5c011e01,0x56035703,0x6d037203,0x55036c03,0x59035303,0xc703cb03,0xba08ba03,0xbc08b808,0xcb040208,0x6508ba03,0xbd01c403,0x1b033a01,0x5601fc02,0x4e035703,0x4e035603,0x53034f03,0x56035503,0x54035203,0x51035303,0x53035203,0x56035303,0x50034f03,0x53035103,0x57034e03,0x5c035c03,0x29034c03,0xf6022902,0x30034e01,0xe6016801,0x82036f02,0x84018001,0x11010302,0x11028501,0x72011701,0x9c019a03,0x6e037301,0xf4036d03,0xef02f002,0xaf03b002,0xbe03b403,0xe403bf03,0x3301e401,0x2f052f02,0xbe03cf05,0xe6057803,0xef00ef00,0x3b053e00,0xab05aa05,0xaf05af05,0xa705ad05,0xa805a705,0x4b05aa05,0x8b014201,0x89010502,0x6c038c01,0xa2015b01,0x8a02b603,0xe0015401,0x52015302,0xd5025701,0x5d035d01,0x6a036303,0x57036403,0xe8035d02,0x5021602,0x56037c02,0x7d023902,0x30023903,0xf801fb02,0x65027d01,0x73036e03,0x62037303,0xfe01fe03,0x6501c401,0x51012b03,0x83027601,0x3010102,0x29034501,0x8014501,0x801a203,0x82028701,0x88028102,0x82038303,0x82038703,0x81038103,0x85038003,0xbe02ff03,0xdc01c201,0xbb01d901,0x5010602,0x42038d01,0x8a013b01,0x8a019902,0x8a02b701,0x41017b03,0x6a036b01,0x67036f03,0x38011c01,0x13027903,0xe9020e02,0x6020502,0xff027b02,0x9b01fb01,0x8f03a003,0x5d038f03,0x93022e02,0x8f039b03,0xea036003,0x41020d01,0x9c013901,0x42034703,0xcb034103,0xc502c602,0xb103b602,0xc403b003,0xc802c302,0x3e023f02,0x8803a602,0xa4016f01,0x4a015003,0x3501a601,0x5e011801,0x5b03a103,0x7012501,0x8a023d02,0x90038a03,0x92039103,0x8a020703,0x903aa03,0xef01ef02,0xac01e701,0xb703b203,0xa603a603,0x9023e03,0xb203aa02,0xb703a603,0x73013a03,0x22012501,0xb703b301,0xb103b203,0x80028503,0xb8027f02,0xb301b901,0xae01ad01,0x3801a301,0xa2012801,0x4d015802,0x7027301,0x75019801,0x36028803,0xe0012601,0xa1020f01,0xa703a103,0xa903a803,0xa101e003,0xe101af03,0xd701d701,0xb901d101,0xa903ae03,0xa803a803,0xb003af03,0xb103b003,0xb203b203,0xab03aa03,0xab03b203,0xa803ac03,0xb203b003,0xae03ad03,0xb203a803,0xad03ac03,0xb601b003,0xa301a301,0xe101ae01,0xb001af01,0xb601a301,0x4c012301,0x8c012601,0xb6029a01,0xb701b001,0xc502ca01,0x9902c402,0x9d039803,0x1d033903,0xb7021b02,0xaf01b001,0xaf01b701,0xb903b801,0xb701b801,0xba01bb01,0xbb01b901,0xb901bb03,0xb701b901,0xb903b801,0xb903b801,0xbb03ba03,0xfe01b903,0x5c055b03,0xe403cf05,0xe303e303,0xe103e203,0xde03e103,0xdc03dc03,0xd803da03,0xdd03d803,0xe003e003,0xe803df03,0xe703e803,0xe503e503,0xea03e903,0xeb03ea03,0xed03ec03,0xef03ee03,0xec03ea03,0xe803ed03,0xea03e503,0xe003d803,0xe103e803,0xd803dc03,0xe303cf03,0xbc03e103,0xcf03be03,0x401bf03,0xc303bc02,0xbc01bf03,0xe103cf03,0xc303d803,0xcf03bc03,0xd401c603,0xc103c101,0xcf03c303,0xe803d803,0xed03ea03,0xf003ef03,0xcf03c103,0xcc03d803,0xc101c603,0xf203f303,0xf603cc03,0xf303f403,0xf703f903,0xc603f603,0xf903fe03,0xc503c903,0x3c603,0xc903c804,0xff03fc03,0xfb040003,0xfc03fd03,0xfa03ca03,0xcb03fb03,0xca03f803,0xcb03c703,0xca03ca03,0xfc03fb03,0x3fc03,0xc903c904,0xf903c603,0xf603f903,0xcc03f303,0xd803c103,0xf303f903,0xca03cc03,0xc903fc03,0xca03c703,0xea03c903,0xf003ed03,0xf103d103,0xea03d203,0xd103f003,0xc703c403,0xf503c903,0xc903c403,0xd103ea03,0xea03d203,0xd303d203,0xc903f503,0xd503f903,0xce03cd03,0xf503ce03,0xea03f903,0xe603d303,0xe603ea03,0xce03d903,0xcc03f903,0xd503d403,0xd403ce03,0xcc03ce03,0xea03d803,0xdb03d903,0xd703d003,0xd903d803,0xd403db03,0xd803cc03,0xd703db03,0xd603d603,0xd803d403,0x1f086f03,0x20082008,0x70082108,0xd100d308,0x33047b00,0xf4053205,0x6d056303,0xf8056f05,0x203cb03,0x3602cf04,0x81026e02,0x95088208,0xfb07fa08,0x5d04eb07,0x82011803,0xde050e01,0x1b03e103,0x9e016003,0x18071701,0x25072507,0x27072607,0x28072707,0x1f071f07,0x2c072007,0x2c071f07,0x25072b07,0x1f072707,0x17072907,0x1f072507,0x2a072b07,0x29072a07,0xbd072507,0xb008b708,0x85078408,0x73077307,0x81078007,0x82078107,0x83078307,0x7b077a07,0x7b078307,0x73078807,0x83078107,0x84078607,0x83077307,0x87078807,0x86078707,0x5d077307,0x41075e07,0x97079604,0x98079807,0x91079907,0x9e079107,0x91079d07,0x9c079d07,0x98079607,0x9b079107,0x96078a07,0x9c079107,0x9a079a07,0x96079b07,0xa007b107,0xac07ac07,0xae07ad07,0xaf07ae07,0xa707a707,0xb307b407,0xb307a707,0xac07b207,0xa707ae07,0xb107b007,0xa707ac07,0xb007b207,0x3e034007,0xbe034403,0xbd03bc03,0xd907d803,0xda07da07,0xd307db07,0xe007d307,0xd307df07,0xde07df07,0xda07d807,0xdd07d307,0xd807cc07,0xde07d307,0xdc07dc07,0xd807dd07,0x14071307,0x7d041207,0x65019701,0xa000001,0xda001700,0x8050a03,0xfd04fa05,0xd050d04,0x9050b05,0x6050905,0x4050405,0x1050005,0x3050105,0x1050205,0x5050205,0xfa04fe05,0xff050d04,0xfe051004,0xff04fc04,0x404fe04,0x5050105,0x5050405,0xfb050705,0xfe04fc04,0xf050e04,0xfb04fb05,0xd04fe04,0x4050905,0x9050705,0x8050705,0xfb050e05,0xc050d04,0xd050e05,0x9050d05,0xa050805,0xd050c05,0xbd02c205,0xc302c302,0xc502c402,0xc602c502,0xc702c702,0xbf02be02,0xbf02c702,0xc302c002,0xc702c502,0xc202c102,0xc702c302,0xc102c002,0xb108bf02,0xac08ac08,0xd203d308,0xbf08be03,0xdb08ac08,0x37053a00,0xc201d005,0x9d03c103,0x1d059f05,0x42041b05,0x1c074307,0x2a072904,0x63026707,0xf902d202,0xf0044504,0x2e042a03,0xff03ff04,0x2b03fc03,0x703dd04,0x21050505,0xec042c05,0x6c083d03,0x7e086b08,0x2c023003,0x1c051602,0x1903ea05,0xe9051605,0xc03dc03,0x66050a05,0x69086808,0xd2059708,0xd305d305,0x9c05d405,0x9a059c05,0x13059705,0xe7051e05,0x23032803,0xc7021a02,0x6070504,0xa3051407,0x6d058905,0x2a082808,0xe7082a08,0xdf00df00,0x6d00dc00,0x37014a08,0x2c01a701,0xed042d04,0xfa052303,0xf04fe04,0x6001000,0xcf00d500,0xd006700,0x45084801,0x6a042a08,0x3b053b04,0x45053e05,0x47054505,0x4b054b05,0x3a053705,0x40053a05,0x41054105,0x4d054905,0x35054d05,0x39053905,0x4c053105,0x3c054c05,0x3d053d05,0xdd023805,0x4201dd01,0x3d054305,0x4301dd05,0x4d054105,0x4b053905,0x41053a05,0x3b042a05,0x2e054505,0x45042a04,0x3d054c05,0x4c054305,0x4a054305,0x2e054405,0x46054504,0x45054405,0x4c053905,0x39054a05,0x32054a05,0x45054605,0x54054b05,0x4b054605,0x32053905,0x39053305,0x34053305,0x54053605,0x38054b05,0x4b053605,0x39054105,0x41053405,0x48053405,0x4b053805,0x41054105,0x3f054805,0x5c075b05,0x6e076e07,0x40041e07,0x5b076204,0x50076e07,0x4e054f05,0x30054e05,0x33052f05,0x5001cf02,0x2f054e05,0x5f023305,0xa200c400,0xba05a205,0xd505bb05,0xf1081c05,0xa2005f00,0x9105bb05,0xbb005f00,0xf105d505,0x8b007100,0x7008c00,0x7105d506,0xf4008b00,0xbb009105,0xf4061705,0xd505bb05,0x7008b05,0x705d506,0x17060906,0xd505bb06,0x17060805,0xd505d506,0xfc060905,0x1a008905,0x89001b00,0xda001b00,0xda008905,0xfc060005,0x8905,0x5fc06,0x95060106,0x93009200,0x95009400,0xd5009300,0x105fc05,0x105d506,0x9405ee06,0x8009300,0x9405fe06,0xef060800,0x68006905,0x6805ef00,0xee05f000,0xf005ef05,0xf005ee05,0x1305f805,0x805fe06,0x8061306,0xd505d506,0xf805ee05,0xf805d505,0x1205f905,0xd5061306,0x7a007b05,0x8300c000,0x5d005e00,0x5d008300,0xea008400,0x84008305,0x8405ea00,0xf905eb00,0xeb05ea05,0xeb05f905,0xbf05ec05,0xc0007b00,0xbf060a00,0xd500c000,0xec05f905,0xc0060a05,0x1b061200,0x12060a06,0x51007f06,0x7f005000,0x82005000,0x7f05e100,0xe1008200,0xe2008205,0xe105ec05,0xec05e205,0xd705e205,0x12061b05,0x1a05d506,0xd5061b06,0xec05d505,0x9705d705,0xc3009600,0x9700c200,0x7d00c300,0x48004900,0x48007d00,0x1e007e00,0x7e007d06,0x7e061e00,0xd7062200,0x22061e05,0x2205d706,0xc205e006,0x1a00c300,0xc2061506,0xd5061a00,0xe005d705,0x1505d905,0xd9061a06,0xd5061a05,0xd9062105,0xa405d505,0xc800a300,0x3c007900,0x79003b00,0x7c003b00,0x79061600,0x16007c00,0x1c007c06,0x1605e006,0xe0061c06,0xc061c05,0xa400c706,0x1d00c800,0xc800c706,0xe005d500,0x1d060c05,0x2100c806,0x1d05d806,0x75062106,0x2d002e00,0x2d007500,0xd007600,0x76007506,0x76060d00,0xc061400,0x14060d06,0x14060c06,0xd8060e06,0xd5062105,0xd805e905,0xd505d505,0xe060c05,0xac00ad06,0xca00cb00,0xcb00ad00,0x2105e600,0xe6002200,0xe7002205,0xe605fd05,0xfd05e705,0xb05e705,0xfd060e06,0xe060b05,0xf060b06,0xcb00ca06,0xe805e900,0xe900ca05,0xe05d505,0xf3060f06,0xe905e805,0xe905f305,0xf205d505,0xd505f305,0x26003105,0xe500ce00,0x6c006b05,0x6c05e500,0xe305e400,0xe405e505,0xe405e305,0xf05fa05,0xfa05e306,0xfa060f05,0xcd05fb05,0xce003100,0xcd05f100,0xd500ce00,0xfb060f05,0xce05f105,0x305f200,0xf205f106,0x61006005,0x60006200,0x65006200,0x6005db00,0xdb006500,0xdc006505,0xdb05fb05,0xfb05dc05,0xde05dc05,0xf2060305,0xff05d505,0xd5060305,0xfb05d505,0x2405de05,0xf6002500,0x2405f705,0x5905f600,0x5a005c00,0x5a005900,0x20005b00,0x5b005906,0x5b062000,0xde05df00,0xdf062005,0xdf05de05,0xf705ed05,0xff05f605,0xf705f505,0xd505ff05,0xed05de05,0xf5060205,0x205ff05,0xd505ff06,0xd5060205,0x4a05ed05,0x4b004f00,0x4b004a00,0x19004c00,0x4c004a06,0x4c061900,0x35061f00,0xdd003600,0x35003405,0x3405dd00,0x1005dd00,0x34060606,0xed061000,0x1f061905,0x1f05ed06,0x6060406,0x2061006,0x6060506,0x2060206,0x405ed06,0x2060506,0x18060406,0x4060506,0x4061806,0x45061106,0x44004300,0x18004400,0x42061106,0x44004500,0xff060300,0x8c06b205,0xf9002700,0x91062307,0xe205f400,0x28021e02,0xc00ff02,0x8402f301,0x7b045705,0xdf01da04,0xd9030c01,0xaa03e603,0x2000308,0xb000b00,0xa00,0x1000000,0x4000400,0x6000500,0x4000000,0x9000600,0xb000300,0x9000800,0xb000b00,0x6000000,0x8000700,0x93000b00,0x2d022e03,0x37011202,0x40084001,0x48084308,0xd084808,0x13011901,0x40011201,0x19084808,0xf9011301,0xe007fa07,0x93060804,0x88062f00,0x8d077b07,0x1a058804,0xb3051505,0xce08b408,0xcd03ce03,0xa708c103,0xb906a806,0xcc06b906,0xae045a04,0xb906a706,0x26086d06,0x7b082708,0x7f077a07,0x73077407,0x7b048d04,0x74077f07,0x9b048e07,0x2c079a07,0x7a00da00,0x7b057905,0x67003205,0x5e055d05,0x5e055a05,0x5d055d05,0x60055f05,0x61056005,0x62056205,0x65056305,0x64056505,0x65055705,0x58055705,0x62056005,0x5a056505,0x60055d05,0x58056505,0x59055905,0x60055a05,0xd208be05,0x2103f103,0x5f025e03,0xfa081802,0xff00e100,0x12070006,0xe071207,0x13041304,0x604d204,0xff070607,0x62071206,0x6d056c05,0x82088305,0x2d082d08,0x28082908,0x23082808,0xd6081e08,0xb605b905,0xb305b605,0xd405d405,0x7905cf05,0x7905d408,0x84087a08,0x2d088308,0x84088608,0xb6082d08,0x7a05d405,0x7a05b608,0x86087b08,0x28082d08,0x86088808,0xb6082808,0x7c087b05,0x7c05b608,0x88087d08,0x1e082808,0x88088908,0xd6081e08,0x7d05b605,0x7d05d608,0x8a088508,0x1e088908,0x8505d608,0x87088708,0x1e088a08,0x73077208,0x85078507,0x3040407,0x54040304,0x79077904,0x85077207,0x6e02d007,0x58026702,0x4b085b08,0xe3054008,0xc100ea00,0xbc05bf05,0x7101dd05,0x70057005,0xf203cc05,0x4303f203,0x42054205,0x7001dd05,0x2c082b05,0xec00ec08,0x2a00e700,0x21051c08,0x703eb05,0x86078404,0xf001007,0xe000e00,0xc000d00,0x17000c00,0x16001600,0x14001500,0x13001400,0x14001200,0x11001200,0xc000e00,0x14001600,0x10001100,0xe001000,0x2001600,0x3030103,0x4030303,0x5030503,0xfd02fc03,0xfd030502,0x202fe02,0x5030303,0x2ff03,0x5030203,0xff02fe03,0x3c023b02,0x45017e02,0x7c024e02,0x66026401,0x66019302,0x5c023b02,0x64026501,0x4c019002,0x78024202,0x4c023c01,0x6a017a02,0x95026902,0x50054f01,0xd700d705,0x7200d600,0xd7054f05,0x76057200,0x74057705,0x76057505,0x74057405,0x72054f05,0x75057305,0x4d057405,0xe500dd05,0xf4054700,0x5e00f800,0x5f086008,0x6c086b08,0x4b085e08,0xfc00f805,0xd5035e00,0x4501e201,0xf400f205,0xfb04eb00,0xe907fc07,0x3100e200,0xea054105,0xef00f600,0x4500f200,0xf6054905,0x3a00dd00,0xe300db05,0x4e053000,0x24059805,0x1004fe05,0x98053005,0x8c052405,0x8a088908,0xbd036608,0x2d01c101,0x95020a02,0xb705b603,0x7105b505,0xc601dd05,0x7003cc01,0x69057105,0x6b056a05,0x61056b05,0xce056005,0xb01da01,0x5a085903,0x88085b08,0x51058605,0x31055105,0xdf04df04,0x88051a04,0x28042705,0x1803f104,0x11031903,0x11031803,0x16031203,0x18031703,0x10031503,0x14031603,0x16031503,0x18031603,0x13031203,0x16031403,0x4e012c03,0x27084b08,0x9052805,0x24052305,0x98059805,0x77057405,0x94057705,0x90059005,0x8c058e05,0x8a058c05,0x8b058b05,0x8f058d05,0x91058f05,0x95059505,0x9a059705,0x9c059a05,0x9e059e05,0xa205a005,0xc405a205,0x7c00b200,0x86058705,0xb205a205,0x9a057c00,0xa2059e05,0x8b058c05,0x98058f05,0x90057705,0x23052505,0x25059805,0x90059805,0x7c05a205,0x86058605,0x89058805,0x8605a205,0x25058905,0x8c059005,0x25052605,0xa2058c05,0xa3058905,0xa305a205,0x2705a105,0x8c052605,0x27052805,0xa2058c05,0x9f05a105,0x9f05a205,0x29059d05,0x8c052805,0x8c052905,0x9a058f05,0x9d05a205,0x9d059a05,0x2a059b05,0x8f052905,0x2a052c05,0x95058f05,0x9b059a05,0x9b059505,0x2c059905,0x95058f05,0x2d052e05,0x2b052b05,0x95052c05,0x99059505,0x95059605,0x92059605,0x2e059305,0x2b052b05,0x92059505,0x2304fa05,0x4052505,0x2c052a05,0x5c022c05,0x74037402,0x80037a03,0x2c037f03,0x17037402,0x9d059b05,0x96052005,0x26059905,0xb052705,0x26052505,0x58050d05,0x4f084d08,0x76018508,0xd7031f01,0xad08ae03,0xa305a108,0x78051405,0x82053b05,0x83058505,0xcd057805,0x34016d02,0x5a085b01,0x53085308,0x5c085408,0x68086708,0xd9086608,0xd700d600,0x99051b00,0x52059b05,0xab05ae08,0x5a085305,0x52083508,0x5305ab08,0xac083508,0xa085205,0x91011403,0x6c056b01,0x4a056205,0xf2054305,0x4c074d03,0x46075107,0x20043f07,0x1f042004,0x4d074d04,0x46075107,0x8000907,0x4e001200,0xa8012c08,0xa705a805,0xd900d905,0x2000d800,0x15012001,0x28011a01,0x3b013801,0x1a012001,0x4e012801,0xd905a808,0x4a011700,0x2b084e08,0x4e011701,0x2000d908,0x28012801,0x42013b01,0x4b014201,0x42014d01,0x58014d01,0x2800d901,0x2b014201,0xd9084e01,0x2b015100,0xd900d901,0x58014200,0x51015701,0x3600d901,0x38013b01,0x38013601,0x26012701,0x27013601,0x27012601,0x8c018d01,0x8d012601,0x8d018c01,0x4018b01,0x8b018c01,0x8b010401,0xf017401,0x15011a01,0x15010f01,0x75010e01,0xe010f01,0xe017501,0x72017001,0x70017501,0x70017201,0x74017101,0x71017201,0x71017401,0x4015a01,0x5a017401,0x5a010401,0x6d013301,0x83017d01,0x83016d01,0x34016801,0x68016d01,0x68013401,0x2f013001,0x30013401,0x30012f01,0x33012e01,0x2e012f01,0xff010c01,0x3301a200,0xc012e01,0x33010401,0xc010c01,0x1a201,0xc010401,0x65010001,0x20019701,0xd8012001,0x3f011600,0x20016501,0x20013f01,0x3f011601,0x21011601,0x3f012d01,0x2d012101,0x1d012101,0x2d019f01,0x9f011d01,0xa0011d01,0x9f01a101,0xa101a001,0x9e01a001,0xa1010001,0x60019e01,0x90019401,0x9e010001,0x4016001,0x60010001,0x90016001,0x60019301,0x5c019301,0x60010401,0x7e015c01,0x4f017a01,0x7e015c01,0x4d014f01,0x40014b01,0x4d014801,0x48014001,0xa014001,0x48010101,0x1010a01,0x2010a01,0x1010301,0x3010201,0x4010201,0x17084a01,0x11011101,0x4010301,0x11084a01,0x19010401,0x4a010d01,0x31013e08,0x2a012a01,0x4a011901,0x4084a08,0x4a015c01,0x4f015c08,0x2a013e01,0x5d084a01,0x3e016601,0x24012901,0x5d015d01,0x4a013e01,0x5d012908,0x29084a01,0x4f084a01,0x4f012901,0x45014901,0x49012901,0x49014501,0x47014601,0x46014501,0x46014701,0x6e017601,0x76014701,0x8e018501,0x6e00fe01,0x85017601,0x6e018401,0x85018501,0xed00fe01,0x3900ed00,0xed084008,0x37084000,0x84016a01,0x55018501,0x59014301,0x85016a01,0x3d00ed01,0x59015501,0x6a015901,0xed00ed01,0x4a013700,0x4a00ed01,0x3d015001,0xed015901,0x3d013500,0xed00ed01,0x69015000,0x82018101,0x10011801,0x18018101,0x22012301,0x23012501,0x5b012501,0x23014c01,0x4c015b01,0x6c015b01,0x4c016901,0x69016c01,0x6f016c01,0x18011001,0x32013501,0x35011001,0x6900ed01,0xb016f01,0x35013201,0x35010b01,0x700ed01,0xed010b01,0x39013a00,0x3a014101,0x7b014101,0x3a017301,0x73017b01,0x89017b01,0x73018801,0x88018901,0x5018901,0x88016f01,0xed010501,0x5016f00,0x5e015f01,0x92016301,0x63015f01,0x63019201,0x6019801,0x98019201,0xed010701,0x5010500,0x98010601,0x55085601,0x79085708,0x90078900,0x38079007,0x65003c00,0x6e056f05,0x63076405,0x5d076807,0xf045307,0x10040f04,0x64076404,0x5d076807,0xdc050c07,0x5703de03,0x82058500,0x92052205,0x2a059605,0x6050405,0x44010805,0x7d02fa01,0x8f009005,0x5105a900,0x5e085408,0x63085d08,0x66086308,0x62086408,0x63085e08,0x20018508,0x81032103,0x98069704,0xec00f706,0xf7082c00,0x2e082c00,0xde080e08,0x2f00f700,0xe083008,0x2e00f708,0xde082f08,0xf080e00,0x2000b08,0x35001500,0x2a062904,0x8b058d06,0xc905c805,0x8d05ca05,0xc6058a05,0xc705c705,0x8b05c805,0x68055f05,0x7b056905,0x6e057e05,0x6e041e00,0xb076d07,0x76010701,0xc3058c03,0xc405c405,0x8a05c605,0x67055d05,0xf8056805,0x5040103,0x17081604,0x16081508,0x1a081908,0x1d081f08,0x1e05d608,0x24082308,0x2d082908,0xc082e08,0x7c077d06,0x2e03ff07,0x2e054404,0x8074007,0xb1060304,0x8d06b006,0x7f087e08,0x24011b08,0x1b012901,0x1f012901,0x1b011e01,0x1e011f01,0x1c011f01,0x1e016101,0x61011c01,0x67011c01,0x59016a01,0x6b016b01,0x67016101,0x50101,0x4052c05,0xf206f306,0xf3034f06,0x2a01cd01,0x24062306,0xc3063506,0x2a043904,0x35062406,0x6d082606,0xdc00dc08,0xfb00fd00,0x2400fb00,0x25082508,0xdc082608,0x7b004d00,0xbf00bf00,0x56064f00,0x8d008a06,0xb707e600,0xbb07b807,0x7e048004,0x3e067f06,0x43063f06,0x78044204,0x41077907,0x3b064506,0x5c063b06,0x4e044e04,0x3b064106,0xf007d706,0x68006805,0xcd009d00,0x4a06ff07,0x9061900,0x2060706,0xc0061208,0x43064500,0x48064406,0x2a011906,0x89012201,0x4e064d04,0x50064f06,0x61066106,0x5d044d06,0x4f065604,0x98066106,0xcd003100,0xa700cd00,0x9a06ae06,0xc2009b00,0x52065106,0x62046206,0x53065204,0x55065406,0x8b045206,0xae06ad04,0x5b065706,0x51065106,0x70046906,0x57066404,0x4f065106,0xa00bf06,0x59061b06,0x1b065806,0x5a061a06,0xc3061a06,0x59065b00,0x5e065a06,0x4b064a06,0x3a063a06,0x47064606,0x48064706,0x49064906,0x4e064106,0x4e064906,0x3a064d06,0x49064706,0x4a064c06,0x49063a06,0x4c064d06,0x61044d06,0x9a066006,0x62066004,0x6304a306,0x65066406,0x77066606,0x71067706,0x6c046804,0x77066506,0xd500d006,0x63055200,0xc2009700,0x6500c200,0xaa066c06,0xee00ab00,0x68066706,0x6f046f06,0x69066804,0x6b066a06,0x63046306,0x6c066b04,0xdf06db06,0xd506d506,0x4a04bf06,0xdb06e804,0x4506d506,0x7a00c006,0x4e007a00,0x64063b00,0x56056e05,0xc2066505,0xd9061500,0x6e066f05,0x2105d906,0x21067006,0x7100c806,0xc806c706,0x5d06cc06,0x5f065e06,0x57065f06,0x5f066406,0x63066406,0x5d065c06,0x61065f06,0x5c065006,0x61066006,0x5c065c06,0x63065f06,0x60066206,0x71065c06,0x76067704,0x7604b406,0xc4067806,0x7a067904,0xb607b506,0xc707c707,0xaf04a007,0xb507bc04,0x7707c707,0x96007800,0x7e067d06,0x9c048006,0xab06aa04,0x97069606,0x99048106,0x93069d06,0x59069306,0xa604cb04,0x93069906,0xcb068706,0xac00ac00,0x7d008100,0xcd06a706,0xe05f100,0x65076606,0xe905d807,0x7068605,0x3008c06,0x86068508,0x31068a06,0x39013e01,0x6d067501,0x75067a06,0x79067a06,0x74067306,0x66067506,0x73067206,0x77067606,0x75066606,0x78067906,0x76067806,0x66066606,0x75067306,0xb1049406,0xa107b007,0x9c079a04,0x8f04e107,0xf7069006,0x907f807,0xc2080908,0xfe043004,0x907f707,0x20019908,0x99019701,0x87019701,0x99018a01,0x8a018701,0x52018701,0x8a015401,0x53015201,0x5a013301,0x52015401,0x53015301,0x56015a01,0x1a00a801,0x89008900,0xfe07f700,0x3f003d07,0xd507a400,0xb506d606,0xce04d804,0xb607cf07,0xf006ef04,0xb306af06,0xa906a906,0xe5047606,0xaf06bc04,0x9506a906,0x48007e07,0x53004800,0x39078b00,0xfe009406,0x9b05f305,0xf3069a06,0x9c05f205,0x5b05df06,0x9b070c00,0xa0069c06,0x8d068c06,0x7c067c06,0x89068806,0x8a068906,0x8b068b06,0x90068306,0x90068b06,0x7c068f06,0x8b068906,0x8c068e06,0x8b067c06,0x8e068f06,0xa304ab06,0x5f06a206,0xe606e404,0xb04dd06,0xe9080c08,0xfb06ea06,0x4b06fb06,0xf004be04,0xfb06e906,0x2f072d06,0x2e072e07,0xed042407,0x2d073504,0x50072e07,0x5c084c08,0x54085c08,0x87085108,0xac008e00,0x204db06,0xee070307,0xb606ef06,0x81046e04,0x2b068206,0x25062f06,0x49062506,0x38043a04,0x25062b06,0xf606b306,0x25002505,0xa900a100,0x7f07b506,0x905e100,0x80106,0x2205e008,0xff079406,0xb305f605,0x3a073906,0xa0073e07,0xc607c704,0x8c04d407,0x36068e06,0xbc06bb04,0xbe06bd06,0xcf06cf06,0x7704e606,0xbd06c404,0xa006cf06,0xf7002400,0xbd05f705,0xb506c406,0x1c00b700,0xc006bf07,0xc804a506,0xed06ec04,0xd906d806,0x9b04a606,0xc406c304,0xc906c506,0xbf06bf06,0x33049706,0xc506d204,0x1706bf06,0xcd024702,0xd302cd02,0xd802da02,0xcd021702,0xdd06c902,0x36003605,0xbf00a700,0xf706bd06,0x1705f505,0x2c062d06,0xdf05ed06,0xdc070b05,0x24006505,0xd607d507,0xe607da07,0xce06cf04,0xce043706,0xbc06d006,0xca07c904,0xd406d307,0xe506e506,0x98043406,0xd306da04,0xc906e506,0xe6002100,0x5b05e605,0xc5076207,0x6000c600,0x94069307,0x41048c06,0x5f075e04,0x61076007,0xa604f607,0xda06d904,0xd707d306,0xcd07cd07,0xb7047e07,0xd307e004,0x2407cd07,0x62006507,0xbd006200,0xa0071900,0x92015f03,0xa905d701,0xfb07a807,0x3a05fa05,0x44061807,0xb106df00,0xb606b206,0x9b039a06,0x9a039303,0x94039303,0x99039803,0x92039a03,0x98039103,0x92039703,0x98039803,0x94039a03,0x94039803,0x96039503,0x98039703,0xe5043403,0xba06e406,0xc807c604,0xa504f207,0x3906a606,0x4b063a06,0x3b064b06,0x40044804,0x4b063906,0x6100bc06,0x60006000,0x35072d00,0xbb00ba07,0xa9073300,0x9c06aa06,0x3104f104,0x4073207,0xc7070507,0x8f046004,0x91079007,0x8b079507,0x3c078b07,0x9e049304,0x8b079107,0xe7075107,0x22002205,0x46002800,0x60072d07,0xde05db00,0x21072205,0x1f060407,0x1f06f406,0xf5004c06,0xb070a06,0xf9070f07,0xfe06f106,0xfe06f906,0xf706fd06,0xf906f806,0xf606ea06,0xfa06f706,0xea06fb06,0xfd06f906,0xfc06fc06,0xea06fa06,0xf706ea06,0x4b06f906,0xfa06fb04,0xb004ad06,0xb207b207,0xb407b304,0xcc07cb07,0xdd07dd07,0xce04a907,0xcb07d204,0xe507dd07,0x4b074405,0x1e074b07,0xb0006b00,0x400b100,0x75077407,0xf7046107,0x48074704,0xd107d007,0x8204b907,0xa607a504,0xf506f107,0xeb06eb06,0x5b04d306,0xf106fe04,0xc06eb06,0x5a005b07,0xb9005a00,0x16070100,0x20005907,0xa05ed06,0xde070907,0x2305dc05,0x7e062207,0x22079500,0x27072307,0x8d049007,0x7d068c06,0x4c064a04,0x4029c06,0x59010201,0x1e071600,0xb8071e07,0xa2005c00,0xd800a500,0x1a071906,0xe804e807,0x1b071a04,0x1d071c07,0x5b04dc07,0x9600c306,0x64009600,0x3b065100,0x6c05e407,0x1d006c00,0x89073000,0x16007907,0x3905fb06,0x5073807,0xde061806,0xdd061006,0x4f06c905,0x54075007,0x12071107,0x70007,0xe070d07,0xf070e07,0x10071007,0x8070707,0x8071007,0x71507,0x10070e07,0x11071307,0x10070007,0x14071507,0x13071407,0xc070007,0x2c072b04,0x43041807,0xd4073707,0xaf03d603,0x34044608,0xca063606,0x98069100,0x80069806,0x1900ad00,0x7700cc00,0x31073007,0x8304f107,0x8d078c04,0x34073307,0xf004e707,0x4b074a04,0x36073707,0x30073b07,0x1604f307,0x3b073704,0x68073007,0x2d007607,0x2a002d00,0x44075d00,0xe305e507,0x10060205,0xb06c806,0x5105e706,0x2080107,0x3c080608,0x3e073d07,0x3f073e07,0x36073607,0x43073707,0x43073607,0x3c074207,0x36073e07,0x2f072e07,0x40073c07,0x3c072e07,0x36073c07,0x41074207,0x3c074007,0x52055307,0x64046405,0x51043104,0x2a040b05,0x8072b07,0x41074004,0x15041d07,0xb6070807,0xba05b905,0x2e002905,0x75007500,0x79077200,0xc100be07,0x46074900,0xf7074707,0xa2049e04,0x4907a307,0xf0074a07,0x6104f604,0x8076207,0xc070707,0xe2070107,0x8041a04,0x1070c07,0x8e00fe07,0x77018601,0x7a014f01,0x8600fe01,0x7c017701,0x7700fe01,0x7a017701,0x79017801,0x77017c01,0xc8067101,0xa300a300,0x67007400,0xe6075b06,0xf05fd05,0x4e074f06,0xb060f07,0x99075006,0x7e087608,0xde06dd08,0x1706e206,0x1c072907,0x41040a04,0xfb074207,0x2b042a03,0x14041204,0x71507,0x46054404,0x45074405,0x57075707,0x38041507,0x44074b04,0x4a075707,0x606ff00,0xb3070607,0x66004f00,0x80006a00,0xec06eb06,0x6104c806,0x76077504,0x29062807,0x83043506,0x7d068706,0x85067d06,0x9004ac04,0x7d068306,0x1f072006,0x19072407,0x2504ee07,0x24072004,0xf5071907,0x4b004c06,0xb4004b00,0xcb06eb00,0xea008307,0x14060e05,0xfa076706,0x3b05e405,0xf406f307,0xea06f806,0xa406a204,0x3500a606,0x34003400,0xda06d300,0x55005406,0x1066a00,0xdb070207,0xee00f904,0x8e053c00,0x60078f07,0x1d04dc04,0x20071e07,0x5e025303,0xe102dd02,0xd202d202,0x27026302,0xdd02d402,0x7f02d202,0x3b007c07,0x39003b00,0x72077400,0xd007507,0xbf05ec06,0xc07be07,0x7e061c06,0x7c061c07,0x7d077f00,0x82077e07,0x6e076d07,0x5c075c07,0x6a076907,0x6b076a07,0x6c076c07,0x64076307,0x64076c07,0x5c077107,0x6c076a07,0x6d076f07,0x6c075c07,0x70077107,0x6f077007,0x11075c07,0x7001c303,0xc1058e02,0xc205c205,0x8c05c305,0x51006d05,0x7f007f00,0xbc07b500,0x20001807,0xa5078e00,0xc106c004,0xc306c206,0x1c049b06,0x17031803,0x4406df03,0x43004300,0xd500af00,0xc7067b06,0xe0061d00,0x92079305,0x12061307,0xf2064406,0x9d00ce05,0xc007bf06,0xc807c407,0x54054603,0xd084a05,0x91084601,0xa3069206,0xab06a306,0x98048604,0xa3069106,0xcb008306,0xd207d207,0x5e008507,0x47004600,0xa1065400,0x9e07a207,0xd604b504,0xac06d706,0x8b06ad06,0x55045204,0xa7065606,0xa107ab07,0xae07a107,0xb4049f04,0xa107a707,0x93062f07,0x92009200,0x25004100,0x4206e906,0x13061100,0x42064306,0xe205d706,0xe207aa05,0xab008205,0xaa07a907,0x6607ae07,0x5f015e01,0x3e016201,0xcc016601,0xb806b904,0xb804f506,0x6b06ba06,0x38063704,0x7c067b06,0x8d068d06,0x7a049006,0x7b068204,0x56068d06,0xba005800,0x26062507,0xbb044406,0xb907b804,0xbb07ba07,0x43049d07,0x40063f04,0xc107bd06,0xb707b707,0xaa04d007,0xbd07ca04,0xc107b707,0x5d008407,0x86005d00,0xd307b700,0x6003406,0xdd060506,0xec06dc06,0xc005eb05,0x8405eb07,0x6607c100,0x6b076707,0x7f00d007,0xda00da05,0xd2002c00,0xfa046d00,0xa706fc06,0x9e079d04,0xa0079f07,0xb107b107,0x3d049407,0x9f07a604,0x7207b107,0xc700a400,0x7b00c700,0x70068206,0xd0007300,0xce07cd07,0x4404d807,0x27062604,0x81068006,0xb9046e06,0xd207d104,0x307ff07,0xf907f908,0xcf048807,0xff080c04,0xf707f907,0xfc008907,0xd505f905,0xf907d407,0xd605f805,0xf005f807,0x8b07d705,0x86089808,0xdd04a908,0xcd07dc07,0xf407f204,0xdf04c907,0xe107e007,0xf307e207,0xb807f307,0xe8047f04,0xf307e107,0xe105ef07,0xe807e807,0x69009c07,0x2f003000,0xe3062800,0xec07e407,0xe404ec04,0xe607e507,0xd907e707,0xe704d904,0xe907e807,0xe307ed07,0x2f07e307,0xf604c104,0xe307e907,0xda07ed07,0x1b001b05,0xe300a900,0xef07e107,0x105ee05,0xea07eb06,0x60107,0x7ec06,0xed05da06,0xec07eb07,0xb807f007,0xf207f304,0x3e086a07,0x61085f08,0x6a084208,0xf504d608,0x7407f607,0xa2087608,0xaf05ad08,0xcf05ab05,0xca042904,0xf803ca03,0xca040603,0xa8040603,0xcf04dd04,0xde03ca04,0xca04dd04,0xa803ca03,0xa704a704,0x94049304,0x9404a704,0xda04ad04,0xca04de04,0xc204c103,0xd604da04,0xda04c104,0xad04a704,0xb204b304,0xa0049f04,0xa703ca04,0xb304b304,0xa004b204,0xa004b304,0xd604ba04,0xca04da04,0xd604d703,0xb303ca04,0xbd04ba04,0xaa04bc04,0xca04a904,0xbd04b303,0xbc04bd04,0xbd04a904,0xc504a904,0xca04d704,0xb704bd03,0xcd04b804,0xc504bd04,0xc904ca04,0xcd04b704,0xbd04d704,0xca04ca04,0xcd04c904,0xe9004204,0xf006f006,0x4500ae06,0x9f009e00,0x3b07fc00,0x51063c06,0x3c045104,0xa4063d06,0x8207a507,0x71066d04,0x67066706,0x8f047906,0x6d067a04,0xab066706,0x50008207,0x6f005000,0x9107a100,0xe800ca06,0x8505d805,0x17068406,0x2e060806,0x76061406,0x6f076800,0x74067006,0x904c206,0xda080808,0xa080804,0xe7046608,0x5206e806,0x7d004900,0x9f007d00,0x1107a607,0x15081408,0x17081508,0xe100e108,0x1200e800,0x11081208,0x4e081508,0x38025402,0xf0053d02,0x4e00fe00,0x3d023802,0x7c00fe05,0x65024e01,0x46086908,0x1902d608,0xb8021502,0xbd08b708,0x50016908,0x9f01a501,0x1e007d07,0xc7060206,0xe906c606,0x8700cb05,0x94079306,0x3b079807,0x4a064b04,0xdc04c506,0x7307de07,0xa5057205,0x2a042905,0x2203fb04,0x93051205,0xc505c005,0xf05c605,0x4040304,0x6040704,0xf040504,0x7040404,0xf041004,0x7040704,0x27040504,0x10041404,0x23040704,0x7041404,0x4503d104,0xd104c304,0x4604c303,0x7042304,0x20042704,0x21041e04,0x23042104,0x1f042704,0x21042004,0x1f042204,0xd1042104,0x84044603,0x3a046b04,0xd1043b04,0x6b048403,0x21042204,0xd042704,0x27042204,0xd041704,0x16042704,0x17041504,0x16041804,0xf1041704,0x6b03d103,0x3b046b04,0x6b047d04,0x8a047d04,0x18041b04,0xa041704,0x17041b04,0x6b03f104,0x89048a04,0x4d044e04,0x8a03f104,0x89048904,0x9a044d04,0x9a048904,0xa04a404,0x27041704,0x24042504,0x8040804,0x27040a04,0x25040904,0xc040804,0x8040904,0x8903f104,0xa304a404,0x71047004,0xa403f104,0xa304a304,0xb4047104,0xb404a304,0xc04c604,0x27040804,0xc040b04,0x1c042704,0x27040b04,0x19041a04,0x1d041c04,0x1c041a04,0xa303f104,0xc404c604,0x90048f04,0xc603f104,0xc404c404,0xd4049004,0xd404c404,0x1d049104,0x27041c04,0x1d041204,0x11042704,0x27041204,0x13045b04,0xe040e04,0x27041104,0x27040e04,0x78042604,0xe045b04,0x78047204,0x72040e04,0x26040e04,0x4b044a04,0x72046d04,0xf1042604,0x6d044a03,0x66047204,0x72044a04,0xc403f104,0xe1049104,0xab04ac04,0x9103f104,0x6604e104,0xf1047204,0x66046703,0xe103f104,0xea04ab04,0xea04e104,0x5f049204,0xf1046704,0x34043303,0x4f045f04,0x5f043304,0xe103f104,0xf2049204,0xcc04cb04,0x9203f104,0x4f04f204,0xf1045f04,0x4f045003,0xf203f104,0xf504cc04,0xf504f204,0x37044704,0xf1045004,0xe604e503,0x36043704,0x3704e504,0xf203f104,0x47044704,0x37043604,0x2601f404,0x33033302,0x3f033803,0xf4033d03,0x2e033301,0x12059305,0x40010a05,0x6e028d01,0xe8081208,0x5503c600,0x43055b05,0x47084908,0x4f014908,0x56033001,0xc6055505,0x38053603,0x36055805,0x57055805,0xc6055605,0x3603c503,0x56055705,0xe900e505,0xe7053900,0x35073404,0xa904ce07,0xce04aa04,0xd004aa04,0xce04b904,0xb904d004,0xbb04d004,0xb904b104,0xb104bb04,0x9604bb04,0xa004af04,0xaf049f04,0xae049f04,0xaf049d04,0x9d04ae04,0x9e04ae04,0x9d049604,0x96049e04,0x75049e04,0x94043d04,0x3d049304,0x3c049304,0x3d048204,0x82043c04,0x83043c04,0x82047504,0x75048304,0x56048304,0x75049604,0xb1045604,0x56049604,0xa804a104,0xa1040604,0x99040604,0xa1048e04,0x8e049904,0x8d049904,0x8e047404,0x74048d04,0x73048d04,0x74046004,0x60047304,0x61047304,0x60045604,0x56046104,0x55046104,0x5604b104,0xb8045504,0x7e04b704,0xb8047f04,0x7f047e04,0xd8047e04,0x7f04d904,0xd904d804,0xb104d804,0xd904d104,0xc204b104,0x2f04c104,0xc2043004,0x30042f04,0xec042f04,0x3004e904,0xe904ec04,0xd104ec04,0xe904eb04,0x2904d104,0x8804cf04,0x6a045804,0x57042a04,0x2a045804,0x29042a04,0x2a048804,0xe0048804,0xe0042a04,0x2a04eb04,0xd104eb04,0x2a045704,0x5704d104,0xb104d104,0x57047b04,0x7b04b104,0x5504b104,0x64043104,0x31046504,0x7b046504,0x4504c304,0x3104df04,0x55047b04,0xdf04c304,0x39043104,0x3104c304,0x3045404,0x54040f04,0x53040f04,0x54044204,0x42045304,0x41045304,0x39043504,0x32043104,0x31043504,0x42045504,0x55044104,0xf4044104,0x32044404,0x3b043104,0x49043a04,0x3b044804,0x43044904,0x49044804,0x49044304,0x3e044404,0x44044304,0x55043104,0x3e04f404,0x31044404,0x1e044004,0x40042004,0x3f042004,0x4004f604,0xf6043f04,0xf7043f04,0x4e044d04,0x5d045c04,0x5c044d04,0x5c045d04,0x52045104,0x51045d04,0x51045204,0x4c043e04,0x3e045204,0xf604f404,0xf404f704,0xef04f704,0x3e044c04,0x31043104,0xef04f404,0x70047104,0x68046904,0x69047104,0x69046804,0x63046204,0x62046804,0x62046304,0x5e044c04,0x4c046304,0x15043804,0x38041604,0xf3041604,0x3804f004,0xf004f304,0xf104f304,0x4c045e04,0xef043104,0xf104f004,0xf104ef04,0x9004e404,0x79048f04,0x90047a04,0x7a047904,0x6f047904,0x7a046e04,0x6e046f04,0x5e046f04,0x6e046c04,0x31045e04,0xe404ef04,0x5e046c04,0xed043104,0x25042404,0x2504ed04,0xe704ee04,0xee04ed04,0xee04e704,0xab04e804,0x8504ac04,0xab048604,0x86048504,0x80048504,0x86048104,0x81048004,0x6c048004,0x81047c04,0xe4046c04,0xe804e704,0xe804e404,0x7c04d504,0x31046c04,0xe4043104,0xcc04d504,0x5904cb04,0xcc045a04,0x5a045904,0x8c045904,0x5a048b04,0x8b048c04,0x7c048c04,0x8b048704,0xe3047c04,0x1a041904,0x1a04e304,0xdc04e204,0xe204e304,0xe204dc04,0x8704db04,0x31047c04,0xdc04d504,0xd504db04,0xc004db04,0xe504e604,0x77047604,0x7604e604,0x76047704,0x9b049c04,0x9c047704,0x9c049b04,0x95048704,0x87049b04,0xd5043104,0x8704c004,0xc0043104,0x1304d204,0xd2045b04,0xd3045b04,0xd204c704,0xc704d304,0xc804d304,0x33043404,0x98049704,0x97043404,0x97049804,0xa604a504,0xa5049804,0xa504a604,0xa2049504,0x9504a604,0xc704c004,0xc004c804,0xb004c804,0x9504a204,0xa2048704,0xc0048704,0xc004a204,0xb504b004,0xb004a204,0xb004b504,0x4b04b604,0xbf044a04,0xb504bf04,0xbe04b604,0xbf044b04,0xb108ac04,0xb708b008,0xba08b808,0xb308b408,0xb208b208,0x8e088d08,0x90088e08,0x92089208,0x96089508,0x97089608,0x98089808,0x8c088b08,0x8f088c08,0x91089108,0x94089308,0x9c089408,0x9d089d08,0xa1089f08,0xa308a108,0xa408a408,0xa608a508,0x9a08a608,0x9b089b08,0xa0089e08,0xa208a008,0x99089908,0xae08ad08,0xae089908,0x9b08a908,0x9908a008,0xa608a408,0x9d089b08,0xa408a108,0x94089108,0x98089d08,0x91088c08,0x96089208,0xb2089808,0x92088e08,0xb208b408,0x9b089208,0xa9089908,0xa9089b08,0xb508a808,0x9208b408,0xb508b608,0x9b089208,0xa708a808,0xa7089b08,0xb608aa08,0x98089208,0xb608b908,0xa4089808,0xaa089b08,0xaa08a408,0xb908ab08,0x91089808,0xb908bb08,0x9d089108,0xab08a408,0xab089d08,0xba08ac08,0x9108bb08,0xba08b708,0x91089108,0xac089d08,0xb708b008,0xd8089108,0x7050803,0xce069d05,0x26002600,0x93009900,0x86017706,0x5f032301,0xea01e203,0xe080f01,0x31083008,0xd083208,0x30080f08,0xe9083108,0xfe07fd04,0x4f085607,0x1e084608,0xe5051905,0x85040403,0xf5078407,0xb503ce03,0x94048c08,0x55069506,0x69025702,0x16011403,0x1400d801,0x9600d801,0x94019001,0x91019101,0x96011401,0x96019101,0x8f019501,0x91019001,0x30052f01,0x10051005,0xcf04ff05,0x24082203,0xfb00fb08,0x7000f500,0x21087008,0xa4082208,0x7505b005,0x86055105,0x1f058705,0x53024a03,0x5e016302,0xe2038501,0x9014e02,0x1f081d01,0x6f086f08,0xf5087008,0xf300f500,0xf100f100,0x1d081c00,0xf5086f08,0x8400f100,0x79038903,0xd6037903,0x7b025801,0x79038403,0x5403c903,0x88053605,0xd300d100,0xf900e200,0x10054c00,0x11081408,0x12081108,0x6e086e08,0x32080d08,0x10083208,0xfb081108,0xe2050f04,0x9505d003,0x91059105,0xcd05cc05,0xd005ce05,0xbf059105,0x44025a02,0xd303e602,0xf708ab03,0x5c03f903,0x5c03f705,0x5a056605,0x34054805,0x5a055e05,0x34053405,0x6603f705,0xa1059f05,0x32051f05,0xf3054a05,0x33053403,0x703f605,0x1030303,0x7d009003,0xb4057c05,0x9c059e05,0xd4059c05,0xee05b205,0xf8042d03,0x2c040904,0xcb072007,0xd005cf05,0x4f084a05,0x58084d08,0x84045704,0x81058005,0x2d045805,0x32062e06,0x98037406,0x7b016301,0x7a057905,0xda057a05,0x7f057f00,0x53055205,0x7c058705,0x87057d05,0x7e057d05,0x7f057a05,0x87055305,0x7b057e05,0x7a057b05,0xcd055305,0x50024702,0x8a078902,0x9b079b07,0x74048e07,0x89079004,0xcb079b07,0x70017102,0x59083601,0x55085708,0x34086708,0x57083608,0x64085508,0xd5055204,0xd400d500,0xe0046500,0x2050503,0x1e024a05,0x24032403,0x2a032503,0x1c032a03,0x59024a02,0x48053f05,0x8d089905,0xaf08b208,0x9908ad08,0xa903db08,0x6a08ae08,0x81045804,0x82058105,0xcb053b05,0xc505ca05,0xc005c505,0xbc05bc05,0x16081905,0x13081608,0x32083208,0x82082d08,0x82083208,0xcf088108,0xc505cb05,0x79087805,0x7705cf08,0xcf087808,0x32081605,0x16088108,0x80088108,0x77087508,0x7505cf08,0xc505cf08,0x80081605,0x16087f08,0x7e087f08,0x75087308,0x7205c508,0xc5087308,0x1605bc05,0xbc087e08,0x76087e05,0x72087108,0xbc05c508,0x74087605,0x71087408,0x9a05c508,0x72087308,0x7d089c08,0x8b087c08,0x89088808,0x7b087c08,0x71089f08,0xa0087408,0x7a087b08,0x8f08a108,0xca058d05,0xcc05ca05,0x7a059105,0xa3087908,0x72089b08,0x8a087108,0x91088708,0x41083a08,0x43084308,0x39084008,0x3c083908,0x3f083f08,0x5d083308,0x5d083f08,0x3a086c08,0x39084308,0x6c083f08,0x3d083d08,0x39083a08,0xa6089a08,0x94087508,0x7d088508,0x82089508,0xa3088308,0x78087908,0x6052908,0x7f050905,0x90088008,0x95059708,0xd105d005,0x9705d205,0x85088705,0x97089308,0x83089608,0x86088408,0xa5089808,0x7808a408,0xec02eb08,0xee02ee02,0xef02ed02,0xf002ef02,0xf102f102,0xe902e802,0xeb02ea02,0xf102ee02,0xea02e902,0xef02ee02,0x2702f102,0x1040504,0x2040104,0x108bc04,0xbd08bc04,0x27042808,0xbf040104,0x2808be08,0xbd040104,0xc008c008,0x2808bf08,0x76031e04,0xd9014601,0xa808a703,0x6d042108,0x8e076f07,0xbd059005,0xbd058e05,0xbf05be05,0x8e05c105,0xe0058305,0x5800e600,0x3f053805,0xb903c405,0x6908bb08,0x8f026502,0xd1044f01,0x2606d206,0x7a097b09,0x28097f09,0x4d098009,0x4b095d09,0x14090309,0x6e090809,0x6f092a09,0x6b092f09,0xd0093409,0xd308d208,0x1e091108,0xda091609,0x45094108,0x21097409,0x10092309,0xe091909,0xa090e09,0x52090409,0x35094409,0x8090c09,0x208f909,0xfb091b09,0x1e091708,0xfa091109,0xe091008,0x508fc09,0x54090009,0x59095c09,0x4c095a09,0xfd095b09,0xfc090508,0xa090408,0x7308ff09,0x39093809,0xf908f609,0x8c08fa08,0xe508e009,0x1e090408,0x9808f609,0xd708d809,0x68094008,0x41093f09,0x3c097e09,0x69094009,0x47096809,0x49094809,0x50095109,0x60094f09,0x51095009,0x67093f09,0x4e093e09,0x4d095f09,0xf408f709,0x2908f508,0x23097709,0x70092109,0x27092709,0x2a096f09,0x1308fb09,0x94090609,0x9308d809,0x208fe09,0x9f090109,0xf008f509,0x36097908,0x8b097c09,0xdd08e509,0xef098d08,0x8f08e008,0xd908e909,0xd9099208,0x9108e708,0xee08e709,0xee099008,0xfa08dc08,0x14090808,0xf8091a09,0x96091308,0xd108d309,0xcc08d208,0x8a090c08,0xe608dd09,0xfb090108,0x9508f708,0x9408d609,0xc309a609,0xca09a808,0xa109a008,0xa108ca09,0xc409a209,0xc908c308,0x47094608,0xcf094909,0x9a099d08,0xcc099c09,0x90099b08,0xee099109,0x97099608,0xea08d309,0xf008dc08,0xd208d108,0xa508d408,0xa308c709,0x9c08ce09,0x79099e09,0x36093309,0x1108e409,0x8a091609,0xdd098b09,0x8c098b08,0x508e509,0x15090709,0x1f091609,0xe308e409,0x87098608,0x48095a09,0x3094c09,0xfd090709,0x8408ea08,0xef08db09,0xe6098908,0x9090608,0x1d08f409,0xff091e09,0xa909a708,0x1408c309,0x1c08fc09,0xcb099b09,0xd099908,0xc08d209,0x4e095809,0x6c095309,0x6b093409,0x3a096e09,0x69092e09,0x62094409,0xa309a509,0x7d094809,0x7f092509,0xb091509,0xf0091809,0xf308f408,0x91c08,0xb091909,0x1b091309,0x408fa09,0xf08f609,0x1091209,0xf408d409,0x20090908,0x31096009,0x7a092009,0xc08e109,0xd091709,0x70092709,0x32096f09,0x30093109,0x38092e09,0x43094009,0x44094209,0x52094709,0x53094f09,0x58095909,0x56095e09,0x56095009,0x55095c09,0x32095209,0x4b094f09,0x5b095d09,0x5f094d09,0x5b095d09,0x4b094c09,0x68093f09,0x61096709,0x42094409,0x51093209,0x64094f09,0x63093509,0x43094a09,0x2d094409,0x65096609,0x37096309,0x6a097609,0x65092d09,0x29096409,0x72093109,0x75097709,0x6b096d09,0x6d096709,0x6c093b09,0x72092109,0x2f097009,0x6b096a09,0x77092309,0x42097409,0x61096d09,0x38097609,0x39097509,0x73097109,0x5709a109,0x3309a209,0x2c097809,0x45095709,0x18094209,0x1508fe09,0x80092c09,0x7c092809,0x3c093609,0x7d092409,0xf1097b09,0x82098108,0x8208ea09,0xe8098309,0x85098408,0x8508ec09,0x3c098609,0x7c097e09,0x8708e209,0x7b098809,0xda097809,0x8808ed08,0xe9098109,0xdc098e08,0x8a098908,0x3e08e609,0x66096709,0x8d098c09,0xd108e009,0x96099508,0x92099109,0x9208e709,0xd9098f09,0x93099808,0x8e08d809,0xdc099009,0x9708d708,0xcb099809,0x99099a08,0x9e08d009,0xc4099d09,0xc509a708,0x5f090508,0xc3095809,0xc609a408,0xc809a208,0x9f08ca08,0xc908ca09,0xc909a408,0xa308c608,0xc808c709,0xde091708,0xec08df08,0xda08e108,0x24092608,0x7f097b09,0x28092509,0x1a090809,0x3090309,0x1408fd09,0x2e096e09,0x9092a09,0x8091a09,0xc090809,0x808cc09,0xcd08cc09,0xd508d608,0xd808d408,0xd408d608,0x8090908,0x908cd09,0xce08cd09,0xd408d808,0xd7090908,0x908d808,0xce090909,0xcf08d008,0xd208cb08,0x908d708,0xd008d009,0xd208cf08,0xd708d308,0x4508d008,0xeb08f209,0x7e08da08,0x45094109,0xda08eb09,0x72097408,0x10092109,0x19091c09,0x19090e09,0x52090a09,0x44094a09,0x18090209,0x17091b09,0x1e08f609,0x55095409,0xfd095c09,0x5090708,0x75097309,0xf6093809,0xf9091708,0xff090408,0x30091e08,0x60093109,0x5e096009,0x51095009,0x60093009,0xf08f509,0xf708f709,0xf4090608,0xf7090608,0xfb08fb08,0x13091b08,0xf8091309,0x94090608,0xd808d609,0xa809a608,0x12091209,0xf5090f09,0xeb08f008,0xf208f208,0xa009a108,0xa008f209,0xa6099f09,0xf5091209,0xa609a408,0xf008f509,0x9f08f208,0xa4099f09,0x1408f509,0xfa091009,0xf908fa08,0x13090808,0x1a090309,0x9091a09,0xd208f809,0xcc08cb08,0xf08f708,0x1090109,0xfb090209,0xd5099508,0xc908d608,0xc808ca08,0xc708c808,0xc408c408,0xc308c508,0xc608c308,0xc908c908,0xc408c808,0x43094608,0xcf094709,0x9d08d008,0xcd099c09,0xdf08cc08,0xe408de08,0xe508e408,0xe008e008,0xed08ef08,0xed08e008,0xdf08f108,0xe008e408,0xd208d408,0xf008df08,0xd408f308,0xeb08da08,0xee08f008,0xda08e708,0xda08ee08,0xf008f008,0xdf08d408,0xe008df08,0xdf08f108,0xea08f108,0xee08dc08,0xe808f008,0xe908d908,0xe908e808,0xdb08dc08,0xdc08e808,0xdf08f008,0xea08ea08,0xdc08db08,0xd508d408,0xd108d108,0xd208d308,0xc409a508,0xce08c708,0x9c08cd08,0xde08e409,0x16091108,0x1f091d09,0xec08e309,0x3098608,0x7090b09,0x8308ea09,0xef098409,0x89098d08,0xf8090609,0x1d090908,0x1e091609,0xc508c309,0xa909a708,0xc309a809,0x10091c08,0x14091409,0xfc08fd09,0xcc099b08,0xd08cb08,0xd208df09,0x5f095808,0x6c094e09,0x34093b09,0x71096e09,0x69093a09,0x44094009,0xa209a309,0x57095709,0x46094209,0x46095709,0xa3094909,0x49095709,0x5a094809,0x4809a909,0xa709a909,0x4909a309,0x48094809,0xa509a709,0x22097d09,0x15092509,0xb090709,0xf508f009,0x1c08f408,0x8fc09,0x18091b09,0xb090b09,0x13090309,0xe08fa09,0xd4090409,0xf408f308,0x1f092008,0xe4096009,0x20091f08,0x26092009,0xe1097a09,0x2008e408,0xf9090c09,0x32091708,0x31093509,0x42093d09,0x45094509,0x3c094109,0x36093c09,0x33093309,0x28092c09,0x25092809,0x22092209,0x26092409,0x20092609,0x26093109,0x29093109,0x45093d09,0x3b093c09,0x3c093d09,0x29092609,0x22092309,0x23092609,0x3c093b09,0x34093309,0x33093b09,0x23092209,0x22092109,0x27092109,0x34092f09,0x2b093309,0x33092f09,0x22092809,0x28092709,0x2a092709,0x33092b09,0x3f092809,0x2d093e09,0x2b092d09,0x2d092809,0x2a092809,0x3f094009,0x35092d09,0x40094409,0x37093809,0x3a093509,0x38093909,0x2a092d09,0x2e092e09,0x38093a09,0x35093809,0x40094009,0x2e092d09,0x46094309,0x47094209,0x52094a09,0x54095309,0x56095909,0x5c095e09,0x35095209,0x61093209,0x44096209,0x30093209,0x64095109,0x35093109,0x47094a09,0x2d094309,0x66093e09,0x35096309,0x6a093709,0x2d092b09,0x77096409,0x71092909,0x6f096e09,0x70096f09,0x72097209,0x77097409,0x64097709,0x77096309,0x76096309,0x6f097109,0x73097209,0x72097109,0x76097709,0x75097509,0x72097309,0x61096209,0x6d096d09,0x6b096c09,0x6a096b09,0x6b096509,0x66096509,0x62096909,0x68096d09,0x6d096909,0x66096b09,0x67096709,0x6d096809,0x3d096d09,0x2f093b09,0x6a092b09,0x3d094209,0x76096d09,0x38093709,0x3a093909,0xa1097109,0x5708f209,0x79093309,0x57097809,0x4508f209,0x2091809,0x2c08fe09,0x80097809,0x22092409,0xf1097d09,0x8108ed08,0xf108ea09,0xe8098208,0x8408db08,0xe808ec09,0xe2098508,0x8708e308,0x7a08e109,0x7b097b09,0x7f097d09,0x80097f09,0x78097809,0x7c097909,0x7e097c09,0xda08da09,0x7b08e108,0x7f097b09,0x78097809,0xda097c09,0xe208ed08,0xe9098808,0x8e098f08,0xd508d109,0xd7099508,0x9708d308,0xcf08cb09,0xd0099a08,0x9e08ce08,0xa508c409,0x1f09a709,0xff091d09,0xa08ff08,0x19091909,0x5090009,0x15090509,0xfe08fe09,0x12090108,0xa8091209,0x1209a909,0x5a09a909,0x1f096009,0x5e08ff09,0xff096009,0x5a091208,0xfe095b09,0x5b091208,0x5e095c09,0x5c08ff09,0x1908ff09,0x5b08fe09,0xfe095d09,0x5f095d08,0x5c095909,0x58091909,0x19095909,0xfe090509,0x58095f08,0x5091909,0xa608c309,0xa209a409,0xc809a309,0xa0099f08,0xa408ca09,0xc9099f09,0xd08df08,0x17091709,0xde091109,0xed08e208,0xe208ef08,0xe608ef08,0xe208e308,0xdd08e608,0xe408e508,0xe608e308,0xd908dd08,0xec08e808,0xe708da08,0xdd08d908,0xe108e408,0xdd08e308,0xda08e108,0xec08d908,0xe308ec08,0xe508e108,0xcb09d10a,0xc00aeb09,0x1109c309,0xb0b030b,0xf209f30b,0xbc09fb09,0x900a910a,0xeb0b030a,0xe709e809,0xea09db09,0xe70b0509,0xcf09ea09,0xce0ab30a,0x320a040a,0x3c0a350a,0x209ff0a,0xd909f70a,0x630ad80a,0x710a660a,0x980a440a,0xac0a460a,0x780a7509,0x9a0a4f0a,0x180a860a,0x110a100a,0x530a680a,0x550a550a,0x5f0a570a,0x3e0a3a0a,0x110a400a,0x180a190a,0x7e09ac0a,0x4709aa0a,0x340a480a,0x9d0a880a,0xa30a890a,0x830a820a,0xf50a250a,0x860a0809,0x870a9b0a,0x210a1e0a,0x130a200a,0xb309b60a,0xfa0a5809,0x230a2709,0x220a0e0a,0x620a5f0a,0xa20a670a,0x850a840a,0xe60a560a,0x250a5409,0x1c0a090a,0xe90a540a,0x300a5509,0x520a310a,0x650a560a,0x7f0a630a,0x720a6e0a,0x1c0a0a0a,0x750a090a,0x7f0a7b0a,0x9c0a870a,0x380a880a,0x3e0a3f0a,0xba0aee0a,0x1809bd09,0x200a1a0a,0x490a910a,0x3b0a4b0a,0x380a3a0a,0x5e0a5b0a,0xd90a510a,0xe30ae009,0x1d0a100a,0x920a1f0a,0x490a470a,0x7a0a120a,0x680a110a,0x610a5e0a,0x750a730a,0x350a6b0a,0x360a2e0a,0x5a0a590a,0xd70a5e0a,0xe00adc09,0x830aa10a,0x330a840a,0x2d0a2e0a,0xbc0a1f0a,0x9509b909,0x940a480a,0xbc0a0e0a,0x820a0f09,0x810aa50a,0xb30a070a,0x5a09af09,0x500a580a,0x500a5a0a,0x510a510a,0x300a2b0a,0x510a5b0a,0x590a520a,0xf309f00a,0x280a5009,0x80a2a0a,0xa09c20a,0x4d0a8d0a,0x730a4e0a,0x7b0a6e0a,0x350a050a,0x3c0a370a,0x3d0a3a0a,0x470a940a,0x720a930a,0x6f0a700a,0x4e0a8c0a,0x390a430a,0x330a360a,0x280a260a,0xc0a270a,0x6009b10a,0x7109b10a,0xf0a750a,0xe0a220a,0x1b0a190a,0x760a1a0a,0x7c0a7d0a,0xdb09c50a,0x170ada0a,0x240a140a,0x240a170a,0x9e0a210a,0x8a0a8b0a,0x760a740a,0x130a7a0a,0x790a740a,0x1a0a1e0a,0x700a1b0a,0x70a130a,0xb0a710a,0x690a0c0a,0x520a5b0a,0x650a670a,0x290a5f0a,0x2a0a2c0a,0x240a220a,0x370a150a,0x50a020a,0x8a0a6a0a,0xc30a8b0a,0xc20ac40a,0x8c0a810a,0x620a430a,0x690a530a,0x7e0a7f0a,0x800a780a,0x7b0a7f0a,0x970a420a,0x260a440a,0xff09fa0a,0x450a2c09,0x6f0a300a,0x60a070a,0x4c0a8e0a,0x380a4d0a,0x350a370a,0xe30ae10a,0xa09db09,0xd09c10a,0x150a0e0a,0xd0a0a0a,0xe09bf0a,0x8a0a9d0a,0x9f0a890a,0x8b0a850a,0x609aa0a,0x6c0a070a,0x620a670a,0x5e0a5d0a,0x3d0a640a,0x260a290a,0xb60a100a,0x640a1209,0xf009ed0a,0x7e0a6f09,0x460a7f0a,0x4f0a990a,0x200a1f0a,0x5c0a220a,0x650a5f0a,0x4b0a8f0a,0x7a0a4c0a,0x190a7d0a,0x2e09fd0a,0xb70a320a,0xab0aac0a,0xb709b90a,0x8d09b309,0xaf0a8c0a,0xc70acb0a,0xbf0aca0a,0xbe0ac00a,0xb00ad30a,0xbd0ad20a,0x910abe0a,0xc80aca0a,0xb60ac90a,0xaa0aab0a,0xa60aba0a,0xb80aa90a,0xac0aa80a,0xa70abb0a,0xb90aa60a,0xa80aa90a,0xc40ac90a,0x970ac50a,0xc80ac40a,0xd20ae40a,0xc109d109,0xc00ac20a,0xe40b010a,0xb409e209,0xcc0aa20a,0xb40ace0a,0xbf0acd0a,0xd609f509,0xb60aad09,0xb50aaa0a,0xd30aae0a,0xb20ad00a,0xdd0acf0a,0xd00ad10a,0xb10ad10a,0xde0ad00a,0xbf0ac10a,0xce0ae70a,0xf209d309,0xb009ab0a,0xda09c809,0xf60adc0a,0xd90adf09,0xdd09c40a,0xc70adb0a,0xdd0ad409,0xd509d00a,0xd40ad40a,0xd50ad609,0xd709d50a,0x960ad60a,0x4a0a410a,0xe209db0a,0x550ae10a,0x6809ed0a,0x340a140a,0x660a250a,0x730a6c0a,0xe309da0a,0xf40ae20a,0xdf0ade09,0xd60ad80a,0x409f709,0xeb09ef0b,0xbe0aec09,0xf09c009,0xf809f90b,0xcd0ae909,0xe809cf09,0xce09cf0a,0xb70aef09,0xf009ba09,0xb709b40a,0xb20af409,0xf909ae09,0xc609c90a,0xbb0af709,0xf309b809,0xab09ae0a,0xaf0ad209,0xf50ad10a,0xb209b50a,0xc60af809,0x1209bb09,0xfe0a030b,0xcb0afb09,0xfa09ca09,0xc909ca0a,0xf80ae809,0xc0af00a,0xfb09fe0b,0xb00af109,0x809b409,0xe709e10b,0xfb0b0d09,0x1309f209,0x30a000b,0xdc0aff0a,0x709dd09,0xee09ec0b,0xdd0b0009,0xf609e009,0xb509b80a,0xf80b1009,0x1109fc09,0x9fc0b,0xdf0afc0a,0xed09de09,0xbe09bd0a,0xee0b0e09,0x909f909,0xef09f10b,0xe00b0b09,0xe609e109,0xd209d30a,0xde0afd09,0xea09dc09,0xcd09c30a,0xe20afe09,0xa09df09,0xf109f20b,0xe80b0209,0x609e409,0xec09ea0b,0xc60acc09,0xe50acb0a,0xd10ae40a,0xec0aeb09,0xb09c00a,0x50b080b,0x60b050b,0x70b070b,0xf0b0e0b,0x100b0f0b,0x110b110b,0x120b130b,0xc0b120b,0xd0b0d0b,0x90b0a0b,0x40b090b,0x30b030b,0x10b020b,0xfe0b010b,0xfc0afc0a,0xff0afd0a,0xaff0a,0xb0b0b0b,0x70b050b,0xf0b070b,0x110b110b,0xd0b120b,0x90b0d0b,0x30b030b,0xfc0b010b,0xff0afc0a,0xb0b0b0a,0x110b070b,0xd0b110b,0x30b030b,0xb0afc0b,0xee09f90b,0xf509f509,0x109fd09,0x40a010a,0x50a050a,0xff0a020a,0xfa09ff09,0xf309f309,0xed09f009,0xe909ed09,0xe609e609,0xe409e509,0xe409e609,0xf309e809,0xe609ed09,0xff0a0509,0xf509f309,0x50a0109,0xf909f80a,0xfc09f509,0xf509f809,0x509f509,0xf309f30a,0xe809e609,0xe809f309,0x9eb09,0xf509fc0a,0xa0309,0xf309f50a,0xef09eb09,0xef09f309,0x309f109,0xf309f50a,0x309fe09,0xf309f30a,0xf209f109,0xfe09fb09,0x9009f309,0xbc0aa70a,0xbd0abc0a,0x30a910a,0xeb0b040b,0xe109e709,0xdb09db09,0xea09e309,0x80b0509,0xcf09e70b,0xb30ab20a,0x10a040a,0x3c0a320a,0xff0a260a,0xf609f709,0x710ad909,0x630a0c0a,0x650a630a,0x660a660a,0x710a6b0a,0x970a440a,0xac0a980a,0x7509ad09,0x990a4f0a,0x680a9a0a,0x530a690a,0x540a5f0a,0x550a550a,0x570a530a,0x3d0a400a,0x3a0a3a0a,0x3e0a3b0a,0x2c0a3e0a,0x110a400a,0x190a7a0a,0x7809ac0a,0x1e0a7e0a,0x430a1b0a,0x430a1e0a,0x170a4e0a,0x1e0a210a,0x160a340a,0x3f0a170a,0x340a390a,0x450a2f0a,0x460a3f0a,0x2f0a310a,0x460a440a,0x2f0a2f0a,0x340a3f0a,0x170a340a,0x1e0a1e0a,0x4d0a4e0a,0x4d0a1e0a,0x440a4c0a,0x340a2f0a,0x440a420a,0x1e0a340a,0x4b0a4c0a,0x4b0a1e0a,0x410a490a,0x340a420a,0x410a4a0a,0x340a340a,0x490a1e0a,0x490a340a,0x480a470a,0x340a4a0a,0x9c0a880a,0xa30a9d0a,0x820aa40a,0x2d0a250a,0xf509fd0a,0x809cc09,0xfd0a250a,0x809f509,0x250a090a,0x9a0a860a,0x210a9b0a,0x200a240a,0x1a0a200a,0x130a1e0a,0xb60a120a,0x500a2709,0x580a580a,0xfa09f30a,0x570a5f09,0x850a620a,0xa20aa00a,0xa10aa20a,0x560a840a,0xd80a600a,0xe509d809,0x5409e609,0x560a5c0a,0xd80a560a,0x5409e609,0xe909e60a,0x2f0a3009,0x630a310a,0x560a600a,0x5c0a560a,0x720a650a,0x7f0a6d0a,0x800a7f0a,0x6e0a6e0a,0x720a760a,0x80a090a,0xa0a0a0a,0x1c0a140a,0x780a7f0a,0x750a750a,0x7b0a770a,0x9b0a870a,0x3e0a9c0a,0x380a3b0a,0x390a380a,0xee0a3f0a,0xba0aef0a,0x1d0a2009,0x180a180a,0x1a0a190a,0x900a4b0a,0x910a910a,0x490a920a,0x610a5b0a,0x5e0a5e0a,0x510a5a0a,0xd709d90a,0x100ae009,0x1d0a180a,0x930a920a,0x120a470a,0x7a0a790a,0x690a610a,0x680a680a,0x5e0a640a,0x770a730a,0x750a750a,0x6b0a710a,0x380a360a,0x350a350a,0x2e0a320a,0x580a590a,0xd70a5a0a,0xdc09c809,0xa30aa10a,0x2d0a830a,0x330a250a,0x360a330a,0xb90a2e0a,0x1f0a1009,0xf0a1f0a,0x9509bc0a,0x480a4a0a,0xbf0a0e0a,0x8209bc09,0xa50aa40a,0x130a070a,0x3009b30a,0x510a520a,0x2a0a510a,0xf30a2b0a,0x590a5809,0x5d0a590a,0x2a09f00a,0x500a510a,0x270a500a,0x80a280a,0xc209cc0a,0x8e0a8d09,0x7b0a4d0a,0x730a770a,0x6c0a730a,0x6e0a6e0a,0x7b0a800a,0x40a050a,0x3c0a350a,0x3a0a370a,0x480a940a,0x6f0a470a,0x720a6d0a,0x740a720a,0x700a700a,0x6f0a070a,0x8d0a8c0a,0x330a4e0a,0x390a340a,0x380a390a,0x260a360a,0x280a290a,0x630a600a,0xc0a0c0a,0xb10a0b0a,0xd809b109,0x750a6009,0xb109ad0a,0xb09b109,0xf0a710a,0x220a1f0a,0x7d0a190a,0x760a1b0a,0x7d0a6e0a,0xc409c50a,0x170adb09,0x140a160a,0x150a140a,0x9e0a240a,0x8b0a9f0a,0x790a7a0a,0x740a740a,0x760a720a,0x7c0a760a,0x790a7a0a,0x130a120a,0x700a130a,0x520a740a,0x690a6a0a,0x610a690a,0x670a5b0a,0x650a660a,0x280a2a0a,0x290a290a,0x2c0a400a,0x2b0a2c0a,0x150a2a0a,0x220a230a,0x200a220a,0x370a240a,0x20a3c0a,0x1b0a430a,0x7d0a7d0a,0x6c0a6e0a,0x620a6c0a,0x6a0a6a0a,0x310a520a,0x460a310a,0x310a4f0a,0x860a4f0a,0x6c0a7d0a,0x810a6a0a,0x7d0a430a,0x810a820a,0x6a0a7d0a,0x860a310a,0x860a6a0a,0x830a870a,0x7d0a820a,0x830a840a,0x6a0a7d0a,0x880a870a,0x880a6a0a,0x850a890a,0x7d0a840a,0x850a8b0a,0x6a0a7d0a,0x8a0a890a,0x7d0a8b0a,0xc30a6a0a,0xc40ac50a,0xa50a810a,0x690a8c0a,0x620a6a0a,0x570a620a,0x420a530a,0x970a960a,0x270a260a,0x3009fa0a,0x2c0a2b0a,0x3e0a2c0a,0x450a3f0a,0x300a2f0a,0x3f0a2c0a,0x8e0a450a,0x4c0a8f0a,0x3a0a380a,0xe10a370a,0xe30ade0a,0xc20a0a09,0xa09c109,0xe0a0d0a,0x230a0e0a,0x150a150a,0xa0a140a,0xc10a0d0a,0x9d09bf09,0x8a0a9e0a,0xa00a9f0a,0x70a850a,0xaa09af0a,0x7e09aa09,0x5d0a060a,0x5e0a590a,0x3c0a260a,0x3d0a3d0a,0x290a400a,0x110a120a,0x100a100a,0xb609b90a,0x5d09f009,0x640a640a,0xed0a680a,0x6d0a7f09,0x6f0a6f0a,0x7e0a060a,0x980a460a,0x1f0a990a,0x200a1d0a,0x540a5c0a,0x8f0a5f0a,0x4b0a900a,0x7c0a7a0a,0x320a7d0a,0xfd0a010a,0x2d09fd09,0xb70a2e0a,0xac0ab80a,0xb609b30a,0xb909b909,0xb709ba09,0x900aa709,0xa70a8f0a,0x8e0a8f0a,0xa60aa90a,0xac0aa70a,0xa90aa80a,0xab0aaa0a,0xae0aac0a,0xaa0aad0a,0xb00aaf0a,0xb20aae0a,0xaf0ab10a,0xb30ab40a,0xa30ab20a,0xb40aa10a,0xa30aa40a,0xb40ab40a,0xaf0ab20a,0xae0aaf0a,0xaa0aaa0a,0xa90aac0a,0xa70aa90a,0xa90a8e0a,0x8d0a8e0a,0xaa0aaf0a,0xa40aa90a,0xaf0ab40a,0xa40aa50a,0xaf0aaf0a,0x8d0aa90a,0xa50a8c0a,0xcb0aaf0a,0xc70ac60a,0xc10abf0a,0xd30ac00a,0xb00aae0a,0xbf0abd0a,0xca0abe0a,0xc80ac70a,0xb70ab60a,0xba0aab0a,0xa60abb0a,0xb90ab80a,0xbb0aa80a,0xa70abc0a,0xba0ab90a,0xc90aa90a,0xc40ac80a,0x9e0a9f0a,0x9d0a9d0a,0x9b0a9c0a,0x9a0a9b0a,0x990a990a,0x970a980a,0x960a970a,0x950a950a,0x930a940a,0x920a930a,0x930a910a,0xbe0a910a,0x950a970a,0x9b0a930a,0x970a990a,0x9d0a9f0a,0xa20a9b0a,0x9f0aa00a,0xa20ac60a,0x9f0a9f0a,0x970a9b0a,0x930a970a,0x970abe0a,0xc00abe0a,0x9f0ac60a,0xc70a970a,0x970ac60a,0xc00a970a,0x970ac20a,0xc40ac20a,0xc70ac80a,0xe40a970a,0xd20ae60a,0xc30ac109,0x10ac20a,0xe40b020b,0xcd0acc09,0xb40ab40a,0xa20aa10a,0xb30ace0a,0xe20ab40a,0xe509e409,0xd809e509,0xb109b109,0xac09ad09,0xaa09ac09,0xaf09af09,0xb709b309,0xb709af09,0xb109b409,0xaf09ac09,0xe209df09,0xde09e509,0xe509df09,0xaf09b109,0xb109b409,0xb009b409,0xde09dc09,0xb109e509,0xab09b009,0xab09b109,0xdb09ae09,0xe009e109,0xdb09da09,0xda09e009,0xdd09e009,0xda09d909,0xd909dd09,0xdc09dd09,0xd909d709,0xb109dc09,0xb209ae09,0xb209b109,0xd709b509,0xe509dc09,0xd709c809,0xb109e509,0xb809b509,0xb809b109,0xc809bb09,0xb109e509,0xc809c509,0xb109b109,0xc609bb09,0xb109c509,0xc409c609,0xc609c509,0xc609c409,0xc709c909,0xc909c409,0xc909c709,0xd009ca09,0xca09c709,0xca09d009,0xd409cb09,0xcb09d009,0xcb09d409,0xd509d109,0xd109d409,0xd109d509,0xd509d209,0xd309d209,0xd309d509,0xd609ce09,0xce09d509,0xce09d609,0xd609cf09,0xcd09cf09,0xcd09d609,0xbd09c309,0xb909ba09,0xbc09b909,0xbf09bf09,0xc209c109,0xcc09c209,0xf509f509,0xec09ee09,0xea09ec09,0xec09e309,0xf409e309,0xc209bf09,0xbd09f509,0xbf09b909,0xbd09be09,0xf509bf09,0xf409ec09,0xf409f509,0xc009f609,0xbf09be09,0xc009c309,0xf509bf09,0xf709f609,0xc309d609,0xf509bf09,0xd609f709,0xb50aad09,0xb50ab60a,0xae0aad0a,0xb10ad00a,0xda0ab20a,0xdd0adb0a,0xd40add0a,0xd50ad50a,0xd70ad60a,0xb70ad70a,0xd70ab60a,0xb50ab60a,0xd50add0a,0xdc0ad70a,0xdd0ada0a,0xcc0acd0a,0xce0ae00a,0xe00acd0a,0xdc0ae00a,0xdd0add0a,0xb50ad70a,0xb50add0a,0xce0ad30a,0xdd0ae00a,0xce0acf0a,0xdd0add0a,0xd20ad30a,0xd20add0a,0xd00ad10a,0xdd0acf0a,0xaf0ad10a,0xb80ab10a,0xd70ab70a,0xd80ad70a,0xd90ad90a,0xde0adf0a,0xe10ade0a,0xe20ae20a,0xe00ae30a,0xcc0ae00a,0xe00acb0a,0xca0acb0a,0xe20ade0a,0xd70ae00a,0xde0ad90a,0xb80ab90a,0xba0ad70a,0xd70ab90a,0xe00ade0a,0xde0aca0a,0xc90aca0a,0xd70aba0a,0xbb0ade0a,0xde0aba0a,0xc90ade0a,0xde0ac50a,0xc30ac50a,0xbb0abc0a,0xbd0ade0a,0xde0abc0a,0xc30ade0a,0xbf0ac10a,0xde0abd0a,0xe80ae70a,0xf209ce0a,0xab0af30a,0xc509c809,0xf60ada09,0xdf09f409,0xc709c40a,0xc70add09,0xd409d009,0xd409d00a,0xd40ad509,0xd609d509,0xd609d50a,0x4a0ad709,0x960a950a,0x420a960a,0xdb0a410a,0xe209da09,0xe90a550a,0x2509ed09,0x140a1c0a,0x160a140a,0x340a340a,0x250a330a,0x6b0a730a,0x660a660a,0x6c0a670a,0xd909da0a,0xf40ae309,0xde09e309,0xd70ad80a,0x409d60a,0xef0b090b,0xed0aec09,0xf09be0a,0xf90b0e0b,0xea0ae909,0xe809cd0a,0xcf0ae90a,0xf00aef09,0xf009b70a,0xb40af10a,0xf50af409,0xf909b20a,0xc90afa0a,0xf80af709,0xf309bb0a,0xae0af40a,0xb00ad209,0xf50aaf0a,0xb50af60a,0xf90af809,0x1209c60a,0x30b130b,0xe50afb0a,0xfa09cb0a,0xca0afb0a,0xef0af009,0xee0aee0a,0xec0aed0a,0xeb0aec0a,0xea0aea0a,0xe80ae90a,0xe70ae80a,0xe60ae60a,0xe50ae40a,0xfb0ae50a,0xfa0afa0a,0xf80af90a,0xf70af80a,0xf60af60a,0xf40af50a,0xf30af40a,0xf20af20a,0xf00af10a,0xee0af00a,0xec0aec0a,0xe80aea0a,0xe60ae80a,0xe50ae50a,0xf80afa0a,0xf60af80a,0xf40af40a,0xf00af20a,0xec0af00a,0xe80ae80a,0xf80ae50a,0xf40af80a,0xc0af00a,0xfe0b120b,0xf20af109,0x809b00a,0xe10b0b0b,0xc0b0d09,0x1309fb0b,0xb110b,0xfd0aff0a,0x709dc0a,0xec0b060b,0xff0b0009,0xf609dd0a,0xb80af70a,0xf0b1009,0x1109f80b,0xfc0b100b,0xfe0afc09,0xed09df0a,0xbd0aee0a,0x70b0e09,0x909ee0b,0xf10b0a0b,0xb0b09,0xe609e00b,0xd30ae70a,0xfc0afd09,0xea09de0a,0xc30aeb0a,0x10afe09,0xa09e20b,0xf20b0d0b,0x30b0209,0x609e80b,0xea0b050b,0xa20acc09,0x610ac60a,0x630f0b0e,0x7e0f040e,0xf20f490d,0xf80ef70d,0x360c440e,0x530c2c0c,0x560d590d,0x1910fc0d,0x3e110211,0x29102b10,0x980b8c10,0x730b840c,0x72107e10,0x390d2b10,0xe50d350d,0xea0f820d,0x30bfd0d,0x400c020c,0x200c2a0c,0xc00bbe0c,0x320bbc0b,0x330d020b,0x8c0ea50b,0xaf0eaa0f,0x960bb40b,0xff60b,0xb30ecd0e,0xb50cba0c,0x110feb0c,0x710fec10,0x7d107e10,0x62106710,0xe5106810,0xe80e2d0f,0x310d2a0f,0xa20d2f0d,0x930e650f,0xc90cc40e,0xaa0cca0c,0x450e460f,0x820b720e,0x800c790c,0xb90fab0d,0x1b0c190d,0xf50b9a0c,0xfd0bfe0b,0x650b450b,0x9d0c4e0c,0xfe0d080c,0x990fc90c,0xc30fd00d,0x880d930f,0x5e0b590d,0x5c0b5b0b,0x610b600b,0x3e0c5c0b,0x300c3f0c,0x3a0d3c0d,0xf60bf50d,0x730bfb0b,0x7a0b7b0b,0xfe0bd30b,0x360bd20b,0x2c0c2b0c,0xdf0be60c,0x220bdd0b,0x5a0c520b,0x4f0c650c,0xe80c4e0c,0xd00bd10b,0x6b0b6d0b,0x6e0b6c0b,0x660b280b,0x8c0b850b,0xea0b840b,0xec10f010,0x5c0c5f10,0x50c620c,0xd10bd40c,0xde0be80b,0x450be50b,0x490d460d,0xea0be30d,0xea0be90b,0xda0bdd0b,0x890b850b,0x770b8a0b,0x790b7c0b,0x7e0b7a0b,0xec0b730b,0xdc0bdb0b,0xec0beb0b,0x500bf10b,0x550c560c,0x510c420c,0xfb0c410c,0xd50bd80b,0x130e0f0b,0xff0d9710,0xe70be80b,0x630b670b,0x880b680b,0x870b860b,0x20c000b,0x890c030c,0x810b160b,0xd30c000b,0x1e0bd40b,0x1f0d200d,0xaf0f1d0d,0xe20f4d0d,0xe40b400b,0x3f0c620b,0x4f0c3c0c,0x4c0c450c,0xe50ce00c,0x220ce40c,0x210f1510,0xf40ce110,0xf40cf70c,0xea0cde0c,0xc00bbb0c,0x320b940b,0x280c210c,0xc10bc50c,0x680bc20b,0x6d0ef40e,0x650b8e0e,0xf30b8d0b,0xee0e1d0f,0x100c0c0f,0xb20c090c,0xb00bb40b,0x1e0c3e0b,0x930c3f0c,0x940c900c,0x780b770c,0xa60b7d0b,0xa30ba40b,0x110c3a0b,0xa70c0c0c,0xa60ba00b,0x150ecf0b,0x920eaf0e,0x960c750c,0xc0d050c,0x360b330d,0x350b150d,0xc30bbf0d,0xb50bbd0b,0xb30bae0b,0x630efb0b,0x420f0b0e,0x430c2a0c,0xbb0cba0c,0xb20cb00c,0xac0bb00b,0xce0bde0b,0xb30bc70b,0xb20bae0b,0x920c720b,0xa0c740b,0xb0c330c,0x990b970c,0xb80c1b0b,0xaf0dc10f,0xc60ba40f,0xd00bcd0b,0xd10ce70c,0x120c0e0c,0xd00c0c0c,0xca0ccd0c,0x120c3a0c,0x150c3b0c,0xfe0c9d0d,0xbc0bbe0c,0x7f0bb80b,0x8a0c830b,0xba0bbf0c,0xcc0bbe0b,0xce0cc90c,0x870c7f0c,0x820c840c,0x7e0c7d0c,0x1c0c160c,0x710c150c,0x690c820b,0x1d0c3e0b,0xc90c160c,0xc40bca0b,0xc60bc80b,0x660bc90b,0x6e0b6f0b,0x800c700b,0xb0c710c,0xc0d100d,0x150c230d,0x200c1c0c,0x1d0c1c0c,0x940eec0c,0xc30eef0e,0xb90bb80b,0x1a0c180b,0x420c190c,0x530f520e,0xb40d200f,0x6a0cb60c,0x6f0b6e0b,0xe10be30b,0x780be20b,0x7b0b7a0b,0x400be40b,0x470be70b,0x460c450c,0xcf0bde0c,0x820bdf0b,0x8a0b8c0b,0x230d240b,0x4d0d220d,0x440c460c,0xe00be30c,0x1a0be60b,0x1b0d1e0d,0x1c0d1e0d,0x640d1b0d,0x650b8d0b,0x4b0c470b,0xeb0c4c0c,0xed0bf00b,0xf20bee0b,0xce0be90b,0xd410f110,0x530c5210,0xd00c580c,0xd60da80f,0x740b7f0f,0xfc0b750b,0xf90b3610,0xc70cc910,0x400d2b0c,0xe70bff0b,0x220d200b,0xf50d230d,0xf70bfa0b,0xfc0bf80b,0x6a0bf30b,0x690b710b,0xc30bdb0b,0x8e0bdc0b,0x850c860c,0x190d1b0c,0x670d180d,0x6f0b710b,0x430c580b,0x2e0c400c,0xb60ebe0b,0x980b8d0e,0x160b8e0c,0x190d180d,0x40bff0d,0x20c010c,0xfd0c060c,0x420c530b,0xcc0c430c,0xd00ccf0c,0x4e0d530c,0xf30d520d,0xf80bf90b,0x590c540b,0xb70c550c,0xad0bac0b,0x5b0c520b,0x5b0c5a0c,0x3d0c400c,0xec0cf50c,0x7c0ca00c,0x7b0c780c,0x300e160c,0xd30e690f,0xd40bab0b,0xd90bf40b,0x2a0bd60b,0x200c1f0c,0xb0c0d0c,0x420c080c,0x240c290c,0x90c0e0c,0x930c0d0c,0xca0bc00b,0x970c920b,0xb00b900c,0xa90ba00b,0xf90f6e0b,0x250df10d,0x230cb40d,0x8e0b7f0d,0x490b760c,0x4b0b450c,0x350c450c,0x180c2f0c,0x130c190c,0x150c170c,0x510c180c,0x500ced0d,0xf40e4d0d,0xa10f070f,0xa40bcb0b,0x270c220b,0xb0b980c,0x340c2d0c,0xf70ce30c,0x1e0cf60c,0x180c170c,0xa90ba50c,0x3b0ba00b,0x1410080f,0x380c4f0f,0x10c370c,0x20c060c,0x230c250c,0x620c1f0c,0x720b8f0b,0x210c260c,0x60c250c,0x12111111,0x490d4411,0x190d460d,0x100c090c,0xb70bb30c,0x340bb10b,0x300c2d0c,0x970c950c,0x620c960c,0x580c760b,0x1c0ca30b,0x710ca20d,0x7c0c770b,0x320c310c,0x300c2b0c,0x310c2d0c,0x9c0b900c,0xa10c810b,0x950ba80b,0xfb0f170b,0xb80dcd0d,0xb70faf0f,0x6c0cfd0f,0xe50d6b0d,0xe30ce10c,0x5a0d6b0c,0x640cfb0d,0x9b0eea0e,0x670b590e,0x4a0b660b,0x490c480c,0xf80bf60c,0x4b0bf90b,0x4e0b450c,0xd70bf60c,0x6d0bd80b,0x700b6a0b,0xc00cbd0b,0x8b0cc10c,0x8d0b840b,0x3e0c5b0b,0x5f0c610c,0x630c640c,0x3c0c640c,0x5c0c390c,0x610c600c,0x570c520c,0x550c540c,0x500c590c,0x7f0b780c,0x650b760b,0x6b0c660c,0x690c630c,0x3a0c680c,0x390c640c,0xfc0bf70c,0x6b0bf80b,0x380c3b0c,0xb30f8d0c,0x5f0e460e,0x5e0c5d0c,0xee0bec0c,0x600bef0b,0x5a0b220c,0xde0be00c,0xe0bdf0b,0xfe0d0b0d,0x4c0d210c,0x720d220b,0x7a0e3e0f,0x280b6c0f,0x7d0b6e0b,0x800b760b,0x850b880b,0x600b8b0b,0x610b880b,0x740b6d0b,0xfe0b730b,0xd20bd50b,0xe40be00b,0x650be50b,0x670c6a0c,0x6c0c680c,0x5a0c630c,0x580b620b,0x4a0fb70b,0xff0e4b0e,0x50c000b,0xef0be90c,0x620bee0b,0x650b640b,0x600b5b0b,0x700b5c0b,0x720b690b,0x8b0f500b,0x770d8e0d,0x810b820b,0x800b820b,0xed0b830b,0xee0bf20b,0x6f0b920b,0x250c740c,0x230c270c,0xb70bd70c,0x270bd80b,0x250cb20d,0x710c730d,0xdb0c6e0c,0xbd0bc20b,0x6f0c740b,0x800c730c,0x850c8e0b,0xc2109c0c,0x18109610,0xca0dcd0f,0x4711080d,0x36110a0b,0x310c300c,0xcd0bc70c,0xdd0bc60b,0x140eb00e,0xaa0bd30e,0x7e0ba50b,0x7a0c7f0c,0x7b0c7d0c,0xa00c7e0c,0x8b0e930f,0xcf0bdd0e,0xc50bc50b,0xdd0bda0b,0x6f0c960b,0x140b920c,0x110c100c,0x940c980c,0xbd0c950c,0xba0bc10b,0xc30bd90b,0x450bb90b,0x460c360c,0x340c2f0c,0x8b0c300c,0x860c890c,0x8f0b8c0c,0x8c0c930c,0x8b0c870c,0x270ec10c,0x780b260b,0x79104f10,0xac0cf210,0x7d0cf60c,0x7e0f490d,0xa50d150d,0xc50c9e0c,0xc10cc60c,0x2a0c260c,0x900c240c,0x940c910c,0x800c7e0c,0x6e0c7f0c,0x700d6f0d,0xc40bcf0d,0x950bc50b,0x910c960c,0x910c940b,0x330c950c,0xfb0d110b,0x9e0c9a0c,0xe30c990c,0xb20e7a0f,0x3e0cd70e,0xbb0cd40d,0xbc0bb40b,0x4b0d470b,0x730d480d,0x710c750c,0x3c0f3b0c,0xb40f500f,0xb60cb70c,0x9b0c9c0c,0xfa0ca90c,0x30d060c,0xd10ccb0d,0xe70cd20c,0xe60cdb0c,0xaa0ca70c,0xa90cad0c,0xa40ca60c,0xa90c9c0c,0xd70caa0c,0xd60bf40b,0xa40ca90b,0x9b0caa0c,0x9d0f350d,0x130c1e0d,0xfd0c140c,0xb3010,0xaa0ca811,0xeb0ca40c,0xea0cf10c,0x630d650c,0x530d660d,0x420e540f,0xaf0cb00e,0xae0cb90c,0xb90cb70c,0x7f0f0f0c,0xb80d820d,0xbd0cba0c,0xb70cb90c,0xb00cb50c,0xba0cb90c,0xae0caf0c,0x420cb90c,0x460d440d,0xb50cb90d,0xbd0cba0c,0xc20cc10c,0xbd0cb80c,0xbe0cc20c,0xc30cc20c,0xce0ccf0c,0xf00d2c0c,0xf20c9c0c,0x720b740c,0x820b750b,0x790c7a0c,0x570d330c,0xc60b560b,0xcb0ccd0c,0xc60cc30c,0xc30ccb0c,0xe90cd20c,0x6a0d090c,0x2a0cfd0d,0xbf0cc80d,0x1610f60c,0xe010f711,0xd60ce20c,0x280c240c,0x9b0c210c,0x7f0c8d0b,0x660d670c,0x390d680d,0x360b190d,0xe70cd20d,0xd20ce80c,0xe70cd10c,0xab10c50c,0x6610c610,0x3b0c3a0c,0xab0f330c,0xd80d9c0d,0xd60cd70c,0xd80cda0c,0xdc0cd90c,0xdb0cda0c,0xfd0ea60c,0xf20ea90e,0xd210ce10,0x290e8510,0xe60e530f,0xe50ce40c,0xe60ce80c,0x7e0ce50c,0x730b6d0b,0xe70ce80b,0x30ce60c,0xfd0d090d,0x440c510c,0xd30c410c,0xdd0cdb0c,0x3a0d3d0c,0x60d3b0d,0xb0b4311,0x410d4311,0xd0d400d,0xc0fa510,0xe30bf210,0xa70be90b,0xa50bab0b,0x8101f0b,0x46100710,0x3a103910,0x4e0b2a10,0x1c0e4d0e,0xa20cb10d,0xf10cea0c,0xd60cf50c,0xe810e210,0x6e0c7610,0x420c6d0c,0x33103410,0x980fc810,0xfd0d930d,0xfc0cfb0c,0x210e870c,0x910e7c0f,0x890f9d0e,0x30cfc0e,0x8b0cfd0d,0x890c8d0c,0x840c790c,0x20c830c,0x50d010d,0x470d630d,0x4c10230e,0x220d240b,0x70d560d,0x150d060d,0x16111b11,0xc30dea11,0xf30d880f,0xba0b5110,0xff0d010e,0x10d0b0c,0xc0d0b0d,0x2f0b290d,0xf50b380b,0xf30cf00c,0x9f0d080c,0xca0d0e0c,0xc10bba0b,0x9f0d0e0b,0x9f0d120c,0x120c9a0c,0x690b4d0d,0xfb0d090d,0xf80d110c,0x100d110c,0x640cf80d,0x2a102c0d,0x270c2e10,0xe70c320c,0xee10eb10,0x800d7510,0xf80d730f,0xff0b3610,0x5c0b5a10,0x140b5d0b,0x170d130d,0x1a0d180d,0x5f0d1b0d,0x630b580b,0x5d0b610b,0xab0b5c0b,0xa20ba30b,0x3b0d4b0b,0x6b0d4d0d,0xff0dc80f,0x4a0c590d,0x940c500c,0xb910b810,0xed0cef10,0x1e0cec0c,0x210d1d0d,0x1511080d,0xf310f511,0xec0f6f0d,0xa30d160d,0x4a0ca50c,0x4d0c470c,0x4c0c4e0c,0x870c4b0c,0x890b160b,0xae0bbc0b,0x240bb50b,0x270d260d,0x240d250d,0x1f0d270d,0xb10cb60d,0x820f410c,0x260d9d0d,0x290d280d,0x890d730d,0xcf0d800f,0xc90bc80b,0xc10fab0b,0xc70db90d,0xc80cc50c,0x1d0fec0c,0xd80e1810,0xdd10d710,0x270ebe10,0x310ebf0b,0x280d290d,0xd60cd40d,0x140cd70c,0x2b0d2d0b,0x2d0d300d,0xaf0b140d,0xb00ba80b,0x1a0d370b,0x380d380b,0x390b180d,0x1a0c220d,0x2b0c230c,0x140b550d,0x3310430b,0x2e103510,0x230d2f0d,0x2f0b230b,0x600d310d,0x120d7b0f,0x3a0d3b0e,0xa70d3c0d,0x9e0cbc0c,0x5f0c6c0b,0x9a0c630c,0x190c0f0b,0x4a0d4b0c,0xde0d3d0d,0xea0ceb0c,0x4d0d4c0c,0x560d3b0d,0x410e3b0f,0x420d3f0e,0xd70d550d,0x400cd80c,0xaf0ca80d,0x400cad0c,0x430cd80d,0xc10e520d,0xd80e4b0f,0x430cda0c,0xaa0cab0d,0x430ca70c,0x470cda0d,0x3710430d,0x49104410,0x4b0d450b,0xdc0cda0b,0x880d470c,0x9c0c8d0c,0x340c070b,0x690c350c,0xcc10c90d,0x780c6d10,0xb70c770c,0x2c0b2b0e,0xaf0ee30b,0xb80eae0e,0xbb0cbc0c,0xa40ca20c,0x7f0ca30c,0x9b0c810c,0xf80cfa0b,0x590d100c,0x5f0b5a0b,0x500d510b,0x8a0d530d,0x870c840c,0x710dfe0c,0x190e020f,0xf111e11,0x530d5711,0x4e0d520d,0x480d520b,0xea0bdb0b,0x170bda0b,0x180d1a0d,0x560d320d,0x7b0b550b,0x790deb0d,0xd30e400d,0x5a0fd50f,0x330b320d,0xc00e190b,0x350fe40f,0x4e10010b,0xbc0b540e,0xc60b520e,0xcd0cca0c,0x4c0d490c,0x5c0b4b0d,0x5d0b310d,0x670b4d0d,0x6c0d680d,0xd810d50d,0x4f0d0a10,0xfc0b4d0b,0xf30beb0b,0x9c0f320b,0xe60d9a0d,0x410200e,0x4a0cdc10,0xc50d470d,0xce0f1b0d,0x8e10060d,0x5d0d920d,0x710b310d,0x3c10470d,0x75104810,0x74108010,0x70e0610,0x850e080e,0x800b830c,0x680c6d0b,0x810b630b,0x860f240e,0x58107a0e,0xea106310,0x890d880d,0xc70f160d,0x4f0f110d,0x4e0d580b,0x840eda0b,0xad0ed80e,0xba0fad0d,0x5e10700d,0x97107110,0xb010b110,0x57106910,0x62106a10,0x68106910,0x9c0eeb10,0x5a0ee90e,0x64106510,0x89106410,0xb3108810,0xf00df60f,0x7a0eb20f,0xc80e800e,0xc710300e,0x87107a0e,0x79108610,0x85108610,0x87106410,0x5106310,0xe111111,0x92106f11,0x98106e10,0xbf10c010,0x140e4710,0xa70e150e,0xae10af10,0x910c8910,0x9b0c900c,0x7f10a110,0xf20ded10,0xcb0d840d,0xc00b1d0e,0x91106d0e,0x70109010,0x7c107d10,0x970ed410,0xa20e900e,0xa50f840e,0x3210490e,0xb6104a10,0x2e0b2c0e,0xa60c9e0b,0xb80c990c,0x670f100e,0xcf0e500f,0xbf0e510f,0xc00cc50c,0x940b960c,0x900bcc0b,0xc30f910f,0xc410bd0e,0xbc10bc10,0x510eba0e,0x680dec0b,0x120de80f,0x70c080c,0xe90ce50c,0x140ce80c,0xff0cfe0d,0x9210130c,0xd40d970d,0x650e5f0f,0x1810f80e,0xcc10f911,0x320e1c0e,0xc70ebf0e,0xc10ec30e,0xab109e10,0x630e8610,0x1c0e1e0f,0x20111a11,0xad10a311,0x6b10ac10,0x6d105510,0x570d3510,0xb10d340b,0xb30bb50b,0x390c140b,0x630c3c0c,0x64105a10,0x24102b10,0x3c102810,0x3d0ff80b,0xf40beb0b,0xd30bf30b,0x4a0d3d0c,0xe90ef10d,0x1c0ef50e,0x260feb10,0xf10dba0e,0x3d0df40f,0x3e0ff90b,0xe00fe80b,0x70fe50f,0x380c370c,0xff0b3a0c,0x410b390f,0x3c10020b,0xc30cc10b,0xbc0cc20c,0x9e0dae0f,0x20ffc0d,0xc30e4e10,0xbb10ba10,0x3f0ff910,0x380b3e0b,0x3710010b,0x30b240b,0xe00ffc10,0xc0db20e,0xdb0fbe0f,0xfb0db60d,0x1e0b1f0f,0xf50ef90b,0x410def0d,0x34103610,0xf50df410,0xfd0dfd0f,0x10ece0d,0x10ed70e,0xe70ece0e,0xe40be50b,0xcb0bc90b,0x130bca0b,0xc50f120e,0xcc0f2c0d,0xa40dc20d,0x240e8e0f,0xa60da70e,0x110ed10d,0x120f600e,0xeb0f670e,0x370d7b0d,0xc90dc00f,0xbc0f2f0d,0xc20dc00d,0x2c0f2b0d,0xf90f780f,0x860f750d,0x450f480d,0x550c530f,0xe80c560c,0x8d0e900e,0x550ed30e,0xb60e970e,0xbe0dae0d,0x260ed50f,0xeb0e2f0e,0x260e1a0f,0xda0e950e,0x390e230f,0xc80dc30f,0x780e110d,0xbd0f590d,0xbe0f2d0d,0xc40f2d0d,0x3e0dbe0d,0xc40d790f,0x870eab0d,0xa30ea20f,0xad0fa70d,0x840f450d,0x80d860d,0x70f5010,0x81107610,0xfe107510,0x6c0f3a0d,0xf0fcd0f,0xff0fce10,0x6b0f700d,0x940dcf0f,0x980dd30f,0xd310160f,0x710e020d,0xf0f770f,0x120e0c0e,0x170de010,0x170db710,0xb70e0e10,0x910090d,0x760e0e0e,0x90e030f,0x660dcf0e,0x5b0f8f0f,0x760d810f,0x700fbf0d,0xa60e7a0e,0xa40da50f,0xb80fa80d,0xb90da50d,0x780e440f,0x7a0f640e,0x610d790d,0x7a0e100f,0x5a0d760d,0x970f5b0f,0x98100b0f,0x4f0d3f0f,0x90d3e0d,0xd0ddf0f,0xa0f760e,0x1b0f7710,0x22101a10,0xe70e1910,0xcf0e180f,0xd00cdd0c,0x940dd30c,0xe00f980f,0x160ddd0d,0x1e0e2e10,0x1e0e3410,0x340e7210,0x6b100e0e,0xcd0e720e,0x6b0e670f,0xd90e830e,0xe20edb0e,0xb10e160e,0x5f0d5e0e,0xbd0d620d,0x2a0dc30d,0x7d0de20f,0xcf0de30f,0x510e600f,0x140ee70e,0xd00e600e,0xb00ead0e,0x770f8e0e,0xd50dd00d,0xad0bb70b,0x1c0ed20b,0x420ed510,0xb30da00f,0x220edf0d,0x8c101c10,0x8a0c8e0c,0xee0e210c,0x6b0e1d0f,0x6e0d6d0d,0xe910ef0d,0xf510e410,0xea0cf40c,0xc60e5d0c,0x660fc40f,0x690c680c,0x1f0ffe0c,0xbd0ffa0b,0x980d9e0f,0xbd10f30d,0x2f0eca0e,0xd50e550e,0x9f0e920e,0x40f950f,0xdb0f9710,0xd90bb60d,0xb40bb90b,0x760e800f,0xa30f920e,0x830e5e0e,0xa30ea40f,0xa80f860e,0x900ea40e,0xa80e7b0f,0x750fba0e,0xb60e7b0e,0x750e6f0f,0xb20e760e,0x950fb40f,0x920e4c0f,0x510c4a0e,0xd0c500c,0x990f1510,0x930dd00f,0x5c0f8e0f,0x660fc70e,0x1b0fce0e,0x180e6610,0xec0fe70e,0x2b0e2e0f,0x73101d0e,0x5610190e,0xa010190e,0xc0e560e,0xa00e9d10,0x990fa50e,0xf80e9d0e,0xf20dfa0e,0x3c0f5e0d,0x510e4c0e,0x3c0e3d0f,0x490f550e,0x5c0e3d0e,0x490eab0f,0x80fea0e,0xfa0d720e,0xf00ded0e,0xe80f430d,0xb20f680d,0xe30fe60e,0x120f770f,0x660e0210,0xce0fc70e,0x6e0e730f,0x1b101b0e,0x260ec10b,0xfc0cf80b,0xfe0cfb0c,0x280b3b10,0x9a0d040d,0xed0d510c,0xd60dd70e,0xdc0ef20d,0x3a0dd70d,0x570f4a0e,0x910c980e,0xe10b8e0b,0xe50f7c0d,0x5e0fc40d,0xf70e5d0e,0xf60ff00d,0x6a0e1e0d,0x310e310f,0x320c330c,0x4d0d940c,0xcd0daf0f,0xde0db50e,0xe6101f0e,0x160f140e,0xc60e0b0f,0xe60de20d,0x70f7b0d,0x4d0e5b0f,0xe30de90e,0xd90f7d0d,0xd410ce10,0x1f0e7c10,0x200e810f,0x400c3d0c,0xe90e9e0c,0x690e9c0e,0x740f340e,0x3d0d8d0e,0x580d900f,0x570d910f,0x270d950f,0x220db40f,0x270db40f,0xd10f1c0f,0x9c0f220d,0x9d0e890f,0xe40ef00f,0xe10dda0d,0x170eae0e,0x2c0fd70e,0xff0e390e,0xf50dc90e,0xd90f010d,0xf30ddf0d,0xd90dd50e,0xee0dda0d,0x8a0ef00e,0xc20d890f,0xd90d5f0f,0x870d6410,0x4e0d850d,0x9e0e9a0f,0x4c0e9f0f,0x3d0d900f,0x960f540f,0x7c0f5d0d,0x4b0f050d,0xf70eb10f,0xeb0ee20f,0x620e5a0e,0xb0e060e,0x7d0fdd0e,0x7e0f200e,0xaa0ed60e,0xe50da90d,0xaa0df80e,0xf00f000d,0xe70df80d,0x690f440d,0xd90e280f,0xa20e250f,0xce0bcd0b,0x640b880b,0x7f0b610b,0x580f0d0e,0x330fe80e,0x9a0ff20e,0xa00d9d0d,0x1510090d,0xda101f10,0x430e380e,0xef0ef60e,0x700dee0d,0x9d0c750c,0x270fdb0b,0x590e2c0e,0x640fd10e,0xcf90e,0x130cfa0d,0x10cff0d,0x5f0e8f0d,0xc20f960f,0xbf10c310,0xf10f6910,0xca0de70d,0x180fb80d,0x4411070f,0x7111060b,0x780c7b0c,0xfb0df30c,0xfb0f740d,0xfd0b250f,0xf0c0d0f,0x850c0b0c,0x8f0c900c,0x770b160c,0x9b0b810b,0x310d9f0d,0x850eb40f,0x9d0eb50f,0x410f350d,0x520fef0f,0x7c0e300e,0x790b7a0b,0xcf0d6a0b,0x7910d110,0x720b750c,0xa40fb30b,0x60dbb0d,0xfd0bf50c,0xe90e300b,0x310fef0f,0x6f0d700b,0xc10e4b0d,0x960fb70f,0x910fa30e,0xc50eaa0e,0xb80e5c0f,0xb90bb60b,0x9f0f430b,0xb40dac0d,0x7f0eb30e,0xf20cf40f,0xe10cf60c,0xe310e610,0x5b0d5c10,0x290d5e0d,0x260d270d,0x14110c0d,0x29110a11,0x1f0f620e,0x3c0d830e,0x740d8d0f,0x790f400e,0x790f470e,0xd80f400e,0xb50ede0d,0x580efc0d,0x6d0f0d0e,0x720e350f,0x9a0f360f,0x280da00d,0x200e820f,0x8e0e8a0e,0xf0f9b0e,0x10111f11,0x1f111111,0xde112011,0xd60ce00c,0x5f0e4f0c,0xd0fcc0e,0x110d100d,0xa70ef50d,0x6c0efc0e,0x6a0f2e0e,0xf10e9b0e,0x310ea60e,0x360f730e,0x360f790e,0xa10f730e,0x3e0f7a0e,0x570f3f0e,0x320f4a0e,0x6e0d6b0b,0x460dfa0d,0xdf0d830f,0xa0e130f,0xa60ee00e,0x500da20d,0xca0e5a0e,0xe10e060f,0xe10e070f,0x70e0d0f,0xb30efe0e,0xdc0ddc0d,0x440e3f0f,0x50fe20e,0x380e080e,0x3f0e770f,0xd80e880f,0x2d0e840e,0x5f0d7410,0x230dce0d,0xac0dd20f,0x9e0e9f0f,0x5d0dfc0f,0x5a0d960f,0x600c610c,0xd60f040c,0xd20dde0d,0x380e390f,0xdf10d80e,0xb00d6d10,0xb80d720f,0x7e0deb0d,0x2c0de10f,0x440c410c,0xc0db10c,0x4b0db20f,0x7c0d850f,0x980e9a0d,0x480f9a0e,0x49103d10,0xd20f2510,0xac0f230d,0x330ff20e,0x6d0eef0e,0x1a0ef40e,0x1d0db00f,0x480fd50f,0x650e400e,0x770d780f,0x820e7d0d,0xa70f1e0e,0xa90ed60d,0x7e0e850d,0xe90f200e,0xbf0f100d,0x370fd80d,0xad0e3f0e,0xd50bd20b,0x110dcb0b,0x960dc70f,0x8f0e980f,0x5b0e610e,0x870f0a0e,0x910f570d,0xa90f080d,0x40efd0e,0xa80fd60e,0x8a0b810d,0xa40b890b,0xd90e250f,0x9c0e950f,0x20fa10f,0x840dee0f,0x710fb10d,0xb50e700e,0x710e780f,0x270e210e,0xb50fed0e,0x960f0e0e,0xa80ba60e,0xb90ba40b,0x94109310,0x26102710,0x2d102510,0x23102410,0x2c102810,0x2810da10,0x2c102a10,0x8d0edb10,0x2d0e830e,0x2f102310,0x2e103010,0x31103110,0xc60ec510,0x310ec70e,0x3c0ec610,0x140c1e0c,0xfa0c570c,0xac0c060b,0xa3109e10,0x990cf010,0xb60c9b0c,0xb7109310,0x160d1410,0xf90d150d,0xe0d0f0c,0x1610ff0d,0xa2111711,0xb410b510,0x8c0f4f10,0x3f0f540d,0x410d400d,0xaf10c70d,0x710b010,0xa0d580d,0xd010cf0d,0xad10d510,0xbb0cb00c,0xb50cb20c,0x220cb40c,0xf40ff30e,0x4a10480f,0x4d105110,0x40103e10,0x4e107710,0x74107810,0x75105910,0x66106110,0x54106510,0x55106d10,0x8b106810,0x60106710,0x66106710,0x56106a10,0x6f106b10,0x70104b10,0x6310e010,0x5210d60d,0x76107710,0x4d106c10,0x73106e10,0x74105b10,0x73105d10,0x5e107210,0x71107210,0x8a106710,0x77106610,0x76108210,0x85107810,0x74108410,0x73107f10,0x6a0ee110,0x660f2e0e,0x65108910,0xb4109f10,0x7b10b310,0x7c107010,0x8c106910,0x4f106810,0x79107a10,0x84107710,0x6b108310,0x6a108e10,0xd00ba210,0x9c0bd10b,0x8e108c10,0x8d106a10,0x6d106910,0x6b108f10,0xbd10a410,0x2810bc10,0x620e1f0f,0xae10a50f,0x6c10ad10,0x91109210,0xb2109910,0xd110b110,0xa20bab0b,0xde0e0a0b,0xa60fdf0f,0xbb10bc10,0xb3109a10,0x9d10b210,0xbe10bf10,0xc2109510,0xa010c010,0xbd10be10,0xbb10a810,0xaa10ba10,0xb810ba10,0xec0ca110,0xb80ced0c,0xb910c310,0xc410bb10,0x2a10c310,0x300fe90e,0x44110d0e,0xed11090b,0x500d4f0c,0xc510c10d,0xe010c210,0xde0d6610,0xe00e2310,0x8e0e2a0f,0x8f0b920b,0xc310b40b,0xae10b310,0x4a0e450f,0x9b10b50e,0xb110b610,0xb010c710,0x280c2c10,0xc30c290c,0xae10ad10,0x13110910,0xa3110d11,0xa50ca60c,0xac10c60c,0xc410ad10,0xc310bf10,0xb310c710,0x5b10c310,0xd310d20d,0xb60bd710,0xb60bb10b,0xb510c310,0xdb0ce410,0x4f0ce20c,0x3e0cd40d,0xdc0bf10d,0xbb0bd90b,0xbe10040f,0x3411050f,0xcb11040b,0x5d0d5b10,0xcb10cd0d,0xd010f210,0xc910cc10,0x480d4310,0x970d440d,0xdb0dd40f,0x5b10cd0d,0xdb10cb0d,0xe20cd90c,0x6810ec0c,0xb710e80d,0xb610c310,0xcb0e4f10,0xd10e590f,0x6a0d6c10,0xd110d50d,0xd710cf10,0xd010d510,0x6310d610,0x60d610d,0x90d0a0d,0x5b0d5f0d,0x6f10d30d,0xe710e60d,0x9e0ce910,0xd90b9f0b,0xd210d310,0xb70cb110,0xd90cae0c,0xe20cd60c,0x6d10db0c,0xdb0d6c0d,0xd80d6c10,0x240ffd10,0x440ffc0b,0x39103810,0xc20b9f10,0xda0cbe0c,0xd9102c10,0xdc10e210,0xde102710,0x630d6610,0x6f10e30d,0x280d6d0d,0x660b590b,0x6d10e30b,0x1010df0d,0xf10fb11,0x29104011,0x2e103610,0x970c330c,0xe510ea0b,0xf210e210,0xef10eb10,0x530d5510,0x390d4f0d,0x3810000b,0xe710e90b,0xe810e610,0x660d6810,0x970c880d,0xe70c890c,0x6f0d7110,0x2b104a0d,0x47103f10,0x3b103a10,0x26102410,0xdc10d610,0x150e870e,0xa90dbf0e,0xd60da30f,0xdc102710,0x300d2c10,0xec0d3a0d,0x680d6910,0xef0cd40d,0x740ceb0c,0x720c760c,0x5d10ee0c,0xac0d710d,0x9e0ca70c,0x6910f00b,0xf210ec0d,0xee0d5d10,0xf010c910,0xc810ed10,0xf110ef10,0xcb10f210,0xca0d5d10,0x690d6a10,0x810d7f0d,0x670d750f,0x680c6c0c,0xf0c0a0c,0x580b990c,0x520d570d,0x490f4b0d,0x1b0f4f0f,0xc20ecb0b,0xb010a90e,0x4d10af10,0x6e106f10,0x310f710,0x450b3b11,0x540d4e0d,0x3b10f70d,0xff10fe0b,0x30b3b10,0xf710f611,0x110fe10,0x410fb11,0x220c5e11,0xfd0c600b,0x110fa10,0x43110e11,0xad11050b,0xaa0ba90b,0xbf0cb30b,0xc0cc00c,0xd0b4711,0x560e5311,0xf50e410f,0x810fe10,0xc20d8f11,0x20d890f,0xfc0b3011,0x4d0d4810,0x8a0d490d,0x8b0fa00e,0x411050e,0xb111011,0x11110e11,0x1910fd11,0x7110f11,0x12110611,0x7110911,0xc111211,0x13110d11,0x760b6311,0xca0c6d0c,0x930bcc0b,0xa11080b,0xf6111411,0x1510f510,0xae0ca211,0x30ca80c,0x1610f711,0x120c3811,0xf80c070c,0x1710ff10,0xf910fc11,0x111810,0x19110211,0x200d2e11,0xfa0d370b,0xf10fd10,0xfa10fb11,0x38110f10,0xd0103710,0x16111710,0x17111b11,0x1c111b11,0x17111811,0x18111c11,0x1d111c11,0x18111911,0xf3111d11,0x1d0ec010,0xa90c990b,0x2a0c9b0c,0x340e2f0b,0xe60f8a0e,0x120d8a0d,0x20111111,0x20111211,0x13112111,0x21111211,0x13111411,0x14112111,0x1a112111,0x14111511,0x59111a11,0x75107610,0xa0e6110,0x40f0b0f,0x7e0dde0f,0xed0df20d,0x440ef70d,0x360c460c,0x510d560c,0x530d530d,0x590d570d,0x1810fc0d,0x3e111911,0x2b103f10,0x930b8c10,0x730c980c,0x7e107f10,0x340d3510,0x330d330d,0x2b0d320d,0x2e0d2b0d,0x370d370d,0x390d380d,0x360d390d,0x350d350d,0x2b0d330d,0x370d2b0d,0xe50d390d,0x820f7c0d,0xfe0bfd0f,0x400c030b,0x2a0c430c,0xba0bbe0c,0xa50bc00b,0x8c0f840e,0xb00baf0f,0xf60bb40b,0xdf70f,0xbd0cb30e,0xeb0cba0c,0x1110100f,0x72107110,0x67107e10,0x62105f10,0x280fe510,0x2a0e2d0e,0x310d290d,0xd40fa20d,0xc40e650f,0xc90cc70c,0x8d0faa0c,0x720e460f,0x820b690b,0x890d800c,0x190fab0f,0x1b0c1a0c,0xfb0bf50c,0x450bfe0b,0x650c6a0b,0x9f0c9d0c,0xc90d080c,0x990d8f0f,0xc80fc30d,0x5c0d930f,0x3e0c610c,0x170d300c,0xf50d3c0b,0xf60bf70b,0x740b730b,0xd30b7b0b,0xfe0c030b,0x310c360b,0xe60c2b0c,0xdf0be00b,0x570b220b,0x650c520c,0x4f0c6b0c,0x50be80c,0x850bd10c,0x8c0b8a0b,0xe810ec0b,0xea10e510,0xf010ed10,0xe510ec10,0x5f10ea10,0x5c0c5e0c,0xc050c,0xe80bd40c,0xde0bd00b,0x4b0d490b,0x450d450b,0x460d420d,0xe60be30d,0xea0bea0b,0xdd0be60b,0x870b850b,0xec0b890b,0xdb0bef0b,0xed0beb0b,0x500bec0b,0x560c510c,0x560c420c,0xfb0c510c,0xd80bf60b,0x120e0f0b,0xff101310,0xe80c050b,0x5f0b670b,0xb630b,0x20c010c,0x30c000c,0x1e0bd30c,0x200d210d,0xb00f1d0d,0xe20daf0d,0x400be10b,0x5c0c620b,0x4f0c3f0c,0x450c370c,0xdf0ce00c,0x220ce50c,0x150edf10,0xdf0ce10f,0xf40cf40c,0xde0cdf0c,0xbc0bbb0c,0x280bc00b,0x320c2b0c,0x270c320c,0xc50c210c,0xc10bc40b,0xfb0e680b,0x8e0ef40e,0x650b8f0b,0x1b0ff30b,0x90e1d0e,0xc0c0e0c,0x110c0c0c,0xb20c100c,0xb40bae0b,0x160c3e0b,0x930c1e0c,0x900c8f0c,0x790b770c,0x3a0b780b,0x110c390c,0xdc0ecf0c,0x920e150e,0x750b9d0c,0x10d050c,0xc0d0c0d,0x330d0d0d,0x20b330b,0x360d050d,0x150b190d,0xbe0bbf0b,0xfb0bc30b,0x630e680e,0x240c420e,0xba0c2a0c,0xbb0cb80c,0xd00bde0c,0x720bce0b,0x920b8f0c,0x970c0a0b,0x1b0c330b,0x980c220c,0x2e0b980b,0x970b970c,0x990c0a0b,0x9a0b990b,0x1b0c1b0b,0x970b980c,0xca0fb80b,0xcd0dc10d,0xa40ba30b,0xcb0ba40b,0xd00bc60b,0xe70cdd0c,0xd0c0e0c,0xca0c120c,0xd00ccc0c,0xd10cd00c,0x3a0ccd0c,0x120c0c0c,0x9e0d150c,0x7f0c9d0c,0x830b750b,0xca0ccc0c,0x840cc90c,0x7f0c7a0c,0x8d0c7f0c,0x820c870c,0x7d0c7c0c,0x170c150c,0x160c160c,0x1c0c1d0c,0x7c0b710c,0x3e0c820c,0x1d0c3d0c,0x670b660c,0x700b6f0b,0x800c810c,0xf0d0b0c,0x1c0d100d,0x230c1f0c,0x1a0c230c,0x200c150c,0x1c0c1f0c,0x880eec0c,0xc30e940e,0xb80bbe0b,0x150c180b,0x420c1a0c,0x520e3b0e,0x230d200f,0x6a0cb40d,0x6e0b6c0b,0x790b780b,0x470b7a0b,0x450c4c0c,0xc70bde0c,0x820bcf0b,0x8c0b830b,0x250d240b,0x4d0d230d,0x460c470c,0xe20be30c,0x1a0be00b,0x1e0d1d0d,0x1f0d1e0d,0x640d1c0d,0x8d0b8b0b,0x490c470b,0xce0c4b0c,0xf110c810,0x540c5210,0xd00c530c,0xa80d990f,0x7b0b7f0d,0xfc0b740b,0x360b3010,0x2a0cc70b,0xc70d2f0d,0x2e0d2f0c,0x2c0d2d0d,0xc70cc90d,0x2b0d2e0c,0x2d0d2b0d,0x400cc90d,0xff0c040b,0x210d200b,0x6a0d220d,0x710b6f0b,0xbd0bdb0b,0x8e0bc30b,0x860c8b0c,0x1c0d1b0c,0x670d190d,0x710b680b,0x530c580b,0x2e0c430c,0xbe0b2d0b,0x840b8d0e,0x160c980b,0x180d170d,0x560c530d,0xcc0c420c,0xcf0cce0c,0x540d530c,0xf30d4e0d,0xf90bf40b,0x570c540b,0xb70c590c,0xac0bb20b,0x580c520b,0x5b0c5b0c,0x400c580c,0xf10cf50c,0x7b0cec0c,0x7c0c7d0c,0x770c7c0c,0x160c780c,0x300ee40e,0xa50bd30f,0xf40bab0b,0xd90bf10b,0x250c2a0b,0x420c1f0c,0x290c410c,0x940b930c,0x920bc00b,0x970c960c,0xac0ba90c,0xb00bb00b,0xa00ba80b,0x750f6e0b,0x250df90f,0xb40cb20d,0x8a0b7f0c,0x490c8e0c,0x450c480c,0x370c450b,0x510c350c,0xed0ca10d,0x220e4d0c,0xa10ff40e,0xcb0bcc0b,0x230c220b,0x340c270c,0xb0c080c,0x330c0b0c,0xe30c2d0c,0xf70ce10c,0x160c1e0c,0xa00c170c,0xa50ba70b,0xaa0ba50b,0x4f0ba90b,0x380c6b0c,0x40c010c,0x620c060c,0x8f0b650b,0xb11060b,0x44111111,0x490d480d,0x130c100d,0x190c190c,0x90c0f0c,0xb20bb30c,0x950bb70b,0x970c910c,0x720b620c,0xa30c760c,0x1c0d190c,0x680b710d,0x810c770b,0x9d0c700c,0x920b9d0b,0x900b900c,0x9c0c880b,0x9b0b9c0b,0x810c810b,0x900b9d0c,0xa40ba10b,0x170ba80b,0xfb0f740f,0x810f800d,0x800f7f0f,0x8d0f7f0f,0x800f890f,0x890f8d0f,0xaa0f8d0f,0x890fab0f,0xab0faa0f,0xae0faa0f,0xab0faf0f,0xb70fae0f,0x180fc10f,0xae0faf0f,0xb70fb70f,0xb80f180f,0xfb0d6b0f,0xfd0cfd0c,0x6c0d6a0c,0xdf0ce50d,0x6b0ce10c,0x5a10f40d,0xd10e640d,0x590eea0f,0x670b5f0b,0xf70bf60b,0xf60bf80b,0xd70bf90b,0x6c0b6d0b,0xbd0b6a0b,0xc00cb30c,0x850b8b0c,0x5b0b840b,0x3e0c3d0c,0x620c5f0c,0x640c640c,0x3c0c620c,0x5e0c5c0c,0x780c600c,0x7f0b7b0b,0x670c650b,0x630c660c,0x690c640c,0x690c3a0c,0xf70c640c,0xfc0bfa0b,0x660c6b0b,0x8d0c3b0c,0xb30f7f0f,0xed0bec0e,0xe00bee0b,0xde0be50b,0x80cfe0b,0xe0d0e0d,0xb0d0f0d,0xff0d0b0d,0x210cfe0c,0x4c0d1d0d,0x350f720b,0x6c0e3e0e,0x280b6b0b,0x780b7d0b,0x880b760b,0x850b870b,0x860b600b,0x6d0b880b,0x740b700b,0xfb0bfe0b,0xe00bd50b,0xe40be20b,0x5d0b5a0b,0xb70b620b,0x4a0fae0f,0x10bff0e,0xe90c000c,0xef0bea0b,0x5d0b620b,0x5b0b640b,0x600b5e0b,0x6a0b700b,0x500b690b,0x8b0f480f,0x7d0b770d,0x820b820b,0x800b7d0b,0xf00bed0b,0x250bf20b,0x270c210c,0xb10bd70c,0x270bb70b,0xb20cbf0d,0xda0bdb0c,0x800bc20b,0x8e0b760b,0xc1109c0c,0x1810c210,0xcd0f170f,0xfe11080d,0x360b4710,0x300c2f0c,0xc80bc60c,0xc70bc70b,0xcd0bce0b,0xd00edd0b,0xd30eb00e,0xaa0bd20b,0xa20fa00b,0xdd0e930f,0xcf0bdf0b,0xc20bc50b,0x920bda0b,0x960b910b,0x750c960c,0x140c6f0c,0x100c130c,0x930c980c,0xba0c940c,0xbd0bbf0b,0xc20bbd0b,0xd90bc10b,0xc30bdc0b,0x2f0c450b,0x2f0c360c,0x340c350c,0x830b8c0c,0xc10c8f0b,0x270ebf0e,0x4e10780b,0xf2104f10,0xac0cab0c,0x4f0d7d0c,0x150f490f,0xa50d160d,0xc00cc10c,0xc50cc50c,0xc60cc40c,0x250c260c,0x7e0c2a0c,0x800c7b0c,0x6d0d6e0c,0xcf0d6f0d,0xc40bc90b,0x5a0cfb0b,0x330b330d,0x110d0d0b,0xa10ca00d,0x9f0c9a0c,0x9e0c9d0c,0xa00c990c,0x9a0c9a0c,0x9e0c9f0c,0xbf0fe30c,0xd70e7a0f,0x3e0d400c,0x960bbb0d,0x470bb40b,0x4b0d4a0d,0x6f0c730d,0x3b0c750c,0x3c0f3d0f,0x480f3c0f,0xb40f500f,0xb70cb50c,0xfc0d030c,0xfa0cfa0c,0x60d000c,0xcd0ccb0d,0xe70cd10c,0xdb0cdd0c,0xf90bd70c,0x9b0bf40b,0x350f310d,0x180c1e0f,0xfd0c130c,0x30110110,0xad0ca80b,0xeb0caa0c,0xf10cef0c,0x600d650c,0x530d630d,0x540f5f0f,0x8b0f0f0e,0x420d7f0f,0x440d410d,0x3d0d2c0d,0xce0ccf0d,0x2c0cc90c,0xf30cf20d,0xf00cf00c,0x9c0c9b0c,0xab0c9c0c,0x740cf20c,0x720b700b,0x7e0c820b,0x330c7a0c,0x570d340d,0xcb0cc30b,0xd20cd20c,0xe90ce80c,0x690d090c,0xbf0d6a0d,0x2a0d270c,0xc70d2a0d,0xf60cc80c,0x16111510,0xe40ce011,0x210ce20c,0x240c260c,0x290c240c,0x9b0c280c,0x8d0b9c0b,0x650d670c,0x390d660d,0x190b180d,0xc310c60b,0xc510c510,0xab10c110,0xac10ab10,0x6610c610,0x3a0c690c,0x440f330c,0xa60dab0f,0xfd0ef10e,0xcd10d20e,0xf210f210,0xce10c810,0x200e8510,0x7e0f290f,0x6d0b6b0b,0x60d030b,0x510d090d,0x440c4d0c,0xdc0cd30c,0x3d0cdb0c,0x3a0d2c0d,0x4411060d,0x430b430b,0x410d440d,0x99100d0d,0xf20fa50f,0xe30be10b,0xa60ba70b,0x1f0bab0b,0x80f1410,0x45104610,0x4d103910,0x2a0e5b0e,0x350b2a0b,0x1c0e4e0b,0xb10d1f0d,0xe010e80c,0xd610d610,0xe210dc10,0xe510e210,0x7610e810,0x6e0c730c,0x4110420c,0xc8103410,0x980fbd0f,0x260e870d,0x910f210f,0x9d0fa30e,0x870c8b0f,0x790c8d0c,0x840c7a0c,0x6110240c,0x630d630d,0x470d600d,0xc40e470e,0x2310230e,0x63102410,0x260b4c0d,0xd240d,0x560d040d,0x590d560d,0x60d070d,0x560d000d,0x1a11150d,0xea111b11,0xc30f820d,0x5010f30f,0x480b510b,0x4e0d520b,0x4b0b490d,0x480b160b,0x490d4e0b,0x4f0b4d0b,0x480b4e0b,0x160b490b,0x4e0b4d0b,0x350b480b,0x4d0b2a0b,0x370b380b,0x3a0b350b,0x380b390b,0x1e0b250b,0x1f0b1f0b,0x380b3a0b,0x350b380b,0x480b4d0b,0x860b160b,0x1f0b250b,0x3e0b380b,0x240b3f0b,0x250b240b,0x480b380b,0x600b860b,0x600b480b,0x3e0b5e0b,0x380b240b,0x3d0b3c0b,0x2f0b3e0b,0x3c0b410b,0x210b460b,0xf20b2f0b,0x2f0b460b,0x3c0b2f0b,0x4d0b3e0b,0x5e0b480b,0x6b0b280b,0x4d0b290b,0x280b5e0b,0x3e0b2f0b,0xe10b380b,0x2f0bf20b,0x400b290b,0x380be10b,0x280b4d0b,0xe10b290b,0x380b2f0b,0x290b280b,0xa00cf50b,0xc10cf00c,0xca0bc40b,0xc00bca0b,0x90bba0b,0x4d0d0a0d,0x680b4d0b,0x640d690d,0x2c10d90d,0x980c2e10,0xee0c270b,0xe70d7110,0xe910e710,0x7510eb10,0x800f810d,0xf910f80f,0x5a0b3610,0x5c0b5b0b,0x5a0b5f0b,0x610b580b,0x5d0b640b,0xa60bab0b,0x4b0ba30b,0x3b0d3d0d,0x390f6b0d,0x590dc80f,0x4a0c480c,0xaa10940c,0xec10b810,0xef0cf10c,0xee0cef0c,0x80ced0c,0x15111411,0x740df311,0x160f6f0f,0xa30d190d,0x490c4a0c,0x4e0c470c,0x4c0c4f0c,0x860b870c,0xb50b160b,0xbc0bb80b,0xb40bbc0b,0x1f0bae0b,0xb60d200d,0xf0f410c,0x730d820f,0x890f800d,0xc70bcf0f,0xab0bc80b,0xc10faf0f,0xc40cc70d,0xec0cc50c,0x1d10110f,0x2b101d10,0xd80e180e,0xd710d510,0x2d0ebe10,0xd40b270b,0xd60cd50c,0x950baf0c,0x370ba80b,0x1a0b200d,0x1a0d380b,0x220b180b,0x1a0c1b0c,0x320d2b0c,0x430b550d,0x33104210,0x670f6010,0xa70d7b0f,0xbc0cbb0c,0x5d0c6c0c,0x9a0c5f0c,0xf0b990b,0xd50cde0c,0x560ceb0c,0x3b0f520f,0x410d3f0e,0x420d420d,0x550d540d,0xae0ca80d,0x520caf0c,0xc10f190e,0x9c0cab0f,0x430caa0c,0x37103510,0x890c8810,0x70c8d0c,0x340c080c,0xca10cf0c,0x690d6910,0xc910f00d,0xcf10cc10,0x6d0d6910,0x780c6e0c,0xb90eb70c,0xe30b2b0e,0xaf0ecf0e,0x9f0cb80e,0xa20cbc0b,0xa40ca80c,0x800c7f0c,0x100c810c,0xfa0d0f0d,0xfc0cfa0c,0x590cf80c,0x5a0b5b0b,0x8c0c870b,0x8a0c8a0c,0x840c830c,0x6c0dfe0c,0x190f710f,0x1e111d11,0xef0bdb11,0x170bea0b,0x1a0d130d,0x330d320d,0xf80b560d,0xbb0da10d,0x540ebb0e,0x530b530b,0xa80b4a0b,0x8f0d990d,0x530d880d,0x990da80b,0xf80daa0d,0xa90ebb0d,0xbb0daa0d,0x880d990e,0x990d930d,0x980d930d,0xa90da70d,0xa60ebb0d,0xbb0da70d,0x980d990e,0x990d9e0d,0xae0d9e0d,0xbb0da60d,0xa20b530e,0x530da60d,0x990b530b,0x530dae0d,0xb60dae0b,0xa20db20d,0xb10b530d,0x530db20d,0xb60b530b,0xb00ddb0d,0x530db10d,0xb00daf0b,0xeb0b530d,0xbf0de90d,0xa30dbf0d,0xbf0da50d,0xb80da50d,0xb80dbf0d,0x720d720d,0xdf0e0d0d,0x720dbf0d,0xeb0ddf0d,0xdf0dbf0d,0xaf0d940d,0x7c0b530d,0x7d0d850d,0x7d0d7c0d,0xe40d7e0d,0x7e0d7c0d,0x7e0de40d,0xda0dde0d,0xde0de40d,0xde0dda0d,0xd50dd60d,0xd60dda0d,0xd60dd50d,0xd90dd70d,0xd70dd50d,0xd70dd90d,0xdf0ddc0d,0xdc0dd90d,0xa00db30d,0xdf0d9d0d,0xb30ddc0d,0xdf0deb0d,0xb30db30d,0x820d9d0d,0xb30deb0d,0x9f0d820d,0x9a0d9b0d,0x9a0d9f0d,0xac0d9c0d,0x9c0d9f0d,0x9c0dac0d,0xe80dab0d,0xab0dac0d,0xab0de80d,0xec0de70d,0xe70de80d,0xe70dec0d,0xf30df10d,0xf10dec0d,0xf10df30d,0xfb0df90d,0xf90df30d,0x960dfc0d,0xfb0b310d,0xfc0df90d,0xfb0dcd0d,0xfc0dfc0d,0x5c0b310d,0xfc0dcd0d,0xca0d5c0d,0x5c0dcd0d,0x5c0dca0d,0xc10d5e0d,0x5e0dca0d,0x5e0dc10d,0xb90d620d,0x620dc10d,0xc40dbe0d,0xbe0dc90d,0xc00dc90d,0xbe0dbd0d,0xbd0dc00d,0xbc0dc00d,0xbd0dc30d,0xc30dbc0d,0xc20dbc0d,0xc30dc80d,0xc80dc20d,0xcc0dc20d,0xc80dff0d,0xff0dcc0d,0xfe0dcc0d,0xff0e030d,0x30dfe0d,0x20dfe0e,0x30e090e,0x90e020e,0xc0e020e,0x90e0e0e,0xe0e0c0e,0xf0e0c0e,0xe0db70e,0xb70e0f0e,0x970e0f0d,0x840d860d,0x860d830d,0x8d0d830d,0x860d8b0d,0x8b0d8d0d,0x900d8d0d,0x8b0d8e0d,0x8e0d900d,0x940d900d,0x8e0d920d,0x800d940d,0x620db90d,0x920d970d,0x730d940d,0x620d800d,0x940d970d,0x730b530d,0x740d620d,0x970db70d,0x750b530d,0x740d730d,0xb70de00d,0x7f0b530d,0x740d750d,0x530de00d,0xe00ddb0b,0xd40ddb0d,0xe00ddd0d,0xdd0dd40d,0xd00dd40d,0xdd0dd30d,0xcf0dd00d,0xd00dd30d,0xcf0d810d,0x810dd00d,0x770dd00d,0x810d760d,0x760d770d,0x780d770d,0x760e100d,0x100d780d,0x110d780e,0x100d7a0e,0x7a0e110e,0x120e110d,0x7f0d820e,0xeb0d740d,0x740d820d,0x7a0d790d,0x790e120d,0x7b0e120d,0x740deb0d,0x400d790d,0xd30e370e,0xf40d5a0f,0x190b3210,0xc00e800e,0x370b350f,0x5410010b,0xbc0ebb0b,0xc40cc60e,0x490cca0c,0x4c0d4d0d,0xd10d6c0d,0xfc10d510,0xeb0bf00b,0x330f320b,0xdc0d9c0f,0x4a0cd30c,0x120dc50d,0x920f1b0f,0x610140d,0x50100610,0x470d8e0f,0x3c103b10,0x81107510,0x4108010,0x4a0da80e,0x310b4a0b,0x8c0d960b,0x850d7d0d,0x960b4a0d,0x8c0d8c0d,0x870d850d,0x870d8c0d,0xa50d910d,0xad0da30d,0xa50da40d,0xa40dad0d,0xba0dad0d,0xa40dbb0d,0xbb0dba0d,0xf40dba0d,0xbb0df60d,0xf60df40d,0xfd0df40d,0xf60df70d,0xf70dfd0d,0x10dfd0d,0xf70e000e,0xe010d,0x40e010e,0xdb50e,0x8c0e040e,0x950d910d,0x8c0b4a0d,0xb50d950d,0x4a0e040d,0xb50dd80b,0x4a0b4a0d,0xb40d950b,0xb40b4a0d,0xd80dd10d,0xd10b4a0d,0xd10dd80d,0xd20dcb0d,0xcb0dd80d,0xcb0dd20d,0xce0dc70d,0xc70dd20d,0xce0dc50d,0x130dc70d,0xc70dc50e,0xc70e130d,0xa0dc60d,0xc60e130e,0xc60e0a0d,0x50e0b0d,0xb0e0a0e,0xb0e050e,0xd0e060e,0x80d720e,0x50e080e,0x70e060e,0x80e0d0e,0x8f0c850e,0x6d0b830c,0x680c770c,0x1f0e810b,0x7a0f240f,0x58105110,0xe90de310,0xe30deb0d,0xe10deb0d,0xe30de20d,0xe20de10d,0xe50de10d,0xe20de60d,0xe60de50d,0xea0de50d,0xe60d8a0d,0x880dea0d,0x890d8f0d,0x8a0d890d,0x160dea0d,0xc70dc60f,0xa0b4f0d,0xda0d580d,0x840e430e,0xa70dad0e,0x700fad0f,0x5e104b10,0x99109710,0x6910b110,0x57105310,0x53106210,0xeb106910,0x9c0e620e,0x61105a0e,0x64106510,0x89106510,0xbb0fb310,0x2b0df60d,0x260e2e0e,0x260e2b0e,0x180e1a0e,0x1a0e2b0e,0x1a0e180e,0x190eb20e,0xb20e180e,0x760e7a0e,0x800e800e,0xb20e190e,0x2f0ec80e,0x7a103010,0x87106310,0x7a107910,0x64108610,0x87108810,0x10110510,0x6f111111,0x92107b10,0x95109810,0xa510c010,0xa30eaa0e,0xa30ea50e,0xa20ea40e,0xa40ea50e,0xa40ea20e,0xab0ea80e,0xa80ea20e,0x1c0e7b0e,0xab0e470e,0x7b0ea80e,0x7b0eab0e,0x490e470e,0x470eab0e,0x670d650e,0x650e4b0d,0x4a0e4b0d,0x650d600e,0x600e4a0d,0x450e4a0d,0x9d0e9f0e,0x9a0e990e,0x990e9f0e,0x990e9a0e,0x980e920e,0x920e9a0e,0x980e8f0e,0x540e920e,0x920e8f0e,0x920e540e,0x420e4c0e,0x4c0e540e,0x4c0e420e,0x3b0e3c0e,0x3c0e420e,0x3c0e3b0e,0x410e3d0e,0x3d0e3b0e,0x600e470e,0x470e450d,0x460e450e,0x3d0e410e,0x530e490e,0x490e410e,0x460e470e,0x470eb30e,0xb40eb30e,0x490e530e,0x850e470e,0x470e530e,0xb40e470e,0x470eb50e,0x960eb50e,0x350e360e,0x310e290e,0x290e360e,0x290e310e,0x1e0e1f0e,0x1f0e310e,0x1f0e1e0e,0x860e200e,0x200e1e0e,0x200e860e,0x810e820e,0x820e860e,0x820e810e,0x7c0e7d0e,0x7d0e810e,0x7d0e7c0e,0x870e7e0e,0x7e0e7c0e,0x230e950e,0x950e250e,0x240e250e,0x950e8c0e,0x8c0e240e,0x8e0e240e,0x8c0e890e,0x890e8e0e,0x8a0e8e0e,0x890e910e,0x910e8a0e,0x8b0e8a0e,0x910e960e,0x960e8b0e,0x930e8b0e,0x7e0e870e,0x870e850e,0x470e850e,0x960e470e,0x470e930e,0x650e930e,0x870e150e,0x640e470e,0x9c0e9b0e,0x9c0e640e,0x590e620e,0x620e640e,0x620e590e,0x4f0e5a0e,0x5a0e590e,0x5a0e4f0e,0x5f0e500e,0x500e4f0e,0x500e5f0e,0x650e510e,0x510e5f0e,0x510e650e,0x690e600e,0x6a0e6c0e,0x690e160e,0x160e6a0e,0x170e6a0e,0x160eb10e,0xb10e170e,0xae0e170e,0xb10ead0e,0xad0eae0e,0xaf0eae0e,0xad0eb00e,0x470eaf0e,0x600e650e,0xb00e140e,0x470eaf0e,0x140e600e,0xaf0e140e,0xa70e150e,0xaf10a910,0x860c9010,0x890c890c,0x910c970c,0x8510840c,0x86108610,0x88108710,0x89108810,0x8a108a10,0x95109610,0x95108a10,0x86109810,0x8a108810,0x84108310,0x81108610,0x83108210,0x80107f10,0x7d108110,0x7f107e10,0x7c107b10,0x91107d10,0x7b109210,0x90108f10,0x9e109110,0x8f108e10,0x9e10a310,0x8f108f10,0x7b109110,0x7d107b10,0x7f107f10,0x83108110,0x98108a10,0x86109d10,0x9d108a10,0xa310a510,0xa7108f10,0x8f10a510,0x9d108610,0x8610a010,0xa410a010,0xa710a910,0xa9108f10,0x7b108f10,0xa4108610,0x8610a610,0xa810a610,0xa9109710,0x99107b10,0x7b109710,0x86108310,0x8310a810,0xaa10a810,0x99109a10,0x9f107b10,0x7b109a10,0xaa108310,0x83109410,0x93109410,0x7b109f10,0xa2107f10,0x7f109f10,0x83107f10,0x7f109310,0x9b109310,0xa210a110,0xc9107f10,0x790dc40d,0x740d790d,0xc90da10d,0xa10d790d,0xc90df50d,0xf50da10d,0xf80da10d,0xf50def0d,0xef0df80d,0xf00df80d,0xef0dee0d,0xee0df00d,0xed0df00d,0x830dfa0d,0x840d840d,0xed0dee0d,0xfa0df20d,0xcb0d840d,0x1d0b1c0e,0x6c106d0b,0x70109110,0x7d107110,0xd30ed410,0xa20e970e,0x840f870e,0x3d10490f,0xb6103210,0x2c0eb70e,0xa50c9e0b,0x210ca60c,0xb90b2b0b,0xc30eb80e,0x210ee70e,0xb80eb90b,0x2f0f140e,0x3d0b210b,0x140f3b0f,0x3d0f4c0f,0x140f140f,0xb80b210f,0xcf0ee70e,0xe70fcc0f,0xd40fcc0e,0x4c0f4d0f,0x1d0f140f,0x140f4d0f,0xe70eb80f,0x1d0fd40e,0xb80f140f,0x1d0f1a0e,0xd90eb80f,0xe00fe50f,0xe00fd90f,0xa40fda0f,0xda0fd90f,0xda0fa40f,0x9b0fa10f,0xa10fa40f,0xa10f9b0f,0xa00f9c0f,0x9c0f9b0f,0x9c0fa00f,0xa20f9d0f,0x9d0fa00f,0x9d0fa20f,0xc0fa30f,0xb80f1a0f,0xc0ee00e,0xd40eb80f,0xa30fa20f,0xa30fd40f,0xd10f0e0f,0xb80ee00e,0xd10ed60e,0xb80eb80e,0xe0fd40e,0x7f0f850f,0xe50f810f,0xb80ed60e,0x850f0e0e,0xe0f810f,0x8b0f810f,0x3c0f480f,0x450f460f,0x460f480f,0x460f450f,0x20f030f,0x30f450f,0x30f020f,0xf60ef80f,0xf80f020e,0xf80ef60e,0xf90ef70e,0xf70ef60e,0xf70ef90e,0xff0efa0e,0xfa0ef90e,0xfa0eff0e,0xff0f000e,0xe50f000e,0x8b0f0e0e,0xb80f0f0f,0xf0f0e0e,0xe50eff0f,0xb80eb80e,0x410f0f0e,0x770f760f,0x700f710f,0x710f760f,0x710f700f,0x6b0f6c0f,0x6c0f700f,0x6c0f6b0f,0x390f3a0f,0x3a0f6b0f,0x3a0f390f,0x2a0f2c0f,0x2c0f390f,0x2c0f2a0f,0x2d0f2b0f,0x2b0f2a0f,0x2b0f2d0f,0x3e0f2f0f,0x2f0f2d0f,0x2f0f3e0f,0x3e0f370f,0xff0f370f,0x180f170e,0x170fc10f,0x190fc10f,0xe90fef0f,0xef0fe80f,0xf20fe80f,0xef0f190f,0x80ff20f,0xfc0efd0f,0xfc0f080e,0xf20f0d0e,0xd0f080f,0xf20f190f,0x3e0f0d0f,0xb80eff0f,0xd00ff70e,0xf70edc0e,0xcf0edc0f,0xf70ee20e,0xe20ecf0f,0xe30ecf0e,0xe20ee40e,0xe40ee30e,0xe10ee30e,0xe40f300e,0x300ee10e,0x2e0ee10f,0x300f340f,0x340f2e0f,0x380f2e0f,0x340f400f,0x400f380f,0x3f0f380f,0x400f470f,0x470f3f0f,0x4a0f3f0f,0x470f0d0f,0x190f4a0f,0x4a0f0d0f,0x210f1f0f,0x1f0f200f,0x1e0f200f,0x1f0f240f,0x240f1e0f,0x280f1e0f,0x240f630f,0x630f280f,0x620f280f,0x630f6a0f,0x6a0f620f,0x6d0f620f,0x6a0f730f,0x730f6d0f,0x720f6d0f,0x730f790f,0x7a0f720f,0x150fac0f,0x720f790f,0x4a0f7a0f,0x7a0f790f,0x5d0f150f,0x4a0f780f,0x150f7a0f,0x4a0f190f,0xed0f150f,0x50f040e,0x50eed0f,0xf20ef00f,0xf00eed0e,0xf00ef20e,0xfe0eee0e,0xee0ef20e,0xee0efe0e,0xfe0ef30e,0x10ef30e,0x10efe0f,0x1c0f090f,0x1b0f220f,0x1b0f1c0f,0x110f120f,0x120f1c0f,0x120f110f,0x160f130f,0x130f110f,0x130f160f,0xdd0fdf0f,0xdf0f160f,0xdf0fdd0f,0xe10fde0f,0xde0fdd0f,0xde0fe10f,0x90fe20f,0xe20fe10f,0xe20f090f,0x90fea0f,0xb00fea0f,0x190f170f,0x170f150f,0x780f150f,0x780f170f,0x740f750f,0x750f170f,0x750f740f,0x6f0f6e0f,0x6e0f740f,0x6e0f6f0f,0x680f690f,0x690f6f0f,0x690f680f,0x430f440f,0x440f680f,0x440f430f,0x310f330f,0x330f430f,0x330f310f,0x350f320f,0x320f310f,0x320f350f,0x970f360f,0x940f980f,0x970f930f,0x930f940f,0x8f0f940f,0x930f8e0f,0x8e0f8f0f,0x660f8f0f,0x8e0f650f,0x650f660f,0x5b0f660f,0x650f590f,0x590f5b0f,0x5a0f5b0f,0x590f600f,0x600f5a0f,0x610f5a0f,0x600f670f,0x670f610f,0x640f610f,0x640f670f,0x410f3e0f,0x360f350f,0x360f410f,0x670f420f,0xb80f3e0f,0x420f410e,0xb80efe0f,0xfe0f410e,0xfe0eb80e,0xb80f090e,0xb00f090e,0xde0ecd0f,0xcd0ed70e,0xce0ed70e,0xcd0ff60e,0xf60ece0e,0xf50ece0f,0xf60ff00f,0xf00ff50f,0xf10ff50f,0xf00fb30f,0xb30ff10f,0xad0ff10f,0xb30fa60f,0xa60fad0f,0xa70fad0f,0xa60fa80f,0xa80fa70f,0xa90fa70f,0xbe0fbb0f,0xd00fbc0f,0xbb0fd60f,0xd00fc90f,0xbb0fbb0f,0xbd0fbc0f,0xbd0fbb0f,0xc20fc80f,0xbb0fc90f,0xbb0fc20f,0xc20fc80f,0xc30fc80f,0xc20f8a0f,0x8a0fc30f,0x820fc30f,0x8a0f7b0f,0x7b0f820f,0x7c0f820f,0x7b0f7d0f,0x7d0f7c0f,0x7e0f7c0f,0xa90fa80f,0x100f100f,0x7e0f7d0f,0x7e0f100f,0xb00f880f,0x100fa80f,0x880f100f,0xb80f670f,0x100fb00e,0xca0e500f,0xbf0fcf0f,0xc50cc80c,0xa10bcc0c,0x950b950b,0x960baf0b,0xbb0b960b,0x940b940b,0xcc0b930b,0x950bcc0b,0xef0b960b,0xd20ef40e,0xd50ed20e,0xd20ed30e,0xd40ed30e,0xef0eec0e,0xd80ed20e,0xd20eec0e,0xd40ed20e,0xd80ee80e,0xe80ed20e,0xe80ed80e,0xd80edb0e,0xd90edb0e,0xd80eda0e,0xda0ed90e,0xd50ed90e,0xda0fd20f,0xd20fd50e,0xd30fd50f,0xd20fd70f,0xd70fd30f,0xd80fd30f,0xd70fdb0f,0xdb0fd80f,0xdc0fd80f,0xdc0fdb0f,0x410fb90f,0x70b2f0b,0x60ecc0f,0xdd0b410f,0xc30ee70e,0xd00edc0e,0x200edd0e,0x260f210f,0xdd0edc0f,0x200ec30e,0xdc0f260f,0x200f290e,0xcc0edc0f,0x70b410e,0x70ecc0f,0x290ff40f,0xc30edc0f,0xcc0ec30e,0xc30ff40e,0xf30ff40e,0xac0f150f,0x9f0f9e0f,0x990fa50f,0x150f990f,0x990f9e0f,0x9a0f9e0f,0x9f0f950f,0x5e0f990f,0x990f950f,0x9a0f990f,0x990f960f,0x5f0f960f,0x990f5e0f,0x5e0f5f0f,0x530f5f0f,0x5e0f510f,0x510f530f,0x520f530f,0x510f550f,0x550f520f,0x560f520f,0x550f5c0f,0xc30f560f,0xee0ff30e,0xee0ec30f,0x5c0fed0f,0x290f560f,0x290f5c0f,0xc30ec30f,0xdb0fed0e,0xdb0ec30f,0x910fb90f,0xc30f5c0f,0xeb0fe60e,0xe60fec0f,0xe70fec0f,0xe60fe30f,0xe30fe70f,0xe40fe70f,0xe30fbf0f,0xbf0fe40f,0xc00fe40f,0xbf0fb10f,0xb10fc00f,0xb40fc00f,0xb10fb50f,0xb50fb40f,0xb20fb40f,0xb50fb90f,0xb90fb20f,0xb60fb20f,0xce0fcd0f,0xc60fc70f,0xc70fcd0f,0xc70fc60f,0xc40fc50f,0xc50fc60f,0xc50fc40f,0x920f8c0f,0x8c0fc40f,0x8c0f920f,0x830f840f,0x840f920f,0x840f830f,0x860f870f,0x870f830f,0xb60fb90f,0x900fba0f,0x870f860f,0xba0fb90f,0x900f900f,0x910f870f,0xb90ec30f,0xbd0f900f,0xc410be10,0x520b5110,0xbc0ebc0b,0xba0ebd0e,0x6f0dec0e,0x120f680f,0x80c0d0c,0xe30ce50c,0x140ce90c,0xfe0d150d,0x1410130c,0xd40d9210,0x5f0fcc0f,0x1710f80e,0xcc111811,0x1c0ec30e,0xb70eb90e,0xb60eb60e,0xbf0ebe0e,0xc10ebf0e,0xc20ec20e,0xc00ecb0e,0xca0ec00e,0xbd0ebd0e,0xbb0ebc0e,0xa10ebb0e,0xc90d740d,0xc70ec80e,0x740ebb0e,0xc00ec90d,0xbb0ebd0e,0xc20ebf0e,0xb90ec00e,0xbf0eb60e,0xb80ec30e,0x470eb90e,0xc30e1c0e,0xc50ec60e,0xc40ec40e,0xc30e470e,0xb90ec30e,0xbf0ebf0e,0xbb0ec00e,0xc90ebb0e,0xc60ec70e,0xc30ec40e,0xbb0ebf0e,0xc70ec70e,0xc30ec60e,0x9c10c10e,0x86109e10,0x630f240e,0x1f11200f,0x1e111e11,0x1c111d11,0x1b111c11,0x1a111a11,0x20112111,0x1e112011,0xa3111c11,0xad10a510,0x56106b10,0x35105510,0x570b150d,0xb60bb10b,0x140bb50b,0x390c110c,0x5810630c,0x28105a10,0x2b102910,0x25102b10,0x24102410,0x28102a10,0x20b3c10,0xeb0ff810,0xf40bf10b,0xcf0cd30b,0xcb0d3d0c,0xcf0fcc0f,0xcf0fcb0f,0xd10fca0f,0xca0fcb0f,0xca0fd10f,0xea0eeb0f,0xeb0fd10e,0xeb0eea0e,0xfc0ee90e,0xf10efd0e,0xea0ef10e,0xf50ee90e,0xf10efc0e,0x10101c0e,0xba0feb10,0xf10fad0d,0xf80b3d0f,0xe80ff90f,0xe00fe90f,0x350c070f,0x3a0c370c,0xff0ffe0b,0x60b410f,0xc110020f,0xc30cc60c,0xbe0fbc0c,0xdae0f,0xfe0fff10,0xfb0ffa0f,0xffd0f,0xfa0ffe10,0x10e4e0f,0xcc100010,0x4e0e320e,0x610020e,0xf90ecc0f,0x20ff80f,0x30ffc10,0xfa0ff910,0xfc0ffd0f,0xe4e0f,0x20ffa10,0x4e0ecc10,0xf90ffc0e,0x4e10020f,0xfc0ffa0e,0xb810c30f,0xf910ba10,0x3f10030f,0xb380b,0x24100110,0x30b3f0b,0xa20ee010,0xbe0db20d,0xdb10040f,0xfa0ffb0d,0xf90b1f0f,0xf50eff0e,0x4010410d,0xf4103610,0xf50ff10d,0xf50dfd0f,0xd70ece0f,0x10e040e,0xe80be70e,0xc90be50b,0xcb0bc60b,0x130e130b,0x2c0f120f,0xcc0f3a0f,0x9b0fa40d,0x110e8e0f,0x600f590e,0x880f670f,0x370deb0f,0xc00f2f0f,0x2b0f2f0d,0xc20dbc0f,0x2b0dbc0d,0xfc0f780f,0x860df90d,0x480d8b0d,0x540c530f,0xe80c550c,0x900ed40e,0xd50ed30e,0xd50e550e,0x26101c0e,0xe60feb0e,0x950e1a0f,0xda0fa10e,0x2a0f390f,0xbd0dc30f,0x2d0f2a0d,0x3e0f2d0f,0x3e0dc40f,0x790f640f,0x910eab0d,0xa30f870f,0xa70fa90d,0x20f450f,0x80d840f,0x500f3b10,0x60f500f,0x76100710,0x81108210,0xcc0dfe10,0xcd0f3a0d,0xf100e0f,0x30dff10,0xcf0f700e,0x940f8f0d,0xb0f980f,0x16101610,0xd30ddd10,0x160de00d,0x17101710,0xe101510,0x150e0e0e,0x9100910,0x90f7610,0x700f760e,0xcf0e030f,0x660d810d,0x660f5b0f,0xbf0d810f,0x700fb10f,0xa80fa60e,0xa80da50f,0xb80fb00f,0xdc0fb90d,0x640e440f,0x7a0f610f,0x5a0f610d,0x760e100f,0x5a0e100d,0x50f970f,0x3f100b10,0x4f0d550d,0x10f090d,0x760ddf0f,0xa10090f,0xc100d10,0xd101810,0x19101810,0x21102210,0x10100d10,0x22101c10,0x11101d10,0x1e101010,0x10101d10,0xd102210,0x1b101910,0xe100f10,0x19102210,0x1e101b10,0x22101010,0xe101b10,0x1a101a10,0x22101e10,0xe40e1910,0xcf0fe70f,0xdd0cd30c,0x1d0e2e0c,0x1e101e10,0x72101a10,0x1a0e720e,0xe100e10,0x6b0fcd10,0xc60fcd0e,0x830e670f,0xd90e480e,0xe40ee20e,0x5e0e160e,0x5f0d5b0d,0x7b0de20d,0xcf0f7d0f,0x600ee70f,0xdd0ee70e,0xd00e140e,0xad0ff70e,0x650f8e0e,0xd50d770f,0xb70bd80b,0xdf0ed20b,0x42101c0e,0xa00f360f,0x8b0c8c0d,0x210c8e0c,0xee0fed0e,0x6c0d6b0f,0xe40d6d0d,0xef10f110,0xeb10ef10,0xe910e910,0xe410e610,0xf30cf510,0x5d0cf40c,0xc60e670e,0x670c660f,0xfe0c680c,0x1f0b3a0f,0xbc0fbd0b,0xf30d9e0f,0xbd0eba10,0x990e920e,0x40f9f0e,0x97100510,0xd60bb60f,0xb40bd90b,0x800fc00f,0x830f920e,0x830ea30f,0xa40f860f,0x900f860e,0x900ea80f,0x7b0fba0f,0xb60fba0e,0xb60e750f,0x6f0fb20f,0x6f0e760e,0x950fb20e,0x4c0f5e0f,0x4d0c4a0e,0xd0c510c,0x15102110,0xd40dd00f,0x5c0f930d,0xc70fc50e,0xf0fce0f,0x1b101b10,0x660e6e10,0x1b0e730e,0x19101910,0xa0101810,0x180ea00e,0xc100c10,0x9d0fa510,0x9f0fa50e,0xf80e990f,0xfa0f030e,0x510f5e0d,0x510e3c0f,0x3d0f550f,0x5c0f550e,0x5c0e490f,0xab0f910f,0xe20fea0e,0xfa0e080f,0xed0ef70e,0xac0f430d,0xb20de80d,0xe60e1a0e,0xa0f770f,0x12101210,0x20e0c10,0xc20b1b0e,0x130ec10e,0x320d020d,0x310b320b,0x4a0b4a0b,0x540b530b,0x520b540b,0x510b510b,0x1d0b500b,0x1c0b1d0b,0x1b0b1b0b,0x270b260b,0x2d0b270b,0x2e0b2e0b,0x2b0b2c0b,0x210b2b0b,0x2b0b220b,0x5d0b220b,0x2e0b270c,0x1d0b2b0b,0x270b1b0b,0x510b540b,0x320b1d0b,0x540b4a0b,0x320d130b,0x540b540b,0x270b1d0b,0x2b0b270b,0x270c5d0b,0x6c0c5d0b,0x540d130c,0x1a0b270b,0x270d130d,0x6c0b270b,0x450c6a0c,0x430b420b,0x6a0b270b,0x1d0b450c,0x270d1a0d,0x260d280b,0x4c0b4c0d,0x270d1d0b,0x430b450b,0x450b440b,0x470b440b,0x270b4c0b,0x10b450b,0x280d3111,0x450b4c0d,0x4c0b470b,0xfe0b470b,0x10b3010,0x360d2811,0x280b300b,0x4c0d280d,0x3b10fe0b,0x280b360b,0x120cf90d,0x9a0c9a0d,0x510ca10c,0x560d510d,0x40d040d,0x9a0cf90d,0xf20eed0c,0xf20dd70e,0xdc0efe0e,0x790e3a0d,0x980f4a0f,0x910c950c,0x7e0de10b,0xc40f7c0f,0x5e0f920f,0xf60df70e,0x1e0ff00f,0x6a0f630e,0x2d0c310f,0x940c330c,0x4d0f4c0d,0xecd0f,0x1f0db50e,0xe6102010,0xdd0f160e,0x70e0b0f,0x5b0f0a0f,0xda10d40e,0xd910d910,0xce10d210,0x210e7c10,0x200f1f0f,0x3d0c1d0c,0xf50e9e0c,0x690ee90e,0x340f300e,0x3c0d8d0f,0x580f3d0f,0x910d950f,0x580d950d,0x220f270f,0xb40dd10f,0xcb0f1c0d,0x9c0dd10d,0x890e8c0f,0x50ef00e,0xe10de40f,0xae0ee30e,0xdb0fd70e,0xff0e2c0f,0xc90f370e,0xf30f010d,0xf30dd90e,0xd50eee0e,0xd50dda0d,0x8a0eee0d,0x890d8a0f,0xd30d5f0d,0x9a10d910,0x9e0f9a0e,0x940f4c0f,0x540d900d,0x960d8c0f,0xe40d7c0d,0xb10f050d,0xf70ead0e,0xca0eeb0f,0x7d0e5a0f,0x200f1e0e,0xe50ed60f,0xe50daa0e,0xf80f000e,0xfa0f000d,0xe70df00e,0x440dab0d,0xe50e280f,0xa20fd90f,0xcd0ba30b,0x8b0b880b,0x7f0b640b,0xd0f470e,0x2d0fe80f,0x9a0e330e,0x9d0d9b0d,0x7101f0d,0x1f100610,0x14100610,0x20100410,0xb101f10,0x4100510,0xb101610,0x1f100410,0x13101410,0xa101210,0x1f100910,0x12101310,0x4101610,0x17101f10,0x1f101610,0x12101f10,0x15100910,0x1f101710,0xd20eda10,0xf60e380f,0xef0ef90e,0x710c700d,0xdb0c750c,0x270fed0f,0xcb0e590e,0xf90fd10f,0xd040c,0x20d010d,0x130d130d,0xff0d140d,0x540e8f0c,0xbf0f5f0e,0xc210c010,0xc510c210,0x6910c310,0xf10f6e0f,0x911070d,0x780b4411,0x710c6e0c,0x800c710c,0xfb0c7b0c,0x250b1e0f,0x90c0d0b,0x850c0f0c,0x900c860c,0x7c0b160c,0xb40b770b,0x850f7f0e,0x190fef0f,0x7c0e520f,0x7a0b7e0b,0xca0d6a0b,0x7910cf10,0x750c830c,0xa60fb30b,0x60da40f,0xf50bfa0c,0x710d6f0b,0x310b310d,0x700b320b,0xe0e960d,0xaa0fa30f,0xc50f8c0e,0xb50bb80f,0x430bb60b,0x9f0f310f,0xf70cf60d,0xf40cf40c,0xf20cf30c,0xdf10e30c,0xe110dd10,0xe610e410,0xdd10e310,0x5c10e110,0x5b0d5d0d,0x2a0d290d,0xc0d270d,0x14111311,0x6d0e2911,0x830f620f,0x3c0f460d,0x340e740f,0x470f400f,0x790e7f0f,0x250dd80e,0xfc0ede0f,0x580ea70e,0x290f6d0e,0x360e350e,0x9a0f320f,0x1e0f280d,0xf0e820f,0x1f111e11,0x10111111,0xd6111f11,0xde0cd50c,0xdf0cde0c,0xd0ce00c,0x100d0c0d,0x9e0ef50d,0x6c0ea70e,0x2e0f380e,0xea0e9b0f,0x310ef10e,0x730f6a0e,0x3a0f790f,0xa10e360e,0x7a0fac0e,0x770f3f0f,0x6e0e570e,0x320d700d,0xf40b320b,0xfa0d6b10,0x460f030d,0x130fdf0f,0xe00e130f,0xa60ed10e,0xdd0e060d,0xe10fe10f,0xd0f090f,0x420efe0e,0xdc0db30f,0x3f0fd80f,0xde0fe20e,0x380e050f,0x770e6c0f,0xec0e880e,0x640ed80e,0x2d102a0d,0xc9102d10,0x740d740e,0x5f0d620d,0x640d5f0d,0xce102d0d,0x230f1b0d,0xa10fac0f,0xfc0e9f0e,0x5d0f780d,0x5b0c5a0f,0x40c610c,0xd60eed0f,0xd70fd20d,0x6d0e390f,0xd810db0d,0xdd10d810,0xb010df10,0x720fea0f,0x880deb0d,0x2c0f7e0f,0x410c290c,0x1a0db10c,0x4b0f0c0f,0x850f4e0f,0x3c10480d,0x25103d10,0xd20dd80f,0x80eac0d,0xef0ff20f,0x6d0e940e,0xb10f1a0e,0xd50db00d,0x480ed90f,0x590f650e,0xa70d780f,0xd60ed10d,0x7d0de90e,0xd80f100f,0x370fd30f,0xaa0bad0e,0xcb0bd20b,0x110f1c0d,0x9a0f960f,0x870e980f,0x570f4e0d,0xac0f080f,0x40ea90e,0xd60ed70e,0x820b810f,0xa40b8a0b,0x250e240f,0x8c0e950e,0x20f9c0e,0xee0ef60f,0xb50fb10d,0xb50e710f,0x780fb90f,0x850eb50e,0xa60f0e0f,0xa80ba00b,0xb710b90b,0x2d109310,0x24102a10,0xe80edb10,0x230e8d0e,0xc50ec410,0xc510230e,0xc8102e0e,0x2d0ec90e,0x2e102310,0x2f102f10,0x2d0ec810,0x2f103010,0x31102e10,0xc5102e10,0x300ec70e,0x3c103110,0x1e0c3f0c,0x450b420c,0x420c480b,0x590c480b,0x430b340c,0x310b420b,0x3411010d,0x230b200b,0x180d310b,0x200b1a0b,0x190b150b,0x560b180b,0x150b570b,0x550b140b,0x300b560b,0x560b140d,0x150b560b,0x180b180b,0x310b200b,0x340d310d,0x310b420b,0x590b420d,0x180b560c,0x300d310b,0x310b560d,0x310d300d,0x3b0c590d,0x170d3c0d,0x300b170b,0x570c590d,0x210b220c,0xf20b460b,0x460bf00b,0xfc0bf00b,0x3b0d4c0b,0x160b170d,0x4c0b4b0b,0x4c0b160d,0x160b170d,0x590b170b,0x160b7c0c,0x7c0c590b,0x570c590b,0x6b0b290c,0x400b7e0b,0x7e0b290b,0x7e0b400b,0x40b7c0b,0x7c0b400c,0x7c0c040b,0x210c570b,0xfc0b460b,0xfc0b210b,0x60bfa0b,0x570c040c,0x210c570c,0xac0bfa0b,0x9e10ab10,0xa00cf010,0xb60c990c,0x93109b10,0x170d1410,0xe0d160d,0xf90d120d,0xfa0cf90c,0xff0d0f0c,0x16110310,0xa110a211,0x4f10b510,0x8c0d7d0f,0x3e0d3f0d,0xc70d400d,0xaf10c310,0x590d0710,0xcf0d580d,0xd010cc10,0xa70cbb10,0xad0cad0c,0xb00caf0c,0xb30cb20c,0x220cb50c,0xf30e1b0e,0x5b10590f,0x44104410,0x46104510,0x47104610,0x48104810,0x4a104910,0x62103f10,0x3f105f10,0x60105f10,0x44105910,0x52104610,0x46105910,0x60103f10,0x3f106110,0x5a106110,0x46105210,0x50104810,0x48105210,0x3f104a10,0x4a105a10,0x58105a10,0x50104e10,0x4f104810,0x48104e10,0x58104a10,0x51105110,0x48104f10,0x42104110,0x43104310,0x5b104410,0x5b104310,0x40105c10,0x43104110,0x3f106210,0x53103e10,0x3e106210,0x5c104310,0x43105d10,0x5e105d10,0x53105710,0x56103e10,0x3e105710,0x43104010,0x40105e10,0x4b105e10,0x56105510,0x54103e10,0x3e105510,0x4b104010,0x4d104c10,0x3e105410,0x4c104010,0x77104d10,0x4e105010,0x5b107410,0x61105910,0x66106010,0x6c105410,0x68106d10,0x8b108c10,0x5f106010,0x6a106710,0x56105710,0x4c106f10,0xe0104b10,0x6310de10,0x5010520d,0x6c107710,0x4d105410,0x5c107310,0x5d105b10,0x73105c10,0x5d105e10,0x67107210,0x8a108b10,0x83107710,0x78108210,0x85107910,0x80107410,0xe1107f10,0x6a0e170e,0x8a10660e,0x9f108910,0xb410a210,0x6f107b10,0x69107010,0x8c108d10,0x51104f10,0x77107a10,0x84107810,0x8f106b10,0xa2108e10,0xd00bce0b,0x96109c0b,0x8a108a10,0x8c108b10,0x8d108c10,0x8e108e10,0x9c109e10,0x8a109c10,0x6a108c10,0x8d108e10,0x90106d10,0xa4108f10,0xbd10a010,0x200f2810,0xa50e1f0e,0xae10a710,0x6e106c10,0x99109210,0xb2109a10,0xd40bd110,0xa0bab0b,0xde0e050e,0xa410a60f,0x9a10bc10,0xb3109f10,0x98109d10,0x9510bf10,0xc2109610,0x9d10a010,0xa810be10,0xbb10a610,0xa810aa10,0xa110ba10,0xec0ca00c,0xbc10bb0c,0x2a10c410,0xe90fe00e,0x47110d0f,0xed0b440b,0x4f0cee0c,0xe810e00d,0x230d6610,0xe00fda0e,0x910b8e0f,0xb40b920b,0xc310b510,0xaa0fae10,0xb50e450f,0x9b10a110,0xb210b110,0x2c10c710,0x280c2b0c,0xaf10ae0c,0xc310c310,0xad10c610,0x12110910,0xa3111311,0xa60ca40c,0xbe10c40c,0xc710bf10,0xb310b210,0xcd0d5b10,0xd710d210,0xb60bd60b,0xe60ce40b,0x4f0cdb0c,0xd40cee0d,0xec0bf10c,0xbb0bdc0b,0x40ee60f,0x43110510,0x430b340b,0x480d470d,0x930f970d,0xdb0dd40f,0xd90cda0c,0xb910b70c,0x4f10c310,0xcb0fcc0e,0x70d060f,0x6f0d0a0d,0xe610e30d,0xc30cbe10,0xe90ce90c,0xf60ce30c,0xac0cf60c,0x9e0b9e0c,0x9f0cbc0b,0xbe0b9f0b,0xe90ce90c,0x9e0cf60c,0xb60cb10b,0xd90cb70c,0xd60cd80c,0x250ffd0c,0x390b240b,0x44104510,0x37104410,0x9f103810,0xc20cb80b,0x5e0b280c,0x100b590b,0xfb110411,0x3e104010,0x2e102910,0x330c320c,0xc810ef0c,0xf210f210,0xeb10ee10,0x540d5510,0x530d530d,0x4f0d500d,0xff0b390d,0x8810000f,0x970b900c,0x32104a0c,0x47102b10,0x3a104610,0x6110d610,0x2410240d,0x26102510,0x260edc10,0xbf0e870f,0xa90f100d,0x2610d60f,0x2c102710,0x300d2d0d,0xd50ceb0d,0xd40cd40c,0xef0cee0c,0x730c740c,0xac0c760c,0xa70cab0c,0x8b0d7f0c,0x670f810f,0x6c0c6a0c,0xb0c0a0c,0x520c0f0c,0x580b4e0d,0x590d580d,0xa0d570d,0x2f0f070f,0x140b2f0b,0xe60ee60f,0xd60fbb0e,0xd70fd60f,0xe60ede0e,0xde0fd60e,0xa0f0b0e,0xd20b2f0f,0xfb0ef40e,0xb0efb0e,0xe60b2f0f,0x250ede0e,0x1b0f230f,0x250f220f,0x220f230f,0x220f250f,0xd20f270f,0x2f0efb0e,0xd20edf0b,0xe60b2f0e,0x270f250e,0x270ee60f,0x150f580f,0x2f0edf0f,0x2f0f150b,0x150ee60b,0x580ee60f,0x150f5d0f,0x5d0f580f,0x570f580f,0x5d0f540f,0x540f570f,0x4e0f570f,0x540f4f0f,0x4b0f4e0f,0x40f050f,0x4e0f4f0f,0x4b0f4b0f,0x490f040f,0x1c0b1b0f,0xa90ecb0b,0xb0109710,0x4c104d10,0x54106f10,0x450d420d,0x490d450d,0xff0d4e0b,0x3b0b3610,0x3411040b,0x111010b,0xfb10fa11,0x5d0c5e10,0xe0b220c,0x43110b11,0xac0bad0b,0xb30ba90b,0xbf0cb20c,0xa110c0c,0x530b4711,0x560f290e,0xf610f50f,0x8f10fe10,0xc20fc90d,0x11020f,0x480b3011,0x4d0d4b0d,0x9b0e8a0d,0xfd0fa00f,0x19110010,0x580b6311,0xca0c760b,0xcc0bcb0b,0xb10ca20b,0x380cae0c,0x120c3b0c,0x230d2e0c,0x360b200b,0x28102910,0xda102810,0xd410d410,0xe410f110,0xe110e410,0xdd10dd10,0xd010d710,0xc910d010,0xed10ed10,0xe210ea10,0x2710e210,0x25102510,0x32102b10,0x2510e210,0xd0103210,0xe210ed10,0xdd10e410,0x3610d010,0xd4102810,0x36103410,0xe210d410,0x3d103210,0x3d10e210,0x33103c10,0xd4103410,0xd4103310,0xd010e410,0x3c10e210,0x3c10d010,0x35103b10,0xe4103310,0x35103710,0xd010e410,0x3a103b10,0x3a10d010,0x37103910,0xd010e410,0x3910d010,0x1d103810,0xf30b500b,0xca10f310,0x990ec00e,0xa90ca60c,0x6c0e770c,0x770e690e,0x740e690e,0x770e570e,0x570e740e,0x790e740e,0x360e350e,0x570e3a0e,0x7f0e790e,0x350e3e0e,0x3a0e3a0e,0x7f0e570e,0x3e0ea10e,0x9d0e3a0e,0xa10e9f0e,0x9d0ea00e,0x560ea10e,0xa10ea00e,0xa10e560e,0x560e3a0e,0x7f0e3a0e,0x9c0e9e0e,0x9e0e9b0e,0xa60e9b0e,0x9e0ea70e,0xa70ea60e,0xa90ea60e,0xa70e580e,0x580ea90e,0xac0ea90e,0x580e7f0e,0x560eac0e,0xac0e7f0e,0x250e280e,0x280e230e,0x2a0e230e,0x280e2d0e,0x2d0e2a0e,0x300e2a0e,0x2d0e330e,0x520e300e,0x670e4b0e,0x300e330d,0xac0e520e,0x520e330e,0x670e520e,0x2a0b4d0d,0x610e5b0b,0x610b2a0e,0x520e630e,0x2a0b4d0e,0xac0e560b,0x560e520e,0x2a0e520e,0x630b2a0b,0x2a0e680e,0x6d0e680b,0x560e730e,0x6e0b2a0e,0x2a0e730e,0xa30e5e0b,0x5d0eaa0e,0xaa0e5e0e,0xaa0e5d0e,0x670e5c0e,0x5c0e5d0e,0x5c0e670e,0x6b0e660e,0x660e670e,0x4e0e4d0e,0x1c0e320e,0x750e7b0e,0x760e6f0e,0x4d0e7a0e,0x1c0e320e,0x4d0e220e,0x750e1c0e,0x7a0e6f0e,0x7a0e750e,0x1b0e700e,0x1c0e220e,0x1b0e1d0e,0x750e1c0e,0x710e700e,0x710e750e,0x210e780e,0x1c0e1d0e,0x210e270e,0x1c0e1c0e,0x780e750e,0x780e1c0e,0x2c0e440e,0x1c0e270e,0x1c0e2c0e,0x2c0e440e,0x3f0e440e,0x2c0e390e,0x390e3f0e,0x370e3f0e,0x390e380e,0x380e370e,0x400e370e,0x380e430e,0x430e400e,0x480e400e,0x430e840e,0x840e480e,0x830e480e,0x840e880e,0x880e830e,0x8d0e830e,0x880e940e,0x940e8d0e,0x900e8d0e,0x940e6d0e,0x6d0e900e,0x970e900e,0x660e6b0e,0x720e6e0e,0x6e0e6b0e,0x6d0b2a0e,0x2a0e970e,0x550e970b,0x720e340e,0x260e6e0e,0x340e2e0e,0x550b2a0e,0x2f0e2f0e,0x340e260e,0x6e0e340e,0x8a0b2a0e,0xe60f7b0f,0x5210590d,0xe4107610,0xe7119d11,0x98119611,0x23118e11,0x28112711,0x28112211,0x22112911,0x28112311,0x22112511,0x2e112a11,0x36123812,0x24112e12,0x2f112611,0x26112e11,0x6c126d11,0x5d126a12,0x5c11cd11,0x3c114411,0x90113811,0xa211a111,0x6411d111,0x3311d211,0x34113211,0x33113511,0xc9113411,0xa811ad11,0x5120f11,0x58120212,0x57118411,0x31112c11,0xe6112511,0xe7119811,0x86115511,0x44118111,0x43113711,0x41113711,0x44114311,0x45114311,0x44114611,0x47114511,0x45114611,0x22121f11,0xf1122312,0xf011ed11,0xc3122f11,0x2e123311,0xc6123112,0x7c11dd11,0x4d11df11,0x4a114811,0x4a114d11,0x4e114b11,0x4b114d11,0x4b114e11,0x50114f11,0x4f114e11,0xa911fa11,0xba11fe11,0x66126511,0xe5119612,0x3f119711,0x40113811,0x91119f11,0x7e118b11,0x88118711,0x7e117d11,0x89118811,0x8a118c11,0x1b121a11,0x7d121812,0x8c118811,0x7d118911,0x63118c11,0x65126612,0x8f118d12,0x89119011,0x90118d11,0x6711d211,0x8511d311,0x84115711,0xa9115e11,0x5e11ac11,0x54115211,0x1e121711,0x8e122012,0x9c119911,0x9c118e11,0x8f119d11,0x9e11a011,0x73116e11,0x8e117d11,0x8f119d11,0x9d118f11,0xa811a011,0x8811a411,0xa311a411,0xa4116811,0x6c116811,0xa411a511,0xa6116c11,0x7411a511,0x6c11a511,0xa6117411,0x6d117411,0xc1115b11,0x3e11c411,0x3d124012,0x83115012,0x6a115811,0xb0116111,0xb0116a11,0xb211b111,0xb311b511,0xb1116a11,0xb411b411,0xb511b111,0xb411b211,0xa811b511,0xaa11ae11,0xb311b811,0xbc11b511,0x6e126611,0xee11eb12,0xf611ec11,0xe911ea11,0xb211ba11,0xb411be11,0xbb11b211,0x7811b911,0xb811bb11,0xbb11b911,0xbf11b911,0xbf117811,0x78117511,0x21121d11,0x5c121f12,0x61126012,0x28122512,0x67122612,0xb7126512,0x5c11e311,0x3b11cd11,0x38114011,0x70117911,0xc0115b11,0xc511d811,0x69126311,0x9e127012,0x9111a011,0x27112911,0x2b112f11,0x2d122312,0x8a11a112,0x41118c11,0x42113611,0x2a113011,0x6f112911,0x6c126812,0x4d113a12,0x29114c11,0x28122b12,0xf011f212,0xf211f311,0xf011f111,0xf411ef11,0x2d11ea11,0x29113011,0xe8119b11,0x9811e711,0xe7119b11,0x42113511,0xe1113611,0x51115d11,0xf711f511,0xf411f811,0xeb11f811,0xf511f411,0xf511f811,0xf711f311,0x18121611,0xc0121912,0xc211c611,0xac11f911,0xac11fa11,0xfa11a911,0xfa11f911,0xab11fb11,0xfc11af11,0xab11fe11,0xfe11fc11,0xfd11fc11,0x8120711,0x8120c12,0xc120b12,0x7120312,0x7120d12,0xd120c12,0x3120112,0x3120e12,0xe120d12,0x1120212,0x1120f12,0xf120e12,0x3a124412,0x6123712,0x10120512,0x10120612,0x12121112,0x11120612,0x11121212,0x14121312,0x13121212,0x13121412,0xa121512,0x15121412,0x4d124b12,0x18124e12,0x14121212,0x81118712,0x6d118611,0xa611a211,0xfd11fe11,0x35120d11,0x4f124812,0x13121b12,0x15121112,0xff121312,0x53124c11,0x54125512,0x58125712,0x3d113b12,0x4c113e11,0x45115911,0x5d125a11,0xe6125b12,0x9a119911,0xd5117311,0xe411d911,0x95119411,0x6511a311,0x52116811,0x54125612,0x15120a12,0x9121c12,0x1c120a12,0xc711c212,0xaa11c311,0xab11af11,0xc4122e11,0xc4122f11,0x2f11c111,0x2f122e12,0xc3123012,0x3111c711,0xc3123312,0x33123111,0x32123112,0xb120912,0x3c120812,0x41123d12,0x40123d12,0x38124112,0x42123c12,0x41123c12,0x36124212,0x43123812,0x42123812,0x37124312,0x44123612,0x43123612,0x62124412,0xd011d111,0x3a123b11,0x3b124512,0x46124512,0x3b124712,0x47124612,0x48124612,0x47124912,0x49124812,0x4a124812,0x49123f12,0x4d124a12,0x49124712,0x311f912,0x53120112,0xc811c911,0xbc11b711,0x3311bd11,0x42123212,0x1311ff12,0x50121a12,0x46124812,0x48124a12,0xe3123512,0xbf11dc11,0x24121e11,0x2d122012,0x25112611,0x5f125d11,0x5d126012,0x5f125e12,0x93119412,0x5c119511,0x62126112,0x5c125b12,0x26126212,0x22112311,0x49114811,0x3a114a11,0x48114711,0x6f11da11,0x3f11d711,0x51124a12,0x3f123e12,0x26125112,0x2d122c12,0x6011d012,0x8f116211,0x90119f11,0x91118d11,0xd3119211,0x66116711,0xd311ca11,0xca116611,0x56116611,0xca11c811,0xc8115611,0x53115611,0x70126c11,0x53126f12,0x55125912,0xcf11ce12,0xce115f11,0x60115f11,0xce11d011,0xd8116011,0xde117911,0xb311b611,0xe011b811,0x7b118011,0xe011dc11,0xdc117b11,0x77117b11,0xdc11db11,0xdb117711,0x76117711,0xdb11da11,0xcb117611,0xe0118011,0x5a11df11,0xd711cb11,0xd6117111,0x7a11de11,0x7f11dd11,0x6911d411,0xe2118211,0x43117f11,0x4c114011,0x73115111,0x5111d911,0xe111d911,0x28122c11,0xa1122b12,0x8a118b11,0xd5116911,0xeb116b11,0xf011f711,0x53115411,0x52115611,0xc911cf11,0x7211d611,0xec11d811,0xea11e511,0x58126011,0xee126212,0xf611ef11,0x2a112c11,0xf1112b11,0xf411f511,0x27112411,0x6a112311,0x6b126912,0x6d11bc12,0xbc126712,0xbd126711,0xe811e711,0xf611f611,0xe511e911,0x9511e411,0xe7119311,0xe511f611,0x9311e411,0xe7119111,0xe411e511,0xe6119c11,0x9111e711,0x9d11a011,0x9c119d11,0xe411e711,0x9d119111,0x8d118f11,0x92119211,0x96119411,0xec119711,0x8f11ee11,0x96119211,0x97119611,0xee11ee11,0x98119b11,0x9a119811,0x8e119911,0x96118f11,0x99119811,0x96118e11,0x9811ee11,0x49123411,0x34123f12,0x3e123f12,0x47123b12,0x3a123912,0x39123b12,0x34123012,0x30123e12,0x3d123e12,0x39123a12,0x37122e12,0x2e123a12,0x3d123012,0x30123c12,0x38123c12,0x37123612,0x2e122e12,0x38123012,0x67126a12,0x6d126d12,0x6c126e12,0x68126c12,0x5d126a12,0xcd11cc11,0x33112b11,0x35113511,0x37113611,0x46114411,0x35113a11,0x44113711,0x2b112c11,0x39113511,0x35112c11,0x3a114411,0x39113c11,0x44113511,0x3b113c11,0x38113811,0x44113911,0x6e11a211,0x90119011,0xa1119f11,0x6311d111,0xc9116411,0xad11cf11,0xc811a811,0xf11c911,0x5121012,0x83115812,0x2c118411,0x3f113911,0x2d113111,0x2c112511,0x31113f11,0x9a11e611,0x55119811,0x86118511,0x21121f11,0xf1122212,0xed11ef11,0x4b125311,0x4e124e12,0x30123412,0x5e125f12,0x54125a12,0x5f125812,0x5f125412,0x54125a12,0x53125a12,0x54125212,0x70125312,0xbf117511,0xc211c011,0x5211c311,0x4e125312,0x52123512,0x70124e12,0xc011bf11,0x7011c111,0x3311c011,0x4e123512,0x4e123312,0xc1123012,0xc311c011,0x30123311,0x2f122f12,0xc311c112,0x39122e11,0x4d124d12,0x55124c12,0x5b125912,0x59126212,0x57126212,0x32125012,0x31123112,0xc611c712,0xc511c611,0x49114911,0x45114711,0x45114911,0x59115911,0x56125712,0x59125512,0x55125612,0x4f125612,0x59114912,0x4d115b11,0x4f125512,0x4f124d12,0xc6125012,0x5b114911,0x5b11c611,0x4d11c411,0x31125012,0xc411c612,0x2e122e11,0x31124d12,0x7a11dd12,0x2a117c11,0x25122912,0x16121e12,0x23121912,0x25122a12,0x25122312,0xaa121e12,0xfe11ab11,0xa7116511,0x5411a811,0xa8116511,0x23121f11,0x19121e12,0xfb120012,0x1e121f11,0x1d121912,0x19121f12,0x1d11ff12,0x54121912,0xaa11a811,0x5411a911,0xfe11aa11,0x1911ff11,0x1911fe12,0xa911fb12,0xfe11aa11,0xfb11fe11,0xba11fa11,0x6511be11,0xe4119612,0x3f11e511,0x38113911,0x9e119f11,0x26119111,0x22122d12,0xfd121b12,0xfc11fc11,0xae11af11,0xad11ae11,0xb011b011,0x5e116111,0xb011ae11,0x24115e11,0x22122612,0x17121812,0x20122012,0x22122412,0x5e11ae12,0xf911ac11,0x18120411,0xac11ae12,0x2011f911,0x21122212,0xae11fc12,0x1b11f911,0xf911fc12,0x20121811,0x18122112,0x1a122112,0xf9121b12,0x63121811,0x66126412,0x6411d212,0x85116711,0x57115511,0x54115e11,0x5e11a911,0x52115f11,0x16121711,0x89121e12,0x6e119011,0x6d116e11,0x73117311,0x7d115111,0x89117d11,0xd4116e11,0xb911e211,0xb811b911,0xb911b511,0xb111b511,0xb911d411,0xd411b111,0xb011b111,0xd411d511,0xad11b011,0xce11cf11,0xce11ad11,0xd511d011,0xad11b011,0xad11d511,0xd511d011,0xd111d011,0xd511d911,0xd911d111,0xd211d111,0x4b114f11,0xd911e111,0xd311d211,0x4f118311,0xd911e111,0xca11d311,0xe1118311,0x8511d911,0x83118411,0x86118711,0xa1118511,0x88118c11,0x85118711,0xa2118311,0x8811a111,0x87118811,0x88118311,0xd9118311,0xa211a611,0xa5118811,0x8811a611,0xd9118811,0xca11ca11,0xa811c811,0xa711a811,0xa411a311,0x8811a511,0xa311a811,0x8811a411,0xa811ca11,0x70115b11,0x3e11c111,0x40125112,0x4f115012,0xa8118311,0xae11ad11,0x6d126e11,0xb611bc12,0xbb11b811,0xbb11b611,0x6411ba11,0x6e127012,0xba11b612,0x66126611,0x6e126412,0xb611bc12,0xeb126611,0xee11ed11,0xef11f611,0xba11ea11,0xb211bb11,0x1a121d11,0x5c122112,0x60125d12,0x24122612,0x25122512,0x28122912,0x27122812,0xb7122612,0x6711bd11,0x6a126712,0x67126b12,0x63126b12,0xb311b212,0xbe11b711,0xb711b211,0x63126711,0x65126512,0xb711be12,0x8211e311,0x3b115c11,0x40113e11,0x7c115b11,0x79117a11,0x70117211,0x7a115b11,0xc0117911,0xda11bf11,0xda11c011,0xdd11d711,0xc511df11,0xdd11de11,0xc011c511,0xd611d711,0xde11d811,0xc011c511,0xd811d611,0x64127011,0x63126312,0x69126b12,0x6f126912,0x2f127012,0x29112d11,0x28112911,0x27112711,0x2f112e11,0x2c122d11,0x2b122b12,0x23122a12,0x22122312,0x41122d12,0x36113711,0x32113011,0x33113311,0x2a112b11,0x22112a11,0x30112911,0x2a113311,0x69126f11,0x3d126812,0x3a113c11,0x48113a11,0x4c114d11,0x3a113d11,0x2a122911,0x2d122b12,0x30113111,0x34113511,0xe1114211,0x5d11cc11,0xf211f511,0x1611f311,0x18121712,0xc511c012,0x4411c611,0x3a124512,0x4c124b12,0x124d12,0x18121912,0x4121812,0x14121212,0x18120012,0x7e118712,0x6d118111,0xa2116e11,0x15121c11,0x1b11ff12,0x10121112,0x10121b12,0x1c120f12,0xfe11ff12,0x1c120b11,0xfd11fe12,0xf121b11,0xf11fd12,0xc120e12,0xfe120b12,0xe11fd11,0xd120d12,0xfe120c12,0x52124f11,0x48123512,0x4f125012,0x4b124c12,0x54125312,0x57125612,0x3c113b12,0x4c113d11,0x59114d11,0x59125b11,0x5a125a12,0x5d125e12,0x5c125d12,0xe6125b12,0x99119c11,0x6b117311,0xe411d511,0x94119611,0xa711a311,0x52116511,0x56124f12,0xc611c212,0xaa11c711,0xaf11ae11,0x1c120911,0x62120b12,0xd1116311,0x4e123411,0x4d124d12,0x47123912,0x34124912,0x124d12,0xa121412,0xa120012,0x6120912,0x4121212,0x6120512,0xfb120412,0x9120011,0x911fb12,0x5120812,0xf9120412,0x5120211,0xfb11f912,0x7120811,0x711fb12,0x1120312,0xf9120212,0xfb11f911,0x53120311,0xc9115211,0xb611b711,0x5111bc11,0x35124a12,0x46125012,0x50124512,0x44124512,0x35125112,0x40123312,0x33125112,0x50123212,0x32124412,0x43124412,0x40124112,0x32123312,0x42124312,0x41124212,0x1a123312,0xff121d12,0x1b121311,0xcc121a12,0x4b11e111,0x4a114b11,0x49114911,0xdf11c511,0xdf114911,0xcc11cb11,0x49114b11,0xcc11cd11,0x49114911,0xe011cb11,0xe0114911,0xe311dc11,0x4911cd11,0xe211b911,0xdb11e311,0xbf11da11,0xb911bf11,0xe311e311,0xdc114911,0xdb11dc11,0x1e11bf11,0x24122512,0x2f112d12,0x94112611,0x93119211,0x25112211,0x26112611,0x23112411,0x47114811,0x3a114911,0x47114611,0x7611da11,0x26116f11,0x2c122712,0x9e118f12,0x8d119f11,0x8a118911,0x8b118a11,0x91119111,0x92119311,0x8a118d11,0x6c119111,0x70126e12,0x5a125312,0xd8125912,0x79117211,0xb711b611,0xcb11b311,0x80115a11,0x7c11df11,0xd7115a11,0x71116f11,0x7911de11,0x7f117a11,0xd411e211,0xe3118211,0x4111e211,0x34114211,0x32113411,0x30113011,0x3f113111,0x3e114011,0x30113d11,0x40113f11,0x34114111,0x4c113011,0x43114511,0x41114311,0x40113011,0x4c113d11,0x30114311,0x2c114011,0x28122712,0x9f11a112,0x69118b11,0xd511d411,0xed11f011,0xeb11eb11,0xf711f811,0xf311f711,0xb411f011,0x7811bb11,0xb4116a11,0x70117811,0x71117211,0x71117011,0x75116f11,0x6f117011,0x6f117511,0x75117611,0x77117611,0x77117511,0x78117b11,0x7b117511,0x7b117811,0x5a118011,0x5b117c11,0x4d115911,0x50114e11,0x57115811,0x57115011,0x55115511,0x7e118111,0x7d117e11,0x7e115111,0x5d115111,0x55115011,0x4e117e11,0x7e115011,0x7e114e11,0x5a115d11,0x59115b11,0x5a118011,0x59115911,0x5d114e11,0x5d115911,0x60115c11,0x5e115f11,0x60116211,0x62115e11,0x61115e11,0x62116311,0x63116111,0x6a116111,0x63116411,0x67116a11,0x6a116411,0x59118011,0x80115c11,0x82115c11,0x80117811,0x78118211,0x7f118211,0x78116a11,0x6a117f11,0x69117f11,0x6a116711,0x67116911,0x6b116911,0x67116611,0x73116b11,0x74116d11,0x74117311,0x66116c11,0x73116b11,0x73116611,0x68116c11,0x54116511,0x6c116611,0x56116811,0x68116611,0x52115411,0x56115311,0x54116811,0x5f115211,0xd611cf11,0x72117111,0xeb11f411,0xec11ec11,0xe5119711,0xe911e511,0xea11ea11,0xec11f411,0x61126211,0x60126012,0x58125f12,0x57125812,0xe8126212,0xee119b11,0xed11ee11,0xf611ef11,0xee11e811,0x25112c11,0xf4112a11,0xf111ef11,0xf211f111,0x2411f511,0x27112e11,0x68126a11,0x45126912,0xaa15af15,0xc113b915,0x7c13ae13,0x74147714,0x90128a14,0x9d127c12,0xa0153915,0x79127f15,0x22129112,0x3915a015,0x98129715,0x7127812,0x9130d13,0x9812a113,0x48129e12,0x4712e713,0xe2155813,0x5d14e514,0x60132a13,0xaa12b513,0xe012b412,0x8d128b12,0xd212d512,0xc312dd12,0xc412c712,0x71150612,0xff156e15,0x314f614,0x7a151615,0x86157e15,0xcd12cc12,0x28133912,0x9d136513,0xa3127e12,0xab12a912,0xe812da12,0xdd15e515,0xd712da15,0xd712a912,0xa912ac12,0xd613d112,0xb413d313,0xdd12d512,0xb412b112,0xb112dd12,0xd912dd12,0xb112af12,0xaf12d912,0xd812d912,0xad12ae12,0xae12db12,0xd612db12,0xae12b012,0xb012d612,0xd512d612,0xb012b412,0xde12d512,0xdf12e112,0xce12cb12,0x8c12cc12,0x8a128e12,0x8812ba12,0xe0128612,0xe1128712,0xed156212,0x3814f214,0x3f15a815,0xda12aa15,0x812ab12,0x80140714,0xd314ab14,0xab14a114,0xc813c913,0xce12b313,0x7f12d012,0x7a128012,0xf915a312,0xa1156514,0xea13eb13,0xd113cc13,0x3013ce13,0x2c132913,0x7e12a413,0x12a212,0x6b156e15,0x3a134915,0x5a12ed13,0xe3153115,0x9d12a414,0xcf12a612,0xb212d112,0xd12fa12,0x76134213,0x7e129b12,0xf6134c12,0xbd12f412,0xbc12a412,0x4b134212,0xe112fa13,0xdf128912,0x93129512,0xc7129412,0xc613cb13,0xc135513,0x35135213,0x34143d14,0xd912ca14,0x3012d212,0x61132f13,0x4515a713,0xcf15aa15,0xd713d913,0x75149c13,0xac147a14,0xab14d614,0xd413ce14,0x2813d213,0x5f135e13,0xee136513,0xa3133f12,0xc012bf12,0x66133b12,0x1d136513,0x1f158715,0xe9134015,0x29133f12,0x23133013,0x15131913,0x19135713,0x24135713,0x21136313,0x63133313,0x21135c13,0x5c132113,0x1b135b13,0x5b132113,0x12135b13,0x5b131b13,0x12135613,0x56131213,0x13135513,0x55131213,0x28135513,0x55131313,0x28135e13,0x20135f13,0x65133813,0x38135f13,0x49133a13,0x25136513,0xed134913,0x49135d12,0x59132513,0x1f12e713,0x47135913,0x4a12e713,0x4812eb13,0x32134b13,0x4c12f513,0xf6132c13,0x61134c12,0x34132c13,0x64133613,0x34133713,0x45136413,0x6412e313,0xe3136413,0xe3133712,0xe4134512,0x2c136212,0x4b136113,0x4a12f113,0x4612e513,0xe2134413,0x4412e512,0x4412e213,0x41134313,0x4312e213,0x3c133b13,0x3e136613,0x46133d13,0x3e12e513,0x1d134613,0x5a131a13,0x1d131013,0xb135413,0x53131013,0x54131013,0x4135313,0x4f130b13,0x53130b13,0x5134f13,0x4f130413,0x4f130513,0x17135013,0x50130513,0x50131713,0x1a135813,0x5a131713,0x58131713,0x6135a13,0x4e130913,0x51130913,0xff134e13,0x4e130612,0x4e12ff13,0x1134d13,0x4d12ff13,0x1130c13,0x1135213,0x52134d13,0xf130913,0xf135113,0x51131c13,0x8f129213,0xcf127d12,0xcd13cb13,0xd312b513,0xc912d212,0xdc12a712,0xc4139a12,0x69139713,0xc1136d13,0xdc12ac13,0xa012a712,0xc413a213,0x8f139413,0x138913,0xf9156515,0xab13a414,0xdb13ae13,0xd712c912,0x73139f12,0xb713c313,0xb912c712,0x9013e312,0xa6138d13,0x40154415,0xa513c415,0xc213c513,0xc713b713,0xab13ae13,0xc313c813,0xc9139713,0xf212f713,0xc512f112,0xc613a513,0xc513c413,0xd013c613,0xd613d513,0xd713cf13,0xce13d813,0xd913d213,0xc713a513,0xd113c613,0xd413d313,0x7713e113,0x96137613,0x8313e113,0x70150313,0x9f150815,0xbe12bb12,0xd715c512,0x79161215,0xde137e13,0x9d13ec13,0xca139b13,0xd113d013,0xf013db13,0x35136c13,0x41133713,0xac13ec13,0x5e13ed13,0x6914fe15,0xc113f015,0xc1136c13,0xa413f013,0xdb13ec13,0xec136c13,0xa6136c13,0xda139f13,0xe0136f13,0xde137513,0xd312c813,0xe012d112,0x7d13b413,0xaf13e113,0xe1137713,0xaf13ee13,0x6f13dc13,0xdf13da13,0xc212c112,0xaf13ef12,0x9413ee13,0xe8139e13,0xeb139e13,0x8f13e813,0xe6139413,0xe8139413,0x8a13e613,0xe4138f13,0xe6138f13,0x8b13e413,0xe4138a13,0xe4138b13,0x9813e513,0xea138b13,0xe5138b13,0x9e13ea13,0xeb139813,0xea139813,0x7b13eb13,0xdd136b13,0xdd137b13,0xbf13df13,0xdf137b13,0xdf13bf13,0xc013f113,0xf113bf13,0xf113c013,0xbb13f213,0xf213c013,0xf213bb13,0x6b13b913,0xdd13bd13,0xa2139113,0xa213e713,0xe713a013,0x91138813,0x9113e313,0xe313e713,0x88138613,0x8813e213,0xe213e313,0x86139213,0x8613e913,0xe913e213,0xe9139213,0x6d139a13,0x6614f615,0xb712cc15,0xe12c912,0x5140d14,0xd813d014,0x5713d513,0x59145614,0x97129314,0x2c127812,0x2b142714,0xa140414,0x9c140514,0xbc12bd12,0x46144b12,0x27144a14,0x2a132b13,0x4f144d13,0x97143f14,0x9b153215,0x8214e615,0x6f151915,0x66145f14,0x6c145a14,0xf9146014,0xfa13fc13,0xc4127d13,0x82127a12,0xd140514,0x83151914,0xe5151d15,0x58158e14,0x17141415,0xd9148614,0xba15be15,0x94129215,0x4129112,0xfa140114,0x49155b13,0x2814e215,0x88142d14,0xcc13c914,0x8213c813,0x81128412,0x32143112,0xf2148b14,0x6215a514,0x93145d15,0x42145514,0x39144414,0x97146b14,0x6f145e14,0x9a146614,0xa6129e14,0xfc129d12,0xe412fb12,0x99146d12,0x7f146e14,0x8013f614,0x7d13f614,0x87148014,0x13142414,0x87148414,0x24141314,0x2b148714,0x49149114,0x2b142c14,0x2c149114,0x49143e14,0x49148d14,0x8d149114,0x34148a14,0x8d143e14,0x3e148a14,0x34143714,0x34148c14,0x8c148a14,0x17148614,0x8c143714,0x37148614,0x17141314,0x9b148414,0x5a147214,0x9b149514,0x73145a14,0x9b147214,0x73147b14,0x83149d14,0x7b141614,0x83149d14,0x16147b14,0x85148314,0x16141c14,0x81148514,0x1c140914,0x81148514,0xff141c14,0x81140913,0x5d145814,0x5a149514,0x95145814,0x42148f14,0x89143014,0x30148f14,0x8f144214,0x97144a14,0x4b146b14,0x97144a14,0x57144b14,0x94146b14,0x4e149214,0x94145714,0x57149214,0x92144e14,0x8b144f14,0x3f143214,0x8b144f14,0x30143f14,0x89143214,0x8e144114,0x47144514,0x90144514,0x47145114,0x47149314,0x93149014,0xf8147e14,0x93149313,0x5113f814,0xf813f514,0xf5147e13,0x80147e13,0x7d148014,0x8e13f514,0xfa13f914,0xf9144113,0x5f148e13,0x7f13f614,0x7f145f14,0xfb146614,0x82140513,0x8213fb14,0xe13fc14,0xd149914,0x6e140e14,0x88149914,0x9c147714,0x77142d14,0x64148814,0x96149814,0x64146814,0x6d149614,0x96146814,0x64149814,0x74141514,0x7c149a14,0x6f147414,0x8d149a14,0x84128a12,0xf114ed12,0xc414f414,0x8212c712,0xc813b712,0xb813c713,0xb614bf14,0xb914bc14,0xbc14c014,0xc214c014,0xbc14be14,0xb514c214,0xc314c114,0xb414b514,0xbe14c114,0xc414c214,0xc414bd14,0xbd14c514,0xc414be14,0xb514b714,0xb714c314,0xc614c314,0xb714b814,0xba14c614,0xc714c514,0xbd14ba14,0xb814c514,0xc814c614,0xb814b914,0xb914c814,0xc014c814,0xc714aa14,0xaa14c914,0xc714ba14,0xa414a214,0xa214ca14,0xcb14ca14,0xa2149f14,0xa814cb14,0xcc14c914,0xaa14a814,0x9f14c914,0xcd14cb14,0xcd14a014,0xa014ce14,0xcd149f14,0xa814a714,0xa714cc14,0xcf14cc14,0xa714a614,0xa314cf14,0xd014ce14,0xa014a314,0xa614ce14,0xd114cf14,0xa614a414,0xa414d114,0xca14d114,0xd014b414,0xb414c114,0xd014a314,0x77127814,0xd3127512,0xce14c114,0xc714e014,0xdd14c514,0xae14b214,0xdd14d914,0xc514ae14,0xc6128412,0x8f151312,0xe1157b15,0xbb14bf14,0xe114e014,0xdf14bb14,0xbf14b614,0xdf14e114,0xde14bf14,0xb614b314,0xde14df14,0xa914b614,0xad14d814,0xb114e014,0xd214dc14,0xa1149e14,0xd214d314,0xd414a114,0x9e14a514,0xd414d214,0xd5149e14,0xa514a914,0xd514d414,0xad14a514,0xae14d914,0xac14d714,0xdb14b014,0xb014d714,0xdc14b214,0xe514b114,0xf014fc14,0x40154514,0x60154615,0x6114f015,0x4a14ef15,0x4d155715,0xea154c15,0xea154d14,0x4e14ec14,0xec154d15,0xec154e14,0x1414f814,0x7d157215,0x94153015,0x51159815,0xff155015,0xff155114,0x4150514,0x52155315,0x79150c15,0x54157315,0x2155315,0x2155415,0x5514f515,0xf5155415,0xf5155514,0x5614f414,0xf1155515,0xf4155514,0x5714f114,0xf1155615,0xf1155714,0x4214ef14,0x9f15a715,0x65156415,0xde156b15,0xdc137213,0x66156d13,0x8c155115,0x80158d15,0x86158515,0x5c157d15,0x57155f15,0xb313ed15,0xa713ef13,0xa615ab15,0x6f156e15,0x88156a15,0x1e152215,0x88158115,0x81151e15,0x18151e15,0x81157e15,0x7e151815,0x16151815,0xdb14af15,0x7714b014,0x7b151315,0xe157a15,0x9b157715,0xa4153c15,0x8158915,0x92157015,0x97152f15,0x2a158f15,0x7c159215,0x1c151215,0x7c158415,0x7c151b15,0x1b151c15,0x84158615,0x86151b15,0x15151b15,0x86157d15,0x7d151515,0x14151515,0x98153a15,0x8115a215,0x82127a12,0xc156c12,0x68157315,0x6c150115,0xf3156a15,0x6f156314,0x6a14fd15,0x9a12a515,0x61129912,0x6814fc15,0x7157215,0x29156f15,0x90158c15,0x79157c15,0x4a151215,0x4b14e815,0x4c14e815,0xad154b15,0x4715af15,0x4715ad15,0xa2153d15,0x3d15ad15,0x3d15a215,0x5153a15,0x51155215,0x94159015,0x90152b15,0x29152b15,0x8d152315,0xf8158c15,0x4e154f14,0x8d159115,0x91152515,0x35152515,0x91159915,0x99153515,0x34153515,0x99159a15,0x99153315,0x33153415,0x9a159f15,0x9f153315,0x42153315,0x5014f715,0x76154f15,0x7f151715,0x6614fb15,0x6714f615,0x78151115,0x78150f15,0x85151115,0x74150b15,0x8a151a15,0x75152115,0x80152615,0x80152415,0x43152615,0xae15a915,0x43154815,0x6415ae15,0x4814fa15,0x6415ae15,0xfa154815,0x69156414,0xfa14fe15,0xa9156914,0x95152e15,0x5e14e915,0xe4155915,0x5914e914,0x2d159615,0x5914e415,0xe4159615,0x96152d14,0x2e159515,0x95152d15,0x2c158b15,0xd159315,0xb157415,0xd012b215,0x2012cf12,0x17157f15,0x1d148415,0x3b142014,0x2c159315,0x2115a115,0xb0158a15,0xef13ad13,0x5a15b013,0xb014e315,0x4914e315,0x3e15a815,0x63153f15,0x6014ee15,0x40159c15,0xda153115,0xde14b314,0x3715a414,0xe8159d15,0x4812ea12,0xa3153613,0x38159e15,0x9e153615,0x8e151f15,0x14152815,0xe115e916,0xe6155d15,0x5f14e714,0xed14e715,0x91128f14,0x9e129012,0xa214a514,0xbc12a114,0xc912bb12,0xc613c413,0xc012a013,0xa12bd12,0xc015b816,0xb815df15,0x9160a15,0xc315c416,0xc415f915,0x60160915,0x62133113,0xb812ce13,0x912cd12,0x7115ac15,0xcd13ce15,0xd813cc13,0xaf12ad12,0xbe129b12,0xab12bf12,0x44154615,0xc0160c15,0xeb15b515,0xe7161315,0xe0161115,0x1015db15,0xdb161116,0xdb161015,0xf15d515,0xd5161016,0xd5160f15,0xe15c815,0xc8160f16,0xc8160e15,0xe15c215,0xcd15c216,0xe4161315,0x1b15e715,0x4160016,0x4161b16,0x16160616,0xf3161716,0xf3161615,0x1615f015,0xee15f016,0xfc161a15,0x1a15fd15,0x15fd16,0x1a161b16,0xc160016,0xc115b316,0xc160d15,0xd15c116,0xbf15c116,0xbf160d15,0x1d15bb15,0x515ba16,0x1d160316,0x1c160516,0xb2160216,0x1c160b15,0xb15b216,0xb315b216,0xb160c15,0x1515b316,0xef15ed16,0x1515f115,0x1815ef16,0xf515f416,0x18161915,0x1815f716,0xf715f516,0xf7161915,0xd215d415,0xd4161915,0xec161415,0x1415ea15,0xe915ea16,0xe6161215,0xe515e315,0xe3161215,0x47154515,0xb915af15,0xc113ba13,0xa413c113,0xae13ae13,0xb913bb13,0x9c147c13,0x8a147714,0x8f128e12,0x79129012,0x8a127c12,0x90128f12,0x37159d12,0x94153915,0x7f129312,0x90127912,0x91129112,0x7f129412,0x88152212,0x9715a015,0x9a129912,0x76129812,0x97127812,0x98129a12,0x112ff12,0xff12f313,0xfd12f312,0xff130612,0x612fd12,0xfe12fd13,0xf132112,0x9130913,0xfe130613,0xfe130912,0xd130212,0x9132113,0x2130913,0x9f130713,0x98129b12,0x9a129812,0x9e129e12,0xa1129c12,0x9f12a112,0x48129812,0xe712eb13,0x5b155812,0x5d14e215,0x2a132513,0xab12aa13,0xa912a912,0xad12ac12,0xad12a912,0xb112ae12,0xb212b312,0xb112b412,0xaa12b212,0xae12a912,0xae12aa12,0xb412b012,0xb512b212,0xb012aa12,0xe012b412,0x8b12de12,0xd612d512,0xda12da12,0xd212d412,0xd912d212,0xd512dd12,0xd212da12,0xb912c312,0x612c712,0x71150915,0xf714ff15,0x1614f614,0x7a151015,0xb812cd15,0x8612ba12,0xcc128512,0xba12cd12,0x65128612,0x39136613,0x5f132813,0xa0136513,0x9e129c12,0xa2129d12,0xa0127e12,0x9d129e12,0x9b127e12,0xa312a312,0x9d12a012,0xfb15fe12,0xfe15fc15,0xfa15fc15,0xfe160115,0x115fa15,0xf215fa16,0xbe15f815,0xf815d215,0xd415d215,0xf815f615,0xf615d415,0xf715d415,0xf6161715,0x1715f715,0xf515f716,0x1715f315,0xf315f516,0xf415f515,0xf315f015,0xf015f415,0xf115f415,0xf015ee15,0xee15f115,0xef15f115,0xee15f215,0xf215ef15,0xed15ef15,0xed15f215,0xc015e815,0xc115bf15,0xc615cc15,0xcb15c015,0xcc15ce15,0xc715b715,0xb515cb15,0xb715b615,0xb415b115,0x715b515,0xb1160816,0xf915c415,0xc2160715,0xc415c315,0xc215cd15,0xc415c415,0xb1160715,0xb515b115,0xb715b715,0xcc15cb15,0xc015cc15,0xcc15c115,0xb315c115,0xb715b115,0xd715cc15,0xc415cd15,0xd715dd15,0xb115c415,0xb315cc15,0xb315b115,0xdd15b215,0xb115c415,0xb215b115,0xb1160215,0x1160215,0xeb15ea16,0xe915e715,0xe715ea15,0xe715e915,0xe615e415,0xe415e915,0x115b115,0xb115f216,0xe815f215,0xe415e615,0xe315dd15,0xdd15e615,0xb115dd15,0xe515e815,0xdd15e315,0xd013d115,0xde13d613,0xe112e012,0xcf12cb12,0xce12d012,0xcc12cd12,0xd012cb12,0x8c12ce12,0x8e12c212,0xc112ba12,0xe0128812,0x87128d12,0x5f156212,0x3814ed15,0xa8159e15,0xd412aa15,0x3a12da12,0x90145014,0x45149014,0x8e148e14,0x613fa14,0x14140614,0x6148614,0x8c148614,0x8e149014,0x90140614,0x8c140614,0x8c149014,0x3a148a14,0x8a149014,0x3a143314,0x35148a14,0x8a143314,0x8a143514,0x3d148d14,0x8d143514,0x8d143d14,0x40149114,0x91143d14,0x87142b14,0x48142714,0x91144014,0x27142b14,0x4c142214,0x91144814,0x2b149114,0x22142214,0xd141f14,0x99140d14,0xd146d14,0x96146d14,0x22149114,0x69140d14,0x91144c14,0x91146914,0xd140d14,0x98149614,0xd146914,0x65149814,0x98146914,0x98146514,0x1e141514,0x28142914,0x88142814,0x28143b14,0x2f143b14,0x28141e14,0x1e142f14,0x2e142f14,0x1e141814,0x18142e14,0x2a142e14,0x18141514,0x15142a14,0x23142a14,0x55149514,0x9b145b14,0x5b149514,0x5b149b14,0x73146014,0x60149b14,0x60147314,0x9d146c14,0x6c147314,0x23141514,0x9d141b14,0x65146c14,0x65149d14,0x21141514,0x8b143114,0x8b142114,0x19144f14,0x4f142114,0x9d148314,0x85141514,0x15148314,0x6b149414,0x94145e14,0x5c145e14,0x94149214,0x92145c14,0x59145c14,0x59149214,0x92145614,0x53145614,0x92144f14,0x4f145314,0x52145314,0x52144f14,0x54144d14,0x66146314,0x4d144f14,0x19145414,0x54144f14,0x66145414,0x80147f14,0xff147e14,0x7f145413,0x19148014,0x80145414,0xff148014,0x85148113,0x1b141514,0x81148014,0x11148514,0x80141914,0x11140b14,0x80148014,0x1b148514,0x1b148014,0x7141014,0x80140b14,0x10148014,0xab140814,0xd314d614,0xc313ab14,0xb313c913,0xce12b612,0x7b127a12,0x7a127c12,0x79127c12,0x7d128012,0x77127a12,0x80127e12,0x75127f12,0x7a127712,0x7f127912,0x77127f12,0xa3128012,0xf9153615,0xbe137614,0x7613f213,0xf113f213,0xe1138313,0x82137613,0x76138313,0xf1137613,0x7613df13,0xdd13df13,0x82138013,0x7a137613,0x76138013,0x76137a13,0x6a13dd13,0xdd137a13,0xdd136a13,0x6913bd13,0xbd136a13,0xbd136913,0x6d13bc13,0xbc136913,0xb913ba13,0x6d13f013,0xba13bc13,0x6d136e13,0xba13ba13,0xdb13f013,0xec13db13,0xdb139b13,0x99139b13,0xba136e13,0xe513db13,0x7c138c13,0x6e137c13,0xdb13db13,0x9c139913,0xa313a113,0xdb13e813,0xa1139c13,0x7c13e513,0xe513db13,0xa113db13,0xe813a113,0xea13eb13,0xa113e513,0xca13cc13,0xa413d113,0x7e128012,0x6150012,0x5a156e15,0x31159c15,0xa212a415,0xcf129d12,0xc812cb12,0xb512d112,0xcf12b212,0xd112c812,0x77127e12,0x76127612,0x9b129812,0x8012bd12,0xa412a412,0xbc12a612,0x8712e112,0x95128912,0x93129612,0xc813c712,0xcb13cd13,0xc613ca13,0xcd13c713,0x5d13cb13,0x55145814,0x55145d14,0xf7145014,0x50145d13,0x9140814,0x713ff14,0xff140814,0xff140713,0xb13f713,0xf7140714,0xf7140b13,0x11145013,0x50140b14,0x50141114,0x19143a14,0x3a141114,0x31143014,0x32142114,0x21143014,0x21143214,0x54141914,0x3f144d14,0x32143f14,0x54141914,0x19143f14,0x54146314,0x6b141914,0x6a145714,0x46143c14,0x4b144b14,0x6a146b14,0x6a144b14,0x2d147814,0x4b143c14,0x77147414,0x5f142d14,0x74146f14,0xf6147d14,0xf5145f13,0x5f147d13,0x2d147414,0x74144b14,0x78144b14,0xf513f814,0x74145f13,0x79147814,0x79147414,0x41147a14,0x47144514,0xf9140314,0x6144113,0x41140314,0x41140614,0x6144714,0x51144714,0x51140614,0x7413f814,0x75147a14,0x75147414,0x2b147614,0x25142714,0x2b142414,0x24142514,0x26142514,0x24141314,0x13142614,0x20142614,0x20141314,0x13141d14,0x1a141d14,0x13141714,0x17141a14,0x14141a14,0x14141714,0x17140614,0xf8140614,0x17143713,0x5f13f814,0x76147414,0x76145f14,0x34147014,0xf8143714,0x70145f13,0x5f147114,0x67147114,0x67145f14,0x5f146114,0x62146114,0x62145f14,0x5f146314,0x19146314,0x5f13f814,0xf8141914,0x3a141913,0x2c140e14,0x6d144914,0xe146e14,0x69144c14,0x4c146d14,0xe146d14,0xe144c14,0x48144914,0x49144c14,0x49144814,0x40143e14,0x3e144814,0xf8143414,0x34143a13,0x33143a14,0x3e144014,0x3d143414,0x34144014,0x33143414,0xd2143514,0xca12d312,0xc912ca12,0x12d912,0x1d131113,0x4c136113,0x60130013,0x61136213,0x5d132413,0x26136013,0x60132413,0x50135813,0x58131513,0x16131513,0x58135a13,0x5a131613,0x18131613,0x5a131d13,0x1d131813,0x1e131813,0x26132713,0x2b136013,0x60132713,0x1d130013,0x131e13,0x22131e13,0x60132b13,0x2d136113,0x61132b13,0x22130013,0x132313,0x30132313,0x2d132e13,0x2f136113,0x61132e13,0x136113,0xa7133013,0x45154115,0xce13cf15,0x3b13d913,0x9c148814,0x7c149c14,0x9a149a14,0x63146614,0x63149a14,0x3c146214,0x9c143b14,0x3c144614,0x9a149c14,0x61146214,0x61149a14,0x32146714,0x36143114,0x32148914,0x89143614,0x38143614,0x89148f14,0x8f143814,0x39143814,0x39148f14,0x8f144414,0x43144414,0x8f144a14,0x9c144314,0x67149a14,0x67149c14,0x4a147114,0x46144314,0x5e146a14,0x4a149714,0x9c144614,0x97146a14,0x78144a14,0x4a146a14,0x71149c14,0x9c147014,0x76147014,0x4a147814,0x79149c14,0x9c147814,0x76149c14,0x7a147514,0x9c147914,0xd714ac14,0xce14d614,0xd413d113,0x39133513,0x35136613,0x3c136613,0x35133313,0x33133c13,0x41133c13,0x33136313,0x63134113,0x43134113,0x3b133d13,0x65136513,0x5d134913,0x24135d13,0x57135713,0x50131513,0x5d136513,0x46135713,0x65133d13,0x1d135413,0x54131113,0xe131113,0x54135313,0x53130e13,0xa130e13,0x53134f13,0x4f130a13,0x3130a13,0x4f135013,0x50130313,0x8130313,0x55130c13,0x14135613,0x56130c13,0x56131413,0x42135b13,0x1c130d13,0x14131c13,0x1c135b13,0x5c135b13,0x4b133213,0x42134213,0x5c131c13,0x5c134213,0x36136313,0x42133213,0x36136413,0x64134213,0x63134213,0x64134513,0x45136313,0x43136313,0xf4134c13,0xe412e412,0x43134512,0x4312e413,0xfc134413,0x4c130012,0xfc12fb13,0x4c134c12,0x4412e413,0x44134c13,0xf8134613,0x4c12fb12,0xf812e613,0x4c134c12,0x65134613,0x50135713,0x57130813,0xef130813,0x4c12e612,0xe9136513,0x6512e612,0x57136513,0x6512ef13,0xee12ef13,0xe9133f12,0xa3136512,0xbf129b12,0x83151d12,0x4a158715,0xeb12f113,0x31136212,0x4b132c13,0xf112f513,0xa612bc12,0x9912a512,0x96129712,0xa512bc12,0xbb129912,0x9912bc12,0xc2128e12,0x8e12c112,0xba12c112,0xb112b312,0xaf12af12,0xac12ad12,0xa712ac12,0xa812a812,0xb912b712,0xc312b912,0x7d127d12,0xbd128012,0xbd127d12,0xac12c012,0xb912a812,0xaf12b312,0xb612ac12,0xac12b312,0xc0127d12,0xbe12bf12,0x9912bb12,0xac12b612,0xb812b912,0xb912b612,0x9912be12,0xbe129612,0x95129612,0xb912b812,0xba127d12,0x7d12b812,0xbe12bf12,0x7d129512,0x9512bf12,0xba128e12,0x8f127d12,0x7d128e12,0x95127d12,0xcf129212,0xcb13d013,0xaa12d413,0xb512b512,0xd312d112,0xd412d212,0xc912b512,0xa712a812,0xa0139a12,0x9a13c413,0xc3139713,0x7813c313,0xc3138413,0x85138413,0x9a139213,0x8613c313,0xc3139213,0x8513c313,0x86138713,0x8713c313,0x86138813,0x88138713,0x8d138713,0xa213c413,0x91139113,0x8d138813,0x8d139113,0xa5139013,0x9113c413,0x9113a513,0xa5139013,0x81139013,0x8113a513,0xbb137f13,0xb713ae13,0xbb13c013,0xc013b713,0xc213b713,0xc013bf13,0xc113c213,0xbc13ba13,0x6c13a613,0x9d13c113,0xa613a713,0x9d139b13,0xc113a613,0xbd13bc13,0xbd13c113,0x9b136b13,0xc113a613,0x9b139913,0xc113c113,0x7b136b13,0x99139c13,0x9e13c113,0xa113a313,0x73137013,0x6f136f13,0x75137213,0x7d137513,0xb413b413,0xb513b613,0xb4137513,0x7013b513,0x75136f13,0x70137113,0x75137513,0xb813b513,0x71137413,0x79137513,0x75137413,0x79137e13,0x7f137513,0x75137e13,0x75137f13,0xa513b813,0xb8137f13,0xb813a513,0xc213be13,0xbe13a513,0x77137613,0xbf138213,0xbe13c213,0x7613be13,0xbe138213,0x80138213,0xbf137b13,0x9e13be13,0x9c13a113,0x9e139813,0x7b139c13,0x8013be13,0x80137b13,0x8b137a13,0x9c139813,0x8c137c13,0x7c138b13,0x9c138b13,0x7b13c113,0xc1137a13,0x6a137a13,0x9c137c13,0x6e13c113,0xc1137c13,0x6a13c113,0x6d136913,0xc1136e13,0xd712ac13,0xb312dc12,0xa613ac13,0xa713a613,0xa613a813,0xa913a813,0xb313af13,0x8213a613,0xaf137713,0x82138313,0xaf13af13,0xa913a613,0xa913af13,0x9613ad13,0xaf138313,0x96139513,0xaf13af13,0xb013ad13,0xb013af13,0x9313b113,0xaf139513,0x93138e13,0xaf13af13,0xb213b113,0xa313aa13,0xaf139e13,0xaa13b213,0x8e138913,0x8b13af13,0x89138c13,0x8b138a13,0xaf138913,0x9e13aa13,0x9e13af13,0x8f139413,0x89138a13,0xaf138913,0x139413,0x65156b15,0xd912d815,0xc912c912,0xd712dc12,0xda12d712,0xdb12d612,0xc912d812,0xd612d712,0xab12db12,0x9f13a413,0x6f139f13,0x73137313,0xc3137813,0xab13c313,0xb7139f13,0xc712c512,0xd213d912,0xd9139a13,0xe9139a13,0xe913d913,0xe013e213,0xd613d313,0xb413b613,0xb513e013,0xe013b613,0xe013b513,0xf213d613,0xb813be13,0xb513b813,0xb813d613,0xd513d613,0xf213b913,0xa413b813,0xb913f013,0x9f13da13,0x7813a413,0xda137313,0xda137813,0xb913a413,0xd513b813,0xd513b913,0x8413d813,0xa4137813,0x84138513,0xb913a413,0xd713d813,0xb913a413,0x8713d713,0xa4138513,0x87138d13,0xa413a413,0xd913d713,0xd913a413,0xa013e213,0x90138113,0xa013e713,0x8d139013,0xe213a413,0xe713e313,0x8d139013,0xe313e213,0xab15a613,0xec154415,0xe712f312,0xeb12e712,0xf112f112,0x3212f512,0x36133213,0x21133313,0xfa130d13,0x33133212,0xe8132113,0xe712ec12,0xe812ea12,0xf112e712,0x21133212,0x2112f113,0xea12fa13,0xf112e712,0xea12f012,0xf112f112,0xf912fa12,0xf912f112,0xf212f712,0xf112f012,0xc213a512,0x313c713,0x70156d15,0xa1129f15,0x912bb12,0xc515c316,0xc915c515,0xca15ca15,0xd015cf15,0xd115d015,0xd615d615,0xd915d815,0xda15d915,0xdc15dc15,0xdf15de15,0xa15df15,0xdf161116,0x10161115,0xdc15d916,0xd015df15,0xd915d615,0xca15c515,0xed15d015,0xc5160915,0xed15e815,0xc515c515,0xd915d015,0xdf15d915,0xd9161015,0xf161015,0xe815e516,0x1315c515,0x1215e616,0xe5161216,0xc515c515,0xf15d915,0xf15c516,0xe4160e16,0x12161315,0xe415dd16,0xc5161215,0xcd160e15,0xdd15d715,0xc5161215,0xd715cd15,0x9a13a015,0xd413d213,0xe013d313,0xd213a013,0x8113d413,0xd413a013,0xe013d413,0xde13de13,0xda13dc13,0x7313da13,0xda137013,0x71137013,0xd4138113,0x7f13de13,0xde138113,0xda13de13,0xde137113,0x74137113,0x7f137e13,0xde13de13,0x79137413,0xcb13ca13,0xf13d013,0x1b132113,0x1b130f13,0x1c131213,0x12130f13,0x12131c13,0x14131313,0x13131c13,0x14130c13,0xf3131313,0xc130112,0xe7131f13,0x2012f312,0xf3131f13,0xc12f312,0x20131313,0x1312f313,0x3e133d13,0x3b133813,0x38133d13,0x20133813,0x38131313,0x28131313,0x38133b13,0x3b132813,0x39132813,0x3b133c13,0x35133913,0x36133313,0x39133c13,0xe3133513,0x4112e212,0x3c134113,0x35133513,0x34133613,0xe3133713,0x35134112,0x37133413,0xa613ec13,0x5e13ac13,0xfe14e915,0x7d13e014,0xc8137513,0xd312ca12,0x7213dc12,0xdf136f13,0x88128912,0x8c12c212,0xc2128b12,0xde128b12,0x8812df12,0xc212c112,0xdf12de12,0xb313ef12,0x6d13af13,0xf6150315,0x8512cc14,0x83128312,0xb712c512,0xa812b712,0xc912c912,0xc812ca12,0xc812c912,0xcc12cb12,0xb7128312,0xcb12c912,0xd012cc12,0xd813cf13,0x4f144e13,0x4e144d14,0x52144d14,0x6a145e14,0x5c145714,0x57145e14,0x4e145714,0x57145214,0x53145214,0x5c145914,0x57145714,0x56145314,0x7f127514,0x93129312,0x97129612,0x75127812,0x22129312,0x2c142714,0xe142c14,0x5140514,0xf913fb14,0x313f913,0xf9140214,0x140213,0x22141f14,0x1f142c14,0x5142c14,0x13f914,0xf913fe14,0xfd13fe13,0x1f141213,0xf140514,0x5141214,0xf9140514,0x513fd13,0x113fd14,0xf140c14,0xa140514,0x5140c14,0x1140514,0x9c140414,0xbd12a012,0x11130e12,0xe131013,0xb131013,0xe130a13,0xa130b13,0x4130b13,0xa130313,0x3130413,0x5130413,0x3130813,0xef130513,0x5130812,0x1d131a13,0x1a131e13,0x18131e13,0x1a131713,0x17131813,0x16131813,0x17130513,0x5131613,0x15131613,0x512ef13,0xef131513,0x19131512,0x1912ef13,0x65132413,0x3f134013,0xed132513,0x3a133a12,0x3f136513,0x3f133a13,0x2a12ee13,0x3a132513,0x31132c13,0x2f132a13,0x2c133013,0x2f132e13,0x3a132c13,0xef12ee13,0xef133a12,0x2d132412,0x2c132e13,0x2d132b13,0x2a132c13,0x24133a13,0x24132a13,0x2b132613,0x2a132c13,0x26132a13,0x97132713,0x32152f15,0x5c14e615,0x1c158215,0x8140914,0x8141c14,0x16141014,0x10141c14,0x10141614,0x16141b14,0x23141b14,0x23141614,0x16142a14,0x2e142a14,0x2e141614,0x7b142f14,0x2f141614,0x3c143b14,0x7b142d14,0x3b142f14,0x2d143b14,0x28142814,0x1e142914,0x28143b14,0x3b141e14,0x18141e14,0x18143b14,0x7b141514,0x15143b14,0x15147b14,0x73146414,0x64147b14,0x6d146814,0x72146914,0x64147314,0x68146414,0x64146914,0x65146914,0x72145a14,0x55146414,0x5a145814,0x55145b14,0x5a145a14,0x65146414,0x65145a14,0x60146c14,0x5a145b14,0xfb13f914,0x7d13fc13,0xc412c312,0x82151912,0xe5158315,0x8e152814,0xde15df15,0xdc15dc15,0xd915da15,0xd815d915,0xd615d615,0xd015d115,0xcf15d015,0xca15ca15,0xc515c915,0xc315c515,0xc515c215,0xc815c215,0xca15d015,0xd915c515,0xd015d615,0xdc15df15,0xc015d915,0xdf15b815,0xbf15bb15,0xbc15c015,0xc015bb15,0xdf15c015,0xd915d915,0xc515d015,0xc815c515,0xc515d515,0xdb15d515,0xc015bc15,0xba15d915,0xd915bc15,0xc515d915,0xd915db15,0xe015db15,0xfb15fc15,0xfd15ff15,0xff15fc15,0xff15fd15,0x160315,0x315fd16,0x3160016,0x4160516,0x5160016,0xe015d916,0xe115e215,0xea15eb15,0xe115e215,0xe215ea15,0xec15ea15,0x5160415,0x615ba16,0xba160416,0xe215d915,0xd315ec15,0xbe15d215,0xec15d915,0xb915d315,0xba160615,0xb915bd15,0xd915ba15,0xbe15d315,0xbd15be15,0x9215ba15,0x94129512,0x6140312,0xfa13fa14,0x8213fc13,0xd148214,0x82141f14,0x12141f14,0x3140214,0x13fa14,0xfa140214,0x12148213,0x82140f14,0xc140f14,0x13fe14,0xfd13fa14,0xfa13fe13,0x8213fa13,0xfa140c14,0xa140c13,0xfd140114,0xfa13fa13,0x4140a13,0xb0155b14,0xc9154915,0xca13c613,0xcd13cc13,0xc913c813,0xcc13ca13,0xc6128213,0xf2128412,0xa5153e14,0xff13f715,0x93147e13,0x50149014,0x7e13f714,0x55149314,0x5d149514,0xf7145d14,0x93149313,0x55145014,0x31143614,0x42143014,0x46144a14,0x30143614,0x38144214,0x42143614,0x46144214,0x42144314,0x44144314,0x38143914,0x9e144214,0xa612a512,0xf612f412,0xf4132c12,0x29132c12,0xe312e213,0xe412e412,0x2912f412,0x2912e413,0xe5132313,0xe412e212,0x3e133812,0x4012e513,0x38136513,0x4012e913,0x38133813,0xe412e513,0x1e132212,0x1d131d13,0x11131013,0x11131d13,0x23130013,0x1d132213,0x3812e913,0xe612e413,0xe412e912,0x1d132312,0x23130013,0xfc130013,0xe612f812,0xfb12e412,0xe412f812,0x2312e412,0x8312fc13,0x86128512,0x88128612,0x86128912,0x87128912,0x83128412,0x7b128612,0x84128112,0x7c128a12,0x8b127b12,0x8a128c12,0x87128612,0x8d128d12,0x8a128b12,0x7b128a12,0x84128412,0x8d128612,0xf214f412,0xed14ed14,0xf114ef14,0xc512c714,0x8212c612,0xc4127a12,0xc612c712,0xb7128212,0xc813ae13,0xaf14b313,0xb014b014,0xb514b414,0xb714b514,0xb814b814,0xbc14b914,0xbe14bc14,0xbd14bd14,0xaa14ba14,0xae14aa14,0xb214b214,0xbb14b114,0xb214aa14,0xb814bb14,0xbd14bc14,0xb014b314,0xb614b514,0xb514b314,0xaa14bd14,0xbd14bb14,0xbf14bb14,0xb514b614,0xb814b814,0xbf14bd14,0x76127814,0xd9127712,0xd514d814,0xdc14c714,0xcc14dd14,0xc714c914,0xcf14d114,0xcb14cc14,0xd114ca14,0xcd14ce14,0xc114cb14,0xce14d014,0xc314c614,0xc014c114,0xc614c814,0xc214c414,0xe014c014,0xc414c514,0xe014e114,0xc414c414,0xc614c014,0xcb14ce14,0xcc14d114,0xdd14c714,0xdd14cc14,0xe114d914,0xc614c414,0xe114df14,0xcc14c614,0xd514d914,0xd514cc14,0xdf14d414,0xc114c614,0xda14db14,0xde14de14,0xc114df14,0xcc14d114,0xd114d414,0xd214d414,0xde14db14,0xd314c114,0xd714d614,0xdb14d714,0xce14c114,0xd214d114,0xd714d314,0xce14c114,0xd314d214,0xdc14e014,0xc514c714,0x84128312,0x27151312,0xa9158f15,0xd814d514,0xbb14e014,0xad14b114,0xd914d814,0xdd14b214,0xef14dc14,0xe714ed14,0xe614e714,0x19151914,0x1f151d15,0x1914e715,0xeb151f15,0xe714ef14,0xeb14e814,0xe714e714,0x28151f14,0xe814ea15,0xec14e714,0xe714ea14,0xe714ec14,0xf6152814,0xf814f714,0xec14f814,0xfb152814,0xf814f614,0xf814fb14,0xfb152814,0xe5152814,0xfb151114,0xe214e514,0xe3154914,0x11150f14,0xe214e515,0x3114e314,0xe214e515,0x31153114,0x35153415,0x35153115,0xe5152515,0x25153114,0xff150515,0x4150314,0x3150515,0x3150415,0x2150815,0x8150415,0x8150215,0xf2152015,0xf514f414,0x214f514,0xf2152015,0x2014f514,0x3e153915,0x2214f215,0xf2153915,0xf2152214,0x1e152014,0x20152215,0x20151e15,0x18151715,0x17151e15,0x2b152915,0x23152415,0x24152915,0x17151815,0x16150f15,0xf151815,0x23152515,0x25152415,0x26152415,0x16151015,0xe150f15,0xf151015,0x2514e515,0xe5152615,0xd152614,0xe151315,0x2d150f15,0x27152a15,0xf151315,0xe414e515,0x27152d14,0x13152715,0x1a14e515,0x1b151515,0x1b151a15,0xb151c15,0x1c151a15,0x1c150b15,0xe4151215,0xe5152714,0xfe14fd14,0xe914e914,0xe514e414,0x12150b14,0xb150c15,0x1150c15,0xe914fd15,0xf314e514,0xe514fd14,0xb150d14,0xd150115,0xfc150115,0xf314ee14,0xf014e514,0xe514ee14,0xd14e514,0xfa14fc15,0xfd14fe14,0xfd14fa14,0x48150714,0x714fa15,0x7154815,0x48150a15,0x14150a15,0x15151415,0x14151a15,0x21151a15,0x21151415,0x2c153b15,0x2b152415,0x2b152c15,0x2c153015,0x3a153015,0x2c153b15,0x3b153a15,0x3d153a15,0x3b151415,0x2a153d15,0x2e152d15,0x2a152f15,0x2f152e15,0x43152e15,0x2f153215,0x32154315,0x48154315,0x32153c15,0x37154815,0x48153c15,0x39153e15,0x38153715,0x3e153f15,0x3e153815,0x37153715,0x14154815,0x38153615,0xf9153715,0x37153614,0x3714f915,0x9151415,0x150615,0xf9150015,0x151414,0x3d151415,0x9154615,0x40150015,0x46154415,0x31153415,0x33154015,0x40153415,0x154615,0x46153d15,0x47153d15,0x33154215,0x41154015,0x40154215,0x47154615,0x45154515,0x40154115,0xee156015,0xef14f014,0x4a14eb14,0xa151415,0x30157215,0x94152b15,0x2150415,0xc155315,0x79151215,0x41154215,0x6415a715,0x6515ae15,0x7513de15,0x66137213,0x4f154e15,0x4f156615,0x52155015,0x6d155315,0x50156615,0x51155115,0x6d155215,0x8b158015,0x8d158c15,0x80159115,0x8a157d15,0x85158515,0x86158415,0x4e154d15,0x4d156615,0x67156615,0x67154d15,0x76157815,0x7e157f15,0x76157815,0x78157e15,0x7a157e15,0x7a157815,0x7b157715,0x8e158f15,0x77157815,0x78157b15,0x8e157b15,0x83158715,0x78158215,0x87158e15,0x78154d15,0x87158715,0x5c158215,0x5d155c15,0x5f155f15,0xa5156215,0x8915a515,0x70157015,0x53156d15,0x53157015,0x5f155415,0x7015a515,0x87154d15,0x4c155c15,0x5c154d15,0x70155f15,0x5f155415,0x55155415,0x4c154b15,0x4a155c15,0x5c154b15,0x55155f15,0x57155615,0x5c154a15,0x56155f15,0xed155715,0xb313ac13,0xaa15a713,0x8115ab15,0x7f157e15,0x89157f15,0xa515a515,0x9e15a815,0x6515a315,0x7f15ae15,0x9e15a515,0xae15a315,0x7f15a915,0xa3159e15,0x81158815,0x88157f15,0xa3157f15,0xa915a315,0xa0159515,0xa3158815,0xa0159d15,0x9d15a315,0x9515a315,0x9d15a415,0xa4159515,0x96159515,0xa4159b15,0x97159615,0x96159b15,0x8f158e15,0x92159215,0x96159715,0x92158e15,0x58159615,0x96158e15,0x96155815,0x5a155915,0x5b15b015,0x59155815,0x9c155e15,0x5b155a15,0x58155b15,0x69155e15,0x6b156415,0x5e155b15,0xa6156915,0x5b159c15,0xa7159f15,0x9a15a615,0xa6159f15,0x6b156915,0x6e156e15,0xac157115,0xab15ac15,0xac15aa15,0xaf15aa15,0x9a159915,0x7515a615,0x91158015,0x99159115,0xac15a615,0xad15af15,0xad15ac15,0x9115a215,0x5b15a615,0x91157515,0x74155b15,0x5b157515,0x85158415,0x7c157415,0x74158415,0xac156e15,0x7915a215,0x74157c15,0x79157315,0x90157415,0x8b158c15,0x8b159015,0x94159315,0x93159015,0x8a15a115,0x98157d15,0x93159415,0x93159815,0x6c15a115,0x74157315,0x6c156815,0xa2157415,0xa1159815,0xa115a215,0x68157d15,0x5b157415,0x68156115,0x60155b15,0x5b156115,0x60156315,0x63155b15,0x69155b15,0x63156a15,0x6e156915,0x7d15a215,0x7d156e15,0x6a157215,0x6e156915,0x72156e15,0xaf156f15,0xdb14da14,0xe157714,0x7a151315,0xe151015,0x32159b15,0x89153c15,0x8152015,0x2a159215,0x8f152f15,0x2a152715,0x30153a15,0x81159815,0x7a127b12,0x1156c12,0x68150c15,0x114fc15,0xfd156a15,0x6f14f314,0xfd150715,0x9e12a514,0x61129a12,0xfc14f015,0xa157214,0x29150715,0x8c152315,0xeb154a15,0xe814e814,0x4c14ea14,0x4150515,0x23155215,0x8d152515,0xf714f815,0xf7154f14,0x5014ff14,0xf157615,0xfb151715,0x66156714,0xfb156715,0xf151114,0x78157615,0x1a158515,0x1a150b15,0x8a158515,0xd157515,0x24152615,0x80158b15,0x4315a915,0x8b152e15,0x2c152415,0x75150d15,0xb2157415,0xd012b312,0x89152012,0x25157f15,0x87142714,0x17148414,0x25141414,0x84148714,0x25142614,0x84148414,0x1a141414,0x1a148414,0x20141d14,0x84142614,0xa1153b14,0xa1159315,0x21153b15,0x8c138915,0x8913e513,0xe413e513,0x89138e13,0x8e13e413,0xe613e413,0x8e139313,0xe813e613,0xaa13a313,0xe6139313,0x9513e813,0xe8139313,0xe8139513,0xee13aa13,0x9613e113,0x95139613,0x9613aa13,0xb213aa13,0xee13ef13,0xec139613,0xef13ed13,0x9d13a713,0xa813ec13,0xec13a713,0x9613ef13,0xef13b213,0xb113b213,0xec13a813,0xa913ef13,0xef13a813,0xb113ef13,0xad13b013,0xef13a913,0xa515a813,0x63153e15,0xee14f315,0xa6159c14,0xda154015,0xb314af14,0x3c15a414,0x51153715,0xd131c13,0xd135113,0x4e130713,0x7135113,0x7134e13,0x55130213,0x4d135213,0x4e134d13,0x4d130213,0xfe130213,0x5e135f12,0x55135513,0xfe134d13,0xfe135512,0x2012fd12,0x55135f13,0x1f135913,0x48132013,0x59134713,0x4a134b13,0xf9134813,0x4b12fa12,0xf912f713,0x48134b12,0x20135913,0x55132013,0x2012fd13,0xf312fd13,0xf712f212,0xf0134b12,0x4b12f212,0xf3132013,0x4812ec12,0xec132013,0x4b12f012,0xea134813,0x4812f012,0xec134813,0x1f12e812,0x8e158715,0xb9160615,0x6161d15,0x3161d16,0x6161b16,0x1b160316,0xff160316,0x1b161a15,0x1a15ff16,0xfb15ff16,0x1a15fc15,0xfc15fb16,0xfe15fb15,0xfc15fa15,0xfa15fe15,0x115fe15,0xfa15f216,0x2160115,0xf9161c16,0x2160115,0xf915f916,0xed160915,0xed15f915,0xf2161515,0xf9160115,0xf915f215,0xf2161515,0xf1161515,0xf215ee15,0xee15f115,0xf415f115,0xee161615,0x1615f415,0x1815f416,0x16161716,0x17161816,0x19161816,0x1715f616,0xf6161916,0xd2161915,0xbe160a15,0xf815f815,0xd215f615,0xf8160a15,0xe015d215,0xa161115,0xe015e216,0xa160a15,0xd315d216,0xd3160a15,0xe115ec15,0xa15e215,0x1315e616,0xe115eb16,0xec160a15,0xeb15e615,0xe915e115,0xe115e615,0xec15e115,0x5d161415,0xe6155c15,0x5d155f14,0x8f14e715,0x91129212,0xab14ac12,0xb414a114,0xac14b014,0xa314a014,0xa214b414,0xa0149f14,0xa414a614,0xa814a214,0xa614a714,0xaa14ae14,0xa914a814,0xae14ad14,0xae14a914,0xa814a814,0xa214a614,0xb414a014,0xa014ac14,0xa114ac14,0xa914a514,0xa014a814,0x9e14a114,0xa814a514,0xa214a214,0x9e14a014,0x9c12a114,0xc912bc12,0xc4139713,0xa312a013,0x6012c012,0x31132a13,0xb612ce13,0x912b812,0xac154615,0xcf13ce15,0xd813cd13,0xad12db12,0x9f129b12,0xab12be12,0x4615ac15,0x1d15ba15,0xba15b916,0xbd15b915,0xba15bc15,0xbe15bd15,0xc0160a15,0xbd15bc15,0xbc15be15,0xc015be15,0xc615c015,0xcc15cc15,0xcb15ce15,0xc715cb15,0xb715b715,0xb515b615,0xb415b515,0xb115b115,0x7160815,0xf9160716,0x7161c15,0xb161c16,0xb115b516,0xcb160715,0xb515b715,0xcc15c015,0xbb15cb15,0xc015bc15,0xbb160d15,0xc015c015,0xb515cb15,0x715b515,0xc160b16,0xc0160d16,0xb15b515,0x29160c16,0x26162516,0x26162916,0x1f162c16,0x231a4d1a,0x29162d1a,0x36162c16,0x3d183b18,0x38163218,0x69163716,0x671a0e16,0x38163716,0x3b163a16,0x3a163716,0x67189916,0x3e189318,0x40163f16,0x3e162216,0x23164016,0x27162816,0x9816f216,0x3168b16,0xd919d61a,0xd519f719,0x4519d419,0x49164216,0xc818dd16,0x52198818,0x4c1a251a,0x9c17941a,0xf5186a17,0xfa17f617,0xa118a517,0xe018a718,0xd7173917,0x801a6f17,0x511a6b1a,0xd117cd17,0x36183117,0xd9186d18,0xf316f017,0xfc180116,0xdc17ff17,0xdf19ee19,0xe219f319,0x4f19e619,0xbc18ce19,0xdd19f418,0x7b19e219,0x7a169016,0xd719ed16,0xba19ec19,0xc419c619,0x8c169c19,0xab169116,0xaa1b071a,0x97169e1a,0x9e169a16,0x97169d16,0x9a169f16,0x9f168a16,0x9a169e16,0x9f16a016,0xa0168a16,0x93168a16,0xdf1b1a16,0xae1b291a,0xac16aa16,0x751a6516,0xb11a621a,0xac16ae16,0xb116b416,0x3d16ac16,0x331a2c1a,0xbc17bb1a,0xbb17be17,0xb416b816,0x711a6b16,0x321a681a,0x2d1b241b,0xbf18df1b,0xba18dd18,0x1f16b016,0x516a218,0x3170417,0x219de1a,0x8a185e1a,0xb7176f18,0xa4188b18,0x35162f18,0x17163616,0x131b4f1b,0xdd18dc1b,0xfb18db18,0xf21afe1a,0x8c18ac1a,0x5f189118,0x5a195b19,0x391a5b19,0xcc1a371a,0xb21ab41a,0x9c18751a,0x49187817,0x38173618,0x69187a17,0xca178b18,0xc71ac51a,0x6c17a01a,0xfe179f17,0xd519e519,0x29192f19,0xf7193019,0xe170c17,0x73189917,0xea177617,0xe919e419,0xb517b019,0x8217b917,0xc518a818,0x29189018,0x7e189418,0xc718c918,0x48167f18,0x71164716,0x72165716,0x88188b16,0x77188e18,0x78166416,0x2d182716,0xf2182618,0xd019e619,0x7916bc19,0x68177417,0xc176517,0xd217d618,0xba176417,0x7218cc18,0x86198418,0x1618ca19,0x15191419,0x6b167519,0xcf167616,0x92168916,0xfa18ec16,0x7518ea18,0x621a5f1a,0x3017431a,0x4e182c18,0x53176918,0x87186318,0x90187f18,0x3d1a421a,0x5419531a,0x8318ce19,0x84166516,0xb219a616,0xe219c219,0xc517c816,0x52194f17,0xa6195119,0xec17e616,0xbe17d517,0xdf16c116,0xe319ef19,0xd719eb19,0xba19d119,0xe11adc1a,0xda19f71a,0x8b19f819,0x81169816,0x5d1a7416,0x201a601a,0x1d191f19,0xc1172419,0x8717c317,0x41166c16,0x1a165516,0x151a0f1a,0x131b181b,0x651a821b,0x781a671a,0xa9177f17,0x60189717,0xeb186118,0xea19d219,0x97169c19,0xc0169d16,0x71197218,0xf117ec19,0x4716b517,0x46194919,0xa6199d19,0xf0199519,0xef19e319,0x891a4319,0x991a941a,0x9819a919,0xcd17d119,0x1c17d217,0x12171517,0x89178417,0x74186a17,0x73186717,0xe119ff17,0x6b19e519,0xb316ad17,0xc419de16,0x5519c619,0x54195619,0x1d191e19,0x97191b19,0x76197319,0x58166f19,0x64167016,0x6917e217,0x50188517,0x3b186418,0x4d1a1016,0x75197c16,0x87197419,0x8e184618,0x2016b718,0x48182218,0x4b1b4c1b,0x2419251b,0x7e192219,0xcd197f19,0x19165b18,0xb1a1a1a,0x7316721a,0x22192316,0x5618b519,0x211a1e1a,0x52166e1a,0xbc166f16,0x73187118,0x361a4918,0x861a381a,0x6c166a16,0xcf16c816,0xa117e316,0xa2168e16,0x38184b16,0xea173c17,0xc817cd16,0xc2174e17,0x1117c417,0x431b3f1b,0xe719f11b,0xf819f019,0xfc19dd19,0xd0173819,0xe4173917,0xe216ed16,0xe0173d16,0x9e17e817,0xa0183118,0x4116e718,0x94184418,0x97185f18,0x5e167018,0x4b167116,0x391a1d1a,0xd6174e1a,0x35175817,0x52175018,0x1f182f17,0x2183217,0xfd18fc19,0x4f1a1218,0x9f1a0f16,0x66185d18,0xfd16ec18,0x4e17fa17,0x541a631a,0x4816ed1a,0x5116f318,0xce195319,0x4117ac18,0x2f174017,0x471a451a,0xd216ef1a,0x8817cd17,0x46164116,0x4a194616,0x418bc19,0xfb18b219,0x25179a18,0x94172317,0x9216de16,0x2b183416,0x9b183817,0x66189f18,0x9b177318,0xb5186618,0x9a189518,0x93186818,0x8f186718,0x68189318,0x60184e18,0x89176717,0x84186818,0x89188417,0x86178418,0x84188417,0x84188017,0x69178618,0x86188018,0x7a187417,0x8c178b18,0x8b187417,0x74186a17,0x81178c18,0xb418b718,0xb3189118,0x8318ac18,0xc418c618,0xbf18a218,0xf218b118,0xe718a618,0x7518be18,0x51187818,0x261a3e1a,0xaf18b21a,0xa2187b18,0xc218c818,0xf816f918,0xbb169c16,0xbd189218,0x61196618,0x6d196019,0x79183918,0xcc187618,0xb118c918,0x3b1b361a,0xb4187b1b,0xaf18b218,0x7b187018,0xc018c118,0x62188d18,0x4d1a4c1a,0x6c18a71a,0x2518aa18,0x5e185f18,0x9416e918,0x6c16ec16,0x6e16ee17,0xee18e517,0x2618ef18,0x1f183217,0xe918f817,0x3818e818,0x3e172e18,0x32172f18,0xf1173117,0xf318f418,0xc51ad018,0x3d1acf1a,0x3f193e19,0x38183719,0x8916e718,0x8a197a19,0xd618e419,0xb718d418,0xfa18e818,0x65196218,0x77196419,0x79197a19,0xb218af19,0xb190518,0xab190d19,0x6b196a18,0x6f196919,0x6b196d19,0x9a18b819,0x68189c18,0xc6196919,0xc7196718,0x71196118,0x62196319,0xa5191019,0x49190e18,0xe1199219,0x181aed18,0x4d1b161b,0x4f195019,0x4e194b19,0x56194d19,0x58174718,0x3317ce18,0x2b173017,0x2c192a19,0xd218e119,0x1718d118,0x16191319,0x2e192419,0x6e192d19,0xc1197019,0x8618ad18,0xd4187d18,0xe31ae01a,0x2d18a81a,0xca193219,0xc416c716,0xc5193a16,0x31193b18,0x2e192d19,0x2e193019,0x82192f19,0x84198519,0x40194519,0x44194119,0x3a18be19,0x8170319,0xc0170917,0x26181f16,0xb5192118,0x8191f18,0xe1afc1b,0x1b191c1b,0x10191a19,0xb8191919,0x11191818,0xca191719,0xcb17c917,0x12190117,0x58190019,0x5b195a19,0x60195e19,0x318c919,0xfc18fb19,0x3f194118,0xee193e19,0xf416e317,0x6190517,0xc018af19,0x7018c118,0xf18aa19,0xa190e19,0x491b0d1b,0x6218bb1b,0x88197419,0x77197819,0xbf19cc19,0xc19cd19,0x8190a19,0x49184419,0xcd184a18,0x84198118,0x34165419,0x88163e16,0x8d1a901a,0x8119831a,0x3a197f19,0x3d193c19,0x14198f19,0x65191219,0x64197619,0x58183b19,0x42183f17,0x43194719,0xa719a919,0xa8199a19,0xa0199d19,0x9a19a919,0xab199819,0x9b19aa19,0x9919aa19,0xad199b19,0xa119ac19,0xa119ad19,0x91198b19,0xa419a619,0x9419ae19,0xaf198d19,0x8d19ae19,0xa819b019,0xb119a019,0x8c19af19,0x8d19af19,0xb2198c19,0xa019b019,0xa019b219,0xa5199319,0x9e19b119,0x8c19b119,0xb3199e19,0x9319b219,0xb319b419,0xb3199019,0x90199319,0x9019b419,0xb5199219,0x9219b419,0x9219b519,0xb619a219,0xa219b519,0xa219b619,0xb6199f19,0x96199f19,0xb619b719,0xae199619,0x9419b719,0x9619b719,0xe6199419,0x15181416,0x74197b18,0xbc197319,0xc619cc19,0xc319cb19,0x3119c119,0x2d1a3c1a,0x951a741a,0xce1a901a,0xc219bf19,0x1e1b2519,0xcb1b141b,0x9d18c818,0xc519c118,0xc019cb19,0xc519c719,0x591a5819,0x31a371a,0x62180c18,0xca19b917,0xed19c919,0xd718d318,0xdf16dc18,0x5316db16,0x501a281a,0xe01a061a,0x3219db19,0xd2183718,0xe419e816,0xe319e019,0xc519cb19,0x1c170a19,0xeb181b18,0x719e919,0x4a16fa1a,0x7185218,0xf51a001a,0xf81af319,0xf31b001a,0xf518f618,0xb17b118,0x4b170a17,0x4f174c17,0xf718f517,0xed18b918,0xaa1abb1a,0xad18b11a,0xdf187d18,0xcf18d018,0xb1171418,0x717b717,0x6190819,0x891a5419,0x341a401a,0x321b351b,0xc1196d1b,0x8f18c618,0xa118ff19,0x37193319,0x1d18c519,0xb818b519,0xab190a18,0xa418af18,0xf518f118,0x8f16d918,0x9216d617,0xd9178f17,0x9216db16,0x5316d917,0xa6176918,0x92179416,0xdf16db17,0xdb179416,0xa6185716,0x9a185916,0x9e1a9c1a,0x5517e71a,0xe517ea17,0xe1179916,0x9917a016,0xe816e517,0xe517a016,0x5c175e16,0xa5176217,0xe817a017,0x5c177016,0xc716af18,0x7e18c618,0x56185b18,0x4d185818,0x48183317,0x2116e617,0x72185e18,0x7416b917,0x7416bc17,0x7016b917,0x5a177317,0x65176118,0x7a178e17,0xbf177917,0x7a16c316,0x7d16bf17,0xc3177a17,0x7d16c716,0x8016c317,0xc7177d17,0x8016ca16,0x8216c717,0xca178017,0x8216cc16,0x8516ca17,0xcc178217,0xcc178916,0x8a16d016,0xd1178917,0x8a16d416,0x8d16d117,0xd4178a17,0x8d16d616,0x8f16d417,0xd6178d17,0x8f1a8b16,0xab1a8e1a,0x51b031a,0x1d18211b,0x3a173718,0x37182117,0x44194217,0x2c194519,0x2d1b391b,0x221ab91b,0x641b261b,0xd6175d17,0x77177c17,0x1d175717,0x241b121b,0x3819361b,0x40193719,0x3e182c17,0x1e1a5a17,0xe61a571a,0xa91aeb1a,0xc177e1a,0xf7170817,0x51184f16,0x2c1b2418,0xa81b2d1b,0x3f17ab17,0x20180d17,0xe172117,0x23180d18,0xe172517,0x11172318,0x25180e18,0x11172817,0x14172518,0x29172818,0xfe17e917,0xe9170016,0xfe17e417,0x17eb16,0xeb170217,0x17e917,0x15172f17,0x17172918,0x2f181518,0x17173117,0xed172f18,0x217eb17,0x17181817,0x2a173118,0x2e16d218,0x18173418,0xf2173118,0xc170917,0x8d18bd17,0xf918c018,0xe17f717,0xf9171217,0xfb170e17,0x15171217,0xfc171717,0xff171517,0x1717fc17,0xff171a17,0x2171717,0x1a17ff18,0x8618a417,0x418a918,0x1b171a18,0x4180617,0x20171e18,0x1e180617,0x6180817,0xd7172018,0xd618d418,0xcf17e518,0x4316d516,0x2a1a2e1a,0x441a1c1a,0xa41a461a,0xa716bd17,0x331a3b17,0xc01a361a,0xbd17a716,0xce17b816,0xbf16d316,0x2b17ca17,0xe718ef17,0xe118e618,0xfe16fb17,0xb5177016,0xd9177216,0xdd16f517,0x42183d17,0x7d184618,0x4a165016,0x1b1b5316,0x961b121b,0x6a179317,0x9616a917,0xed176a17,0xef170917,0x96179b17,0xa716a917,0xa9179b16,0x9b179d16,0xa116a717,0x95169316,0x55185616,0xa5174218,0x6d16ee17,0xc017ab17,0x9d16c216,0xa116b317,0xe616e517,0x3d181e16,0xae1b411b,0xdf17981a,0xa216e116,0xb317a117,0x71174b16,0xb6174a17,0xb317a216,0xa217a416,0xa416b617,0xba16b617,0x4f177116,0x4a177517,0x3f1a8b1a,0x7517531a,0x53174f17,0x75177717,0x2f171917,0x57182a18,0x54177717,0x7c175b17,0x7c175717,0x81175e17,0x441a4817,0x5f1a9b1a,0x5e178117,0x81178317,0x61175f17,0x5f178317,0x83178817,0xe3176117,0xf21ae81a,0xbb19c91a,0x6819b919,0x65178e17,0x8e179117,0x93176817,0x6a176817,0xce17ad17,0x4317b416,0x36173318,0x41184317,0x53173318,0x64185a18,0x3a182318,0x20173b17,0xb181c18,0x20170f17,0xbc170b18,0xf817f116,0xbe17b717,0xce171f17,0x3917cf17,0xde17e717,0x2717ee16,0x2a171618,0xa4172d18,0x5117a817,0x42173d18,0x2a171917,0x8a171618,0x8918d819,0x1d173519,0x44181818,0x4e174117,0xe16d717,0x5181118,0xd819db1a,0xba17bb19,0xbc1a0a17,0xa17bb17,0xbc1a0b1a,0xc01a0a17,0xb17bc17,0xc01a0c1a,0xc11a0b17,0xc17c017,0xc17c31a,0xc31a0d1a,0xc17c117,0xc317c61a,0xab1a0d17,0xd17c616,0xc617c71a,0xaa16ab17,0xab17c716,0xaa17c916,0xc916ae16,0xaa17c717,0xc917cb16,0xac16ae17,0xf41af01a,0xfa17dd1a,0x8417e116,0x6a166616,0xaf185916,0xd7185c16,0xc117d517,0xd716c616,0xdb16c117,0xc617d717,0xed1b0416,0xdc1b061a,0xc816c617,0xe817e316,0x8517e017,0x4d184618,0xc8168918,0xf6167a16,0xe917f417,0xf616ec16,0xce16e917,0xdf1ac31a,0x171b0b1a,0x8e1b0c1b,0xa319a419,0x331ab319,0xf21b351b,0xf117fd16,0xfd180016,0xf416f217,0xf2180016,0x180316,0xf616f418,0xf4180316,0x3180516,0xf816f618,0xf6180516,0x5180716,0xf916f818,0xf8180716,0x7180916,0xfc16f918,0xf9180916,0xfc180f16,0xf16fd16,0xfc180918,0xf181016,0xff16fd18,0xfd181016,0x10181216,0x116ff18,0xff181217,0x12181316,0x4170118,0x1181317,0x13181617,0x5170418,0x4181617,0x16181917,0x7170518,0x5181917,0x7181a17,0xb8181b17,0xb416b116,0x33162d16,0x79163216,0x7f186318,0x7b165f18,0x4b167a16,0x80168116,0xa16d116,0x7416d718,0x75164416,0x50184716,0x4f184618,0xf165516,0x671a111a,0xfd1a0e16,0x2199c18,0xb018e319,0x1418d218,0x5316561a,0x4c164516,0x621a1216,0x131a1116,0x6216611a,0x451a1316,0x151a1216,0x1316611a,0x5c1a161a,0x16166116,0x4516421a,0x421a1516,0x181a1516,0x16165c1a,0x2a162b1a,0x2b165c16,0x42164316,0x611a1816,0x891a8c1a,0x3717aa1a,0x42173517,0x2c1a281a,0x5819571a,0x2f195619,0x2e1a141a,0x35163d1a,0x5c1a2116,0x5f195e19,0x4f1b1219,0x411afb1b,0x3c1a2d1a,0xec18e91a,0x618ea18,0xd177517,0x8e16a317,0x29166d16,0x2b1a551a,0x84177a1a,0xf617a917,0xde1ae71a,0x818061a,0x76180a18,0x77166816,0xf619f716,0x3619fd19,0x3c163d16,0x48167d16,0xd167e16,0x4c1b4d1b,0xf717f81b,0x3017f917,0x581a551a,0xc916c21a,0x4717ad16,0x7f168016,0x481a3a16,0x7c1a491a,0x50165a16,0x5d1a4216,0x661a531a,0x681a4e1a,0x4d1a671a,0x4b1a691a,0x6b1a591a,0x5a1a6a1a,0x6d1a6c1a,0x4e164616,0x531a5716,0x9a1a6e1a,0x9e19a519,0x661a6419,0x5c1a721a,0x731a5d1a,0x721a641a,0x5c1a761a,0x771a731a,0x641a631a,0x4f1a761a,0x551a5f1a,0x5c1a6e1a,0x631a771a,0x781a761a,0x10176b1a,0x85181218,0x881aa81a,0x771a6e1a,0x6d1a7b1a,0x7b1a6e1a,0x5f1a5e1a,0xfe1a7a1a,0x190118,0x7b1a6d19,0x5e1a7c1a,0x7d1a7a1a,0x6d1a6c1a,0x6f1a7c1a,0x7d1a5e1a,0x7c1a6c1a,0x6a1a7e1a,0x7e1a6c1a,0x7e1a6a1a,0x691a7f1a,0x7f1a6a1a,0x7f1a691a,0x671a811a,0x811a691a,0x811a671a,0x901a821a,0x1e172017,0x831a8617,0x861a841a,0x871a841a,0x861a8b1a,0x7c1a871a,0xd178717,0x8e1a9217,0x721a8f1a,0x73165116,0xbb16c116,0x9167a16,0x81a051a,0x8f1a921a,0x941a961a,0x971a931a,0x921a981a,0x981a961a,0x991a961a,0x941a9a1a,0x9b1a971a,0x991a981a,0x34163f1a,0x9b163916,0x9d1a991a,0x9b1a9f1a,0x9f1a9d1a,0xa01a9d1a,0x9e1aa11a,0xa11a9c1a,0xa21a9c1a,0x9f1aa31a,0xa31aa01a,0xa41aa01a,0xa11aa51a,0xa51aa21a,0xa61aa21a,0xa31aa71a,0xa71aa41a,0xa81aa41a,0xa51a831a,0x831aa61a,0x841aa61a,0xa91abc1a,0xa91a761a,0xe518d418,0xcf18b118,0xb518d118,0x881ab31a,0xe41ada1a,0x371ae51a,0x2e16d318,0x2e1b2418,0xbd1b2f1b,0xb61ac91a,0x2d18261a,0x116ce18,0x819fe1a,0xd118e01a,0x6418d018,0xe217dd17,0x27192c17,0xe2192b19,0xe51adb1a,0xd019f11a,0xee19d319,0x311afd1a,0x5916811b,0x3c168216,0x23162416,0xd81ad116,0xdc1ad71a,0xd918d818,0xb117cb18,0xd217cf16,0xb81ad71a,0x7018ab1a,0x4c18ae18,0x4f173d18,0xdf1ace18,0x5c1ade1a,0x5d196019,0x3a1b4019,0x141b391b,0x1f1b201b,0x8718ca1b,0xbf198819,0xcc1ac01a,0xea1ae51a,0x311ae61a,0x30163416,0x2a1a3e16,0xef1a261a,0xe41ae91a,0x611a781a,0x411a631a,0x421b451b,0xc21ac31b,0x511b081a,0x4e1a1d1a,0x1916561a,0xa7165d1a,0xb119b919,0x931a8919,0xc21a941a,0xce19cf19,0xee19f919,0xd619ed19,0xdb1ad51a,0xbd16da1a,0xe217b817,0xec17eb17,0x21aff17,0x391b041b,0x3718c519,0x331b2f19,0xc71b301b,0xc819bb19,0xa3198b19,0xae19ad19,0x461b451a,0xc419b81b,0x9019ca19,0x88178317,0xbf1abe17,0xa81b091a,0x33193418,0xff190e19,0x5718fe18,0x5c175517,0xad16b717,0x22181616,0x10170f18,0xee1b0817,0x91adf1a,0x481b491b,0xc416e21b,0x2316da17,0x251a4c1a,0x9818cd1a,0x4b189618,0x4a1aaf1b,0x4e1b511b,0x221b1a1b,0x14171118,0x49167317,0xf4167416,0xf919f019,0x36193319,0xef193519,0xb217f317,0x5416fe16,0x27170318,0x221a441a,0x6d17ae1a,0x28166e16,0x27163016,0x77186516,0xa1187c18,0x9b19ab19,0x341b3c19,0x441b3d1b,0x3f1b3e1b,0x471a321b,0xf51a4a1a,0xfa1aef1a,0xc118831a,0x3f188d18,0x401b4a1b,0x471b4a1b,0x211b461b,0xee1adf1b,0xfa1ab01a,0xbc1b001a,0x4b194c18,0xd81a0419,0x8219d619,0x83166016,0x5d175816,0xe8184217,0xcf1ad91a,0x271b2b1a,0x211b261b,0x561a531a,0x3b1b351a,0x251b361b,0x2c173e18,0xe21abc18,0x7d1ae51a,0x7518cd19,0x5d184519,0x2176017,0x119e11a,0x661a711a,0x601a681a,0x62183018,0x63167918,0xf9167a16,0x1b011a,0xaa18ab1b,0x30186c18,0x3e184117,0xcb1ad218,0x191ac91a,0xb8191a19,0xc91ac818,0xe41ac71a,0xea1aeb1a,0xf918b91a,0xcf18f818,0xd416be17,0x1b164317,0x2416691a,0x28192719,0x8218c319,0x4e18c518,0xdf1ade1b,0x431ac41a,0x1a1afd1b,0x531b1b1b,0x4a18581b,0x3f177117,0x441a921a,0x4517b81a,0x48173f17,0x44183017,0x2e162a17,0x16162f16,0xb91b1f1b,0x3d1a8a1a,0x221a851a,0x2d179d17,0x2b1ab517,0xa11b2f1b,0x4a1aa51a,0x3b1aa71a,0x9a1a481a,0x471a9e1a,0x5d186f1a,0xa018a318,0x9d16ff16,0x22162616,0x59164016,0x6f1a551a,0x5a1a1f1a,0x631a4d1a,0x36183918,0x62183618,0x36183318,0x35183318,0x63183d18,0x3b183618,0x3d183c18,0x35183618,0x32183b18,0x38163316,0x1b166916,0x991a0e1a,0x67177618,0x24162318,0xf1162816,0x9816ec16,0x8d169816,0x96169616,0x8b169b16,0xf6168b16,0xf216f416,0x9816f116,0xf4168b16,0x9816f216,0x8b169616,0x41a0316,0xf719d61a,0xd519fe19,0x46164e19,0x41164116,0x6a166c16,0x2d166a16,0x6a163216,0x37163216,0x41164e16,0x58166a16,0x4e165216,0x5e165716,0x49165816,0x57165116,0x44166b16,0x64164916,0x6b166816,0x63165f16,0x50166416,0x5f165a16,0x4a163616,0x2f165016,0x50163616,0x5f165016,0x57166416,0x4e165816,0x6a164e16,0x4e163716,0x3b163716,0x2f162a16,0x5c165016,0x50162a16,0x3b164e16,0x4e164d16,0x53164d16,0x50165c16,0x61166416,0x64165c16,0x53164e16,0x57165616,0x56164e16,0x61166216,0x67166416,0x64166216,0x56165716,0x57165d16,0x5b165d16,0x64166716,0x69166b16,0x6b166716,0x5b165716,0x57165516,0x4f165516,0x69164316,0x42166b16,0x6b164316,0x57164916,0x49164f16,0x4c164f16,0x6b164216,0x49164916,0x45164c16,0x79197716,0x89198919,0xdb18d819,0xbf18dd18,0x8918c218,0xdd18db19,0x77198818,0xc8198919,0x8818ca18,0xc218dd19,0x8818c818,0xdd198919,0x4f1a4c18,0x521a521a,0x251a291a,0x8d186a1a,0x6a178f17,0x92178f18,0x6b179517,0x9c186a18,0x95179717,0x98179417,0x6a179c17,0x94179218,0x95179c17,0xfe186a17,0xf5175c17,0x5517f517,0xf517f017,0xf417f017,0xfe17fa17,0xf517f517,0xf617f417,0x9c18a517,0xdb18a118,0xe017dc17,0xda17e017,0x39173917,0xd517d417,0xdb17d717,0x3917e017,0xd717d517,0x7d1a6f17,0xd11a801a,0x5917d617,0x56175917,0x51175117,0xc5174e17,0xc5175117,0xd117c817,0x51175917,0xc8175117,0x6d17cd17,0x3118a018,0x62183118,0xd9183618,0xf017d217,0xcd180216,0x1180116,0xfb16c418,0xfb180117,0xff17fc17,0x1180217,0xed19dc18,0xf319ee19,0xe219f419,0x4d194b19,0x4f194f19,0xce195119,0xba18ce18,0xbc18bc18,0x4f194b18,0xfc19f419,0xed19dd19,0xd719dc19,0xbc19ba19,0xab19c619,0x71b061a,0x231b1c1b,0x1a1b1a1b,0xdf1b4e1b,0x211adf1a,0x291b291b,0x1a1b1c1b,0x701a651b,0x3d1a751a,0x2c1a421a,0xb917be1a,0xbe17b617,0xba17b617,0xbf17bc17,0xbe17be17,0xbb17ba17,0x801a6b17,0xdd1a711a,0xdf18de18,0xcf18df18,0xb618bf18,0xb016b316,0xb716b016,0x1f181f16,0xba16bd18,0xb616ba16,0xa016b016,0xa216a116,0xa316a216,0xa2170a16,0x7170a16,0xa0170117,0x416a216,0xa2170117,0x716a216,0x3170517,0xde19d91a,0x6e176f19,0x5e185e17,0x8a189018,0xb918a418,0xb718b718,0x8b188818,0x2e162f18,0xdc163516,0xdd18de18,0xf11af718,0xfb1afb1a,0xb1b4f1a,0x21afe1b,0xfb1af21b,0xfe1b0b1a,0xf71af21a,0xac1afb1a,0x8c18a818,0x5e195f18,0x5b195b19,0x391a4b1a,0x4d1ab21a,0xcc1acc1b,0xb41ac01a,0x9718751a,0x49179c17,0x36184318,0x80187a17,0xca186918,0xc51b111a,0x9c179f1a,0x9f179817,0x99179817,0xa3176c17,0xa5179f17,0x6c176d17,0x99179f17,0xa017a017,0x6c17a517,0xff19fe17,0x2f19e519,0x29192a19,0xf217f719,0x99170c17,0x73189b18,0xd219ea17,0xb919e419,0x1317b717,0xb1171317,0xb017b017,0xb217af17,0xb217b017,0xb917b317,0xb0171317,0xb617b517,0xb017b917,0xb517b317,0x8c188217,0x9018a818,0x29185e18,0x76187e18,0x7f18c918,0x48167e16,0x5e167116,0x80165716,0x74187a18,0x6a187418,0x6b186b18,0x97179518,0x75179717,0x97187318,0x71187317,0x6b187418,0x84179718,0x74188018,0x89188f18,0x99188418,0x8f189318,0x9b189f18,0x6f189918,0x9f18a318,0x77187c18,0x8e186f18,0x7c188518,0x87187f18,0x6d188e18,0x7f187918,0xa0189e18,0x94186d18,0x9e189718,0x90188a18,0x6c189418,0x8a176f17,0xa3179f18,0x78176c17,0x9f179c18,0x78188217,0x9f179f18,0x8a176c17,0x6f187c18,0x9f189f18,0x8f189918,0x84188f18,0x74187418,0x71179718,0x71187418,0x82187218,0x8a179f18,0x82188c18,0x74188a18,0x76187218,0x76187418,0x8c187e18,0x94188a18,0x8c189118,0x74189418,0x83187e18,0x74188f18,0x95188318,0x94189118,0x95189a18,0x8f189418,0x8d188318,0x8d188f18,0x9a189218,0x9e189418,0x9a189c18,0x8f189e18,0x96189218,0x96188f18,0x9c189818,0x6d189e18,0x9c18a118,0x9f186d18,0x98188f18,0x98189f18,0x6c189d18,0x6d18a118,0x6c187018,0x9f186d18,0xa2189d18,0xa2189f18,0x70186e18,0x7f186d18,0x70187b18,0x7c187f18,0x6e189f18,0x6e187c18,0x81187d18,0x7f187b18,0x81188818,0x7c187f18,0x86187d18,0x86187c18,0x88188b18,0x8e187f18,0x7c188e18,0x77188b18,0x64166816,0x22182416,0x27182718,0x2d182a18,0x28182d18,0x26182618,0x27182418,0xf319f218,0xbc19e619,0x7916bf16,0x63176517,0x62176217,0xc176617,0x6b180c18,0xc16a917,0x6a16a918,0x62176517,0xc180c17,0x68176a18,0xd8176417,0xd617d617,0xd217d117,0xd917d217,0x72176417,0xba187118,0xce18ba18,0x8418cc18,0x86198519,0x13191619,0x75191419,0x6b164416,0xcb16cf16,0x89168916,0x92169916,0xd5169216,0xec16cf16,0xfa199c18,0x7a1a7518,0x2c1a5f1a,0x43174018,0x44174317,0x4e183017,0x69176718,0x40186317,0x3d188718,0x901a8d1a,0x951a901a,0x531a421a,0x54195519,0x60168319,0xac166516,0xa319ad19,0xa419a319,0xa619a619,0xb019a819,0xb319b219,0xb519b419,0xb719b619,0xaf19ae19,0xae19bb19,0xbe19bb19,0xb019a619,0xb819b219,0xab19aa19,0xb819ba19,0xb719ab19,0xbe19ae19,0xbe19b719,0xba19c019,0xac19ab19,0xba19bc19,0xb519ac19,0xc019b719,0xc019b519,0xbc19c119,0xa319ac19,0xbc19bd19,0xb419a319,0xc119b519,0xc119b419,0xbd19c319,0xa619a319,0xbd19bf19,0xb219a619,0xc319b419,0xbf19c219,0xb219a619,0xc219c319,0xea16e219,0x4f17c816,0x52195019,0xaf17ec19,0xa616a416,0xe6176916,0xa417ec17,0xe616a616,0xec16a517,0xd417d517,0xdf16be17,0xef19ee19,0xec19eb19,0xe119d719,0xba1ae21a,0xb81aba1a,0xdc1ad81a,0xe11ad61a,0xd81aba1a,0xf71adc1a,0xda19d419,0x6d168819,0x8e168e16,0x93169516,0x8a169316,0x9a169a16,0x91169716,0x8c169116,0x8b168b16,0x96169b16,0x8d169616,0x98169816,0x8f169416,0x92168f16,0x89169916,0x7b169016,0x7b168916,0x8b167c16,0x98169616,0x91169a16,0x8e168b16,0x9a169316,0x88168716,0x86168e16,0x8e168716,0x89169916,0x99167c16,0x7d167c16,0x8e168616,0x85169a16,0x9a168616,0x7d169916,0x8f167e16,0x7e169916,0x85168416,0x84169a16,0x8b169a16,0x7e168f16,0x8f167f16,0x80167f16,0x84168316,0x82168b16,0x8b168316,0x8f169816,0x81168016,0x8b168216,0x80169816,0x74168116,0x5d1a731a,0x2119201a,0x2c191f19,0x24172717,0xbf172417,0x2417bc17,0xc017bc17,0x2c17c717,0xc6172417,0x2417c717,0xc0172417,0xc317c117,0x2417c617,0x86168717,0x55166c16,0x1a165b16,0x1d1b131a,0x141b141b,0x151b1f1b,0x161b151b,0x181b181b,0x131b171b,0x141b131b,0x821b151b,0x651a701a,0x9e18611a,0x97189718,0x60185f18,0xd119eb18,0x9c19d219,0x97169116,0x7018c016,0xb5197219,0xec16af16,0xb217ec17,0xf117f116,0xb516b917,0x48194716,0x9d194919,0xa619a819,0xe719f019,0x9a19e319,0x431a451a,0x401a431a,0x941a891a,0x431a9a1a,0xaa19991a,0x1219a919,0x87177e17,0x18178717,0x1c171c17,0x1a171b17,0x1a171c17,0x12171717,0x1c178717,0x17171c17,0x69171517,0x84178618,0x80178417,0x84178217,0x85178217,0x69178b17,0x6a178418,0x8b178c18,0x8d178a17,0x84186a17,0x89178517,0x8a178917,0x6a186a17,0x84178b18,0x79177417,0x7817a917,0x67186817,0xa9177418,0x73177817,0x74177217,0x76186717,0x74177317,0x67177817,0x119ff18,0xa719e11a,0x6b16a916,0xa8176b17,0xad16ad16,0xb316b016,0xa716b316,0xcd176b16,0xdd19e219,0xdd19cd19,0xe019da19,0xc919c819,0xe019db19,0xcc19c919,0xda19cd19,0xda19cc19,0xdb19d419,0xca19c919,0xdb19d819,0xcc19ca19,0xd519d419,0xd519cc19,0xd619e519,0xca19d819,0xd619d919,0xc619ca19,0xe519cc19,0xe519c619,0xd919e119,0xc419ca19,0xe119c619,0xde19de19,0xc419d919,0x57195519,0x1e195619,0x1d192019,0x7b199719,0x6f197319,0x58165216,0x60176716,0x64176417,0xe217de17,0xe617e217,0x69176917,0x64176717,0x7c186417,0x85188518,0x50184d18,0x3a163b18,0x7c1a1016,0x75197d19,0x40188719,0x24184618,0xb7181f18,0x1a16b716,0xb7181b18,0x1c181b16,0x24182218,0xb716b718,0x20181c16,0x4a1b4b18,0x481b481b,0x4c1b491b,0x2619251b,0x7e192419,0x7f198019,0x5d165b19,0x741a1916,0x76167516,0x79167816,0x7716bb16,0xbb167816,0x6e17af16,0xaf166f16,0x70166f17,0xbb167716,0x7716b416,0xac16b416,0xaf17b216,0xb3167017,0x7017b217,0x77167616,0x7616ac16,0xaa16ac16,0x7017b316,0xb5167116,0x7117b317,0xaa167616,0x7416ab16,0xab167616,0x7117b516,0xb6167216,0x7217b517,0xab167416,0x741a0d16,0xc1a0d16,0xb617ba1a,0xa167217,0x7217ba1a,0x74167316,0xb1a0c16,0x721a0a1a,0xc167316,0x231a0b1a,0x22192519,0x571a5619,0x6e1a1e1a,0x52164e16,0xbe187316,0xbc18bc18,0x7118ba18,0x3b1a4918,0x861a361a,0x6a168516,0xdf17e316,0xc816c817,0xcf16cb16,0x9516a116,0x3c168e16,0x4b184c17,0x49184b18,0xea173818,0xcd16ef16,0xc517c417,0x4e174e17,0xc2174917,0xbd17c217,0xc417c417,0x111ac51a,0x91b111b,0x3f1b3f1b,0x431b3e1b,0xc41b431b,0xf11b111a,0xe719d319,0xda19f819,0x3619dd19,0xd0173317,0xd317d017,0x39173917,0x3c17da17,0x36173817,0x3917d017,0x38173c17,0x3716dd17,0xe416e418,0xed16e716,0xef16ed16,0xe216ea16,0xe416dd16,0xea16ed16,0xe816e216,0x42174717,0x3c173d17,0xe817da17,0x3d174217,0x4617e017,0x3d17e817,0xe017da17,0x61189e17,0x44183118,0xe716ed18,0x3a16e716,0x41183e18,0x44184318,0x3e16e718,0x94184118,0x5f182918,0x58167018,0x4b165e16,0x1d1a4e1a,0x5017521a,0x4e174e17,0x56175117,0x59175617,0xd617d617,0x58175a17,0x52175817,0x4e174e17,0xd6175617,0x3b175217,0x35183518,0x50174d18,0x1d182f17,0x2171f17,0xfc190319,0x4c1a1218,0x9f164f16,0x5d18a318,0xf617fa18,0xec16ec17,0xfd16f116,0x511a5417,0x4e1a4e1a,0x631a641a,0x611a631a,0xf01a541a,0xed16ef16,0x4416ed16,0x48184818,0xf5184a18,0xf016f316,0x4816ed16,0xf316f518,0x52195116,0x3e195319,0xac173b17,0x3f17ac17,0x41174117,0x40174317,0x3e174017,0x4717ac17,0x2f1a341a,0x431a2f1a,0xef1a451a,0xd216f016,0x87168817,0x46164116,0x4a194919,0x5190419,0x2118b219,0x9a172217,0x2a179a17,0x9a172917,0x28172917,0x21172317,0x9a179a17,0x25172817,0x8f169217,0x94169416,0xde16e316,0xd516de16,0x34169216,0x2b172618,0xb6189a17,0xb518b518,0x9518b318,0x47184e18,0x89176018,0x68188f18,0x88188118,0x9118b718,0xb3189518,0x7e188318,0xb118c618,0xa2186e18,0xc218a218,0xe718bf18,0xf218f018,0xf118f218,0x7818a618,0xbe18c318,0x7318be18,0x26187518,0x511a201a,0x541a511a,0xa21a3e1a,0xc8189d18,0xf616f818,0x8b168b16,0x9c168c16,0x9d169c16,0x9c16fd16,0xfc16fd16,0x8b16f816,0x9c169c16,0xf916fc16,0x9618bb16,0x66189218,0x61196719,0x36186d19,0x76183918,0xcc187218,0x3c1b3b18,0xb11ab11b,0x361ab31a,0x81187b1b,0xaf18b418,0x7018ae18,0x651a4d18,0x621a621a,0x4c1a4f1a,0xa118a71a,0x25186c18,0x2b182c18,0x60182b18,0x5f185f18,0x5e182918,0x23185e18,0x25182518,0x5f182b18,0xe316e918,0x94169416,0xec169816,0x6f176e16,0x6c176c17,0xee176d17,0x1e16ee16,0xef176e18,0xe518e618,0xed18e518,0x2618ee18,0x32183417,0xf918f818,0x3e18e918,0x38183a18,0x2b183818,0x2e172e17,0x3e173017,0x29172f18,0x2a172a17,0x32172d17,0xa6173217,0x32173517,0x34173517,0x2a172f17,0x32173217,0x31173417,0xf218f117,0xd018f418,0xc61ad51a,0xc71ac61a,0xc51ac51a,0xcf1ac41a,0xd41acf1a,0xd01ada1a,0xc51ac61a,0xda1acf1a,0x3d1ad01a,0x3e193c19,0xe416e719,0x37183716,0x38183418,0x3a183818,0x8916e718,0x7a197919,0xe318e419,0xfb18d618,0xb418b218,0xb918b718,0xfb18f818,0xb718b418,0xfd18fa18,0xfc18fc18,0xb718fb18,0xf818b718,0xe818e818,0xfa18ea18,0xfc18fa18,0x6218b718,0x65196319,0x78197719,0xb197a19,0xd190c19,0x6c196a19,0x6b196b19,0x6f196c19,0x6e196f19,0x9c196d19,0xb818a518,0xb618b818,0x68189a18,0x69196a19,0x68196719,0x7118c719,0x63197219,0x12190019,0x191419,0x13191419,0x18fe19,0xfe191319,0x11191318,0xaa18a719,0xe190e18,0x1118fe19,0xb8191019,0xe18a518,0x10191119,0xa718a519,0x66190e18,0x5f195c19,0x5a195f19,0x5f195919,0x57195919,0x66196719,0x68195f19,0x5f196719,0x57195f19,0x5f195519,0x53195519,0x68196a19,0x6a195f19,0x53195f19,0x53196a19,0x6c195219,0x52196a19,0x52196c19,0x6f195019,0x50196c19,0x50196f19,0x6f194e19,0x4c194e19,0x65199719,0x7c196319,0x97197b19,0x7c197d19,0x97199719,0x72196319,0x72199719,0x7e197019,0x97197d19,0x7e198019,0x97199719,0x6f197019,0x97198019,0x83196f19,0x6f198019,0x6f198319,0x85194c19,0x4c198319,0x4c198519,0x86194a19,0x4a198519,0x86198719,0x8a194a19,0x78197a19,0x78198a19,0xda198719,0x8a18d918,0xda18dc19,0x8a198a18,0x4a198719,0x4a198a19,0xde194919,0x8a18dc18,0xde18df19,0xdf198a18,0x49198a18,0xdf18e019,0x48194918,0x45194219,0xe018e119,0x49194918,0x45194819,0x41194519,0x45193e19,0x3c193e19,0xd718ed19,0xee18d518,0xd518ed18,0xd518ee18,0xef18d618,0xd618ee18,0xd618ef18,0xf018e318,0xe318ef18,0xe318f018,0xf218e218,0xe218f018,0x45194918,0x49193c19,0x3b193c19,0xe218f219,0xf418e118,0xe118f218,0x3b194918,0x38193919,0x9a193619,0x39194919,0xf6193819,0xe118f418,0xf618f718,0x4918e118,0x9a193819,0x9a194919,0x9c199e19,0xeb18ec19,0x2190318,0x4199c19,0x9c190319,0xeb199c19,0x9c18e918,0xf918e919,0x4190518,0x8b199c19,0x5190719,0x8b198e19,0x5190519,0xf9199c19,0xf9190518,0x9118f718,0x5198e19,0x91199519,0x5190519,0xe118f719,0x9e194918,0x49198c19,0x8d198c19,0x5199519,0x9d18e119,0xe1199519,0x8d194918,0x49199419,0x96199419,0x9d19a019,0x9318e119,0xe119a019,0x96194918,0x49199f19,0xa2199f19,0x93199019,0x4918e119,0x9219a219,0x90199219,0x1618e119,0xed1b191b,0xc1aed1a,0x4d1b181b,0x50194e19,0x4c194b19,0x56194e19,0x47174218,0xca172e17,0xce17ce17,0x3317d017,0x2e173017,0x2b17ce17,0x2a192919,0xe218e119,0x1718d218,0x13191119,0xb518b319,0x24192218,0x2c192819,0x2218b319,0x2d192419,0xac18a819,0xb318ac18,0x24192418,0x2a192c19,0x2a192419,0x2d192f19,0x2418ac19,0x2f192419,0x6e192e19,0x70196f19,0xa918ad19,0xe3188618,0xd41ae41a,0xd91ad41a,0xcd1ae01a,0xcc16d016,0xcc16cd16,0xc416ca16,0xcd180116,0xf816bf16,0xc316c417,0xc416bf16,0xcd16c416,0xc716ca16,0xc416c316,0x32193116,0x30192d19,0x2e193119,0x83198219,0x45198519,0x40194419,0x40193f19,0x44194419,0x47194319,0xbc194619,0x4418be18,0x46194719,0x3f193d19,0xc3194419,0x3a18c518,0x3d193a19,0x44194419,0xbe194619,0xc318be18,0x9193a18,0x3170217,0x6170317,0x26170817,0xc216c518,0xbd16c016,0x26181f16,0xc016c218,0x24181f16,0x21182618,0xb5192319,0x101b0818,0xfc1afc1b,0xfd1b0f1a,0xee1b0e1a,0xfc1b081a,0xe1afd1a,0x1e191c1b,0x10191b19,0x19191819,0x10191819,0xcc191119,0xca17ce17,0x2c17ca17,0xca17c717,0xc917c717,0xcc17cb17,0x117ca17,0x12198f19,0x59195819,0xcc195a19,0x5418ce18,0x5418cc19,0x61195619,0xc918c719,0xcc18c918,0x58195618,0x5e195b19,0x5618c919,0x60195819,0xc9196119,0x5d195e18,0xc9196019,0x5e195818,0x4190319,0x4118fb19,0x3f194019,0xf017f419,0xee17ee17,0xe316de17,0xe916e316,0x517f416,0x6190719,0xd18aa19,0xa190f19,0xd1abf1b,0xc018bd1b,0x62197118,0x76196419,0x7118bd19,0x75196219,0xbb18cd19,0xbd18bb18,0x62196218,0x73197619,0x75197419,0x6218bb19,0x74197319,0x87198819,0xcc197819,0xbf19bd19,0x9190819,0xc190c19,0xa190b19,0x48184a19,0x44184418,0x49184318,0x4b184918,0xca184a18,0xcd18cb18,0x7f18cd18,0x81198119,0x84198219,0xca198419,0x2d18cd18,0x66166a16,0x65166616,0x60166016,0x54165916,0x4b165416,0x47164716,0x4a164816,0x36164a16,0x4a163c16,0x23163c16,0x60166616,0x29165416,0x66162d16,0x29162516,0x47166616,0x23164a16,0x23164716,0x22162716,0x66162516,0x22163e16,0x54166616,0x27164716,0x27165416,0x3e163016,0x54166616,0x30165416,0x8d163416,0x881a8a1a,0x911a881a,0x7f1a901a,0x83198019,0x82198319,0x3a198119,0x3c193b19,0x15198f19,0x65191419,0x76199719,0x3c183f19,0x3b183b18,0x58175218,0x48194217,0x91194719,0xa6199519,0x17181519,0xe616e618,0x1416e016,0x7c197b18,0xbc197419,0xcc19bd19,0xcf19cb19,0x3119c319,0x3c1a4a1a,0x911a901a,0x741a741a,0x951a601a,0xcd19ce1a,0x1d19bf19,0x251b2a1b,0x2b1b251b,0x1e1b261b,0x141b221b,0x261b251b,0x141b1e1b,0x251b1d1b,0x98189d1b,0xcb18cb18,0xc818ca18,0xc019c118,0xc019c519,0xc719be19,0x351a3719,0x591a581a,0x371a5b1a,0xfe17621a,0x6217fa17,0xfd17fa17,0x66180c17,0x7176217,0xc180918,0x7180518,0x62180c18,0x17fd17,0x5180318,0x62180c18,0x3180017,0xb819b918,0xed19ca19,0xd318e518,0xd716d918,0xdc16dc16,0xe116e016,0xe116dc16,0xdb16df16,0xdc16d916,0x241a5316,0x61a281a,0xe019e81a,0x34183219,0x37183718,0xd216d818,0x2f16d216,0xe8183218,0xe419e919,0xe019c819,0xc819e419,0xd219e419,0xcd19e219,0xe619ce19,0xce19e219,0xc819c719,0xc719d219,0xd119d219,0xce19e619,0xd019cf19,0xcf19e619,0xd119c719,0xc719d719,0xdc19d719,0xd019d319,0xe719cf19,0xcf19d319,0xc719c519,0xc519dc19,0xdf19dc19,0xcf19e719,0xc519cb19,0xe319df19,0xe719e319,0xa19cb19,0x1c170b17,0xfa1a0718,0xed19ed19,0xeb19ec19,0xea19eb19,0xe919e919,0x719e819,0xed1a071a,0xfa19eb19,0x4a16f516,0xf7184a18,0x52185216,0xfa16fb18,0x91a0716,0x1a001a,0xf519f61a,0xfa19f519,0xf31a0719,0xef1afa1a,0xe31aef1a,0xf81af81a,0x1af91a,0xef1af31b,0xf31af81a,0xf618f418,0xa3170a18,0xae17ae16,0xb117b017,0x1117b117,0xb1171017,0xf171017,0xae170a17,0xb117b117,0xb170f17,0x47174a17,0xe817e817,0x4c17ea17,0x55174c17,0x4c175417,0x53175417,0xe8174a17,0x4b174c17,0x4c174a17,0x53174c17,0xf5174f17,0xf718f618,0x71aaa18,0xed1aed1b,0xbb1b191a,0x6e187d1a,0xb118b118,0xad18b018,0xe018df18,0xb718d018,0x16171917,0x11171417,0xb717b117,0x14171617,0x1317b117,0x717b717,0x8190919,0x3e1a4019,0x541a541a,0x891a611a,0x391b2d1a,0x341b341b,0x351b3b1b,0x2e1b351b,0x321b321b,0x341b2d1b,0x6b19691b,0x6d196d19,0xc1196e19,0xc418c118,0xc618c618,0x6d196918,0x29193019,0x2b192b19,0x26192719,0x26192b19,0x31192519,0x2b193019,0x31193219,0x2b192b19,0x23192519,0x23192b19,0x34192119,0x2b193219,0x36199a19,0x98193419,0x34199a19,0x2b193419,0x34192119,0x20192119,0x98199919,0x9b193419,0x34199919,0x20193419,0x34191e19,0x1c191e19,0x34199b19,0x9b191c19,0x19191c19,0x8b190719,0xa119a119,0x19199b19,0x1919a119,0x9191819,0xa1190719,0x9190c19,0xa119a119,0x17191819,0x15191619,0xa1198f19,0x16191719,0xc190d19,0xf19a119,0xa1190d19,0x1619a119,0x8f198f19,0xff190119,0xf18ff18,0xc519a119,0x3318a818,0x35193319,0x1a193719,0x1d191b19,0x1f191d19,0xb518b519,0xb818b618,0x1a18b818,0x6191d19,0xa190819,0xb190a19,0xab18ab19,0xaf18ae18,0x618af18,0xf5190a19,0xa418b918,0xa618a418,0xf118f118,0xf518f318,0x53185718,0xa616a618,0x5916a416,0x971a9a18,0xee1a9c1a,0x5517f017,0x4c175517,0xea17ea17,0xe517e817,0xee17e717,0xea175517,0xe717e517,0x63176217,0x62176117,0x5f176117,0xfe175c17,0x5e176217,0x5c175b17,0x5f176217,0xc7175e17,0xc6196818,0x3170618,0x5b185b17,0x51185418,0x51185b18,0x71185518,0x5b170617,0x71185818,0x5b185b17,0x56185518,0x35174d18,0x5e183318,0x1e176e18,0xeb181e18,0xe616e616,0x18181716,0x1816e618,0x5e181d18,0xe6181e18,0x23182116,0xe6185e18,0x21181d16,0xb5177218,0x5a16b916,0x59185718,0x59185a18,0x5d185c18,0x5a186518,0x66177318,0x70185d18,0x73177217,0x5c185a17,0x73177018,0x5a185d17,0x88178e18,0x61176117,0x65176317,0xd116d017,0x89178916,0xcc178517,0x871a8b16,0x51a8f1a,0xab1b061b,0xb01aab1a,0x31b011a,0x51aff1b,0x11aab1b,0x421b031b,0x44194319,0x381b2c19,0x271b391b,0xb91ab71b,0x201ab91a,0x221b221b,0x261b1e1b,0x271b261b,0xd61ab91b,0x6417d817,0x60176417,0x5d175d17,0xd6175a17,0x2a1b2417,0x1d1b1d1b,0x121b131b,0x3519371b,0x38193619,0x37193919,0x1f1a5a19,0xa91a1e1a,0xe61abc1a,0xea1ae61a,0x7b1aeb1a,0x7e170d17,0x12177e17,0xc170e17,0x8170917,0xe177e17,0x8170c17,0x7e177b17,0x52185417,0xf716f718,0x4b184a16,0x4b16f718,0x51184c18,0xf7185418,0x4c16f716,0x24184f18,0x2c1b121b,0xaa17ac1b,0xa817a817,0xab17a717,0xad17ab17,0x3f173f17,0xa817ac17,0x23172117,0xd180d17,0x20180818,0x15172917,0x14181418,0x28181118,0x2d182e17,0x2a182a18,0xd2182f18,0xef17f216,0xbd170917,0x8d189218,0xfc171518,0xfb17fb17,0x1217f917,0xa618a917,0xa418a418,0x86188b18,0x1e171b18,0x4180417,0x1a180218,0xd518d617,0xd718d718,0xd418d318,0xe716d518,0xe517e517,0xcf17e317,0x401a2a16,0x431a431a,0x2e1a2f1a,0x3a1a461a,0x1c1a1c1a,0x441a221a,0xba17a41a,0x3b16bd16,0x331a3d1a,0xb417b81a,0x2616ce17,0xbf171f17,0x2417bf17,0x27172717,0xca172c17,0x2e17ca17,0x2b172b17,0xbf172617,0x2717bf17,0xef17ca17,0xe718f018,0xe416fe18,0xe117e117,0xfb16fa17,0xaf177016,0xd916b516,0xf516f317,0x40184616,0x3d186318,0x3f183c18,0x63184618,0x42183d18,0x46184518,0x3f183d18,0x7d184218,0x50167c16,0x511af616,0x521b521b,0x531b1a1b,0xf61aec1b,0xdd1b521a,0xec1ae71a,0xc31ad31a,0xfb1add1a,0xd31acd1a,0x381b3e1a,0x281b2c1b,0x3e1b431b,0x3e1b281b,0xfb1b2c1b,0xdd1ad31a,0x521aec1a,0xfb1b531b,0xec1add1a,0x281b1b1a,0xfb1b2c1b,0x531aec1a,0x2c1b1b1b,0x121b121b,0x531afb1b,0x217ed1b,0xa1170917,0x9316a016,0xe817a516,0xab16ee16,0xc017a717,0x9e17a116,0x9d179d17,0xb316a717,0xee181e16,0xe516e816,0xe016e116,0xe8181e16,0xe616e516,0x1e16eb16,0xe016e518,0xae16e616,0x3c1ab11a,0x3a1b3d1b,0xae1b411b,0x3d1b3c1a,0x421b411b,0xe11aae1b,0x98179916,0x94179817,0x7116df17,0x4f174b17,0x3c1a3f17,0x4a1a4a1a,0x861a831a,0x8e1a8b1a,0x4a1a3f1a,0x8b1a861a,0x5417531a,0x19177717,0x2f171d17,0x5b177c18,0x9f175e17,0x481aa31a,0x461a481a,0x441a441a,0x9b1a981a,0x9f1a9b1a,0xf21a481a,0xe31af81a,0xe01ae31a,0xe81ae81a,0xf21af71a,0xc819c91a,0x9319bb19,0x68179117,0xc917ad17,0x6416ce16,0x4e185018,0x57185318,0x64185a18,0x53184e18,0x65185a18,0x3b186418,0x23182517,0x21182318,0xbc173a18,0xf116b916,0xf317f117,0xf817f817,0xbc16bf17,0x19171d16,0xb717b717,0xbe17b917,0xbf17be17,0x1f171f17,0xb7171d17,0xd017d317,0xce17ce17,0xcf17cc17,0xd417cf17,0x39173917,0xce17d317,0xd517e717,0x2716de16,0x16171418,0x3217a617,0x2d172d17,0xa1179e17,0xa1172d17,0xa817a217,0x2d17a617,0xa717a417,0x2d17a817,0xa417a217,0x55174217,0x51185118,0x3d184f18,0xd9198a17,0x1818d818,0x35173418,0x37173517,0x4e181d17,0x4d175017,0x4d174e17,0xc2174817,0x4e174917,0x45174117,0x4417c217,0x41174317,0x48174e17,0x41174417,0x4e17c217,0x14181117,0xe016e018,0xd716dc16,0xb16d716,0xd7180818,0xd180816,0xe0181118,0xd716d716,0xe180d16,0x61a0518,0xf419db1a,0xac1af51a,0xa91aac1a,0xf01aeb1a,0xf41ae91a,0xeb1aac1a,0xdd1af01a,0xfa16f517,0x85166a16,0x84168416,0x66166516,0xa4185916,0x616af16,0x41b051b,0xc1b041b,0xed1aed1b,0x61b071a,0xdf16c81b,0xdc17dc17,0xc617db17,0xdc17e016,0xe317df17,0xe817e517,0xdf17e017,0xe817e317,0xe0174617,0x8e188517,0x7a184618,0x89169016,0xcb168916,0xc816c816,0x7a16c616,0xdd1ace16,0x41ac31a,0xb1afe1b,0x4f1b0b1b,0x171b171b,0xc1b181b,0x41b0c1b,0x8e1b0b1b,0xa4199119,0x361b3519,0xb31ab31b,0x301ab51a,0x2e1b331b,0xb31b351b,0x331b301a,0x19181a1b,0x7170718,0x1b170a17,0x2c162d18,0x79163316,0x63183918,0x5a165f18,0x4b167b16,0x81165416,0xd916d716,0xd716d616,0xd416d616,0xb180a16,0xd016d718,0xa16cd16,0xd416d718,0xd116d116,0xa16d016,0x49167418,0x46164416,0x47184518,0x4e184718,0x50185018,0x46184d18,0x621a1118,0xfd166716,0x9c18fa18,0xe218d219,0xe318e318,0xb018e418,0x10164d18,0x141a141a,0x561a171a,0x4d165316,0x611a1416,0x8c1a791a,0xa817a61a,0xaa17aa17,0x3b17ac17,0x3b17aa17,0x35173a17,0xaa17a617,0x3a17aa17,0x42173717,0x281a501a,0x5919571a,0x2f195819,0x141a171a,0x141a2e1a,0x3a1a101a,0x33163816,0x131a1616,0x181a111a,0x121a151a,0x171a191a,0x191a2f1a,0x341a2f1a,0x101a2e1a,0x2a163a1a,0x3a1a2e1a,0x191a1a16,0x1a1a341a,0x321a341a,0x2a1a261a,0x20163a1a,0x3a1a261a,0x1a1a0f16,0xf1a321a,0x311a321a,0x3a1a201a,0x1d163316,0x331a201a,0x311a0f16,0x121a2d1a,0x2d1a0f1a,0x331a1d1a,0x39162c16,0x2c1a1d1a,0x2d1a1216,0x121a271a,0x221a271a,0x2c1a391a,0x37162616,0x261a391a,0x121a1816,0x181a221a,0x1c1a221a,0x261a371a,0x35164016,0x401a371a,0x181a1b16,0x1b1a1c1a,0x3a1a1c1a,0x401a351a,0x30163f16,0x3f1a351a,0x1b1a0e16,0xe1a3a1a,0x381a3a1a,0x3f1a301a,0x2b163916,0x391a301a,0x381a0e16,0x111a361a,0x361a0e1a,0x391a2b1a,0x29163116,0x311a2b1a,0x361a1116,0x111a331a,0x2c1a331a,0x311a291a,0x25162816,0x281a291a,0x111a1616,0x161a2c1a,0x281a2c1a,0x251a231a,0x1f16281a,0x281a231a,0x16162b16,0x2b1a281a,0x241a2816,0x281a1f1a,0x1e162416,0x241a1f1a,0x2b162e16,0x2e1a2416,0x211a2416,0x241a1e1a,0x35163d16,0x21162e16,0x1e1a211a,0x5c163d1a,0x5e195d19,0x131b1219,0x3c1b4f1b,0x411a3f1a,0x271a411a,0xea1a2d1a,0xe918e818,0xeb18e918,0x7b18ec18,0x6170817,0x71170617,0x75177517,0xd177717,0x7b170d17,0xa3170617,0x8e16a216,0x521a2916,0x7d1a551a,0x84178017,0x68178417,0x78177818,0xa9177f17,0x7917a917,0x7a177a17,0x84177d17,0x78178417,0xf617a917,0xe71aec1a,0xdd1ae71a,0xde1ace1a,0xf61b501a,0xce1ae71a,0xa1ade1a,0x216cd18,0x2180a18,0x8180418,0xa180b18,0x4180a18,0x76180618,0x68166b16,0xfe19fb16,0xf719f719,0xfc19f819,0xf419fc19,0xf619f619,0xfd1a0019,0xfb19fd19,0xf719f719,0xf619fc19,0x35163619,0x7d163d16,0x48164a16,0x491b4c16,0xd1b0d1b,0x4d1acc1b,0xc417fb1b,0xf817f816,0xf217f317,0xf217f817,0xf917f717,0xf817fb17,0x351a5817,0x301a301a,0x551a2b1a,0xab17ad1a,0xc216c217,0xc916c516,0x4b164716,0x49168016,0x3a1a381a,0x461a3a1a,0x7c1a481a,0x5a167b16,0x501a5316,0x421a421a,0x601a951a,0x5c1a5d1a,0x421a531a,0x5d1a601a,0x641a661a,0x4e1a4e1a,0x681a4b1a,0x651a671a,0x4d1a4d1a,0x691a5a1a,0x681a6b1a,0x4b1a4b1a,0x591a5b1a,0x691a6a1a,0x5a1a5a1a,0x6c1a571a,0x6e164e1a,0x6d166d16,0x46168816,0x6c1a6d16,0x571a571a,0x531a561a,0x5c1a531a,0x6e1a6e1a,0x571a6d1a,0xa7199a1a,0x5519a519,0x4f1a521a,0x621a4f1a,0x5f1a5f1a,0x551a5e1a,0xa816ad1a,0x6b176b16,0x9180c17,0x9176b18,0x13180f18,0x6b16ad18,0x13181217,0x6b176b18,0x10180f17,0x8a1a8818,0x851a851a,0xa81aa71a,0xff18fe1a,0x1b190118,0x90171c17,0x22179017,0x90172117,0x20172117,0x1b171e17,0xd179017,0x7c177717,0x81177c17,0x87178717,0xd177e17,0x57167217,0xbe165116,0xbb16b816,0x7916bb16,0x7a167a16,0xc116c616,0xbe16c116,0x816bb16,0xfd19fb1a,0x19fd19,0x91a091a,0xe81a071a,0x619e819,0x51a051a,0x31a041a,0xfd1a081a,0x51a0919,0x81a031a,0xe81a091a,0x3f1a0519,0x34163e16,0x821a7016,0x811a811a,0xaf1aad1a,0xaf1a811a,0x751ab21a,0x811a701a,0x7a1a7d1a,0x711a751a,0x7d1a801a,0x721a761a,0x791a711a,0x761a781a,0x8c1a931a,0x9c1a791a,0x931a971a,0xa21aa61a,0x871a9c1a,0xa61a841a,0x8f1a961a,0xaa1a871a,0x961abb1a,0xaa1aab1a,0x961a961a,0xa61a871a,0x9c1aa61a,0x931a931a,0x761a791a,0x711a761a,0x7d1a7d1a,0x811a751a,0xb21a811a,0x7d1ab41a,0xb41a811a,0x931aa61a,0xab1a761a,0xa61a961a,0xab1ab01a,0x7d1aa61a,0xb61ab41a,0xb61a7d1a,0xac1ab81a,0xa61ab01a,0xac1aa91a,0x761aa61a,0xb81a7d1a,0xb81a761a,0xa91aba1a,0x761aa61a,0xba1a761a,0xe71abc1a,0xa918a618,0xb018ad18,0xe618e418,0xa918e718,0xad18a918,0xd418e418,0xe518d318,0xe418a918,0xe518d418,0xa918e618,0xb018d218,0xb118b118,0xcf18bf18,0xd018cf18,0xd118d118,0xb118d218,0x9d1aa018,0x991a991a,0xbb1a961a,0xbb1a991a,0xa41ab91a,0x991aa01a,0xa81a881a,0x741aa41a,0x881a911a,0x731a771a,0x7c1a741a,0x771a7b1a,0x7e1a7f1a,0xad1a7c1a,0x7f1a811a,0xad1aae1a,0x7f1a7f1a,0x771a7c1a,0x741a771a,0x881a881a,0x991aa41a,0xb91a991a,0x881ab71a,0xb71a991a,0x771a7f1a,0xb11a881a,0x7f1aae1a,0xb11ab31a,0x881a7f1a,0xb51ab71a,0x7f1ab31a,0xe51a881a,0xda1adb1a,0xd41ada1a,0xe41ae41a,0xe51aea1a,0xd816d21a,0x37183716,0xda16dd18,0xce16d316,0x37182e16,0xd316da18,0xd2182e16,0x25183716,0x241b2a1b,0x321b241b,0x2e1b2e1b,0x2f1b331b,0x251b2f1b,0xb61b241b,0xc01ab41a,0xbe1abd1a,0xb61ac91a,0xbd1ac01a,0xcb1ac91a,0xc91ab61a,0x2616c516,0x28182618,0x2d182d18,0xce182e18,0xc916ce16,0x3182616,0x11a021a,0xff1a011a,0xfe19fe19,0x819fb19,0x31a081a,0xe01a011a,0xd118e118,0xde17e218,0x64176417,0xdd17d917,0xe117dd17,0x2c17e217,0x27192819,0xe11ae219,0xf11adb1a,0xd019f219,0x211b2919,0xee1aee1b,0xfd1b0e1a,0x371afd1a,0x311b311b,0xee1b291b,0x5416811a,0x3c165916,0x24163d16,0xdc1ad116,0xd91ad81a,0xdc18da18,0xdb18dc18,0xcf18d818,0xcb17cc17,0xae17cb17,0xb116b116,0xcf16b816,0xb61ab817,0xd21acb1a,0xd71ac81a,0xcb1ab81a,0xd71ad21a,0xb81ad81a,0x6c18ab1a,0x4c187018,0x3d173c18,0x66195c17,0x38196019,0x401b441b,0x451b401b,0x3a1b411b,0x341b3d1b,0x411b401b,0x391b3a1b,0x401b381b,0x341b3a1b,0x141b391b,0x201b221b,0x8618ca1b,0xcc198719,0xbf1b0d1a,0xbd1abf1a,0x311ac01a,0x34163916,0x401a3e16,0xe41a2a1a,0xef1ae31a,0xf41aef1a,0xe91ae91a,0xe41af01a,0x791a781a,0xc31a611a,0xc11ad31a,0x101ac21a,0xc31b081b,0xc21ac11a,0xdf1b081a,0x511ac31a,0x1d1a201a,0x1716561a,0xa91a191a,0xb819aa19,0xb819a919,0xb119b919,0xa719a519,0xaf19bb19,0xa719b119,0xb919a919,0xbb19b919,0x8919b119,0x931a8c1a,0xc319c21a,0xed19cf19,0xf519fa19,0xef19f919,0xed19ee19,0xf919f519,0xdc1ad619,0xd51ad11a,0xda1ad01a,0xd11ad61a,0xdb1ad51a,0xd61ae11a,0xda1ad51a,0xb81adb1a,0xda16d317,0xc416da16,0xa517bd17,0xe217e616,0xe117e217,0xe217e417,0xe917e417,0xa517ec17,0xed17e216,0xec16b217,0xe917e217,0xeb17eb17,0xec17ed17,0x31aff17,0xf91af91b,0xf21af81a,0xfe1b021a,0xf91b041a,0x21af21a,0x51b041b,0xff1aff1b,0x21af91a,0x3b19391b,0xc718c519,0xbb19be19,0x8e198b19,0x4619a319,0xaf1b471b,0xad1aaf1a,0xae1aae1a,0x451b421a,0x401b451b,0x461b461b,0xae1aaf1b,0xba19b81a,0x9319c419,0x90172217,0x1c179017,0x18171817,0x81178717,0x81171817,0x91178317,0x90179317,0x91178e17,0x90179017,0x83171817,0x8e178817,0x11179017,0xbe1aca1b,0xbd1abe1a,0xbf1abf1a,0x91b0a1a,0x111b091b,0xa81abe1b,0x34193218,0xf190e19,0x5718ff19,0x55175417,0xf5175517,0x5c175c17,0x57175b17,0x1a181917,0xb716b718,0xad16b016,0x1316ad16,0x16181618,0xb7181918,0x20182216,0x48170f18,0x91b3f1b,0xa1b091b,0xda1b491b,0xe216dd16,0xc516e216,0x2317c417,0x4c1a4d1a,0xbb18961a,0xcd18cd18,0x9818cb18,0x4c1b4b18,0x4d1b4d1b,0xaf1ab21b,0x471aaf1a,0x4b1b4a1b,0xaf1b4d1b,0xf61b511a,0x501b501a,0x4e1ade1b,0x521b1a1b,0x511b511b,0x4e1b501b,0x2717141b,0x22182218,0x11171018,0x51167317,0xf5164916,0xf419f619,0xf319f419,0xf219f219,0xf019f119,0xef19f019,0xf919f919,0xf419f519,0xf219f419,0x3319f019,0x36193419,0xed16b219,0xef17ef17,0xf317f217,0xf117f317,0x316b217,0x170217,0xfb16fe17,0x3185216,0xfe170017,0x5b185416,0xfe170318,0x54185216,0x411a2718,0xaf1a441a,0xae17b017,0xa317ae17,0x6e166d16,0xae17af16,0x31162817,0x7c163016,0x65186418,0x6f186518,0xa1187718,0xab19ac19,0x3b1b3c19,0x441b341b,0x3e1b381b,0x311a4a1b,0x321a321a,0x471a341a,0xf41af51a,0x831aef1a,0xc118c418,0x441b4018,0x3f1b3f1b,0x4a1b481b,0x461b4a1b,0x1b401b,0xb01b011b,0xac1ab01a,0xfa1af51a,0x1af31a,0xf51ab01b,0xbc1afa1a,0x4c194a18,0x51a0419,0x8219d81a,0x60165916,0x3f184216,0x58175818,0x5d175a17,0xc41acf17,0xe81ae81a,0xd91ae01a,0xd41ad91a,0x211acf1a,0x531a241a,0x3b18251a,0xe5173e17,0xbc1ae61a,0xba1abc1a,0x7d1ae21a,0xcd197e19,0x47176018,0x45184518,0x5d184218,0xde1a0217,0x7119e119,0x661a721a,0x6118311a,0x60186018,0x2c182b18,0x33183018,0x60186218,0x30182c18,0x31186218,0x79186018,0x64167816,0x5f166316,0x79167a16,0x63166416,0x31af916,0xab1b011b,0xaa190d18,0x33173018,0x19184117,0x1a191c19,0xd51ac619,0xd11ad11a,0xc81ad71a,0xd21ac81a,0xc91ac91a,0xca1abe1a,0xc61ac71a,0xc91ad11a,0xc71aca1a,0xd11ac71a,0xe41ac81a,0xeb1af01a,0xf718b91a,0xcf18f918,0xbe16b817,0x18164316,0x241a1b1a,0x27192619,0x7818c319,0x1b188218,0x231b1a1b,0x1c1b231b,0x291b291b,0x371b311b,0x291b231b,0x281b371b,0x231b1b1b,0xf71af11b,0xcd1ae81a,0xf11afb1a,0xd31ac11a,0x101acd1a,0xc11ac21b,0xfc1b0f1a,0xf1b101a,0xc11b101b,0xf11acd1a,0xcd1ae81a,0xc41ae81a,0x281b431a,0x431b231b,0x371b231b,0xcd1ac11b,0xf1ac41a,0xc41ac11b,0x371b431a,0xfd1afd1b,0xc41b0f1a,0x4718581a,0x44174a17,0x3f1a411a,0x8e1a3f1a,0x921a921a,0x441a981a,0xad173f1a,0xb817b417,0xc217bd17,0xb4173f17,0x4517b817,0x3f174117,0xc217b817,0x48174517,0x30183317,0x2b162a18,0xb9162e16,0x191abb1a,0x151b161b,0xb91b1f1b,0x161b191a,0x201b1f1b,0x8a1ab91b,0x3d1a8d1a,0x3b1a3d1a,0x2a1a851a,0x22179a17,0x93172217,0x22179617,0x9b179617,0x2a172d17,0x9d172217,0x2d179e17,0x9b172217,0x2f179d17,0xb51b301b,0xb71ab51a,0x2b1b271a,0x2f1b251b,0x271ab51b,0x4a1b2b1b,0xa11a471a,0x831aa51a,0xa71a4a1a,0x3b1a851a,0x491a3b1a,0x481a481a,0xa71aa31a,0x451a471a,0x9e1a9a1a,0x471aa11a,0x65186f1a,0x9e185d18,0xa0169f16,0x116a016,0xff16ff17,0x9d16fd16,0x9e169d16,0x2616a016,0x22162516,0x6b1a6f16,0x591a591a,0x551a581a,0x5e1a551a,0x5b1a6f1a,0x581b571b,0x581b5b1b,0x511b5e1b,0x551f7f1f,0x5b1b5f1f,0x681b5e1b,0x6f1d6d1d,0x6a1b641d,0x9b1b691b,0x991f401b,0x6a1b691b,0x6d1b6c1b,0x6c1b691b,0x991dcb1b,0x701dc51d,0x721b711b,0x701b541b,0x551b721b,0x591b5a1b,0xca1c241b,0x351bbd1b,0xb1f081f,0x71f291f,0x771f061f,0x7b1b741b,0xfa1e0f1b,0x841eba1d,0x7e1f571f,0xce1cc61f,0x271d9c1c,0x2c1d281d,0xd31dd71d,0x121dd91d,0x91c6b1d,0xb21fa11d,0x831f9d1f,0x31cff1c,0x681d631d,0xb1d9f1d,0x251c221d,0x2e1d331c,0xe1d311d,0x111f201f,0x141f251f,0x811f181f,0xee1e001e,0xf1f261d,0xad1f141f,0xac1bc21b,0x91f1f1b,0xec1f1e1f,0xf61ef81e,0xbe1bce1e,0xdd1bc31b,0xdc20391f,0xc91bd01f,0xd01bcc1b,0xc91bcf1b,0xcc1bd11b,0xd11bbc1b,0xcc1bd01b,0xd11bd21b,0xd21bbc1b,0xc51bbc1b,0x11204c1b,0xe0205b20,0xde1bdc1b,0xa71f971b,0xe31f941f,0xde1be01b,0xe31be61b,0x6f1bde1b,0x651f5e1f,0xee1ced1f,0xed1cf01c,0xe61bea1b,0xa31f9d1b,0x641f9a1f,0x5f205620,0xf11e1120,0xec1e0f1d,0x511be21b,0x371bd41d,0x351c361c,0x341f101f,0xbc1d901f,0xe91ca11d,0xd61dbd1d,0x671b611d,0x491b681b,0x45208120,0xf1e0e20,0x2d1e0d1e,0x24203020,0xbe1dde20,0x911dc31d,0x8c1e8d1e,0x6b1f8d1e,0xfe1f691f,0xe41fe61f,0xce1da71f,0x7b1daa1c,0x6a1c681d,0x9b1dac1c,0xfc1cbd1d,0xf91ff71f,0x9e1cd21f,0x301cd11c,0x71f171f,0x5b1e611f,0x291e621e,0x401c3e1d,0xa51dcb1c,0x1c1ca81c,0x1b1f161f,0xe71ce21f,0xb41ceb1c,0xf71dda1d,0x5b1dc21d,0xb01dc61d,0xf91dfb1d,0x7a1bb11d,0xa31b791b,0xa41b891b,0xba1dbd1b,0xa91dc01d,0xaa1b961b,0x5f1d591b,0x241d581d,0x21f181f,0xab1bee1f,0x9a1ca61c,0x3e1c971c,0x41d081d,0xec1c961d,0xa41dfe1d,0xb81eb61d,0x481dfc1e,0x471e461e,0x9d1ba71e,0x11ba81b,0xc41bbb1c,0x2c1e1e1b,0xa71e1c1e,0x941f911f,0x621c751f,0x801d5e1d,0x851c9b1d,0xb91d951d,0xc21db11d,0x6f1f741f,0x861e851f,0xb51e001e,0xb61b971b,0xe41ed81b,0x141ef41e,0xf71cfa1c,0x841e811c,0xd81e831e,0x1e1d181b,0xf01d071d,0x111bf31b,0x151f211f,0x91f1d1f,0xec1f031f,0x13200e1f,0xc1f2920,0xbd1f2a1f,0xb31bca1b,0x8f1fa61b,0x521f921f,0x4f1e511e,0xf31c561e,0xb91cf51c,0x731b9e1b,0x4c1b871b,0x471f411f,0x45204a20,0x971fb420,0xaa1f991f,0xdb1cb11c,0x921dc91c,0x1d1d931d,0x1c1f041f,0xc91bce1f,0xf21bcf1b,0xa31ea41d,0x231d1e1e,0x791be71d,0x781e7b1e,0xd81ecf1e,0x221ec71e,0x211f151f,0xbb1f751f,0xcb1fc61f,0xca1edb1e,0xff1d031e,0x4e1d041c,0x441c471c,0xbb1cb61c,0xa61d9c1c,0xa51d991c,0x131f311c,0x9d1f171f,0xe51bdf1c,0xf61f101b,0x871ef81e,0x861e881e,0x4f1e501e,0xc91e4d1e,0xa81ea51e,0x8a1ba11e,0x961ba21b,0x9b1d141c,0x821db71c,0x6d1d961d,0x7f1f421b,0xa71eae1b,0xb91ea61e,0xc01d781d,0x521be91d,0x7a1d541d,0x7d207e20,0x561e5720,0xb01e541e,0xff1eb11e,0x4b1b8d1d,0x3d1f4c1f,0xa51ba41f,0x541e551b,0x881de71e,0x531f501f,0x841ba01f,0xee1ba11b,0xa51da31d,0x681f7b1d,0xb81f6a1f,0x9e1b9c1b,0x11bfa1b,0xd31d151c,0xd41bc01b,0x6a1d7d1b,0x1c1c6e1c,0xfa1cff1c,0xf41c801c,0x431cf61c,0x75207120,0x191f2320,0x2a1f221f,0x2e1f0f1f,0x21c6a1f,0x161c6b1d,0x141c1f1c,0x121c6f1c,0xd01d1a1d,0xd21d631d,0x731c191d,0xc61d761d,0xc91d911d,0x901ba21d,0x7d1ba31b,0x6b1f4f1f,0x81c801f,0x671c8a1d,0x841c821d,0x511d611c,0x341d641c,0x2f1e2e1e,0x811f441e,0xd11f411b,0x981d8f1d,0x2f1c1e1d,0x801d2c1d,0x861f951f,0x7a1c1f1f,0x831c251d,0x1e851e,0x731cde1e,0x611c721c,0x791f771f,0x41c211f,0xba1cff1d,0x781b731b,0x7c1e781b,0x361dee1e,0x2d1de41e,0x571ccc1e,0xc61c551c,0xc41c101b,0x5d1d661b,0xcd1d6a1c,0x981dd11d,0xcd1ca51d,0xe71d981d,0xcc1dc71d,0xc51d9a1d,0xc11d991d,0x9a1dc51d,0x921d801d,0xbb1c991c,0xb61d9a1d,0xbb1db61c,0xb81cb61d,0xb61db61c,0xb61db21c,0x9b1cb81d,0xb81db21d,0xac1da61c,0xbe1cbd1d,0xbd1da61c,0xa61d9c1c,0xb31cbe1d,0xe61de91d,0xe51dc31d,0xb51dde1d,0xf61df81d,0xf11dd41d,0x241de31d,0x191dd81e,0xa71df01e,0x831daa1d,0x581f701f,0xe11de41f,0xd41dad1d,0xf41dfa1d,0x2a1c2b1d,0xed1bce1c,0xef1dc41d,0x931e981d,0x9f1e921e,0xab1d6b1d,0xfe1da81d,0xe31dfb1d,0x6d20681f,0xe61dad20,0xe11de41d,0xad1da21d,0xf21df31d,0x941dbf1d,0x7f1f7e1f,0x9e1dd91f,0x571ddc1d,0x901d911d,0xc61c1b1d,0x9e1c1e1b,0xa01c201c,0x201e171c,0x581e211e,0x511d641c,0x1b1e2a1c,0x6a1e1a1e,0x701c601d,0x641c611d,0x231c631c,0x251e261e,0xf720021e,0x6f20011f,0x711e701e,0x6a1d691e,0xbb1c191d,0xbc1eac1e,0x81e161e,0xe91e061e,0x2c1e1a1d,0x971e941e,0xa91e961e,0xab1eac1e,0xe41de11e,0x3d1e371d,0xdd1e3f1e,0x9d1e9c1d,0xa11e9b1e,0x9d1e9f1e,0xcc1dea1e,0x9a1dce1d,0xf81e9b1e,0xf91e991d,0xa31e931d,0x941e951e,0xd71e421e,0x7b1e401d,0x131ec41e,0x4a201f1e,0x7f204820,0x811e821e,0x801e7d1e,0x881e7f1e,0x8a1c791d,0x651d001d,0x5d1c621c,0x5e1e5c1e,0x41e131e,0x491e031e,0x481e451e,0x601e561e,0xa01e5f1e,0xf31ea21e,0xb81ddf1d,0x61daf1d,0x15201220,0x5f1dda20,0xfc1e641e,0xf61bf91b,0xf71e6c1b,0x631e6d1d,0x601e5f1e,0x601e621e,0xb41e611e,0xb61eb71e,0x721e771e,0x761e731e,0x6c1df01e,0x3a1c351e,0xf21c3b1c,0x581d511b,0xe71e531d,0x3a1e511d,0x40202e20,0x4d1e4e20,0x421e4c1e,0xea1e4b1e,0x431e4a1d,0xfc1e491e,0xfd1cfb1c,0x441e331c,0x8a1e321e,0x8d1e8c1e,0x921e901e,0x351dfb1e,0x2e1e2d1e,0x711e731e,0x201e701e,0x261c151d,0x381e371d,0xf21de11e,0xa21df31d,0x411ddc1e,0x3c1e401e,0x7b203f20,0x941ded20,0xba1ea61e,0xa91eaa1e,0xf11efe1e,0x3e1eff1e,0x3a1e3c1e,0x7b1d761e,0xff1d7c1d,0xb61eb31d,0x661b861e,0xba1b701b,0xbf1fc21f,0xb31eb51f,0x6c1eb11e,0x6f1e6e1e,0x461ec11e,0x971e441e,0x961ea81e,0x8a1d6d1e,0x741d711c,0x751e791e,0xd91edb1e,0xda1ecc1e,0xd21ecf1e,0xcc1edb1e,0xdd1eca1e,0xcd1edc1e,0xcb1edc1e,0xdf1ecd1e,0xd31ede1e,0xd31edf1e,0xc31ebd1e,0xd61ed81e,0xc61ee01e,0xe11ebf1e,0xbf1ee01e,0xda1ee21e,0xe31ed21e,0xbe1ee11e,0xbf1ee11e,0xe41ebe1e,0xd21ee21e,0xd21ee41e,0xd71ec51e,0xd01ee31e,0xbe1ee31e,0xe51ed01e,0xc51ee41e,0xe51ee61e,0xe51ec21e,0xc21ec51e,0xc21ee61e,0xe71ec41e,0xc41ee61e,0xc41ee71e,0xe81ed41e,0xd41ee71e,0xd41ee81e,0xe81ed11e,0xc81ed11e,0xe81ee91e,0xe01ec81e,0xc61ee91e,0xc81ee91e,0x181ec61e,0x471d461c,0xa61ead1d,0xee1ea51e,0xf81efe1e,0xf51efd1e,0x631ef31e,0x5f1f6e1f,0xc71fa61f,0x1fc21f,0xf41ef11f,0x5020571e,0xfd204620,0xcf1dfa1d,0xf71ef31d,0xf21efd1e,0xf71ef91e,0x8b1f8a1e,0x351f691f,0x941d3e1d,0xfc1eeb1c,0x1f1efb1e,0x91e051e,0x111c0e1e,0x851c0d1c,0x821f5a1f,0x121f381f,0x641f0d1f,0x41d691d,0x161f1a1c,0x151f121f,0xf71efd1f,0x4e1c3c1e,0x1d1d4d1d,0x391f1b1f,0x7c1c2c1f,0x391d841d,0x271f321f,0x2a20251f,0x25203220,0x271e281e,0x3d1ce31e,0x7d1c3c1c,0x811c7e1c,0x291e271c,0x1f1deb1e,0xdc1fed20,0xdf1de31f,0x111daf1d,0x11e021e,0xe31c461e,0x391ce91c,0x381e3a1e,0xbb1f861e,0x661f721f,0x64206720,0xf31e9f20,0xc11df81d,0xd31e311e,0x691e651e,0x4f1df71e,0xea1de71e,0xdd1e3c1d,0xd61de11d,0x271e231d,0xc11c0b1e,0xc41c081c,0xb1cc11c,0xc41c0d1c,0x851c0b1c,0xd81c9b1d,0xc41cc61b,0x111c0d1c,0xd1cc61c,0xd81d891c,0xcc1d8b1b,0xd01fce1f,0x871d191f,0x171d1c1c,0x131ccb1c,0xcb1cd21c,0x1a1c171c,0x171cd21c,0x8e1c901c,0xd71c941c,0x1a1cd21c,0x8e1ca21c,0xf91be11d,0xb01df81d,0x881d8d1d,0x7f1d8a1d,0x7a1d651c,0x531c181c,0xa41d901d,0xa61beb1c,0xa61bee1c,0xa21beb1c,0x8c1ca51c,0x971c931d,0xac1cc01c,0xf11cab1c,0xac1bf51b,0xaf1bf11c,0xf51cac1c,0xaf1bf91b,0xb21bf51c,0xf91caf1c,0xb21bfc1b,0xb41bf91c,0xfc1cb21c,0xb41bfe1b,0xb71bfc1c,0xfe1cb41c,0xfe1cbb1b,0xbc1c021b,0x31cbb1c,0xbc1c061c,0xbf1c031c,0x61cbc1c,0xbf1c081c,0xc11c061c,0x81cbf1c,0xc11fbd1c,0xdd1fc01f,0x3720351f,0x4f1d5320,0x6c1c691d,0x691d531c,0x761e741c,0x5e1e771e,0x5f206b20,0x541feb20,0x96205820,0x81c8f1c,0xa91cae1d,0x4f1c891c,0x56204420,0x6a1e6820,0x721e691e,0x701d5e1c,0x501f8c1c,0x181f891f,0xdb201d20,0x3e1cb01f,0x291c3a1c,0x831d811c,0x5e20561d,0xda205f20,0x711cdd1c,0x521d3f1c,0x401c531c,0x551d3f1d,0x401c571c,0x431c551d,0x571d401d,0x431c5a1c,0x461c571d,0x5b1c5a1d,0x301d1b1c,0x1b1c321c,0x301d161d,0x321d1d1c,0x1d1c341c,0x321d1b1d,0x471c611c,0x491c5b1d,0x611d471d,0x491c631c,0x1f1c611d,0x341d1d1d,0x491d4a1c,0x5c1c631d,0x601c041d,0x4a1c661d,0x241c631d,0x3e1c3b1d,0xbf1def1c,0x2b1df21d,0x401d291d,0x2b1c441c,0x2d1c401d,0x471c441d,0x2e1c491c,0x311c471d,0x491d2e1d,0x311c4c1c,0x341c491d,0x4c1d311d,0xb81dd61c,0x361ddb1d,0x4d1c4c1d,0x361d381c,0x521c501d,0x501d381c,0x381d3a1c,0x91c521d,0x81e061e,0x11d171e,0x751c071c,0x5c1f601f,0x761f4e1f,0xd61f781f,0xd91bef1c,0x651f6d1c,0xf21f681f,0xef1cd91b,0x1cea1b,0xf11c051c,0x5d1cfc1c,0x191e211c,0x131e181e,0x301c2d1d,0xe71ca21c,0xb1ca41b,0xf1c271d,0x741d6f1d,0xaf1d781d,0x7c1b821b,0x4d20851b,0xc8204420,0x9c1cc51c,0xc81bdb1c,0x1f1c9c1c,0x211c3b1d,0xc81ccd1d,0xd91bdb1c,0xdb1ccd1b,0xcd1ccf1b,0xd31bd91c,0xc71bc51b,0x871d881b,0xd71c741d,0x9f1c201c,0xf21cdd1c,0xcf1bf41b,0xd31be51c,0x181c171c,0x6f1d501c,0xe0207320,0x111cca1f,0xd41c131c,0xe51cd31c,0xa31c7d1b,0xe81c7c1c,0xe51cd41b,0xd41cd61b,0xd61be81c,0xec1be81c,0x811ca31b,0x7c1ca71c,0x711fbd1f,0xa71c851f,0x851c811c,0xa71ca91c,0x611c4b1c,0x891d5c1d,0x861ca91c,0xae1c8d1c,0xae1c891c,0xb31c901c,0x761f7a1c,0x911fcd1f,0x901cb31c,0xb31cb51c,0x931c911c,0x911cb51c,0xb51cba1c,0x151c931c,0x24201a20,0xed1efb20,0x9a1eeb1e,0x971cc01c,0xc01cc31c,0xc51c9a1c,0x9c1c9a1c,0x1cdf1c,0x751ce61c,0x681c651d,0x731d751c,0x851c651d,0x961d8c1d,0x6c1d551d,0x521c6d1c,0x3d1d4e1d,0x521c411c,0xee1c3d1d,0x2a1d231b,0xf01ce91d,0x1c511c,0x6b1d011d,0x101d191c,0x591d201c,0x5c1c481d,0xd61c5f1d,0x831cda1c,0x741c6f1d,0x5c1c4b1c,0xbc1c481d,0xbb1e0a1e,0x4f1c671e,0x761d4a1d,0x801c731c,0x401c091c,0x371d431d,0xa1f0d1f,0xec1ced1f,0xee1f3c1c,0x3c1ced1c,0xee1f3d1f,0xf21f3c1c,0x3d1cee1c,0xf21f3e1f,0xf31f3d1c,0x3e1cf21c,0x3e1cf51f,0xf51f3f1f,0x3e1cf31c,0xf51cf81f,0xdd1f3f1c,0x3f1cf81b,0xf81cf91f,0xdc1bdd1c,0xdd1cf91b,0xdc1cfb1b,0xfb1be01b,0xdc1cf91c,0xfb1cfd1b,0xde1be01c,0x2620221f,0x2c1d0f20,0xb61d131c,0x9c1b981b,0xe11d8b1b,0x91d8e1b,0xf31d071d,0x91bf81b,0xd1bf31d,0xf81d091d,0x1f20361b,0xe203820,0xfa1bf81d,0x1a1d151b,0xb71d121d,0x7f1d781d,0xfa1bbb1d,0x281bac1b,0x1b1d261d,0x281c1e1c,0x1c1b1d,0x111ff520,0x49203d20,0xc0203e20,0xd51ed61e,0x651fe51e,0x24206720,0x231d2f1c,0x2f1d321c,0x261c241d,0x241d321c,0x321d351c,0x281c261d,0x261d351c,0x351d371c,0x2a1c281d,0x281d371c,0x371d391c,0x2b1c2a1d,0x2a1d391c,0x391d3b1c,0x2e1c2b1d,0x2b1d3b1c,0x2e1d411c,0x411c2f1c,0x2e1d3b1d,0x411d421c,0x311c2f1d,0x2f1d421c,0x421d441c,0x331c311d,0x311d441c,0x441d451c,0x361c331d,0x331d451c,0x451d481c,0x371c361d,0x361d481c,0x481d4b1c,0x391c371d,0x371d4b1c,0x391d4c1c,0xea1d4d1c,0xe61be31b,0x651b5f1b,0xab1b641b,0xb11d951d,0xad1b911d,0x7d1bac1b,0xb21bb31b,0x3c1c031b,0xa61c091d,0xa71b761b,0x821d791b,0x811d781d,0x411b871b,0x991f431f,0x2f1f401b,0x341ece1e,0xe21e151e,0x461e041d,0x851b881f,0x7e1b771b,0x941f441b,0x451f431b,0x941b931f,0x771f451b,0x471f441b,0x451b931f,0x8e1f481f,0x481b931b,0x771b741f,0x741f471b,0x4a1f471b,0x481b8e1f,0x5c1b5d1f,0x5d1b8e1b,0x741b751b,0x931f4a1b,0xbb1fbe1f,0x691cdc1f,0x741c671c,0x5e1f5a1f,0x8a1e891f,0x611e881e,0x601f461f,0x671b6f1f,0x8e1f531b,0x911e901e,0x8120441e,0x73202d20,0x6e1f5f1f,0x1e1e1b1f,0x381e1c1e,0x3f1ca71c,0xc01bd51c,0x5b1b9f1b,0x5d1f871f,0xb61cac1f,0x281cdb1c,0x10201920,0x3a1d3820,0xa81d3c1d,0xa91b9a1b,0x281f291b,0x681f2f1f,0x6e1b6f1b,0x7a1baf1b,0x3f1bb01b,0x7e207f20,0x291d2a20,0x621d2b1d,0x8a1f871f,0xfb1bf41f,0x791cdf1b,0xb11bb21b,0x7a1f6c1b,0xae1f7b1f,0x821b8c1b,0x8f1f741b,0x981f851f,0x9a1f801f,0x7f1f991f,0x7d1f9b1f,0x9d1f8b1f,0x8c1f9c1f,0x9f1f9e1f,0x801b781b,0x851f891b,0xcc1fa01f,0xd01ed71e,0x981f961e,0x8e1fa41f,0xa51f8f1f,0xa41f961f,0x8e1fa81f,0xa91fa51f,0x961f951f,0x811fa81f,0x871f911f,0x8e1fa01f,0x951fa91f,0xaa1fa81f,0x421c9d1f,0xb71d441d,0xba1fda1f,0xa91fa01f,0x9f1fad1f,0xad1fa01f,0x911f901f,0x301fac1f,0x321e331e,0xad1f9f1e,0x901fae1f,0xaf1fac1f,0x9f1f9e1f,0xa11fae1f,0xaf1f901f,0xae1f9e1f,0x9c1fb01f,0xb01f9e1f,0xb01f9c1f,0x9b1fb11f,0xb11f9c1f,0xb11f9b1f,0x991fb31f,0xb31f9b1f,0xb31f991f,0xc21fb41f,0x501c521c,0xb51fb81c,0xb81fb61f,0xb91fb61f,0xb81fbd1f,0xae1fb91f,0x3f1cb91c,0xc01fc41c,0xa41fc11f,0xa51b831b,0xed1bf31b,0x3b1bac1b,0x3a1f371f,0xc11fc41f,0xc61fc81f,0xc91fc51f,0xc41fca1f,0xca1fc81f,0xcb1fc81f,0xc61fcc1f,0xcd1fc91f,0xcb1fca1f,0x661b711f,0xcd1b6b1b,0xcf1fcb1f,0xcd1fd11f,0xd11fcf1f,0xd21fcf1f,0xd01fd31f,0xd31fce1f,0xd41fce1f,0xd11fd51f,0xd51fd21f,0xd61fd21f,0xd31fd71f,0xd71fd41f,0xd81fd41f,0xd51fd91f,0xd91fd61f,0xda1fd61f,0xd71fb51f,0xb51fd81f,0xb61fd81f,0xdb1fee1f,0xdb1fa81f,0x171e061d,0x11de31e,0xe71e031e,0xba1fe51f,0x16200c1f,0x69201720,0x601c051d,0x6020561d,0xef206120,0xe81ffb1f,0x5f1d581f,0x331c001d,0x3a1f301f,0x31e121f,0x961e021e,0x141d0f1c,0x591e5e1d,0x141e5d1e,0x17200d20,0x21f2320,0x201f051f,0x63202f20,0x8b1bb320,0x6e1bb41b,0x551b561b,0xa20031b,0xe200920,0xb1e0a1e,0xe31cfd1e,0x41d011b,0xea200920,0xa21ddd1f,0x7e1de01d,0x811c6f1d,0x1120001d,0x8e201020,0x8f1e921e,0x6c20721e,0x46206b20,0x51205220,0xb91dfc20,0xf11eba1e,0xfe1ff21f,0x1c20171f,0x63201820,0x621b661b,0x5c1f701b,0x211f581f,0x16201b20,0x931faa20,0x731f951f,0x74207720,0xf41ff520,0x83203a1f,0x801f4f1f,0x4b1b881f,0xd91b8f1f,0xe31eeb1e,0xc51fbb1e,0xf41fc61f,0x1f011e,0x201f2b1f,0x81f1f1f,0xd200720,0xef1c0c20,0x141cea1c,0x1e1d1d1d,0x3420311d,0x6b203620,0x691df71e,0x6520611e,0xf9206220,0xfa1eed1e,0xd51ebd1e,0xe01edf1e,0x7820771f,0xf61eea20,0xc21efc1e,0xba1cb51c,0xf11ff01c,0xda203b1f,0x651e661d,0x311e401e,0x891e301e,0x8e1c871c,0xdf1be91c,0x541d481b,0x421c411d,0x20203a1c,0x3b201120,0x7a207b20,0xf61c1420,0x551c0c1c,0x571f7e1f,0xca1dff1f,0x7d1dc81d,0x7c1fe120,0x80208320,0x54204c20,0x461c431d,0x7b1ba51c,0x261ba61b,0x2b1f221f,0x681e651f,0x211e671e,0xe41d251d,0x861c301b,0x591c351d,0x541f761f,0x9f1ce01f,0x5a1ba01b,0x591b621b,0xa91d971b,0xd31dae1d,0xcd1edd1e,0x66206e1e,0x76206f20,0x71207020,0x791f6420,0x271f7c1f,0x2c202120,0xf31db520,0x711dbf1d,0x72207c20,0x79207c20,0x53207820,0x20201120,0x2c1fe220,0xee203220,0x7d1e7e1d,0xa1f361e,0xb41f081f,0xb51b921b,0x8f1c8a1b,0x1a1d741c,0x1200b20,0x59205d20,0x53205820,0x881f851f,0x6d20671f,0x57206820,0x5e1c701d,0x141fee1d,0xaf201720,0xa71dff1e,0x8f1d771e,0x341c921c,0x331f131f,0x981fa31f,0x921f9a1f,0x941d621d,0x951bab1d,0x2b1bac1b,0x32203320,0xdc1ddd20,0x621d9e1d,0x701d731c,0xfd20041d,0x4b1ffb1f,0xea1e4c1e,0xfb1ffa1d,0x161ff91f,0x1c201d20,0x2b1deb20,0x11e2a1e,0x61bf01d,0x4d1b751d,0x561b9b1f,0x5a1e591e,0xb41df51e,0x801df71d,0x11201020,0x751ff620,0x4c202f20,0x85204d20,0x7c1d8a20,0x711ca31c,0x761fc41f,0x771cea1f,0x7a1c711c,0x761d621c,0x601b5c1c,0x481b611b,0xeb205120,0x6f1fbc1f,0x541fb71f,0x5f1ccf1c,0x5d1fe71c,0xd3206120,0x7c1fd71f,0x6d1fd91f,0xcc1f7a1f,0x791fd01f,0x8f1da11f,0xd21dd51d,0xcf1c311b,0x541b581b,0x8b1b721b,0xa11f871f,0x8c1f511f,0x951f7f1f,0x681d6b1d,0x941d681d,0x681d651d,0x671d651d,0x951d6f1d,0x6d1d681d,0x6f1d6e1d,0x671d681d,0x641d6d1d,0x6a1b651b,0x4d1b9b1b,0xcb1f401f,0x991ca81d,0x561b551d,0x231b5a1b,0xca1c1e1c,0xbf1bca1b,0xc81bc81b,0xbd1bcd1b,0x281bbd1b,0x241c261c,0xca1c231c,0x261bbd1b,0xca1c241c,0xbd1bc81b,0x361f351b,0x291f081f,0x71f301f,0x781b801f,0x731b731b,0x9c1b9e1b,0x5f1b9c1b,0x9c1b641b,0x691b641b,0x731b801b,0x8a1b9c1b,0x801b841b,0x901b891b,0x7b1b8a1b,0x891b831b,0x761b9d1b,0x961b7b1b,0x9d1b9a1b,0x951b911b,0x821b961b,0x911b8c1b,0x7c1b681b,0x611b821b,0x821b681b,0x911b821b,0x891b961b,0x801b8a1b,0x9c1b801b,0x801b691b,0x6d1b691b,0x611b5c1b,0x8e1b821b,0x821b5c1b,0x6d1b801b,0x801b7f1b,0x851b7f1b,0x821b8e1b,0x931b961b,0x961b8e1b,0x851b801b,0x891b881b,0x881b801b,0x931b941b,0x991b961b,0x961b941b,0x881b891b,0x891b8f1b,0x8d1b8f1b,0x961b991b,0x9b1b9d1b,0x9d1b991b,0x8d1b891b,0x891b871b,0x811b871b,0x9b1b751b,0x741b9d1b,0x9d1b751b,0x891b7b1b,0x7b1b811b,0x7e1b811b,0x9d1b741b,0x7b1b7b1b,0x771b7e1b,0xab1ea91b,0xbb1ebb1e,0xd1e0a1e,0xf11e0f1e,0xbb1df41d,0xf1e0d1e,0xa91eba1e,0xfa1ebb1e,0xba1dfc1d,0xf41e0f1e,0xba1dfa1d,0xf1ebb1e,0x811f7e1e,0x841f841f,0x571f5b1f,0xbf1d9c1f,0x9c1cc11c,0xc41cc11d,0x9d1cc71c,0xce1d9c1d,0xc71cc91c,0xca1cc61c,0x9c1cce1c,0xc61cc41d,0xc71cce1c,0x301d9c1c,0x271c8e1d,0x871d271d,0x271d221c,0x261d221d,0x301d2c1d,0x271d271d,0x281d261d,0xce1dd71d,0xd1dd31d,0x121d0e1d,0xc1d121d,0x6b1c6b1d,0x71d061c,0xd1d091d,0x6b1d121d,0x91d071c,0xaf1fa11d,0x31fb21f,0x8b1d081d,0x881c8b1c,0x831c831c,0xf71c801c,0xf71c831c,0x31cfa1c,0x831c8b1d,0xfa1c831c,0x9f1cff1c,0x631dd21d,0x941d631d,0xb1d681d,0x221d041d,0xff1d341c,0x331d331b,0x2d1bf61d,0x2d1d331d,0x311d2e1d,0x331d341d,0x1f1f0e1d,0x251f201f,0x141f261f,0x7f1e7d1f,0x811e811e,0x1e831e,0xec1e001e,0xee1dee1d,0x811e7d1d,0x2e1f261e,0x1f1f0f1f,0x91f0e1f,0xee1eec1f,0xdd1ef81e,0x3920381f,0x55204e20,0x4c204c20,0x11208020,0x53201120,0x5b205b20,0x4c204e20,0xa21f9720,0x6f1fa71f,0x5e1f741f,0xeb1cf01f,0xf01ce81c,0xec1ce81c,0xf11cee1c,0xf01cf01c,0xed1cec1c,0xb21f9d1c,0xf1fa31f,0x111e101e,0x11e111e,0xe81df11e,0xe21be51b,0xe91be21b,0x511d511b,0xec1bef1d,0xe81bec1b,0xd21be21b,0xd41bd31b,0xd51bd41b,0xd41c3c1b,0x391c3c1b,0xd21c331c,0x361bd41b,0xd41c331c,0x391bd41b,0x351c371c,0x101f0b1f,0xa01ca11f,0x901d901c,0xbc1dc21d,0xeb1dd61d,0xe91de91d,0xbd1dba1d,0x601b611d,0xe1b671b,0xf1e101e,0x2320291e,0x2d202d20,0x3d208120,0x34203020,0x2d202420,0x30203d20,0x29202420,0xde202d20,0xbe1dda1d,0x901e911d,0x8d1e8d1e,0x6b1f7d1f,0x7f1fe41f,0xfe1ffe20,0xe61ff21f,0xc91da71f,0x7b1cce1c,0x681d751d,0xb21dac1c,0xfc1d9b1d,0xf720431f,0xce1cd11f,0xd11cca1c,0xcb1cca1c,0xd51c9e1c,0xd71cd11c,0x9e1c9f1c,0xcb1cd11c,0xd21cd21c,0x9e1cd71c,0x311f301c,0x611f171f,0x5b1e5c1e,0x241d291e,0xcb1c3e1d,0xa51dcd1d,0x41f1c1c,0xeb1f161f,0x451ce91c,0xe31c451c,0xe21ce21c,0xe41ce11c,0xe41ce21c,0xeb1ce51c,0xe21c451c,0xe81ce71c,0xe21ceb1c,0xe71ce51c,0xbe1db41c,0xc21dda1d,0x5b1d901d,0xa81db01d,0xb11dfb1d,0x7a1bb01b,0x901ba31b,0xb21b891b,0xa61dac1d,0x9c1da61d,0x9d1d9d1d,0xc91cc71d,0xa71cc91c,0xc91da51d,0xa31da51c,0x9d1da61d,0xb61cc91d,0xa61db21d,0xbb1dc11d,0xcb1db61d,0xc11dc51d,0xcd1dd11d,0xa11dcb1d,0xd11dd51d,0xa91dae1d,0xc01da11d,0xae1db71d,0xb91db11d,0x9f1dc01d,0xb11dab1d,0xd21dd01d,0xc61d9f1d,0xd01dc91d,0xc21dbc1d,0x9e1dc61d,0xbc1ca11c,0xd51cd11d,0xaa1c9e1c,0xd11cce1d,0xaa1db41c,0xd11cd11d,0xbc1c9e1c,0xa11dae1d,0xd11dd11d,0xc11dcb1d,0xb61dc11d,0xa61da61d,0xa31cc91d,0xa31da61d,0xb41da41d,0xbc1cd11d,0xb41dbe1d,0xa61dbc1d,0xa81da41d,0xa81da61d,0xbe1db01d,0xc61dbc1d,0xbe1dc31d,0xa61dc61d,0xb51db01d,0xa61dc11d,0xc71db51d,0xc61dc31d,0xc71dcc1d,0xc11dc61d,0xbf1db51d,0xbf1dc11d,0xcc1dc41d,0xd01dc61d,0xcc1dce1d,0xc11dd01d,0xc81dc41d,0xc81dc11d,0xce1dca1d,0x9f1dd01d,0xce1dd31d,0xd11d9f1d,0xca1dc11d,0xca1dd11d,0x9e1dcf1d,0x9f1dd31d,0x9e1da21d,0xd11d9f1d,0xd41dcf1d,0xd41dd11d,0xa21da01d,0xb11d9f1d,0xa21dad1d,0xae1db11d,0xa01dd11d,0xa01dae1d,0xb31daf1d,0xb11dad1d,0xb31dba1d,0xae1db11d,0xb81daf1d,0xb81dae1d,0xba1dbd1d,0xc01db11d,0xae1dc01d,0xa91dbd1d,0x961b9a1b,0x541d561b,0x591d591d,0x5f1d5c1d,0x5a1d5f1d,0x581d581d,0x591d561d,0x251f241d,0xee1f181f,0xab1bf11b,0x951c971c,0x941c941c,0x3e1c981c,0x9d1d3e1d,0x3e1bdb1c,0x9c1bdb1d,0x941c971c,0x3e1d3e1c,0x9a1c9c1d,0xa1c961c,0x81d081d,0x41d031d,0xb1d041d,0xa41c961d,0xec1da31d,0x1dec1d,0xb61dfe1e,0xb81eb71e,0x451e481e,0xa71e461e,0x9d1b761b,0xfd1c011b,0xbb1bbb1b,0xc41bcb1b,0x71bc41b,0x1e1c011c,0x2c1ece1e,0xac1fa71e,0x5e1f911f,0x751c721d,0x761c751c,0x801d621c,0x9b1c991d,0x721d951c,0x6f1db91d,0xc21fbf1f,0xc71fc21f,0x851f741f,0x861e871e,0x921bb51e,0xde1b971b,0xd51edf1e,0xd61ed51e,0xd81ed81e,0xe21eda1e,0xe51ee41e,0xe71ee61e,0xe91ee81e,0xe11ee01e,0xe01eed1e,0xf01eed1e,0xe21ed81e,0xea1ee41e,0xdd1edc1e,0xea1eec1e,0xe91edd1e,0xf01ee01e,0xf01ee91e,0xec1ef21e,0xde1edd1e,0xec1eee1e,0xe71ede1e,0xf21ee91e,0xf21ee71e,0xee1ef31e,0xd51ede1e,0xee1eef1e,0xe61ed51e,0xf31ee71e,0xf31ee61e,0xef1ef51e,0xd81ed51e,0xef1ef11e,0xe41ed81e,0xf51ee61e,0xf11ef41e,0xe41ed81e,0xf41ef51e,0x1c1c141e,0x811cfa1c,0x841e821e,0xe11d1e1e,0xd81bd61b,0x181c9b1b,0xd61d1e1d,0x181bd81b,0x1e1bd71d,0x61d071d,0x111bf01d,0x211f201f,0x1e1f1d1f,0x131f091f,0xec201420,0xea1fec1f,0xe200a1f,0x13200820,0xa1fec20,0x29200e20,0xc1f061f,0x9f1bba1f,0xc01bc01b,0xc51bc71b,0xbc1bc51b,0xcc1bcc1b,0xc31bc91b,0xbe1bc31b,0xbd1bbd1b,0xc81bcd1b,0xbf1bc81b,0xca1bca1b,0xc11bc61b,0xc41bc11b,0xbb1bcb1b,0xad1bc21b,0xad1bbb1b,0xbd1bae1b,0xca1bc81b,0xc31bcc1b,0xc01bbd1b,0xcc1bc51b,0xba1bb91b,0xb81bc01b,0xc01bb91b,0xbb1bcb1b,0xcb1bae1b,0xaf1bae1b,0xc01bb81b,0xb71bcc1b,0xcc1bb81b,0xaf1bcb1b,0xc11bb01b,0xb01bcb1b,0xb71bb61b,0xb61bcc1b,0xbd1bcc1b,0xb01bc11b,0xc11bb11b,0xb21bb11b,0xb61bb51b,0xb41bbd1b,0xbd1bb51b,0xc11bca1b,0xb31bb21b,0xbd1bb41b,0xb21bca1b,0xa61bb31b,0x8f1fa51f,0x531e521f,0x5e1e511e,0x561c591c,0xf11c561c,0x561cee1c,0xf21cee1c,0x5e1cf91c,0xf81c561c,0x561cf91c,0xf21c561c,0xf51cf31c,0x561cf81c,0xb81bb91c,0x871b9e1b,0x4c1b8d1b,0x4f20451f,0x46204620,0x47205120,0x48204720,0x4a204a20,0x45204920,0x46204520,0xb4204720,0x971fa21f,0xd01d931f,0xc91dc91d,0x921d911d,0x31f1d1d,0xce1f041f,0xc91bc31b,0xa21df21b,0xe71ea41e,0x1e1be11b,0xe41d1e1d,0x231d231b,0xe71beb1d,0x7a1e791b,0xcf1e7b1e,0xd81eda1e,0x191f221e,0xcc1f151f,0x751f771f,0x721f751f,0xc61fbb1f,0x751fcc1f,0xdc1ecb1f,0x441edb1e,0xb91cb01c,0x4a1cb91c,0x4e1c4e1c,0x4c1c4d1c,0x4c1c4e1c,0x441c491c,0x4e1cb91c,0x491c4e1c,0x9b1c471c,0xb61cb81d,0xb21cb61c,0xb61cb41c,0xb71cb41c,0x9b1cbd1c,0x9c1cb61d,0xbd1cbe1d,0xbf1cbc1c,0xb61d9c1c,0xbb1cb71c,0xbc1cbb1c,0x9c1d9c1c,0xb61cbd1d,0xab1ca61c,0xaa1cdb1c,0x991d9a1c,0xdb1ca61d,0xa51caa1c,0xa61ca41c,0xa81d991c,0xa61ca51c,0x991caa1c,0x331f311d,0xd91f131f,0x9d1bdb1b,0xda1c9d1c,0xdf1bdf1b,0xe51be21b,0xd91be51b,0xff1c9d1b,0xf1f141e,0xf1eff1f,0x121f0c1f,0xfb1efa1f,0x121f0d1e,0xfe1efb1f,0xc1eff1e,0xc1efe1f,0xd1f061f,0xfc1efb1f,0xd1f0a1e,0xfe1efc1f,0x71f061e,0x71efe1f,0x81f171f,0xfc1f0a1f,0x81f0b1e,0xf81efc1f,0x171efe1e,0x171ef81f,0xb1f131f,0xf61efc1f,0x131ef81e,0x101f101f,0xf61f0b1f,0x891e871e,0x501e881e,0x4f1e521e,0xad1ec91e,0xa11ea51e,0x8a1b841b,0x921c991b,0x961c961c,0x141d101c,0x181d141d,0x9b1c9b1d,0x961c991c,0xae1d961c,0xb71db71d,0x821d7f1d,0x6c1b6d1d,0xae1f421b,0xa71eaf1e,0x721db91e,0x561d781d,0xe91d511d,0x4c1be91b,0xe91d4d1d,0x4e1d4d1b,0x561d541d,0xe91be91d,0x521d4e1b,0x7c207d1d,0x7a207a20,0x7e207b20,0x581e5720,0xb01e561e,0xb11eb21e,0x8f1b8d1e,0xa61f4b1b,0xa81ba71b,0xab1baa1b,0xa91bed1b,0xed1baa1b,0xa01ce11b,0xe11ba11b,0xa21ba11c,0xed1ba91b,0xa91be61b,0xde1be61b,0xe11ce41b,0xe51ba21c,0xa21ce41c,0xa91ba81b,0xa81bde1b,0xdc1bde1b,0xa21ce51b,0xe71ba31b,0xa31ce51c,0xdc1ba81b,0xa61bdd1b,0xdd1ba81b,0xa31ce71b,0xe81ba41b,0xa41ce71c,0xdd1ba61b,0xa61f3f1b,0x3e1f3f1b,0xe81cec1f,0x3c1ba41c,0xa41cec1f,0xa61ba51b,0x3d1f3e1b,0xa41f3c1f,0x3e1ba51b,0x551f3d1f,0x541e571e,0x891f881e,0xa01f501f,0x841b801b,0xf01da51b,0xee1dee1d,0xa31dec1d,0x6d1f7b1d,0xb81f681f,0x9c1bb71b,0x111d151b,0xfa1bfa1d,0x11bfd1b,0xc71bd31c,0x6e1bc01b,0x7d1d7e1c,0x7b1d7d1d,0x1c1c6a1d,0xff1c211c,0xf71cf61c,0x801c801c,0xf41c7b1c,0xef1cf41c,0xf61cf61c,0x431ff71f,0x3b204320,0x71207120,0x75207020,0xf6207520,0x2320431f,0x191f051f,0xc1f2a1f,0x681f0f1f,0x21c651c,0x51d021d,0x6b1c6b1d,0x6e1d0c1c,0x681c6a1c,0x6b1d021c,0x6a1c6e1c,0x691c0f1c,0x161c161d,0x1f1c191c,0x211c1f1c,0x141c1c1c,0x161c0f1c,0x1c1c1f1c,0x1a1c141c,0x741c791d,0x6e1c6f1c,0x1a1d0c1c,0x6f1c741d,0x781d121c,0x6f1d1a1c,0x121d0c1c,0x931dd01d,0x761d631d,0x191c1f1d,0x6c1c191c,0x731d701d,0x761d751d,0x701c191d,0xc61d731d,0x911d5b1d,0x8a1ba21d,0x7d1b901b,0x4f1f801f,0x821c841f,0x801c801c,0x881c831c,0x8b1c881c,0x81d081c,0x8a1c8c1d,0x841c8a1c,0x801c801c,0x81c881c,0x6d1c841d,0x671d671d,0x821c7f1d,0x4f1d611c,0x341c511c,0x2e1e351e,0x7e1f441e,0xd11b811b,0x8f1dd51d,0x281d2c1d,0x1e1c1e1d,0x2f1c231c,0x831f861d,0x801f801f,0x951f961f,0x931f951f,0x221f861f,0x1f1c211c,0x761c1f1c,0x7a1d7a1d,0x271d7c1d,0x221c251c,0x7a1c1f1c,0x251c271d,0x841e831c,0x701e851e,0xde1c6d1c,0x711cde1c,0x731c731c,0x721c751c,0x701c721c,0x791cde1c,0x611f661f,0x751f611f,0x211f771f,0x41c221c,0xb91bba1d,0x781b731b,0x7c1e7b1e,0x371e361e,0x531de41e,0xcc1c541c,0x5c1ccc1c,0xcc1c5b1c,0x5a1c5b1c,0x531c551c,0xcc1ccc1c,0x571c5a1c,0xc11bc41c,0xc61bc61b,0x101c151b,0x71c101c,0x661bc41c,0x5d1c581d,0xe81dcc1c,0xe71de71d,0xc71de51d,0x791d801d,0xbb1c921d,0x9a1dc11d,0xba1db31d,0xc31de91d,0xe51dc71d,0xb01db51d,0xe31df81d,0xd41da01d,0xf41dd41d,0x191df11d,0x241e221e,0x231e241e,0xaa1dd81e,0xf01df51d,0xa51df01d,0x581da71d,0x831f521f,0x861f831f,0xd41f701f,0xfa1dcf1d,0x281c2a1d,0xbd1bbd1c,0xce1bbe1b,0xcf1bce1b,0xce1c2f1b,0x2e1c2f1b,0xbd1c2a1c,0xce1bce1b,0x2b1c2e1b,0xc81ded1c,0x981dc41d,0x931e991e,0x681d9f1e,0xa81d6b1d,0xfe1da41d,0x6e206d1d,0xe31fe320,0x681fe51f,0xb31dad20,0xe11de61d,0xa21de01d,0x971f7f1d,0x941f941f,0x7e1f811f,0xd31dd91f,0x571d9e1d,0x5d1d5e1d,0x921d5d1d,0x911d911d,0x901d5b1d,0x551d901d,0x571d571d,0x911d5d1d,0x151c1b1d,0xc61bc61c,0x1e1bca1b,0xa11ca01c,0x9e1c9e1c,0x201c9f1c,0x501c201c,0x211ca01d,0x171e181e,0x1f1e171e,0x581e201e,0x641d661c,0x2b1e2a1d,0x701e1b1e,0x6a1d6c1d,0x5d1d6a1d,0x601c601c,0x701c621c,0x5b1c611d,0x5c1c5c1c,0x641c5f1c,0xd81c641c,0x641c671c,0x661c671c,0x5c1c611c,0x641c641c,0x631c661c,0x241e231c,0x21e261e,0xf8200720,0xf91ff81f,0xf71ff71f,0x11ff61f,0x6200120,0x2200c20,0xf71ff820,0xc20011f,0x6f200220,0x701e6e1e,0x161c191e,0x691d691c,0x6a1d661d,0x6c1d6a1d,0xbb1c191d,0xac1eab1e,0x151e161e,0x2d1e081e,0xe61de41e,0xeb1de91d,0x2d1e2a1d,0xe91de61e,0x2f1e2c1d,0x2e1e2e1e,0xe91e2d1e,0x2a1de91d,0x1a1e1a1e,0x2c1e1c1e,0x2e1e2c1e,0x941de91e,0x971e951e,0xaa1ea91e,0x3d1eac1e,0x3f1e3e1e,0x9e1e9c1e,0x9d1e9d1e,0xa11e9e1e,0xa01ea11e,0xce1e9f1e,0xea1dd71d,0xe81dea1d,0x9a1dcc1d,0x9b1e9c1e,0x9a1e991e,0xa31df91e,0x951ea41e,0x441e321e,0x321e461e,0x451e461e,0x321e301e,0x301e451e,0x431e451e,0xdc1dd91e,0x401e401d,0x431e301e,0xea1e421e,0x401dd71d,0x421e431e,0xd91dd71e,0x981e401d,0x911e8e1e,0x8c1e911e,0x911e8b1e,0x891e8b1e,0x981e991e,0x9a1e911e,0x911e991e,0x891e911e,0x911e871e,0x851e871e,0x9a1e9c1e,0x9c1e911e,0x851e911e,0x851e9c1e,0x9e1e841e,0x841e9c1e,0x841e9e1e,0xa11e821e,0x821e9e1e,0x821ea11e,0xa11e801e,0x7e1e801e,0x971ec91e,0xae1e951e,0xc91ead1e,0xae1eaf1e,0xc91ec91e,0xa41e951e,0xa41ec91e,0xb01ea21e,0xc91eaf1e,0xb01eb21e,0xc91ec91e,0xa11ea21e,0xc91eb21e,0xb51ea11e,0xa11eb21e,0xa11eb51e,0xb71e7e1e,0x7e1eb51e,0x7e1eb71e,0xb81e7c1e,0x7c1eb71e,0xb81eb91e,0xbc1e7c1e,0xaa1eac1e,0xaa1ebc1e,0xc1eb91e,0xbc1e0b1e,0xc1e0e1e,0xbc1ebc1e,0x7c1eb91e,0x7c1ebc1e,0x101e7b1e,0xbc1e0e1e,0x101e111e,0x111ebc1e,0x7b1ebc1e,0x111e121e,0x7a1e7b1e,0x771e741e,0x121e131e,0x7b1e7b1e,0x771e7a1e,0x731e771e,0x771e701e,0x6e1e701e,0x91e1f1e,0x201e071e,0x71e1f1e,0x71e201e,0x211e081e,0x81e201e,0x81e211e,0x221e151e,0x151e211e,0x151e221e,0x241e141e,0x141e221e,0x771e7b1e,0x7b1e6e1e,0x6d1e6e1e,0x141e241e,0x261e131e,0x131e241e,0x6d1e7b1e,0x6a1e6b1e,0xcc1e681e,0x6b1e7b1e,0x281e6a1e,0x131e261e,0x281e291e,0x7b1e131e,0xcc1e6a1e,0xcc1e7b1e,0xce1ed01e,0x1d1e1e1e,0x341e351e,0x361ece1e,0xce1e351e,0x1d1ece1e,0xce1e1b1e,0x2b1e1b1e,0x361e371e,0xbd1ece1e,0x371e391e,0xbd1ec01e,0x371e371e,0x2b1ece1e,0x2b1e371e,0xc31e291e,0x371ec01e,0xc31ec71e,0x371e371e,0x131e291e,0xd01e7b1e,0x7b1ebe1e,0xbf1ebe1e,0x371ec71e,0xcf1e131e,0x131ec71e,0xbf1e7b1e,0x7b1ec61e,0xc81ec61e,0xcf1ed21e,0xc51e131e,0x131ed21e,0xc81e7b1e,0x7b1ed11e,0xd41ed11e,0xc51ec21e,0x7b1e131e,0xc41ed41e,0xc21ec41e,0x481e131e,0x1f204b20,0x3e201f20,0x7f204a20,0x821e801e,0x7e1e7d1e,0x881e801e,0x791c741d,0xfc1c601c,0x1d001c,0x651d021d,0x601c621c,0x5d1d001c,0x5c1e5b1e,0x141e131e,0x491e041e,0x451e431e,0xe71de51e,0x561e541d,0x5e1e5a1e,0x541de51e,0x5f1e561e,0xde1dda1e,0xe51dde1d,0x561e561d,0x5c1e5e1e,0x5c1e561e,0x5f1e611e,0x561dde1e,0x611e561e,0xa01e601e,0xa21ea11e,0xdb1ddf1e,0x151db81d,0x6201620,0xb200620,0xff201220,0xfe1c021b,0xfe1bff1b,0xf61bfc1b,0xff1d331b,0x2a1bf11b,0xf51bf61d,0xf61bf11b,0xff1bf61b,0xf91bfc1b,0xf61bf51b,0x641e631b,0x621e5f1e,0x601e631e,0xb51eb41e,0x771eb71e,0x721e761e,0x721e711e,0x761e761e,0x791e751e,0xee1e781e,0x761df01d,0x781e791e,0x711e6f1e,0xf51e761e,0x6c1df71d,0x6f1e6c1e,0x761e761e,0xf01e781e,0xf51df01d,0x3b1e6c1d,0x351c341c,0x381c351c,0x581c3a1c,0xf41bf71d,0xef1bf21b,0x581d511b,0xf21bf41d,0x561d511b,0x531d581d,0xe71e551e,0x42203a1d,0x2e202e20,0x2f204120,0x20204020,0x2e203a20,0x40202f20,0x501e4e20,0x421e4d1e,0x4b1e4a1e,0x421e4a1e,0xfe1e431e,0xfc1d001c,0x5e1cfc1c,0xfc1cf91c,0xfb1cf91c,0xfe1cfd1c,0x331cfc1c,0x441ec11e,0x8b1e8a1e,0xfe1e8c1e,0x861e001d,0x861dfe1e,0x931e881e,0xfb1df91e,0xfe1dfb1d,0x8a1e881d,0x901e8d1e,0x881dfb1e,0x921e8a1e,0xfb1e931e,0x8f1e901d,0xfb1e921e,0x901e8a1d,0x361e351e,0x731e2d1e,0x711e721e,0x221d261e,0x201d201d,0x151c101d,0x1b1c151c,0x371d261c,0x381e391e,0x3f1ddc1e,0x3c1e411e,0x3f1ff120,0xf21def20,0x941ea31d,0xa81e961e,0xa31def1e,0xa71e941e,0xed1dff1e,0xef1ded1d,0x941e941d,0xa51ea81e,0xa71ea61e,0x941ded1e,0xa61ea51e,0xb91eba1e,0xfe1eaa1e,0xf11eef1e,0x3b1e3a1e,0x3e1e3e1e,0x3c1e3d1e,0x7a1d7c1e,0x761d761d,0x7b1d751d,0x7d1d7b1d,0xfc1d7c1d,0xff1dfd1d,0xb11dff1d,0xb31eb31e,0xb61eb41e,0xfc1eb61e,0x5f1dff1d,0x981b9c1b,0x971b981b,0x921b921b,0x861b8b1b,0x7d1b861b,0x791b791b,0x7c1b7a1b,0x681b7c1b,0x7c1b6e1b,0x551b6e1b,0x921b981b,0x5b1b861b,0x981b5f1b,0x5b1b571b,0x791b981b,0x551b7c1b,0x551b791b,0x541b591b,0x981b571b,0x541b701b,0x861b981b,0x591b791b,0x591b861b,0x701b621b,0x861b981b,0x621b861b,0xbf1b661b,0xba1fbc1f,0xc31fba1f,0xb11fc21f,0xb51eb21e,0xb41eb51e,0x6c1eb31e,0x6e1e6d1e,0x471ec11e,0x971e461e,0xa81ec91e,0x6e1d711e,0x6d1d6d1d,0x8a1c841d,0x7a1e741c,0xc31e791e,0xd81ec71e,0x491d471e,0x181c181d,0x461c121c,0xae1ead1d,0xee1ea61e,0xfe1eef1e,0x11efd1e,0x631ef51f,0x6e1f7c1f,0xc31fc21f,0xa61fa61f,0xc71f921f,0xff1f001f,0x4f1ef11e,0x57205c20,0x5d205720,0x50205820,0x46205420,0x58205720,0x46205020,0x57204f20,0xca1dcf20,0xfd1dfd1d,0xfa1dfc1d,0xf21ef31d,0xf21ef71e,0xf91ef01e,0x671f691e,0x8b1f8a1f,0x691f8d1f,0x301c941f,0x941d2c1d,0x2f1d2c1c,0x981d3e1d,0x391c941c,0x3e1d3b1d,0x391d371d,0x941d3e1d,0x321d2f1c,0x371d351d,0x941d3e1d,0x351d321c,0xea1eeb1d,0x1f1efc1e,0x51e171e,0x91c0b1e,0xe1c0e1c,0x131c121c,0x131c0e1c,0xd1c111c,0xe1c0b1c,0x561f851c,0x381f5a1f,0x121f1a1f,0x661d641f,0x691d691d,0x41c0a1d,0x611c041c,0x1a1d641d,0x161f1b1f,0x121efa1f,0xfa1f161f,0x41f161e,0xff1f141f,0x181f001e,0x1f141f,0xfa1ef91f,0xf91f041e,0x31f041e,0x1f181f,0x21f011f,0x11f181f,0x31ef91f,0xf91f091f,0xe1f091e,0x21f051f,0x191f011f,0x11f051f,0xf91ef71f,0xf71f0e1e,0x111f0e1e,0x11f191f,0xf71efd1f,0x151f111e,0x191f151f,0x3c1efd1f,0x4e1c3d1c,0x2c1f391d,0x1f1f1f1f,0x1d1f1e1f,0x1c1f1d1f,0x1b1f1b1f,0x391f1a1f,0x1f1f391f,0x2c1f1d1f,0x7c1c271c,0x291d7c1d,0x841d841c,0x2c1c2d1d,0x3b1f391c,0x321f321f,0x271f281f,0x2c1f271f,0x251f391f,0x21202c20,0x15202120,0x2a202a20,0x32202b20,0x21202520,0x25202a20,0x281e261e,0xd51c3c1e,0xe01ce01b,0xe31ce21c,0x431ce31c,0xe31c421c,0x411c421c,0xe01c3c1c,0xe31ce31c,0x3d1c411c,0x791c7c1c,0x1a1d1a1c,0x7e1d1c1d,0x871c7e1c,0x7e1c861c,0x851c861c,0x1a1c7c1c,0x7d1c7e1d,0x7e1c7c1c,0x851c7e1c,0x271c811c,0x291e281e,0x391fdc1e,0x1f201f20,0xed204b20,0xa01daf1f,0xe31de31d,0xdf1de21d,0x121e111d,0xe91e021e,0x481c4b1c,0x431c461c,0xe91ce31c,0x461c481c,0x451ce31c,0x391ce91c,0x3a1e3b1e,0x701f721e,0x861f861f,0xbb1f931f,0x6b205f1f,0x66206620,0x67206d20,0x60206720,0x64206420,0x66205f20,0x9d1e9b20,0x9f1e9f1e,0xf31ea01e,0xf61df31d,0xf81df81d,0x9f1e9b1d,0x5b1e621e,0x5d1e5d1e,0x581e591e,0x581e5d1e,0x631e571e,0x5d1e621e,0x631e641e,0x5d1e5d1e,0x551e571e,0x551e5d1e,0x661e531e,0x5d1e641e,0x681ecc1e,0xca1e661e,0x661ecc1e,0x5d1e661e,0x661e531e,0x521e531e,0xca1ecb1e,0xcd1e661e,0x661ecb1e,0x521e661e,0x661e501e,0x4e1e501e,0x661ecd1e,0xcd1e4e1e,0x4b1e4e1e,0xbd1e391e,0xd31ed31e,0x4b1ecd1e,0x4b1ed31e,0x3b1e4a1e,0xd31e391e,0x3b1e3e1e,0xd31ed31e,0x491e4a1e,0x471e481e,0xd31ec11e,0x481e491e,0x3e1e3f1e,0x411ed31e,0xd31e3f1e,0x481ed31e,0xc11ec11e,0x311e331e,0x411e311e,0xf71ed31e,0x651dda1d,0x671e651e,0x4c1e691e,0x4f1e4d1e,0x511e4f1e,0xe71de71e,0xea1de81d,0x4c1dea1d,0x381e4f1e,0x3c1e3a1e,0x3d1e3c1e,0xdd1ddd1e,0xe11de01d,0x381de11d,0x271e3c1e,0xd61deb1e,0xd81dd61d,0x231e231d,0x271e251e,0x851d891e,0xd81bd81d,0x8b1bd61b,0xc91fcc1d,0x201fce1f,0x871d221d,0x7e1c871c,0x1c1d1c1c,0x171d1a1d,0x201d191d,0x1c1c871d,0x191d171d,0x951c941d,0x941c931c,0x911c931c,0x301c8e1c,0x901c941d,0x8e1c8d1c,0x911c941c,0xf91c901c,0xf81e9a1d,0x351c381d,0x8d1d8d1c,0x831d861d,0x831d8d1d,0xa31d871d,0x8d1c381c,0xa31d8a1d,0x8d1d8d1c,0x881d871d,0x671c7f1d,0x901d651d,0x501ca01d,0x1d1d501d,0x181c181c,0x4a1d491c,0x4a1c181d,0x901d4f1d,0x181d501d,0x551d531c,0x181d901d,0x531d4f1c,0xe71ca41d,0x8c1beb1b,0x8b1d891d,0x8b1d8c1d,0x8f1d8e1d,0x8c1d971d,0x981ca51d,0xa21d8f1d,0xa51ca41c,0x8e1d8c1c,0xa51ca21d,0x8c1d8f1c,0xba1cc01d,0x931c931c,0x971c951c,0x31c021c,0xbb1cbb1c,0xfe1cb71c,0xb91fbd1b,0x371fc11f,0xdd203820,0xe21fdd1f,0x3520331f,0x37203120,0x331fdd20,0x74203520,0x761e751e,0x6a205e1e,0x59206b20,0xeb1fe920,0x521feb1f,0x54205420,0x58205020,0x59205820,0x81feb20,0x961d0a1d,0x921c961c,0x8f1c8f1c,0x81c8c1c,0x5c20561d,0x4f204f20,0x44204520,0x671e6920,0x6a1e681e,0x691e6b1e,0x511f8c1e,0xdb1f501f,0x181fee1f,0x1c201820,0xad201d20,0xb01c3f1c,0x441cb01c,0x3e1c401c,0x3a1c3b1c,0x401cb01c,0x3a1c3e1c,0xb01cad1c,0x841d861c,0x291c291d,0x7d1d7c1c,0x7d1c291d,0x831d7e1d,0x291d861d,0x7e1c291c,0x561d811d,0x5e204420,0xdc1cde20,0xda1cda1c,0xdd1cd91c,0xdf1cdd1c,0x711c711c,0xda1cde1c,0x551c531c,0x3f1d3f1c,0x521d3a1d,0x471c5b1c,0x461d461d,0x5a1d431d,0x5f1d601c,0x5c1d5c1d,0x41d611d,0x211d241c,0xef1c3b1d,0xbf1dc41d,0x2e1c471d,0x2d1d2d1d,0x441d2b1d,0xd81ddb1c,0xd61dd61d,0xb81dbd1d,0x501c4d1d,0x361d361c,0x4c1d341d,0x71e081c,0x91e091e,0x61e051e,0x191c071e,0x171d171d,0x11d151d,0x721f5c1c,0x751f751f,0x601f611f,0x6c1f781f,0x4e1f4e1f,0x761f541f,0xec1cd61f,0x6d1bef1b,0x651f6f1f,0xe61cea1f,0x581c001c,0xf11c511c,0x561cf11c,0x591c591c,0xfc1c5e1c,0x601cfc1c,0x5d1c5d1c,0xf11c581c,0x591cf11c,0x211cfc1c,0x191e221e,0x161c301e,0x131d131d,0x2d1c2c1d,0xe11ca21c,0xb1be71b,0x271c251d,0x721d781c,0x6f1d951d,0x711d6e1d,0x951d781d,0x741d6f1d,0x781d771d,0x711d6f1d,0xaf1d741d,0x821bae1b,0x8320281b,0x84208420,0x85204c20,0x28201e20,0xf208420,0x1e201920,0xf5200520,0x2d200f1f,0x51fff20,0x6a207020,0x5a205e20,0x70207520,0x70205a20,0x2d205e20,0xf200520,0x84201e20,0x2d208520,0x1e200f20,0x5a204d20,0x2d205e20,0x85201e20,0x5e204d20,0x44204420,0x85202d20,0x341d1f20,0xd31c3b1c,0xc51bd21b,0x1a1cd71b,0xdd1c201c,0xf21cd91c,0xd01cd31b,0xcf1ccf1c,0xe51bd91c,0x201d501b,0x171c1a1c,0x121c131c,0x1a1d501c,0x181c171c,0x501c1d1c,0x121c171d,0xe01c181c,0x6e1fe31f,0x6c206f20,0xe0207320,0x6f206e1f,0x74207320,0x131fe020,0xca1ccb1c,0xc61cca1c,0xa31c111c,0x811c7d1c,0x6e1f711c,0x7c1f7c1f,0xb81fb51f,0xc01fbd1f,0x7c1f711f,0xbd1fb81f,0x861c851f,0x4b1ca91c,0x611c4f1c,0x8d1cae1d,0xd11c901c,0x7a1fd51f,0x781f7a1f,0x761f761f,0xcd1fca1f,0xd11fcd1f,0x241f7a1f,0x15202a20,0x12201520,0x1a201a20,0x24202920,0xfa1efb20,0xc51eed1e,0x9a1cc31c,0xfb1cdf1c,0x961c001b,0x801d821d,0x891d851d,0x961d8c1d,0x851d801d,0x971d8c1d,0x6d1d961d,0x551d571c,0x531d551d,0xee1c6c1d,0x231beb1b,0x251d231d,0x2a1d2a1d,0xee1bf11d,0x4b1c4f1b,0xe91ce91c,0xf01ceb1c,0xf11cf01c,0x511c511c,0xe91c4f1c,0x21d051c,0x1d001d,0x11cfe1d,0x61d011d,0x6b1c6b1d,0x1d051c,0x71d191d,0x591c101c,0x481c461d,0x641cd81c,0x5f1c5f1c,0xd31cd01c,0xd31c5f1c,0xda1cd41c,0x5f1cd81c,0xd91cd61c,0x5f1cda1c,0xd61cd41c,0x871c741c,0x831d831d,0x6f1d811d,0xb1ebc1c,0x4a1e0a1e,0x671c661d,0x691c671c,0x801d4f1c,0x7f1c821c,0x7f1c801c,0xf41c7a1c,0x801c7b1c,0x771c731c,0x761cf41c,0x731c751c,0x7a1c801c,0x731c761c,0x801cf41c,0x461d431c,0x121c121d,0x91c0e1c,0x3d1c091c,0x91d3a1d,0x3f1d3a1c,0x121d431d,0x91c091c,0x401d3f1c,0x381f371d,0x261f0d1f,0xde202720,0xdb1fde1f,0x22201d1f,0x26201b20,0x1d1fde20,0xf202220,0x2c1c271d,0xb71b9c1c,0xb61bb61b,0x981b971b,0xd61d8b1b,0x381be11b,0x36203720,0x3e203620,0x1f201f20,0x38203920,0x111bfa20,0xe1d0e1d,0xf81d0d1d,0xe1d121b,0x151d111d,0x1a1d171d,0x111d121d,0x1a1d151d,0x121c781d,0xc01db71d,0xac1d781d,0xbb1bc21b,0xfd1bbb1b,0xfa1bfa1b,0xac1bf81b,0xf20001b,0x361ff520,0x3d203020,0x81203d20,0x49204920,0x3e204a20,0x36203e20,0xc0203d20,0xd61ec31e,0x6820671e,0xe51fe520,0x621fe71f,0x60206520,0xe5206720,0x6520621f,0x4b1d4c20,0x391c391d,0x4d1c3c1c,0x5e1b5f1d,0xab1b651b,0x951d6b1d,0x8c1b911d,0x7d1bad1b,0xb31b861b,0xb1c091b,0x91c081c,0x61c081c,0x3d1d3c1c,0x21c091d,0x3c1bff1c,0x61c091d,0x31c031c,0x3c1c021c,0x7b1ba61d,0x781b761b,0x791d771d,0x801d791d,0x821d821d,0x781d7f1d,0x941f431d,0x2f1b991b,0xce1e2c1e,0x141e041e,0x151e151e,0xe21e161e,0x421b7f1d,0x461f461f,0x881f491f,0x7f1b851b,0x931f461b,0xbe1fab1f,0xda1cd81f,0xdc1cdc1c,0x6d1cde1c,0x6d1cdc1c,0x671c6c1c,0xdc1cd81c,0x6c1cdc1c,0x741c691c,0x5a1f821f,0x8b1e891f,0x611e8a1e,0x461f491f,0x461f601f,0x6c1f421f,0x651b6a1b,0x451f481b,0x4a1f431f,0x441f471f,0x491f4b1f,0x4b1f611f,0x661f611f,0x421f601f,0x5c1b6c1f,0x6c1f601f,0x4b1f4c1b,0x4c1f661f,0x641f661f,0x5c1f581f,0x521b6c1f,0x6c1f581f,0x4c1f411b,0x411f641f,0x631f641f,0x6c1f521f,0x4f1b651b,0x651f521f,0x631f411b,0x441f5f1f,0x5f1f411f,0x651f4f1f,0x6b1b5e1b,0x5e1f4f1f,0x5f1f441b,0x441f591f,0x541f591f,0x5e1f6b1f,0x691b581b,0x581f6b1f,0x441f4a1b,0x4a1f541f,0x4e1f541f,0x581f691f,0x671b721b,0x721f691f,0x4a1f4d1b,0x4d1f4e1f,0x6c1f4e1f,0x721f671f,0x621b711b,0x711f671f,0x4d1f401b,0x401f6c1f,0x6a1f6c1f,0x711f621f,0x5d1b6b1b,0x6b1f621f,0x6a1f401b,0x431f681f,0x681f401f,0x6b1f5d1f,0x5b1b631b,0x631f5d1f,0x681f431b,0x431f651f,0x5e1f651f,0x631f5b1f,0x571b5a1b,0x5a1f5b1f,0x431f481b,0x481f5e1f,0x5a1f5e1f,0x571f551f,0x511b5a1f,0x5a1f551f,0x481b5d1b,0x5d1f5a1f,0x561f5a1b,0x5a1f511f,0x501b561b,0x561f511f,0x5d1b601b,0x601f561b,0x531f561b,0x561f501f,0x671b6f1b,0x531b601b,0x501f531f,0x8e1b6f1f,0x901e8f1e,0x4520441e,0x6e208120,0x731f711f,0x591f731f,0x1c1f5f1f,0x1b1e1a1e,0x1d1e1b1e,0xad1e1e1e,0x381c3a1c,0xa31c381c,0xa71ca71c,0x3f1ca91c,0xad1c3f1c,0xd51c381c,0xc01bd41b,0x841f5b1b,0xaf1f871f,0xb61cb21c,0x9a1cb61c,0xaa1caa1d,0xdb1cb11c,0xab1cdb1c,0xac1cac1c,0xb61caf1c,0xaa1cb61c,0x281cdb1c,0x19201e20,0xf201920,0x10200020,0x28208220,0x201920,0x3c201020,0x341bff1d,0x341d3c1d,0x3a1d361d,0x3c1d3d1d,0x361d3c1d,0xa81d381d,0x9a1b9d1b,0x301f2d1b,0x291f291f,0x2e1f2a1f,0x261f2e1f,0x281f281f,0x2f1f321f,0x2d1f2f1f,0x291f291f,0x281f2e1f,0x671b681f,0xaf1b6f1b,0x7a1b7c1b,0x7b207e1b,0x3f203f20,0x7f1ffe20,0xf61d2d20,0x2a1d2a1b,0x241d251d,0x241d2a1d,0x2b1d291d,0x2a1d2d1d,0x671f8a1d,0x621f621f,0x871f5d1f,0xdd1cdf1f,0xf41bf41c,0xfb1bf71b,0x7d1b791b,0x7b1bb21b,0x6c1f6a1f,0x781f6c1f,0xae1f7a1f,0x8c1bad1b,0x821f851b,0x741f741f,0x921fc71f,0x8e1f8f1f,0x741f851f,0x8f1f921f,0x961f981f,0x801f801f,0x9a1f7d1f,0x971f991f,0x7f1f7f1f,0x9b1f8c1f,0x9a1f9d1f,0x7d1f7d1f,0x8b1f8d1f,0x9b1f9c1f,0x8c1f8c1f,0x9e1f891f,0xa01b801f,0x9f1b9f1b,0x781bba1b,0x9e1f9f1b,0x891f891f,0x851f881f,0x8e1f851f,0xa01fa01f,0x891f9f1f,0xd91ecc1f,0x871ed71e,0x811f841f,0x941f811f,0x911f911f,0x871f901f,0xda1bdf1f,0x9d1c9d1b,0x3b1d3e1c,0x3b1c9d1d,0x451d411d,0x9d1bdf1d,0x451d441c,0x9d1c9d1d,0x421d411c,0xbc1fba1d,0xb71fb71f,0xda1fd91f,0x311e301f,0x4d1e331e,0xc21c4e1c,0x541cc21c,0xc21c531c,0x521c531c,0x4d1c501c,0x3f1cc21c,0xae1ca91c,0xb31cae1c,0xb91cb91c,0x3f1cb01c,0x891ba41c,0xf01b831b,0xed1bea1b,0xab1bed1b,0xac1bac1b,0xf31bf81b,0xf01bf31b,0x3a1bed1b,0x2f1f2d1f,0x321f2f1f,0x3b1f3b1f,0x1a1f391f,0x381f1a1f,0x371f371f,0x351f361f,0x2f1f3a1f,0x371f3b1f,0x3a1f351f,0x1a1f3b1f,0x711f371f,0x661b701b,0xb41fa21b,0xb31fb31f,0xe11fdf1f,0xe11fb31f,0xa71fe41f,0xb31fa21f,0xac1faf1f,0xa31fa71f,0xaf1fb21f,0xa41fa81f,0xab1fa31f,0xa81faa1f,0xbe1fc51f,0xce1fab1f,0xc51fc91f,0xd41fd81f,0xb91fce1f,0xd81fb61f,0xc11fc81f,0xdc1fb91f,0xc81fed1f,0xdc1fdd1f,0xc81fc81f,0xd81fb91f,0xce1fd81f,0xc51fc51f,0xa81fab1f,0xa31fa81f,0xaf1faf1f,0xb31fa71f,0xe41fb31f,0xaf1fe61f,0xe61fb31f,0xc51fd81f,0xdd1fa81f,0xd81fc81f,0xdd1fe21f,0xaf1fd81f,0xe81fe61f,0xe81faf1f,0xde1fea1f,0xd81fe21f,0xde1fdb1f,0xa81fd81f,0xea1faf1f,0xea1fa81f,0xdb1fec1f,0xa81fd81f,0xec1fa81f,0x191fee1f,0xdb1dd81e,0xe21ddf1d,0x181e161d,0xdb1e191e,0xdf1ddb1d,0x61e161d,0x171e051e,0x161ddb1e,0x171e061e,0xdb1e181e,0xe21e041d,0xe31de31d,0x11df11d,0x21e011e,0x31e031e,0xe31e041e,0xcf1fd21d,0xcb1fcb1f,0xed1fc81f,0xed1fcb1f,0xd61feb1f,0xcb1fd21f,0xda1fba1f,0xa61fd61f,0xba1fc31f,0xa51fa91f,0xae1fa61f,0xa91fad1f,0xb01fb11f,0xdf1fae1f,0xb11fb31f,0xdf1fe01f,0xb11fb11f,0xa91fae1f,0xa61fa91f,0xba1fba1f,0xcb1fd61f,0xeb1fcb1f,0xba1fe91f,0xe91fcb1f,0xa91fb11f,0xe31fba1f,0xb11fe01f,0xe31fe51f,0xba1fb11f,0xe71fe91f,0xb11fe51f,0x171fba1f,0xc200d20,0x6200c20,0x16201620,0x17201c20,0xa1c0420,0x691d691c,0xc1c0f1d,0x1c051c,0x691d601c,0x51c0c1d,0x41d601c,0x571d691c,0x56205c20,0x64205620,0x60206020,0x61206520,0x57206120,0xe8205620,0xf21fe61f,0xf01fef1f,0xe81ffb1f,0xef1ff21f,0xfd1ffb1f,0xfb1fe81f,0x581bf71b,0x5a1d581d,0x5f1d5f1d,0x1d601d,0xfb1c001c,0x351d581b,0x331f341f,0x311f331f,0x301f301f,0x3a1f2d1f,0x351f3a1f,0x121f331f,0x31e131e,0x101d141e,0x961c961d,0xf1d0b1c,0x131d0f1d,0x5e1d141d,0x591e5a1e,0x1320141e,0x23200d20,0x21f241f,0x53205b1f,0x20202020,0x2f204020,0x69202f20,0x63206320,0x20205b20,0x861bb320,0x6e1b8b1b,0x561b6f1b,0xe20031b,0xb200a20,0xe1e0c1e,0xd1e0e1e,0x11e0a1e,0xfd1cfe1d,0xe01cfd1c,0xe31be31b,0x11bea1b,0xe81fea1d,0x41ffd1f,0x91ffa20,0xfd1fea20,0x920041f,0xea200a20,0x9e1ddd1f,0x7e1da21d,0x6f1c6e1d,0x981e8e1c,0x6a1e921e,0x72207620,0x77207220,0x6c207320,0x66206f20,0x73207220,0x6b206c20,0x72206a20,0x66206c20,0x46206b20,0x52205420,0xb81dfc20,0xfe1eb91e,0xf1203f1f,0xef1ff11f,0x631ff21f,0x661b6b1b,0x721f701b,0x161f5c1f,0x21201520,0x26202120,0x1b201b20,0x16202220,0xab1faa20,0xf51f931f,0xf320051f,0x421ff41f,0xf5203a20,0xf41ff31f,0x11203a1f,0x831ff520,0x4f1f521f,0x491b881f,0xdb1f4b1f,0xea1edc1e,0xea1edb1e,0xe31eeb1e,0xd91ed71e,0xe11eed1e,0xd91ee31e,0xeb1edb1e,0xed1eeb1e,0xbb1ee31e,0xc51fbe1f,0xf51ef41f,0x1f1f011e,0x271f2c1f,0x211f2b1f,0x1f1f201f,0x2b1f271f,0xe20081f,0x7200320,0xc200220,0x3200820,0xd200720,0x8201320,0xc200720,0xea200d20,0xc1c051c,0xf61c0c1c,0xd71cef1c,0x141d181b,0x131d141d,0x141d161d,0x1b1d161d,0xd71d1e1d,0x1f1d141b,0x1e1be41d,0x1b1d141d,0x1d1d1d1d,0x1e1d1f1d,0x3520311d,0x2b202b20,0x24202a20,0x30203420,0x2b203620,0x34202420,0x37203620,0x31203120,0x34202b20,0x6d1e6b20,0xf91df71e,0xed1ef01e,0xc01ebd1e,0x781ed51e,0xe1207920,0xdf1fe11f,0xe01fe01f,0x7720741f,0x72207720,0x78207820,0xe01fe120,0xec1eea1f,0xc51ef61e,0xc21c541c,0x4e1cc21c,0x4a1c4a1c,0xb31cb91c,0xb31c4a1c,0xc31cb51c,0xc21cc51c,0xc31cc01c,0xc21cc21c,0xb51c4a1c,0xc01cba1c,0x431cc21c,0xf01ffc20,0xef1ff01f,0xf11ff11f,0x3b203c1f,0x43203b20,0xda1ff020,0x661e641d,0x411e401e,0x891e311e,0x871c861c,0x271c871c,0x8e1c8e1d,0x891c8d1c,0x4c1d4b1c,0xe91be91d,0xdf1be21b,0x451bdf1b,0x481d481d,0xe91d4b1d,0x521d541b,0x7a1c411d,0x3b207120,0x3c203b20,0xc207b20,0x141c0f1c,0xf71c141c,0x551cf61c,0x7e1f7f1f,0xed1dc81f,0xff1dff1d,0xca1dfd1d,0x7e207d1d,0x7f207f20,0xe11fe420,0x791fe11f,0x7d207c20,0xe1207f20,0x2820831f,0x82208220,0x80201020,0x84204c20,0x83208320,0x80208220,0x591c4620,0x541d541d,0x431c421d,0x831ba51c,0x271b7b1b,0x261f281f,0x251f261f,0x241f241f,0x221f231f,0x211f221f,0x2b1f2b1f,0x261f271f,0x241f261f,0x651f221f,0x681e661e,0x1f1be41e,0x211d211d,0x251d241d,0x231d251d,0x351be41d,0x321c341c,0x2d1c301c,0x351d841c,0x301c321c,0x8d1d861c,0x301c351d,0x861d841c,0x731f591d,0xe11f761f,0xe01ce21c,0xd51ce01c,0xa01b9f1b,0xe01ce11b,0x631b5a1c,0xae1b621b,0x971d961d,0xa11d971d,0xd31da91d,0xdd1ede1e,0x6d206e1e,0x76206620,0x70206a20,0x631f7c20,0x641f641f,0x791f661f,0x2620271f,0xb5202120,0xf31df61d,0x7620721d,0x71207120,0x7c207a20,0x78207c20,0x32207220,0xe2203320,0xde1fe21f,0x2c20271f,0x32202520,0x271fe220,0xee202c20,0x7e1e7c1d,0x371f361e,0xb41f0a1f,0x921b8b1b,0x711d741b,0x8a1c8a1d,0x8f1c8c1c,0xf620011c,0x1a201a1f,0xb201220,0x6200b20,0x53200120,0x851f561f,0x6d1d571f,0x171c701c,0xee201820,0xec1fee1f,0xaf20141f,0xff1eb01e,0x791c921d,0x771d771d,0x8f1d741d,0x101f341c,0xa31f131f,0x981fa41f,0x931d631f,0x921d921d,0x5e1d5d1d,0x651d621d,0x921d941d,0x621d5e1d,0x631d941d,0xab1d921d,0x961baa1b,0x911b951b,0xab1bac1b,0x951b961b,0x35202b1b,0xdd203320,0xdc1e3f1d,0x651c621d,0x4b1d731c,0x4c1e4e1e,0x71ff81e,0x3200320,0xfa200920,0x41ffa1f,0xfb1ffb20,0xfc1ff01f,0xf81ff91f,0xfb20031f,0xf91ffc1f,0x31ff91f,0x161ffa20,0x1d202220,0x291deb20,0x11e2b1e,0xf01bea1d,0x4a1b751b,0x561f4d1f,0x591e581e,0xaa1df51e,0x4d1db41d,0x55204c20,0x4e205520,0x5b205b20,0x69206320,0x5b205520,0x5a206920,0x55204d20,0x29202320,0xff201a20,0x23202d1f,0x51ff320,0x421fff20,0xf31ff420,0x2e20411f,0x41204220,0xf3204220,0x231fff1f,0xff201a20,0xf6201a1f,0x5a20751f,0x75205520,0x69205520,0xff1ff320,0x411ff61f,0xf61ff320,0x6920751f,0x2f202f20,0xf6204120,0x791d8a1f,0x761c7c1c,0x711f731f,0xc01f711f,0xc41fc41f,0x761fca1f,0xdf1c711f,0xea1ce61c,0xf41cef1c,0xe61c711c,0x771cea1c,0x711c731c,0xf41cea1c,0x7a1c771c,0x621d651c,0x5d1b5c1d,0xeb1b601b,0x4b1fed1f,0x47204820,0xeb205120,0x48204b1f,0x52205120,0xbc1feb20,0x6f1fbf1f,0x6d1f6f1f,0x5c1fb71f,0x541ccc1c,0xc51c541c,0x541cc81c,0xcd1cc81c,0x5c1c5f1c,0xcf1c541c,0x5f1cd01c,0xcd1c541c,0x611ccf1c,0xe7206220,0xe91fe71f,0x5d20591f,0x61205720,0x591fe720,0x7c205d20,0xd31f791f,0xb51fd71f,0xd91f7c1f,0x6d1fb71f,0x7b1f6d1f,0x7a1f7a1f,0xd91fd51f,0x771f791f,0xd01fcc1f,0x791fd31f,0x971da11f,0xd01d8f1d,0xd21bd11b,0x331bd21b,0x311c311c,0xcf1c2f1c,0xd01bcf1b,0x581bd21b,0x541b571b,0x9d1fa11b,0x8b1f8b1f,0x871f8a1f,0x901f871f,0x8d1fa11f,0x8a208920,0x8a208d20,0x83209020,0x8724b124,0x8d209124,0x9a209020,0xa1229f22,0x9c209622,0xcd209b20,0xcb247220,0x9c209b20,0x9f209e20,0x9e209b20,0xcb22fd20,0xa222f722,0xa420a320,0xa2208620,0x8720a420,0x8b208c20,0xfc215620,0x6720ef20,0x3d243a24,0x39245b24,0xa9243824,0xad20a620,0x2c234120,0xb623ec23,0xb0248924,0x21f824,0x5922ce22,0x5e225a22,0x5230922,0x44230b23,0x3b219d22,0xe424d322,0xb524cf24,0x35223121,0x9a229522,0x3d22d122,0x57215422,0x60226521,0x40226322,0x43245224,0x46245724,0xb3244a24,0x20233223,0x41245823,0xdf244624,0xde20f420,0x3b245120,0x1e245024,0x28242a24,0xf0210024,0xf20f520,0xe256b25,0xfb210225,0x220fe20,0xfb210121,0xfe210320,0x320ee20,0xfe210221,0x3210420,0x420ee21,0xf720ee21,0x43257e20,0x12258d25,0x10210e21,0xd924c921,0x1524c624,0x10211221,0x15211821,0xa1211021,0x97249024,0x20221f24,0x1f222222,0x18211c21,0xd524cf21,0x9624cc24,0x91258825,0x23234325,0x1e234123,0x83211421,0x69210622,0x67216821,0x66244224,0xee22c224,0x1b21d322,0x822ef23,0x99209323,0x7b209a20,0x7725b325,0x41234025,0x5f233f23,0x56256225,0xf0231025,0xc322f522,0xbe23bf23,0x9d24bf23,0x30249b24,0x16251825,0x22d925,0xad22dc22,0x9c219a22,0xcd22de21,0x2e21ef22,0x2b252925,0xd0220425,0x62220321,0x39244924,0x8d239324,0x5b239423,0x72217022,0xd722fd21,0x4e21da21,0x4d244824,0x19221424,0xe6221d22,0x29230c22,0x8d22f423,0xe222f822,0x2b232d22,0xac20e323,0xd520ab20,0xd620bb20,0xec22ef20,0xdb22f222,0xdc20c820,0x91228b20,0x56228a22,0x34244a24,0xdd212024,0xcc21d821,0x7021c921,0x36223a22,0x1e21c822,0xd6233023,0xea23e822,0x7a232e23,0x79237823,0xcf20d923,0x3320da20,0xf620ed21,0x5e235020,0xd9234e23,0xc624c324,0x9421a724,0xb2229022,0xb721cd22,0xeb22c722,0xf422e322,0xa124a624,0xb823b724,0xe7233223,0xe820c920,0x16240a20,0x46242624,0x29222c21,0xb623b322,0xa23b523,0x50224a21,0x22223922,0x43212521,0x47245324,0x3b244f24,0x1e243524,0x45254025,0x3e245b25,0xef245c24,0xe520fc20,0xc124d820,0x8424c424,0x81238323,0x25218823,0xeb222722,0xa520d020,0x7e20b920,0x79247324,0x77257c25,0xc924e625,0xdc24cb24,0xd21e321,0xc422fb22,0x4f22c522,0x4e243624,0xfb210024,0x24210120,0xd523d623,0x55225023,0xab211922,0xaa23ad23,0xa240123,0x5423f924,0x53244724,0xed24a724,0xfd24f824,0xfc240d23,0x31223523,0x80223622,0x76217921,0xed21e821,0xd822ce21,0xd722cb21,0x45246321,0xcf244924,0x17211121,0x28244221,0xb9242a24,0xb823ba23,0x81238223,0xfb237f23,0xda23d723,0xbc20d323,0xc820d420,0xcd224621,0xb422e921,0x9f22c822,0xb1247420,0xd923e020,0xeb23d823,0xf222aa22,0x84211b22,0xac228622,0xaf25b025,0x88238925,0xe2238623,0x3123e323,0x7d20bf23,0x6f247e24,0xd720d624,0x86238720,0xba231923,0x85248224,0xb620d224,0x2020d320,0xd722d523,0x9a24ad22,0xea249c24,0xd020ce20,0x33212c20,0x5224721,0x620f221,0x9c22af21,0x4e21a021,0x2c223121,0x2621b222,0x75222822,0xa725a325,0x4b245525,0x5c245424,0x60244124,0x34219c24,0x48219d22,0x46215121,0x4421a121,0x2224c22,0x4229523,0xa5214b23,0xf822a822,0xfb22c322,0xc220d422,0xaf20d520,0x9d248124,0x3a21b224,0x9921bc22,0xb621b422,0x83229321,0x66229621,0x61236023,0xb3247623,0x3247320,0xca22c123,0x61215022,0xb2225e22,0xb824c724,0xac215124,0xb5215722,0x3223b723,0xa5221023,0x9321a421,0xab24a924,0x36215324,0xec223122,0xaa20a520,0xae23aa20,0x68232023,0x5f231623,0x8921fe23,0xf8218721,0xf6214220,0x8f229820,0xff229c21,0xca230322,0xff21d722,0x1922ca22,0xfe22f923,0xf722cc22,0xf322cb22,0xcc22f722,0xc422b222,0xed21cb21,0xe822cc22,0xed22e821,0xea21e822,0xe822e821,0xe822e421,0xcd21ea22,0xea22e422,0xde22d821,0xf021ef22,0xef22d821,0xd822ce21,0xe521f022,0x18231b22,0x1722f523,0xe7231023,0x28232a22,0x23230623,0x56231523,0x4b230a23,0xd9232223,0xb522dc22,0x8a24a224,0x13231624,0x622df23,0x26232c23,0x5c215d23,0x1f210021,0x2122f623,0xc523ca23,0xd123c423,0xdd229d22,0x3022da22,0x15232d23,0x9f259a25,0x1822df25,0x13231623,0xdf22d423,0x24232522,0xc622f123,0xb124b024,0xd0230b24,0x89230e22,0xc222c322,0xf8214d22,0xd0215020,0xd2215221,0x52234921,0x8a235323,0x83229621,0x4d235c21,0x9c234c23,0xa2219222,0x96219322,0x55219521,0x57235823,0x29253423,0xa1253325,0xa323a223,0x9c229b23,0xed214b22,0xee23de23,0x3a234823,0x1b233823,0x5e234c23,0xc923c623,0xdb23c823,0xdd23de23,0x16231323,0x6f236923,0xf237123,0xcf23ce23,0xd323cd23,0xcf23d123,0xfe231c23,0xcc230022,0x2a23cd23,0x2b23cb23,0xd523c523,0xc623c723,0x9237423,0xad237223,0x4523f623,0x7c255123,0xb1257a25,0xb323b423,0xb223af23,0xba23b123,0xbc21ab22,0x97223222,0x8f219421,0x90238e23,0x36234523,0x7b233523,0x7a237723,0x92238823,0xd2239123,0x2523d423,0xea231123,0x3822e122,0x47254425,0x91230c25,0x2e239623,0x28212b21,0x29239e21,0x95239f23,0x92239123,0x92239423,0xe6239323,0xe823e923,0xa423a923,0xa823a523,0x9e232223,0x6c216723,0x24216d21,0x8a228321,0x19238522,0x6c238323,0x72256025,0x7f238025,0x74237e23,0x1c237d23,0x75237c23,0x2e237b23,0x2f222d22,0x76236522,0xbc236423,0xbf23be23,0xc423c223,0x67232d23,0x60235f23,0xa323a523,0x5223a223,0x58214722,0x6a236922,0x24231323,0xd4232523,0x73230e23,0x6e237223,0xad257125,0xc6231f25,0xec23d823,0xdb23dc23,0x23243023,0x70243124,0x6c236e23,0xad22a823,0x3122ae22,0xe823e523,0x9820b823,0xec20a220,0xf124f424,0xe523e724,0x9e23e323,0xa123a023,0x7823f323,0xc9237623,0xc823da23,0xbc229f23,0xa622a321,0xa723ab23,0xb240d23,0xc23fe24,0x4240124,0xfe240d24,0xf23fc23,0xff240e24,0xfd240e23,0x1123ff23,0x5241024,0x5241124,0xf523ef24,0x8240a23,0xf8241224,0x1323f123,0xf1241224,0xc241423,0x15240424,0xf0241324,0xf1241323,0x1623f023,0x4241424,0x4241624,0x923f724,0x2241524,0xf0241524,0x17240223,0xf7241624,0x17241823,0x1723f424,0xf423f724,0xf4241823,0x1923f623,0xf6241824,0xf6241923,0x1a240623,0x6241924,0x6241a24,0x1a240324,0xfa240324,0x1a241b23,0x1223fa24,0xf8241b24,0xfa241b23,0x4a23f823,0x79227821,0xd823df22,0x2023d723,0x2a243024,0x27242f24,0x95242524,0x9124a024,0xf924d824,0x3224f424,0x26242324,0x82258924,0x2f257825,0x1232c23,0x29242523,0x24242f24,0x29242b24,0xbd24bc24,0x67249b24,0xc6227022,0x2e241d21,0x51242d24,0x3b233723,0x43214023,0xb7213f21,0xb4248c24,0x44246a24,0x96243f24,0x36229b22,0x48244c21,0x47244424,0x29242f24,0x80216e24,0x4f227f22,0x6b244d24,0xae215e24,0x6b22b622,0x59246424,0x5c255724,0x57256425,0x59235a23,0x6f221523,0xaf216e21,0xb321b021,0x5b235921,0x51231d23,0xe251f25,0x11231525,0x4322e123,0x33233423,0x15217823,0x6b221b22,0x6a236c23,0xed24b823,0x9824a424,0x96259925,0x2523d125,0xf3232a23,0x5236323,0x9b239724,0x81232923,0x1c231923,0xf236e23,0x8231323,0x59235523,0xf3213d23,0xf6213a21,0x3d21f321,0xf6213f21,0xb7213d21,0xa21cd22,0xf621f821,0x43213f21,0x3f21f821,0xa22bb21,0xfe22bd21,0x2250024,0xb9224b25,0x49224e21,0x4521fd21,0xfd220421,0x4c214921,0x49220421,0xc021c221,0x921c621,0x4c220422,0xc021d421,0x2b211322,0xe2232a23,0xba22bf22,0xb122bc22,0xac229721,0x85214a21,0xd622c222,0xd8211d21,0xd8212021,0xd4211d21,0xbe21d721,0xc921c522,0xde21f221,0x2321dd21,0xde212721,0xe1212321,0x2721de21,0xe1212b21,0xe4212721,0x2b21e121,0xe4212e21,0xe6212b21,0x2e21e421,0xe6213021,0xe9212e21,0x3021e621,0x3021ed21,0xee213421,0x3521ed21,0xee213821,0xf1213521,0x3821ee21,0xf1213a21,0xf3213821,0x3a21f121,0xf324ef21,0xf24f224,0x69256725,0x81228525,0x9e219b22,0x9b228521,0xa823a621,0x9023a923,0x91259d25,0x86251d25,0xc8258a25,0x3a21c121,0xdb21e022,0x8121bb21,0x88257625,0x9c239a25,0xa4239b23,0xa2229021,0x8224be21,0x4a24bb24,0xd254f25,0x7021e225,0x5b216c21,0xb522b321,0x90258822,0xc259125,0xa3220f22,0x84227121,0x72218521,0x87227122,0x72218921,0x75218722,0x89227222,0x75218c21,0x78218922,0x8d218c22,0x62224d21,0x4d216421,0x62224822,0x64224f21,0x4f216621,0x64224d22,0x79219321,0x7b218d22,0x93227922,0x7b219521,0x51219322,0x66224f22,0x7b227c21,0x8e219522,0x92213622,0x7c219822,0x56219522,0x70216d22,0xf1232121,0x5d232422,0x72225b22,0x5d217621,0x5f217222,0x79217622,0x60217b21,0x63217922,0x7b226022,0x63217e21,0x66217b22,0x7e226322,0xea230821,0x68230d22,0x7f217e22,0x68226a21,0x84218222,0x82226a21,0x6a226c21,0x3b218422,0x3a233823,0x33224923,0xa7213921,0x8e249224,0xa8248024,0x824aa24,0xb212122,0x97249f22,0x24249a24,0x21220b21,0x32221c21,0x23213721,0x8f222e22,0x4b235321,0x45234a23,0x62215f22,0x1921d421,0x3d21d621,0x41215922,0xa622a122,0xe122aa22,0xae20b420,0x7f25b720,0xfa257625,0xce21f721,0xfa210d21,0x5121ce21,0x53216d22,0xfa21ff22,0xb210d21,0xd21ff21,0xff220121,0x5210b21,0xf920f721,0xb922ba20,0x921a622,0xd1215222,0x24220f21,0x1212621,0x5211722,0x4a214922,0xa1228221,0x1225a525,0x4321fc25,0x6214521,0x17220522,0xd521af21,0x1a21ae21,0x17220621,0x6220821,0x8211a22,0x1e211a22,0xb321d521,0xae21d921,0xa324ef24,0xd921b724,0xb721b321,0xd921db21,0x93217d21,0xbb228e22,0xb821db21,0xe021bf21,0xe021bb21,0xe521c221,0xa824ac21,0xc324ff24,0xc221e521,0xe521e721,0xc521c321,0xc321e721,0xe721ec21,0x4721c521,0x56254c25,0x1f242d25,0xcc241d24,0xc921f221,0xf221f521,0xf721cc21,0xce21cc21,0x32221121,0xa7221821,0x9a219722,0xa522a721,0xb7219722,0xc822be22,0x9e228722,0x84219f21,0x6f228022,0x84217321,0x20216f22,0x5c225521,0x22221b22,0x32218322,0x9d223322,0x42224b21,0x8b225221,0x8e217a22,0x8219122,0xb5220c22,0xa621a122,0x8e217d21,0xee217a22,0xed233c23,0x81219923,0xa8227c22,0xb221a521,0x72213b21,0x69227522,0x3c243f24,0x1e221f24,0x20246e22,0x6e221f22,0x20246f24,0x24246e22,0x6f222022,0x24247024,0x25246f22,0x70222422,0x70222724,0x27247124,0x70222522,0x27222a24,0xf247122,0x71222a21,0x2a222b24,0xe210f22,0xf222b21,0xe222d21,0x2d211221,0xe222b22,0x2d222f21,0x10211222,0x58255425,0x5e224125,0xe8224521,0xce20ca20,0x1322bd20,0x3b22c021,0x25223922,0x3b212a21,0x3f212522,0x2a223b22,0x51256821,0x40256a25,0x2c212a22,0x4c224721,0xe9224422,0xb122aa22,0x2c20ed22,0x5a20de21,0x4d225822,0x5a215021,0x32214d22,0x43252725,0x7b256f25,0xf2257025,0x7240823,0x97251724,0x56259925,0x55226121,0x61226421,0x58215622,0x56226421,0x64226721,0x5a215822,0x58226721,0x67226921,0x5c215a22,0x5a226921,0x69226b21,0x5d215c22,0x5c226b21,0x6b226d21,0x60215d22,0x5d226d21,0x60227321,0x73216121,0x60226d22,0x73227421,0x63216122,0x61227421,0x74227621,0x65216322,0x63227621,0x76227721,0x68216522,0x65227721,0x77227a21,0x69216822,0x68227a21,0x7a227d21,0x6b216922,0x69227d21,0x6b227e21,0x1c227f21,0x18211521,0x97209121,0xdd209620,0xe322c722,0xdf20c322,0xaf20de20,0xe420e520,0x6e213520,0xd8213b22,0xd920a820,0xb422ab20,0xb322aa22,0x7320b920,0xcb247524,0x61247220,0x66240023,0x14234723,0x78233623,0xb720ba24,0xb020a920,0xc6247620,0x77247520,0xc620c524,0xa9247720,0x79247620,0x7720c524,0xc0247a24,0x7a20c520,0xa920a624,0xa6247920,0x7c247920,0x7a20c024,0x8e208f24,0x8f20c020,0xa620a720,0xc5247c20,0xed24f024,0x9b220e24,0xa6219921,0x90248c24,0xbc23bb24,0x9323ba23,0x92247824,0x9920a124,0xc0248520,0xc323c223,0xb3257623,0xa5255f25,0xa0249124,0x50234d24,0x6a234e23,0x7121d921,0xf2210721,0x8d20d120,0x8f24b924,0xe821de24,0x5a220d21,0x42254b25,0x6c226a25,0xda226e22,0xdb20cc20,0x5a245b20,0x9a246124,0xa020a120,0xac20e120,0x7120e220,0xb025b125,0x5b225c25,0x94225d22,0xbc24b924,0x2d212624,0xab221121,0xe320e420,0xac249e20,0xe024ad24,0xb420be20,0xc124a620,0xca24b724,0xcc24b224,0xb124cb24,0xaf24cd24,0xcf24bd24,0xbe24ce24,0xd124d024,0xb220aa20,0xb724bb20,0xfe24d224,0x2240923,0xca24c824,0xc024d624,0xd724c124,0xd624c824,0xc024da24,0xdb24d724,0xc824c724,0xb324da24,0xb924c324,0xc024d224,0xc724db24,0xdc24da24,0x7421cf24,0xe9227622,0xec250c24,0xdb24d224,0xd124df24,0xdf24d224,0xc324c224,0x6224de24,0x64236523,0xdf24d123,0xc224e024,0xe124de24,0xd124d024,0xd324e024,0xe124c224,0xe024d024,0xce24e224,0xe224d024,0xe224ce24,0xcd24e324,0xe324ce24,0xe324cd24,0xcb24e524,0xe524cd24,0xe524cb24,0xf424e624,0x82218421,0xe724ea21,0xea24e824,0xeb24e824,0xea24ef24,0xe024eb24,0x7121eb21,0xf224f621,0xd624f324,0xd720b520,0x1f212520,0x6d20de21,0x6c246924,0xf324f624,0xf824fa24,0xfb24f724,0xf624fc24,0xfc24fa24,0xfd24fa24,0xf824fe24,0xff24fb24,0xfd24fc24,0x9820a324,0xff209d20,0x124fd24,0xff250325,0x3250124,0x4250125,0x2250525,0x5250025,0x6250025,0x3250725,0x7250425,0x8250425,0x5250925,0x9250625,0xa250625,0x7250b25,0xb250825,0xc250825,0x924e725,0xe7250a25,0xe8250a24,0xd252024,0xd24da25,0x49233823,0x33231523,0x19233523,0xec251725,0x48253e24,0x9b254925,0x92213722,0x92258822,0x21259325,0x1a252d25,0x91228a25,0x65213222,0x6c246224,0x35234424,0xc8233423,0x46224121,0x8b239022,0x46238f23,0x49253f25,0x34245525,0x52243724,0x95256125,0xbd20e525,0xa020e620,0x87208820,0x3c253520,0x40253b25,0x3d233c23,0x15222f23,0x36223321,0x1c253b25,0xd4230f25,0xb0231222,0xb321a122,0x43253222,0xc0254225,0xc123c423,0x9e25a423,0x78259d25,0x83258425,0xeb232e25,0x2323ec23,0x30252425,0x4e254925,0x95254a25,0x94209820,0x8e24a220,0x53248a24,0x48254d25,0xc524dc25,0xa524c724,0xa625a925,0x26252725,0xb5256c25,0xb2248124,0x7d20ba24,0xb20c124,0x15241d24,0xf724ed24,0x2624f824,0x32243324,0x52245d24,0x3a245124,0x3f253925,0x21213e25,0x46221c22,0x50224f22,0x66256322,0x9d256825,0x9b232923,0x97259323,0x2b259425,0x2c241f24,0x723ef24,0x12241124,0xaa25a925,0x28241c25,0xf4242e24,0xec21e721,0x23252221,0xc256d25,0x97239823,0x63237223,0xbb236223,0xc021b921,0x11211b21,0x86227a21,0x74217322,0x52256c21,0x6d254325,0xac25ad25,0x28214625,0x87213e22,0x8924b024,0xfc233124,0xaf22fa22,0xae251325,0xb225b525,0x86257e25,0x78217522,0xad20d721,0x5820d820,0x5d245424,0x9a239724,0x53239923,0x16225722,0xb8216221,0x8b216722,0x8624a824,0xd1221224,0x8c20d220,0x8b209420,0xdb22c920,0x522e022,0xff240f24,0x9825a023,0xa825a125,0xa325a225,0xab249625,0x5924ae24,0x5e255325,0x2522e725,0xa322f123,0xa425ae25,0xab25ae25,0x8525aa25,0x52254325,0x5e251425,0x20256425,0xaf23b023,0x3c246823,0xe6243a24,0xe720c420,0xc121bc20,0x4c22a621,0x33253d25,0x8b258f25,0x85258a25,0xba24b724,0x9f259924,0x89259a25,0x9021a222,0x46252022,0xe1254925,0xd9233123,0xc122a923,0x6621c421,0x65244524,0xca24d524,0xc424cc24,0xc6229422,0xc720dd22,0x5d20de20,0x64256525,0xe230f25,0x9422d023,0xa222a521,0x2f253622,0x7d252d25,0x1c237e23,0x2d252c23,0x48252b25,0x4e254f25,0x5d231d25,0x33235c23,0x38212222,0x7f20a722,0x8820cd24,0x8c238b23,0xe6232723,0xb2232922,0x43254225,0xa7252825,0x7e256125,0xb7257f25,0xae22bc25,0xa321d521,0xa824f624,0xa9221c24,0xac21a321,0xa8229421,0x92208e21,0x7a209320,0x1d258325,0xa124ee25,0x8624e924,0x91220121,0x8f251921,0x5259325,0xae250925,0x9f250b24,0xfe24ac24,0xab250224,0xc122d324,0x4230722,0x1216321,0x86208a21,0xbd20a420,0xd324b924,0xbe248324,0xc724b124,0x9a229d22,0xc6229a22,0x9a229722,0x99229722,0xc722a122,0x9f229a22,0xa122a022,0x99229a22,0x96229f22,0x9c209720,0x7f20cd20,0xfd247224,0xcb21da22,0x88208722,0x55208c20,0xfc215021,0xf120fc20,0xfa20fa20,0xef20ff20,0x5a20ef20,0x56215821,0xfc215521,0x5820ef20,0xfc215621,0xef20fa20,0x68246720,0x5b243a24,0x39246224,0xaa20b224,0xa520a520,0xce20d020,0x9120ce20,0xce209620,0x9b209620,0xa520b220,0xbc20ce20,0xb220b620,0xc220bb20,0xad20bc20,0xbb20b520,0xa820cf20,0xc820ad20,0xcf20cc20,0xc720c320,0xb420c820,0xc320be20,0xae209a20,0x9320b420,0xb4209a20,0xc320b420,0xbb20c820,0xb220bc20,0xce20b220,0xb2209b20,0x9f209b20,0x93208e20,0xc020b420,0xb4208e20,0x9f20b220,0xb220b120,0xb720b120,0xb420c020,0xc520c820,0xc820c020,0xb720b220,0xbb20ba20,0xba20b220,0xc520c620,0xcb20c820,0xc820c620,0xba20bb20,0xbb20c120,0xbf20c120,0xc820cb20,0xcd20cf20,0xcf20cb20,0xbf20bb20,0xbb20b920,0xb320b920,0xcd20a720,0xa620cf20,0xcf20a720,0xbb20ad20,0xad20b320,0xb020b320,0xcf20a620,0xad20ad20,0xa920b020,0xdd23db20,0xed23ed23,0x3f233c23,0x23234123,0xed232623,0x41233f23,0xdb23ec23,0x2c23ed23,0xec232e23,0x26234123,0xec232c23,0x4123ed23,0xb324b023,0xb624b624,0x89248d24,0xf122ce24,0xce21f321,0xf621f322,0xcf21f921,0x22ce22,0xf921fb22,0xfc21f821,0xce220021,0xf821f622,0xf9220021,0x6222ce21,0x5921c022,0xb9225922,0x59225421,0x58225422,0x62225e22,0x59225922,0x5a225822,0x230922,0x3f230523,0x44224022,0x3e224422,0x9d219d22,0x39223821,0x3f223b22,0x9d224422,0x3b223921,0xe124d322,0x3524e424,0xbd223a22,0xba21bd21,0xb521b521,0x2921b221,0x2921b522,0x35222c22,0xb521bd22,0x2c21b521,0xd1223122,0x95230422,0xc6229522,0x3d229a22,0x54223622,0x31226621,0x65226521,0x5f212822,0x5f226522,0x63226022,0x65226622,0x51244022,0x57245224,0x46245824,0xb123af24,0xb323b323,0x3223b523,0x1e233223,0x20232023,0xb323af23,0x60245823,0x51244124,0x3b244024,0x20241e24,0xf242a24,0x6b256a25,0x87258025,0x7e257e25,0x4325b225,0x85254325,0x8d258d25,0x7e258025,0xd424c925,0xa124d924,0x9024a624,0x1d222224,0x22221a22,0x1e221a22,0x23222022,0x22222222,0x1f221e22,0xe424cf22,0x4124d524,0x43234223,0x33234323,0x1a232323,0x14211721,0x1b211421,0x83228321,0x1e212122,0x1a211e21,0x4211421,0x6210521,0x7210621,0x6216e21,0x6b216e21,0x4216521,0x68210621,0x6216521,0x6b210621,0x67216921,0x42243d24,0xd221d324,0xc222c221,0xee22f422,0x1d230822,0x1b231b23,0xef22ec23,0x92209322,0x40209920,0x41234223,0x55255b23,0x5f255f25,0x6f25b325,0x66256225,0x5f255625,0x62256f25,0x5b255625,0x10255f25,0xf0230c23,0xc223c322,0xbf23bf23,0x9d24af24,0xb1251624,0x30253025,0x18252425,0xfb22d925,0xad220021,0x9a22a722,0xe422de21,0x2e22cd22,0x29257525,0x220325,0x321fc22,0xfd21fc22,0x721d021,0x9220322,0xd021d122,0xfd220321,0x4220421,0xd0220922,0x63246221,0x93244924,0x8d238e23,0x56225b23,0xfd217022,0xd722ff22,0x36244e21,0x1d244824,0x77221b22,0x15217721,0x14221422,0x16221322,0x16221422,0x1d221722,0x14217722,0x1a221922,0x14221d22,0x19221722,0xf022e622,0xf4230c22,0x8d22c222,0xda22e222,0xe3232d22,0xac20e220,0xc220d520,0xe420bb20,0xd822de22,0xce22d822,0xcf22cf22,0xfb21f922,0xd921fb21,0xfb22d722,0xd522d721,0xcf22d822,0xe821fb22,0xd822e422,0xed22f322,0xfd22e822,0xf322f722,0xff230322,0xd322fd22,0x3230722,0xdb22e023,0xf222d322,0xe022e922,0xeb22e322,0xd122f222,0xe322dd22,0x4230222,0xf822d123,0x222fb22,0xf422ee23,0xd022f822,0xee21d321,0x7220322,0xdc21d022,0x3220022,0xdc22e622,0x3220322,0xee21d022,0xd322e022,0x3230322,0xf322fd23,0xe822f322,0xd822d822,0xd521fb22,0xd522d822,0xe622d622,0xee220322,0xe622f022,0xd822ee22,0xda22d622,0xda22d822,0xf022e222,0xf822ee22,0xf022f522,0xd822f822,0xe722e222,0xd822f322,0xf922e722,0xf822f522,0xf922fe22,0xf322f822,0xf122e722,0xf122f322,0xfe22f622,0x222f822,0xfe230023,0xf3230222,0xfa22f622,0xfa22f322,0x22fc22,0xd1230223,0x230522,0x322d123,0xfc22f323,0xfc230322,0xd0230122,0xd1230522,0xd022d422,0x322d122,0x6230123,0x6230323,0xd422d223,0xe322d122,0xd422df22,0xe022e322,0xd2230322,0xd222e022,0xe522e122,0xe322df22,0xe522ec22,0xe022e322,0xea22e122,0xea22e022,0xec22ef22,0xf222e322,0xe022f222,0xdb22ef22,0xc820cc20,0x86228820,0x8b228b22,0x91228e22,0x8c229122,0x8a228a22,0x8b228822,0x57245622,0x20244a24,0xdd212321,0xc721c921,0xc621c621,0x7021ca21,0xcf227022,0x70210d21,0xce210d22,0xc621c921,0x70227021,0xcc21ce22,0x3c21c821,0x3a223a22,0x36223522,0x3d223622,0xd621c822,0x1e22d522,0x32231e23,0xe8233023,0xea23e923,0x77237a23,0xd9237823,0xcf20a820,0x2f213320,0xed20ed21,0xf620fd20,0x3920f620,0x50213321,0x5e240023,0xde24d923,0x9024c324,0xa721a422,0xa821a721,0xb2229421,0xcd21cb22,0xa422c721,0xa122eb22,0xf424f124,0xf924f424,0xb724a624,0xb823b923,0xc420e723,0x1020c920,0x7241124,0x8240724,0xa240a24,0x14240c24,0x17241624,0x19241824,0x1b241a24,0x13241224,0x12241f24,0x22241f24,0x14240a24,0x1c241624,0xf240e24,0x1c241e24,0x1b240f24,0x22241224,0x22241b24,0x1e242424,0x10240f24,0x1e242024,0x19241024,0x24241b24,0x24241924,0x20242524,0x7241024,0x20242124,0x18240724,0x25241924,0x25241824,0x21242724,0xa240724,0x21242324,0x16240a24,0x27241824,0x23242624,0x16240a24,0x26242724,0x4e214624,0xb3222c21,0xb623b423,0x13225023,0xa210821,0x4a21cd21,0x8225022,0x4a210a21,0x50210922,0x38223922,0x43212222,0x53245224,0x50244f24,0x45243b24,0x1e254625,0x1c251e25,0x40253c25,0x45253a25,0x3c251e25,0x5b254025,0x3e243824,0xd120ec24,0xf220f220,0xf720f920,0xee20f720,0xfe20fe20,0xf520fb20,0xf020f520,0xef20ef20,0xfa20ff20,0xf120fa20,0xfc20fc20,0xf320f820,0xf620f320,0xed20fd20,0xdf20f420,0xdf20ed20,0xef20e020,0xfc20fa20,0xf520fe20,0xf220ef20,0xfe20f720,0xec20eb20,0xea20f220,0xf220eb20,0xed20fd20,0xfd20e020,0xe120e020,0xf220ea20,0xe920fe20,0xfe20ea20,0xe120fd20,0xf320e220,0xe220fd20,0xe920e820,0xe820fe20,0xef20fe20,0xe220f320,0xf320e320,0xe420e320,0xe820e720,0xe620ef20,0xef20e720,0xf320fc20,0xe520e420,0xef20e620,0xe420fc20,0xd820e520,0xc124d724,0x85238424,0x90238323,0x88218b21,0x23218821,0x88222022,0x24222021,0x90222b22,0x2a218821,0x88222b22,0x24218821,0x27222522,0x88222a22,0xea20eb21,0xb920d020,0x7e20bf20,0x81257724,0x78257825,0x79258325,0x7a257925,0x7c257c25,0x77257b25,0x78257725,0xe6257925,0xc924d424,0x222c524,0xfb22fb23,0xc422c322,0x35244f22,0x243624,0xfb20f521,0xd4232420,0x1923d623,0x50211321,0x16225022,0x55225521,0x19211d22,0xac23ab21,0x123ad23,0xa240c24,0x4b245424,0xfe244724,0xa724a924,0xa424a724,0xf824ed24,0xa724fe24,0xe23fd24,0x76240d24,0xeb21e221,0x7c21eb21,0x80218021,0x7e217f21,0x7e218021,0x76217b21,0x8021eb21,0x7b218021,0xcd217921,0xe821ea22,0xe421e821,0xe821e621,0xe921e621,0xcd21ef21,0xce21e822,0xef21f022,0xf121ee21,0xe822ce21,0xed21e921,0xee21ed21,0xce22ce21,0xe821ef22,0xdd21d821,0xdc220d21,0xcb22cc21,0xd21d822,0xd721dc22,0xd821d621,0xda22cb21,0xd821d721,0xcb21dc21,0x65246322,0xb244524,0xcf210d21,0xc21cf21,0x11211121,0x17211421,0xb211721,0x3121cf21,0x41244624,0x41243124,0x44243e24,0x2d242c24,0x44243f24,0x30242d24,0x3e243124,0x3e243024,0x3f243824,0x2e242d24,0x3f243c24,0x30242e24,0x39243824,0x39243024,0x3a244924,0x2e243c24,0x3a243d24,0x2a242e24,0x49243024,0x49242a24,0x3d244524,0x28242e24,0x45242a24,0x42244224,0x28243d24,0xbb23b924,0x8223ba23,0x81238423,0xdf23fb23,0xd323d723,0xbc20b620,0xc421cb20,0xc821c821,0x46224221,0x4a224622,0xcd21cd22,0xc821cb21,0xe022c821,0xe922e922,0xb422b122,0x9e209f22,0xe0247420,0xd923e123,0xa422eb23,0x8822aa22,0x1b228322,0x7e211b21,0x1b227f22,0x80227f21,0x88228622,0x1b211b22,0x84228021,0xae25af22,0xac25ac25,0xb025ad25,0x8a238925,0xe2238823,0xe323e423,0xc120bf23,0xd8247d20,0xda20d920,0xdd20dc20,0xdb211f20,0x1f20dc20,0xd2221321,0x1320d320,0xd420d322,0x1f20db20,0xdb211821,0x10211820,0x13221621,0x1720d422,0xd4221622,0xdb20da20,0xda211020,0xe211020,0xd4221721,0x1920d520,0xd5221722,0xe20da20,0xd8210f21,0xf20da20,0xd5221921,0x1a20d620,0xd6221922,0xf20d820,0xd8247121,0x70247120,0x1a221e24,0x6e20d622,0xd6221e24,0xd820d720,0x6f247020,0xd6246e24,0x7020d720,0x87246f24,0x86238923,0xbb24ba23,0xd2248224,0xb620b220,0x2222d720,0x20232023,0xd5231e23,0x9f24ad22,0xea249a24,0xce20e920,0x43224720,0x2c212c22,0x33212f21,0xf9210521,0xa020f220,0xaf22b021,0xad22af22,0x4e219c22,0x31215321,0x29222822,0xb221b222,0x2621ad21,0x21222622,0x28222822,0x75252925,0x6d257525,0xa325a325,0xa725a225,0x2825a725,0x55257525,0x4b243724,0x3e245c24,0x9a244124,0x34219721,0x37223422,0x9d219d22,0xa0223e21,0x9a219c21,0x9d223421,0x9c21a021,0x9b214121,0x48214822,0x51214b21,0x53215121,0x46214e21,0x48214121,0x4e215121,0x4c214621,0xa621ab22,0xa021a121,0x4c223e21,0xa121a622,0xaa224421,0xa1224c21,0x44223e21,0xc5230222,0xa8229522,0x4b215122,0x9e214b21,0xa522a222,0xa822a722,0xa2214b22,0xf822a522,0xc3228d22,0xbc20d422,0xaf20c220,0x8124b224,0xb421b624,0xb221b221,0xba21b521,0xbd21ba21,0x3a223a21,0xbc21be22,0xb621bc21,0xb221b221,0x3a21ba21,0x9f21b622,0x99229922,0xb421b122,0x81229321,0x66218321,0x60236723,0xb0247623,0x320b320,0xc1230723,0x5a225e22,0x50215022,0x61215521,0xb524b822,0xb224b224,0xc724c824,0xc524c724,0x5424b824,0x51215321,0xa8215121,0xac22ac22,0x5922ae22,0x54215721,0xac215121,0x57215922,0xb623b521,0xa223b723,0x10219f21,0xa3221022,0xa521a521,0xa421a721,0xa221a421,0xab221021,0x93249824,0xa7249324,0x5324a924,0x36215421,0xeb20ec22,0xaa20a520,0xae23ad23,0x69236823,0x85231623,0xfe218621,0x8e21fe21,0xfe218d21,0x8c218d21,0x85218721,0xfe21fe21,0x89218c21,0xf320f621,0xf820f820,0x42214720,0x39214221,0x9820f621,0x8f218a22,0x1a22fe21,0x19231923,0xf9231723,0xab22b222,0xed21c422,0xcc22f322,0xec22e522,0xf5231b22,0x1722f922,0xe222e723,0x15232a22,0x622d223,0x26230623,0x4b232323,0x56235423,0x55235623,0xdc230a23,0x22232722,0xd7232223,0x8a22d922,0xb5248424,0xb824b524,0x624a224,0x2c230123,0x5a215c23,0xef20ef21,0x20f020,0x1210021,0x216121,0x60216121,0xef215c21,0x210020,0x5d216021,0xfa231f21,0xca22f622,0xc523cb23,0x9a22d123,0xda229d22,0x3022d622,0xa0259f23,0x15251525,0x9a251725,0xe522df25,0x13231822,0xd4231223,0xc924b122,0xc624c624,0xb024b324,0x5230b24,0x8922d023,0x8f229022,0xc4228f22,0xc322c322,0xc2228d22,0x8722c222,0x89228922,0xc3228f22,0x47214d22,0xf820f821,0x5020fc20,0xd321d221,0xd021d021,0x5221d121,0x82215221,0x5321d222,0x49234a23,0x51234923,0x8a235223,0x96229821,0x5d235c22,0xa2234d23,0x9c229e22,0x8f229c22,0x92219221,0xa2219421,0x8d219322,0x8e218e21,0x96219121,0xa219621,0x96219922,0x98219921,0x8e219321,0x96219621,0x95219821,0x56235521,0x34235823,0x2a253925,0x2b252a25,0x29252925,0x33252825,0x38253325,0x34253e25,0x29252a25,0x3e253325,0xa1253425,0xa223a023,0x48214b23,0x9b229b21,0x9c229822,0x9e229c22,0xed214b22,0xde23dd23,0x47234823,0x5f233a23,0x18231623,0x1d231b23,0x5f235c23,0x1b231823,0x61235e23,0x60236023,0x1b235f23,0x5c231b23,0x4c234c23,0x5e234e23,0x60235e23,0xc6231b23,0xc923c723,0xdc23db23,0x6f23de23,0x71237023,0xd023ce23,0xcf23cf23,0xd323d023,0xd223d323,0x23d123,0x1c230923,0x1a231c23,0xcc22fe23,0xcd23ce23,0xcc23cb23,0xd5232b23,0xc723d623,0x76236423,0x64237823,0x77237823,0x64236223,0x62237723,0x75237723,0xe230b23,0x72237223,0x75236223,0x1c237423,0x72230923,0x74237523,0xb230923,0xca237223,0xc323c023,0xbe23c323,0xc323bd23,0xbb23bd23,0xca23cb23,0xcc23c323,0xc323cb23,0xbb23c323,0xc323b923,0xb723b923,0xcc23ce23,0xce23c323,0xb723c323,0xb723ce23,0xd023b623,0xb623ce23,0xb623d023,0xd323b423,0xb423d023,0xb423d323,0xd323b223,0xb023b223,0xc923fb23,0xe023c723,0xfb23df23,0xe023e123,0xfb23fb23,0xd623c723,0xd623fb23,0xe223d423,0xfb23e123,0xe223e423,0xfb23fb23,0xd323d423,0xfb23e423,0xe723d323,0xd323e423,0xd323e723,0xe923b023,0xb023e723,0xb023e923,0xea23ae23,0xae23e923,0xea23eb23,0xee23ae23,0xdc23de23,0xdc23ee23,0x3e23eb23,0xee233d23,0x3e234023,0xee23ee23,0xae23eb23,0xae23ee23,0x4223ad23,0xee234023,0x42234323,0x4323ee23,0xad23ee23,0x43234423,0xac23ad23,0xa923a623,0x44234523,0xad23ad23,0xa923ac23,0xa523a923,0xa923a223,0xa023a223,0x3b235123,0x52233923,0x39235123,0x39235223,0x53233a23,0x3a235223,0x3a235323,0x54234723,0x47235323,0x47235423,0x56234623,0x46235423,0xa923ad23,0xad23a023,0x9f23a023,0x46235623,0x58234523,0x45235623,0x9f23ad23,0x9c239d23,0xfe239a23,0x9d23ad23,0x5a239c23,0x45235823,0x5a235b23,0xad234523,0xfe239c23,0xfe23ad23,0x240223,0x4f235024,0x66236723,0x68240023,0x236723,0x4f240024,0x234d23,0x5d234d24,0x68236923,0xef240023,0x69236b23,0xef23f223,0x69236923,0x5d240023,0x5d236923,0xf5235b23,0x6923f223,0xf523f923,0x69236923,0x45235b23,0x223ad23,0xad23f024,0xf123f023,0x6923f923,0x1234523,0x4523f924,0xf123ad23,0xad23f823,0xfa23f823,0x1240423,0xf7234524,0x45240423,0xfa23ad23,0xad240323,0x6240323,0xf723f424,0xad234523,0xf6240623,0xf423f623,0x7a234523,0x51257d25,0x70255125,0xb1257c25,0xb423b223,0xb023af23,0xba23b223,0xab21a622,0x2e219221,0x32223222,0x97223422,0x92219421,0x8f223221,0x8e238d23,0x46234523,0x7b233623,0x77237523,0x19231723,0x88238623,0x90238c23,0x86231723,0x91238823,0x10230c23,0x17231023,0x88238823,0x8e239023,0x8e238823,0x91239323,0x88231023,0x93238823,0xd2239223,0xd423d323,0xd231123,0x4722ea23,0x38254825,0x3d253825,0x31254425,0x30213421,0x30213121,0x28212e21,0x31226521,0x5c212321,0x27212822,0x28212321,0x31212821,0x2b212e21,0x28212721,0x96239521,0x94239123,0x92239523,0xe723e623,0xa923e923,0xa423a823,0xa423a323,0xa823a823,0xab23a723,0x2023aa23,0xa8232223,0xaa23ab23,0xa323a123,0x2723a823,0x9e232923,0xa1239e23,0xa823a823,0x2223aa23,0x27232223,0x6d239e23,0x67216621,0x6a216721,0x8a216c21,0x26212922,0x21212421,0x8a228321,0x24212622,0x88228321,0x85228a22,0x19238723,0x74256c23,0x60256025,0x61257325,0x52257225,0x60256c25,0x72256125,0x82238025,0x74237f23,0x7d237c23,0x74237c23,0x30237523,0x2e223222,0x90222e22,0x2e222b21,0x2d222b22,0x30222f22,0x65222e22,0x7623f323,0xbd23bc23,0x3023be23,0xb8233223,0xb8233023,0xc523ba23,0x2d232b23,0x30232d23,0xbc23ba23,0xc223bf23,0xba232d23,0xc423bc23,0x2d23c523,0xc123c223,0x2d23c423,0xc223bc23,0x68236723,0xa5235f23,0xa323a423,0x54225823,0x52225222,0x47214222,0x4d214721,0x69225821,0x6a236b23,0x71230e23,0x6e237323,0x71252325,0x24232125,0xc623d523,0xda23c823,0xd5232123,0xd923c623,0x1f233123,0x21231f23,0xc623c623,0xd723da23,0xd923d823,0xc6231f23,0xd823d723,0xeb23ec23,0x3023dc23,0x23242124,0x6d236c24,0x70237023,0x6e236f23,0xac22ae23,0xa822a822,0xad22a722,0xaf22ad22,0x2e22ae22,0x31232f23,0xe3233123,0xe523e523,0xe823e623,0x2e23e823,0x91233123,0xca20ce20,0xc920ca20,0xc420c420,0xb820bd20,0xaf20b820,0xab20ab20,0xae20ac20,0x9a20ae20,0xae20a020,0x8720a020,0xc420ca20,0x8d20b820,0xca209120,0x8d208920,0xab20ca20,0x8720ae20,0x8720ab20,0x86208b20,0xca208920,0x8620a220,0xb820ca20,0x8b20ab20,0x8b20b820,0xa2209420,0xb820ca20,0x9420b820,0xf1209820,0xec24ee24,0xf524ec24,0xe324f424,0xe723e423,0xe623e723,0x9e23e523,0xa0239f23,0x7923f323,0xc9237823,0xda23fb23,0xa022a323,0x9f229f22,0xbc21b622,0xac23a621,0xf523ab23,0xa23f923,0x7b227924,0x4a214a22,0x78214421,0xe023df22,0x2023d823,0x30242124,0x33242f24,0x95242724,0xa024ae24,0xf524f424,0xd824d824,0xf924c424,0x31243224,0x81242324,0x89258e25,0x8f258925,0x82258a25,0x78258625,0x8a258925,0x78258225,0x89258125,0xfc230125,0x2f232f22,0x2c232e23,0x24242523,0x24242924,0x2b242224,0x99249b24,0xbd24bc24,0x9b24bf24,0x6221c624,0xc6225e22,0x61225e21,0xca227022,0x6b21c621,0x70226d22,0x6b226922,0xc6227022,0x64226121,0x69226722,0xc6227022,0x67226421,0x1c241d22,0x51242e24,0x37234923,0x3b213d23,0x40214021,0x45214421,0x45214021,0x3f214321,0x40213d21,0x8824b721,0x6a248c24,0x44244c24,0x98229624,0x9b229b22,0x36213c22,0x93213621,0x4c229622,0x48244d24,0x44242c24,0x2c244824,0x36244824,0x31244624,0x4a243224,0x32244624,0x2c242b24,0x2b243624,0x35243624,0x32244a24,0x34243324,0x33244a24,0x35242b24,0x2b243b24,0x40243b24,0x34243724,0x4b243324,0x33243724,0x2b242924,0x29244024,0x43244024,0x33244b24,0x29242f24,0x47244324,0x4b244724,0x6e242f24,0x80216f21,0x5e246b22,0x51245124,0x4f245024,0x4e244f24,0x4d244d24,0x6b244c24,0x51246b24,0x5e244f24,0xae215921,0x5b22ae22,0xb622b621,0x5e215f22,0x6d246b21,0x64246424,0x59245a24,0x5e245924,0x57246b24,0x53255e25,0x47255325,0x5c255c25,0x64255d25,0x53255725,0x57255c25,0x5a235823,0x7216e23,0x12221221,0x15221422,0x75221522,0x15217421,0x73217422,0x12216e21,0x15221522,0x6f217322,0xab21ae21,0x4c224c21,0xb0224e22,0xb921b021,0xb021b821,0xb721b821,0x4c21ae21,0xaf21b022,0xb021ae21,0xb721b021,0x5921b321,0x5b235a23,0x6b250e23,0x51255125,0x1f257d25,0xd222e125,0x15231522,0x11231423,0x44234323,0x1b233423,0x7a217d22,0x75217821,0x1b221521,0x78217a22,0x77221521,0x6b221b21,0x6c236d23,0xa224a423,0xb824b824,0xed24c524,0x9d259124,0x98259825,0x99259f25,0x92259925,0x96259625,0x98259125,0xcf23cd25,0xd123d123,0x2523d223,0x28232523,0x2a232a23,0xd123cd23,0x8d239423,0x8f238f23,0x8a238b23,0x8a238f23,0x95238923,0x8f239423,0x95239623,0x8f238f23,0x87238923,0x87238f23,0x98238523,0x8f239623,0x9a23fe23,0xfc239823,0x9823fe23,0x8f239823,0x98238523,0x84238523,0xfc23fd23,0xff239823,0x9823fd23,0x84239823,0x98238223,0x80238223,0x9823ff23,0xff238023,0x7d238023,0xef236b23,0x5240523,0x7d23ff24,0x7d240523,0x6d237c23,0x5236b23,0x6d237024,0x5240523,0x7b237c24,0x79237a23,0x523f323,0x7a237b24,0x70237123,0x73240523,0x5237123,0x7a240524,0xf323f323,0x63236523,0x73236323,0x29240523,0x97230c23,0x99239723,0x7e239b23,0x81237f23,0x83238123,0x19231923,0x1c231a23,0x7e231c23,0x6a238123,0x6e236c23,0x6f236e23,0xf230f23,0x13231223,0x6a231323,0x59236e23,0x8231d23,0xa230823,0x55235523,0x59235723,0xb722bb23,0xa210a22,0xbd210821,0xfb24fe22,0x52250024,0xb9225422,0xb021b921,0x4e224e21,0x49224c22,0x52224b22,0x4e21b922,0x4b224922,0xc721c622,0xc621c521,0xc321c521,0x6221c021,0xc221c622,0xc021bf21,0xc321c621,0x2b21c221,0x2a23cc23,0x67216a23,0xbf22bf21,0xb522b822,0xb522bf22,0xd522b922,0xbf216a21,0xd522bc22,0xbf22bf21,0xba22b922,0x9921b122,0xc2229722,0x8221d222,0x4f228222,0x4a214a21,0x7c227b21,0x7c214a22,0xc2228122,0x4a228222,0x87228521,0x4a22c222,0x85228121,0x1921d622,0xbe211d21,0xbd22bb22,0xbd22be22,0xc122c022,0xbe22c922,0xca21d722,0xd422c122,0xd721d621,0xc022be21,0xd721d422,0xbe22c121,0xec21f222,0xc521c521,0xc921c721,0x35213421,0xed21ed21,0x3021e921,0xeb24ef21,0x6924f324,0xf256a25,0x14250f25,0x67256525,0x69256325,0x65250f25,0xa6256725,0xa823a723,0x9c259023,0x8b259d25,0x1d251b25,0x84251d25,0x86258625,0x8a258225,0x8b258a25,0x3a251d25,0xc8223c22,0xc421c821,0xc121c121,0x3a21be21,0x8e258822,0x81258125,0x76257725,0x99239b25,0x9c239a23,0x9b239d23,0x8324be23,0xd248224,0x4a252025,0x4e254a25,0xdf254f25,0xe2217121,0x7621e221,0x70217221,0x6c216d21,0x7221e221,0x6c217021,0xe221df21,0xb622b821,0x5b215b22,0xaf22ae21,0xaf215b22,0xb522b022,0x5b22b822,0xb0215b21,0x8822b322,0x90257625,0xe221025,0xc220c22,0xf220b22,0x11220f22,0xa321a322,0xc221021,0x87218522,0x71227121,0x84226c22,0x79218d21,0x78227822,0x8c227522,0x91229221,0x8e228e22,0x36229322,0x53225621,0x21216d22,0xf122f623,0x60217922,0x5f225f22,0x76225d22,0xa230d21,0x8230823,0xea22ef23,0x82217f22,0x68226821,0x7e226622,0x39233a21,0x3b233b23,0x38233723,0x4b213923,0x49224922,0x33224722,0xa4248e21,0xa724a724,0x92249324,0x9e24aa24,0x80248024,0xa8248624,0x1e220824,0x9f212121,0x9724a124,0x18221c24,0x8a213222,0x23218321,0x88222322,0x8b218b21,0x2e219021,0x92222e22,0x8f218f21,0x23218a21,0x8b222322,0x53222e21,0x4b235423,0x48216223,0x45224522,0x5f215e22,0x1321d421,0x3d211921,0x59215722,0xa422aa21,0xa122c722,0xa322a022,0xc722aa22,0xa622a122,0xaa22a922,0xa322a122,0xe122a622,0xb420e020,0xb5255a20,0xb625b625,0xb7257e25,0x5a255025,0x4125b625,0x50254b25,0x27253725,0x5f254125,0x37253125,0x9c25a225,0x8c259025,0xa225a725,0xa2258c25,0x5f259025,0x41253725,0xb6255025,0x5f25b725,0x50254125,0x8c257f25,0x5f259025,0xb7255025,0x90257f25,0x76257625,0xb7255f25,0x66225125,0x5216d21,0xf7210421,0x4c220920,0xf215221,0x24220b22,0x2220521,0x1220122,0x17210b22,0x52228221,0x49214c21,0x44214521,0x4c228221,0x4a214921,0x82214f21,0x44214922,0x12214a21,0xa0251525,0x9e25a125,0x1225a525,0xa125a025,0xa625a525,0x45251225,0xfc21fd21,0xf821fc21,0xd5214321,0xb321af21,0xa024a321,0xae24ae24,0xea24e724,0xf224ef24,0xae24a324,0xef24ea24,0xb821b724,0x7d21db21,0x93218121,0xbf21e022,0x321c221,0xac250725,0xaa24ac24,0xa824a824,0xff24fc24,0x324ff24,0x5624ac25,0x47255c25,0x44254725,0x4c254c25,0x56255b25,0x2c242d25,0xf7241f24,0xcc21f521,0x2d221121,0xc8213221,0xb222b422,0xbb22b722,0xc822be22,0xb722b222,0xc922be22,0x9f22c822,0x87228921,0x85228722,0x20219e22,0x55211d21,0x57225522,0x5c225c22,0x20212322,0x7d218121,0x1b221b21,0x22221d22,0x23222222,0x83218322,0x1b218121,0x34223722,0x32223222,0x33223022,0x38223322,0x9d219d22,0x32223721,0x39224b22,0x8b214221,0x7a217822,0x96220a21,0x91219121,0x5220221,0x5219122,0xc220622,0x91220a22,0xb220821,0x91220c22,0x8220621,0xb921a622,0xb522b522,0xa122b322,0x3d23ee21,0x7c233c23,0x99219822,0x9b219921,0xb2228121,0xb121b421,0xb121b221,0x2621ac21,0xb221ad22,0xa921a521,0xa8222621,0xa521a721,0xac21b221,0xa521a821,0xb2222621,0x78227521,0x44214422,0x3b214021,0x6f213b21,0x3b226c22,0x71226c21,0x44227522,0x3b213b21,0x72227121,0x6a246922,0x58243f24,0x10255925,0xd251025,0x54254f25,0x58254d25,0x4f251025,0x41255425,0x5e215922,0xe920ce21,0xe820e820,0xca20c920,0x822bd20,0x6a211321,0x68256925,0x70256825,0x51255125,0x6a256b25,0x43212c25,0x40224022,0x2a223f22,0x40224421,0x47224322,0x4c224922,0x43224422,0x4c224722,0x4421aa22,0xf222e922,0xde22aa22,0xed20f420,0x2f20ed20,0x2c212c21,0xde212a21,0x41253220,0x68252725,0x6f256225,0xb3256f25,0x7b257b25,0x70257c25,0x68257025,0xf2256f25,0x823f523,0x9a259924,0x17251725,0x94251925,0x92259725,0x17259925,0x97259425,0x7d227e25,0x6b216b22,0x7f216e21,0x90209122,0xdd209720,0xc7229d22,0xbe20c322,0xaf20df20,0xe520b820,0x3d213b20,0x3b213a21,0x38213a21,0x6f226e21,0x34213b22,0x6e213121,0x38213b22,0x35213521,0x6e213421,0xad20d822,0xaa20a820,0xab22a922,0xb222ab22,0xb422b422,0xaa22b122,0xc6247522,0x6120cb20,0x235e23,0x46233624,0x47234723,0x14234823,0x7420b123,0x78247824,0xba247b24,0xb120b720,0xc5247820,0xf024dd24,0xc220a24,0xe220e22,0x9f221022,0x9f220e21,0x99219e21,0xe220a21,0x9e220e22,0xa6219b21,0x8c24b424,0xbd23bb24,0x9323bc23,0x78247b24,0x78249224,0x9e247424,0x97209c20,0x77247a20,0x7c247524,0x76247924,0x7b247d24,0x7d249324,0x98249324,0x74249224,0x8e209e24,0x9e249224,0x7d247e20,0x7e249824,0x96249824,0x8e248a24,0x84209e24,0x9e248a24,0x7e247320,0x73249624,0x95249624,0x9e248424,0x81209720,0x97248424,0x95247320,0x76249124,0x91247324,0x97248124,0x9d209020,0x90248124,0x91247620,0x76248b24,0x86248b24,0x90249d24,0x9b208a20,0x8a249d24,0x76247c20,0x7c248624,0x80248624,0x8a249b24,0x9920a420,0xa4249b24,0x7c247f20,0x7f248024,0x9e248024,0xa4249924,0x9420a320,0xa3249924,0x7f247220,0x72249e24,0x9c249e24,0xa3249424,0x8f209d20,0x9d249424,0x9c247220,0x75249a24,0x9a247224,0x9d248f24,0x8d209520,0x95248f24,0x9a247520,0x75249724,0x90249724,0x95248d24,0x89208c20,0x8c248d24,0x75247a20,0x7a249024,0x8c249024,0x89248724,0x83208c24,0x8c248724,0x7a208f20,0x8f248c24,0x88248c20,0x8c248324,0x82208820,0x88248324,0x8f209220,0x92248820,0x85248820,0x88248224,0x9920a120,0x85209220,0x82248524,0xc020a124,0xc223c123,0x77257623,0xa025b325,0xa524a324,0x8b24a524,0x4e249124,0x4d234c23,0x4f234d23,0xdf235023,0x6a216c21,0xd5216a21,0xd921d921,0x7121db21,0xdf217121,0x7216a21,0xf2210621,0xb6248d20,0xe124b924,0xe821e421,0xcc21e821,0xdc21dc22,0xd21e321,0xdd220d22,0xde21de21,0xe821e121,0xdc21e821,0x5a220d21,0x4b255025,0x41254b25,0x42253225,0x5a25b425,0x32254b25,0x6e254225,0x66213122,0x66226e22,0x6c226822,0x6e226f22,0x68226e22,0xda226a22,0xcc20cf20,0x62245f20,0x5b245b24,0x60245c24,0x58246024,0x5a245a24,0x61246424,0x5f246124,0x5b245b24,0x5a246024,0x99209a24,0xe120a120,0xac20ae20,0xad25b020,0x71257125,0xb1253025,0x28225f25,0x5c225c21,0x56225722,0x56225c22,0x5d225b22,0x5c225f22,0x9924bc22,0x94249424,0xb9248f24,0xf221124,0x26212622,0x2d212921,0xaf20ab21,0xad20e420,0x9e249c24,0xaa249e24,0xe024ac24,0xbe20df20,0xb424b720,0xa624a624,0xc424f924,0xc024c124,0xa624b724,0xc124c424,0xc824ca24,0xb224b224,0xcc24af24,0xc924cb24,0xb124b124,0xcd24be24,0xcc24cf24,0xaf24af24,0xbd24bf24,0xcd24ce24,0xbe24be24,0xd024bb24,0xd220b224,0xd120d120,0xaa20ec20,0xd024d120,0xbb24bb24,0xb724ba24,0xc024b724,0xd224d224,0xbb24d124,0xb23fe24,0xb9240924,0xb324b624,0xc624b324,0xc324c324,0xb924c224,0xc211124,0xcf21cf21,0x6d227021,0x6d21cf22,0x77227322,0xcf211122,0x77227621,0xcf21cf22,0x74227321,0xee24ec22,0xe924e924,0xc250b24,0x63236225,0x7f236523,0xf4218021,0x8621f421,0xf4218521,0x84218521,0x7f218221,0x7121f421,0xe021db21,0xe521e021,0xeb21eb21,0x7121e221,0xbb20d621,0x2220b520,0x1f211c21,0xdd211f21,0xde20de20,0x25212a20,0x22212521,0x6c211f21,0x61245f24,0x64246124,0x6d246d24,0x4c246b24,0x6a244c24,0x69246924,0x67246824,0x61246c24,0x69246d24,0x6c246724,0x4c246d24,0xa3246924,0x9820a220,0xe624d420,0xe524e524,0x13251124,0x1324e525,0xd9251625,0xe524d424,0xde24e124,0xd524d924,0xe124e424,0xd624da24,0xdd24d524,0xda24dc24,0xf024f724,0x24dd24,0xf724fb25,0x6250a24,0xeb250025,0xa24e824,0xf324fa25,0xe24eb24,0xfa251f25,0xe250f24,0xfa24fa25,0xa24eb24,0x250a25,0xf724f725,0xda24dd24,0xd524da24,0xe124e124,0xe524d924,0x1624e524,0xe1251825,0x1824e524,0xf7250a25,0xf24da24,0xa24fa25,0xf251425,0xe1250a25,0x1a251824,0x1a24e125,0x10251c25,0xa251425,0x10250d25,0xda250a25,0x1c24e124,0x1c24da25,0xd251e25,0xda250a25,0x1e24da24,0x4b252025,0xd230a23,0x14231123,0x4a234823,0xd234b23,0x11230d23,0x38234823,0x49233723,0x48230d23,0x49233823,0xd234a23,0x14233623,0x15231523,0x33232323,0x34233323,0x35233523,0x15233623,0x1250423,0xfd24fd25,0x1f24fa24,0x1f24fd25,0x8251d25,0xfd250425,0xc24ec24,0xd8250825,0xec24f524,0xd724db24,0xe024d824,0xdb24df24,0xe224e324,0x1124e024,0xe324e525,0x11251224,0xe324e325,0xdb24e024,0xd824db24,0xec24ec24,0xfd250824,0x1d24fd24,0xec251b25,0x1b24fd24,0xdb24e325,0x1524ec24,0xe3251225,0x15251724,0xec24e325,0x19251b24,0xe3251725,0x4924ec24,0x3e253f25,0x38253e25,0x48254825,0x49254e25,0x3c213625,0x9b229b21,0x3e214122,0x32213721,0x9b229221,0x37213e22,0x36229221,0x89229b21,0x88258e25,0x96258825,0x92259225,0x93259725,0x89259325,0x1a258825,0x24251825,0x22252125,0x1a252d25,0x21252425,0x2f252d25,0x2d251a25,0x8a212921,0x8c228a22,0x91229122,0x32229222,0x2d213221,0x67228a21,0x65246624,0x63246524,0x62246224,0x6c245f24,0x67246c24,0x44246524,0x35234523,0x42224623,0xc821c822,0x41223d21,0x45224122,0x90224622,0x8b238c23,0x45254623,0x55253f25,0x34245624,0x85258d24,0x52255225,0x61257225,0x9b256125,0x95259525,0x52258d25,0xb820e525,0xa020bd20,0x8820a120,0x40253520,0x3d253c25,0x40233e23,0x3f234023,0x33233c23,0x2f223022,0x12222f22,0x15211521,0x33211c21,0x1a251c22,0x36252f25,0x3b252c25,0x2f251c25,0x3b253625,0x1c253c25,0xd0230f25,0xb022d422,0xa121a022,0xca23c021,0x9c23c423,0xa425a825,0xa925a425,0x9e25a525,0x9825a125,0xa525a425,0x9d259e25,0xa4259c25,0x98259e25,0x78259d25,0x84258625,0xea232e25,0x3023eb23,0x23257125,0x21252325,0x95252425,0x98209d20,0xa424a220,0x48248e24,0x53254725,0x58255325,0x4d254d25,0x48255425,0xdd24dc25,0x2724c524,0x25253725,0x74252625,0x27256c25,0x26252525,0x43256c25,0xb5252725,0x81248424,0x7b20ba24,0xd247d24,0x1c240e24,0x1c240d24,0x15241d24,0xb240924,0x13241f24,0xb241524,0x1d240d24,0x1f241d24,0xed241524,0xf724f024,0x27242624,0x51243324,0x59245e24,0x53245d24,0x51245224,0x5d245924,0x40253a24,0x39253525,0x3e253425,0x35253a25,0x3f253925,0x3a254525,0x3e253925,0x1c253f25,0x3e213722,0x28213e21,0x9222122,0x46224a21,0x45224622,0x46224822,0x4d224822,0x9225022,0x51224621,0x50211622,0x4d224622,0x4f224f22,0x50225122,0x67256322,0x5d255d25,0x56255c25,0x62256625,0x5d256825,0x66255625,0x69256825,0x63256325,0x66255d25,0x9f239d25,0x2b232923,0x1f242224,0xf223ef24,0xaa240723,0x1325ab25,0x11251325,0x12251225,0xa925a625,0xa425a925,0xaa25aa25,0x12251325,0x1e241c25,0xf7242824,0xf4218621,0x8021f421,0x7c217c21,0xe521eb21,0xe5217c21,0xf521e721,0xf421f721,0xf521f221,0xf421f421,0xe7217c21,0xf221ec21,0x7521f421,0x22252e25,0x21252225,0x23252325,0x6d256e25,0x75256d25,0xc252225,0x98239623,0x73237223,0xbb236323,0xb921b821,0x5921b921,0xc021c022,0xbb21bf21,0x7e227d21,0x1b211b22,0x11211421,0x77211121,0x7a227a22,0x1b227d22,0x84228621,0xac217322,0x6d25a325,0x6e256d25,0x3e25ad25,0x46214121,0x29214621,0x87222822,0xb024b124,0x1f22fa24,0x31233123,0xfc232f23,0xb025af22,0xb125b125,0x13251625,0xab251325,0xaf25ae25,0x1325b125,0x5a25b525,0xb425b425,0xb2254225,0xb6257e25,0xb525b525,0xb225b425,0x8b217825,0x86228622,0x75217422,0xb520d721,0x5920ad20,0x58245a24,0x57245824,0x56245624,0x54245524,0x53245424,0x5d245d24,0x58245924,0x56245824,0x97245424,0x9a239823,0x51211623,0x53225322,0x57225622,0x55225722,0x67211622,0x64216621,0x5f216221,0x6722b621,0x62216421,0xbf22b821,0x62216722,0xb822b621,0xa5248b22,0x1324a824,0x12221422,0x7221222,0xd220d121,0x12221320,0x95208c22,0xe0209420,0xc922c822,0xd322c922,0x522db22,0xf241024,0x9f25a024,0xa8259825,0xa2259c25,0x9524ae25,0x96249624,0xab249824,0x58255924,0xe7255325,0x25232822,0xa825a423,0xa325a325,0xae25ac25,0xaa25ae25,0x6425a425,0x14256525,0x10251425,0x5e255925,0x64255725,0x59251425,0x20255e25,0xb023ae23,0x69246823,0xe6243c24,0xc420bd20,0xa322a620,0xbc21bc22,0xc121be21,0x28253321,0x4c254c25,0x3d254425,0x38253d25,0x85253325,0xb7248824,0x9f228924,0x4921a221,0x20254a25,0x1e252025,0xe1254625,0x3123e223,0xab21c423,0xa922a922,0xc122a622,0x42246621,0xd5244524,0xca24d624,0xc5229524,0xc422c422,0x90228f22,0x97229422,0xc422c622,0x94229022,0x9522c622,0xdd22c422,0xc820dc20,0xc320c720,0xdd20de20,0xc720c820,0x67255d20,0xf256525,0xe237123,0x97219423,0x7d22a521,0x7e238023,0x39252a23,0x35253525,0x2c253b25,0x36252c25,0x2d252d25,0x2e252225,0x2a252b25,0x2d253525,0x2b252e25,0x35252b25,0x48252c25,0x4f255425,0x5b231d25,0x33235d23,0x22211c22,0x7c20a721,0x88247f24,0x8b238a23,0xdc232723,0x7f22e622,0x87257e25,0x80258725,0x8d258d25,0x9b259525,0x8d258725,0x8c259b25,0x87257f25,0x5b255525,0x31254c25,0x55255f25,0x37252525,0x74253125,0x25252625,0x60257325,0x73257425,0x25257425,0x55253125,0x31254c25,0x28254c25,0x8c25a725,0xa7258725,0x9b258725,0x31252525,0x73252825,0x28252525,0x9b25a725,0x61256125,0x28257325,0xab22bc25,0xa821ae21,0xa324a524,0xf224a324,0xf624f624,0xa824fc24,0x1121a324,0x1c221822,0x26222122,0x1821a322,0xa9221c22,0xa321a521,0x26221c21,0xac21a922,0x94229721,0x8f208e22,0x1d209220,0x7d251f25,0x79257a25,0x1d258325,0x7a257d25,0x84258325,0xee251d25,0xa124f124,0x9f24a124,0x8e24e924,0x8621fe21,0xf7218621,0x8621fa21,0xff21fa21,0x8e219121,0x1218621,0x91220222,0xff218621,0x93220121,0x19259425,0x1b251925,0x8f258b25,0x93258925,0x8b251925,0xae258f25,0x524ab24,0xe7250925,0xb24ae24,0x9f24e925,0xad249f24,0xac24ac24,0xb250724,0xa924ab25,0x224fe24,0xab250525,0xc922d324,0x222c122,0x4210321,0x65210421,0x63216321,0x1216121,0x2210121,0x8a210421,0x86208920,0xcf24d320,0xbd24bd24,0xb924bc24,0xc224b924,0xb824d324,0xba25b925,0xb925ba25,0x3825b825,0x3425bb26,0xe825e726,0xdf261f25,0xf0260025,0xed263325,0xf225ee25,0xf125f025,0xf425f325,0xf625f525,0xf525f325,0x19261825,0xd9261626,0xfc25da25,0x27260f25,0xd25ef26,0x16260b26,0x15261826,0xd4260b26,0xff25d325,0x38263725,0xdf263926,0xde25e025,0x44261025,0xef264026,0x4a261625,0x2625f626,0x2625f226,0xf2262526,0x4a260425,0xdf260526,0xec262f25,0x1c260225,0xbc260326,0x45260e25,0x2c25dd26,0x1a25c126,0x3d263426,0x2f261d26,0x1025df26,0x1d262f26,0xeb263b26,0x3625ea25,0x4d260e26,0xdd262c26,0x5125dc25,0x4d263626,0xe525e626,0x37264f25,0x46264e26,0x34263d26,0x2825bb26,0x1c264a26,0x5325d126,0x3e265426,0xbc260e26,0x3925e525,0xed263826,0xe4263325,0xed25e625,0x1f25e425,0x36263126,0x1f263126,0xc3264d26,0xc625c725,0xd625fa25,0xdb25f725,0xbd260525,0xcb25c925,0x2125ca25,0xc4262326,0xfd25f825,0xd525fe25,0xfb25fc25,0x3425ca25,0xd7265526,0xe265225,0xb261926,0x36262726,0x1f265226,0x3525e826,0x1d260e26,0xd2264926,0xe925ea25,0x5925e025,0x5a265b26,0xe125c626,0x13263125,0x1f264d26,0x2b25bf26,0x4925df26,0xd225ff26,0xd325ff25,0xf225d225,0xf0262525,0x4c262625,0xd4262426,0xd225d025,0xc225dc25,0x2125db25,0x3825cd26,0x3725e626,0xde25e526,0xe125e025,0xc225e125,0x1225c325,0xec261326,0x4d263125,0x261126,0x3260126,0x2260126,0xec260326,0x1c261d25,0x7260626,0xcf260426,0xc260b25,0xe6265026,0xef265625,0xf25c225,0xce265026,0x1725c125,0x2025d126,0xcf25f126,0xb262725,0x16261526,0xb261826,0x1d261926,0x1f261326,0xe7261e26,0x20261f25,0xe225d026,0xfd262325,0x625cc25,0x4264a26,0x1b260026,0x3260726,0x1261c26,0x27262b26,0x3225c126,0xee263326,0x45264225,0xe9263126,0xde25ea25,0xc7263a25,0x825c825,0x1b260726,0x3825bb26,0x43263d26,0xcd25ce26,0xff25e225,0x4c261725,0x2425f226,0xc5260826,0x32260725,0xe425c626,0x22262125,0x1f262326,0xee263526,0x41264225,0xf263c26,0x3925c726,0xe6263426,0xdc264f25,0x2c264b25,0x2425f126,0xdf25f226,0xbe25e325,0xd125d225,0xc0265425,0x4b263925,0x4625c226,0x4725c826,0xd8264826,0x1a25cb25,0x4c25e826,0xf625f326,0xd8264725,0xe6263e25,0x56265525,0xf825fc26,0xfd25fb25,0xfe262125,0x58264925,0x4d265a26,0x51261226,0x5625e526,0xdf263426,0x11264125,0x30264026,0xda262f26,0x2a25ec25,0x45263e26,0xf4261126,0xf525f625,0xf625f525,0x11260c25,0x10264426,0x9260626,0x1c264a26,0x1260a26,0xe125de26,0x1125c325,0x51260e26,0x2f25ec26,0xec262a26,0xdf261425,0xf925fc25,0xdf25f825,0x44262f25,0x5d25ee26,0xc6265e26,0xe125c725,0xbd261525,0x54261625,0x53265f26,0x28265326,0xf5261d26,0xc25cf25,0xf025be26,0x38262525,0x3d25e426,0x1425df26,0xbe25bf26,0x2262525,0xbf25df26,0x925be25,0xdf25db26,0x9260825,0xdf25df26,0x225be25,0x1260226,0x260a26,0x4260326,0x225df26,0x4260a26,0xc5260726,0xc5260425,0xdf25f025,0x260a25,0x825e326,0x25df26,0xf0260426,0xe325f025,0xfc25df25,0xd925d525,0xd825d925,0xfd264825,0xf925f825,0xf925fd25,0xd925fc25,0xda264825,0xfd25da25,0x4a25fc25,0xef25dc26,0x2725ef25,0xcf25cf26,0x16261825,0x5261626,0xef264a26,0x1625cf25,0x52265126,0x28263626,0xed25ee26,0x4b25ed25,0x4a264a26,0x8260926,0xa261b26,0x4a261c26,0x1b260826,0xed262826,0x1c264a25,0x28261d26,0x1b264a26,0xef261c26,0xdb25dc25,0x925db25,0x6260626,0x5260426,0x16260526,0xbd25bd26,0xdb25ef25,0x625db25,0xe260526,0xe8261e26,0xe725e825,0x35263525,0xe261a26,0x1f261d26,0xe264926,0x3d261a26,0x3d260e26,0x3125e426,0xe264526,0xe025e126,0x3125e925,0xe4260e26,0xe925e125,0x31263125,0xc625e426,0x2925bf25,0x26262b26,0x4c25f626,0x25262426,0xd2262626,0xd425d325,0xe225d425,0xd025d025,0xd225d125,0xdd25dc25,0xd725c225,0x3e260e25,0xd8263e26,0xd525d925,0xf825fb25,0xd9263e25,0xf725d525,0xd725d625,0x3e25d725,0xf825d526,0x2125fe25,0xd525d726,0xca25f825,0xf725cb25,0xd725f725,0x2125f825,0xcc25c426,0xf825f725,0x38262125,0xca263426,0xf725ca25,0x21262125,0x4325cc26,0xce25cd26,0x21263825,0xcd264326,0xca263825,0xe6262125,0x3725e425,0x4825ec26,0x3e264726,0x12261126,0x4725ec26,0x13263e26,0xec261026,0x3e25ec25,0x11261226,0x31264226,0xe264d26,0x1c261126,0xec261426,0x1025ec25,0xcf261d26,0xb262725,0xed265026,0xef25e625,0xc225db25,0x2c25c125,0x39264b26,0x5025ed26,0x4b25c126,0x43263926,0xc125cc26,0x3825e525,0xce25ce26,0xc1264325,0x3925c125,0x50265026,0xce25e526,0xee261725,0xd1262825,0x2025d025,0x28261726,0x2725d126,0xbf262926,0x1425bf25,0x1c261c26,0x25260226,0xf025f126,0xbf25c525,0x25261c25,0x2525bf26,0xd25f126,0x19261626,0xd260b26,0xdb261926,0xbd25ef25,0x18261525,0xdb25cf26,0x1525bd25,0xdb25c526,0xcf261525,0xc25f525,0x19260b26,0xcf262726,0xb260c25,0x1525c526,0x2725cf26,0xf125bf26,0xc525f125,0xcf25cf25,0x27260b25,0x21262226,0xfd25fd26,0xcc25da25,0xc425cc25,0x23262325,0xfd262226,0x3260425,0x260026,0x1b260a26,0x4260726,0xc1260026,0xda25cc25,0x2a25da25,0x2b262b26,0x27262926,0xf262726,0xc125c126,0x2b25da25,0xe261e26,0x1e263626,0x31263626,0x3525ee26,0xe725e726,0x31261e25,0xde25e926,0xe725c325,0xe9263125,0x1a263425,0xee25ee26,0xe925e725,0xc325e925,0x3225c625,0x3325e426,0xc625e926,0x33263225,0xee263426,0xe925ee25,0x42263225,0x45264426,0x20261726,0xe225e226,0xff25d425,0x4925ff25,0x4c261726,0xf225f626,0xe3260825,0x1f25c525,0x3525e826,0x2d262e26,0xdd25dd26,0xf25c125,0xe125c226,0xc725c725,0x4e263a25,0x4e25c726,0xf263726,0xc725c226,0xdd262e25,0x39260f25,0x2e25c026,0x3725c726,0x39263926,0xf262e26,0x33263426,0xdc25e626,0x4b264a25,0x2525f126,0xdf262426,0xc525db25,0xf025e325,0xdf25be25,0xe325c525,0xbf25be25,0xc725df25,0xc225c325,0x2d25dd25,0x2e262e26,0x4b25c026,0x3925ed26,0xdd25e526,0x4b262e25,0xe525ed26,0xc2263725,0x4b25dd25,0xed264b26,0x46263725,0x3a264e26,0x37264b26,0xc8264626,0xc225c725,0x3a264625,0xc225c826,0x46264b25,0x52261f26,0xd625d726,0xf725fa25,0xd7261f25,0x1e25d625,0xd6261f26,0xf725d625,0xcb25cb25,0xca25c925,0x5525ca25,0x33263326,0x1a25ee26,0x35261a26,0xe825e826,0xd6261e25,0xca25cb25,0xe8263325,0xcb25d625,0x3325cb25,0x4c261a26,0xf325f426,0x3325e625,0x5a265526,0x49261726,0x57264926,0x58265826,0x5a265926,0x13264d26,0x34261226,0xe5264f26,0x5025e525,0x56265626,0x34265526,0xde25df26,0xeb25ea25,0x3c263b25,0xea25df26,0x1325eb25,0xdf261d26,0x10261125,0x41261326,0x11264226,0x3c25eb26,0x11264126,0xdf261326,0xeb25df25,0x2f264125,0x40261026,0x3f264026,0xda263026,0xec264825,0xbc263e25,0xf4264525,0xf6264c25,0x45261125,0x51264426,0x11261226,0x52260e26,0x3c265126,0xea263b26,0xe025ea25,0xdf25df25,0x2a262b25,0x30262f26,0xdf263f26,0x2f262a25,0xea263c26,0x4225df25,0xdf263c26,0x3f262f25,0x44264026,0xdf264226,0x40262f25,0x49264426,0xee261f26,0x1725ee25,0x5c265a26,0x5d265b26,0x5a25ee26,0x57265c26,0xee264926,0x58265925,0x5e265e26,0xee265726,0x5c25ee25,0x5d265d26,0x5e265926,0xd2261d26,0x53265425,0x2825d126,0x54261d26,0x38265326,0xe4263726,0x87268625,0x9c268526,0x9b269d26,0xb426b326,0xcb26b526,0xca26cc26,0xcd269226,0xd4269326,0xd326d526,0xe126e026,0xe226df26,0xec26e326,0xe226e326,0xfc26ec26,0xfb26fd26,0x11271026,0x1e270f27,0x8e268f27,0x12272626,0x3b272727,0x3a273727,0x4b274a27,0x69274927,0x68276a27,0x79277827,0x7e277727,0x83268427,0xbd278b26,0xf3274c26,0xa1279b26,0x8e278c27,0xa7278d27,0xa927a827,0xb727b627,0xbb27b527,0xbc268c27,0xbf27be27,0xaa27bd27,0xb127b227,0xdc27da27,0xe427db27,0xe327dd27,0xe727e627,0x3f27e827,0xef273e27,0x4a274b27,0xf9274927,0xf427f527,0x5227ff27,0x8275327,0x7280928,0xe280c28,0x6c280b28,0x6d276e27,0x19281827,0x48281728,0x1b281c27,0x26282528,0x2a282428,0x29282b28,0xe280c28,0x3b280d28,0x3a283c28,0x7f285028,0x51278027,0xf426f528,0x54285326,0x61285228,0xfb26fc28,0x64276226,0x60276327,0x61286326,0x91286c26,0x86286b27,0x88288728,0x97287d28,0x9f287e27,0xa428a528,0xc427c928,0xa726c526,0xca27cb28,0xac28ab27,0xaf28aa28,0xd728b028,0xb6284229,0xc0284128,0xc228c128,0xc327fd28,0xc927fe28,0xc528c628,0xcc28cb28,0xd028ca28,0xd128d228,0xe228df28,0x4027e127,0xef273f27,0x9a274227,0xe7269926,0xe628e828,0xf927f528,0xec27f427,0xee28eb28,0xf328f228,0x2f28f828,0x2e28f428,0xf728f628,0xf328f528,0xf828f228,0xa626a728,0x50276026,0x5128fd27,0xb290a27,0x16290929,0xf281029,0x2126a528,0x22292029,0x1f291e29,0x1a275829,0x25275728,0x24292629,0x1d292729,0xf4290829,0x2e282f28,0x2f292e28,0x6e292d29,0x6f269128,0xf8293328,0xc4283926,0xc527c926,0x3f284026,0xae293428,0x9e269f28,0x4a294d26,0xb1284928,0xb2294c26,0x13295826,0x78294f27,0x60294228,0x64267329,0xac267229,0x6b296a26,0x66278629,0x5c296329,0x5b296c28,0x70296f28,0x3c266f29,0x72297129,0x40287429,0x9b293f29,0xa126f327,0x8a298b27,0x8b299329,0x88297d26,0x92297826,0xb299e27,0x75270a27,0x9d289e28,0xa428fe28,0xad27ae27,0xab29aa27,0xac29a929,0x82288029,0xae29ad28,0xba29af29,0xbb26bc26,0x89288a26,0xb529b228,0xb429b729,0x94289229,0xcc289328,0xcd27ce27,0xa129bc27,0x1828a028,0x17289727,0x9929bf27,0x8f29c028,0x8e271e26,0xc029c426,0xba29c327,0xbe26bf29,0xc528aa26,0xc728ab29,0xc727c627,0x95289629,0xa1299f28,0xa029bc28,0xed28e928,0x2b27ec27,0xbf29d527,0x2b29d528,0xdf28bf27,0xdd29de29,0xb328b429,0xe227d328,0xe129e529,0x7b277629,0x98277a27,0x5a29b926,0x8028cf29,0xef267f26,0xee29f029,0x3227e029,0xcf273127,0xe028e129,0xd928d728,0xfc28d828,0xfb28ea29,0xf628f729,0x9a28f528,0x99274226,0x7e267c26,0x267d26,0xff2a062a,0x4728ed29,0x6274627,0xff2a002a,0x58281a29,0xde275727,0xd726d826,0xfb28ff26,0x2290028,0x6280128,0x132a1128,0x59291229,0x5a281127,0x11291327,0x5429122a,0x1226d927,0x5426d92a,0x5d2a1227,0x5e275f27,0x13274d27,0x102a152a,0xf291628,0x1826ee28,0x2d291729,0x2c291928,0x1a291b28,0x26291c29,0x24282528,0x172a1a28,0x262a182a,0x24292529,0xeb26e929,0x1626ea26,0x1529142a,0x70276a29,0x23276826,0x31283229,0x302a1c28,0x302a1b28,0x1b2a1c28,0xa226a02a,0x2926a126,0x2a292c29,0xe7276529,0xd726e826,0x9b27d627,0x3228f928,0x1f28fa29,0x692a1e2a,0x35277c26,0xd2277d29,0xd829d129,0x89287b29,0x84278827,0x83277e26,0x68266526,0x4b2a2726,0x262a2328,0x9c269d2a,0x28293e26,0x6626672a,0x5126f526,0x7726f428,0x78267926,0x31294b26,0x49293029,0x4a295b29,0x86296629,0x64296327,0x72267329,0x53285426,0x1d285228,0x8292729,0x85278329,0xd1278427,0xd22a2d27,0x582a2c27,0x23285728,0x26284b2a,0x52294e2a,0x2e2a1d29,0x8029812a,0x56285529,0x342a3328,0x352a572a,0x412a402a,0xb62a3f2a,0x73278f26,0x65266629,0x7d2a2826,0x88268929,0x4b2a4a26,0xfd2a4c2a,0x51274e28,0x59279a27,0xa6295729,0x5a266d29,0xd028ac2a,0x222a5b29,0xd329a22a,0xa427ae29,0x4e27ad27,0xa729a82a,0xa627a529,0xc127a628,0xc029c226,0x832a4f26,0x7c288528,0xb427b328,0xb027ba27,0x9027af27,0x91288f28,0xa629a528,0xd32a5a29,0x2228a929,0x1828972a,0x5c271727,0x632a5d2a,0xc427c02a,0x5129c329,0x342a572a,0x3429792a,0x4c2a352a,0x4a2a5c2a,0x5e27c42a,0x4027c52a,0x5528562a,0x3c2a3d28,0xcb2a502a,0xca28a727,0xd428b227,0x9528b129,0x96286127,0x86298427,0x562a6129,0x862a612a,0xd92a6729,0x6529da29,0x562a612a,0x562a652a,0x2f29852a,0x662a302a,0x852a652a,0xd9298429,0xda2a6729,0xb527d429,0x6a27d528,0xbb28bc2a,0x6a28be28,0xe328bb2a,0x6b29e429,0xcb26cc2a,0xe826ca26,0xe628c027,0x2c272d27,0xf1272e27,0xca28cb29,0x3029db28,0xc7272f27,0xc829e828,0xef29f028,0xcd29ee29,0xce2a6f28,0xcd2a6f28,0x8028ce28,0x7f28cf26,0xe427dd26,0xf327e327,0xf429f929,0xf828d429,0xd02a6e29,0xd126d226,0xe22a0126,0xe32a0428,0xe428e528,0xfc28ea28,0xfa29fb29,0xfb27fc27,0xfe2a0327,0x622a0529,0x64266326,0x89268b26,0x6a268a26,0x6c266b26,0x16267526,0x78267627,0x77267926,0x7e267d26,0x94267c26,0x97269626,0x9c267426,0xa9268d28,0xac26ab26,0xa226a126,0xa326a026,0x6b26a426,0xaf26ad27,0xdd26b026,0xdc26db26,0xb826b726,0xbb26b926,0xba26bc26,0xc726c626,0xd126c826,0xd026d226,0xf126ef26,0xde26f226,0xd826d726,0xe526e426,0xea26e626,0xe926eb26,0xfe270126,0xfe270026,0x26ff26,0x13271527,0x3271427,0x5270427,0x6270527,0x7270327,0x9270827,0x39273727,0x19273a27,0x1b271a27,0x20271f27,0x28272127,0x2a272927,0x2e272d27,0x3e272c27,0x41274027,0x4f275127,0x44275027,0x43274527,0x5b275927,0x87275c27,0x8a278927,0x5f275e27,0x62275d27,0x64276327,0xe8276527,0x6d26e726,0x6c276e27,0x70276f27,0x73277127,0x72277427,0x7b277a27,0x7c277627,0x35277d27,0x2278129,0x84278227,0x83278527,0x93279427,0x8c271327,0x8e278d27,0x9526fd27,0x9a279627,0x9826fa27,0xed27eb27,0x9c27ee27,0x9e279d27,0x9927a027,0xb1279f29,0xaa27b227,0xc227c127,0xf27c327,0x10271127,0xce27cd27,0xcf27cc27,0xc927d027,0xd227d126,0xde2a2d27,0xe527df27,0x45274327,0x274427,0x3280228,0x93269228,0x6426cd26,0x62266326,0xf727f626,0xfb27f827,0xfa27fc27,0x5b275927,0x6281127,0x280128,0xa280828,0xc280928,0xe280d28,0x22282028,0x14282328,0x12281328,0x1e281d28,0x27281f28,0x22282328,0x36283428,0x67283728,0x33276627,0x3f283d28,0xd284028,0xe283827,0x5926aa27,0x3a285a28,0x3b283c28,0x47284628,0x72284828,0x73277427,0xf7284f27,0x5d26f626,0xae26af28,0xb3287626,0x6426b526,0x66286528,0x68286728,0x69286928,0x67286a28,0x6c286d28,0x75286b28,0xb270a28,0x9e285f27,0x78286028,0x72287928,0x71287028,0x87287a28,0x88287b27,0xb4287c27,0x7f27b327,0xb927b828,0x82288127,0x84288028,0x83288528,0x8a288928,0x6e288b28,0x91286f28,0x8f289126,0x93289028,0x92289428,0xc226c328,0xc3289826,0xc127c227,0x9c268d27,0xba267428,0xb928b828,0x29272a28,0xbe272827,0xbd28bc28,0xd828c728,0x4827d927,0x1c281b27,0xdc28da28,0xc828dd28,0xc626c726,0x6d28d526,0xd728d629,0xd928d828,0x40273e28,0x3327ef27,0xc4273427,0x3428c428,0xe3273327,0xe528e428,0xed27eb28,0xd328e927,0xd426d526,0xfc28fd26,0xce274e28,0x726cf26,0x7a27f32a,0xf8267b26,0xf627f727,0xe128df27,0x427e227,0x3290229,0xfe285f29,0xff289d28,0xfb290028,0x66283328,0x5276727,0x82268129,0x7290626,0xde28de29,0x6290728,0xfc274e29,0x70274f28,0x68276926,0x56275527,0x9290d27,0xa290b29,0x18291729,0x1b276129,0x1a291c29,0xe126df29,0x2026e026,0xa5292129,0x28282226,0x29282729,0x34283529,0x36292b28,0x43292c28,0x6279d29,0x35273627,0xb2277527,0xb1294c26,0xad295426,0x4726b026,0x99294e29,0x43284c27,0x78284428,0x79277727,0x4e295527,0x5f284d28,0xfe289e28,0x62295c28,0x61296129,0x5c296229,0x6a293629,0x44296528,0x72287329,0x67293728,0x9270929,0x37270827,0x8293829,0xfd270727,0x95286126,0x9d293a27,0x65279c27,0x72293c28,0x6d28d629,0x3b28d529,0xc270629,0xa2297427,0xa2296e27,0x6e297427,0x75294829,0x76297629,0x48294929,0x59297829,0x89297729,0x7c268b26,0x7b297a29,0x89297929,0x8a297c26,0x38293a26,0x82279a29,0x81298029,0x7e279e29,0x8b293929,0x8a298929,0x85298429,0x8e298629,0x8d298c29,0x90299129,0x97299d29,0x96299529,0x8a268b29,0x4c297c26,0x45284328,0x85268628,0x90268726,0x9d2a6229,0x6d29a529,0xa029a626,0x9429a129,0x71287a29,0x94287028,0xa029a129,0xbe29a329,0x5627bd27,0x9428ad29,0x93271527,0xb1297727,0x8e288c29,0x8829b028,0xbe288728,0x11291029,0x86288729,0x8b29b028,0x8929b228,0x20272128,0x80271f27,0x8129ac28,0xbc29b328,0xb9268c27,0x7f27b827,0xb629b528,0xb829b729,0x1c271d29,0x7e287d27,0x76279728,0x75271626,0xb027af26,0xbb27ba27,0xa827a929,0xc2289827,0xa326c326,0x9028a228,0xc0289926,0xa9289a29,0x88297727,0xcc272328,0xc029c829,0xc129c226,0x26271226,0xae29c627,0xc129ad29,0x24272529,0xa427c827,0x9f28a528,0xcb29c928,0xca29ca29,0xc929cb29,0xce287629,0xa9287729,0xaa29ab29,0xc528ac29,0xe029d029,0xcf28e128,0xa929a229,0xc829d328,0x25272427,0xc727d827,0x7127d928,0x6f277027,0xd026c927,0xaf27cf27,0xb029d728,0xb6284128,0x2f284228,0xdb273027,0xbd28be29,0xdf29dc28,0xde29e029,0x7280829,0xc9280928,0xc628c528,0x3c29e928,0xdb273d27,0xec29eb28,0xc128c229,0xec27e728,0xdb28dc29,0xf528d428,0xd229f829,0xd129d829,0xfe2a0229,0xb12a0329,0xb229d428,0xdf27e528,0xfe27de27,0x52a0229,0x9726952a,0xe7269626,0xe828e628,0x42a0128,0x4828e22a,0x46284728,0x70276928,0x7b276a26,0xf3267a26,0x47274627,0x728ed27,0xce26cf2a,0xeb28ee26,0xf228ec28,0xf027f127,0xf028ef27,0xf128f128,0xef28f028,0x6b266c28,0xf0266a26,0xf227f127,0xb9295a27,0xb5269829,0xb729b429,0xb2a0929,0x52a0c2a,0x8280428,0xf2a0d2a,0xc2a102a,0x92a0f2a,0xd2a0a2a,0x22a0b2a,0x3290429,0x2280029,0xff280628,0x52275327,0x42a0827,0x60280528,0xa726a627,0xfc274f26,0xc275028,0x81268229,0xdd26db26,0x6126dc26,0xed26ee27,0x56290d26,0x18275527,0x19281728,0x13281228,0x15281428,0x14281628,0x162a142a,0x5a281528,0x5b281127,0x15274d27,0x2c2a132a,0x2d291928,0x1e281f28,0x61281d28,0x1726ee27,0x2b282929,0x28282a28,0x19292828,0x212a192a,0x20282028,0x19282828,0x1f29222a,0x1a291e29,0x172a182a,0x152a162a,0x6b291429,0xa326a427,0x2f292d26,0xe6292e29,0xe426e526,0x4f287926,0x2b2a1d29,0x37283429,0x2c283528,0x20283629,0x6929682a,0x32283129,0xa2292328,0xa828a929,0x70266f28,0x3d296f29,0x3e283f28,0xfa28f928,0xf7293228,0xf629fa29,0x1e266929,0xae2a1f2a,0x9f269e28,0x39293326,0xe26f828,0xd283827,0x1029be27,0x3d29bd29,0x34284028,0x4c284329,0x45284528,0x51295229,0x6126fd29,0x2126fb28,0x6829692a,0x49294d29,0xb9284a28,0xb726b826,0x35277526,0x53273627,0x5d285e29,0x89278728,0xb0287b27,0x54285e26,0x4c278b29,0x5d26bd27,0x5326ad28,0x4e284d29,0x28295528,0x672a272a,0xf726f626,0x9e284f26,0x39279d27,0x31293029,0x50294b29,0x7f278028,0xbe27bd27,0x5c29a327,0x6c285b28,0x292a2b29,0x12a2a2a,0x2278227,0xab285a27,0xac26aa26,0xa9285926,0x6a285926,0x89285a29,0x372a3629,0x5828572a,0x2a2a2c28,0x2b2a292a,0x6126602a,0x83286326,0x9a298229,0x33299c29,0xcd28562a,0xce2a3929,0x382a3d29,0x3b2a3c2a,0x8e298f2a,0x932a3729,0x452a3e29,0x442a432a,0x6029572a,0x49295f29,0x482a472a,0xa2a0f2a,0x562a092a,0x9c2a5428,0x6a296529,0x5b286928,0x76294929,0x72286529,0x10286629,0xd2a0b2a,0x6270c2a,0x9f270527,0xa0299927,0x270127,0x65278227,0x68266726,0x512a4526,0x472a422a,0x81290f2a,0x8a299329,0x3d2a3e29,0x66286429,0x7727bc28,0x6d29b229,0x5a29a526,0x4b2a5c2a,0x8d2a5d2a,0x8c288e28,0xab29a428,0xac27ac27,0xa427ab27,0x2729c629,0x4d271227,0xa829a72a,0xa627a529,0xc128a627,0xae29af29,0xe927ea29,0xa8286227,0xbb27a727,0x8d26b429,0x83298c29,0x842a4f28,0xbb268c28,0x4129b327,0x74294029,0x9b2a2e28,0x93290e29,0x8b2a6229,0x1d271c29,0xbe29b827,0xba26bf26,0xb527b629,0x6227b727,0xea27e928,0x91286d27,0x82286c27,0x9d299129,0x4b2a5c29,0x872a4a2a,0x302a6629,0x492a602a,0x902a482a,0xa328a226,0x3c2a5028,0x582a642a,0x62299d2a,0x582a252a,0x6d2a622a,0x90279128,0x48297b27,0xdf2a472a,0xde29dd29,0x4e29a829,0x632a4d2a,0x4b2a5d2a,0x8f29732a,0x2726b627,0x6726682a,0xc629c726,0x4927c727,0x4629962a,0x1a271b2a,0xc4271927,0x5e27c527,0x95299f2a,0xac289628,0xaa29c528,0x2329cc28,0x5529c827,0x872a602a,0xd02a5b29,0x9b29c529,0xd727d628,0xd626a827,0xd626d629,0xa829d626,0x552a2f26,0x322a302a,0x532a5f2a,0xe2a532a,0x24290f29,0x9129922a,0x432a6429,0xc02a502a,0x9a289929,0x9a2a2e28,0xf298129,0x322a3129,0x3a2a3f2a,0x952a3b2a,0x9c299b29,0xf226f029,0xbc26f126,0xdc28be28,0xd527d429,0xb828b527,0xb928ba28,0x37273928,0xbc273b27,0xbd29dc28,0xe42a6b28,0x3929e329,0x3a273b27,0xe728c027,0xeb27e627,0xec28e927,0xc327fe27,0xc127fd28,0xe727e828,0xb327d327,0xea28b428,0x3c273d29,0xe729e627,0xdb2a6c29,0xda27dc27,0xe529e127,0xc829e229,0xd829e828,0xda2a6d27,0xed28dd28,0x6d29eb29,0xdc2a6d2a,0xd429ed28,0xd329f528,0xf128cc28,0x6c28ca29,0xe629e72a,0xf128cc29,0xd129f229,0xd028d228,0xfa29f628,0xf529f729,0xf82a6e29,0x32273129,0xf427e027,0xf329f929,0x32a0229,0x862a052a,0x84288528,0x56295828,0x13279429,0x4f295027,0x94295829,0x56271327,0x78295829,0x72287828,0x73287328,0x42294328,0x5d294229,0x5e295e29,0x60295f29,0x56296029,0x78287829,0x42287328,0x5e294229,0xac296029,0x6a26ab26,0x57295629,0x92297829,0xad279427,0x56299e28,0x92297829,0x9e28ad27,0x2b292929,0x9a292c29,0x59295027,0x88268b29,0x94268926,0x96269526,0xaa26a926,0xad26ab26,0xaf26ae26,0xda26dd26,0xef26db26,0xf126f026,0x2270126,0x1526fe27,0x13295027,0x38273727,0x3e273927,0x40273f27,0x4e275127,0x59274f27,0x5b275a27,0x88278727,0x94278927,0x93279227,0x50279927,0x9a279a29,0xfa26f927,0x99279826,0xeb279a27,0xed27ec27,0x1280027,0x59280228,0x5b275c27,0x21282027,0x27282228,0x23282828,0x35283428,0x3d283628,0x3f283e28,0xa926aa28,0x5d285926,0xaf285e28,0x77287626,0x5f26b328,0x9e289d28,0xb728ba28,0xbe28b828,0xbc28bb28,0xc828c728,0xda27d828,0xdc28db28,0x41273e28,0xeb274027,0xed27ee27,0x5028fd27,0x428fc27,0x2290129,0xc290529,0x70268129,0x69267126,0x21282227,0x29292828,0x35292a29,0x37292b28,0x43283628,0x45294429,0x47294629,0x43294829,0x46294529,0x42294129,0x9b294329,0x40293f26,0x41294029,0x46294329,0x49294829,0x4a294929,0x6a286729,0xfe293628,0x67294926,0x43286a28,0x49294629,0x40269b29,0x3d294329,0x9c293e29,0x9b269c26,0x43294326,0x6a294929,0xfe286a28,0x2270226,0x37278127,0x38270829,0x2293929,0x8293727,0x6a294327,0x3d270228,0x43269c29,0x3c293b29,0x64286429,0x43293d28,0x2294329,0x8270827,0x9d293927,0x3a279d27,0x6270329,0x64293b27,0x3279d28,0x43270627,0x9d270829,0x64270627,0x54294328,0xad295329,0xf926fa26,0x47294726,0x51294629,0x52295129,0x4e294e29,0x50294f29,0x98279929,0x4e26fa27,0x99295029,0x51294727,0x99294e29,0x4726fa27,0x60285f29,0x44289e28,0x73294329,0x79287228,0xfd294428,0x6126fc26,0x64286528,0x74293c28,0xa227a329,0xa327a227,0x78297427,0x59295729,0x7d268929,0x9a268b29,0x5d295727,0x42295d29,0x41294129,0x3f287429,0x9d269b29,0x41293e26,0x9b293f29,0x5d279a26,0x47294129,0x9a26f929,0x76295b27,0x48294829,0x9a294729,0x41279a27,0x9a269b29,0x3e269b27,0x48295b29,0x4a279a29,0x9a295b29,0x3e279a27,0x3d293d29,0x72286629,0x72293d29,0x67293c29,0x9a294a28,0x69296527,0x36286728,0x67296529,0x3d279a28,0x3b293c29,0x5270c29,0x3c279a27,0x36293b29,0x9a286729,0x278227,0xfe26fe27,0x9a293626,0x5293b27,0x3a270327,0x9e279c29,0x3293b27,0x81293a27,0xfe278227,0x9270726,0x81293727,0x9a26fe27,0x7293827,0x37293727,0x9a278129,0x3b279a27,0x3a293a29,0x39279e29,0x37293829,0x3a279a29,0x38293929,0x83298229,0x8b298029,0x89298829,0x8f298e29,0x91298c29,0x90299229,0x98299729,0x4c299529,0x43284428,0x6e29a528,0x56266d26,0xad299e29,0x13271428,0x77279327,0x50295929,0x14271529,0x77279327,0x15295029,0x8d29b127,0xbe288c28,0x1029bd29,0xbf289929,0xb029c029,0xa927a729,0xac27a927,0x82288229,0xaf29ad28,0xc129af29,0xa729a729,0x262a4d29,0x78272727,0xa7297729,0x27272629,0x8227a927,0xa729af28,0x77272729,0xaf27a929,0x8829a729,0xa929b028,0xa727a927,0x23297729,0xcc272227,0xcd287629,0xac29ce29,0xc528ab28,0xa829a229,0xd828a928,0xc729e827,0xea29e928,0xdb273c29,0xeb28da28,0xed29ec29,0xd428dc29,0xf528d328,0xfd2a0229,0xfe29fe29,0x229fd29,0x9426952a,0x69269726,0x70267127,0xa2a0926,0xd2a0b2a,0xf2a0e2a,0x102a0c2a,0xa2a0f2a,0xd2a0e2a,0x129022a,0x290429,0x2280328,0x5290c28,0xdb268229,0xdd26da26,0x18276126,0x6126ee29,0xee26ed27,0x27282826,0x19292828,0x2129282a,0x23282028,0x45282828,0x79294429,0x78287928,0x4f295828,0x1d294e29,0x452a1d2a,0x79287929,0x4f295828,0x29292b29,0x35283429,0x2c292a28,0x212a2029,0xa229682a,0xa92a2229,0x34283d28,0xbe283f29,0x10291129,0x46295129,0x45294529,0x522a1d29,0x9626fd29,0x21286127,0x692a202a,0x54295329,0x87285e29,0x89278a27,0xaf26b027,0x5d285e26,0xad26ae28,0x652a2826,0xbd2a2726,0xbe27bf27,0x6a285a27,0xac26ab29,0x59296b26,0x6b285928,0x89296a29,0x36298829,0x9b299c2a,0xcd2a3329,0x392a3829,0x392a3d2a,0x3b2a382a,0x8f2a3a2a,0x362a3729,0x4529932a,0x432a422a,0x5d295e2a,0x57295729,0x60295629,0x5e295f29,0x49295729,0x472a462a,0xe2a0f2a,0x562a0a2a,0x3f2a4028,0x3b2a3f2a,0x372a372a,0x8a2a3e2a,0x85298629,0x3f2a5229,0x8a2a372a,0x8a2a3f29,0x56298629,0x862a3f28,0x872a5229,0x302a3029,0x9a2a552a,0x82299a29,0x9d299d29,0x242a5829,0x8129912a,0x242a5429,0x5429912a,0xf2a542a,0x322a3229,0x962a462a,0x95299629,0x86299c29,0x302a5229,0x9a2a302a,0x30299d29,0x24299d2a,0x8628562a,0x562a3029,0x242a3028,0x322a542a,0x5629962a,0x542a2428,0x962a542a,0x10299c29,0xb2a0c2a,0x6626652a,0x45266726,0x512a572a,0xce28772a,0x772a3929,0x3d2a3928,0xb326b42a,0x8d287726,0x7726b429,0x77298d28,0x372a3d28,0x8e2a3b2a,0x8d298e29,0x502a3d29,0x422a432a,0x3d298e2a,0x892a502a,0x8e2a3729,0x8a298629,0x52298929,0x5629852a,0x862a562a,0x89298929,0x50298e29,0x422a502a,0x342a512a,0x7b29792a,0x512a5029,0x522a342a,0x892a562a,0x50298929,0x342a342a,0x47297b2a,0x462a472a,0x472a322a,0x532a322a,0x892a522a,0x9a2a3429,0x872a5529,0x342a5229,0x812a472a,0x87299a29,0x52298729,0x472a472a,0xf2a532a,0x54290f29,0x8129812a,0x47298729,0xb327bc2a,0x4f2a4f29,0x7728852a,0x8b279329,0x93288a28,0xb2288a27,0x4f27bc29,0x7729772a,0xb2279329,0x6e266d29,0x5c29a526,0x4b2a4c2a,0xb1288d2a,0x31288e29,0x2f2a602a,0x6129842a,0x3129832a,0x842a2f2a,0x312a5f29,0x8429842a,0x2e298329,0x802a2e2a,0x92299229,0x332a2529,0x98299b2a,0x92299729,0x9b2a3329,0x842a5f29,0x2e2a2e29,0x9b29922a,0x97299b29,0xe290e29,0x2e2a5f29,0x2529932a,0x6d2a622a,0x91279028,0x81298227,0x5c299129,0x4b2a632a,0x6029872a,0x802a662a,0x61298329,0x842a652a,0x922a2f29,0x61298029,0x2f2a652a,0x902a662a,0x61299229,0x902a622a,0x8b2a6129,0x612a6229,0x61298b2a,0x882a652a,0x65298b29,0x6529882a,0x252a662a,0x3629932a,0x252a332a,0x412a362a,0x552a402a,0x33285528,0x412a362a,0x3628552a,0x412a3a2a,0x8f2a362a,0x362a3a29,0xb426b52a,0xb5298c26,0x8f298c26,0x7629cd29,0x3826b528,0xb529cd2a,0xb52a3826,0x3c298f26,0x8f2a382a,0x8f2a3c29,0x452a3629,0x642a442a,0x3c2a642a,0x642a362a,0x882a362a,0x452a5729,0x7a2a642a,0x35297929,0x642a572a,0x4829882a,0x35297a2a,0x572a352a,0x3529882a,0x6629882a,0x97290e2a,0x312a4929,0x49290e2a,0x352a482a,0x602a662a,0x492a312a,0x662a482a,0x252a602a,0x582a242a,0x6b286d2a,0x7b279128,0x48297a29,0x972a492a,0xac299629,0xc52a5b28,0x2229cc29,0x55272327,0x602a2f2a,0x312a322a,0x532a5f2a,0xe2a5f2a,0x252a2429,0x6429922a,0x432a442a,0x832a2e2a,0xf299a29,0x31290e29,0x412a3f2a,0x952a3a2a,0x9b299829,0xef26f029,0xbc26f226,0xbe2a6a28,0xb728b828,0x3928ba28,0x37273827,0xc228c027,0xc127e728,0xe828c028,0xe929ea27,0x6d273d29,0xda29eb2a,0xec29ed28,0x6d29eb29,0xdc28dd2a,0x6e28d428,0xcc29f52a,0xf129f228,0xcb28cc29,0xc629f128,0x4d272629,0xa72a4e2a,0xc629c129,0x4e2a4d29,0xc12a4e2a,0x7829ad29,0xc6272729,0x4e29c629,0x9229ad2a,0xc6297827,0x93288b29,0xbc279227,0x8b29b227,0xb32a4f28,0xbb27bb29,0x8b27bc27,0xc6279228,0xad29ad29,0x81288229,0xa929ac28,0x9229bb27,0x8129ad27,0xbb29ac28,0x9227a729,0xac288127,0x8b27bb29,0x84279228,0xbb2a4f28,0xac279227,0xa727a729,0x8629b027,0xbb288428,0x88279227,0x85297728,0xa7279228,0x86288627,0x85288828,0x92288428,0x288627,}; +#include +#include +inline void uncompress_d415_obj(std::vector& vertex_data, std::vector& normals, std::vector& index_data) +{ + std::vector uncompressed(0x3ebe0, 0); + LZ4_decompress_fast((const char*)d415_obj_data, uncompressed.data(), 0x3ebe0); + const int vertex_size = 0x2a70 * sizeof(float3); + const int index_size = 0x5270 * sizeof(short3); + vertex_data.resize(0x2a70); + memcpy(vertex_data.data(), uncompressed.data(), vertex_size); + index_data.resize(0x5270); + memcpy(index_data.data(), uncompressed.data() + vertex_size, index_size); + //normals.resize(0x2a70); + //memcpy(normals.data(), uncompressed.data() + vertex_size + index_size, vertex_size); +} diff --git a/common/res/d435.h b/common/res/d435.h new file mode 100644 index 00000000000..d954c4e24b6 --- /dev/null +++ b/common/res/d435.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from d435.obj +static uint32_t d435_obj_data [] { 0x4c75fff5,0xd9c21cc1,0x544134cc,0x9fc11d31,0x20c21ca7,0xc94139f7,0x5cc11af1,0xc2c21c30,0x9c4134cc,0x26c11802,0xd6c21aec,0xe54134cc,0x6cc1141e,0x49c21b32,0x9d4138ce,0x6c11493,0xdbc2195c,0xb44134cc,0x46c11364,0xd4c21992,0x1741389d,0xcac11350,0xc5c217f2,0xfd4134cc,0x94c115c3,0xb9c21840,0xd64138ea,0x2cc114f4,0xdac216df,0xb04134cc,0x97c11bb0,0xf2c21740,0x9f413997,0xfcc118cb,0x70c216d4,0x7d413a58,0x44c11d2c,0x37c21d65,0xbe413d16,0x50c118ed,0x3bc21bbe,0x61413c14,0x66c111c4,0x40c21a1b,0x42413bc7,0x2ac10faa,0xbc2186a,0xa9413beb,0xc0c110a3,0x4fc216ac,0x91413ca4,0xebc115ca,0x37c21609,0x45413d89,0xd5c11c4d,0xc215ff,0x5041436b,0xecc15067,0x2ec216ce,0x5e4143bd,0x40c183b7,0x9bc216cb,0x23412b6b,0x8fc1513e,0xc3c216d0,0x82412ee5,0x16c183bc,0xd6c21c33,0x534134cc,0x77c14b44,0xd1c21af0,0xaf4134cc,0xc8c14759,0xa8c21cc4,0x514134cc,0xfcc1509b,0xcfc2195c,0xda4134cc,0x22c14696,0xd2c217f3,0xc24134cc,0x3c148f5,0xacc216d8,0x484134cc,0x46c14f20,0xbac21cc8,0x3e412f03,0x84c1838a,0x27c21cc2,0x304143bf,0xd6c183e1,0x23c21d93,0x604143ba,0x28c153f2,0x98c21631,0xd6414719,0x2ac185d8,0xcc0c6a,0xbe4f00f5,0x143bc203,0xc460413c,0xffd5c111,0xf500c02d,0x2e09eb00,0x3d8938c2,0x1c4d4b41,0x2993d6c1,0x25f40048,0xc20c3851,0x41475f5e,0xc189e326,0xc202575c,0x41476844,0xc18a6562,0x414e574a,0x413beafb,0xc110a3b3,0x41479276,0x413bc753,0xc10faa29,0xc0918944,0x18f50078,0xc056be7f,0x4147122e,0xc1858e4c,0xc1fd5982,0x413ca44f,0xc115ca90,0xc1f2ca88,0x413d1637,0xc118edc0,0x540e575d,0xf801f400,0x6c41554c,0x30413ca4,0xd9c115ca,0x783f71eb,0xcf25f400,0x5e4040da,0x66414753,0x9ac18923,0x48c1d001,0x524147ce,0x4fc1937b,0xe5c1cd71,0xbc4147bb,0x50c1917b,0x6e405a8a,0x78414768,0x6cc18a65,0xc8411792,0xde18f501,0x12417e16,0x841453e,0x16c16e99,0x1b4157fc,0x76414393,0xaac15261,0xc9417ca2,0x90413e4a,0xc0c1241a,0x1e00aac,0x296be844,0x4400b4c2,0xc22e3128,0x444400cc,0xb4c20565,0x575a4400,0x21c411e,0x4106c244,0x44024041,0xc1cbffaa,0xac440150,0x44c1c327,0x31283501,0x35004822,0x601d6be8,0xd600f500,0x36c1e413,0x42413d89,0x51c11c4d,0x1681838,0xff25344,0x4400f0c2,0xbfc62510,0xee440084,0x183c5ace,0xff543500,0x35006c27,0x482827ad,0x4f583500,0x44007816,0x41254cfe,0xf04400d8,0xc0413a6a,0x89443500,0x4401a4f1,0xc0effea6,0xb04400b4,0xb4c0cc9e,0x5f403500,0x3501bccb,0x901bf253,0x24d94400,0x15c40cf,0x51b900f5,0x685b3ed4,0x656e4147,0x13d6c18a,0x460084fc,0x40dcaeb4,0x11150120,0x5c440120,0x6c40f001,0xb0a84400,0x6c4109,0xe1b6644,0xf40054c2,0x1a575c01,0x476850c2,0x8a656841,0x38512c1,0x310204c0,0xb80fbe50,0x6104f502,0x8c111c4,0x25c1d1a3,0x904147b4,0xe8c19597,0x150356b,0x3a312835,0xfc460168,0xfc40ea99,0xfc0a1500,0x38513500,0x44016824,0x4127d856,0xf102f4,0x4157d8c2,0x413d89a6,0xc11c4ccf,0xec116544,0xedbe7501,0x49aac118,0x3500f05e,0x74e3ffaa,0x27ac3501,0x350168db,0xf0795d68,0xd844400,0x21040c2,0x27f25335,0x2d440138,0xbcc03f25,0x575c5301,0xe44fc226,0xff543500,0x35005457,0x54464f58,0xa20df400,0x98c128c4,0xd8414719,0xadc185d8,0x37c15827,0x44413d89,0xa0c11c4d,0xa0c115af,0x38513502,0x3500cc30,0xf08a99fc,0xd5e04400,0x1ec40b4,0x75c000f5,0x6856c025,0x656a4147,0x9ebc18a,0x3504bc0a,0x8c90015c,0x61504401,0x18c40b3,0x33f25335,0x663500b4,0x198261b,0xa1c28935,0xab44018c,0x3840efb0,0x4d4d4401,0x1bc3ef2,0x246a2a44,0x4401f8c2,0x3f6575c0,0x935000c,0x114441b,0x32575c35,0x513500fc,0xc03c38,0xb69201f4,0xe479417a,0xb924147,0x451cc19c,0x12040cd,0x16a28e44,0xf4000c41,0x46a2920d,0x47686241,0x8a657241,0x573848c1,0x4716cb41,0x85d8da41,0xaa67f1c1,0xf601ec3f,0x4f1eb000,0x475f1241,0x89e30441,0x29abc1c1,0xac250108,0xf503e422,0x3f3b8218,0x4760cdc2,0x8a1bea41,0xd38e60c1,0x47c5efc1,0x99748c41,0xd46773c1,0x47f4dec1,0x9c0b1a41,0xfbffaac1,0xac350198,0x198f327,0x6b9c0cf1,0x1101c241,0x8e204147,0x92b0c185,0x931ac241,0x61694143,0xbe52c152,0x7502a03f,0xc111c465,0x208fb0ab,0x92963501,0x4401f8bf,0x410a5062,0xc04401bc,0xd840ee76,0xffaa3503,0x35006c83,0xec8413d6,0xb6524401,0x15cc021,0x39b0a835,0xae440330,0x48412800,0x50623503,0x4400543a,0x41273b60,0xd5350054,0x5dc39ff,0x3593d635,0xeb3505d0,0x5e83a09,0x64be00f6,0x145bc241,0xed60413d,0x4f58c118,0x3400e476,0xbcc006a2,0x61134401,0x2d03d83,0x58c4a331,0xd6710294,0xa0c185d8,0x28845af,0x858e4a93,0xb2bae2c1,0x2d052c0,0xc0057144,0x35009c3f,0x5826c2a0,0x1b663502,0x44024c32,0xbfd5980f,0xf944060c,0xacbeb2a1,0xe1454402,0x3f0c100,0x306a2a44,0x310084c2,0x5c27be50,0xc4618401,0xc2adc111,0x27c3fbe,0xb0db2935,0x4e350120,0xb4a351,0x3be4f746,0x1106e4c0,0x75010809,0xc1506751,0x80593d6,0xacc03501,0x3502102e,0xf0296544,0xc94b4403,0x1b0c10f,0x95660444,0x4400a8c0,0xc056543f,0xaa350834,0x1b09bff,0x9327ac35,0xd6310138,0x1bc9c13,0x1c4d4571,0x846251c1,0xd811012c,0x7511012c,0x5f4012c,0xc1858e4c,0xc1095d72,0x4147684e,0xc18a6566,0xbfc13d5c,0x95440390,0xecc1086d,0x9eb3501,0x4401a422,0xc101a8a7,0x98440108,0x5cbfbffa,0xeaff4401,0x3b4bec9,0xbdf27c35,0x453500f0,0x14430e1,0x1b6b00f7,0xc71bc23e,0xaa6e413b,0x6a2ac10f,0x1501503c,0x35015033,0xe4f56604,0x2a203500,0x3700e4cb,0x2c1193d6,0x2c3a1501,0x6d00f501,0x11c13cee,0x7c414762,0x44c18a1c,0x1383565,0x904f5744,0x3500ccc0,0xcc386d94,0xa8a63100,0x8400c031,0xc110a3aa,0xc10ef93e,0x52310198,0x1209c62,0x85d8d671,0x92d7d0c1,0x4a840120,0xaac1858e,0xe4c1b3ff,0x27ac3700,0x11015cab,0xf6015cb4,0x1c4d4305,0x2ab303c1,0x3ca44fc1,0x15ca8f41,0x159511c1,0x150240c1,0x3500fc60,0xd88ffea6,0x3d603506,0x3106d859,0xa8f04f59,0x4d437700,0x6d95c11c,0x1500a868,0x3100a861,0xa83ef940,0xc4627100,0xffd5c111,0x75024021,0xc1506750,0xfc6cee6e,0x13d63500,0x3106f0cc,0xccb46252,0xccd81100,0xccaa1500,0xb3043500,0x3100a85a,0xa8459510,0xedbe7500,0x70a3c118,0xf700a888,0x1da03418,0x4792c6c1,0x8f854841,0x8c36cbc1,0x3bc741c1,0xfaa4141,0x157ad9c1,0x4781c2c1,0x911e3e41,0x88d453c1,0x6e15009c,0x8235009c,0x608559,0x8fe4a531,0x687502b8,0x10c18923,0x6c7595,0xcc625231,0x6802009c,0x9cc21501,0xf0cf500,0xf8c11007,0x98414793,0xbac192f3,0x49c18cae,0x64414768,0xcac18a65,0x114a436,0xa0d45335,0xa0350078,0x788f7c,0xa070a335,0x823500c0,0x849d59,0x92ca8835,0xf50078,0xc10c6981,0x4147d97a,0xc19465e4,0x9ca7e4a5,0x62523700,0x150090e4,0x440090da,0x414036b4,0xc0350378,0x51c8e76,0xb4a0c544,0x35053440,0x9cbc36ca,0xaeb94400,0xa8cc1a4,0xb8d45337,0xa71700a8,0xb81500a8,0xbe4400a8,0x5c411f1e,0x59823704,0x1500b4b5,0xf500b4aa,0x86f6d00,0x47e93fc1,0x9742ca41,0xbe7737c1,0x523701ec,0xb4fc62,0xb4f215,0xd436cb35,0x54310090,0x84d0d4,0x10a3a971,0xbf7ca0c1,0x61750084,0xa2c111c4,0x84d070,0x1036b435,0x14400e4,0xac3fb9db,0x41813505,0x3100e429,0x9ccd5981,0xb280200,0x9cc215,0xd7e4a631,0x66840144,0x7bc18923,0xcc40de3d,0x31284400,0x48c20a,0x56be831,0x4a93090c,0xbac1858e,0x45c1d4ae,0xcb370120,0xa8ec36,0xa8e815,0xd77c9e31,0x601100a8,0xe81500a8,0xf700a8,0xc105920b,0x4147ef2c,0xc19c0b3c,0x90e55982,0x90da1100,0xedc08400,0x6d67c118,0x1b040c0,0xefe4a635,0xf944009c,0xb0beb5f3,0x6be85301,0x902dc211,0xaeb93500,0xf501b0ec,0xc9b79200,0x47aef9c1,0x8fb10a41,0x21b66c1,0xf6350618,0xd87c7a,0x6a2a44,0x350150c2,0xa8ef7c9e,0x38513500,0x35083400,0xac03f253,0xfffff308,0xd34abe48,0x46dd49c1,0x99b6f641,0xd3e612c1,0x473dbac1,0x9c0b4241,0xc844a0c1,0x46ecbec1,0x8ffb4c41,0xcb42b2c1,0x46f81dc1,0x90e1ac41,0xcf14c2c1,0x472ccdc1,0x933a7e41,0xd1493bc1,0x46e6a8c1,0x95bdfe41,0xd2b80ac1,0x476a2fc1,0x98075841,0xd3cef2c1,0x3ccccec1,0x9c0b3241,0x4bdbbcc1,0x3c4e01c2,0x9c0b6841,0x4c834cc1,0x4723eac2,0x9bdf1641,0x4ef45ec1,0x4496b0c2,0x7fe18741,0x68ccecc1,0x1291b7c2,0x66e117c1,0x4e70aec1,0x45309fc2,0x84387cc1,0x4e4584c1,0x465224c2,0x986b9cc1,0x56a738c1,0x3bfb3bc2,0x67230fc1,0x4cd530c1,0x4443f9c2,0x6901cc41,0x61cc52c1,0x279dd1c2,0x66e117c1,0x50d5d2c1,0x4296b7c2,0x735d2741,0x536690c1,0x3fe283c2,0x6b4f0ac1,0x4f1d4cc1,0x446520c2,0x7e9a39c1,0x506da4c1,0x42fbcec2,0x754f43c1,0x494668c1,0x46f86ac2,0x84ca9ac1,0x48cdcac1,0x47fff3c2,0x9c0af2c1,0x48e6a4c1,0x458e51c2,0x6d9e2ec1,0x537e60c1,0x3fc639c2,0x6b56a041,0x564a08c1,0x3c7687c2,0x676ac641,0x4d6970c1,0x3d5569c2,0x24767241,0x53038cc1,0x3963f6c2,0x249fff41,0x61cc4ec1,0x279de0c2,0x66e11741,0x68cce2c1,0x1291e2c2,0x66e11741,0x6ec2d0c1,0xf1cd72c2,0x66e11840,0x737df6c1,0xb6d88ac2,0x66e11840,0x5c06fec1,0x33b072c2,0x66e11cc1,0x76d824c1,0x6c46ccc2,0x66e11840,0x78b696c1,0xc6de01c2,0x66e11a3f,0x4e3cdcc1,0x4652c2c2,0x98b3e441,0x74a572c1,0x4aec9c2,0xbac8d43f,0x776ee8c0,0x195e4ac2,0x2516b43f,0x790f32c1,0xc2,0x66e11b80,0x76d828c1,0x6c45fec2,0x66e118c0,0x737df2c1,0xb6d8b4c2,0x66e118c0,0x6ec2cec1,0xf1cd85c2,0x66e118c0,0x5073dcc1,0x3b73ffc2,0x241e6ec1,0x4d2caac1,0x46d5c4c2,0x9b1ab6c1,0x4e7028c1,0x452efac2,0x83f5d641,0x4bc3f2c1,0x4769d6c2,0x9c1192c1,0x4e44b8c1,0x3b0476c2,0x989a84c1,0x4cf734c1,0x3ba9f4c2,0x9b5c1ec1,0x4bb14ac1,0x3c5659c2,0x9c0bf8c1,0xae5ecfc1,0x3cccccc1,0xc32c1,0xffffedf4,0xb32c147,0xb6c8c19c,0x9d6c234,0x761fc138,0x99e1c0ee,0xe1b2c239,0xc107c139,0x611dc102,0xfb8fc23c,0xc947c13c,0x38cac117,0x86bcc23e,0xac0bc143,0x1d1cc150,0x24474126,0x9d9fc138,0x3514c0ef,0xe5c54138,0xddc4c139,0xf71ac102,0x895e413c,0x1776c13b,0x7b70c10c,0xe1df414e,0xa3cac146,0xad5ac181,0x3b4150,0xb62c148,0x1698c19c,0xf584c23d,0x56b7c146,0x53f0c153,0x29c3c23b,0x11bec13f,0xc78ec11a,0x324ac23a,0xf3a7c142,0xfa3ec119,0xf414c23e,0x9c24c147,0x63aec188,0xe26ac23d,0x55a8c147,0xc045c161,0x12cc23f,0xb60c148,0x736dc19c,0x7edac23a,0xe3ddc147,0x800bc119,0xacadc23e,0x4abbc147,0xf48ac17d,0xfe0ec216,0xc319c147,0x856c114,0xffbfc216,0xb608c147,0x6eb8c11c,0xfefcc211,0x3631c147,0x912ac11a,0x24bfde,0x53b990f5,0xffccbec2,0x2ecbc147,0xce5c11c,0xff75be45,0xc0dfc147,0xbe7c115,0xff58c234,0xff4c147,0x6ea6c189,0xfeb2c235,0x741ac147,0x4966c185,0xff4ec232,0x7334c147,0x3023c18a,0xff98c013,0x3a75c147,0x9907c110,0xff753e54,0x13e6c147,0x9d3ec111,0xfe0ec20f,0xab8cc147,0x279cc111,0xfefbc0f1,0x7428c147,0x3dfdc185,0xff73c0fc,0xffec147,0x5f59c189,0xff73c0c0,0x1000c147,0xc387c189,0xfeb6c0cb,0x4db8c147,0x6840c185,0xff88c230,0x554c147,0x910ec18a,0xf401a451,0xae4ead0d,0x47fe9bc0,0x8a9a0ec1,0x193304c1,0x47ff8ac2,0x103a83c1,0xbef54dc1,0x4400e43f,0x3f333f64,0x18f10090,0xc20d3302,0xc147ffa3,0xc1103a69,0xc2336dd7,0xc147f517,0xc0fc93bc,0xc15ca9dc,0xc147ffff,0xc13b13a0,0xc55bbce,0xd904f100,0xa9c14b34,0xd9c14612,0xc1c147ff,0xe9c11c2e,0x18677d,0x2d422f84,0xeed864c1,0x4400c040,0x40e3c207,0x544400c0,0xc410fd0,0x400f500,0xcbc20a0f,0xdac147ff,0x56c18477,0x1740a08,0xce9e00f1,0xff73c22e,0xaed0c147,0xbecc187,0x71000c28,0xc1890ffe,0x60757f31,0x4b05f400,0x79c122ac,0xd7c22978,0xbcc147fe,0x80c1854d,0x54c1e70f,0x17d63100,0x84000cd8,0xc1891000,0x410a1e3c,0x3df40120,0xc225c9d6,0xc147fe74,0xc18a99fa,0xc22e0f07,0xc147ffc0,0xc18477dc,0xc143141e,0xc147ff59,0xc115c0f0,0x4118d8a9,0xc147fe43,0xc18a99e0,0xc1daf0f2,0xc147fed7,0xc1854dbe,0xc1e449f7,0xc147fedb,0xc1857422,0x40d1b153,0x19f40150,0xc1eb93ac,0xc147febc,0xc18a9a1e,0xc182df5f,0xc1480000,0xc11c0693,0xc13cada3,0xc147ff8a,0xc11113d3,0xc1d393ac,0x89440054,0x344027b5,0xd0884402,0x1f8c1b8,0x8b93ab31,0x7284003c,0xcec119c2,0x643fa16e,0x6eb83102,0xf5027c05,0x1a362f28,0x283c10c1,0x47ffcbc1,0x8477dec1,0x282592c1,0x47ffb9c1,0x1c76a0c1,0x38fedfc1,0x47fe0e40,0x1406dbc1,0x232399c1,0x47fe0dc2,0x888bd2c1,0x1c0becc1,0xf2450138,0x944121e0,0x63623402,0xf500b440,0xd8a9800,0x47fed73f,0x8a9a2cc1,0xaf48ac1,0x9c440300,0xbcc09127,0x3dfb4401,0x15cc09c,0x40beb231,0x4f1000c,0xc1891000,0xc21d7871,0xc147feb6,0xc1854db6,0xc8220f04,0x77de8401,0xc9d6c184,0x60c219,0x39d3d31,0x8c750054,0xec111ab,0x2ac5787,0x1c9d5a44,0xf40024c0,0x5cd38925,0x47ff7540,0x102270c1,0x358b5ac1,0x47ffd4c2,0x1cb603c1,0x8fbd53c1,0x47ffbf40,0x1cb606c1,0xfc10acc1,0x47ffbfc1,0x1cb607c1,0x13302c1,0x4402acc2,0xc115badd,0xd6350120,0x7801c9,0xdc9d631,0x10f1021c,0xc18a9a2c,0xc239799f,0xc147ebf3,0xc110c4c5,0xc234e138,0xc147ff75,0xc11653b2,0x802b3a77,0xc0de8401,0x8a48c115,0x4840b4,0x276bec44,0x3103b441,0x9c8a6c68,0x53b38400,0x49e8c116,0x114c1cc,0xcf0f7f31,0x10f10264,0xc1890ffe,0xc1bf3a87,0xc147fe3f,0xc189b990,0x407c27c8,0xc147ff8a,0xc1115aa5,0x98c31618,0x8e04f101,0x4c111ab,0xbdc13328,0xf9c147fe,0xaec11070,0x78102f,0x12fe8284,0xc2f0e2c1,0x310114c1,0x9c335626,0x5ab97500,0x856c111,0x35030c2e,0x8efbd53,0x5718f701,0x9bc10727,0x61c147fe,0x24c10fea,0xafc1b994,0x3ec147fd,0x90c18a56,0xd8c0f0d9,0x3c147fe,0x9ac11a83,0x2041723,0x2041015,0x666600f5,0xdd644148,0xdaf9c147,0xdd6fc168,0x440138f2,0xbfc49e6f,0xec4400d8,0xecbff0f7,0xb1814401,0xcbc3e,0xfde91344,0x440294c1,0x410a4524,0x7137012c,0x2041178,0x2041611,0x77da04f1,0x9d57c184,0xff2ec1b5,0xaebac147,0x6c87c187,0x840114ea,0xc11653a7,0xbebc388f,0xf10234,0x410fd062,0xc147ff59,0xc112fe9a,0x60ef3a7a,0xab8c8400,0x1e0dc111,0x39cc1b4,0x296eb831,0x30840300,0x5c11a36,0xf8c1ea66,0x7b0cf101,0xdcc0cb75,0x3ac147fe,0x8ec11a36,0x39c230c7,0x67c147fc,0x70c1104c,0x4e02eb2,0x53a71cf5,0x34e8c116,0xff2f4117,0x22b5c147,0x9eac110,0xff75411f,0x5ab8c147,0x4e04c111,0xf88f4120,0xff91c147,0x10acc0fc,0xf40258e4,0xdab8d001,0x47fd1540,0x1084ebc1,0x27debec1,0x35028841,0x2cdadd6f,0x3df94401,0x1bcc0fc,0xbce9e844,0x3100b4c0,0x60253634,0xb304f100,0xe8c11653,0x59c2280b,0x99c147ff,0x13c112fe,0xd8e5e9,0x14c31971,0xd393abc1,0x41750204,0xd7c10fea,0x204d817,0xa9980f44,0x310570c0,0xe4b412c0,0x769d7103,0x496fc11c,0x8404ecac,0xc14b34d9,0xc22632c6,0xaf4400cc,0xcc09042,0x8563503,0xf1022822,0xcc367400,0x47feb7c1,0x1a830ec1,0x243d84c1,0xa5750108,0x9ac1115a,0x4140b23,0x40beb31,0x5f40210,0xc1891000,0x3fbb6191,0xc147fefb,0xc1857426,0x3f8f081c,0x4e3501ec,0x5ac3f41,0x94e00f1,0xffccc1c3,0x2ec3c147,0x7871c11c,0x8401ec05,0xc1854db8,0x402878ee,0x7f3501c8,0xcccf0f,0xc18a1a31,0xde71000c,0x54c115c0,0xf0bd93,0x1070f975,0x1d6eb8c1,0x683101c8,0xd8a8d2,0x3b13a084,0x56eb74c1,0x31024cc0,0x22b274,0x53b38403,0xa44ac116,0x270c097,0xa3686231,0x2f710030,0xbec12d42,0xc9c67,0x22ac4b75,0xb59d47c1,0x3e3505b8,0x4681b9d,0x402f8331,0x4f1027c,0xc1890fe2,0xc145e169,0xc147fe58,0xc1854da8,0x5439d3d0,0xab8c8400,0x2598c111,0x78cc139,0x31a10931,0x4a7503cc,0xf7c18a05,0x5c49447,0xc10abb44,0x370168bf,0xcc8ed864,0x20831506,0xa0a73501,0x35000cbf,0x20fc49e8,0xf803104,0x710054ff,0xc1890ffe,0xcf017d6,0x10007100,0x3c77c189,0x710138b4,0xc1854db8,0x182b3a78,0xaed07100,0x2facc187,0x75000c10,0xc1891000,0x14f2f0e2,0xe1c43504,0x44000c15,0xc1072757,0xfff306c0,0x28f1d8ff,0x558fc23a,0x7bd7c142,0x3a3dc112,0x2d33c239,0x9297c141,0x29a4c10b,0x353fc238,0x814ec140,0x80c106,0x2ebdc237,0x75b4c13f,0x5ad1c102,0x6be9c235,0x9368c13e,0x2f34c0fd,0xf1e9c233,0x8cb5c13d,0x88dec0f8,0xa9fdc236,0xaec6c146,0x6fecc101,0xadb8c238,0x11f3c146,0x207ec108,0xebf3c238,0xe8f3c147,0x4a72c108,0xebf3c236,0xd5e1c147,0x43c2c102,0xaf13c234,0x452ec146,0xc9aec0fb,0x9dd7c231,0x75c9c146,0xd3a0c0f8,0xaeb7c239,0x46f4c146,0xabc2c110,0xa4064118,0x6d83c146,0x8cd2c0f8,0x2afd411e,0xa0cbc13e,0x81e0c0f8,0x9f3b4120,0x1cfc138,0xb9a0c0f1,0x4c264118,0x57e0c13a,0x6b0cc0f4,0x8d81c233,0x721bc138,0xcef8c0f0,0x7055c231,0x9c15c13a,0xf5e8c0f4,0x57de4128,0x2b91c13b,0x332ac0fc,0xd5134121,0xd3b5c13a,0x5cd8c0f6,0x9626413c,0x1d00c145,0xd2d6c11a,0x32d5413c,0xf800c142,0x80e4c119,0x5d6f413a,0xe75dc142,0xac1ac112,0xc4e84127,0x376bc13e,0x8f4ac0fe,0x8d814141,0xd767c13d,0x8b04c119,0xa209413e,0x78ac13f,0xf2a2c11a,0xf54e413b,0x9646c13e,0x6f4c112,0x3c7a4137,0x3235c141,0x67eac10c,0xc6294138,0x9a8dc13d,0x62f2c10b,0x1b174132,0x781bc140,0x4004c106,0xa79e4133,0x431ac13c,0x508ec105,0x65ad412c,0x8a39c139,0x6f78c0f9,0x5ba4412d,0x5f9bc13f,0x4e8c102,0xd5474146,0xd6a0c145,0x47bac14e,0xdfd0414c,0x5278c147,0xb838c182,0x1a054146,0xc561c147,0x6388c157,0xad9b4133,0x2c6c146,0x237cc108,0xebf3412b,0x2ecc147,0x6c98c103,0xf26a4135,0xae27c147,0xc742c10c,0xa757412b,0xa3c8c146,0xf8e2c101,0xb87b4138,0x3f7fc146,0xa988c110,0xab7f4122,0x3b88c146,0x7287c0fb,0xe2ac41dc,0xb32beed,0x4109c19c,0x4de841da,0xb32c029,0x1cc5c19c,0x9f2741d6,0xb32bfc4,0x64f3c19c,0xd44e41a6,0xb304131,0xe1ebc19c,0x7fc2419d,0xb32412d,0x1b51c19c,0x2f054196,0xb32413f,0x4df1c19c,0x4fa9418d,0xb324138,0xc675c19c,0x561d41d6,0xb323f24,0x3fddc19c,0x306141c2,0xb30c107,0x4335c19c,0xf85c41b5,0xb30c11e,0x6197c19c,0x663f41b5,0xb32c110,0x3bdc19c,0xd6b41d9,0xb32404f,0xd001c19c,0xbeb41c6,0xb32c0d3,0x910ec19c,0xccccc151,0xb32c13c,0xf379c19c,0x730a41cc,0xb30c0d6,0xb0c7c19c,0xcccec106,0xb32413c,0xc493c19c,0x155541d1,0xb324076,0x89b4c19c,0x3416c106,0xb624147,0x923c19c,0xe4c141d5,0xc0304097,0x4d00f100,0x30c131d4,0xb5c19c0b,0x43419f4b,0xc782c40,0xf37912f3,0x731141cc,0xb3040d6,0xf07dc19c,0x251641c5,0xb3240d8,0x923c19c,0xe4bf41d5,0xc030c097,0x640cf100,0x30410730,0xc9c19c0b,0x1a41bab0,0x324106b8,0x41c19c0b,0x7441d242,0xa86a5d,0x8eceef71,0x379a8e41,0x39710054,0x5741b543,0x301ef8,0xad2f4d71,0x1cc75c41,0xbd710030,0x864189c9,0x2444f5,0x7f3d84f3,0x1998c11f,0xc76a4147,0xc563c18f,0x8ce7c11c,0x22804146,0xd19ac190,0x61dac107,0x49524147,0x6c6dc199,0x4dd8c10a,0x8f144147,0x2b43c196,0xed87c10c,0x72384146,0xaadfc195,0x9d54c110,0x25fa4146,0xed35c193,0x8a1ac115,0x68884146,0x594c191,0xb391c1c8,0xfb8a412f,0x143bc18f,0xb46dc11d,0xeac412f,0x7e6ac190,0xcca9c1d2,0xb670413c,0xd08cc197,0xc649c1cc,0xc356412f,0xbed5c191,0xdb27c1cf,0xb32412f,0xbed5c194,0xf10f90cf,0x1ec19412,0x3cc249fc,0x48412fc6,0x92c1940b,0x15c24a11,0x324136a5,0xcec1940b,0x1cc24ace,0xc3a8f,0xb6fffff1,0xc24bd830,0x413c15a0,0xc1940b2a,0xc268c17c,0x410768b0,0xc166e123,0xc2674ef6,0x410cd37a,0xc1594787,0xc26d862c,0x40e38a18,0xc1594788,0xc26e8398,0x40d89a54,0xc166e12d,0xc27250ce,0x40a4c99b,0xc159478b,0xc272e5b2,0x409ac495,0xc166e138,0xc24d2e1c,0x413b913d,0xc19b189a,0xc275c0ce,0x402f13a5,0xc166e140,0xc2757fd2,0x403f7f0b,0xc1594798,0xc24e4c88,0x413affbe,0xc19851e8,0xc276b40a,0x3f79c9f7,0xc166e12b,0xc276c3cc,0x3f8e4da9,0xc159478e,0xc24e8e50,0x413adbf1,0xc1825302,0xc24ba9ca,0x413c1cdb,0xc159477d,0xc25063f2,0x4139a9ad,0xc17581b1,0xc250c396,0x41395ae0,0xc159478f,0xc2535642,0x413713db,0xc16b73b1,0xc256b99c,0x413328e4,0xc1671767,0xc2578c48,0x41322324,0xc15947d7,0xc25fe742,0x41228de8,0xc1594787,0xc261d36c,0x411dba97,0xc166e11f,0xc276652a,0x3f5b5dee,0xc1594791,0xc275640e,0x3f29613d,0xc166e12a,0xc27569fc,0x3f2b9735,0xc1594791,0xc24a784a,0x413953d9,0xc1594790,0xc24e31ec,0x412a0e36,0xc1594786,0xc254884e,0x412475a0,0xc1594783,0xc27290dc,0x3f82bf23,0xc1594674,0xc27253f6,0x402caa3f,0xc159478b,0xc24a0442,0x4135a160,0xc1594790,0xc26349d0,0x4104761f,0xc1594783,0xc2693788,0x40d8f2d2,0xc1594783,0xc27346ca,0x3f266677,0xc1594790,0xc25c4de0,0x41175d73,0xc1594783,0xc249fd12,0x412bc00e,0xc159478f,0xc26ddcce,0x40a0a62b,0xc1594783,0xc2705564,0x4064d76f,0xc1594786,0xc27172a4,0x404f24a7,0xc1594790,0xc273509a,0x3f262025,0xc169471a,0xc276f74a,0x3f25857b,0xc166e12b,0xc276ec54,0x3f266395,0xc1694791,0xc272e5ae,0xc09ac4e1,0xc166e138,0xc26e839c,0xc0d89a28,0xc166e12d,0xc268c17c,0xc10768ac,0xc166e123,0xc261d36c,0xc11dba96,0xc166e11f,0xc2566fc6,0xc133935d,0xc16736e5,0xc276ec54,0xbf266091,0xc166e12b,0xc2755390,0xbf28e94f,0xc166e12a,0xc276652a,0xbf5b5ddd,0xc166e12b,0xc276c132,0xbf8cc3f4,0xc166e12b,0xc275c0ce,0xc02f13a1,0xc166e140,0xc2577f62,0xc1324348,0xc15947b4,0xc2528542,0xc137e3e0,0xc16d712c,0xc24bd928,0xc13c166a,0xc1940b28,0xc276c31e,0xbf8fb7a6,0xc159478e,0xc2757fd2,0xc03f7ed4,0xc1594796,0xc27250ca,0xc0a4c9d8,0xc159478b,0xc26d862c,0xc0e38a16,0xac594788,0x766ff202,0x85c10cd3,0x96c15947,0xdec250c3,0x91c1395a,0xe0c15947,0xebc24fb4,0xadc13a1e,0x3ec17981,0x4bc24bac,0x7ac13c20,0xb4c15947,0x14c24e77,0x68c13ae7,0x40c18397,0xeac25fe7,0x87c1228d,0x76c15947,0x9cc27579,0x91bf2c50,0xc2c15947,0xb9c27673,0x91bf60c1,0x8c15947,0xd8c25445,0x83c124d2,0xe0c15947,0x56c24d67,0x86c12a80,0xdcc15947,0x1ac27290,0x74bf82bf,0xf101bc46,0x26665600,0x594790bf,0x4bc52cc1,0x2d6293c2,0x6f60084,0xc24a0442,0xc135a15b,0xc1594792,0xc249fd08,0xc12e638d,0x1024c90,0xf6930018,0x3bc27253,0x8ac02caa,0x9e5301c8,0x90c04f24,0x1cf101e0,0xc064d767,0xc1594791,0xc26d8f64,0xc0a54dba,0xc1594781,0xc2683894,0xc0e2801b,0xc1594779,0xc25cd816,0xc1163662,0xd859477e,0x1a00f103,0x32c13a8f,0x2ec1940b,0xacc24a0c,0xc3677,0xae3b1075,0x2fffffc1,0x8802000c,0x9426f505,0x3a1992c1,0x2fe69ec2,0x940b6ec1,0x49fa96c1,0x2fc8e9c2,0x940b14c1,0x47c9eec1,0x2d443ec2,0x6a5a63c1,0x44ce86c1,0x2664b7c2,0x247ac3c1,0x3a303cc1,0xa3f2000c,0xc23a2392,0xc12c19af,0xc15912bf,0xc23a0fca,0xc12f113a,0xc18400c8,0x41cab345,0xc04cd3fa,0xc12478e6,0x41b13e59,0xbfbfd5fe,0xc1247ac4,0x41cc6c55,0xc017f627,0xc1247ac3,0xc2704f2e,0xc0668477,0xc124776c,0xc2719e2a,0xc02470e7,0xc1247ad4,0xc26e6008,0xc078a37f,0xc1247ab7,0x417c367e,0x40e6d7aa,0xc1247ac2,0x4114c5ca,0x412664b8,0xc1247ac3,0x417cba3a,0x412616e4,0xc1247b09,0x418a732b,0x40dccfa9,0xc1247ac3,0x418ead6d,0x412074f2,0xc1247ac6,0xc24d1850,0xc12b7343,0xc1247b84,0xc24f6a08,0xc12392d7,0x907ab7,0xd6060cf1,0x7ac43fbf,0x61d9c124,0x41b2,0x7ac30000,0x4410c124,0x562bc24a,0xf100e42e,0xac344b10,0x524ca541,0x247ac340,0xc7bedfc1,0x48bde841,0x247ab840,0xcbdf4dc1,0x17516141,0x5d710018,0x5741ca44,0xc327a,0x892410f1,0x9436c272,0x7842bf82,0x7408c124,0xdc5c247,0x7a72c12d,0x1f85c124,0x9fe84198,0xf10024c2,0xbfb90b1c,0xabecca41,0x247ce140,0xa5c933c1,0xbbcf041,0x247ab441,0x6673f4c1,0xe17b24c2,0x247aa6c0,0x5d6514c1,0x9b2cd6c2,0x4f10120,0x41bafdaf,0x40c8361a,0xc1247f5f,0x41a3a2d3,0x489b2cd8,0x1e04f100,0xf4c26b89,0xb2c0ab08,0x6ec1247a,0xe6c257a3,0x30c29f,0xa14a04f1,0xd7a8c24a,0x7ac2c0e6,0xf466c124,0x2c58417a,0xf40018e7,0xdd3ffb19,0x2c6fd0c1,0x247d9ac1,0xa9e76dc1,0x2c6fc0c1,0x247d32c1,0xca577bc1,0x2c949d40,0x247d3ac1,0xd9d6dcc1,0xf4015c40,0x4a50c401,0xe72c5ac2,0x247ac440,0x3ece8ec1,0x710018c2,0xc261add0,0x54524ca1,0xac10f100,0x97c25b32,0xb7c1132b,0x16c1247a,0x74c2729b,0x913f7db5,0x40c12477,0xa7c250cd,0x24dccf,0x9ec401f4,0x28cbc255,0x7ab5c11d,0x32d8c124,0x204c264,0x647601f4,0x1ae7c272,0x7ac3bfc8,0xc498c124,0x180c264,0x72e24e93,0x40e9d5c2,0x21cb0bd,0x66847f62,0x30776c40,0x1aef5300,0x48c33fc8,0x1bc0400,0x600810f1,0xa383c26e,0x7ab74078,0xb978c124,0x6702c26b,0x7ab340a8,0x8fe0c124,0x7093c262,0x71012c31,0xc25fbdea,0xc834904,0x404f100,0x6cc266fa,0xb240dcce,0xb0c1247a,0xd6c25c47,0x18a3ee,0x610d5c93,0x47022c2,0x150b341,0xa201b004,0xc25a2cbc,0x411579a8,0xd87ab1,0xf4026404,0x529a946d,0x20df58c2,0x247ab241,0x4cce3ec1,0x252dbec2,0x247ab741,0x48c85ac1,0x26588ac2,0x247ac241,0x411ca6c1,0x2c61ffc2,0x247b5041,0x43cc0ec1,0x2e6666c2,0x247ac341,0x4674d0c1,0x2c75fbc2,0x2479f641,0xe3668cc1,0x2ffb03c1,0x247ae3c1,0xa3ec0cc1,0x2fecaac1,0x247ae5c1,0x1ce002c1,0x2feb3141,0x247b5cc1,0xb28950c1,0x2ff81240,0x247af6c1,0x3381acc1,0x71038441,0x4129ca0e,0xac2ddab4,0xdea7102,0x815f412f,0x71018c2b,0x4188e9cf,0xc23179a,0x732b4400,0x18c418a,0x9528c793,0x1c5ce241,0x294aec1,0xf1023404,0xa7433b04,0x9bb8f41,0x247f05c1,0xa1680bc1,0xa3eed441,0x4f101bc,0x41b70fd3,0xc0dbbd38,0xc1247a93,0x41a8547f,0x18834902,0xf504f100,0x9a41bd38,0x32c0bb88,0x69c1247d,0x9341adf8,0x183170,0x88d602f3,0x6767410b,0x7b45412c,0xd8a0c124,0xf0674100,0x6c3df400,0xd40ec40,0x29412c61,0x91c1247b,0x6741c600,0xecc0727e,0x2fc1247e,0xe441c890,0xf7c06368,0x32c1247a,0x1fc1a48e,0x96c12fda,0xdc11416,0x3cc1a928,0x64c12cfc,0xeac11416,0xfec1ac23,0x64c12959,0x4bc11416,0xc40d3f2,0x2901f400,0xeb40b4de,0x91c12fef,0xdcc11416,0x3040c802,0xd88c3500,0xf104e051,0x1651930c,0x2fffffc0,0x88db7ac1,0xb610f1c1,0x2fffff3e,0x88c53ec1,0x2dbcd6c1,0x83710024,0xec14af9,0xc0ebd,0x4924bd71,0x12b99ec1,0x1984000c,0x1ac14ed6,0x3cc21965,0x93de3100,0x71000c0e,0xc188c53e,0xc00b2a9,0x48697100,0xcaa4c147,0x71003032,0xc1474869,0x1833af44,0xbf04f100,0x18c14924,0xb2c1e2b0,0x99c12fe4,0xbdc11416,0x242b5f,0x500de071,0x34ae67c1,0x15710024,0xecc14ed6,0xc3240,0x469cd533,0x2f911518,0x2d422fc1,0x903b1c1,0x4f10030,0xc1469cd5,0x40848653,0xc12fffff,0xc14af984,0xcc285e4,0x24be3300,0x9114e849,0xac4bc12f,0x8cc8c122,0x710018ba,0xc14ed617,0x3c5329fc,0x92a37100,0xf28cc15c,0x71000c42,0xc1503702,0xc4300bc,0x5928400,0xb2aac184,0xb4c230,0xfede6c31,0x83710018,0xcfc14af9,0xcf15c,0x4ed61771,0x894083c1,0xde710054,0x88c1500d,0x18ef5e,0x4924be71,0xcdf8a1c1,0xd5710018,0xd8c1469c,0x18ec81,0x469cd571,0xfdafdec1,0x4f1000c,0xc1500de0,0x3fa3d591,0xc12fffff,0xc184cadc,0x3033fd11,0x5907100,0x6ab8c184,0x71000cda,0xc1474869,0x842f6f36,0xf9837100,0xaf44c14a,0x71000c27,0xc14924bf,0xc0ae154,0xcadc7100,0xc02fc184,0x71000c04,0xc1840594,0xc28ae67,0xd6157100,0x91d4c14e,0x71006c40,0xc186ac18,0xc3b83fe,0x84a67100,0x6552c188,0x71000ce9,0xc1474869,0x302640ec,0x9cd57100,0xb8aec146,0x7100783d,0xc186ac18,0x182ed7f0,0xde06200,0x854dc150,0xdc620198,0x75c184ca,0x71006c24,0xc186ac16,0x240c58a6,0x49467100,0x9466c188,0x71005435,0xc188db7a,0xce6de6c,0xf9837100,0xd6bfc14a,0x7100e469,0xc1884946,0x3024b2aa,0x48697100,0xf007c147,0x71006c51,0xc18884a6,0x1802e100,0x84a67100,0x79adc188,0x710288fb,0xc14af985,0x4802caa4,0x48697100,0x7a1cc147,0x710018bd,0xc14924bd,0x3c88f564,0xcadc7100,0x733dc184,0x710018c5,0xc14ed619,0x1869ae68,0xdb7a6200,0x2476c188,0x18620240,0x2fc186ac,0x71000cc0,0xc1840592,0x30f6bf7b,0xddd6200,0xc2a6c150,0xda71018c,0x19c184ca,0x840165,0x88db7a62,0x70e100c1,0x84a67102,0x762c188,0x20030b2,0xe4110264,0x84840060,0xf2c14af9,0xec411142,0xbc3101,0x6200a813,0xc1840592,0x138e154,0x84cada71,0xd4664c1,0x17710024,0x88c14ed6,0x24d75e,0x4924be75,0x31651ac1,0xcf31006c,0x18d95c,0x11024c02,0x710060e9,0xc1500dde,0x3c16fc50,0x2400200,0x24d411,0x11024002,0x71000ce5,0xc1500de0,0xc1091d3,0xac187100,0xfe89c186,0x71003cb9,0xc1840590,0x3c1d355c,0x48697100,0x585c147,0x62002430,0xc187c2f2,0x2b8805e,0x84059471,0xb83ffc1,0x10020018,0xcd11102,0x2700200,0x9c2311,0x11027002,0x71000c1b,0xc14924bf,0x60bedc57,0xac187100,0x432ac186,0x71006022,0xc14af984,0x241cae67,0xd6157100,0xd7f0c14e,0x71000c22,0xc1500de0,0xc1a40ec,0x9cd57100,0x48eac146,0x710060f0,0xc186ac16,0x487fe9ea,0xc2f27100,0xa98c187,0x71015cf7,0xc184cadc,0x24059465,0xdb7a7100,0x162c188,0x71003c00,0xc187c2f2,0x30c8f803,0xa604f100,0x30c18884,0x584124a5,0x45c13008,0xc15018,0x30edc2,0x8884a662,0xf4c02fc1,0x5927102,0xf564c184,0x710030e8,0xc184cadc,0x609b79ad,0xf9857100,0x9548c14a,0x71000ca5,0xc1474869,0xc3af438,0x24bd7100,0xd734c149,0x710030d4,0xc188db7a,0x184ae679,0xd6196200,0xc2a6c14e,0xda620168,0x76c184ca,0x71006024,0xc186ac18,0x78eaca32,0xdb7a7100,0xbf7bc188,0x71003096,0xc1500ddd,0xc240ec3,0x9cd56200,0x162c146,0xf2710438,0x44c187c2,0x12c0cff,0x84059062,0x6ce100c1,0x84a67103,0x179c188,0x710030c6,0xc1840592,0x240f6e2c,0xac187100,0xde6cc186,0x710060ce,0xc14af983,0xcc07565,0x6d727100,0xf4f5c14b,0x7100a8df,0xc187c2f2,0x18bd5c3a,0xd5af7100,0xb088c146,0x62003c15,0xc188c53e,0x180e154,0x84cada71,0xc123a7c1,0x18710060,0xdec186ac,0x30cdaf,0x500dde71,0xc17946c1,0xff71000c,0x1ac15036,0x1682565,0x88db7a71,0x587c1,0xf2710018,0xffc187c2,0x3cb707,0x8884a662,0xa0805ec1,0x5947102,0x7ab2c184,0x71006c24,0xc184cadc,0xc1e9d6a,0x49467100,0xd268c188,0x71003ca8,0xc13b13a0,0xcb96552,0x48697100,0x48eac147,0x71000cd8,0xc186ac16,0x54970a98,0xcadc3300,0x9119a484,0xc272c130,0x3ab3c119,0x71008410,0xc14b6d72,0xc176f36,0xf9836200,0xae1dc14a,0x4f10648,0xc146d5af,0xc182df5f,0xc1300000,0xc11c0693,0x48ab28ca,0xdb7a7100,0xb2aac188,0x71003018,0xc1474869,0x6ce802c4,0xc2f27100,0xd7f0c187,0x62001816,0xc1500de2,0x60bca4,0x50370371,0xd5c200c1,0xa6840024,0xb4c18884,0x1cbfede6,0x2a913102,0x100540b,0x773400b4,0x2f43da1,0x2e670e44,0x22039cbe,0x2e8c02f,0x84059271,0xdafdebc1,0xdd33003c,0x1554500d,0x31069002,0x38df8a09,0x9cd57107,0xde6cc146,0x33006cb6,0x6c4af983,0x6840215,0x8cc2a622,0x2580201,0x71005402,0xc186ac18,0x844c02f3,0x5927100,0xca32c184,0x2003cd2,0x3402030c,0xc2f26205,0xe100c187,0xa6330354,0x16d48884,0xd9c12f91,0x4ec14b34,0x3c4247,0x1101ec02,0x33003cb5,0x84500dde,0x1380215,0xa00b0d31,0xf2710024,0xfec187c2,0xc2e0f,0x1101e002,0x20030c1,0x380204bc,0xcadc6201,0x48eac184,0x1884027c,0x9bc186ac,0x83f5355,0x2c43107,0x10030d0,0xc1210228,0x1000cbd,0x2a210048,0x710114dc,0xc184cadc,0x800b6f36,0xf9836201,0xb2aac14a,0xf8020624,0x18031107,0x24be6200,0xc2a6c149,0xdc7100a8,0x68c184ca,0x1804ae,0x4ed61762,0xd8d7f0c1,0xde27106,0x195dc150,0x71007892,0xc14af985,0x450bbf,0x24bf7103,0x40ecc149,0x71003002,0xc1469cd5,0x1835198f,0xd6177100,0x21dc14e,0x710030a5,0xc1500dde,0x185bf141,0x9cd56200,0xc02fc146,0x92710204,0x33c18405,0xb4baca,0x88db7a75,0xb802c3c1,0xec3100cc,0x1ec402e,0x84059071,0x74d56fc1,0x6971003c,0xcec14748,0x2455bb,0x4b34d971,0x5ca9dcc1,0xa062000c,0xcac13b13,0x62075cea,0xc14b6d72,0x602476,0x86ac1671,0x3ab875c1,0xaf840024,0x74c146d5,0x44bd11d4,0x1622201,0xf27102ac,0x1ac187c2,0x1800016,0x87c2f284,0xddff49c1,0x350990c1,0xc0db036c,0xd99e4409,0x9c0c238,0xf10824f5,0x4fbc235,0x1a46c12f,0xf68c114,0x5485c239,0xc92ec12a,0x1d84c125,0x7439c238,0x7d40c12c,0x621cc124,0xebadc237,0x160ac12c,0xd88cc114,0x710eac51,0x419f4bb5,0xb42c4045,0x751cf112,0xfc41d6c6,0x32bf2455,0x59c1940b,0xbe41d051,0x3ebf0115,0x65c1940b,0x14419149,0xea4128db,0xf1c19409,0x8f418ece,0x30379a,0xb12510f1,0xad2a41cf,0xb383fb7,0x1cc5c194,0x9f3841d6,0xb323fc4,0x3153c194,0x5f9041b4,0xf10f1812,0xcc05f504,0x5c72c541,0x940b3240,0xd24241c1,0x6a5d7d41,0x7d81000c,0x1241c5f0,0x30c0d825,0x970bf500,0xf46041be,0xb30c0d3,0x257bc194,0x45f041aa,0xb2ec111,0xd102c194,0x3513800e,0x800ed102,0xdf10f113,0xd641c566,0x2cc0aac8,0x1c1940b,0xe041c567,0x2c40aac7,0xedc1940b,0xbe419de1,0x782d7f,0xd00104f1,0xbf041c6,0xb3240d3,0x5e7c194,0x740841cc,0x71006c5c,0x41d1c493,0xc761551,0x7310f100,0xbf41be97,0x3040d3f3,0x2dc1940b,0x82419415,0x30c12721,0xedc1940b,0xa8418d4d,0x48384f,0xbbc87171,0x488cc41,0x4f100f0,0x41aa8795,0x4110bf2c,0xc1940b30,0x41ae7597,0x181b0856,0x94717100,0xdc9d4188,0xf5003c2c,0x391bdc00,0x2f4bcdc1,0x88e67c41,0x691bdcc1,0x62f3000c,0xc1d6f4cb,0x412a779e,0xc1488b3d,0xc1e87f4c,0x412a6e12,0xc1482942,0xc1e67a34,0x412ace90,0xc14c15c7,0xc1d95557,0x412b0574,0xc14e4cc8,0x410f6b92,0x412f24bc,0xc186ca12,0x40e5ed59,0x412f1ab6,0xc18647d8,0x41486edc,0x412a4153,0xc14664f3,0x414f0165,0x412a6e36,0xc148293f,0xc1709472,0x412f24bb,0xc186ca10,0xc18684a9,0x530030b5,0x4146e424,0xf50090e2,0x1d9a760c,0x2f434e41,0x886d2a41,0x22cb40c1,0x2b6b9bc2,0x513e2341,0x904a39c1,0xaa44003c,0x6cc19e84,0x1e4af300,0xc3c19da1,0x84412ee5,0x9ec183bc,0x9641530b,0xce412ace,0x8cc14c15,0xbac1f190,0x3c412f03,0x7ec1838a,0x9bc1fd96,0x28412b6b,0xcfc1513e,0xba40b9bd,0x3a412f03,0x87c1838a,0xc440897b,0x86412ee5,0xb6c183bc,0x514119a5,0x86412a44,0x24c14681,0xcb4116e4,0x8c350120,0x48a990,0xb5a11e31,0x10f1006c,0xc183bc82,0x41421668,0x412a779e,0xc1488b3f,0x411f093b,0x412a6e8e,0xc1482e3a,0x6cb5967f,0x3e268400,0x32c6c151,0xccc189,0xc1555731,0xc9710138,0x7ec14e4c,0x24cd96,0x513e2893,0xebc894c1,0x12c54c1,0x1e44a44,0xf5000cc2,0x54d24218,0x2b738941,0x51322b41,0x3d5552c1,0x2b057441,0x4e4cca41,0x2310f6c1,0x2acf4c41,0x4c1d9041,0xeef4cbc1,0xa64401b0,0xb0c2003f,0x967f3101,0x71006085,0xc1513e24,0xc0732118,0x8a3a8400,0x8deec183,0xd8c18c,0x85ed5935,0x234401b0,0xc840bed7,0x42314401,0x138c0c6,0x59f902f3,0x6b9bc0f6,0x3e25412b,0x37bbc151,0xa4d3c0b2,0x1bdd5301,0xcd0c109,0x6f763500,0x31001824,0x5c337b9e,0x8a3e8401,0xee1cc183,0x15c3fa5,0xd33e01f4,0x6c254124,0x44f9412b,0x34ecc151,0x11440db,0x2ecb4035,0x464401e0,0x3cc228c8,0x84aa3500,0x3501e0b6,0xf8a84a3a,0x967e3101,0x7100d8e5,0xc1513e28,0x3004c846,0x8a3c7500,0xcb40c183,0xf300480a,0xce3bc502,0x2a434c40,0x46752741,0x61bb5ec1,0x15c5740,0xc1908c31,0x3e930108,0x1ec1838a,0xc3c1cda1,0x343501f8,0x2dcfe7a,0x59f00f1,0x6e14407c,0x2941412a,0x5557c148,0xf301b0f1,0x4e4cc712,0xbfccdbc1,0x2aa35d40,0x4a4e5641,0x142218c1,0x2fc87ec1,0x91f3d041,0xdc8473c1,0x108d43e,0xa132c635,0x1f401ec,0x4086173c,0x412ace92,0xc14c15cf,0x3f06ed78,0x1f401d4,0x40ba026d,0x412b2ff5,0xc1502635,0x40cdc847,0x9c44018c,0x6c3f7016,0xa700f503,0x9e404859,0x3e412a77,0xeec1488b,0x39ca48d,0xde44a35,0x2f3021c,0x4089a5fc,0x412b6b91,0xc1513dd9,0x405b9086,0x310084c8,0x40c3fa6,0x4311f402,0x47c14829,0x74403555,0xcb412b05,0xddc14e4c,0x913f985c,0xcd412ace,0x66c14c15,0xe4c2037a,0x4a3a3503,0x35015cc0,0x74ce84ab,0x967f3101,0x7501689d,0xc1513e25,0x3891908c,0x4601f401,0xbbc210c8,0x40412f03,0xa2c1838a,0xd8c01e44,0xb5634400,0x3903f97,0x3dae3e31,0x1071024c,0x8cc186ca,0x3cd990,0x1743c11,0x174e511,0x83bc8475,0x132118c1,0xfd350018,0x3302b2c,0x59a7444,0x4400fc3e,0xc003fa5d,0xc6350114,0x15cb932,0x48462044,0x440228be,0xbfda11e4,0xd7350264,0x2587669,0x981400f5,0x6b9a3fa6,0x3e1d412b,0x8deec151,0x440144bc,0xbfe7a33c,0x8a4404c8,0x20be2aab,0xaaac4401,0x1ecc204,0x3d1a00f5,0xce91c20b,0x15cb412a,0x2251c14c,0x3700e4af,0x2cd84a3a,0x2ce61101,0x47da8401,0xa655c186,0x150c037,0xa1fd2f35,0x1e3500b4,0xf0fda1,0xd132c631,0x288400c0,0xe4c1886d,0x54bfd967,0xaab94403,0x414c04a,0x99e8cf44,0x35009cc0,0xec19e44a,0x91283501,0x53042007,0x4152f6aa,0x35056496,0xd8d48def,0x9a765300,0x3456414d,0xa600f105,0x12c2183f,0x43412a6e,0x66c14829,0x1ec0f7a,0x488b3e75,0xfe97c1,0x2a3505d0,0xb4bbd3,0xfe84ab35,0x3a3500cc,0x564f04a,0x14706544,0x4401c8bd,0xbfe84aa5,0xf93501e0,0x4149659,0x43211831,0x3e7101c8,0xfdc1838a,0x1c85b2c,0x513e2475,0xad08fc1,0xcf3537d4,0xd8f9e8,0xc5555c35,0xc53500f0,0x114e932,0x4c846235,0x79440474,0xd4c09684,0xa75d4401,0x42c3f59,0x37912835,0xf0530108,0xc4c1ec8d,0x953502f4,0x5040de9,0x30fe9631,0x437100e4,0xacc14829,0x1d410aa,0x4e4cc975,0x173d1ac1,0x1d4401d4,0xe4c20425,0x42564400,0xd8c20b,0x2cf46731,0xc8840408,0x62c14c15,0xb0c20099,0xaaae3101,0x75040812,0xc14e4cc8,0x84679128,0xe44a4400,0x300c225,0x1b7a6631,0x3f710168,0xa6c1488b,0x180243f,0x48294293,0x246f8c1,0xa8c0c2,0x3de99637,0x601500a8,0xa94400a8,0x84c09a12,0x51ca4400,0x9cc042,0x10251c44,0x350180c2,0xa8174256,0xd08f3500,0x35015c22,0x2cf68479,0xaaae3101,0x7100a842,0xc14e4cc9,0xcc5cf467,0x15ca7100,0x9963c14c,0x8400cc0c,0xc1886d2a,0xc0099625,0x943500d8,0xcc8bc8,0x1caaac37,0x2315012c,0xf855012c,0xadc20e46,0x6d1500c0,0x4b3500c0,0xc0887f,0x23425635,0x1c31009c,0xb41c25,0x86ca1275,0x2ed08fc1,0x633500a8,0x841899,0x72aaaf31,0xcc7100a8,0x34c14e4c,0xa8867a,0x4c15c975,0x31e44ac1,0xa6350150,0x144303f,0x277a6635,0x9453015c,0x49c1a3c8,0x4b3505d0,0x84a07f,0x8ef4cb35,0xe535009c,0x144c128,0xfa12a935,0xf844015c,0x28c21a46,0x423d4405,0x2a0c12b,0xa4cb1235,0x1c350114,0xc02825,0x2f425635,0x633500d8,0xc02499,0x28aaac37,0x2f15012c,0xdf4012c,0xc234bf82,0x412ee9a4,0xc183ee1c,0xc23ad078,0x412ee6da,0xc183bae6,0xc22646f8,0x573105e8,0xfc9155,0x4e4cca93,0x9e7a33c1,0x1a491c1,0xbdb600f5,0xe57d4154,0xbcbc412e,0x4256c183,0x3500783b,0x9034251c,0x1000f500,0x5bc240c8,0x72412ef9,0x94c18393,0x1bcbbc8,0x30996335,0x9344009c,0xc4c23d96,0xf4cb3508,0x350114a6,0x2cb87f4b,0x46f83501,0xf5009032,0x3c3db100,0x2a6e8ec2,0x482e3b41,0x337a66c1,0x1c530168,0xebc24025,0x633509d8,0x603c99,0x10947235,0x52310420,0x4382d09,0x8647d893,0x3e46f8c1,0x228bac2,0x5b423d31,0x1cf1015c,0xc183bc84,0xc245d13e,0x412d3e80,0xc1690e95,0xc24327ea,0x412e7afd,0xc17e4ae9,0xc240c685,0x412bb1a8,0xc151594f,0x14a95558,0x2100201,0x210b615,0xc9ce0cf5,0x7fd7c234,0xaf7c412b,0xcb32c151,0x68a6c23a,0x41e5412b,0x658ac151,0xf4043802,0x403f8e6d,0x2aba6cc2,0x4b50da41,0x3edea6c1,0x2a58d1c2,0x47501b41,0xe58fedc1,0x2ac34a40,0x4b7a0941,0xdb9453c1,0x2a5f4140,0x47918041,0xf5c7c1c1,0x2dc70240,0x72381941,0xe996e3c1,0x2bb1bf40,0x51599f41,0xe9ac08c1,0x2ef3c240,0x83623441,0xcdcbcc1,0x2bb47e41,0x51a1bc41,0x31caac1,0x2e6ca441,0x7d829d41,0xd01dec1,0x2eeaf941,0x83edb841,0x3cdee8c1,0x440a4441,0x4124bdc3,0xef30a44,0xc2346c66,0x412adc8c,0xc14ca9e0,0xc23b3bc3,0x412acf4c,0xc14c1d8d,0x410f01c8,0x4400a864,0x4114856c,0x943500a8,0x1c8d3c8,0xd07f4c31,0x427501a4,0xcbc14829,0x1bcbef4,0x22f6ac44,0x35042041,0x703f6b92,0x953440b,0x18c15d,0x40947235,0x1e350198,0x18085a1,0xce7a3431,0xc7710150,0x8cc14c15,0x1383265,0x886d2a75,0x62658cc1,0xfff7000c,0x5163ffff,0xa941bfd4,0x23c0c84f,0xadc17a67,0x7441cccb,0x99403099,0x63c17a7c,0xd041c0d2,0xecc0c619,0xe9c18ad7,0xb641c769,0xfac09977,0x19c18ad7,0x1441cd67,0xfec03104,0xd9c18ad7,0xdb41d029,0xbf0986,0x1dc18ad8,0xde41cd67,0xfe403103,0xbfc18ad7,0x1a41cc35,0x3b400f36,0xf1c15176,0x8a41c769,0xfa409977,0x7c18ad7,0x6641cc70,0x943f8ff8,0x8dc139ce,0x2c41c0d0,0xfe40c61b,0x3bc18ad7,0x7541caa4,0x67402e3d,0xfdc1443f,0xc741c615,0xff409ed9,0x3fc17a79,0x8541cce7,0x9fc02d7b,0x9dc17a7c,0xcf41bfb3,0xd940c877,0x2fc17a7c,0x141ca39,0x16c05413,0x23c1584e,0xd741cf8c,0xb3bf0532,0xbc17a7c,0xbd41cf19,0xc73f8e1e,0x7ac17a7c,0xcd413182,0x2fc12922,0x46c13b9d,0x424136bc,0x4bc12d5d,0x9ac16b9c,0x83413737,0x91c12e97,0xddc17ac1,0x2b412e69,0x16c12bdf,0x75c13cc4,0x6741cc6b,0x3bbf7f46,0x17c10e59,0x141cc6a,0x6c3f86f9,0x3bc11007,0x6441cc64,0xcc3ff107,0x7fc0cc6f,0x7441c455,0xf14057b2,0x7c0ca1b,0xc741c454,0x9d404dd4,0x95c0c172,0xc841c4cc,0x44403b23,0xdfc0bae9,0xb541c65c,0xf14007c0,0x49c0b81c,0x6741c284,0xfec07bd3,0x35c0c8d4,0x2c41c2e1,0xe6c0692e,0xc9c0bd14,0xec41c3b0,0xb8c053c0,0x51c0b8d7,0x1141cc5d,0xf54005ff,0xb5c11e70,0xe341cb3e,0x2a4025c5,0x4dc11be2,0xb241c7d7,0x71c06962,0x7dc11332,0x2341c89f,0xd40426a,0xe7c10a2a,0xda41c841,0x32becc00,0x49c0b977,0xbc41ca5f,0xb6bfcbc9,0xd5c10051,0xb741c719,0x5fc03246,0xedc0b895,0xec41c609,0x8dc05df6,0x3c0bd8b,0x9c41c584,0xc7c06e36,0x79c0c493,0x1e41c897,0x71c05ffc,0x9fc0c82c,0xe541ca1d,0xe5c04a09,0x35c0c4ee,0x7c41caaa,0x4c04c9b,0x63c0ccd4,0x3b41cbf4,0x71c0338c,0xebc0cb72,0xce41caf9,0x12c02aff,0x17c0c132,0xd241c7f8,0xffc0456f,0x2dc0bb76,0xf641c5ee,0xf7c072b5,0x3dc0cc9d,0xe041c916,0x63c02a67,0x17c0bb1b,0xa41c7ba,0xab4012bf,0x79c0b950,0x641c9d6,0x4f400d2c,0xbc0bd07,0x5b41cb4b,0x993ff295,0x1bc0c1f2,0x4041ca62,0xf5402edf,0x6bc0c9b9,0xff41c6e3,0xff40445e,0x75c0c2be,0xce41c761,0x7d404a38,0x8bc0cb13,0x1741cbc1,0x9c4017d5,0x9c0ca16,0x8141c8f4,0x26402479,0x2dc0be0e,0xb341c97e,0xfec0aca7,0x31c18ad7,0x1141d029,0xfec08adf,0xfc18ad7,0x6241d456,0xfec04666,0xffc18ad7,0xcb41d7a4,0x3edc68,0xc5c18ad8,0xac41d527,0x3e403258,0x31c18ad8,0x1641d029,0xfe408adf,0x2dc18ad7,0xb741c97e,0xfe40aca7,0x77c18ad7,0xb941d39e,0xb3405be2,0x25c17a7c,0x9641cff2,0xc9408c4f,0x15c17a7c,0x4841caff,0x2b40a726,0xa7c17a7d,0xfa41c6dc,0x45c0b661,0xf3c17a7c,0xaf41ce82,0x7dc095c0,0x7bc17a7c,0x3b41d39e,0xb3c05be2,0xffc17a7c,0x8841d7a4,0xc9bedc68,0x6dc17a7c,0xaec1091a,0x64413ccc,0x84c197eb,0x27c240c2,0x304143bf,0x4cc183e1,0x41e840c1,0x20c240d5,0xc94139f7,0x6cc11af1,0x41d03f32,0x924624f7,0x9dd4c23d,0x50174138,0x4094c113,0xeabac23c,0xf4d64138,0x4097c114,0x97f2c23b,0xcb9f4139,0xd4fcc118,0x5870c23a,0x2c7c413a,0x305cc11d,0x15422440,0xf142243e,0x3d5c0618,0x34ccdbc2,0x1364b441,0x3bf2cac1,0x34ccc5c2,0x15c3fb41,0x3adf2cc1,0x34ccdac2,0x1bb0b141,0x3fafdec1,0xfcf4000c,0xc1492271,0xc240be84,0x4134cc91,0xc14f56e3,0xc23dd142,0x4134ccce,0xc14643f6,0xc23bf294,0x4134ccd5,0xc148f7b6,0xc23ad7fc,0x4134ccad,0xc14f2197,0xc23aceec,0x4143bd2e,0xc183b75e,0xc23b2c46,0x4143f0be,0xc185e342,0xc23c1876,0x41441ed6,0xc187e08e,0xc23d6019,0x4144336b,0xc188dc08,0xc23f05f1,0x41441dec,0xc1886e0e,0xc2404a42,0x4143fa52,0xc18640f6,0xc2713e6e,0x4055416c,0xc113ad67,0xc272530c,0x402adc83,0xc113adf3,0xc26f570c,0x4070dff0,0xc113adf7,0xc2717eba,0x3fa8ffd2,0xc10d4705,0xc2715a10,0x3f90af3e,0xc1080d84,0xc2715e62,0x3f339cfa,0xc104b593,0xc26f570c,0xc070dfec,0xc113adf7,0xc270ebd8,0xc021b50b,0xc113adee,0xc271d02a,0x3f9faa82,0xc113adf7,0xc2726476,0x3f88a023,0xc11ef725,0xc2717ebe,0xbfa8ffc9,0xc10d4774,0xc27158ca,0xbf8d78e6,0x3007acd3,0xbf01f400,0xc113adf7,0xc27168e2,0xbf0d4f48,0x3c04564b,0xbf01f100,0xc11ef725,0xc27263b4,0x3f893d96,0xc13ae17,0x7d64f400,0x17bf893d,0x18c113ae,0x92c2729d,0xcbf76cc,0x94c10d10,0xb9c272a0,0x8c3f75c4,0x66c10d18,0xb2c273be,0x8f3e15d5,0xb6c16947,0x33c27366,0x193f09a9,0x56c10dcc,0xc0c27363,0x7bbf2476,0x9cc16947,0x67c273b7,0xfc3aba62,0x44c10d94,0x67c27375,0x3fbef6b7,0x44c10d92,0x7bc276f7,0x91bf25f5,0xcc16947,0x7fc27253,0xf3c02adc,0x13813ad,0x67c072f4,0xec113ad,0xefc27245,0x9e3f746f,0x32c109e7,0x90c272a9,0x13f1f67,0xb4c10818,0x9cc2732d,0x63ba233,0x78c1087a,0xe0c272f4,0x75bede2f,0xe4c1087a,0xeac27250,0x3cbe1640,0xcac10564,0xfac27235,0xe0bf68f0,0xeec108bd,0x27410cf5,0x2e4143bf,0xd1c183e1,0xd8410cfa,0x544134cc,0x84c11d31,0x21410d61,0xca4139f7,0x50c11af1,0x49411336,0x9d4138ce,0xecc11493,0xac4119b6,0xb202f302,0xb9411efd,0xd74138ea,0xa4c114f4,0xf34122fd,0xef302ac,0x4124ac14,0x413a5870,0xc11d2c7a,0x410f3e90,0x4134ccba,0xc118029e,0x41144f66,0x3102acd5,0xc1a8fea,0xb411f400,0xd8c11364,0xc3412034,0xfd4134cc,0x52c115c3,0xdb412483,0xb04134cc,0x8ac11bb0,0xac411140,0xf101f402,0x91410d05,0xe64134cc,0xfbc14f56,0xac4118ba,0x35ae3102,0xf4004820,0x48f7b611,0x24a010c1,0x34ccad41,0x4f219441,0x24c452c1,0x43bd2e41,0x83b76041,0x234ee8c1,0x5302ac41,0x411f9e2a,0x4402acd7,0x411a7f9e,0x3e4402ac,0xac4113e8,0xf601f402,0x53410ed6,0xf84143fa,0xa5c18640,0x9040e906,0x58274400,0xd840e9,0x8f3901f4,0xccaa40e9,0xa7904134,0x88a4c150,0x6c40e9,0xe69dd044,0x44006c40,0x40df3c53,0x3d44006c,0x6c40d4ff,0xd07d4400,0x6c40c7,0xbdaded44,0x44006c40,0x40b9ebdb,0xa144018c,0x8c40b9f5,0xc3094401,0x18c40ba,0xc66ca044,0x44460840,0x40d36dd9,0x63440438,0x8c40ddfb,0xfb484401,0x18c40e5,0xbe7d2044,0x44018040,0x40c89ecb,0xd3310180,0xcd51f,0x1364b484,0xe069afc1,0xf7018040,0xc3235730,0x34ccd140,0x48e78e41,0xba2893c1,0x34cc8b40,0x4f0fad41,0xce7857c1,0x34ccd440,0x46935641,0xdb2468c1,0x34cccc40,0x4765c141,0xe50308c1,0x34ccd740,0x4b4c2341,0x22ceecc1,0x23240420,0x370108c2,0x20241876,0xc2252404,0xf1440108,0x8c22705,0x4a423501,0x35042028,0x4028c284,0xa79f3505,0x35053428,0x1428c4c8,0xc14c5346,0x20d9c228,0x1630f701,0xd6c22833,0x534134cc,0x77c14b44,0xd1c226f0,0xaf4134cc,0xfcc14759,0xcfc2255c,0xda4134cc,0x22c14696,0xd2c223f3,0xc24134cc,0x3c148f5,0xacc222d8,0x484134cc,0x5cc14f20,0x54c2830,0x482611,0x141ee577,0x255c06c1,0x2317054c,0x2211054c,0xb1750540,0xfcc11bb0,0x59422d4,0x27326c37,0x251705d0,0x241705d0,0x231505d0,0x1f405d0,0xc2172c46,0x4143f0bf,0xc185e344,0xc2181876,0x18350228,0x1201960,0x1b05f037,0x1c150120,0xec370120,0x1680ace,0x480b17,0x480c17,0x480d15,0x5f102f3,0x1dedc20f,0x6e0e4144,0x4a43c188,0x8853c210,0xc2843105,0x77016810,0xc183e132,0x6810a79f,0x68101701,0xc2102401,0x16370288,0x1681033,0x1680e17,0x1680d17,0x1680b17,0x1680a17,0xbfc210d1,0x9a4134cc,0x27c11802,0x480eec,0x35016802,0xb4d4c20d,0xc20b2406,0x2c530288,0xdec20adf,0xfc310408,0x1680ad4,0x1d2c7d77,0xf326cc1,0xd170168,0xc350168,0x168b9c2,0x1680b15,0xfd9dd653,0x6b42cc1,0xfe588d55,0x174bec1,0x2940015,0x1601837,0x317012c,0x417012c,0x471012c,0x43bf26c2,0x12c3041,0x1fc20433,0xc7310390,0x12c04c4,0x509b4d71,0x4c14cc1,0x5271012c,0x16c11d31,0xe40433,0x2945511,0x12c0217,0x12c0115,0xe6460cf1,0xccd2c1ff,0xf5bf4134,0xb006c148,0xccacc1fd,0x20474134,0x305cc14f,0x11029404,0x11012c9b,0x11005402,0x110294e6,0xf3079801,0x1364b406,0xffe595c1,0x34ccc3c1,0x15c3fc41,0xfdbe57c1,0x12cddc1,0xfda9f691,0x3a5870c1,0x12c8041,0x12c0311,0x14939c71,0x19246c1,0x10f7012c,0xc1135016,0xc2004093,0x4138eab9,0xc114f4d9,0xc1fe812e,0x413997f3,0xc118cb9e,0x2ce59dd6,0x2ce61501,0x30ec4401,0x3c0c1e8,0xeac03044,0x4403c0c1,0xc1ee0be2,0x86440258,0x58c1f094,0x85094402,0x12cc1f1,0xf14f3e44,0x44012cc1,0xc1f1898e,0x9844012c,0x2cc1f182,0x662d4401,0x12cc1f0,0xede0ee44,0x4403c0c1,0xc1eab9f9,0x463703c0,0x12ce7e6,0x12ce515,0xf060b844,0x31012cc1,0x54edd84e,0x1ee69300,0xb80cc114,0x58d5c1ea,0xe5953702,0x17012ce7,0x15012ce5,0x44012ce5,0xc1ee64d8,0x8b44012c,0x2cc1eb24,0x81264601,0x12cc1e8,0x12ce615,0xcd9dd731,0x6071012c,0x8dc183b7,0x12cce58,0x85e34277,0xd030ecc1,0xd217012c,0xd617012c,0xd817012c,0xd917012c,0xd917012c,0xd917012c,0xd911012c,0x527700d8,0x2dc11d31,0x12cd866,0x12cd517,0x12cd217,0x12ccf11,0x258c011,0x12ccd15,0xd860b737,0xd511012c,0x2c020054,0x2cd21701,0x2ccf1701,0x2ccd1701,0x2ccd1101,0x2c7e7701,0x64d8c11d,0x17012cd6,0x17012cd3,0x11012cd0,0x71012cce,0xc118cb9f,0x2cb59dd7,0xb75c7701,0x588bc183,0x17012cb6,0x15012cb8,0x37012cba,0x2cbe0be1,0x2cc01701,0xc1c13301,0xf1038427,0xc14f3e00,0x39f71ec1,0x1af1c841,0xc1898ec1,0x4e71012c,0x98c1509b,0xd8c182,0x12c5311,0x12cc017,0x12cbd11,0x4759b077,0xbab9f9c1,0xb717012c,0xb515012c,0xb837012c,0x12cc060,0x54bd11,0x15012c02,0x31012cba,0x2cb7e594,0xc3fd7101,0xbe58c115,0x75012cb5,0xc11bb0af,0x2cb5a9f6,0x64d73501,0x37012cbe,0x2cbb248a,0x2cb81101,0xf4d87101,0x812dc114,0x11012cb6,0x11012ca2,0x11012c9d,0x3302585e,0xb0bfc19e,0x30ed3704,0x15012ca0,0x37012ca2,0x2ca60be2,0x2ca81701,0x2ca91701,0x58a91101,0x2cc91102,0x2ca91101,0x2c4d1101,0xd8a91101,0x12c0200,0x12ca811,0x4b445677,0xa5e0eec1,0xa217012c,0x9f17012c,0x9d17012c,0xa811012c,0x9c71012c,0x4ec11802,0x54a5d8,0x17012c02,0x15012ca2,0x37012c9f,0x2c9dbe57,0xc19d3501,0x11025871,0x77012ca6,0xc114939d,0x2ca3248b,0x2ca01701,0x2c9e1101,0x2ca11101,0x2c851501,0x588b3101,0x77012c86,0xc185e342,0x2c8830ed,0x2c8a1701,0x2c8e1701,0x2c901701,0x2c911701,0x2c911701,0xc1917101,0x4134cca8,0x11012c4f,0x200d891,0x9017012c,0x8d17012c,0x8a17012c,0x8717012c,0x8517012c,0x9017012c,0x8d11012c,0x2c020054,0x2c8a1701,0x2c871701,0x2c851101,0x58ae1101,0x58851502,0x64d83702,0x17012c8e,0x11012c8b,0x11012c88,0x150258d9,0x35012c86,0x2c5b3bae,0xb11a3101,0x75012c5c,0xc185e344,0x2c6061da,0x80603501,0x35012c65,0x2c6c17c3,0x290d3501,0x35012c71,0x2c730a12,0x9e7c3501,0x31012c72,0x2c73131d,0x9b4e7101,0x52fc150,0x7500d873,0xc11d3154,0x2c70cc5b,0xc1dc3501,0x35012c6b,0x2c6573f2,0xcc8c3501,0x35012c5f,0x2c5b600b,0xc16f3501,0x31012c70,0x546bb09b,0x1ee67500,0x7018c114,0x35012c65,0x2c5fcb29,0x7cae3501,0x35012c5b,0x2c5b53ec,0xc9b13501,0x35012c6c,0x2c664915,0x24c3101,0x77012c61,0xc114f4d8,0x2c5d025a,0x2c2b1101,0xb75c9301,0xb116c183,0x58bec12c,0x61d83702,0x15012c30,0x35012c35,0x2c3c17c2,0x290c3701,0x15012c41,0x31012c43,0x2c429e7a,0xf1c87101,0x131dc11a,0x11012c43,0x11012c50,0x7100d843,0xc11d3154,0x2c40cc58,0x44547701,0xc1dcc14b,0x15012c3b,0x37012c35,0x2c2fcc8b,0x2c2b1501,0xc16e3101,0x71012c40,0xc118029b,0x543bb09c,0x1ee67500,0x7017c114,0x37012c35,0x2c2fcb28,0x2c2b1701,0x2c2b1101,0x2c7f7101,0xc9aec11d,0x77012c3c,0xc114939c,0x2c364914,0x2c311701,0x2c2d1501,0x775c5301,0x682cc0f6,0x6230460d,0x12cc0f9,0x12c0017,0x12c0517,0x12c0c17,0x12c1117,0x12c1311,0x83e12e71,0x129e7cc1,0xca11012c,0x1311012c,0x5802012c,0xd8131102,0x2580200,0x12c1011,0x4b445771,0xbc1dbc1,0xaf75012c,0xf1c14759,0x8340573,0xff991844,0xf70708c0,0xf6c01600,0x34ccacc0,0x4f204641,0x10c16ec1,0xb11012c,0x2c020054,0x2c051501,0x96534401,0x960c0ff,0xf6f95b44,0xf505dcc0,0xf6a7d600,0x3a5870c0,0x1d2c7d41,0xcc9b0c1,0x1535012c,0x12c0649,0x1024b31,0xd984012c,0xb8c114f4,0x8cc0fa04,0x775c350d,0x35012c96,0x2c996233,0xc3af4401,0xc00c0a0,0xab00c144,0x440960c0,0xc0b82f83,0x18440960,0x60c0c252,0x14254409,0xe28c0c6,0xc53cf744,0x440960c0,0xc0c62639,0x5f4404b0,0xccc0c60a,0x98b3440f,0x960c0c1,0xb783b444,0x440960c0,0xc0aae7e2,0x1a31012c,0x12c9f99,0x48f5bf75,0x96c016c1,0xdc44012c,0x60c0c182,0x61393109,0x840054b7,0xc1141ee6,0xc0aae02f,0x53370a8c,0x12c9f96,0x12c9615,0x96a7d931,0x7f84012c,0x60c11d2c,0x60c0b993,0x92294409,0x960c0ac,0xa2049644,0x310a8cc0,0x2c9a04b8,0xcb9e8401,0xdd6ec118,0x258bfd9,0xe588ca44,0x350258bf,0x2c01875d,0x1823501,0x35012c16,0x2c305f07,0xa42f3501,0x35012c44,0x2c4c284a,0x79ee3501,0x35012c4a,0x2c4c4c73,0x14be3101,0x7500d84c,0xc11d3154,0x2c433166,0x7683501,0x35012c2f,0x2c15cfc4,0x64674401,0xbb8bffe,0xdb005844,0x530258bf,0xc04305b8,0x310a8cba,0x202ec272,0x1ee67101,0xc05dc114,0x84000c15,0xc11364b4,0xbffe594b,0x6d530258,0xdbbfdbe5,0x62440258,0x2cbfda9f,0x26c03501,0x35012c33,0x2c192453,0x92d3501,0x44012c04,0xbfe812e0,0x92440bb8,0x2c3fa622,0x773e5301,0xb0bf3f9a,0xe27a4404,0x2583f79,0x27f9f844,0x4402583f,0x3e7a0f91,0xe4440258,0x58bd9485,0x849d4402,0x960be42,0x279e9d44,0xf414acbe,0x44c6e701,0x34cca8be,0x509b5741,0x414b9dc1,0x440708be,0xbd4c5868,0xc1440e10,0x583e87c4,0xc1014402,0x2583f28,0x819bb244,0x4403843f,0x3fa4ffb0,0xd53012c,0xbabd4170,0xb3440834,0x183e89ec,0xfe9b4412,0x2583f28,0xa6ce02f3,0xccc33f81,0xc3fe4134,0x1a93c115,0x8db3fa4,0x609e4407,0x11883fa5,0x4d940844,0x4408343e,0x3f1b6ea4,0x1a44012c,0x103f6fdb,0xed314411,0x3843f97,0x8988a453,0x4b02e40,0x869dd044,0x35025840,0xac7e789e,0xfe7e3511,0x4411ac69,0x404fa0f9,0xd131012c,0x11ac3b5b,0x8640f671,0x33d7b6c1,0x308411ac,0x16c183e1,0x2c403586,0xb3924401,0x12c4033,0x33eb4631,0x538411c4,0x9ec11d31,0x2c403cce,0xf8983101,0x84116450,0xc14759af,0x406a3040,0xed44012c,0x2c408066,0x3fec4401,0x12c4089,0x3cfa4044,0x44012c40,0x40513d96,0xa731012c,0xc6a3f,0x1511c402,0x3711c480,0xb48906a5,0xb4891512,0xd9404412,0x12c404c,0x66dba931,0x1684123c,0xc7c11350,0x2c407bf6,0xfb484401,0x12c4085,0x54c45237,0x53171344,0x4f241344,0x37025841,0x444a7f9e,0x44431713,0x443e1513,0xf5ee3513,0x3514643c,0x583d6184,0xece44414,0x12c413c,0x3cfad144,0x4404b041,0x413f33aa,0x2644012c,0x5841443e,0x8c104402,0x12c414a,0x50337644,0x44012c41,0x41549ff6,0x9037012c,0x14703f3e,0x141c4411,0x141ee571,0x4a8feac1,0x7002000c,0x41502414,0x52441068,0x2c415483,0xac144401,0x2584154,0x43365037,0x491714f4,0x4e1714f4,0x521514f4,0xec5314f4,0x2ec22ece,0x46371068,0x12fc2f2c,0x10683015,0x31601944,0x370384c2,0xfc3305f1,0xc2343512,0x11119452,0x2119434,0x34171068,0x34171194,0x343312fc,0x5dcd9c2,0x34331631,0x53111068,0x32171068,0x31151068,0x22371068,0x11942ff3,0x12fc2e17,0x10683411,0x18029c71,0x32ec26c1,0x94020048,0x48311711,0xfc2f1718,0xfc2e1712,0x942e1112,0x687c1111,0x68331110,0x689d1110,0x68311110,0x18cc0210,0x12fc3017,0x11942f15,0xba2100f1,0xffffc228,0xf90cc13b,0x3b06c14e,0x71000c27,0xc147bf27,0xc2552bf,0x9cd57100,0xf40ac146,0x71000c23,0xc148fe37,0xc22d98a,0xe04f100,0x8dc14ef9,0xc225af,0x6dc13c00,0x49c1131c,0xc2792,0x15989971,0x28aa9ac1,0xa71000c,0x66c11b4c,0xc23e4,0x15f18d71,0x22e544c1,0x7ef3000c,0xc11ba2e3,0xc222e2ea,0xc144d554,0xc11b75fa,0xc222d2b8,0xc144cc4a,0xc183ec9a,0xc2240173,0xc144cb80,0xc11598f3,0xc22576fb,0xc144cb7f,0xc11356fe,0xc226909c,0xc144cccd,0xc113c4b9,0xc227af34,0xc144cb80,0xc115f1e6,0xc228b566,0xc144ca83,0xc11be38a,0xc228c056,0xc144d3e6,0xc183f632,0xc2283a9c,0xc144cb7f,0xc1867200,0xc22702b6,0xc144cb7e,0xc188687c,0xc225c9d6,0xc144cccc,0xc188e138,0xc22490f6,0x5300187f,0xc2235910,0x3100307e,0xe41cba21,0x1140200,0xc1b11,0x11011402,0x71000c19,0xc1469cd5,0xc17f409,0x14391100,0xc161101,0x140d1100,0xe4191101,0x1140200,0xc1b11,0x11011402,0x71000c1c,0xc11b4c0a,0xc178cf2,0xfd2c7100,0xd708c116,0xf3000c16,0x1d03d206,0x16d43bc1,0x44d348c2,0x1d029dc1,0x16d2b8c1,0x11449c2,0x176f4c31,0x98710114,0xd6c117c6,0x1081849,0x14f79e77,0x1976fbc1,0x1a110120,0x20020018,0x301b1101,0x1200200,0x1201c17,0x1201c17,0x3c1c11,0x11012002,0x200fc1b,0x19170120,0x18110120,0x7c710024,0x10c18868,0xc1759,0x86720071,0x10c3ebc1,0x1e3300f0,0x2cb85076,0x85c13b91,0x2c14af9,0x180ee1,0x47486971,0xd52bfc1,0x2c02000c,0xc0b1101,0x12c0200,0xc0a11,0x4ef90d71,0xee100c1,0x343100fc,0x481415,0x3c0000a2,0x17c653c1,0xcbbbcc1,0xdaa97100,0x52c0c11c,0x7100240d,0xc11369a1,0xc0b8cf2,0x1380200,0xc0a11,0x17013802,0x1701380a,0x1101380a,0x201080b,0xc110138,0x38020120,0xcc0d1101,0x56fe7100,0x2b6c113,0x71000c0f,0xc1144d88,0x30103a9c,0x8304f100,0xf4c1183a,0x4bc210c0,0x47c144cc,0x56c11d45,0x13810c0,0x83f63031,0x58040024,0x2b53702,0x1701380f,0x1101380d,0x200540c,0xb110138,0x71000c,0x21c18672,0xfc04ba,0x36c0a11,0xc0311,0x11025802,0xf1000c01,0x469cd504,0xffe814c1,0x3bffffc1,0x48fe38c1,0xfdb314c1,0xc71000c,0xbcc14ef9,0xf004bb,0x1cdaa862,0xc2476c1,0xc6537100,0xe101c117,0x84001802,0xc1141534,0xc1ff19e4,0xc0310120,0x180152,0x1369a171,0xfdae10c1,0x5f60018,0xc11d03cc,0xc1fda876,0xc144d349,0xc11d029b,0xc1fede97,0x170120,0x1110120,0x200200b4,0x14031101,0x1200201,0xc0411,0x11012002,0x1103b404,0x71012042,0xd3e5c204,0x2034c144,0x3c041101,0x2580200,0x1200315,0x648418f1,0xcb6fc201,0xe45ac144,0xc8f0c188,0xcb7fc1ff,0x964cc144,0xbc8ac187,0xca82c1fd,0x9d78c144,0x7442c184,0x7100f0f1,0xc14ef90a,0xcee760c,0xbf277100,0xa57ec147,0x2000cea,0xe7110120,0x2002000c,0xce51101,0xf90c7100,0x7778c14e,0x7100e4f1,0xc11cdaa8,0xcf048ec,0xc6537100,0xc202c117,0x2000ced,0xe7110120,0x2c71000c,0x80c116fd,0xceaa5,0x11012002,0x2000ce5,0xe5170120,0xe6150120,0xab440120,0x40c1e893,0xedf63102,0x7100c0ea,0xc11356fe,0x24ee056c,0x4d887100,0x7538c114,0x84000cf0,0xc1183a83,0xc1f181e8,0xac440120,0x20c1f180,0x75383101,0x84003cf0,0xc1867200,0xc1ee056b,0x7460498,0x20c1eac9,0x24e71101,0x1200200,0x120e517,0xf0d911,0x11012002,0x2000cd6,0xd2110120,0x4002000c,0xccf1102,0x1200200,0xccd11,0x11012002,0x7100e4d9,0xc11cdaaa,0xcd848eb,0x20521100,0xcd51101,0x1200200,0xccf11,0x11012002,0x2000cd2,0xcd110120,0x1cf1000c,0xc11d03cc,0xc1cdc252,0xc144e0ec,0xc11b8d2a,0xc1cfef32,0xc144c941,0xc115b49f,0xc1d2df0c,0xc144c1e8,0xc11359b7,0x8d6056c,0x1140201,0xccd811,0x17011402,0x170114d9,0x110114d9,0x710108d8,0xc18671fe,0xcd6056b,0x687c7700,0xc907c188,0x110114d2,0x20048cf,0xcd150114,0xd6310114,0xe4c187,0x50761d33,0x3b913270,0x4af983c1,0xbdc204c1,0x69710018,0x7ec14748,0xcbaa5,0x469cd571,0xb7e812c1,0x3911000c,0xb5110360,0x2002000c,0xe4c11101,0x20ab1100,0xcc01101,0x1200200,0xcbd11,0x14153471,0xb719e3c1,0x2002000c,0xcba1101,0x1200200,0xcb511,0x3cd04f1,0xa75cc11d,0xd7ebc1b5,0xf88c144,0xa56ec11d,0x7100f0b5,0xc183ec9c,0x2cb6cf23,0xeb867101,0x4ecbc117,0x71000cb9,0xc1142626,0x58bb93ab,0x5c0c7702,0x56cc113,0x110138be,0x11000cc0,0xe4024c82,0xcc4bc1c1,0x4546c144,0x80acc11d,0x5c4c1c1,0xc0753631,0x71012c,0x6ac18672,0xcbe05,0x88687c31,0xc4040054,0x21eb3505,0x310018b9,0xcb6b220,0x72007500,0xe885c186,0x3100fc42,0xc3cec18,0xbf277100,0x4afcc147,0x71000c35,0xc1469cd5,0xc2fd024,0xfe397100,0x6627c148,0x71000c2b,0xc14ef90c,0xf042eeee,0xdaab7100,0x91d5c11c,0x71000c40,0xc117c651,0xc3b8404,0x15347100,0x33c6c114,0x71000c2e,0xc116fd2c,0xc354b00,0x69a17100,0x5c20c113,0x75000c2b,0xc11d03cd,0x2c2b4eb8,0x4adc3501,0x31012c2b,0x202d9e46,0xeb867101,0x9d96c117,0x75000c32,0xc1142626,0x2c372757,0xad83101,0x7101203c,0xc1144d88,0xc40ea70,0x3a827500,0x3d0c118,0x35012c43,0x2c430158,0xea6d3501,0x3100fc40,0xc3c0ad5,0x687c3100,0x4005488,0xd7350810,0x183243,0x2d643f31,0x2c02000c,0xfc121501,0xec173100,0x71000c0c,0xc147bf27,0xc054afb,0x9cd58400,0xa04bc146,0x5b8c0ff,0xf6cc4f31,0xa71000c,0x67c14ef9,0xf012aa,0x1b4c0d71,0xe4923c1,0x9871000c,0x33c11598,0xc06be,0x131c6d84,0xfc678ec1,0x3105b8c0,0xcf6b83f,0xc90af100,0x6dc11d03,0xebc0f69d,0x86c144d7,0x8cc11d0f,0x41c0fb3c,0x87c144c9,0x2150114,0x17310114,0x37808e6,0x1364f971,0xebccac1,0x4f10108,0xc115f1e4,0xc112d597,0xc144ca83,0xc11be38d,0x6c130159,0xf6327503,0xea6dc183,0x3100d810,0xc0c0ad5,0x687c7500,0x920ec188,0x44036c05,0xc0ff23c0,0x2a4405a0,0xa0c0f6f2,0xd1094405,0xa2cc0c5,0xb9d82e31,0x2771000c,0xf6c147bf,0xcaa95,0x11010802,0x71000c9f,0xc148fe38,0xc96cc4f,0xf90a7100,0x54cec14e,0x7100d8c5,0xc11b4c0d,0xcbc9247,0x98987100,0x7c65c115,0x71000cad,0xc1131c6d,0xc9c678c,0xfd2c7100,0xb83fc116,0xf1000c96,0x1d03c904,0x96a1d5c1,0x44d348c0,0x1d0299c1,0x9b7a59c1,0x9971009c,0xa3c117c6,0xca595,0x159e05f4,0x735c114,0xcb80c0b2,0x6a10c144,0x4eadc113,0x5acc0ba,0xc1d4e131,0x5f40018,0xc1183a83,0xc0c607a0,0xc144cc4b,0xc11d4543,0xc0c602b2,0xda310348,0x48c1d4,0x86720084,0xb815abc1,0x440594c0,0xc0ab241c,0xbe310594,0x249f23,0x87964c75,0x96f22ac1,0x12310114,0xe44ba2,0x4ef90c71,0x33b05bc1,0x2771000c,0xedc147bf,0xc152b,0x469cd584,0xfe812cc1,0x31021cbf,0xcdb313c,0xf90a7100,0xa99bc14e,0x7100e44a,0xc11b4c0d,0xc39248d,0x98987100,0xf8cbc115,0x84000c1a,0xc1131c6d,0xbff19e30,0xfc31021c,0xcdae0,0x1d03c984,0xda8755c1,0x440114bf,0xbfede964,0x45310114,0xa80b2b,0x14159e71,0x240e6bc1,0x107500fc,0x5ac1136a,0x114349d,0x43a9c131,0x83750018,0x41c1183a,0x1144c0f,0x4c056435,0xb5310114,0x4843a9,0x86720075,0x302b56c1,0x38350114,0x1141648,0xfc8ef731,0x4c840078,0xa8c18796,0x28bfdbc8,0x21214402,0x228be3a,0x44fa0544,0x4401143e,0x3f2b503c,0xed310114,0xc817e,0x48fe3b71,0xa4cec4c1,0x5c01000c,0x2a983404,0x440b28be,0x3ddb6dca,0xc5440b40,0x6c3f141c,0x61e1310c,0x71000c8e,0xc116fd2e,0xca51f0c,0xce1df400,0xa3c11d03,0x483fa578,0x9ac144d3,0x22c11d02,0x493fa5a9,0x9cc144cc,0x9cc183ec,0x803f9216,0x9ac144cb,0x98c117c6,0x1c3f6d8a,0x413e4402,0xc603f22,0x4aa125f4,0xcb803e7d,0x4d87c144,0x6e33c114,0xcb80bd6a,0x3a81c144,0xf388c118,0xcc4abe40,0x454ac144,0x55fcc11d,0xd3e5be40,0xf62ec144,0x6c1ac183,0xa08bd6a,0x7d4ae444,0x4402343e,0x3f0d8a98,0x98440450,0x183f5bc2,0xde123100,0x84006c94,0xc1867200,0x40345dee,0xa0310120,0xc4c4f,0x47bf2771,0x6ad40fc1,0xd571000c,0xb7c1469c,0xc805f,0x48fe3971,0x8933b1c1,0xc84000c,0x71c14ef9,0x20403556,0xdb6e3101,0x71000c46,0xc1159899,0xc650731,0x1c6d7100,0x9878c113,0x71000c83,0xc116fd2e,0xc8947c3,0xce10f100,0xb0c11d03,0x544088e8,0xf8c144d5,0xd9c11b75,0x7f407fe8,0xf4c144cb,0x4fc11598,0xc6890,0x1356fe84,0x4fd4aac1,0x31010840,0xc3c5647,0x3a818400,0xf0c7c118,0x1084033,0x33faa044,0x31010840,0x3c3c5650,0x72008400,0xd4aec186,0xf0404f,0x69b7c844,0x31033c40,0x2480dc48,0x4c04f100,0xd4c18796,0x8240890d,0x7ac144ca,0xf7c1849d,0xd8ba2e,0x4ef90d71,0xc627d0c1,0x2771000c,0x7c147bf,0xcd56a,0x11010802,0x2000ce0,0xe9110108,0xc71000c,0x39c14ef9,0xd8baab,0x1b4c0b71,0xc36dbbc1,0x9871000c,0x99c11598,0xcd283,0x11010802,0x2000ce3,0xe9110108,0x802000c,0x8e81501,0xf46d3101,0x71009cdf,0xc11598f4,0xcd44828,0x56fe8400,0x7b24c113,0xe7040cb,0xc2866c31,0x5f40108,0xc115f1e5,0x40ba54d8,0xc144ca83,0xc11be38c,0x40b9fd50,0x28310c18,0x3cbe2b,0x86720075,0xc7ea57c1,0xe4370108,0x108d4db,0x24e011,0x15010802,0x440108e9,0x410d177b,0xe8310108,0xc1313,0x47bf2771,0x1ab504c1,0xd571000c,0xdcc1469c,0xc202f,0x48fe3971,0x2499d9c1,0xc84000c,0x9cc14ef9,0x8410d55,0xb6de3101,0x71000c11,0xc1159898,0xc1941cc,0x1c6d7100,0xcc3cc113,0x71000c21,0xc116fd2e,0xc24a3e2,0x3ce8400,0x7458c11d,0x2104124,0x1ffa3644,0x31021041,0xc1a2414,0x56fe8400,0xbd92c113,0x1084115,0x11433644,0x44010841,0x410d2a6c,0xa8440108,0x8410cfe,0x15943101,0x84003c0f,0xc1867200,0x4113f52c,0xf2440210,0x10411a6d,0x6e243102,0x84002420,0xc187964c,0x412486ea,0x21310210,0xd0834ba,0x110f7802,0x2000c33,0x31110d20,0x8c02000c,0xc2f1110,0x108c0200,0xc2e11,0x11108c02,0x20cf031,0x33110f78,0x7802000c,0xc34110f,0x108c0200,0xc2f11,0x15f18d71,0x2ee544c1,0x8c02000c,0x8c2e1710,0xc22e3310,0x350f784a,0x8c300173,0x4c0cf110,0xd3c23172,0x93c144d3,0xcbc11358,0x41c232f7,0x3dc144c9,0xb1c11439,0xc3433,0x131a04f1,0xbf9ac118,0xcf04c234,0x1bd6c144,0xc0f4c11d,0x10e8834,0x3a270480,0x240d1434,0x114c233,0x31c9d644,0x31042cc2,0x243090f6,0xe340200,0x242f11,0x720008f1,0x680bc186,0xeed641a1,0x6ecec0a3,0x3e9bbf5d,0xa09f4199,0xf1000cbf,0x7be18204,0xe71cc941,0x5d6ebd40,0x8bba1dbf,0xdb13ba41,0xc030018,0x180100,0x7cf9d271,0xe6c69341,0x3c030018,0x180100,0x1005403,0x5371000c,0x4e41a914,0xc7d99,0xafa03d71,0x1036d241,0x12f3000c,0x41b254d9,0x3ef2ea53,0xbf5d6ece,0x41b181b3,0xbfaaac08,0xbf5d6ece,0x41adf869,0xc0317093,0x31003cce,0xc7d9956,0xd2207100,0xc693c24a,0x44003ce6,0xc25c47b0,0xf8440060,0x78c25832,0x8c0c7100,0x1cc9c24a,0x440030e7,0xc25170ba,0xc0300a8,0x180100,0x1003003,0x4803000c,0xc0100,0x601dd453,0x6c4ec2,0x6363ca71,0x1036d2c2,0x9f40018,0xc264be18,0xbef2ea53,0xbf5d6ece,0xc2645484,0x3faaac08,0xbf5d6ece,0xbd134890,0x5613003c,0x4f100e4,0x40a3f7db,0x3faded29,0xbf5d6ebd,0x40932f57,0xb4280000,0xe2847100,0x413c,0x710018f0,0x41876c55,0x604fd899,0x6b807100,0xb4a24146,0x71002429,0x4070f927,0xc6d9681,0xa2e97100,0xb4a2418d,0x71002429,0x41926769,0x20f00000,0xa33e7101,0x9681c256,0x7100186d,0xc25249d6,0xc917e04,0xa504f100,0x57419566,0xbdbf7877,0x96bf5d6e,0xc259f9,0x182800,0x4d393e71,0xa2468bc2,0xa671000c,0x29c25c12,0x24aded,0x47c9d671,0xa80000c2,0x1f40018,0xc25cc9d6,0x0,0xbf5d6ebd,0x41966c55,0xa971000c,0x994152d8,0x904fd8,0x61513471,0x67d27c41,0xa971000c,0x4170d8,0xc7000,0x1005403,0x6c3500d8,0x6c425a,0xb4b27d71,0xa2468b3f,0x7a710024,0x3d58a9,0xca800,0x2b62a671,0x917e0440,0xb403000c,0x3c0100,0x80300f35,0xd6350060,0xd83d49,0x100cc03,0x8030030,0x300101,0x1010803,0x50030018,0xc0101,0x1011403,0x4403000c,0xc0101,0x2f28871,0xd7030cc2,0x5162000c,0xddc1ca33,0x71000c61,0xc1be1d3d,0x18cdba69,0x27dd4400,0xb4bfa7,0xc9424771,0xd7030cc1,0x44030120,0x240101,0x1013803,0xf003000c,0xc0100,0x100b403,0x6e35000c,0x1a438f0,0x1336c871,0x98bc2ec2,0xae710048,0x99c20ee3,0xcb554,0x16707771,0x74a2b1c2,0x1535000c,0x1b0359a,0x8850d71,0xcdba69c2,0x4350018,0x1b03381,0x19a2da71,0xfe1dac2,0x20710018,0x80c21b18,0x210054a,0x32c9d635,0x36201bc,0xddc2027a,0x7100b461,0xc21ab6d8,0xac9f032a,0x480302,0x3013801,0xa801006c,0x85a27100,0xeb29c218,0x3000c3a,0xc0100b4,0xaabd7100,0xcbcfc214,0x71000c8c,0xc20f696a,0xcb289bb,0x1d5b7100,0x1ccec209,0x71000ccc,0xc1a5d1df,0x908ccbda,0x24e37100,0xc1a0,0x44000c58,0xc06a33d7,0x5a4402a0,0xa0c0249d,0x94e7102,0x5d44c1ae,0x710024ab,0xc1b66ae4,0xcc0f9d5,0xccb24400,0x2acc08f,0x9b7a3971,0x65cb3c1,0xc710018,0x2ac198e2,0x378ba55,0xa0953644,0x302b8c0,0x240101a4,0xeee87100,0xa3d7c1c0,0x71000cd0,0xc199f86b,0xe4b2bbe4,0x4ead4400,0x2c4c0a6,0x1027c03,0x5c710024,0x63c19eaa,0xc043ef,0x1005403,0x84030030,0x180100,0xa6a5f871,0x909345c1,0xcc03000c,0xc0100,0xb15ffa71,0xb55497c1,0xd803000c,0xc0100,0x102d003,0xc0030060,0xc0103,0x1030003,0xe403000c,0xc0103,0x1041403,0x6003000c,0xc0103,0x1042003,0x440301d4,0x3a80104,0x1037803,0xd350024,0x3e436e4,0xa9b15344,0x3700e440,0xb434d8a9,0x39c0103,0x3003001,0xc010354,0x3c0300,0x400f001,0x71440234,0x1c3e70ab,0xab714402,0x21c3e70,0x70ab7144,0x4402103e,0x3e70ab71,0x714402dc,0xf43e70ab,0x180102,0x54044402,0x70ab7140,0x103243e,0x98020018,0x180204,0x104b002,0xcc04000c,0xab714403,0x4383e70,0x3003001,0x71440480,0xc03e70ab,0x2e01f400,0x763e70ab,0xfa417b6d,0x2ec10161,0x83e70ab,0xab2e4401,0xcc3e70,0x70ab7144,0x201083e,0x802003c,0xab714301,0x1443e70,0xab713f54,0x1083e70,0xab2e01f3,0xddef3e70,0xf5c94191,0xab2ec0ee,0x4383e70,0x71000c01,0x419e85b9,0xcd25269,0x18c0300,0x3003c01,0xc00101b0,0x1c80300,0x3000c01,0xc0101ec,0x4680300,0x71003c01,0x41a645a1,0xcb7652e,0xc0317100,0x2f6441ad,0x3000c94,0xbf1104bc,0x1402012c,0x180101,0x5d2e3c71,0xc36072c2,0x2871000c,0x4fc26214,0xc9865,0x104c803,0xb471000c,0x60c25735,0xce48f,0x50773871,0xfa483bc2,0x5003000c,0xc0101,0x65a88e71,0x4b8cd2c2,0x3971000c,0xb041b4a8,0xc4202,0x1016803,0x1a710078,0xb0c2682f,0xc0920,0x101b003,0x9e620024,0x8cc24a83,0x3016845,0x24010594,0x4ec0300,0x71002401,0xc267d93a,0x14a3d5b2,0x8b1d7101,0xd5b241b8,0x40024a3,0x500205f4,0x63c0201,0x70ab71b1,0x65e7c83e,0x4202b0c2,0xdd710120,0xb041b936,0x3c0920,0xd605dc04,0x3e70ab2e,0x417bbfce,0x4101458c,0x101e071,0x4030030,0xc0302,0x1068402,0x3c030234,0xab714306,0x3603e70,0x3002401,0xc0103e4,0x73c47100,0x2f64c262,0x3000c94,0xc0101f8,0xd80300,0x71008401,0xc25eb67c,0x18b7652e,0xc71b7100,0x483b4189,0x71000cfa,0xc25ad688,0xcd25269,0x29c77100,0x8cd241b4,0x3000c4b,0x3c0101bc,0x44117100,0x8f604197,0x30018e4,0xc010240,0x82a27100,0xf5c9c254,0x71000cee,0x41ad00fb,0xc98654f,0x35217100,0x607241a3,0x3000cc3,0xc010228,0x6f086200,0x61fac24a,0xb80300fc,0x180105,0x1067803,0xe003000c,0xc0104,0x104f803,0xa003000c,0x1980105,0xb1066c04,0x3e70ab2e,0xc20f6969,0x18b289c0,0x85a27100,0xeb1cc218,0x3000c3a,0xc0103d8,0x3f00300,0x7101bc01,0xc2091d5c,0x18cc1ccb,0xb6d87100,0x353c21a,0x300189f,0x1801072c,0x66c0300,0x7100fc01,0xc219a2da,0x840fe1df,0x6c00300,0x3000c01,0x30010750,0x6f00300,0x71001801,0xc20ee3ae,0xcb55497,0x6d80300,0x3000c01,0x30010558,0x5700300,0x3000c01,0xc0105a0,0x5940300,0x3000c01,0xc010570,0x5ffa7100,0x5499c1b1,0x3000cb5,0xb40105c4,0xbfdd7100,0x9ea5c19a,0x71000cdf,0xc198f716,0xc054a6f,0x1380300,0x3003001,0xc0107ec,0x6240400,0x70ab71b1,0x995f163e,0x618ca0c1,0x4c0300e4,0x240102,0x1006003,0x9c030018,0xc00106,0x1009c03,0xfc03000c,0xc0106,0x100d803,0x2003000c,0xc0107,0x100c003,0x803000c,0xc0107,0xb66ae371,0xc0f9d3c1,0xd003000c,0x780102,0x16065404,0x104682e,0x80030018,0xc0104,0x1049803,0x2403000c,0xc0103,0x7064804,0x8010504,0x5340301,0xf1000c01,0xb4a83904,0x42029f41,0x851fac40,0xadc02f3f,0x942f6641,0x9003000c,0xa3c1c103,0x873f851f,0xac41a42b,0x18bfef,0xaca504f1,0xef9c4190,0x1fa3c0f0,0x65433f85,0x100c4198,0x710018e2,0x419d7841,0x18d54f37,0x4a37100,0xda51418b,0x710018f8,0x41a86839,0x18aefcdd,0xc47a1200,0xac41c105,0x253f851f,0xe341af53,0x1889fc,0xb429c771,0x4b8cce41,0x9f3000c,0x41b936dd,0xbf09204b,0x3f851fac,0x41b88b1d,0x3fa3d580,0x3f851fac,0x3c010498,0xe7c87100,0x29fc265,0x71003042,0xc26273c2,0xc942f66,0xa96e7100,0xefacc25d,0x71000cbf,0xc253e9fe,0x84f0ef9c,0xc64c7100,0x100cc257,0x710018e2,0xc25a4fcc,0x18d54f37,0x15fc7100,0xda51c251,0x710018f8,0xc25fc7c8,0x18aefcdd,0x900a1200,0xfc0103,0x633d3e71,0x89fce3c2,0x8e710018,0xcec265a8,0xc4b8c,0x682f1a71,0x9204bc2,0x3a71009c,0x80c267d9,0xb4a3d5,0xfffffff5,0xffffffff,0xa66bdd8f,0xf36cd941,0x84e6e2c0,0x8a80533f,0x14226941,0x84e6dac1,0xc4888d3f,0x16962d41,0x84d7d8bf,0x774e523f,0x186e9441,0x84a926c1,0xc3e9b33f,0xab047141,0x84e3bd3f,0xc029ef3f,0x4f8a4041,0x84d6ed40,0xb547893f,0xb7fe2c41,0x84e6eb40,0x6637723f,0xb7fe17c2,0x84e6ebc0,0x6ba8a43f,0x4f8a05c2,0x84d6edc0,0x6d88843f,0xab042ec2,0x84e3bdbf,0x5ec9a63f,0xf36c92c2,0x84e6eb40,0x47d6983f,0x19bb88c2,0x7e1976c1,0xc3d0053f,0xf1e0c641,0x7d44563f,0xc4ee2f3f,0x75446741,0x7d43d03f,0xc1f8973f,0x3362fe41,0x7d44aa40,0x8016a53f,0x1903ae41,0x7d43afc1,0xbf274f3f,0x714bb241,0x7db99540,0xbbf0bf3f,0x93e72341,0x791e4340,0xb7ec173f,0xae276e41,0x789d7c40,0xb9897f3f,0xa1036d41,0x83887640,0xb342d73f,0xc62e0041,0x7d25dd40,0xaec7293f,0xd9c9a341,0x7bf94040,0xa9d0e73f,0xec79be41,0x74d82340,0xaae06f3f,0xe5ce2341,0x8438fc40,0xa3ec753f,0xfe206a41,0x7842a640,0xa160b73f,0x1295d41,0x843e5341,0x9d4b5d3f,0x7274c41,0x78f81f41,0x878a4f3f,0x16c76941,0x7d4435c1,0x9663013f,0xda69341,0x7d661741,0x8ed8b13f,0x13188241,0x7d44ccc1,0x96754b3f,0xdd2e941,0x763854c1,0x9d661b3f,0x708d441,0x791e75c1,0x96384d3f,0xce81a41,0x83b5e1c1,0x881b8d3f,0x163df241,0x82478841,0xa3f6373f,0xfdfef441,0x789daec0,0xa0ad313f,0x23a5241,0x83887fc1,0xa9f7d33f,0xeb5a0a41,0x7d25ddc0,0xaeded73f,0xd96ae841,0x7bf92fc0,0xb38ac13f,0xc5925341,0x74d888c0,0xb1dfe33f,0xc9d05341,0x8438f3c0,0xb7f4733f,0xae006f41,0x784285c0,0xb901073f,0xa3d17241,0x843e4bc0,0xbc00013f,0x937bfa41,0x78f80ec0,0xbf3f9d3f,0x6fb57441,0x7d6627c0,0xc38b473f,0xfaf56f41,0x824788bf,0xc5500f3f,0x1a1fd141,0x7d45a63c,0xb7c58d3f,0xfd647741,0xb5bd51c0,0x6c8ff6c0,0x3362c3c2,0x7d44ccc0,0x6d7bac3f,0xf1e0e7c2,0x7d4478bf,0x6b274e3f,0x714c2bc2,0x7db9d8c0,0x698c0e3f,0x93e6e0c2,0x791ec9c0,0x6789c03f,0xae26ecc2,0x789df1c0,0x68586a3f,0xa1034fc2,0x8388a0c0,0x6535183f,0xc62ddcc2,0x7d260fc0,0x62f7423f,0xd9c988c2,0x7bf983c0,0x607c203f,0xec799ec2,0x74d8dcc0,0x6103da3f,0xe5ce51c2,0x843904c0,0x5d89ea3f,0xfe2047c2,0x78430bc0,0x5c44083f,0x12950c2,0x843e5cc1,0x5a395a3f,0x72746c2,0x78f862c1,0x4f58e43f,0x16c758c2,0x7d447841,0x5725b03f,0xd0ecac2,0x7bb470c1,0x5670ca3f,0xddb11c2,0x82131b41,0x4fa1763f,0x163de9c2,0x824799c1,0x5a45743f,0x6b016c2,0x80a2cb41,0x5d85263f,0xfdd53fc2,0x7d324040,0x608f9c3f,0xeb59cdc2,0x7d264240,0x63031a3f,0xd96ac0c2,0x7bf9a540,0x6559183f,0xc591dec2,0x74d8cb40,0x64839e3f,0xc9d033c2,0x84390440,0x678dee3f,0xae0004c2,0x7842ea40,0x6814303f,0xa3d142c2,0x843e6440,0x6993ae3f,0x937bd0c2,0x78f88340,0x6c72083f,0x3a234bc2,0x7c576d40,0x6d594c3f,0xfaf69dc2,0x8247913f,0x6e076a3f,0x7dc5e7c2,0x7d332b3f,0x6e3bb23f,0x1aaa3bc2,0x7d4584bc,0x6e0ac43f,0x7543bfc2,0x7d43e1bf,0xb887c53f,0xd1e6e41,0x2407f2c1,0x897433c1,0x3b86c741,0x245f4041,0xac8dcfc1,0x1fc9f141,0x24437ac1,0x3b266ac1,0x3cc6bfc2,0x1163b4c1,0x398e8cc1,0x3da605c2,0xadc8cc1,0x3a84b6c1,0x3ee1bbc2,0x121b3ec1,0x33b7a2c1,0x3ad95bc2,0xf6a08cc1,0x36faa4c0,0x398177c2,0xfab776c1,0x3590e9c0,0x3b41dbc2,0xfb4291c1,0x375ea2c0,0x3c0795c2,0x1c996c1,0x39e7d6c1,0x3b0493c2,0x77b09c1,0x15d094c1,0x47c906c1,0x92ef3e41,0x1e5520c1,0x47b205c1,0x9159ee41,0x5ecf17c1,0x47fb9ac1,0x9a243641,0xb5ffcc1,0x47ed01c1,0x98bb1441,0x58fdf0c1,0x4801ffc1,0x9b8bf641,0xc957e1c1,0x47bb59c1,0x91a89441,0x643c75c1,0x47fdf5c1,0x9b0ed841,0x670ab0c1,0x47e6cac1,0x9d526641,0xcf4956c1,0x47a60cc1,0x95270a41,0xd0f3d0c1,0x47b028c1,0x9757ec41,0xd2708ec1,0x480b49c1,0x9c98f841,0xd2ba10c1,0x4788d9c1,0x9dd16041,0xd0e496c1,0x424c4dc1,0xa5252c41,0xce7debc1,0x3f95e6c1,0xa8245041,0xd1fd88c1,0x442211c1,0xa2ce7841,0xca7990c1,0x3cea08c1,0xaaa81641,0xc8d9d0c1,0x3c05c4c1,0xab5c6241,0xd25500c1,0x42dd2ec1,0xa2fab041,0xd12e56c1,0x411006c1,0xa554f641,0xd2f6e8c1,0x44cd1fc1,0xa08d0841,0xc722d8c1,0x3b31b9c1,0xabbee041,0xcb98eec1,0x3cb0d3c1,0xaa683c41,0xd3298ec1,0x468ee5c1,0x9da41641,0xcdc283c1,0x3dda09c1,0xa918e441,0xcfa36ec1,0x3f854ac1,0xa75f5e41,0xd2cfcec1,0x47a553c1,0x9d18fc41,0xd30273c1,0x47244ec1,0x9c842041,0xcaf3e3c1,0x46ec97c1,0x91cc3441,0xcd37f7c1,0x46f2c7c1,0x93089441,0xd23ba9c1,0x47a320c1,0x99fa6e41,0xd2694cc1,0x46c3ebc1,0x99afc641,0xc584dec1,0x470a45c1,0x90b5d041,0xc857b8c1,0x46eb7bc1,0x90fbbc41,0xd0f21dc1,0x46bad8c1,0x96c57641,0x208358c1,0x46f67ac1,0x90bed041,0x130c07c1,0x46f66fc1,0x93539641,0xeef95c1,0x4705a0c1,0x95340041,0xbb80dc1,0x47162cc1,0x976ea841,0x17d41bc1,0x46e903c1,0x91e96841,0x995f6c1,0x47230ac1,0x99c78041,0x83872c1,0x4713fec1,0x9ca7d041,0x10e484c1,0x219993c1,0xa8728841,0x1cb52bc1,0x21999ac1,0xaba06e41,0x1fc15ac1,0x21999ac1,0x90b41e41,0x160aecc1,0x21999bc1,0x92350441,0xee918c1,0x2199a3c1,0x951e3441,0x9e6adc1,0x2199a7c1,0x98dda641,0x7cfa2c1,0x219998c1,0x9effce41,0xa764dc1,0x219999c1,0xa4154441,0xa2aebc1,0x425f04c1,0xa3a7d441,0x80c53c1,0x46b4f5c1,0x9daa1241,0x90594c1,0x47dcf1c1,0x9d56ec41,0xd770bc1,0x418cc7c1,0xa5f78241,0x108ddbc1,0x3ed503c1,0xa825f041,0x14c1e2c1,0x3dd119c1,0xa9abb441,0x8ce3ac1,0x45bd43c1,0xa0517a41,0x197af8c1,0x3c9b7fc1,0xaad7c841,0x85237c1,0x44a8d3c1,0xa08f3a41,0x1e15a0c1,0x3bceaac1,0xab829641,0xad19cc1,0x43c08ac1,0xa363f441,0x57d8c4c1,0x462670c1,0xa00de841,0x5733e8c1,0x47caa6c1,0x9d952641,0x637b00c1,0x450562c1,0xa1abe841,0x5d1e24c1,0x449b7ac1,0xa2443a41,0x66b89cc1,0x46608ac1,0x9fb65e41,0x572534c1,0x21999ec1,0x9db92e41,0x58d196c1,0x21999dc1,0x9bbd3c41,0x5d3048c1,0x21999bc1,0x9a46bc41,0x6340dac1,0x219988c1,0x9abb2241,0x632757c1,0x31999bc1,0x9ac69241,0x665389c1,0x31999bc1,0x9c428441,0x67262bc1,0x31999dc1,0x9ebd1841,0x658f3dc1,0x31999cc1,0xa0b39241,0x10f10030,0xc1a1b432,0xc15f61af,0x4121999a,0xc1a256a4,0xc1632757,0x4121999b,0xc1a1b432,0xc58a9a1,0x3e04f100,0xc3c1a0d6,0x9cc165e9,0xda413199,0xd6c1a238,0xc6aff,0xa1d81671,0x6e869ec1,0x9c71000c,0x98c19fde,0xc6f16,0x9d2d3e71,0x6be88bc1,0x3c71000c,0x40c19afc,0xc66e1,0x282e04f1,0x5cbcc19a,0x999bc16e,0x29a24101,0x8818c1a0,0x71000c69,0xc1a225e8,0xc634ed6,0xd8167100,0xa507c1a1,0x71007860,0xc1a09dfa,0x185fc80e,0xde9c7100,0x5b7c19f,0x6200185f,0xc19e3d62,0x183814,0x9d2d3e53,0x3009c1,0x9bdcc853,0x48d2c1,0x9aa2b071,0x6864dfc1,0xe871003c,0xd3c19a41,0xc6c35,0x9b19e271,0x6f0207c1,0x71000c,0x68c19d30,0xc443a,0xa8329a71,0x421d5ac1,0x6662000c,0xc1952f,0x71001812,0xc1944e0a,0x18b50a22,0x482a6200,0x3070c194,0x54710024,0x1ec1a762,0x18b60f,0x95187062,0x241e56c1,0x2cba6200,0x18a9c1a8,0x5e330018,0xca74b,0x66412144,0xf100242f,0xa412106,0x78c1944e,0x99c1cd7b,0x6412199,0xc6c1930e,0xd8c979,0x98e70471,0xd11075c1,0x4f10018,0xc196d98e,0xc1d2af2e,0x4121999c,0xc19a860a,0x24cb420a,0xb404f100,0xa5c19af5,0x98c1c824,0xea412199,0xdec190cb,0x18c648,0x97ab0671,0xd339fec1,0x307101c8,0x8c19e3f,0x18cc26,0x9d883071,0xc208d4c1,0x3f2000c,0xc1988da2,0xc1d1f5fc,0x41219995,0xc1a43f84,0x54aabb,0xa0c32a62,0x84b928c1,0x1e10f100,0xccc1a363,0x96c1ce01,0xc412199,0xd0c1a8fc,0x9dc1c8ae,0xda412199,0x24c1aba3,0x48c5cd,0xa4ef8671,0xbf7c9cc1,0x9862000c,0x10c19bb7,0x71000c0d,0xc19fc184,0x18c18a41,0x80223300,0x530120a3,0x62544121,0x710144a7,0x329a4121,0x4472c1a8,0x41215301,0x80951870,0x41219101,0xc194482a,0x3c2af38c,0xe7047100,0x8413c198,0x71000c2e,0xc19af5b4,0xc2491bc,0xab067100,0x4c10c197,0x33000c30,0xb09d8830,0x41219101,0xc1a74b5e,0x181c11a8,0x8da27100,0x5575c198,0x71000c2f,0xc1a0c32a,0xc2b7250,0x631e6200,0xf938c1a3,0x98620450,0x20c19bb7,0x71000c1a,0xc19fc184,0x244411ff,0x2cba7100,0x9a48c1a8,0x71000c23,0xc1a4ef86,0xc1b1482,0x2204f100,0xd0c1a380,0x1c1bf2a,0x36413c00,0x90c19c4a,0xcc1ad,0x98e70471,0xc4de78c1,0x671000c,0x82c197ab,0xcc91e,0x988da271,0xcbaabac1,0x9831000c,0x18c9bb7,0x3c000171,0x9ef29641,0x1a201c8,0x10413c00,0xc9c1a185,0x71003079,0xc1a393be,0x30c55a32,0xef866200,0x905cc1a4,0x2c620060,0x56c1a378,0x71007873,0xc1a0c702,0x241655a0,0x4a367100,0x5b20c19c,0x71000c1b,0xc198e704,0xc21bcef,0xab067100,0x3d03c197,0x71000c2a,0xc1988da2,0xc2f5574,0x1a40100,0xc304c21,0xf2943100,0x4015c9e,0x91220084,0x710030f3,0xc1a393be,0x2422b464,0xef866200,0x20b8c1a4,0x2c620060,0xaac1a378,0xf50078e6,0xa0c70294,0x408ee1c1,0x1383c741,0xc2f9a0c1,0x2b86ccc0,0xdf319a41,0xc2f97fc0,0x4ed08ec0,0x9a50d341,0xc176b8c0,0x90bf8bc0,0x15095c41,0xc2fc5fc1,0x2eab4ec0,0xc10d841,0xc2f9a0be,0x4fe2a6c0,0x63fbbd41,0xc18bccc0,0xa92237c0,0xf6ec8941,0xc2fb35c0,0xb5508c0,0xd7d71341,0xc2f9bc40,0xecc20c0,0xa68d7641,0xc2f9a040,0xb65d91c0,0xbe7d2241,0xc2f9a0c0,0x1e74d3c0,0xf740c841,0xc2f99e40,0x280122c0,0x7e57bc41,0xc2f9a040,0x28d232c0,0x139d6a41,0xc2f99e41,0xc2d931c0,0x29f40030,0x41aa0bc3,0x4044604a,0xc0c1963a,0x419092df,0x411514b9,0xc0c2f9be,0x41a3152f,0x4086fcfa,0xc0c1a648,0x41a987b5,0x40f5b8c9,0xc0c2f9a0,0x41b7db0d,0x40b67951,0xc040048,0x2d09f400,0xe8419089,0x4e41150f,0xadc18c3d,0xd41a96a,0x6640f6a7,0x30c18c3d,0x3d624400,0x30c18c,0x3d6267f2,0x4ac18c,0xb29dc250,0x3e18c124,0xd0b8c18c,0xc8ffc24f,0x3e044124,0xc22bc18c,0x7af2c1b1,0x3d62c125,0xbbc6c18c,0xa417c1b0,0x39f2c11c,0x58cec18c,0xa5dac1af,0x3d6ec101,0xc9d6c18c,0x2415c213,0x44dc4104,0x403c18c,0x5451c215,0x3f2e411b,0x26a8c18c,0x621fc212,0x3d704118,0xd722c18c,0xa436c14c,0x3aa2c11c,0xb9f8c18c,0x7444c14f,0x5635003c,0x604aca,0x4fb0a244,0x71006c41,0x414fb0a2,0x78153e7e,0x6824f500,0xe0bf7275,0x4a410423,0xaec18c44,0x57bfa080,0xb6411b54,0x8fc18c3e,0xde41a7e2,0xa4c0c7d7,0xa5c18c3e,0x4741a1d7,0x66c10579,0xabc18c3d,0x3c8f94,0xb73b05f4,0xe0b741b6,0x3d52c0be,0x5359c18c,0xfd7241ae,0xfcc0bd,0xbe7d2031,0xa284000c,0x80414fb0,0xc41153e,0x7af43100,0xf1000c25,0x9aa1d20,0x18621fbf,0x8c3d7641,0xa6ffadc1,0xc3f8d941,0x8c3d6440,0xadcccbc1,0xc3de1a41,0x8c3d7240,0x50303cc1,0x22ead5c2,0x66e12a41,0xfff4000c,0xead36fff,0xe12ac122,0x5348c166,0x5e51c26e,0xe1374087,0x892ac126,0x20ffc26e,0xe136407b,0x8b4ec166,0x16dc272,0xe14ebda1,0x2d5ec126,0xc272,0xe1658000,0x7414c166,0x3e24c24b,0xe0764127,0x9ee6c126,0x4f3bc258,0xe130411a,0xc06cc126,0x14bc259,0xe1354117,0x83d8c166,0x5e87c265,0xe13340ee,0x3686c126,0x619cc266,0xe13440e5,0xc06cc166,0x148c259,0xe133c117,0x3688c166,0x618fc266,0xe136c0e5,0x892ac166,0x210cc26e,0xe136c07b,0x673ec166,0x69b6c249,0xe0bfc127,0x9556c126,0x79bcc26c,0xe135c0a3,0x9cf2c126,0xbbf1c262,0xe132c101,0x5b28c126,0x3e06c255,0xe14ac11f,0xf83ac126,0x28a1c231,0x60c4127,0x2e6ec125,0x81dcc263,0xfb37c0f1,0xa5a0c124,0x67ebc1bb,0x8d94c111,0x8609c125,0x7e80c1ca,0xe14dc109,0x3071c126,0xa7d7c1cb,0x4790c121,0x46a3c125,0x23dbc1c1,0xd6dc102,0x9acdc125,0x66cac1a5,0x8571c127,0xda12c127,0xecb0c1a5,0x7c8ac113,0xe54ac126,0x8f4c262,0xe12940f0,0x6eb2c125,0x453bc25b,0x6c84410e,0x17ec125,0xcd90412a,0x4658c0dc,0x2ed0c125,0x6d7a411f,0xe12dc0ee,0x2d76c126,0x4f7d4110,0xe12a40a2,0x6e24c126,0x112c4128,0xe12a407c,0xec2ec126,0x44374101,0xdf4240ed,0x782ec126,0x5365410b,0x478f40d8,0xbfeec125,0x1820c242,0xe18b4102,0x3652c126,0xe619c247,0xe18f4108,0xa192c126,0xdba2c247,0x81db4121,0x9b3ac125,0x2f51c229,0x95a6be38,0x1bacc126,0xcaf0c240,0x708f410c,0xd6ac125,0x47c228,0x83d73ef7,0x74dc126,0x3dfd40fe,0xae0540ee,0xfe96c123,0x3f43c246,0xae624107,0x4242c123,0xd435c242,0xae2d4102,0x882cc123,0x57e6c232,0x78444128,0x3a68c141,0xd688c235,0xb2254126,0x96bbc14a,0xe301c22e,0xe7c44126,0xc7c6c147,0xed99c22e,0x87cbc126,0x7ddbc145,0xda78c22f,0x9b63412a,0x9523c144,0xf4edc234,0xe4adc126,0x6239c143,0x74abc228,0xfcf6412a,0xfb3dc145,0xe2e9c228,0xecc64126,0x34c4c147,0x9d5ec1cd,0x63c84125,0x5a88c188,0xa9bbc1c2,0x15a4125,0xb8e1c187,0x193f40,0x64bf4127,0x967ac141,0x244125,0xadc001f4,0x9c2ac222,0x862c4125,0x2d44c188,0x30c21d,0x968e0ef3,0x83b3c21a,0x43004125,0xcccec18b,0xda0dc1b4,0xe80b4126,0xa5c8c149,0x18b24115,0xd30f4400,0x48c094,0x52d43d44,0x53003cc0,0xc02968e0,0xf30024b6,0x4f6b0202,0x274bf441,0x4614fb41,0xb9fa3ac1,0x841ac1,0x666719f4,0xda0ec216,0xe80d4126,0xf949c149,0xe66fc210,0x232f4126,0xccdec147,0xda0ebfcc,0xe80c4126,0x4899c149,0x18be79,0xf29201f4,0xe66fc1c1,0x23304126,0x2cf3c147,0x7840eb,0xb4af044,0x44007841,0xc1e534c4,0x88440018,0x18c1da5a,0x2d1c5300,0x90b7c1d5,0xfd1c5300,0x8419c218,0x4b905300,0x18b140cb,0xd1c84400,0x18c00f,0xcfd1c35,0xdf40024,0x414f86a0,0x4126fc85,0xc126e792,0x41251fee,0x4127118c,0xc1479a68,0xc04f9492,0xce440090,0xb4c1cccc,0x9a624400,0x84c22e,0x384201f4,0xaaebc229,0xdf5a4125,0x968ec186,0x138c226,0xf4d30d44,0x350024c0,0x38c96a1f,0xb4704401,0xa8c0b4,0x32968e35,0x3a440030,0x9cc1d1fa,0x7e00f500,0xcfc2226a,0xa24126dc,0x49c1494a,0x1381cf9,0x445401f4,0x411d4121,0x46e84129,0x3337c144,0x90c093,0xdfd600f5,0xf56f410d,0xc8214126,0xf292c143,0x370144d9,0x2cfd34c4,0x2cf21701,0x2ced1501,0x2cf35301,0xe05d408b,0x95df4401,0x15040b6,0xa7e8e444,0x350090c0,0x44569720,0xca493501,0x350114c7,0x602a6988,0xb50f3500,0x35006014,0x600a5a38,0xccce3500,0x440138e4,0x40eccccd,0xdf40210,0xc2287506,0x412743b6,0xc12557cf,0xc22575e8,0x41270165,0xc1411aa5,0xc13a5a37,0x3a35006c,0x114e9fa,0xf3333735,0x1d3500f0,0x1bc00fd,0xd8171c44,0x3500a840,0xfcf1f292,0x38425300,0x98eac235,0x35bb4401,0x26440b8,0xa9a6244,0x3700f0c2,0xc052d44,0xc2022403,0x72350198,0x7803f4,0xacb3cc44,0x3500303f,0x202d2bbf,0xe5243101,0x93006c13,0xc1472331,0xc20e968e,0x440264b4,0x3eb4b902,0xce3500c0,0xfcfccc,0x29999c31,0xb75000c,0xcdc149e8,0x1088ccc,0x33f47435,0x3835006c,0xcc702e,0x44b50f35,0x24530150,0x70c143e5,0x49310318,0x21004f9,0x47233077,0x306b76c1,0x161700d8,0x111500d8,0xc43500d8,0x1a4b534,0xd34c3c44,0x440294bf,0xbe96a20a,0x673501ec,0x3a80a66,0xb3333344,0x4401a43f,0xc1bd2d1c,0x25f403e4,0xc2347b84,0xc1258e5a,0xc18a1138,0xc22ebf12,0xc1259986,0xc188d17a,0xc204d499,0xc126ea40,0xc14647cc,0xc1d92a02,0xc1258f41,0xc189f76c,0xc1e57e24,0x84530024,0x5bc2287b,0x3244003c,0x30c1f1a9,0x5418f100,0x82c1fdfd,0xe5c126f4,0x2c143fb,0x41c21c95,0x6ec1258f,0x36c189f7,0xafc222aa,0x34c1259a,0x2c188b0,0x54c12a,0x546e11,0x54cd15,0x17c300f7,0xe0b7c229,0x69dbc126,0xa933c148,0x150054d9,0x350054e5,0x30b57e24,0x770cf500,0xadc225c7,0xdcc12701,0x2fc14109,0xbec21141,0x40c125ad,0x12c1868e,0xcc16bf,0xe46200f1,0x8518c20e,0x1ab8c125,0xa932c18b,0x750054c1,0xc14647cb,0x54cdfd54,0xd49a3100,0xf500f01c,0x4647cb10,0x2282abc1,0x26e083c2,0x4875a7c1,0xb060ebc1,0x275174c1,0x4cda41c1,0xb5fd54c1,0xf70030,0xc1ab1534,0xc1277984,0xc134d218,0x7805412f,0x780a1500,0xe4613500,0x35007802,0x6010d49a,0xfeaa4400,0x120c216,0xf2825e44,0x3500b4c1,0xd8fd7e24,0xc8c24400,0xb4c1ed,0xafeaa35,0x90f50030,0xc1aeeef5,0xc12a534d,0xc1471062,0xc1a13f13,0xc1298dc3,0xc1212af5,0xc1976638,0xc1291ed8,0xc117830d,0xc1a4d3a0,0xc1120fd0,0xc123eedc,0xc1c9d66c,0xc106a3a3,0xc123ae8f,0xc1aeed5c,0xc0f2b5a0,0xc117b3f9,0xc01780e5,0xc0f0c2ad,0xc117c9a1,0x41214a76,0xc0ec7f30,0xc123af98,0x40e04f33,0xc0f0d9e4,0xc123adf5,0x4113d0a0,0xc1025c0b,0xc1253475,0x41408874,0xc1134877,0xc123adf7,0x4125abaa,0xc1073f41,0xc123ae6d,0x41281303,0xc121a7d7,0xc1254791,0xc5038ba,0x4a00f100,0x3e41381a,0xf7c0fcc0,0xa2c123ad,0x9a850cc,0x145e29f4,0x370c126,0x2fd3c161,0xd6aac114,0xffadc126,0xb812c162,0x630ec127,0x8aa0c127,0xe6194126,0xe17cc108,0xac42c126,0x76914151,0xe12ac127,0xb9f1c126,0x1084051,0x42540435,0x1f40234,0xbe549907,0xc126ea40,0xc14647ca,0xbfdfd534,0x4310150,0x241254,0x89f76c75,0x2afc48c1,0x8c4402ac,0x6840b5f6,0x7744401,0x18408a,0xc8dcf935,0x64350060,0x21c4352,0x882601f4,0x3f4ac153,0x832c127,0xb670c13d,0x6c4032,0xa02ad444,0x44006c3f,0xc0ca0976,0x8c440054,0x54c0f5f8,0x23074400,0xb4c0b7,0xdabfc44,0x35030041,0x78ea0774,0x52653100,0x75006c13,0xc14647cc,0x582bfaa7,0x5b383502,0x44006cb9,0x40880ab5,0xec37006c,0x6c5412,0x6c9515,0x2e460f35,0xba44006c,0x84412503,0x5200f500,0xc1410d9c,0xc6c126f1,0xb5c14499,0x48e80a,0xc6a4c844,0x4403a8c0,0xc0f7f54d,0x1f40060,0x4124ce9c,0xc126eb36,0xc1460fd8,0xbea09742,0x2e4400d8,0x54bfd7e2,0xcf894400,0xd83e8d,0x4d499037,0x97150048,0x18350048,0x1682bed,0xa81dd244,0xf4003c3f,0xffffffff,0xffffffff,0x4a424e31,0x209ccac1,0xa2ec88c1,0x4aaca4c1,0x2bb8bcc1,0xa2cd5cc1,0x501b5bc1,0x1f2293c1,0x9a7af8c1,0xaef038c1,0x1f275cc1,0x9a9662c1,0xb20890c1,0x209d15c1,0xa2ee44c1,0xabfba5c1,0x2b5a89c1,0x5038a9c1,0x6c0d79c1,0x2abaabc1,0x2b2ef4c1,0x5e0a16c1,0x2b0af4c1,0x3c9961c1,0x833927c1,0x2a7c8ac1,0x1d7f92c1,0x566b63c1,0x2b5ee2c1,0x4f7b55c1,0x9c4cfbc1,0x2a8e09c1,0x244124c1,0x91ea0cc1,0x2aa296c1,0x1ce145c1,0xa715d5c1,0x2aed7cc1,0x385840c1,0x52f5c6c1,0x2d36eac1,0x9b9ce4c1,0xadac51c1,0x2d3253c1,0x9ba2fcc1,0xad59c5c1,0x47ffffc1,0x9b47a0c1,0x539b22c1,0x47ffffc1,0x9b47a0c1,0x993b8ac1,0x126c01c1,0x16fd44c1,0xaf19dac1,0xfbb5fc1,0x178645c1,0xaf8c03c1,0x11a56dc1,0x2384b6c1,0xaf496fc1,0xf15bbac1,0x23ae06c0,0xd7dca6c1,0xf16996c1,0x23adf6c0,0x3e7013c1,0xf13ae9c2,0x23adf5c0,0x3e10a6c1,0xf47b3bc2,0xc509e5c0,0xd8a234c0,0xf46fdfc1,0xc50141c0,0xd8757fc0,0x106c62c1,0x201b28c1,0xd7bcffc1,0x104b6bc1,0x228514c1,0x3e68d4c1,0xf7083c2,0x1f0c57c1,0x3e529ac1,0x13a3f8c2,0x235aebc1,0x3e0eb8c1,0xdc124c2,0xc4f75ec1,0xd8a376c0,0xdc9b8c1,0xc50807c1,0x1d7e3dc0,0xf40e45c0,0x16585ac0,0x1426ddc1,0xf47989c0,0xc503f3c0,0xdd7734c0,0xf46fdd40,0xc50143c0,0xdfcdd7c0,0x100b3c40,0x205171c1,0xe0b4b7c1,0x1268fd40,0x23300ec1,0x673df8c1,0x106e32c1,0x1e8cf4c1,0x7ed5c0c1,0x29360bc1,0x17931bc1,0x5c95abc1,0x29d021c1,0x304f81c1,0x4de5cec1,0x29a777c1,0x4eca75c1,0x6f62e0c1,0x2842cec1,0x1e6f97c1,0xb1d257c1,0x2bc088c1,0xa2c914c1,0x6f01f5c1,0xf12bec1,0x1743fbc1,0x7c0feec1,0x133e0ac1,0x171b53c1,0x160e1fc1,0xfb294c0,0x181863c1,0x14301ac1,0xdbf5bc0,0xc4faccc1,0x1cf3aac0,0xe6c0bc0,0x167b05c1,0xdd722cc1,0xdc9d040,0xc5081ac1,0x583bafc0,0x47fef5c1,0x486420c1,0x7e32b2c1,0x480053c1,0x1ed6b1c1,0x7da47ec1,0x47ede5c1,0x263ba9c1,0xa50bb8c1,0x47f651c1,0x7d7d9dc1,0x8ba47ac1,0x46ff98c1,0x8c4ca6c1,0x5cb16fc1,0x47f786c1,0x502d62c1,0x9b98cec1,0x48007ac1,0x23610ec1,0x6825a7c1,0x47e5ddc1,0x82603ec1,0x9d3dafc1,0x47ec63c1,0x2be875c1,0xab04e1c1,0x47ff7ac1,0x485e08c1,0xa908f8c1,0x47fce9c1,0x5600c8c1,0x657e0dc1,0x3fd2f3c1,0x4f2985c1,0x784255c1,0x3ff7bfc1,0x34f0efc1,0x883e0ec1,0x3ff2d2c1,0x2b028ac1,0x9576aac1,0x401382c1,0x2e69f0c1,0xa0157dc1,0x3ff8c1c1,0x3f2348c1,0xa572b4c1,0x400f9dc1,0x5d0af4c1,0xa03d6ec1,0x3ffa7bc1,0x7bf291c1,0x9252b6c1,0x3fe8ffc1,0x880ea6c1,0x813aa0c1,0x3ffa7bc1,0x86487ac1,0x69670ac1,0x3fec42c1,0x762adfc1,0xa5bc20c1,0x3fd089c1,0x5ba8b9c0,0x9f81e4c1,0x3ffffcc1,0x7dde6fc0,0x92423cc1,0x3ffffcc1,0x87d12cc0,0x7ebbb7c1,0x3ffffcc1,0x85c45ac0,0x631656c1,0x400019c1,0x6706b9c0,0x6e07cbc1,0x407d2cc1,0x3e41bfc0,0x83c9d6c1,0x42176ec1,0x2d080ac0,0x9228f7c1,0x4229b7c1,0x2bf639c0,0x9e6ca4c1,0x411acec1,0x3b2a5ac0,0x505ab4c1,0x288d8c1,0x9931c2c1,0xae0f6ec1,0x1542fc1,0x987d30c1,0xafa1c3c1,0x6d2d5c1,0x98f244c1,0xad6f54c1,0x50045c1,0x9adff6c1,0x5208b1c1,0x5acbbc1,0x9abb6cc1,0x4d8badc1,0x2713a441,0x23ae0041,0x5004fec1,0x259f1d41,0x23adfb41,0x50a37ec1,0x153e8041,0x25997c41,0x286eccc1,0x133f9541,0x23adf741,0x39a278c1,0xf1347cc2,0x23adf540,0xb0948cc1,0xf173de40,0x23adf540,0xe80ab1c1,0x73f9440,0x23ae7b41,0x5e0b4c1,0x25c1541,0x25361e41,0x1e3996c1,0xf798b741,0x23adf740,0xe33fd5c1,0x21af8640,0x25821441,0x2027c6c1,0x2368ba41,0x23d8ea41,0x100cf8c1,0x21d45f41,0x26a22641,0xad7d97c1,0xf46e5240,0xc50dfe40,0xad7204c0,0xdc12440,0xc4f75c41,0x3941f1c0,0xdc9d2c2,0xc5081e41,0xb0432dc0,0xf706f40,0x1f0c7641,0xaf90b4c1,0x13a90540,0x235e9e41,0x39a01ac1,0x120082c2,0x22d87b41,0x395bfdc1,0x1007e1c2,0x1f0f8541,0x39430ec1,0xf47cb1c2,0xc4fd4840,0xe64d60c0,0x8e62040,0x26e15a41,0x215a00c1,0x2709a941,0x25d7a241,0x4dc2ecc1,0x2a784f41,0x452e6a41,0x70f9ac1,0x96512bc1,0x2663fe3d,0x959fc1,0xf57e02c1,0x2676863e,0xf2021bc1,0x940f67c0,0x2664c03e,0xefe5dcc1,0x459ab7c0,0x269a93be,0x5d41c1,0x9b84c1,0x26795abf,0xf8be18c1,0xcdc7acc0,0x1ab74bbe,0x5152fc1,0x1d19dfc1,0x1a962fbe,0x243d0c1,0xc603b4c1,0x1a744c3e,0xf2af98c1,0x20663cc0,0x1a52433e,0x296c77c1,0x79e5e2c2,0x2683363e,0x2632a1c1,0x92087dc2,0x2694b43e,0x26002cc1,0x4553acc2,0x2684dfbe,0x27d355c1,0xfe1f9fc2,0x2683b9be,0x27400cc1,0xd0eac0c2,0x1a56febe,0x297fcdc1,0x5f18cac2,0x1a86693d,0x26a54ac1,0xab3b54c2,0x1a691d3e,0x10f13dc1,0x16749bbf,0x9111a841,0x5ddc1ec1,0x1b78bfbf,0x90feba41,0xae8c0dc1,0x15f065bf,0x904c2841,0x97a8a4c1,0x1a1e12bf,0x90d01241,0x115c85c1,0x5ffe7bf,0x9189f041,0xa0e6d1c1,0x65934bf,0x92874c41,0x618341c1,0x16e368bf,0x92db0a41,0x914ca1c1,0x157021bf,0x9296c041,0x1243c6c1,0x16749cc2,0x9111a841,0x137770c1,0x1b78bfc2,0x90feba41,0x157461c1,0x15f066c2,0x904c2841,0x14bd45c1,0x1a1e12c2,0x90d01241,0x124572c1,0x5ffe7c2,0x9189f041,0x150737c1,0x65934c2,0x92874c41,0x13860ec1,0x16e368c2,0x92db0a41,0x148a65c1,0x157021c2,0x9296c041,0xa707d5c1,0xbe424041,0x92a678c0,0xa99a21c1,0xc6977a41,0x92310ec0,0xa8c471c1,0xc5e99c41,0x91f15640,0xa72311c1,0xbeaf1441,0x92ac5240,0xad8ecbc1,0xbf6c5541,0x92a57ec0,0xac7c0dc1,0xc36fc141,0x92b12440,0xae2dcdc1,0xbda59e41,0x92021c40,0xa27c8bc1,0x45352241,0xc1d33740,0xa10553c0,0x5c92a341,0xbf6c0740,0xa10d8bc0,0x794e8b41,0xc15d2740,0xaa216bc0,0x86869441,0xc1e98140,0xac07b1c0,0x75652c41,0xc16b2940,0xab7be1c0,0x56f72b41,0xbf6e7e40,0xa2a831c0,0x4c19eb41,0xa406c040,0xa99e0fc0,0x49b13641,0xa472bd40,0xa33d05c0,0x83e83c41,0xa4644b40,0xa15551c0,0x73fde341,0xa653c140,0xaa331fc0,0x82bcd141,0xa41ba440,0xab835bc0,0x5d8b5441,0xa653c340,0x5462e6c0,0x85594341,0xc1bc43c0,0x41b794c0,0x97f6fd41,0xc141abc0,0x3d937ac0,0x8a2f4d41,0xc1dac9c0,0x3f8532c0,0x6b274a41,0xc1c661c0,0x448e6cc0,0x6050df41,0xbf448bc0,0x3e55d8c0,0x7e75f741,0xa5fd78c0,0x52d474c0,0x81ed7241,0xa3b298c0,0x51e544c0,0x902f0441,0xa67cf6c0,0x48d6ccc0,0x9a396f41,0xa41e04c0,0x40f506c0,0x90f18241,0xa3abd2c0,0x43d866c0,0x68660241,0xa37a44c0,0x4d038ec0,0x63b6e941,0xa5503ec0,0xc30a9cc0,0xd00000c1,0x22fd8940,0xc2945cc1,0xd00000c1,0x184caf40,0xc291cfc1,0xd0000040,0x82dbcb40,0x2b9150c0,0xd00000c2,0x1a98ee40,0xa9f3e4c1,0xcffff640,0x51648840,0xc0de35c0,0xd00000c1,0x15ecbb40,0xc1ea10c1,0x22004840,0x3033fb,0x149f10f1,0x4409c123,0x4083,0x8de640d0,0x7920c11a,0x83b84072,0x146540d0,0x3064c11a,0xf3001886,0x23080a12,0x93c7f7c1,0xd064f1be,0x1a145f40,0x2cdc29c1,0xd0dd9ac2,0x1a146140,0x3e6292c1,0x3c0fc2,0x18a47f53,0xc0abf,0x3ec01e44,0x31003cc2,0xc5cd5a8,0xebf68400,0x779c051,0x18bf30,0x5fe83031,0xaa620018,0xeec08337,0xf1000cd0,0x22fd8810,0xd5f751c1,0xd00000c0,0xd8fabe40,0xa9b153c0,0xcf86ba40,0x1f884040,0xd2f7a1c0,0x89710018,0xbfc122fd,0xcec72,0x367604f1,0x7fecc0d9,0xc121,0xdb4640d0,0x1d44c0d8,0x71000c2e,0xc12314a0,0xc2c9fc5,0x36767100,0xc54dc0d9,0x71000ca9,0xc116b408,0xca8f513,0x2704f100,0x15c122f0,0x2c1adbb,0xae40d000,0xbac119f4,0x18ac65,0xada888f5,0x3083c116,0x4c1be,0xc97140d0,0xaf72c119,0x914fc225,0x14583efb,0x88c8c11a,0xb937c1c2,0x158ac0c3,0x9bb0c11a,0x138ec1c5,0x144bc0c6,0xff11c11a,0x80f140d9,0x14b4c0cb,0xb7eec11a,0xc1c9,0xf63cc0d0,0xfa12c119,0x6664c1c5,0x145ec0de,0xb2d8c11a,0xc57cc1c9,0xe4b5c0df,0x9829c119,0x6f8b401d,0x18d2c099,0xaf60c11a,0x3f79bf30,0x145cc0cf,0x2278c11a,0x999ac1da,0xefedc0df,0x3db4c119,0xc1da,0xf353c0d0,0xfa12c119,0xf20048dd,0xde10046f,0xc9d248c1,0x1a145ec0,0x29ec44c1,0xfd08d5c2,0x1a14603e,0x3e368ac1,0x995ea4c2,0x1a17b540,0xdf5595c1,0xc3b939c1,0x1a1459c0,0x25c388c1,0xb23973c2,0x1a146240,0x2b34ccc1,0xc2,0x1a145e00,0xd9cf4cc1,0xcb9a2040,0x1a15dd40,0x25fd08c1,0xcccccfc2,0x1a145e40,0x2c378dc1,0xcd32afc2,0x1a14eb40,0xa66c51c1,0xc42657c1,0x1a145e40,0xa50cabc1,0x243bd8c1,0xa4387100,0xcc08c13f,0xf40084b1,0x7c875101,0xcd32ad40,0x1a15d040,0x40c0f0c1,0xf10048c1,0x628b5e04,0xcc6cb5c2,0x1a145bc0,0x4fc284c1,0xcd32afc2,0x26f30030,0xc262f5b8,0xc0c862c3,0xc11a151d,0xc1a96d01,0x40c51891,0xc11a1509,0xc1a9fa11,0x40de6666,0xc11a145e,0xc260c9d6,0xc089999a,0xc11a1669,0xc09e1425,0xf1003cad,0xf34de404,0xb23971c0,0x1a15dac0,0xf181e0c1,0xcccccdc0,0xd2910054,0x50c1e187,0x5cc0c426,0x28f30108,0x3971c214,0x154ac0b2,0xe779c11a,0x3bd6c1e2,0x145fc0cc,0xae6bc11a,0xb333c1ad,0xe31840df,0x1e1bc119,0x872bc1c2,0x146340c8,0x7acec11a,0x9612c1c4,0x786b40c2,0x9c15f400,0x69408999,0x8ec11a16,0xf3c262d3,0xb140cb80,0xf7c11a14,0x1ec23d38,0x5a40cf28,0x8c11a14,0x78c213fd,0x3804f100,0xac21444,0xcd40b1cc,0x7ec11a14,0x5dc1c6d7,0x168cadd,0x13fd0844,0x350108c2,0xcc2ec9d6,0xb703f200,0xfdc23e07,0xd7c014da,0xb8c119ef,0x7cc1be45,0x350090c5,0xfcc1fa12,0x6219f400,0xccc23e07,0xc8c0ccee,0x94c11a16,0x54c23ed2,0x61c0d066,0x40c11a14,0x39c24f20,0x64c0d0a5,0xf7c11a14,0xcc09901,0x5c426200,0xeec8bef9,0x4a910198,0x90c0f433,0x5fbee430,0x251500a8,0xda7100a8,0x8c225b5,0x108b1cc,0x28ce73f2,0x2d6fc0ed,0x145ebc93,0xbab0c11a,0x46aac225,0x1459beff,0x816ec11a,0xdf61c224,0x145ebe0e,0x79ebc11a,0x57f3c102,0x145bbf00,0x25b3c11a,0x42ffc0f3,0x145e3ed7,0xff91c11a,0xf584c106,0x145ebe4f,0xf720c11a,0x364c229,0x145fbef9,0x5c6dc11a,0xcb92c107,0x145e3e1f,0x3078c11a,0x226cc102,0x145c3f03,0xbb4dc11a,0xcc0cc0f3,0x14fb40b1,0xa73ac11a,0xbbfc224,0x145e3e5b,0x200401bc,0xdaec7101,0x3973c13f,0x4401f8b2,0xc140c0f0,0xa662015c,0xbbc1c118,0xf401e01c,0x74a82601,0xce916840,0x26e12440,0x702f77c1,0x44022840,0xbe7d0892,0x8f1000c,0xbf1aad60,0x40e00000,0xc11aa7bf,0xbe9affb0,0x40cf073c,0x2826e122,0xcccfb102,0xe12a40cc,0xcaac126,0xf10210c1,0x26e12a08,0x3fdaecc1,0xb23971c1,0x26e12ac0,0xd9ea10c1,0xcb6bee40,0xbc04000c,0xe12ab101,0xea5ec126,0x2c93c1c6,0x71003ccb,0xc1c357ba,0x24c25793,0x9404f100,0x62c24f44,0x23c0ce91,0x8c126e1,0x64c23efd,0x18de66,0x4efd0835,0x1471000c,0x40c23ec4,0x24cf07,0x1f4b6671,0x11f49d40,0x90710024,0xa3c23e13,0xc1256,0x25c38844,0x710084c2,0x402c4fb1,0x1801a4db,0x3ede7100,0x2ee0c23d,0xf1000c02,0x29d8fc04,0xff4688c2,0x26e12abe,0xde5874c1,0xc6138cc1,0x5c040018,0xe12a3504,0xb1042026,0xc126e12a,0xc1c5d2ae,0x24c8abf1,0xa201f400,0x62c09a24,0x25c0ce91,0x24c126e1,0xa8bf3f42,0xe8474400,0xcc097,0x3af54571,0xd234afbf,0x72710024,0xf6c22aec,0x6c5b0a,0x123e00f1,0xdf61c22b,0xe12a3e0e,0xb5dac126,0xf202e825,0x26e12a07,0x25eb42c1,0x24a06c2,0x26e12a3f,0xda183bc1,0x20513140,0xf1b77101,0x6e2402b,0x31012c08,0x3429e439,0xe12ab105,0x1ca6c126,0xdd5bc1a5,0x440018ca,0xc13fa438,0x55310048,0x378a779,0x26e12a35,0x2ab10438,0xc4c126e1,0x59c23d3c,0x300785,0x3404b471,0x132a7cc0,0x8f500cc,0xbf08c986,0xc0cd0c97,0xc126e12d,0xc22cb57e,0x40ce9168,0xbc26e125,0xe12ab104,0xb68dc126,0xa1c7c044,0x71003005,0xc23e19b1,0x481751a0,0xbb4d7100,0xcc08c0f3,0x40018b1,0x2ab10438,0x75c126e1,0xf1c1c221,0x24c8ab,0xa9d60831,0x2aa20414,0xb4c126e1,0x2bc262d6,0x44021051,0x401e64f9,0x22220048,0xa2042c46,0xc126e12a,0xc25379fc,0x1c832db,0x5456e862,0xb0666fc2,0x6b5a3101,0x1057ce1,0xe61012c,0x3433c23d,0xf300a8d2,0x3dd6ee02,0xcd0c9cc2,0x26e12c40,0x144438c1,0x9006c2,0xe2db7e31,0x2a1102e8,0x5c0200cc,0x1d40204,0x35041402,0x1c26e12a,0x240205,0xcc23c26,0xc2c1500,0xd0ee6200,0x6bf0c262,0x2e71018c,0x6cc25449,0xd80a5e,0x34c67a71,0x182d51c0,0x3004000c,0x482a1703,0xe12a8403,0x4c68c126,0x24c253,0xf0a37271,0x9fc222c0,0x4f10204,0xc0fd964f,0xbf0efe50,0xc126e12a,0xc2259c8c,0x18f90364,0x7304f100,0xeec0ed13,0x2a3dbc07,0xd4c126e1,0x3bc22486,0x180d6d,0x4492cd53,0x7870c0,0xb1048004,0xc126e12a,0xc0f63b34,0x4cf23550,0x6f677102,0x2685c106,0x71003091,0xc0f34de4,0x9cb23973,0xcd707100,0x2435c102,0x310024fe,0xb414368a,0xe12ab106,0x8286c126,0x8095c107,0x71006cf8,0xc224b238,0x2481374c,0x42c0400,0xe12a00f5,0x8f5cc126,0xc23d,0xa7bfc0e0,0x1103901a,0x205045e,0x3f10390,0xc11a145e,0xc1db7cc9,0xc0e00000,0xc116bd8f,0x870d6b2,0x27c010f2,0xc2c122f0,0xc25068,0xeec0d000,0x4cc11a98,0x40c1cf,0xa0c0d000,0x20c12314,0x710024e2,0xc082e84d,0x18c29245,0xdb9f8400,0x8c48c082,0x3cbe9e,0xdcd31021,0xc013f308,0xc051add6,0xbecbbf72,0xc0cfffef,0xc11a8de6,0xc1b21b95,0xc0cf6477,0xc01f85cf,0xc23d977f,0xf40018f3,0xa9f3e401,0xcffff640,0x516491c0,0xa630b4c0,0x31006cc0,0xca3460f,0x98ee7100,0x2733c11a,0x71000ce0,0xc10bd31e,0xcd81c3d,0x1410f100,0x53c1063d,0x5940a9b1,0xfc0cf34,0xdac01f9c,0xc1b3ff,0x75c0d000,0x13c10c08,0xcc4f5,0x22f02771,0xc56771c1,0xfe71000c,0x50c11837,0xcb633,0x6aa1571,0xc79735c1,0xe071000c,0x10c115c5,0xcdeff,0x22f02871,0xdc2da8c1,0xd262000c,0xc0c115ec,0x7100187c,0xc117dd72,0x143d39f4,0x80a6201,0xc616c123,0x9f350120,0x4442314,0x1a145e35,0x5eb10444,0x92c11a14,0xc0a314,0xfce000,0xa5e7c331,0x2771000c,0xd7c122f0,0x174c4e2,0x2314a071,0xc79a06c1,0x8271000c,0x83c115af,0xcc55b,0x18716871,0x5fcd94c1,0x9f7101bc,0x92c12314,0xc5062,0x1a8de662,0x18e5f4c1,0xdba18400,0x183bc082,0x5440c2,0x5cd49831,0xad620024,0xacc051a3,0x84001873,0xc082e84b,0xbe99fd37,0xf1006c,0xc1b243d9,0xc0df972f,0xc018568a,0x18c7adb0,0xa7c07100,0xff3c11a,0x710048aa,0xc051ec0b,0xa8e118ce,0x8747100,0x4af7c10c,0x71000cd8,0xc106aa15,0x9cb3b36c,0x1eb77100,0x2ee3c10c,0x71000cb6,0xc107444c,0xcdf114c,0x14a07100,0x3ec4c123,0x62000cde,0xc116c415,0x27c3754,0x22fd8962,0xc0bcf8c1,0x270cf100,0x82c122f0,0xb3c1b1fc,0x2ac0d327,0xd6bffe8b,0xd0c25cc9,0xb7c0cfd5,0xcfdb7,0xc47418f1,0x4ef9c0de,0xc9d6c011,0x5a4fc25c,0x8fc1c0cf,0xf8dcc01f,0xbe0cc25c,0x6fb9c0bd,0x55dabffd,0x417bc252,0x71000c88,0x40c97f4c,0xca57241,0x2dcf7100,0xe9e840cb,0x71000cd4,0x40e1ce70,0xcbe4949,0xb41cf100,0x9ec23714,0xb1403296,0x28bffd6f,0x84c2259a,0xb13efb62,0x2ebffd6f,0x1cc2057a,0x7c403707,0x53bfff7f,0xd940b105,0x30bbfa,0x3be21cf1,0xc5cec1c5,0x3e81c041,0x44fabfff,0x3eecc201,0xa5f4081,0x6c38bfff,0x9a63c1ae,0x6fb1bfd7,0x43f4bffd,0x2f49c23b,0xf100547a,0xbd34f004,0x90b6e9c1,0xfd7058bf,0xcb8ca8bf,0x9daa6b40,0x3f20048,0xc1e085cb,0xc0a598db,0xbfff718f,0xc260c2d0,0xa84975,0x60f96644,0x6200a8c2,0xc25df088,0xd80141,0x63cd7a44,0x7100b4c2,0xc1ac19cc,0x6c9f0aee,0x4204f100,0xf1c1bdbf,0xab3f382d,0xebbfff42,0x1ec1a861,0x188288,0x61015c62,0x6cd1f6c2,0x98187100,0x10284063,0x71007865,0x40aa116d,0xcc007c4,0x42a67100,0x82d4026,0xf1000c8a,0x590ade10,0x22dfc2c2,0xfd6fb1c0,0xa9b151bf,0xd428fc40,0xff951cc0,0xbeebb3bf,0x9982a53f,0x88710024,0xa2409a2e,0x60c542,0xbed304f1,0xcccf40de,0x9121c09c,0x6107bffe,0x6a5bc240,0x7100f095,0xc25afa2c,0x24b8258d,0xd010f100,0xcfc263c8,0x15c09ccc,0x6ec0001e,0x81c1c2da,0x74023b0,0x58bfff26,0x18c10441,0x168e65d,0xbf52fc71,0xa0b9a1bc,0x10f10060,0x40a26af9,0xbd9c2b0f,0xbffd6fb1,0xc25bcbfc,0xbe7ecaef,0xbffd6fb1,0xc2465d5e,0x609fdc1a,0x7a04f100,0x24c1cb62,0xcc40811d,0xd5bffe07,0x40c03f93,0x187e6b,0x9fac04f1,0x1a52c1dd,0x295640a4,0xd1bbfff,0xd786bffa,0xf1001892,0xdf526b05,0x9ccccf40,0xfec89340,0x9b33f4bf,0xb826b340,0x6101ec3f,0x9740cb2c,0x249df2,0x61171a62,0xc6f07c2,0x6fa07100,0xb4f6c259,0x71001819,0xc254e1f6,0xc73d86f,0xb4567100,0xfadbc25d,0x71000cbb,0xc25cd5d8,0xcc007cc,0x33017100,0x5f74405c,0x3000c6d,0xc010264,0x9f307100,0xa57840c9,0x71000ca5,0x40e1ce70,0xcbe494b,0xd0685300,0x9c88c24f,0xbabe7100,0xec51c260,0x710018a4,0x40b16610,0xcbc367e,0x95837100,0xbfd7c224,0xf100fc6b,0x6358e04,0x223d79c2,0xff05a7c0,0x25f9acbf,0x41b86c2,0xf971015c,0xc940aa5c,0x30bf55,0x68b2d621,0xd240c101,0x1ebfffc8,0xddc25b74,0xe4749a,0x801bbb4,0xb892b4c2,0xff11063f,0x30010258,0xcd7a4400,0x90c263,0xb15310f1,0xb0b640a9,0xc08b40d3,0x4cd7bffe,0xc33c0e9,0xb7dcc0d3,0xada3bffe,0x354cc061,0x53019860,0xc0255d81,0x71035485,0xbfbe7d80,0x18987d2a,0xa002f300,0x17c22498,0xb13e4547,0x33bffd6f,0x593ff3df,0xb9440204,0xb03ed150,0x67585301,0x186bc0f7,0xc1a07103,0x1066c08d,0x71026411,0xc09c3f62,0xcc5995dd,0xa06e7100,0xa913c23c,0xf1005485,0x131bc04,0x8545e5c2,0xfe0210c0,0x376d6abf,0x3a9ef5c2,0x81710018,0x20c22a29,0x114f2ee,0xef0b3b71,0x9a6df0c0,0x4f1000c,0xc1f301ee,0xc0a1fa61,0xbfff58b8,0xc10326be,0x548b3eb4,0xa2fa7100,0x29e5c100,0x53000c0b,0xc234ba30,0x7102b8c4,0xc09e2ac7,0xb4b63c10,0x8a34400,0x2dcc242,0x46cb0a62,0x88112ec2,0xb2a24402,0x288c233,0x30ce02f3,0xf2aac22b,0x6fb13dfd,0x5e98bffd,0xf0e0c0ee,0xcbcf7100,0x4318c096,0x710168c5,0xc0f6f0ac,0xc0047e5,0xf6687100,0xf3b6c107,0x4402c4fd,0xc2349982,0xb710270,0xadc229aa,0x240387,0x81320171,0x3a9ef9c0,0x8071018c,0x83c24ce4,0xe49b78,0xdc26a431,0x8f102ac,0xc01fa8bd,0x40c9e5cb,0x40a6026d,0xc01eb7d8,0x40cabdf5,0xc9e14c2,0x24c0400,0x1eb7d844,0xb10270c0,0xc01eb7d8,0x40aa5389,0x24bf36f8,0xd0d57100,0x541b40b1,0xb1000cbc,0x40a9b153,0x40dfc90a,0x341a5693,0xbe0cf105,0x5e40cf95,0x96c01f9c,0x7fc225b8,0xd83f00da,0xe2c01eb7,0x35c23826,0x30485e,0x7081cf1,0x930cc204,0xbb6f4067,0xa180c01e,0xe88cc1ca,0xbd38c081,0xf93cc01e,0x6b48c253,0xb7dcc07e,0xe94cc01e,0x6562c25c,0xf2000cbe,0xae854507,0xdc862fc1,0x1eb7d8bf,0xbf3b95c0,0x23505c1,0xa8bbf5c0,0x49492200,0xa8030024,0x300100,0xc8e55871,0xa3eee140,0x471000c,0xab40b22e,0xcbc94,0x3b9a6f71,0x7e6b51c2,0xac030084,0x180102,0x4304f804,0xc01eb7dc,0x18010330,0xe4ea6200,0xbaa3c25d,0xde71003c,0x3cc1ac6b,0x84a3be,0xa8b28a71,0x83a98fc1,0x4f1000c,0xc1eef2e3,0xc0ab4181,0xc01eba38,0xc261171a,0x3c9d6f09,0xb6786200,0x890540aa,0x710054,0x3f406873,0x186035,0xcccb3462,0x24456940,0x9504f100,0x1c1bf3b,0xf5400235,0xb9c01ebb,0x4f401d17,0x248d2e,0x3fc34271,0x92d784c2,0x4f100a8,0xc259f7aa,0xc006acc9,0xc01eb7d8,0x409b33f8,0x78b82689,0xe103f200,0x85c1eef2,0x3440ab41,0xc2c01eba,0x443f8112,0x21005452,0x3a81880,0xa8c1c0c1,0x637ac01f,0xf0b3c244,0xf100489d,0x5ca5604,0xc3ec89c1,0x1eb7d83e,0x5bb220c0,0x2e5d3ac2,0x10f10048,0x40a26af9,0x3d9c2a88,0xc01eb7d8,0xc1caa152,0x4081e960,0xc01ebbc3,0xc061ada3,0x3c603550,0xa1167100,0x112ebe48,0xd2009ca0,0xc0255d9a,0x4088417d,0xc01eb7d8,0x103a8bb,0xa871000c,0x3340971b,0x1eced1a,0x561adc53,0x3c48c2,0x59b83271,0x1110a1c2,0x30030024,0xc0106,0x70c22771,0x58d04e40,0x7a62000c,0x7c25cea,0xf2027089,0x90abe0f,0x9df349c2,0x1ebdf9bf,0x24851ac0,0x44228ac2,0x1eb7d8be,0x5dd96cc0,0x7094adc2,0xc2d07102,0x4973c260,0x71003ca5,0xc225dee6,0xcc022963,0x707e100,0x9318c204,0xbb6fc067,0x1560c01e,0x40c10108,0xc01f9410,0xc25b87ec,0x9c59972d,0x7502f300,0x3cc208c2,0x303fb8bf,0xf0c01ebb,0x28c24df3,0x4c3100c0,0x6004936,0xb7d808f1,0xb926c01e,0x5a98c0e8,0x96f6c0cf,0x1405c01f,0x255bbfd4,0x5300fc97,0xc03f93de,0x7102a033,0xc0813205,0x183a9eed,0xa2827100,0x2136c224,0x4015c5d,0x640704f8,0xa80102,0x14732a71,0x8f72ef40,0x8144000c,0x983f6721,0x3255301,0xdc1fc0f7,0xcbd17102,0x4307c096,0x7100ccc5,0xc23714b4,0x60329696,0x43f47100,0x2f3cc23b,0x71000c7a,0xc229aa0a,0x2403879c,0xe8d77100,0x402dc0ef,0x720120a3,0xc09e2ac7,0xcb63bef,0xff684300,0x2ac23c0,0xfff1d871,0xc901dc0,0x82440030,0x40c23499,0xf76a4402,0x234c243,0xedbc7571,0x215161c0,0x8c0300c0,0xd8bdc104,0xeac01eb7,0xeec1077b,0x3c82b5,0x33b2a244,0x620228c2,0xc09c3f62,0x15095ee,0x72bd571,0x6bbf94c1,0x81710078,0x63c22a29,0x48f2ee,0xf82d9971,0x4621bc0,0x8c530174,0x43c2351c,0xa053021c,0x6bc08dc1,0xa0440210,0x5cc24ea0,0x4009f301,0xcfc26517,0x3a409ccc,0x3cc0181e,0xc26330,0xf7404000,0xcc10fad,0xcc01600,0x18601500,0x33b33100,0xb10c24b5,0xc263303c,0x40b51a8b,0x3023080a,0x8f267100,0xe84940b5,0x44004882,0xc06297b3,0xad710018,0xde409d16,0x1851ad,0x60000035,0xd9620054,0xe9c0b579,0x6200308d,0xc09d22e8,0x24a3ba,0x65670cf1,0xf0274062,0x303cc122,0xbfffc265,0x3743c0b5,0x303cc083,0xeac2c265,0x370c84b4,0xa865303c,0xc0100,0x62005403,0x16adc265,0x6cc09d,0xb46517,0x49c26564,0x3c4062f7,0x5886200,0xfd8940b5,0xbc710060,0x9a40b5ad,0x6082db,0x62c1b944,0x420018c0,0x409d22e8,0x48010090,0x600100,0x649ff8e1,0x400000c2,0x22a036c0,0x2c406ac1,0x51c07201,0xaec11c0e,0x61008449,0xc11ab1e5,0xc4cda,0x384021f1,0x12c11ab6,0x82c27014,0x2ac03e1f,0x62c11ae1,0xd0c26701,0x2abea77f,0x52c11ae1,0xc1c268c9,0x2abf58e2,0xf2c11ae1,0xc8c2711d,0x2429ed,0xdef804f1,0xf6f1c266,0xe12a3e88,0x303cc11a,0x6656c271,0xf1002466,0x68d71e10,0x57a10ac2,0x1ae12a3f,0x6fcf18c1,0x3edb6ec2,0x1ae12a40,0x711234c1,0x2e3d7dc2,0x3c71000c,0x66c27130,0x246666,0x11003c06,0x71002422,0xc02e3d79,0x3c22e12a,0xdb6a3100,0xf1000c3e,0x68d71c08,0x57a0e8c2,0x22e12abf,0x66def8c1,0x88f6cfc2,0x22e12abe,0xe3a1009c,0x2a3f58e2,0xd0c122e1,0x4100f0e8,0x22c2f240,0x4f100c0,0x3ea77ff1,0xc122e12a,0xc2701414,0x403e1f86,0xa822e12a,0x780200,0xcc2214,0x21001801,0x12057a0,0x686c4071,0x200ec11d,0xc0320264,0x6a80325,0xd26e14f1,0x7b6340df,0xc9d6c01b,0x6706c25c,0x26e940d4,0xd228bfff,0xc25c,0x648440e0,0xdf66c051,0x62000c5f,0xc0828de9,0xcd38e,0x23080971,0x3ec2bec1,0x89620018,0xb6c122fd,0x35000c6a,0xf01aa7bf,0xedc020f,0xf1100802,0x1a145e04,0xab9735c1,0xe00000c1,0x15c5df40,0xc3055bc1,0xa71000c,0x7fc12308,0x482b97,0x1a8de671,0xc27cc0c1,0x4f10018,0xc117dd72,0x40c27328,0x40e00000,0xc082e87f,0xcaa0fef,0xec037100,0xff11c051,0x62000cc1,0xc123080a,0x3c3d19,0x22f02671,0x837588c1,0xee710018,0x67c11a98,0xc8645,0xfd8910f1,0xaf81c122,0xbf30,0xfd8a40e0,0x1197c122,0xc0d6,0x150140e0,0xca4c0d9,0x71000cd3,0xc123080a,0x78215254,0x36767100,0x178fc0d9,0x710018ec,0xc0d8db49,0x182df8cc,0xf0277100,0x5fc7c122,0x71000ca9,0xc1184caf,0xc2c722e,0xdb467100,0xe2d7c0d8,0x71000ca8,0xc12314a0,0xcc02da9,0xd20cf100,0xa6c115ec,0x14c12092,0x4e40cf5a,0xa6c0f11d,0xb3c12092,0x740df08,0xcf66b,0xb11418f1,0xa56140d2,0xd4d6c100,0xcb62c11f,0xe19e4086,0x3df5c100,0xe48fc0ef,0xc33b4086,0xf94ec0f1,0x1455c11f,0x62000c87,0xc0ef52f8,0x24f992,0xedf217a2,0xd4a982c0,0xc921a40,0xe90cf100,0xa140cf37,0x17c0f13b,0x74c0edf2,0x1840df50,0x92c0f485,0xc2c0faa3,0x54a4c1,0xf76c0135,0xe944000c,0x18c102f6,0x90833500,0x71000c04,0xc0f907c8,0x30b4c1c2,0xc3b64400,0xcc103,0xf876cd31,0x6f33003c,0xc039e,0x6f40b491,0xbac1039e,0x3c03b4,0x56b7d62,0x48e8bac1,0x13037100,0x3e98c104,0x5100180c,0xc1053809,0x53000c97,0x4d540b4,0x91001806,0x6b3b40b4,0xe379c104,0x62006004,0xc1041845,0x6c9041,0x54704e2,0x110b65c1,0x9d6599c1,0xc380940,0x1deb3100,0x130030bc,0xf1000c64,0x604d504,0x1d2d1ec1,0xbc1debc1,0xd907040,0x18d72cc1,0x9f71000c,0xacc10e5b,0xc1c9f,0xab7ea71,0x1e062ac1,0x4f1000c,0xc1088f65,0xc1175a81,0x40bc1ded,0xc10fabb3,0x181acf90,0x6a357100,0x204dc106,0x71000c1b,0xc104d4c4,0xc133c42,0x30a07100,0xe3d4c10d,0x62000c12,0xc10b6ed8,0x78719f,0xf567571,0x10b07cc1,0x4f10018,0xc10dd495,0xc10bc2f6,0x40bc1e0a,0xc10c663c,0x180b8606,0x9b28f100,0xe5c106f2,0xdcc106fa,0x1840bc1d,0xacc107fa,0xdac0ff38,0x6740bb0c,0x55c10deb,0xe7c1078b,0x9440bc1d,0xa8c10b11,0xebc0fe52,0x9140bc1d,0x60c10b46,0x3c0573,0xeb6704f1,0xee42c105,0xb784c10b,0x850140b9,0xa693c103,0x71001806,0xc102b834,0x30f0805a,0x85017100,0xce49c10f,0x35001803,0x18031435,0xeb677100,0x9594c10d,0x620024f3,0xc10a1edc,0xc4ca3,0x76050cf1,0x5b36c103,0xda3ac25f,0x8501c096,0x303cc10f,0xc262,0x8515c0c0,0x3100180f,0x18a6249c,0x27f200,0xaac25c8c,0xcdc02a45,0x74c10f7e,0x3ac23038,0x14096da,0xa2c10f85,0x82c22590,0x13f026f,0xadc10f85,0xb5c2345d,0xea4080de,0xcac10f85,0xbc207c1,0x35003c26,0x48303874,0x38747100,0x24a0c230,0x3003ca6,0x4023006c,0x4006c10,0xca710018,0x70c207c1,0x789727,0x1006c03,0x37f2000c,0xc2259c02,0xbf048a8b,0xc10f8501,0xc22443d6,0x0,0xc10f8501,0xc1de04d8,0xc0a65979,0xc10f8443,0xc1dc9c94,0xc0a3777f,0xc10f82bd,0xc1cfc5be,0xc0a342c8,0xc10f8325,0xc1cdf688,0xc0a62622,0x608340,0x97277431,0xca620084,0xdc207c1,0xf1009026,0xff619510,0xa342cac1,0xf832540,0x9867c1,0xa62624c2,0xf834040,0xb72e4bc1,0x6e6662c1,0xc1440084,0x9cc1bfa3,0xa3c14400,0xe4c1bf,0xa48d8671,0x9828f6c1,0x7f20024,0xc1f28ac3,0x40a37783,0xc10f82bd,0xc1f1227f,0x40a6597b,0x48841d,0xdccccd31,0x4b3500c0,0x54a72e,0xa4c6de75,0x86665ec1,0x24040018,0xc1227100,0x17c2c199,0x710018de,0xc1a48d86,0x601d1eb4,0xc1227100,0x89ac199,0x71000c0f,0xc1a4c6de,0x80733333,0xc6de3501,0x35004894,0x3c91c0b9,0xa3c14400,0xf0c1bf,0x8b278962,0x54a4a9c1,0xc0b93500,0x62004891,0xc18b2789,0x544f0e,0xbfa3c144,0xf10114c1,0x8ec71304,0x800000c1,0xf8501be,0x808e23c1,0xe4b5ddc1,0x20350090,0x308327,0x808e2371,0x1257a8c1,0x20350090,0x608327,0x94c6de35,0x1371009c,0xcdc18ec7,0xa80ccc,0xbe3c5c44,0x35027040,0x608860ac,0xe4884400,0x27c40d4,0x56da06f3,0x9ba6c170,0x8571bfe4,0xb927c10f,0x4ab6c170,0x3039c012,0x480400,0x2cc15871,0xb2b852c1,0x80350078,0x9c5aae,0x5ff3ba93,0xe4816fc1,0xcd0bf,0x123d7153,0x24d0c0,0xf500a804,0x5f3bd100,0x285879c1,0xf85013e,0xf8173c1,0x867101bc,0xf3c11cc0,0x54a2b9,0x1cc08635,0xbf350060,0xc0327,0x5f794271,0xa147aec1,0xbf53003c,0x24c10327,0x20710030,0xd2c156c9,0x188e00,0x4aadb035,0x58620090,0x71c12cc1,0x3501203d,0x2c4aadb0,0x27bf7101,0xb9f3c103,0x71006c92,0xc1070b7c,0xc8ce704,0xc1583100,0xb800c02c,0xc10f8501,0xc15f858b,0x38b9e9ea,0x2b80101,0x103b403,0x3803000c,0x3480101,0xbad9b244,0x440348c0,0x40be3c5c,0xdb71000c,0x7c15712,0x48c85f,0xbad9b244,0x4403c0c0,0xc0e35673,0xd9440078,0x90c0e64d,0x3c5c4400,0x3b440be,0xbad9b248,0x4000cc0,0x7c7101bc,0x5ec1070b,0xb4444b,0xf817335,0x863502a0,0xc01cc0,0x1cc08635,0xbf7100fc,0xd7c10327,0x3038a3,0xe64dd944,0x440138c0,0xc0e64dd9,0xbf7101c8,0x1ec10327,0x2418a7,0xe550b9a2,0x3e78abc0,0x1484a7c0,0x1980401,0xe64dd944,0xf10024c0,0x4b0da1c,0xe6eb2dc1,0xf8501be,0x84c12c1,0x9a14cfc1,0xf85013d,0xf5991cc1,0x4c038c0,0xf852ebf,0x36249c1,0xfdbe1bc1,0xf10198,0xc0ec57c3,0xbc9a3098,0xc10f851f,0x481aa236,0x67d27106,0xe432c10f,0xf5000c16,0x7d21b1ff,0x4a90c10f,0x6e48c0f4,0x850a3efd,0x8058c10f,0x6599c0f0,0xffa409d,0xef32c10f,0xc6ebc229,0x842ebf03,0x4638c10f,0x14cfc22b,0x84dabd9a,0x2962c10f,0xb285c22a,0x84da3f00,0x3032c10f,0xffd2c262,0xb45bc0bf,0xe439c119,0xffc540d4,0xb4b9c0bf,0x732ac119,0xdc3c034,0xd670c015,0x20c0c119,0xd128402e,0xefd5c005,0xf228c119,0xbcc401d,0xe969c015,0x80a6c119,0xf45ac253,0xed44c014,0x7420c119,0x63a2c254,0xf0f2c006,0x552ec119,0xb995401c,0xf105401a,0xe465c119,0xffd240d4,0xb48a40bf,0xde7fc119,0xc24c402d,0xee1d400b,0x7194c119,0xc259c254,0xee1e400b,0x3036c119,0xffc3c262,0xb52240bf,0x8c69c119,0x492cc03a,0xeb144019,0x796c119,0x4bc2c23e,0xd8954019,0x5870c119,0x9f34c253,0xed16401a,0xf7a2c119,0x8bfcc229,0xb462bf04,0x2010c119,0xa522c23d,0xe967c005,0x3e30c119,0xf7bec22b,0xadf7bd97,0x4a87c119,0x4dac22a,0xae003ef8,0x5ed4c119,0x18f8c225,0xadf5befc,0xb036c119,0xb74ac225,0xadfe3f05,0x1611c119,0x4439c23d,0xec1d4008,0x4d74c119,0x1449c224,0xadf93d9a,0x5578c119,0x60fac102,0xae0bbf09,0x842ec119,0x248dc108,0xadfabcc1,0x22d9c119,0xc012c0f7,0xadf7bf01,0x8017c119,0x2874c046,0xe98fc008,0x228cc119,0x8844c0ed,0xade3be4b,0x999cc119,0x63d0c0f1,0xadfb3edc,0xfe4c119,0x98b7c048,0xef704007,0xf9eac119,0x1f2ec102,0xae063f05,0xf48cc119,0x816fc16f,0xc95bfe4,0x403fc0b,0x71b1000c,0x95c0123d,0x8cc10b0c,0x2886ff4,0xb0c9535,0xa2220240,0x75000c5b,0xc038a3d7,0xa00b5ba2,0xc0402,0x31002408,0x48b2b852,0x4080400,0x31000c04,0x18a2b9d2,0x4dd94800,0xcc0e6,0xa2b87135,0xc080054,0xb9f33100,0x4001892,0xf1036c,0xc10b5ba2,0xc1a4c6de,0xbf866666,0xc01eb67,0x33334200,0xc3f73,0x4054002,0x2404000c,0x5940400,0x5849935,0x99350558,0x51c0584,0x4000c04,0xc0040024,0xfaf83506,0x2068401,0x6c02000c,0xc0406,0x4002404,0x9a35048c,0x420091e,0x91e9a35,0x180403f0,0xc0400,0x5712db31,0xd031054c,0x4b005eb,0x8e00d2b1,0x5ebd13e,0x5f3bd1c1,0xcf10474,0xc105ebd0,0xc156c920,0x3fb9e9e2,0xc105ebd1,0xc1bf973e,0xc096f562,0xc09eb67,0xf564c400,0xeb674096,0xc80cc109,0x18c207,0x7c80c44,0xf50018c2,0x4ee0824,0x96c882c2,0x9eb60c0,0xef839ac1,0x96a6bbc1,0x11e9ac0,0x51f57c1,0x95d63dc2,0xf3d6b8c0,0xef93a6c0,0x966664c1,0xf3d6cdc0,0xdfa3bcc0,0xb0350024,0x18df93,0x8ad74bf2,0xd1b1c1c3,0xeb5ac090,0x3292c109,0xb5a4c1c5,0xeb5fc096,0x960ec109,0x5215c1c3,0xeb554091,0x4609c109,0xbf2dc1c5,0xeb614096,0xe97ac109,0xb010c1ef,0x1e944095,0xf890c101,0x1b3dc204,0xd6c74096,0xdf66c0f3,0xefb7c1ef,0xd6dc4094,0x45eac0f3,0xf944c1df,0x6f3000c,0xc205cbdc,0xc0912f49,0xc109eb53,0xc205c8a4,0x40915215,0xf100c057,0x96c88418,0x9eb6040,0x5c1bfc1,0x8f938ec2,0xf3d6c9c0,0xefc890c0,0x6f6b2fc1,0xf3d6f3c0,0xf77688c0,0x53e729c1,0xe6f30018,0xc2005036,0xc0132b80,0xc0f3d6d2,0xc202bd59,0xbf839d4e,0xc0f3d6ef,0xc205c9d6,0xbf7fff58,0xc0f3d6cd,0xc205d1e0,0xbf7dfddf,0xc1011e9a,0xc202bc78,0xbf81d92b,0xc1011f2f,0xc1cd16d2,0xbffe2f0e,0xc0f3d6c9,0xc1cbe47a,0xbfd86e2b,0xc10266bb,0xc2031eec,0x3ecc5c57,0xc1011e7d,0xc203201e,0x3eeff002,0xc1026656,0xc1c8e700,0xbeefcd25,0xc102664f,0xc20272b3,0xbfa26530,0xc1026546,0xc1c8e95c,0xbecc1dd2,0xc1011e7c,0xc1c9a647,0xbf834e55,0xc0f3d6f3,0xc1df6e8f,0xc06eccee,0xc1011f6a,0xc1e793b2,0xc077841b,0xc1011ebd,0xc1dd4e32,0xc06a225b,0xc102674e,0xc1eb68f1,0xc0753650,0xc1026b57,0xc1fd6812,0xc02ea31a,0xc10266ff,0xc1f51a8a,0xc05d799a,0xc10266bb,0xc1d52e51,0xc048668c,0xc0f3d6d2,0xc1d1bf46,0xf400242b,0x10843e9,0xfe2f06c2,0xf3d6c93f,0x1a16ec0,0xd86e5dc2,0x266bb3f,0xc9b4b3c1,0x831538c1,0x11f2a3f,0xca4257c1,0xa2703bc1,0x265373f,0x2c088c1,0x834e6ec2,0xf3d6f33f,0xc9a727c0,0x83373bc1,0xf3d6f13f,0xe793a4c0,0x77841fc1,0x11eb940,0xeb68f0c1,0x753659c1,0x26b5740,0xdd4e2cc1,0x6a2253c1,0x2674e40,0xce86ccc1,0x132a5ac1,0xf3d6d240,0xd1bf3ec0,0x2ea2f0c1,0x266ff40,0xd7b0b0c1,0x53e6a3c1,0xf3d6cb40,0xdf5ec5c0,0x6f6b23c1,0xf3d6f140,0xf51a88c0,0x5d79a7c1,0x266bb40,0xefcd82c1,0x6f3850c1,0xf3d6ef40,0xf9f906c0,0x486695c1,0xf3d6d240,0xfd6812c0,0x2ea327c1,0x266ff40,0xfc8705c1,0x702e2c1,0x26649c0,0xd4b274c1,0x1709bbc1,0x2664840,0xcef8e0c1,0xae100ec1,0x266493f,0xdddf0cc1,0x48b9c3c1,0xf1002440,0x1709b70d,0x26648c0,0x11453c1,0x47b9ac2,0x26649bf,0xdcb2aac1,0x44d656c1,0x610024c0,0xf1c1ce7c,0x189b49,0x93ab06f3,0x999ec1e7,0x66484055,0xe078c102,0xc1cc,0x18480000,0x999a3100,0xf1004855,0x557210,0x9b49e0c2,0x266493f,0xf1d816c1,0x464c98c1,0x2664940,0xf1484ac1,0x48b9bbc1,0xe2350054,0x9cfa74,0x9fac4df1,0xc5fcc1eb,0xb385c054,0x5352c0f7,0x6fe7c1f8,0xfd8c028,0xb320c0f8,0x999ac1fe,0xd6cdbfd5,0x2847c0f7,0x61f2c201,0xb385bebe,0xaefcc0f7,0x2296c200,0xd6cd3f5d,0xdc56c0f7,0xa750c1fc,0xdc7b4002,0xed44c0f7,0xfbadc1f4,0xd6cd4038,0x9f27c0f7,0xd8fdc1ea,0x484055,0xebd24bf1,0x5f2214c1,0xf4b13c40,0xf593abc0,0x41fd61c1,0xf4d63d40,0xfe41d2c0,0x64092c1,0xf5120e40,0x1ceeac0,0xc7a6bdc2,0xf4b13c3e,0xb9a0c0,0xb403dec2,0xf5120ebf,0xf84c5ac0,0x35c954c1,0xf4b13cc0,0xeac518c0,0x604278c1,0xf5120ec0,0xddb7a0c0,0x4841a2c1,0x337100a8,0x1fc1dc42,0x244ebe,0xd2912071,0x66cadc1,0x10f100cc,0xc1d3c720,0xc01e6452,0xc0f4d63d,0xc1cd4ccc,0xbfa453d2,0xc0f4b13c,0xc1cdc95f,0xd85d2285,0xca5cf400,0x78c1ccd6,0x853ebe62,0x52c0f7b3,0x18c1cbac,0xe3f0579,0x17c0f512,0xe2c1d1f3,0xd8400004,0x40c0f80f,0x2fc1d18b,0x3a400cf8,0xbcc0f4b1,0xe1c1dcc8,0x85404524,0xbbc0f7b3,0xc1c1dd3c,0xe405201,0x74c0f512,0xfc1e054,0x7140585e,0x78c0ee47,0x7fc1eadc,0x35406032,0x48c0ee62,0xb5c1d5e1,0x4d402fc0,0x84ee4d,0x22703f41,0xf4006cee,0xf0ffffff,0xbf0578f7,0xc0ee8343,0xc1d18b3e,0xc00cf823,0xc0ee2270,0xc1dd3cb9,0xc05201b4,0xc0ee8343,0xc1ebeb0c,0xc05efe65,0xc0ee4d4d,0xc1cec939,0x3f9d614e,0xc0f1820c,0xc1cd3d36,0xbefe008f,0xc0f16475,0xc1d4f064,0x4015fd09,0xc0f17173,0xc1dd6807,0x40446e22,0xc0f16bf4,0xc1e77fa0,0x40537d3d,0xc0f17176,0xc1ee3acb,0x404cd3e5,0xc0f16de5,0xc1f7c7ee,0x4028f0e1,0xc0f18adf,0xc1f84c5c,0x4035c94f,0xc0ee2270,0xc200b056,0x3fb68659,0xc0ee4d4d,0xc1fe9603,0x3fd0d845,0xc0f16de5,0xc200f510,0x3efe00b0,0xc0f16475,0xc201c9d6,0x0,0xc0ee4771,0xc1f9460d,0xc02fc0be,0xc0ee4d4d,0xc200ed45,0xbfa453d2,0xc0ee2270,0xc2002f0e,0xbf9d614e,0xc0f1820c,0xc1fa36f2,0xc015fd05,0xc0f17176,0xc1f186fa,0xc0455571,0xc0f17b03,0xc1e76055,0xc0539f90,0xc0f16de5,0xc1dd5b9e,0xc0455db3,0xc0f15a47,0xc1d2758f,0xc001a20e,0xc0f18adf,0xc200315c,0x3f998b3f,0xc1090a1f,0xc200fd09,0x0,0xc1090a1f,0xc1f7d280,0x40295f14,0xc1090a1f,0xc1eb0a1d,0x40526901,0xc1090a1f,0xc1dd5d54,0x40453cc9,0xc1090a1f,0xc1d287d6,0x400131f4,0xc1090a1f,0xc1ce138e,0x3f5aa67f,0xc1090a1f,0xc1cd2130,0xbeb64e27,0xc1090a1f,0xc1d267c8,0xc001f69d,0xc1090a1f,0xc1dd6cc9,0xc0441230,0xc1090a1f,0xc1eb0f60,0xc053a961,0xc1090a1f,0xc1f7b9e8,0xc0285eaf,0xc1090a1f,0xc1ffe7b0,0xbfac1b6d,0xc1090a1f,0xc1d93c46,0xbf847ad1,0xc108a3b9,0xc1d70596,0xbe8b7dc8,0xc108ad08,0xc1e76fd7,0x40036784,0xc1088562,0xc1f76854,0xbf0c240b,0xc1086ea7,0xc1d82666,0x3f4c7ac0,0xc10892a8,0xc1e3c242,0xbffdf96a,0xc108786d,0xc1ef5f82,0x3fe58280,0xc108786d,0xc1de2e30,0x3fcdd042,0xc1083d28,0xc1f753e0,0xbe84b663,0xc1083d29,0xc1d8e641,0xbf428bf4,0xc1083d29,0xc1dd9574,0xbfc67cfa,0xc1083d18,0xc1ea0742,0x3ffbd71b,0xc1083d21,0xc1f6d91b,0x3f02f102,0xc1083d53,0xc1d7bd18,0x3e5a5a04,0xc1083d21,0xc1e9485f,0xbffd692b,0xc1083d21,0xc1f42e3b,0x3f9abd55,0xc1083d20,0xc1d9e290,0x3f7cf590,0xc1083d53,0xc1f14e3a,0xbfcadc12,0xc1083d1f,0xc1d7f2f0,0xbe5773e2,0xc103706a,0xc1db1104,0xbf9997b3,0xc1037072,0xc1e1e7fc,0xbfea8e15,0xc103706a,0xc1e9fee9,0xbff87efa,0xc103707b,0xc1f11ea0,0xbfc6fb76,0xc103707b,0xc1f5f3db,0xbf4b660e,0xc1037074,0xc1f72d44,0x0,0xc10370a4,0xc1e5286c,0x3ff87efa,0xc1037074,0xc1e793ab,0x3fb93e60,0xc1039e9d,0xc1f2c1fe,0x3ebfbd06,0xc1037192,0xc1ed3f5a,0x3fea8e2e,0xc1037074,0xc1e638b0,0xbfbb87c6,0xc10378e3,0xc1dcbc16,0xbf16238e,0xc1037674,0xc1f5f3db,0x3f4b660e,0xc1037074,0xc1ee8c74,0x3f91538b,0xc103715c,0xc1f29b92,0x3fb07e74,0xc10370a4,0xc1d91825,0x3f3ff64d,0xc1037081,0xc1de17ae,0x3f61655e,0xc1037674,0xc1f10fa8,0xbf61654d,0xc1037674,0xc1ddb76b,0x3fc3da38,0xc103706a,0xc1ef8a60,0xbefe5908,0xc1077e50,0xc1f14200,0x3eab480a,0xc106836c,0xc1e793ab,0xbf988f97,0xc106db5a,0xc1eca3e2,0x3f6a8449,0xc1079c5c,0xc1ebd1a2,0xbf72a64c,0xc107b93d,0xc1e2eecf,0x3f71a21f,0xc1078e57,0xc1deb166,0xbd8a4335,0xc1077e50,0xc1deffb0,0x3f1e7b2d,0xc10645e8,0xc1deffb0,0xbf1e7b1c,0xc10645e8,0xc1e34810,0xbf79b8cc,0xc1077c81,0xc1c38395,0x25f407c8,0xc1c9bd1c,0xbf827f6f,0xc1011e97,0xc1c38395,0x3f800000,0xc1011e9a,0xc1c3a676,0xc08fdc31,0xc0f3d6c7,0xc1c4feb2,0xc095eabe,0xc0f3d6bf,0xc1c393ab,0x12f30810,0xc1df59d4,0xc06f3843,0xc0f3d6ef,0xc1efbca8,0xc06ea659,0xc1011f63,0xc1c3b295,0x4090ba4b,0xf10030bd,0x80000030,0xf3d6cd3f,0xc74436c0,0x951627c1,0xf3d85340,0xc96c85c0,0x84bc3ec1,0xf3d83040,0xc6a826c0,0x7b5f5fc1,0xf3da0c40,0xc41a6dc0,0x852b95c1,0xf3d81f40,0xc472f4c0,0x90bea7c1,0x1f40030,0xc1c94cba,0x408efbdf,0xc0f3d78a,0xc1c53637,0x1af30918,0xc1df4016,0x4095aa91,0xc1011e8f,0xc1df6aae,0x406ea655,0xc1011f63,0xc1efb8c8,0x406eccf3,0xc1011f6a,0xc205ba61,0x300904d,0x900108d0,0x8d00300,0xf300f001,0xb51da7ff,0x7f80c202,0x1e973f82,0xad53c101,0x44d0c1c2,0xf29b4086,0x19e4c0d3,0xe8bac1c3,0xedd54090,0xab5bc0d3,0xebf8c1c4,0xfbf84097,0xc764c0d3,0xbd66c1c7,0xef414099,0xf9dac0d3,0xde07c1c9,0xeb4f4093,0xf066c0d3,0xf2ebc1ca,0xf98b4089,0xac0d3,0xb735c1ca,0xe63f407d,0xda6fc0d3,0xf20ac1c6,0xef414071,0x273bc0d3,0xce64c1c4,0xe4d44079,0xa24ac0d3,0x783ac1c4,0x14c8409b,0xeb72c0d3,0x783ac1c8,0x463d409b,0xedac0d3,0xefcac1c2,0xe7e0408e,0xd961c0d2,0x4f94c1bf,0x3d3640a5,0xd9eac0d2,0xcd92c1bf,0xc255404c,0x6fd5c0d1,0xc133c1cf,0x1dae4084,0xcd66c0d2,0xce46c1c7,0xeb40404c,0xd961c0d1,0x4f90c1bf,0x3d36c0a5,0xdb42c0d2,0x2652c1bf,0xa39abf95,0x4354c0d0,0x64bfc1c0,0x3c213fbd,0x7ddbc0ba,0xed63c1c0,0x3c47bfc5,0xdb43c0ba,0x26f2c1bf,0xa39a3f95,0xad07c0d0,0xcd29c203,0xeb40c04c,0x22c8c0d1,0x7a85c206,0xa39ec010,0x8764c0d0,0xad32c206,0x3d4dc000,0xe1b0c0ba,0x794fc1c2,0xa39ec010,0xa61ac0d0,0x25b3c207,0xa39abf95,0xac94c0d0,0xfeb9c207,0x250bbf7d,0x840c0ba,0xd263c1c9,0x3d38c059,0xa7c2c0ba,0xeceec1c7,0x1cb9c04d,0xa269c0d2,0xf1dac1d2,0x3d21c08b,0xd8fbc0ba,0x5157c1d5,0xa39cc093,0xbe42c0d0,0x1347c1db,0x3d1fc09c,0x8690c0ba,0x4a27c1df,0xa394c0a0,0x93a4c0d0,0x6ae6c1e7,0x3cf9c0a3,0xabccc0ba,0xf03fc1ec,0xa374c0a2,0x690fc0d0,0x304dc1f3,0x84e65300,0x54edc1fc,0xa802f300,0xa7c1ffb7,0xacc084c0,0x8ac0d21d,0x7cc2030f,0xdf40084,0xc1cf76e2,0xc0a26a55,0xc0d19618,0xc1dd6934,0xc0a39e3f,0xc0d0a398,0xc207a6fb,0x2f3012c,0xc20771fe,0x3fbd6577,0xc0ba3c21,0xc207a60a,0x4401145b,0xc207a6fb,0xff20180,0xc1f1be20,0x40a39e45,0xc0d0a396,0xc1c2e1ab,0x401078e6,0xc0d0a39e,0xc20622cf,0xc79d5,0xf8602f3,0xd2bfc203,0x3d384059,0xacf2c0ba,0x9870c203,0xeb3ff201,0xe5c1fc84,0x21408bf1,0x62c0ba3d,0x4cc1f94e,0x9c409351,0xdcc0d0a3,0x3bc1ecab,0x7f40a2f0,0xb1c0d0a3,0xeac1e793,0xf940a36a,0xb1c0ba3c,0x45c1df86,0x8e40a04a,0x4ac0d0a3,0x53c1dbbe,0x1f409c13,0x7ac0ba3d,0x6c1d2a2,0x530048f2,0xc1c9083f,0xf3006c74,0xffb0761a,0xa26a59c1,0xd1961840,0xec56e0c0,0x9b79f0c1,0xba440b40,0xcfa48ac0,0x758644c1,0xba4116c0,0xff82ccc0,0xc49c1,0x2f6a74f5,0x559bc206,0x3e18bfb3,0xc880c0ba,0x5558c1c2,0x3e183fb3,0xa4e6c0ba,0x5d18c1ea,0x66624060,0x487ec0c6,0xe169c1f8,0x777b4035,0xb473c0c6,0x79afc200,0x69b13fb5,0xcfa7c0c6,0x4e0ec201,0x6662bec4,0x4fd9c0c6,0xa68bc1fe,0x777dc005,0xeb48c0c6,0xa9d2c1f2,0x69b1c04e,0x8273c0c6,0x5d18c1e4,0x6662c060,0x3c4ac0c6,0xfe65c1e3,0x74cbc05e,0xd2e2c0cf,0x5e0bc1ee,0x7aa4c058,0xf10960cf,0xcf9fa72c,0xffd356c0,0xe00000c1,0xcf7aa4bf,0x1b9bcc0,0xaec29c2,0xcf74cbbf,0x14fb6c0,0x67e6e6c2,0xcf7aa43f,0xfe5b4fc0,0x51f3ac1,0xcf74cb40,0xf2fc10c0,0x4e680ec1,0x61f4000c,0xc1e793ab,0x40600000,0xc0cf7aa4,0xc200fc7a,0xbeefaa69,0xc0cc4d51,0xc200277e,0x3f9f46a2,0xc0cc4d51,0xc1f8048c,0x4027e532,0xc0cc4d51,0xc1eb8bb0,0x4052b3ab,0xc0cc5da0,0xc1ddbd98,0x40465397,0xc0cc4009,0xc1dd4e70,0x405236fc,0xc0cf9fa7,0xc1d19b94,0x400d931d,0xc0cf74cb,0xc1d29706,0x40038709,0xc0cc4d51,0xc1cc87ea,0x10f10090,0xc1cdf930,0x3f54e3ef,0xc0cc5430,0xc1cb875e,0xbec156e2,0xc0cf74cb,0xc1cd1c82,0x84cdba6f,0x1204f100,0xdfc1dc3c,0xb1404ea9,0x7ec0c669,0xa0c1d0d7,0x15005a6,0x802fff4,0xec1cb88,0x623ec44e,0x71c0c666,0xb7c1cdbe,0xb1bfb579,0x6c0c669,0x32c1d0cc,0xcbc0051f,0xdac0cf74,0x6dc1d6de,0x7bc035e1,0xabc0c677,0x5dc1d993,0xa4c041fd,0xaac0cf7a,0xfbc1d243,0x51c00021,0xc2c0cc4d,0x5dc1dd20,0x51c04437,0x2c0cc4d,0x90c1e7c7,0x30c0539f,0x1c0cc54,0x2ec1f14f,0xa0c04659,0x9cc0cc5d,0x27c1fc7d,0x9c00469,0x44c0cc40,0xc1cd2d,0xd000000,0x8ec0c2e1,0x6ec1ce13,0xdbf5aa6,0xb9c0c2e1,0x33c1d0b6,0xdbfd333,0xc2c0c2e1,0x47c1d4e8,0xdc01557,0x78c0c2e1,0x8ec1da60,0xdc036e7,0x77c0c2e1,0xe7c1e0be,0xdc04c00,0xabc0c2e1,0x33c1e793,0xdc05333,0xdfc0c2e1,0xe7c1ee68,0xdc04c00,0xdec0c2e1,0x8ec1f4c6,0xdc036e7,0x94c0c2e1,0x47c1fa3e,0xdc01557,0x9dc0c2e1,0x33c1fe70,0xdbfd333,0xe4c0c2e1,0x6ec20089,0xdbf5aa6,0x9c0c2e1,0xc200fd,0x18000000,0xa67f4700,0x303f5a,0x84000c01,0xc1fa3e94,0x4015574b,0x92310060,0xc36e7,0xee68df71,0x4c00ebc1,0x9003000c,0xc0100,0xe0be7735,0x78350018,0x30da60,0xd4e8c235,0xf0030048,0x600100,0x109a804,0xabf100b4,0x4bc1dc4b,0x2c06f01,0x9ec0a861,0x53c1cd34,0x18c00a3e,0x42c0a87c,0xb2c1c87e,0xe53f02f3,0x14c0a87a,0xe4c1ca3e,0xb83fc182,0xa6c0a84b,0x68c1d293,0x74403c22,0x3ec0a87c,0xcbc1df73,0x4e4072a1,0x48c0a87b,0x47c1ebab,0xe54078ab,0x16c0a87a,0x43c1f40c,0x35406972,0x65c0a841,0xbbc1fdc7,0xf640319d,0xf9c0a87b,0x8bc202ad,0x2d3fb88c,0x8ac0a869,0xd4c20354,0xe5bf02f3,0xa2c0a87a,0xd4c20274,0xb8bfc182,0xec0a84b,0xa8c1f494,0xefc067fe,0x4cc0a854,0xb7c1ee01,0xecc076ee,0xbec0a87b,0x60c1c966,0xa44004ea,0x18c0a87a,0xd3c1d89e,0xc6abe,0xd6bdcc71,0x75750cc1,0x4f1000c,0xc1f87494,0xc0749614,0xc0a87aa4,0xc202e04c,0xc04ea57,0xf04f100,0x5dc203ed,0xa4bf9ce0,0xc0c0a87a,0x6bc20524,0xca027,0xf249ec71,0x723559c1,0xa8710024,0x89c1f178,0xc8a24,0xe6f8bc71,0x908cbdc1,0x2681000c,0xb4c205da,0x543e8b76,0xdb0ff100,0x22ac1dd,0x7aa4c088,0xf40c0a8,0xcad5c205,0x7aa43f9e,0xc8dcc0a8,0x2b80c203,0x71000c9f,0xc1d9f6f2,0x2468b778,0x712c7100,0x8d47c202,0x710018ef,0xc2032126,0xa806aef7,0xbc6e6200,0xc661c1d6,0xfc7100a8,0xa5c1c931,0x3006bf,0xf8504a71,0x72c7d6c1,0x5d710024,0x35c1ca54,0xa8d3d3,0xc8986a71,0xa47315c1,0xb262000c,0xb0c1f246,0x7100f03a,0xc1f14c0b,0x3088022e,0xea327100,0xf534c1c4,0x7100249e,0xc1e82e9c,0x18908cc1,0x67767100,0xa0a5c1c3,0x7100c01b,0xc1dc5c90,0x186fb7f1,0xc5777100,0x3e08c1c7,0x71009ca0,0xc1ddcca2,0x18895f91,0x3ac6200,0x2720c1c5,0x1cf100d8,0xc1d6bc85,0x4074c66d,0xc0954773,0xc1c931fc,0x4006bfad,0xc0954771,0xc1ca5e66,0x3fc13a60,0xc0954771,0xc1c8986c,0xca4732e,0x840300,0xf1000c01,0xc3677610,0x1ba01fc1,0x954771be,0xc4fe7dc0,0xa0072dc1,0x954771bf,0xc74d38c0,0x9ce05dc1,0x3c71000c,0x3bc1ca20,0xcc236,0x66be04f1,0xea57c1c9,0x4771c004,0xb2c2c095,0x961cc1d6,0x71000c74,0xc1da4ae9,0xc68ec89,0x607100,0x75d1c1dd,0x71000c76,0xc1ddcca2,0xc895f8b,0x2e9b7100,0x8cbdc1e8,0x62000c90,0xc1f16ede,0x18b635,0xf28c7271,0x703e92c1,0x56710018,0x15c1f44d,0xc6601,0x6ad204f1,0xc669c1f8,0x4773c074,0xfaadc095,0xbfa5c202,0x71001806,0xc2026ef7,0x90cae8f3,0x71ab7100,0x4ef9c202,0x71000cb6,0xc2053570,0xc9bef52,0xd510f100,0x20c20511,0x713f9e27,0x3ac09547,0x94c205c7,0x713ebd6c,0xfc09547,0x64c20286,0x18ae21,0x2838d71,0xc23622c2,0x4c71000c,0x5bc202e0,0x13804ea,0xf8698a31,0x717102ac,0x3fc09547,0x2c4f689,0x954771b1,0xf2cac7c0,0x6fb7edc1,0xb4310024,0x18cf15a,0x95477171,0xe6f8bbc0,0x71a201c8,0x78c09547,0x39c1ddb8,0x710018b6,0xc200e26c,0x3008841f,0xb3227100,0x5f0bc1fa,0xf1000c47,0xcd77811c,0xd4b4dc1,0x9547aec0,0xd84536c0,0x5b27b7c1,0x954797c0,0xc8dceec0,0x3dc194c1,0x954756bf,0xe1d39cc0,0x75d20bc1,0xfc7100fc,0x5ac1c88b,0xa81364,0xec2c1e71,0x7841afc1,0x98710018,0x88c1d050,0x542710,0xfc751e71,0x3a1d97c1,0x24710018,0xa1c1d7e9,0x185913,0xda88fc71,0x685e68c1,0x9871000c,0x89c1dd76,0xc7c96,0xe11f6072,0x74b23ec1,0x3f1000c,0x8bc20374,0x71b76ae1,0x7ec09547,0xb1c1e99f,0x1879bf,0xf19e5471,0x6ca744c1,0x28f1000c,0xc1faa697,0x4046dc51,0xc01dc216,0xc200aecb,0x400d586d,0xc01dc21a,0xc1c8d922,0x3f37c04d,0xc01dc21a,0xc1c87473,0xbecb573f,0xc01dc261,0xc20287a5,0x18a64381,0x61a37100,0xfea8c1cb,0xf1000cd7,0x365d210,0x82ee20c2,0x1dc21a3e,0xd10c36c0,0x2e2baec1,0x1d66ae40,0xd9bd57c0,0x607942c1,0xbf710060,0x32c1e584,0xc7b3a,0xf1a21e71,0x6d008ac1,0xfff5000c,0xd1726005,0x310a6cc1,0x1fad9fc0,0xcc727ac0,0xfb2418c1,0x1e6556bf,0x1b8f2c0,0xe29e2cc2,0x1dc21abf,0xfe965ec0,0x2879ffc1,0x1d3960c0,0xf89d87c0,0x51acd2c1,0x1dc21ac0,0xf13e4ac0,0x6dd4aec1,0x1dc21ac0,0xe93610c0,0x79bef0c1,0x1dc21ac0,0xe11142c0,0x749b41c1,0x1dc21ac0,0xd7e4acc0,0x58496bc1,0x1e65f9c0,0xfeccadc0,0x15a72ac1,0x1dc7e740,0xf255bec0,0x5e7e80c1,0x1dc7e740,0xfa61ecc0,0x3926e1c1,0x1dc769c0,0xcadba2c0,0x793cacc1,0x1dc6c9bf,0xec5ca2c0,0x6b7cf6c1,0x1dc747c0,0x28889c0,0xf68145c2,0x1dc6b9be,0xe2fcdcc0,0x6bb7d0c1,0x1dc7e740,0xd4dec6c0,0x39c811c1,0x1dc7e740,0x100bac0,0xc1b64ec2,0x2ebdb2be,0xfce570c0,0xfea409c1,0x2e754bbf,0xf215d0c0,0x4387d3c1,0x2e7510c0,0xe4769bc0,0x535f31c1,0x2e7400c0,0xd7c8d2c0,0x2b4163c1,0x2e3897c0,0xd2ce15c0,0x262caac1,0x1fb29ec0,0x1f40720,0xc02e4185,0xc1cd40da,0xbed299fa,0xc02ed788,0x3350f9c,0x6cc4a7c,0x7c0308f1,0x4470c04a,0xd656c1f7,0x7c03c02b,0x6ce5c04a,0x93d5c1ea,0x71000c53,0xc1dcd1f6,0xc42a027,0x87d47100,0x31e8c1d2,0x4000c01,0x2cf1078c,0xc04a7c03,0xc1cd4b26,0x3f02fe93,0xc04a7c03,0xc1ebaba2,0x40524428,0xc04a7c03,0xc1d2a753,0x3f348345,0xc04a6da0,0xc1f16576,0xc01af40e,0xc04a4f6a,0xc1ddfaf8,0x24467868,0x9c10f100,0xedc1fc7f,0x5bf347f,0x3fc04a6c,0x71c1dde5,0x4c401b76,0x95c04a35,0x91c1d2dc,0x24057e,0xe23adab5,0x27a138c1,0x4a5ac4c0,0x14f110ec,0xc04a7c03,0xc1fa5bf4,0x3face2a0,0xc04a6c05,0xc1d4cbd6,0xbfacde5d,0xc04a6a05,0xc1f8437c,0x3c25b8b7,0x81cf100,0xb1c1ed0f,0x73402850,0xfdc04a67,0x15c1cedd,0x8a3f9dc7,0xb0c02e76,0x95c1d71b,0x86402728,0xec02e76,0x62c1e3c3,0xc52a3,0xb107a404,0xc02e4185,0xc1f77f4e,0x182a8616,0xc44af300,0x48c1fff2,0x413faa8c,0x6cc02df3,0xd2c1f144,0xe6bf068b,0x60c028b2,0x26c1efe3,0x96bfe218,0x80c0373d,0xd4c1ef6e,0x573f05d1,0x5ac02678,0x21c1f5e8,0x7d3f7ce4,0xd6c03703,0xc3c1e2f0,0xbd3fedf4,0xc5c0331e,0xbfc1e793,0x85bfc3ef,0xfcc02b05,0x11c1d93e,0xcf10024,0xc1e20251,0x3f944f44,0xc02993c9,0xc1d93efc,0xbf7ce3ef,0xc037037d,0x60df43f9,0x8e05f400,0x19c0373d,0x7940be74,0x904096a2,0x6fc10947,0xcc0bb11,0xa810f100,0xe240a865,0x89409668,0x6ec10947,0x2ec0a596,0x3b409602,0xd8c1028f,0x2440a939,0xc95e1,0x1a1519f4,0x6504c0ba,0xb81540a5,0x4ad3c0d6,0x5343c010,0x1dd240a5,0x2578c0d5,0x4e054017,0x1dd640a5,0x7cbfc0d5,0x2440bd,0x213a7ef3,0x862f401a,0x853240a2,0xd764c09f,0x8b93c0ad,0x1e6b3fb7,0x1d77c0d5,0xc0b3,0x1e7c0000,0xf909c0d5,0xaa54c0a9,0xeb333fc8,0x5be2c095,0x862bc013,0x8532c0a2,0x4d8cc09f,0xb26cc014,0xeb48c0a1,0x538bc095,0x5126c010,0x1dd8c0a5,0x6c4ec0d5,0x9bb2c091,0x4984404f,0xd467c0d8,0x6762c082,0xeb484070,0x30f0c095,0xf5d8c079,0x53d04081,0x5a2bc0d7,0x2835c084,0x6ec6c06c,0xbdbec095,0x5764c013,0x541b40a2,0x6e69f400,0x4840a1b2,0x6bc095eb,0x58c07983,0x97c08201,0xcfc0d6b7,0x11c0924e,0x12c04fe3,0x69c0d7eb,0x1ec0add7,0x6bbfb78b,0x43c0d51e,0xc5c0a890,0x2ebfd656,0x8dc09572,0xc0b19b,0xcf800000,0x31c095ea,0xc4c01460,0x274095a3,0x2dc0966a,0xbac0145c,0x3bc09583,0xb3c096a9,0xc0a3b3,0x633fb88d,0x8cc095ec,0xddc0144d,0xe440955d,0xe0c09f84,0xc401b12,0x3a115300,0x605940b1,0xfe394400,0x5440b4,0xf2ef01f4,0x568240ab,0x722cbfd6,0x801fc095,0x12040b6,0x1b12e044,0xf300b440,0xa10c7c0e,0x2ba51640,0xd68a87c0,0x96a850c0,0x4edf7640,0xd7ec1ac0,0x87bcdcc0,0xf02c40,0x80245b53,0xd85c40,0x86371344,0xa2012040,0x401a830e,0xc0a25760,0x90851b,0xf2015c04,0x43eed027,0x99bf3440,0xd68a3bc0,0x96a63bc0,0x4ee42a40,0xd7ec7040,0xa10d11c0,0x2ba34840,0xd68a8540,0x17188fc0,0xa5512b40,0xd51dcdc0,0xb13a19c0,0xc88aca40,0x5bc06201,0xa9ce40ad,0x1ff201bc,0x401b2181,0x409583bc,0xc096a93b,0x40755d31,0x4075d7fe,0xc095ecec,0x401b2589,0xc095a3c2,0xc0966a27,0x401b12e0,0xc0955ddb,0x18c84e4,0xc3000c04,0xc03c9d9d,0xc0a562a2,0xc0d62f8e,0xc0440264,0x4cd6b815,0xc0102,0xcb4f88f2,0xdc0a40bb,0x1e77bf96,0x4ca5c0d5,0x111b40be,0x46fdbfa0,0x6dc8c109,0x9db240bb,0x4743bf83,0xf5f5c109,0x29f40a8,0xa7f0405d,0x5914c0d7,0xcac9409f,0xb7b94051,0x79c0c0d6,0x458d40b0,0xa1754079,0xfcb9c0d7,0xf36b407f,0x4af74081,0x4231c0d7,0xea6c4083,0x86f04066,0xfeefc0d7,0xb5a6408c,0xabf34054,0xa3e8c0d7,0x54d44098,0x51b14090,0x478dc0d8,0xa0ec408b,0x51b1408a,0x1e4c0d8,0x2a394089,0x51b14070,0xe7e8c0d8,0xbe2b40a4,0xf100246a,0x40978b03,0x405f565c,0xc0d851b1,0x40a72d95,0xc87eae2,0x5f04f100,0xb6408c8a,0x7c4066f4,0x44c0dd1e,0x4740887b,0xc85c8,0x9cd93871,0x60bbd840,0x3371000c,0x8740a7b4,0xc746f,0xa4e7e471,0x8aa0f140,0x10f1000c,0x409da713,0x408c19fa,0xc0dd1f95,0x40a3798b,0x4072db62,0xc0dd1efb,0x40954b71,0x2490692d,0x7c04f100,0xad409064,0x68408add,0x18c0dd1f,0xf1408f97,0x306b7f,0x72110f1,0x7028408b,0x1ede4080,0xa8d0c0dd,0x5dfb40a4,0x1ec34083,0xd0dc0dd,0x88a9409b,0xf3001866,0x901bbd4e,0x842b4740,0x2925840,0x942264c1,0x70ea8140,0x28ffc40,0x9e1104c1,0x740d6b40,0x28fde40,0xa006f9c1,0x82203840,0x28f6640,0xb0df40c1,0x8f1abd40,0x28f36c0,0xa8f914c1,0x96022c40,0x28f3bc0,0xef758ec1,0x45f0993f,0x28f3e40,0x8cd9c9c1,0x431db040,0x18eec0,0xf0912df4,0x8f3ec045,0xa5c8c102,0x5493408c,0x8f994043,0xa9ccc102,0xd641c0ad,0x8f35c08e,0x581c102,0x1ba03f08,0x8f3a4066,0xd736c102,0xe120c0a5,0x8f3bc095,0xeaf7c102,0x54bfe1,0x771f06f3,0x1db0c089,0x8fe3c043,0x9bdcc102,0x8b2abf63,0x243e405d,0x600400,0x639bdc71,0x5d8b26bf,0x6df4006c,0x3f080581,0xc0661b9b,0xc1028f37,0xc0ad7c95,0x408f1ac1,0xc1028f37,0xc0894318,0x4043548b,0xc1028fd5,0x409afbd9,0x4087ce29,0xc1028f96,0x40b10c74,0x408ed643,0xc1028f35,0xc0a68a91,0xc0962d13,0xc1094779,0xc0ae0306,0xc08e0343,0xc109478e,0xc0adc702,0x408f6684,0xc1094783,0xc0bb116f,0xc096a275,0xc1094790,0xc0baea0a,0xbfa01177,0xc10946fe,0xc0a50300,0x2f30540,0xc0b80b1e,0xbf839dc3,0xc1094753,0xc0b868a7,0x4402b83c,0x40be7419,0xac93003c,0x8240b129,0x83c08f66,0xfff3057c,0x9668de3b,0x94789c0,0xb0f7c0c1,0x8fa9ed40,0x9478440,0x91dbd3c1,0x9810c9c0,0xd81f8a40,0x82037bc0,0x908cf6c0,0xd6b70940,0x82f328c0,0x90e399c0,0xd86c7840,0x883899c0,0x567681c0,0xd6b72640,0x7fa9a0c0,0x66fb7ac0,0xd8395440,0x88f9a9c0,0x9542f4c0,0xd82de6c0,0x7ffcbdc0,0x8caec7c0,0xd7ad54c0,0x78c5f8c0,0x80054fc0,0xd854bdc0,0x845745c0,0x5b09fac0,0xd84231c0,0x7ddc59c0,0x6ac632c0,0xd6b83fc0,0x8955acc0,0x8bd81fc0,0xd85e59c0,0x93fe26c0,0x64c647c0,0xd84b1fc0,0x8ef0c5c0,0x826579c0,0xd7c7ebc0,0x9404c5c0,0x6ec80cc0,0xd7c255c0,0x8a4728c0,0x3a3e21c0,0xa145e40,0x8a3dc5c1,0x3a84a9c0,0xa145ec0,0x6a3433c1,0x2d360dc0,0xa145640,0xe944ccc1,0x44b867bf,0xa1459c0,0x71b125c1,0x34866ac0,0xa144cc0,0x6a3522c1,0x2d34b5c0,0xa145cc0,0x163f70c1,0x2c37bdc0,0x8a3b3c0,0x79e729c1,0x1db2d9c0,0xa145c40,0x7b8434c1,0x1ed152c0,0xa133bc0,0x7fd667c1,0x316ea8c0,0xa1419c0,0x810625c1,0x26bf1ac0,0xa141a40,0x87b937c1,0x435a25c0,0x6c7ac0,0x44b86f53,0x545940,0x37c177f2,0xa3b3402c,0xbea1c108,0xaab0c077,0x13924036,0xb934c10a,0x5a2dc087,0x147a4043,0xdd55c10a,0xf195c079,0x28dec01d,0xcc7dc108,0x2e02c078,0x27c1c036,0xcbd1c108,0x1102c080,0x28cec027,0xbb62c108,0x53dfc06a,0x28ddc02d,0x4e59c108,0xaf9f406b,0x28d73e69,0x7ea6c108,0x8f264055,0x28dabfbf,0x9b80c108,0x2ff54058,0x7f7abfb5,0xe7c0d3,0x88984069,0x7d653ef7,0x8909c0d3,0xae92c064,0x2f30030,0xc0623b92,0xbef787cf,0xc0d37d65,0xc04eb93d,0xf4003c7a,0x31f8b125,0x10248dc0,0xd381c5c0,0xa23572c0,0x57672cbf,0xd394eac0,0x5df98c0,0x64bf383f,0xd3be96c0,0xf6cf6cc0,0x44b8673f,0xa1459c0,0x1d04c9c1,0xf2012c40,0xd9ae14b,0x398bc140,0xd3951ac0,0x4777c4c0,0xd9ee03c0,0x8287c3f,0x80cbd3c1,0x271141c0,0x828cb40,0x78cc1dc1,0x362e2cc0,0x827f440,0x6a95b8c1,0x2d41b7c0,0x828df40,0x79d877c1,0x1dfd00c0,0x828dd40,0x51d624c1,0xb53016c0,0xd37f7c3f,0x4e3d32c0,0x48eda640,0xa01f400,0x854038be,0xc5401024,0xc9c0d381,0x50401d04,0xcf6c4401,0x1683ff6,0x5eee07f5,0xd6e43fec,0x84e44046,0xdfb9c0d3,0xbf3c3f05,0xbe944064,0x40c100cc,0xc0d394ea,0xc01ef766,0x24225a0c,0x7810f100,0xc240737b,0x67be5617,0xb9c0d08a,0x61406ec3,0x673f44dd,0x79c0d08a,0xc4405a01,0xcd8eb,0x9ef104f1,0x501a4036,0x8a674020,0x58ac0d0,0x3d684007,0x71000c49,0x3f9ce771,0xc6473de,0x223e7100,0x18ce3e86,0x71000c70,0xbf3752fc,0xc6b610f,0x26917100,0x9ecbbfd2,0x71000c56,0xc01ced63,0xc333c4f,0xdaa97100,0xa2f9c045,0x71000c03,0xc061113c,0x6c9621d9,0x2410f100,0x48c06cb6,0x673e5618,0x61c0d08a,0xe8c067fe,0x67bf44dd,0x21c0d08a,0xccc0533c,0xcd8eb,0xd9b210f1,0x5001c02f,0x8a69c020,0x4042c0d0,0x3d57c000,0x8a67c049,0x5cc0c0d0,0x73d6bf8f,0x71000c64,0xbe1fec14,0xc7018ce,0x68a17100,0x61023f52,0x71000c6b,0x3fdfb0ff,0xc569ecf,0xb2b77100,0x3c4f4023,0x71000c33,0x404ca00a,0xc03a2e8,0xd6807100,0x222d4067,0xf4006c96,0x7059f20,0x493d5340,0xc6f163c0,0x369ef9c0,0x20500d40,0xc6f161c0,0x6cb624c0,0x561805c0,0xc6f161be,0x5a0171c0,0xd8ebd540,0xc6f163bf,0xbf4100cc,0x50c6f161,0xdd723101,0x71001844,0xc045dab2,0x3c03a2e8,0x7804f100,0x8b40737b,0x613e5618,0x4ec0c6f1,0x5cc01ced,0x18333c,0xd2268171,0x569ec7bf,0x3f71000c,0x2bf3753,0xc6b61,0x5c20cd21,0xc0101,0x9ce77171,0x6473d63f,0xbff1000c,0xc0603e42,0xbc6da22f,0xc0ca18f8,0xc051fe97,0xbfa85b5b,0xc0ca1e82,0xc01d7cd0,0xc020df6e,0xc0ca1bbd,0xbfa86ec1,0xc0537d39,0xc0ca2880,0x3d8a0a0f,0xc063a0ec,0xc0ca18f8,0x3fe8caa3,0xc04598ab,0xc0ca18f8,0x4038feca,0xc00b5aa7,0xc0ca2880,0x40664456,0xbf072895,0xc0ca1e82,0x4058c3f0,0x3fa85b4b,0xc0ca1e82,0x4067d680,0x3f96221d,0xc0c6f163,0x404ca00a,0x4003a2ec,0xc0c6f163,0x40244229,0x4020df72,0xc0ca1bbd,0x4023b2c0,0x40333c4b,0xc0c6f163,0x3faf209f,0x4055614a,0xc0ca1e82,0x3fdfb110,0x40569ed4,0xc0c6f161,0x3f52683c,0x406b610f,0xc0c6f161,0x3d8a0a0f,0x4063a0f1,0xc0ca18f8,0x1b0ee70,0x614009f1,0xa0c0c6f1,0x3dbfa86e,0x8040537d,0xd1c0ca28,0xdabf8f5c,0x186473,0x403171,0x493d6cc0,0x4f1000c,0xc01e3a8e,0x40204d27,0xc0ca18f8,0xc02fd9ae,0x18205009,0x2910f100,0xf6c04f05,0x823fb6b7,0x29c0ca1e,0xbcc0533c,0x613fd8eb,0x5dc0c6f1,0x3cc067fe,0xc44de,0x12b21cf1,0x3700c058,0xf5a53f6b,0xcf5fc104,0xeb14c05e,0xf5a5bf0c,0x784fc104,0x88dc035,0xf5a54007,0x6ddfc104,0xc2cebfdc,0x71000c44,0xbea90907,0xc639b2c,0xea707100,0x5ec43fbf,0x71000c51,0x403882bf,0xc0afb7f,0x94af7100,0xeb794065,0x7100540c,0x4058e42a,0x54a52d13,0x4204f100,0x9840240a,0xa5c020a7,0xbfc104f5,0xc03fb581,0xc52ec,0x58a97a71,0x63332f3d,0x2171000c,0xedbfa901,0xc542d,0x31bd6a71,0xafb7ac0,0xf931000c,0xa802468,0x66490bf2,0x7350c104,0x387abfda,0x591abfe1,0x3f1cc104,0x89b93f34,0x6649401b,0x57310048,0xc2106,0x10ed1cf1,0x64fc008,0x6649bfa1,0x40f2c104,0x7393bf9a,0x6649c00b,0xcbb4c104,0x73973fa7,0x7ac4400b,0x270bc104,0xb474c018,0x71002426,0xbf1929bb,0x241b89b5,0x6810f100,0x42401eec,0x493f26b4,0x96c10466,0xbdc01be8,0x14b58637,0x41c10468,0x60400ed6,0x18a106,0x58a97a71,0x2106533d,0x74710030,0x493fea7e,0x18e3b9,0x18270b53,0x3c96c0,0x343efba2,0x1b89b53f,0x90499dc0,0x3c0400,0xa7cbb453,0x908a3f,0xdcf3dc53,0x3c28bf,0xea7e74a2,0xe3b9413f,0xb47ac4bf,0x739b6200,0x499d400b,0x4f620078,0x80bfa106,0x400a836,0x4f100f0,0x3f6f06a3,0x4011bb0e,0xc103d5de,0xbea549b6,0xc1a645a,0xf20ef300,0x423fcacf,0xdebff35e,0xa7c103d5,0x98c00c95,0x8bf6e89,0xf7c103d6,0xdb40135a,0x28f1000c,0xc00c95e6,0x3f6e89db,0xc103d629,0x3edb73f3,0xc01a645a,0xc103d5de,0xbfbd44cc,0x3ff35dab,0xc103d5a8,0x401ebd16,0x3e85dc40,0xc103d5a8,0xbf53f141,0x2411bb06,0x6ffff300,0x3fff7fae,0x3fbedb0e,0xc103d5d1,0x401250ce,0xbea13965,0xc0fc5426,0x40000770,0xbf8ee022,0xc0fcfc48,0x3fb21a93,0xbfe8d163,0xc0fc443b,0x3f21347a,0xc00ac34c,0xc0fcfb5d,0xbe92d235,0xc00ee393,0xc0fc443b,0xbfa929dc,0xbfe5482c,0xc0fc5a9d,0xc002cd75,0xbf5b6cad,0xc0fc3bb4,0xc00b9589,0x3e9693c0,0xc0fc4ed7,0x3ebd7343,0x400f46ae,0xc0fc4a41,0xbf050364,0x400ad018,0xc0fd1221,0xbfa72663,0x3fe75348,0xc0fc4a41,0xbff28427,0x3f8ee02a,0xc0fcfc4e,0x400e3561,0x3f14cc36,0xc0fcd821,0x3fea2e12,0x3fb1d61f,0xc0fc5426,0x3f973e81,0x3ff82fe0,0xc0fce730,0x400c3ab8,0x3aa99b6f,0xc1007ece,0x3ff3e5d2,0x3f88a78b,0xc1007ee4,0x3fc85aff,0x3fc17564,0xc1007f1a,0x3f1ba722,0x40042bc7,0xc1007d5d,0x3d6e1262,0x4005ff9b,0xc10158fe,0xbf8203de,0x3fed353b,0xc100794a,0xbfba94cd,0x3fc1b175,0xc1007efe,0xc000d7e4,0x3f0e0ab7,0xc1007905,0xc0057dd8,0x0,0xc1007d19,0x3f8fb8b2,0xbfed30e0,0xc100776a,0x3d6da017,0xc0065d0b,0xc101409d,0x4007a72f,0xbf0d75c0,0xc1007906,0xbf0054de,0xc0043fff,0xc1007949,0xbf8246f1,0xbfed0e5e,0xc100794d,0xbfbaa5ce,0xbfc1864d,0xc10080e2,0xbfe630c2,0xbf88f0bf,0xa1006cf3,0xbf0e0a96,0xc1007906,0xb45b10,0x19bf31f1,0x4fc1007f,0x69beeab1,0xaf3fd1c5,0x40c103ec,0xfe3fcfde,0x6c3f3c26,0xccc103dc,0xc03d4129,0x2d3fb3eb,0x8ac1040d,0x8a3ee1b0,0xc6bfd157,0x35c10420,0x663d5c9a,0x18bda733,0x300052,0x3c26ddc8,0x3dc6cbf,0xc2538fc1,0x4000cbf,0x91f40048,0xbf9b819d,0x3cd373b0,0xc1040065,0x40717f5f,0x402d5343,0xc10828dd,0x40804877,0x401ddb0a,0xc10828de,0x407d92e2,0xc035da4d,0xc1082861,0x4084832c,0xc0291555,0xc1082889,0x40842e84,0x40271166,0xc10828cd,0x40805a90,0xc01e1898,0xc10828dc,0x407153c1,0xc02d3fbc,0xc10828df,0x407f8ff7,0x40362e9d,0xc10827d0,0x4070e7da,0xc02d9d02,0xc10a1415,0x40808034,0xc01d88ad,0xc10a1415,0x408c5971,0xc0421cfc,0xc10a149d,0x4084533b,0xc02b285b,0xc10a145c,0x408b1be1,0xe0f5093c,0x40787579,0x403485fd,0xc10a144c,0x40834dbc,0x40316f22,0xc10a1419,0x408da9cc,0x403a3e53,0xc10a145e,0x40814acf,0x401f352f,0xc10a1358,0x40804c6c,0xc0352c41,0xc10a1446,0x4070f951,0x402d3465,0xc10a145e,0x4080a407,0xc08751b3,0xc0d846aa,0x409f5904,0xc051cab8,0xc0d6b7b9,0x40aa0384,0xc05ec105,0xc0d83589,0x408bab4b,0xc055cc85,0xc0d83c8a,0x4081dcc4,0xc06c6ffc,0xc0d7faa0,0x3ffa0f4d,0xc04ecf42,0xc0a65d27,0x40408f86,0xc015ceb8,0xc0a57712,0xc067ab15,0xbf3cbe0e,0xc0a68390,0x40669f99,0xbf98d749,0xc0a68390,0xc0253c92,0xc02ab18e,0xc0a66384,0xbfb87d80,0xc05d8cdf,0xc0a56eb3,0x3f08bd23,0xc0955bab,0xc09d077f,0xbce2b064,0xc0703c15,0xc0a66515,0x4023b2b7,0xc0333c53,0xb0a81863,0x18633107,0x750804a8,0xc0493d5c,0x4a81863,0x6320f108,0x56c0a818,0xb7406644,0x423f0728,0x81c0a4eb,0xbc405f04,0xccbf6f3e,0x28c0a4f0,0x72403bb5,0x42c00889,0x41c0a4eb,0xcb3fbd7d,0xc5267,0x1d41fa31,0x26f20720,0xc0a4f0cc,0xbf5dfe43,0xc05bc1a0,0xc0a4ee07,0xbfdb3ff2,0xc04598af,0xc0a4f0cc,0xc032397a,0xc00b5aa7,0xc0a4e143,0xc05f7f06,0xbf072863,0xc0a4eb44,0xf307809b,0xeb443f03,0xda55c0a4,0xd6f5c05f,0x83923f98,0xe8adc0a6,0x6300f508,0x81c0a818,0x39c01cea,0xcc40219d,0x90ca4f0,0x18630cf1,0xf291c0a8,0x67d3bfaf,0xeb424052,0x849dc0a4,0xcf4abfec,0x5d27404e,0x3107b0a6,0x3063a0f1,0xac9fb500,0x3c193e08,0x65154070,0xf5075ca6,0xa4eb4200,0x9ce771c0,0x6473da3f,0xa8186340,0x63b1099c,0xd7c0a818,0xb4036f9,0x540eb4,0x1ef30f1,0xb18e402c,0x6384402a,0x7072c0a6,0xbd98406e,0x83903f3c,0xca32c0a6,0xcebcc039,0x77144015,0x820c0a5,0x8ce73fc6,0x6eb3405d,0x4e33c0a5,0x5badbedb,0x7814095,0x95d9c09d,0xf1068466,0x9b84e408,0x5ed802c0,0x6b36f040,0x9b84e4bf,0x482578c0,0xe3333340,0xe404000c,0xe408f106,0x7fc09b84,0xce3fe9f8,0xe4c044c2,0x98c09b84,0x533f78c1,0xc5b75,0xd1233ec3,0x625b68be,0x9bd85cc0,0x1075cc0,0xf2440018,0x3cc01d44,0x60284400,0x54c041,0x5812b244,0x44006cc0,0xc05fd08d,0xbc040084,0x300707,0x483f17,0x84e44035,0xc010060,0xac587100,0x7558bf5d,0x71000c5b,0x3d58a97a,0xc633333,0xc1984400,0x183f78,0x100b403,0xcc030018,0xc0100,0x100e403,0x2440060,0x78405ed8,0x7b7af300,0xbd409203,0x3c358637,0x4fc08120,0xb2407f5c,0x3840082a,0x6ec0811f,0x734025c0,0x27406ebb,0x9bc08121,0x233f1704,0x9f408df5,0x54c0811e,0x71bfa0ac,0x5c408974,0x7fc0811f,0x24c047c2,0x3c404b25,0x18c0811f,0xd2c087c3,0x5c3fa771,0xd4c0811f,0xe1c08c43,0x99bf0979,0x65c0811e,0x4dc03cfe,0xd5c05732,0x2c08120,0x36bf85ba,0x49c08ad6,0xa4c0811f,0x5b3f6bc3,0xfbc08d06,0xcac0811f,0x404043c3,0x10f10024,0x4087dd68,0x3ff3079e,0xc0811e7c,0x4001c151,0x408672c9,0xc0811e7c,0x409e7eb5,0x18bdb6e5,0x27077100,0xe1993e12,0x710018a3,0x408fa3a1,0xc195600,0x3007100,0xa39a401c,0xf1000c8d,0x153dab04,0x8da398c0,0x811e7cc0,0x8c40f2c0,0x1955fcc0,0x7e71000c,0x73bfed8c,0xc862d,0x7abe04f1,0x785c084,0x1e7cbff3,0xe419c081,0xc2ecc08e,0x71000cbb,0xc09a79b3,0xcbd8ed2,0x3e04f100,0x3cc0a25d,0x7cbe38a4,0xc0c0811e,0xa7bfbbaf,0x3c8e14,0xb4646f71,0x9b8a8bbf,0x4d71000c,0x97bd174c,0xca3e1,0x9ab2f671,0xb9b0e6c0,0x546200a8,0x703fc28f,0x710024fa,0x3fceb2d1,0x248b269e,0x90957100,0x951cc088,0x710024cd,0x400c4841,0x18873ca1,0x7a5b7100,0xa3a5c085,0x7100c008,0xc08d56c9,0xc18e892,0x4b387100,0x81e401c,0x7100248f,0xc00582e8,0x18873ca1,0xdd037100,0xa3904088,0x71001808,0xc01585e4,0x188f081e,0xb9737100,0xe88e4090,0x71001818,0xbfc8d2a2,0x1889e47a,0xf33d7100,0x951c408b,0x7100d8cd,0xbfb324af,0x189b3a5a,0xd1817100,0xaa71409c,0x710018b9,0x40a58660,0xf0a57e89,0x46c77100,0xc2f44092,0x7100a8bb,0x3fcd83ae,0x308c14b4,0xef206200,0x8a893fc1,0x9c03003c,0x2a40c100,0x73c05570,0x924090b9,0xc18e8,0x88dd0371,0x8a39440,0x4f1000c,0x408bf33d,0x3fcd952d,0xc055702a,0x409cd181,0xcb9aa82,0x8660b100,0x7f3040a5,0x702a3ea5,0xf101e055,0xbdb6d400,0x55702abf,0x9246c7c0,0xbbc2ec40,0x5f4000c,0x4088eb5f,0xbfda39b4,0xc055705d,0x40895e01,0xc00b06dd,0x8e31006c,0xc18e8,0x101f803,0x4871000c,0xc54001c1,0xc8672,0xcd839d71,0x8c14b83f,0x2071000c,0x2f3fc1ef,0xc9b8a,0xb504b462,0xcfa78bf,0x2f6a2100,0x1801024c,0x28177100,0x26a0bfc1,0x12000c8b,0x10168ed,0x5c03000c,0xc0101,0x8d56c944,0x710078c0,0xc0857a5b,0x1808a3a1,0x90957100,0x9514c088,0x7100b4cd,0xc09ab2f6,0xcb9b0d5,0x79b37100,0x8edac09a,0x7100f0bd,0xc0a25d3e,0xf038a4c2,0xe4197100,0xc2f4c08e,0x710018bb,0xc0847abe,0xcf3078e,0x40f07100,0x5600c08c,0x71013819,0xc015a62b,0xc8ead9b,0x8ede7100,0xbfcbbff6,0x71000c85,0xbfd4dc77,0xc860deb,0x37727100,0xe207bfb2,0x71000c99,0x3fc28f5c,0xc9bfa78,0x6ff47100,0xe199bd17,0x12000ca3,0x1027ce1,0x7003000c,0xc0102,0x3b6004f1,0x4c27405c,0x7086c03f,0x3693c055,0xf573c068,0xf1001827,0x19effe04,0x76310140,0x55701ec0,0x2e6c01c0,0x62f44dc0,0x1cf10018,0x3f57e7c0,0xc08f2d88,0xc055700d,0x40929c84,0xbeac9eaa,0xc0556ff8,0xbf8361ed,0xc08c5c87,0xc0557050,0x408bda1d,0xcca5bc34,0x3f04f100,0x9bc01ec6,0x26c06fca,0xa8c05570,0xda40518a,0x4849c9,0xfe3b04f1,0x92c5c075,0x7004c015,0x4e83c055,0x3d6f3fb8,0xf1001889,0x8dcc8804,0xc7369c0,0x557043bf,0xa68577c0,0x9012cb3e,0x9e710018,0xadc08aef,0x548aa5,0xa51a10f1,0x3d36c02e,0x61204063,0xdae03db8,0x64e04091,0x67f13e7b,0x97683db8,0x7785c061,0xf100182f,0x88ce2904,0xaca17bc0,0xb861203f,0x8aeecc3d,0xb188b140,0x4f1000c,0xc08e5e1c,0xbe98852b,0x3db85f07,0x40430e28,0x30585a08,0xb8a27100,0x9ee63ff3,0x71000c83,0x3ea7398f,0xc90cd42,0x31947100,0x803bfbe,0xf2000c88,0xffffffff,0x4fa27747,0x4c401840,0x75e41dc0,0x1d07e13d,0x74940840,0xa3e964c0,0x84fbee3d,0xc879ddc0,0xcf123cbf,0x8c20b03d,0xa881ed40,0xb85ceebf,0x6779d53d,0x26621bc0,0xc707e1c0,0x3854193d,0x5b3316c0,0xb861a6c0,0xf1fbb53d,0x823223bf,0xb86013c0,0xe460033d,0x9014a3be,0xb85f8dc0,0x8aa8113d,0x8c7ace3f,0xb861a6c0,0x8da9bd3d,0xe2433540,0xb7a787be,0xa671823d,0x86019f3f,0xb8244fc0,0xdb27893d,0x8c242b3e,0xb7b74140,0x6387163d,0x209891c0,0xb7af6440,0x81aa693d,0xe9b28940,0xb7bfa53f,0xd7f20a3d,0x8066a3bf,0xb81bebc0,0x255f393d,0x66072140,0xb7ab3240,0xe896253d,0x7e8965bf,0xb7af6440,0x88be753d,0x246424c0,0xb81beb3f,0x47a1ba3d,0x443f1040,0x80ef13c0,0xd9ce93d,0x4c93b840,0xa9244a40,0x455bbcbe,0x7292b03f,0xa9fba4c0,0xa7cfa2be,0x69665e3f,0xa9236040,0x2472c9be,0x3b1ca440,0xa9769bc0,0x4fc77abe,0xa7d4a40,0xa95055c0,0x6cad58be,0xa1a34d40,0xa9259abf,0x79a661be,0x8d0c3d40,0xa925ffbe,0x75cff6be,0x3b0b3940,0xa925bb3f,0x3de2a8be,0x21ca3640,0xa924d140,0xb9ffa4be,0x643e18bf,0xa95d2dc0,0x204d83be,0x38d6b6c0,0xa91b82c0,0x35cf46be,0x723348bf,0xa7a50940,0xf32989be,0x559115bf,0xab039f40,0x357410be,0x23b02dc0,0xa91b8240,0x598540be,0xdc8ae7c0,0xa91b823f,0x7206afbe,0x81bcac0,0xa95d4f3f,0x6c5deebe,0x79e93ac0,0xa95d2dbf,0x4a90acbe,0x82cc3c0,0xa91b82c0,0x21bd7bbe,0x35636bc0,0x93403ec0,0x479c78bf,0xa4291c0,0x92a7dfc0,0xf68a93bf,0x5305debf,0x932032c0,0xd0eef2bf,0x746ea4be,0x92591040,0x9a2920bf,0x699ae5bf,0x8613ecc0,0xc843e5bf,0x5f1b09bf,0x92e76840,0x76124bf,0x724c44bf,0x931f92c0,0xacfdb1bf,0x74ee203e,0x92a7dfc0,0x203027bf,0x3736a4c0,0x92a7d640,0x4a08a7bf,0x6a262c0,0x92a7df40,0x71d47cbf,0x5e336ac0,0x92a7df3e,0x6d119dbf,0x48357ac0,0x92a7dfbf,0x609ecfbf,0xd5573640,0x92a7dfbf,0x74b0afbf,0x371a7e40,0x92a7dfbf,0x1c9592bf,0x407ebf40,0x932ee040,0xda551bf,0x4aff1140,0x92a7dfc0,0x3d795fbf,0x204b7f40,0x92a7dfc0,0x4e61bfbf,0xa42a240,0x92a7df40,0x73d6e9bf,0x48362240,0x92a7df3f,0x617d9ebf,0x7014123f,0x9316b940,0xe0de6ebf,0x5d87ec3f,0x87204b40,0x8b3a2ebf,0x24c6b0bf,0x8cd91fc0,0x33cd31bf,0x3c07cc40,0x8d1ac13f,0x2341f2bf,0x88d60ac0,0x8d226c3f,0xc73d32bf,0x1559cdbf,0x8cf08440,0xd59ff5bf,0x3366c33e,0x8d4a23c0,0xb20d35bf,0x32fce3be,0x8d044f40,0x2d07e1bf,0x3c07ddc0,0x8d1ac1bf,0x2a0742bf,0x88d63d40,0x8d2275bf,0xd5d430bf,0x14df763f,0x8cbe94c0,0xcae53fbf,0x180afe3f,0x8d136240,0xf69281bf,0xfd57d6bf,0x8d5172bf,0x1205ffbf,0xf27350bf,0x5e3b8a3b,0xc68c15bd,0xcbea14bf,0x2b48c3bf,0xf6d5d0bf,0x7ff0dbe,0x21df87c0,0xfd32c6bf,0x12caefbb,0x3f8ca83f,0x49a91bd,0x51245bc0,0x2ee98abf,0xd3b00bf,0x29ae4fc0,0x2b9baa3d,0x1bebabf,0x6cbfc2c0,0x2ee98a3f,0xcb4118bf,0xd37cb3bf,0x384c6a3f,0x2f953ebf,0x5a5d5bbf,0x2d477cbf,0xbb6d01be,0xfedd48be,0x976cd3f,0x9d944bbf,0x10e0bd3e,0x2f456bc0,0x8622a3bf,0x8e1fb8bf,0xa516123f,0xd662dcbe,0xc8c6d63f,0x2afd543f,0x85c0c2bf,0x180b243f,0x20ee9bb,0x4aaa9fbe,0x5a5d5b3f,0x2d477cbf,0x14002ebe,0x29af5c40,0x2b9b56bd,0x4ae547bf,0x5856e73f,0x2bc05d3f,0x88402be,0x6cbfd340,0x2ee979bf,0xcdff50bf,0xcceeaf3f,0x27a3a9bf,0x1e8ebcbf,0x9d6599c1,0xa1e5140,0x1acfecc1,0x9d6599c1,0x4b35d40,0x191cf8c1,0x9d6599c1,0xe5b4940,0x1caa3cc1,0x9d6599c1,0xa67b340,0x24bc4cc1,0x1c04f100,0xfbc10670,0x99c11349,0xb6409d65,0x36c10d2d,0xc12e1,0xb628771,0x10ac94c1,0xde71000c,0x5ac10dd2,0xc1173,0x61c210f1,0xb505c10f,0x65b6c10b,0x49a1409d,0x6218c10c,0x6595c107,0xf443409d,0x8deec10a,0xf100240b,0x6e39904,0xff38acc1,0x9d6599c0,0xdeb6740,0xfe1bf3c1,0x3671000c,0xc7c10b2b,0x2405d9,0xeb6704f1,0x28c9c105,0x6575c107,0xce4c409d,0xa693c107,0x62001806,0xc102b834,0x48ee42,0x2b83471,0x3dc9ec1,0xc2710018,0xa3c1031b,0x48f34c,0x9fa6362,0xc7ad1c1,0xa30cf100,0x2bc10368,0xb1c10c17,0x9340b8ea,0xbbc10dcc,0xcec10bf2,0xf540a098,0x840dea,0xa098ca31,0xc9710084,0x96c10728,0x6cb8ea,0x402d0cf1,0xeab8c104,0xeb6740b8,0x1bf1c105,0xeab8c0fe,0x2b3640b8,0x7f6cc10b,0x3100180b,0x6c06ec01,0xeab87100,0xfa6440b8,0xf1009c09,0xb8eab808,0x4da5640,0xae5d4c1,0xb8eaadc1,0xbc16140,0x3e42bc1,0x17620030,0x94c1032a,0x31003095,0x1403518c,0xeab33101,0xf50114b8,0x6a69300,0xaff4f5c1,0x3850140,0xbee42c1,0xa8b1000c,0xcac0fe52,0x9140a098,0x3c0b46,0xa098caa2,0xa1edc40,0xc65cdc1,0x2204f100,0x51c1035e,0xcac103d6,0x1040a098,0x2dc10322,0xc0440,0x5eb6731,0xca620090,0xdf40a098,0x35000c62,0x60a98e8f,0xc0800,0xa098caa2,0x451ce40,0xc7704c1,0x831df400,0x55c106fa,0xc8c1078b,0x9440a098,0xe5c10b11,0xbdc106fa,0x1840a098,0xb0c107fa,0xd0c10b5b,0xe640a098,0x2ec10bfd,0xd4c25f62,0x5d405319,0x100ac25f,0x6a02f31a,0x6dc25cce,0x78c0963c,0xdec10947,0x2ac232e0,0xf51b30,0xc25ceec8,0xc0957530,0xc1028f35,0x3c30317d,0x366c4400,0x1cd4c230,0xc9da24f5,0x62a2c253,0x2f8ec0a5,0x4342c0d6,0x6504c25f,0xb815c0a5,0x4b4c0d6,0x533dc251,0x1dd0c0a5,0x8dafc0d5,0x4e0cc23e,0x1dd6c0a5,0x5068c0d5,0x53002430,0xc2308696,0xf21d281a,0x30924803,0x839dc3c2,0x94753bf,0x31d8bac1,0xd88937c2,0x6e01f41e,0xecc233de,0x87c02ba4,0xfcc0d68a,0x6cc2312f,0xbe08f41e,0x61c231d8,0x6b3fb78b,0x60c0d51e,0x4dc233de,0x87402ba3,0x60d68a,0xb8154035,0xc010090,0xae01f400,0x43c25104,0xd240a553,0xa8c0d51d,0x4c23e8d,0x5ded4420,0x1ff8c23e,0x5dbaee53,0x5459c2,0x5e63b035,0x2f3006c,0xc25d3f24,0x3fc8a904,0xc095eb33,0xc2513bdc,0x441e9c62,0xc25144d8,0x1ff21e9c,0xc25a2d8a,0x404f9bb2,0xc0d84984,0xc2585a8e,0x40706762,0xc095eb48,0xc257930e,0x4081f5e2,0xc0d753d0,0xc2588b46,0xc06c282c,0x486ec6,0x1fec6713,0x5144d871,0xa1b26ec2,0x36530030,0x60c25798,0xda441fec,0xecc25a49,0xbaee621f,0x8aecc25d,0xa440114,0x80c25d12,0x3372211f,0xec0100a8,0x4602441f,0x1fecc251,0x45c218f5,0x83bac251,0xa93bc095,0x7678c096,0x8cd6c25c,0xec633fb8,0x44d8c095,0x5dddc251,0x84e44095,0x4ed2c09f,0x53000c3e,0xc23281a2,0x35005447,0x903e4ed2,0x2af64400,0x1fbcc235,0x37086653,0xc031c2,0xc11302f3,0xbf10c23b,0x8a3d4099,0xfb74c0d6,0xb45ac237,0x391e5300,0xfc6ac237,0x5deda200,0x862bc23e,0x8532c0a2,0x2404006c,0x1401f421,0x34c23bc1,0x3bc099bf,0x39c0d68a,0xc8c2352b,0x5488531f,0x689bc232,0x3a0ff201,0xbdc23160,0xcf370637,0xe8c095ea,0xbcc23e4d,0x3b409583,0x2ec096a9,0x2c238aa,0x441fb0d8,0xc23e4da8,0xd2441fb0,0xb0c23e4e,0x44d8351f,0xf4000c51,0x402f866d,0x4ecf3ec2,0xa65d27c0,0x3bf708c0,0x15cebcc2,0xa57712c0,0x56539ac0,0x7550b9c2,0xa67974bf,0x56c654c0,0x917a89c2,0xa576453e,0x399607c0,0x98d762c2,0xa68390bf,0x5253cac0,0x2ab189c2,0xa66384c0,0x4dc3eac0,0x5d8ce7c2,0xa56eb3c0,0x45dd0cc0,0x955babc2,0x9d077fc0,0x481c56c0,0x703c15c2,0xa66515c0,0x3dc4d4c0,0x333c4fc2,0xa81863c0,0x3b3600c0,0xf1117cc2,0x56de6010,0x50d280c2,0xa80c9ebd,0x500406c0,0x493d47c2,0xa81865c0,0x4c7ae6c0,0x6473d6c2,0xdf4000c,0xc2398b80,0xbed0ab71,0xc0a4eb42,0xc23c44ae,0xc0088972,0xc0a4eb44,0xc2421416,0xb044117c,0x7cc247d8,0x77fa4411,0x117cc24b,0xda0002f3,0x98afc24e,0xf0cec045,0x239ac0a4,0x7c81c253,0xa228f111,0xbec2558b,0xccbf6812,0x2cc0a4f0,0xdfc25608,0x443ed0a9,0xa4c0a4eb,0x62c255fd,0x903f98d7,0x86c0a683,0x79c25414,0xcc3fe53c,0xacc0a4f0,0xe0c2545d,0x112803a2,0x50b51471,0x339742c2,0x19f4111c,0xc251ced6,0x40333c58,0xc0a81865,0xc24f6424,0x404ecf4f,0xc0a65d29,0xc249e678,0x4062e1b5,0xc0a4eb44,0xc2477754,0xfc44117c,0x7cc24286,0x18c65311,0x7cdec243,0x8fa87111,0x3d64c23f,0x44006049,0xc23c9062,0x4f1117c,0xc23d3fe2,0x402ab192,0xc0a66382,0xc23a0808,0x906812be,0x18fa5300,0x88fdc239,0xa401f411,0xa7c2539c,0x124015ce,0xc0c0a577,0x88c241cf,0xb69c4411,0x1188c249,0x3996a231,0xe48403b4,0x80c09b84,0x1cc23a12,0x7da84411,0x1188c23b,0x3dbf5c44,0x44114cc2,0xc240b03c,0xfa441188,0x88c2441c,0xa2464411,0x1188c249,0x4ee37035,0x4e350024,0x3c51d4,0x54160235,0x2a350054,0x6c5581,0x55fd0835,0x2a440084,0x10c25581,0x300311,0x3112801,0x40350048,0x6084e4,0x44000c01,0xc24b76b2,0xd6441170,0x88c247c9,0x1cfa3511,0x3001844,0x300100b4,0xcc0300,0x3000c01,0x600100e4,0x12803500,0xf200783a,0x369b4803,0xa771c9c2,0x811f5c3f,0x360b30c0,0x4078e6c2,0x17825311,0x6410c23b,0x4819f411,0x6fc2428e,0x5c408974,0xbac0811f,0x5dc24b42,0xfb408d06,0xe4c0811f,0x7bc253cf,0xd5405732,0x1ac08120,0xd0c259d4,0x7219f411,0x6bc25789,0x38c0082a,0x5ac0811f,0x26c253aa,0xf7c055c8,0xe4c0811e,0xb6c24c20,0x58c08c14,0xdac08120,0x94c24365,0xc3c45311,0x883cc23b,0x81995311,0xa42dc236,0x65d06210,0xaa82c234,0xee7110d4,0x2ec24201,0x100899e2,0x36e46071,0x8a39cc2,0x9262000c,0xf4c23f5c,0x44109833,0xc2476dda,0x3f211a0,0xc251585e,0xc08f081e,0xc0811e7c,0xc2597d4e,0x10989a80,0x50417c62,0x8890f7c2,0x6a04f111,0x9bc25897,0x7cbffbc7,0x34c0811e,0x3ac23e37,0x548ec1,0x35e8d244,0x621104c2,0xc25b4724,0x11a09980,0x4e1804f1,0x105ec25c,0x1e7cbe81,0x5dcac081,0xc261c259,0x71003cc4,0xc24dffc6,0x6c8c14ba,0xa3244400,0x11a0c24d,0x4825d244,0xf411a0c2,0x5b5bf801,0xbbc32fc2,0x811e7c3f,0x41eb86c0,0x7111a0c2,0xc2595dca,0x18c4c272,0x8a6a4400,0x11acc241,0x58976a71,0xfbc7acc2,0x7c440018,0xacc23f3b,0x88206211,0x55fcc259,0x4c351278,0xe43e3b,0x50952871,0x8877cbc2,0x4a7100c0,0xf4c236d9,0x9009c1,0x35e8d244,0x31194c2,0x24010114,0xbdb26200,0x9648c24e,0x71710138,0x53c2369c,0xccd1b3,0x4db7a671,0x90ec01c2,0xfc710024,0xccc23474,0x18b8b5,0x4da82671,0x9bfa70c2,0x32710018,0x9dc2339d,0x184b13,0x33689a71,0x81d4c2,0x956200a8,0x92c2412c,0x311f41f,0x40c1009c,0xc055702a,0xc2360b8c,0xc195600,0x4537100,0x796c237,0x440f54f3,0xc235b728,0x7471108c,0xdac23444,0x18bd8e,0x33502471,0x80ccbcc2,0x2a5310b0,0xddc23430,0xfc6211a0,0xe5c235a1,0xf111a046,0x36fc6204,0xe1777dc2,0x557058bf,0x36e068c0,0x9ef8dc2,0xf0041110,0x702a3400,0x1008455,0xa710018,0x90c23f16,0xc87bd,0x100a803,0xf071000c,0xc24201,0xc99e2,0x4da82671,0x9bfa76c2,0xd012000c,0xc01024c,0x1140300,0xf3000c01,0x4eb87602,0x871807c2,0x55702ec0,0x50582ec0,0x11ac9dc2,0x1015c03,0xda310024,0x17459aa,0x43008401,0x8cc258af,0x407111ac,0x6dc2593e,0x11a0c5c8,0x5b7b2a71,0xbc6fbdc2,0x3635000c,0xfc5b4f,0x5c2cfe71,0xe0b06cc2,0xb07100fc,0xf6c259f1,0x114bb46,0x58ce8c71,0xdea02cc2,0x4c71000c,0x87c258af,0x15008a3,0x59aada31,0x840702ac,0x180100,0x50b37a71,0x89089ac2,0x7c71000c,0xf1c24ee3,0xc871b,0x4dc11a71,0x9036e5c2,0x2471000c,0x31c24da3,0xc9b8a,0x41fa8562,0xc3a5ec2,0x25dc3100,0xa3034848,0xc055702a,0xc2414d16,0x48e475,0x1028802,0xf4530030,0x94c2595d,0x7271111c,0xe0c24f31,0x18839e,0x571e0071,0x17e04cc2,0x4f1000c,0xc23af440,0xc04d5968,0xc05570b9,0xc2405e06,0x94837fc9,0xc48e7111,0x59f7c253,0xf2002458,0x35db8c04,0x1942b3c2,0x556ffcbf,0x449d8ec0,0x8e06d3c2,0x3f10024,0x94c249f2,0x3fc08f88,0xa4c05570,0xccc2362a,0xfc81f0,0x51ec6453,0x11dca7c2,0x38428471,0x129674c2,0x56440048,0xe8c23ae7,0x24767111,0x203ac23f,0xf100187e,0x575fe404,0x1592cdc2,0x557004c0,0x448948c0,0x8df8f7c2,0x92620018,0x21c259b9,0x7111f474,0xc249f746,0x188f77a7,0xac567100,0xc9c9c254,0x31117c49,0x48506f36,0x6120a200,0xc4a43db8,0x65aac235,0x267111f4,0x78c25751,0x241296,0x36a22853,0x11e8fdc2,0x59542071,0x8a582ec2,0xaa71000c,0x3bc23875,0x2417e0,0x59cbc462,0x841fc2,0xcf1e7112,0x5a08c23b,0xf1001858,0x406d5704,0x834e79c2,0xcada3440,0x448a543d,0x8dcb6ac2,0x7e710018,0x8c249f8,0xc8fc8,0x3e2f8253,0x11f403c2,0x3b05d844,0x53120cc2,0xc2589f7e,0x621200bc,0xc2367bea,0x1200820e,0x56779e53,0x120030c2,0x854619f4,0x32dfc253,0x61a6c05b,0x8fe23db8,0x3214c24f,0x6013c082,0xc8c03db8,0x14a3c249,0x5f8dc090,0xaac03db8,0x1200c243,0x364ac953,0x1200bbc2,0xce8efff4,0x84c23eae,0xf0c06c9a,0x843d96c2,0x2fc2462e,0x31c08b28,0x523db80c,0x22c249c8,0x42408b0b,0xf43db823,0xafc256ca,0xeb400fec,0xce3db81b,0x84c25917,0xeb3f2465,0xb43db81b,0xabc237ca,0xa53fe9b2,0x943db7bf,0x1ec24dbf,0xdec0844e,0xc3db7ae,0x1cc23daa,0x32406607,0xe43db7ab,0xf1c25147,0x64406cbc,0xb23db7af,0x7ac23906,0x81c0118c,0x323d9c3f,0xb8c23f26,0x4a404c93,0x92bea924,0xb0c244ea,0xa4c07292,0x84bea9fb,0x62c242c1,0x60406966,0x48bea923,0xa5c24117,0xa9c05e68,0x89bea79f,0x4ec23b03,0x55c00a7d,0x2abea950,0x2bc23935,0x9abfa1a3,0x9abea925,0xfac23865,0xddbe8d0b,0xbea925,0x18c238a3,0x9a3f3b0b,0x2cbea925,0x96c239e9,0x573fd7eb,0xd4bea925,0x21c23c21,0xf24021ca,0xfcbea924,0x18c24dcf,0x2dc0643e,0xdcbea95d,0x91c25204,0xa4c038d6,0x3cbea91b,0x4cc24ad7,0x2b407233,0xd6bea7a5,0x21c24eaa,0x64405ccd,0xcebeaa06,0x39c25493,0x82400a29,0x62bea91b,0x5dc25660,0xc53fa0fd,0xe2bea91b,0x9ac25745,0x4f3cda05,0xacbea95d,0x7dc2566c,0x82bf9c76,0xebea91b,0x84c254a9,0x82c0082c,0xc8bea91b,0xbac25128,0xb7c04365,0xc8bf92d3,0x96c25479,0xdfc00a42,0xdebf92a7,0xa4c249a1,0x1040746e,0xd8bf9259,0x45c24cb9,0xdec068ba,0x1ebf9273,0x15c24e42,0x68405f1b,0x4bf92e7,0xc246a6,0x6e32f312,0x86c25408,0x4240133b,0xb6bf92d1,0x72c256de,0xdf3f3719,0xb8bf92a7,0x6cc25718,0xdfbe91e9,0xa8bf92a7,0x60c25647,0xcebfa205,0x14bf92a7,0x2ec239f6,0xd6bfd557,0xf5bf92a7,0x6dc238b4,0xa8441200,0xc23e36,0x3e02f312,0x54c23ff1,0x52c05438,0x6bbf9244,0x88c23c28,0x4f11200,0xc23b19e4,0x400a4291,0xbf92a7d6,0xc2394c02,0x6ca204e2,0xf455f400,0xdac2387a,0xdf3e91e7,0xabf92a7,0x12c2447a,0xb9407014,0xdbf9316,0xf0c240f9,0x53405d87,0xd2bf8720,0xb0c24c59,0x1fc024c6,0x2dbf8cd9,0xccc23cc3,0xc13f3c07,0x20bf8d1a,0x13c25234,0x6c3f88d6,0xecbf8d22,0xc0c24e39,0x84401559,0xc0bf8cf0,0xc3c24654,0x23c03366,0x1abf8d4a,0xcc24964,0xd07e4412,0x120cc252,0x5f8c02f3,0xd624c23d,0x2275bf88,0x5160bf8d,0xc7ac241,0xce0df412,0x8fc245bb,0xae403136,0xd6bf8cb6,0x3c241a8,0x6240180b,0x94bf8d13,0x18c24fb4,0x4dfff112,0xc24e3462,0xbfcbea03,0xbf2b48e4,0xc249edac,0xc007ff0d,0xbf21df87,0xc24a4818,0x3bf26aec,0xbd5e3a7e,0xc24807ea,0x3f12caef,0xbd3f8ca8,0xc25049aa,0xbf5124af,0xbf2ee9ab,0xc250d3b2,0x3d29ae4f,0xbf2b9bbb,0xc2501bee,0x3f6cc016,0xbf2ee9bc,0xc24e5a0a,0x3fd37c81,0xbf384c59,0xc24abe56,0xbf5a5d9e,0xbe2d47bf,0xc246c4d8,0xc010e0c1,0xbf2f456b,0xc2414cea,0x3fc8c6de,0xbf2afd65,0xc243d1fa,0xbb181beb,0xbe020ee9,0xc244d556,0xbf5a5d4a,0xbe2d477c,0xc23ebffd,0xbd29af5c,0xbf2b9b56,0xc244d46b,0x3f5856d6,0xbe2bc05d,0xc23f77c0,0xbf6cbfd3,0xbf2ee979,0xc2419006,0xbfcceeaf,0xbf27a3a9,0xc232e142,0x405d02a3,0xc0d7a7f0,0xc23414de,0x4051cac9,0xc0d6b7b9,0xc2380035,0x4081f369,0xc0d74af7,0xc23797ba,0x4066ea6c,0xc0d786f0,0xc2366022,0x4054b5a6,0xc0d7abf3,0xc236970e,0x408aa0ea,0xc0d851b1,0xc236f098,0x40746f7a,0xc0d851b1,0xc2345ad8,0x409043f8,0xc0d851b1,0xc2334136,0x406eb863,0xc0d851b1,0xc23512fb,0x405df434,0xc0d851b1,0xc232ffb4,0x4083b2ab,0xc0d851b1,0xc236970f,0x406abe38,0x48dd1e7c,0x1c431300,0xa37f712c,0x2daac234,0x712be05f,0xc2332fb0,0xc709df1,0x30417100,0x1b07c233,0x71000c89,0xc23406a0,0xf86a44b7,0x5692712b,0x692dc235,0x71001890,0xc235910e,0x188c7d13,0xc810f100,0xc2c23576,0xde4066fc,0x2bc0dd1e,0xdbc23684,0x454075df,0xf5c0dd1f,0xc9c2335a,0x187f1f,0x7b8e66f3,0xf38cc236,0x1ea34084,0xecf4c0dd,0x4009c233,0x1f95408a,0xca0ac0dd,0x5f39c235,0x8f9e4075,0xd14dc102,0x17f0c235,0x92584086,0xd044c102,0x96ffc234,0x8f8e406f,0x344c102,0x37dfc234,0x8fa9407a,0x8454c102,0xf099c240,0x8f3e4045,0x6b48c102,0x5493c236,0x8f994043,0xe418c102,0x1ac1c231,0x8f36c08f,0x64c7c102,0x1db0c236,0x30eec043,0x2bbc0400,0x44053c44,0xf52bd4c2,0x5dbf0e0c,0x8d4d4fc2,0x28f3bc0,0x592ee4c1,0x431db0c2,0x28fe3c0,0x4f0f58c1,0xc8930060,0x32c25cee,0x35409575,0x48040018,0xc001f400,0xa0c249b3,0x3740661b,0xc2c1028f,0x4c249b3,0xe0de442c,0x30ccc232,0x443802f3,0x42b9c234,0x8fe44086,0xde72c102,0xf847c231,0x3406f32b,0x55c25dbb,0x3c408d92,0x64c1028f,0x8bc25928,0xd5404354,0x5804009c,0x6208f12c,0x43c25dc0,0x8ec08e03,0x96c10947,0x4ec25dc4,0x8d408dc1,0x12000947,0xf3315004,0x5cd15202,0x962d17c2,0x9477940,0x5f0164c1,0x2e98bbc2,0x5f0d1653,0x119423c2,0x30317d35,0x4c440030,0x34c232f3,0x832f32c,0xefc231e1,0x85408fa9,0xcbc10947,0x84c231da,0x82c08f66,0xefc10947,0xe2c232ef,0x89c0965c,0x7ac10947,0xc9c25a3b,0x8a409810,0x70c0d81f,0xfac25840,0x940908c,0x66c0d6b7,0x95c2585e,0x3df42c10,0xc2590714,0x4056767d,0xc0d6b726,0xc257fa9a,0x4066fb83,0xc0d83954,0xc2591f34,0xc09542f2,0xc0d82de6,0xc257ffcc,0xc08caec3,0xc0d7ad54,0xc2578c60,0xc0800559,0xc0d854bd,0xc2588ae8,0xc05b0a03,0xc0d84231,0xc257ddc6,0x1f42c10,0xc2592ab6,0xc08bd81f,0xc0d85e59,0xc25a7fc6,0x1af32c10,0xc259de1a,0xc0826579,0xc0d7c7eb,0xc25a8098,0xc06ec804,0xc0d7c255,0xc25947b8,0xc03a84cb,0xc10a145e,0xc256a352,0xf42be0b1,0x571b123d,0x34866ac2,0xa144cc0,0x57b844c1,0x1ed146c2,0xa133cc0,0x56a342c1,0x2d3609c2,0xa145640,0x4f4a26c1,0x44b86bc2,0xa1459c0,0x5163f8c1,0x2c37bdc2,0x8a3b3c0,0x579762c1,0x1b6a94c2,0xa145e40,0x57fd66c1,0xf22c04c2,0x58f72807,0x435a25c2,0xa147ac0,0x5812cec1,0x261262c2,0x48132b40,0xb86f4400,0x484044,0x37c122f3,0xa3b3402c,0x7beac108,0xaab0c257,0x13924036,0x45d6c10a,0xba67c259,0x1460403b,0xdcfac10a,0xf0ccc258,0x14684043,0x9dd6c10a,0x1088c257,0xc83ef32c,0xac2578c,0xf4c0362e,0x7ac10827,0xfdc25819,0xcbc02710,0xb6c10828,0xdfc256ab,0xddc02d53,0x1ac10828,0x9fc2394b,0xd73e69af,0x16c10828,0x1dc23aa8,0xdabfbf8f,0xf2c10828,0x55c2396f,0x65bef788,0x20c0d37d,0x81c23c74,0x92622be0,0x4fc25648,0xf30030ae,0x5623ba02,0xf78812c2,0xd37d63be,0x54eb94c0,0x3cacc2,0x1f8c1af3,0x248dc253,0x81c3c010,0xf6a2c0d3,0xd6e4c24e,0x84e4c046,0xab2ac0d3,0xbf38c249,0xbe96c064,0x4985c0d3,0x2c67c240,0xff00f501,0x27c24281,0xeac05767,0xb4c0d394,0x1383e2f,0x197c19f4,0x114dc258,0x28c44027,0x8cc2c108,0x2e1fc257,0x279e4036,0x777ac108,0xee70c254,0x287c3fd9,0xa95cc108,0x2c10c256,0x9d880ff2,0xfd11c257,0x28dc401d,0x1d62c108,0x2ff5c255,0x7f7c3fb5,0x1c2cc0d3,0xed85c23b,0x48a20030,0xfdc23a76,0x7a3fb52f,0x4006c7f,0x8535015c,0x1744049,0x3da43544,0xa22becc2,0xc24281ff,0x4057672c,0xc094ea,0xf32c1c04,0x506d5c0e,0x398bb1c2,0xd3951a40,0x38c849c0,0x561954c2,0xd08a67be,0x3913c5c0,0x2c10d7c2,0x3a5fe853,0x2c109ac2,0x3c9612b5,0x20501ac2,0xd08a6740,0x693510f8,0x1110d08a,0xd08a6784,0x46f3bcc0,0x712c10c2,0xc24add4c,0x306b610b,0x91325300,0x10e0c24e,0x117c042c,0xd08a6735,0x69a211a0,0x14c0d08a,0x60c25611,0xf52c1022,0x56de6014,0x50d068c2,0xd0962fbd,0x55f8f4c0,0x9f06bcc2,0xd0863abf,0x539fb6c0,0x1592c9c2,0xd07d80c0,0x67351278,0x1278d08a,0x8a6708f1,0x9fecc0d0,0x18cec248,0x8a67c070,0xb65ec0d0,0x60fec244,0xf3000c6b,0x41027802,0x569ecfc2,0xd08a69c0,0x3dc4d5c0,0x2c0453c2,0x9312d804,0xc0d08a67,0xc2398298,0xf12c043e,0x3f8fa604,0x493d4fc2,0xc6f163c0,0x3c9610c0,0x20500dc2,0x6262000c,0xe0c256cb,0xb12c0414,0xc23a5fe8,0xbfd8ebb3,0xc0c6f161,0x22703100,0x12000c96,0x410144c6,0xc6f163bf,0xd37100e4,0x61c003a2,0x168c6f1,0x199800f1,0xf1633e56,0xced6c0c6,0x3c5cc251,0x71005433,0xc24e9132,0x24569edc,0xdd4e4400,0x2c04c24a,0x150c012,0x53001801,0xc24318c6,0xb42c04da,0xc256082c,0xbed0a99b,0xf0ca1e82,0xbf07f312,0xc0ca18f8,0xc251d7ce,0xc020df65,0xc0ca1bbf,0xc24d4378,0x222c0431,0x1368bafc,0xca18f871,0x40b9acc0,0xf8b1135c,0x14c0ca18,0xabc23c70,0x240b5a,0x399bbb44,0xb12c04c2,0xc23a73c1,0x3fa85b53,0x14ca1e82,0x21fb3101,0xf22b4496,0x3b36000a,0x3a2f0c2,0xc6f16340,0x3dbbdec0,0x20df72c2,0xca1bbd40,0x150d4c0,0x44001801,0xc24286fc,0x74032c04,0x2ba40101,0x44b65f31,0x61350210,0x1368c6f1,0xca1e8252,0x1b0eec0,0x12002401,0x11440e8,0x8071000c,0x2cc2507f,0x2c10359c,0x50040471,0x493d60c2,0x9c710018,0x1c252fd,0xc2050,0x54f05271,0xb6b841c2,0x4f100a8,0xc25533c4,0x3fd8ebc4,0xc0c6f163,0xc2567fe6,0xc44de7f,0x8810f100,0x4bc25603,0xa53ec41d,0x88c104f5,0x68c25357,0xa5400708,0x70c104f5,0xcec24ee3,0xc44c2,0x49521244,0x712becc2,0xc24200ac,0x18515ec4,0x77d47100,0xfb7fc23c,0x4000c0a,0x14f11284,0xc104f5a5,0xc2399024,0xbec41e9b,0xc104f5a5,0xc23c6698,0xc00bcf18,0xc104f5a5,0xc24253f2,0xc52ecc4,0xc9d64400,0x2becc247,0x4d480a53,0x2bece8c2,0x531bda71,0xafb4cc2,0x68040024,0xa508f113,0x9cc104f5,0x4fc23f12,0x49bfa106,0x3ac10466,0x96c23e11,0xc26b4,0x4a64a8a2,0x1b89b5c2,0x54664940,0x2bf80400,0xd2080ef3,0x7393c24c,0x7ac4c00b,0xd310c104,0x2724c24e,0x4696bfe1,0x810ec104,0x488ac250,0x3c0300,0x49c000f2,0x84c10466,0x8bc23dd6,0x9636eae1,0xf3006046,0x26b4630a,0x47ac43f,0x518272c1,0x26b40fc2,0x451cebf,0x452f04c1,0x6cb9c2,0x51bdec31,0x1b2213f8,0x31007859,0x48210653,0xc1a45300,0x589fc242,0x8272532c,0x4820c251,0x129c4400,0x2c34c23f,0x452f0435,0xcca20078,0x11c2409d,0x173fddc4,0x13009c3f,0x3100249a,0xc042c1a4,0x6649b100,0xac0cc104,0xb928c240,0xf40084e3,0x4ee7a031,0xe3b917c2,0x436803f,0x4443e6c1,0x11bb0ec2,0x3d5de40,0x41a984c1,0xf35d9ac2,0x3d5a8bf,0x50c956c1,0x6e888bc2,0x3d5dabf,0x3eca50c1,0x6e89a9c2,0x3d608bf,0x464918c1,0x712be0c2,0xc2494a94,0x3c1a645a,0x5c85f400,0x22c250c9,0x83f6e89,0xc8c103d6,0xfec24b4f,0xdec011ba,0x50c103d5,0x2bc23edb,0xde3f7cbf,0x26c103d5,0xddc24dea,0xa83ff35d,0x96c103d5,0xf8c23ed5,0x9dbe96e3,0x8ac0fc5a,0x1ac23fff,0x48bf8ee0,0x2cc0fcfc,0x63c2426f,0x3bbfe8d1,0x2ec0fc44,0x4cc2457b,0x5dc00ac3,0xa6c0fcfb,0x93c24925,0x3bc00ee3,0x4ec0fc44,0x56c24d49,0x9dbfe548,0xd6c0fc5a,0xcec2502c,0xb4bf5b6c,0xb8c0fc3b,0x43c250b8,0x263ea139,0x1ac0fc54,0xecc24685,0x460c532b,0xb0d7c243,0x16fff42b,0xc24a140e,0x400ad014,0xc0fd1225,0xc24d3932,0x3fe75372,0xc0fc4a3e,0xc24f9422,0x3f8edff0,0xc0fcfc4a,0xc23f1caa,0x3f14cc36,0xc0fcd821,0xc240ae90,0x3fb1d630,0xc0fc5426,0xc23f3ce8,0x3649539c,0xc10080a8,0xc24060d1,0x3f88a769,0xc1007ee4,0xc241bd28,0x3fc17575,0xc1007f1a,0xc2459164,0x40042bc7,0xc1007d5d,0xc247c47c,0x4005ff9b,0xc10158fe,0xc24c1020,0x3fed3533,0xc100794b,0xc24dd4a6,0x3fc1b18e,0xc1007efc,0xc2500d3c,0x3f0db6a2,0xc1007b12,0xc25057de,0x360637bd,0xc1007d16,0xc247c498,0xc0065d0b,0xc101409d,0xc24a0156,0xc0044003,0xc1007948,0xc24c1238,0xbfed0e67,0xc100794e,0xc24dd530,0xbfc1865d,0xc10080e2,0xc24f3186,0xbf88f0b7,0xc1007ef3,0xc2500d7e,0xbf0e0ab7,0xc1007904,0xc23f858e,0xbf0d75e2,0xc1007907,0xc241bd28,0xbfc17564,0xc1007f18,0xc243823a,0xbfed30e8,0xc1007769,0xc24561d8,0x3fc0d71f,0xc1043598,0xc241810e,0x14f12bec,0xc2474620,0x3e1d08d5,0xc100825d,0xc2463cac,0xbfd157ac,0xc10420ca,0xc243ab24,0xbf3be825,0x3003e382,0xdd0bf200,0x6cbf3c26,0xd4c103dc,0xa7c247ef,0x133dbf20,0x9cc10061,0xfc24e12,0xf1001827,0x4e129c0c,0x3c2742c2,0x3dc6c3f,0x4abe86c1,0xc4690ec2,0x3d5ab3f,0x4d2dc0c1,0x11f41620,0xc1040636,0xc2380700,0x40362e9d,0xc10827dd,0xc2377a30,0x40271162,0xc10828cc,0xc237f6f2,0x56f32c10,0xc238e80a,0x402d5343,0xc10828dd,0xc23826d2,0xc035da49,0xc108283c,0xc2376f9c,0xc0291551,0xc1082871,0xc237f4ae,0xc01e1893,0xc10828dc,0xc238eac4,0xc02d3fbc,0xc10828df,0xc238f183,0xc02d9d02,0xc10a1415,0xc237effa,0xc01d88a4,0xc10a1415,0xc23674d2,0xc0421cfc,0xc10a149d,0xc2377599,0xf42c0452,0x369c840d,0x435a2dc2,0xa147a40,0x3878a8c1,0x3485fdc2,0xa144c40,0x379649c1,0xf42c04c2,0x364ac60d,0x3a3e3ec2,0xa145e40,0x37d6a6c1,0x1f352fc2,0xa135840,0x37f673c1,0x442c04c2,0xc238f06b,0x7f532c04,0xb5c237eb,0x1bf22c04,0xc23414e0,0xc051cab8,0xc0d6b7b9,0xc232bf90,0xc05ec105,0xc0d83589,0xc2368a96,0xc055cc85,0xc0d83c8a,0xc237c468,0x2c047000,0x8e2300f5,0x57a8c180,0xc95c012,0x1b75c10b,0x84000c71,0xc1808e23,0xbfe4b5dd,0xc040018,0xc086a200,0x816fc11c,0x5ba2bfe4,0x71b1000c,0xa2c0123d,0x58c10b5b,0x56c42cc1,0x4000c04,0xb0310024,0x544aad,0xb5ba279,0x5aae80c1,0xdd22000c,0x310048b5,0x6c4aadb0,0x5ba2b100,0xc0b9c10b,0x17c2c191,0x350078de,0xc99c122,0xc0b97100,0x89ac191,0x3500a80f,0xc99c122,0xc1587100,0xb9f3c12c,0x390084a2,0xc1cc086,0xb8523100,0x350018b2,0xc2cc158,0x27206200,0xa4a9c183,0x20620060,0xec18327,0x3900544f,0xc8b2789,0x240400,0xf95a3c04,0x6870d04,0xf8173c1,0x9828f6c1,0x6870dc0,0xa48d86c1,0x2404000c,0x27207100,0x1eb4c19e,0x7100247d,0xc19e2720,0xc5051ec,0x4e403500,0x3500181c,0x181c4e40,0x300400,0xf850135,0x1350030,0x240f85,0x4000c04,0x18f10024,0xc0e8470b,0xc0df6b0e,0xc0177da6,0x40a9b153,0xc0df4706,0xc0188c00,0x40eb7ab3,0xc09ccccf,0xc0134118,0xcdc0da8,0x100cf400,0x8cc01f94,0x4940dce4,0xa04062f7,0x88c12314,0x40dce4,0xf7404000,0xc0fad,0xcc016,0x186011,0xe48c08f1,0x1a8940dc,0x80ac0b5,0xe48cc123,0x58840dc,0xfd8940b5,0x71000c22,0x40b5c001,0x5483373f,0xc1b94400,0x18c062,0x9d2f3682,0x52090740,0x110060c0,0xb1005460,0x40dce48c,0xc0b58f24,0x3082e84b,0xad00f300,0xdec09d16,0x8cc051ad,0xb340ece4,0x606297,0x6740ecd7,0x27406265,0x88c122f0,0x9cece4,0x1000c01,0xc020048,0x9c0400,0x8540ec53,0x78b505,0x8b40ec62,0xa840b51a,0x40ec9100,0x40b579db,0x60828de7,0x13818300,0x8fda409d,0x3cc051,0xa2004801,0x40ece48c,0xc0b5adba,0x24db9f,0x9d22e8a1,0x51a3bac0,0x38ed3bc0,0x45408101,0xadc01568,0x84e850,0x2299a971,0xdd9418c1,0x1571000c,0x80c11c42,0xcedc5,0x1ab2d161,0xcac38c1,0xc015f100,0xc11aae3d,0x41256bac,0x401b85be,0xc11ae12a,0x41258206,0xc01c7ae1,0xc11ae12a,0x411b6926,0xc3db6d0,0x8bf87100,0xae1411b,0xf100243e,0xa954e28,0x43977841,0x1ae12a3f,0x1d4a82c1,0x2bde0d41,0x1ae12abf,0x453fec1,0xb1f36241,0x1ae12abd,0x21f1cec1,0xfc526141,0x1ae12abc,0x14ccd0c1,0x66cfc841,0x6e710024,0xb2410b78,0xc47b8,0x1ef66871,0x8ef7841,0xce710048,0x11411786,0xc611e,0x258206b1,0x1c7aea41,0x22e12a40,0xba71009c,0x2ac01b85,0x9022e1,0x3db6d431,0xf8710018,0xd9411b8b,0x183e0a,0x9ae3c71,0x38827b41,0x14f16594,0x4104d214,0x3dc6e19c,0xc122e12a,0x411ccfe4,0xbf38827b,0xc122e12a,0x40ea9c0d,0xc0400000,0x9c22bf99,0x7a00f100,0x2a3cfc54,0x12c122e1,0xe8410feb,0x246532,0xc38404f1,0xd4564106,0xe12abef8,0x9314c122,0x32f84116,0x71005465,0x411e8baa,0xc11a155,0xdbd72100,0x81f10150,0x1d350ec0,0xd02cccc1,0x7293fbc1,0x39423940,0xd81428c0,0x8c1c71c1,0x3942cc40,0xebcbd4c0,0x98c6bdc1,0x395ffec0,0xe2ff10c0,0x987f09c1,0x3985a540,0xd78b56c0,0x8b22c4c1,0x393feac0,0xcfb5bdc0,0x6fa722c1,0x394146c0,0xc9412ac0,0x3b36ebc1,0x39423ec0,0xc48c90c0,0xf7f855c1,0x3942ccbf,0xc161fcc0,0x70521c1,0x395ffabf,0xc4cafac0,0x42a6c1,0x393fea40,0xc99ec5c0,0x3eef67c1,0x39414240,0xfefa8cc0,0x7293eec1,0x10f1003c,0xc1f71330,0xc08c1c6d,0xc03942cc,0xc1ee8c05,0x4096b7bf,0xc039284e,0xc1f79bfe,0x3c8b22c9,0x719a7100,0xa722c1ff,0xf1003c6f,0x2f31728,0x3b36dfc2,0x39423e40,0x54d63c0,0xf7f85dc2,0x3942cc3f,0x6e2adc0,0x70532c2,0x395ffa3f,0x69722c0,0x68a16ac2,0x393e3abf,0x52e2dc0,0x42c8c2,0x497100c0,0x5fc202c4,0xc03eef,0x10c0fff2,0x70c1fa08,0x68407a3f,0xa6c01eb2,0xaac1ee23,0x2bc08de6,0xa4c01ea2,0xd6c1eb8c,0x99408fd6,0x70c01ed6,0xbc1fac8,0x8ec07696,0xccc01eaf,0x23c2036d,0x68c013a3,0xb0c01eb2,0x8c205c4,0x99befe3e,0x91c01ed6,0x53c2057d,0xcc3f5b05,0x37c01eb6,0x2bc20333,0x8e4019a6,0x48c01eaf,0x70c1d51f,0x6cc07a3f,0x83c01eb2,0xdac1e0bb,0xcc408d9d,0xa6c01eb6,0x53c1e343,0xdc08f93,0xe4c01efa,0x7c1d45e,0x8e407696,0xbdc01eaf,0x1ec1c84b,0x684013a3,0xf6c01eb2,0x8ec1c39d,0x993efe3e,0x34c01ed6,0xdec1c42c,0xd0bf5b04,0xeac01eb6,0x2bc1c8c0,0x8ec019a6,0x7c01eaf,0x67c1cbc1,0xe940789e,0xfbc001f3,0x88c1d7bc,0xd4409957,0x5ec001d2,0x8ec1fb9f,0xccc09140,0x54c001d2,0x5bc1f386,0x7840a150,0x9ebfff7e,0x6fc1fb95,0x42409157,0x58c001d1,0xcdc20856,0xd1bf9395,0x2cbfff5a,0x91c1e9bf,0xdd40a6d1,0x81c0009a,0x14c20299,0x79c06be9,0x10c000eb,0xdbc208aa,0xc63e93dd,0xa0c0006a,0x94c1c0ee,0xa5bfff83,0x90c0006b,0x60c23e13,0x16401775,0xdec11f33,0x9cc23d3e,0x1640074d,0xecc11f33,0xb7c25348,0x1640180b,0x6ac11f33,0x87c2544b,0x16400ac0,0x1cc11f33,0x9fc25380,0x16c01256,0xd0c11f33,0xbec25454,0x16c0022e,0xc4c11f33,0x9dc23d3c,0x16c00266,0xb1c11f33,0xdfc23e19,0x16c01232,0x8c11f33,0x60401ec7,0x16401775,0xb9c11f33,0x93402c4f,0x164006c3,0x8dc11f33,0x83c044b6,0x16400ac0,0xc5c11f33,0xb3c0348e,0x1640180b,0xe0c11f33,0xd8c0454c,0xf200482e,0x38861203,0x11f49dc0,0x1f3316c0,0x2bf1b7c1,0x18e82940,0xdbf96200,0x8d4c401d,0x10f10060,0xc23ef82c,0xc0a3d9a7,0xc11a1875,0xc23e368a,0xc0a6a15e,0xc11a1873,0xc23f02a0,0x189c5b98,0x88ae7100,0xc7b4c23d,0xf1000ca2,0x3dce9e10,0x99ea68c2,0x1a1876c0,0x3f2b74c1,0x9e6e59c2,0x1badf7c0,0x3e5e4ac1,0xa6f8cfc2,0x7e71000c,0x1cc23d82,0xca250,0x3ddf8c71,0x999c34c2,0x6762000c,0x9a400fd2,0x62006c13,0x401ace92,0x6ccf29,0xfd60644,0x71006c40,0x4029c272,0x60a04e33,0x3a197100,0x1e88400e,0x62003ca1,0x4016bad8,0x603e96,0x23dbc671,0xa5200e40,0x29710018,0xf940285e,0xc9df8,0x17099162,0x6c1f5c40,0x604f100,0x6a400fd6,0x7640a3a4,0x67c11a18,0x66400fd2,0xc9cec,0x415f04f1,0xcc4dc025,0x18734098,0x6641c11a,0x28bbc032,0x930018a2,0xc02267f1,0x40a69079,0x31009c74,0xc9930d7,0xc2727100,0xb1cd4029,0x4400249f,0x401d9807,0x57710024,0xd8c016b3,0x18a09f,0x29fa04f1,0x5b9ac030,0xadf7409c,0x96f6c11b,0x7e6bc020,0x71000c99,0xc01706a3,0xca0463d,0x82b27100,0xd9b0c02f,0x71000ca3,0xc021a655,0xca6a5f2,0x48c77100,0x91a7400d,0x62000ca1,0x401a1b58,0x3c0731,0x28a6df71,0x9e80aa40,0xae620018,0xa140202b,0xf2003092,0xd3755e04,0xa55f14c1,0x1a187740,0xd323ffc1,0x9c5b9ac1,0xdc6100cc,0x6f8bc1d4,0x71009099,0xc1d63e1c,0xc9e80b0,0x83107100,0xcf29c1fc,0x710024a6,0xc1fd8c04,0xc99ea6a,0x3601f400,0x1ec1d430,0x72c0a709,0xb4c11a18,0x98c1d605,0x12e08201,0x7e69c1d4,0x60c099,0x60fb11,0x187606f3,0x17e2c11a,0xc7b6c1fe,0x187540a2,0x540c11a,0x1c96c1d6,0x238b6202,0x139ac1fb,0xb710168,0xdfc1d58b,0x78a56e,0xd2ec4871,0x9f61d0c1,0x3f20234,0xc1fe618c,0x409fb1cd,0xc11badf7,0xc1fcbc2b,0xe45ea4,0xfb127062,0x38d53fc1,0x31906201,0x74bac1fb,0x2e220120,0xb100b4a6,0xc11badf7,0xc1d5bc5b,0x3c9afdbd,0xe85f7100,0xe065c1d5,0x71000ca4,0xc1d340e0,0xc9b1f9d,0x6ce47100,0x245c1d3,0x62000ca5,0xc1d63505,0x27c06ff,0xd4831062,0x34cf29c1,0x4fa5302,0x941ac1d3,0x6ce47102,0xfdbdc1d3,0x6202349a,0xc1d57dba,0xc3d7f,0x3ef82c62,0xf02659c2,0x6b365300,0xe0dac251,0x4c7101,0xc16ec252,0x71017499,0xc252ea98,0xe49b6115,0x2a04400,0x264c23f,0x5302a053,0x27068c2,0x52268053,0x24c77c2,0x3d88ae71,0x9d384cc2,0x9e620138,0x98c23dce,0x62026415,0xc2532436,0x114b9c3,0x52408871,0x98cc4dc2,0x6a5300c0,0x37c25170,0x16710234,0xb3c25254,0x18a733,0x3ecb2a62,0x8463dc2,0xb686201,0x2ac3c23f,0x862012c,0x13c23daa,0x71010861,0xc23d88af,0x30a2c7bb,0x368a6200,0xa160c23e,0x55c40144,0x2a41a06c,0xd2408463,0xcc0be2c,0x9e08f100,0x9dc0aaf9,0xe641a0b9,0xa0405522,0xcfc0aaf9,0x5141a0aa,0x245886,0x9f8904f1,0xccee41af,0x93b83f4c,0xde31c0a9,0x8ab541a8,0xf100243c,0xadd5830c,0x49dd7f41,0xaaf9a03f,0x727242c0,0x59999a41,0xaaf99ec0,0x2da576c0,0xc020060,0x186d1500,0xb7a9300,0xa1064145,0x24a0c059,0x36703100,0x71003095,0x41700bda,0x18833331,0x6a587100,0xe74153,0x35000c6e,0x2454d8a9,0x29907100,0x8b50413d,0x3500187c,0x308f3923,0x6c553500,0x35006086,0x18853923,0xd8a93500,0x3500187c,0xc8e05ef,0x2100fc00,0xcd41a939,0x9ebf4ccc,0x55c0aaf9,0x18906c,0xf99e3f85,0x3921c0aa,0x35001893,0xc80d2bb,0x9f893500,0x35000c95,0x6c7f3f12,0x5ef3500,0x35001884,0xb43cd8a9,0xd41b7100,0x2ae041a4,0xf1012c39,0xabc71904,0x346c6641,0xaaf9a0bf,0xaed145c0,0x583cb041,0x5535000c,0x48946c,0xb2d2bb35,0xd193003c,0x3341abdb,0xa53f32f9,0x50040018,0x1f0f7101,0x231441ac,0x35005455,0x68ac6c55,0x9ab17101,0xab0841a8,0x7101b03b,0x41abfb49,0xc527236,0xd09eb500,0xd4244153,0x2cd2c070,0x350060be,0x5cbe2cd2,0x2cd2b101,0xcc3c0be,0xf02441a4,0x400303a,0xd231006c,0x1c8be2c,0x4002404,0xd2b101d4,0xcac0be2c,0xbd413dba,0x547418,0x47b01671,0x58b29e41,0xfc04000c,0x2580200,0x71009c02,0xc0be2cd2,0xe4959f89,0xa9ac3100,0x4015c9e,0x5531000c,0x138946c,0x9ea9ac75,0x906c55c0,0xef350024,0xc8e05,0x8f392337,0x86150024,0xef350018,0xc8405,0x85392335,0xbb350024,0x1880d2,0x7cd8a935,0x1235000c,0x247f3f,0x72724235,0x76350018,0xc6da5,0x700bda35,0x4f20024,0x41ae8c51,0xbf55b824,0xc0a56200,0x41ac6c57,0xc2e77c4,0x4c07f100,0xb85641aa,0x61febf55,0x3921c0a5,0xc89341a9,0xfa07bf12,0x71000ca4,0xbec77553,0xc9a3fe6,0x3d57100,0x56eb3ef6,0xf1000c9b,0xcccbc0c,0xa561fe3f,0xaa53b3c0,0x54e37a41,0xa561f63f,0xacfd35c0,0x32f47b41,0x4f10018,0x41af9f89,0x3f12c8a3,0xc0a4fa07,0x41af9f89,0x600cccbc,0x9f89b100,0x3b441af,0x56e9bef6,0xf500189b,0xc775530c,0x9a3fe83e,0x53d0aac0,0x70d46741,0xb657c3c0,0xb2d2bbc0,0x53333341,0xcf1000c,0x402cccd1,0xc0b78af6,0x41a73e7b,0x4036e6b8,0xc0b657c3,0x41a2bd73,0x184260b3,0x39c0400,0xb657c335,0x2f301e0,0xc0b78af6,0x413d732c,0xc076ca3e,0xc0b657c1,0x310378ac,0x60b78af6,0xc0400,0x585608f5,0x55ef4141,0xdebec063,0x75cec0b7,0xba284149,0xc867c059,0xb10444b7,0xc0b78af6,0x41a09f29,0x6c599ec7,0xcac1300,0x8af6c403,0x1f13c0b7,0x235741ac,0xb44055,0x4003004,0xf67102c4,0x67c0b78a,0xccbdae,0xeb9210f1,0xb501c0b6,0xccd141be,0xcf4f402c,0xe7a9c0b8,0x332f41c7,0x3791c053,0x5c1fc111,0x710018c8,0xc1102fc7,0x18cb5bd9,0x49107100,0x90fc102,0x710018cb,0xc101b17e,0xcca929f,0xdff87100,0x9221c0e5,0x710054ca,0xc0e284ab,0x18c622c5,0x93d97100,0xb2edc0c6,0x710018c5,0xc0c50e00,0x18c20c4f,0x937c7100,0xbc11c11b,0x710054c1,0xc11d6672,0x18bf2245,0x56487100,0xfbcbc12a,0xf20018be,0x2822f103,0xbeb403c1,0x5e147f41,0x4210c640,0x2400cfc1,0xc0400,0x40000477,0x4a10c640,0xc020024,0x47100,0x6cef4040,0x7100305d,0xc053332f,0x244210c6,0x3d713100,0x84000c82,0x41bf00cf,0xc0666662,0x18020030,0x3c0200,0x666662a2,0x5d6cefc0,0x486735c1,0x10c63100,0x4000c4a,0x35220078,0x4009c67,0x4804000c,0xfb9b2200,0xdd6200cc,0x7fc11ab4,0x710030a9,0xc127f6e6,0xd8c7780d,0x5c246200,0x26e1c110,0x8f1000c,0xc0cec357,0x41a66c55,0x4037fcad,0xc0b8be29,0x41abb533,0xc4c5a81,0x2340400,0xbe270cf1,0x110ac0b8,0x3439413d,0xbe27c080,0x6a6cc0b8,0x1474153,0xbe29c06e,0x310228b8,0x18533333,0x378b3100,0x71015cc4,0xc0c459d1,0x38c8b3a7,0xc426201,0xcf69c10d,0xdf7101e0,0x37c0b962,0x18cacf,0xfef97962,0xc4847c0,0x410cf100,0x82c0e67e,0xb64165d7,0x65c08c68,0x7cc0a7c8,0xf8415570,0x4bc08af1,0x18a7c8,0x559e3431,0x47350018,0xc5569,0xa33e00f5,0xd1014150,0xc86dc0a0,0x534fc0a7,0xf1003c9c,0xb535cf10,0xa02e3041,0xa798f6c0,0xb6406bc0,0x930e8f41,0xa7ba95c0,0x42e688c0,0xa2814941,0xb6710048,0xee41290a,0xc9e6b,0x419f1893,0x9b13a941,0x482cc0,0xa4d602b5,0xa7c865bf,0xb69d1dc0,0x1593000c,0xb8413c3c,0x5ec0893f,0x8404003c,0x63547100,0xf61d414e,0x35003c9c,0x9c3c480e,0xc587f200,0x2441b0ab,0xd2c0b6fd,0xf3c0be2c,0x2141aa65,0x28c0c29d,0xb1c0be2a,0xe041b533,0xcdc09eda,0xafc0be2e,0xa341a993,0xc0c385,0x89bfdd71,0x2c41b645,0xefc0948c,0xd3bfdd70,0xe041b146,0x93c0b5ad,0x9bbfdd70,0xbb41982c,0xe7c0c397,0xbbbfdd70,0x534195f4,0x4fc0c295,0x8bc06f90,0x5a4182b1,0xd8c1012b,0xc7c0be2e,0xb94185da,0xb4c0e6f0,0xac0be2e,0x704177b1,0x6dc0c6b3,0x46c0be2e,0x40416249,0xcbc0d018,0x38c0be2e,0x7415272,0xf20078d0,0x8a58b933,0xfc244f41,0xbe2ee0c0,0x7f237ec0,0xaf91d141,0xbe2e9bc0,0x105192c0,0x1300f741,0xbe2edac0,0x18bfaec0,0xd8d75a41,0xbe2f0abf,0x28d8a9c0,0xd1b72041,0xbe2ecdbf,0x95ed1fc0,0x54b58f41,0x931ff200,0x52418ab8,0x7bc0bc8e,0x43c0be2e,0x7418a63,0xa7c0d809,0xb6c0be2e,0x9a417e36,0x82c0e317,0xc5c0be2e,0x1f419c18,0xc3c0c4e9,0x400482e,0x30f50084,0x41113660,0xc09c152f,0xc0be2f06,0x4178515e,0xc0fa07c8,0xc0be2ed3,0x411d5bec,0xc0b96018,0xc0be2ed5,0x41855bb7,0xc0abba4b,0xc0be2ea5,0x41295444,0xc0c40e95,0xc0be1ec7,0x483f3f1c,0xbc389100,0xc8f14155,0x60c7c0c4,0x486af900,0xa641ff41,0xbe2e8ec0,0x1c1fd6c0,0xcddcad41,0x6f8f9bbf,0x1476c5c0,0xeeac1941,0xddabe2bf,0xfee18bf,0x13711d41,0xddb4a2c0,0x21adc0bf,0xb9532e41,0xdd717ebf,0x24c168bf,0x8fb08141,0x6f9143bf,0x25ed38c0,0x6356fc41,0xdd7119bf,0x3ca5f6bf,0x87f83c41,0x6f90cdc0,0x40c254c0,0x98b6df41,0x6f9021c0,0x3cb34cc0,0x53f13d41,0x6f90c9c0,0x2975f4c0,0x14f5000c,0xbfcccccd,0xc06f90c9,0x414ced96,0xc09d32a7,0xc06f900c,0x4154fdb0,0xc08bed20,0xc06f90bc,0x3054fe08,0xfe36f300,0x2a414a32,0xdec00536,0x9fc06f90,0xb94159ea,0xd6c035a5,0x78c06f90,0x42414085,0xd1bf7e5b,0xf0c06f90,0x25411c16,0x9f3fcde6,0x16c06f8f,0x4412488,0x2e3f9237,0x70c06f91,0x5d413df8,0xde3e8e70,0x2f30084,0x3fcccccd,0xc06f90c9,0x41440418,0x3fc0616b,0xf50018d6,0x53f13d14,0x6f90c940,0x523c50c0,0x24217541,0x6f90f740,0x8ad867c0,0xf5b7d41,0x6f9119c0,0x9c1dafc0,0x31710090,0x9d41805f,0x84414c,0x5dd31ff5,0xb4964190,0x90cdbf86,0xd806c06f,0x84884165,0x90d14046,0xe819c06f,0x539c4191,0x90da3749,0x775bc06f,0x5fa24185,0x90e2402f,0x6c010048,0x104f100,0xd6418edb,0x193fc8a9,0x42c06f91,0x5a416d11,0xe44b81,0x7dfa0cf5,0xeb4f4177,0x90d64049,0x98ec06f,0xd6064166,0x61fec054,0x3a49c091,0x75000c9c,0x4166098e,0x188c049d,0xc0800,0xa345a644,0x710030bf,0x3fa345a6,0xfc9161fe,0x9e345303,0x8654055,0xd602b504,0xc8653fa4,0x6b2dc0a7,0x350030a5,0xcb1d3e3,0x87c77100,0x7c1341a5,0x3501a4a1,0xcb1b749,0xb6233c00,0x10024b6,0x24030150,0xc0100,0x1041403,0x30030060,0x840100,0x1006003,0x7803000c,0xc0100,0x442f93f2,0x989a41b6,0xbcd34067,0xa3f9c0a7,0x65d441b4,0xb83b4085,0xedadc0a7,0x160e41b2,0xc9f9408f,0xe82fc0a7,0x15d541ae,0x2ce2409c,0xa797c0be,0x5db741aa,0x2c2640a3,0xc975c0be,0x206f41b0,0x15404099,0xfe3fc079,0x87641b2,0x2eb0408e,0xed7fc0be,0xdaf041b5,0x70a44077,0xcf1fbfdd,0x561941a9,0x710040a4,0x319bbfdd,0x31fd41b0,0x70f84099,0xfdb4bfdd,0x64b411e,0xb0a3c0bc,0x1f20bfdd,0xbe74115,0x7100c0a9,0xf208bfdd,0xe6974156,0x7260405f,0x4649bfdd,0x6f004129,0xfff30480,0x102c0e93,0x90d93841,0xdd7109c0,0x493a2ebf,0xa4083541,0xdd70ce40,0x6e579abf,0x778f7541,0xdd76ab40,0x66313abf,0xbac9b641,0xdd70b5c0,0x5e24eebf,0xc397be41,0xdd70f8c0,0x955edfbf,0xaa202e41,0xdd7311bf,0x975e45bf,0x2043a241,0xdd76ab3e,0x6d11babf,0xa20a0b41,0xdd712ac0,0x452b6cbf,0x2eb4ee41,0xdd7343c0,0x56f20abf,0x5fe67541,0xdd72acc0,0x36a252bf,0xab018e41,0xdd77afbf,0x946923bf,0xcf34c641,0xdd72d63f,0x8d6b57bf,0x36222141,0xdd772140,0x6bdfc2bf,0x7646d041,0xdd72efc0,0x830e55bf,0x67945b41,0xdd730840,0x78178abf,0x8f650841,0xdd713bc0,0x33470bbf,0x9f1e6d41,0xdd738e3e,0x2603ccbf,0x5dda9d41,0xdd71193f,0x1214febf,0x4551a441,0xdd70ef40,0x162fa6bf,0xe53d8641,0xddba0a3f,0x21b556bf,0xb8fd7641,0xdd716d3f,0x10447cbf,0xf951841,0xdd6e1640,0x831c79bf,0x68d9e441,0xdd7660c0,0x839f89bf,0x87cc0641,0xdd7100c0,0x38df04bf,0xcf354c41,0xdd722e3f,0x9426e1bf,0xba2f8141,0xdd7072c0,0x1b1188bf,0x755e6c41,0xdd70df40,0x8cdb7fbf,0x928e4541,0xdd71a8c0,0x8f30b3bf,0x27f8a141,0xdd74e6c0,0x270db3bf,0x86d1e341,0xdd710040,0x452b5cbf,0x2eb51841,0xdd72a440,0x39f128bf,0x8d5ead41,0xdd716d40,0x10a464bf,0xab6d041,0xbe298040,0xf3b48c0,0x23eae241,0x6f910440,0x1a93ccc0,0xd5a47b41,0x540da3f,0xd1b720b5,0xbe2ecd3f,0x290ab6c0,0xa98402f4,0xc64128d8,0x18408dfc,0x98af3100,0xf1030c8d,0xac08bf1c,0x48f6a541,0xa7c81140,0xa1d017c0,0x4154ce41,0xa7c83f40,0xad00e7c0,0x70f91241,0xa7c85e40,0xa6a645c0,0x32cda341,0x1cf10018,0x419fad4d,0x4066f6e0,0xc0a7c838,0x41a17e35,0x4086d433,0xc0a7c843,0x41a56601,0x408eb53b,0xc0a7c85c,0x41aa664b,0x548ad4a2,0x99fff500,0x416226d2,0x40ae6bcf,0xc0be2ec3,0x4131566a,0x40ac2ee4,0xc0be2e5e,0x416f0cb6,0x40a54fb1,0xc0be2ec9,0x4110694c,0x40d744fa,0xc0be2f57,0x413ad7ea,0x40d31d6b,0xc0be2ea3,0x413b9ad2,0x40f9147d,0xc0be2ed3,0x412f552c,0x41011197,0xc0be2ed8,0x41264bf8,0x41006496,0xc0be2ecb,0x4124e382,0x40aec109,0xc0be2ebe,0x4139dd42,0x40bd463b,0xc0be2ebc,0x41481f56,0x40a48d24,0xc06f90ac,0x4139dbc0,0x408ecf7f,0xc06f90f7,0x4114bf80,0x405d3e53,0xc06f90b4,0x41230d08,0x408643e1,0xc06f9093,0x4136bba6,0x40b56154,0xc06f908a,0x412e055a,0x4101d1d5,0xc06f90de,0x4125196d,0x4100bfe4,0xc06f90c9,0x413acb84,0x40d10c54,0xc06f901d,0x413bc3b8,0x40fa8a67,0xc06f90de,0x410fe02a,0x40d93930,0xc06f91de,0x416262da,0x40afce40,0xc06f90b8,0x412536b2,0x40af91fb,0xc06f90ac,0x416f0342,0x40a66f82,0xc06f942d,0x412e1f6a,0x40ace085,0xc06f90bc,0x41ac5231,0x4053e99f,0xc06f90b4,0x41acca39,0x40749b78,0xc06f9060,0x41a97ff7,0x403aa394,0xc06f9086,0x41a2c7f5,0x403ab220,0xc06f8f47,0x419fdbe5,0x4071ba41,0xc06f9000,0x41a41c41,0x408d5d66,0xc06f8fe7,0x41a9e115,0x408a9410,0xc06f90ac,0x4190b441,0xc0a44dd3,0xc06f90da,0x41839f89,0xc088aa39,0xc06f90fb,0x4176d822,0xc09209f4,0xc06f90de,0x416d159e,0xc0a44dd7,0xc06f90da,0x188bd2ff,0x10fff200,0x416294b0,0xc0c29551,0xc06f904f,0x4155c2f4,0xc0c5da71,0xc06f94f7,0x411732fc,0xc0b03144,0xc06f9164,0x4161f818,0xc0d14ea7,0xc06f90c9,0x4184517d,0xc0e76fbd,0xc06f904b,0x4185d219,0xc101c03b,0xc06f9100,0x4185c367,0xc0ad75d8,0xc06f909b,0x417ac38a,0xc0ba0c50,0xc06f9097,0x4178d217,0xc0ccb52b,0xc06f90b4,0x418c43bb,0xc0f7f675,0xc06f90d1,0x418a1c65,0xc0bbc15f,0xc06f9097,0x41966e65,0xc0d0bc92,0xc06f90c9,0x418a6e37,0xc0d61c3d,0xc06f9011,0x419ca3a7,0xc0c5c209,0xc06f945b,0x41810187,0xc0ae8931,0xc06f90bc,0x417c813a,0xc0ddb08c,0xc06f9093,0x417928d2,0xc0fcf7f0,0xc06f90fb,0x418207f9,0x403df60a,0xc01e0260,0x4192230b,0x3649539c,0xc01dedb3,0x41706dba,0x404d7cbf,0xc01e2dae,0x416e3082,0xc04deb10,0xc01e32df,0x418207f7,0xc03df588,0xc01e02c1,0x419001d9,0x3f9ff267,0xc01e0264,0x418a7027,0xc0127b20,0xc2e12,0xfffffff4,0xffffffff,0xab82ffff,0xb240127b,0xdbc01e2d,0x30419001,0xc1bf9ff1,0xc0c01e02,0xc4413ee3,0x943f32b1,0xf8c01e2e,0x12413de3,0x68be81fa,0x7cc01e25,0x75415cda,0x60403cac,0x36c01e02,0x5241415b,0xc5bf99b9,0x8c01e02,0xa1414fb0,0xfb401b9d,0x96c01e24,0x20414ad5,0x45c00961,0xc6c01e2a,0x6b41455f,0x3f3fd8d7,0x6cc01e00,0xed4158da,0x64c0350e,0x90c01e03,0xc1c7c8,0xd0413abf,0x6bc1ac7d,0xaec1bc08,0x544133ba,0x3cc1b157,0x46c24ceb,0xa0411440,0xa6c1bd02,0x64c24c2c,0xa64121ab,0x7ec1b964,0x98c1ccd7,0x7e413cc7,0x38c1aac9,0x9bc1d19d,0xc041415f,0x4cc1a648,0xe4c247ca,0xd8413d53,0xbdc1aa4a,0x76c1d430,0xf641472e,0xedc19e9b,0xa8c0b973,0xac412127,0x23c1b9c6,0x63c121aa,0x44410883,0x9fc1bf12,0xacc1156b,0x44411392,0xcbc1bd63,0x4ac0be01,0x9c413a62,0xd2c1acc4,0x24170d8,0x3640e000,0xf6c1c013,0xa9417d6f,0x3c4125e8,0xd6c1b7e7,0xb04170d8,0x1a414737,0xbac19e70,0xd6416b04,0x8a413efe,0x7ec1a8c2,0xed4170d9,0x44413019,0xcfc1b368,0xa2406aa3,0xae411129,0x41c1bdd3,0x974017d4,0x34411d70,0x1c1baf4,0x60c1065b,0xb4414738,0x3bc19e70,0x68c0b154,0x8241401a,0x7bc1a79d,0x6840d303,0x5a411ad6,0xe8c1bbc4,0xee40c833,0x3e411296,0xfec1bd91,0xc8404e26,0x2e412a23,0x18c1b66e,0x41c10ee1,0xbc413f2a,0x17c1a89b,0xa9c107dc,0xba41440c,0xa0c1a319,0x3dc11c8b,0x4413abd,0xa9c1ac79,0x46418bd3,0x96c0e86e,0xcbc1c009,0x6141840e,0x82c145db,0x59c19e71,0x7b4170da,0xe6c13f3f,0x11c1a872,0x334187af,0x6c4144de,0xfdc19e71,0xe41869f,0xb8c105b9,0xd6c1bf08,0x434170d6,0x80c11647,0x79c1bcc6,0x5d4188ef,0x1ec11b6a,0x66c1ba78,0x994170d8,0x7ac12629,0x1c1b7f3,0x99418af8,0x82c12e7b,0x9ec1b21d,0x39417fe9,0xa8c13789,0x17c1aea3,0xf0418c51,0x18c13b19,0x51c1a86d,0x91419e13,0x96c1386f,0xafc19e71,0x87418f7b,0xa0c141cd,0x23c19e71,0xe941afcd,0x96c0a429,0x65c1befc,0x4241a096,0x84c0dd2f,0x89c1bf0c,0xb0419f54,0xe0c12ebc,0x55c1a86f,0x2c41abd7,0x98c12aa0,0x9dc19e71,0xca41b0a4,0x6cc11abc,0xebc1a872,0xe441b844,0x98c118e9,0x89c19e71,0xf841bb99,0x82bfe48c,0xabc1bf12,0xed41bf7f,0x9ec0fff3,0x61c1a874,0x5741c451,0x98c10106,0x85c19e71,0x2141cb3f,0x62c0bf3f,0x35c1a876,0x1741d4f4,0x98c09382,0xbc19e71,0x4841cd53,0x98c0d060,0xdbc19e71,0xb541bb9b,0xb03fe4a3,0xbbc1bf11,0xff41d360,0xa0c06c5d,0x3c1a877,0xa941d984,0x98c031fa,0x5dc19e71,0x6f41d788,0x4cbf9fd3,0xafc1a878,0x1541dbe2,0x98bf2cad,0x9dc19e71,0xa441aff9,0x640a18d,0xf1c1bf11,0xe941d787,0x5e3fa010,0x71c1a878,0x5e41d7f0,0x98406213,0x65c19e71,0xb241db5a,0x983fb9b8,0x79c19e71,0x5341d35f,0xd6406c7b,0xf9c1a877,0x8941d278,0x9840aa4f,0xbc19e71,0x9e41a094,0xea40dd34,0x7bc1bf0c,0x6641cb3d,0xb840bf4c,0xd9c1a876,0xeb41c9ef,0x9840e500,0xfdc19e71,0xd6418d9d,0xb6410375,0xf1c1bef9,0x3041bf7c,0x1440ffff,0x47c1a875,0x4241b57e,0x26411dab,0xdbc19e72,0xe441c025,0x98410a3a,0x51c19e71,0x2941b0a1,0xf8411ac1,0xb3c1a872,0xe141a64c,0x904130d3,0x29c19e71,0x174188ec,0xac411b6b,0xcfc1ba78,0x95419f50,0x7e412ebf,0xcfc1a870,0x88419699,0xb0413dda,0x1bc19e71,0x36418c4d,0xc4413b1b,0x41c1a86d,0x24195c7,0x4cc0d967,0xc5c1bfe5,0xae419436,0xb4c0f9c5,0x55c1bf0a,0xda418f46,0x48c10cb5,0x97c1bd43,0x2a4198ba,0x6cc11125,0x7c1ba7a,0x6b419291,0xb4c120ef,0x2bc1b6b0,0xd4419cb3,0x18c122f3,0xafc1b220,0xf9419d66,0x5ac1001f,0x15c1bd45,0x5841a71c,0x8ac10088,0xe1c1ba7c,0xf1419517,0x8ac13071,0x2bc1ad67,0x6f41a2b9,0x12c1128a,0x55c1b6b3,0x3c41acd8,0x78c1104d,0x1dc1b222,0xbb41a9e9,0x34c0dbe1,0x11c1bd47,0x7a41b373,0x5ec0d49b,0xa7c1ba7e,0xd241a6ce,0x22c120a9,0xe9c1ad6a,0x7041b107,0x2ec0fb7c,0xe5c1b6b5,0xe641bab2,0x86c0eeb0,0xb3c1b224,0xe441b441,0xbec0ade7,0x87c1bd48,0xff41bd35,0xd4c09edb,0x63c1ba7f,0x7a41b67e,0x72c109dc,0x33c1ad6c,0xd641bcdd,0xf2c0c6e6,0xe3c1b6b6,0x4b41c5a7,0x2ac0b259,0xb3c1b226,0x6d41bbfc,0xe8c070a9,0x47c1bd49,0x441c3f6,0xdcc04457,0x9fc1ba80,0xfb41c377,0x62c0da11,0xa9c1ad6e,0x4941c5b4,0x48c089a0,0xbbc1b6b8,0x5041cd3c,0x52c05c6d,0xa7c1b227,0x1141c0c3,0xa6bff5fe,0xc7c1bd4a,0x8741c769,0x6cbf84c3,0x39c1ba81,0xa241cd29,0xd8c096e3,0x63c1ad6f,0x7e41cb2b,0x22c00cac,0xa1c1b6b9,0x9941d11c,0xf4bf950c,0x1bc1b227,0x3f41c261,0xf03a32c8,0x6dc1bd4a,0xf541c769,0x7a3f84f3,0xc3c1ba81,0xd641d326,0xc8c01a3a,0x45c1ad70,0x8741cd04,0x763a52c3,0x3bc1b6b9,0x9a41d11c,0x43f9544,0xffc1b228,0xa641c0c2,0xc23ff629,0x3bc1bd4a,0xd41c3f5,0xa40446e,0x37c1ba81,0x8641d52d,0x243a6d3d,0xa3c1ad71,0x3241cb2a,0x42400cc6,0x8fc1b6b9,0xf941cd3b,0x84405c87,0x6bc1b227,0x9841bbfb,0x204070bd,0xd5c1bd4a,0x5e41bd33,0x1c409ee6,0xf1c1ba80,0xc941d325,0xea401a57,0x31c1ad70,0x3641c5b3,0x864089ac,0xfdc1b6b8,0x5841c5a5,0x7c40b265,0xd9c1b226,0xa641b43f,0xc40adf0,0xcfc1bd49,0x2d41b370,0xbe40d4a4,0x9fc1ba7e,0x1741cd27,0x1c4096f1,0x13c1ad70,0x4141bcdb,0x4c40c6f1,0x5bc1b6b7,0x1541bab0,0xf240eebb,0xc5c1b224,0xba41a9e6,0x9840dbe8,0x57c1bd47,0xa541a719,0xfe41008b,0x4dc1ba7c,0xc941c375,0xc440da1d,0x3bc1ad6e,0xd541b105,0xa040fb84,0x41c1b6b5,0x2441acd5,0xfc411051,0xf3c1b222,0x67419d63,0xd0410022,0x7fc1bd45,0x3d4198b7,0xf0411127,0x73c1ba7a,0x4641b67b,0xf04109e1,0xdc1ad6c,0x6a41a2b6,0x9841128d,0xb1c1b6b3,0x5b419caf,0xae4122f6,0x57c1b220,0x14418f43,0xc8410cb7,0x39c1bd43,0x4741a6cb,0xb44120ad,0x99c1ad6a,0x541928d,0x464120f1,0x49c1b6b1,0x9e418af4,0x20412e7c,0x1fc1b21e,0xe5419514,0x2a413073,0x91c1ad68,0x5141820c,0x9a413748,0xb6c1ae4f,0xbac24d33,0x8ac10431,0xc0c1bf52,0x98c24ad8,0xe4c11419,0x34c1bd29,0x2cc247ca,0xb6c13017,0x5ac1b369,0x7ac247ca,0x4c13d51,0xaac1aa4d,0x77c254f4,0x4ec1409f,0x66c19e48,0xd2c254fb,0x5ec10d73,0x92c1bca7,0x2ec24e34,0xbcc13757,0x20c1adf2,0xe6c24efd,0xb0c14557,0x5ac19e5f,0xdac254fb,0x9cc0e912,0xf6c1bfdd,0x59c254fa,0x84c11c4c,0x4c1b879,0xf8c24e41,0x56c13fea,0xacc1a5fc,0x39c254fb,0x5cc12a64,0xd6c1b23c,0x82c24c73,0xc0c12051,0x8ac1b9d6,0xabc25471,0x8c1046f,0x38c1be76,0xdfc254f7,0x16c135f3,0xec1aa5a,0xcc24df2,0x10c1298d,0x59c1b5d8,0x66407cf7,0x6cbf22a0,0xa5c1c014,0xce4095cd,0x6cbf9c54,0x78c1c014,0x45409d60,0xfe3fa049,0xa0c1c012,0x9740b1fd,0x6c3f9371,0xffc1c014,0xa940c4e6,0x6c3f22a0,0x53c1c014,0xbd40c9b1,0x6c358637,0x20c1c014,0x2ac254fb,0x7040ec61,0xe7c1bfc5,0x5d407335,0x6c3e28e2,0xa5c1c014,0x92c222f2,0xf4bf7b25,0x24c1c015,0x8fc2246e,0x6cbef61b,0x4fc1c014,0xe4c22090,0x78bf9f4a,0x5bc1c014,0xbb40824e,0x6c3f4a43,0x9ac1c014,0xf0c224cc,0xa23e2919,0x53c1c015,0x71408db1,0x6c3f8a90,0x8dc1c014,0x29c21df8,0x7cbf965b,0x35c1c014,0xbbc223b6,0x723f4a43,0x54c1c014,0xb4c2219b,0xd43f9658,0xd9c1c00e,0x5740c45d,0x6cbf2ccc,0x9dc1c014,0x2140b03b,0x6cbf965b,0x5cc1c014,0xedc21f03,0x423f9f4a,0x46c1c014,0x36c21b74,0x6cbf2ccc,0x26c1c014,0x9cc21ac7,0x83e29bf,0xe2c1c016,0x59c21c31,0x8a3f65fd,0x8c1c014,0xf7c254fd,0x28c07f77,0x8c1a9ae,0xfcc254fd,0xacc0e0c8,0x8c1a47c,0xe1c254fd,0x20c08d8d,0xb8c1a4bf,0x43c254fc,0xa4129f7,0x8c1b271,0xa7c254fd,0x324103cb,0x8c1a1e3,0xb4c254fd,0x32c0d868,0x8c1a1e3,0xbac254fd,0xf44104bb,0x8c19dcc,0x85c254fd,0xc2408dc4,0x8c1a4d5,0x40c254fd,0x4640d977,0x8c1a288,0x28c254fd,0x4c05ab7,0x8c1abca,0x4c254fd,0x7440e864,0x8c1a588,0x60c254fd,0x24c10344,0x9104f100,0x644140e7,0x8c19d3e,0xe8c254fd,0x38406566,0xc92f5,0x3f7d5571,0x80a3c841,0x4a71000c,0x4a40f0e0,0xc98bf,0x172d71,0x9a420641,0x4c71000c,0x72c0fa6e,0xca52d,0x3f7d5344,0x620030c1,0xc0d68890,0x54ccf2,0x8e846c71,0x9b0f70c0,0x4620024,0x34c104b2,0x53001894,0x40d69bfc,0x62000c32,0xc0ed3cde,0x48b0f4,0x534304f1,0x1f6408e,0xfbe0c19b,0x8411c254,0xddb2410c,0x53003cbc,0xc0dfd1ad,0x71007804,0xc0861507,0x1896775a,0x4e746200,0xbf040fc,0xb644003c,0xa8c0ef1f,0xb1cd7100,0x2e0c064,0xf1002493,0x87496b04,0x96dbd240,0x54fad6c1,0x1c03d5c2,0xb893c041,0x4620018,0x94c0ff37,0x7100cc12,0x405b22ff,0x18abbdb8,0xc9024400,0x1840e0,0x543f6bf2,0xfb40407c,0xb5fac1a9,0xcec9c252,0xf6ca413b,0xf320c1a6,0x8b11c254,0xb7364135,0xfd32c1aa,0x5a0ac24e,0x60404145,0x11c2c19e,0x2a8bc24d,0xdb0412e,0x6818c1b4,0x6cb3c254,0xa6d24102,0x8a78c1be,0x3a5bc24e,0x9d6c4136,0xc01ac1ae,0x4da1c24d,0xa64413f,0xfba8c1a7,0xd72cc24e,0x71904137,0xd1f0c19e,0x6c0ac249,0x71984139,0xf9b2c19e,0x999bc1d3,0x4f1000c,0xc1d3fa28,0x413883d1,0xc1940b30,0xc24a31ca,0xc391420,0xbe24f100,0x3bc106ab,0x5e413800,0x15c1a0c4,0x15c11176,0x6e413800,0x4dc1a9be,0x1c10a36,0x94413800,0x10c1a570,0x87c11dfa,0x4a413803,0x89c1ac7a,0x18065a,0xb3204f1,0x3019c194,0xdfbc1c8,0x7bca4138,0xc6dec1ac,0xf50018cc,0xaab5e61c,0xd0f9d8c1,0x37fef7c1,0xa7370e41,0xd3ccd8c1,0x3800d2c1,0xa0f4ae41,0x4a303cc1,0x380001c2,0x8c342841,0x65b48c1,0x28f1009c,0xc24efba8,0xc137d72b,0xc19e7190,0x4180fc55,0xc138cee6,0xc19e7198,0x41d5391b,0x358637bd,0xc19e7198,0x41d46441,0xbfcd44b3,0xc19e7198,0xc249d1f6,0x24396c05,0x5706f300,0xe9418cf3,0x9ac1352f,0x6dc19e71,0x1c41d088,0x98c06c40,0x18f10048,0x4138cee8,0xc19e7198,0x418e6dc7,0x41347de7,0xc19e719c,0x419ea301,0x412954de,0xc19e7196,0x41a946ab,0x241dccdb,0x8bff7100,0xbe0141c9,0x71003cb4,0x41b45911,0x180df3b4,0xf2457100,0x11174199,0x71006c2d,0x41a4f57d,0xc23090c,0x5e957100,0x66441c0,0x710924eb,0x41c9f0d9,0xcb224a9,0xca0f7100,0xfbde41b3,0x7100240e,0x41d0bc7b,0x18666380,0x5e937100,0x66841c0,0xf30060eb,0x3924ffff,0x4941d486,0x903fc14b,0x58c19e71,0xcdc24f02,0xd0c143c9,0x8c16bab,0x15c24efd,0xf8c1375a,0x64c16bad,0xe1c278b4,0xf6bfdbef,0xfcc16bad,0xb5c2795a,0xc8bf898b,0xb4c180a3,0x48c27751,0xcac0686a,0x12c180a3,0xf7c276c1,0xf5c07503,0xbec16bad,0x23c27415,0xcac0b44c,0x8c180a3,0x1dc24efd,0xf641434c,0x16c16bad,0xd1c2735c,0xf5c0ba40,0x98c16bad,0xb9c2555d,0x5f413dec,0x2ac16bae,0xddc26f83,0xccc0eeef,0xccc180a3,0xdbc25ab0,0xc84137ec,0xcac180a3,0x3bc25dc5,0x124130fb,0x6cc16bae,0x28c26ea0,0xf5c0f443,0x5cc16bad,0x8c26297,0xb241277a,0x6ec180a3,0x16c269bd,0xccc1112d,0x34c180a3,0xacc26516,0xd9411f12,0x8cc16bad,0xdfc268b3,0xf5c11360,0x32c16bad,0x7c262f1,0xcec1267f,0xf4c180a3,0xc1c269a5,0xd641118a,0x1ac180a3,0x2dc26b83,0xeb410871,0xcc16bad,0xeac26f4b,0xc840f16b,0x32c180a3,0x8bc261c4,0xf6c12818,0xec16bad,0xccc270fa,0xef40da1b,0x88c16bad,0xfac273f7,0xc840b652,0x14c180a3,0x2c25b53,0xcec136c9,0x58c180a3,0xbcc27525,0xf2409c78,0xf0c16bad,0xebc27745,0xca406b38,0xfcc180a3,0x8ac25a08,0xf7c137a6,0x6cc16bad,0xccc277e3,0xf44033d2,0x6ec16bad,0x39c2791c,0xca3fc526,0x3ac180a3,0x82c27927,0xf43f0c90,0x3cc16bad,0xbdc27630,0xf7358637,0xb4c16bad,0xe6c275bd,0xb3bfd9b2,0x5ec16bb0,0xc27412,0xf7c05dac,0x4ec16bad,0x4dc2717b,0xf2c0a3db,0x1ac16bad,0xe6c26640,0xf2410c48,0x6ec16bad,0x7ac26ca6,0xf640e255,0x32c16bad,0x45c26dea,0xf7c0d38f,0xdcc16bad,0xa0c2694f,0xf1c1009b,0x3cc16bad,0xfac25e66,0xa441225e,0x76c16bad,0x65c27063,0xf740b3b4,0xccc16bad,0x99c2624c,0xfcc11888,0x56c16bad,0x34c27369,0xf6407f0f,0x2ec16bad,0x2fc25584,0xf2413185,0xbec16bad,0x6ec25c58,0xf7c12663,0x3f20018,0xc131852d,0xc16badf4,0xc275bafe,0x3fe45048,0x234b133,0x5a171cf1,0xadf64137,0x71aac16b,0x973ec275,0x47e7c006,0x1b66c159,0xf328c276,0x45e8bf3f,0x1762c169,0xffefc276,0x4790bf3f,0xf3038459,0x3959fe02,0x594791c1,0x506df8c1,0x3679adc2,0x18a6c1,0x5a001af3,0x478f4139,0x62acc159,0x1a49c259,0x47b8c12c,0x31cac159,0x141dc24a,0xb30c139,0x1a92c194,0xd74dc276,0x549f3f3f,0x1100f100,0x903f4000,0xbcc15947,0x7ec275a0,0xce619,0xf4807ef3,0x31adc273,0x47ef4064,0x2dc0c159,0xe6e2c271,0x478540a8,0xd37ac159,0x5101c260,0x47f5c11c,0xb166c159,0x7080c26c,0x477a40e1,0x1f2ec159,0x1f1fc267,0x47824109,0xc4e0c159,0x8466c266,0x4785c10a,0xe0b4c159,0x7b8fc261,0x47904119,0xccbac159,0x81b1c259,0x4818412b,0x3f72c159,0x693cc26b,0x4790c0ef,0xfcb0c159,0x1266c26e,0x4784c0c7,0x6df6c159,0x79b0c250,0x47a44136,0x2b20c159,0x9651c273,0xf0bac085,0x6ea44400,0xfc412e,0x2e6ea431,0x10f10480,0x418347e1,0x4136f668,0xc18c340a,0x4183fec7,0xc136e319,0xc18c340e,0x41abd7e1,0x2418caf5,0x16f7100,0x4b5841b9,0x84000c03,0xc24e96a2,0x40ca818a,0xd031000c,0x182c90,0xcc5be371,0x97899441,0xfd710018,0x1e41c3f7,0xcd2a6,0x94f93171,0x2f1a8d41,0x5b710024,0xc341a16e,0xc24b5,0x5069f271,0xaa29e5c2,0x1d710024,0x5a41d21a,0xc28bd,0xaa7604f1,0xa64ec24e,0x3428c0ca,0x7756c18c,0x6845c250,0x84000ca4,0xc24a303c,0xc12e6ea2,0xff31000c,0xc37ff,0xd4622584,0x80c3141,0x3100903f,0x182c90ce,0xf504f100,0x3041d3ba,0x28bfbfa0,0x97c18c34,0x1f41cff9,0x486467,0xc4d1d371,0xcdae1241,0x3362000c,0x1641cac7,0x71006008,0x41ba11fb,0x3c012a3e,0x15e57100,0x174341ad,0x71000c17,0x41a16e5b,0xc24b5bf,0x66b36200,0x25884196,0x4f10084,0x41d2094d,0x40289dae,0xc1940b32,0x41ccf793,0xc920735,0xaf04f100,0x8c4183dd,0x32c136c2,0xa1c1940b,0x1941c6a4,0x18c1ba,0x94f93b71,0x2f1a8441,0xc1710018,0xf641bfbf,0x18e8ff,0xb1006004,0xc1940b32,0x41bcd83d,0x18f930cd,0xd7e97100,0xcaea41ab,0xf1003018,0xad15dd04,0x17174f41,0x940b3241,0xb90171c1,0x34b5441,0xc5710018,0x19419e4e,0x1827df,0x8e3d3f71,0x32ef9041,0x4f1000c,0x41c3f7ff,0xc0d2a605,0xc1940b32,0x41cc5be3,0xc97898f,0xe93b7100,0x6a6e41d0,0xf1000c49,0xd385b510,0xd77c4641,0x940b32bf,0xd47367c1,0x8263541,0x940b323f,0xd3a49bc1,0x86a6641,0xed710084,0x9b41d040,0xc71e8,0xc4a01f71,0xd47b3741,0x971003c,0x2641d52d,0x30218d,0x58fd04f1,0x1ca541b0,0xb32c114,0x4925c194,0x8eac41a6,0x62000c21,0x41ba1597,0xa8528e,0xe45a8922,0xb32a206,0xf122c194,0x3f9417f,0x4f10738,0xc15045ee,0xc1384042,0xc1940bac,0x418cf353,0xc0352fed,0x75817100,0x6b7f41d4,0x4009ccd,0x32b10708,0x57c1940b,0xf4419d3f,0x242a8e,0xb106b404,0xc1940b32,0x418e6dcd,0x78347de2,0x2df37100,0xe47941b3,0x7100240f,0x41d077e7,0xb46c13db,0x6c00400,0x940b32b1,0xc4a01dc1,0xd47b4441,0x877100d8,0x3a41cb7e,0x24a575,0xcb7e8771,0xa5753e41,0x70040018,0x9014f102,0x68c15947,0xd3c27386,0xc7bf419f,0x46c15947,0xac27136,0x95c0602b,0x10c15947,0x3dc26da5,0xcaf28,0x9b295f4,0x6bfdc268,0x47e8c0ec,0xf086c159,0x1a73c260,0x4794c10f,0x672ac159,0x197ec259,0x4795c120,0x23c2c159,0xd95dc251,0x479fc12a,0x9d1ac159,0xc78dc24e,0x4819c12c,0x6206c169,0xc977c258,0x47a7c121,0xdc8cc169,0xf6c5c25f,0x47a1c111,0x35ac169,0xd21cc265,0x4790c101,0x546c169,0x3fa7c26a,0x4748c0d9,0x400cc169,0x3e6cc26e,0x47a1c0a6,0x88f4c169,0xbbf5c271,0x479dc04f,0x7504c169,0xd9a1c273,0x47b5bf41,0xca24c169,0x4582c267,0x4791c085,0xdc8ac169,0xf6cac25f,0x544111,0xd21e04f1,0x47904101,0x9228c169,0x3068c261,0x479140bf,0x31036c69,0xca46838,0xd8ee7100,0xc7dac260,0xf1000c6c,0x61922804,0x680596c2,0x694791c0,0x665c2ec1,0x721c22c2,0x10f10018,0xc27188f2,0x404fbc38,0xc169479d,0xc273758a,0x3f40edb3,0xc16947b5,0xc25eb80e,0x248a206d,0x683a7100,0xd8bac25e,0x71000c9e,0xc25f60f0,0xcb236d4,0xf204f100,0x9cc267b7,0x90408599,0xbac16947,0xd4c26865,0x189548,0x400e04f1,0x3e59c26e,0x47a140a6,0xed8ac169,0xe99c263,0x71001863,0xc264dfe8,0x846508c8,0xaa767100,0xa650c24e,0xf20018ca,0x58620807,0x21c976c2,0x6947a741,0x4ea360c1,0x2cc31fc2,0xa8481341,0x25243100,0x930030ba,0xc267b7f2,0xc0ad999a,0x31011490,0x3cadedb1,0x5449300,0x3fabc26a,0x6c4840d9,0xabe73100,0x710030c1,0xc26865ba,0xc9dea62,0xdfe87100,0xaecfc264,0x710030c0,0xc260d8ee,0x18bccf48,0x96a27100,0x8186c24e,0x30054ca,0x180104c8,0xb80e7100,0x12c9c25e,0x71000ca9,0xc25e683a,0xc945a79,0x60f07100,0xfc5fc25f,0x84000c80,0xc2738564,0x3f433aef,0x3944024c,0x4c40602b,0x283f3102,0x84000caf,0xc26809b2,0x40ec6bff,0x7592024c,0x94410f1a,0x2cc15947,0x15f1024c,0x59479541,0x511d90c1,0x2adfcfc2,0x5947a641,0x5e6a1cc1,0x905ad9c2,0x80a3c8c0,0x603a62c1,0x746d37c2,0xa071000c,0x11c26337,0xc618b,0x665c2e71,0x721c1dc2,0xba71000c,0xcfc26865,0xc9548,0x67b7f271,0x859998c2,0x2471000c,0xabc267ca,0xcaded,0x64dfe871,0xc0aecdc2,0x2871000c,0x66c26192,0xcbf30,0x5f0dde71,0xaf331ec2,0xe884000c,0xc1c26429,0x5440638d,0xea643100,0x71000c9d,0xc267ca24,0xc854589,0x92287100,0x59fc261,0x2000c68,0xad1101f8,0xde71000c,0x15c25f0d,0xc8400,0x665c2e71,0xba2527c2,0xa071000c,0xabc26337,0xcc26d,0x603a6271,0xb8fc9ac2,0x7071000c,0x3c265e3,0xc6deb,0x5e6a1c71,0xa2d85cc2,0x8f1000c,0xc252fd08,0x405ab731,0xc1abca04,0xc252fd08,0x407f77ff,0xca9ae28,0x8de57100,0xbf20408d,0x42000ca4,0x4064b1d5,0x52910cc0,0x8e846fc2,0x9b0f7040,0xc420018,0xfc408615,0xc252820c,0xc07c5437,0x3cfb40,0x5b22f742,0x820cc0c0,0xc480c252,0xd5c2c08d,0xe0420048,0xd4c06566,0xc252820d,0xc08e533f,0x4801f6,0x87496671,0x96dbd2c0,0x8e710054,0x824104c0,0xca01e,0x3f42b71,0x9ccdd641,0x933000c,0xd08ff37,0x16c25291,0x4a40f2c3,0x1898de,0xe591b671,0x9961ce40,0xcd62000c,0xe040db2b,0x71005479,0x40d67ee9,0x189e70bc,0xc9006200,0x7cac40e0,0xe2420084,0xe040ed3c,0xc252620d,0x40fa6e50,0x52910e34,0xd817afc2,0xa1c16840,0x18710030,0x6241026a,0xca315,0xd67ee744,0x440090c0,0xc0d817ad,0xfe330090,0xdb0e0c8,0xeac25264,0x90c0ed3c,0x6e4a4400,0x90c0fa,0x26a1944,0x710090c1,0xc10510a8,0x549f7fb2,0x2bd04400,0x60c0db,0xf94e4d71,0xa54b44c0,0x620018,0x74c0e864,0xf1000c88,0x20b3218,0xa35338c1,0xc98b09c1,0x27e38f40,0xb33e643e,0xc1c543c1,0x44ea2940,0xb33e643f,0xb03b9dc1,0x965b3a40,0xa571000c,0xe74095cd,0xc9c54,0x8125d971,0x3e305540,0x3e62000c,0xc54073af,0xf1003ce2,0xc5bc4b04,0x19d45240,0xb33e64bf,0xb1fda0c1,0x93718640,0xa871000c,0x73409872,0xc9f2a,0x85688c71,0x62461740,0xdf4000c,0x4078ac9f,0xbef791a3,0xc1b33e64,0xc21aaf54,0xbd2f37fc,0xc1b33e64,0xc21bc758,0x710084,0x84c21ea2,0x6c9f2a,0x21d35f71,0x937197c2,0x3471000c,0x74c2244b,0xc19d4,0x24c50c71,0x27e308c2,0x6a710048,0x1ac21bcd,0x6043c0,0x1e4d6071,0x9c54cec2,0x5471000c,0x7c223cc,0xc44ea,0x219b1e71,0x965b21c2,0xfff5000c,0xffffffff,0x81dddd28,0xcb632441,0x8fc4973f,0x51749cc0,0x8695fb41,0x8fe8f1be,0x68f40ac0,0xfaf87b41,0x8f92883f,0x87c60bc0,0xd32d9041,0x8f65323e,0x5c87e0c0,0xbf1e7e41,0x8fbfd7bf,0x86ab35c0,0x53914f41,0x8fd87dbf,0x55cd22c0,0x82afe641,0x8fc95a3f,0x8104a3c0,0xd112cb41,0x8fe530bf,0x5b169ac0,0xdcc2b541,0x8383e6bf,0x894a59c0,0x915be41,0x83b4873e,0x5f0d40c0,0xf5853841,0x84f2a83f,0x52ded1c0,0x8a53b141,0x81f5de3f,0x87c723c0,0x336d6541,0x561dbd3f,0x4ba3c0c0,0x85b9e941,0x766f3f3e,0x82aa19c0,0xd70b2041,0x8234c6bf,0x7aa3f6c0,0x2180541,0x5b105640,0x627538c0,0xef912e41,0x5861f63f,0x74caeac0,0x8c81141,0x751dd2c0,0x5e2b96c0,0xf43a6d41,0x6635d6bf,0x55baf4c0,0x9e375841,0x4d23dd3f,0x814ec3c0,0xe855e341,0x6458c1bf,0x717a36c0,0x6fea041,0x82ac0440,0x896701c0,0x912fb241,0x61d5febe,0x852f47c0,0xb165e441,0x6fd0a23f,0x85c561c0,0xa9965341,0x5fe1ca3f,0x4e47f6c0,0x9132f841,0x838126bd,0x57fe2cc0,0xb6988941,0x74f851bf,0x59adbec0,0xe1488841,0x68ac4b3f,0x53a204c0,0x88198741,0x5d9ae53f,0x4f4874c0,0x43244241,0x6a8ae33e,0x4ee6aec0,0x86455f41,0x5b88bebd,0x8b20cfc0,0xe7dfe341,0x7de78ebd,0x890c19c0,0x12731d41,0x731740bf,0x82b9c7c0,0xd970d641,0x8097e73f,0x7701dac0,0x3784641,0x6f2e0a40,0x875c69c0,0x77aa0441,0x564930bf,0x5ff56ec0,0xeeedfe41,0x7669593f,0x6fec7ac0,0x58beb41,0x852a63c0,0x526ffec0,0xa06b8b41,0x4f2c52bf,0x70b70ac0,0x5350941,0x5a2b91c0,0x63768ec0,0x3798e41,0x51cd64c0,0x7ae62ec0,0xa9fbe41,0x4ca83fc0,0x872bafc0,0xa5e33b41,0x4a4489bf,0x672522c0,0xe415b41,0x48fd2240,0x4ea0f2c0,0x9845dd41,0x4934b5bb,0x820efbc0,0xf30de141,0x49e0053f,0x8a8797c0,0xdc386d41,0x4c66c73e,0x4db79ec0,0xdb8c7641,0x2c3908be,0x6d9c76c0,0x20f2841,0x278e43c0,0x896f19c0,0xbe9a0b41,0x2c17dbbe,0x531faec0,0x9f54a041,0x2ccb813f,0x507ec0c0,0x84dbbe41,0x345aa73e,0x873e13c0,0x9e24cc41,0x292b133f,0x89bed9c0,0xd8101f41,0x2ac67a3e,0x87154bc0,0x9fbd7341,0x2cc98abf,0x822fb3c0,0xe4f1ed41,0x2b0cc8bf,0x7750eac0,0x95ed941,0x2c8b37c0,0x689c94c0,0x1b18ca41,0x29b068c0,0x5d12f4c0,0xedd3bb41,0x252fdcbf,0x5cbfaac0,0xd729fe41,0x3454fcbf,0x533feec0,0x9f103441,0x2be647bf,0x4e0058c0,0xdf4ff841,0x223bd63e,0x5d52a4c0,0xe5764f41,0x2a65133f,0x6de4e2c0,0xff0d3941,0x2123f23f,0x6a65aec0,0xa390041,0x34450740,0x7734cec0,0x838bd41,0x30a81140,0x823827c0,0xe51a6541,0x28fbe73f,0x784e4ec0,0x8eef5f41,0x24253ebe,0x7838eac0,0x7d1cc141,0x2495533e,0x69eb16c0,0xa164e941,0x245e0bbe,0x708deec0,0xcc32b41,0x240460bf,0x69cb7ec0,0x9d614e41,0x246c443e,0x71c692c0,0xff279a41,0x22d5803e,0x6f1a8ac0,0xffdd6e41,0x8f916bbf,0x84a6cdc0,0x91d52c41,0x84ea85bf,0x57f7d8c0,0x884f6e41,0x84c4203f,0x6b1ca6c0,0xef2b6f41,0x8530b43f,0x5333b6c0,0x13b09241,0x850bf4bf,0x81ccc1c0,0xc1d2af41,0x84cc9f3f,0x6c8fcec0,0xf83bc541,0x84dd3abf,0x87570dc0,0x2f944241,0x850ba63e,0x80ab6dc0,0x5d908e41,0x89691f3f,0x8351f9c0,0x30cc7941,0x886d2bbe,0x6e1cbec0,0x97a0e841,0x8e352b3f,0x7ba826c0,0x8aed2441,0x8c4ba1bf,0x5b35e2c0,0x10647741,0x84651b3f,0x5de9f8c0,0x7a387641,0x8f19d03e,0x6549dcc0,0x99c02b41,0x883dcfbf,0x6fbe2ec0,0x2d70e741,0x8b00373c,0x8e4b69c0,0x16ad4341,0x995c9440,0x60c088c0,0x12b4d041,0x969fdac0,0x7f9af2c0,0x279a3941,0x9ecbcfc0,0x43b1e1c0,0x9c791c41,0x9a77c2bf,0x7fdd2ac0,0x19f1d041,0x969d0240,0x4c261cc0,0x2de22641,0x96a9ac3d,0x8effcbc0,0x9c79e641,0x9a87773f,0x453074c0,0x16fadb41,0x993e03c0,0x8aa6fdc0,0x7e0ac841,0x96a84c3d,0x60e848c0,0x13ef1741,0x969feb40,0x8effe3c0,0x9c7b0341,0x9a8fd2bf,0x83c193c0,0xf2b43141,0x96a6f0bf,0x453832c0,0x16f26f41,0x9a0cbb40,0x8e8b69c0,0x13e64741,0x9a3745c0,0x8bb557c0,0x27da1241,0x96a9acc0,0x963155c0,0xafcc5c41,0xa33374bf,0x956b35c0,0x12fb9841,0x9d5eb540,0x953487c0,0x1ca7f041,0xa50ed6c0,0x956f07c0,0x10563641,0xaa2cbf40,0x8d3923c0,0x25f0b741,0xaa1bbdc0,0x30d8a9c0,0x36666641,0xaa2ecdc0,0x7fa57ac0,0x28000041,0x242ecd40,0xbd40d200,0x12c0aa1b,0xb741473f,0xcc025f0,0x310ff700,0x6cccde41,0xaa2ecdbf,0x986c55c0,0x36666641,0xaa2ecd40,0x622e00c0,0x28888741,0x10018c0,0x3c03000c,0x480100,0x3577faa2,0x28886e41,0x302b7740,0x888b3100,0xf7003c28,0x845affff,0xad413124,0xc53fb04e,0x8c08848,0x2741327b,0x97bf9f85,0x60c0878e,0x8b414858,0xcb403536,0x25c0882e,0xd2418cac,0x50403535,0xcbc0881a,0x1d419846,0x3140353a,0x68c08895,0xa41620c,0x3d4034d7,0x90c086ee,0xec414858,0x41c03534,0xf2c08800,0xb8414738,0x32bfc41f,0xccc08792,0xe9414645,0x533fbbb7,0x66c087af,0x9f416da7,0x35c0373c,0x46c086fc,0x874137e3,0x3c4035db,0x9cc0893f,0xb0414330,0xf13ff2c7,0x77c08c81,0xf1413607,0xc9400611,0x3cc0894c,0xfa413c0c,0x1a400141,0xbac08afd,0x31413e5a,0x773fc2d3,0xcac08b83,0xbd413f59,0x9c3fc1fb,0x54c09cc2,0x15413d9c,0x923ff88e,0x46c09d66,0xae414228,0xdb3fe2b8,0x2ac09d6c,0x6e413742,0x7a401cc0,0x58c09d61,0xa4413337,0x28c00fdf,0xeac0a5e4,0x6841452e,0xf03fa3e6,0xd8c09ab1,0x82416289,0x48403055,0xe9c0544f,0x55418413,0xa14007c0,0xbdc057f5,0x2418bca,0x243f94b7,0x69c056ee,0xbd418fbe,0x21378637,0xe4c086f7,0x544156c8,0x92c00154,0xd7c056eb,0x39414867,0xb0bf18b8,0x92c05770,0x8b417593,0xcdc02fa7,0xe7c05578,0xb14169fa,0x96c017c2,0x3bc0597b,0xc2418d51,0xd8bfa0bd,0xf7c05466,0xbc418d3b,0xc5bfc690,0x33c087ae,0x8e419846,0xa8bfb0c9,0x6bc0880c,0x59418cac,0xaac03535,0x19c0880c,0x3e41901e,0x57c01496,0x6bc0895b,0x90419529,0x3cbffc30,0x38c089bd,0x5e413547,0xe2c02cf2,0x81c08920,0x28418d63,0x3b3fc3b5,0xdc087a8,0x8e41975a,0x743fe7e5,0x43c08907,0x13419346,0x9f3feb65,0xf1c0895a,0xbd4192c0,0xf7403137,0x44c08947,0x6f414078,0x4dc01980,0x46c08990,0x241351f,0x5bbff312,0x40c08932,0x684139f1,0x1fc01277,0x93c08a05,0xc541960e,0x56c02b04,0x5dc0899d,0x7f418629,0xbbbfedbc,0xd3c05845,0x52418bbd,0x13bf0827,0x2ec058f0,0x30414787,0xba3f4612,0xc4c056bd,0x73415cc5,0xdc400a68,0x76c058a1,0x4e417258,0xda401ad2,0x36c058cb,0xccc20ea5,0xee400698,0x36c1932d,0x3fc20ea5,0x674006a9,0x36c19542,0x180ca5,0x180c17,0xabc20e82,0x3404698,0x62003026,0x4046a922,0x303a7d,0x15001806,0xf200180c,0x22a2f507,0x745b25c2,0x93205b40,0x22a2f5c1,0x1ac1b9c2,0xc2b6f40,0xdb0a7100,0x5ea1401a,0xb5001896,0x40747479,0xc196538c,0x24290990,0x9903500,0x35002429,0x48290990,0x9903500,0xf1003029,0xd4173808,0x2fcd03c1,0x935450c0,0xd41738c1,0x2fbb5ac1,0x958fb3c0,0xf362000c,0x45c04fcc,0xb7001858,0xc04fbb49,0xc19593a8,0x30cc1738,0x30cc1700,0x30cc1700,0x30cc1500,0xa000f900,0xc2c1afa8,0x863fe335,0xa0c19330,0xcaba8,0xe3591462,0x246be93f,0xc0600,0x9c1ab82,0x703f466c,0x62003038,0x3f46b2af,0x2473d3,0x15001806,0xf20018af,0xead6707,0x46a911c2,0x93260140,0xead67c1,0x26a91ec2,0xc29f640,0xbac76200,0x655a4026,0xbab70024,0x654046ba,0x67c19561,0x2412ad,0x241217,0x481217,0x301215,0x173800f9,0xe654c184,0x6c0ec0b7,0x1738c193,0x62000c80,0xc0b7dd7d,0x24a772,0x82000c06,0xe645c180,0x73f8c0d7,0x6e620030,0x5cc0d7dd,0x60024af,0x84150018,0x7f20018,0xc223d869,0xc0c4b31a,0xc1936f39,0xc223d869,0xc0d4b312,0xc732e,0xd4aa3d62,0x24ae91c0,0xaa43b700,0xaa9cc0c4,0xd869c195,0x17002427,0x17002427,0x15004827,0xf7003027,0x778a990c,0xc31980c1,0x936ed3c0,0x778a99c1,0xc31145c1,0x95834dc0,0x6f8a99c1,0x6f170018,0x77820018,0xa3198fc1,0x3066e9c0,0x11536200,0x7b63c0a3,0x18060030,0x186f1500,0x7e00f900,0x9ebfc173,0x1640e462,0x7ec19306,0xc8173,0xe46b7462,0x24417940,0xc0600,0xacbf8182,0x40c462,0x6200300e,0x40c46b83,0x244964,0x15001806,0x370018c1,0x1804a536,0xc021903,0xaa546200,0x61674046,0xc060024,0x78021700,0xc2028203,0x4006aa76,0x246951,0x15001806,0xf7001804,0x390b9c0c,0xc97fe5c2,0x937069c0,0x390b9cc1,0xc97710c2,0x95abccc0,0x370b9cc1,0x37170018,0x39820018,0xa97ff3c2,0x30687fc0,0x771f6200,0xa3e2c0a9,0x18060030,0x18371500,0x3600f900,0x27c21ea5,0x49c0acb3,0x36c19369,0xc1ca5,0xacaa5062,0x24a4acc0,0xc0600,0x16c21c82,0x33c0ccb3,0x62003071,0xc0ccaa3f,0x24ac96,0x15001806,0xf700181e,0xd47d9e0c,0xcaf8bac1,0x9370c6c0,0xd47d9ec1,0xcaefe3c1,0x95ac29c0,0xd07d9ec1,0xd0170018,0xd4820018,0xaaf8c8c1,0x3068dcc0,0xeff26200,0xa43fc0aa,0x18060030,0x18d01500,0x1740a00,0x1800017,0x1740019,0x17000c06,0x15018000,0xf016800,0x17070198,0x1900540c,0x6000c0a,0xc170054,0xa17006c,0xa170060,0x700a0060,0x1f80405,0xe40501f4,0xb31ec1d4,0x6d3ec0bc,0x3ecfc193,0xcc207,0xd4e405b1,0xbc95ffc1,0x9ac964c0,0xc080018,0xcb646200,0x34423fa6,0xe2c40030,0x683fa73f,0x5c19a90,0x18c1d4e4,0xe4054400,0x18c1d4,0xd86900f9,0x1993c224,0x64efc09b,0xd869c193,0xb7000c22,0xc09b1158,0xc1957969,0xc24d869,0xc2228200,0xc0bb1985,0x306cd9,0xbb114962,0x248153c0,0x180600,0x182415,0xb9c07f2,0x47d8c214,0x56d8c044,0xb9cc193,0x362fc214,0x923cc044,0xcb620018,0xcdc06447,0xb700185a,0xc0643622,0xc1959631,0x30100b9c,0x30101700,0x30101700,0x30101500,0x3f07f200,0xb03fbead,0xf640e4e5,0x3fc19305,0xec3fbead,0x7040e4ed,0x6200181a,0x40d4e5b8,0x1809eb,0xd4edf4c4,0x951e6540,0x1f569fc1,0x44003040,0x401f569f,0x9f440030,0x30401f56,0x569f4400,0x30401f,0xe40507f2,0xb2adc1d8,0x1e7f4081,0xe405c193,0xbaebc1d8,0x32f84081,0x6b620018,0x74406365,0xb7001822,0x406375e2,0xc19536ee,0x30d0e405,0x30d01700,0x30d01700,0x30d01500,0xd200f900,0x8ec1ddb0,0xaa40c1b2,0xd2c1930e,0xcd9b0,0xc1bac962,0x24232440,0xc0600,0x9ec1d982,0x9540a1b2,0x62003016,0x40a1bada,0x242b0e,0x15001806,0xa0018dd,0x351703d8,0x358203fc,0xa977b8c2,0x247cf8c0,0xc0600,0x4383517,0xa9c23582,0xe2c0c977,0x6002484,0x37150468,0xcf50018,0x41441b4a,0xc00f0878,0xc1935043,0x41441b4a,0xc00eddba,0xc198b6a6,0x18552170,0x21703500,0xa2001855,0x41441b4a,0xbf3680d0,0x304437,0x35d5e562,0x30aa9bbf,0x180400,0x55217035,0x7f20018,0xc04ad66b,0x40801915,0xc1931ee4,0xc04ad66b,0x4060323c,0xc22d9,0x6042af71,0x95375340,0x4fb50018,0x5e408021,0x35c19533,0x24856b,0x856b3535,0x35350024,0x48856b,0x856b3535,0x7f20030,0xc15dc80a,0xc0d54686,0xc1937352,0xc15dc80a,0xc0d53e4b,0x1887cc,0xe5467e62,0x187747c0,0x3e42b700,0x8bc1c0e5,0xc80ac195,0x1700304d,0x1700304d,0x1500304d,0xf200304d,0xf35ee607,0x84cd4bc1,0x931dba40,0xf35ee6c1,0x84d586c1,0x18323440,0x9aa66200,0x21af4069,0x1db70018,0x294069ab,0xe6c19536,0x30eb5e,0x30eb17,0x30eb17,0x30eb15,0x6b2a00f9,0x152b415d,0x4bb0bfd4,0x6b2ac193,0x62000c65,0xbfd3f43c,0x246029,0x82000c06,0xa784165,0x539ac02a,0x1620030,0x14c029fa,0x6002468,0x5d150018,0xaea20018,0xe7c22f0e,0x76bf7f34,0x8097846,0x4ab5000c,0x74bf7eb6,0xaec19746,0xc2f0e,0x290990a2,0x663351c2,0x305b0ac0,0x13a56200,0x5b08c066,0x18040024,0xeae3500,0xf900182f,0xce173800,0x673094c1,0x93376d3f,0xca1738c1,0x71b7000c,0xe73f6772,0x38c1954b,0xcce17,0xb4c1ca82,0x57bdc677,0x6200303f,0xbdc468cb,0x2453d1,0x16001806,0xa10018ce,0x3f504c,0x6be9eac,0xc9341,0x9e1eb471,0x957c6abe,0xbd62000c,0xfcbf4f55,0xb5001844,0xbf4f0f17,0xc195805f,0x30e8261c,0x261c3500,0x350030e8,0x30e8261c,0x261c3500,0xf20030e8,0xedaec607,0xcb197cc1,0x9370cec0,0xedaec6c1,0xdb1976c1,0xc74c3c0,0x11386200,0x893dc0db,0x41b70024,0x48c0cb11,0xc6c19585,0x24f5ae,0x24f517,0x48f517,0x30f515,0xf82800f9,0x2be9c20e,0x728ec0d2,0xf828c193,0x62000c0c,0xc0d223ab,0x248708,0x82000c06,0x2bd8c20c,0x7a78c0f2,0x9c620030,0xf2c0f223,0x600248e,0xe150018,0x94350018,0xae09fa6,0x9ba69439,0xd404000c,0xa694370a,0x15000c9f,0x350ae09b,0xc89ba694,0xa694370a,0x1500189f,0xf200189f,0x5c9e5c07,0xc01e741,0x9342e7bf,0x5c9e5cc1,0xbbb4141,0x187e4abf,0xda6200,0x46dcbf86,0x7fb70018,0x3fbf85dd,0x5cc19582,0x306c9e,0x306c17,0x306c17,0x306c15,0x2e6fb35,0xfb350990,0x97802e6,0x39bed344,0x440990bc,0xbc39bed3,0xfb350990,0x9f002e6,0x2e6fb35,0xd34409d8,0x18bc39be,0xbed34400,0x18bc39,0xe5736144,0x390cf0c1,0xce17361,0x9c00400,0xe5736137,0xe124000c,0x4409a8c1,0xc1e17361,0x613707c8,0x18e573,0x18e515,0xf94a6b35,0x6b390054,0xcf54a,0x35005404,0x60f94a6b,0x4a6b3500,0x390048f5,0x48f54a6b,0x780400,0xf94a6b35,0xf90018,0xc21e3ecf,0xc01fcd0c,0xc1935256,0xc1c3ecf,0xbc946200,0x66cfc01f,0xc060024,0xc21c8200,0xc05fccea,0x305a40,0x5fbc7762,0x246eb9c0,0x180600,0x181e15,0xfdb0d235,0xd23502d0,0x2d0fdb0,0xfdb0d2a2,0xeb196ec1,0x1878b8c0,0x1132a600,0x8d32c0eb,0xb0d2c195,0xd2260300,0x370300b0,0x30f5b0d2,0x30f51500,0x73613500,0x390114ed,0xce97361,0x1200400,0xed736135,0x61350120,0x120e973,0xe9736135,0x61370108,0x18ed73,0x18ed15,0xd7bb07f2,0x3a43c1ac,0x70d6c0cb,0xd7bbc193,0x3a3bc1ac,0x74cbc0db,0x6462000c,0x2ec0db31,0xb70024b0,0xc0cb316c,0xc195ac39,0x24b4d7bb,0x24b41700,0x48b41700,0x30b41500,0x6000c00,0x305f40f,0x17061808,0x1505e8fb,0x3705e8fb,0x18fb5ee6,0x48fb1506,0x9e5ca206,0xcb53415c,0x32483fc6,0xa6620348,0xab3fc6ee,0x6200186d,0x3f86cb75,0x18363d,0x86eec862,0x6071a03f,0x300603,0x306c17,0x306c17,0x306c15,0x67d301f8,0x336ec000,0x5320c026,0xcfa7c193,0xcbfc0,0x2621c462,0x248e83c0,0xc0400,0xc0cfa744,0xa205e8bf,0xbfc0cfa7,0xc06621a3,0x24966e,0x44001804,0xc00067d3,0x69370018,0xa742cd8,0xc2a19,0x170a8006,0x17000c2c,0x150a802a,0x370a682a,0x182cd869,0x182c1500,0x8507f200,0x19c0dcf8,0x33403cff,0x85c19327,0x26c0dcf8,0x28401cff,0x62000c2b,0x401d0f9d,0x243fa2,0x3d0f8cb7,0x953bad40,0xfcf885c1,0xfc170024,0xfc170024,0xfc150048,0x28370030,0x5a006f8,0xc0419,0x17059406,0x17000c06,0x1505a004,0x37058804,0x1806f828,0x18061500,0x5407f200,0xb9c20c2a,0xd1bfc600,0x54c1934a,0x4bc20c2a,0xc6c00300,0x62000c4e,0xc002eea2,0x248a29,0xc5dd66b7,0x958634bf,0x102a54c1,0x10170024,0x10170024,0x10150048,0x7f20030,0xc20fa536,0xc0a17ff8,0xc1936684,0xc20fa536,0xc0b17fef,0xc6a79,0xb1771a62,0x24a5dcc0,0x7723b700,0xa1e7c0a1,0xa536c195,0x17002413,0x17002413,0x15004813,0x37003013,0x54b7a694,0xcb31906,0x6540600,0x660b717,0x648b317,0x648b315,0xb7a69437,0xb7150018,0xf90018,0xc20a1883,0x3fa8685e,0xc1933601,0xc08651c,0x603f200,0x5e3f63f7,0x83c19339,0xd3c20a18,0x863f63f6,0xf2000c37,0x63f74903,0x933b363f,0x20f00c1,0xc4b90a41,0xc4abcbf,0x79bc7100,0x4ababfc4,0x62001897,0xc01d3db0,0x185204,0x1d1e08b5,0x975202c0,0x20c752c1,0x52350030,0x3020c7,0x20c75235,0x52350030,0x3020c7,0xa27608f1,0x33664116,0x551bc036,0xa276c193,0x21bc4116,0x907ec036,0x62000c95,0xc0563355,0x185910,0x5621abb7,0x959473c0,0x26a276c1,0x26170030,0x26170030,0x26150030,0x7f20030,0x4074130e,0xbf32683c,0xc1934417,0x4074130e,0xc006337f,0xc4f2b,0x611ed71,0x978c9ac0,0x4b70018,0x85bf31e2,0xec19781,0x243413,0x243417,0x483417,0x303415,0x5237f635,0xf639045c,0xc5a37,0xc6ec42b7,0x9546c23f,0x5237f6c1,0x5a82000c,0xd971c41,0x303a323f,0xd8f96200,0x4eac3f0d,0x18060024,0x18521500,0x7e13f200,0x5f406ce1,0xe40d3b3,0x7ec1930c,0x29406ce1,0x6c40c618,0xc1930f,0x204051ab,0x9440c618,0x62000c0d,0x40c6182f,0xc1144,0xa2003004,0xc20b9bfe,0x3f43599b,0xc3888,0x9b7803f2,0x4d023f43,0x9bfec195,0xb3bcc20b,0x3c7e3e86,0x54b70018,0xf73e8737,0xfec19550,0x30079b,0x300717,0x300717,0x300715,0xa53600f9,0xc4f2c21c,0x8f640d8,0xa536c193,0x62000c1a,0x40d8cd2d,0x241d70,0x82000c06,0xc500c21a,0x10e040b8,0x3e620030,0x5a40b8cd,0x6002425,0x1c150018,0x7f20018,0xc20ecf32,0xc023003b,0xc19352bb,0xc20ecf32,0xc022efc8,0x186735,0x43002e62,0x1856b0c0,0xefb7b700,0x6b2ac042,0xcf32c195,0x1700300a,0x1700300a,0x1500300a,0xf200300a,0xe1b0d207,0x91b2a7c1,0x931a8a40,0xe1b0d2c1,0x91bae2c1,0x182f0340,0xed00400,0xe1b0d235,0xd2370ea0,0x30d9b0,0x30d917,0xed0d915,0xd9b0d235,0x7f20030,0x4150dbce,0x3fc064ed,0xc19332ad,0x4150dbce,0x3ee7fb26,0xc3afd,0xe8c5ca71,0x966e2e3e,0x96b50018,0xdf3fc097,0x20c19665,0x243b94,0x3b942035,0x20350024,0x483b94,0x3b942035,0x70480030,0xb83ea098,0xc080b,0x9e2846c4,0x955580be,0xa09870c1,0xb1000c3e,0x3f504c38,0xbfa7aac5,0xdc9348f1,0x89d7620b,0x5d6abfa7,0x18040024,0x98704400,0x183ea0,0xc9b0d235,0xd2390c6c,0xcc5b0,0x350c6c04,0x78c9b0d2,0xb0d2350c,0x350c78c5,0x60c5b0d2,0xb0d2370c,0x150018c9,0xf10018c9,0x48c4d62c,0x3ec12bc2,0x9b2ca2bf,0x48a05ec1,0x45ed6cc2,0x9b0744bf,0x48c5d2c1,0xc86c76c2,0x9b331fbf,0x48a091c1,0xc4eb14c2,0x9b084bbf,0xb01b50c1,0xc6a490c1,0x934adbbf,0xa562000c,0x70c04914,0x71000c57,0xc048eea6,0x1898243b,0x5892b500,0x17a5bfc6,0x7986c198,0x350024ba,0x24ba7986,0x79863500,0x350048ba,0x30ba7986,0x2108f100,0x8ec21e77,0xca40b106,0x21c19312,0x57c21e77,0x3940b117,0xc9750,0x8439d862,0x181ddf40,0x4a9fb700,0x5b4d4084,0x7721c197,0x1700301a,0x1700301a,0x1500301a,0x3500301a,0x20ad52a2,0xa200f507,0xc3c0ad52,0x97403d10,0xa2c19562,0x750ad52,0x52a200f7,0x10cfc0ad,0x668c401d,0x52a2c195,0x1700308d,0x1700308d,0x1500308d,0xf200308d,0x5e94d607,0x9d5704c1,0x93657dc0,0x5e94d6c1,0xc275a9c1,0xc6eabc0,0x625a7100,0x4ff0c0c2,0xb5001898,0xc09d43b5,0xc19846c2,0x246b61a3,0x61a33500,0x3500246b,0x486b61a3,0x61a33500,0xf200306b,0x98900d07,0xb12392c1,0x934986bf,0x98900dc1,0x40a1f9c1,0xc5665c0,0x69b17100,0x730dc040,0xb500189a,0xbfb0b303,0xc19a662f,0x249f0f07,0xf073500,0x3500249f,0x489f0f07,0xf073500,0xf700309f,0x89a6940c,0x819503c1,0x933c923e,0x89a694c1,0x82224fc1,0x9577f53e,0x85a694c1,0x85170018,0x89820018,0xa064fec1,0x3034a83f,0x88516200,0x700b3fa0,0x18060030,0x18851500,0x9c07f200,0x2c2300b,0x92c08d80,0x9cc19361,0x2bc2300b,0xf5c08d77,0x6200189c,0xc0971995,0x1863f2,0x9710c1b5,0x959f55c0,0x2da536c1,0x36350030,0x302da5,0x2da53635,0x36350030,0x302da5,0x5c9e5ca2,0xa893e241,0x5014e140,0x9cb9620a,0x504440a8,0xea620018,0xd6409893,0xb7001818,0x40989cc1,0xc1955439,0x306c9e5c,0x306c1700,0x306c1700,0x306c1500,0xeaea200,0xc190c22f,0x218b406a,0xc081038,0xe1376200,0x2189406a,0xc041044,0x990a200,0xb6fac229,0x361e3f88,0x49620030,0x1c3f88f6,0x4002436,0xae350018,0x182f0e,0x180b9c37,0x18171458,0x1815144c,0x9c37144c,0x14a0180b,0x241c17,0x241c17,0x481c17,0x301c17,0x6240b15,0x90b9c39,0x2404000c,0xb9c3706,0x15000c0b,0x35063009,0x18090b9c,0xb9c3706,0x1500180b,0x4400180b,0xc04067d3,0xd3390b7c,0xc2067,0x370b7c04,0xc4067d3,0xc0202400,0xd3351188,0xb702067,0x4067d337,0x40150018,0x8f10018,0xc040b9bf,0x40c018f6,0xc1930f10,0xc040b9bf,0x40c03248,0xc997573,0xa3276200,0x3e8c3b4a,0xc3c40018,0xf03bca9a,0x41c199a4,0x30403f46,0x46414400,0x30403f,0x3f464144,0x44003040,0x403f4641,0x94370030,0x9c0b9a6,0x9c0b915,0xb9a69491,0x8cd899c1,0x318653e,0xe4c1b971,0xc83e8d65,0xb1170318,0xb1170030,0xb1170030,0xb1150030,0xd2370030,0x1518e1b0,0x1500e115,0x707080f,0x515480f,0x307080f,0x2417dc0a,0x1014c208,0x8a53639,0x140417dc,0xa5363710,0x2417e808,0x1008c208,0xaa53637,0xa170018,0x7c0a0018,0x7fe9620b,0x6e6ec0c1,0x12710b88,0xd1c0c177,0xba095a9,0x170b9406,0x17002413,0xf002413,0xf2030ba0,0x81cf8a07,0xe064e5c1,0x9330b33f,0x81cf8ac1,0xe085cbc1,0x18452c3f,0x4500400,0xcf8a00f5,0x85ecc181,0x49223fa0,0x9f14c195,0x35003073,0x30739f14,0x9f143500,0x35049873,0x30739f14,0x3e0cf500,0xa2c19698,0x22c08fc5,0x3ec19362,0x7cc19698,0xcac08fa9,0x32c19a7e,0x188996,0x89963235,0x3ea20018,0x8ec19698,0xb4c06b93,0x6200305b,0xc06b5b46,0x30785d,0x35001804,0x18899632,0xcfa7a200,0x335dbfc0,0x5715c046,0xb46f0e58,0x78c04621,0x70e7092,0x19f5e35,0x5e350030,0x30019f,0x19f5e35,0x5e350ea0,0xea0019f,0xb9c07f2,0x9a52c220,0x4a6bbfbf,0xb9cc193,0x796cc220,0x5ee5bfbf,0x39620018,0x60bfff9a,0xb700184e,0xbfff794a,0xc19562da,0x301c0b9c,0x301c1700,0x301c1700,0x301c1500,0x9b0cf500,0x67c152b5,0xd3c08265,0x9bc1935e,0x43c152b5,0x7bc08249,0x82c19a7b,0x1838b1,0x38b18235,0x9ba20018,0x17c152b5,0x65c050d3,0x62003058,0xc0509ad0,0x30750e,0x35001804,0x1838b182,0xe407f200,0xf7c086b2,0x8e4019cb,0xe4c1932b,0xfdc086b2,0x22be49a1,0x71000c40,0xbe476bc2,0x1897b8f4,0xef5bb500,0xa4604019,0xa077c197,0x350024f3,0x24f3a077,0xa0773500,0x350048f3,0x30f3a077,0x20cf700,0x3cc21372,0xedc0e7e6,0x2c19377,0x1c21372,0x67c0e7de,0x2c1958c,0x181172,0x181117,0x4bc21382,0x3c0c7e6,0x62003070,0xc0c7de0f,0x30847d,0x15001806,0x35001811,0xd187dc,0x87dc3515,0xa21254d1,0xc1d187dc,0xc0db109f,0x24b026,0xcb10a8b7,0x95ac31c0,0xd987dcc1,0xd9170024,0xd9170024,0xd9150048,0xe80f0030,0x8aa20502,0x3ec181cf,0x9d3f40ca,0x6f030038,0x3f410c1c,0x2e84d17,0x9f143507,0x35003073,0x30739f14,0x901f400,0xb83efa32,0xeb40d4e5,0x9c19309,0x403efa32,0x3209a21a,0xe5c13efa,0xde040c4,0xfca60018,0x5a40c4ed,0x82c19522,0x261aa08c,0x1aa08c82,0xbe8c8244,0x4400303f,0x3fbe8c82,0x5c910030,0xe416c9e,0xa23f8065,0x6c9111d0,0xca6041,0x933a973f,0x3d620768,0x113f010c,0x6200244f,0x3f8085fd,0x7984b1c,0x17002406,0x1700245c,0x1500485c,0xf200305c,0x116b2a07,0x325c5f41,0x9354a1c0,0x116b2ac1,0x525c4f41,0xc5896c0,0x4bd76200,0x6d10c052,0xe8b70024,0x1bc0324b,0x2ac19569,0x24016b,0x240117,0x480117,0x300115,0xb0d20cf5,0x1423c181,0x4675bf7f,0xb0d2c193,0xd246c181,0x5aefbf7e,0x61a3c195,0x3500187b,0x187b61a3,0xb0d2a200,0x67c3c181,0x3e8b3b6b,0xb620030,0x53b969a,0x4003053,0xa3350018,0x187b61,0x156b2a35,0x2a390114,0xc1d6b,0x3500fc04,0x8156b2a,0x6b2aa201,0x6a55411d,0x4281befe,0x9b620030,0xfbbefde6,0x6002456,0x15150018,0xd2350018,0x258fdb0,0x914f40f,0x4417b804,0xc202d869,0x6944180c,0xcc202d8,0xd8694418,0x1830c202,0x2d86944,0x350030c2,0x708da694,0xa694a205,0x8837c18d,0x6c163fe0,0xa0040018,0xa6943505,0x3709f08d,0x3085a694,0x30851700,0xa200f00,0x189c0c03,0x35159c04,0x6cedaec6,0xaec64415,0xa8c1ed,0xf5aec637,0x90060024,0x18c00f15,0xa5363705,0x19071406,0x6000c04,0x6170714,0x424000c,0x816b0c2,0x363720d0,0x1806a5,0x7200615,0x261c01f8,0x779a3fe8,0x47c1bf94,0x130ec193,0xc4014,0x94544762,0x248324bf,0xc0400,0x14130e91,0xa3bac40,0x1110abc0,0x2401482,0xec00a2a,0x400248b,0x1c440018,0x183fe826,0x73613700,0x19165cd9,0x4000cd5,0x613700b4,0x1668d973,0x1650d517,0x1650d515,0xd9736137,0xd9150018,0xf50018,0xc21a7721,0x40e03179,0xc1930720,0xc0b39b0,0x7721b100,0x540bc21a,0xc38640e0,0x800189b,0x4862000c,0x77405b34,0x71003023,0x405b796c,0x989bdfdd,0x18040d,0x1a772135,0x9ca20018,0x2bc2140b,0xc9bcdc6e,0x621f683e,0xbcd39970,0x1f687a2c,0x6e32e62,0x1842bebf,0x9c886200,0x7e21bf06,0x30061f68,0x30101700,0x30101700,0x30101700,0xc218d900,0x3ef23897,0xc1933ad4,0xc160b9c,0xbc516200,0x4f4e3ef2,0xc060b40,0x48161700,0xc2168200,0xbf06a162,0x245738,0x15006006,0x44001818,0x3efcc144,0x444407e0,0xbc3efcc1,0xc144a20a,0x21a33efc,0x966ec066,0xc80f0024,0xf80f0d07,0x8f10507,0x40dc6feb,0xc062ae32,0xc1935a9b,0x40dc6feb,0xc0628833,0xc982765,0xa8fc6200,0x5ea4c081,0xffc40018,0x6ec08195,0x5cc1982b,0x3041049e,0x9e5c4400,0x304104,0x49e5c44,0x44003041,0x41049e5c,0x2a440030,0xa841096b,0x6b2a4403,0x6544109,0x96b2a44,0x44062441,0x41096b2a,0x54440960,0x2440f2d6,0xd6544400,0x2440f2,0xf2d65444,0x44004840,0x40f2d654,0x5c440030,0xa041249e,0x9e5c4408,0x8a04124,0x249e5c44,0x44087041,0x41249e5c,0x5c370870,0x30349e,0x303417,0x303417,0x303415,0xf0ba00c,0x8030b94,0xc1170bb8,0xc1170b88,0xc1170bb8,0xc1150bb8,0x8f10bb8,0xc19487dc,0xbf89d7dc,0xc1934718,0xc19487dc,0xbf895736,0xc9b67d9,0xebab6200,0x58e7c054,0x54b50018,0xa8c054ab,0xfc19b79,0x3085bb,0x85bb0f35,0xf350030,0x3085bb,0x85bb0f35,0x1f40030,0x407f4641,0x3fe6cb43,0xc193304d,0x407f4641,0x41b12304,0xb7407f46,0xa63fa6ee,0x18956f,0xe6ee9571,0x956bb13f,0x24060cc0,0x243f1700,0x483f1700,0x303f1500,0xb9bf4400,0x25f8c000,0xb9bfae,0xc46aeac0,0xf8227a40,0x180425,0xb9bf44,0xa21c50c0,0xc000b9bf,0x40e46ad9,0x301a90,0x46001804,0xbfc1737e,0x7c060018,0x1ca40f26,0x737e3505,0xf1cb081,0x44051cf8,0xbf81737e,0x7e3500a8,0x1d108173,0xb0d20cf5,0xa7dfc1c5,0x358e40f3,0xb0d2c1aa,0x4b43c1c1,0x4b68409b,0xb0d2c1aa,0x39000cc5,0xc6361a3,0x50406200,0x57314057,0xc040030,0x61a33500,0x3500485b,0x305b61a3,0xa0cf500,0xa2c171c8,0x9405698,0xac19324,0x7fc171c8,0xc14056a1,0xa3c19442,0x185b61,0x74fb3d35,0x5350018,0xc80e4,0x61a300f5,0xf14ac163,0x57374056,0x7d9ec19e,0x350030ba,0xcc5b0d2,0x7d9e3700,0x170030ba,0x1500305b,0x35001882,0xc8a7d9e,0xe4053700,0x15000c90,0x35000c88,0xc927d9e,0xe4053500,0x35000cb8,0x54c1b0d2,0xb0d23500,0x35000cc5,0x2498e405,0x7d9e3500,0x350090b2,0xcb8e405,0x7d9e3500,0x350024b2,0xcb0e405,0x7d9e3500,0x350024aa,0xcb0e405,0x7d9e3500,0x350024aa,0xca8e405,0x7d9e3500,0x350024a2,0xca8e405,0x7d9e3500,0x350024a2,0xca0e405,0x7d9e3500,0x3500249a,0xca0e405,0x7d9e3700,0x1500249a,0x35001892,0xc98e405,0x7d9e3500,0x35000c8a,0xc90e405,0x7d9e3500,0x35000c82,0xc88e405,0xfb3d3500,0x35000c74,0xc80e405,0xa308f100,0x6cc16361,0xdc407a24,0xa3c19e52,0xbbc16361,0xd8407a63,0xca652,0x91fea272,0xa64db340,0xc070204,0x300600,0x27c15b91,0x4540c34c,0x24930e,0xc35d9271,0x9774a940,0x4806000c,0xc15b9100,0x40e37215,0x189c9ff0,0x5d816200,0x6cbf40e3,0x10f10024,0x40f3720d,0xc19c9bfb,0xc1602e70,0x40f34a79,0xc1929c00,0xc1682e70,0x40f358b8,0x18963598,0x240400,0x6294d6b1,0xf37862c1,0x9e359440,0xc040024,0x94d6b100,0x8b61c162,0x25e40f3,0x80018a3,0x35b5000c,0x5c40f39b,0x6bc1a702,0x60c34a,0xbf4a6b35,0x6b350060,0x54bf4a,0xc34a6b35,0x3835006c,0x18c217,0xc5b0d239,0x60040018,0x4a6b3500,0x350078bf,0x6cbf4a6b,0xb0d23500,0x3500e4c5,0xfcc5b0d2,0xb0d23500,0x350120c5,0x38c5b0d2,0xb0d23501,0x10180c5,0x68030330,0xb0d23501,0x37018cc5,0x18c1b0d2,0x18c11900,0x18c0400,0x74fb3db1,0x29d4ccc1,0x94484b40,0xc0403c0,0x3d07f200,0x21c174fb,0xb24029c8,0x3dc192ae,0x48c174fb,0xab405cfe,0x402040a,0x5350018,0x3c80e4,0xe40500f5,0xfd82c180,0xf217405c,0x7d9ec192,0x35001882,0x48827d9e,0x7d9e3700,0x15004882,0x35001888,0x3088e405,0xe4053700,0x15004888,0x3500188a,0x308a7d9e,0x7d9e3700,0x1500488a,0x35001890,0x3090e405,0x500f500,0xc6c190e4,0x49405cfd,0x9ec192fa,0x18927d,0x927d9e35,0x9e370030,0x48927d,0x189815,0x98e40535,0x5370030,0x9098e4,0x189a15,0x9a7d9e35,0x9ea20030,0x65c19a7d,0xc3405cfe,0x603900e,0xa0150120,0x5370030,0x48a0e4,0x18a215,0xa27d9e37,0xa2170048,0xa8150090,0x5350018,0x30a8e4,0xa8e40537,0xaa1500d8,0x9e350018,0x30aa7d,0xaa7d9e37,0xb0150048,0x5350018,0x30b0e4,0xb0e40537,0xb2150090,0x9e350018,0x30b27d,0xb27d9e37,0xb8150048,0x5350018,0x30b8e4,0xb8e405a2,0x5cfe15c1,0xac048640,0x2400405,0xba7d9e35,0x9f350030,0x6cba7d,0x71c80a35,0xa350018,0x1871c8,0x602e7035,0x703502f4,0x30c602e,0x602e7035,0x7f20300,0xc1602e70,0x40c34b5e,0xc192db12,0xc1c34a6c,0x40c34ba1,0x39cec23,0x939b6371,0xa71a1a40,0xc0403cc,0x4a6bb100,0x58e8c1bf,0x4d564093,0x4001896,0x6b35000c,0x6cc34a,0xc34a6b35,0x6b35006c,0x6cc34a,0x4a6b14f1,0xabbbc1bf,0x489240a6,0x4a6bc19e,0xbebac1bf,0x155d40a6,0x7d9ec1a3,0x7ee5c1b2,0xe6eb4093,0xb9000c9f,0x40938e17,0xc1a3bdf3,0xcb8e405,0x240600,0x30ba17,0x24ba17,0xcb015,0x71c80a35,0x3d350024,0xc74fb,0xaa7d9e35,0x5350024,0xca8e4,0xa27d9e35,0xa35000c,0xc71c8,0xa0e40535,0x9e35000c,0xc9a7d,0x98e40535,0x9e35000c,0xc927d,0x90e40535,0x9e35000c,0xc8a7d,0x88e40535,0x9e35000c,0xc827d,0x74fb3d35,0x537000c,0xa880e4,0xc8215,0x80e40537,0x88150024,0x9e350018,0xc8a7d,0x90e40535,0x9e35000c,0xc927d,0x98e40535,0x9e35000c,0xc9a7d,0xa0e40535,0x9e35000c,0xca27d,0xa8e40535,0x9e35000c,0xcaa7d,0xb0e40535,0x7035000c,0x1c8682e,0x682e7035,0x383901c8,0xcc217,0xb101ec04,0xc1ba7d9e,0x40cb82e8,0xd4a0e34e,0xc0401,0xb27d9e37,0xb0150018,0x9e35000c,0xcaa7d,0xa8e40535,0x9e35000c,0xca27d,0xa0e40535,0x9e35000c,0xc9a7d,0x98e40535,0x9e35000c,0xc927d,0x90e40535,0x9e35000c,0xc8a7d,0x88e40535,0x9e35000c,0xc827d,0x80e40535,0x3d35000c,0xc74fb,0x71c80a35,0xd635000c,0xf06294,0x6294d635,0x5b10114,0xfec1b8e4,0x1a40cb8d,0x984a3b0,0x37000c04,0x18b0e405,0xcb21500,0xe4053500,0x35000ca8,0xcaa7d9e,0xe4053500,0x35000ca0,0xca27d9e,0xe4053500,0x35000c98,0xc9a7d9e,0xe4053500,0x35000c90,0xc927d9e,0xe4053500,0x35000c88,0xc8a7d9e,0xe4053500,0x35000c80,0xc827d9e,0xc80a3500,0x35000c71,0xc74fb3d,0xb9c3700,0x820eac1c,0xc5e3c21c,0x76373ef2,0x615c0,0x1c170f,0xee8080f,0x301817,0xf601817,0x301815,0xdc6febb1,0x87e66b40,0x93602fc0,0x2f620e4c,0xa9c087de,0x62001874,0xc097e662,0x186424,0x97de27b7,0x95789ec0,0xfc6febc1,0xfc170030,0xfc170030,0xfc150030,0xcf50030,0xc1d81738,0x40881911,0xc1931ce9,0xc1d81738,0x408821e6,0xc195584d,0x18d5b0d2,0xb0d23500,0xa20018d5,0xc1d81738,0x409b4c3a,0x30182a,0x9b551162,0x30538d40,0x180400,0x3003c01,0x7f20018,0xc1b4d7bb,0xc0db7bc4,0xc19374db,0xc1b4d7bb,0xc0db7386,0x188955,0xeb7bbb62,0x1878d0c0,0x7380b700,0x8d4ac0eb,0xd7bbc195,0x170030ac,0x170030ac,0x150030ac,0xc0030ac,0xfc080138,0x105c080f,0x17108006,0x1710381c,0xf10801c,0xf20301b0,0x4ad66b07,0x403248c0,0x9326ce40,0x4ad66bc1,0x203259c0,0xc2ac340,0x42d06200,0x3f3d4020,0xc0620024,0x48404042,0x42e083b,0x35350024,0x24856b,0x856b3535,0x35350048,0x30856b,0x94d608f1,0x7af2c12a,0x5e2ac07f,0x94d6c193,0x54f3c12a,0x2af5c07f,0x62000c98,0xc0900f5c,0x186234,0x8ffc5fb5,0x982efec0,0x142e70c1,0x70350030,0x30142e,0x142e7035,0x70350030,0x30142e,0x413f80c,0xec0a0ffc,0xe08d1713,0x80951513,0xa6943719,0x15141095,0x3519e095,0x3095a694,0x50cf500,0x1c1e0e4,0xff40a819,0x5c19314,0xd7c1e0e4,0x6340a821,0x9ec19550,0x18de7d,0xde7d9e35,0x5a20018,0x2bc1e0e4,0x4040bb4c,0x62003010,0x40bb5500,0x304ba3,0x35001804,0x18de7d9e,0x3cd53500,0x350f1821,0x18213cd5,0x3cd5370f,0x17001801,0x15001801,0x350f1821,0x18213cd5,0x3cd5370f,0x15001801,0xa001801,0xe51729f4,0xe5171398,0xe917138c,0xe524000c,0x81458c1,0x180f2b68,0xf9052a,0xc1c2f880,0xc0818008,0xc1935e9a,0xcbef880,0x77cd6200,0x7314c081,0xc060024,0xc1be2400,0x80a22730,0xbcc1bef8,0xfec0a177,0x600247a,0xc2150018,0x200c0018,0x2e08062e,0x18c0ed15,0x1515780a,0x351668e5,0x8e5aec6,0xaec6372e,0x150030e5,0xa15a8e5,0xafd92754,0xe335c2c1,0x9330863f,0xafa694c1,0x14712754,0xe93fe359,0x18956b,0x3538a004,0xa0afa694,0x27780f11,0x3808f105,0x8a3f504c,0x61bf5c22,0x38c19345,0x523f504c,0xcfbf5b9c,0xc9782,0x10a21262,0x185075c0,0x8080b500,0x8de4c010,0x261cc197,0x350030e8,0x30e8261c,0x261c3500,0x350030e8,0x30e8261c,0xa5363500,0x35162c00,0xe0fd4a6b,0x4a6b3501,0x4401d4fd,0xc200a536,0x6b351584,0x1e0fd4a,0xfd4a6b35,0x36371560,0x163800a5,0x1d700017,0x8dc207d5,0xe4c0ab19,0x36c19368,0x34a407a5,0x7a536b1,0xbb10b0c2,0x95a83cc0,0xb6510018,0x47c0ab10,0xb1736cc,0xb170024,0xb170024,0xb150048,0xea440030,0x98c08033,0x33ea441c,0x14a0c080,0x8033ea44,0x4414c4c0,0xc08033ea,0xd33514c4,0x304067,0x4067d335,0x980f0030,0xcf7051f,0xc21ca536,0x404873cd,0xc19325c9,0xc21ca536,0x40488577,0xc195612c,0x181aa536,0x181a1700,0xa01c1500,0xa536a223,0x42adc21c,0x59424084,0x18060030,0x181a1500,0x2f880f00,0x415c2407,0x5c442a78,0x60415c9e,0x2f880f2a,0x9e5c3705,0x1500306c,0xc00306c,0x3f235b8,0xc08223dd,0xc1935ec2,0xc2100b9c,0xc0821b09,0x249a26,0x17360006,0x17002414,0x17002414,0x6219014,0x80373630,0x3b4c6f8,0x803cc08,0xc61703b4,0xc21703c0,0xa80603c0,0xf8803703,0x150018c6,0x3703c0c6,0x54a7a694,0xca31903,0x3540600,0x36ca717,0x360a317,0x360a317,0x18a717,0x18a715,0x84e807f2,0xd530c059,0x3b483ed4,0x84e8c193,0xbadcc059,0x407ebc1b,0xfab5000c,0xf83ed4d5,0x62c1933e,0x1874bb,0x74bb62a2,0xd4d595c0,0x383d203e,0x1a640404,0xf04440a,0xf0519e0,0x37030444,0xece5aec6,0x10e51519,0xaf0df41a,0x1ec10c63,0xf7c02cfc,0xafc19353,0xd7c10c63,0x9fc02cc3,0x2dc19a70,0x18c0e4bf,0xbf2d4400,0x18c0e4,0xc63afa2,0xf208d1c1,0x304d8abf,0x98426200,0x6a32bff1,0x18040030,0xbf2d4400,0x18c0e4,0x95a69437,0x951724fc,0x91172514,0x91170018,0xfc0f0018,0x91170506,0x91150714,0xf91b24,0xc0a0a69a,0xc01c2728,0xc19351e2,0xc90a69a,0x16b56200,0x665cc01c,0xc060024,0xc0908200,0xc05c270b,0x3059cc,0x5c169462,0x246e46c0,0x180600,0x18a015,0x586908f1,0x4cbcc21b,0x6aacc0b2,0x5869c193,0x4012c21b,0x9dddc0b2,0x62000c96,0xc0e71970,0x1877bb,0xe70cc5b5,0x96aaecc0,0x14becfc1,0xcf350030,0x3014be,0x14becf35,0xcf350030,0x3014be,0x162e7035,0x7035369c,0x369c162e,0x162e7035,0x7035369c,0x366c162e,0x62e7037,0x6170030,0x6170030,0x6150030,0x8f10030,0x40e41e00,0x3eed19df,0xc1933ae8,0x40e41e00,0x3eee171a,0xc973ae6,0xef746200,0x4230bee9,0x39c40018,0x2ebee8f2,0x52c19742,0x304110c7,0xc7524400,0x304110,0x10c75244,0x44003041,0x4110c752,0xf90030,0xc1ba1738,0xbcb37868,0xc1933ebf,0xcb61738,0xa3adb700,0x7a22bcaa,0x1738c195,0x82000cba,0xcda7c1b6,0x46a9bf82,0x54620030,0xcbf82aa,0x6002482,0xba150018,0x5350018,0x54b5e4,0xaab0d239,0x70b5000c,0x2ebca2b1,0x5c1977c,0xcb5e4,0xaab0d235,0xd2a20060,0x8bc1aab0,0x18bf828a,0x4002484,0x5350060,0x18b5e4,0x4a6b0cf7,0xe634c1a4,0x7be2c0f7,0x4a6bc193,0xdd5dc1a4,0xb746c0f7,0x4a6bc195,0x170018a0,0x150018a0,0x353f3ca4,0x24a44a6b,0x4a6b373f,0x150018a0,0xa0018a0,0x1725c8,0x2625e0,0x8315cc0,0x1525e0,0x44080654,0x67d33731,0x6001820,0xe63725ec,0x3864f75e,0x54c1f782,0x124069ac,0xf700185d,0x499ab708,0x9325a440,0xf75ee6c1,0x49ac60c1,0x95610740,0xef5ee6c1,0xef170030,0xef170030,0xef150030,0x8f10030,0xc21b0b9c,0xbf3f3509,0xc193447c,0xc21b0b9c,0xbf3ecfb7,0xc9677ae,0x2ef80400,0xb9c00f7,0x1a11c21b,0x884cc036,0xb9cc196,0x17003011,0x17003011,0x15003011,0x37003011,0xd06e2e70,0xc16ed702,0xc0d53db2,0xc195aeb6,0xd06e2e70,0xc16ed702,0xc0e53da9,0xc195b2ab,0x305e2e70,0x305e1700,0x305e1700,0x305e1500,0x2f400c00,0xf2f2806,0x35032f4c,0x709a0987,0x987352f,0x3500309a,0x309a0987,0x9873500,0x442f589a,0x41196b2a,0x2ab20120,0x6341196b,0xdfbf3eee,0xc957f,0xbf9f9a52,0x184871,0x9f7710b7,0x9583d4bf,0x296b2ac1,0x29170030,0x29170030,0x29150030,0xa40f0030,0x68060928,0x441c1707,0x44181707,0x28f80a07,0x15003006,0xc003018,0x3f23ad4,0xc0f54678,0xc1937b3c,0xc14dc80a,0xc0f53da1,0x24b6a0,0x37018004,0x245dc80a,0x245d1700,0x805d1500,0xc80a3501,0x4401805d,0xc1dd7361,0x61392748,0xcd973,0x3509f004,0x8dd7361,0x7361350a,0x809fcd9,0x61371f5c,0x18dd73,0xa14dd15,0x150a500a,0x350060f9,0x54f94a6b,0xa680800,0xf94a6b35,0x44080048,0xa740f37,0x38640c05,0x441c1404,0x3efa3209,0x9441c2c,0x183efa32,0x38640c00,0x441c1404,0x3efa3209,0x9444284,0x183efa32,0x9e5c4400,0xccc4164,0x649e5ca2,0xcd31ba41,0xc31e33f,0x52a06200,0x465c3fcd,0x3fb70024,0x674006a9,0x5cc19542,0x24549e,0x245417,0x485417,0x305415,0xfdd307f2,0x4be0c1d8,0x6efdc0bc,0x9704c193,0x4be6c1d5,0x6d25c0bc,0xd762000c,0xd4c0bc4b,0xb5000c70,0xc0c9e714,0xc193725a,0xcd8fdd3,0x9c0c00,0x37005404,0x6c6c9e5c,0x6c6c1500,0x9e5c4400,0x1ec4164,0x649e5ca2,0x46a92241,0x303a7d40,0x180600,0x186c15,0x6ca69426,0x9840a45,0x19096c08,0x60984ab,0x60060cd8,0xa6943709,0x150018ab,0x390978ab,0xa81ea536,0x429c0642,0x429c1c15,0x1ea53637,0x5f2000c,0xb305c21c,0x791dc0ec,0xa536c193,0xaa30c21c,0xb481c0ec,0x18060024,0x181e1500,0xdf00f500,0xfec0945c,0xefbf6e0d,0xdfc19345,0x87c945c,0x945cdfb1,0x1c0dd8c0,0x968514c0,0xbdb50018,0x20bf6da8,0x46c19679,0x24bac3,0xbac34635,0x46350024,0x48bac3,0xbac34635,0x7f20030,0xc2074f32,0xc0d15f1c,0xc193725b,0xc2074f32,0xc0f2f8a5,0xc7aaa,0xf2ebfb62,0x24addcc0,0x5272b500,0xa58dc0d1,0xa11dc196,0x3500240c,0x240ca11d,0xa11d3500,0x3500480c,0x300ca11d,0xe601f800,0x6cc20197,0x3040f831,0xc19301,0xcc1e78e,0x50ccc400,0xeebe40f8,0x97e6c19a,0xcc201,0xe78e0035,0xb138a0,0xabc1e78e,0x484084ec,0x249b0b,0x343f0005,0x18c20197,0x4707f200,0xd8c158d2,0xddbd172c,0x47c1933e,0x77c158d2,0x25bf74f7,0x71000c46,0xbf7478d9,0x18974623,0x42ffb500,0x3edbbd0f,0x8a99c197,0x35002477,0x24778a99,0x8a993500,0x35004877,0x30778a99,0x4641a200,0x6590407f,0x2c584013,0x1c082004,0x20040620,0x3a407f82,0xbc401377,0x6201067,0xf8060024,0x4641371f,0x1500483f,0xd00303f,0xd00705dc,0x79746205,0x5cebbf9f,0x2cb70024,0xf6bf3ef3,0x2ac19558,0x24096b,0x240917,0x5f40917,0x300915,0x37f608f1,0x1490410e,0x5c63c071,0x37f6c193,0xeb68410e,0x8f93c070,0x62000c98,0xc0f40f2c,0x187aef,0xf3fa98b5,0x98ae20c0,0x3b04c3c1,0xc3350030,0x303b04,0x3b04c335,0xc3350030,0x303b04,0x91a69437,0x7c0f1230,0x91150526,0x94441248,0xb0c18da6,0x9400f722,0xe4c18da6,0x3f4110,0x94c19574,0x1891a6,0x189115,0x4131c644,0x4408ac40,0x404131c6,0xc6370f00,0x186131,0x186117,0x404124,0x31c64409,0x9004041,0x6131c637,0x61150018,0xf70018,0x416c9e5c,0xbd40229a,0xc1933ef2,0x646c9e5c,0x3e340a3e,0x3bb83d71,0x957a55bd,0x24063e7c,0x3e880a00,0x15004806,0x3500305c,0x68d4e405,0xe4053943,0x4000cd0,0x5374374,0xcd4e4,0x3558d015,0xd0e40537,0xd4174428,0xd4150018,0x54440018,0xec40d2d6,0xd6544413,0xcb440d2,0xd2d65437,0xd2242418,0x37016840,0x30f2d654,0x30f21700,0x30f21700,0x30f21500,0xbf40c00,0x35079804,0xbc062e70,0x2e703507,0x3507bc06,0xbc162e70,0x2e703707,0x15002416,0x3507bc16,0x30162e70,0xfb07f200,0x66bf62e6,0x9ebec512,0xfbc19341,0xf9bf62e6,0x2bec484,0x6200187d,0xbf6288f0,0x184593,0x62424ac4,0x9580f7bf,0xe8c826c1,0x4400303d,0x3de8c826,0x26440030,0x303de8c8,0xc8264400,0x303de8,0xd86900f9,0x1993c22e,0x64efc09b,0xd869c193,0x62000c2c,0xc09b1158,0x247969,0x82000c06,0x1985c22c,0x6cd9c0bb,0x98060030,0x182e1746,0x182e1500,0xf607f23c,0x7b413e37,0x2c3e9b2e,0xf6c1933c,0x35413e37,0xa63e9bb2,0x4001850,0xf72d3c,0x413e37f6,0xbe489a89,0xc195549b,0x304e37f6,0x304e1700,0x304e1700,0x304e1500,0xd8693700,0x800b430,0xb40800cc,0xc0301700,0xa80f00,0xd8693703,0x1500c030,0xf400c030,0x11d86901,0xf4e5a8c2,0x93020140,0x11d869c1,0x444704c2,0xc211d869,0xf74704,0xc211d869,0x40f4ede3,0xc195167b,0x2415d869,0x24151700,0x48151700,0x30151500,0xcf323500,0xa23c480e,0xc20ecf32,0xc002efd4,0x186340,0x338b80f,0x300a17,0x300a17,0x338b80f,0x14130ea2,0xe600a840,0xd04ccbbf,0xdd55b729,0x882ebfe5,0x130ec195,0x17001834,0x82001834,0x1c54014,0x44e1bf4c,0x1f620030,0x44bf4bbb,0x6003080,0x34150018,0x38910018,0xe7c1d417,0x76bf7f34,0xd4820e4c,0x7eee42c1,0x1881dabf,0x27480400,0x173800f7,0x76ffc1d4,0x85cfbfbf,0x1738c195,0x170030cc,0x170030cc,0x150030cc,0xa20030cc,0xc0856b35,0x3f8caec0,0x183035e0,0x8cd21c62,0x1871433f,0x5dc46200,0x39d53f19,0x6ab50018,0x383f19a4,0x6bc19575,0x304ad6,0x4ad66b35,0x6b350030,0x304ad6,0x4ad66b35,0xf90030,0xc1cee405,0xc0796677,0xc1935d6a,0xccae405,0x56046200,0x71e4c079,0xc060024,0xc1ca8200,0xc09cb32d,0x306554,0x9caaf162,0x2479cec0,0x180600,0x18ce15,0x4a6b00f5,0xb32bc187,0x674fc0a4,0x4a6bc193,0xb1120087,0xc1874a6b,0xc0eaf9c4,0x189b78b4,0x9381b500,0x674bc0a4,0xe405c19b,0x35002498,0x2498e405,0xe4053500,0x35004898,0x3098e405,0x9c07f200,0xa9c20c0b,0xe83fed31,0x9cc1932f,0xcac20c0b,0xdd3fad31,0x71000c33,0x3fad551d,0x18956f40,0x54fc6200,0x6b4b3fed,0x24061404,0x24101700,0x48101700,0x30101500,0x5607f200,0xf1c209d5,0x3dbeac7e,0x56c19341,0x36c209d5,0x32bf563f,0x62000c45,0xbf55fd59,0x2459ac,0xabfb37b7,0x9555b7be,0xdd556c1,0xd170024,0xd170024,0xd150048,0x38350030,0xfb48417,0x80173839,0x762000c,0x72c0d7de,0x6002488,0x8015000c,0x38a21014,0xf8c18017,0x5cc0f7dd,0x4002490,0x38351044,0x188417,0xdc6feb44,0x4404e040,0x40dc6feb,0xeb440408,0xb040dc6f,0x6feba216,0x114f40dc,0x7d5ec0ab,0x30061c38,0x30fc1700,0x30fc1700,0x30fc1500,0x49ec0a00,0xc3319,0xa977b862,0x247cf8c0,0xc0600,0xe5c233d7,0x69c0c97f,0x9cc19370,0x49f8330b,0x183517,0x183515,0xfdb0d235,0xec0f1890,0xfd150743,0x694418a8,0x64c202d8,0xd8694414,0x1464c202,0x52f280f,0x94d607f2,0x5704c116,0x657dc09d,0x94d6c193,0x75a9c116,0x6eabc0c2,0xf006000c,0xf0161739,0x24231539,0x61a33500,0x35002423,0x482361a3,0x61a33500,0x37003023,0x282f8a99,0xc271950,0x10bab700,0xa24dc0a3,0x8a99c195,0x17000c2f,0x82508827,0x10acc127,0xaa37c0c3,0x18060024,0x182f1500,0x61a33500,0x351c3873,0x387361a3,0x61a3351c,0x351c0873,0x87361a3,0xfb3d351c,0x3500305c,0x305cfb3d,0xfb3d3500,0x3500305c,0x305cfb3d,0x73613500,0xa0ed0e1,0x30080f48,0x48e1190f,0xe4c040f,0xf0f2408,0x370546b0,0x4c262e70,0x4c261711,0x7c261711,0x10261514,0x14ac0c08,0xf11ac06,0x35030840,0xd4d3b0d2,0xb0d23904,0x4000ccf,0xd23704e0,0xcd3b0,0x4e0cf15,0xcfb0d235,0xd23704c8,0x18d3b0,0x18d315,0x42fa00c,0x61370ea0,0x108d173,0x18d117,0x150d517,0xa0c1d524,0x7361370e,0x150018d1,0xf20018d1,0x3637f607,0x1e543741,0x935227c0,0x3637f6c1,0x1e43bf41,0x4066a1c0,0x180608,0x183e17,0xa8413682,0x3dbfbca8,0x6200304a,0xbfbc87c2,0x305eb7,0x15001806,0xf800183e,0x10a95201,0x9223d7c1,0x9362b8c0,0xd952a2c1,0xc4000cc0,0xc09203ae,0xc19b8378,0xc110a952,0xa2a2000c,0xedc0d952,0x5cc0cd56,0x62003071,0xc0cd36c3,0x24921c,0x44001804,0xc110a952,0xc40a0018,0xc214822f,0x3ef23897,0x30243ad4,0x62fc408,0x1417000c,0x14171f98,0x16172fd0,0x16150018,0xafa20018,0x2fc10c63,0xa6c081b1,0x62180c5e,0xc0819509,0x183c7b4f,0x44001804,0xc0e4bf2d,0xafa20018,0xa5c10c63,0x39c04f6a,0x62003058,0xc04f325d,0x3074e1,0x44001804,0xc0e4bf2d,0x3f440018,0x703fbead,0xad3f2635,0x3f263540,0x263540ad,0x3540ad3f,0x54fe00f,0x1f569f44,0x4435a040,0x401f569f,0xec0a3570,0x589f1719,0x749f171d,0xca31710,0x689f1700,0x4b000610,0xa3a69437,0x10060018,0x2800f91a,0xe9c204f8,0x8ec0d22b,0x27c19372,0xc02f8,0x154bd806,0xa2463804,0xc202f827,0xc0f22bd8,0x307a78,0x154bd806,0x8001804,0x500c4650,0x55980655,0xd6c22782,0xa8c0d4aa,0xb7002487,0xc0c4aade,0xc19583b3,0x242bd869,0x242b1700,0xe02b1700,0x302b1555,0xe340a00,0xe4c8917,0x34bc8919,0x17000c06,0x150e2889,0xf0e2889,0xc050e58,0xe4084fec,0x219c0421,0xf500408,0xf0521c0,0x37055010,0xf47f8a99,0xc771905,0x5f40600,0x6007f17,0x5e87717,0x5e87715,0x7f8a9937,0x7f150018,0x56350018,0x3c058ff,0x34ff5639,0xb404000c,0xff563503,0x3503c058,0xa834ff56,0xff563503,0x3703a834,0x1858ff56,0x18581500,0x7008f100,0x69c1782e,0xe83f3751,0x70c19338,0xfc1782e,0x4b3f3798,0xc9574,0x5d46b262,0x183cdd3e,0x614a7100,0x78403e5e,0x628f895,0x68170030,0x68170030,0x68150030,0xd2350030,0x2088fdb0,0xc36d808,0xe40407f8,0xb0d2374e,0x60030f5,0xf54ec0,0xc1f5b0d2,0xc0db1976,0xc19374c3,0x10f5b0d2,0xcf323708,0xf244e80a,0x1dc20a05,0xa5c06300,0x32c1935a,0x74c20acf,0x8c062ee,0x62002496,0xc042ee85,0xc789213,0x17002406,0x1700240e,0x1500480e,0xa00300e,0x6173da4,0x6243db0,0xa0714c2,0x6173dbc,0x6172040,0x8172040,0x8150018,0xfff10018,0x40858041,0x7a4a06c2,0x8cf71dc0,0x40ea2ac1,0x794cd7c2,0x935d67c0,0x41a7f4c1,0x71f2edc2,0x8cf615c0,0x41ad76c1,0x70916dc2,0x935c52c0,0x41c59cc1,0x5e0ee9c2,0x8cf39fc0,0x41cee6c1,0x5f42ffc2,0x935a2fc0,0x40ea2ac1,0x534c6ec2,0x8cf24ac0,0x40fe7ac1,0x5370dac2,0x9358b8c0,0x407952c1,0x811642c2,0x8cb83c40,0x408d5fc1,0x811a78c2,0x931ea440,0x3f769cc1,0x7a2179c2,0x8cb93a40,0x3f7f22c1,0x7b4531c2,0x931f8040,0x3a2f38c1,0x4d16dfc2,0x9356e9c0,0x3915fec1,0x5be421c2,0x93588fc0,0x41f878c1,0xc9891cc2,0x8d0a01c0,0x41c35ac1,0xc9a7c4c2,0x936e66c0,0x3fd48cc1,0xd028aec2,0x8d0ba5c0,0x403ecfc1,0xce372ec2,0x936f87c0,0x3e2e10c1,0xe193d3c2,0x8d0ff4c0,0x3edd8bc1,0xd7c769c2,0x9371e4c0,0x3e1ef7c1,0xe5d252c2,0x93755ec0,0x46c50fc1,0xe5eba0c2,0x8d1107c0,0x46ca42c1,0xe5fffcc2,0x937569c0,0x46067ac1,0xd7e0afc2,0x8d0d8dc0,0x45e5dcc1,0xd67354c2,0x937190c0,0x443cf6c1,0xcc5c5fc2,0x8d0ab4c0,0x440b76c1,0xcb9f0cc2,0x936ee3c0,0x46d869c1,0xffff82c2,0x8d177ac0,0x38b5000c,0xd1c0ffe6,0x9cc1937b,0x183e0b,0x3e0b9c35,0xb5f40018,0x40fc6feb,0x40ffff82,0xc18c98d8,0x40fcd773,0x40c37925,0xc18ca7d0,0x40fc6feb,0x41000c67,0xc192fd2f,0x40fd155f,0x40c2591b,0xc1930c75,0x4121328e,0x40c2e619,0xc18ca7f5,0x41211dc0,0x40c2d1bd,0xc1930c57,0x411da0f2,0x40b35979,0xc18cabcd,0x411e236a,0x40b4c6d2,0xc1930fd0,0x4116375e,0x40a8853a,0xc18cae7b,0x4116fd60,0x40a9428d,0xc19312a9,0x410fd190,0x40a66615,0xc18caf01,0x410fd190,0x40a67f61,0xc1931358,0x4108a5c0,0x40a92941,0xc18cae52,0x41096bc2,0x40a89e86,0xc19312d2,0x41017fb6,0x40b4ad8a,0xc18cab79,0x4102022e,0x40b372c5,0xc1931024,0x41216b2a,0x2a4400c0,0xb441216b,0x1885f400,0x31c22aed,0x9440d8a6,0x5ac18ca2,0xcbc22ae5,0x9d40d9f8,0xf6c19306,0xe2c22bca,0x4340c9bf,0x58c18ca6,0x3cc22baa,0x4640cb2d,0x5cc1930a,0x90c22da5,0xf140beeb,0xdcc18ca8,0xe3c22d73,0x1f40bfa8,0x78c1930d,0x47c22fed,0x6d40bcf4,0x5ac18ca9,0x9fc22fb8,0xd240bcd5,0xc7c1930d,0xd4c23206,0x9740c460,0x46c18ca7,0x32c231dc,0x2f40c375,0x8ec1930c,0x78c23387,0x4740d5d1,0x66c18ca3,0x38c23377,0xc40d42e,0x69c19308,0x68c22ad8,0xd8694401,0xa8c22a,0x33a53635,0x36350018,0x1833a5,0x4c0b9c37,0x4ce401b0,0xffe630c2,0x937dddc0,0x97e8c8c1,0xf4003041,0x97e8c801,0xc4341,0x92eac141,0x596b2ac1,0x101e041,0xe6a5000c,0x6962c0ff,0x9e5cc193,0x100187c,0x1803000c,0x8264a500,0xe64f4185,0x75acc0ff,0xc0410054,0x608d177a,0x6c0400,0xb9c01f4,0xffa2c254,0xa8ac40bf,0xb9cc18c,0x42ccc254,0x41001803,0x8d07a6c0,0x4f740018,0x9c0bfe6,0xb4936e,0xa2024c01,0xc24c0b9c,0x41000c6b,0xccff3c,0xd4b04bf2,0xe2340c3,0x9425c193,0xe647c24d,0x71fec0cf,0x3ecfc193,0xa20ac24f,0x6ef5c0c3,0xfed3c193,0xb159c24d,0x6fb7c0c6,0x1832c193,0x4ca3c24e,0x6e22c0c0,0x95dc193,0x1353c252,0x1a74408d,0x323ac193,0xe660c24d,0x6f85c0c5,0xb647c193,0x4cbac24d,0x6ba9c0b6,0xff20078,0xc0c290f9,0xc1936eb2,0xc2510889,0xc09ac76b,0xc19363a9,0xc24d4b99,0xc0bf81a8,0x6c6df0,0xc2c3a053,0x846740,0xb67f6162,0x78117040,0x4e1bf200,0x2940bfb4,0x78c1930f,0xf0c23484,0xa1c095ec,0x9ac19362,0x6ac2496a,0xb0c09e40,0x8ac19364,0x7ec2275c,0xf740d3c7,0x22009c08,0x4b481907,0x323a07f2,0x7f47c24d,0xef640c0,0x4dc2c193,0xf3f1c241,0x245d4053,0xfc40468,0x7e404ad2,0x50c19325,0xf0418e71,0x1bfc4400,0xf0418b,0x8d9bf644,0xf400f041,0x4db64719,0xd018eec2,0x930b1b40,0x8f7722c1,0xc507ec41,0x936f4ec0,0x8eb594c1,0xc79fd841,0x936ff2c0,0x8d6938c1,0xf4011441,0x4d4b9901,0xc6e400c2,0x930d6240,0x8e2d0cc1,0x44010841,0x41918264,0x1f40108,0x418ecaca,0xc0be79b3,0xc1936daf,0x418f70c4,0x7f242fc,0xc24153b8,0x407857a8,0xc1931fdd,0xc23fd718,0xc0759381,0x5045cf1,0x1a84fff2,0x7f4052dd,0x6ac19324,0x95c23f6f,0x4cc06845,0x5dc1935b,0x84c23fc5,0x2fc0572c,0x8ac19359,0xdac23b08,0x9c404a1a,0xbac19324,0xf0c234d1,0x1fc0894f,0xb0c18cfa,0x4ec25016,0xebc0949d,0xc2c18cfc,0x74c250c0,0x5bc08e4f,0x26c18cfb,0xfbc250ce,0x87c086e8,0x21c18cf9,0x1ac249aa,0xfbc094e0,0x7ec18cfc,0x6ac248f2,0x7bc08ecd,0x68c18cfb,0x97415a22,0x13c0bdae,0x3cc18d07,0x7cc248d8,0xb6c087a6,0xc0c18cf9,0xf9417c65,0x5dc0c2e5,0x24c18d08,0x754178d4,0x85c0b359,0xac18d04,0x17c24996,0xc9c07fba,0x9ac18cf7,0x7f416040,0x15c0ad89,0x26c18d03,0xeb41684a,0x5bc0a68d,0xecc18d01,0xa8c23c66,0x52c08e2a,0x2ec18cfb,0xd0c23bab,0xa1c09372,0x90c18cfc,0x3a41716a,0xd7c0a885,0xc4c18d01,0x49c23c5f,0x1ac061f2,0xdec18cf4,0xeec23f6a,0x67c06c7a,0x18c18cf5,0xc4c23fd7,0xc0c05705,0x7c18cf2,0x12c23b9c,0xe5c0582f,0x28c18cf2,0x82c2356c,0x85c09303,0xdfc18cfc,0x7ac23a4d,0x2c05917,0xabc18cf3,0x48c239b1,0x85c06553,0x12c18cf4,0x82c23581,0x27c08158,0x94c18cf8,0x98c239a9,0xfac080a3,0x98c18cf7,0x7fc25002,0xb8c07f34,0xb0c18cf7,0x17c25016,0x89407fba,0xc2c18cb8,0xe5c250c0,0xfa40862a,0x26c18cb6,0x5ec250ce,0x26408d91,0x98c18cb5,0x1ac25002,0x574094e0,0xf20138b3,0x7f348303,0x8cb89a40,0x4153b8c1,0x54a6ecc2,0xc0bddd40,0xc9a36206,0xbf15404a,0xef710150,0x194085ac,0x2888cb7,0xaa257f5,0xb95d4079,0xd83cc18c,0xd3dfc248,0xb554408c,0x7f22c18c,0xb963c23f,0xbe3a4051,0xc74ac18c,0xe8c4c23b,0xbd564058,0x6cfcc18c,0xc1fdc23c,0xbbdf4064,0x5414c18c,0xcdf7c23a,0xbd594058,0x960ac18c,0x9d4ec249,0xb3674094,0x5fc4c18c,0xb472c23c,0xb4de408e,0x9c07c18c,0x960ec23b,0xb3a84093,0x78f200e4,0x8cb85840,0x39b48ec1,0x64ebc8c2,0x8cbbda40,0x356c28c1,0x8176d9c2,0x8cb82440,0x355a14c1,0x92b1afc2,0x8cb3e140,0x34d66bc1,0x89e914c2,0x8cb60d40,0x7c50f0c1,0xc29f5641,0x935a3ac0,0x79569cc1,0xb4948141,0x9356c1c0,0x723094c1,0xa9103f41,0x9353e8c0,0x6b04c3c1,0xa64d1241,0x935339c0,0x649ef8c1,0xa86c3741,0x9353bfc0,0x5ce784c1,0xb3d72141,0x935692c0,0x599eeec1,0xc3602a41,0xf05a6ac0,0xb4856203,0xa2eac0c6,0x10f10474,0xc0c3a533,0xc192a229,0xc24d113c,0xc0c12e43,0xc192a18d,0xc24d7202,0xc0be9655,0x8c92a0e8,0x4fe37104,0x9eddc0b6,0x71048092,0xc0bf84d3,0x9892a124,0x94257104,0xa1e5c0c2,0xf2048c92,0xc5e98c0f,0x92a2b8c0,0x4db647c1,0xcfe970c2,0x92a531c0,0x4d323ac1,0xc615ddc2,0x4840c740,0x15c26200,0x3e4e40d0,0xd6620048,0x9540c6e0,0xf2004840,0xc3d1870f,0x92415740,0x4e3930c1,0xc15a94c2,0x9241f340,0x4dd869c1,0xbec2a6c2,0x54429740,0x7c357100,0x44a340b6,0x6200c092,0x40bfb125,0xc0425c,0xc2c076c4,0x92419a40,0x8e7150c1,0xf400a841,0x8e34ca0d,0xbdbcb641,0x92a0b3c0,0x8d3258c1,0xc0f52141,0x92a17fc0,0x8b1bfcc1,0x5300b441,0x418d6938,0x4400b48a,0x418e2d0c,0xc8b100b4,0x79418eca,0x2cc0c7bc,0x41492a3,0xc4b644c4,0x92a26cc0,0x918264c1,0x53012c41,0x418f7720,0xb1012c41,0xc23bab2e,0xc05842fa,0xc8935745,0x63abf201,0xc8c09298,0xe4c19360,0x23c234d4,0x46c08876,0xc4c1935e,0x26c23c5f,0xcbc08e9b,0x4cc1935f,0xf3c23592,0x6fc08105,0x7c1935c,0xc2c23b9c,0x1c0937c,0x18c19361,0x60c23a5f,0x4ac05872,0x94c19357,0x4cc239a9,0x51c0808a,0x13c1935c,0x41c239b6,0xbec0642e,0xecc19358,0x46c23c66,0x93c062d3,0xac19358,0x2c24996,0x42c09484,0x3cc19361,0x95c248d8,0x55c08cba,0x98c1935f,0xd0c25002,0x52c094c6,0x91c19361,0x46c250df,0x2dc08c19,0x21c1935f,0xebc249aa,0xfc07f01,0x7ec1935c,0xa3c248f2,0x90c08593,0x2fc1935d,0xa0c25044,0x40c08046,0x62000c5c,0x409433bc,0x6017df,0x7fecaf62,0x601ce040,0xbfc66200,0x1af34087,0x17620060,0xf1407f67,0x6200601c,0x40886115,0x601acb,0x94f96662,0x6017ae40,0xe6b46200,0x192e408e,0xff200b4,0x408e43f4,0xc1931957,0xc234d0ca,0x40890653,0xc1931aa2,0xc2356c28,0x40931cce,0xf01824,0xbce23ff2,0x1caf4080,0xab2ec193,0x8c1cc23b,0x18084093,0xba04c193,0x2535c23b,0x21ac4059,0x62b0c193,0xd1bbc23c,0x207a4062,0x6fccc193,0x3bb4c23a,0x21c94058,0x8be0c193,0x5a73c235,0x1c884081,0xb2fac193,0xf495c239,0x20364064,0xad6210ec,0x53bef2a3,0x8195042,0xf3b7000c,0xcdbef21f,0xf6c19556,0xc3637,0x311100f,0x511400f,0xd01b5035,0x7f229b8,0xc1d01b50,0xc0a16e46,0xc197df57,0xc1d01b50,0xc0f4b303,0x187b18,0xf4a14fb5,0x97f3ebc0,0xb4dfecc1,0xec350030,0x30b4df,0xb4dfec35,0xec350030,0x30b4df,0x99008f1,0xce92c229,0x4546bf58,0x990c193,0x6940c229,0x7878bf58,0x62000c96,0xc00fcd14,0x18505b,0xfb3c0b5,0x96838dc0,0x22a2f5c1,0xf5350030,0x3022a2,0x22a2f535,0xf5350030,0x3022a2,0xa329a735,0xa7354e78,0x4e78a329,0xa329a735,0xa7354e78,0x4e78a329,0xa9a8a035,0xa0350024,0x24a9a8,0xa9a8a035,0xa0350048,0x30a9a8,0x6b2a00f9,0x152b4165,0x4bb0bfd4,0x6b2ac193,0xb7000c6d,0xbfd3f43c,0xc1956029,0xc656b2a,0x416d8200,0xc02a0a78,0x30539a,0x175e2006,0x15001865,0xf9001865,0x2abecf00,0x824cd3c2,0x935ecdc0,0x24f202c1,0x69b5000c,0x31c0823b,0xcfc197c5,0xc2abe,0x24f202a2,0xc3e64dc2,0x306f06c0,0xd4e36200,0xd56ac0c3,0x18040024,0xbecf3500,0x3500182a,0x109a0987,0x987351a,0x371a289a,0x18aa0987,0x18aa1700,0x109a1500,0x987351a,0x371a109a,0x18aa0987,0x18aa1500,0xfe07f200,0xbcc20b9b,0x7e3e86b3,0xfec1933c,0x54c20b9b,0xf73e8737,0x62001850,0xbe7297c0,0x184073,0x71904b62,0x4854ecbe,0x300654,0x300717,0x300717,0x300715,0x249e5c44,0xa24a4041,0x41249e5c,0xbfff76de,0x1889c4,0x1fcd0c62,0x185256c0,0xbb62b700,0x8db9c01f,0x9e5cc195,0x17003034,0x17003034,0x15003034,0xf9003034,0x32b07900,0x53fd61c2,0x9338053f,0x2c4a13c1,0xfb5000c,0x33f547c,0x79c19738,0xc32b0,0x2c4a13a2,0x12684dc2,0x304319bf,0xe9af6200,0x4317bf11,0x18040024,0xb0793500,0xf2001832,0xec54c507,0x9cc97ebf,0x934844bf,0xec54c5c1,0x9c8a2fbf,0x184842bf,0x45e96200,0x4f8cc009,0x42c40018,0x8ac00926,0x1ac1974f,0x303d96dc,0xdc1a4400,0x303d96,0x96dc1a44,0x4400303d,0x3d96dc1a,0x100f0030,0xe3350520,0x20288098,0x8098e339,0x100f2040,0xe3350120,0x188098,0x8098e344,0xf2294040,0x2018ec07,0x88b6fac2,0x93361e3f,0x2018ecc1,0x4fd8cfc2,0xc4500bf,0x6b097100,0x965a3f89,0x7100189e,0xbf4e70b0,0x449ea53c,0x240401,0x2c4a1339,0x48040018,0x4a133500,0xa003c2c,0x9cd529dc,0xd7e645c1,0x9373f8c0,0x9c4a6bc1,0xf40829e8,0x4a6b3529,0x3f1a109c,0x549c4a6b,0x28350e2a,0x142810f8,0xef82839,0x2806000c,0x28101514,0xf8283714,0x8214100e,0x239cc20e,0x8ef2c0f2,0x40040048,0xf8283514,0x37001810,0xfc100b9c,0xe4101715,0xc2108236,0xbcd39970,0x247a2c,0xf373806,0x8074668,0x30041644,0x52200f00,0x5c0af707,0x8893f041,0x931ccb40,0x5c9e5cc1,0x889cc741,0x95582e40,0x6c9e5cc1,0x20060030,0x9e5c3752,0x1500306c,0xf100306c,0x682e7008,0x9abd34c1,0x934824bf,0x682e70c1,0x9a99e1c1,0x958387bf,0x1b62000c,0x19bfdabd,0xb700184c,0xbfda99c8,0xc195877c,0x30582e70,0x30581700,0x30581700,0x30581500,0x6b2ab100,0x64fe4109,0x34a83fa0,0x423c493,0x2aa221a8,0x3e41096b,0x9d3f40ca,0x4001838,0x2a372310,0x30196b,0x301917,0x301917,0x301915,0xb84a6b26,0x4a6b392c,0x4000ca6,0x6b372d18,0xcaa4a,0xa7c1a682,0xa9bf82cd,0x4003046,0x6b372d24,0x18aa4a,0x2d24aa15,0x9d55637,0x5f21cf8,0x1f79c209,0x4927bfab,0xd556c193,0xfc26c209,0x848abfaa,0x90b70024,0x96bf55f8,0x56c19580,0x240dd5,0x240d17,0x41d400a,0x200f0030,0x2024074f,0xf404e0c2,0x200b9c01,0x1fbc94c2,0x9566cfc0,0x1c0b9cc1,0x390510c2,0x501c0b9c,0x30064f,0x301c15,0xdae40535,0x5a21440,0x9fc1dae4,0x26c0db10,0x40018b0,0xf71c50,0xc1dae405,0xc0eb1097,0xc195b41b,0x30d2e405,0x30d21700,0x30d21700,0x30d21500,0x157ff200,0xfec23bf1,0xd73f8260,0x89c1a9ee,0x80c23c09,0xd3f860f,0x30c1ac55,0x1ec23ff7,0x31c088ec,0x8cc19e5e,0x80c24103,0xd3c08899,0x7cc19f01,0x56c2412e,0x5bc08536,0x52c19fb5,0xb7c24126,0xeb40629b,0x52c18f55,0x7c240fd,0x9c406f79,0xdc18f5a,0x23c2400c,0x5640766b,0x9ac19067,0x3c24059,0x3406024,0x3ac18f33,0x12c23fa6,0x9f405f85,0xa8c19078,0xb8c24127,0x7dc06a3f,0x77c18f94,0xf5c240fd,0x74c05d82,0xf2003c8d,0x5660c803,0x90a051c0,0x405a9dc1,0x6c923ec2,0x3c6943c0,0xd83ff200,0x9bc06d46,0x2cc190b1,0xecc23c09,0x824038a0,0x78c1ac46,0xec23868,0x9b403a88,0xeec1aaed,0xeac24174,0x57bf7093,0x20c1ac1c,0x25c2389d,0x2e3f473e,0x4ac1ac57,0xbec237df,0x3d3f7717,0x2cc1ac92,0x4c23c09,0xeec036ae,0xf2003c73,0xaa71fcff,0x1b83c038,0x92e3c1ab,0x60c8c24a,0x41004040,0xa1d2c1ac,0x7586c238,0x6342bf3f,0x3696c1ac,0xb828c23f,0x52fc3f82,0x7331c1ac,0xdd55c241,0x51c3f77,0xa32c1ac,0x33b9c23b,0x73f3bf81,0x6b32c1ac,0x8733c23f,0x1c16bf70,0x1972c1ac,0x5df2c23c,0x65a6bf86,0x86abc1ac,0x5140c23f,0x81273f71,0x6480c1ab,0x3a6dc238,0xfbbbf5a,0xa084c1aa,0xbabac238,0xee3d3f47,0xe013c1a9,0x69e8c237,0xff2c3f6c,0xcc1fc1aa,0x481c237,0xbca9400c,0xfdc6c1a9,0x9570c23a,0x63f63f89,0x280c1ac,0x6406c23b,0xf0b33f8b,0x2848c1a9,0x4c90c23c,0xe33c401f,0x734c1a9,0x6e6ec23c,0xe0214038,0x6ff6c1a9,0x67b6c238,0x72da404f,0x7066c1ac,0x53bdc238,0xe66b4049,0x990c1aa,0x99b7c256,0xa7b7408e,0x990c1a5,0xa65dc256,0x1c5c4066,0x97fc1ac,0x9fe8c256,0xee09405d,0x830c1aa,0x9781c256,0x5b86c073,0x990c1aa,0xd5dcc256,0x530fc064,0xe56c1ac,0xd7b8c256,0x3aa4c086,0x990c1a8,0x7ce5c256,0x31bc08e,0x98ac1a4,0x572ac256,0xf9f2408d,0x867c198,0x7243c256,0xfea4070,0x992c195,0x4110c256,0x3c214062,0x973c193,0x9889c256,0xdac84089,0x987c19a,0xc737c256,0xa2bec06c,0x91ac193,0x9ab3c256,0xe089c065,0x8eac194,0x831bc256,0x1dddc088,0x992c19a,0x390c256,0xaa08c08e,0x839c19a,0x9c28c256,0xbceb4087,0x6ff6c1a6,0xeaac238,0xb3c1c04d,0x7066c1ac,0x7675c238,0x17fcc047,0xb783c1ab,0x87eec238,0x6a31c084,0x734c1a4,0xa17bc23c,0xd85c036,0x2848c1aa,0x7fa2c23c,0xa6ac01d,0xea44c1aa,0xb320c23b,0xfeb4bf7b,0x17cc1a9,0x5e9ac23b,0x148bf88,0xdf4ac1aa,0x3d19c237,0xa146bf6f,0xcc1fc1ac,0x3a1dc237,0xdf12c00a,0xfff2018c,0xf30221ff,0xd8fbf64,0x59e8c1ab,0x4930c241,0xef7a3f71,0x84b4c1a9,0x9d45c23f,0xef773f71,0x8604c1a9,0x1577c23f,0xfe2cbf6a,0x5b38c1a9,0x697bc241,0xfe2fbf6a,0x4700c1a9,0x9974c238,0xee1e3f8e,0x4992c1a9,0x480fc238,0xda843f9e,0x1b7cc1a9,0x19bc23b,0xbbc14020,0xf516c1a9,0x51b5c23a,0xd1453fa1,0xef57c1a9,0xb6c8c235,0x6fc54048,0x2848c1a8,0x92e6c236,0xb52c4048,0xb31fc1a9,0xf2f5c235,0x40d5404a,0x6ff6c1ac,0x9635c238,0xb6314048,0x8b6ec1a9,0x1a00c238,0xdc84088,0x575ec1a3,0x79f4c238,0xd94c408f,0x38d2c1a1,0x5a98c236,0x14d8408f,0xf059c1a1,0x5769c250,0x9ee6408f,0x26e0c19e,0x51dfc240,0xe048408f,0x9b49c19e,0x2e7fc23b,0xefd8408f,0x4c55c195,0x1217c24a,0xc1e2408f,0x42e9c18e,0x12c5c24f,0xee20408f,0x336ac18e,0x115ac241,0x8f8a4090,0xbb9bc19d,0x53f6c248,0x94a7408f,0xdbc0c19e,0x13d9c23a,0x33f9408f,0xc14ec18f,0x117bc236,0x9ac0408f,0xbad2c18e,0x507fc249,0x873e408f,0xeb24c19e,0x5037c24f,0x7526408f,0xd2f4c19e,0x3320c23f,0x1b2a408f,0x990c197,0x14afc236,0xa9f408d,0x21e8c198,0x9e02c255,0x1efc058,0x10d2c1aa,0xc309c240,0xe86dc08e,0x1714c19e,0xc1d3c250,0x36c0c08e,0xc646c19f,0xc439c249,0x9b56c08e,0x42e9c19e,0x12cc24f,0x34e2c08f,0x990c18f,0xbafec236,0x5052c08c,0xc14ec198,0x275c236,0xe181c08f,0xa94ec18e,0x12cc23a,0x34e1c08f,0x6c06c18f,0xe6e6c23b,0xd813c08e,0xcb0ec195,0xc5a4c248,0xec3c08e,0x186ec19f,0xcaedc241,0xb3dbc08e,0x57bcc19e,0xce90c238,0x289cc08e,0x38d2c1a2,0xb956c236,0x5b99c08e,0x532c1a1,0xd2edc251,0x6345c08e,0x4c55c19e,0x1dac24a,0x8a4c08f,0xc792c18f,0xe1dfc23f,0x1da7c08e,0xb31fc197,0x3fc235,0x72c9c049,0x2848c1ac,0xc882c236,0xe68fc046,0x3f201c8,0xc0470082,0xc1a8a133,0xc2386ff6,0xc046cbc0,0x1f8e794,0x1e371962,0xf8e31cc0,0xbf98b501,0xe85abf9c,0x6ff6c1a9,0xf202a03f,0x3ed7d313,0x8ad0f6c2,0xa9fc98bf,0x41a32ac1,0x7825ec2,0xa9f04ac0,0x3ed8ecc1,0x8e473dc2,0x18e9053f,0xd1bf200,0x4abf9353,0xc2c1a9f0,0xbbc24301,0xeac006b7,0x23c1a9cc,0xb8c24308,0x6fbf9491,0xc3c1a9d2,0x4dc2433c,0xaa3f95f8,0x40060ed,0x2aa20420,0xdbc241a3,0x8d40094d,0x62003cce,0x4008810a,0x18ab60,0xa4661bf2,0xe2733f96,0x8471c1a9,0x92f7c23f,0xba1e4020,0xf93cc1a9,0x81e9c242,0x65d8c05e,0xb7a4c1a9,0x45fec237,0xd44b3f92,0x3f20024,0xc01ec893,0xc1a9e19c,0xc23b2848,0x3f947a42,0xcc4cc,0xe5711bf2,0xd6efbf90,0x176c1a9,0x910cc243,0x86923f9b,0x4992c1a9,0xb07dc238,0xeddebf9a,0xc9cec1a9,0x498cc235,0x225c406f,0xfff502e8,0x88a4c2ff,0x2a30406f,0x29b7c1a8,0x4e2bc255,0x83134085,0x2bb7c1a4,0xb3d9c255,0x94d54065,0x5b7cc1a9,0x7321c235,0xa72d4068,0x5b79c1ab,0xa8bdc235,0x94be4089,0x5b78c1a7,0x7f97c235,0xaca6408f,0x4122c1a1,0xba0c238,0x6c1a4085,0x282c1a2,0x7c70c238,0x5f5d4088,0x6246c1a1,0x9177c236,0x89d94085,0x924ac18f,0x77bec23a,0x932b4085,0x6c06c18e,0x937bc23b,0x93b24085,0x9690c195,0x97d7c23f,0xaf434085,0xe83cc196,0xd76c23f,0x1b314086,0x3a88c19c,0x4fb7c240,0xe7214089,0x236fc19e,0xfcafc241,0x1ff34088,0x457ec19e,0xd1cac241,0x853e4081,0x2848c198,0x7de3c241,0xb70c4082,0xa66dc195,0x2118c248,0x24e8404b,0xa32cc193,0xb895c248,0xa976406b,0x29cec193,0xb179c241,0x6a94058,0xa32ac193,0x597bc248,0xdb1c408c,0xbc60c198,0xc03cc248,0xa13f4085,0xa32ac19e,0x1c04c248,0x29b64082,0x940fc199,0xf1b2c248,0x752f4053,0xc196c195,0xb6a2c249,0x77864085,0x69d2c19e,0x792fc24a,0xf07e4085,0x6067c18e,0x7881c24f,0xc4444085,0xf1e7c18e,0xb6e9c24f,0x899d4085,0xf121c19e,0xbc43c250,0x96fa4085,0x1cccc19e,0x4b66c251,0x6db44054,0x98fc195,0x6af4c251,0x51984077,0x990c194,0xbc99c251,0x6de44082,0x992c199,0x505dc251,0xcb77408d,0x2d74c199,0x1aa4c236,0xf25a4087,0x201fc1a0,0xc2cec255,0xe0b4c078,0x2269c1a7,0xe751c255,0xdb8ac084,0x3416c1a3,0xdad1c236,0x3894c085,0x500fc1a1,0x777dc238,0x10ac088,0x355c1a2,0x35cac251,0x6f7ac085,0x98fc19e,0x39b9c251,0x4c82c08a,0x993c198,0xf63ec251,0x4448c082,0x991c19a,0xbccfc251,0x798ec068,0x22d9c196,0x99d9c251,0x35adc055,0x1748c193,0x285dc250,0x2c62c085,0x6067c19f,0x6845c24f,0x645c085,0x69d2c18f,0x6796c24a,0x3280c085,0xa63fc18f,0x28c6c249,0x1221c085,0xaba1c19f,0x33b5c248,0x880cc085,0xa32ac19e,0xf959c248,0x2070c08b,0xa32cc199,0x4ae0c248,0xe3b5c06b,0xa32ac193,0xb988c248,0x69fac081,0x93cec199,0x9fa1c248,0xa5bec052,0xa61cc195,0xde40c248,0x5725c04a,0xe99c193,0x8a4cc241,0xa22cc056,0x2862c193,0xc7cec241,0xf88ac075,0x230ec193,0x7ccc241,0x8c63c07c,0x2848c194,0x78c8c241,0xb9f0c08d,0x97ecc19a,0xa6c4c23f,0xa080c085,0xa848c19e,0x4806c23f,0x2c58c085,0x9b49c197,0x4be2c23b,0x3439c085,0xc6ccc196,0xf100c03a,0x36624614,0x857b1ec2,0x8fcbe5c0,0x38b3f2c1,0x8539a6c2,0xa1afefc0,0x37a32ac1,0x84799ac2,0xa1eebac0,0x67102c4,0x62c08eda,0x2dca1f2,0x88d41571,0xa7d8a2c0,0x10f102f4,0xc06689b1,0xc1abe06f,0xc2362848,0xc06dd65e,0xc1a86538,0xc238d739,0x4068b424,0xca96dfc,0xee10f100,0x51c066ed,0xb2c1a9a7,0x28c2432b,0x153fbbd6,0x2dc1a7ce,0xac23640,0x140742c,0x3ca0ba,0x5af304f1,0xb076406e,0x565cc195,0x856ac236,0xec2dc074,0x71002495,0xc072ef78,0xa4a0f63e,0xc104f104,0xafc0638f,0xfec1a955,0xf3c242bc,0x2c07a1e,0x18a755,0x331628f1,0x1310c080,0xf3bbc1a6,0x6608c242,0x203fc084,0x992c1a2,0xd782c242,0xecffc084,0x5a00c1a1,0xe6b0c242,0xabfa4085,0xf13ac1a1,0x7a4ec242,0xad5e4083,0xf2003ca3,0x80f9c803,0xa5d37540,0x42f04ac1,0x792d38c2,0xbcf9e440,0xddfff507,0x406550f8,0xc1a91d30,0xc242eb3b,0x405a9f17,0xc1a962eb,0xc2355cfc,0x40745575,0xc1a8c29b,0xc2356304,0x40851d8a,0xc1a12eae,0xc23586a4,0x40737de9,0xc1a1012d,0xc238b348,0x4085e380,0xc1a1585e,0xc2419304,0x40854628,0xc19b6574,0xc241e261,0x40856fdf,0xc19dc8bc,0xc23ff227,0x4085e393,0xc19f969f,0xc2411646,0x407ca872,0xc1944341,0xc240f782,0x407787d3,0xc193ac30,0xc2412184,0x404319b9,0xc194a44d,0xc249e133,0x402bc287,0xc1932955,0xc2401b86,0x3f7a2553,0xc19336db,0xc2415b1a,0x3f6ee558,0xc1933731,0xc2411534,0x4041af0c,0xc19326a1,0xc24fce38,0xc02b8202,0xc19353c8,0xc2401d10,0xc03e753e,0xc1935624,0xc24fd291,0x402c024f,0xc193294d,0xc2415a70,0xbf6cdb27,0xc19345e6,0xc249dcf3,0xc02b733b,0xc19353c6,0xc2401ecc,0x403eeb0b,0xc19326f7,0xc2411643,0xc0415400,0xc1935680,0xc251074f,0x404b65c3,0xc1932408,0xc2401ecc,0xbf77851f,0xc193463a,0xc2413599,0xc042aad2,0xc1953c89,0xc2356525,0xc0847bf0,0xc1a1583c,0xc23586a4,0xc0723cf3,0xc1a13d3e,0xc2355cfc,0xc07299bb,0xc1a8fed2,0xc235c9ce,0xc06d97c4,0xc1a85d55,0xc23870c1,0x408253bb,0xc1a7b176,0xc2427538,0xc085859d,0xc19ddf97,0xc23870c1,0xc0817e3f,0xc1a7f1b8,0xc2395f6c,0xc077152b,0xc1a039b4,0xc2393029,0xc0847edf,0xc1a09a71,0xc2398eaf,0x40832c5a,0xc195b1bc,0xc23a677b,0x407ec305,0xc19568ca,0xc2373286,0x403eacf3,0xc195b65c,0xc236c1e2,0x4077f484,0xc195af46,0xc236f515,0x4031e02f,0xc195b7f1,0xc23a4ffe,0x406364c7,0xc19593d9,0x18376ff6,0x8637f200,0x4c23732,0x51401ead,0xc195ba,0x77c23747,0x7b400513,0xc6c195bd,0x6c23bac,0xee407f7f,0x3bc1956d,0x85c23cfd,0x2a408442,0xac195d4,0x31c23bb8,0xb04064d2,0x16c1956e,0x5cc236f5,0x103ff08d,0xf20054bf,0x11e03b03,0x95bbe640,0x3cf515c1,0x47f49dc2,0x24b53640,0x8d7e6200,0xc3053fb0,0x98620024,0xdb3fe3c0,0xf2000cbf,0xbd5a4203,0x95c23b3f,0x3d3286c1,0x2eacfbc2,0x3cb85640,0xe0376200,0xb9eb4021,0x3f62003c,0xfa3f611b,0x530030c6,0x3fa3c0ba,0xf30048d0,0x7ab4c802,0x95c6303f,0x3d513ec1,0x1379d5c2,0x78b340,0x1e04462,0x3cbde040,0x36e36200,0xcaef3ec2,0x1653003c,0x253ef56a,0xa662000c,0xc53f4781,0x62003cc7,0x3fe6f3cb,0x78bfa8,0xc3c0a962,0x3cc1d53f,0x225b6200,0xcee4bdf7,0x5353003c,0x1abca958,0xd162000c,0xba3e8f03,0x62003ccb,0x3fa6f3ed,0x3cc39d,0xc0c203f2,0xc5ca3f83,0xa32ac195,0x99fec241,0xae264008,0x8620048,0xdabf1ee4,0x530048d2,0xbf054a80,0x62000c0f,0xbe61f751,0x48cfaf,0xe80c03f2,0xc7923f4d,0x6ffc195,0xb689c243,0xb4744008,0xc7620054,0xc03f0781,0x620048c9,0xbf8f71eb,0x48d6cf,0x82a51e53,0xc04bf,0x387d9162,0x48d3a4bf,0xd09e6200,0xcb873e9b,0x4662003c,0xb53cf041,0x620090cd,0x3f960568,0x24b142,0x485db762,0x48cf7cbe,0x3eaf6200,0xd799bf9c,0x562000c,0xf9bfc2a5,0x62006cd9,0xbfcf71c9,0x48dac4,0xf0fb6562,0x18d1aabe,0xb8d46200,0xdeb9c007,0x72620030,0xeec00152,0x62000cdd,0xbfdc3e8e,0x60db8e,0x32173c62,0x3cd372bf,0x7d806200,0xd59fbf78,0x61620288,0xe3c02152,0x80030e1,0x3662000c,0x83c00e1f,0x62003cdf,0xbf990b7c,0x3cd767,0xbc3e9f62,0x18d994bf,0xb5b6200,0xdb5cbfd9,0x3f20018,0xbffc3e7d,0xc195dd89,0xc2373286,0xc02e1f25,0xe4e378,0xd6303f2,0xc5e8bf95,0xfbdac195,0xa869c242,0xb5803f95,0x9d62003c,0x51c00c85,0xf3003cdf,0x1e1f2e0e,0x95e17ec0,0x4303d6c1,0x9aeea6c2,0x963042bf,0x3a4f04c1,0x62c910c2,0x18c45c0,0x2c859062,0x30e346c0,0x41bf200,0xd5c04137,0xaec195e5,0x6dc2398e,0x56c082fd,0xf6c195f4,0x1dc23d6f,0x73c03e1f,0x9cc195e5,0x84c23baa,0xb5c06462,0x6200849f,0xc0080d17,0x39ccfde,0x397e04f1,0xa7bcc07e,0xbac4c195,0x177ac23b,0xb39cc07f,0xf206b495,0x49e6c587,0x95ede2c0,0x4306b6c1,0x84074c2,0x95d356c0,0x395f6cc1,0x78460fc2,0x9ffc7240,0x393029c1,0x851a3bc2,0xa058c140,0x3cfdc4c1,0x840660c2,0x961922c0,0x430990c1,0x53e200c2,0x9cec1dc0,0x430a5fc1,0x8005fbc2,0x9a75eec0,0x430990c1,0x3f571dc2,0x9b1af5c0,0x430990c1,0x5511a9c2,0xa25957c0,0x432131c1,0xeb8e22c2,0x97d0c8bf,0x430990c1,0x426256c2,0xa4aa4fc0,0x430990c1,0x438e75c2,0x9af17640,0x430af9c1,0x68b5d4c2,0x60ec4840,0xc504f100,0x6e40563d,0x6cc19d42,0xd8c242ee,0xec4084e6,0x789d8b,0x550e1f71,0xa2afa840,0xfff2000c,0x88ad21ff,0x808d4040,0x2ff6c1a4,0x7df2c243,0xcdafbfb9,0xadc3c197,0xe58c23d,0x6e594084,0x2866c194,0xea85c241,0x3ca14066,0x8aa8c195,0x419ac241,0xc97d405e,0x89a0c195,0x5f9ac241,0x81c0404f,0x3cc2c195,0x8c82c23f,0x5db94083,0x3cc4c194,0x2e6dc23f,0xb5d14084,0x1acbc19b,0xb5a6c23f,0x451a4066,0x88d9c194,0xc97ec23f,0xbcf54064,0x1d58c193,0xafd9c241,0x38344052,0xad58c194,0x856ec23f,0xbc6a405d,0x1608c193,0x794ac240,0x860f4057,0x2ce8c193,0xb724c240,0xb5484076,0x2576c193,0xb617c240,0x2e354052,0xacb2c194,0x8994c23f,0xb3bf406f,0xe0c8c193,0xae9fc240,0x8ac14055,0xe2b8c193,0x5586c23f,0x40ff407a,0x8b14c194,0x4c7fc240,0x7c8b4055,0xa19ac190,0xe3dec23d,0x5c0e4048,0x2990c194,0x49fc240,0x3bebbf76,0x2b12c195,0xe454c240,0x48d1c03e,0xdd19c195,0x7cccc249,0xba2bc02b,0xcedac195,0x5a5cc24f,0xba28c02b,0x743c195,0xebddc251,0xbcd2c04a,0xccd0c195,0xe076c24f,0x8fb6402b,0xdb6ac195,0x93ec249,0x8fb0402c,0x2677c195,0x43f6c240,0xf50403f,0x8eaec195,0x454ac241,0x8d334040,0x2f19c195,0xb28c240,0x38693f77,0x598ec195,0xffa0c241,0x9d943f6e,0x5bd4c195,0xd940c241,0xac49bf6c,0x3cc4c195,0xb70fc23f,0xf889c083,0xb0c2c19b,0xd80ec23d,0xac55c083,0xa1fcc194,0x6d50c23d,0x8cecc048,0x90eac194,0xc1a9c23f,0xce66c068,0xf956c193,0x49e9c23f,0xbf20c074,0x5148c193,0x246cc240,0xf4edc055,0x1bacc193,0xaf4bc241,0x76e7c050,0x7f68c194,0x7158c23f,0x6a5bc071,0x4ab6c194,0x2b4c240,0x6f5cc07b,0xc21cc194,0xc42fc240,0xf1c7c077,0xadcac193,0xbb41c23f,0xf000c05c,0xadc193,0x5bc4c240,0x79fcc051,0x3482c194,0x145ec23f,0x7e18c060,0x8b14c194,0x7f6bc240,0xb587c077,0x89a0c190,0xd4e5c241,0xb4f8c04e,0x5b710204,0x64c05db2,0x21c9600,0xed78fff2,0xadc06663,0x7ec19575,0x64c24145,0x5ec08174,0xd6c198c5,0x92c24195,0x28c084dd,0xddc19bb6,0xa5c242a4,0x7c404e10,0x8dc195a5,0x87c242a6,0x90405e50,0x8fc195f9,0x38c25524,0x80406410,0x4dc195c0,0xb0c25521,0x174084b7,0x12c19aab,0xccc2552f,0x27c06444,0xaec195fb,0xf3c25520,0x13c08449,0x48c19af7,0x1ec242f6,0x41c04d88,0x12c195fa,0xa1c242a4,0xcac05dbd,0x44c19633,0xd3c23d48,0xcc03e32,0xdac19368,0xdcc23ce7,0xe0c03e2c,0xf6c19428,0x7bc23b6f,0x88c03e31,0xa1c19393,0x34c23d4a,0xbdc03166,0xf6c19361,0xb6c23b6f,0xf3c03164,0xa3c19391,0x24c23ce8,0xb8c03160,0x44c19425,0xe4c23d48,0x17c01e32,0xdac19364,0xedc23ce7,0xebc01e2c,0xf6c19424,0x8cc23b6f,0x93c01e31,0xa1c1938f,0x45c23d4a,0xc8c01166,0xf6c1935d,0xc7c23b6f,0xfec01164,0xa3c1938d,0x35c23ce8,0xc3c01160,0x44c19421,0xe9c23d48,0x22bffc65,0xdac19360,0xfbc23ce7,0xf6bffc59,0xf6c19420,0x39c23b6f,0x9ebffc63,0xa1c1938b,0xa3c23d4a,0xd3bfe2cc,0xf6c19359,0xa7c23b6f,0x9bfe2c9,0xa3c1938a,0x83c23ce8,0xcebfe2c0,0x44c1941d,0xac23d48,0x2dbfbc66,0xdac1935c,0x1dc23ce7,0x1bfbc5a,0xf6c1941d,0x5ac23b6f,0xa9bfbc63,0xa1c19387,0xc4c23d4a,0xdebfa2cc,0x6200d855,0xbfa2c9c9,0xd88614,0xc0a503f2,0x19d9bfa2,0x4844c194,0xcc47c23d,0x5838bf78,0x6c620120,0xcbf78b4,0x62012019,0xbf78c6e7,0x12083b4,0x4599cc62,0x4851e9bf,0x93d56200,0x821fbf45,0x8c620048,0xe4bf4581,0x62004815,0xbef19913,0x485443,0xf1695e62,0x481517be,0x8e546200,0x7fbfbef1,0xfd620048,0xf4be8b33,0x6200484d,0xbe8b280f,0x487e2a,0x8b039f62,0x4811efbe,0x66666200,0x504e3ce6,0xc3620048,0x223ce961,0x62004811,0x3ce7125e,0x487bca,0x6996fb62,0x4849ff3e,0xaed56200,0x7a353e69,0xf9620048,0xfa3e69f7,0x6200480d,0x3f0732f0,0x484c59,0x74acb62,0x480d2d3f,0x38616200,0x77d53f07,0x7c620048,0xa3f3a65,0x62004846,0x3f3a6b72,0x487640,0x3a7dbb62,0x480a043f,0x995f6200,0x48643f83,0x4c620048,0x383f83a5,0x62004809,0x3f839c0f,0x4873e0,0x9d329c62,0x4842153f,0x35986200,0x724b3f9d,0xbc620048,0xf3f9d3e,0x62004806,0x3fc3993d,0x48446f,0xc3a52b62,0x4805433f,0x9bed6200,0x6feb3fc3,0x83620048,0x203fdd32,0x6200483e,0x3fdd357e,0x486e56,0xdd3ea362,0x48021a3f,0xcc926200,0x407a4001,0x85620048,0x4e4001d2,0x62004801,0x4001cdea,0x486bf6,0xe993162,0x483a2a40,0x9aae6200,0x6a61400e,0x41710048,0x25400e9f,0x1f893fe,0x21cc8162,0x483c8540,0xd2786200,0xfd594021,0xd9620030,0x14021cd,0x62004868,0x402e9920,0x183635,0x2e9a9e62,0x48666c40,0x3026f300,0x30402e9f,0x44c193fa,0x3dc23748,0xf5403e99,0xdac19338,0x34c236e7,0xc9403e9f,0xf6c193f9,0x95c2356f,0x71403e9a,0xa3c19364,0x63c236e8,0xcb4031d2,0x3f20018,0x4031cdd1,0xc1936606,0xc2374aa1,0x4031cc53,0x4835d0,0x1e994e51,0x90ea40,0x45c23671,0xbe401e9f,0x4f30090,0x9aa6c235,0x6866401e,0xe8a4c193,0xd274c236,0x18c04011,0xcde26200,0x69fb4011,0x64620048,0xc54011cc,0x51004839,0x3ffd32be,0x710120df,0x3eabc236,0x20b33ffd,0xc2358201,0x3ffd356e,0x906c5b,0xe3a50153,0x18b53f,0xe39bdc62,0x486df03f,0x98e16200,0x3dba3fe3,0xdf510048,0xd43fbd32,0x367101b0,0xbd3ec4c2,0x1b0a83f,0x8fc23582,0x503fbd35,0x53004870,0x3fa3a522,0x620018aa,0x3fa39bfe,0x4871e6,0xa3990362,0x4841af3f,0x65f15100,0x40c93f7a,0xc2367102,0x3f7a7dcc,0x8202409d,0x6b51c235,0x74453f7a,0x88530048,0x9f3f474a,0x3f620018,0xdb3f4738,0x62004875,0x3f473248,0x4845a4,0xf4cc6851,0x2d0be3e,0x1ec23691,0x923ef4fc,0x168940d,0xf4d72862,0x48783a3e,0x95745300,0x18943e8e,0x70e36200,0x79d03e8e,0xf5620048,0x993e8e64,0x51004849,0xbcb3311a,0x710360b3,0x37d6c236,0x6087bcb0,0xc2358203,0xbcb28523,0x487c2f,0x62d40b53,0x1889be,0x631d2e62,0x487dc5be,0x35096200,0x4d8ebe63,0x56510048,0xa8bf0599,0x367103f0,0x5817cc2,0x3f07cbf,0xf7c23582,0x24bf0593,0x53004880,0xbf38b4c0,0x6200187e,0xbf38c708,0x4881ba,0x38ccff62,0x485183bf,0xcc8a5100,0x809dbf82,0xc2367104,0xbf82c09c,0x82048071,0xc9dac235,0x841abf82,0x47530048,0x73bf9c5a,0x6b620018,0xafbf9c63,0x62004885,0xbf9c665e,0x485578,0xc2cc6862,0x885c92bf,0xc07b5102,0x1066bfc2,0xc2358205,0xbfc2c9b8,0x48880f,0xdc5a2553,0x1868bf,0xdc634962,0x4889a4bf,0x66456200,0x596dbfdc,0x27510048,0x88c00166,0x368205a0,0x16031c2,0x68215bc0,0x64d06201,0x8c04c001,0x2530048,0x5dc00e2d,0x94620018,0x99c00e31,0x6200488d,0xc00e3312,0x485d62,0x21661762,0xc647dc0,0x64bf6203,0x8ff9c021,0x2071009c,0x50c02160,0x3189425,0x2e2cf162,0x602552c0,0x31836200,0x918ec02e,0xff20048,0xc02e3301,0xc1936158,0xc2412849,0x407f574b,0xc198e818,0xc2412888,0x405ddd09,0xa5cd6bf,0x4a7ca671,0x95ba4140,0x17711464,0x1bbf93a0,0x2495ae,0x5d4cf571,0x960d8cc0,0xfff2003c,0x7e978190,0x992745c0,0x3f3cc2c1,0x834cb4c2,0x949eb6c0,0x42bfbbc1,0x7b3882c2,0x984cf840,0x42bfaec1,0x79dabec2,0x9873c7c0,0x48a761c1,0xc79e30c2,0x9aeab63f,0x48a037c1,0x499e62c2,0x9af5453f,0x48baadc1,0x412f7fc2,0x9b2a04bf,0x48b7afc1,0x3f27e1c2,0x9b2798c0,0x48919bc1,0xc31f04c2,0xa4b20dbf,0x4860c2c1,0x552f0ac2,0xa4b2273f,0x3ab621c1,0x78afc0c2,0x8e178f40,0x3a81dfc1,0x6724c0c2,0x9008d240,0x3b5558c1,0x6ac505c2,0x8dff0040,0x3b928ac1,0x7c2032c2,0x8feece40,0x3b6348c1,0x7908ffc2,0x8e5ef3c0,0x3b9133c1,0x674edbc2,0x90144ec0,0x3aafd8c1,0x6a130ac2,0x8e5d19c0,0x3a81eec1,0x7bb1f7c2,0x9016cfc0,0x47485ec1,0xc6f673c2,0x9af37f3f,0x47485ec1,0x454520c2,0x9b05e6bf,0x48a033c1,0xc4bd6fc2,0x9b04e8bf,0x49fe0ac1,0x550a28c2,0x9d3bbe40,0x48b6aac1,0x453f8ec2,0x9b042b3f,0x48c67bc1,0xc8a3c6c2,0x9b3043bf,0x49fe0ac1,0x53de0dc2,0xa26007c0,0x48bf61c1,0xc72229c2,0xa49258bf,0x48ab83c1,0x420a52c2,0xa4a515bf,0x48bf5fc1,0x44ede5c2,0xa47ff03f,0x48c7a7c1,0x45123cc2,0xa4531e40,0x48bb57c1,0x3fc5f4c2,0x9afa7140,0x49a541c1,0x547d41c2,0x9d1fbd40,0x491c22c1,0x4de36dc2,0x9bd91240,0x49ac34c1,0x53c6fcc2,0x9d5e1cc0,0x48a07bc1,0xc6a726c2,0x9aee343f,0x48a05ec1,0x496df4c2,0xcfaeb3f,0xd8fff200,0xbf45ed6c,0xc19b0744,0xc2490748,0xc04a9da6,0xc19bd0bd,0xc249febe,0xc053f9cf,0xc19d75b1,0xc248cc4f,0xc044673c,0xc1a47bf4,0xc2499c86,0xc0535f29,0xc1a28d52,0xc248b479,0x3f46cd7d,0xc1a48c76,0xc249b8fa,0x405411a9,0xc1a237f5,0xc2496fee,0x4052f517,0xc1a2c6b9,0xc249febe,0x405525ea,0xc1a22614,0xc24a92ed,0xc040e8fb,0xc19d4c35,0xc24a545d,0x4043723b,0xc19d1c3e,0xc24f8e10,0xc040b2c0,0xc19d4c40,0xc251ebd0,0xc04f47d4,0xc19d6614,0xc2505dc4,0xc04ebefd,0xc19d599b,0xc2547876,0x403fdcc6,0xc19d2d94,0xc24fb5eb,0x40426f4c,0xc19d1c4e,0xc2505db9,0x40501f2a,0xc19d31bc,0xc251f00d,0x40504bbe,0xc19d3641,0xc24a68c7,0x4043caa7,0xc19eab80,0xc24a3cc3,0x4047563b,0xc1a0bf8c,0xc24a96db,0x4041e7c9,0xc1a24f94,0xc24aa564,0x4041af75,0xc1a0c043,0xc24fa542,0x40420c95,0xc19eabb5,0xc25099ad,0x4054a1cb,0xc19ea968,0xc2547869,0xc03edcc6,0xc19d5cd5,0xc2550e70,0xc04027fa,0xc19ed600,0xc250a1ad,0xc053410b,0xc19ede02,0xc24f81ce,0xc0444125,0xc19edbfc,0xc24aa8c1,0xc04063b7,0xc19edb7e,0xc24a68c6,0xc0429e8c,0xc1a0f045,0xc24a545c,0xc042461b,0xc1a27f87,0xc24a3cc3,0xc0462a20,0xc19edc38,0xc24f8173,0x4044de8b,0xc1a0bfda,0xc24f8d0c,0x40420154,0xc1a24f8c,0xc2550d1c,0x4041649d,0xc1a0c421,0xc250a222,0x40548d22,0xc1a0bde0,0xc2506cbb,0x405a9bed,0xc1a0bd23,0xc2550de9,0x404114f0,0xc19ea812,0xc2506d15,0x405adbdb,0xc19ea89d,0xc24f9821,0x4048f02c,0xc19eaade,0xc2550f24,0xc03fd8e0,0x3cf54e,0xfffffff0,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x596fd22c,0x9edea2c0,0x4fa8cbc1,0x40eb0bc2,0xa0f011c0,0x4f9821c1,0x47c40dc2,0xa0f0e6c0,0x520b34c1,0x55fee7c2,0xa0f2a9c0,0x5098b9c1,0x5378c0c2,0xa0f25dc0,0x50213dc1,0x555743c2,0xa0f299c0,0x505e29c1,0x4fd7b6c2,0xa2435440,0x5479d2c1,0x3eb691c2,0xa26b73c0,0x5478b9c1,0x40112cc2,0xa23e4b40,0x505db1c1,0x4ef434c2,0xa269f0c0,0x4fbd8ec1,0x416f7ac2,0xa27f76c0,0x51f738c1,0x505eeec2,0xa2347740,0x51efe7c1,0x4f1e08c2,0xa2660cc0,0x2c1,0x3000100,0x4000200,0x1000200,0x92000400,0x93069806,0xa3079b06,0x907a407,0xa000700,0x8000700,0x9000a00,0xb000a00,0xa102a000,0x1a029502,0x1b005806,0x7e05fd06,0xa05fe00,0x10000800,0xf000800,0x99001000,0xf206b300,0x500b500,0x12061906,0xb001300,0xe408f500,0x1503c908,0xb001b00,0xcc0ace00,0x4e0aca0a,0x4f01a808,0x820a0608,0x7098009,0x5046107,0x8200d207,0xc3005d07,0x3b093a09,0x7c041c09,0x66026a05,0x67056d05,0x59065c05,0xf2066206,0xf806ef06,0x61086d06,0xbd085c08,0x3e094409,0xf202cd09,0x6202ce02,0x4a05bc00,0x330a7e00,0x56023402,0x59075507,0x410a6707,0x2a014501,0x2d062906,0x1402fc06,0xe8091309,0x4f097209,0x92040909,0x8a035401,0x91029702,0x9a035402,0x34035801,0x8d008e01,0x8d013400,0x36013300,0x35012c01,0x69015001,0x300a680a,0x32023702,0x31013702,0x5c003200,0x37003100,0x5c013801,0x54013700,0x5b055905,0x840a8905,0x4b0a830a,0x43084908,0x68056108,0x15056c05,0xe5041604,0x51024302,0x95024e02,0x9601bf08,0x49014808,0xc4014a01,0xc503d007,0xf40a9407,0x700af10a,0x7b017101,0xec0a9f0a,0x4c0aa20a,0x9c029b01,0x74015702,0x810a730a,0xa60aa50a,0x34021b0a,0xb5083308,0xb60ab20a,0xfc0b160a,0xfe0b170a,0xfb090308,0x55015808,0xb7015901,0xb6017807,0x9a05b007,0x1005b105,0xe099a0a,0x8b08a70a,0xe708a601,0x64096209,0x5088409,0xc9087802,0x7f08b808,0x1602f603,0xa6091509,0xd002fa05,0x4e014402,0xf4014201,0x17091802,0xee0b1109,0x8a0b120a,0xa20a9f0a,0x1f02ac0a,0x2302a903,0x27053704,0x58055504,0x1b054f05,0xf002fe04,0x36023402,0x74023a02,0x72017601,0x4e084601,0x38084f08,0x39028601,0x14010601,0x76011901,0x73017201,0x28092401,0x99093809,0x89098a09,0xa605a909,0xac030f02,0xa605b505,0x7e058c05,0xc7058805,0x3f094009,0x6a09ec09,0xe3096909,0xe0021903,0x3009b903,0x309ab09,0x7f097d0a,0xfb0afd09,0xcb0afc0a,0x15021903,0x160b1202,0x870b0f0b,0x29099f09,0xde016509,0x703ea02,0xd601cf02,0x86037501,0x702dd03,0x15041203,0x35033604,0x53042405,0x3e0a6301,0x50056a01,0x3a054f05,0x3b018e02,0x570a5a02,0x35015a0a,0x3b023a02,0x6c09f602,0x95097209,0xbb0a910a,0x50ae10a,0x990aff0b,0x9a01e208,0x8d028b08,0x80028e02,0x7a0a790a,0x3701c90a,0x6c017502,0x4a024b01,0x5c008d02,0x75013900,0xdc07db03,0x70057b07,0xb6057a05,0x2305c405,0x6a016b05,0x50025001,0x3f016a02,0x6067e02,0xd4067f01,0xd00acf0a,0xaf0aa90a,0x540ab00a,0x5301df02,0xb40abc02,0xe80ab80a,0x61054202,0x55025905,0xc2025702,0xc301aa08,0x3d025a08,0xb401f502,0xa90aa80a,0x110af00a,0x210b100b,0x22033b05,0x350a3405,0x32026d0a,0x2e042403,0x40024304,0x7e023e02,0x7d00ff02,0xff00f702,0x7f027e00,0x7e00f702,0xc9014602,0xe9013f02,0xea096409,0xad0aa409,0xa40aa50a,0xa5032302,0x1f05e602,0xd1051c05,0x3b083c01,0x9b0aed08,0xab0a970a,0x34083501,0x28051208,0x10032503,0x14081808,0x7f808,0x8607fc08,0x88028702,0xb602c402,0xc302b502,0xb402b502,0x3f024202,0x3c024102,0xfd054005,0x6a027c02,0x5a057c02,0x88041703,0x5c055401,0x3b055305,0x1a041d05,0x96029504,0x4b02a002,0x47024c02,0x43057402,0xb1053f05,0xa102b202,0xe208e602,0xc508e908,0xc60ad30a,0x420a440a,0x4402770a,0x43032c03,0x5d086103,0xd0085a08,0xd308cc08,0x78053708,0x90056e05,0x92029302,0x620a6502,0xd60a630a,0xcc0ad70a,0x9f028c0a,0xca029e02,0xcb035708,0xca02b808,0xdb02be02,0xc802c002,0xc802db02,0xdc02d402,0xd402db02,0xd402dc02,0xdc02d202,0xde02df02,0x26078402,0xc6051705,0xb802bf02,0x14031802,0xf802eb03,0xfd08ff08,0x60098e08,0x97098d09,0x3d093809,0xd605ae09,0x4102d502,0x8034003,0xfd097903,0x6209ff09,0x5b026d02,0x5809e102,0x5a09e009,0x5c035b03,0x7109f003,0xb5096a09,0x98093809,0x5409e009,0x3909dd09,0x4209cb09,0x2e09a509,0xa092a09,0x8409870a,0x3909b909,0xe5093309,0x1d051c05,0x2b099c05,0xc609a409,0x41093f09,0xe10adc09,0x430ae20a,0x46064206,0x9303e006,0xe9036f03,0xea059c02,0x1e0b1a02,0x6b0b220b,0x4e054f05,0x7b067205,0x8b067506,0x8e069406,0x3a052806,0x7052103,0x11041003,0xe6055404,0xe3054b02,0x14041502,0x96029204,0xe4029502,0x1402e302,0xae06aa04,0x5d06a606,0x5f013e0a,0x2d0a340a,0xed0a2c0a,0xe3021a03,0x8f040803,0xd3040901,0xcf01ac03,0x2203cf03,0xd903ed02,0xdc06d806,0x20041d06,0xee041904,0x4f045902,0xf030b04,0x80091b09,0x7d0a7f0a,0xa701ac0a,0x4301a101,0x102fd05,0x3a073d03,0xee074307,0xa507a601,0x3e09ba07,0xb7093709,0x35093709,0x9a00be09,0xef00fd06,0xed027b00,0xaf07b300,0x8f07b507,0xaa02a902,0x601ca02,0x28090509,0x4f0a4d0a,0xc60a830a,0x330a870a,0x34028301,0xa908a301,0x9408aa08,0x56015f02,0x79087701,0x65087608,0x6601d508,0x2b053808,0x8b042704,0x9e0a9b0a,0x80087f0a,0xac086e03,0xa30aa70a,0x1058f0a,0x3f04fc05,0x50024302,0x10033302,0xbd090e09,0x26082703,0x49025208,0x40024a02,0xc405fb00,0x1d05e400,0x20047105,0x28053d04,0x62018304,0x4b086d08,0x59055105,0x30027105,0xbc027404,0xb20aba0a,0x7e0a7f0a,0xf202410a,0xf1037407,0x36023807,0x68023702,0x67056505,0x9600d705,0x1100be06,0x410a0f0a,0x8309080a,0xa7090703,0xf407f303,0xa20a8907,0xcd0a9d0a,0xc20a1509,0xd7046009,0x53044905,0x54016d02,0x77057302,0xb0057405,0x4a084c01,0x66085d08,0xc9086708,0xbe01c308,0xbf08bb08,0xa208c008,0x91057d00,0xa805ac00,0x3905ab05,0x19091a03,0x82050209,0x6e04fb07,0x500a6c0a,0xf80a9101,0x8a0a960a,0xba07bb01,0x8702a807,0x3c02ad02,0x75016f02,0xcb05aa01,0x3902ba02,0x2b041a05,0x47054a04,0x5e054805,0x63055c05,0x98090b05,0xa9090c01,0xaa018c08,0xf9054008,0xbd02f702,0xbe0ac20a,0x46057b0a,0x55053605,0x72015701,0xea0a9c0a,0x120aef0a,0x24092503,0x8f0a8c09,0xe60a940a,0xb806b900,0x2b0a3306,0x870a670a,0x63077700,0x5f056100,0xf7056205,0xf806fd06,0x75015a06,0x6401570a,0x5d055205,0x5a024805,0x64025802,0x5e055d05,0x3e033d05,0x44054403,0xe6033e05,0xc8082002,0xed081f03,0x2c027a00,0x57056401,0x68055205,0x76042f02,0x51055902,0x8b056605,0x7d050305,0x69056b05,0x69056a05,0x6a056d05,0xf60b1405,0x510b150a,0x66055005,0xc00a9005,0xa70abc0a,0xa30a820a,0x500a4f0a,0x660a510a,0x6a023f01,0x63015e01,0x56016001,0x69056c05,0x6b055805,0x3a054e05,0x72057005,0xb105a705,0x8405a905,0x8204fb07,0x1f026f07,0xb1026504,0xb205b405,0xcf0a1905,0x2809c009,0x29072e07,0xd20add07,0x190ad30a,0x5d026204,0x960a8e02,0x310a980a,0x10091203,0x5f056509,0x78056305,0x6e0a470a,0xa005a602,0x2e059f05,0x3c0a3a0a,0x5d042c0a,0x7027502,0xf6035209,0x2c026708,0x5f027504,0x61041c02,0x97031702,0x74031605,0x78043202,0x2a026b02,0x78027104,0x5f041802,0x29027602,0x3026f04,0xd802d903,0x4c045f02,0x24049b07,0x19020708,0xe083708,0x13083802,0x1e081d08,0x607a008,0xa7079f02,0xdf04e406,0x75057104,0x26057205,0xc051a03,0xe6054403,0x64054202,0x2a060b00,0xb201b601,0x8308b108,0xd0058205,0xcb058200,0xc400d000,0x8b05ff00,0x7e058500,0x86057f05,0x80058505,0x7f058505,0xab058005,0xac06b106,0x1c061606,0x89061706,0x83058805,0x82058805,0x89058305,0x84058305,0x14051a05,0x1a058b05,0x8a058b05,0x1a051b05,0x6058a05,0x8c051b05,0x8a051b05,0xc5058c05,0x4b045005,0xa052704,0x27058d05,0x8e058d05,0x27051805,0x8f058e05,0x8e051805,0xd1005605,0x9005cf05,0x5e058f05,0xe9004000,0x9205e805,0x82059105,0x92059300,0x92008c05,0x8c008205,0xf1096b00,0x7d096709,0x91059405,0x3b05d100,0xe5052004,0xf805e904,0xd051004,0xd059205,0x92059105,0x92051005,0xc059305,0x93051005,0x93050c05,0x89059405,0xa3028802,0xa8028802,0x8a02a302,0x98028902,0xa3028902,0xaf029802,0x16031902,0x95031603,0xa102af05,0xa30aac0a,0x79027b0a,0xa5027a04,0xa1059f05,0x9d0a8605,0x9e0a9c0a,0x8b0a8a0a,0x4e0a500a,0x3502630a,0x5a023d02,0xd10ade02,0xae0ad20a,0xa5031305,0x74016405,0x55016001,0x56022108,0xf05a408,0x8e059e03,0x90028f02,0xa305a502,0x3d02fa05,0x31032d03,0x58024e03,0xd0025502,0xac05aa02,0x320a7a05,0x35023302,0xc4048204,0x87090a04,0xd7090b01,0xeb02e902,0xae0aa602,0x370aaf0a,0x2b0a290a,0x9b029d0a,0xd5029902,0xd10a1109,0x3e027709,0xf0a3d0a,0x1102ef09,0xd102f109,0xf102ce02,0xf202ce02,0x740a7902,0x9a017001,0xb405a205,0xb205b305,0x4805b405,0x470a460a,0xb702c50a,0x6302b602,0x780a7602,0xa033c0a,0x40051c03,0x5e016201,0x3c033b01,0x6e051e03,0x6f057905,0x12083605,0x59083702,0x5b056705,0x3700ad05,0x69012907,0x7405d900,0x5105da00,0xdb05db00,0xdc005405,0xbb05bc05,0xbb004a05,0x4a003c05,0xdd007c00,0xbe005f05,0xb805b705,0xbe05bf05,0xbe05b905,0xb905b805,0xdb05df05,0xe005e005,0xe105dc05,0xc105c205,0xc105bc05,0xbc05bb05,0xbc05c205,0x5805bd05,0xd301a703,0xc305c203,0x2805be05,0xc4052105,0xc4052805,0x2905c305,0xc3052805,0x29044b05,0x2905c505,0xc505c305,0x50045905,0x5905c604,0xc705c604,0x59046805,0xc805c704,0xc7046805,0x6900d905,0xc9067d06,0x9e05c805,0xd3009700,0xcb05d205,0xb05ca05,0xcb05cc01,0xcb008505,0x85010b05,0x8505cc00,0xcd011600,0x1605cc05,0x1605cd01,0xb6009601,0x9605cd05,0x2f06b400,0x3b051105,0x6905d304,0x41044c04,0x4105cb04,0xcb05ca04,0xcb044c05,0x3a05cc05,0xcc044c04,0xcc043a05,0x1f05cd05,0xc100f801,0x36023200,0x8f023302,0x32061e00,0x84005e06,0xd200a105,0x9705d105,0x6b00e800,0xd4066a06,0x1c05d305,0xd405d501,0xd4008405,0x84011c05,0x8405d500,0xd6012700,0x2705d505,0x2705d601,0xd7010501,0x505d605,0x33049001,0x7f04c207,0xd4046904,0xd3046905,0x7f05d405,0xd505d404,0x7f046005,0x6005d504,0xd605d504,0x6f048a05,0x8b047306,0xa608a801,0xb205ad08,0x4b02b302,0x9d076900,0xc005b00,0xfc006406,0xfd007a05,0x20061b05,0xdd061c00,0x5f05dc05,0x5405dc00,0xe1005f00,0xcd06fe00,0xd805de00,0xdf05d905,0xda05de05,0xd905de05,0x7305da05,0x74077907,0x7a077407,0xce077507,0xdd05e105,0xdc05e105,0xce05dd05,0xcf05dd05,0xe405e505,0x7805de05,0xe3047e04,0xe3047805,0x905e205,0x190b1a0b,0x49013f0b,0x9b015d01,0x31043f06,0x7e04f705,0xfd050507,0xea04f804,0xe904f805,0xfd05ea05,0xeb05ea04,0xfd04f605,0xf605eb04,0xec05eb04,0x1d04e605,0xe8001c00,0x4005e705,0x1001f00,0xea060006,0x6105e905,0xea05eb00,0xea006c05,0x6c006105,0x6c05eb00,0xec006a00,0x6a05eb05,0x6a05ec00,0xed003900,0x3905ec05,0x1d000c00,0x18004100,0x1d001c00,0xef04f900,0xed05f105,0xf104f904,0xf104ed05,0xcf05f205,0xf204ed04,0xf204cf05,0x8805f305,0xeb04ec07,0xd104e104,0xe105f404,0xf505f404,0xe1044205,0xf305f504,0xf905f005,0x4205e705,0x6f05f504,0x4806e100,0xbb00f100,0x9100f406,0x9200ab07,0xe306ca07,0xff06cb00,0x8b05fe05,0x7e05fe00,0x23008b00,0xb7079400,0xf005f600,0xf705ee05,0xfc05f605,0xee05f605,0x305fc05,0x5000600,0x93078d00,0xfa078e07,0xff05f905,0xfe05f905,0xfa05ff05,0xfb05ff05,0xca060505,0xca04bc04,0xdd060704,0xe804f304,0xe8060204,0x2060104,0x204f306,0xe6060306,0x304f304,0x304e606,0x60406,0x1f001306,0x7011d00,0x2060606,0x43060106,0x2060300,0x2005906,0x59004306,0x59060300,0x4005000,0x50060306,0x50060400,0x1d004100,0x41060400,0x1804e000,0xd0001600,0x1604e004,0x1604d000,0xac001700,0x1704d004,0x1704ac00,0x11001900,0x83048606,0xb104c804,0xc8001a04,0x1b001a04,0xc8001400,0x31001b04,0x67049007,0x9d043f04,0xe2045206,0x804dd04,0x704dd06,0xe2060806,0x9060804,0xe204d706,0xd7060904,0xa060904,0x2404c906,0x6046f06,0x1d060506,0x7e003a01,0x8077d07,0x25060706,0x8060900,0x8002d06,0x2d002506,0x2d060900,0xa004400,0x44060906,0x44060a00,0xb012a00,0x2a060a06,0xd300eb01,0xee00a706,0xec049406,0xd04c706,0xb2060f06,0xf04c704,0xf04b206,0x83061006,0x1004b204,0x10048306,0x6f061106,0x3c043d07,0x8604a104,0xa1061204,0x13061204,0xa1047006,0x11061304,0x14061006,0x70060506,0xb3061304,0xaa05a802,0x6400f505,0x9800e706,0xaf069b00,0x25002106,0x80003b06,0x8100ca05,0xf000605,0x1d000800,0x38061c06,0x20061c00,0x11003800,0x10000a00,0xe061400,0x15060c06,0x1a061406,0xc061406,0x41061a06,0x42074707,0x8000507,0x18000700,0x1d061706,0x1c061706,0x18061d06,0x19061d06,0x8b065006,0xa4047404,0xbf063904,0xcc04d204,0xcc062104,0x21062004,0x2104d206,0xc9062206,0x2204d204,0x2204c906,0xb6062306,0x47063d04,0x1e061f04,0x1011006,0x38063901,0x20062106,0x22013106,0x26062106,0x31062100,0x22002601,0x32002606,0x22062301,0x23013206,0x1e013206,0x23062401,0x26011e06,0x2065601,0x92065801,0xa0065604,0x28062604,0xa0048906,0x89062804,0x29062804,0x89045606,0x56062904,0x2a062904,0x37064306,0x75045504,0x2b045b04,0x2b047506,0x48062c06,0x2c047504,0x48061e06,0x1062c04,0x42064b01,0x2c004500,0x2200c207,0x26065701,0x20064c01,0x4d064d01,0x4e012106,0x35063606,0x35002b06,0x2b012f06,0x4f004200,0x2d012506,0x25062706,0x2d062e06,0x2d063306,0x33062506,0x4d064706,0x48064806,0x49064e06,0x30063106,0x30063606,0x36063506,0x36063106,0x1e063206,0xa704b506,0x52048b04,0xc404a806,0x3a04bf04,0x3904bf06,0xc4063a06,0x3b063a04,0xc404b606,0xb6063b04,0x3c063b04,0x5604a306,0x38049206,0x1063706,0x1002901,0x3a070007,0x23063906,0x3a063b01,0x3a012b06,0x2b012306,0x2b063b01,0x3c012801,0x28063b06,0x28063c01,0x3d011101,0x11063c06,0x24003b01,0xa3011e06,0xa1048d06,0x3f047706,0x5a064106,0x41047704,0x41045a06,0x55064206,0x42045a04,0x42045506,0x19064306,0xac04b100,0x37043804,0x38064404,0x45064404,0x38046e06,0x91064504,0x52095109,0xa603c709,0xa903c603,0xb105a805,0x6e063702,0x3a064504,0x23079000,0xb8005500,0x65006005,0x66011206,0x13066606,0x4f066701,0x25064e06,0x21064e01,0xe7012501,0x19066800,0x40064601,0x47063e06,0x4c064606,0x3e064606,0x60064c06,0x61066606,0xb206ac06,0x4a06ad06,0x4f064906,0x4e064906,0x4a064f06,0x4b064f06,0x44068206,0x59044504,0x46024502,0xa804af02,0xa8065304,0x53065204,0x5304af06,0xa3065406,0x5404af04,0x5404a306,0x7d065506,0x72048004,0x50065104,0x8700f506,0x64076500,0x52065307,0x54011506,0x1f065306,0x15065301,0x54011f01,0x1b011f06,0x54065501,0x55011b06,0x2011b06,0x55065601,0xdd010206,0x7106ec00,0x4d068a00,0x39068804,0x5a065804,0x39043606,0x36065a04,0x5b065a04,0x36052a06,0x2a065b04,0x5c065b05,0xb306f206,0x3204ad04,0x5d052b05,0x5d053206,0x54065e06,0x5e053204,0x54065006,0xa5065e04,0xad073800,0x3405b900,0x8105ba00,0x8200cb05,0x67066805,0x67011906,0x19011306,0x4900b101,0x5f008807,0x57065906,0x5f066006,0x5f066506,0x65065706,0x7f067906,0xde067a06,0xdf06e406,0x62066306,0x62066806,0x68066706,0x68066306,0x37066406,0x9304a406,0xcf050f04,0x9d053306,0x6c049804,0x6b049806,0x9d066c06,0x6d066c04,0x9d048a06,0x8a066d04,0x6e066d04,0xd3053006,0x6a04ba06,0xe8066906,0xcf006f00,0x6c06ce06,0xa066b06,0x6c066d01,0x6c010f06,0xf010a06,0xd200d101,0x6f06d106,0xf6066e06,0xba00f400,0x5200c006,0x50046607,0x71045307,0x2c067306,0x73045305,0x73052c06,0x4067406,0x74052c05,0x74050406,0x8e067506,0xee04ef06,0x8051604,0x16067605,0x77067605,0x16045106,0x42067705,0x40034303,0x51066903,0xa6067704,0x7006c800,0xfa004c00,0xe400e106,0xeb06d400,0x28077800,0x98077900,0x9900fa06,0x80068106,0x80010c06,0xc010806,0xcc007001,0x7800ea06,0x70067206,0x78067906,0x78067e06,0x7e067006,0xe306dd06,0x9306de06,0x94069906,0x7b067c06,0x7b068106,0x81068006,0x81067c06,0xff067d06,0xc104d506,0xb6052f04,0x82053406,0x85047b04,0x84047b06,0x82068506,0x86068504,0x82046d06,0x6d068604,0x87068604,0xa1044306,0x83048d06,0xd7068206,0xb600a600,0x8506b506,0xfc068406,0x85068600,0x85010706,0x700fc06,0x7068601,0x87010001,0x68606,0x68701,0x8800e901,0xe9068706,0x6f011a00,0x7100f606,0x6f047306,0x8a051506,0x7068c06,0x8c051505,0x8c050706,0xee068d06,0x8d050704,0x8d04ee06,0xc0068e06,0xce04d406,0xef04ff04,0xff068f04,0x90068f04,0xff048c06,0x82069004,0x90048c06,0x53098f06,0xfb096309,0xfe06a200,0xee06b000,0xe306b100,0xe400d506,0x99069a06,0x9900fd06,0xfd00fa06,0x7b006300,0x91002e07,0x89068b06,0x91069206,0x91069706,0x97068906,0xca06c406,0xc506c506,0xc606cb06,0x94069506,0x94069a06,0x9a069906,0x9a069506,0x7c069606,0xe704f707,0xca052d04,0x5e044105,0x9e045204,0x9d045206,0x5e069e06,0x9f069e04,0x5e044306,0x43069f04,0xa0069f04,0xec050e06,0x9c049406,0xbf069b06,0x5200f500,0x9e065106,0xec069d06,0x9e069f00,0x9e00f806,0xf800ec06,0xf8069f00,0xa000f300,0xf3069f06,0xf306a000,0xa100d800,0xd806a006,0x50008a00,0xd5011807,0xd304ba06,0xa304fe06,0xf006a506,0xa504fe04,0xa504f006,0xdf06a606,0xa604f004,0xa604df06,0x7506a706,0x4050806,0xe404ea05,0xea06a804,0xa906a804,0xea045c06,0xea06a904,0x3021503,0x5c069b02,0x9e06a904,0x6205bd00,0xed00d600,0xc900dd06,0xca00e206,0x2f063406,0xb3063501,0xf206b206,0xf006b200,0xdb00f200,0xc068100,0xa406aa01,0xab06a206,0xb006aa06,0xa206aa06,0x1506b006,0x16061b06,0x67066106,0xae066206,0xb306ad06,0xb206ad06,0xae06b306,0xaf06b306,0xf06cd06,0x104f405,0xd059105,0x34043505,0x3406b705,0xb706b605,0xb7043506,0x3e06b806,0xb8043504,0xb8043e06,0xf606b906,0x6b05ed04,0xb406b504,0x9e00a606,0xc905ca00,0xb606b705,0xb800de06,0xe606b706,0xde06b700,0xf00e600,0x6d066e01,0xb906ba06,0xfe00c006,0xd806a100,0xbc04e900,0xe306be06,0xbe04e904,0xbe04e306,0xce06bf06,0xbf04e304,0xbf04ce06,0xd906c006,0xc304c606,0xd404dc04,0xdc06c104,0xc206c104,0xdc04bb06,0xc006c204,0xc606bd06,0xbb06b406,0x1706c204,0xb1074501,0x8300cc00,0xe200d207,0xe300d406,0xaf079206,0xcc079300,0xea06cb06,0xe306cb00,0x4800ea00,0xdc06e500,0xbd06c300,0xc406bb06,0xc906c306,0xbb06c306,0x8c06c906,0x8d079207,0x61075b07,0xc7075c07,0xcc06c606,0xcb06c606,0xc706cc06,0xc806cc06,0x5f074a06,0xf2044a04,0x1906e804,0x33043405,0x3306d005,0xd006cf05,0xd0043406,0x3006d106,0xd1043405,0xd1053006,0x2e06d206,0x24076905,0xcd06ce05,0x4c006f06,0xe706e800,0xcf06d006,0xd100c906,0xd106d006,0xc906d000,0x8c00d100,0x93059400,0xd206d305,0x2c00a706,0x11063d00,0x24076b01,0xdb076905,0xd706d504,0xdb04d306,0xd306d704,0xd806d704,0xd304c306,0xc306d804,0xd906d804,0x5b062a06,0xcb045604,0xda04c604,0xda04cb06,0x9506db06,0xdb04cb04,0x9506cd06,0x406db04,0x94075e01,0xee00b000,0xfb00b805,0xfc00c306,0xc506fc06,0xe506fd00,0xdc06e406,0xd506e400,0xdc00dc00,0xd406d606,0xdc06dd06,0xdc06e206,0xe206d406,0xba05bf06,0x7a05c005,0x7b068006,0xdf06e006,0xdf06e506,0xe506e406,0xe506e006,0xc806e106,0x25052d05,0x6504ae05,0x6404b007,0xe9051904,0xe8051906,0x6406e906,0xea06e904,0x64050e06,0xe06ea04,0xeb06ea05,0x504f106,0xe7046107,0x4c06e606,0x20011000,0xe9061f06,0xae06e806,0xe906ea00,0xe900c106,0xc100ae06,0xc106ea00,0xeb00b900,0xb906ea06,0xb906eb00,0xec007100,0x7106eb06,0x500ce00,0x20004f07,0x1e04c007,0xee04cd07,0xc506f006,0xf004cd04,0xf004c506,0xad06f106,0xf104c504,0xf104ad06,0xb06f206,0xa204a607,0xb304bd04,0xbd06f304,0xf406f304,0xbd046206,0xe606f404,0xf4046206,0x600c806,0x1400ce07,0x1500b207,0xb3071507,0xfe071600,0xcd06fd06,0xc506fd00,0x9400cd00,0x73076200,0xef06f500,0xf606ed06,0xfb06f506,0xed06f506,0xf06fb06,0x10071507,0x16071007,0xf9071107,0xfe06f806,0xfd06f806,0xf906fe06,0xfa06fe06,0xb8071806,0xb8049a04,0xde071a04,0xf5046304,0xf5070204,0x2070104,0x2046307,0xf1070307,0x3046304,0x304f107,0xd6070407,0xc0071e04,0xff070004,0x45002906,0x19071a00,0x1070207,0x3007b07,0xa8070207,0x7b070200,0x300a800,0x9500a807,0x3070400,0x4009507,0x4f009507,0x4070500,0xbb004f07,0x2a071e00,0x99073900,0xbe073704,0x9070704,0xbe04b407,0xb4070904,0xa070904,0xb404a207,0xa2070a04,0xb070a04,0x97072407,0xab048f04,0xc04a604,0xc04ab07,0xb9070d07,0xd04ab04,0x23072407,0xff072707,0xd04b906,0x13002907,0xb400d307,0xbb071f00,0x9a072d00,0x2e072e00,0x2f00a407,0x16071707,0x1600ba07,0xba00b307,0x3000c200,0xe00ac07,0x6070807,0xe070f07,0xe071407,0x14070607,0x34062e07,0x29062f06,0x2a072f07,0x11071207,0x11071707,0x17071607,0x17071207,0xe6071307,0xda04f206,0x2004b504,0x6504cc06,0x1b04de04,0x1a04de07,0x65071b07,0x1c071b04,0x6504d607,0xd6071c04,0x1d071c04,0x3704b707,0x19049907,0x45071807,0x9d00bf00,0x1b069c06,0x5a071a07,0x1b071c00,0x1b007507,0x75005a07,0x75071c00,0x1d006b00,0x6b071c07,0x6b071d00,0x1e002a00,0x2a071d07,0x88010d00,0xef00e906,0xed046b05,0x2004aa05,0xa5072207,0x2204aa04,0x2204a507,0x8f072307,0x2304a504,0x23048f07,0x56072407,0x72047607,0x97049e04,0x9e072504,0x26072504,0x9e04a907,0x18072604,0x2604a907,0x3e013007,0x33002c06,0x34012d06,0x7f074706,0x30074800,0xac072f07,0xa4072f00,0xa100ac00,0xd0058300,0x21072700,0x28071f07,0x2d072707,0x1f072707,0xf6072d07,0xf706fc06,0x35062f06,0x2b063006,0x30072a07,0x2f072a07,0x2b073007,0x2c073007,0xe505e707,0x6c04d904,0x98066b04,0xc2047a04,0xc2073404,0x34073304,0x34047a07,0xb7073507,0x35047a04,0x3504b707,0x91073607,0x66075004,0x31073204,0x5e011707,0x90059100,0x33073405,0x35002f07,0x52073407,0x2f073400,0x35005200,0x46005207,0x35073600,0x36004607,0x29004607,0x36073701,0xb8012907,0x3905ed00,0x6f062600,0x9f062404,0x3b073904,0x9f049607,0x96073b04,0x3c073b04,0x96047d07,0x7d073c04,0x3d073c04,0x2b065c07,0x88052a05,0x3e048004,0x3e048807,0x9c073f07,0x3f048804,0x9c073107,0x80073f04,0x8a075100,0x65075f00,0x60076000,0x61006807,0x48074907,0x48008807,0x88007f07,0x1700d300,0x4000ba07,0x38073a07,0x40074107,0x40074607,0x46073807,0x60075a07,0xc0075b07,0xc105bb05,0x43074405,0x43074907,0x49074807,0x49074407,0x13074507,0x1504d800,0x84044400,0x85047b06,0x4d049b04,0x4c049b07,0x85074d07,0x4e074d04,0x85049107,0x91074e04,0x4f074e04,0x4a074b07,0x17010407,0x32073301,0x4c074d07,0x4e012e07,0x33074d07,0x2e074d00,0x4e003301,0x30003307,0x4e074f00,0x4f003007,0x18003007,0x4f075001,0x60011807,0x9605b600,0x47063f00,0x87063d04,0x54075204,0x87048107,0x81075404,0x55075404,0x81047207,0x72075504,0x56075504,0xd105f307,0x7c04cf04,0x57047604,0x57047c07,0x84075807,0x58047c04,0x8070b07,0xd071107,0xb048e06,0x84074a06,0x56075804,0xf801fc02,0x6a003d01,0x97004b07,0x9800f906,0xf006b106,0x6206b200,0x73076107,0x68076100,0x53007300,0x2b063600,0x53075900,0x5a075107,0x5f075907,0x51075907,0x47075f07,0x2d032f05,0x48074203,0x5d074307,0x62075c07,0x61075c07,0x5d076207,0x5e076207,0xa508a707,0xd508a008,0xf5070104,0xb0044004,0xb0076604,0x66076504,0x66044007,0x2e076707,0x67044005,0x67052e07,0xd7076807,0x8e060b04,0x63076404,0x8c008707,0x6050a05,0x65076605,0x67008907,0x86076607,0x89076600,0x67008600,0x3008607,0x67076801,0x68010307,0x9d010307,0x68076900,0xbc009d07,0xba045d06,0x6b045806,0x4f076d07,0x6d045804,0x6d044f07,0x3c076e07,0x6e044f04,0x6e043c07,0x3d076f07,0x7d048007,0x3d044604,0x46077004,0x71077004,0x46045707,0x63077104,0x71045707,0x6e076f07,0xd077207,0xc000100,0x7d074600,0xba074700,0xbb003c05,0x7a077b05,0x7a002e07,0x2e002707,0x6c077200,0x73076a07,0x78077207,0x6a077207,0xf7077807,0xf805fd05,0xfe05f805,0x7605f905,0x7b077507,0x7a077507,0x76077b07,0x77077b07,0xae076307,0xd8050004,0xe8060104,0x5050904,0x5077f05,0x7f077e05,0x7f050907,0x2078007,0x80050905,0x80050207,0x7d078107,0x3a077c07,0x8400d700,0x7f068306,0x72077e07,0x7f078000,0x7f008107,0x81007207,0x81078000,0x81007900,0x79078007,0x79078100,0x82005d00,0x5d078107,0xd7007400,0xb8010505,0x41014502,0x26050b01,0xb078605,0x87078605,0xb04eb07,0xeb078705,0x88078704,0xca0abf07,0xfa0acb0a,0x8904ec04,0x8904fa07,0x6a078a07,0x8a04fa04,0x8f078b07,0x7c078707,0x8a046a07,0x89010907,0x4010d06,0x6000e00,0x8067f00,0x94068001,0xb7079307,0xaf079300,0x7600b700,0x38061d00,0x85078b00,0x8c078307,0x91078b07,0x83078b07,0x86079107,0x87058105,0x82058705,0x8f058805,0x94078e07,0x93078e07,0x8f079407,0x90079407,0x44030907,0xac034203,0xad039d07,0x69079607,0x97037003,0x70079607,0x70079703,0x98037903,0x79079707,0x98079903,0x98039c07,0x9c037907,0x9c079903,0xa003a103,0xc1079907,0xd8090103,0x9f090001,0x17020607,0x9f07a102,0xa1021707,0x8021707,0xa107a202,0xa2020807,0x4020807,0xa207a302,0xf4020407,0xf5022707,0xbc07b307,0xb207bd07,0xbc07bb07,0xa307a207,0xab079a07,0xac05b305,0x8fe05,0xa6090209,0x95036c07,0xbe021407,0xa707bd07,0x9b07a607,0xa707a801,0xa7019907,0x99019b07,0x57056001,0xaa056405,0x9f07a907,0x9f07aa01,0xab01b201,0xb207aa07,0xa007ab01,0xaa03c107,0xe807ab07,0xc107ab03,0xa903e803,0xc507aa07,0xe807aa03,0xc103c503,0xc003e907,0xe507c007,0xbf07bf03,0xbe03de07,0x49085807,0xad085903,0xa2039d07,0xad07ae03,0xae03a207,0xd503a207,0xae07af03,0xb003d507,0xd107af07,0xd507af03,0xb003d103,0xd703d107,0x9e079703,0xce079c07,0xc707cc07,0xcf07d107,0xd107c907,0xd0019707,0xd2019707,0xb907d007,0x7707b807,0xc00a1801,0xff09bc09,0xd902da02,0xbb07bc02,0xd8021c07,0xd901cc08,0xb402c208,0xcd02bd02,0xd407d307,0xbb07ba07,0x4b07b107,0x9b029901,0xb907b802,0xcf07b407,0xce07d207,0xa007be07,0xc607ac03,0x67086801,0xbe07bf08,0xc001bb07,0xb307bf07,0xbb07bf01,0xb001b301,0xb101b608,0xc107c208,0xc201bd07,0xdd01bd07,0xc207c301,0xdd01dd07,0xd1019607,0xb707c307,0xc203f107,0xe07c307,0xf107c304,0xc1040e03,0x4b07c207,0xe07c203,0xa034b04,0x9038709,0x7108c609,0x3a08c503,0x3903f008,0xbd082508,0xc7082603,0xd207c607,0xd207c703,0xc803f803,0xf807c707,0xc807c903,0xc803f707,0xf703f807,0xf707c903,0xdf03fc03,0xe607e007,0x39020e07,0xc4083808,0xe907ea01,0xd207d307,0xb901b707,0xba018a07,0xd507d607,0xd6018207,0x79018207,0xd607d701,0x2f017907,0x600a5e0a,0x1c08140a,0xd0081d08,0xd808d708,0xd307d208,0xd807ce07,0xc403d807,0x86087e07,0xd9087f01,0xe607d807,0xd907da01,0xd901de07,0xde01e607,0xbd07c001,0xdc07c101,0xc807db07,0xc807dc01,0xdd020901,0x907dc07,0xbc07ab02,0xdd07a001,0x6a07d107,0xdd07dc03,0xdd037507,0x75036a07,0xb1037803,0xda08b208,0x4c07db07,0xd08b003,0xf108af04,0xf0036b07,0x6107f607,0xdf07f703,0xff03f907,0xdf07e003,0xe003ff07,0x4d03ff07,0xe007e103,0xe2034d07,0x5e07e107,0x4d07e103,0xe2035e03,0x64035e07,0x80d03,0xd07fa08,0x101f608,0x201f608,0xeb080108,0xe407ea07,0xef080301,0xef080401,0x4080501,0xed07ee08,0xee01be07,0xae01be07,0xee07ef01,0xfb01ae07,0x7080607,0x507fc08,0xfd080608,0x5080407,0x307ff08,0xea080408,0xe607eb07,0x2080007,0xde07fe08,0xfb07f007,0x2d080703,0xf1080802,0xf07f007,0xf107f202,0xf1020a07,0xa020f07,0xf207f302,0xf201c707,0xc7020a07,0x9c080b01,0x6c080c01,0x6d018308,0xc03b208,0xd6080d08,0xc080b03,0xaa080b08,0xa080a03,0x903a308,0x99080908,0xe080803,0xf038e08,0x6107f708,0xf8036303,0x6307f707,0x6307f803,0xf9036f03,0x6f07f807,0xf907fa03,0xf9037707,0x77036f07,0x7707fa03,0x6d039403,0x4d068804,0x90022304,0x3088f08,0xfe080208,0x8d07d301,0x8d07d401,0xd407d501,0x5080607,0x601ec08,0xe001ec08,0x6080701,0xcc01e008,0xd707d607,0xec07e507,0x4507ed07,0x50084f08,0xf40a9808,0x20a930a,0xfe080308,0xb807b507,0xf607b407,0x5f080807,0x4c010403,0xd7074b07,0xd801e607,0x8080907,0xa022d08,0x29080908,0x2d080902,0xb022902,0xa6080a08,0x29080a01,0xc701a602,0xc8022508,0xb8088308,0xe4088401,0x24082303,0x2203f408,0x22082308,0x2103d908,0x6d085408,0xaf085303,0xae040608,0xb50ab708,0xf0ab60a,0x93038e08,0xf081003,0x10039308,0x9b039308,0x10081103,0x12039b08,0xbc081108,0x9b081103,0x1203bc03,0xc303bc08,0x2102a503,0x5502ac03,0x2a0a2c0a,0x1b081c0a,0x1c01ff08,0x1ff08,0x1c081d02,0x1d020008,0xf9020008,0x1d081e01,0x4401f908,0x51085008,0xd407ca08,0x1407d507,0xa909aa0a,0x1a081909,0x19081608,0x18081608,0x1f080e08,0xc5039008,0xec07ed01,0x1f082007,0x2101a308,0x9d082008,0xa3082001,0x22019d01,0xa9082108,0x9d082101,0xf301a901,0xf401b408,0xee07a408,0xce07a501,0x84088303,0x8203ee08,0x6b088308,0x6a039a08,0x95086a08,0xa7086903,0xa603ab07,0xd105d007,0x28051f05,0xbf082708,0xbf082803,0x2903cc03,0xcc082808,0x29082a03,0x2903e208,0xe203cc08,0xe2082a03,0x3003ec03,0x27082c08,0x501d708,0x73090409,0x70016f01,0x35083601,0x39021308,0x36023a02,0xa0090c02,0xe3090101,0xef07ee07,0xed07e407,0x3407ee07,0x2f083508,0x34083308,0x34082e08,0x2e082f08,0x4c084908,0x39084708,0x2503c408,0xae017b08,0x3a08ad08,0xd6083908,0x3a083b01,0x3a01d108,0xd101d608,0x6202c001,0x3d02c901,0xdb083c08,0x32083e01,0x3d03fa08,0x5083e08,0xfa083e04,0x3c040503,0x4083d08,0x5083d04,0x55040404,0x54036e08,0xcd082108,0x53082003,0x52035c08,0x5b083f08,0x40040a03,0xa083f08,0xa084004,0x41040c04,0xc084008,0xc084104,0x42034e04,0x4e084108,0x42084303,0x42034808,0x48034e08,0x48084303,0x47035103,0x42084408,0x30083208,0x32082a08,0x31020208,0x33020208,0xe3083108,0xd7044905,0x4d084e05,0xab01d408,0xac017c08,0xed083e08,0x2b083201,0x38083708,0xd507cb08,0x2d07d607,0x36083508,0x4e084d08,0x4c084808,0x47084d08,0x48084d08,0x61084708,0x60086308,0xa005b408,0x5305b505,0x1e085208,0x53085402,0x53021d08,0x1d021e08,0x54085502,0x54022008,0x20021d08,0xa1084f02,0xac085001,0xad017b08,0x4b085708,0x56037308,0x98085708,0x73085703,0x55039803,0x76085608,0x98085603,0x11037603,0x1a081b02,0xc2088108,0x69088003,0x68038b08,0x7e086e08,0x59086f03,0x55034908,0x59085a03,0x5a035508,0x7d035508,0x5a085b03,0x5c037d08,0x7c085b08,0x7d085b03,0x5c037c03,0x84037c08,0xbc015503,0xbe02bd02,0xda02c302,0xc40a8502,0x630a830a,0xdc086208,0x63086401,0x6301fa08,0xfa01dc08,0x64086501,0x6401da08,0xda01fa08,0x7105e201,0x23047804,0x2401cf08,0xd808cf08,0x5408d908,0xdf025702,0x65086401,0x63085f08,0x60086408,0x5f086408,0x68086008,0x58034a08,0xda01cc08,0x6908d908,0x2e086808,0x69086a02,0x69022c08,0x2c022e08,0x6a086b02,0x6a022f08,0x2f022c08,0xd0082202,0xc8082301,0xc9022408,0x9a03f608,0xf3089b08,0xf2037b07,0xc703a407,0xa808c808,0xa703b307,0xba088007,0x85087f03,0x8603af08,0x7e086f08,0x70038803,0x88086f08,0x88087003,0x7103ae03,0xae087008,0x71087203,0x7103ad08,0xad03ae08,0xad087203,0x7703b503,0x70087308,0x8e089b08,0x9b088908,0x8f022308,0x79087a08,0x7a021808,0x1021808,0x7a087b02,0x7b020108,0xfb020108,0x7b087c01,0x7d01fb08,0xfb087c08,0xfb087d01,0x7e01f001,0xf0087d08,0x7e087d01,0x7c087308,0x74087d08,0x73087d08,0x8b087408,0x93089208,0x7b087a08,0x79087508,0x76087a08,0x75087a08,0x8e087608,0x8d089008,0xb1089608,0x1e088503,0x1f01a308,0x7f088008,0x81018608,0x85088008,0x86088001,0x82018501,0x89088108,0x85088101,0xdd018901,0xde019408,0xe1089a08,0xa5089b01,0x6d086c03,0xc7088208,0xf088103,0x9a089904,0xeb089808,0x97089703,0x9603e608,0xdc089c08,0x86089d03,0xb603af08,0x86088703,0x8703b608,0xdb03b608,0x87088803,0x8903db08,0xda088808,0xdb088803,0x8903da03,0xdf03da08,0x87088603,0x3e088d08,0x5d06ba04,0xd701f704,0xf508d608,0xe207e807,0xc407f507,0x507e901,0x78087902,0x90089108,0x91017a08,0x80017a08,0x91089201,0x92018008,0x1f018008,0x92089302,0x94021f08,0x1f089308,0x1f089402,0x95021602,0x16089408,0x95089402,0x93088a08,0x8b089408,0x8a089408,0x91088b08,0x8c089208,0x91089008,0x91088d08,0x8d088c08,0xa808a508,0xc408a408,0xb4040008,0xf07ef08,0x9707f002,0xbf089608,0x97089801,0x9701ba08,0xba01bf08,0x98089901,0x9801c008,0xc001ba08,0x2807f301,0xf407f402,0xf501cd08,0x320a6b08,0x990a6a0a,0x9803ef08,0x7a08c708,0x3b08c603,0x3a03f208,0x307d908,0xb407d804,0xb503fe08,0xdc089d08,0x9e03e103,0xe1089d08,0xe1089e03,0x9f03f303,0xf3089e08,0x9f08a003,0x9f03fd08,0xfd03f308,0xfd08a003,0x19040103,0x7000000,0xb507b700,0xfc07b007,0x170b180a,0xb801780b,0xa907b607,0xad08a808,0xc507eb01,0xd707ec01,0xf1090301,0x8108aa01,0x5008ab01,0x51019108,0xad08ac08,0xab08a108,0xa208ac08,0xa108ac08,0xaa08a208,0xa308ab08,0xa208ab08,0xb108a308,0xba07b907,0xa908a807,0xaa08a408,0xc308c401,0xae08af08,0xb001ea08,0xe308af08,0xea08af01,0xa801e301,0xa9019f07,0xc807da07,0xb307db01,0xc08b208,0xc08b302,0xa7020b02,0xb08b308,0xa708b302,0xb2036508,0x7808b308,0x6508b303,0xb0037803,0x4708b108,0xbb08f203,0xc508f103,0xc4036608,0xf907de08,0xb507df03,0x203fe08,0xb508b604,0xb6040208,0x7040208,0xb608b704,0xb8040708,0x5608b708,0x708b703,0xb8035604,0x60035608,0xb608b503,0xa208bc08,0x9f089e08,0xd908df08,0xbe08d401,0xce01c308,0xbe08bf01,0xbf01ce08,0xd201ce08,0xbf08c001,0xc001d208,0xc101d208,0xc008c101,0xc101c108,0xb101c108,0xc108c201,0xc301b108,0xb701e707,0xc308c207,0xc108b908,0xba08c208,0xb908c208,0xc008ba08,0xbb08c108,0xba08c108,0xd108bb08,0xd608d508,0xbf08be08,0xbe08bc08,0xbd08bc08,0xdd08ae08,0x91089c03,0x51085201,0xc408c508,0xc6021008,0xd08c508,0x1008c502,0xc7020d02,0xb508c608,0xd08c601,0x8201b502,0x8301b908,0x9308de08,0xac08df01,0xdf08de03,0xdd03be08,0xdd08de08,0xdc03a808,0x9e08dc08,0xdb08db03,0xda039608,0x8a08e008,0xcb08e103,0x62035708,0xcb08cc03,0xcc036208,0x67036208,0xcc08cd03,0xce036708,0x8908cd08,0x6708cd03,0xce038903,0x91038908,0x930a8f03,0xf50a920a,0xea01f808,0xd908d408,0xd501e901,0xe908d408,0xe908d501,0xd601f701,0xf708d508,0xd708d801,0xe501d308,0xef08ee08,0xed08e608,0xd608ee08,0xd108d708,0xeb08e708,0xd408ec08,0xd208d508,0xd208d408,0xda08d308,0xca035908,0xf001e508,0xdb08ef08,0x2a08da08,0xdb08dc02,0xdb022608,0x26022a08,0xdc08dd02,0xdc01a508,0xa5022608,0x84086b01,0xee086c01,0xef01e508,0xf4038508,0xc607f507,0x6c086b03,0x82090908,0xf1090803,0xf003b808,0x4f08f608,0xe108f703,0x92038a08,0xe108e203,0xe2039208,0x97039208,0xe208e303,0xe4039708,0x9f08e308,0x9708e303,0xe4039f03,0xa9039f08,0x41030903,0xea030803,0xfc01f808,0xea08eb01,0xeb01fc08,0xf401fc08,0xeb08ec01,0xec01f408,0xf301f408,0xec08ed01,0xa301f308,0xa401fd07,0xa4080c07,0x9c080d01,0xa507a407,0xeb07e707,0xec07ec07,0xe708ed08,0x73026d08,0xea0a3c02,0xe808eb08,0xe808ea08,0xf008e908,0xe0038d08,0xbe0ac308,0xf10ac20a,0x9e08f008,0xf108f201,0xf1019508,0x95019e08,0xf208f301,0xf201a208,0xa2019508,0xf408f301,0xf303ca08,0xc003ca08,0xf308f203,0xed03c008,0xee01eb08,0xeb094b08,0x95096609,0x96036907,0x4f08f707,0xf8035303,0x5308f708,0x5308f803,0xf9035d03,0x5d08f808,0xf908fa03,0xf9036808,0x68035d08,0x6808fa03,0x3f037203,0x52085108,0xfa090108,0x15038c08,0x160af90b,0xd809000b,0x201f201,0xf2090009,0xf2090201,0x301f101,0xf1090209,0xe20aff01,0xc90ae10a,0x73017501,0x27077901,0x5077a00,0xfd090609,0x5090408,0x508fc09,0xfc08fd09,0x4090308,0x408fb09,0xfb08fc09,0x7090808,0x9017e09,0x7d090809,0x7e090801,0xa017d01,0x7f090909,0x7d090901,0x96017f01,0x980af70a,0x2b08560a,0x57085702,0x4b01af08,0x1090c08,0xb038c09,0xb7090c09,0x8c090c03,0xa03b703,0x8f090b09,0xb7090b03,0x3c038f03,0x3b03f508,0x1c091c08,0x1e031e03,0x1c091d03,0xfc091109,0x1e091302,0x20031009,0x1b032209,0x20091f09,0x1d091f03,0x22030409,0x92109,0x22092303,0x24030d09,0x14092309,0x25092603,0x27031809,0x1b092609,0x27092803,0x1e030609,0xe7091209,0x18091902,0x4092009,0x46092103,0x790a430a,0xb0084b02,0xda084a01,0xd9040b07,0x5b015c07,0xf30a5a0a,0x16091702,0xe033509,0xd090d09,0x35033709,0x48091103,0x5b094309,0x54095709,0x8d095d09,0x90096009,0x53095209,0x50099209,0x96095109,0x45093d09,0x47099409,0xef094909,0x6d096909,0x3609b209,0x9509b509,0x47094509,0x63098e09,0x96096109,0x9502b005,0xca09c205,0xfe09cd09,0x10a0009,0x9409bb0a,0xc09d309,0x3057d05,0x9c05a505,0xa405af05,0x97059505,0xbb0a2505,0xb309bf09,0xae0a1c09,0x1d09ae09,0xda09ad0a,0xcd031102,0x1f09ad02,0xd309b00a,0xce0a2009,0x2109b009,0x2009b10a,0xce09cc0a,0x2309b109,0x2209b80a,0xcc09c90a,0x2409bf09,0x430a250a,0x6c024f02,0xb60a2601,0xb309bb09,0x1b0a2709,0x9a0a230a,0xa109b809,0xa30a1209,0x1e09d709,0xd109d30a,0xcd0a1309,0xf09d409,0xcf09d50a,0xd40a0d09,0x7e024209,0x7102340a,0x30023c01,0xa90a1202,0x1709a309,0xb409bc0a,0x55025c09,0x4e0a540a,0x66014f01,0x1208240a,0x2c03e408,0x340a350a,0x580a300a,0x2d0a570a,0x380a360a,0x380a3b0a,0x5c0a390a,0x1d0a670a,0x2d0a3b0a,0x3b0a380a,0x3a0a390a,0x4a0a280a,0x3f0a4c0a,0x3e0a3d0a,0x610a600a,0x420a620a,0x400a410a,0x1a02070a,0x29081908,0x450a430a,0x5b05630a,0x48056505,0x450a290a,0x440a410a,0x4b0a490a,0x470a480a,0x470a4b0a,0x2f0a4a0a,0x5d0a5b0a,0x4d0a4f0a,0x6d0a4e0a,0x6f0a6e0a,0x510a520a,0x510a500a,0x540a530a,0x680a790a,0x2a016901,0x3f034003,0x22026503,0x6f026704,0x70057a05,0x5a025605,0x3601f502,0x84028101,0xae302,0x7e0ae90b,0x26057c02,0xd8094c04,0xd0094b09,0xc507c603,0xe002d207,0xc902dc02,0x8e01ca01,0xb6043a01,0x3f052305,0x3d042d05,0x4c09da05,0xeb094d09,0xd702d802,0x35026002,0xa20a7700,0x9d0aea0a,0xbb02cb0a,0xbc02ba02,0xbd021407,0x1a081707,0x84081b08,0x72087708,0x570a3008,0x5c0a590a,0x5a0a590a,0x300a5c0a,0x5c0a590a,0x5b0a5a0a,0x6c056d0a,0x60056805,0x5f0a5e0a,0xc8037f0a,0x9e08c908,0x9d029c02,0x620a6302,0x2c0a610a,0x32013601,0x73057500,0x66057205,0x640a490a,0x5602910a,0x98013c01,0xa705b005,0x320a6805,0x320a660a,0x690a680a,0x690a320a,0x6d0a6a0a,0x6c0a6b0a,0x2e0a3d0a,0x3f0a3c0a,0x410a400a,0x6f0a700a,0x6f0a6e0a,0x720a710a,0x35025b0a,0x700a550a,0x5201510a,0x310a7401,0x310a720a,0x580a750a,0x8c0a970a,0x140a940a,0x1a067001,0x29041001,0x15035003,0xc209d70a,0xc6086609,0x30086701,0x33042e03,0xb907a904,0x7407a803,0x7c087b08,0x6c066908,0x7f044e04,0xf700ef02,0x17059600,0x4d02a603,0x4c024e02,0x32013702,0x37013600,0x330a2b0a,0x3c05460a,0x49053605,0x4a032e05,0x61013f05,0x10014001,0x12041304,0xc2090704,0xd0017e01,0xd40adf0a,0xa405980a,0xdf059d05,0xac08ce08,0xe2095603,0x30095909,0x2e083308,0x3e024208,0x9d024002,0xa1079f07,0x1a02aa07,0x9302ae03,0xa2057f00,0x26051400,0x9d051303,0x9a07a207,0xea07e807,0xcc07e607,0xbb02bc02,0x1902ae02,0x2402af03,0xe027c01,0x1b081501,0xcb081c08,0x4c084d01,0xd102f508,0x8e02f102,0x3b023d01,0x7509f502,0xe0097109,0xb0afe0a,0x4909930b,0xac095009,0x31093209,0xc209d909,0xb209d709,0x34093109,0x7809fe09,0xdb097a09,0x4e097c09,0x7009ef09,0xa509f209,0x9f092909,0x4309d209,0xe1094809,0x5a095d09,0x7f09f909,0xa7097509,0x2e094109,0x7a0a0009,0xa097c09,0x709810a,0x7709fc0a,0xfa097809,0x77097409,0x7409f209,0xc109f709,0x44095409,0x3509af09,0xc8093209,0x40094e09,0x89099b09,0x7098509,0x5097e0a,0x880a0b0a,0xc5099e09,0x3a092d09,0x7e0a0409,0x9097d09,0xb09860a,0x2c09a00a,0xcb098a09,0x42094609,0x2f09a209,0xab092c09,0xa8092f09,0x3b09c409,0xd0093c09,0x46094a09,0x850a0809,0x9c098209,0x8b098809,0x3c09ca09,0xd6094309,0x4a094809,0x800a0909,0x5e098309,0x4f09e809,0xdc03da09,0x5903dd03,0x5e09e409,0xea096609,0xc1096509,0xbc02bd02,0x7309f802,0xe309f409,0x5c095b09,0x5c09e509,0xdf095f09,0x5b095709,0x5f09e609,0x99096209,0x97013d02,0x7b0a0102,0xfb09ff09,0x73097609,0x4d0a0209,0x55097b09,0x5609dc09,0x6f09f309,0xc9096e09,0xf508f403,0xab0a9508,0xed0af80a,0x67096809,0xe102e209,0x4702fb02,0xbf014501,0xbf014702,0x4602c702,0xc7014701,0x65085e02,0xfe086608,0x43042d02,0x3d029705,0x53015f01,0x5402720a,0x91013b0a,0x3d013c02,0x3e01e808,0x7b023008,0x4101710a,0x7d016602,0x7a02810a,0x66028202,0x7d016701,0x670a7d0a,0x1f0a8001,0x1c033c05,0x670a8005,0x8c016801,0x880a8b0a,0x6b041e0a,0x96026202,0x910a900a,0x6e09ee0a,0x99096809,0x980a8e0a,0x8e0a8d0a,0x930a990a,0x990a8d0a,0x9a0a9b0a,0x9a0a970a,0x8c0a8b0a,0x9e0a9f0a,0xa10a9b0a,0x9c0a860a,0xa00aa10a,0x840a860a,0x37028602,0x6a0a3701,0x82016b01,0xa00a860a,0x820aa30a,0x4d0aa00a,0x55055605,0x60055f05,0xa8055e05,0xa60a840a,0x810aa40a,0x690aa70a,0x56055805,0x59024e05,0xbb024702,0xab0ab90a,0x36082c0a,0x34083708,0x3c013b01,0xa60aa801,0xba0aaf0a,0xb00ab30a,0xe905af0a,0xb302d602,0xa90ab40a,0x5602550a,0xb8025702,0xb30ab40a,0x1503020a,0xba091409,0xb30ab80a,0x5d05530a,0xb1055205,0xb20ab60a,0x310a7b0a,0xb20a7a02,0xb10ab00a,0xab0ab60a,0x830ab90a,0xc50ac40a,0xc60a870a,0x880ac70a,0xc70a870a,0xc70a880a,0xc10ac80a,0xc80a880a,0xc80ac10a,0xbf0ac90a,0xc90ac10a,0xc90abf0a,0xc00aca0a,0xcd0acb0a,0xc00abd0a,0xc80acd0a,0xce0ad20a,0x26027f0a,0xce047904,0xd50acf0a,0x46024b0a,0xce024a02,0xd60ad50a,0xd70ad90a,0xd90ad80a,0xda0ad80a,0xd90adb0a,0xc50ada0a,0xdc0adb0a,0xda0adb0a,0xd30adc0a,0xdd0adc0a,0x9e059a0a,0xe305a305,0xd40ad50a,0xe40b0b0a,0xc30ae00a,0xd90acd0a,0xa0aaa0a,0x920b0d0b,0xf40a930a,0x1609b40a,0xa90a170a,0xab05b205,0xfb0b0e05,0x60afa0a,0x1a0b1b0b,0x100af30b,0x1c0b0f0b,0x1d0b020b,0x120b130b,0x120af20b,0xf20aee0b,0x130b140a,0x130af50b,0xf50af20b,0x80b1f0a,0x200b200b,0x210b0c0b,0xd0b210b,0xd0b220b,0x220b230b,0x180b0e0b,0xed0afb0b,0xf20af50a,0xa0b190a,0xfa0b090b,0xe0b0f0a,0x1c0b030b,0x7c0b1b0b,0xe027d02,0x1d0b1e01,0x1d0b040b,0x40b020b,0x1e0b1f0b,0x1e0b070b,0x70b040b,0x1d02a90b,0x1902aa03,0xa0b230b,0xe70ae80b,0xe90ae50a,0xe30ae50a,0xe60afd0a,0xa60ae70a,0x2d092b09,0x97069209,0x9b069806,0xa3079a07,0xa202a007,0x1a02a102,0x58005b06,0x7a05fd00,0x99007e00,0xb306af00,0x76061906,0xb500b500,0x5011d00,0x11000b06,0x12001200,0x13001f00,0xea08f500,0xe408e908,0xc903a908,0xe908f503,0xb08e408,0x15001300,0x14001500,0x1b001b00,0xb000900,0xd60ace00,0x4e0acc0a,0xa801d408,0x80a0601,0x609820a,0x7070807,0xbe070707,0x5046104,0x7070607,0xa0005d07,0xd200d200,0x82078300,0xc509c307,0x6a093a09,0x1c026102,0x26041c04,0x66057c04,0x6d055005,0x63066205,0x62065e06,0x5d065e06,0x61066006,0x59066206,0x60065f06,0x58065a06,0x5b065906,0x59065a06,0x60065906,0x62066206,0x5c065d06,0x5b065c06,0xf8065906,0xf406f906,0xf406f806,0xf606f306,0xf806f706,0xf506ef06,0xf006f606,0xef06ee06,0xf006f106,0xef06ef06,0xf806f606,0xf306f806,0xf206f206,0xef06f106,0xa5038406,0x6d086d03,0x61086208,0x84085c08,0xbd086d03,0x4409c109,0x1102cd09,0x6202f203,0xbc05bd00,0x7f0a7e05,0x5902330a,0x5b075a07,0x5c075b07,0x5d075d07,0x57075807,0x57075d07,0x59075607,0x5d075b07,0x53075207,0x54075907,0x59075207,0x5d075907,0x55075607,0x59075407,0x5d014707,0x670a6701,0x530a650a,0x530a6701,0x45014101,0x67014701,0x2e062d0a,0x2f062f06,0x31063006,0x2c063106,0x31062b06,0x2a062b06,0x2f062d06,0x26063106,0x2d062706,0x26062806,0x2d062d06,0x2a063106,0x28062906,0xfc062d06,0x14030202,0xf609e809,0x9097209,0x92018f04,0x3a013b01,0x83028301,0x8a028602,0x98028a02,0x9a029a02,0x97029902,0x94029702,0x91029102,0x83013b02,0x9a028a02,0x91029702,0x8a028302,0x92035402,0x66019a01,0x50014f0a,0x6b015001,0x500a6a0a,0x690a6a01,0x660a680a,0x3201500a,0x30023102,0x3c023002,0x8b023702,0x890a8a0a,0x860a890a,0x820a820a,0x840a810a,0xb40a840a,0x840abe0a,0x850abe0a,0x820a890a,0x880a840a,0x890a8b0a,0x880a870a,0x840a890a,0x830a850a,0x870a830a,0x510a890a,0x4b037303,0x4a084b08,0x43084908,0x4b035108,0x4d056c08,0x61056105,0x68056205,0xe402e505,0x15041402,0x16041204,0x1402e504,0x16041504,0xe5041304,0x4f024e02,0x43024302,0x51024802,0x16089502,0xc401bf02,0xd003d807,0x970af103,0x940a940a,0xf40a920a,0x6f01700a,0x9f017101,0xec0aed0a,0x4b014c0a,0xa6029b01,0x810a840a,0xa40a810a,0x1b0aa50a,0x3401ab02,0xbc0ab508,0x160ab20a,0xfc0af90b,0x208fe0a,0xb7090309,0x7801e707,0x9905b001,0x10059a05,0x9a09a10a,0xb08a709,0xe7018b02,0x6209e609,0xb8088409,0xc9020501,0xbd08be08,0x6008b808,0xc9037f03,0xb808bd08,0xf302f608,0xd0091602,0xa605ac02,0xa505a605,0xfa02fa05,0xd002cf02,0x4c014b02,0x4e014e01,0x42014d01,0x3d014201,0x44014401,0x4e014b01,0xe702f401,0x11091802,0xee0aeb0b,0x9e0a8a0a,0xac0a9f0a,0x1f032102,0x35042303,0x37053705,0x27053805,0x50054f04,0x51055105,0x55054c05,0x56055505,0x58055805,0x4f054e05,0x51054f05,0x1b055505,0xfe043104,0x33023402,0x46023602,0x4e084808,0x37013808,0x86028601,0x39028302,0x9200a201,0x4d014200,0x64014e01,0x4200a20a,0x93014d01,0x4d00a200,0x770a4901,0x3700370a,0x36003500,0x36003700,0x93006300,0x64014d00,0x9300ca0a,0x490a6400,0x6300370a,0x630a4900,0xca002e00,0x490a6400,0xca00cb0a,0x490a4900,0x27002e0a,0x270a4900,0xa0002800,0xa1009f00,0xa000d200,0xd200a100,0xd000a100,0xd200cc00,0x4900d000,0x3d00280a,0x9b004b00,0x49009c00,0x4b003d0a,0xd000cc00,0xab00cb00,0xcb00cc00,0x9c004b00,0x4b006200,0x4a006200,0xcb00ab00,0xaf0a4900,0x4900ab00,0x4b0a490a,0x49004a00,0x3c004a0a,0x22002400,0xb8002300,0x23002400,0x2300b800,0xb000b700,0xb700b800,0x3c0a4900,0x49003400,0x5500340a,0xb700b000,0x7a00af00,0xaf00b000,0x550a4900,0x60006000,0x56005700,0x56006000,0x7a007c00,0x4900af00,0x7a007e0a,0x490a4900,0x7c00600a,0x7c0a4900,0x8b005f00,0x49007e00,0xe5001e0a,0x4900c400,0x54005f0a,0x540a4900,0xc005100,0xc4001e00,0xc000d00,0x4900c400,0x6900510a,0x78007400,0x74007700,0x94007700,0x94007400,0x69007300,0x73007400,0x73006900,0xd006800,0x8b00c400,0xd000e00,0x49008b00,0x6800690a,0x680a4900,0xe006500,0x49008b00,0xe000f0a,0x490a4900,0x8000650a,0xaa008a00,0x8a00a900,0xb100a900,0xb1008a00,0x80008800,0x88008a00,0x88008000,0x10007f00,0x49000f00,0x1200cf0a,0x49001100,0x7f00800a,0x7f0a4900,0x64007d00,0x1100cf00,0x64005b00,0x49001100,0xa5007d0a,0xc700ad00,0xad00c600,0xc200c600,0xc200ad00,0xa500ac00,0xac00ad00,0xac00a500,0x5b00a400,0x10001100,0x5b005800,0x49001000,0xa400a50a,0xa40a4900,0x58009a00,0x49001000,0x5800200a,0x490a4900,0xb4009a0a,0xe000bb00,0xbb00df00,0xd300df00,0xd300bb00,0xb400ba00,0xba00bb00,0xba00b400,0x3800b300,0x49002000,0xb500b60a,0x49007600,0xb300b40a,0xb30a4900,0x3b00b200,0x7600b600,0x3b002100,0x49007600,0xc800b20a,0x4e00ce00,0xce004d00,0xe1004d00,0xe100ce00,0xc800cd00,0xcd00ce00,0xcd00c800,0x2100c500,0x38007600,0x21012d00,0x49003800,0xc500c80a,0xc50a4900,0x2d00c300,0x49003801,0x2d012f0a,0x490a4901,0xd600c30a,0x4900dd00,0xdd004700,0x48004700,0x4800dd00,0xd600dc00,0xdc00dd00,0xdc00d600,0x2b00d500,0x49012f00,0x8f00900a,0x49005300,0xd500d60a,0xd50a4900,0x2c00d400,0x53009000,0x2c013000,0x49005300,0xe400d40a,0x6e00eb00,0xeb006d00,0x70006d00,0x7000eb00,0xe400ea00,0xea00eb00,0xea00e400,0x3000e300,0x2b005301,0x30012000,0x49002b01,0xe300e40a,0xe30a4900,0x2000e200,0x49002b01,0x2001210a,0x490a4901,0xf100e20a,0xa300f400,0xf4009800,0x99009800,0x9900f400,0xf100f200,0xf200f400,0xf200f100,0x2500f000,0x49012101,0x6600670a,0x49004200,0xf000f10a,0xf00a4900,0x2600ee00,0x42006701,0x26012200,0xfe004201,0xbc00bd00,0xbc00fe00,0xfb00be00,0xbe00fe00,0xbe00fb00,0xee00fd00,0xfd00fb00,0xfd00ee00,0x2200fa00,0x25004201,0x22011201,0x49012501,0xfa00ee0a,0xfa0a4900,0x1200f900,0x49012501,0x1201130a,0x190a4901,0x49011301,0x3e003f0a,0xd00e700,0xd900da01,0xd9010d00,0x900db00,0xdb010d01,0xdb010900,0xf9010c00,0xc010900,0xc00f901,0x1a010801,0xe7003f01,0x1a011400,0x4900e701,0x800f90a,0x80a4901,0x14010601,0x1900e701,0x49011901,0x7601060a,0x7c097909,0x7c097609,0x73097a09,0x7a097609,0x7a097309,0x6f097809,0x78097309,0x78096f09,0x6e097709,0x77096f09,0x77096e09,0x68097409,0x74096e09,0x74096809,0x67097009,0x70096809,0x70096709,0x6b096d09,0x6d096709,0x6d096b09,0x6c096909,0x69096b09,0x69096c09,0x72096a09,0x6a096c09,0x6a097209,0x4f097109,0x71097209,0x71094f09,0x84097509,0x88098709,0x88098409,0x81098609,0x86098409,0x86098109,0x7e098309,0x83098109,0x83097e09,0x7d098009,0x80097e09,0x80097d09,0x7f098209,0x82097d09,0x82097f09,0x75098509,0x85097f09,0x85097509,0x39098909,0x16094209,0x17091609,0x18091809,0x1a091909,0xd091a09,0xe090e09,0x12091009,0x1e091209,0x20092009,0x22092109,0x23092209,0x24092409,0x26092509,0x27092609,0x28092809,0x1d091c09,0x1f091d09,0xf091b09,0x4c094d09,0x4c090f09,0x28094b09,0x1b091d09,0x26092409,0x20092809,0x24092209,0xe091a09,0x16091209,0x1a091809,0x39093309,0x30091609,0x16093309,0x1a091609,0x1b091209,0x4b090f09,0x4b091b09,0x30096609,0x12091609,0x30092f09,0x1b091209,0x65096609,0x65091b09,0x2c096409,0x12092f09,0x2c098a09,0x1b091209,0x62096409,0x62091b09,0x89095f09,0x12098a09,0x89097509,0x1b091209,0x5c095f09,0x5b095c09,0x5c095809,0x5a095809,0x75094f09,0x5e091209,0x12094f09,0x5a095c09,0x5c095d09,0x60095d09,0x12095e09,0x59092009,0x20095e09,0x60095c09,0x5c096109,0x63096109,0x59095609,0x54092009,0x56095509,0x54094409,0x1b095609,0x63095c09,0x63091b09,0x44095309,0x20095609,0x44093e09,0x1b092009,0x52095309,0x52091b09,0x37095109,0x20093e09,0x37093509,0x1b092009,0x50095109,0x50091b09,0x32094909,0x20093509,0x32093109,0x28092009,0x49091b09,0x49092809,0x31094709,0x24092009,0x31093409,0x28092409,0x45094709,0x45092809,0x36093d09,0x24093409,0x3d092809,0x38093809,0x24093609,0xa0099909,0xa4098a09,0xa905a705,0xab05a905,0xf02a602,0xa905a403,0xb305ac05,0x8a05b505,0x7e058b05,0x85057e05,0x86058605,0x88058705,0x89058805,0x88058e05,0x8d058e05,0x86057e05,0x8c058805,0x7e058a05,0x8d058805,0xc7058c05,0x4009c809,0xf009ec09,0xe3096a09,0x19021a03,0x3309b902,0x3093009,0x7d0a040a,0xf70af409,0xf80af80a,0xfe0aab0a,0xfe0af80a,0xf10afd0a,0xf80af40a,0xf50af60a,0xf60af10a,0xf80af10a,0x40aff0a,0xff0b020b,0x10b020a,0xff0b000b,0x30b010a,0xae0b060b,0x10b000a,0xb030b,0xae0b030b,0xad0aae0a,0xac0aac0a,0xea0aef0a,0xec0aea0a,0xed0aed0a,0xeb0aee0a,0xeb0aed0a,0xaf00a,0xac0aae0b,0xae90a,0xea0aac0b,0xf00aed0a,0xf00aea0a,0xe90af30a,0xea0aac0a,0xe90ae80a,0xe80aea0a,0xf30aea0a,0xf60af90a,0xfc0af80a,0xf80af90a,0xe80afd0a,0xfd0af30a,0xfa0af30a,0xf80afc0a,0xfd0afd0a,0xfb0afa0a,0xe003cb0a,0x10021903,0x120b110b,0x130b120b,0x140b140b,0x160b150b,0x170b160b,0x180b180b,0xf0b0e0b,0x100b0f0b,0x120b120b,0x160b140b,0x180b160b,0x870b0f0b,0x9f099d09,0x303ea09,0x65016502,0xde016401,0xdd02de02,0xc103ea02,0xf501d201,0x8e01f501,0x4020401,0x1c020802,0x82018a02,0x4018d01,0x8a021c02,0xb101ad01,0x8c01c101,0xc101ad01,0x401f501,0x8d018a02,0xc501be01,0x8a01f501,0x8c018d01,0xf501c101,0x1f020101,0x80018002,0xf5018c01,0x8d01f501,0xc501c501,0xef01ec01,0xef01c501,0x101ff01,0xf5018002,0xfb01da01,0xd4020101,0xda01d501,0xa801ab01,0x1301d401,0xd401ab02,0x101da01,0x1301f502,0xda01d402,0xda021301,0xf501f501,0xff01c501,0xf5021301,0x1201ff01,0xff021302,0xff021201,0xe021101,0x11021202,0x11020e02,0xd0020702,0xd601d101,0xe01d601,0xcf020702,0xd601d001,0xb9038f01,0xdf03c503,0x82038302,0xcb03cc03,0xe203ea03,0xea03cc03,0x8202df03,0xdf038703,0x8f038702,0xe203ec03,0xfa03ea03,0xea03ec03,0xdf02dd03,0xdd038f02,0xc5038f02,0xea03fa03,0x502dd03,0xdd03fa04,0xc502dd02,0x403e803,0xdd040504,0x403f502,0x9c02dd04,0xa2037903,0xa2039c03,0xa1039d03,0x9d039c03,0x9d03a103,0xc103a003,0xa003a103,0xa003c103,0xf203de03,0xdd03f503,0xc103e802,0xe803de03,0xe503de03,0xbf039b03,0xbc03bd03,0xbd039b03,0xbd03bc03,0xc303c403,0xc403bc03,0xc403c303,0xe403f003,0xf003c303,0xf003e403,0xf403f203,0xf203e403,0xe503e803,0xe803e903,0x4b03e903,0xf203f403,0xe702dd03,0xdd03f403,0xe802dd02,0xdd034b03,0x4c034b02,0xe703d903,0xdd02dd03,0x75034c02,0x8e037703,0x94039003,0x90037703,0x90039403,0xb203c803,0xc8039403,0xc803b203,0xd603cd03,0xcd03b203,0xcd03d603,0xb403d903,0xd903d603,0xf803f703,0xf703ff03,0xf903ff03,0xf703fc03,0xfc03f903,0xfb03f903,0xfc036a03,0x6a03fb03,0x6b03fb03,0xd903b403,0xaa02dd03,0xdd03b403,0x6a037502,0x75036b03,0x74036b03,0x61034d03,0x5e035f03,0x5f034d03,0x5e036403,0x85035f03,0x5f036403,0x5f038503,0xa7039903,0x99038503,0x9903a703,0x8603a303,0xa303a703,0xa3038603,0x7503aa03,0x7b037403,0xaa038603,0x7502dd03,0x86037b03,0x11030703,0x36041204,0x35033803,0x23053505,0x24042404,0x36033404,0x43013e03,0x53015301,0x630a6501,0x610a630a,0x6a013e0a,0x50056d05,0x5b015a05,0x5a0a5a01,0x570a590a,0x3402350a,0xf6023a02,0x6c09f109,0xe40ae109,0x990b050a,0xe201c008,0x8c028b01,0x80028d02,0x7901680a,0x7b0a790a,0xc90a7a0a,0x37023801,0x3c023702,0x4a017502,0x6c024902,0x4d016c01,0x39024b02,0x8d013301,0x38005c00,0x75013901,0xdb034c03,0x71057b07,0xb6057005,0xb705b805,0x2105c405,0xb6052305,0xc405b705,0x14067e05,0xd4010601,0xcf0ad50a,0xb30ab00a,0xa90aa90a,0xaf0aa80a,0x55054d0a,0x4d054c05,0x4b054c05,0x45054605,0xf8054205,0x3e053c02,0x46053e05,0x61054205,0x4b054d05,0xf802e805,0x61053e02,0xe8054b05,0x3e02e802,0xc2054205,0xaa01b108,0x840ab401,0xf00aa80a,0x110aeb0a,0x3a05210b,0x6d033b03,0x380a3902,0x38026d0a,0x350a360a,0x6d02660a,0x36026d02,0x320a340a,0x24033403,0x48023e04,0x43024302,0x40024402,0xc7014602,0xe902c902,0x6409e709,0x65096409,0xa409ea09,0xad0aa70a,0xae0aad0a,0xa40aa50a,0x23032402,0xd005e603,0xd1051f05,0x3c01db01,0xf10a9708,0xed0aed0a,0x9b0a9f0a,0x1301ab0a,0x14083502,0xe081308,0xe081408,0x17080f08,0x14081508,0x16081808,0x11081708,0x18081208,0xf081408,0x10081008,0x18081108,0x17081808,0xfc081408,0xf607fb07,0xf607fc07,0xff07f707,0xfc07fd07,0xfe080007,0xf907ff07,0x7fa07,0xf707fc08,0xf807f807,0x7f907,0xff080008,0x8907fc07,0x86028a02,0x85028602,0x88028702,0x86028902,0xc502c402,0xc302b602,0xb502c402,0x44024002,0x41023f02,0x420a7c02,0x40024202,0x41023f02,0x3c053605,0xf8053c05,0x4002f902,0xfd02f705,0xf9053c02,0xfd054002,0x3c054102,0x6c027c05,0x90026a02,0x5a040801,0x45035a03,0x17041703,0x88026804,0x90018801,0x54035a01,0x5c056305,0x3a041a05,0x3b053b05,0x1d042005,0x4d024b04,0x74024c02,0x43057705,0xa202a105,0xb102ab02,0xb202b302,0xab02a102,0xe802b102,0xe608e708,0xe508e608,0xe608e008,0xe108e008,0xe808e908,0xe308e608,0xe908e408,0xe108e608,0xe208e208,0xe908e308,0xdc0ac508,0x770ad30a,0x44025e02,0x400a420a,0x4402770a,0x2c030903,0x5c085b03,0x61086108,0x5f086008,0x5e085f08,0x5d085d08,0x59085808,0x5b085a08,0x5d086108,0x5a085908,0x5f086108,0xd2085d08,0xd008d108,0xcf08d008,0xd008ca08,0xcb08ca08,0xd208d308,0xcd08d008,0xd308ce08,0xcb08d008,0xcc08cc08,0xd308cd08,0x35053708,0x90057805,0x93028f02,0x670a6502,0xd60a620a,0xd70ad80a,0x8b028c0a,0xca029f02,0x57035908,0xb702b803,0xde02ca02,0xdb02c002,0xe002dc02,0xde02df02,0xdc02db02,0xdd02df02,0x8402de02,0x26078607,0xbe02b805,0xc602c602,0xbf02c702,0xf002ee02,0xfe02fe02,0xfd030102,0xf902f702,0xfe02f802,0xf702fd02,0xee02ed02,0x3b02fe02,0xed033a03,0x3c030a02,0x27033b03,0xc032603,0x3b030a03,0x2802ed03,0xc032703,0xed030a03,0x2502fe02,0xc032803,0xa030c03,0xfe02fe03,0xf802f702,0xe802f802,0xe602e602,0xf402e702,0xf402e602,0xfe02f302,0xe602f802,0xc032502,0x2302fe03,0x25032403,0x21031f03,0x1a032303,0x1f031d03,0x16031703,0x19031903,0x1f031a03,0x23031f03,0xfe032503,0xf302e602,0xf302fe02,0x1f02f602,0xfe032503,0x19031702,0x15031f03,0x17030f03,0x1302ea03,0xfa02fa03,0x17031502,0xf602fe03,0xfe030202,0xfc030202,0x1702fa02,0xe9031f03,0xfa02ea02,0x302ff02,0xeb02eb03,0xfa02e902,0xfc02fe02,0xfe02ef02,0xec02ef02,0xfa02eb02,0xe031f02,0xeb02ff03,0x1102f202,0xf5030e03,0xf202f102,0xfb02e202,0x602f502,0xe202e303,0x6030502,0xe202e203,0xf202f502,0xe02f202,0x1f02eb03,0xec02fe03,0xec031f02,0xe2030b02,0xeb02f202,0x5031002,0x402e203,0xe2031003,0xb031f02,0x1f032203,0x20032203,0xe2030403,0x2eb02,0xeb030403,0x20031f02,0x1f031e03,0x1c031e03,0x30d03,0x1202eb03,0xeb030d03,0x1c031f02,0x1f031b03,0x18031b03,0x12031403,0xeb02eb03,0x18031f02,0xfa08f903,0xff08ff08,0xfb08fe08,0xfc08fb08,0xfd08fd08,0xf708f608,0xf908f808,0xfd08ff08,0xf808f708,0xfb08ff08,0x8e08fd08,0x60096109,0x98099709,0xae093809,0xd605af05,0x76097902,0x6e09fd09,0x6e027902,0x88016e01,0x6e026801,0x76026801,0x64026302,0x72026e02,0x63026902,0x5c025b02,0x6d027202,0x5b026602,0x70027302,0x5e026d02,0x73027702,0x60008302,0x6c025e02,0x83012402,0x6a026100,0x61026c02,0x83026c02,0x63027200,0x6e026e02,0x76016e02,0x76026e02,0x61026f02,0x5e008302,0x61025f02,0x6e025e02,0x65026f02,0x65026e02,0x5f026702,0x73025e02,0x5f027802,0x72027302,0x67026e02,0x67027202,0x74027502,0x73027802,0x74027102,0x5b027302,0x75027202,0x75025b02,0x71025d02,0x6d027302,0x71026b02,0x5b026d02,0x62025d02,0x6b026202,0xe1026d02,0x58095a09,0x8035a09,0xf0035b04,0x7109f509,0x3609b509,0xe0093809,0x54095809,0xbe093909,0xa509cb09,0x2e09a709,0x9d0a0a09,0xb9098709,0x3909be09,0xe605e509,0x9c051c05,0x2b098b09,0xc709c609,0xe2093f09,0xdc0add0a,0xda0adc0a,0x460ae10a,0x48064706,0x49064806,0x4a064a06,0x44064506,0x44064a06,0x46064306,0x4a064806,0x40063f06,0x41064606,0x46063f06,0x4a064606,0x42064306,0x46064106,0x50041306,0xe2032903,0xe402e302,0xfb02f502,0xe102e102,0xe402e202,0xe402e102,0xd302e502,0xe102f502,0xdf038302,0xe002e002,0xe102d302,0xe102e002,0xb902e502,0xb7038f03,0xb903b303,0xb303b703,0x8c03b703,0xb303ab03,0xab038c03,0x72038c03,0xab036c03,0x6c037203,0x68037203,0x6c036903,0x69036803,0x5d036803,0x7903a203,0x70037003,0x5d036903,0x5d037003,0x83035303,0xe502e003,0x43033f02,0x2b032c03,0x9f03a903,0x9f032b03,0x2c039703,0x97032b03,0x8a039203,0x2c036703,0x92039703,0xe5038303,0x52041302,0x13038303,0x52034f04,0x53041303,0x13034f03,0x13035304,0x70032904,0x29035303,0x29037003,0xa2032a03,0x2a037003,0x2c033f03,0x92039203,0x62036703,0x57036203,0x62035603,0x7035603,0xa203d504,0xd1032a03,0x2a03d503,0x7036203,0x2040204,0xe103f304,0xdb03e103,0x6203b603,0xe1040203,0x4b034c03,0xb040e03,0xe034c04,0xe040b04,0x303f104,0xf1040b04,0xf1040303,0xd803d703,0xd7040303,0x62039203,0xd803e103,0xd103d703,0xd803d003,0xd203d103,0xd103d003,0xf803ff03,0x6103d203,0xff034d03,0x61036303,0xd203ff03,0x2a03d103,0xd203ff03,0xef032a03,0xd4034603,0xd403ef03,0xeb03ee03,0xee03ef03,0xee03eb03,0xe603ce03,0xce03eb03,0xce03e603,0xb103b503,0xb503e603,0xb503b103,0xaf03ad03,0xad03b103,0x8803ae03,0xaf035803,0xae03ad03,0xaf03b603,0xae03ae03,0xd3035803,0xae03b603,0xe103d303,0xd303b603,0xe1039203,0x6303d303,0x2a03ff03,0x77038e03,0x6f036f03,0x2a036303,0xd3039203,0x3f03cf03,0xcf039203,0xcf033f03,0x3f03ed03,0xe303ed03,0x3f032a03,0xe003e303,0xcc03cb03,0xe3032a03,0x9303e003,0x6f038e03,0x9b03bf03,0xe0039303,0xbf03cc03,0x2a036f03,0xe003e003,0x9303bf03,0x9b02e903,0x23059c05,0x1a0b190b,0x1b0b1a0b,0x1c0b1c0b,0x1e0b1d0b,0x1f0b1e0b,0x200b200b,0x220b210b,0x230b220b,0x1a0b1a0b,0x1e0b1c0b,0x200b1e0b,0x6b0b220b,0x4f056a05,0x71067305,0x72067206,0x79067806,0x7a067906,0x7b067b06,0x77067c06,0x77067b06,0x72067606,0x7b067906,0x73067406,0x7b067206,0x75067606,0x74067506,0x8c067206,0x8b068a06,0x91068b06,0x92069206,0x94069306,0x95069406,0x94069006,0x8f069006,0x92068b06,0x8d069406,0x8b068c06,0x8f069406,0x8e068e06,0x8b068d06,0xed052806,0x5a033a02,0x54055905,0x53055405,0x52055205,0xe6055705,0xe802e602,0x4b054b02,0x54055a05,0x52055405,0x9202e605,0x96029302,0xa406a302,0xaa06aa06,0xac06ab06,0xad06ac06,0xae06ae06,0xa806a906,0xa806ae06,0xaa06a706,0xae06ac06,0xa306a506,0xae06aa06,0xa606a706,0xa506a606,0x5f06aa06,0x5d0a5e0a,0x5c0a5d0a,0x3e013e01,0x5f0a6101,0x360a340a,0xed0a2d0a,0x1a022203,0x90040802,0xd3018f01,0xac01a703,0xac03cf01,0xdc022201,0xde06dd06,0xdf06de06,0xe006e006,0xda06db06,0xda06e006,0xdc06d906,0xe006de06,0xd606d506,0xd706dc06,0xdc06d506,0xe006dc06,0xd806d906,0xdc06d706,0x1f042206,0x29042904,0x17042f04,0x45041704,0x29043303,0x33041704,0x2c041904,0x21042204,0x19041e04,0x2a043004,0x18042104,0x30043204,0x1c042604,0x1b041804,0x26042504,0x26041b04,0x29041804,0x2e043304,0x2e042904,0x1b042404,0x30041804,0x1b043104,0x22043004,0x24042904,0x24042204,0x2d042304,0x30043104,0x2d042804,0x22043004,0x27042304,0x27042204,0x28042b04,0x21043004,0x28042004,0x19042104,0x2b042204,0x2b041904,0x20041a04,0x19042104,0x1a041904,0xed041d04,0x29052802,0x2902ed05,0x46044b05,0xee045704,0x46043d02,0xee02ee04,0x4b02ed02,0x4b02ee04,0x3c045004,0xee043d04,0x58046802,0x4f044f04,0xee043c04,0x5002ee02,0x59045904,0x4f046804,0xec030b04,0x80090f02,0x7f0a7a0a,0xbe01ae0a,0xae018d01,0xb7018d01,0xb701ae01,0xae019701,0x96019701,0xae020f01,0xf019601,0x9019602,0xf020a02,0xa020902,0xc8020902,0xa01c701,0xec01c802,0xe401c501,0xec01e001,0xe001e401,0xc401e401,0xe0022d01,0x2d01c401,0x2701c402,0x2d022902,0x29022702,0x28022702,0x2901a602,0xa6022802,0xc7022801,0xc701a601,0xff01c801,0xfe01ef01,0xff020001,0x1fe01,0xf601fe02,0x1f901,0xf901f602,0xa401f601,0xf901a301,0xa301a401,0x9c01a401,0xa3019d01,0x9d019c01,0xa6019c01,0xd001d101,0xa901a901,0xa6019d01,0xd101db01,0x7901a901,0x8a018201,0x8a017901,0x79017701,0x78017701,0x78017901,0xe601e701,0xe7017901,0xe701e601,0xde01dd01,0xdd01e601,0xdd01de01,0xc801bd01,0xbd01de01,0xab01a801,0xa1021b01,0x1b01a801,0x1b01a102,0x14020202,0x8021c02,0x8021402,0x14021702,0x6021702,0x6021402,0xbb01bc02,0xbc021401,0xbc01bb01,0xb301b201,0xb201bb01,0xb201b301,0xbd019f01,0x9f01b301,0xd401d501,0xc601cb01,0xcb01d501,0xcb01c601,0x2e01b001,0xb001c602,0xb0022e01,0x2c01af01,0xaf022e02,0xaf022c01,0x2f022b01,0x2b022c02,0x2b022f02,0x2f022102,0x20022102,0xda01fb02,0xf001fa01,0xfa01fb01,0xfa01f001,0x8601dc01,0xdc01f001,0xdc018601,0x85018301,0x83018601,0x83018501,0x89018401,0x84018501,0x84018901,0xfd022f01,0x8e020401,0xd7018e01,0x8e01f101,0xf201f101,0xfd01ee01,0xee018e01,0xf2018e01,0xf201ee01,0x9b01d801,0xd801ee01,0xd8019b01,0x9901a001,0xa0019b01,0xa0019901,0x9f019801,0x98019901,0x98019f01,0x9f018701,0x7f018701,0x1021f01,0x16021802,0x18021f02,0x18021602,0xbf020502,0x5021601,0x501bf02,0xba01b802,0xb801bf01,0xb801ba01,0xc001b901,0xb901ba01,0xb901c001,0x7e018901,0x72017301,0x74017201,0x7d016501,0x72017e01,0x7d017f01,0x6e017201,0xb4025301,0xb4016e01,0x7f01a201,0x65017201,0x7f019f01,0xbd016501,0x65019f01,0xbd01c801,0xa6016501,0x6501c801,0xa601a901,0xdb016501,0x6501a901,0xdb01e801,0xed016501,0x6501e801,0x8c018101,0x7c018001,0x80018101,0x80017c01,0x7b017a01,0x7a017c01,0x7a017b01,0xea022301,0x23017b01,0x2301ea02,0xe301e102,0xe101ea01,0xe101e301,0xb601e201,0xe201e301,0xe201b601,0x201c001,0x6501ed02,0x65020201,0xb1020301,0x8b01ad01,0xb101aa01,0xaa018b01,0xb018b01,0xaa021002,0x10020b01,0xc020b02,0x10020d02,0xd020c02,0xb6020c02,0xd01b501,0xf501b602,0xce01d201,0xf701d301,0xd301f501,0xce01f501,0xce01d301,0xcc01c301,0xc301d301,0xc301cc01,0x2a022401,0x2401cc02,0x24022a02,0x26022502,0x25022a02,0x25022602,0xa501b502,0xb5022601,0xe901eb01,0xe501d901,0xd901eb01,0xd901e501,0x9e019301,0x9301e501,0x93019e01,0x6e019401,0x9501a201,0x9e019501,0x95019401,0xa5019401,0x6e018801,0x88019501,0xa5019501,0xa5018801,0x8801b501,0xb601b501,0xb6018801,0x8801c001,0x8901c001,0x89018801,0x88022f01,0x20022f01,0x20018802,0x88021d02,0x1e021d01,0x1e018802,0x90019102,0x91018801,0x3020201,0x2021502,0x19021502,0x90018f02,0x92019101,0x91018f01,0x19020201,0x2021a02,0x22021a02,0x91019202,0x9a01a101,0xa1019201,0x22020201,0xa701ac02,0xa1019a01,0x201a101,0x4301ac02,0xfd054105,0x39073b02,0x3a073a07,0x41074007,0x42074107,0x43074307,0x3f074407,0x3f074307,0x3a073e07,0x43074107,0x3b073c07,0x43073a07,0x3d073e07,0x3c073d07,0xee073a07,0xa6019b01,0xbd09ba07,0xb7093e09,0x3709ba09,0x9600be09,0xef069a06,0x7b028000,0xb407b502,0xb107b107,0xb307b207,0xac07b307,0xb307ad07,0xae07ad07,0xb107b507,0xaf07b307,0xb507b007,0xae07b307,0xae07af07,0xb002af02,0xa602a702,0xa702ab02,0xa202ab02,0xa002a202,0x96029602,0x8f029302,0x8d028f02,0x8c028c02,0x9d029e02,0x9a029d02,0x98029802,0xa802a302,0xad02a802,0xa802a402,0xa502a402,0x98029d02,0x8f02a802,0x9d028c02,0x9602a202,0xa7028f02,0x8f02a202,0xa8029d02,0x9d02a502,0xac02a502,0xa702b002,0xae028f02,0x8f02b002,0xac029d02,0xaa02a902,0x8f02ae02,0x9d028f02,0xca02a902,0x601c201,0x4c0a2809,0x830a4d0a,0xc60ac50a,0x3901330a,0x83028301,0x34013a02,0xa408a301,0x9408a908,0x5f029702,0x78087701,0x65087908,0xd501da08,0x39053801,0x8b042b05,0x9b0a9a0a,0x7e08730a,0x7f087f08,0x8003ba08,0x73086e03,0xac087f08,0xa70aad0a,0x90058f0a,0x3f050105,0x43024402,0x31033302,0xbd091003,0x2703bf03,0x45025208,0x54025402,0x49016d02,0x46024a02,0x52025202,0x49025402,0xe500c402,0x40004000,0xfb05e700,0xe505e405,0x20051d05,0x3d053b04,0xdc018305,0x59086201,0x4b055a05,0x4c054b05,0x71055105,0x30042a02,0xb80abc04,0x410aba0a,0x7f0a7d02,0x7c0a7e0a,0xf202410a,0x74037b07,0x39023803,0x68023602,0x65056205,0xbc00be05,0xd700d700,0x96068200,0x180a1906,0x2a0a2a0a,0x2d0a2c0a,0x3b0a2d0a,0x2e0a2e0a,0x410a3f0a,0x490a410a,0x660a660a,0x1a0a1e0a,0x1a0a660a,0x2d0a150a,0x410a2e0a,0x2a0a190a,0xc0a2d0a,0x2d0a190a,0x660a410a,0x410a150a,0x130a150a,0x2d0a0c0a,0xd0a410a,0x410a0c0a,0x130a410a,0xf0a110a,0x410a0d0a,0x8209080a,0xa7038303,0xf3038603,0x8a0a8907,0xcd0aa20a,0x150a1309,0xd604600a,0x5305d705,0x6d016e02,0x76057301,0xb0057705,0x4c01cb01,0x5e085d08,0xc9086608,0xc3022408,0xbc08bb01,0x9108bf08,0xa2009200,0x7f00a200,0xac057d05,0xa805aa05,0x37033905,0x2091a03,0x82078105,0x51015007,0x6c0a6e01,0x500a6b0a,0x950a9101,0x8a0af80a,0xbb021c01,0x8802a807,0xb9028702,0xaa05ad02,0xd005aa05,0xba02cb02,0xaa02b902,0x3a053905,0x63041a05,0x5e055f05,0x5d055e05,0xb055c05,0x98018709,0xad08a901,0xbd018c01,0xc20acd0a,0x7705430a,0x76057605,0x7b057505,0x7a057b05,0x79057905,0x35057805,0x35057905,0x41054205,0x76054305,0x41053605,0x7b057605,0x42057905,0x42057b05,0x36054505,0x7b057605,0x45057b05,0x71054605,0x5501540a,0x58015501,0x57015701,0x720a7301,0x710a720a,0xef01550a,0x9c0aa10a,0x9d0a9c0a,0x120aea0a,0x25031403,0xc000e609,0x6306b900,0x87003600,0x63008700,0xf7077707,0xfd06fc06,0x59015806,0x5a015a01,0x580a5701,0x740a750a,0x5a01570a,0x750a5801,0x5801570a,0x58015a01,0x48025102,0x3e024802,0x20025a02,0xc803cd08,0x7b00ed03,0x7a027a02,0x2c013502,0x17026801,0x7f042f04,0x8b057e05,0x14058b05,0x7d050305,0x8b057f05,0xf50b1405,0xb70af60a,0xbb0ab90a,0x910abb0a,0x900a900a,0x8d0a8e0a,0x8f0a8d0a,0x8c0a8c0a,0xc10a880a,0xc10a8c0a,0x900abf0a,0x8c0a8d0a,0xbb0ab70a,0xbc0a900a,0xb70ab50a,0xb40abe0a,0xbd0abc0a,0xbc0abe0a,0xb70abc0a,0x900a900a,0xbf0a8c0a,0xbd0ac00a,0x900abc0a,0xc00abf0a,0x810aa70a,0x4f0a820a,0x500a4e0a,0x4101660a,0x5e023f02,0x63016201,0x37053801,0x6e056e05,0x70056f05,0x71057005,0x72057205,0x74057305,0x3f057405,0x74053d05,0x3b053d05,0x6e053805,0x39057005,0x70053805,0x74057205,0x3a053b05,0x70053905,0x3b057205,0xa7053a05,0xb105b005,0x85078305,0x84078407,0xfb051707,0x83078204,0x6f078407,0x1f042902,0x9a05b104,0x1905b405,0xcf0a0c0a,0x2d072809,0xdd072e07,0xd20ade0a,0x1e04190a,0x8e026204,0x960a900a,0x603310a,0x65091203,0x5f056205,0x760a7805,0x560a560a,0x4c0a4d0a,0x4c0a560a,0x6e0a4a0a,0x78026402,0x560a780a,0x470a4a0a,0x6e0a460a,0x4a0a7802,0xa60a470a,0xa005b505,0x3b0a2e05,0x2c0a3a0a,0x5d041904,0x608fd02,0x7090709,0x52038309,0xfd08f603,0x67090708,0x2c042202,0x18025f04,0x17041c04,0x97059d03,0x30027405,0x6b043204,0x2a042102,0x32027804,0x76041804,0x29042f02,0xff030304,0x5f02d902,0x4c074b04,0xcf082407,0x37020701,0xe021208,0x14081302,0xa0081d08,0x601bc07,0xa806a702,0x7104e406,0x75057b05,0x38053505,0x35033d03,0x44033d05,0x61056005,0xe6054205,0x42056002,0x35054205,0x2a054405,0x6400cf01,0xc006400,0xb6060b06,0xb2020c01,0xfb00c408,0xab05ff05,0xb106b006,0x1b061606,0xc5061c06,0x5005c605,0x84058904,0x8f058f05,0x1804fc05,0x89058e05,0xcf058f05,0x56007c05,0x97005600,0x4005d100,0xe9006100,0x6c096b05,0xf109f109,0x6709ed09,0xd205d109,0xe5043b05,0xe905e804,0x97031605,0x95059505,0xaf02b005,0xa00aa302,0xa10aa10a,0xac0aef0a,0x80027b0a,0x79047902,0x7a028204,0xa605a502,0x86059f05,0x9d0a890a,0x6902630a,0x630a5302,0x520a5302,0x560a4d0a,0x4e02630a,0x630a4d0a,0x52026302,0x5a0a500a,0x35023e02,0x3b023502,0xde023d02,0xd10adf0a,0xd505ae0a,0xcf02cf02,0x1302fa02,0xa3031303,0xae05a505,0x1302cf05,0x63016003,0x64016401,0x74016501,0x49017401,0x55016001,0x21022008,0x8d028e02,0x39028f02,0xe602e703,0x3e02e602,0x3d033d03,0x36033803,0x34033603,0x32033203,0x2d033003,0x2f032d03,0x2e032e03,0x2c032b03,0x2c032e03,0x36030903,0x2d033203,0x2e032d03,0x8030903,0x29032a03,0x9032d03,0x3d030803,0x2d033603,0xe6033903,0x37033d02,0x3d033903,0x29030803,0x7030703,0xe3041503,0xe3030702,0x2d030602,0x7030803,0x37033503,0x33033d03,0x3d033503,0x7032d03,0x31030603,0x3d033303,0x6032d03,0x4e033103,0x58025102,0x7f023302,0x7a0a7a0a,0x3202310a,0xee02f002,0xf0045702,0x45702,0x25047905,0x82041b04,0x1b047902,0xf0041b04,0x1b050002,0xae050004,0xae041b04,0x1b04b004,0x4004b004,0x1b028204,0x81044004,0x40028202,0x85028704,0x87028402,0x81028402,0xa4032402,0x8702ad02,0x40028102,0x24032504,0x2702ad03,0x12032803,0x25051205,0x2402ad03,0x68045805,0x68052404,0x2e052504,0x25052405,0x25052e05,0x12052d05,0x8702ad05,0x27051302,0x3051203,0x13051405,0x3050c05,0x13051305,0x87051205,0x2e044002,0x40052d05,0x41052d04,0x13050c04,0x10028705,0x87050c05,0x41044002,0x87044c04,0x4c044002,0x10050d04,0x23028705,0x22052105,0x3b052205,0x1e051e03,0x20051f05,0x1e052205,0x3a052005,0x22052304,0x18051705,0xfb04fc05,0xfc051704,0xfc04fb04,0x2050104,0x104fb05,0x1050205,0x9050d05,0xd050205,0x22043a05,0x3a052005,0x3b052004,0xd050904,0x5028705,0x87050905,0x3a044c02,0x4c043b04,0x69043b04,0x6a04f904,0x6b04e704,0xe704f904,0xe7046b04,0xf604f704,0xf7046b04,0xf704f604,0xfd050504,0x504f604,0x69044c05,0x87047f04,0x7f044c02,0x504fd04,0xf8028705,0x8704fd04,0x7e044902,0x49048404,0x4a048404,0x49046004,0x60044a04,0x5f044a04,0x4204e004,0x1c04d904,0xd904e000,0xd9001c04,0xe604e504,0xe5001c04,0xe504e604,0xf304f804,0xf804e604,0x60047f04,0x7f045f04,0x9b045f04,0xf804f304,0x7f028704,0x85049b04,0x7f028704,0x66048504,0x9c048704,0x9c046604,0x91046704,0x67046604,0x67049104,0xc7049004,0x15001404,0xc7048e00,0x8e001504,0xd8001504,0x8e04d704,0xd704d804,0xe804d804,0xd704e204,0xe204e804,0xf304e804,0xf304e204,0x85028704,0x90049104,0x90048504,0xa004c204,0xbc047004,0xa0046f04,0x6f04bc04,0xca04bc04,0x6f04c904,0xc904ca04,0xdd04ca04,0xc904d204,0xd204dd04,0xe204dd04,0xe204d204,0x85028704,0x7a04c204,0x85028704,0x99047a04,0xa9049f04,0xa9049904,0xb7049a04,0x9a049904,0x9a04b704,0x7704b804,0xa7044804,0x77044704,0x4704a704,0xb504a704,0x4704b604,0xb604b504,0xcc04b504,0xb604c404,0xc404cc04,0xd204cc04,0xd204c404,0x7a028704,0xb804b704,0xb8047a04,0xc404de04,0x7a028704,0xde047a04,0x39046504,0x93046e04,0x39049204,0x92049304,0xa4049304,0x9204a304,0xa304a404,0xbf04a404,0xa304af04,0xc004bf04,0xb904aa04,0xb904c004,0xd604c104,0xc104c004,0xc104d604,0x6504d504,0xd504d604,0xd5046504,0xaf04f504,0xc404bf04,0xf5046504,0x7a046304,0x63046504,0x54045304,0x73047404,0x74045304,0x74047304,0x8a048b04,0x8b047304,0x8b048a04,0x9d04a804,0xa8048a04,0xa8049d04,0x6104af04,0x6204be04,0x62046104,0xf104da04,0xda046104,0xda04f104,0x6304f204,0xf204f104,0xf2046304,0x15051904,0x4e045105,0x15044d04,0x4d044e05,0x6c044e04,0x4d046d04,0x6d046c04,0x98046c04,0x6d048204,0x82049804,0x9d049804,0x9d048204,0x6304af04,0x64051904,0xaf048204,0x9404c404,0x9504cd04,0x95049404,0xe04f404,0xf4049405,0xf4050e04,0x64050f04,0xf050e04,0xf046405,0x64053305,0x34053304,0x64046304,0xfe043404,0x45048c04,0xfe048d04,0x8d044504,0x44044504,0x8d044304,0x43044404,0x7b044404,0x43045e04,0x5e047b04,0x82047b04,0xdb04ba04,0xba04bb04,0x1104bb04,0xba053005,0x30051104,0x2f051105,0x30043405,0x34052f05,0x34052f04,0x34043405,0x63043505,0x35043404,0x5c04e904,0x5d053104,0x3104e904,0x31045d05,0x3e043f05,0x3f045d04,0x3f043e04,0x7a045204,0x35046304,0x3e043504,0x35045204,0x5e045204,0x7a04c404,0x35043504,0x82045e04,0x7f090a04,0xa6018701,0xae0aa50a,0x430a370a,0x990a290a,0x9d029a02,0x9c029d02,0xd5029b02,0x110a0f09,0x730a3d0a,0x77027702,0x3e0a4002,0xec090f0a,0x7902ef02,0x7401690a,0x76017401,0x70017001,0x790a7b01,0x450a480a,0xc50a460a,0xb702ca02,0x640a7802,0x63026302,0x760a5602,0x6101400a,0x6e016201,0x79057805,0x13083605,0x59021202,0x67056605,0x65056705,0x29055b05,0xad00c701,0x3800ad00,0x69073707,0xd905da00,0x6905da05,0xdb005100,0x54005105,0xcf007c00,0xdf05dd05,0xdb05da05,0xdb05e005,0x5805dc05,0xa7019a03,0xbf05be01,0xc005c005,0xc205c105,0xc705c205,0xc205c605,0xc505c605,0xc005be05,0xc405c205,0xbe05b705,0xc505c205,0xc305c305,0xbe05c405,0xbd05c205,0xc805c805,0x68052505,0xc205c704,0x7d05c805,0xd900db06,0xe800d900,0x97066900,0xd3011c00,0xb506b405,0x3b052f06,0xd305d204,0x42013d05,0x3d009201,0x91009201,0x56013c00,0x5f015f01,0x91013d01,0x91015f00,0x8d008c00,0x3c008e00,0x8d005c01,0x3c013c00,0x8c015f01,0x8c013c00,0x31008200,0x3c005c00,0x31003201,0x32013c00,0x82013c00,0x32012c00,0x5e008200,0xa0009f00,0x24008300,0x36010e01,0x83003500,0x36008700,0x83008300,0xff010e00,0xff008300,0x8900f700,0x83008700,0x89008600,0x83008300,0xef00f700,0xef008300,0x300ed00,0x83008601,0x9b009c00,0x9e009d00,0x9d009c00,0x9e010b00,0xb009d00,0x3009d01,0xb008501,0x5e010301,0x5d00a000,0x5d005e00,0x85007900,0x83010300,0x83008500,0x8200ed00,0x79005e00,0x79008200,0x85008100,0x2c00ed00,0x82012c01,0x2c008100,0x72008101,0x57005600,0x97009600,0x96005600,0x96009700,0x1c011600,0x16009701,0x22003a01,0x3a002400,0x39002400,0x16011c00,0x84008501,0x85011c00,0x3a007200,0x72003900,0x6a003900,0x85008400,0x72012c00,0x6c006a00,0x72012c00,0x77006c00,0x5007800,0x77010401,0x4010500,0x27010501,0x4012e01,0x2c012701,0x61006c01,0xe5004000,0x2e001e00,0x84012701,0x2e003300,0x40008401,0x41001e00,0x41004000,0x33005000,0x2c008400,0x40006101,0x61005000,0x59005000,0xaa00a900,0x17011800,0x1800a901,0x18011701,0x2f003001,0x30011700,0x61012c00,0x2c005900,0x43005901,0x30002f00,0x52003300,0x33002f00,0x12001f00,0x1f00cf00,0x2a00cf00,0x33005201,0x43012c00,0x2a001f00,0x2a004301,0xc6004401,0x2900c700,0xc6004501,0x45012900,0x46012900,0x45005a00,0x43004600,0x2d004400,0x43012c00,0x5a002d00,0x52004600,0x5a007500,0x52005200,0x2d012c00,0x52007500,0x1d002d00,0xb600b501,0xb6011d00,0x25011e00,0x1e011d00,0x1e002501,0xdf013201,0x2a00e000,0xdf002900,0x29002a00,0x6b002a00,0x29007b00,0x2d006b00,0x32002500,0x32002d01,0x7b002601,0x75006b00,0x7b00a800,0x75007500,0x26002d00,0x7500a800,0x10002600,0x90008f01,0x90011000,0x31011100,0x11011001,0x11013101,0x4d012801,0x4f004e00,0x4d004c00,0x4c004f00,0x95004f00,0x4c00ae00,0x26009500,0x28013100,0x28002601,0xae012b01,0xa8009500,0xae00c100,0x100a800,0x67006601,0x67010100,0x23010200,0x2010101,0x2012301,0x2b011b01,0x1b012301,0x1b012b01,0xc1011f01,0x2600a800,0x2b002600,0xc1011f01,0x1f002600,0x3e00f501,0xf5003f00,0xf6003f00,0xf5011500,0x1500f600,0xf00f601,0x49004701,0x6f007100,0x71004700,0x71006f00,0xc900b900,0xb9006f00,0x15011f00,0xc9010f01,0xc100b900,0xc900d100,0xe800c100,0xda00d900,0xda00e800,0xa00e900,0xe900e801,0xe9010a00,0xa010000,0x7010001,0xa010f01,0x6d010701,0xa7006e00,0x6d00a600,0xa600a700,0xd100a700,0xa600de00,0x1f00d100,0x7010f01,0xde00e601,0x9800d100,0xc000a300,0xd100e600,0xbf00c100,0xc0009800,0xc000bf00,0xec00e600,0xe600bf00,0xbc00d700,0xd700bd00,0xd800bd00,0xd700fc00,0xfc00d800,0xf300d800,0xfc010700,0xf800f300,0xe600ec00,0xf3010700,0xf800f800,0xc100e600,0x7011f00,0x3200f801,0x36023702,0x53063202,0x8f008f00,0x1e011000,0x9f00a106,0x5e005e00,0x84058f00,0xa00e805,0x90066b01,0x33073204,0x6e048a07,0x8b066f06,0xa801ad01,0xb905ad08,0x9d02b202,0x4b009b00,0x6a004b00,0x5b076907,0xc061a00,0xb005fc06,0x1b007a00,0x20005806,0xfa00e100,0x7306fe06,0x79077807,0x79077407,0xde077a07,0xe005df05,0xe105e005,0xce05ce05,0xe605d005,0xe605ce05,0xde05e505,0xce05e005,0xd805e305,0xe205de05,0xde05e305,0xce05de05,0xe405e505,0xde05e205,0x60b0905,0x3f0b1a0b,0x5e014001,0x60015e01,0x49014901,0x5d014801,0x47015d01,0x3f014601,0x49015e01,0x46015d01,0x9b013f01,0x3f069c06,0x7d04f704,0xe6077e07,0x1d060404,0x43001f00,0x41060100,0xc001e00,0x1000c00,0x1001d00,0x18000000,0xe0001800,0x1d001c04,0x18000100,0x89078800,0xf904ec07,0xf505fa05,0xf505f905,0xf705f405,0xf905f805,0xf605f005,0xf105f705,0xf005ef05,0xf105f205,0xf005f005,0xf905f705,0xf405f905,0xf305f305,0xf005f205,0xfb05fa05,0xe705e705,0x4204d905,0xfa05f504,0x4805e705,0x6f004700,0xcd006f00,0xf106e106,0xbb06c900,0xcc079106,0xca00ab00,0xe300e206,0x90002300,0x3079407,0x6000400,0x92078d00,0x5079307,0xca060606,0x604ca04,0x1d060706,0x7002501,0x12061106,0x31048606,0x90073207,0x9c043f04,0xc9069d06,0x24062304,0x72003a06,0xa7077e00,0xeb006e00,0xd400eb00,0xed06d306,0xee06ef06,0xcd06ee06,0xec049404,0xee06ed06,0x70076f06,0x14043d07,0x16061506,0x17061606,0x18061806,0x12061306,0x12061806,0x14061106,0x18061606,0xe060d06,0xf061406,0x14060d06,0x18061406,0x10061106,0x14060f06,0x19061806,0x5060506,0x7004bc06,0x18061304,0xaa060506,0xb305ad05,0xb102b302,0xe705a802,0xf5003e00,0x5000f500,0xaf066406,0x98009906,0xbf009800,0x21069b00,0x25063300,0x93058006,0x600ca00,0xf000e00,0xb001100,0x41000a00,0x47074607,0x6000507,0x50000800,0x8b065106,0x3804a404,0xb6063906,0x3d063c04,0x23010106,0x2063901,0x26006701,0x57012601,0x57065606,0x58065906,0x39065806,0x56049204,0x58065706,0x44064306,0x31043706,0x1e063206,0xa7061e06,0x2c044804,0x1e063106,0x66004206,0x1010100,0x4b063701,0xc600c206,0x45004500,0x2c071800,0x65012207,0x4c065706,0x20013006,0x20064d01,0x42012101,0x4f064b00,0x4c064706,0x48064d06,0x4e064d06,0x1f061e06,0x8b04b506,0x52065104,0x5504a306,0x29065606,0x1007b00,0xb6011e07,0x3b003b00,0x24062500,0xa406a206,0xa306a306,0x8d04fe06,0xa206a104,0x1906a306,0xb1001a00,0x92099104,0xc7095109,0xa603d403,0xab02b103,0xa905a902,0xa805ab05,0x4b064a05,0x37063706,0x6e049306,0x4a064504,0x23063706,0x3a002200,0x7c003a00,0x55079007,0xb805b900,0x22066505,0x66011201,0x13011206,0x6400e701,0x60066806,0x66066506,0xb106ac06,0x8206b206,0x44068306,0x47024604,0x59025902,0x45025402,0x52024502,0xdc024602,0xdb04bb04,0xdb04dc04,0xd404d304,0xd304dc04,0xd304d404,0xce04c304,0xc304d404,0xe9045c04,0xea04e304,0xe3045c04,0xe304ea04,0xe404ce04,0xce04ea04,0xe404df04,0x8c04ce04,0xf004fe04,0xf0048c04,0xff04df04,0xdf048c04,0xff04ef04,0xee04df04,0xdf04ef04,0xdf04ee04,0x5104ce04,0x7051504,0xce04ee05,0x5104c304,0xee050704,0x51051604,0x804ee04,0xee051605,0x8050404,0x5404ee05,0x2c045304,0x54053205,0x32052c04,0x4052c05,0x32052b05,0x2a050405,0x4052b05,0x39046e05,0x2a043604,0xee050405,0x36046e04,0x38052a04,0x2a046e04,0x38043705,0x55052a04,0x2a043704,0x2a045505,0x4804ee05,0x5a047704,0x5a044804,0x75045504,0x55044804,0x75045b04,0x56045504,0x55045b04,0xa0047004,0xa1048904,0x89047004,0x8904a104,0x86045604,0x5604a104,0x86048304,0x14045604,0xb204c700,0x56048304,0x14045504,0x8304b200,0x1404c804,0x83048300,0xee045504,0xc804b104,0xac048304,0x8304b104,0x8304ac04,0x4204ee04,0xd004e004,0xd0044204,0xe104ac04,0xac044204,0xe104d104,0xcf04ac04,0xac04d104,0xf9046a04,0xfa04ed04,0xed046a04,0xed04fa04,0xec04cf04,0xcf04fa04,0xec04eb04,0xeb04cf04,0xac04cf04,0xac04eb04,0xcb04ee04,0xcd049504,0xcd04cb04,0xc604c504,0xc504cb04,0xc504c604,0xc304ad04,0xad04c604,0xc304ee04,0xbd04ad04,0xbe046204,0xbe04bd04,0xb304b404,0xb404bd04,0xb404b304,0xad04a204,0xa204b304,0xad04ee04,0xab04a204,0xaa04b904,0xaa04ab04,0xa604a504,0xa504ab04,0xa504a604,0xa2048f04,0x8f04a604,0xa204ee04,0x9e048f04,0x9f04a904,0x9f049e04,0x97049604,0x96049e04,0x96049704,0x8f047d04,0x7d049704,0x17051804,0x27052605,0x26051805,0x26052705,0xa050b05,0xb052705,0xb050a05,0x604eb05,0xeb050a05,0x1a030c04,0x1d051b05,0xa051c05,0x1d047103,0xc030a05,0x6051b03,0x6030c05,0x7104eb05,0xc030a04,0x7e048403,0xc047804,0xee04eb03,0xee030c04,0x84048f04,0x71047804,0x84047c04,0xc047104,0x7d048f03,0x7c047604,0x72047104,0x71047604,0x9c048804,0x88048704,0x81048704,0x88048004,0x72048104,0xc047104,0x81048003,0x72047204,0x7d030c04,0x89008704,0x71076500,0xdd004900,0xed00dd00,0x8906ec06,0x8a068b06,0x15068a06,0x88044d05,0x8a068906,0xf306f206,0x6304b306,0x50066406,0x74065006,0x5e045404,0x50066306,0x4600a506,0xb9073807,0x34005505,0xca058100,0xb100cb00,0x49074500,0x7e067907,0xde067f06,0xe406e306,0x38063706,0xf04a406,0xcf06ce05,0xd2053006,0x6f06d306,0xcf00c900,0xa700d106,0xc006d200,0xf400a300,0xbb00f400,0x5106ba06,0x52075307,0x87075207,0x50046604,0x52075107,0x8f068e07,0x4004ef06,0x42034103,0x44034203,0x43034303,0x40033f03,0x7d067c03,0x69066906,0x51044e06,0x7c067704,0x70066906,0xa6006d00,0xb400a600,0xe106c806,0x4c004d00,0xe6004c00,0xe406fa06,0xd406e200,0x3d077806,0x98002800,0xfa00f906,0xc8007000,0xdd06cc06,0xe306e206,0x98069306,0xff069906,0xd5070006,0xb5052f04,0x4306b606,0xa106a004,0xde00a606,0xf606b600,0x1a003f00,0x70011a01,0x70066f06,0x71067206,0x53067106,0x6f047304,0x71067006,0xc106c006,0x9504d406,0x82069606,0x45068206,0x90048c04,0x82069506,0x90098f06,0xfb095309,0xa206b000,0xfb06b006,0xe300ee00,0xd500d406,0x77006300,0xc4077b07,0xca06c906,0xca06c506,0x7c06cb06,0xf7077d07,0xc9052d04,0xe05ca05,0xec06eb05,0x1500f506,0x18065201,0x8a00aa01,0x51008a00,0xd4075007,0xd506d606,0xdb06d506,0xd304ba04,0xd506d406,0x76067506,0xea050806,0x1503cb03,0xaf06ae02,0x9b069b06,0x5c053106,0xae06a904,0x62069b06,0x9e009c00,0xc8009e00,0xd605bd05,0xed06fb00,0xf106c906,0x3400e200,0x2f012d06,0x7d00db01,0x15068106,0x1b061a06,0x66066106,0xcd066706,0xf06ce06,0x90050105,0xf6059105,0xed05ec04,0xb009e05,0xf05ca01,0x6e00f601,0xbd00d806,0xfe00fe00,0xa106a200,0xda06d906,0xc604c606,0xc206c706,0xc206c606,0xc406c106,0xc606c506,0xc306bd06,0xbe06c406,0xbd06bc06,0xbe06bf06,0xbd06bd06,0xc606c406,0xc106c606,0xc006c006,0xbd06bf06,0xc806c706,0xb406b406,0xbb051106,0xc706c204,0xb106b406,0x1700a900,0x31011701,0xcc074507,0x83079100,0xe406e207,0x9200d400,0xaf00ab07,0xe1004800,0x8c06e506,0x92079107,0x60075b07,0x4a076107,0x5f074b07,0xe704f204,0x2e06e806,0x69076805,0xae004c07,0x8c06e800,0x94009100,0x90011105,0x2c002c00,0x3d063e00,0x6c076a06,0x6b076b07,0x24045807,0x6a076905,0x2a076b07,0x5b062b06,0xe106e004,0xcd06cd06,0x9504f406,0xe006db04,0x9406cd06,0x4007700,0x4a010401,0xb0075e07,0xee05fc00,0xd606fb05,0xfc00c300,0xc500c306,0xb905bf00,0x7a05ba05,0x80067f06,0xc905c806,0xae052d05,0x65076404,0x404f107,0x10070507,0x20013101,0x4e004f06,0xce00ce00,0x5070600,0x21071f07,0x20072007,0xc004aa07,0x1f071e04,0xb072007,0xa6070c07,0xfa06f904,0xe606e606,0x6204da06,0xf906f404,0xc806e606,0x6071400,0xc8071407,0x1500b200,0xb300b207,0x5e009400,0xf076207,0x15071407,0x15071007,0x18071607,0xb8071907,0x1904b804,0xd6071a07,0x1e071d04,0x5a004507,0x2a071a00,0xbb00e000,0x1f00bb00,0x38071e07,0x39073a07,0x9f073907,0x37049904,0x39073807,0x25072407,0x28049707,0x2a072907,0x2b072a07,0x2a072607,0x25072607,0x28072707,0x20072a07,0x27072107,0x20072207,0x27072707,0x25072a07,0x25072707,0x23072407,0x27072207,0x13071207,0xff06ff07,0xb904c106,0x12070d04,0xd306ff07,0x2900df00,0xff002900,0xb4071306,0x1f072d00,0xb4072d07,0x2e009a00,0xa4009a07,0x2c00c200,0x2e073007,0x34063306,0x2e072906,0xe6072f07,0xf206e706,0x1f04b504,0xb7062006,0x37073604,0xec00bf07,0xe9069d00,0xd00da00,0x89010d01,0xee068806,0xef05f005,0xf905ef05,0xed046b04,0xef05ee05,0x57075605,0x2b047607,0x18072c07,0x9a071807,0x2604a904,0x18072b07,0x4c013007,0x33063e06,0x2d002106,0x7d074701,0xa1007f00,0x83058400,0xfb06f605,0x2f06fc06,0x35063406,0xe805e706,0x6c04e505,0x6b066a04,0x4f049106,0x5e075007,0x91008200,0x24003905,0xb800b800,0xed05ee00,0x27062505,0x26062606,0x6f04a006,0x25062404,0x5c062606,0x2b065d06,0x45074405,0x31073107,0x9c046707,0x44073f04,0x80073107,0x51075f00,0x80075f07,0x60006500,0x68006507,0x1300d300,0x5a071707,0x60075f07,0xba05c007,0x1305bb05,0xd8060000,0x83044404,0x17068406,0x33002f01,0x57009607,0x60006000,0xb605b800,0x40063e05,0x3f063f06,0x47047706,0x3e063d04,0xf3063f06,0xd105f405,0x7070904,0x8070807,0xf070e07,0x10070f07,0x11071107,0xd071207,0xd071107,0x8070c07,0x11070f07,0x9070a07,0x11070807,0xb070c07,0xa070b07,0xc070807,0xd060e06,0xc7060d06,0xb048e04,0xd060c06,0x5e075d06,0x4a074a07,0x84044a07,0x5d075804,0xdf074a07,0x56025701,0xf5025602,0xf701f701,0xeb01e901,0xeb01f701,0x5301f301,0x5601df02,0xb401cd02,0xf8025301,0x5301cd01,0xf7025602,0x5601f301,0xf401f302,0x5301f801,0x56025602,0xfc01f402,0x78003d01,0x97076a07,0xf9010906,0xee06b100,0x5300f000,0x36063200,0x4a054706,0x42032f05,0x48074707,0x65040107,0xa708a703,0xa508a608,0x108a008,0xd508a704,0x1070004,0xa04d707,0x8c060b06,0xa058d05,0xbd06bb05,0xbc06bc06,0x5d04e906,0xbb06ba04,0x3d06bc06,0x80073e07,0x77077604,0x63076307,0x57050007,0x76077104,0x72076307,0x74077307,0x75077407,0x76077607,0x70077107,0x70077607,0x72076f07,0x76077407,0x6c076b07,0x6d077207,0x72076b07,0x76077207,0x6e076f07,0x72076d07,0x4000d07,0x46000100,0x7d00a507,0x3405ba00,0xf7003c00,0xfd05fc05,0xfd05f805,0x6305fe05,0xae076407,0x4d804,0xd7060106,0x8400fc00,0x78010506,0x74007400,0xd705d900,0xbf02b805,0xcb014502,0xbf0ac00a,0xcc0aca0a,0x840acb0a,0x8b078507,0x8c078b07,0x8d078d07,0x8f078e07,0x8a078f07,0x8f078907,0x88078907,0x8d078b07,0x86078f07,0x8b078407,0x88078f07,0x87078707,0x8b078607,0x90078f07,0x7c077c07,0x6a04e707,0x8f078a04,0x9077c07,0x89069701,0xd000406,0x7f000e00,0x8010606,0x19007601,0x86061d06,0x81058005,0x81058705,0xac058205,0x9d03a007,0x9f07a003,0x99079e07,0xc103a107,0x9e07a003,0x1079907,0xd801a009,0x2807f401,0xb3022702,0xbc07b207,0xb107b207,0xab07bb07,0xb305b205,0xff08fe05,0x9c090008,0xa607a507,0xab07a607,0x95036c03,0xa6079c07,0xbb021407,0x6407be01,0x60055e05,0xe6056005,0xc1055702,0xe9034b07,0xe907c003,0xbf03e503,0xde03e507,0x4a085803,0x98034903,0x9e079907,0x9d079e07,0x9a079a07,0x9c079b07,0x95079c07,0x97079607,0x9e079807,0x96079c07,0x9e079707,0x9c079a07,0xcf07c907,0xce07ce07,0xca07cd07,0xcb07ca07,0xcc07cc07,0xc507c407,0xc507cc07,0xce07c607,0xcc07ca07,0xc907c807,0xcc07ce07,0xc707c607,0xc807c707,0xfc07ce07,0xd1036a03,0xd007d107,0xc907cf07,0xd103fc07,0x9607d107,0x97019701,0xd201b701,0x190a1807,0xff09c00a,0xda030e02,0xd308d802,0xc201cc01,0xb402c302,0xce07cd02,0x4b07d307,0x99014401,0xd007cf02,0xb307d207,0xbe07bd07,0xde07be07,0xac03a003,0xbe07b307,0x2e01c607,0xb0086802,0xb601e308,0x907dd01,0xa019602,0x87038f09,0x7a08c603,0x3a037103,0xf003f208,0xc4082503,0xe703bd03,0xe407e507,0xe307e407,0xe407de07,0xdf07de07,0xe707e607,0xe207e407,0xe607e807,0xe207e107,0xe607e607,0xdf07e407,0xe107e007,0xe07e607,0x3901d602,0xe401c408,0xb907ea01,0x8a017707,0x5d0a2f01,0x140a5e0a,0x1c081508,0xd108d008,0xcc08d708,0xd807d707,0x307d807,0xc403d804,0xd807cc07,0xf0087e07,0xc0018601,0xbd01b307,0xb207ab01,0x7801bc01,0xb1034703,0x4708b008,0xf1040d03,0x6b037407,0x5f07f603,0x94036103,0xd03b203,0x1080d08,0xfa080008,0xd039407,0xa4080d08,0xf601f601,0x201fe01,0xfe080308,0xef01ef01,0x501ec01,0xfc07fb08,0xfc080607,0x507fd07,0xff07fd08,0xff080407,0x307fe07,0x1080008,0xde080208,0xef07e307,0x6b07f007,0xde03fb03,0xf007ef07,0xe0080707,0xb022d01,0x9c01a608,0x84086c01,0xb2018301,0xc03d603,0xb403d608,0xb080b03,0xaa03b408,0xaa080a03,0x903a303,0x9903a308,0x90080e03,0x6d038e03,0x88068704,0x7a022306,0xd3089001,0x8d01b707,0x82018d01,0xcc07d501,0xd607cb07,0xe707e507,0x4507ec07,0x4f084608,0x990a9308,0x980a980a,0xf40af70a,0xb607b50a,0xf607b807,0x707fb07,0x99080808,0xf6035f03,0x8080707,0x2e010408,0xd7074c01,0xe6017907,0xb508c701,0x83022501,0xb801b908,0xf403e401,0xf4082303,0x2203e703,0xe7082208,0x5403d903,0x6d036e08,0xd08af03,0xa5040604,0x21032302,0x540a2a03,0x550a550a,0x2c0a350a,0x4508440a,0xca085008,0xd407cd07,0x160a1407,0xe09aa0a,0x1e081308,0xc8081f08,0xe039003,0x1f081e08,0xbe01c508,0xf307ed01,0xb401a208,0xfd07a401,0xce01ee01,0x8303ee03,0xd403ee08,0x6b088203,0x9a03a608,0x9a086a03,0xa7039503,0xab03b307,0xce05d003,0xd105cf05,0x1f052005,0xcf05d005,0x2905d105,0x30082a08,0x2e083008,0x2f082f08,0x2c082d08,0x2b082c08,0x2c082508,0x26082508,0x2f083008,0x28082c08,0x30082908,0x26082c08,0x27082708,0x30082808,0xca01d708,0x70090501,0x73017601,0x75017301,0x39016f01,0x3a018e02,0x98090c02,0xe301a001,0xee07e407,0xe507e407,0x4907ed07,0x4c084a08,0x38082b08,0x39083908,0xc403f008,0x2b082503,0x7b083908,0xae01ea01,0xde02c008,0x64016402,0x62016301,0x61016201,0xc902c901,0xc602c702,0xc802c602,0xc002c002,0x62016402,0xc602c901,0x5502c002,0x6e037608,0xd9082103,0x5303cd03,0x5c036d08,0x49084303,0x47084708,0x46084808,0x45084608,0x44084408,0x40083f08,0x40084408,0x47084108,0x44084608,0x43084208,0x44084708,0x42084108,0xfa03ec08,0x32083203,0x30083108,0xec082a08,0x32083203,0x201ed08,0x1b020202,0xd9083302,0xe305d805,0x7e05e305,0xd7044904,0xe305d905,0x8108ab05,0x3e017c01,0xed01e808,0x2c082b01,0xcb083708,0xd507ca07,0x2f082d07,0x61083508,0x63086208,0xb305b508,0xb405b405,0xa005a205,0xa8084f05,0xac01a101,0x7b017c08,0xff021101,0x81081b01,0xc203c708,0x95086903,0x6e038b03,0x7e038008,0x59015a03,0x55015501,0x52015401,0x51015201,0x50015001,0x4c014f01,0x9c014c01,0x50029f02,0x9f014c01,0x5b015c02,0x43015a01,0x5c013e01,0x53014101,0xb7014301,0x4102b802,0x4102b701,0x50014301,0x8b029f01,0x8b015002,0xb7028e02,0x5c014302,0xb702b601,0x52015c02,0x8e015001,0x8e015202,0xb5029002,0x5c02b602,0xb502b401,0x55015c02,0x90015201,0x90015502,0xb4029202,0x5a015c02,0xb402bd01,0x55015a02,0x95029201,0xa1029502,0xb902b202,0xbb02ba02,0x95015502,0xb902b202,0xbc02bb02,0xb2015502,0xbd02b902,0x55015a02,0xb9015501,0xc802bc02,0xbe02c602,0xca02be02,0xc502c502,0xc302c402,0xc202c302,0xc102c102,0xcb02cc02,0xd002cb02,0xcb02cf02,0xd502cf02,0xc102c302,0xbe02cb02,0xc302c502,0xc802d402,0xd302be02,0xd402d202,0xce02cd02,0xd102d102,0xd402d302,0xcb02c302,0xd602d502,0xd802d702,0xd502c302,0xd102d602,0xbe02d402,0xd102cd02,0xc302be02,0xd802d602,0xd802c302,0xda02d902,0xbe02cd02,0xd902c302,0x8502da02,0xc40ac30a,0xe405e20a,0x23047105,0xcf01d008,0xd008cf01,0x5408d808,0x57025902,0x67085d02,0x68086808,0x4a038b08,0x5d085803,0xcc086808,0xda022a01,0xa9082208,0xc801d001,0x24022508,0xf03f602,0xf3089a04,0x7b038607,0x8103a403,0xa808c703,0xb303b907,0xc2088003,0x8503ba03,0xaf03b108,0x72087103,0x77087708,0x75087608,0x74087508,0x73087308,0x6f086e08,0x71087008,0x73087708,0x70086f08,0x75087708,0xdf087308,0x9b03f603,0x8f089b08,0x89088e08,0x9b03df08,0xe1089b08,0x8b022301,0x92088c08,0x8f088e08,0x8a089008,0x96089508,0xe6089608,0x8503b103,0x96088a08,0xf9081e08,0xdd01a301,0x9401a508,0xe2089a01,0xa501e101,0x6c03c603,0xd4088208,0xf03c703,0x99034604,0xef089808,0x9703eb03,0xe603eb08,0xdd089c03,0x8b03dc03,0x85088a08,0x85088b08,0x8d088608,0x8b088c08,0x8e088908,0x88088d08,0x8d088908,0x8b088d08,0x87088608,0x8d088808,0xb9043e08,0xf706ba06,0xd701d301,0x85036408,0xf507f503,0xe807e907,0x6407e207,0xf507f503,0xc4022707,0x18020501,0xa5087902,0xa808a608,0xc308b908,0xc408c408,0x36608,0xb908b404,0xef08c408,0xf01ae07,0xc707f302,0xf4022801,0xcd01b408,0x6d0a6b01,0x990a320a,0xef034608,0x8108c703,0x3b037a03,0xf203f508,0xb07d903,0xb4040304,0xfe040008,0x18001603,0x0,0x3000200,0x5000300,0x7000700,0x1b000900,0x1b000700,0x1a00,0x7000300,0x16001700,0x7000000,0x19001a00,0x17001900,0xd7000000,0xb703f103,0xb607b707,0xb007b507,0xb703d707,0xfb0afc07,0x780b180a,0xb8017701,0xe407eb07,0xd701c501,0x3090401,0x8c08aa09,0x50018101,0x9101a108,0xb407b101,0xaa07b907,0xc4021001,0x9907a808,0xda019f01,0xc801de07,0xc008f201,0xc503bb03,0x66037108,0xfb07de03,0xba03f903,0xb408b908,0xb408ba08,0xbc08b508,0xba08bb08,0xbd08b808,0xb708bc08,0xbc08b808,0xba08bc08,0xb608b508,0xbc08b708,0xa508a008,0xa408a408,0xa208a308,0xa108a208,0xa2089c08,0x9d089c08,0xa408a008,0x9f08a208,0xa208a008,0x9d08a208,0xdf089e08,0xd9019308,0xdd07c301,0xd101e701,0xd508d208,0xad08a108,0xae08ae08,0xdd040608,0xa1089c03,0x9108ae08,0x52021e01,0x89088208,0xde01b901,0x93019408,0xbe03ac01,0xbe08de03,0xdd03b003,0xb008dd08,0xdc03a803,0x9e03a808,0x9e08db03,0xe0039603,0x8a038d08,0x940a9203,0x8f0a8f0a,0x930a8d0a,0xcd08f50a,0xe501f801,0xee08e608,0xe708e608,0xe708ed08,0xeb08e808,0xd908cf08,0xda08da08,0x59039608,0xcf08ca03,0xe508da08,0xf0019e01,0x2f086b08,0xee018402,0xe501eb08,0xa7038501,0xc607f403,0x6b03a603,0x87090908,0xf1038203,0xb803bb08,0x5208f603,0x9034f03,0x41034203,0x407a303,0xc01fd02,0xa4019c08,0x9b079c01,0xe707a407,0xeb07e607,0x390a3a07,0x6d026d0a,0x73027002,0x3d027302,0x3c0a3c0a,0x6d0a3a0a,0xef08e502,0xf008f008,0x8d03b808,0xe508e003,0xc308f008,0xbe0a850a,0xf308ed0a,0x4b01eb01,0xeb09d809,0x6c079509,0x52036903,0x5b035c08,0x44083f03,0x52085108,0x3f035b08,0x90108,0xfa08ff09,0x8c037208,0xff090103,0x1508fa08,0xf90af60b,0xaff0a,0x790ae20b,0x27002807,0xf80a9600,0x560af70a,0x2b022108,0x2b085702,0x3c01af02,0xf5040408,0x28091c03,0x1e031c09,0x1d032003,0xef091109,0x1e02fc02,0x10030509,0xb032203,0x20091b03,0x1f032203,0x30409,0x92203,0x23030d03,0x12030d09,0x14092403,0x26031803,0x1b031809,0x1b092703,0x28031c03,0x5030609,0xe7091e03,0x19033902,0x10092009,0x79030403,0x46026e02,0x450a460a,0x4b0a430a,0xb001af08,0x4c07da01,0x5a040b03,0x5c015b0a,0x5d015c01,0xf30a5b0a,0x1702f402,0x33033509,0xd090e03,0x37091a09,0x88098b03,0x8b098709,0x29098709,0x8b092b09,0x2b092909,0x2a092909,0x2b092d09,0x2d092a09,0x2e092a09,0x2d093a09,0x3a092e09,0x41092e09,0x3a093b09,0x3b094109,0x3f094109,0x3b093c09,0x3c093f09,0x40093f09,0x7c094e09,0x7b097909,0xf094d09,0x79094e09,0x40097b09,0x7b094e09,0xf097b09,0x11091109,0x14091309,0x15091409,0x16091609,0x46094209,0x46091609,0x11094a09,0x16091409,0x7b094009,0x3c091109,0x11094009,0x16091109,0x11094a09,0x48094a09,0x3c094309,0x54091109,0x5b095809,0x55095709,0x5d095409,0x8d098c09,0x91099009,0x92095209,0x50099309,0x97099609,0x94093d09,0x47099509,0xec09ef09,0xb2096909,0x36093409,0x96099509,0x8e094509,0x63098f09,0xa7059609,0xc202b002,0xca09c409,0x9809b509,0xb609b609,0xae09b309,0xad09ae09,0xb009b009,0xb809b109,0x9a09b809,0xa109a109,0xa909a309,0xaa09a909,0xb409b409,0xc009bc09,0xcf09c009,0xd409d409,0xd109d509,0xcd09d109,0xd109ca09,0xd209ca09,0xd409c009,0xa909d109,0xc009b409,0xa109b809,0xae09a909,0xb809b009,0xb609b509,0xb209ae09,0xae09b509,0xc009a909,0xd109d109,0xd609d209,0xd609d109,0xb209d009,0xb809ae09,0xb209ac09,0xd109b809,0xcb09d009,0xcb09d109,0xaf09be09,0xb809ac09,0xaf09b709,0xa909b809,0xbe09d109,0xbe09a909,0xba09b909,0xb809b709,0xba09bd09,0xa909b809,0xab09b909,0xab09a909,0xc109a809,0xb809bd09,0xc109dd09,0xa909b809,0xa209a809,0xa209a909,0xd709a009,0x90099109,0xea09e909,0xe709d709,0xd709e909,0x9009d709,0xe7098f09,0x8f09d709,0xe709e609,0xe6098f09,0x8e098f09,0xe609e509,0xe5098e09,0x8d098e09,0xe509e309,0xe3098d09,0x8c098d09,0xe309df09,0xdf098c09,0xe1098c09,0xdf09dc09,0xdc09e109,0xe009e109,0xdc09de09,0xde09e009,0xdd09e009,0xde09e209,0xa909dd09,0x9909a009,0x9909a909,0xe2099b09,0xb809dd09,0xe209e409,0xc309b809,0xc209c409,0xc709c209,0xc209c609,0xa709c609,0xc309c509,0xa609c209,0xc209c509,0xa709c209,0xc209a509,0x9f09a509,0xa609a409,0xa409c209,0x9f09c209,0x9f09a409,0x9c099d09,0x9d09a409,0x9d099c09,0x9e0a0a09,0xa099c09,0xa099e0a,0xb0a070a,0x7099e0a,0x70a0b0a,0x90a050a,0x50a0b0a,0x50a090a,0x60a040a,0x40a090a,0x40a060a,0x80a030a,0x30a060a,0x8099b0a,0xe80a030a,0xb809e409,0xb809e809,0xa909a909,0x3099b09,0x309a90a,0xf609f90a,0xa909e809,0xf609f109,0xf109a909,0xf909a909,0xf109ed09,0xed09f909,0xf509f909,0xed09ee09,0xee09f509,0xf009f509,0xee09f309,0xf309f009,0xec09f009,0xf309f409,0xf409ec09,0xef09ec09,0xf409f809,0xf809ef09,0xf209ef09,0xf809fb09,0xfb09f209,0xf709f209,0xfb09fd09,0xfd09f709,0xfa09f709,0xfd09ff09,0xff09fa09,0xfc09fa09,0x209db09,0x10a010a,0xfc09ff0a,0xfc0a0109,0x9fe09,0x109db0a,0xbf09c90a,0xbb09bb09,0x9809b609,0x9809bb09,0xcc099709,0xbb09c909,0xce09d309,0x9109cc09,0xd309d709,0x91099209,0xd309d309,0xbb09cc09,0x9709bb09,0xbb099609,0x95099609,0x92099309,0xbb09d309,0x94099509,0x93099409,0xc09d309,0x7d059405,0xae05af05,0xa505a505,0x9c05a105,0x9b059c05,0x9705af05,0xa4059d05,0x9605a405,0x25059505,0xbb0a260a,0x1b09b309,0xae0a1c0a,0x1d0a1c09,0xe02da0a,0xad031103,0x1f0a1d09,0x1e09d30a,0xb00a200a,0x210a1f09,0x220a200a,0xb109cc0a,0x230a2109,0x240a220a,0xbf09c90a,0x2409c909,0x50016c0a,0x4f024302,0x6c024d02,0x270a2601,0xb309b60a,0x2709b609,0xe0a230a,0xa1099a0a,0x120a1009,0x1a09d70a,0xd10a1e0a,0x130a1109,0xd09d40a,0xcf0a0f0a,0xd0a0c09,0x3502340a,0x42024202,0x7e0a7c02,0x6f01710a,0x12023c01,0xa90a140a,0x180a1709,0x5409bc0a,0x5c02720a,0x5b025c02,0x660a5502,0x4e0a640a,0x4c014e01,0x24014f01,0x18081908,0xc3081208,0x2403e403,0x12081808,0x310a3008,0x6f0a580a,0x310a720a,0x300a310a,0x5c0a5c0a,0x600a2f0a,0x620a600a,0x670a670a,0x290a2b0a,0x480a290a,0x4b0a4b0a,0x4f0a280a,0x510a4f0a,0x540a540a,0x180a2a0a,0x180a540a,0x4b0a170a,0x540a4f0a,0x290a670a,0x5c0a4b0a,0x670a600a,0x310a6f0a,0x320a5c0a,0x6f0a6d0a,0x660a1e0a,0x200a320a,0x320a1e0a,0x540a4b0a,0x4b0a170a,0x160a170a,0x320a200a,0x220a6f0a,0x6f0a200a,0x160a4b0a,0x4b0a140a,0x120a140a,0x220a240a,0x250a6f0a,0x6f0a240a,0x120a4b0a,0x4b0a100a,0xe0a100a,0x250a260a,0x260a6f0a,0x5c0a6f0a,0x4b0a670a,0x670a0e0a,0x230a0e0a,0x260a270a,0x1b0a5c0a,0x5c0a270a,0x230a670a,0x670a210a,0x1f0a210a,0x1b0a1c0a,0x670a5c0a,0x1d0a1f0a,0x1c0a1d0a,0x280a5c0a,0x4a0a4b0a,0x5f0a600a,0x70a610a,0x1a021102,0x54056308,0x41055b05,0x440a420a,0x5c0a2f0a,0x6d0a5b0a,0x6e0a6c0a,0x520a510a,0x2a0a530a,0x40030803,0x1f026503,0x6f042204,0x7a057905,0x58025605,0x36025a02,0x81013501,0xe20ae302,0x7e0b000a,0x7c027c02,0xd9094c05,0xd009d809,0xc603d203,0xd302d207,0x3902e002,0xc9023802,0x7301c901,0xc9017e01,0xc2017e01,0x39018e01,0xca01c902,0x8e01d701,0xc201c901,0x3a01ca01,0xb605cd04,0x43053f05,0x2d042d05,0x3d042804,0xd909da05,0xeb094c09,0xd8030302,0x490a7702,0x440a440a,0x60025e0a,0x83026002,0x35003500,0x77003700,0x440a770a,0xa202600a,0xea0aec0a,0xcc02cb0a,0xbc02bb02,0x14021c07,0x16081702,0xb5081a08,0x8403ce03,0x78088408,0x72087708,0x8403b508,0x67056808,0x6d056d05,0x6c056905,0xa4037f05,0x9e08c803,0x9c029f02,0x76057502,0x91057305,0x56029402,0x99059801,0x3d05b005,0x2e0a3f0a,0x3e0a3f0a,0x6f0a400a,0x710a700a,0x66025b0a,0x520a3502,0x71015401,0x6e0a700a,0x5201510a,0x700a7101,0x730a720a,0x740a740a,0x310a750a,0x9a0a970a,0x140a8c0a,0x70067e01,0x7041006,0x15032903,0xd70a1a0a,0xd5086609,0x3001c601,0x2e033203,0xc507a904,0x7403b903,0x7b087508,0x6a066908,0x7f046c06,0xef028002,0xa702a600,0x96059602,0x9e05a405,0xf031705,0x9602a603,0x17059e05,0x4f024d03,0x46024e02,0x3c053e05,0x48054a05,0x2e054905,0x4a032f03,0xc9013f05,0x12016102,0x10041104,0x50041004,0x13041303,0x12041604,0x6090704,0xd001c209,0xdf0ad10a,0xa705980a,0xdf05a405,0xd308d408,0x9108ce08,0xdf03ac03,0xce08d308,0xde095608,0x3009e209,0x33083108,0x35024208,0x9d023e02,0x9f079e07,0x1d02aa07,0x93031a03,0x7f058000,0x1a051405,0x26032605,0x13032703,0xa1079d05,0xe807a207,0xea07e907,0xc102cc07,0xae02bc02,0x19031a02,0x6c012403,0x15027c02,0x1b081708,0xd401cb08,0xf5084d01,0xd102d302,0xf5018e02,0xf5023d01,0x7509f909,0xe60ae009,0x930afe0a,0x49099409,0xaf09ac09,0xda093209,0xdb0a0209,0xc709c809,0xda09c209,0xc809db09,0xda09d909,0xd709c809,0xeb09ea09,0xeb09d709,0xd909d809,0xc209c809,0xd809d709,0xb209d909,0x3109ac09,0xfc09fe09,0xdb097809,0x7c0a0009,0x6d09ef09,0xa5097009,0x29092a09,0xca09d209,0xe1094309,0x5d098c09,0x309f909,0xa7097f0a,0x4109c609,0xfe0a0009,0xa097a09,0x8109840a,0xfa09fc09,0xfa097709,0x7409f709,0x7009f209,0xc1097409,0x5409dd09,0xb709af09,0xc8093509,0x4e09db09,0x99099b09,0x7098909,0x7e09810a,0x860a0b09,0xc5098809,0x2d09a609,0x50a0409,0x9097e0a,0x8609830a,0xa209a009,0xcb092c09,0x4609d009,0xa809a209,0xab092f09,0x2f093009,0xc309c409,0xd0093b09,0x4a09d609,0x9b0a0809,0x9c098509,0x88099e09,0xc409ca09,0xd6093c09,0x4809d209,0x60a0909,0x5e09800a,0xe809e409,0x5a034509,0x45035c03,0x6d035c03,0x30032d03,0x48043303,0x2d054705,0x2e032b03,0x48054903,0x33032d05,0x2b03a904,0x49054903,0x33054805,0x6d034504,0x45036e03,0x76036e03,0xa903c903,0xca054903,0x4903c903,0x45043305,0x33037603,0x98037604,0x4903ca03,0xc0043305,0x3303ca03,0x5b040a04,0xa040803,0x9040804,0xa040c04,0x54040904,0x88035803,0x9040c03,0x4e035404,0x54040c03,0x88035403,0x54037e03,0x80037e03,0xc703c203,0xc203c603,0xa503c603,0xc203ba03,0xba03a503,0x8403a503,0x8a036703,0x89038d03,0x8d036703,0x89039103,0xac038d03,0x8d039103,0x8d03ac03,0xbe03b803,0xb803ac03,0xb803be03,0xb003bb03,0xbb03be03,0xbb03b003,0xb003c003,0x3303c003,0xba038004,0x80038403,0x7c038403,0xb003a803,0x80043303,0x7d037c03,0x80035403,0x54037d03,0x55037d03,0x55035403,0x4e034903,0x49035403,0x49034e03,0x48034a03,0x4a034e03,0x48035103,0x73034a03,0x4a035103,0x4a037303,0x56038b03,0x59035703,0x56036003,0x60035903,0x96035903,0x60037f03,0x7f039603,0x9e039603,0x7f03a403,0xa4039e03,0xa8039e03,0xa4038103,0x9803a803,0x8b037303,0x8b039803,0x81039503,0x3303a803,0x95039804,0xa6039a03,0x4603d403,0x9a039803,0xf303a603,0xfe040203,0xf303fd03,0xfd03fe03,0x3fe03,0xfd040104,0x1040003,0x66040004,0x1036503,0x65036604,0x71036603,0x65037803,0x78037103,0x7a037103,0x78034703,0x47037a03,0x81037a03,0x81034703,0x33043303,0xa6039804,0xa6043303,0x47034603,0x46043303,0x46034703,0xd040f03,0xf034704,0xf040d04,0x603f604,0xf6040d04,0xf6040603,0xdd03df03,0xdf040603,0xdb03da03,0xdd03e103,0xda03df03,0xe103da03,0x5903dc03,0xe409e209,0xeb096609,0xc109ea09,0xbd02c202,0xfb09f802,0x73097309,0xf4096f09,0xdf09e309,0xe5095b09,0x5c09e309,0xdc09df09,0xe6095709,0x5f09e509,0x44029909,0x1013d01,0x7b0a020a,0x79097b09,0xfb09ff09,0x7609fd09,0xda0a0209,0x55094d09,0xdc095709,0xde09dc09,0xf3095609,0x6f09f409,0xca03c909,0x9508f403,0xab0abb0a,0xee09ed0a,0x5e096809,0x65085f08,0x1054308,0xfe02fe03,0x2d043102,0x690a5304,0x3d027202,0xe801db08,0x35028101,0x1f027a01,0x3c051e05,0x21041e03,0xee026b04,0x6e09f309,0x36013709,0x84028401,0x86028502,0x670a3302,0x5d015d0a,0x4a014801,0x49014a01,0x4a017401,0x69017401,0x5d0a3301,0x79014a01,0x370a4302,0x4a0a330a,0x33016901,0x6801690a,0x79016e01,0x6d0a3702,0x37016e01,0x680a330a,0x33016701,0x6601670a,0x6d024901,0x6b0a3701,0x6c025001,0x49016c01,0x370a3702,0x660a330a,0x660a3701,0x6b016a01,0x37016c01,0x6c054d0a,0x5f055605,0x60056105,0x6b056905,0x47055805,0x4e024c02,0x55024e02,0x2c025902,0x36082d08,0x8e013c08,0x34013400,0x3b013a01,0x9b05af01,0xe902e905,0xd602d702,0x58025502,0x2025602,0x1502f603,0x5c055309,0xb1055d05,0xb60aaa0a,0x300a7b0a,0xb2023102,0xb00aba0a,0xb70ab90a,0xb60ab60a,0xab0aaa0a,0xca0ace0a,0xce0ac90a,0xc80ac90a,0xcf0ad00a,0xd20ace0a,0xd00ad10a,0xd30ac60a,0xc70ad20a,0xd20ac60a,0xd00ad20a,0xc80ace0a,0xd20ac70a,0x8004790a,0x7f027f02,0x26027e02,0x25042604,0x4b047904,0x46024702,0x9f05a102,0xa005a005,0x9a05a205,0x99059a05,0x9d059805,0x9e031705,0x98059a05,0xa1059d05,0x9a05a005,0x9c02ea05,0xa305a105,0xea031305,0xfa031502,0x9e05a302,0x15030f05,0x9d059a03,0xea059e05,0x9a05a102,0x15059e05,0xa305a303,0x9a02ea05,0xe20add05,0xe30ae30a,0xe70ae50a,0xe60ae70a,0xe00ae00a,0xe10ae40a,0xda0ae10a,0xe10ad80a,0xd60ad80a,0xe70ae30a,0xde0ae00a,0xe30add0a,0xde0adf0a,0xe00ae30a,0xd60ae10a,0xd60ae00a,0xd40ad50a,0xe30adf0a,0xe00ae30a,0xb0ad50a,0xe40b050b,0xc40ac50a,0xc30ac30a,0xcd0ac20a,0xcb0acd0a,0xcd0acc0a,0xd70acc0a,0xc50adb0a,0xcd0ac30a,0xd90ad70a,0xdb0ad90a,0x70ac30a,0xff0b040b,0xff0b070a,0x80b050a,0x50b070b,0xfe0b0b0b,0x80aab0a,0xb0b050b,0x80b0c0b,0xb0b0b0b,0xaa0aab0b,0xb10aaa0a,0xb00ab00a,0xae0aaf0a,0x60aae0a,0xae0b090b,0xa0b090a,0xb00aaa0b,0xc0aae0a,0xaa0b0b0b,0xc0b0d0a,0xaa0aaa0b,0xa0aae0a,0xaa09b40b,0xa90a1609,0xb205b105,0x30b0605,0xf30b1b0b,0x100af00a,0x10b1c0b,0x1f0b020b,0x80b070b,0x80b200b,0x210b0c0b,0xd0b0c0b,0xa0b0d0b,0xf20b230b,0xed0aee0a,0xf10aed0a,0xfa0af50a,0xf0af30a,0x10b030b,0x7c0b1c0b,0x7d027e02,0xff027d02,0xa9010e00,0x1d031f02,0xfd0ae803,0xe90ae70a,0xe50ae80a,0xfe0afd0a,0xa60ae60a,0x2b09a409,0x400b9909,0x910c230c,0x8e0c8c0c,0x9d0b760c,0xa10b700c,0x2e0b2b0c,0x3e0b8c0b,0x3b0ba60c,0x500b310b,0x830b870b,0xe80b850b,0x860b820b,0x590b5a0b,0x650b5b0b,0x660c730c,0x350b3a0c,0x3b0b360b,0x370b360b,0x4e0b4f0b,0x530b4b0b,0x490b510b,0x560b5c0b,0xda0b5e0b,0x330b360c,0x9e0ca50b,0x540ca80c,0x4b0cd00b,0x710c6a0b,0x660c1c0c,0x650b690b,0xba0cb10b,0xdf0cbb0c,0xe10cde0c,0xa60cab0c,0x830ca80c,0x910c920c,0x5f0b5d0c,0x7f0b710b,0x800c550c,0x460c470c,0x770c6d0b,0x740b760b,0xef0b640b,0x560bee0b,0x7b0c760c,0x3c0b560c,0x770b570b,0x2b0b2c0b,0x720b2f0b,0xf40b250b,0x880baa0b,0x7e0b770b,0x9e0b760b,0x7e0b760c,0xc70cc20b,0x7f0cc50c,0x7a0b790b,0x790b780b,0x780b7f0b,0x800b7f0b,0x800b780b,0x850b7c0b,0x840b830b,0x520c7c0b,0x820c7f0c,0x860b810b,0x680c1c0b,0x7b0c6a0c,0x810c820c,0x590b610c,0x530b5e0b,0x540c550c,0x200c280c,0xc40b470c,0x870bc50b,0x260bcd0b,0x240bbb0c,0x320b2d0b,0x630c5e0b,0x6f0c640c,0x470c460c,0xcc0baf0c,0x620be80b,0x640b690c,0xbe0bc80b,0x9d0bad0b,0xaa0ca70c,0x750c660c,0x390c670c,0x350b330b,0xea0c030b,0x5d0c040b,0x610c5c0c,0x940b440c,0x50b450c,0xa0b3c0c,0xc0c000c,0x8e0c020c,0x8f0c8a0c,0xbd0b7b0c,0x390cbe0c,0x550b3a0b,0xae0c9a0b,0x6b0c9c0c,0x100b6d0b,0x6c0c100c,0x5f0b6b0b,0x600b5e0b,0x310b4e0b,0x730b2d0b,0x130c140b,0x690b730c,0x4d0c5c0b,0x1b0b240b,0x140c120c,0x130c110c,0x730b720c,0x950b450b,0xbb0b400c,0xa20c280b,0x130c150b,0x1b0c690c,0x190c160c,0x550cd20c,0x740cd50b,0x730cb30b,0xc50bff0b,0x1b0bb10b,0x1f0c190c,0x9b0b380c,0x1f0b300c,0x2b0c2c0c,0xe90baf0c,0xf10ba90b,0x8d0bb10b,0x420c370b,0xa60c430c,0xa50cac0c,0x2e0c3d0c,0x400c2d0c,0x230c3f0c,0x8d0c890c,0x460c880c,0x440c460b,0x7e0c830b,0x490c840c,0x4a0c460c,0x3e0c4a0c,0xd0b3f0b,0xc0c020c,0xc0c0c,0x5a0c6f0c,0x650b630b,0x240c1a0b,0x6f0b720b,0x6a0c590b,0x930c840b,0x5c0c920c,0x5b0c5e0c,0x980c950c,0x340c970c,0xdf0ce00b,0x2e0c9c0c,0xda0b300b,0xe10cdf0c,0x5a0b6d0c,0x760c5b0c,0x770c4c0c,0x480c970c,0x5f0c490c,0x620c610c,0x160c1f0c,0xf0c180c,0x590c580c,0x600c5f0c,0x650c640c,0x110c120c,0x120c660c,0x720c650c,0x680c6a0c,0x810b840c,0x650b850b,0x660b620b,0x6c0c6e0b,0x6c0c1d0c,0x2a0c6d0c,0x510c770c,0x1d0c7c0c,0x2a0c6c0c,0x710c700c,0x560c6a0c,0x760c4f0c,0x720c700c,0x740c740c,0x730c720c,0x1e0c150c,0x170c170c,0x180c1e0c,0x5c0c140c,0xa20c5b0c,0xae0ca40c,0x700c710c,0x760c570c,0x4d0c4f0c,0x4c0c770c,0x7c0c4e0c,0x500c510c,0xd60b4f0c,0x7f0b550c,0x4b0c520c,0x950b510c,0x830c9a0b,0x780c820c,0x840c850c,0x860c7e0c,0x800c850c,0x7e0c850c,0x860c800c,0x790c800c,0x790c860c,0x870c870c,0x880c790c,0x790c880c,0x890c7a0c,0x7a0c880c,0x7a0c890c,0x8a0c7d0c,0x7d0c890c,0x8a0c810c,0x8a0c7b0c,0x7b0c7d0c,0x320bc00c,0xd70c240c,0xdd0cde0c,0x8a0c8f0c,0x900c810c,0x810c8f0c,0x810c900c,0x4c0c820c,0x6e0c6d0c,0x3e0c6f0c,0xc30c4a0b,0xc70cc60c,0xd0b6f0c,0x3d0c570c,0x3e0b410b,0xa50c9d0b,0xd30cac0c,0xd10cd40c,0x950b400c,0x490c960c,0x970c960c,0x950c960c,0x660c970c,0x670b610b,0xe90b830b,0x480b840b,0x940c980c,0x9d0b910c,0xc10c300b,0xac0c2e0b,0xb50c3e0b,0xb30bb30b,0x3e0ba60b,0x880c8c0c,0x290c8d0c,0x210c6d0c,0xa50c9a0c,0xa50c990b,0xaf0b950b,0x740b2f0c,0x1f0b750b,0x1b0b480c,0xe50b250c,0x5f0ce60c,0x700b5a0b,0x270b4c0b,0x580b4d0b,0x590c5a0c,0x2a0b4e0c,0xdc0b4c0b,0x320cde0c,0xa30cae0b,0xc0c9c0c,0x520c4b0c,0x410cca0c,0xf70b420b,0x3e0bf20b,0xab0caa0b,0xab0ca90c,0xa90ca80c,0xab0ca70c,0x940caa0c,0xe30c400b,0xf00bed0b,0xab0bf10b,0xed0baa0b,0x870bf40b,0xab0bc50b,0x8d0bf10b,0xa40cae0b,0xa60ca30c,0xaf0bb30b,0xaf0ba60c,0xa00b950c,0x9f0cad0c,0xad0c9f0c,0x550ca20c,0x540c4b0c,0x750c140c,0xd30c680c,0xbd0c200b,0x270bbd0b,0xdf0bba0c,0xd30c440b,0xc30bca0b,0xda0c3b0b,0xdd0c290b,0x270bd90b,0xe40c350c,0xd60c410b,0x450bd60b,0x9a0bd20c,0xe40c3f0b,0xd90bdb0b,0xca0c350b,0xcd0c340b,0x450be60b,0x930c2c0c,0x940c380b,0x1c0c6e0b,0x980c710c,0xe10bf90b,0xe60b8b0b,0x8f0c2c0b,0xe00bfa0b,0x40be50b,0xad0c0b0c,0xae0c2f0b,0x370bae0b,0xbe0b920c,0xad0c2d0b,0x990ba30b,0xbc0c230b,0xbe0c3c0b,0x370bb40b,0xb80c430c,0xb90c0a0b,0x90bd00b,0xcb0bb70c,0xb80c080b,0xb40bbc0b,0xb00c430b,0xb60bf50b,0x2e0bc80b,0xc10c3d0c,0x240bc00b,0xf70be70c,0x9f0be20b,0xeb0bf50b,0xc80bd10b,0x960c3d0b,0x9b0bfc0b,0x250bd80b,0xc60c330c,0x210bdc0b,0xd80cdd0c,0x8a0cd70c,0xf20bfc0b,0xd80bda0b,0x8b0c330b,0x9a0c220b,0xf70b900b,0xa30c010b,0xa70c420b,0xb80cb10b,0x250cb20c,0x240b460c,0x3a0b9d0c,0xb80c300c,0xb50cb60c,0x8a0be70c,0xa00bf20b,0x890bf30b,0xfe0b8e0b,0x960bf00b,0x10b900b,0x2b0bdb0c,0xa80bdf0c,0xfd0bf30b,0x9f0ba00b,0xc60beb0b,0xbf0c250b,0x290bdc0b,0xb00c210c,0xfd0ba80b,0xee0bc70b,0xc20bcb0b,0xf60bec0b,0xfb0be10b,0xd50bd50b,0xce0c040b,0x30bde0b,0xc70bcf0c,0xf60bc20b,0xea0bc90b,0xd70bde0b,0xef0c090b,0x8b0c850b,0xb90c930c,0x9e0bec0b,0x5e0c600b,0xc90c640c,0xef0bd70b,0x60ba40b,0xc30b980c,0x3b0c310b,0x50bcf0c,0xa20bd00c,0x9c0c310b,0x360ba70b,0xa40b930c,0xb0be50b,0xfe0ba10c,0x970bb20b,0x70bfa0b,0x8e0b8f0c,0x910bf00b,0x8c0c390b,0x970ba10b,0xd10c070b,0xd40c320b,0x870c8b0b,0xb30c8c0c,0xb20cb10c,0xb80cb30c,0xb40cb50c,0xb50cb30c,0xb50cb40c,0xb00cb60c,0xb60cb40c,0xb60cb00c,0xb10cb70c,0xb70cb00c,0xb20cb30c,0x580cb80c,0x590b600b,0xbf0cbb0b,0xbc0cbd0c,0xbd0cbb0c,0x4f0cd10c,0xb90b4b0b,0xbe0b7b0c,0xbe0b7d0c,0x7d0cbf0c,0xbe0cb90b,0x7d0cba0c,0xbb0cbf0b,0xbf0cba0c,0xbe0cbf0c,0x530cbd0c,0xc40b490b,0x530cc00c,0x530cc40b,0xc10cc00b,0x530b4a0c,0xc30cc10b,0x4a0cc20c,0xc30cc10b,0xc40b4a0c,0xc50b490c,0xc00cc60c,0xc60cc40c,0xc50cc40c,0xc00cc10c,0xcb0cc60c,0xcf0cce0c,0xcf0cca0c,0xc50ccd0c,0xc60cc70c,0x410b430c,0xc80ccc0b,0xcc0b430c,0xc80b430c,0x420cc90c,0xc90b430b,0xca0ccb0c,0xc90b420c,0x420ccb0c,0x490cc20b,0xcc0b4a0b,0xcd0b410c,0xc80cce0c,0xce0ccc0c,0xcd0ccc0c,0xc80cc90c,0xcd0cce0c,0xce0ccf0c,0x7a0caa0c,0x4b0b7c0b,0xd10cd00b,0xe90cec0c,0x550cee0c,0xd50cd60b,0x910c820c,0xd20c900c,0x540cd30c,0xd50cd20b,0xe70cd30c,0x290cee0c,0xd50cd40b,0xd80cd60c,0xd70cd90c,0x320cdc0c,0xd90cdb0b,0xe00cd80c,0xda0cdb0c,0xdb0ce10c,0xe20ce10c,0xdb0cdc0c,0xdd0ce20c,0xe00cdf0c,0xde0ce10c,0xe70ce20c,0xe60b290c,0xe50ce60c,0xe70ce80c,0xe80ce60c,0xe80ce70c,0x290ced0c,0xe30ce90b,0xb70bb80c,0xe30bd70b,0xea0ce90c,0xe30b260c,0x260cea0c,0xeb0cea0b,0x260ce40c,0xe40ceb0b,0xec0ceb0c,0xec0ce50c,0xe50ce80c,0xec0ce40c,0xeb0ce90c,0xed0cea0c,0xec0ce80c,0x3f0c960c,0x990b400b,0x400be30b,0x900c8f0c,0x910c910c,0x930c920c,0x8b0c930c,0x8c0c8c0c,0x8e0c8d0c,0x8f0c8e0c,0x910c910c,0x8c0c930c,0x9e0b760c,0xa10c9d0c,0x2b0b770c,0x390b8c0b,0x3b0c3e0c,0x310b370b,0x880b870b,0xe80b830b,0x820bcc0b,0x580b5a0b,0x650b590b,0x730c740c,0x390b3a0c,0x3b0b350b,0x360b3a0b,0x500b4f0b,0x530b4e0b,0x510b520b,0x5d0b5e0b,0x5c0b5c0b,0x560b3d0b,0x320cdb0b,0x360b360b,0x330b350b,0xd90b330b,0xda0b340c,0x360cdb0c,0x340b330b,0xa80cda0b,0xa50ca60c,0xa90c9e0c,0x540ca80c,0xd00cd30b,0x670b660c,0xb90b690b,0x650b5a0c,0x690b650b,0x650b730b,0xb40b730b,0xb90b7b0c,0xbc0b650c,0x650b7b0c,0xb40b650b,0xb10cb00c,0x7d0b760c,0xb00b650b,0xbc0cb10c,0xb10b650c,0x7d0cb10c,0xbb0cba0b,0xb10cbc0c,0xdd0cdf0c,0xab0cde0c,0xa60ca70c,0x840c830c,0x550c920c,0x790c7a0c,0x7e0c800c,0x550c7c0c,0x800c790c,0x7c0c800c,0x470c7f0c,0x460c460c,0xf30bfd0b,0xfc0bfc0b,0x20c010b,0x6e0c020c,0x640b640b,0x840b860b,0xe80be90b,0x840bed0b,0xed0be90b,0xed0b840b,0xfd0bf40b,0x20bfc0b,0xfd0bf60c,0x640c020b,0xf40b840b,0xf40b640b,0xf60bf80b,0x640c020b,0xf60bee0b,0x640b640b,0x70bf80b,0xa0c050c,0x90c080c,0x80c050c,0x3c0bf00c,0xfa0bfb0b,0xfb0bf00b,0xfb0bfa0b,0xfa0bf90b,0x60bf90b,0xfa0c070c,0x70c060b,0xb0c060c,0x80c090c,0x70bee0c,0xef0c0b0c,0x90bef0b,0x640bee0c,0xef0c070b,0x7c0c770b,0x770c7e0c,0x780c7e0c,0x7a0c7d0c,0x770c560c,0x7b0c780c,0x7d0c7b0c,0x760c560c,0x7b0c770c,0x3d0b560c,0x770b3c0b,0x2c0b740b,0x280b250b,0x2f0b2f0b,0x720b750b,0xed0bf40b,0xc20baa0b,0xc70cc30c,0x500c7c0c,0x1c0c520c,0x680c690c,0x780c7b0c,0x560c820c,0x610b570b,0x620b610b,0x630b630b,0x590b5b0b,0x600b590b,0x5e0b5e0b,0x610b560b,0x630b610b,0x530b590b,0x550c560c,0x3e0c1f0c,0x300c390c,0x310c3a0c,0x1f0b470c,0x300c390c,0x280c310c,0x390b470c,0x200c300c,0x470b460c,0x270c280b,0x470c200c,0x280c300b,0x340bcd0c,0x2f0c260c,0xe60b280b,0xe60b2f0c,0x2b0b290c,0x2f0b2c0b,0x300b330b,0x2e0b2e0b,0x2f0b2b0b,0x290b2f0b,0x260ce30b,0x250ce40b,0x2f0b2e0b,0x260ce30b,0x240b250b,0x2e0b330b,0xe30ce30b,0x240b260c,0x270b240b,0x2d0b2a0b,0x370b310b,0x2a0b240b,0x330b2d0b,0x240ce30b,0xd90cd70b,0x370b330c,0x320b360b,0x330cd70b,0x2d0b240b,0x320b370b,0xd70b320b,0x5e0b240c,0x630c5d0c,0x4a0c6f0c,0x6c0c460c,0x600c100b,0x5c0c620c,0x6c0b690c,0x620c600b,0x6e0b640c,0x690b6c0b,0x640b670b,0x6c0b640b,0xa90c620b,0x880b830b,0x880ba90b,0xaf0baa0b,0xaa0ba90b,0xaa0baf0b,0xb10bab0b,0xb20bc50b,0xb20bb10b,0x8d0b8e0b,0x8e0bb10b,0x8e0b8d0b,0xab0b8f0b,0x8f0b8d0b,0x8f0bab0b,0xaf0bd50b,0xd50bab0b,0x850b870b,0x680b810b,0x870bc40b,0x5c0b3d0b,0xa60b680b,0x520b950b,0xa60b8c0b,0x680b520b,0x810b870b,0x810b680b,0x910b820b,0x520b8c0b,0x520b910b,0x3d0b3d0b,0x820b680b,0x820b3d0b,0xc30bcc0b,0xb50bca0b,0xc30b9c0b,0x9c0bb50b,0x9d0bb50b,0x9c0ba20b,0x3d0b9d0b,0xaf0bcc0b,0xaf0b3d0b,0xa20bd50b,0x910b9d0b,0xcd0bba0b,0xa20bbb0b,0x3d0b910b,0xbb0bba0b,0xd60ba20b,0xbd0bd20b,0xba0bbd0b,0xe50ba20b,0xc90ba40b,0xc90be50b,0xce0bde0b,0xde0be50b,0xde0bce0b,0xd50bcf0b,0xcf0bce0b,0xb70bd00b,0xd50bb90b,0xd00bcf0b,0xa20bbd0b,0xd60b3d0b,0x3d0bbd0b,0xd50b3d0b,0x3d0bd00b,0xb90bd00b,0x8b0ba30b,0x990b9a0b,0x9a0ba30b,0x9a0b990b,0xe30be40b,0xe40b990b,0xc70bc20b,0xc20bb00b,0xb60bb00b,0xc20b9e0b,0x9e0bb60b,0x9f0bb60b,0x9e0bb90b,0xb90b9f0b,0xa00b9f0b,0xe40be30b,0x940bd60b,0xd60be30b,0xb90b3d0b,0x890ba00b,0x8a0b9b0b,0x890ba00b,0xa00b8a0b,0xe70b8a0b,0xd60b940b,0x3d0b3d0b,0xe70ba00b,0x900be20b,0xe20bdd0b,0xdc0bdd0b,0xdc0be20b,0xe70bc60b,0xc60be20b,0xd80bbf0b,0x3d0bd40b,0xc60be70b,0xd40bbf0b,0x940bc00b,0xc60b3d0b,0xbf0bc60b,0xc60bc00b,0xc10bc00b,0xbc0bb40b,0x920ba70b,0xa70bb40b,0xa70b920b,0xae0b930b,0x930b920b,0xc60b940b,0xae0bc10b,0x940b930b,0x940bae0b,0xae0bc10b,0xac0bc10b,0xae0bad0b,0xc80bac0b,0xbe0bd10b,0xac0bad0b,0x9d0bc80b,0xa70cac0c,0x730c660c,0x390c750c,0x330b380b,0x50bfb0b,0xea0c030c,0xb0bef0b,0xfb0c040c,0xea0c030b,0x40c0b0b,0x630c610c,0x5c0c5d0c,0x610c620c,0x480b440c,0x50c940c,0x3c0bfb0c,0x890c8e0b,0x7b0c8a0c,0xbd0cbc0b,0x430b410c,0x520b520b,0x4a0b530b,0x510b490b,0x410b380b,0x4a0b520b,0x380b490b,0x410b390b,0x490b4a0b,0x400b450b,0x460b410b,0x450b440b,0x470b480b,0x4c0b460b,0x480b4d0b,0x4e0b4b0b,0x540b4c0b,0x4c0b4b0b,0x480b4c0b,0x450b460b,0x490b410b,0x460b4c0b,0x540b450b,0x450b4c0b,0x490b450b,0x3a0b390b,0x500b3b0b,0x450b540b,0x500b390b,0x550b4f0b,0x540b550b,0x3a0b390b,0x550b500b,0x9b0c9c0b,0x9a0c9a0c,0xae0c990c,0x5d0b5f0c,0x4e0b5e0b,0x310b500b,0x480c1b0b,0x4d0b4d0b,0x240b270b,0x160b240b,0x120c1b0c,0x670c660c,0x5a0c140c,0x120c110c,0x140c670c,0x940b450c,0xbb0c950c,0x280c260b,0x1e0c180c,0x170c150c,0x1a0c160c,0x180c690c,0x150c150c,0x1a0c170c,0x720c1a0c,0x130c130b,0x690c140c,0x1a0c150c,0xd20c130c,0x550b540c,0x720b730b,0x740b750b,0xb10b760b,0x750b730c,0xb30b740b,0x730cb40c,0xb10b740b,0xff0cb30c,0xc50bf80b,0x330b300b,0x380b380b,0x9b0b510b,0x9c0c9b0c,0x3b0b300c,0x3a0c310c,0x3e0c3a0c,0x1f0c1f0c,0x230c430c,0x220c230c,0x1f0c2c0c,0x2c0c230c,0x3a0c3b0c,0x340c1f0c,0x1f0c3b0c,0x380c410c,0x270b460c,0x260c280c,0x260c270c,0x350c340c,0x340c270c,0x460c410c,0x410c200b,0x440c200c,0x410c450c,0x450c440c,0x2b0c440c,0x340c350c,0x2c0c1f0c,0x2b0c450c,0x350c2b0c,0xaf0c1f0c,0xe90be80b,0xff0bf10b,0x2f0bb10b,0x380b460c,0x380c2f0c,0x370c360c,0x360c2f0c,0x230c420c,0x370c430c,0x420c360c,0xa70ca60c,0x240cac0c,0x2f0b460c,0x240c2e0c,0x3c0c2f0c,0x3d0c430c,0x2f0c2e0c,0x2d0c2d0c,0x3d0c3c0c,0x380c400c,0x3f0c410c,0x230c220c,0x410c400c,0x890c3f0c,0x8d0c8e0c,0x780c830c,0x480c7e0c,0x460b440c,0x3f0c4a0c,0x490c490b,0x460c480c,0x6e0c0d0c,0x5a0c020b,0x630b5b0b,0x160c1a0b,0x240b240c,0x720b250b,0xf0b6f0b,0x840c590c,0x930c850c,0x5d0c5c0c,0x950c5e0c,0x980c940c,0xd90b340c,0x9c0ce00c,0x2e0ca10c,0x340cda0b,0x6d0cdf0b,0x6c0b6b0b,0x6e0b6c0b,0x6a0b6f0b,0x5a0c590b,0x6f0b6c0c,0x6d0b6a0b,0x6a0b6c0b,0x600c5b0b,0x6d0c100c,0x5a0b6a0b,0x100c5b0c,0x760b6d0c,0x4c0c4d0c,0x980c970c,0x180c480c,0x1c0c690c,0x1d0c1c0c,0x1f0c1f0c,0x160c190c,0x170c160c,0x180c180c,0x1f0c1c0c,0x570c0f0c,0x630c580c,0x5f0c610c,0x620c5f0c,0x640c600c,0x5f0c630c,0x750c680c,0x720c730c,0x6a0c700c,0x730c680c,0x840c720c,0x810b860b,0x630b650b,0x770b620b,0x510c4e0c,0x530c560c,0x5b0c4f0c,0x140c5a0c,0x730c140c,0xa20c5c0b,0xa40cad0c,0x740c700c,0x650c650c,0x580c110c,0xe0c570c,0x650c6b0c,0x570c580c,0x650c700c,0x570c570c,0x710c6b0c,0xd40b4f0c,0x9a0cd60c,0x510c9b0c,0x520b510b,0x950b950b,0x9a0ba50b,0xd40bc00c,0xd70c320b,0xde0b320c,0x530c4f0c,0x6d0c470c,0x6e0c6c0c,0x6b0c6e0c,0xe0c0e0c,0x4e0c510c,0xe0c6e0c,0x4f0c4e0c,0x6d0c470c,0x4f0c4d0c,0x6e0c6d0c,0x4c0c4e0c,0x4d0c4c0c,0x6f0c6d0c,0x3e0c000c,0xc10cc30b,0x570cc60c,0x6f0c0f0c,0x6e0b6f0b,0xd0c0d0b,0x570c0e0c,0x3c0b3e0c,0x520b3d0b,0x420b430b,0x400b410b,0x3d0b3f0b,0x420b520b,0x3f0b410b,0x3d0b3e0b,0x410b420b,0x9e0c9d0b,0xd10ca50c,0xd30cd00c,0xd50cd30c,0x660cd40c,0x610b620b,0xa90b830b,0xc10be90b,0x2e0c240b,0x3a0c3e0c,0x8c0bb50c,0x880c870c,0x2a0c290c,0x2f0c6d0c,0x740b2c0b,0x470c1f0b,0xe60b480b,0x250b280c,0xe40b250b,0x700ce50c,0x800c9d0b,0x7a0b7f0b,0x700b710b,0x7f0b800b,0x760b7d0b,0x5a0b700b,0x7d0cb90b,0x580b5f0b,0x7f0b5a0b,0x5f0b710b,0x7d0b5a0b,0x700b700b,0x5f0b7f0b,0x2a0b4c0b,0x580b270b,0x5a0c110c,0x2d0b4e0c,0xdc0b2a0b,0xde0ce20c,0x510c500c,0xe0c0e0c,0xc0c0d0c,0x470c6f0c,0x6f0c530c,0x540c530c,0x500c520c,0x6f0c0e0c,0x4b0c540c,0xe0c520c,0xc0c0c0c,0x4b0c6f0c,0xcd0cca0c,0xf20b410c,0xf30bfc0b,0xf30bf20b,0xf50beb0b,0xf60bfd0b,0xf60bf50b,0xeb0bec0b,0xec0bf50b,0x3c0c0a0b,0xeb0b3e0b,0xa0bec0b,0xeb0bf20c,0xc0a0b,0x10c020c,0x10c000c,0xf20bf70c,0x3e0c0a0b,0xb3e0b,0x940bf70c,0x400c380b,0x860be80c,0x640b640b,0x610b670b,0x610b640b,0xe80b570b,0x570b640b,0x70bfe0b,0xfe0bf80c,0xff0bf80b,0x570be80b,0xed0b3c0b,0x3c0be80b,0xfe0bf00b,0xf00bff0b,0xf10bff0b,0x3c0bed0b,0xc50bf00b,0xf40bf80b,0x880bf40b,0xab0b870b,0xf10bed0b,0x7f0c550b,0x140c4b0c,0x750c670c,0x690c680c,0xd30c140c,0x200c440b,0x200bbd0c,0xdf0c270c,0x440c2b0b,0x330bda0c,0xd90c290c,0x270bba0b,0x3f0be40c,0xd60c410c,0x450c410b,0x220b9a0c,0xca0c3f0c,0x340c3b0b,0xd20be60c,0x930c450b,0x380c360b,0x6b0c710c,0x6e0c6e0c,0x1c0c1d0c,0x60b980c,0x8f0bf90c,0xfa0bf00b,0xce0be50b,0xad0c040b,0x2f0c2d0b,0x2f0bae0c,0xbe0c370c,0x2d0c3c0b,0x430bbc0c,0xb40c3c0c,0x370b920b,0x80bb80c,0xd00c0a0c,0x90c050b,0xee0bcb0c,0xb00c080b,0xf50bfd0b,0xac0bc80b,0xe70c2e0b,0xf70bf20b,0xb60b9f0b,0x960bf50b,0xfc0c010b,0xbf0bd80b,0xdd0c250b,0xd80ce00c,0x9b0b8a0c,0x8b0bfc0b,0x220c2c0b,0xe20b900c,0xa30bf70b,0x420c230b,0xb70cb10c,0x3d0cb80c,0x1f0c430c,0x1d0c1f0c,0x2a0c2a0c,0x330c290c,0x2a0c1f0c,0x3d0c330c,0x330c1f0c,0x3d0c320c,0x210c330c,0x460c6d0c,0x330c320b,0x250c250c,0x460c210c,0x320c240b,0x9d0c250c,0x3a0bb50b,0xb70cb80c,0xa00cb60c,0xf30beb0b,0xb20b8e0b,0xdb0bfe0b,0x2b0c350b,0x890ba80c,0xc60bf30b,0x250c210b,0xdd0bdc0c,0xc70c290b,0xee0bf60b,0x9e0bc20b,0xe10bec0b,0xfb0bf90b,0xfb0bd50b,0xde0c040b,0x30bea0b,0xef0bc90c,0xd70bea0b,0x90bb70b,0x860c850c,0xb90c8b0c,0xec0c0a0b,0x5b0c600b,0xa40c5e0c,0x60c0b0b,0x9c0bc30c,0xcf0c310b,0x50c030b,0x280ba20c,0xa70c310c,0x360c420b,0x70ba10c,0x970bfe0c,0xfa0be00b,0x300b910b,0xd10c390c,0x320c3d0b,0x860c8b0c,0x580c870c,0x600b5f0b,0xd40cd10b,0xcb0b4f0c,0xce0cc90c,0xcb0cca0c,0xc20ccf0c,0x490cc50c,0x9e0ca90b,0x7e0b7e0c,0xa10b770b,0x9c0ca10c,0xa30ca30c,0xad0ca40c,0xad0ca30c,0x7e0ca00c,0xa30ca10b,0xa30b7e0c,0x7e0ca00c,0x9f0ca00b,0x7e0ca90c,0xa20c9f0b,0xc40cae0c,0x9f0ca90b,0x800ca20c,0xaa0c9d0b,0xa90caa0c,0xa20ca20c,0x680bc40c,0x5d0b5c0b,0x7a0b710b,0x780b790b,0x710b5c0b,0xa20b7a0b,0x5c0b680c,0x800b7c0b,0xaa0caa0b,0x5c0ca20c,0x780b7a0b,0xaa0b7c0b,0x7a0b5c0c,0xed0cee0b,0xec0cec0c,0xe90ceb0c,0x830c820c,0xe70c910c,0xee0ced0c,0xee0b290c,0xa50ce90c,0xb30caf0b,0xb50bb30b,0xcd0bca0b,0xd90bba0b,0xb30ba50b,0xca0bca0b,0xd90bcd0b,0xd90bca0b,0x990bdb0b,0xca0ba50c,0xc40bc50b,0xae0cae0b,0xca0c990c,0xca0cae0b,0xa10bdb0b,0xc50bb20b,0xc50ba10b,0xd50cae0b,0xe00b8f0b,0xd50be10b,0xe10be00b,0x970be00b,0xe10b980b,0xd30b970b,0xd20bbd0b,0xd20bd30b,0xdf0be60b,0xe60bd30b,0xe60bdf0b,0xdb0b8b0b,0x8b0bdf0b,0xa70ba30b,0xae0bbc0b,0x8b0bdb0c,0xa30b8b0b,0xbc0bbc0b,0xd10bbe0b,0xd40bd10b,0xda0bd80b,0x900bdd0b,0xd80bd10b,0xae0bda0b,0xbc0b8b0c,0xd10bbc0b,0xda0bda0b,0x960b900b,0x890b9b0b,0xbc0ba80b,0x960bda0b,0x9b0b960b,0x960ba80b,0xb00ba80b,0xbc0cae0b,0x980b960b,0xa10b970b,0x980ba40b,0xae0ba10b,0xb00b960c,0xb00cae0b,0xa40bc70b,0xae0ba10b,0xa40bc90c,0xc90cae0b,0xc70cae0b,0xc90bd70b,0xd70bc70b,0xcb0bc70b,0xb90bb80b,0xd70bb70b,0xb80bcb0b,0x490c960b,0x190b3f0c,0x6100510,0xf30d0910,0x9d0d020c,0x77167816,0x7c116e16,0xc116b11,0x73137c12,0x4e10d813,0x990f550f,0xc013be13,0x59175813,0xe3174417,0x530f590f,0x417050f,0x3f170617,0xd00d4a0d,0xcd15d117,0xe215ce15,0xdf0fe00f,0x910fd90f,0xff0f850f,0xfe160415,0x95109d15,0xf8109710,0x5a0d270c,0x4212410d,0x47123f12,0x5e0cfa0d,0x38112f0d,0x16113911,0x750f9e17,0xc117be0f,0x9617c017,0x900dae0d,0x130f180d,0xad0f190f,0x5a0dac0d,0xc20eb90d,0x8e0ec30e,0x2b0d290d,0x2a0d450d,0xfd0d660d,0xfa0d5c0c,0xed14040c,0xd113eb13,0xd20ddf0d,0x440d430d,0x5f0d690d,0x5e164a16,0x560dac16,0x8a0d5f0d,0x610d260d,0x1f0d870d,0x600d7a0d,0x590d580d,0x6316610d,0x1b163f16,0x700d1e0d,0x6814800d,0x56147314,0x76117511,0x6a17a011,0xac17a10d,0x3c0f710f,0x3f124a0f,0xc3125c12,0xbd0db80d,0x7c17130d,0x130f9e0f,0x1414fd15,0x450dd815,0x520db40d,0x530dad0d,0x1110080d,0x17100710,0x850d770d,0x37131f0d,0x5e132a13,0x84118311,0x2f0d4611,0x580d740d,0x590e280e,0xd030e,0x820efd0f,0x800d570d,0x730d110d,0x100d650d,0x650d110d,0x9013990d,0xa7138f13,0xa40e410e,0x40d080e,0x320f010f,0x3f104010,0xa717a910,0xc517a817,0xcd0ebe0e,0x5c0da10e,0xca0d5b0d,0xd111d211,0xd30f7e11,0x8e0fd40f,0xac11ae11,0xd20edd11,0x180ed50e,0x5f135812,0xfd120213,0x3e120e11,0x3f173317,0xb417c517,0x8517c217,0x7d107b10,0xf90cf210,0x120cf60e,0x20131f13,0xae0fc313,0x190fad0f,0x170e180e,0x5212a30e,0x97124d12,0x43149414,0x87146c0f,0x67146d14,0x4b124c12,0xbb0ec912,0x7d0eba0e,0x7e122413,0x290fa613,0xc014610f,0xbe0fab0f,0xb70de80f,0x5b0dd80d,0x5a106010,0x5f125a10,0xcd126012,0xce0fcb0f,0xba0ec80f,0x510ec10e,0x200d780d,0x8717090d,0x110f830f,0x36153215,0xe0f8415,0x36170b17,0x2c172e17,0x86139e17,0x8b138513,0x8c0e8f0e,0xa10ea20e,0xa60e6f0e,0xb111b211,0x8d0e8a11,0x8a0e200e,0x210e200e,0xd60ee00e,0x250ee30e,0x230e570e,0xfd0e6a0e,0x6b0e6b0d,0x700e040e,0x3316000e,0xca160916,0x130d150d,0xef0e640d,0x990df10d,0x9c109a10,0x33154810,0x7b154715,0x7c177717,0xd80ee517,0x210edb0e,0x25101f10,0xda0ee410,0xce0ed90e,0xe20ee30e,0xfa0da00e,0xdc0d5c0c,0xd70ed50e,0xfe14e10e,0x2b14ff14,0x38173d17,0x35173c17,0x8e172f17,0x9b0e310e,0x590e230e,0x250e280e,0x560e540e,0x5d0d000e,0xe20cfd0d,0xb813bc13,0xb20db413,0x3a0dd80d,0x950d940d,0x2e0e870d,0xac0e920e,0x9e10a310,0x620d6d10,0x2d0d850d,0x2b154c15,0x230cfb15,0xae0d860d,0x630d3e0d,0x4a0d960d,0x6c0d6c0d,0xa90d490d,0x1c12f50d,0x97131b13,0x8d128e12,0x1100a12,0x65100210,0x1c152215,0xa0ef215,0x510d0d0d,0x65118f11,0x1c0fff11,0x510c510,0xf120c12,0xe2110312,0xf2110910,0xa0f020e,0xf30e9a0d,0xdd0e5c0d,0xda0db80d,0x1512100d,0x4411fa12,0x58105710,0x120d7c10,0x270d620d,0x6141514,0xfe160c14,0xee160b15,0xed0d020e,0xce0db20e,0xe20de70d,0xe311c211,0x110f1611,0x110f100f,0x140f170f,0x160f110f,0x170f170f,0x100f160f,0x170f140f,0xce0f100f,0xc215c415,0xd712d615,0x7a12da12,0x70116e11,0x9a159011,0xa7158115,0xaa14ac14,0x7a0d9414,0x260db00d,0x230f220f,0x340f2e0f,0x2b0f350f,0x360f300f,0x300f360f,0xa20f380f,0x950d9d0d,0x3b0f3e0d,0xae0fa90f,0x210d1217,0x120f090d,0xcb0f100f,0xca14c114,0x5f171114,0xa40f650f,0xb914b814,0x120d8514,0x8b0d170d,0x2b0f260f,0x2b0f8b0f,0x6c0f360f,0x5f166016,0xa5159016,0x6415a415,0x2b0f2914,0x300e9b0f,0xef0e9c0e,0x4d0f4c10,0x1e15510f,0x43152015,0x470f3c0f,0xb517b80f,0xb017b417,0xb1101310,0x90f0a10,0x640f0c0f,0x3d0d3e0d,0x8f0f3b0d,0xaf161514,0xb40fb50f,0x400fbb0f,0xea0fbc0d,0xf110ed10,0xbd10b810,0x6810be10,0x610f6d0f,0x6410750f,0xfe107610,0xfc0eef0c,0x47124d0c,0xac124812,0xb70f450f,0xa40fa20f,0xa20fc70f,0xc50fc70f,0xf3140a0f,0xa113f113,0xc40fa00f,0xc30fa00f,0x5c0fc40f,0x60175217,0xa70fa417,0xa40fc80f,0xc70fc80f,0xee10ed0f,0x7c10dd10,0x210d270d,0x6b17040d,0xdd0f730f,0xe011ea11,0x9d0f9911,0xd10fd00f,0xd00f990f,0xfe12260f,0xd1121b11,0x990f9c0f,0xd00fd20f,0xd80fcf0f,0x800f850f,0xd50fd30f,0xfa0fd40f,0x10120f11,0xd70f9112,0xd90f9a0f,0xda0fd70f,0xd60f9b0f,0xdb0fd30f,0x5b0f600f,0x9f0fd20f,0x610f9c0f,0xde0fdd0f,0xde0f5b0f,0xde0fdb0f,0xdb0fdc0f,0x6d0fdc0f,0xd50f600f,0xd40f7e0f,0xe50f5a0f,0xe80fe60f,0x900f860f,0x311fd0f,0xd120112,0xf0f070f,0x810f7a0f,0xec0feb0f,0xeb0f7a0f,0xf90e5d0f,0xed0e680d,0x8e0fee0f,0xed0f880f,0xed0f8e0f,0x7a0f7f0f,0x950fe70f,0xe60f860f,0xe30fe40f,0xe30ed80f,0xd20ed60e,0xd115c115,0x82157715,0xc3157515,0xfd0fff10,0x29102a0f,0x54102b10,0xf40ff30f,0xf610070f,0x9610040f,0x970d9217,0x30ffd17,0xb20f6310,0xf90ffb10,0xe20f680f,0xf00fdf0f,0xef16fc16,0xe100b16,0x10100f10,0xd10b110,0xb101110,0x12100f10,0x1010b110,0x20101d10,0x14101c10,0x16101510,0xb7101510,0x7101710,0x18101110,0x1b100c10,0x17100d10,0x1910b710,0x7c169810,0x16169916,0x17101510,0x7f128810,0x1a129d12,0x1b101610,0x1c102c10,0x1e102b10,0x10101210,0xc7100f10,0x1f101d10,0x10101e10,0xc7100e10,0xe7100f10,0xd916d716,0xf811f916,0xc3123511,0x23102210,0xc2102210,0x25102410,0x26101f10,0x26102710,0x27102410,0x26102510,0x7e178d10,0x230df417,0x24102210,0xc3102910,0x50102310,0x520daf0d,0x29102b0d,0xa2102c10,0xa00fc30f,0x3710160f,0xa1103310,0x9d179e17,0x23103517,0x98102410,0x95179617,0xbf0ec617,0x3c0ec00e,0x3a103710,0x3c103d10,0x3d103a10,0x2d103a10,0x3d103e10,0x69102d10,0x53166f16,0x40104116,0x49103810,0x3c104a10,0x38104110,0x43103b10,0x39104210,0x39104310,0xeb103510,0xd912dc12,0xa9119812,0x4111a811,0x40104610,0x42125c10,0x3f124712,0x47104010,0x47103f10,0x3f104810,0x3e104810,0x34114810,0x69113311,0x62136a13,0x56105413,0x4b105510,0x4c104a10,0x78114b10,0x4d117211,0x4f104e10,0x4f104d10,0x51105010,0x53105210,0x52105310,0x4b105410,0x3c103710,0x56104310,0x1a104410,0x38143914,0x57105914,0x59105610,0x54105610,0x59105a10,0x5a105410,0x52105410,0x5a105b10,0x5b105210,0x4f105210,0x5b105c10,0x5c104f10,0x4e104f10,0x5d105e10,0x5d104a10,0x4a104c10,0x43145410,0x85144114,0x6a176b17,0x59105717,0x57106210,0x64106310,0xba14f110,0x6514c814,0x64105810,0x58106610,0xa3106510,0xa112a212,0x67106a12,0x6b106910,0x49105e10,0x4a105e10,0x6c104910,0x48106b10,0x49106b10,0xdf104810,0xdc11e611,0x6a106711,0x66104710,0x46106710,0x46106610,0x1c104510,0x1d12fe13,0x6c106b13,0x5e106e10,0x6f106b10,0x6f105e10,0xd4107010,0xc810d310,0x5e105d10,0x1107010,0x20eed0d,0x4e134f0d,0xd4134a12,0xdd14cc14,0x9812bd14,0x7612bc12,0x63106410,0x63107710,0xec106210,0xed12d412,0x37132612,0xc5132813,0x280e060d,0x70107d17,0xce106f10,0xe114d114,0xe916c914,0x6316d316,0x620f2a14,0x27143314,0x26143414,0x4112711,0xee13fc11,0xf113ec13,0xf212cf12,0x2c174412,0x14174617,0x13160716,0x8a11ae16,0x8911b511,0x80108110,0x110f610,0x9510da11,0x96167f16,0x81108d16,0x84108910,0x8d108110,0x38133910,0x5b133a13,0x5a165116,0x3d133f16,0x37133e13,0x3a147c0f,0xea0f900f,0x7a0fe80f,0x81176517,0x8d109217,0x92108910,0x93108910,0x89109310,0x94108a10,0x8a109310,0x8a109410,0x95108510,0x8e109410,0x85109410,0xaa108e10,0xa4109d10,0x83109710,0x97108810,0x98108810,0xdf0ed310,0x2f0ed40e,0x2e133c13,0xe30dc313,0x9f0de10d,0x8f108c10,0x4e144410,0x9c144f14,0x8610a110,0x86109c10,0x88108b10,0x53118a11,0x1d143b11,0xca141e14,0xbe10ba10,0x9010a210,0xa2108d10,0x92108d10,0x1714f910,0xaf14fa15,0xa710aa10,0xbf11e110,0xa911af11,0x9a10a010,0xcf0dd710,0x8f0de80d,0x8c129f12,0x93120012,0x2112200f,0x20131213,0xaa10a613,0xea10a410,0xe90e5a0e,0xab10ac0e,0xae10ad10,0x9e10ac10,0xe612cc10,0xaf12e712,0xa8109d10,0x4315fc10,0xaf164416,0xae10ac10,0x8c109810,0xd2109f10,0xd314ad14,0x60107914,0xab107a10,0xa3109a10,0xab10ad10,0x3b10a310,0xa50ea00e,0x2e10530e,0x51102f10,0x2f105310,0x2f105110,0x50103610,0x34105110,0x36105110,0x4d103410,0x34105010,0x34104d10,0xbe103110,0xc014a414,0xf413fe14,0x9c140013,0xf00ef10d,0xb110b20e,0x76101210,0x750e9017,0xea15f117,0xb615eb15,0xc116c216,0x40e7b16,0xc10ee80e,0xc3102210,0xc10dd410,0x1b0dd30d,0x41114011,0x54175c11,0xab175517,0xb714a714,0x5810d414,0xbe10f50f,0xca10c910,0xe711e810,0xbf11ea11,0xcd10cc10,0xbf10bb10,0xbb10cd10,0xce10cd10,0x50165910,0xbc165816,0xd010cf10,0xbc10bd10,0xbd10d010,0xc810d010,0x5d153010,0x5c153515,0xb00e500e,0x9100b0e,0xca100a10,0xc515cf15,0x70117915,0xb4117411,0xab119b11,0xc511c111,0x3911c411,0x3214760f,0xe613be0f,0x3113c013,0x46164816,0xbe11c516,0xe011c611,0xdb10d910,0x3b166910,0xc3166816,0xc40de20d,0xa30d4b0d,0x1c0d480d,0x35143614,0xfe10fd14,0xea10fc10,0xeb10e910,0xc20f4010,0xd60f4a0f,0xd7110110,0xf415f210,0xa715f515,0xa910a010,0xdb16c410,0x5216da16,0x210f40f,0x4e0f4d11,0x5710ef0f,0xf511020f,0x55115d10,0x99116111,0xa5108710,0x4c0f4b10,0x2810f00f,0x2b112311,0xf30ff211,0x1e10f410,0x1d0f1c0f,0x4d14490f,0xf1144a14,0xf00f4b10,0x580d6110,0xf70db10d,0xf910f810,0xf310f710,0xdc10f210,0xda10f610,0xa911b210,0xd211bd11,0xd10d460d,0x8b14660d,0xeb148a14,0xe911ea11,0x79167011,0x1a167a16,0x4317290e,0x95117317,0xc119611,0x513ed14,0x520f5114,0x4f11020f,0x4c164b16,0x570f5816,0xb610f50f,0xa914ad14,0x60118b14,0x1c115c11,0xf0d7b0d,0xe311040d,0xbf10da10,0x440db30d,0xe211060d,0xfc10df10,0x3a0ef10c,0x3214240d,0xe7143114,0xe614e314,0xf110e14,0xd111011,0x10110e11,0x10110d11,0xc111111,0x11110d11,0x11110c11,0x2a111211,0x29110e11,0xb110a11,0xb111411,0x14111311,0x14110a11,0x9111511,0x15110a11,0x15110911,0x8111611,0x16110911,0x16110811,0x15111711,0x19111411,0x19111511,0x16111a11,0x1a111511,0x1a111611,0x17111b11,0x1b111611,0x7e116a11,0xd4116811,0xfe10fc10,0x25112610,0x25112011,0x20111e11,0x20112611,0x27112211,0x22112611,0x22112711,0x29112811,0x28112711,0x28112911,0xa8112a11,0xa914b614,0x8c146614,0xe0146514,0xe410e310,0x64151a10,0x40153d15,0x49124a12,0x4f152812,0xd7152715,0xdf16e516,0x2a110f16,0xf112c11,0x2e112d11,0x10111111,0x2f112e11,0x2e111111,0x11111211,0xc7112f11,0xf314ea14,0x30112314,0x2c113111,0x34113311,0x32112b11,0x3c113311,0x18111911,0x34112c11,0xbf113511,0xc811ca11,0xa60e3a11,0x2e0e9f0e,0x38113711,0x42111c11,0x2f114311,0x3a113911,0x3b111811,0x44113c11,0xa314a20f,0x3d111914,0x2b113e11,0x32113111,0x3f111a11,0x1b114011,0x42114111,0x77115611,0x1c114b11,0x44114311,0x3a111811,0x1f113b11,0x46114511,0x35112d11,0x74113611,0x7b167a16,0xa3158616,0x4415aa15,0x45114d11,0x69158411,0x5a158515,0x6c135c13,0x3b115213,0xe5113a11,0x313fa13,0x46158514,0x41158715,0x45134913,0x45145b13,0xcf145a14,0xbb13bd13,0x3e113f13,0xed115111,0xec10eb10,0xee17e910,0x7317e417,0x720e9317,0xc115c517,0x8715b315,0x7a156c15,0x71147d15,0x670f3014,0x68106510,0xb80d4f10,0x540d530f,0x53115a11,0x34131b11,0x63133313,0x5b115211,0x57129411,0x98127e12,0x7d167e16,0x42114d16,0x8d114e11,0x2c0d2d0d,0x4811360d,0x24115511,0x540e550e,0x2514330e,0x6b142614,0x7d117c11,0x6b116a11,0xe4117d11,0x2150114,0x88115915,0xc0115a11,0xc711c811,0x52105011,0xc5105110,0xdc16d616,0x6f119416,0x5b116d11,0x8a115311,0xa617a911,0x5b17aa17,0x8b118a11,0x5b115c11,0x21118b11,0x1b0f1c0f,0x6311510f,0x65118e11,0x90118f11,0x65116611,0x4a119011,0x57145314,0x91116914,0x4f119211,0x92116911,0x92114f11,0x6c119311,0x93114f11,0x4f165711,0xd0165516,0xcf0f9f0f,0x7d117e0f,0x87119911,0x8911a011,0x8b118c11,0x7311a511,0x65153f15,0xa611a715,0x71119511,0xa3117311,0x96117311,0x7111a311,0xa211a311,0x71115711,0x9511a211,0x23161b14,0x8c128e16,0x21128d12,0x23113011,0x950e2611,0x550e7c0e,0x30103510,0xa20e4710,0xa00ea90e,0x82138313,0x600d1013,0x650d590d,0x64164116,0x6d107416,0x7f106910,0x88157415,0x250d8215,0x350d280d,0x410d420d,0xbb11c90d,0x2011b411,0xc510c610,0x32173c10,0x12173717,0x6130413,0x9e179713,0xc617950d,0xc011be11,0x2e105511,0xb8105310,0xa616bf16,0xb414b216,0xcc14a614,0xc411cd11,0xc411cc11,0xce11c511,0xc511cc11,0xc511ce11,0xcf11c611,0xc611ce11,0xc611cf11,0xd011c711,0xc711cf11,0xc711d011,0xd111c811,0xc811d011,0xb314b011,0xd114b214,0xca11c811,0xd211d311,0x8011cb11,0xd80fd70f,0xe40ee70f,0xd30ed10e,0xe111cb11,0xd311da11,0xda11e111,0xe211e111,0xda11d711,0xd711e211,0xe311e211,0xd711d411,0xd411e311,0xe411e311,0x2d0e9111,0xe20e880e,0xc311e111,0x24155511,0x51152615,0x52113c11,0x2178411,0xe517880e,0xbc11bd11,0x31121f11,0x97122212,0x95124f12,0x75147612,0x9b0f3414,0x9c167916,0x48124416,0x9a124712,0x9b0d7d17,0x58104517,0x37106610,0x54115511,0x60107b11,0xde107210,0xdf10ee10,0x82169410,0xae169516,0xab14ac14,0xe011d914,0x711eb11,0x25110311,0x9a11b311,0xc011b411,0xb80ffb10,0x55127810,0xce125b12,0xcd0f780f,0xc413e70f,0xa313c513,0xc416c516,0x31173d16,0xec173e17,0xee14eb14,0x61153814,0x9e153a15,0x9c0da817,0x5d118417,0x3e115e11,0x2b132113,0x140d7313,0x5b0d710d,0xfa0d5d0d,0xa613c60e,0xf413a713,0xf130912,0xb10e4b13,0x780eaa0e,0xcd0fcc0f,0x8d11f10f,0xf311f90f,0x89126311,0xf611f20f,0x530f8f11,0x55125b12,0x9b10a612,0xc410a710,0xbc11e611,0xa011b711,0x9f11b811,0xc515de14,0x1d121b14,0x8d121812,0xf811f70f,0x58129511,0x49129412,0x30113111,0x12121111,0x4e121312,0x40114111,0xf5140911,0x2f13f313,0x740d8b0d,0x6e0fdf0d,0x250f680f,0x1c121b12,0x740fe012,0x9b0f6e0f,0xba14c614,0x13121614,0xaf121812,0x9d109e10,0x4c163810,0xb164b16,0xfc11fb12,0xff122711,0x7011fe11,0xe20fe10f,0x5f10590f,0x6b106110,0x8b148914,0x96124e14,0xae134a12,0xb814b514,0xf4100514,0xfb0ff60f,0xf5164215,0x99149216,0x2c149814,0x2b122d12,0x8170a12,0x22170717,0x23153f15,0x83147015,0x1f146e14,0x1e122f12,0x91139812,0x2e139913,0x2f121e12,0x7e169612,0xc3169716,0xd816d916,0x2e147416,0xd90f2f0f,0xd70db60d,0x5411870d,0xc1118611,0xcc12e412,0x82129d12,0xde129a12,0xdf15e015,0x3b123a15,0x3a123612,0x38123612,0x3a123c12,0x3c123812,0x37123812,0x3c123d12,0x3d123712,0x39123712,0x3c124612,0x2123d12,0xc40ffe10,0x320d9710,0x3e0d340d,0x39123d12,0x3e124112,0x3e123412,0x34123912,0x34124112,0x3b123512,0x35124112,0x35123b12,0x16123612,0xfa14fb15,0x43124814,0x49124612,0x46124812,0x46124912,0xee124012,0xeb0fec0f,0x70f980f,0xe8170817,0xe70fe90f,0x530fe60f,0x890f5a0f,0x9e138813,0x90f0113,0x1c0d080d,0x1d172117,0xf2126417,0x64125f11,0x65126212,0x640d3712,0xeb0d3d0d,0xe90d2317,0xef0ff017,0xb0ffb0f,0xc170d17,0x6c171a17,0x660f640f,0x2d126912,0x1d0e1412,0x600e0f0e,0x5a11f412,0x4a153112,0xbd152f15,0xd414cc14,0x44161114,0xa014a00f,0xb416be16,0x680d4516,0x6c0db40d,0x6b120312,0x6c126a12,0x6e126b12,0x6d120112,0x6c120312,0x6d126e12,0x3120112,0x3126d12,0x8b126e12,0x6e155015,0xa90fbd15,0x720fbb0f,0x73127112,0x7127112,0x71127312,0x7127012,0x3151212,0xcc150215,0xbf16a616,0xa5161016,0x2914a114,0x77126f12,0x72120712,0x8127312,0x7127212,0x7b135b12,0x31136413,0x32123312,0x7d127b12,0x79127e12,0x7c128112,0x85128412,0x12127a12,0x20141814,0x7d128b14,0x89127c12,0x7c128b12,0x7c128912,0x8a128112,0x81128912,0x81128a12,0x88128012,0x80128a12,0x8b127d12,0x67127e12,0x66164316,0x3a163916,0x7e163816,0x93129212,0x1e0d9312,0xa40d320d,0x52125612,0xcb16e812,0x416d416,0x580e320d,0x9d12900e,0xbb129c12,0xbf0f490f,0xb40ff90f,0x1a10b310,0x1b14600f,0x7a129c0f,0x4a128512,0x47163c16,0x9a15bd16,0xa815a415,0x9811a711,0x4164011,0x41160216,0x4160a16,0x4d15f816,0x8f165016,0xa812a712,0xa912a012,0x7912aa12,0x78117211,0xaa12a311,0xe812ac12,0xf011db11,0xac12a411,0xa512ad12,0xaf12ae12,0xaf12a612,0x9e12b012,0xb212b112,0x8e12a712,0x9112be12,0xb412b312,0x8f12a912,0x9312a812,0xb612b512,0xb7129412,0x4912b812,0x45162e16,0xb9129516,0x4b12ba12,0x4d104e10,0xbb129810,0x5d12bc12,0x5c165216,0xbd128e16,0xc212be12,0xbc12bd12,0xc112b412,0xc512c312,0xb412b512,0xc212be12,0xc612c412,0xbe12a712,0xb712c712,0xc912c512,0xb712b812,0xb115a512,0xcb15af15,0xca12bb12,0xc312c512,0xe12cd12,0x18141a14,0xa215b014,0x10159915,0xfe131d13,0xb115a712,0x9b15a615,0x98170014,0x56152514,0xc6155815,0xd312c212,0x82168112,0xa8168516,0xa9158615,0x62176515,0x85178317,0x5d115411,0x9e16b311,0x88169816,0x890e1617,0xb012e017,0xe412df12,0xb012b112,0xa912d512,0xb212c612,0xe512e412,0xb312c112,0xd812b212,0xa912aa12,0xd812ab12,0xdb12da12,0xab12ac12,0x120f1e12,0xdd0f180f,0xdb12ae12,0xae12af12,0x6c12df12,0xff0ded0e,0x1610b60d,0x85101a10,0x9f13a013,0x9d0e2213,0xf30e890e,0xe712cd12,0x29131e12,0xc2131f13,0xe411e511,0xd012f011,0x5012f112,0x69116511,0x13160511,0xe7160716,0xcc12cd12,0xe910e812,0x910ea10,0xff162416,0x60f6915,0xd60f7217,0xd10ed00e,0x620f230e,0xf2a14,0xc110c210,0x90f1510,0x760f0d0f,0x6b167c16,0xec0cff16,0x8b0d010e,0x8c156d15,0xba13e315,0xd13bc13,0x5130713,0xf7130a13,0x5f130c12,0x600f2714,0x71105d14,0x4107210,0x2131013,0x3131113,0x6130013,0x12130813,0xfd131313,0x3d12f412,0x3c163e16,0xfc131416,0x1512f912,0xff130113,0xac119712,0xf811a911,0xf5130e12,0xfa12f612,0xfb130b12,0xf8130e12,0x13131612,0x16130f13,0x17130f13,0xb616c013,0x1416c116,0xf70ff810,0x19131a0f,0x1a131113,0x14131113,0x3c132513,0x2a133813,0x2c155915,0x112ec15,0x112fa13,0xf613f414,0xbe16cb13,0xbe16ca16,0xca16c916,0x1f131e16,0x1e130c13,0xb130c13,0x1e132413,0x93130b13,0x94139813,0x22131613,0x22131313,0x25131613,0x22132313,0x27132613,0x26132313,0x23132413,0x1e132713,0x28132413,0xd216c713,0x2016c916,0x2a131f13,0x20132b13,0x21132a13,0x2b132013,0x21131d13,0x2d132c13,0x2c131d13,0x57174913,0x1c175517,0x34133513,0x1b133213,0x1a133313,0x2f133113,0x1a131913,0x18132f13,0x2e131913,0x2e131813,0x17133613,0x36131813,0x17131613,0x16133013,0x25133013,0xff151213,0xa314fe14,0x8f0fa70f,0x4c0d6f0f,0x290da50d,0x2d15ff16,0xe516c016,0xba16dd16,0xbf10cc10,0x9c0cfb10,0x230ef00d,0x2e143114,0xed11eb14,0xbd11d511,0x170dd00d,0xcd16bd0d,0xe416b016,0xd80ddb0d,0x3e111a0d,0xd0113f11,0xd216e116,0xae13dd16,0x3d13ad13,0x2c132d13,0xe811d613,0x4911d811,0x6b117411,0x40128c11,0xfd134113,0x30d050e,0x4b134a0d,0x48134c13,0x97129613,0xa1135212,0x4012a212,0x4d135213,0x40134713,0x47134d13,0x4e134d13,0x47134413,0x44134e13,0x50134e13,0x44134113,0xa1135013,0x40135212,0xf416ed13,0x4316f116,0x49134513,0x49134313,0x42134b13,0x48135113,0x42134613,0x97134813,0x48134612,0xfb16fa13,0x5016f515,0x4c134f12,0x5b128413,0x5b125412,0x78128712,0x79125512,0xac128312,0xab15a315,0x99108b15,0x47109c10,0x44124212,0x1d121912,0xf6135312,0x1140213,0x4e114d14,0x35116f11,0x32155e15,0x61107715,0x16107810,0x54121712,0x75115713,0xe1115811,0xe2150014,0x55121714,0x53135413,0x19135713,0x64117f12,0x83116711,0x79156715,0xbb14b915,0x4c14a414,0x58175917,0xfc14de17,0x7b14df14,0x7a121313,0x4135d13,0xe1135e12,0xe210df10,0x58136010,0x61135913,0x59136013,0x59136113,0x62135b13,0x5d135c13,0x62136313,0x63135d13,0x5f135d13,0xaf15a413,0x5f15ad15,0x58174c17,0x55152117,0xe7152615,0xea16e816,0x46112116,0x6114711,0x28142114,0xd414d814,0xf414de14,0x50ef50c,0x9312b70f,0xc912b612,0xc810bd10,0x6e137110,0x1c137013,0x16141b14,0x13100d14,0x57100c10,0x49145914,0xf014f114,0x8014da14,0x81157315,0x73137115,0x6f137c13,0x7c137113,0x7c136f13,0x78136e13,0x7d137a13,0x78137713,0x77137d13,0x75137d13,0x70107c13,0x5e107d10,0x5f0f2414,0xb714f414,0x7f14f214,0x6d106e10,0xf121010,0x3a137e12,0x3914780f,0x314e40f,0x6614e615,0x82138113,0x92137913,0x67139313,0x84138313,0x84136813,0x68138513,0x84136713,0xe70ece13,0x690ecf0e,0x85136813,0xfd14df13,0x6b14e014,0x88138713,0x2d131c13,0x6c133513,0x8a138913,0xdb0dec13,0x6d0deb0d,0x8c138b13,0xa14f013,0x74150b15,0x76139113,0x8e137213,0x65138f13,0x80137f13,0xf514f013,0x7614da14,0x92139113,0xf614db13,0x7914f714,0x94139313,0xf814dc13,0x6414f914,0x7f139513,0xea0dde13,0x6d0deb0d,0x67148814,0x8a139c14,0x9b139d13,0x8b138c13,0xbc10ce13,0x1510bb10,0x23132213,0x9b128213,0x81129a12,0x48116111,0x11150411,0x9f150515,0x9e0d8817,0xa910ab17,0x15109a10,0xb70ff710,0xb410b510,0x73101a10,0x72147114,0xa2139614,0xc713c213,0xc40eb60e,0x6217100e,0xd90f5d0f,0xa813a913,0xc713a613,0xa213c813,0xc813a613,0xc813a213,0xc313c913,0xc913a213,0xc913c313,0xa413ca13,0xca13c313,0x80178713,0xcb0dfc17,0xca13a413,0xcc13c113,0xbf13cd13,0xcd13c113,0xcd13bf13,0x1313ce13,0x190f1d0f,0x820e360f,0x4d0e970e,0x4c0da50d,0xb913b60d,0xb613d113,0xd213d113,0xa513e713,0x6813e813,0x67117f11,0x3f143a11,0xaa144514,0xd713af13,0xd713aa13,0xa813d813,0xd813aa13,0xd813a813,0x113d913,0x214bf17,0xda13a917,0xab13db13,0xdb13a913,0xdb13ab13,0xac13dc13,0xdc13ab13,0xdc13ac13,0xad13dd13,0xdd13ac13,0xe112e013,0xb212e412,0xe013de13,0xb213b513,0xb513e013,0xe113e013,0xb513b713,0xb713e113,0xe213e113,0xb713b813,0x513e213,0x2120312,0xa150c12,0x63150915,0x61153a15,0xb313d315,0xd213b413,0xb613b413,0xa313a713,0xa713ea13,0xc613ea13,0xa100e13,0xf410c710,0xea13c613,0x11141f13,0xdb141314,0xe50ee60e,0xaf13d50e,0x7813b013,0x7b156815,0xf0140715,0xca13fb13,0xa30fa70f,0x680e5f0f,0x32176917,0x36155f15,0xe510e415,0xa910e610,0x9614b014,0x7a0e0714,0x630e120e,0x6b176a0e,0xdd11ea17,0x7411d811,0x930e8b17,0xe013f70e,0x3f13de13,0x29160216,0xcc16e116,0xec16ce16,0xfc13fd13,0xa1108f13,0x8d109f10,0x9c159d15,0x9f158d15,0xd7159e15,0xd817d217,0x9315a017,0x22159515,0x14140f14,0x940ef114,0x420d3a0d,0x19153c15,0xb8159915,0x2a15b015,0xc174217,0x5512140e,0x7e122b13,0x7f0f3414,0x21111e14,0x2f112211,0x2d142b14,0x51174714,0x71174e17,0x7d0f7e0f,0x340d980f,0x9b0d3b0d,0xa00d6d17,0x700e7917,0xb9177117,0x21101e10,0xd611cf10,0x3c11cc11,0x3d143714,0xb715a114,0xe415ba15,0xc90dc60d,0xa215ab0d,0x7015ae15,0x74158915,0xaa0d5315,0x3c0d4f0d,0x22141914,0xb5159c14,0x9d15b915,0xb515b615,0x6e176d15,0x70e6f17,0x750e720e,0xcd11e60e,0x9a11dc11,0x9b167a16,0x21142a16,0xbf142914,0xca15cb15,0xd015c515,0x9b15d115,0xb815b915,0xa011b515,0xc311b611,0xbf15cc15,0xcf15cd15,0x615cb15,0x19101810,0xba15a010,0x4615bb15,0x37153315,0x9e11b815,0x4a11b911,0x490fbf0f,0x2b14200f,0x38142914,0x2b172e17,0xf912f517,0xdb12e712,0xda15c615,0xd815c615,0xca15da15,0xc914c214,0x68107514,0xef106510,0xf012d112,0x57145812,0xa145b14,0x5a135c12,0x31147a13,0xac0f2d0f,0x6e0e030e,0x2612270e,0x22135e12,0xa50f260f,0xa50f220f,0x25145c0f,0x5c0f220f,0x6110c14,0xf6110d11,0x860e020d,0xbb13ce17,0x8c13bf13,0x18177a17,0x2c0f2d0e,0x7214710f,0x65146314,0x760f3014,0x8c147d14,0x990d420d,0x3314790d,0x7e0f350f,0x35147914,0x3314750f,0x7b14790f,0x330f3714,0x33147b0f,0xfb14750f,0x6511f611,0xd112cb12,0x6912c012,0x6f148114,0x760f3214,0x790f3014,0x34147f14,0x7e14790f,0x34147f14,0x770f2e0f,0xaa16c514,0x2416c616,0x27102810,0x710f2d10,0xa8147a14,0x380f360f,0x84146e0f,0x6e146a14,0x84148314,0x84146a14,0x6c148514,0x86148514,0x6a146c14,0x8d148514,0x60116211,0xf9164e11,0x2f16f715,0x74147d0f,0x8c146514,0x8b147214,0x82148414,0x7b157914,0x86159615,0x87148814,0x85148614,0x7f148814,0x76156615,0xd70edf15,0x5b0ed40e,0xf80cf70d,0x2912610c,0x93126212,0x99149a14,0xa1160d14,0x210f8a14,0x14121212,0x5d0f2512,0x5f0f2814,0x5e0d470d,0x4b10310d,0xfb104d10,0xfe13f213,0xf50efb13,0x90cf90c,0xfc120b12,0x4120d11,0x2411ff12,0x1a121212,0xd515d812,0x5315d915,0x3317430e,0xa120717,0xbf120912,0x9714c214,0xa514b414,0xa314a614,0xa817a917,0x84169317,0xff169416,0x6c0e690d,0x6d17640e,0x6e177b17,0x6d0e010e,0xaa15b40e,0xd015ac15,0x170d770d,0x9a11ba0d,0xd511bb11,0xcd14cc14,0xd514d614,0xd714cd14,0xce14cf14,0xcd14d614,0xd814d014,0xd214d114,0xd814d914,0xd914d214,0xd414d214,0x66136114,0x5f136713,0x68135813,0xff0f0613,0x910f080e,0xfe160b14,0xdc12db15,0x2712df12,0x34142a14,0x1b0e7f14,0xf10e850e,0xf7160615,0xd714e315,0xe414e214,0xe214e314,0xe914e814,0xe414ea14,0xe316e516,0xbb159f16,0x7715bc15,0x79137613,0x52144713,0xf9145914,0xfb10fa10,0xef0ef010,0xe70ef40e,0xf214e814,0xe714e514,0xe514f214,0xe314f214,0xe314d714,0xed14cf14,0xf314ef14,0xed14ec14,0xec14f314,0xea14f314,0x87168614,0x14168816,0xfa149016,0x3e104915,0xb9104810,0xf414b814,0xf514da14,0xeb14f614,0x7150614,0xf714db15,0xe914f814,0x5150414,0xf914dc15,0xdd14fa14,0xfb14fa14,0xdc14dd14,0x6914fa14,0x6a138613,0xdd14de13,0x414fb14,0x713ce14,0xfd14e014,0x6a14fe14,0x6b138713,0x8e137013,0xe2137213,0x1150014,0x8c137015,0x8a138d13,0x790dfc17,0x314e617,0x8a150415,0x6c136d13,0x514e913,0xee150615,0x9150814,0x714eb15,0x64150815,0x95139413,0x914ee13,0x74150a15,0x90138f13,0x81136513,0xe136613,0x7150815,0xee0f8115,0x9a0feb0f,0x8d138e13,0x95139613,0x91139413,0x96109710,0xa7159210,0xe515a615,0xe60dcd0d,0x390d950d,0x1f0d3a0d,0x45114411,0x62146111,0x34145e14,0x31154915,0xe00dba15,0x4c0ddc0d,0x45114611,0x23151b11,0x1b153f15,0x40153f15,0x1b151815,0x18154015,0x41154015,0x18151915,0x19154115,0x42154115,0x8a169115,0x82169216,0x76108610,0x2b154e10,0x39154c15,0x45154415,0x39153715,0x37154515,0x46154515,0xc117bc15,0x1517bf17,0xf8123112,0xd915d711,0xb015cd15,0xa611a411,0xb113d511,0x1413d613,0xfb14fc15,0xff10d614,0x27110010,0x50154f15,0x27152015,0x20155015,0x51155015,0xb50e0f15,0x1f0ee80e,0x54155315,0x1f152115,0x30155415,0x20142d14,0x350d0d14,0xf50ef20d,0x410010f,0x59152c10,0x2e155a15,0x5a152c15,0x5a152e15,0x30155b15,0x5b152e15,0x5b153015,0x4d155c15,0x5a175c17,0xca0fa117,0xe80fa30f,0xe613c013,0xb313d613,0xa313d413,0x8f0e2b0e,0x72107c0e,0x4b107110,0x6a154815,0xf8140315,0x7e13e513,0x80157215,0x55127b15,0x94128312,0x93116c11,0xbd0ebe11,0x500ec00e,0x3f114011,0x210e5b11,0xde0ee90e,0xf80dbe0d,0xf513ff0d,0x23140813,0x860d870d,0xd911d70d,0xfa11da11,0xb131512,0x98158113,0xaf15a115,0xa70e440e,0x1c0d790e,0x1a0d200d,0x280f1c0f,0xc416bc0f,0x2416c316,0x1d111711,0x58144511,0x8f145a14,0x9415a215,0xdf11e415,0xd811d411,0xd50ff010,0x18178810,0x6917810e,0x74107310,0x7b169910,0x3e169a16,0x48144a14,0x5d104e14,0x96105c10,0xa515a615,0x49174f15,0x8f174817,0x99159b15,0xf7160715,0x37160615,0xd151715,0x370e8c15,0xf90e9a0e,0x680e760d,0x2414140e,0x80142314,0x64114811,0xb715bd11,0x2415be15,0x23131513,0x3d141713,0xad143714,0xb714cf14,0x60f7314,0x7e170417,0x6e106f10,0x711ff10,0xe6120012,0xe810e710,0xbc159e10,0x8c15b615,0x7f0df417,0xbe159817,0xfa15b715,0xf70cf90e,0xc915d90c,0x4815c815,0x44144d14,0x40145014,0x1f144f14,0x53155215,0x37141f15,0xb2143a14,0xb315a815,0x60153615,0xcb153815,0xd715d415,0x2a0d8e15,0x670d290d,0x83138213,0x56145513,0x3f145814,0x55144714,0xbe0faa14,0x120fab0f,0xc110b11,0xde12ea11,0x4212dc12,0x57145b14,0xca14cb14,0x9f14d314,0xc415dd14,0x5b174714,0xe2174a17,0xe015de15,0xbd13d115,0xdc13d013,0xdd14c415,0xbc10bb15,0xa1100010,0x9f0d8417,0x120f3f17,0xe7160e16,0xe215e815,0xe215e715,0xe915e515,0xe515e715,0xe915ea15,0xe915e415,0xe415e515,0xea15eb15,0xea15e615,0xe615e415,0xf215e715,0xeb15e815,0xe315e615,0xeb15ed15,0xed15e315,0xe115e315,0xed15e815,0xe815e115,0xe215e115,0xc80dd515,0xf40dd60d,0xef15f015,0xf415f615,0xf615ef15,0xec15ef15,0xf615f715,0xf715ec15,0xf115ec15,0x930d6e15,0xdf0d8317,0xae13b213,0xf148d13,0xf160c16,0x10148e16,0x2b126616,0x1e122a12,0x3b143a14,0xd00ecf14,0xc80ede0e,0xc60fc90f,0x5d12670f,0x9a126912,0x13149214,0x770fcb16,0x3a0f720f,0x54113911,0x30142a11,0x18144814,0x1714ac16,0x18161616,0x1a161716,0x1914aa16,0x1814ac16,0x93161a16,0x9b0f9a0f,0xaa16190f,0x1914ac14,0x1a14ac16,0x1d161e16,0x1d161f16,0x1f14b016,0x1c161d16,0xd14b016,0xf714f815,0x46162e14,0x8f164516,0x9f179d0d,0x2b0d9d0d,0xb50d390d,0x180d190d,0x7512760d,0xb0127712,0x1f161e14,0x1e14b116,0x4514b016,0xb70fb40f,0x2516290f,0x24162a16,0x26162c16,0x30162f16,0x8b162816,0xb40fad0f,0x49162b0f,0x27162716,0x34164916,0x25163716,0x35162616,0x26163716,0x26163516,0x36162c16,0x2c163516,0x2c163616,0x34162716,0x27163616,0x37162516,0xc9162a16,0xcf12c712,0x92129112,0x2a129012,0x3f163e16,0xfd165116,0x39165015,0x3b164416,0xf70cf116,0x340cf30e,0x37163c16,0x12142116,0x67142014,0xb30d440d,0xbe13e40d,0x8613ba13,0x9b129c12,0x28164812,0x18163016,0x2f111311,0x90129e11,0x99129912,0x9e12a612,0x540d8012,0xe90dac0d,0x950f9d0f,0x7f0e590f,0xd60e850e,0xd40dc70d,0x51125e0d,0x4c125312,0x55165416,0xf011de16,0x5011db11,0x58165716,0x9412b916,0x5112b812,0x5a165916,0x9512bb16,0x5212ba12,0x5c165b16,0x9f0e3316,0x4a0e960e,0x5e165d16,0x440f2616,0x3d0f500f,0x60165f16,0x54128516,0x4c12a512,0x4f145414,0x6a104814,0x8e106c10,0x9b159c15,0x63164115,0xae166416,0xad12a412,0x65164312,0x3b166616,0x68166716,0x6a158c16,0x3a158415,0x53166916,0x67166a16,0x6d167616,0x67166816,0x89165a16,0x1b165b16,0x39143514,0x70166114,0x62167216,0x72166116,0x72166216,0x74167316,0x62166316,0x74166416,0x76167516,0x64166516,0xf20eb216,0x440e5d0d,0x45176117,0x82146f17,0xf5147014,0x5d126911,0x6b157912,0xfb157815,0xf20ef40c,0x6d16710c,0x88167e16,0x8e0e270e,0x8d168f0e,0x86167716,0x84168516,0x29154d16,0x89154e15,0x87168816,0x89168c16,0x8b168a16,0x89165c16,0x5d168e16,0x71165c16,0x6f165416,0x54165516,0x80168016,0x7917650e,0x5f168f0e,0x81168e16,0x80165616,0x57168516,0x58165616,0x86168516,0x59168816,0xbf165816,0xbb12bc12,0xca12b912,0xed12ba12,0xee12d312,0xd212ee12,0xaa12ef12,0xad117711,0x9c11b911,0xeb11ba11,0xec12d712,0x390e8412,0x660e190e,0x6f0e5f17,0x30d070e,0x5e0eff0f,0x94126812,0xce12f20f,0x9c12f312,0x78167916,0x2e142216,0x90142c14,0x77169d16,0x91179916,0xe517960d,0xcb0dce0d,0x50efc0d,0x510efe0d,0x163016,0xe6916,0xad0e6a0e,0xaf119f11,0xac16a911,0xb616b516,0xb216b316,0xb716a816,0x4816a416,0x54175517,0xc717dd17,0xb817c617,0x9e169f16,0xf7130b16,0xb912f612,0xab16af16,0x9f16a616,0xa016b816,0xba16a116,0xbb16ad16,0x1416aa16,0xfc130013,0xa716bd12,0xb916a616,0xaf16b216,0xae16bd16,0xb116a716,0xad16bb16,0xa516bc16,0xb016a216,0xbd16ae16,0xbc16a316,0xac16a216,0xb516b016,0xb716a416,0xef16a316,0xed11d511,0xe016e611,0xd16e216,0x18131913,0xc216c313,0xc316b916,0xbc16b916,0x74137316,0xe9137513,0xc413a313,0x73177e13,0xc3177217,0xd715db15,0xef140b15,0xc7140c13,0xba16c916,0xba16c716,0xb016b516,0xc716c816,0x1e140d16,0xd6141d14,0xdc14db14,0xbf16cc14,0xcd16ce16,0xcf16cc16,0xcd16d016,0xc816cf16,0xd016cd16,0xc816c716,0x3b16d116,0x41104210,0xc916ca10,0xd416d316,0xd316ca16,0xca16cb16,0xc616d416,0xd516cb16,0xc616d616,0xc516d516,0xdb16dc16,0xc416d916,0x1a16da16,0x31133213,0xd816c313,0xc216d716,0xd716c316,0xc216c116,0xc116df16,0xde16df16,0xc116c016,0xbf16de16,0xdd16c016,0xdd16bf16,0x5416ce16,0x53163a16,0xc614c816,0xe414c014,0xe016e216,0x82177916,0xf0176617,0x650e670d,0x37112d0e,0xd3112e11,0xd20dc20d,0xf00ef30d,0xee0cef0c,0x600eb40d,0x65153d0e,0x1d151c15,0x1e111c11,0x3c131711,0xa5133013,0xa2109010,0xd616e710,0xe416d516,0x590f5c0f,0xf116380f,0xf516f216,0xf716f616,0x4216f316,0x3164416,0x6b0f6917,0x4d16fd0f,0xee164e16,0xf816fd16,0xee16eb16,0xeb16f816,0xf916f816,0xeb16ec16,0xec16f916,0xfb16f916,0xec16ed16,0x4d16fb16,0xee16fd16,0x50d0e16,0xf00d410f,0xf416f116,0xf416f016,0x4316f616,0x42135113,0xfc16ef13,0xf216f316,0xf316ef16,0xf2164416,0xa616f316,0xbc0d2017,0xfa15f90f,0xa216f716,0x4c125012,0xf0d13,0x90f0e0f,0x32163316,0x71157c16,0xff157e15,0x2d162415,0xc616bb16,0xf516aa16,0xf215ee15,0xc314bf15,0x9c16fe14,0xff14bc14,0x14bc16,0xfe16ff17,0xbf170216,0x19135614,0x21135712,0x1f172317,0x720fce17,0x80f730f,0x980f8317,0x97170a0f,0xd0f870f,0x760f8217,0x170f6a0f,0xc171817,0x790f7617,0x5d17120f,0x130f5f0f,0x14171517,0x11171017,0x24170f17,0x25172617,0x150f7517,0x7d171617,0x1517140f,0xf0f6517,0x7d171117,0x74177617,0x18171a17,0x18171717,0x6a0f6617,0x96171c0f,0x1d171b0f,0x1c0f7b17,0x20171e17,0x1e171b17,0x1d0f5617,0x24171f17,0x19172017,0x660f6417,0xec11e90f,0xdf11ef11,0xdd0dbb0d,0x4017320d,0x24173717,0x7f0d250d,0x7f0d240d,0x2c0d810d,0x810d240d,0x810d2c0d,0xf50d8d0d,0xd150c14,0x330d9815,0x7a0d960d,0xae0d3c0d,0x300d8b0d,0x6d0d8a0d,0x620df80e,0x9011690e,0xac119111,0x430ea60e,0xa10cf80e,0x350d5b0d,0x36174217,0x75158117,0xcc158215,0xc60ecd0e,0x1160c0e,0x71160816,0xf50e670e,0xf50e710d,0x300e060d,0x9c0e8d0e,0x730e660e,0x660dfb0e,0xef0dfb0e,0xf20ff10d,0x2010010f,0x22172517,0x26172217,0x9c172117,0xbf14ba14,0x550da714,0x340db00d,0x40173a17,0xdb0db917,0xf60dbc0d,0xf80cf50e,0xbc0ec30e,0xc10eb90e,0xc80ec70e,0x3b172c0e,0xf0173917,0xf10e640d,0x2a0e2b0d,0x3f0e290e,0x40174217,0x7a177017,0xb3177817,0xb415a915,0x430e0215,0x4b0e3c0e,0x56175417,0xbe0ecb17,0x9e0ebc0e,0x9d14c614,0x59175e14,0x5e174e17,0x51174e17,0x5e175d17,0x5d175117,0x50175117,0x5d175a17,0x5a175017,0x4d175017,0x95148d17,0x60148e14,0x5f175317,0x9d11ab17,0xb11aa11,0x50e720e,0x3814180e,0x38143014,0x9d0e9e0e,0x770e0e0e,0x7a0e140e,0x7c156f15,0x130e7815,0xd10e7f0e,0xd310c910,0x5f107810,0x60107910,0xee0e080e,0x140e920d,0xcc0e7e0e,0xcb13c213,0x860e2613,0x350e940e,0x980e970e,0x4f0ead0e,0xa10eb20e,0xa80e450e,0x1e0e860e,0x4c0e870e,0x510eae0e,0x810e510e,0x190e830e,0x840e830e,0xe812e30e,0x4a12e612,0x46114711,0x41104511,0x46104210,0xae0ea50e,0x1e11240e,0x90112511,0x91168d16,0x980e3416,0x1b0e3b0e,0x850e890e,0xa90e480e,0xd0eb40e,0x760e7c0e,0xee16060e,0xa815f515,0xad0e490e,0x3f0ea20e,0x580ea10e,0x25152a15,0xd110cb15,0xe910d210,0xde12e112,0x290e8f12,0xa30e8c0e,0xa2159415,0x91109515,0x82109610,0x61115f11,0x21162211,0x96162316,0x81138213,0x71177813,0xf177017,0x5150615,0x40106715,0x87104610,0x80176717,0x77177c17,0x25177617,0x26141014,0x4b152f14,0x6a152d15,0x87176817,0x6c178317,0x80178417,0x66176717,0x11141317,0x6c140014,0x6b0e8017,0x13141717,0x7f141914,0x78177117,0x6c178417,0x44176b17,0x3c153b15,0x1b131415,0x36131a13,0x370d900d,0x66157b0d,0x72157d15,0x700d1b0d,0xc915c00d,0x1715d515,0x18130d13,0x88136c13,0xaf138913,0xb011a111,0x4b144211,0x97143e14,0x85158e15,0x1d156215,0x8e156315,0x8b0e1817,0x8b178c17,0x8f0df717,0x3e0e2a17,0x8f178a0e,0x8a0e3e17,0x420e3e17,0x2f17900e,0xf178d0e,0x550db00d,0xf617910d,0xb0dfa0d,0x40f020d,0x1617890f,0xb50e180e,0xb4129112,0x650e7212,0x40e670e,0x5110e11,0x110e7d11,0xaf0e4e0e,0x4e0e7d0e,0x110eb10e,0x920e7d0e,0x93168716,0x430da916,0x3e0d690d,0x3f103210,0xd815db10,0xb015d615,0x4a0e500e,0xb00eab0e,0xab0e4a0e,0x400e4a0e,0xab0ea30e,0xf80e400e,0xf415f515,0xbb0ecc15,0xda0eca0e,0xdc0dba0d,0xcd0de60d,0xb50dcc0d,0xcc0de60d,0xf30cf60d,0x460cef0e,0xd10d760d,0x6b17980d,0x9c17990d,0x9d0d9f17,0x83179217,0x4717930d,0x4a165216,0xf5124a16,0x89124911,0xa217940d,0xa217950d,0x3517940d,0x31133a13,0xc615c013,0x6815bc15,0xb40db30d,0xaa0d4f0d,0x4b0da60d,0xa60d4f0d,0xa30d480d,0x4e0da40d,0xa40d480d,0x4e0d500d,0x4e0dab0d,0xab0da40d,0x9e12b30d,0x8c12b212,0x62116311,0x780d2011,0x600d790d,0x61167016,0xaa0e4116,0x390ea40e,0x3f133b13,0xa417a713,0xa817a217,0xa217a717,0xa217a817,0xff17a317,0xf713f913,0x8d177c13,0xa7178f17,0xa417aa17,0xa617aa17,0x7617a417,0xd10dd00d,0x9a0fd50d,0xaf0f800f,0xab17ad17,0xaf17b017,0xb017ab17,0xac17ab17,0xb017b117,0xb117ac17,0xae17ac17,0xb117b217,0xd617ae17,0xd917d817,0xb017b317,0xb317b117,0x1617b217,0xae17b20d,0xb30d1617,0xad0d1617,0xb317af17,0x3017ad17,0xab0d170d,0xb717bd17,0xbe17b617,0xb617bd17,0xbe17bf17,0xbe17bc17,0xbc17b617,0xc117c017,0xc117b717,0xb717b817,0xc017bd17,0xc217b717,0xb517b417,0xc217c317,0xc317b517,0xb917b517,0xb4169217,0xc516b116,0xba17c417,0xba17c517,0xfc17bb17,0xfd10fa10,0xc417c210,0x7917c517,0xc170b0f,0xe0f0b17,0xf40f060f,0xf217f017,0xd017d517,0xd617cb17,0xcb17d517,0xd617d717,0xd617cf17,0xcf17cb17,0xca17d817,0xd517d917,0xd017d917,0xca17d917,0xda17d017,0xc917db17,0xc917da17,0xdc17c817,0xc817da17,0xc817dc17,0xb917c717,0xc317c417,0x270e0917,0xdb172817,0xc917d317,0xd117de17,0xdf17cd17,0xcc17de17,0xcd17de17,0xe017cc17,0xcc17df17,0xcc17e017,0xdf17d417,0xe217e117,0xec17ee17,0xe117ed17,0xd417e017,0xd417e117,0xe217ce17,0xce17e117,0xce17e217,0xde17d117,0xd117e217,0xda17dd17,0x1b17dc17,0x1e0f5e17,0xe817ec17,0xed17e617,0xe617ec17,0xe617ed17,0xee17e517,0xe417ed17,0xe517ed17,0xd317e417,0xc617dd17,0xe917ef17,0xec17e817,0xe817ef17,0xf117f017,0xf117e317,0xe317e717,0xe317f017,0xf20d1d17,0x1d17f017,0x1d17f20d,0xf317ea0d,0xea17f217,0xea17f317,0xf417eb17,0xeb17f317,0xf417f117,0xf417e717,0xe717eb17,0xb7101917,0xf2100510,0xef0cf60c,0xef0cf20c,0xfb0cf00c,0xf00cf20c,0xe0cf40c,0xfb0d0c0d,0xf40cf00c,0xfb0d3a0c,0xf40cf40c,0xd0d0c0c,0xb0d0a0d,0xf40d080d,0xa0d0d0c,0x80d0a0d,0x70d090d,0xe0f060d,0xa0cf40f,0x70d090d,0x60f0e0d,0xf40d3a0d,0x70d090c,0x30d060d,0x50d030d,0x30d000d,0xfd0d000d,0xfd0d030c,0x30cfa0c,0xf80cfa0d,0xf80d030c,0xf70cf70c,0xf50cf90c,0xf10cf50c,0xf30cf30c,0x5b0d040c,0x10cff0e,0xf30d020d,0xff0e5b0c,0xf50cf70c,0x30cf30c,0xf30cf70d,0xff0cf30c,0x20d020c,0xfc0cfe0d,0xfc0d020c,0x70d3a0c,0xf30d030d,0x3a0d020c,0x90d090d,0xf30d070d,0x9c169d0c,0x6e167816,0x7c117b11,0x7e137511,0xc120c13,0x6e120e12,0x6e120c13,0x73137c13,0xc137513,0xef10d812,0xc00f4e10,0xc513a513,0xa313c413,0xc0139813,0xc413c513,0xba139a13,0xc413be13,0x99139813,0x9a139913,0xc013be13,0x9913c413,0x5b175913,0x44174417,0x58175617,0xe40fe317,0x50f590f,0x4170317,0x2d0d2c17,0x2c0d350d,0xc0d350d,0xc617d30d,0xca0d2c17,0x2c17d317,0xc0d2c0d,0xe0d0e0d,0x420d410d,0x420d0e0d,0xcd0d360d,0xcb17d117,0xd40d1017,0x1117cc17,0xcc0d100d,0x140d1517,0x130d110d,0x110d150d,0x110d130d,0x1a17cc0d,0x190d180d,0x130d190d,0x1917cc0d,0xcd17cc0d,0x1a0d1b17,0x1e0d190d,0x190d1b0d,0xcd0d190d,0x1e17cb17,0xcb0d190d,0x340d3b17,0x320d320d,0xcb0d1e0d,0x320d3b17,0x3317cb0d,0xcb0d3b0d,0xcb0d3317,0x4317d017,0x4a0d490d,0x330d4a0d,0x4517d00d,0x430d440d,0x290d2b0d,0x2a0d2a0d,0x430d450d,0xe0d2c0d,0x370d360d,0x3e0d3d0d,0x360d2c0d,0xca0d370d,0x370d2c17,0x3e0d370d,0x1f0d3c0d,0x230d220d,0x3717ca0d,0x1f0d3c0d,0xea0d230d,0x3c17ca17,0xd00d1f0d,0x1f17ca17,0xea0d1f0d,0x1d0d1d17,0x1c0fc10d,0x1c0d1d0d,0xd00d0f0d,0x1d0d1f17,0x430d2a0d,0xe60d4a0d,0x3917e817,0xe50d380d,0xb617e617,0x380fba0f,0xb10d2e0d,0xb20fb20f,0x380fb60f,0xe60d380d,0x2b0d3917,0x4a0d2a0d,0x1d17d00d,0xd00d0f0d,0x550d0f17,0x390d380d,0x2e0d2b0d,0x380fb20d,0xa417a20d,0xa30d2e17,0x2e17a217,0x380d2e0d,0xd00d2b0d,0x4d0d5517,0x510d4c0d,0xd00d3f0d,0x4c0d4d17,0x2e17a30d,0x3f0d2b0d,0xa517a60d,0x2b17a317,0x3f0d4a0d,0xa317a50d,0x4c17d017,0x3f0d3f0d,0x4a17a30d,0xd215ce0d,0xd115d115,0xcd15d015,0xe10fe215,0xd90fe00f,0x910fda0f,0x215ff0f,0xa160416,0xfb15fc16,0xf915fb15,0x7160715,0x9015fa16,0x91149014,0xfe15fe14,0x1160815,0x5160116,0xf515f516,0x315fd15,0x160316,0x1160916,0x315f516,0x715fb16,0xa149016,0x9015fb16,0x3160114,0x1160916,0xff160916,0x90160a15,0x415fe14,0xfe160a16,0x115fe15,0x9815ff16,0xa1109f10,0x9c10a110,0xa1109a10,0xa0109a10,0x98109710,0x9510a110,0x97109610,0x94109310,0xa2109510,0x93109210,0xa5109910,0xa310a210,0xa2109910,0xa010a110,0x97109b10,0x9b10a110,0xa210a310,0x9e109310,0x9310a310,0x9b109710,0x9d10a410,0x93109e10,0xa4109710,0x9d109d10,0x95109310,0x3b124110,0x3f124212,0x41123e12,0x2e112f12,0x16113811,0x9e171317,0xbd17c00f,0xbe17be17,0xc117bf17,0xaf0d8017,0x610dab0d,0x600db10d,0xab0d800d,0x7f0d610d,0x800d820d,0x7f0d810d,0x800d800d,0x600d610d,0x600d800d,0x810d650d,0x650d800d,0x710d730d,0x810d720d,0x730d650d,0x9a0d990d,0x8d0d8d0d,0x730d810d,0x720d730d,0x930d700d,0x980d970d,0x700d730d,0x8c0d930d,0x8d0d990d,0x640d630d,0x900d900d,0x8d0d8c0d,0x730d8d0d,0x930d930d,0x960d980d,0x6c0d960d,0x960da50d,0xa70da50d,0x930d8d0d,0xae0d960d,0x900d630d,0x8d0d900d,0x960d960d,0xae0da70d,0x120f180d,0x190f130f,0x180f1a0f,0x880da80f,0x8a0d8a0d,0xab0d610d,0xab0d8a0d,0xa80da40d,0xa40d8a0d,0xa40da80d,0x9f0da30d,0xa30da80d,0xa30d9f0d,0x5a0da60d,0x8f0d7d0d,0xa60d9f0d,0x5a0daa0d,0x9f0d8f0d,0xa10da00d,0xac0d5a0d,0x5e0d5f0d,0xa00d5e0d,0x5a0d5a0d,0xaa0d9f0d,0xaf0dad0d,0x5a0d800d,0xad0daa0d,0x5e0dac0d,0xad0d5a0d,0xac0d800d,0xbf0eb90d,0xfd0ec20e,0x5c0d5d0c,0x514040d,0xd113ed14,0xdf0dd00d,0x3d165f0d,0xac164a16,0x560d540d,0x300d8a0d,0x870d260d,0x1f0d220d,0xb10d600d,0x3d0d580d,0x61166016,0x62166116,0x63166316,0x40164116,0x3d163f16,0x63166116,0x3f164016,0x69148016,0x56146814,0x75115811,0x6d17a011,0xac0d6a0d,0x710fad0f,0x45124a0f,0xc2123f12,0xc70dc10d,0xc70dc20d,0x460dc80d,0xc80dc20d,0x130dca0d,0x460d190d,0xca0dc80d,0x460d170d,0xca0dca0d,0xcc0d190d,0xcb0dcd0d,0xcc0dce0d,0xce0dcd0d,0xce0dcc0d,0xcc0dbf0d,0x440dbf0d,0x440dcc0d,0xb70d450d,0xb60dcf0d,0xb90db60d,0xbc0dbc0d,0xbe0dec0d,0xbe0dbc0d,0xb70dc90d,0xbc0db60d,0xb70d450d,0xbc0dbc0d,0xc60dc90d,0xbc0d450d,0xcc0dc60d,0xc60d450d,0xc60dcc0d,0xca0dc30d,0xc30dcc0d,0x960dc40d,0x170dc50e,0xc30dca0d,0xc40dc30d,0xc00dc50d,0xb80dba0d,0xc50dc30d,0xbd0dc00d,0xc30d170d,0xbb0db80d,0xc30dbd0d,0xb80dc00d,0x1417130d,0x130f7c17,0xfd14fe15,0xb70dd814,0x520d450d,0xad0daf0d,0xb10080d,0x1f101110,0x37132913,0x5f115e13,0x58118311,0x280e2c0e,0x60d030e,0x820f000d,0x570d280d,0x9a138f0d,0x99139913,0x90139113,0x440ea713,0x80e410e,0x40d0b0d,0x3810320f,0xa9104010,0xa717aa17,0xb70ec517,0xa10ebe0e,0x5c0da00d,0xcb11ca0d,0x7e11d211,0xd30f9b0f,0xa5118e0f,0xdd11ae11,0xd20ede0e,0x5e135f0e,0x25122513,0x18121c12,0x13121812,0x18135b12,0x59135b12,0x25135f13,0x18121812,0x58135912,0x6120c13,0xfd120212,0xa120b11,0xc120e12,0xfd120212,0xe120a11,0x31173e12,0xc5173317,0xb417bb17,0x89108a17,0x81108010,0x79108410,0x81108010,0x79107910,0x7b107a10,0x7c107b10,0x7d107d10,0x7f107e10,0x83107f10,0x7f109110,0x8e109110,0x79108010,0x8a107b10,0x7b108010,0x7f107d10,0x85108e10,0x7b108a10,0x8e107d10,0xf2108510,0xf90ef40c,0xc13120e,0xc0131f13,0xb90fbe0f,0xb60fba0f,0xb90fb70f,0xb70fba0f,0xb40fb70f,0xb80fb30f,0xca0fc80f,0xb30fb70f,0xc00fb80f,0xb70fb90f,0xb70fc00f,0xc00fb80f,0xca0fb80f,0xc00fc20f,0xc20fca0f,0xc40fca0f,0xbb0fac0f,0xbf0fbf0f,0xc40fc20f,0xc40fbf0f,0xad0fc30f,0xbf0fac0f,0xaf0fb00f,0xc50fad0f,0xae0fc70f,0xb00fae0f,0xad0fad0f,0xc30fbf0f,0xc50fc30f,0x50fae0f,0x60e070e,0xf00df50e,0x50df10d,0xf50e060e,0x50e0b0d,0xf50df50e,0xef0df10d,0xc0dfb0d,0xf50e1a0e,0xfb0def0d,0xb0e130d,0x130df50e,0xfb0df50e,0x1a0dfb0d,0x240e1c0e,0x230e250e,0x1c0dfb0e,0x1b0e240e,0xfb0e130e,0xfb0e1b0d,0x240e240d,0x280e230e,0x320e2c0e,0x240eea0e,0x2c0e280e,0x1b0e220e,0x380e240e,0x240e220e,0x2c0e240e,0x180eea0e,0x110e160e,0xea0e240e,0x390e180e,0x240e380e,0x240e390e,0x180e180e,0x4d0e110e,0x510e4d0e,0x190e170e,0x180e390e,0x4d0e180e,0xa30e170e,0x5212a412,0xc1149712,0x9714a814,0x9614a814,0x980f4314,0x95149714,0x430f3d14,0x9614970f,0x94149414,0x43149514,0x86146c0f,0x67148714,0x4c126812,0xca0ec912,0x7e0ebb0e,0x7d137513,0x7a137d13,0x24122413,0x7e122312,0x260fa613,0xc00f290f,0xab0f400f,0xcf0de80f,0x5b0db70d,0x72105c10,0x5f106010,0x5b105a10,0x60107210,0x51125a10,0xcd125f12,0xcb0fcc0f,0xc90ec80f,0x510eba0e,0x780d6f0d,0xa17090d,0x140f8717,0x20151515,0x1e152015,0x14151f15,0x1f152015,0x14151315,0x13151f15,0x21151f15,0x13151215,0x26152115,0x25152415,0x21151215,0x12152615,0x25152615,0x2a152515,0x2e152c15,0x35153015,0x2c152515,0x11152e15,0x25151215,0x25151115,0x38152e15,0x1d153a15,0x1a151d15,0x3d153d15,0xf151c15,0xf153d15,0x38151015,0x3d151d15,0x3d153815,0x11151015,0x35152e15,0x38153615,0x11151015,0x32153515,0x10153615,0x84151115,0xe0f820f,0x2a173617,0x330e5317,0x30173117,0x53173617,0x2f17330e,0x36173517,0x32173417,0x45172f17,0x2d176117,0x2f173417,0x2c173617,0x2d174517,0x34172d17,0x36173617,0x30173317,0x2b173017,0x2c172e17,0x36172d17,0x30173617,0x85172e17,0x9e139f13,0x87139e13,0x8b138613,0x8f0e900e,0xec0dbe0e,0x6c0e610d,0x6a0e690e,0x610dbe0e,0x6c0e6c0e,0x6b0e6a0e,0x700e6b0e,0x6b0e770e,0x600e770e,0x6c0dbe0e,0x6b0e6b0e,0xb40e600e,0xb40e6b0e,0x7d0ea90e,0x6e0eaf0e,0x800e740e,0x740e7d0e,0x6e0e7d0e,0x6e0e740e,0x630e6d0e,0x6d0e740e,0x6d0e630e,0x5f0e620e,0x620e630e,0x6b0dbe0e,0xbe0ea90e,0xa20ea90d,0x620e5f0e,0x8f0dbe0e,0x6f0e900e,0x5f0e6f0e,0x760dbe0e,0x790e7c0e,0x790e760e,0x680e5e0e,0x5e0e760e,0x8b0e930e,0x680e8c0e,0x930e5e0e,0x680e5d0e,0x930e930e,0x9a0e8c0e,0x9a0e930e,0xb20e5c0e,0x930e5d0e,0x930eb20e,0xb20e5c0e,0xb00e5c0e,0xb20ead0e,0xad0eb00e,0xab0eb00e,0xad0ea80e,0xa30eab0e,0x6f0e8f0e,0xab0ea80e,0xa10ea30e,0xa30ea80e,0xbe0e6f0e,0xa10ea20d,0x6f0ea30e,0xa711a60e,0xe011b211,0xd60ed30e,0x560e250e,0x6a0e570e,0xfd0e000e,0xfd0e6b0d,0xe040d,0x33162f16,0xd50dca16,0x640d150d,0xef0e660e,0xa310990d,0x48109a10,0x33153415,0x6d177b15,0xe5177717,0xd80ee10e,0x1e10210e,0xe4101f10,0xda0ee60e,0xde0ece0e,0xdd0edd0e,0xdf0edc0e,0xdd0ece0e,0xe60edf0e,0xe20ee40e,0xe50ee10e,0xe10ee60e,0xe20ee60e,0xdf0ece0e,0xe30ee00e,0xe20ee10e,0xe00ece0e,0xa00ee30e,0xfa0d5e0d,0xdd0edc0c,0xe10ed50e,0xfe14e014,0x30172b14,0x3c173d17,0x35174117,0x270e8e17,0x230e310e,0x590e570e,0x240e250e,0xe540e,0x5d0efc0d,0xe313e20d,0xb413bc13,0xb20db30d,0x1e0e870d,0xac0e2e0e,0xa310ad10,0x750d7710,0x740d760d,0x8a0d8b0d,0x760d770d,0x850d740d,0x740d770d,0x8a0d740d,0x740d880d,0x840d880d,0x740d850d,0x850d840d,0x6a0d840d,0x7c0d5a0d,0x6d0d620d,0x5a0d7d0d,0x6a0d850d,0x6d0d6d0d,0x620d5a0d,0x4b152d0d,0xae154c15,0x3e0d3c0d,0x330d960d,0x6c0d4a0d,0x490d4a0d,0xe12f50d,0x97131c13,0x8e129812,0x9100a12,0x2100410,0xc510c410,0xc5100210,0xa10c610,0x1100410,0xc6100210,0x65100a10,0x22153e15,0x8e115115,0xc4118f11,0xff0ffe10,0x2a0fff0f,0x1c102b10,0xc5102010,0x2b0fff10,0xc5101c10,0xff10c410,0x612050f,0xe2120c12,0xa110b10,0x8110911,0xe2110311,0x9110a10,0x370e9a11,0xdd0df30e,0xb80dbb0d,0x2312100d,0x44121512,0x57105610,0x210d7c10,0x270d120d,0x15142614,0x8160c14,0xee15fe16,0x20cfe0e,0xbf0db20d,0xe20dce0d,0xc211c311,0xd215c211,0xce15ce15,0xc415c815,0xd812da15,0xd612d612,0xd412d512,0xd912d712,0xd612da12,0xd712d412,0x7b117a12,0x90116e11,0x9a15a415,0xa514aa15,0xa714a714,0xac14ab14,0x9d0d8e14,0x8e0d9e0d,0x920d9e0d,0x680d670d,0x660d660d,0x920d8e0d,0x920d660d,0x690d910d,0x660d670d,0xa90d6c0d,0x6f0d690d,0x6c0da50d,0x6f0d780d,0x6c0d6c0d,0x660d690d,0x910d660d,0x6c0d6b0d,0x6b0d660d,0x6c0d780d,0x780d6b0d,0x6e0d6b0d,0x780d790d,0x790d6e0d,0x830d6e0d,0x790d7e0d,0x890d830d,0x950da20d,0x830d7e0d,0x7b0d890d,0x890d7e0d,0x950d890d,0x940d940d,0x9c0d9b0d,0x870d860d,0x940d7a0d,0x860d9c0d,0x890d7b0d,0xae0d940d,0xb00da70d,0x7b0db00d,0x940d940d,0x7a0d860d,0xae0d7a0d,0x2f0db00d,0x350f2e0f,0x370f330f,0x2f0f3a0f,0x330f350f,0x2f0f310f,0x330f330f,0x390f3a0f,0x300f320f,0x330f2b0f,0x320f390f,0x330f310f,0x280f320f,0x210f200f,0x210f280f,0x310f270f,0x2b0f320f,0x310f2d0f,0x2c0f2b0f,0x2b0f2d0f,0x270f280f,0x2c0f240f,0x290f2b0f,0x280f250f,0x2a0f240f,0x290f2c0f,0x2a0f230f,0x220f290f,0x240f250f,0x290f230f,0x220f260f,0x230f240f,0x9e0da20f,0xaa0d9d0d,0x3e0f410f,0x450f3e0f,0x3b0f3c0f,0xa90f480f,0x3c0f3e0f,0xa90f3b0f,0x3e0faa0f,0x160d210f,0xae17ae0d,0x1217ac17,0xc0f110d,0x90f090f,0x120f130f,0x150f120f,0x100f140f,0x90f110f,0x140f120f,0xcb0f100f,0xc114a814,0x12171114,0xa40f5f17,0xb814ae14,0x620d8514,0x6c0d120d,0x60166e16,0x96159016,0x6415a515,0x29146114,0x310e9b0f,0xef0e300e,0x4c10f010,0x5215510f,0x41151e15,0xab0faa0f,0xab0f410f,0x8a0f400f,0x3e0f450f,0x4f0f630f,0x8a0f3f0f,0x410f3e0f,0x8a0f3f0f,0x590f410f,0x3f0f630f,0x590f530f,0x3f0f3f0f,0x400f410f,0x400f3f0f,0x530f4a0f,0x4a0f3f0f,0xa90f490f,0x530f480f,0x490f4a0f,0x5e0f560f,0x530f5a0f,0x480f490f,0x5a0f560f,0x750f530f,0x560f9e0f,0x4e0f550f,0x540f750f,0x750f550f,0x750f540f,0x540f560f,0x530f560f,0x480f530f,0x3d0f430f,0x3c0f3b0f,0x3d0f430f,0x3c0f3c0f,0x420f4b0f,0x540f470f,0x3c0f530f,0x470f420f,0x530f470f,0x590f430f,0x260d580d,0x300d260d,0xc60fae0d,0x4f0fc90f,0xae0d260d,0x100fc60f,0x260d590d,0xd417ce0d,0xcb0d1017,0xce17d117,0xcb17cf17,0xce17ce17,0x260d1017,0x4f0fc60d,0xc60d4b0d,0x480d4b0f,0x2617ce0d,0xd20fc60d,0xce17cf17,0xca17d317,0xc917d217,0xd217d317,0xce17d217,0xc60fc617,0x4e0d480f,0xc617d20d,0xc80d4e0f,0xd217c917,0xc60d2c17,0xc817c717,0x4e17d217,0xc70d2c0d,0x2817c817,0x240d250d,0x2c0d240d,0xc817c80d,0x500d4e17,0x5017c80d,0x280d520d,0xc80d240d,0x280d5717,0xc817c80d,0x530d5217,0xb80d530d,0xc817b70f,0xb70d5317,0x570d5417,0x4717c80d,0x540d560d,0xfa0cf80d,0xba0d470c,0x270d2117,0xf80d270d,0x540d470c,0xb717c80d,0x470d2717,0xbb0d540d,0x2717ba17,0xbb17b40d,0x540d2717,0xb817b70d,0xb617bc17,0x2717b917,0xb80d540d,0xbc17b817,0xb817b917,0xb517b917,0x2717b417,0xb017b80d,0x1310b510,0xb0f0a10,0x640f090f,0x3e0d630d,0x4814920d,0x3b0f3b0f,0x8f148d0f,0x91148f14,0x15149014,0x3b149216,0x90148f0f,0xb4161514,0xaf0fad0f,0xb30fb50f,0xac0fb40f,0xb60fb70f,0xb60fac0f,0xb90fb20f,0xbd0fbe0f,0xb90fc10f,0xac0fbd0f,0xb10fb20f,0xb10fac0f,0xc10d400f,0xbb0fbd0f,0xc10fbc0f,0xbb0fbb0f,0x400fac0f,0xf010f10d,0xd810ef10,0xe010d910,0xe010d810,0xef10e410,0xe410d810,0xe410ef10,0xde10e610,0xf110e110,0xde10dd10,0xef10f110,0xe810e610,0xe810ef10,0xed10ea10,0xf110dd10,0xef10f110,0xbe10ea10,0xc010ba10,0xb910b810,0xbe10bd10,0xb810c010,0x780f7710,0x790f790f,0x7a0f760f,0x7f0f7a0f,0x770f700f,0x7a0f790f,0x720f690f,0x5e0f770f,0x6b0f730f,0x770f690f,0x6a0f7a0f,0x6b0f5e0f,0x6a0f6c0f,0x690f6b0f,0x700f7a0f,0x6b0f6c0f,0x650f690f,0x640f660f,0x690f6c0f,0x620f700f,0x640f650f,0x6c0f640f,0x640f700f,0x680f700f,0x620f610f,0x6e0f640f,0x6d0f740f,0x640f610f,0x680f680f,0x6d0f6e0f,0x6510750f,0xfe106410,0xef0eee0c,0x5012480e,0x4d124d12,0x47125212,0x3c0fac12,0xf10f450f,0xa140b13,0x9140a14,0x5c13f314,0x52174f17,0xec10ed17,0x7c10ee10,0x270d5a0d,0x317040d,0x260f6b17,0xfe122712,0xd20fd111,0xd20f9c0f,0xd00fd10f,0xd90fd80f,0xd30f850f,0xd50fd60f,0x511fa0f,0x91120f12,0xd70fda0f,0xd80fd90f,0x9b0fd70f,0xd60f9a0f,0xdc0fdb0f,0xd20f600f,0x9f0fcf0f,0x6d0f610f,0x5b0fdd0f,0xde0f610f,0xdd0fde0f,0xdc0fdc0f,0x6d0fdd0f,0x800fd50f,0x5a0f7e0f,0xe50f5c0f,0xe70fe80f,0x10f860f,0xfd11fb12,0x211fd11,0xd120312,0x70f080f,0xf20e5d0f,0x7a0df90d,0xed0fec0f,0x880fed0f,0xe70f7f0f,0x950fe90f,0xe50fe60f,0xd80fe40f,0xe30ee10e,0xc215d20e,0x7715c115,0x82158315,0x2a10c315,0x2a0fff10,0x2910c310,0xb40ff810,0xfa0ffa10,0x540fef0f,0x470f540f,0xf30ff10f,0xf60ff50f,0xf10f540f,0xf80ff30f,0x540ffa0f,0xf80ff70f,0xf30f540f,0xf40ff60f,0xf70ff40f,0x60f540f,0xf6100510,0xf50ff60f,0x410040f,0x8100910,0x6100710,0x40ff610,0x7100810,0x91179610,0xfc0d920d,0x10c00f,0xffc10,0x6310c110,0xfc0ff00f,0x4f0ff20f,0xff0f630f,0x30ffe0f,0xf2100310,0x630f630f,0xc10ffc0f,0xff0ffd10,0x6310030f,0xfd10c10f,0xb910b20f,0xf910b810,0xb510b30f,0xb50ff910,0xb210b010,0xfb10b810,0xb00ff90f,0x6810b210,0xe20f700f,0xf616f00f,0x1d16fc16,0x2010c710,0x1a100c10,0x98101b10,0x7c167d16,0x80128816,0x2c127f12,0x1c101d10,0xda16d910,0xdb16db16,0xe716dc16,0xe316e716,0xd716d716,0xd916d816,0xdb16d916,0x3916e716,0xf9123012,0x32123111,0x31123612,0x35123612,0x39123412,0xf811f912,0x35123111,0x34123512,0x2f11f912,0x8d17900e,0x7d178d17,0x7e177e17,0xf4177f17,0x2f0df40d,0x50178d0e,0xaf0dab0d,0xc50fa20d,0x240fc30f,0x1f102610,0x10101f10,0xd100d10,0x16101b10,0x17101610,0x19101910,0x11101810,0xf101110,0x1d101d10,0x29102c10,0x23102910,0x29103910,0x3b103910,0x35103010,0x2e102410,0x24103010,0x29101d10,0x1d103b10,0x38103b10,0x24102e10,0x2f101f10,0x1f102e10,0x1d101110,0x11103810,0x32103810,0x2f103610,0x34101f10,0x1f103610,0x32101110,0x19102d10,0x2d101110,0x1f103410,0x31100d10,0xd103410,0x2d101910,0x19103a10,0x37103a10,0xd103110,0x33101610,0x16103110,0x19101610,0x9d103710,0x9b179a17,0xa0179b17,0xa117a117,0x9e179f17,0x9c179e17,0x9d179d17,0xa1179b17,0x39103517,0x95102310,0x92179417,0x93179217,0x98179817,0x96179917,0x97179617,0x95179517,0x98179217,0xc20ec617,0x690ebf0e,0x6f166d16,0x3d103c16,0x4a104910,0x3c104b10,0xea12eb10,0x9812dc12,0xa9119711,0x3f125c11,0x32124212,0x48114911,0x35114811,0x33113411,0x48113211,0x63136211,0x62135f13,0x69135f13,0x6b136a13,0x55136213,0x54105310,0x43105610,0x4b105510,0x78117711,0x33104b11,0x1a103710,0x39141b14,0x50144114,0x54145414,0x43145214,0x86176a14,0x85178517,0x6b178417,0x58106417,0x57105710,0x63106210,0xef14c810,0xf114f114,0xba14d014,0xa0129f14,0xa312a312,0xa2124d12,0x9f12a112,0xdf12a312,0xe611e511,0xe131c11,0x6c12fe13,0x69106a10,0x69106c10,0x6e106d10,0x6b106f10,0x6d106c10,0xc8106e10,0xd410d510,0xd110d410,0xd310d310,0xc810c910,0xec0d0110,0x4f0eed0e,0x4e125013,0xd514cc12,0xdd14dc14,0xd414de14,0xdc14cc14,0xbd14dd14,0x98128e12,0x76107712,0xec106310,0xd412d712,0x27132412,0x26132613,0x37133813,0x29133713,0x28132813,0x26132413,0xe0172813,0xc50dc00d,0x60e710d,0xc017280e,0x60dc50d,0x280e090e,0xd714e217,0xd114ce14,0xe014d814,0xe214e114,0xd114ce14,0xe114e014,0xd216c914,0x6316e916,0x2a0f2c14,0x2614330f,0x4142714,0x26110711,0x29112711,0xfc110411,0xee13fa13,0xd012f113,0x4b12cf12,0x44175617,0x45174417,0x2c172c17,0x46173917,0x4b174617,0x14174417,0x715fa16,0xa511ae16,0xf6118a11,0x110d710,0x82169511,0x39167f16,0x38133713,0x3c133813,0x3a133a13,0x39133b13,0x52165b13,0x3f165116,0x3a133b13,0x37133e13,0x3f133913,0x3d133a13,0x39133e13,0x37133f13,0x7c147b0f,0x9d0f9014,0x7a0fea0f,0x65176f17,0xa810aa17,0xd3109d10,0xdf0ee00e,0x19132e0e,0x2f132f13,0x3c133a13,0x36133c13,0xc3132e13,0xe30dc60d,0x40144f0d,0x44144414,0x4e144d14,0x5a115314,0x88118811,0x8a118911,0x36143b11,0xca141d14,0xba10cb10,0xf814f910,0x17151714,0xfa151615,0xa910a714,0xab10ab10,0xaf10ac10,0xa810af10,0xaa10aa10,0xa710a610,0xab10a710,0xe110af10,0xbf11cb11,0xb60dd711,0x8f0dcf0d,0x9f12a012,0x29122812,0x930f9312,0x2a0f920f,0x1b122012,0x9311fe12,0x20122a0f,0x28120012,0x200f9312,0x11fe12,0x10132112,0xea131213,0x5a0e320e,0xe312cc0e,0xfc12e612,0x43160a15,0x3b164316,0x44164416,0xfc164216,0x88109815,0xd3108c10,0xd214d414,0xd114d214,0xad14ad14,0xd314b614,0x5f107914,0xa5106010,0x3b0e3c0e,0x990e3b0e,0xc00ea00e,0xbe15de14,0xa314be14,0xa414a414,0xc014bb14,0xf213fe14,0x9c13f413,0xf10d9b0d,0x1e10120e,0xb210b210,0xb110b010,0x77177610,0x900e9017,0x750e8b0e,0xe915ec17,0xeb15ea15,0xf315ed15,0xec15f115,0xeb15ea15,0xf115f315,0xb916b615,0xc616c216,0x7b0ec00e,0x700e7b0e,0x40e040e,0xe80e0f0e,0xc60ee80e,0xc30e7b0e,0xc10ffd10,0xc210c110,0xd4102210,0xc10dc70d,0x1a111b0d,0x5f114011,0x56175817,0x57175517,0x5b175b17,0x5e175917,0x5e175b17,0x5f175d17,0x54175617,0x5f176017,0x55175417,0x5d175b17,0x5d175517,0x5c175a17,0x54176017,0x5a175517,0xb5175c17,0xab14af14,0xb414a714,0xb714b314,0xab14b514,0xb314a714,0xd414b714,0x580f6710,0xd811ea0f,0xe811e811,0xe711ec11,0xe911e711,0x5911ea11,0x50165116,0x5c153016,0x5c155d15,0x500df30e,0x8100b0e,0xca100910,0xcf15cb15,0x7a117915,0xb4117011,0x9b119911,0xb611c111,0x3911c511,0x7614780f,0xe513be14,0x3113e613,0x48162816,0xb611c516,0x6911be11,0x3b163a16,0xe10dc316,0x4b0de20d,0xa30da60d,0x1d141c0d,0xfd143614,0xfe10ff10,0xc00f4010,0xd60fc20f,0x1110010,0xf015f211,0xa715f415,0xa0109b10,0xc516c410,0x5216db16,0xf40f500f,0x510f5710,0x6111020f,0x5e115f11,0x54115d11,0x61115511,0x5d115e11,0x48115511,0x99116111,0x87108210,0x2a112c10,0x28112811,0x23112211,0x2c112b11,0xf1112811,0x420f470f,0xe210e10f,0xe110f210,0xf310f210,0x420ff110,0x5010f10f,0xf20f4f0f,0xf10ff20f,0xf110f10f,0xf310e110,0x5010f410,0xf20ff20f,0xf310f10f,0x1b0f1e10,0x1d0f1c0f,0x1e0f150f,0x51144a0f,0x49144914,0x4d144e14,0x4210f114,0x610f4b0f,0x580d260d,0xf210f70d,0xc310f810,0xaf11e111,0xb011af11,0xb211b111,0xa911a811,0xac11a911,0xb511ae11,0xc111b611,0xb511ae11,0xc311c111,0xb111af11,0xc311c211,0xa911b111,0xc111ae11,0xc111a911,0xc211bc11,0xb211b111,0xbc11a911,0xbd11bd11,0xb211c211,0xc20dd211,0x660d460d,0x8b146b14,0xee11e914,0xeb11eb11,0xea11e011,0x72167311,0x70167016,0x77166e16,0x77167016,0x7a167816,0x70167316,0x78167016,0x1a167916,0x290e0c0e,0x6f117317,0xc119511,0xed13ef14,0x4d164f13,0x8b164b16,0x60118d11,0x7e0d1c11,0xf20d7b0d,0x310e210,0xf210f811,0x110310,0xfd10ff11,0x110da10,0xe3110011,0xda10db10,0xe510e710,0xeb10e310,0xe710e910,0xec10ee10,0x610eb10,0xee10df11,0x6110510,0xda10ee11,0xfd110010,0xf810fa10,0xfd110310,0x310fa10,0xee110511,0x410eb10,0xeb110511,0xfd10da10,0xda110310,0x7110310,0xeb110411,0xda10e710,0x4110710,0xe7110411,0xbf10e310,0xb30db20d,0xef0cfc0d,0x240ef10e,0x32142514,0xe814e614,0xe714e714,0xe314e514,0xe414e314,0x2a14e614,0xe110f11,0x7d116a11,0xcc117e11,0xd210cb10,0xd110d210,0xd410d410,0x210f510,0xf310f411,0xf410f710,0xf910f710,0xf4110210,0x210f910,0xfb10f911,0xc810d510,0xf610d010,0xd510dc10,0xf610d710,0xd510d510,0xcf10d010,0xcf10d510,0xd610ce10,0xd510d710,0xd510d610,0xd610ce10,0xcd10ce10,0xd610fe10,0xfe10cd10,0xcc10cd10,0xfb110210,0xfe10fc10,0xd210cc10,0x210d410,0xfe10fc11,0xd410d210,0xcb14a810,0x6614b614,0x8c148a14,0xdb10e014,0x1a10e310,0x64156215,0x45124015,0x28124a12,0x4f154d15,0xc216df15,0xd716d716,0xe516e316,0xde16e516,0x2e16df16,0xf111011,0x2c110f11,0xef112d11,0xc714c814,0xf414c714,0xf314ea14,0xc714ef14,0x2b112c14,0x3c113311,0x19113d11,0xc911c811,0xbf11bf11,0xca11cb11,0x430e3a11,0x1c0ea60e,0x42111b11,0xa014a311,0x440f4414,0xa10f460f,0xae14a214,0x4414a414,0xa214a10f,0xa414a214,0x2b14a314,0x31112311,0x76115611,0x18117711,0x3a112f11,0x2c112d11,0x7b113511,0x74167516,0x73167416,0xaa167a16,0x8615a915,0x88158615,0x4415a315,0x4d114311,0x4c114d11,0x84114511,0x69156a15,0x6e136d15,0x5c135a13,0x6b136213,0x6d136c13,0x5c135a13,0x6c136b13,0x53113a13,0x52115211,0x3b113c11,0xee13e511,0x8513fa13,0x46156915,0x50134115,0x5b134913,0x45144614,0xd013cf14,0x5113bd13,0x3f115011,0x3d113e11,0xed115111,0xeb10ea10,0xef17e910,0x7317ee17,0x93177417,0x5e0e930e,0xae17720e,0xca15bf15,0xca15ae15,0xac15c515,0xae15ab15,0xb415b315,0xb115ac15,0xb315b215,0xaf15ad15,0xc215b115,0xad15c415,0xc215c115,0xad15ad15,0xb315b115,0xac15b315,0xb315ae15,0xc515ae15,0xad15c115,0x8715b315,0x6c154615,0x7a147d15,0x67147114,0x65106610,0x69106810,0x4f106710,0xb80fc90d,0x5911540f,0x1b115a11,0x34131c13,0x5c115b13,0x60116011,0x63116211,0x51116311,0x52115211,0x5b115311,0x60115b11,0x7e116311,0x94129312,0x58129412,0x57125712,0x7e127b12,0x97169812,0x4d167e16,0x42114311,0x9a0d8d11,0x360d2d0d,0x48113511,0x1c0e2411,0x330e550e,0x25143214,0xe214e414,0x59150114,0x88118711,0xc911c011,0xc711c811,0xc011c611,0x4f105011,0xc5105210,0xd616c616,0x95119416,0xa9116f11,0xa617a517,0x200f2117,0x570f1c0f,0x4a145114,0x4b144a14,0x55145314,0x57165616,0x50165716,0x4f164f16,0x55164c16,0x9d0fd016,0x9e0f9f0f,0x85118611,0x84118511,0x83118311,0x81118211,0x7f118011,0x83117e11,0x80118111,0x85119e11,0x9c118311,0x83119e11,0x7b117c11,0x7a117a11,0x78117911,0x77117811,0x7a119d11,0x9d117811,0x7c117d11,0x9c117a11,0x80118311,0x9c119a11,0x7a118011,0x9b119d11,0x7a117d11,0x9a119b11,0x7e118011,0x9b117d11,0x99119911,0x7e119a11,0x88118911,0x87118711,0xa0118611,0x8a11a011,0xa5118911,0x8c118e11,0x8d118c11,0x8b118b11,0xa5118a11,0x52155311,0x51155115,0x70155015,0x70155115,0x54157415,0x51155315,0x56155815,0x54155515,0x74155115,0x74155415,0x57157615,0x55155815,0x54155515,0x57157615,0x76155515,0x57155915,0x59157615,0x66157615,0x59155a15,0x5a156615,0x68156615,0x5c155d15,0x5b155b15,0x68155a15,0x68155b15,0x5e156b15,0x5b155d15,0x5b155e15,0x5e156b15,0x67156b15,0x5e155f15,0x5f156715,0x77156715,0x61156315,0x60156015,0x77155f15,0x60156315,0x64157715,0x63156215,0x3e153f15,0x43156515,0x41154215,0x44154515,0x6c154315,0x45154615,0x6c156f15,0x45154515,0x41154315,0x45156f15,0x71154115,0x41156f15,0x41157115,0x72154015,0x40157115,0x77156315,0x63157515,0x73157515,0x63156415,0x72157315,0x3f154015,0x64156515,0x73157315,0x3f157215,0x77119f15,0x76117611,0xa2117511,0x9611a311,0xa2119511,0x9511a311,0x94119511,0x92119311,0x90119111,0x8e118f11,0x90119711,0x97118f11,0x9f11a111,0xa1117611,0xa2117611,0x97119011,0x92119811,0x98119011,0x92119311,0x93119811,0xa7119811,0xa211a111,0xa4119511,0x9511a111,0x93119511,0xa611a711,0x9511a411,0x94149511,0x1b161b14,0x23162216,0x21162316,0x8e149516,0x8c128f12,0x47112112,0x7c113011,0x260e150e,0x940e260e,0x550e950e,0x35104310,0x3d0e4710,0x820ea20e,0xa013a113,0x8413a013,0x10138313,0x600d650d,0x4316650d,0x74164116,0x6d107f10,0x86158810,0x7f157f15,0x74157615,0x7f0d8215,0xf0d250d,0xff0f070f,0x10f030e,0xf040f,0xff0f0f0f,0x40f030e,0xf020f,0x30eff0f,0xfe0efc0f,0x5d0efd0e,0xfd0efc0d,0xfb0ef80e,0xfa0efa0e,0xfd0d5d0e,0xf80ef60e,0xe90efa0e,0xf70e5a0e,0xf60ef70e,0xf70efa0e,0xfd0efa0e,0xe90eeb0e,0xed0ef70e,0xeb0eec0e,0xee0eef0e,0xf30eed0e,0xf40ef90e,0xed0eef0e,0xf50eeb0e,0xf40ef30e,0xef0ef40e,0xeb0eeb0e,0xfd0ef70e,0xfd0eeb0e,0xf50f000e,0xeb0ef40e,0xf50f050e,0xeb0eeb0e,0x30f000e,0x20f030f,0x350ef20f,0x9a0d2d0d,0x30eeb0d,0x350ef20f,0x990d9a0d,0xf20eeb0d,0x50d350e,0x350eeb0f,0x990d350d,0x410d420d,0x350f050d,0xb611be0d,0xb711b711,0xb911b811,0xba11b911,0xbb11bb11,0xb411b311,0xaa11ab11,0xad11ad11,0xbf11af11,0xad11ab11,0xbe11bf11,0xb911b711,0xbe11c011,0xb411b911,0xbf11ab11,0xc011c911,0xb411b911,0xc911bf11,0xb911c911,0x2011bb11,0xc610c710,0x2f173c10,0x12173217,0x4131013,0x92179713,0x550d9e0d,0x2e103010,0xc016b810,0xb216bf16,0xb414b314,0xb114b214,0xb014b014,0xb314ad14,0x9a0f8014,0xc40fd70f,0xe70eb60e,0xe20ee70e,0xe40ee40e,0xd10ed90e,0xc40ed10e,0x910ee70e,0xcc0ebd0e,0xb50ecc0e,0x2d0e2d0e,0x880e1d0e,0xcc0e910e,0x550e2d0e,0x24155615,0x3d115115,0x88113c11,0x84178317,0x85178417,0x20e0217,0x880e100e,0x1e121f17,0x31123112,0x22121a12,0x21122212,0x95121f12,0x97129812,0x96129712,0x4f124f12,0x95125912,0x770f3412,0x74147414,0x76147d14,0x78147614,0x7c147c14,0x75147b14,0x79147514,0x340f3414,0x7614740f,0x7c147614,0x9b147514,0x79167a16,0x43124416,0x9a124812,0x7d0d8f17,0x4410450d,0x54105810,0x37113811,0x36113711,0x7b115511,0x60107a10,0xdd10de10,0x9410ee10,0x82168416,0xaf14ab16,0xae14ae14,0xac14a214,0x8110314,0x25112411,0x7112611,0x24110311,0xb3112511,0x9a11bb11,0x99119a11,0xc011b411,0xfb0ffc10,0x7912780f,0xce125512,0x780f730f,0xe913e70f,0xa313c413,0xc516b716,0x30173d16,0xee173117,0xec14ed14,0xea14ec14,0x3814eb14,0x61156015,0x88179e15,0x840da80d,0x5d118511,0x37132a11,0x3e133e13,0x21132c13,0x2a132b13,0x73133e13,0x140d110d,0x5c0d5b0d,0xc60d5d0d,0xa613c713,0x7130913,0xf130d13,0xf4131313,0xd130912,0x4b130f13,0xb10e4d0e,0x770f780e,0xf90fcc0f,0x2d122b11,0x8911f112,0xf90f8d0f,0xf1122d11,0xf511f311,0x6311f411,0x8f11f212,0xf411f30f,0x89126311,0xf311f10f,0x8f126311,0xf20f890f,0x65126411,0x8c11f612,0xf20f8f0f,0xf6126511,0x50124e11,0x49124812,0x4b125d12,0x48124e12,0x59124912,0x4e124f12,0x57125512,0x56125812,0x5b125412,0x52124712,0xf5125612,0x47125c11,0xf4125a12,0x5311f511,0x5a125112,0x4c124b12,0x4e125312,0x4b124912,0x4e125912,0x5a124b12,0x4711f512,0x56124712,0x5a125b12,0x5b124712,0x4b125912,0x58125312,0x53125912,0x5a125312,0x55125b12,0x53125812,0xa410a612,0xbc109b10,0xc411c111,0xe511e611,0xb711bc11,0xa011b611,0x8611a011,0x9f11b811,0xde14c414,0xc015de15,0xc514c514,0x9f149e14,0x1c121814,0x1b121b12,0x1d122012,0x19121d12,0xf8121812,0x8d11f911,0x8c0f8d0f,0xf711f60f,0xfa120511,0xf60f8d11,0xf711f711,0xf811fa11,0x59129511,0x30125812,0x49114a11,0x32114911,0x11113111,0x12121412,0x4f114012,0x4e114e11,0x41114211,0x8140911,0x2f13f514,0x8b0d310d,0xe00fdf0d,0x250f6e0f,0x1b122612,0xe10fe012,0x9b0f740f,0xc6149d14,0x19121814,0x16121712,0x13121112,0x17121812,0xaf121612,0x9e10ae10,0x3a163810,0xb164c16,0xfb11fd12,0xd122711,0x7011ff12,0xe10f740f,0x5a10590f,0x61105f10,0x59106210,0x67146b10,0x4e148914,0x96124f12,0xaf14ae12,0x514b514,0xf410b710,0xfc15fb0f,0x43164215,0x920f480f,0x93149214,0x98149914,0x920f4314,0x9170a14,0x22170817,0x3f153e15,0x82147015,0x98148314,0x91139213,0x7f169613,0xc3167e16,0xd916c416,0x77147416,0xd90f2e14,0xb60db90d,0x5911870d,0xcd115411,0xc112c312,0xe512c112,0xe412e412,0xcc12e312,0xcd12cc12,0x9d12c112,0x82127f12,0xc415de12,0x4415e014,0x3b124212,0x3f123e12,0x3d124512,0x45123e12,0x3b124412,0x43123a12,0x3a124412,0x45123d12,0x46124012,0x3a124312,0x40123d12,0x46124612,0x3c123a12,0x3100212,0x970ffe10,0x320d930d,0x1515160d,0xee14fb15,0xec0fed0f,0x970f980f,0xe817070f,0xe90fea0f,0xe30fe60f,0x9e0f530f,0x8a139d13,0x8a139e13,0x88138913,0x9e138713,0x30f0113,0x1b0d090f,0x22172017,0x22171b17,0x1f172117,0x1d171e17,0x1b171c17,0x21172117,0x1d171f17,0x62126117,0xf2126412,0x60126311,0x5e125f12,0xf2126112,0x5f126011,0x61125f12,0x37126412,0x640d900d,0xba0d380d,0xb90fb90f,0x1d0fc10f,0x1d0fb90d,0xe517e30d,0xb90d3817,0xe517e40f,0xe40fb917,0xe30fb917,0xe80d3917,0xe917e917,0xe317e417,0xe317e917,0x3a17e717,0xe90d390d,0xfb0d2317,0xeb0d3a0c,0x2317ea17,0xe717e90d,0x2317eb17,0xe90d3a0d,0xfa0fef17,0xfb0ff90f,0xf00ffc0f,0xf90fef0f,0xb0ffb0f,0xd170e17,0x17171a17,0x2d0f6c17,0x66122c12,0x68126612,0x69126712,0xf111f312,0x67126611,0x69126912,0x2d11f112,0x1e0e2e12,0x1d0e1d0e,0xf0e2d0e,0x40e0f0e,0x140e0e0e,0x1d0e2e0e,0xe0e0f0e,0x600e140e,0xf4126312,0x49153111,0xd4154a15,0xc914d314,0xc214c914,0xbd14bd14,0xd014ba14,0xd014bd14,0xd414cd14,0xbd14c914,0xcd14bd14,0x9914cc14,0x11149a14,0x3f161116,0xa00f440f,0x11149914,0xba16a016,0x4516be16,0x680d660d,0x8a158b0d,0xbd155015,0xa90faa0f,0x15010f,0x12151215,0x3151115,0x1150215,0xcc151215,0xa616bd16,0x95161016,0x20162114,0x1b162216,0x1b162016,0x94149416,0xb0149614,0x1d161c14,0x94161e16,0x1c14b014,0xac161716,0x1a14a214,0x16161816,0x17161616,0x2014a216,0x1c149416,0x1e161c16,0x2014b116,0xb1161c16,0x20162114,0x2114b116,0xb214b116,0xa2161614,0xaa14a114,0x16161a14,0xaa14a516,0x10161614,0xb2162116,0xb2161014,0xa514a614,0xa1161614,0xa6161014,0x2914a514,0x6f122812,0x76126f12,0x77127712,0x29127512,0x78137a12,0x7a137913,0x64137913,0x66136513,0x7b135b13,0x64137a13,0x65136413,0x31135b13,0x33121e12,0x83127b12,0x79127912,0x87127812,0x7a128412,0x82128612,0x80127f12,0x84128712,0x82128612,0x81128012,0x86128712,0x7c128212,0x7b127d12,0x82128712,0x7c128112,0x79127b12,0x87127912,0x12128112,0x18140e14,0x3b166714,0x39164316,0x3a163b16,0x700d9316,0xa40d1e0d,0x5612a512,0xe916d312,0xe816e816,0xcb16d516,0xd316d416,0x416e816,0xf70cf30d,0x5a0ef70e,0x320e320e,0x580e2c0e,0xf70d040e,0x920e320e,0x8b127e12,0x89128b12,0x8b128a12,0x88128a12,0x92129012,0x9c128b12,0x99128512,0x8b129012,0x9c128812,0x90129912,0x9b129a12,0x90129c12,0x9d128812,0x9a129d12,0xbb129c12,0x490fa90f,0xfa0ff90f,0x1a10b40f,0x600f1f0f,0x27146014,0x1b0f210f,0x180f1e0f,0x2114600f,0x1b0f1b0f,0x1a0f180f,0x3d164a0f,0xa4163c16,0xbd15ad15,0xbe15bd15,0xa8159a15,0xa711b211,0x41164011,0x41160416,0xa164316,0xfd165016,0xf815f815,0x4d164e15,0x4f164d16,0x79165016,0x72117411,0xa012a311,0xaa12aa12,0xac12ab12,0xa412ac12,0xf012a312,0xe811ec11,0xd611e811,0xb011db11,0x9e12b112,0xa512a612,0xb012af12,0xa6129e12,0x8f12a712,0xa9128e12,0x8f12a012,0x2b164912,0x4b162e16,0x4e104c10,0x4a165d10,0xbc165216,0xc212c012,0xbe12c212,0xb412bd12,0xc512c312,0xb612c512,0xbe12b512,0xc612c412,0xa812c612,0xc712a712,0xb712c812,0xb612b712,0xb712c512,0xc912c812,0xb912c912,0xa512b812,0xb115a615,0xbf12cb15,0xbb12bb12,0xca12ba12,0x16140e12,0xb0141a14,0xa215ae15,0x21131015,0xa7131d13,0xb115b215,0xdd15dc15,0xdc149f15,0x9e149f15,0xc415e514,0xe415dc14,0xdc15e515,0xe415e615,0xbe15dc15,0xe315e114,0xdc15e615,0xa3149e15,0xe314be14,0x9e15e615,0xa0149d14,0xe314a314,0xe314a015,0x9915e615,0xe614a014,0xe6149915,0xc3149d15,0x98149714,0x2170114,0xfe16fe17,0x9814c316,0x99149814,0x9b149d14,0xff149c14,0x9d149816,0x1149b14,0x9816fe17,0xbc170014,0x9b170114,0x16ff14,0x1170017,0x25149817,0x56152415,0xd512d415,0xc612c612,0xc212c412,0xc012c212,0xd312d212,0xc612d412,0xd212c212,0x8512d312,0x81168316,0x80168116,0x82167f16,0x85168416,0x7f168116,0xa8168216,0x86159215,0x81178315,0x65176517,0x62176317,0x86118517,0xa5115411,0xb916bc16,0xb916a516,0x9c16ab16,0xa216a316,0xa2169c16,0x9a16a516,0x9c169b16,0x99169816,0x96169a16,0x98169716,0x9516b016,0xae169616,0x9616b016,0x9c169a16,0x9a16a516,0xab16a516,0xae16a716,0xa6169616,0x9616a716,0x9a169816,0x9816ab16,0xaf16ab16,0x9616a616,0x9f169816,0x9816a616,0xaf169816,0xb316b216,0xb816b616,0xb2169816,0x9e16b316,0x98169f16,0xb816b316,0x88169e16,0x160e1017,0xe212e00e,0xb012b012,0xdf12af12,0xe212b012,0xe412e412,0xb112b212,0xd612d512,0xa912a912,0xc612a812,0xe512b212,0xc112c112,0xb312b412,0xd612a912,0xd812d812,0xaa12ab12,0xda12ab12,0xdb12db12,0xac12ad12,0x150f1e12,0xdd0f120f,0xae12df12,0xad12ae12,0x6c12db12,0xed0e610e,0x1410b60d,0x85101610,0xa0138413,0x380e2213,0xf30e9d0e,0xcd12ce12,0x28131e12,0xe4132913,0xc211e311,0xbd11c211,0xf011e511,0xd012d112,0x51115012,0x65116511,0x69116611,0x4f116911,0x5115011,0x13161216,0xe710e816,0x910e910,0x24163216,0x50f6916,0xd4170617,0xd50ed70e,0xd20ed50e,0xd10ed00e,0xda0ed90e,0xdb0eda0e,0xd10ed80e,0xd80eda0e,0xd50ed40e,0xd30ed00e,0xd00ed40e,0xd80ed10e,0xd60ed60e,0xd00ed30e,0x5e0f230e,0x146214,0xc2102810,0xc0f0d10,0xd0f110f,0x140f110f,0x80f090f,0x150f0d0f,0x90f130f,0x140f0d0f,0x6b0f150f,0x76166a16,0x75167616,0x7c167b16,0x6b167d16,0x7b167616,0xff167c16,0xec0eeb0c,0x6e158b0e,0xe3156d15,0xba13e413,0x24145f13,0x720f270f,0x5d105c10,0x70105d10,0x3d107110,0x3e163f16,0x8e119716,0xc011ac11,0xb616b816,0xb6101416,0x380ff810,0x22132613,0x30132513,0x38133c13,0x25132213,0x57152a13,0xa155915,0x12130c13,0xe9130813,0xa12ea12,0x8131213,0x8130a13,0xea12ea13,0xec12eb12,0xed12ec12,0xee12ee12,0xf4130912,0x1312fd12,0xee131513,0xfd12f412,0xa12f712,0xf612ea13,0xea12f712,0xee12ec12,0xfd12fd12,0xff131512,0xfd12ec12,0xf612ff12,0xec12ea12,0xf612fa12,0xec12ec12,0x112ff12,0x140113,0xcb13f414,0xbe16bb16,0xba16be16,0x9316c916,0x98139213,0x97139813,0xc7139413,0xd216d116,0x4a174916,0xfe175717,0x12151314,0x151215,0x7a14ff15,0x820f760f,0x7a0f810f,0xa50f820f,0x810f8e0f,0x260f2b0f,0xa60fa60f,0x810fa50f,0x810fa60f,0x640f820f,0xa60f2b14,0x8c0f8f0f,0xa80fa80f,0xa614640f,0x820fa60f,0x790f840f,0x730f780f,0xa60fa80f,0x790f840f,0x5e0f730f,0xa80f8f0f,0x840f840f,0x5e0f790f,0x960f5e0f,0x870f830f,0xa10f970f,0x5e0f840f,0x940f830f,0x8f0f6f0f,0x900f9d0f,0xa40f940f,0x9f0fa20f,0x9d0f9f0f,0x840f940f,0x870f830f,0xa10f870f,0x840fa30f,0xa30f870f,0x940f9f0f,0xa40f8f0f,0x8f0f9f0f,0x840f8f0f,0xa70fa30f,0x8f0fa40f,0x510d6f0f,0x290d4c0d,0xff160216,0xde16c015,0xba16e516,0xcc10cb10,0x860cfb10,0x230d9c0d,0x31142414,0xd911d514,0xeb11eb11,0xed11ee11,0xdf0dbd11,0xbd0dd00d,0xcd16cc16,0x1a0d1816,0x720d720d,0x140d710d,0x140d720d,0x180d150d,0x150d720d,0x150d180d,0xb50dd50d,0xd50d180d,0xd40dd60d,0xe60dd30d,0xd50db50d,0xd60dd50d,0xd50dd30d,0xd20dd30d,0xe50de70d,0xd50de60d,0xdf0dd20d,0xe70db20d,0xb20de60d,0xd50de60d,0xe80dd70d,0xd80dd80d,0xd50db20d,0xdd0ddf0d,0xdf0dda0d,0xdc0dda0d,0x280de00d,0xdf172717,0xe00ddc0d,0xe00ddf0d,0xdf17270d,0xe217270d,0xe20ddf0d,0xdf0de10d,0xe30de10d,0xdf0dd50d,0xe40de30d,0xeb0dde0d,0xe30dd50d,0xd90de40d,0xd80dd70d,0xd50dd80d,0xe40de40d,0xdb0deb0d,0xd90ddb0d,0x1a0dd80d,0x3e111911,0xd116d211,0xd016c816,0xe116cf16,0xc816d216,0xe116d016,0xd216e016,0xdf13dd16,0x2c13ae13,0x3d133e13,0x35133d13,0x68132d13,0x64116711,0x48116411,0x4a114911,0x72114b11,0x64116811,0x4a114911,0x74117211,0x68116a11,0x70114911,0x6b116e11,0x6a116b11,0x49114911,0x74114a11,0x70117411,0x45116b11,0x42134313,0x97134613,0x45128d12,0x46134213,0x44134713,0x41134113,0x46134513,0x8d134613,0x9f128c12,0x4012a112,0x46134113,0x8c128c13,0x40129f12,0x47134013,0xfd134113,0x50efe0e,0x96134a0d,0x4a134812,0x51134813,0x4f134c13,0x4d134a13,0xa2135213,0x50134912,0x4d134e13,0x4c12a213,0x49134b13,0x4e134e13,0x4c134d13,0x51134a13,0x4b134b13,0x4c134e13,0xfb16ed13,0xfa16f416,0xfb15f916,0x87128415,0xac125b12,0xa315aa15,0x82108b15,0xf6109910,0x213f813,0x4f114e14,0x6c116c11,0x6f116d11,0x73116f11,0x57117111,0x56115811,0x4b115611,0x57114c11,0x4c115611,0x57117111,0x71114c11,0x4d114c11,0x6c114e11,0x6f116f11,0x4d117111,0x5d153511,0x77155e15,0x61106210,0xa2115710,0xe1117511,0x14ff14,0x80117f15,0x83116411,0x67157715,0xc714b915,0x4c14bb14,0x59174e17,0xfb14de17,0x7b14fc14,0x13135b13,0x24121312,0x5e137a12,0x5d135f13,0x5c135d13,0x4120413,0x5e120d12,0xde10e113,0xa410df10,0xaf15a515,0x53175f15,0x21174c17,0x55155415,0xe316e615,0xe816e716,0xd216e916,0xe016d216,0xea16ea16,0xe716e616,0xd216e816,0x2116ea16,0x46111f11,0x27142811,0x6140614,0x21140814,0xe014df14,0xd814d814,0xd414d914,0xdf14de14,0xf414d814,0xf50cf00c,0x9412b70e,0xc9129312,0xbd10be10,0x72137010,0x71137113,0x6e136f13,0x6d136e13,0x16137013,0x1d140d14,0x1d141614,0x1b141c14,0x16141a14,0xb1100d14,0x49101310,0x57145114,0x56145714,0x59145914,0x49144c14,0xdb14da14,0xef14d014,0xee14ed14,0xee14ef14,0xda14f014,0xf114d014,0xef14f114,0x8014f014,0x73157215,0x71107c15,0x5e107010,0x240f2314,0xea14e80f,0xf414f414,0xb714b514,0xe314b714,0xf214f214,0xf414e814,0x7e107f14,0xf106e10,0x7e120c12,0x23137e13,0x3a121012,0x78147c0f,0x214e414,0x79150315,0x92137613,0xe20ece13,0xdf0ee70e,0xfd14fc14,0x1d131c14,0xeb132d13,0xed0dea0d,0x610ded0d,0xec0dec0e,0xdb0dbc0d,0xed0deb0d,0xf00dec0d,0xa14ee14,0x90137415,0x65139113,0x7f136413,0xb14f013,0xdb14f515,0xf614da14,0xdb14dc14,0xde14f814,0xea0de90d,0x87146d0d,0x88148814,0x67148914,0x8b139c14,0x8b138a13,0x9b139c13,0x8d139b13,0xce138c13,0xbc10cf10,0x13131510,0x82132213,0x9b128612,0x82118112,0x4116111,0x11150315,0x10151115,0x9f150515,0x880d8417,0x1410150d,0xf70ff710,0xb70ff40f,0x13100c10,0xb510b510,0xb410b310,0xf810b410,0x1a10b60f,0xb5100c10,0xb610b410,0x73101a10,0xa8146814,0x380fa80f,0x710f300f,0x630f2c14,0x300fa814,0x7314710f,0x710fa814,0x63147114,0xb7147214,0xbc13b813,0x9a13ba13,0xb7139b13,0xba13bc13,0xb213ae13,0xb713b513,0x9b13ba13,0x9b13b713,0xad139c13,0xb513ae13,0xb713b513,0xb5139c13,0x9d139c13,0xad13ac13,0xa813b513,0xab13a913,0xb513ac13,0xac139d13,0x9e139d13,0xac13ab13,0xa8139e13,0x9e13ab13,0xa813aa13,0xaa139e13,0x9f139e13,0xb013b113,0xaf13af13,0x9f13aa13,0x9f13af13,0xb313a013,0xaf13b113,0xaf13b313,0xb413a013,0xa013b313,0xb913bd13,0xb613b613,0xa013b413,0xa013b613,0xc213a113,0xbf13c113,0xa413c313,0xa713c213,0xa213a613,0xc313a213,0x9813c213,0xa713a313,0x98139713,0xbd13a713,0xa113b613,0xbd13bb13,0xbf13a113,0xa113bb13,0xa113bf13,0x97139613,0xa213a713,0xbf13c213,0x96139613,0xa2139713,0xb80ec713,0x100eb60e,0x62170f17,0xda13d90f,0xfc13a913,0x870df60d,0x82178017,0xcb0dfc17,0xa413c213,0x150f1313,0x360f1d0f,0x820e120e,0xa70d4d0e,0xe70da50d,0xa513c513,0x7e116813,0x36117f11,0x3a143b14,0x37143a14,0x3c143c14,0x2e142c14,0x31142e14,0x2e144114,0x43144114,0x3c143a14,0x35142e14,0x3a143614,0x39143814,0x45143514,0x38144614,0x38144514,0x3a143514,0x43142e14,0x43143a14,0x45144714,0x3a143514,0x47143a14,0x1143f14,0xbf14bc17,0xe212e414,0xe012e012,0xde12df12,0xe312e112,0xe012e412,0xe112de12,0x6120212,0x5120512,0x311f712,0xe150912,0xc150c15,0xa150b15,0x1d156315,0xd3153a15,0xb313d413,0xd313d213,0xe13b413,0xa100b10,0xc6100a10,0xf010c710,0xcd13ce13,0xcc13cd13,0xcb13cb13,0xc913ca13,0xc713c813,0xc913c613,0xc613c813,0xc913cb13,0xf013c613,0xcb13cd13,0xf013f213,0xe913cb13,0xe813e713,0xe613e813,0xe813e513,0xf813e513,0xe813e913,0xe913f813,0xf613f813,0xe913ea13,0xf413f613,0xcb13f213,0xf613ea13,0xf413f413,0xc613cb13,0x1e141f13,0xdb141114,0xe60eda0e,0xd713d50e,0x7813af13,0x68156b15,0xce140715,0xca13f013,0xa70fc80f,0x6317690f,0x5f0e5f0e,0x6817670e,0x5e153217,0xe4155f15,0xe510e310,0xa8149610,0xa914a914,0xb014ad14,0xa0e1214,0x70e070e,0x7a0e750e,0x820e7a0e,0x6b0e120e,0x630e7417,0x690e630e,0x74176a17,0x8b177517,0xd113d20e,0xcf13d013,0xeb13ce13,0xd413d613,0xd713d313,0xd613d513,0xd913da13,0xdb13d813,0xd813da13,0xdd13df13,0xd013dc13,0xeb13cf13,0xeb13d013,0xde13ed13,0xdc13df13,0xdc13de13,0xd213db13,0xed13d013,0xed13d213,0xd313ef13,0xef13d213,0xd313d613,0xd613ef13,0xf113ef13,0xf113d613,0xd713f313,0xf313d613,0xd713d813,0xe313f313,0xe113e213,0xe513ee13,0xdb13e413,0xf313d813,0xf313db13,0xee13f513,0xe313e413,0xee13ec13,0xec13e313,0xe113e313,0xec13f913,0xf913e113,0xe013e113,0xf513db13,0xf713f713,0xe013f913,0xdb13de13,0x2913f713,0x3f162a16,0x40163f16,0xdd160216,0xe116e516,0xcf16e116,0xce16cc16,0xe116dd16,0xf913ec16,0x8f13fd13,0xa1108610,0x97159c10,0x8d158d15,0x9d159e15,0x93158d15,0xd7159f15,0xd217cf17,0xa1159517,0xa015a015,0x93159f15,0x23141415,0x22142214,0xf141914,0x9b0ef114,0x420d940d,0x3c154315,0x9b159915,0xc15b815,0x730dfb0e,0x36172a0e,0xc174217,0x2a0e730e,0x29174217,0x300e0c17,0x37123912,0x36123812,0x38123212,0x33123212,0x1e123312,0x2e122e12,0x1f122f12,0x1f122e12,0x38122112,0x2e123312,0x38123712,0x30122e12,0x2e123712,0xf9122b12,0x1d123011,0x2a122012,0x57135612,0x53135313,0x2a121d13,0x2e123012,0x30122112,0x14122112,0x53135612,0x55122a13,0x56121713,0x54121613,0x11135513,0x55121612,0x56135513,0x2b122a13,0x14123012,0x11121412,0x55135512,0x2b122a13,0x35147e12,0x220f340f,0x1e112011,0x1f111e11,0x21112111,0x22112311,0x4a174711,0x4e175117,0x47174617,0x4d0f4e17,0x4b0f4c0f,0x710f3c0f,0x4c0f4e0f,0x750f4b0f,0x4b0f4e0f,0x850f800f,0x7b0f7b0f,0x9e0f560f,0x9e0f7b0f,0x7e0f7c0f,0x7b0f800f,0x4b0f750f,0x7b0f710f,0x7d0f7c0f,0x750f7d0f,0x7e0f710f,0x7d0f7b0f,0x970d980f,0x9b0d340d,0x6d0d7d17,0x5e17720d,0x790e790e,0x70176f0e,0x72177117,0xb90e7917,0x1e10b210,0xce11cc10,0xcf11cf11,0xd111d011,0xd211d111,0xd311d311,0xd911da11,0xd911d311,0xdc11d511,0xcc11cd11,0xdf11d411,0xe011dc11,0xd411d711,0xe011dd11,0xd111d411,0xd511d311,0xd511d111,0xdd11de11,0xdc11d411,0xdd11d811,0xd111dc11,0xdb11de11,0xd111cf11,0xd811db11,0xcc11dc11,0xdb11cf11,0xd611d611,0xcc11d811,0x9815a111,0xe415b715,0xc60de30d,0xa315ab0d,0x7015a215,0x8a155015,0x88158915,0x70157415,0x89158a15,0xad0d5315,0x220daa0d,0x3c142c14,0x3d143c14,0x9c141914,0xb5159d15,0x9e159d15,0x6f15b615,0x770e900e,0x770e6f17,0x6e176d17,0x6f176417,0x50e070e,0xe60e720e,0xcd11c411,0x7b169a11,0x2a167a16,0x21142814,0xcc15bf14,0xd115cb15,0xc515c115,0xcf15c515,0x9b15d015,0xb9159c15,0x8a11b515,0xc311a011,0xcc15d415,0xd315cb15,0xcd15cd15,0xcf15d015,0x7100615,0xa0101810,0xba15a115,0x47154615,0xb8153315,0x9e118611,0xc20f4a11,0x290fbf0f,0x20142114,0x2d142014,0x38142b14,0x2e173b17,0x1412f517,0xfe12f913,0xfb130e12,0x10130212,0x312fe13,0xd131113,0xd130313,0x7130513,0xee130913,0xef12ee12,0xf012f012,0xf212f112,0xf312f212,0xe712e712,0xe812e612,0xe912e812,0xe8130812,0x6130812,0xf012ee13,0x512f212,0xee130713,0xee130512,0xe812f212,0x4130612,0x412e813,0x3130213,0xf2130513,0x3130012,0xe712f213,0x212e812,0x212e713,0xfc12fe13,0xf2130012,0xfc12f912,0xe712f212,0xfb12fe12,0xfb12e712,0xf912f812,0xe712f212,0xf812e712,0xdb12f512,0xc615c715,0xc015c615,0xca15d815,0xc214c114,0x73107514,0xef106810,0xd112d212,0x5a145b12,0x58145814,0x57145614,0xe136e14,0xa120a12,0x5c120412,0x6e135a13,0x7a120a13,0x31147d14,0x430eac0f,0x260e030e,0x5e122512,0xd135e13,0xc122712,0xe2110b11,0x5110610,0xc110d11,0x610e211,0x87178611,0xf60df617,0x217910d,0x850e020e,0xce178617,0xbb13cf13,0x8b178e13,0x8c178c17,0x7a177817,0x81177a17,0x180e1817,0x8c178e0e,0x360d8c17,0x650d420d,0x75122912,0x76127412,0x74126f12,0x28126f12,0x122812,0x70120712,0x72127112,0x7122812,0x6b127012,0xf7120312,0x6c126e11,0x6a126a12,0xf7126b12,0x28127411,0x70127012,0x8127212,0x70127412,0x75120812,0x8127412,0x8127512,0x6a120912,0xf611f712,0x6e120111,0xfb126a12,0x6a120111,0x75126512,0x65120912,0xfc120912,0x6a11fb11,0x6511f612,0xfb11fc12,0xbf12c011,0xcb12cb12,0xd012ca12,0xd212d112,0xcb12c012,0xd112d012,0x80146912,0xc5148114,0xaa16b716,0xc2102416,0x8d102810,0x62118c11,0xf8164e11,0x2f15f915,0x7d0f310f,0x73148014,0x72147214,0x8a148c14,0x89148b14,0x80148814,0x8a147214,0x88148b14,0x80148514,0x8b148a14,0x81148214,0x84148014,0x82148314,0x85148b14,0x82148414,0x8b148014,0x78157914,0x7d157b15,0x86157f15,0x86157d15,0x81159215,0x83158215,0x81159015,0x7b158315,0x92157d15,0x92157b15,0x90159115,0x79158315,0x91157b15,0x96159615,0x79159015,0x7d157f15,0xdf156615,0xd70edc0e,0xfa0d5b0e,0x610cf70e,0x930f9412,0x6512290f,0x61126212,0x290f9312,0xf160d12,0xa1161016,0x8a0f4614,0x10160d0f,0x2114a116,0x12122212,0x5c0f2512,0x5f145d14,0x470d560d,0x3310310d,0xfb104b10,0xf213f013,0xf80efb13,0x90cf50e,0xb120a12,0x23121512,0x24122412,0x12121312,0x22121212,0x1a121a12,0x24121512,0xd615d912,0xd815d815,0xd515c015,0x550e5315,0x1c0e1c0e,0x430e1a0e,0x3f174317,0x53173317,0x430e1c0e,0x8120917,0x7120712,0xa120412,0xc3149712,0xbf14bf14,0xc214bd14,0xc114c214,0xb4149714,0xa514a714,0xa517a314,0x9317a917,0x84168716,0xfe0dff16,0x7b0e690d,0x64177917,0x6e176417,0x6e176d17,0x10e030e,0xa915b40e,0xd015aa15,0x770d750d,0x9c11ba0d,0x67119a11,0x61136013,0x5b136113,0x58136613,0x67136013,0x69136813,0x58135f13,0x68136713,0x90f0813,0x60f0b0f,0xff0d070f,0xb0f080e,0xff0f060f,0x80f070e,0x8f14910f,0xdf160b14,0xdb12dd12,0xda12db12,0xdc12d912,0xdf12de12,0xd912db12,0x2712dc12,0x2a142814,0x130e7f14,0xf10e1b0e,0x615f315,0xe614e816,0xe914e914,0xea14eb14,0xe616e314,0xe416e216,0xe116e016,0xe216e316,0xe416e416,0xe516e116,0xa0159f16,0x7915bb15,0x77137813,0x75137713,0x59137613,0x47145514,0x43144714,0x52145214,0x59144c14,0xf810f914,0xf010fa10,0xef0ef10e,0x8416860e,0x14168716,0x90161516,0x3d104914,0xb8103e10,0xf414b514,0xc714f414,0xeb14b914,0x614e914,0xe614e915,0x69150414,0x86138513,0xeb140413,0x6a13ce13,0x87138613,0x8d137013,0x70138e13,0x8c136d13,0x7b177913,0x8a178a17,0xfc0e4217,0x820dfc0d,0x8a177917,0x6d138b13,0xeb14ee13,0x64150814,0x94137913,0x72137413,0x65138f13,0x81138013,0xf150713,0xe150e15,0x8150915,0x8e0f8115,0x8d0fee0f,0x9a139b13,0x8f139a13,0x94138e13,0x96139713,0x7f139613,0x91139513,0x97108310,0x9115a610,0x92159215,0xa715a815,0xcb0de515,0x950dcd0d,0x390d9d0d,0x1c111f0d,0xa5114411,0x610fa60f,0xa8146414,0x6914680f,0x70146f14,0x68146414,0x69146914,0x6e147014,0x6c146a14,0x69146d14,0x6a146e14,0x1f146014,0x5f145d0f,0x5d146014,0x6a146914,0x6d146d14,0x6b146714,0x65146614,0x69146314,0x6b146d14,0x6b146914,0x5f146614,0x5c145d14,0x5f145e14,0x64145c14,0x66146914,0x66146414,0x61146314,0x63146414,0x5c145e14,0x610fa514,0x62146314,0xa5145e14,0x3414610f,0x49154815,0xc00dba15,0x4c0de00d,0x46114b11,0x8d169111,0x84168a16,0x90108d10,0x90108410,0x78108710,0x84107910,0x77107610,0x73107810,0x76107510,0x74107f10,0x88107310,0x7f108310,0x88108c10,0x7f107f10,0x76107310,0x84107810,0x82108710,0x86108b10,0x87107810,0x8f108210,0x7f108c10,0x7f108f10,0x76107610,0x82107810,0x8f108610,0x4e107610,0x2b152915,0xb817bc15,0xf817c117,0x1511fa11,0x1a121512,0xcd123112,0xd715d315,0xd615d715,0xd915d915,0xcd15ce15,0xb111a615,0xb011b011,0xa411a111,0xb013d511,0xfb13b113,0x14151514,0xfd151415,0xd614fc14,0xff10fe10,0x2d0e0f10,0x200eb50e,0x30141814,0x2f143014,0xd142d14,0x350d0c0d,0xf30ff50d,0x4d10010f,0x5c174f17,0xc40fa117,0xe80fca0f,0xc013a513,0xb113d613,0xa313b313,0x2b0e400e,0x7b107c0e,0x6e107210,0x4f155015,0x4d154f15,0x4e154e15,0x4b154c15,0x49154a15,0x4b154815,0x48154a15,0x46154715,0x6e156915,0x4e154f15,0x6e156d15,0x48154e15,0x69154715,0x6d156a15,0x48154e15,0x6a156915,0x4e156a15,0x3154b15,0xf8140214,0x71157e13,0x7b157215,0x55125712,0x6d119412,0xb7116c11,0xe70ecf0e,0xe70eb70e,0xb90eb60e,0xbe0ebc0e,0xb70ebe0e,0xb80eb60e,0xba0ec10e,0xba0eb80e,0xbd0ebb0e,0x7b0e910e,0xbb0eb80e,0xb60ebd0e,0xbd0eb80e,0x7b0ebd0e,0xc00ec00e,0xb90ebf0e,0xb60ebe0e,0xc00ebd0e,0xbe0eb90e,0x4f11500e,0xeb114011,0x5b0cff0e,0x8a0e5b0e,0x210e210e,0xe90eea0e,0xeb0ee90e,0xf80e5b0e,0xde0de90d,0xe40dde0d,0xbe0dc90d,0xf80e620d,0xc90dde0d,0x80dbe0d,0xff140614,0xf713ff13,0x2313f513,0x870d220d,0xe011d70d,0xfa11d911,0x15130112,0x9515a113,0x81158115,0x98159a15,0x4e0eaf15,0x790e440e,0x1c0d7e0d,0x5d0f280d,0x1a0f1f14,0x1d0f190f,0x1f0f280f,0x1c0f1a0f,0x280f200f,0x1d0f1a0f,0xbc0f1c0f,0xc416a316,0x8112416,0x45111711,0x58143f14,0x99158f14,0xe415a215,0xdf11e511,0xda10dc11,0xdc10db10,0xd910db10,0xd40f6710,0xd510d510,0xd910dc10,0x5510d810,0xd80f540f,0xef0f5410,0xd910d50f,0xf010d810,0x670f630f,0xef10d80f,0xf00ff00f,0xd50f670f,0x83178110,0x88178817,0x18178917,0x6810690e,0x99107310,0x7b167c16,0x4b143e16,0x4e144a14,0x5d104c10,0x91159610,0x5015a615,0x4a175117,0x4b174817,0x46174617,0x4c174e17,0x4c174617,0x50175317,0x49174a17,0x50174d17,0x48174917,0x53174617,0x53174817,0x4f175217,0x49174d17,0x52174817,0x8f174f17,0x9b158e15,0x515f515,0xf9160716,0xf615f415,0xf615f915,0x615f715,0x715f516,0xf9160716,0x2215f715,0x1b152315,0x19151815,0x22153c15,0x18151b15,0xf150e15,0x18151c15,0x3b153c15,0x39153b15,0x33153715,0x31153415,0x33153715,0xe153115,0x22151c15,0x22150e15,0x2d151815,0x29152b15,0x28152915,0x27152715,0x15152015,0x27152915,0x2d151515,0x15152915,0x15152d15,0x2f151615,0x16152d15,0x16152f15,0xc151715,0x18150e15,0xc150d15,0x31151815,0x17152f15,0x18150d15,0x37153b15,0x17153115,0x3b150d15,0x8c153715,0x370e290e,0xd0df90e,0x140e760e,0x24141014,0x81118014,0x24114811,0x15130b13,0x19141713,0xb7143d14,0xad14b314,0xd114ad14,0xcf14ce14,0xb714e314,0xce14ad14,0x7314cf14,0x60f720f,0x7d107e17,0x106f10,0xff11fe12,0x411ff11,0xe6120712,0xe710e510,0x9f159e10,0x7f15bc15,0x8c177817,0xf7178c17,0x980df40d,0xbe159a15,0xfb0efa15,0xc80cf90e,0xd915ce15,0xd515d915,0x4815c915,0x4d144a14,0x41145014,0x1f144014,0x52151e15,0x17141f15,0xb2143714,0xa815a715,0x5f153615,0xd7156015,0xcb15d315,0xcc15cb15,0x8e15d415,0x2a0d660d,0x6613670d,0x58138213,0x55143f14,0x59145514,0xaa145614,0xbe0fbd0f,0x1311120f,0xea110b11,0xde12e912,0x53145712,0x42144214,0x5b144614,0xc914ca14,0xd314d314,0xcb14b614,0x3a174714,0x2d172d17,0x5b176117,0x57175b17,0x47174a17,0x5b172d17,0xbe15e117,0xde15de14,0xe015df15,0xc415e015,0xe215e514,0xde15e115,0xe515e015,0xd115e215,0xbd13b913,0xbd10bc13,0xb910b910,0x25102110,0x28102710,0xbc100010,0x2510b910,0x27102510,0x100010,0xba10c010,0xba100010,0xbc10bf10,0x102510,0xbf100010,0xa110bb10,0x840d6a17,0x8a160d0d,0x3f0f3f0f,0x1216110f,0x5161216,0xe160116,0x3f160d16,0x116120f,0xe9160e16,0xef15ec15,0xe915e715,0xee15ef15,0xed15f315,0xee15f215,0xe715ed15,0xf015ef15,0xed15f215,0xe715e815,0xf215f015,0xca0dd515,0x6e0dc80d,0x9317980d,0xde13df17,0xb13b213,0x8d148f16,0x8e148d14,0xd160f14,0xc160e16,0xb160c16,0xf148d16,0xc160d16,0x6f0f9216,0x6612660f,0x2b122c12,0x92122a12,0x1e12660f,0x3a141f14,0xce0ede14,0xcf0ecf0e,0xc50eb70e,0xd20ed00e,0xcf0ede0e,0xd00ec50e,0xc70fae0e,0xc80fc80f,0xc90fb80f,0xae0fc60f,0x670fc80f,0x5d124b12,0x93149a12,0x92149214,0x14161514,0x12161316,0x92161116,0x13161414,0x11161316,0xcb149a16,0x770fcc0f,0x5311540f,0x39113a11,0x54113811,0x41144011,0x31143114,0x33143214,0x34143314,0x2a142a14,0x2b142914,0x2f142b14,0x30143014,0x46143814,0x46143014,0x2a144214,0x30142b14,0x33143114,0x44142a14,0x31144014,0x31144414,0x30142a14,0x3e144214,0x44144814,0x30142a14,0x48143e14,0x940f9314,0x890f900f,0x6f0f8f0f,0x890f8d0f,0x360f6f0f,0x8c0fa80f,0x7e0f9b0f,0x8b0f710f,0x8c0f360f,0x8c0f8b0f,0x980f8d0f,0x960f830f,0x970fa10f,0x9f0f980f,0xa00fa20f,0xa10fa00f,0xa00f980f,0x960f980f,0x9f0f9c0f,0x950fa00f,0x990f9d0f,0x9c0f990f,0xa00fa00f,0x7b0f960f,0x990f950f,0x950fa00f,0x7b0fa00f,0x950f860f,0x8b0f7b0f,0x6f0f8d0f,0x7b0f860f,0x8b0f850f,0x920f6f0f,0x850f860f,0x710f910f,0x920f8b0f,0x860f900f,0x710f910f,0x930f920f,0x900f930f,0x930f910f,0x9a0f910f,0x710f9b0f,0xf60f930f,0xd14f514,0x17150d15,0xf714f815,0xd14f614,0x31162e15,0x8f164616,0x9d179a0d,0x8e0d9d17,0xb50d2b0d,0x190dcc0d,0x7412760d,0x45127512,0xb40f8b0f,0x2d16290f,0x24162416,0x33163216,0x28162f16,0x2e163116,0x27162b16,0x2f163316,0x2e163116,0x2c162716,0x31163316,0x26162e16,0x29162516,0x2e163316,0x26162c16,0x24162916,0x33162416,0x8b162c16,0xad0f710f,0xca12d00f,0xc912c912,0xc712c812,0xc512c712,0xc712cd12,0xce12cd12,0xd012cf12,0xc712c912,0xcf12ce12,0x93129112,0x51129212,0xfd160316,0xf60cf115,0x490ef70e,0x46164516,0x30164816,0x49164716,0x48164616,0x36163516,0x34163416,0x48164916,0x47164816,0x3e163c16,0x37162a16,0x48163416,0x3c163c16,0x37163e16,0x35163716,0x21163416,0x12140814,0x690d6714,0xe40d440d,0xbe13e513,0x7a128613,0x18129c12,0x14111911,0x12111311,0x18112f11,0x13111411,0x91129e11,0x99129012,0xa6128512,0x570d8012,0xe90d540d,0x9d0fea0f,0x6e0eac0f,0xac0eaf0e,0xa70eaf0e,0xac0ea60e,0xa60ea70e,0xa40ea70e,0xa60e9f0e,0x960ea40e,0xa40e9f0e,0x750e7a0e,0x820dc50e,0xc50e7a0e,0xa40e960d,0xb10eaa0e,0x800e7d0e,0x800eb10e,0x790e790e,0x950e7c0e,0xc50e820e,0x970e960d,0x960e820e,0x970e980e,0x990e960e,0x960e980e,0x960e990e,0xa00eaa0e,0xaa0e990e,0xaa0ea00e,0xa50eb10e,0xb10ea00e,0xa50eae0e,0xb30eb10e,0xb10eae0e,0xb10eb30e,0x810e790e,0x790eb30e,0x810e830e,0x840e790e,0x790e830e,0x840e9e0e,0x7e0e790e,0x700e770e,0x7b0e700e,0x700e910e,0x880e910e,0x7e0e920e,0x920e700e,0x880e700e,0x9b0e8e0e,0x920e9c0e,0x8e0e880e,0x920e870e,0x8e0e8e0e,0x8d0e9c0e,0x5b0e8a0e,0x8e0d040e,0x8a0e8d0e,0x870e860e,0x940e8e0e,0x8e0e860e,0x8a0e8e0e,0x8e0d040e,0x580d040e,0x940e950e,0x790e8e0e,0x8e0e950e,0x580e8e0e,0x590e590e,0x560e570e,0x560e590e,0x790e540e,0x590e8e0e,0x790e9e0e,0x590e590e,0x550e540e,0x530e550e,0x2a172a0e,0x780e7317,0x78172a0e,0x590e7f0e,0x2a0e550e,0x9e0e9d17,0x890e590e,0x590e9d0e,0x2a0e590e,0x850e7f17,0x590e890e,0xc80dd60e,0x5e0dc70d,0x51125f12,0xef11de12,0xb911f011,0x94129512,0x9812bb12,0x96129512,0xe20dc40e,0x270de20d,0x330e3317,0x9f0e3a0e,0xe20e960e,0x5c0e330d,0x5e0f5a0f,0x6a0f5e0f,0x660f660f,0x5f0f650f,0x620f5d0f,0x5e0f610f,0x5f0f660f,0x610f5d0f,0x5e0f5b0f,0x5d0f5f0f,0x590f630f,0x5c0f5c0f,0x5d0f5e0f,0x5d0f5c0f,0x670f5b0f,0x5c0f630f,0x570f510f,0x670f580f,0x5b0f5c0f,0x510f520f,0x670f580f,0x600f5b0f,0x520f500f,0x670f580f,0x6d0f600f,0x6d0f670f,0x740f740f,0x7f0f700f,0x8e0f880f,0x740fa50f,0x880f7f0f,0x740f670f,0x880f880f,0x260fa50f,0x8b0f260f,0x450f450f,0x460f8a0f,0x3f0f440f,0x450f4f0f,0x440f460f,0x880f670f,0x580f260f,0x260f670f,0x450f260f,0x440f440f,0x500f4f0f,0x580f500f,0xa50f260f,0x8512a612,0x84128512,0x54125412,0xa5125612,0x49144e12,0x4c144c14,0x54145214,0x50145414,0x4f144f14,0x4c144e14,0x47104814,0x8e106a10,0x9c159715,0xa512ae15,0x8c12a412,0x6a156d15,0x6b166a15,0x67166716,0x76166616,0x6b166716,0x6d166d16,0x68166916,0x88165a16,0x1b168916,0x35141c14,0x73166214,0x74167416,0x63166416,0x75166416,0x76167616,0x65166616,0x4f0eb216,0x440df20e,0x61175b17,0x81146f17,0xf5148214,0x6911f311,0x67157912,0xfb156b15,0xf40ef00c,0x80167f0e,0x71167116,0x6d166f16,0x6b166d16,0x7e167d16,0x71167f16,0x7d166d16,0x88167e16,0x270e1d0e,0x6c166e0e,0x8f168f16,0x8d168e16,0x6e167716,0x4d168f16,0x29152815,0x8e168d15,0x8c168c16,0x89168b16,0x87168916,0x8a168a16,0x8c168d16,0x8c168b16,0x5c165c16,0x89165b16,0x8c165c16,0x8e168e16,0x5d165e16,0x80167116,0x54165416,0x6f165316,0x620e8016,0x65176317,0x79176f17,0x630e800e,0x8f176517,0x5f166c16,0x5e165f16,0x81168e16,0x56168316,0x55165616,0x56168016,0x85168316,0x58168516,0x58165716,0x88168616,0x5a168816,0xbf165916,0xbc12c012,0xc912b912,0xed12ca12,0xd312d412,0xd312ee12,0xaa12d212,0x77119d11,0x9e11b911,0xeb119c11,0xd712d912,0x9e0e8412,0x6f0e390e,0x6617640e,0x67176617,0x70e5f17,0x30d090d,0x53125e0f,0x68124c12,0x6f126612,0x4c125e0f,0x94126812,0x5e12610f,0x6f126812,0xf20f940f,0xce12cf12,0x23142212,0x99142e14,0x910d6b17,0xe70de50d,0xfc0dce0d,0x50d000e,0x316000d,0x51165116,0x30165216,0x2f163016,0x69160016,0xdfe0e,0x7711ad0e,0x48119f11,0x55174917,0xdc17dd17,0xb17c717,0xf7130c13,0x11131412,0xb9130013,0xb216b616,0xde11ef16,0xe611d511,0xe016ea16,0x11130d16,0x73131913,0x72137113,0x76137413,0x73137513,0x74137213,0xea13e913,0x7213a313,0x7e177f17,0x74177e17,0xd7177317,0xc315d415,0xc715c315,0xb15db15,0xef13f114,0xb516c713,0xb016b016,0xc816cd16,0x11140d16,0xdc141e14,0xd614d514,0xd014d614,0x3b14db14,0x42103910,0x1b131a10,0x54133213,0x3a164c16,0xc714bb16,0xc814c814,0xc614ba14,0xc514c614,0xc014c014,0xc814bb14,0x64176614,0x82177917,0x66178017,0xf50df017,0x2d0e670d,0x37113611,0xc10dd311,0xf30dc20d,0xf00ef50e,0x520dee0c,0x3d0eb40e,0x65156415,0x17111d15,0x1c111b11,0x1e111f11,0x1b111d11,0x17111c11,0x3c133613,0x8710a513,0xd5109010,0xe716e816,0xdc16e716,0xe416d616,0x5c0fe50f,0x4d164b0f,0xee16ee16,0xec16eb16,0xec16ee16,0x3816ed16,0xee164b16,0x4416f216,0x38163916,0xed16ee16,0x3916f216,0xf0163816,0xf216ef16,0xed163816,0xf116f116,0xf216f016,0x4216f516,0xf516f316,0xfc16f316,0xfa16f716,0xf816f516,0x4e16fd16,0xfb16f416,0xf816f916,0xf7164e16,0xf416f616,0xf916f916,0xf716f816,0xfc16f516,0xf616f616,0xf716f916,0x5170316,0xe0f6917,0x50cf40d,0x4b13430f,0x40135113,0x2e0fb10d,0xa40d2e0d,0xa617a617,0x510d3f17,0x1c0d200d,0xa60fc10d,0x200d5117,0x2e0d400d,0x2017a60d,0xbc0fc10d,0x400fbc0f,0xa217a60d,0x50124d12,0xc0f0a12,0xd0f0d0f,0xf0f0f,0x60f000f,0xe0f0e0d,0xd0f0a0f,0x6f157c0f,0xbb157115,0xc616cb16,0x17135616,0x21121912,0x23172617,0xcb0fce17,0x80f720f,0x83170917,0x7170a0f,0xd0f9717,0x82170e17,0x6c0f6a0f,0xc17170f,0x76170d17,0x1017120f,0x130f5d17,0x15171617,0x12171017,0x24171117,0x26172317,0x7d0f7517,0x7d17150f,0x140f7c0f,0x620f6517,0x74170f0f,0x7d177e17,0x7c177d17,0x76177617,0x74177517,0x19171a17,0x18171817,0x66171917,0x7b171c0f,0x1d0f960f,0x7b0f5617,0x1f171e0f,0x1e172017,0x560f5e17,0x23171f0f,0x19172417,0x64171a17,0xee11ed0f,0xe911e911,0xec11e711,0xf011ec11,0xef11ef11,0xe911ed11,0xbd0ddf11,0x320dbb0d,0x40173417,0xb14f517,0x98150c15,0x330d3b0d,0x1f0d7a0d,0x8b0d3c0d,0x300d310d,0x10e6d0d,0x690df80e,0x90116611,0x5a0cf811,0x350da10d,0x42174117,0x73158117,0xe8157515,0xcc0eb50e,0xca0ecc0e,0xc90ec90e,0xc70ec80e,0xd10ec40e,0xcc0ed00e,0xc70ec90e,0xd00ec40e,0xcc0ec50e,0xc40ec70e,0xe80ec60e,0xc30ecc0e,0xc60ec20e,0xcb0ecd0e,0xcc0ec30e,0xc50ec40e,0xc30ecd0e,0xcc0ec60e,0xcd0ec50e,0xe160c0e,0x30160116,0x8d0e200e,0x30ff20e,0x1100210,0xf10ff310,0x20ff20f,0x20100110,0x25172417,0x25172217,0xbf172617,0x9c14bc14,0x9b149c14,0xba14ba14,0xbf14bd14,0x4d0da714,0x340d550d,0x3a172d17,0xd90db917,0xf60ddb0d,0xf50cf10e,0xcb0ec30c,0xc10ebc0e,0xc70eb80e,0x2e172c0e,0xf0173b17,0x640e650d,0x3e0e2b0e,0x3a0e2a0e,0x46174717,0x46173a17,0x3c173917,0x40173717,0x3a174017,0x3b173917,0x3d173817,0x3d173b17,0x3f173e17,0x29174317,0x3e173b17,0x39173f17,0x3f173b17,0x29173f17,0x42174217,0x3c174117,0x39174017,0x42173f17,0x40173c17,0x6f177017,0xb3177a17,0xa915a815,0x910e0215,0x110dfa17,0x100e160e,0x110e4e0e,0x4e0e100e,0x20e100e,0x4e0e440e,0x510e020e,0x4b0e4d0e,0x510e4c0e,0x4c0e4b0e,0x410e4b0e,0x4c0e460e,0x460e410e,0x440e410e,0x460e3c0e,0x420e440e,0x2b0e3e0e,0x2b0e420e,0x370e400e,0x2a0e290e,0x2a0e370e,0xf3178d0e,0x8d0e370d,0x8d0df317,0x500e2f17,0x2f0df30e,0x2f0e500e,0x500df40e,0xf70df40e,0x18178b0d,0x500eea0e,0x8b0df70e,0xea178b17,0x200e210e,0x310e300e,0x21178b0e,0x200e200e,0x270e310e,0x1d0e270e,0x270e1e0e,0x1f0e1e0e,0x20178b0e,0x270e270e,0x260e1f0e,0x260e270e,0x3c0e150e,0x20e440e,0x27178b0e,0x8b0e150e,0xd0e1517,0xd178b0e,0x8b0df90e,0xf20df917,0x8b0e500d,0x500df217,0x4f0df20e,0x500e4a0e,0x4a0e4f0e,0x490e4f0e,0x4a0e400e,0x400e490e,0x450e490e,0x400e420e,0x420e450e,0x3f0e450e,0x3f0e420e,0x420e3d0e,0x470e3d0e,0x420dfc0e,0xfc0e470e,0x480e470d,0xe0e080e,0xfd0e040e,0xfe0e000d,0x40e080d,0xee0dfd0e,0xfd0e080d,0xfe0dfd0d,0xed0dff0d,0xe90dea0d,0xff0dfd0d,0x520ded0d,0xfd0dee0e,0x520e480d,0xfd0dfd0e,0xe90ded0d,0xfd0e480d,0xfc0de90d,0xe90e480d,0xe90dfc0d,0xf60df80d,0xf80dfc0d,0xf80df60d,0xfa0e010d,0x10df60d,0x10dfa0e,0x60e030e,0xa0e070e,0x90e330e,0x330e060e,0xa0e060e,0xa0e330e,0x330e120e,0x360e120e,0x360e330e,0x3a0e350e,0x350e330e,0x350e3a0e,0x430e340e,0x340e3a0e,0x340e430e,0x20e3b0e,0x30dfa0e,0x3b0e430e,0x20e3c0e,0x430e030e,0x48174b0e,0xcb175417,0xbe0ecd0e,0xc5149e0e,0x8d14c614,0x3d0f3b14,0x1014950f,0x8d148e16,0x950f3d14,0x52176014,0xab175317,0x9d119b11,0x780e0b11,0x180e720e,0x38141a14,0x390e3814,0xe0e9e0e,0x770e080e,0x7e0e770e,0x7a0e140e,0x6f156c15,0xb0e7815,0xd10e130e,0xc910ca10,0x61107810,0x60105f10,0x80e770e,0x2e0e920e,0xcc0e140e,0xc213c113,0x1f0e2613,0x350e860e,0x970e360e,0x490ead0e,0xa10e4f0e,0x450e3f0e,0x1f0e860e,0x4c0e1e0e,0xae0e460e,0xb30eae0e,0x830e510e,0x510e170e,0xb30e510e,0x190e810e,0x830e170e,0xe112e30e,0x4612e812,0x4a114b11,0x30114a11,0x42114711,0x44104310,0x46104510,0x42104110,0x45104410,0x3c0e4610,0x240ea50e,0x1e111d11,0x77169011,0x34168d16,0x980e350e,0x990e980e,0x1b0e3b0e,0x890e220e,0x520eb40e,0x480e480e,0xa90e470e,0x150e0d0e,0x60e7c0e,0xee15f316,0x450ea815,0xa20e490e,0x3f0e3d0e,0x5715580e,0xcb152a15,0xd110ca10,0xe812e910,0x8f12e112,0x290e2b0e,0x8815a30e,0x95159415,0x91108e10,0x83118210,0x22115f11,0x21162016,0x7f138016,0x96139613,0x8213a113,0x80138113,0x5139613,0xf151015,0x7150f15,0x67150615,0x40104710,0x68178710,0x25176717,0x10142414,0x15141014,0x2f142614,0x4b154a15,0x86178715,0x6a176a17,0x68176917,0x62178317,0x12176c17,0x9140814,0xb140a14,0xc140c14,0x4140514,0xfa140314,0xff13fc13,0x15140613,0xff13fd14,0x12141513,0xa140914,0x12140e14,0xfc140a14,0x1513fd13,0x1513fc14,0xe141014,0xc140a14,0xe141614,0xfc140c14,0x14141013,0xfc140314,0x16141413,0x4140c14,0x16140d14,0x2140414,0x14140314,0x14140214,0xd140f14,0x7140414,0x7140d14,0x113fb14,0xf140214,0xf140114,0xd141314,0xfe13fb14,0xd141113,0x13fe14,0x13140114,0xfe141114,0x6c140013,0x80176217,0x740e800e,0x17176b0e,0x13141f14,0xf141314,0x7f141914,0x71177217,0x43153c17,0x44154415,0x3b153915,0xf5131415,0x36131b12,0x900d8c0d,0x68157b0d,0x72156615,0x1b0d1a0d,0xf13170d,0x6c130d13,0x88136b13,0x9f11af13,0x4211a111,0x4b145314,0x7e157c14,0x80158015,0x95158115,0x95158015,0x8c159315,0x85158415,0x89158815,0x94158a15,0x8a158815,0x80157c15,0x7c159315,0x8d159315,0x8a159415,0x8f158b15,0x8b159415,0x7c157a15,0x87158d15,0x8d157a15,0x8b158f15,0x8e158c15,0x8c158f15,0x8d158715,0x8e159715,0x85158c15,0x87158515,0x62159715,0x1d151a15,0x7b0d0f15,0xb0db00d,0x20d0a0d,0x9312b50f,0x72129112,0x730e780e,0x640e660e,0x720e650e,0x660e730e,0x750dc50e,0x710e720e,0x720dc50e,0x660e720e,0x670e650e,0x720e710e,0x2911040e,0xe110e11,0x5110d11,0x4d0eb111,0x920e110e,0x87168a16,0x490da916,0x3e0d430d,0x32102d10,0xd715d610,0xdb15db15,0xd815da15,0xf915f415,0xf815f815,0xf515fd15,0xbd0ecc15,0xda0ebb0e,0xba0db80d,0xf90cf60d,0x460ef30e,0x760d740d,0x6e17980d,0x9c0d6b0d,0x9f0da817,0x8917920d,0x470d830d,0x52163016,0x5c124a16,0xf511f512,0x49125d11,0x920d8912,0x95179417,0xa20d9e17,0x3213310d,0x33133313,0x35133413,0x3d133513,0x3a133a13,0x31132f13,0x33133113,0xc3133513,0xae15bf15,0xb015ae15,0xb815b815,0xb515b915,0xb615b515,0xbc15bc15,0xba15bb15,0xb715ba15,0xbd15bd15,0xc415ad15,0xc415bd15,0xbc15c815,0xbd15ba15,0xb515b815,0xc315bc15,0xb815ae15,0xc315c715,0xbd15b815,0xc915c815,0xc915bd15,0xc715c015,0xbc15b815,0xc715c615,0xbc15bc15,0xc015bd15,0x670d6815,0xb30db30d,0x9e129112,0x8e118c12,0x60116311,0x70166e16,0x4b0e4116,0xff0eaa0e,0xf913fd13,0x7b178a13,0x7c177c17,0x8d177d17,0x2a178d17,0x8f178f0e,0x7c178a17,0x750d7617,0xd50dd00d,0x9a0fd60f,0xd517d90f,0xd617d617,0xd817d717,0xb217b117,0xb317b317,0xb017af17,0xb717b617,0xb60fb817,0xb30fb817,0xba0d210f,0xb917b917,0xb317b617,0xb317b90f,0xad0fb50f,0x210d1617,0xb90d210d,0x210fb517,0xaf0fb50d,0x2117ad0f,0xb00faf0d,0x300fae0f,0xaf17ad0d,0xad0fb00f,0x300fb017,0x310d300d,0x2f0d2f0d,0x170d460d,0x120d170d,0xab17ac0d,0x3017ad17,0xac0d170d,0x3017ab17,0x170d2f0d,0xb716aa0d,0xa416a816,0x9c16a316,0xa416a816,0x9c169c16,0x90169d16,0x91169016,0x92169216,0x94169316,0x95169416,0x9416b016,0xac16b016,0x9c16a816,0xaa169016,0x9016a816,0xac169416,0xa916a916,0xba16b516,0xba16a916,0x9216a116,0xa9169416,0xaa16ad16,0xbe169016,0xb116bb16,0xad16b116,0x92169016,0xa116a916,0xa1169216,0xb116a016,0x92169016,0xbe16b416,0x9216b116,0xb416a016,0xfb10fc16,0xc210fa10,0xc417c317,0x840f7917,0xb170b0f,0xe0f0a0f,0xf317f20f,0xf417f417,0xf017f117,0xd217d817,0xb917ca17,0xc417ba17,0x330e0917,0xe217270e,0xdf17de17,0xe017df17,0xee17e117,0xec17ef17,0xdb17dd17,0x1b17da17,0x5e0f9617,0xdb17d30f,0xf717dd17,0xab18a218,0xfa17f918,0xd817fb17,0xd918d718,0x27180018,0x58181218,0x48194619,0xb180919,0x22180c18,0x1f181718,0xd9188218,0x3c188718,0x3d184418,0x3181618,0x92181718,0xbb18bc18,0xec18eb18,0x4818ee18,0x4a18fa19,0x1f181d19,0x9f181e18,0x95188818,0xdf18de18,0xf9188d18,0x5d196618,0x1e182619,0x26180218,0xff180218,0x26182517,0x2517ff18,0x417ff18,0x7d185818,0x2a187f18,0x29181618,0x16180d18,0x2b182a18,0x2a180d18,0x2b180d18,0xf180f18,0x16182918,0x2b180f18,0x2b182918,0x29182a18,0x5182d18,0x9182c18,0x2d180518,0x9182e18,0x9182d18,0xb182e18,0x2c180b18,0xb180518,0x2c182e18,0x2d182e18,0x30182c18,0x2f180718,0x7181118,0x31183018,0x30181118,0x31181118,0x6180618,0x7182f18,0x31180618,0x31182f18,0x2f183018,0x10183318,0x8183218,0x33181018,0x8183418,0x8183318,0xe183418,0x32180e18,0xe181018,0x32183418,0x33183418,0x36183218,0x35180118,0x117fe18,0x37183618,0x3617fe18,0x3717fe18,0xfc17fc18,0x1183517,0x3717fc18,0x37183518,0x35183618,0x38181518,0x14183918,0x39181518,0x39181418,0x3a183a18,0x14180a18,0x3a180a18,0xc183b18,0x3f183e18,0x57189918,0xfb189419,0x40181817,0x27180418,0x41182518,0x4017f918,0xf9184018,0x4217fb17,0x15183818,0x60187f18,0xf9185718,0x15184217,0x6818f518,0x43196619,0x42183b18,0x3b183c18,0x4c184318,0xf418f319,0x44183d18,0x3d184118,0x3e184118,0x3e192018,0x30193f19,0xf8191619,0x51185218,0xfd184f18,0x5c196018,0x62190219,0x42196019,0x39183b18,0x61186418,0x10187418,0x9a194519,0x6a186618,0x5e186c18,0x60185f18,0xfe194718,0x80194818,0x5c185d18,0x71186f18,0x1187018,0x67196919,0x2818f119,0x71193c19,0x64186a18,0x63187418,0x75186618,0x61185a18,0x66187018,0x6f186518,0x67186818,0x67186f18,0xb8186918,0xf190718,0xe618df19,0x7818e218,0x56185418,0x77187818,0x78184818,0x54184818,0x49187718,0x79184818,0x51184a18,0x4b187918,0x7a184a18,0x53184c18,0x4f187a18,0x7b184c18,0x50184518,0x4d187b18,0x7c184518,0x4e184618,0x62187e18,0xfd185918,0x182317,0xf617f818,0xb017f717,0x8a188b18,0x5b18d518,0xae195d19,0x50195418,0x5d187619,0x76188118,0x5e188118,0x5e187618,0x50187d18,0x52187918,0xea18f218,0x3518eb18,0x36192d19,0xb7190819,0x7a18b818,0x4f184b18,0x8f18ba18,0x5318b918,0x7a184b18,0x9c195618,0x71194e18,0x6a186b18,0x6c187218,0x72186d18,0x6c186e18,0x6918c218,0xbb196b19,0xc318bd18,0x3b183e18,0x1d183d18,0xeb18ef19,0x63191318,0x53196119,0x5518a519,0x98189419,0x4b189618,0xf618fb19,0xc4190a18,0xae190b18,0xb218a118,0x83188618,0x7e188218,0x75185c18,0xb318b718,0xb718b618,0xb818b618,0xb9189218,0xda188f18,0xde18e818,0xd2191b18,0xd218c918,0xd118d318,0xaa189018,0x8618a418,0xb2189f18,0x86188a18,0x8a18b218,0xb018b218,0x98188818,0xbf189518,0xbe189118,0x63186218,0x84186118,0x8218d818,0xd718c018,0xde18d618,0xe018e318,0xd218d718,0x2018da18,0x3181718,0xe818e718,0xe018dd18,0xe118e418,0x14193118,0x46191619,0x47190619,0x5218a819,0x4b195919,0x4d189e19,0x1218fc19,0x6818f119,0xca18c819,0x37192d18,0x1f193619,0xe5192119,0xb318b418,0x1d18a318,0x2418eb19,0xe118e719,0x1b18e418,0x1d191a19,0xf9184319,0x76184117,0x5d185f18,0x818c518,0xc4190b19,0xb18c518,0x3e184019,0x17184118,0xc190a19,0x17191819,0xa190c19,0x19191719,0x2417f619,0x9a17fd18,0x56194918,0xc0188319,0xe188518,0x12194919,0x2a192f19,0xa6192619,0x54195618,0x3a192b19,0x67192619,0xc318c119,0x61190d18,0x55195f19,0x5718a919,0x26193c19,0x18193a19,0x9190c19,0x18193219,0x32190919,0x11190919,0x32193319,0x33191119,0x14191119,0x34193719,0x19193019,0x1b182818,0x5e190018,0x73196b19,0x61187518,0x37193418,0x37192f19,0x2f192a19,0x2f193419,0x3d192719,0x27193419,0x5c18fc19,0x64196319,0x7190f19,0xd0196019,0xff195c18,0x69196b18,0x6318cb19,0x4018ce19,0x1e193e19,0x1e194019,0x41192119,0x21194019,0x21194119,0x42191f19,0x3e194419,0x22194219,0x43192319,0x23194219,0x23194319,0x5b192419,0x5c185a18,0xc3196518,0x9a18c618,0x10189918,0x28181a19,0x66181d18,0xcf18ca19,0x45194918,0x65191219,0x67190119,0x2c193819,0x4a193519,0xfb18fa19,0x1a18c418,0x5a18c719,0x4f189b19,0x1e180319,0xfa182018,0x1c181d17,0xf018ea18,0x1318e918,0x21181c18,0xab194c18,0xe218ad18,0x9718e618,0xa818ac18,0x6018a018,0x57185818,0xa218b418,0x4f18b518,0xa0189b19,0x4f195318,0xd418a019,0x5e196b18,0x52195119,0x51189d19,0xa1189d19,0x51195818,0x2518a119,0x44193f19,0x6418c819,0x2418c619,0x43194419,0x9c194e19,0x5918a818,0xa8194e19,0xf118ec18,0x5918f218,0x5a186118,0xcb195f18,0xce18cd18,0xd0195c18,0xaf18f318,0xb318f618,0xa318a418,0x22194118,0x5194219,0x5b195d19,0xcd195e19,0x5b18d418,0x5e185d18,0x18183f18,0x65180c18,0x7196419,0x5b190319,0x15196219,0x68196a19,0x3d192e19,0x58192719,0x5018ae19,0x97188919,0xf7188818,0xf4194c18,0x6418c618,0xcf196519,0x5d18d518,0x5d18cf19,0xf7196619,0xf8182117,0x6018d317,0xd1196219,0x6218d318,0x29191819,0xd1191719,0x5b196218,0x29193b19,0xbe193919,0xba188c18,0xd195e18,0xac195f19,0x9e194d18,0xb518f718,0xd818a218,0xd718d618,0x23180018,0x58182718,0x46195019,0x47194619,0x48194819,0x58195119,0xfd17f619,0xfc17fe17,0x8181017,0xfe17f618,0xf717fc17,0xfc17f617,0xe180817,0xf7181118,0x817fc17,0xfa17fb18,0x13181317,0x817f718,0x11180818,0x18180618,0x1317fb18,0xa180f18,0xc180c18,0x13181818,0x8181318,0x6180618,0x5180718,0x5180618,0xc180918,0x6181318,0xf180d18,0xb180c18,0xd181618,0x6180c18,0xb180918,0xc180d18,0x19182218,0x82181718,0xd918d818,0x43183c18,0x15184418,0xa181418,0xf180a18,0x16181618,0x5180b18,0x11180718,0x7180e18,0x10180e18,0xfc181018,0x1180117,0xfd17fe18,0x17fd17,0xfd181218,0x4181217,0x10180718,0xfd180118,0xff180417,0xff17fd17,0x5180217,0x1180718,0xfd180118,0x19180217,0x1a181b18,0xfa181a18,0x1517f917,0x16180a18,0x1a181918,0x1917f918,0x1517f918,0x2180118,0x5180318,0x3180118,0x19181718,0x16181518,0x3180518,0x15181718,0x92181618,0xbc189018,0xef18eb18,0x4818ec18,0xfa18fe19,0x27182518,0x23182318,0xf5182418,0xf5182317,0x2517f817,0xf8182318,0xf8182517,0x26182117,0x21182518,0x21182618,0x1f181c18,0x1e182018,0x26181e18,0x1d181c18,0x22182818,0x1c181e18,0x1d181d18,0x1f182218,0x86189f18,0xde188818,0xe118e018,0xe218df18,0xde188e18,0xdf18e118,0xda188d18,0xdf18de18,0x8d188e18,0xf518f918,0x58196618,0x7d187618,0x96189418,0x99189918,0x57189a18,0xa9195719,0x4189418,0x27181218,0x5e187d18,0x57186018,0x7c184618,0x7d187f18,0x57186018,0x7f187c18,0x1518f518,0x4c196819,0xf318ad19,0x1e192018,0x30193e19,0x16193119,0x4d184519,0x46184e18,0x58185718,0x4e184518,0x50184618,0x46184518,0x58184618,0x47184718,0x56185518,0x56184718,0x50185418,0x47184618,0x50184f18,0x47184718,0x48185418,0x47184f18,0x4b184818,0x4c185318,0x48184f18,0x4b184918,0x4f184c18,0x4a185118,0x4f184b18,0x52184918,0x4b185118,0xfd184f18,0x60190218,0x3190219,0x3b196219,0x39183a18,0x38183918,0x64184218,0x61187318,0x12191018,0x6c194519,0x69186e18,0x68186718,0x6c186518,0x67186918,0x6d186b18,0x63186c18,0x6a186418,0x6b186a18,0x6c186c18,0x65186718,0x63186618,0x6c186a18,0x66186518,0x5d185e18,0x47185f18,0xfe190619,0x81188018,0x6f185d18,0x6e186918,0x6d187218,0x6f186b18,0x72186e18,0x68186518,0x64186f18,0x70187418,0x65187018,0x6f186f18,0x6b187218,0x64187118,0x6f187018,0x71186b18,0xff190118,0x30196918,0xf118f819,0xed18f118,0x3c192818,0xf1193019,0x70186618,0x74187418,0x63186118,0x5c187518,0xb8185a18,0xff18b618,0xff18b818,0xf190118,0xb8190819,0x118b818,0xdf190719,0xe618e718,0x81185e18,0x5b188018,0x80185e18,0x64187318,0x5b186218,0x7e188018,0x73187e18,0x59186218,0x7e185b18,0x2417fd18,0xf8182318,0xf617f517,0xaa18b017,0xd5188b18,0x5b18d118,0xa618ae19,0x78195418,0x55185618,0x58184718,0x78187f18,0x47185518,0x78187718,0x47184718,0x7c187f18,0x4e187c18,0x7c184d18,0x7b184d18,0x47187718,0x49187c18,0x7c187718,0x7b187c18,0x4f185018,0x79184b18,0x7c184918,0x50185018,0x79184f18,0x51187918,0x52185218,0x50184918,0xee18eb18,0xf218f218,0xea18f018,0x2c193518,0x8192d19,0xb718c519,0x8c18ba18,0x56188f18,0x9c18a719,0xc118c218,0xc3196918,0xbb18c118,0xbc18bb18,0x3e18bd18,0xa180c18,0x3c183b18,0x3e183d18,0x3b180a18,0x1c191d18,0x1318ef19,0x6318fc19,0xa0195319,0x9418a518,0x98189318,0xaf18f618,0x4b18b118,0xfb194a19,0xb118f618,0xa194b18,0xc4191919,0xa018a518,0xa5189c18,0xa7189c18,0x94189318,0xa918a918,0xa718a518,0xa718a918,0x9518a618,0xa9189318,0x9f18b218,0xaa189518,0xb218b018,0xa418a318,0xab18aa18,0xa318a218,0xad18af18,0xa818ab18,0xb1189e18,0xaf18b118,0xab18ab18,0xaa18a318,0xaa18ab18,0x9d18b218,0xb118a818,0xab18b118,0x9518b218,0xa618a918,0xa6189518,0x9d18ae18,0xb218b118,0x9d18a118,0xb218b218,0xae189518,0x88188918,0x86188618,0x8b188a18,0x90188b18,0x8b189218,0x8f189218,0x8e188d18,0x87188918,0x89188d18,0x8f188b18,0x8b188c18,0x91188c18,0x89188718,0x85188618,0x82188418,0x87188218,0x86188618,0x91188b18,0x85188318,0x86188218,0x83189118,0x80187e18,0x92185c18,0xb918bb18,0xdb18da18,0x1b18e818,0xd218dc19,0xc418c518,0xc018c718,0xbe18bf18,0xba18be18,0xb918b918,0xc118bb18,0xc118b918,0xc018c218,0xb918be18,0xc518b718,0xbd18c718,0xb718b318,0xc318c618,0xc818bd18,0xbd18c618,0xb718bd18,0xc018c718,0xc218b918,0xc218c018,0xbd18d418,0xc918c718,0xbd18c818,0xcc18c918,0xd418c018,0xd418cc18,0xca18cd18,0xc918c818,0xca18cf18,0xcc18c918,0xcb18cd18,0xcb18cc18,0xd518ce18,0xc918cf18,0xc918d518,0xd218d218,0xce18cc18,0xce18d218,0xd118d018,0xd218d518,0xd018d218,0xa418d318,0xbc18bd18,0x8b189018,0xa418aa18,0x9018bc18,0x97188818,0x98189818,0x95189318,0x8318bf18,0x62189118,0x63186418,0xd6188418,0xd618d818,0x85188418,0xcc18c018,0xd618d718,0xc0188518,0xe818de18,0xda18e318,0x87188d18,0xd9188718,0xd718d718,0xd218cc18,0xdc18d218,0xd218dd18,0xdb18dd18,0x8718da18,0xd218d718,0xda18db18,0x1f182018,0xdd181718,0xe618e518,0xe418e718,0xdd18e318,0xe718e618,0xdb18e818,0xe718dd18,0xe818e318,0xe318e018,0x3118e418,0x14193319,0xe194619,0xa8190619,0x52189d18,0xb1194b19,0x14189e18,0x9191119,0xc190919,0xb190a19,0xf190819,0xa190919,0x16190b19,0x9191419,0xf818f119,0xf0191618,0xf118f218,0x97189818,0x9918f018,0x98189618,0x10191218,0x12189919,0x98189919,0xf0189818,0xf118f118,0x9191618,0xb190919,0x9190f19,0x15190f19,0x98191219,0x918f118,0xf5191519,0xf5190918,0xfb18f918,0xfe18fa18,0xf618f318,0xf718fb18,0xf318f418,0xb518b418,0xff18f718,0xb418b618,0xff190018,0xb418b418,0xf318f718,0xfb18f318,0xf318fe18,0x618fe18,0xb4190019,0x418f318,0xf3190019,0x618f318,0xf1190e19,0xf9190918,0xf918f118,0x4190518,0xe18f319,0x4190d19,0xf1190e19,0x3190518,0x318f119,0xd190219,0x12190e19,0xd191319,0xf1191219,0xfd190218,0x1318fc18,0xf1191219,0xfc18fd18,0x6a196818,0x2d18c819,0x37192a19,0x2318dc19,0xdc192219,0x1f192218,0xdd18e519,0xea18dc18,0xe518e918,0x20191e18,0x1e18ea19,0xe518ea19,0xdc18e518,0x21191f18,0xe5191e19,0xb618b418,0xeb18b318,0x2018ea18,0x2018eb19,0xdc192519,0x1d191b18,0xdc192319,0xeb191d18,0x24192518,0x23192419,0xe7191d19,0xe118df18,0xc9191b18,0x1a18c718,0x1d191c19,0xc7191b19,0x41191a18,0x43184418,0x42184318,0x7617f918,0x5f185818,0x3f184018,0xf6183e18,0x2417f517,0x51195218,0x4a194819,0x4d194b19,0x48195219,0x59194a19,0x4a195219,0x4d194a19,0x5a195a19,0x53194f19,0x57195519,0x5a189a19,0x55195319,0x4a195919,0x4e195a19,0x5a195919,0x55195a19,0x9a189a19,0x49194518,0x46194919,0x49195019,0x54195019,0x5a194e19,0x49189a19,0x56195419,0x4e195619,0x83189a19,0xc018bf18,0x46190e18,0xec194919,0x1c18ef18,0x1a191c19,0x19191919,0x29191719,0x29191919,0xed192e19,0x1c18ec18,0x19191c19,0x1c192e19,0x27192e19,0xed192819,0x2c191c18,0x26192b19,0x28192619,0x1c191c19,0x2f192719,0x2d192a19,0x26192c19,0x2f191c19,0x2c192a19,0xa6192619,0x5618a718,0x38192b19,0x67193a19,0xc1196919,0x13190d18,0x55196119,0xa918a519,0x28193c18,0x39192619,0x32191819,0x31193319,0x39193019,0x33193219,0x39193b19,0x30193319,0x3a193c19,0x33193b19,0x3d193019,0x30193b19,0x3a193019,0x38193819,0x36193519,0x36193819,0x34193719,0x30193d19,0x38193019,0x19193719,0x28182218,0x4190018,0x73195e19,0x75187e18,0xfd18fc18,0x64195c18,0xf196a19,0xd3196019,0xff18d018,0x6b190018,0x6118cb19,0x40196319,0x42194119,0x43194219,0x44194419,0x3e193f19,0x40193e19,0x5b194219,0x5a185918,0x67196518,0x1a18c319,0x28181b18,0x68196618,0x6518ca19,0x1190719,0x2b193819,0xc4192c19,0x1a191918,0xac195a19,0x3189b18,0x1e180218,0x1a17fa18,0x13181d18,0x1c17fa18,0xe518e618,0xe918e918,0x9718f018,0x89189718,0x97188e18,0xe2188e18,0xe918e618,0xa0189718,0xac189b18,0x9e18ac18,0xa818a818,0xa0189c18,0x5f186018,0xb4185818,0xa218a318,0xc218d418,0x25196b18,0x3f192019,0x6a18c819,0x24196419,0x44192519,0xee18f219,0xec18ec18,0xf118ed18,0x62185918,0x5f186118,0xcb196119,0x6318ce18,0xf3195c19,0xaf18ad18,0xbd18b318,0x4118a418,0x22191f19,0xf9190519,0x5e195d18,0xcd195f19,0x5c185b18,0x3f185d18,0x18184018,0x5190318,0x15195b19,0x6a190f19,0x3b192e19,0x58193d19,0xae18a119,0xab18f718,0xf7194c18,0x21181317,0x39191818,0x3b192919,0x29192e19,0x9118be19,0x5e188c18,0xd190419,0x5a18ac19,0x9e194d19,0x9c1ab01a,0x861a871a,0x731a881a,0xd1a181b,0x7619751a,0x81197419,0x83197d19,0xaa1aa119,0x831aa01a,0x79197c19,0x11197619,0x7f1a4b1a,0x811a7e1a,0x741aab1a,0x841a621a,0x86198019,0x6e1afe19,0x771afc1a,0x6d197c19,0xa1a0119,0x9819fd1a,0x97199919,0x761a9219,0xa11a751a,0x9e19a219,0xa419a319,0xac19a219,0xaa19ad19,0xb119af19,0xb519ad19,0xb319b619,0x8a19b719,0x8719b619,0xb919b819,0xb719f819,0xba19f919,0xb9198719,0x8b19ba19,0xba198719,0xbb19b919,0xf21aab19,0xbe1abe1a,0xbf199519,0xb919be19,0xbe19b819,0x9519b819,0xbb19be19,0xc319b919,0xc4199419,0xbf19c319,0xc3199519,0x94199519,0xc419c819,0xc8199419,0xc9199419,0x9a19cd19,0xcd19ce19,0x9419c919,0x9419cd19,0xd2199a19,0x9a19ce19,0x9a19d219,0xd719d319,0xa0199a19,0xd319d719,0xd7199a19,0xd819a019,0xd819dc19,0xdc19a019,0xdd19a019,0xdf19e319,0xe119e019,0xa519a019,0xa519e119,0xe119e219,0xa019dd19,0xe219e619,0xe619a519,0xe719a519,0xab19eb19,0xeb19ec19,0xab19a519,0xe719eb19,0xf019a519,0xab19ec19,0xae19f019,0xf019f119,0xae19ab19,0xf119f519,0x2919ae19,0xf1b3c1b,0xc91b2d1b,0x211aca1a,0xc11ac71b,0xfb1a031a,0x9b1a0819,0xb61ab51a,0xa51a941a,0x71a931a,0x1a041a,0x21a011a,0x1219ff1a,0x4a1b491b,0x431b1d1b,0x241b261b,0x3e1b3f1b,0x5d1af11b,0x201af01a,0x3a1b3b1b,0x411b2e1b,0x1b1b2b1b,0x4c1b4a1b,0x171b7f1b,0x471a1a1a,0x2e1a481a,0x571a511a,0x4b1a581a,0x3b1a111a,0x31a001a,0xa51a081a,0x931aac1a,0xa31ab91a,0x11a9f1a,0x519fe1a,0x851a531a,0x591a5519,0x701a581a,0x6c1a5819,0x5a197019,0x701a591a,0x701a5a19,0x9d197119,0xb41ab11a,0x5b1a511a,0x541a501a,0x841a551a,0x851a5519,0x54198419,0x8619841a,0x861a5419,0x31a5619,0xb1b0a1b,0x21a341b,0x901a731a,0x911a8e1a,0x8b1a8d1a,0x8a1a8e1a,0x8b1a881a,0x831a811a,0x921a7f1a,0x761a911a,0xba1a961a,0xb61a951a,0x9b1a9f1a,0xb81a991a,0x9a1a961a,0xb71ab41a,0xa81a741a,0x261aa11a,0x481b461b,0xdc1ac41b,0x6a1ac01a,0xfc1ade1a,0x721aec1a,0x151ae91a,0x391b3a1b,0xfc1a6d1b,0x711a6e1a,0xef1aeb1a,0x6f1aef1a,0x371a711a,0x231b221b,0x111b271b,0x1e1b341b,0x271b261b,0xc31ada1b,0x301ad81a,0x381b391b,0x381b301b,0xf1b2f1b,0x3b1b3d1b,0x3e1b251b,0x161b291b,0x441b4b1b,0x471b141b,0x2a1b451b,0x491b481b,0x4c1b1b1b,0x1c1b1a1b,0x1d1b441b,0x471b191b,0xc61b141b,0xc51ae21a,0x351b651a,0x6a1a271a,0x431a371b,0x451b5d1a,0x5e1a311a,0x451a381b,0x261b641a,0x2b1a3e1a,0x401b411b,0x2c1b601b,0x6c1a2a1a,0x231a271b,0x281b591a,0x691a261a,0x3f1a431b,0xf1b711a,0x6e1b701a,0x391a231b,0x6b1a371a,0x101a2d1b,0xf1b701a,0x1e1b7d1a,0x831a211a,0x801a141b,0x151b841b,0x831a131a,0x141a131b,0x201b7b1a,0x821a1f1a,0x151a191b,0x1f1b7b1a,0xa11b811a,0xaa1aa81a,0x781a791a,0xae1a771a,0xad1aac1a,0x4d1a4c1a,0x7c19721a,0x7f1a7e1a,0x581a361a,0x121b571b,0x491b2a1b,0x61b081b,0x241b071b,0x551b571a,0x2e1b381b,0xcd1b2f1b,0xc81ad71a,0x981ab31a,0xd21ab21a,0xe51ae41a,0x2c1ace1a,0xac1b071b,0xad1b311a,0x7e1a1a1a,0x4d1b7f1b,0x541a2b1b,0x6e1a421b,0x11a3b19,0xd1b0c1b,0x7019721b,0x85196c19,0x7f1a5d19,0x831a4a19,0xe3197419,0xc51abd1a,0x91198f1a,0x80199019,0x7a197f19,0xcf199c19,0x5b199d19,0x5019731a,0xd01ae51a,0xbd1ad21a,0xc0199619,0xae198219,0x93197d19,0x9619c019,0x99199b19,0x87199819,0x319fb19,0x74197d1a,0xc5197e19,0x92199719,0xfe199019,0x81a0119,0x8c198b1a,0xa91aa319,0x491a521a,0x7c1a301a,0xcc19c91a,0xf519cb19,0xf119f719,0x9819c219,0xca19c519,0xc719c619,0xd119ce19,0xc819d019,0xc419cb19,0xb519f419,0xf219f619,0xef19ee19,0xf019f319,0xcb19f119,0xc719cf19,0xa319d619,0xe119d919,0xdd19e419,0xf419f119,0xd919f319,0xd619d519,0xee19eb19,0xdd19e719,0xdf19e019,0xbc19c019,0xe919bd19,0xe519ed19,0xd719da19,0xec19d819,0xee19ef19,0xda19de19,0xdb19db19,0xde19a619,0xdf19dc19,0xe219d819,0xe419e519,0xa919e019,0xfe19e319,0x2198819,0xea19e71a,0xe519e919,0xe819ac19,0x6c1a5619,0xe81a5819,0xe519e419,0xe919e619,0xbf19e219,0xc119c219,0xb219ef19,0xc119f219,0xbd19c519,0xd619d319,0xbc19d519,0xbb19ba19,0xd919a219,0xf619a319,0xf419f319,0x9b19c719,0xbb19ca19,0xbc19bd19,0xd519d219,0xcc19ce19,0xcf199d19,0xc119be19,0xc419bb19,0xc619c719,0xa119d119,0xf919d419,0xf819f719,0xcd19d019,0xd019ce19,0xcc19d419,0x4f1a3a19,0x91b511b,0x81b051b,0xc619c31b,0x7919bf19,0xf819fa19,0xd4199f19,0x919a119,0xb1b281b,0x731a4f1b,0x8b1a4919,0x8c198d19,0xad19ed19,0x19ac19,0x719fc1a,0xa7199e1a,0x911a6019,0x89198819,0x7b19b719,0xc6197a19,0xe21ae01a,0xdc1ac01a,0xe11ade1a,0xdf1ad41a,0xa419a61a,0x5719a319,0x531a5d1a,0x7b1a7d1a,0xf61a791a,0xb019b319,0x41a0a19,0xa71a071a,0xcb1acc1a,0xca1b131a,0x221ac71a,0x531b551a,0x281b241b,0x5b1b3f1b,0x7319711a,0x7e1b4a19,0x2b1a301a,0x331a111a,0x3e1b291a,0x641b3c1b,0x261b591b,0xc1a0b1a,0xb61a151a,0xb719f919,0x4c1a2519,0x121a4a1a,0xb1b7a1a,0x761a101a,0x1b701b,0xe1b0d1b,0x731a4d1b,0x77197119,0x761a751a,0xc81ad81a,0x6c1ad71a,0x271b651b,0x901a921a,0x421a911a,0x6f1a4a1a,0xaf19ea19,0x1119ed19,0x1e19781a,0xa41a951a,0x71a941a,0x8d198c1a,0x9c1ab219,0x8d1ab01a,0x8b1a8a1a,0xfd198e1a,0x471a0a19,0x4d1a491a,0x8f198d1a,0x47199019,0x481a4c1a,0x5e1a731a,0x901a741a,0x8e1a8d1a,0x8f1a341a,0x8c1a8c1a,0x851a891a,0x871a8a1a,0x851a881a,0x821a841a,0x831a871a,0x821a861a,0x7d1a801a,0xe819a71a,0xb419ac19,0xf719f819,0x61a0919,0xa81a011a,0xa919e319,0x781a9219,0x4a1a931a,0x6d19721a,0xb1b0219,0xa1b0c1b,0x91b041b,0x931aa21b,0xb61aac1a,0x9f1ab91a,0xf219b11a,0xa619b219,0xa41a941a,0x991ab71a,0x961a9a1a,0xba1ab81a,0x971ab51a,0xa01ab31a,0x9d1ab11a,0x9d1a9a1a,0x811ab41a,0x831a861a,0xaf1aa21a,0xa91a9e1a,0x5c1abc1a,0xd51adf1a,0xc41add1a,0xdc1ada1a,0x601b631a,0x4e1a2a1b,0xa31a7a1a,0xd61add1a,0xe01adb1a,0xde1ac01a,0x5a1a321a,0xc51b5b1b,0xe31ae21a,0xd31ae41a,0xf01ae11a,0xf11a571a,0xe01ae21a,0xe51af61a,0xfa1afd1a,0x701ae91a,0xe81aea1a,0xe71acf1a,0xf81a6b1a,0xf1a631a,0x3d1b3c1b,0xe61acf1b,0x6c1ae71a,0xee1aed1a,0x76196f1a,0x66196e19,0x671af61a,0xef1a6f1a,0xf71aed1a,0xf61a671a,0x651af31a,0x611af11a,0x641afa1a,0x601af41a,0xfe1aec1a,0x6e1a701a,0xbe1adb1a,0x681ad91a,0x6a1af91a,0x6c1afb1a,0xf51aee1a,0xf81a631a,0x201b151a,0x711b3a1b,0xeb1a691a,0xeb1afd1a,0xff1a691a,0x71ace1a,0x101b361b,0x351b221b,0x101b111b,0x331b271b,0x1e1b1e1b,0x171b321b,0x311b171b,0x1b181b,0xa61aa51b,0x41ab71a,0x131b031b,0x1b1b121b,0x4e1a291b,0x211b4f1b,0x231ac21b,0xdb19d81b,0xbb19da19,0xc21b231a,0x151b301a,0x401b391b,0x2b1b281b,0x341ab31b,0x261b351b,0x461b431b,0xf1b201b,0x251b3b1b,0x3e1b241b,0x761a791b,0x341b3d1a,0x401b3f1a,0x1f1b4b1b,0x1b1b421b,0x4a1b121b,0x441b1d1b,0x2a1b431b,0x481b261b,0x161b1c1b,0x4c1b441b,0x1a1b191b,0x1f1b451b,0x461b141b,0x4e1b4d1a,0x501a401b,0x3d1b561b,0x581b561a,0x5e1b5d1b,0x2f1a451b,0x501b521a,0x811a191b,0x411a1f1b,0x521b511a,0x531a2b1b,0x5c1b541b,0x311b5d1b,0x5c1a321a,0x5e1a311b,0x381b5f1b,0x591a281a,0xfd1b5a1b,0xfa1a641a,0x611b601a,0x621a2c1b,0x3e1b641b,0x5f1a2a1a,0x391b631b,0x6e1b6d1a,0x681a3c1b,0x3e1a3f1b,0x621b611a,0x661a3c1b,0x331b671b,0x6d1b6f1a,0x6a1b691b,0x681a431b,0x3f1b691b,0x6b1b6a1a,0x181a371b,0x161b741a,0x6f1b6b1a,0x351a2d1b,0x661b651a,0x781a1d1b,0xd1b771b,0x731b721a,0x741a121b,0x1c1b751b,0x761b771a,0x791a0c1b,0x451b781b,0x301a2f1a,0x7c1a201a,0x841a211b,0x151b821b,0x791b7a1a,0xe1a0b1b,0x721b711a,0x7d1b7c1b,0x1e1a211b,0x1b1b7e1a,0x801b7f1a,0x801a171b,0x171a141b,0x841b831a,0x6e1a131b,0x231b6c1b,0xaf1a9e1a,0x831ab01a,0xb4197919,0x82198119,0x83197d19,0x8119b419,0x7e197d19,0x3b198319,0x76196e1a,0x75197619,0x4b1a1119,0x761a3b1a,0xa71aab19,0x741aa81a,0x621a5e1a,0xa81aab1a,0x841a741a,0x80198519,0x77198019,0x77198619,0x7b198019,0xfa197b19,0x7c197c19,0x6d198319,0x6c196d19,0x77198619,0x7c197b19,0x86196d19,0x1197719,0xa1a061a,0xfa19f81a,0xbe19b719,0xab1acc1a,0x621aab1a,0x5f1a5f1a,0xf21af51a,0xd91af21a,0xab1abe1a,0xf21a5f1a,0xdb19e31a,0x2d19df19,0xc91b2c1b,0x131b211a,0xff1ac71b,0x11a0919,0x51a011a,0xf11a021a,0x5d1a651a,0x501a511a,0x4f1a4f1a,0x5c1a521a,0xbd1a5c1a,0x571af11a,0x551a531a,0xf11a5c1a,0x511a571a,0x5c1a4f1a,0x5b1a5a1a,0x581a511a,0x5a1a591a,0x561a541a,0x571a581a,0x541a551a,0x5c1a511a,0x581a571a,0x511a5a1a,0x541a571a,0x341a581a,0x219ff1a,0x6d1afc1a,0x6a1a6a1a,0xde1af91a,0x601aec1a,0x371a721a,0x221b361b,0x1d1b1e1b,0xda1b261b,0xc31ac41a,0x7b1a791a,0xae1a781a,0xac1aa21a,0x301a7c1a,0x361a7e1a,0x581a3d1a,0x51b081b,0x241b061b,0x571a361a,0x411b381b,0xcd1b2e1b,0xd71ae81a,0x971ab31a,0xd21a981a,0xe41ad11a,0xc91ace1a,0xac1b2c1a,0x311b181a,0x1b1a1a1b,0x4d1b7e1a,0x2b1a441b,0x6f1a421a,0x1196e19,0xc1b021b,0x6d196c1b,0x72197219,0x70197119,0x53198519,0x741a5d1a,0x4a196f19,0x6d1a4a1a,0x83198319,0x74197e19,0xf11ae319,0x8f1abd1a,0x9119c019,0x7b197a19,0x80198019,0x7f198519,0x9f199d19,0x9c199c19,0xcf199b19,0xe61ae519,0xbd1ad01a,0x9619c519,0x81198219,0xb419b419,0xae19f519,0x7519ae19,0x82197d19,0xae19b419,0x92199619,0x93199319,0xc0199119,0xca199819,0x9b199b19,0x99199c19,0x8b198719,0x7d19fb19,0x74197519,0x96199219,0xc519c519,0x97199819,0xfd1a0119,0x90199019,0xfe198919,0xfc198c19,0x81a0819,0x8b19fb1a,0x4e1a4f19,0xa31aa31a,0xa91ab91a,0x4f1a521a,0x7c1aa31a,0x491a7a1a,0x2e1a491a,0xc91a301a,0xcc19d019,0xb419f519,0xc219f719,0x9819ca19,0xc219ca19,0xce19c619,0xd119d519,0xc919c819,0xf419cb19,0xb519f919,0xea19f219,0xf319ee19,0xf019ec19,0xcc19cb19,0xd619cf19,0xa319de19,0xe219e119,0xf119e419,0xf419f719,0xd119d919,0xeb19d519,0xee19ec19,0xe419dd19,0xc019e019,0xbc198f19,0xea19e919,0xda19ed19,0xd719d319,0xf319ec19,0xde19ef19,0xda19d619,0xe319db19,0xdc19a619,0xdf19dd19,0xe919e219,0xe019e519,0xa919e819,0x51a0219,0xfe19fe1a,0x88198919,0xee19e719,0xe519ea19,0xac19ed19,0x861a5619,0xe8196c19,0xe419e019,0xe719e619,0xbf19e919,0xc219c619,0xf619ef19,0xc119b219,0xc519c219,0xda19d319,0xbc19d619,0xba198d19,0xa119a219,0xf619d919,0xf319ef19,0xcf19c719,0xbb199b19,0xbd19c119,0xd319d219,0xcc19d519,0x9d19d419,0xbf19be19,0xc419c119,0xc719cb19,0xd919d119,0xf919a119,0xf719f419,0xc919d019,0xd019cd19,0xd419d119,0x291a3a19,0x91b4f1a,0x51b041b,0xc419c31b,0x7919c619,0xfa197c19,0x9e19a119,0x9f199f19,0xd4199d19,0xa1b0b19,0x91b091b,0x281b2b1b,0x501a4f1b,0x4919731a,0x4f1a4e1a,0xba198b1a,0xed198d19,0xad19af19,0x81a0019,0x6219fc1a,0x21a5e1a,0x881a021a,0x93199319,0x97199219,0x99199719,0x9c199c19,0x9e199f19,0xa2199e19,0xa419a419,0xa719a819,0xaa19a719,0xad19ad19,0xb019b119,0xb319b019,0xb619b619,0x7a198a19,0x7f197a19,0x7a1a5d19,0x651a5d19,0xb619b01a,0xa7197a19,0xb019ad19,0xa4199e19,0x9719a719,0x9e199c19,0x21a6219,0x5f19931a,0x931a621a,0x65197a19,0x7a1a661a,0x671a6619,0x5f1a631a,0x6b19931a,0x931a631a,0x7a19b019,0xb01a6719,0x681a6719,0x931a6b1a,0x6c199719,0x971a6b1a,0x6819b019,0xb01a6a1a,0x6d1a6a19,0x6c1a6f1a,0x7119971a,0x971a6f1a,0xb019a719,0xa71a6d19,0x6e1a6d19,0x971a711a,0x69199e19,0x9e1a711a,0x6e19a719,0xa71a701a,0x721a7019,0x691a641a,0x61199e1a,0x9e1a641a,0x7219a719,0x601a601a,0x9e1a611a,0x90198919,0x91199119,0x88199319,0x8a197a19,0xb719b719,0x7b19fa19,0xbf1ac619,0xe11ae01a,0xd41ad31a,0xde19a31a,0xa619a619,0xa419a819,0xf01a5719,0x7d1a5d1a,0x7b1a801a,0xb219b01a,0xf619f619,0xb319b519,0x61a0a19,0xcb1a041a,0xa71aff1a,0xab1aa71a,0x131acc1a,0xca1b2d1b,0x241a221a,0x5b1b551a,0x711a5a1a,0x491b4a19,0x861a861b,0x7e1a811a,0x471a301a,0x4a1b4c1b,0x7e1a861b,0x4c1a301a,0x271b4a1b,0x3d1a351a,0x3d1a271a,0x231a361a,0x361a271a,0x361a231a,0x391a241a,0x241a231a,0x241a391a,0x391a221a,0x2b1a221a,0x391a331a,0x3a1a2b1a,0x381a411a,0x2c1a2a1a,0x3a1a111a,0x2a1a381a,0x3a1a291a,0x111a2a1a,0x1a031a,0x41a001a,0x61a061a,0xff1a091a,0x3419ff19,0xff1a431a,0x371a4319,0x61a001a,0x2919ff1a,0x111a2a1a,0x291a461a,0x111a111a,0xff1a001a,0x3719ff19,0xff1a2d1a,0x331a2d19,0x461a441a,0x2b1a111a,0x111a441a,0xff1a111a,0x781a3319,0xf1a1019,0xf19781a,0x1f1a0e1a,0x781a201a,0x1f1a1919,0x7819781a,0xd1a0e19,0xd19781a,0x191a181a,0x1819781a,0x181a191a,0x31a161a,0x151a131a,0x191a151a,0x151a161a,0x121a161a,0x319871a,0x1d1a151a,0x871a1c1a,0x1d1a0c19,0x1519871a,0xb1a121a,0x871a0c1a,0xb61a1519,0xf919b519,0x481a2519,0x121a4c1a,0x7a1b751a,0x1c1a101b,0x1b761a,0xd1b011b,0x7219711b,0x4d1a4d19,0x731a491a,0x781a7719,0xd81a751a,0xc81ac31a,0x251a421a,0xea1a4a1a,0xaf19f219,0x31a1319,0x111a111a,0xae19751a,0xab19ae19,0xa519a519,0x9a19a019,0x94199a19,0xb8199519,0x1c198719,0x95199a1a,0xae19b819,0x9a19a519,0x131a1419,0x171a111a,0x111a141a,0x9a19ae1a,0xb819b819,0x101a1c19,0x2019781a,0xb81a211a,0x781a1019,0x171a1a19,0x1b1a111a,0x111a1a1a,0xb819ae1a,0x78197819,0x1e1a2119,0x1b1a1e1a,0x111a111a,0x7819ae1a,0xba1a9519,0x8d1aa41a,0x7198e19,0xfc1a071a,0xb2198c19,0x9c1a981a,0x71a0a1a,0x8e198e1a,0xfd199019,0x2e1a4719,0x901a491a,0x8d198e19,0xbc198d19,0x47198f19,0x4c1a4d1a,0x21a731a,0x341a5e1a,0x8f1a731a,0x8f1a8c1a,0x851a891a,0x841a891a,0x841a821a,0xac1a801a,0xa719aa19,0xa919a719,0xb419e819,0xf8197919,0xa719a919,0xa819a819,0xe319a619,0xa31a9f19,0x7a1a7a1a,0x7f1a7c1a,0x831a7f1a,0x871a871a,0x8d1a8a1a,0x901a8d1a,0x921a921a,0x781a751a,0x7b1a781a,0x801a801a,0x891a841a,0x8f1a891a,0x731a731a,0xa11a741a,0xa11a731a,0x781aa01a,0x891a801a,0x871a7f1a,0x9f1a8d1a,0x7f1a7a1a,0x9f1a9b1a,0x891a7f1a,0xa01a731a,0xa01a891a,0x971a9d1a,0x7f1a9b1a,0x971a981a,0x891a7f1a,0x9a1a9d1a,0x9a1a891a,0x981a991a,0x8d1a7f1a,0x981a9c1a,0x781a8d1a,0x991a891a,0x991a781a,0x9e1a961a,0x8d1a9c1a,0x9e1aa21a,0x781a8d1a,0x951a961a,0x951a781a,0xa21a941a,0x921a8d1a,0x941a781a,0x931a931a,0x921aa21a,0x4c1a4a1a,0x219721a,0xb1b031b,0x31b0a1b,0xb21b041b,0xb119b019,0xaf19b119,0xa619f219,0x941aa51a,0xb81ab71a,0xb51a991a,0x971a9b1a,0xaa1aa01a,0xa21ab11a,0xaf1aae1a,0xbb1aa91a,0x5c1abc1a,0xa91a521a,0xd41adf1a,0x4e1ad51a,0x7a1a491a,0xd51add1a,0xe01ad61a,0xc01abf1a,0x281a321a,0xe41b5a1a,0xd31ad11a,0xde1ae01a,0xf91af91a,0xf61af71a,0xf11af31a,0xf31ae31a,0xe21ae31a,0xf91ae01a,0xf61af61a,0xe21af31a,0xf21ad91a,0xf51af51a,0xfb1af81a,0xee1afb1a,0xec1aed1a,0xea1ae91a,0xfe1aea1a,0xfc1afc1a,0xdc1ade1a,0xdc1afc1a,0xd91ada1a,0xfb1af51a,0xd91adb1a,0xfc1afb1a,0xd81ada1a,0xfc1aea1a,0xdd1ad81a,0xfb1adb1a,0xfb1add1a,0xea1aed1a,0xd71ad81a,0xea1aec1a,0xdf1ad71a,0xed1add1a,0xdf1ae11a,0xec1aed1a,0xe81ad71a,0xe81aec1a,0xe11ae71a,0xef1aed1a,0xe11ae41a,0xf41aef1a,0xe71aec1a,0xe71af41a,0xe41ae61a,0xeb1aef1a,0xe41ae51a,0xfa1aeb1a,0xe61af41a,0xeb1ae51a,0xfa1afd1a,0xe51ae61a,0x721ae91a,0xe81a701a,0xcf1acd1a,0xfb1a6b1a,0xcf1af81a,0xe61ad01a,0x6f1a6c1a,0x6f1aed1a,0x76197419,0xf31a6619,0xf71af61a,0x671a681a,0x661af31a,0x611a651a,0xfa1af41a,0x611af41a,0xfe1a601a,0x701aea1a,0xd61adb1a,0x681abe1a,0xf91af71a,0x6b1afb1a,0xf51a6c1a,0x631a5f1a,0xcb1aff1a,0x71ace1a,0xff1b061b,0x351b361a,0x351b101b,0x111b341b,0x341b271b,0x1e1b331b,0x321b331b,0x321b171b,0x1b311b,0xa51b0e1b,0x1b011a,0xa61aa61b,0xba1aa41a,0xb81aba1a,0xb71ab71a,0xb11ab41a,0xaa1ab11a,0xa81aa81a,0xff1aa71a,0xff1aa81a,0xb71b061a,0xa81ab11a,0xba1aa61a,0x11ab71a,0xb71aa61b,0x61aa81a,0xa81b051b,0x41b051a,0x11b021b,0x31ab71b,0xb71b021b,0xa81ab71a,0xe1b041a,0xc1b0d1b,0xb1b0c1b,0xc1b281b,0x241b281b,0xa51aac1b,0xc1b0e1a,0x251b241b,0x251b0c1b,0x181b291b,0xe1aac1b,0xc1b0e1b,0xe1b291b,0xf1b291b,0x181b171b,0x1d1b0e1b,0x171b1e1b,0x1d1b1c1b,0x171b171b,0xf1b0e1b,0xf1b171b,0x161b201b,0x171b1c1b,0x161b1f1b,0x171b171b,0x151b201b,0x151b171b,0x1f1b301b,0x301b171b,0x301b1f1b,0x141b2f1b,0x2f1b1f1b,0x2b1b2e1b,0x191b091b,0x2f1b141b,0x2e1b2f1b,0x91b091b,0x71b081b,0x2c1b071b,0x131b2d1b,0x231b211b,0x71b091b,0x131b2d1b,0x221b231b,0x2d1b091b,0x1a1b131b,0x2f1b191b,0x91b2f1b,0x131b131b,0x101b221b,0x111b101b,0x271b271b,0x2a1b261b,0x2a1b271b,0x131b121b,0x271b101b,0x2f1b1a1b,0x1b1b131b,0x131b1a1b,0x271b131b,0x291b121b,0x4e1a461a,0xc11b211b,0xd81ac21a,0xdb19df19,0xbc1ac219,0xbb1abb1a,0x231b371a,0x3f1b401b,0x371b281b,0xa91abb1b,0xb91aa91a,0xb61ab61a,0xb31ab51a,0xb21ab31a,0xb01ab01a,0xae1aaf1a,0xad1aae1a,0xae1b311a,0x321b311a,0xb01ab31b,0x371aae1a,0xb61aa91b,0x371b361a,0xae1ab61b,0x331b321a,0xae1ab31b,0x361b331a,0xb31ab61b,0x361b351a,0xb31ab31b,0x341b331a,0x3c1b3d1b,0x791a791b,0x761a771a,0x3b1a761a,0x3b1b3d1b,0x911a761b,0x8e1a911a,0x8b1a8b1a,0x861a881a,0x491a861a,0x861b481b,0x461b481a,0x8b1a911b,0x3a1a861a,0x911b3b1b,0x3a1b391a,0x911a911b,0x461a861a,0x461a911b,0x911b431b,0x441b431a,0x441a911b,0x391b4b1b,0x4b1a911b,0x4b1b391b,0x381b421b,0x421b391b,0x421b381b,0x381b451b,0x471b451b,0x301b471b,0x341a341a,0x851a8c1a,0x821a851a,0x7d1a7d1a,0x3c1a791a,0x3c1a7d1b,0x341b3e1b,0x7d1a851a,0x471b381a,0x411a341b,0x341b381b,0x7d1a341a,0x341b3e1a,0x3f1b3e1a,0x411b401b,0x4b1a341b,0x1f1b161b,0x471b4c1b,0x451b191b,0x1f1b421b,0x441a461b,0x401b4d1a,0x501a2f1a,0x401a3d1b,0x2f1b561a,0x521a411a,0x821a191b,0x411b811b,0x511a3a1a,0x221a2b1b,0x321b531a,0x5c1b5b1a,0x691afd1b,0x2a1a641a,0x5f1a381a,0x331a391b,0x3c1b6d1a,0x681b671a,0x2c1a3e1b,0x3c1b611a,0x661a351a,0x2d1a331b,0x181b6f1a,0x741b731a,0xc1a1d1b,0xd1b781a,0x721a0e1a,0x161a121b,0x1c1b741a,0x771a1d1a,0xb1a0c1b,0x111b791a,0x3e1a2c1a,0x3e1a111a,0x421a261a,0x111a3b1a,0x251a481a,0x301a421a,0x481a2e1a,0x431a3f1a,0x3d1a341a,0x3c1a351a,0x3f1a3c1a,0x301a341a,0x421a481a,0x111a421a,0x421a261a,0x281a261a,0x3c1a3d1a,0x401a341a,0x341a3d1a,0x421a301a,0x301a281a,0x321a281a,0x341a401a,0x381a301a,0x2f1a411a,0x401a2f1a,0x301a301a,0x311a321a,0x381a451a,0x301a2f1a,0x451a311a,0x7b1a201a,0xe1b7c1b,0x711a0f1a,0x7d1a1e1b,0x9f1b7e1b,0x921ba21b,0xd1c0e1b,0x9f1bea1c,0x9e1b921b,0x8c1b931b,0x151b8a1b,0x1b1c1a1c,0xc01bad1c,0xc41bab1b,0xc51bc61b,0xb21bc71b,0xad1bc61b,0xae1bac1b,0x8a1bcf1b,0xf1b8c1b,0xfb1c101c,0xe1c0b1b,0xf11c0c1c,0xec1be01b,0xa91ba21b,0x871b921b,0x9a1b8f1b,0xba1bbd1b,0x141bc81b,0x211c151c,0xb21bb91c,0x181bc71b,0x1b1c061c,0xdb1bdc1c,0xbf1bd91b,0xc01bc11b,0x181c1a1b,0x9f1c1b1c,0x971b961b,0xa81baf1b,0xa51bb31b,0x9c1ba41b,0xee1bed1b,0xef1bf01b,0xeb1bf11b,0x61c031b,0x81c041c,0xe1c0d1c,0x101bf51c,0x2c1be51c,0x2d1be71c,0x1e1c281c,0x281c1d1c,0x1e1c1f1c,0x891bd21c,0x8b1b861b,0xd01b871b,0xdf1c191b,0xd41c161b,0x891bce1b,0x8b1b9e1b,0x991b861b,0x961b971b,0x171c161b,0x161c041c,0x181c061c,0xc51bc41c,0xc01bc31b,0xab1bc11b,0xb21b911b,0xa81bb31b,0xb31b911b,0x9f1b961b,0x8e1b8d1b,0x8a1b931b,0x8f1b901b,0x951b8b1b,0xa11ba01b,0xa91b921b,0x911b901b,0x9d1b9b1b,0x851b9a1b,0x861b871b,0x9e1b8d1b,0xc91bc81b,0x861bcd1b,0xd21bd01b,0xa21b971b,0xec1b9f1b,0xf11beb1b,0x9b1b991b,0xa81ba81b,0x991bac1b,0xa21ba01b,0x201ba11b,0xf21c101c,0xc81bca1b,0xd31bcd1b,0xd51b881b,0x2d1be21b,0x901be71c,0x921b9e1b,0xbc1bbb1b,0xa61baf1b,0xa91b901b,0x141c151b,0xbc1c1a1c,0xaf1bae1b,0xa41b931b,0xa11ba51b,0x981bb11b,0xa81bae1b,0xa01baf1b,0xa91ba71b,0xc21bb81b,0xa31bb71b,0xab1bad1b,0xa11b951b,0xb51b981b,0xbd1bae1b,0xfd1bf61b,0x9c1c071b,0xa71ba61b,0xd61bd91b,0x9f1bd71b,0x8d1b9e1b,0x81c0b1b,0x81c0e1c,0xd1c0a1c,0xe31c161c,0xab1c171b,0xb11bb41b,0x141c131b,0xa51c211c,0x931b961b,0xa51b991b,0xdd1b9b1b,0xd91bd61b,0x121c051b,0x871c021c,0x8f1b8b1b,0x9b1b9c1b,0xab1ba51b,0xa31bb11b,0xb61bba1b,0xdd1bb31b,0xd81bdb1b,0x8d1bce1b,0x931b891b,0xa41b8e1b,0xa01ba21b,0xb51ba91b,0xc01bbf1b,0xb01bc61b,0xb41bc51b,0xb81bc21b,0xc71bcc1b,0xc31bb71b,0x981bb01b,0x291c2a1b,0x1a1c1a1c,0x2a1c141c,0x941bb01c,0x181b951b,0x291c1a1c,0x191c181c,0x121c161c,0x2d1c2c1c,0x931b8d1c,0xb81b961b,0xb11b981b,0x141c2a1b,0x181c131c,0x191c291c,0x2c1c171c,0xda1c2b1c,0xdb1bd81b,0xb01b981b,0xac1b951b,0x991b971b,0x881b8a1b,0x901b8e1b,0x8f1b9a1b,0xd41b8c1b,0xaa1bcf1b,0x8d1b931b,0xd51b8a1b,0xd11b881b,0x871bd01b,0xd11b851b,0xda1b871b,0xd01bd21b,0xcf1bd31b,0xa21bd71b,0xa31bad1b,0x981bc31b,0xb41bb71b,0xb11bb81b,0x941ba01b,0xa61b9c1b,0x851b881b,0xda1bdc1b,0x8c1bdb1b,0xce1baa1b,0xc01bb51b,0xa61bad1b,0x8e1ba41b,0xe31c111b,0xe91be51b,0xdf1be01b,0xe81be61b,0xef1bec1b,0xee1be41b,0x101bfb1b,0xf11bf61c,0xf91bef1b,0xf31bf71b,0xf01bfc1b,0xf41bde1b,0x51bfe1b,0x21bfd1c,0x51bff1c,0xfd1c071c,0x81c091b,0xa1bff1c,0xb1bfd1c,0xb1c0a1c,0xa1c0d1c,0x111bea1c,0x111c0e1c,0xe1c0c1c,0xf1bfa1c,0xd1bfb1c,0x101be11c,0xe21bfc1c,0xf41be71b,0xf31be21b,0xf51bdf1b,0xfa1be51b,0xea1be71b,0xdf1bf81b,0x131be01b,0x121c021c,0x71c0a1c,0x51c091c,0x2b1c171c,0xb31bb91c,0xac1bb21b,0x971bad1b,0x61c1b1b,0x1c1c1d1c,0x151c211c,0x21c001c,0x1e1c211c,0x1c1c1f1c,0x1d1c1b1c,0x281c1e1c,0x201c061c,0x281c221c,0x261bf71c,0x101bf61c,0x241c001c,0x211c011c,0x231c221c,0x231c241c,0xaf1c221c,0xbb1bb61b,0x31c251b,0x261bfe1c,0x271c201c,0x251c201c,0x251c271c,0x271c261c,0xe91c191c,0x1bdf1b,0x71bf71c,0xd41bd21c,0xa61b891b,0xa71ba91b,0xe31c2c1b,0x131be71b,0x2a1be61c,0x2a1be91c,0xcb1be61c,0xbd1bb51b,0xbc1bbd1b,0xbb1bbb1b,0xba1bb61b,0xc91bba1b,0xc81bc81b,0xbd1bcb1b,0xbb1bbd1b,0x9e1bba1b,0x8b1b901b,0x41c161b,0x911c061c,0xb21b941b,0xa81b911b,0x9d1b9b1b,0x911b941b,0xa61b9a1b,0x861b851b,0x8d1b891b,0x8b1b861b,0x201bd01b,0x101c261c,0xcc1bcd1c,0xca1bca1b,0xc81bcb1b,0x851bd31b,0xe21b881b,0x2d1c131b,0x9a1ba61c,0xbc1b901b,0xae1bbd1b,0xa31ba11b,0xae1bb11b,0xa81bac1b,0xad1bb51b,0x71bae1b,0xf61bfb1c,0xfe1bf61b,0x9c1bfd1b,0xa61ba41b,0xdf1c161b,0xab1be31b,0xb41bc11b,0x961b991b,0xdd1ba51b,0xd61bd81b,0xdb1bd91b,0x51bdd1b,0x121c2b1c,0x9d1b9c1c,0xce1b9b1b,0x8d1baa1b,0xbe1bb51b,0xc61bbf1b,0xb01bb21b,0xc91bcd1b,0xba1bba1b,0xc71bb91b,0xc61bc71b,0xc41bc41b,0xb71bc31b,0xc21bb71b,0xb41bb41b,0xbf1bc11b,0xbe1bbf1b,0xb51bb51b,0xca1bcb1b,0xb51bbf1b,0xb71bca1b,0xbf1bb41b,0xc41bc71b,0xcd1bb71b,0xc71bba1b,0xca1bbf1b,0xcc1bcc1b,0xc71bcd1b,0xbf1bb71b,0xc31bcc1b,0xb01bc51b,0xb21bb01b,0x2d1b941b,0x121c131c,0x2b1c121c,0xb81c2c1c,0x981bb71b,0xce1b8c1b,0x8a1bd41b,0xd51bcf1b,0xd31b851b,0xda1bd11b,0xd21bdc1b,0xda1bd81b,0xd01bd01b,0xd31bd11b,0xd51bd31b,0xd41bcf1b,0xdc1bd21b,0xdc1bd41b,0xd81bd91b,0xd31bd01b,0xd81bd61b,0xcf1bd31b,0xd91bd41b,0xd61bd71b,0xcf1bd31b,0xd71bd91b,0x971ba21b,0xa31bad1b,0xa21ba11b,0xa71b9c1b,0xa01ba01b,0x941b951b,0x9d1b941b,0xa61b9c1b,0x881b8e1b,0x931b8c1b,0xe11baa1b,0x111c0c1b,0xea1c111c,0xe31be71b,0xe51bdf1b,0xe71c111b,0xe51be31b,0x111be11b,0xe21be61c,0xde1bde1b,0xe81be41b,0xeb1be81b,0xec1bec1b,0xe91be01b,0xde1be61b,0xec1be81b,0xe61be91b,0xed1bee1b,0xef1bef1b,0xe81beb1b,0xde1be41b,0xef1bee1b,0xe41be81b,0xe01bf81b,0xf21bf11b,0xf51c101b,0xf41bf01b,0xed1bf71b,0xf71bf01b,0xf21bf91b,0xf91bf51b,0xf81bf51b,0xf71bed1b,0xef1bf91b,0xf91bed1b,0xf81bf91b,0xfa1bf11b,0xf71bfb1b,0xf41bf71b,0xfc1bf31b,0xf71bfa1b,0xee1bf01b,0xfe1bde1b,0x51c041b,0xb1c081c,0xff1c051c,0xa1c071b,0x51c081c,0xa1bff1c,0xfd1c091c,0x51bfd1b,0xb1c0b1c,0xd1c0c1c,0xea1bfa1c,0xf1c0f1b,0xd1bea1c,0xc1c0d1c,0xe11be11c,0x101be51b,0xf1c101c,0xfc1c0d1c,0xe21bf31b,0xde1bf41b,0xdf1be21b,0xf51bf81b,0xfc1bfa1b,0x131be71b,0x21c211c,0x41c051c,0xb91c171c,0xb31bba1b,0x1b1c151b,0x1c1c1c1c,0x211c221c,0x1b1c1c1c,0x1f1c1e1c,0x1c1c281c,0xf91bf21c,0x281c281b,0x61c1d1c,0x31c061c,0x201c201c,0x281bf21c,0x1c1c221c,0x281c281c,0xf71bf91c,0x11bf71b,0x261c221c,0xf61bfe1c,0x211c001b,0x241c231c,0x11c221c,0x231c001c,0xaf1c241c,0xb61bb31b,0x201c251b,0x31c031c,0xfe1c041c,0x261bfe1b,0x191c251c,0xe91c291c,0x21bff1b,0x1c001c,0xf71c011c,0xfb1bf71b,0x71c071b,0x1bff1c,0x171c2c1c,0x131be31c,0xe61be21c,0x291be91b,0x2b1c2a1c,0x2d1d2c1d,0x461f4b1d,0x631f491f,0x61236023,0xfd22f823,0xec22f922,0xed21f021,0x691e6521,0x5c1e661e,0x5d1e611e,0xb1d071e,0x951d081d,0x97239623,0x6c1d6b23,0xad1d6d1d,0xab20a720,0x6e236820,0x34236c23,0x371f361f,0xb121ab1f,0x1e21af21,0x21252025,0xc31dc825,0xbd1dc71d,0xbf23be23,0x301d3523,0x491d331d,0x4b1e4a1e,0x441f4b1e,0x921f471f,0x7f207e20,0x681d6d20,0xa91d6b1d,0xab1eaa1e,0xb920bc1e,0x4620bd20,0x491c481c,0xa921a81c,0xc821aa21,0xc421c621,0x451c4221,0x1f1c431c,0x231f211f,0x2f1fca1f,0xf01fc920,0xf31df21d,0xce22c81d,0x9722cc22,0x9b1f991f,0x98229b1f,0x5b229922,0x571f561f,0x39213c1f,0xa0213d21,0xa323a223,0x56235523,0x235723,0x11e051e,0xf7240c1e,0x38240b23,0x391e3b1e,0x3a233f1e,0x99233d23,0x951e971e,0x2e1c311e,0xb11c2f1c,0xaf20ae20,0xb11eac20,0xa21ead1e,0x9c1e9d1e,0xd01cd51e,0x721cd31c,0x6e216b21,0xe31ee021,0xed1ee11e,0xeb24e724,0xb221af24,0xaa21b021,0xa821a521,0x2e1f2c21,0x241f2f1f,0x281f2a1f,0xc121bb1f,0x3b21bf21,0x3d213c21,0xc220921,0x48220d22,0x4b224a22,0x3d223b22,0x3d223f22,0x3f223e22,0xb220e22,0x81220f22,0x7d1f7f1f,0xad22ab1f,0xd122af22,0xd222d522,0xa91fa522,0xb01fa61f,0xb422b622,0xa922ad22,0xd322ac22,0xd61dd51d,0xc424be1d,0x6924c224,0x671c661c,0x8523831c,0x71238723,0x72237523,0x2230023,0xe3230323,0x3d203c1f,0xaa1cad20,0x2e1cac1c,0x311d301d,0xe1fdb1d,0xd41fc120,0xd220201f,0x1420171f,0x3d201820,0x391d381d,0x231fd21d,0xe1fd120,0xf230b23,0xc11cc323,0x841cbf1c,0x71207020,0x831fee20,0xa61fec20,0xaa20ac20,0xc120c420,0x7720c520,0x781c7b1c,0xd620d91c,0xa620d720,0xa91ea81e,0xeb20e71e,0x620e820,0x7210b21,0x4210321,0x4a210521,0x4b207120,0x711d7420,0x7b1d751d,0x7d1c7c1c,0xe61ee41c,0x8d1ee71e,0x891d861d,0x4625491d,0x41254725,0x3f253e25,0x981d9625,0x281d991d,0x2b232a23,0xe024e523,0xdf24e324,0xe024e324,0x6250b24,0x9c250a25,0x9d1d991d,0xb921b31d,0x2121b721,0x231f221f,0x9f219c1f,0xd721a021,0xd821da21,0x8c1c8b21,0xf31c8d1c,0xf721f921,0x341c2e21,0x491c321c,0x4b1f4a1f,0xca21c71f,0x7521c821,0x77227622,0x33223522,0x19223222,0x1a221d22,0x4c224a22,0x66224d22,0x691f681f,0x921c8f1f,0x571c931c,0x55225122,0xd11dcb22,0x571dcf1d,0x551f541f,0x7c1f7f1f,0x831f7d1f,0x7f1f7e1f,0xd61dd91f,0x5c1dda1d,0x561c571c,0x961f941c,0xab1f971f,0xa71fa41f,0x981c961f,0xd1c991c,0x91d061d,0x981f961d,0x951f991f,0x931c8f1c,0xf11cf31c,0x2d1cef1c,0x2b212721,0xed22eb21,0x2f22ef22,0x2b232823,0x30233323,0x14233123,0xe1d0f1d,0x39233e1d,0x35233823,0x31233323,0x19231e23,0xbb231823,0xbf23bd23,0x7d237923,0x80237a23,0x83238223,0x6f236c23,0xd8236d23,0x1220111f,0xae23a820,0x1d23ac23,0x1f1e1e1e,0xd1e0b1e,0x351e0f1e,0x331c2f1c,0xaf1cb41c,0x3b1cae1c,0x371e361e,0x401e3e1e,0x401e411e,0x3f1ff920,0xa71cab20,0x6e1caa1c,0x711c701c,0xe9203b1c,0x66203c1f,0x6a1c6c1c,0x1a201d1c,0x4c201e20,0x501e521e,0x671c6d1e,0xb51c6b1c,0xb31cb01c,0x311e2c1c,0x6c1e2d1e,0x6f1e6e1e,0x7a1e791e,0x571e7b1e,0x65207920,0xbd1cba20,0x4d1cbb1c,0x491d461d,0x721e711d,0x991e731e,0x97209620,0xbc1cb620,0x821cba1c,0x7c1e7d1e,0xa620a91e,0x5d20a720,0x5b1d581d,0x4e1d551d,0xac1d511d,0xad20a920,0x98209d20,0x60209920,0x5e207f20,0x771c7c20,0xa31c761c,0x9f1e9c1e,0x521c501e,0xe11c531c,0xdf20de20,0xce20d220,0xbe20d420,0xc21cc41c,0xf420f31c,0xfd20f520,0xf920f820,0x20fe20,0x7d210121,0x791c761c,0xef20821c,0xce206d1f,0xd11cd01c,0x19211c1c,0xff211d21,0x210320,0x611d6321,0xbb1d5f1d,0xb71cb91c,0x131d0f1c,0x321d101d,0x331c351c,0xe21edc1c,0x4c1ee01e,0x46214721,0xf11eec21,0xc11eed1e,0xbf24be24,0xbc24bb24,0x2524bd24,0x21212021,0x24fe21,0xfa250125,0xfb24fd24,0xf924fb24,0xe524f724,0xe124de24,0x30252e24,0xf253125,0xd1f0c1f,0x43253e1f,0x8b253f25,0x8e218d21,0x2e253221,0xd253425,0x111f101f,0x5e21611f,0xe8216221,0xeb22ea22,0xa521a322,0xa221a621,0xa0219c21,0x9b219e21,0xc0219c21,0xc323c223,0xbd21c223,0x2421be21,0x251f291f,0xdf1ce51f,0xb31ce31c,0xb421b821,0xa321aa21,0xdb21a621,0xde21dd21,0xdf21dd21,0xe021e021,0xe221e121,0x3a1f3921,0x451f3b1f,0x461f491f,0xeb1ce91f,0xfa1ced1c,0xf821f421,0xec21f121,0xaa21eb21,0xac1da61d,0xe61cea1d,0x631cec1c,0x5f256125,0x58215325,0x58215421,0x591f5b1f,0x1a221f1f,0x2c221d22,0x2e222822,0x621f6122,0x2d1f631f,0x2f222e22,0xc21dc122,0xbe1dc01d,0xc11dc21d,0xbe1dc01d,0xe71dc11d,0xe31de41d,0x19221e1d,0x79221822,0x7b1f7a1f,0x5022531f,0xee225122,0xf21cf41c,0x3c223a1c,0xce223d22,0xcc1dcb1d,0x5622501d,0x6a225422,0x6d226c22,0x6d226b22,0x60226f22,0x64226622,0x5a225f22,0x92225d22,0x931c951c,0x871c8c1c,0x831c861c,0x87228522,0x84228222,0x8f228522,0x8e1f921f,0x881f861f,0x901f891f,0x911f931f,0x8e22881f,0x78228c22,0x79227d22,0xe622e522,0x9f22e722,0x9d1f9c1f,0xc722c41f,0xe522c522,0xe41de61d,0xe61de71d,0xe71de51d,0xe61de41d,0xa61fa41d,0x971fa71f,0x981c9b1c,0xdc22da1c,0xd722dd22,0xd322d022,0xcf22cc22,0xb722cd22,0xb322b222,0x7f227c22,0x8227d22,0xc220e22,0xdf1ee222,0x81ee31e,0xb230a23,0x5230123,0xfd230223,0xf91dfb1d,0x8230c1d,0x14230e23,0x16231023,0x831d7e23,0x241d7f1d,0x25232723,0x20232623,0xf8232223,0xfc1dfe1d,0x821c7f1d,0x2e1c831c,0x28232923,0x46234023,0x4b234423,0x49234823,0xe1d1523,0x231d111d,0x21232023,0xeb22ee23,0x5922ef22,0x5a235d23,0x1d1fc623,0x761fd520,0x70237123,0x7a237f23,0x6f237d23,0x6b236a23,0xbb23be23,0x8423bf23,0x86238023,0xad23a823,0x2123a923,0x251d231d,0xfc23f91d,0x2323fb23,0x251d241d,0xb023b31d,0xa723b123,0xa323a023,0x88238f23,0x51238b23,0x52235523,0xee22ed23,0x3c22ef22,0x3d1c391c,0xac1ca81c,0xc51ca61c,0xc723c623,0x581c5d23,0x2f1c5b1c,0x331c321c,0x281d2d1c,0x2c1d2b1d,0x261d271d,0x2e1d351d,0xce1d311d,0xcd20291f,0x6d1c6a1f,0xe61c6b1c,0xe7203b1f,0x331d2f1f,0xdd1d301d,0xb820081f,0x3e1e3c1f,0x421e3f1e,0x431e3f1e,0x4c1c4b1e,0x441c4d1c,0x451d411d,0xb31caf1d,0x21cb01c,0x1ffe20,0x36203320,0x36203520,0x3a1d3c1d,0xf31cee1d,0xc1cef1c,0x13241224,0x21fff24,0x45200020,0x431d3f1d,0xb1e0e1d,0x831e0f1e,0x7f1e7c1e,0x7e1c811e,0x731c7f1c,0x751c741c,0x821e811c,0x721e831e,0x741d6e1d,0x531d4f1d,0x531d501d,0x8b207620,0x541d5320,0x5a1d551d,0x91207c20,0xbe1cc120,0x591cbf1c,0x63207b20,0xe720ec20,0x9420e620,0x95205d20,0x8b1e8820,0x751e891e,0x731c701c,0x891e841c,0x4c1e851e,0x461c471c,0x5c1d5b1c,0xc21d5d1d,0xc31cc51c,0xa020a51c,0x9e20a120,0xa220a420,0x941e9720,0x8c1e951e,0x901e921e,0xbe1ec31e,0x4b1ebf1e,0x4d1d4c1d,0xc020be1d,0xc320c120,0xc520c420,0x541c5320,0xa31c551c,0xa11e9e1e,0xc620c91e,0xd520c720,0xd11cce1c,0x23211e1c,0xd1211f21,0xd520d320,0xd420d320,0xce20d520,0xd120d020,0xa91ea720,0x671eab1e,0x681d6b1d,0x361c3a1d,0xb01c3c1c,0xb11eb31e,0xcd1cca1e,0x791ccb1c,0x7d1d7b1d,0xd41cd31d,0x701cd51c,0x731d721d,0xba20b81d,0xcb20bb20,0xc71cc91c,0x731d711c,0x741d751d,0x771e761e,0xd31ccf1e,0x1a1cd01c,0x1c211621,0xe820e621,0xd920e920,0xd81ed51e,0xd11ecf1e,0xaa1ed31e,0xab1ea71e,0x6e1ff81e,0xff204720,0xfb1dfa1d,0xf61df51d,0xdd1df71d,0xdb24d824,0x33212e24,0x32212f21,0x33213521,0x101d0e21,0x121d111d,0x131f0f1f,0xee1ef31f,0xb61eef1e,0xb924b824,0x801d8524,0x831d811d,0x7f1d811d,0x8b1d871d,0x9c1d881d,0x961c971c,0xc924cb1c,0xd324c724,0xd524d424,0xdb24d724,0xe724d824,0xeb1ee91e,0x881c8d1e,0x5c1c8b1c,0x60215f21,0x59215321,0x9b215721,0x9d1d9c1d,0x6721641d,0x5216821,0x3250025,0x64216a25,0x6b216821,0x6e216d21,0xfb24f621,0x5724f724,0x58215a21,0x6c217121,0x73216b21,0x74217821,0x28252d21,0x25252b25,0x23252025,0x80217b25,0x33217c21,0x35253425,0x81217b25,0x83217f21,0x84218821,0xa01ca521,0x941ca31c,0x8e1d8f1d,0x3125341d,0x18253525,0x16251c25,0xe424e325,0xb624e524,0xb91db81d,0x8c21911d,0x69218b21,0x67256625,0xe81ce625,0x991ce91c,0x9d1d9b1d,0x961d9a1d,0x141d9c1d,0x171f161f,0x4f25541f,0xa9254e25,0xa321a421,0xab21ae21,0xb621ac21,0xb421b321,0x1e1f1c21,0x201f1f1f,0x221f1c1f,0xb421ba1f,0xa521b821,0xa31da01d,0xbe21c01d,0x8d21bc21,0x891c861c,0x1f1f221c,0xde1f231f,0xe21ce41c,0x5825561c,0x57255925,0x581c5b1c,0xcd21d21c,0xeb21ce21,0xed1cec1c,0xd321d61c,0xd321d421,0xd421d821,0xea1ce821,0xa81ceb1c,0xab1daa1d,0xac1dab1d,0x2f1dad1d,0x331f311f,0xce21d01f,0xe821cc21,0xea21e921,0xe321ea21,0xe921e621,0xe321e421,0x361f3b21,0xe31f391f,0xe621e521,0x3d1f4221,0xf41f3c1f,0xf821f721,0xe022e421,0xb022e622,0xb31db21d,0xb41db31d,0x3d1db51d,0x3e1f411f,0xab1da91f,0xf51dad1d,0xf722f622,0x8d219222,0x10219021,0x13221222,0x30223422,0x3b223622,0x3d1c3c1c,0x1022171c,0x16221322,0x10221122,0x451f4a22,0x9d1f441f,0x9b1c981c,0x2322261c,0x23222722,0x27222522,0xc31dc622,0xbc1dc41d,0xb61db71d,0x571f591d,0xf21f551f,0xf31cf51c,0xb61dbd1c,0x311db91d,0x32223522,0x30223722,0x64223322,0x651c611c,0xf91cfb1c,0xfd1cf71c,0xf91cf81c,0xc91dc61c,0x641dc51d,0x671f661f,0x5d22591f,0xc9225a22,0xc51dc31d,0xd21dcf1d,0x6d1dd01d,0x6f226e22,0x6b226e22,0x69226f22,0x6424ab24,0x641f6824,0x721f6a1f,0x6e1f6c1f,0xcd1dd21f,0xfa1dce1d,0xfb1cfd1c,0x4622451c,0xb224722,0x9220822,0x31cff22,0xfe1d001d,0x11d001c,0x791f771d,0x9d1f7b1f,0x991c961c,0xfc1cf61c,0x861cfa1c,0x87228322,0xd91dd822,0x7f1dda1d,0x7b227a22,0x92229022,0x97229322,0x93229022,0x641c6322,0x7c1c651c,0x801f821f,0xa122a61f,0x9d22a022,0x99229b22,0x9e229822,0xa7229c22,0xa522a222,0x891f8722,0x891f8b1f,0x8b1f8a1f,0x91d0b1f,0xb1d081d,0xd1d0c1d,0xb522b01d,0xb422b122,0xb522b722,0x941c8e22,0x9b1c921c,0x9d1c9c1c,0xc522c01c,0xbf22c122,0xbd22b922,0xc022c322,0x6022c122,0x631c621c,0xbc22b91c,0x8f22bd22,0x931f911f,0xca22cf1f,0xe222cb22,0xe522e422,0x601c5e22,0xd01c611c,0xd322d222,0xc822cb22,0xd622c922,0xd022d122,0xdd22db22,0x422df22,0xfe1cff1d,0xd822dc1c,0xa922de22,0xab1faa1f,0xed1de81f,0xe81de91d,0xec1dee1d,0x771f7a1d,0x1a1f7b1f,0x1b1d1d1d,0xf522f11d,0x4d22f222,0x4b1c481c,0x441d3e1c,0xfc1d421d,0xfd1dff1d,0x223071d,0xd4230523,0xce1ccf1c,0x1223101c,0xf6231323,0xf01df11d,0xe822ec1d,0x6722ee22,0x6b1c6a1c,0x4b1c471c,0x191c481c,0x1a231d23,0xca1fcd23,0x291fc41f,0x2a232d23,0x1e0323,0x2d1e011e,0x2f232e23,0x731c6f23,0x191c701c,0x171d161d,0x71e041d,0xa1e051e,0xd1e0c1e,0x31e051e,0x471e011e,0x45234123,0xe61fe123,0x211fb61f,0x23232723,0x101d1523,0xd1d131d,0xf1e0e1e,0x1e231d1e,0x57231f23,0x53235023,0x5a235f23,0x85235d23,0x87238623,0x5e235d23,0x235f23,0x41e061e,0x59235e1e,0xf1235823,0xea1fe91f,0x431c3e1f,0xdc1c3f1c,0x620041f,0x68236b20,0x15236923,0x171e161e,0x7223701e,0xfe237323,0xfc1fbb1f,0x79237e1f,0x17237823,0x151e121e,0x151e111e,0x1f1e121e,0x1b1e181e,0x9023941e,0xda239623,0xc200b1f,0x3b1c3920,0xab1c3d1c,0xa923a823,0x31fb123,0x1f200220,0x1d1e1a1e,0x191e1e1e,0xb81e181e,0xbb23ba23,0x141fd923,0xd61fc020,0x1820171f,0x281e2620,0xa11e291e,0xa223a523,0x1d1fd323,0x8e201e20,0x88238923,0xa91cad23,0x201cab1c,0x231d221d,0xa31c9f1d,0xcf1ca01c,0x2420231f,0x2c1e2f20,0x611e2d1e,0x5d1e5f1e,0x461c4d1e,0xce1c491c,0x261fd01f,0xec20eb20,0xc720ed20,0xc323c023,0xc123c623,0x3423c023,0x351e391e,0xfe1fc41e,0xc820031f,0xc320321f,0x321e2c1f,0x6c1e301e,0x6d1c691c,0x381fb41c,0xc31fb520,0xbc20351f,0x341e371f,0x311e351e,0x2d1e2f1e,0x411fea1e,0xdf1ff220,0xde1fe21f,0xe424091f,0x4623e323,0x491e481e,0x461e441e,0x191e471e,0xd201320,0x90243320,0xd2249124,0x65243d23,0xcf23cc24,0xa023ce23,0x42244324,0x9d244e24,0xed245124,0xef23f023,0xac246723,0x54246a24,0x56249a24,0x451e4a24,0x391e441e,0x371d361d,0x541e571d,0x81e551e,0x7241824,0x471e4a24,0x341e4b1e,0x2e1d2f1d,0x4c1e4f1d,0x611e4d1e,0x60242d24,0x3d1d3a24,0x11d3b1d,0x3240424,0x30202d24,0x27202f20,0x23232223,0x4f1e5223,0x561e531e,0x57249c24,0x531e5024,0x661e511e,0xb124b324,0xb01cae24,0x531cb11c,0x511e4d1e,0x4120461e,0x63203f20,0x5f1e5e1e,0x451d421e,0xbc1d431d,0xbd1ec11e,0x3e1d411e,0x601d3f1d,0x611e631e,0x5b1e581e,0x3b1e591e,0x371d391d,0x3a1c381d,0x591c3b1c,0x551e571e,0x5c1e5f1e,0xb31e5d1e,0xb51cb41c,0x5a1e541c,0x5b1e581e,0x571e561e,0xfb1ff41e,0xd920431f,0xdb1eda1e,0x421d3f1e,0xb51d431d,0xb11cae1c,0x601d651c,0xb61d611d,0xb71cbb1c,0x591e541c,0x811e551e,0x7f1d7e1d,0x501c4e1d,0x6e1c511c,0x711e701e,0x531c511e,0x741c551c,0x6e1c6f1c,0x481d461c,0x681d491d,0x6a1e641e,0x40206d1e,0x6f204220,0x731e711e,0xb81cbd1e,0x4b1cb91c,0x4c207020,0x72206b20,0x8e204820,0x91249324,0x7a206324,0x72206420,0x731e6f1e,0x471d4c1e,0xc91d461d,0xc51ec71e,0x501d4e1e,0x6e1d511d,0x6f1ff520,0x7e1e7c20,0x551e7f1e,0x67207720,0x331e3020,0x521e311e,0x69207520,0x751e7a20,0x7d1e741e,0x7e1e811e,0x791e751e,0x941e761e,0x981e9a1e,0xc01cc51e,0x571cc11c,0x581d5b1d,0x7b208f1d,0x90208e20,0x7d207c20,0x7a205820,0x87208f20,0x851e841e,0x841e8a1e,0x8e1e861e,0x8f205820,0x80209420,0x5d208120,0x95208020,0xe820ed20,0x8a20eb20,0x8b205320,0x581d5620,0x5c1d591d,0x93207e20,0x4f1d5420,0x551d4e1d,0x531d501d,0x8120541d,0x8f204f20,0x8d1e8c1e,0x322061e,0x5e220522,0x5f1d631d,0x911e8c1d,0x911e8d1e,0x8d1e8f1e,0xd720dd1e,0xa120db20,0x9f209e20,0x931e9020,0x931e911e,0x8f1e8e1e,0xa3209e1e,0x75209f20,0x711c6e1c,0x3e1c411c,0x611c3f1c,0x5f1d5e1d,0xaa20a71d,0x5d20ab20,0x591d561d,0xb520b21d,0x7620b320,0x791c781c,0xc31cbe1c,0x961cbf1c,0x9a209c20,0x78205620,0x5e208d20,0x621d641d,0xa21ea11d,0x541ea31e,0x551c511c,0xa11e9d1c,0x7a1e9e1e,0x7c1d761d,0xb620ba1d,0xc020bc20,0xc320c220,0xc320c120,0xcd20c520,0xc91cc81c,0x711f6c1c,0xa41f6d1f,0xa71ea61e,0xc820cd1e,0x6c20c920,0x661d671d,0xc720cd1d,0x6620cb20,0x691d681d,0xc61cc91d,0xc61cc71c,0xca20cc20,0xa41ea820,0x421eaa1e,0x65206420,0xd220d020,0xaf20d320,0xad1eac1e,0xdf20e51e,0xe420e320,0xe520e120,0x661d6d20,0xac1d691d,0xb01eb21e,0xe520e21e,0xb320e320,0xaf20b120,0xae1eb320,0x8c1eaf1e,0x79207820,0xdc20d620,0xc620da20,0xc71ccb1c,0xbc20bb1c,0xd220bd20,0xd31ecf1e,0xc41ec71e,0x841ec51e,0x85204d20,0x51208820,0xc4208920,0xc51ec91e,0x741d731e,0xfb1d751d,0xf720f920,0xc31ec020,0xf91ec11e,0xf720f620,0xbf1ec120,0x6e1ebd1e,0x711d701d,0x1b21191d,0x76211d21,0x791d781d,0x791d7c1d,0xa1d7d1d,0xb210d21,0xff210421,0xc820fe20,0xc91ecb1e,0xcc1cc61e,0x51cca1c,0x3210021,0x10211521,0xf211321,0x10211321,0xc210621,0x78210a21,0x7b1d7a1d,0xca1ec41d,0xf1ec81e,0x13241124,0x7c1d7b24,0x661d7d1d,0x6a256c25,0xcc1ecf25,0x51ecd1e,0x120fe21,0x7f1c8521,0x221c831c,0x23212521,0xdb1cd721,0xe41cd81c,0xe51ce11c,0x851d821c,0xd81d831d,0xda1ed41e,0x3021351e,0x2a213121,0x2b212d21,0x29212c21,0x27212d21,0x2b212a21,0x851c8221,0xdf1c831c,0xdd1edc1e,0xe01edd1e,0x311ee11e,0x2f212e21,0x2c212621,0xe3212a21,0xe11edd1e,0xea1ee91e,0x8b1eeb1e,0x8d1d8c1d,0x3a21381d,0xe6213b21,0xe91ee81e,0x5321561e,0x61215421,0x651c631c,0xd624dd1c,0xd624d924,0xd91cd81c,0xbb24b71c,0x3624b824,0x39213821,0x841d7e21,0x451d821d,0x43214021,0xe41ee821,0x461eea1e,0x4a254c25,0xcf24d425,0xd624ce24,0xd924d824,0xf31ef024,0x501ef11e,0x4f214e21,0x4e215221,0x52215021,0x4e214f21,0xbe1dc021,0x431dbf1d,0x45214421,0xef1ef121,0x8f1eed1e,0x901d931d,0xf91ef41d,0xec1ef51e,0xed24e924,0x811c8424,0xf21c851c,0xf324f524,0xf024f524,0xf724f124,0xf51ef41e,0xe624e91e,0xff24e724,0x250324,0xfb1ef825,0x8e1ef91e,0x911d901d,0x871d8c1d,0x691d861d,0x6a216621,0xe251121,0x4250f25,0xfe24ff25,0x6250c24,0xf9250825,0xf51ef71e,0x5d215f1e,0x5a216121,0x56215521,0x36233021,0x98233423,0x9b1d9a1d,0x411c431d,0x191c3f1c,0x17251625,0x1f252425,0x1b251e25,0x19251825,0x11eff25,0x2d1f031f,0x29252625,0x75217a25,0x2217621,0x31eff1f,0x21f011f,0x361f031f,0x37253b25,0xd81cdd25,0x951cdb1c,0x911d8e1d,0x4125431d,0x6b253f25,0x67256925,0x83218625,0xa218421,0xb1f071f,0xa1f091f,0x831f0b1f,0x87218921,0x901d9521,0x3d1d931d,0x39253825,0x61f0425,0xfe1f071f,0x11f001e,0x34212e1f,0x5a213221,0x5c255625,0x99219825,0x65219a21,0x61256025,0xae1db225,0x131db41d,0x111f0d1f,0xfe22011f,0x1b220221,0x171f141f,0x581c561f,0x9e1c591c,0xa11da01d,0x9421991d,0xa4219321,0xa521a821,0x9e21a121,0x1921a221,0x1b1f1a1f,0xee1cf11f,0x151cef1c,0x161f191f,0xa1219b1f,0x9f219f21,0xa021a221,0x95219a21,0xa4219821,0x9e1d9f1d,0x151f1a1d,0x2b1f141f,0x271f261f,0x201f1e1f,0x7e1f211f,0x821c841c,0x401c451c,0xc31c411c,0xc421c821,0xae21b021,0xb221ac21,0xae21ad21,0xb021ab21,0x5d21ac21,0x591c561c,0xc321c61c,0xba21c421,0xb621b521,0x2b1f2821,0xa51f291f,0xa11d9e1d,0x241f271d,0x1f251f,0x2220122,0xa41da322,0xbf1da51d,0xc021c221,0xc021bb21,0xbe21bc21,0xbc21bb21,0xba21b721,0x8621b821,0x891c881c,0xb31db11c,0x2e1db51d,0x311f301f,0x8b1c871f,0xe11c881c,0xe221de21,0xd021cb21,0xcf21cc21,0xd021d221,0xcb21ce21,0xc321cc21,0xc721c921,0xa91dac21,0x311dad1d,0x331f321f,0x2f1f321f,0x351f331f,0x361f391f,0x5c1c5b1f,0xd81c5d1c,0xd421d621,0xff21fd21,0x30220021,0x321f2c1f,0xd921d31f,0xda21d721,0xd621d521,0xd121cb21,0xb421cf21,0xb51db11d,0xb01dae1d,0xdf1db11d,0xe121db21,0xed21eb21,0x3b21ee21,0x371f341f,0x3e1f3c1f,0xfb1f3f1f,0xfe21fd21,0x351f3a21,0xea1f341f,0xe821e521,0xe821e421,0x4421e521,0x471f461f,0xe91cec1f,0xf21ced1c,0xf021ed21,0xeb21f221,0x4121ee21,0x431f421f,0x3c1f431f,0x431f3f1f,0x411f3e1f,0xf621f91f,0xf721fa21,0xf821fa21,0xf321f621,0xf021f421,0xf221f121,0xe021de21,0x5821e221,0x5b255a25,0x26212925,0x3e212721,0x421c441c,0x422031c,0x5220522,0x6220422,0x3220622,0xa220722,0xc1d061d,0xfb21ff1d,0x62220121,0x5c1f5d1f,0x4d1f521f,0x941f4c1f,0x951c911c,0x1a22181c,0xf1221b22,0xf21df51d,0x9220f1d,0x53220d22,0x511f4f1f,0x4c1f4f1f,0x531f4d1f,0x521f501f,0x1222171f,0x15221522,0x17221622,0x15221122,0xc221222,0xd220f22,0xbc1dbb22,0x261dbd1d,0x20222122,0x18221f22,0x63221b22,0x611f5e1f,0xbb1db71f,0xf51db81d,0xf11cf01c,0x2622251c,0x54222722,0x551f591f,0x2422221f,0x20222522,0x23222222,0x5c1f6322,0x2a1f5f1f,0x2d222c22,0x5a1f5422,0xbd1f581f,0xbb1db81d,0x5e1f5c1d,0x351f5f1f,0x37223622,0x611f5d22,0x6f1f5e1f,0x731f711f,0x2d222b1f,0x2e222f22,0x2f222b22,0x2a222822,0x1d222b22,0x1f221e22,0x781f7622,0xc61f791f,0xca1dc81d,0x6a1f691d,0x421f6b1f,0x45224422,0xfb1cf622,0x541cf71c,0x55225722,0x42224022,0x3e224322,0x38223922,0x3b223e22,0xf9223f22,0xf71cf61c,0x8e1c911c,0x501c8f1c,0x51225522,0x40224422,0x43224622,0x47224522,0xca1dc722,0x4e1dc81d,0x4f224b22,0x75227122,0x4c227222,0x4e224822,0x4d224b22,0x4d224f22,0x4f224e22,0x43224622,0x63224722,0x61226022,0x761f7422,0x671f771f,0x6b1f691f,0x59225e1f,0x6a225822,0x6b1f671f,0xce1dd01f,0x701dcc1d,0x73227222,0x58225f22,0x5d225b22,0x5f225e22,0x5a225822,0x66225b22,0x67226322,0x68226c22,0x64226e22,0x65226722,0x61226722,0xe3226522,0xe722e522,0xd01dcb22,0x6f1dcc1d,0x6d1f6c1f,0x731f701f,0x681f711f,0x6b226a22,0x64226122,0x57226522,0x53225222,0x3a223822,0x3223b22,0x51d041d,0x7222771d,0x8c227522,0x8d228f22,0x78227b22,0xdc227922,0xdd1de01d,0x7122761d,0x78227022,0x7a1f741f,0x8d22881f,0x80228922,0x83228222,0x7e227822,0x8b227c22,0x89228822,0x831f8022,0xd51f811f,0xd81dd71d,0x811f7c1d,0x841f7d1f,0x86228022,0x86228522,0x7d228722,0x79227b22,0xd31dd722,0x981dd91d,0x99229d22,0xdd1ddb22,0x8d1dde1d,0x89228b22,0xd81dd622,0x961dda1d,0x90229122,0x861f8422,0xa81f871f,0xab22aa22,0x92229722,0x95229522,0x97229622,0x95229122,0x91229222,0x901f8c1f,0x871f8a1f,0x9f1f8b1f,0x9b229a22,0x841f8822,0x8f1f8a1f,0x8d1f8c1f,0xe322e61f,0xa522e722,0xa722a622,0xa022a722,0xa122a322,0xa222a522,0xa222a022,0x9c22a322,0x9d229f22,0x8a228f22,0xe1228b22,0xdb1ddc1d,0xae22ab1d,0xa022a822,0xa11fa31f,0xfe1d051f,0xc71d011c,0xc322c222,0x8c1f9222,0xb31f8e1f,0xb122b022,0xa822ac22,0x9d22ae22,0xa11fa01f,0x9a1f991f,0xe21f9b1f,0xe01ddd1d,0xb822bb1d,0xe222b922,0xde1ddb1d,0x971f9a1d,0xbe1f9b1f,0xbf22bb22,0xe11de022,0x981de21d,0x9a1f941f,0xbe22b81f,0xbc22bc22,0xbd22bf22,0xb322b522,0x522b122,0x31d001d,0x81d061d,0xc01d091d,0xc422c622,0xe81deb22,0xed1de91d,0xe91deb1d,0x9f1fa21d,0xa31fa31f,0xa11f9d1f,0xa21f9c1f,0xcd1fa01f,0xc922cb22,0xcd22c822,0xe022c922,0xe322e222,0xea1def22,0xd71deb1d,0xd522d222,0xaf1fb222,0xec1fad1f,0xed1def1d,0xa51faa1d,0xab1fa41f,0xa91fa61f,0xdb22de1f,0xdd22df22,0xdf22de22,0xda22d822,0xd522db22,0xd722d622,0xc322c522,0xad22c122,0xaf22ae22,0x70227722,0x23227322,0x1f212121,0xfa22ff21,0xea22fb22,0xed22ec22,0x251e2a22,0x5c1e241e,0x601e621e,0xd91ed71e,0xfc1edb1e,0xfd22ff22,0xf122f622,0x2722f022,0x281d2b1d,0xf222f71d,0xfb22f522,0xf922f822,0xf022f722,0xf022f322,0xf322f222,0x91f0722,0xa1f0b1f,0xd230c23,0xfe22f823,0xf722fc22,0xf51df21d,0x23071d,0xf7230323,0xf31df01d,0x123061d,0x5230023,0x7230623,0xb61cb923,0x181cb71c,0x1b231a23,0xfd1df823,0xb1df91d,0xf230d23,0xf81dfb23,0x131df91d,0x17231523,0x4b234e23,0x16234f23,0x17231323,0x16231523,0x12231723,0x15231423,0xe230d23,0xfd230f23,0xf922fb22,0x1b1d1622,0x131d171d,0x151d141d,0x1a231f1d,0x72231d23,0x731f6f1f,0x6e24ad1f,0x25247024,0x24232023,0xa01c9e23,0x4c1ca11c,0x4d234f23,0xd71cdc23,0x381cd61c,0x3b233a23,0x21e0723,0xb01e031e,0xb91fdf1f,0xe01fb31f,0x491faf1f,0x4d234c23,0x32233723,0x34233323,0x35233723,0x35233023,0xa7233123,0xaa1cac1c,0xa1e081c,0x3f1e0b1e,0x3b233823,0x3e233d23,0x46233f23,0x47234323,0xb823bc23,0x4423be23,0x45234723,0x44234123,0x43234523,0x41234023,0x3d233923,0x2f233a23,0x2d232a23,0x18231f23,0x10231b23,0x131e121e,0x1a1e181e,0x611e1b1e,0x65236423,0x291e2723,0x501e2b1e,0x53235223,0x4e234823,0xc234c23,0xe1e081e,0x281d261e,0x341d291d,0x351c311c,0x5a23581c,0x54235b23,0x56235023,0xac1ff723,0x5f1ff51f,0x5b235823,0x53235523,0x67235223,0x68207620,0x2c1fcc20,0xa51fca20,0xa11c9e1c,0x6323661c,0x77236723,0x73237023,0x201d1e23,0x161d211d,0x101e111e,0x8423821e,0x6d238523,0x69236b23,0x6d236823,0x16236923,0x1a1d1c1d,0x7223771d,0x1237523,0xad1fae20,0x1a1fd71f,0x1b1fc620,0x171d191d,0x101e171d,0x1d1e131e,0x191d181d,0x78237f1d,0x7d237b23,0x7f237e23,0x7a237823,0x75237b23,0x77237623,0x67236423,0xb8236523,0xbe200b1f,0xa41ca31f,0xb51ca51c,0xb720041f,0x271e2a1f,0x9f1e2b1e,0x9b239823,0x8e238d23,0x89238f23,0x8a238d23,0x8a238f23,0x88238d23,0x8b238a23,0x9e239d23,0x92239f23,0x95239423,0x1d1e1923,0x991e1a1e,0x9a239d23,0x95239323,0x22239723,0x241d1e1d,0x9a23981d,0x96239b23,0x97239323,0x92239023,0xf239323,0xc11fbf20,0xaf23ac1f,0x6223ad23,0x641c5e1c,0x99239e1c,0x29239823,0x2b1e2a1e,0x4e1c521e,0xa41c541c,0xa623a023,0xa323a523,0xa523a223,0xa723a623,0x171fc023,0xba1fc220,0xbd23bc23,0x211d2423,0xad1d251d,0xa923ab23,0x261e2423,0xb01e271e,0xb423b623,0xb223b723,0x4d23b323,0x4b214821,0xb323b521,0xb423b123,0xb523b723,0xb523b023,0xaf23b123,0xab23aa23,0x9a239f23,0x86239d23,0x87238323,0x49234f23,0xe1234d23,0xe01fdf1f,0x2e1e331f,0x2d1e2f1e,0x291d261d,0xd323d01d,0x6523d223,0x61242e24,0x9f244824,0x5d244624,0x5e24a524,0xee23eb24,0xfd23ed23,0xff240023,0xe123e023,0x5523df23,0x4f249924,0x72244924,0xff247124,0x1240223,0xf423f124,0x8e23f323,0x8d243024,0xfe23fb24,0x4923fd23,0xf241024,0xea23f524,0xe223e823,0xe123d623,0x73244a23,0xf3247224,0xf523f623,0x98245923,0xa4245824,0x9e1c9f1c,0x3b1fe41c,0x41203c20,0x431e421e,0x3a1fe81e,0x61fe620,0xe923e724,0x371e3923,0xe1e351e,0xe623e524,0xf1204423,0x6320431f,0x67236523,0x491e4723,0xfb1e4b1e,0x4320441f,0xfd204520,0x44203e1f,0x451ffc20,0x14241720,0x1b241524,0x1c241724,0x8200b24,0x4200c20,0x6203820,0x2a202720,0x36202920,0x371d3b1d,0x381c361d,0x531c391c,0x4e1f4c1f,0xb71eba1f,0x301ebb1e,0x33223222,0x20202322,0x4d202420,0x511e501e,0x12200f1e,0x4d201120,0x4f1f511f,0x55203f1f,0x17205820,0xa424a724,0xe523dc24,0x7223da23,0x30243724,0x4c204124,0x57203f20,0x59249b24,0x291fcb24,0x42202a20,0x5f204f20,0x9e1e9c20,0xb01e9f1e,0x19243224,0x661e6424,0x611e671e,0x62207c20,0xd01ecd20,0x691ed11e,0x661e671e,0x6a1e691e,0xb71e6b1e,0xb51eb41e,0x6c1fec1e,0xd71fed20,0xd41eda1e,0x46206e1e,0xcb204720,0xc71ec61e,0xf520461e,0x471ff31f,0x481d4b1d,0x6c1e701d,0x5e1e721e,0x5f207e20,0x80204f20,0x8a205020,0x77207620,0xf320ef20,0x8320f020,0x6c206d20,0x481d4d20,0x4e1d4b1d,0x6b207320,0x70204d20,0x49208520,0x87207220,0x741e7b20,0x861e771e,0x73207220,0x74208820,0x65207520,0x66207820,0x761e7b20,0x511e791e,0x89207420,0xc523c120,0xb123c223,0xad1eaf1e,0x9d209a1e,0x62209b20,0x631d651d,0x7d205b1d,0xbd206120,0xe21fde1f,0x7e1e831f,0xed1e811e,0xe920e620,0x56208c20,0x8b208d20,0x871e861e,0x341d331e,0xf81d351d,0xf723eb23,0x5a209023,0xda209120,0xdb20dd20,0x891e8720,0x921e8b1e,0x93205c20,0x99209b20,0xa2209720,0xa320a520,0xb820b620,0xba20b920,0x3620351f,0xce245f20,0xd7246023,0xdb20da20,0xa120a320,0xae209f20,0xb220b420,0xad20aa20,0x9b20ab20,0x971e961e,0x641e6b1e,0x5c1e671e,0x561d571d,0xc223c71d,0x6e23c523,0x54246d24,0x3c1e4024,0x981e421e,0x991e9b1e,0xb320ae1e,0xb520af20,0xb120b020,0x4024b120,0xb823d324,0xb91ebb1e,0x5224511e,0xae23e124,0x6f247024,0xbb20b924,0xd420bd20,0xd71ed61e,0x991e941e,0x161e951e,0x19211821,0x37248b21,0x76248a24,0x77244724,0x74244d24,0xc2247324,0xc420be20,0x6d24af20,0xb5246c24,0xb91eb81e,0xa024451e,0xca244224,0xcb20cd20,0xe420de20,0x8620e220,0x88248324,0xd120d424,0x8520d520,0x84242524,0xd623d924,0xef23d723,0xf123f223,0x6c24b423,0xdc246e24,0xdd20d920,0xe220df20,0xc720e320,0x30202f1f,0x411e3f20,0xe31e431e,0xdd23de23,0x4f215223,0xbf215121,0xbd1ebc1e,0x4920861e,0xee208720,0xf120f020,0xb61eb820,0xb71eba1e,0xbb1eb91e,0x3a1e341e,0x641e381e,0x66236223,0xef20f423,0xf620ee20,0xfa20fc20,0x9b209620,0x9209720,0xa241724,0xf020f524,0x7d20f320,0x7b1c781c,0xee20f51c,0x2120f120,0x1f211e21,0xc21ebc21,0xfa1ec01e,0xfb20fd20,0xfb20f620,0x1920f720,0x18241424,0x2c248924,0x5248824,0xf923fa24,0x7b247a23,0x7b242424,0x24247c24,0x21247c24,0x88242424,0x87242624,0x31248f24,0x84248e24,0x83242b24,0x36248224,0x80248124,0x7f241d24,0xd31ed024,0xb1ed11e,0x7210921,0x8210d21,0x9210921,0x7210621,0x32248321,0x7d248224,0x7c242124,0x1b247824,0x7a248024,0x79242224,0x86248524,0x86242724,0x27248724,0x26248724,0x81242724,0x89241a24,0x1e247e24,0x78247d24,0x7b247d24,0xce1ed024,0xd91ed21e,0xda23dc23,0x8c248b23,0x8c243524,0x35248d24,0x30248d24,0x79243524,0x78242024,0x1c247f24,0x8f247e24,0x2f249024,0x34249024,0x75242f24,0x76244c24,0x92249124,0x92243324,0x33243824,0x93249224,0x93243824,0x38243a24,0x8b249324,0x93243924,0x3a243924,0x8a248b24,0x8a243924,0x39243724,0xe211524,0xe211121,0x11211021,0x14211321,0x1b211521,0x1d211c21,0x1a211821,0x69211b21,0x6a207420,0xa31d9f20,0x141da01d,0xe210f21,0x24211e21,0xfe212221,0x2220021,0x31213322,0x39212f21,0x3d213b21,0xa61ca921,0x411ca71c,0x55249524,0xd1246324,0xde23d023,0xdd23df23,0x96245823,0xce244124,0x53243f23,0x53243e24,0x3a243f24,0x3c213621,0x43213f21,0xbe214021,0xbf24c324,0x3e245224,0xc8243c24,0x3c245223,0x3c23c824,0x5d23c924,0xa9245c24,0xa4244424,0x46245a24,0x45249e24,0xa3244b24,0x5a244824,0x4b24a224,0x5c24a824,0x44245b24,0xa1244324,0xa8245f24,0x66245b24,0x6724b224,0xa7246424,0x62246224,0x5f24a624,0x221e2124,0xb51e231e,0x6d246824,0xae246b24,0xcb246f24,0xca20c620,0x94245120,0xd245424,0x47247724,0xb0246a24,0x60246b24,0x63243b24,0x97244f24,0xca244e24,0xcc23cd23,0xaa245e23,0xc9246924,0xc823ca23,0xe923e823,0x323e723,0x7240824,0x40213e24,0x45214121,0x41213e21,0x3f214421,0xc3213e21,0xbf24c124,0xb724bc24,0xc524b624,0xc124c024,0xe71eea24,0xc91eeb1e,0xc724c624,0xdc24db24,0xc224dd24,0xc324c524,0xcd24ca24,0xbd24cb24,0xbb24b824,0xde1ce124,0xce1cdf1c,0xd124d024,0xc824cd24,0x4624c924,0x49214821,0x881d8621,0xc61d891d,0xca24cc24,0x46214d24,0xef214921,0xed1eec1e,0x4c214b1e,0x47214d21,0x48214b21,0xd324d121,0xd424d524,0xd524d124,0xd224d024,0xc624d324,0xc724cb24,0xb624bd24,0x1024b924,0x111f131f,0xf424ee1f,0xdf24f224,0xe31ce21c,0xe024de1c,0xe424e124,0xde24df24,0xe51ce224,0x921ce31c,0x8e218b21,0x71217021,0xf3217221,0xef24f124,0xed24ea24,0x5824eb24,0x54215621,0x62215f21,0xec216021,0xf01ef21e,0x1525121e,0xee251325,0xef24f324,0x5b215e24,0xf1215c21,0xef24ee24,0xec24e624,0xe724ea24,0xeb24ea24,0x60215e24,0xfc216221,0xff1efe1e,0x70216c1e,0x8d216d21,0x8b1d881d,0x6321661d,0xf216421,0x13251225,0xfc24f625,0xfd24fa24,0xf924f824,0xfa1ef424,0x671ef81e,0x68216a21,0xf61efb21,0x51ef71e,0x124fe25,0xc250925,0x63250825,0x67216921,0x73217621,0xa217421,0xb250d25,0x49254b25,0x9254725,0xd250b25,0x6250925,0x3250725,0x5250425,0xf624f925,0x7224f724,0x70216d21,0x941d9321,0x771d951d,0x78217a21,0x14250e21,0x17251225,0x1a251c25,0x1a251925,0x1d251b25,0x1c251a25,0x84218a25,0x15218821,0x13250f25,0x91219025,0x219221,0x21efc1f,0x27252c1f,0x25252625,0x21251e25,0x24252325,0x7e252525,0x7c217b21,0x74217a21,0x4d217821,0x49254825,0x2c252b25,0x27252d25,0x28252b25,0x79217325,0x26217721,0x29252825,0x23251f25,0x8c252025,0x8d219021,0x81f0621,0x801f091f,0x7c217e21,0x3d253a21,0x82253b25,0x7e217d21,0x4d254a21,0x7f254b25,0x80218221,0x36253921,0x31253725,0x35253325,0x41f0825,0x461f0a1f,0x47254b25,0xd61cdd25,0x361cd91c,0x3a253c25,0xdc1cdb25,0x451cdd1c,0x41254025,0x89218625,0x87218521,0x88218a21,0x44253e21,0x42254225,0x43254525,0x39253b25,0x33253725,0x32252f25,0x11251425,0xdc251525,0xd624d724,0xc521ca24,0x2921c621,0x251f271f,0x5425531f,0x1b255525,0x191f161f,0x121f0c1f,0x551f101f,0x53255025,0x4e255525,0x4f255125,0x50255325,0x5b255925,0x5e255d25,0x62256425,0x59255c25,0x9a255d25,0x96219321,0x95219321,0x94219621,0x95219821,0xa81da621,0x621da91d,0x63256525,0x63255e25,0x61255f25,0x5f255e25,0x5c255b25,0x66255d25,0x67256b25,0x6d256a25,0x6d256b25,0x69256825,0x50254e25,0x2b255125,0x2c1d2a1d,0x471f4b1d,0x631f461f,0x60236223,0xfc22f823,0xec22fd22,0xf021ef21,0x681e6521,0x5c1e691e,0x611e601e,0xa1d071e,0x951d0b1d,0x96239423,0x6a1d6b23,0xad1d6c1d,0xa720a920,0x6a236820,0x34236e23,0x361f351f,0xad21ab1f,0x1e21b121,0x20251f25,0xc41dc825,0xbd1dc31d,0xbe23bc23,0x311d3523,0x491d301d,0x4a1e481e,0x4a1f4b1e,0x921f441f,0x7e209320,0x691d6d20,0xa91d681d,0xaa1ea81e,0xb620bc1e,0x4620b920,0x481c471c,0xa721a81c,0xc821a921,0xc621ca21,0x441c4221,0x1f1c451c,0x211f1e1f,0x2d1fca1f,0xf0202f20,0xf21df11d,0xca22c81d,0x9722ce22,0x991f961f,0x9a229b1f,0x5b229822,0x561f5a1f,0x36213c1f,0xa0213921,0xa223a123,0x54235523,0x235623,0x51e041e,0xf8240c1e,0x3823f723,0x3b1e3a1e,0x3b233f1e,0x99233a23,0x971e9b1e,0x301c311e,0xb11c2e1c,0xae20b020,0xb01eac20,0xa21eb11e,0x9d1ea01e,0xd11cd51e,0x721cd01c,0x6b217121,0xe21ee021,0xed1ee31e,0xe724e924,0xb121af24,0xaa21b221,0xa521a621,0x2d1f2c21,0x241f2e1f,0x2a1f261f,0xbd21bb1f,0x3b21c121,0x3c213a21,0x8220921,0x48220c22,0x4a224922,0x3a223b22,0x3d223d22,0x3e223c22,0xa220e22,0x81220b22,0x7f1f831f,0xaa22ab1f,0xd122ad22,0xd522d422,0xa81fa522,0xb01fa91f,0xb622b222,0xaa22ad22,0xd322a922,0xd51dd41d,0xc024be1d,0x6924c424,0x661c681c,0x8223831c,0x71238523,0x75237423,0x1230023,0xe3230223,0x3c1fe41f,0xab1cad20,0x2e1caa1c,0x301d2f1d,0x101fdb1d,0xe200e20,0xc1200f20,0x221fd41f,0x20202020,0xd2202120,0x1520171f,0x3d201420,0x381d3c1d,0x211fd21d,0xe202320,0xb230823,0xc51cc323,0x841cc11c,0x70208520,0x821fee20,0xa6208320,0xac20a820,0xbe20c420,0x7720c120,0x7b1c7a1c,0xd820d91c,0xa620d620,0xa81ea51e,0xea20e71e,0x620eb20,0xb210a21,0x2210321,0x4a210421,0x71208420,0x6e1d7420,0x7b1d711d,0x7c1c7a1c,0xe51ee41c,0x8d1ee61e,0x861d8c1d,0x4825491d,0x41254625,0x3e254025,0x971d9625,0x281d981d,0x2a232923,0xe124e523,0xdf24e024,0xe324e224,0x7250b24,0x9c250625,0x991d961d,0xb521b31d,0x2121b921,0x221f201f,0x9b219c1f,0xd7219f21,0xda21d921,0x8a1c8b21,0xf31c8c1c,0xf921f521,0x301c2e21,0x491c341c,0x4a1f481f,0xc921c71f,0x7521ca21,0x76227422,0x37223522,0x19223322,0x1d221c22,0x49224a22,0x66224c22,0x681f651f,0x8e1c8f1f,0x571c921c,0x51225322,0xcd1dcb22,0x571dd11d,0x541f561f,0x7e1f7f1f,0x831f7c1f,0x7e1f821f,0xd31dd91f,0x5c1dd61d,0x571c5a1c,0x951f941c,0xab1f961f,0xa41faa1f,0x971c961f,0xd1c981c,0x61d0c1d,0x951f961d,0x951f981f,0x8f1c911c,0xf51cf31c,0x2d1cf11c,0x27212921,0xea22eb21,0x2f22ed22,0x28232e23,0x32233323,0x14233023,0xf1d121d,0x3c233e1d,0x35233923,0x33233723,0x1c231e23,0xbb231923,0xbd23ba23,0x7c237923,0x80237d23,0x82238123,0x6e236c23,0x12236f23,0xd8201320,0xbf1fd81f,0xa820111f,0xae23aa23,0x1c1e1d23,0xb1e1e1e,0xd1e0a1e,0x311c351e,0xb41c2f1c,0xaf1cb21c,0x3a1e3b1c,0x3e1e361e,0x401e3d1e,0xf020401e,0xab1ff91f,0xa71ca91c,0x6f1c6e1c,0x3b1c701c,0xeb203a20,0x3d1fe91f,0x3b203c20,0xe91feb20,0x681c661f,0x1d1c6c1c,0x1a201b20,0x4e1e4c20,0x6d1e521e,0x671c691c,0xb11cb51c,0x2c1cb01c,0x311e301e,0x6d1e6c1e,0x791e6e1e,0x7a1e781e,0x8c20571e,0xba207920,0xbd1cbc1c,0x4c1d4d1c,0x711d461d,0x721e701e,0x9820991e,0xb6209620,0xbc1cb81c,0x801e821c,0xa91e7d1e,0xa620a820,0x591d5d20,0x551d581d,0x4e1d541d,0xa820ac1d,0x9d20a920,0x98209c20,0x92206020,0x7c207f20,0x771c7a1c,0xa21ea31c,0x501e9c1e,0x521c4f1c,0xe020e11c,0xd220de20,0xce20cf20,0xc01cbe20,0xf31cc41c,0xf420f220,0xfc20fd20,0xfe20f820,0x20ff20,0x7c1c7d21,0x821c761c,0xef1fee20,0xcf1cce1f,0x1c1cd01c,0x19211621,0x220ff21,0x63210321,0x611d651d,0xbd1cbb1d,0xf1cb91c,0x131d121d,0x341c321d,0xdc1c351c,0xe21ede1e,0x4a214c1e,0xec214721,0xf11ef01e,0xc024c11e,0xbb24be24,0xbc24ba24,0x24212524,0xfe212021,0x24ff24,0xfc24fa25,0xfb24fd24,0xf924fd24,0xe424e524,0x2e24de24,0x30252f25,0xe1f0f25,0x3e1f0c1f,0x43254225,0x8c218b25,0x32218d21,0x2e252f25,0xc1f0d25,0x611f101f,0x5e215d21,0xe922e821,0xa322ea22,0xa521a421,0x9e21a221,0x9e219c21,0x9b219d21,0xc123c021,0xc223c223,0xbd21c121,0x281f2421,0xe51f291f,0xdf1ce11c,0xb721b31c,0xaa21b821,0xa321a921,0xdc21db21,0xdd21dd21,0xdf21dc21,0xdf21e021,0x3921e121,0x3a1f381f,0x481f451f,0xe91f491f,0xeb1ce81c,0xf621fa1c,0xf121f421,0xec21ef21,0xa71daa21,0xea1da61d,0xe61ce71c,0x6525631c,0x53256125,0x58215721,0x5a1f5821,0x1f1f5b1f,0x1a221b22,0x29222c22,0x61222822,0x621f601f,0x2c222d1f,0xc0222e22,0xbe1dbf1d,0xe51de71d,0x1e1de41d,0x19221c22,0x781f7922,0x531f7a1f,0x50225222,0xf01cee22,0x3a1cf41c,0x3c223922,0xcd1dce22,0x501dcb1d,0x56225222,0x69226a22,0x6b226c22,0x6d226a22,0x62226022,0x5f226622,0x5a225b22,0x941c9222,0x8c1c951c,0x871c8a1c,0x8222831c,0x82228522,0x84228122,0x931f8f22,0x861f921f,0x881f851f,0x921f901f,0x881f931f,0x8e228a22,0x7c227822,0xe5227d22,0xe622e422,0x9e1f9f22,0xc41f9c1f,0xc722c622,0xe31de722,0xa41de41d,0xa61fa51f,0x9a1c971f,0xda1c9b1c,0xdc22d922,0xd622d722,0xcc22d022,0xcf22ce22,0xb622b722,0x7c22b222,0x7f227e22,0xa220822,0xe2220e22,0xdf1ede1e,0x923081e,0x1230a23,0x5230423,0xff1dfd23,0xc1dfb1d,0x8230923,0x11231423,0x7e231023,0x831d821d,0x2623241d,0x26232723,0x20232423,0xfa1df823,0x7f1dfe1d,0x821c7e1c,0x2c232e1c,0x40232923,0x46234223,0x4a234b23,0x15234823,0xe1d141d,0x2223231d,0xee232023,0xeb22e822,0x5c235922,0xc6235d23,0x1d201b1f,0x74237620,0x7f237123,0x7a237b23,0x6e236f23,0xbe236a23,0xbb23b823,0x81238423,0xa8238023,0xad23ac23,0x201d2123,0xf91d231d,0xfc23fa23,0x221d2323,0xb31d241d,0xb023b223,0xa623a723,0x8f23a023,0x88238e23,0x54235123,0xed235523,0xee22ec22,0x361c3c22,0xa81c391c,0xac1cad1c,0xc423c51c,0x5d23c623,0x581c591c,0x2e1c2f1c,0x2d1c321c,0x281d291d,0x2a1d2c1d,0x351d271d,0x2e1d341d,0x271fce1d,0x6a202920,0x6d1c6c1c,0x3a1fe61c,0x2f203b20,0x331d321d,0xa1fdd1d,0x8200820,0xb8200920,0x3d1e3c1f,0x421e3e1e,0x3f1e3c1e,0x4a1c4b1e,0x441c4c1c,0x411d401d,0xb21caf1d,0x21cb31c,0xfe200320,0x3220331f,0x36203620,0x3c1d381d,0xf21cee1d,0xc1cf31c,0x12240b24,0x11fff24,0x45200220,0x3f1d411d,0x81e0e1d,0x831e0b1e,0x7c1e821e,0x801c811e,0x731c7e1c,0x741c721c,0x801e811c,0x721e821e,0x6e1d6f1d,0x521d4f1d,0x531d531d,0x76206820,0x521d5320,0x5a1d541d,0x7c206220,0xc01cc120,0x591cbe1c,0x7b208e20,0xea20ec20,0x9420e720,0x5d205420,0x8a1e8820,0x751e8b1e,0x701c711c,0x881e841c,0x4c1e891e,0x471c4a1c,0x5a1d5b1c,0xc21d5c1d,0xc51cc41c,0xa420a51c,0x9e20a020,0xa420a020,0x961e9720,0x8c1e941e,0x921e8e1e,0xc21ec31e,0x4b1ebe1e,0x4c1d4a1d,0xbf20be1d,0xc320c020,0xc420c220,0x521c5320,0xa31c541c,0x9e1e9f1e,0xc820c91e,0xd520c620,0xce1cd41c,0x22211e1c,0xd1212321,0xd320d020,0xd220d320,0xce20d420,0xd020cf20,0xa61ea720,0x671ea91e,0x6b1d6a1d,0x371c3a1d,0xb01c361c,0xb31eb21e,0xcc1cca1e,0x791ccd1c,0x7b1d781d,0xd21cd31d,0x701cd41c,0x721d6f1d,0xb720b81d,0xcb20ba20,0xc91ccd1c,0x701d711c,0x741d731d,0x761e751e,0xd21ccf1e,0x1a1cd31c,0x16211721,0xe720e621,0xd920e820,0xd51ed61e,0xcd1ecf1e,0xaa1ed11e,0xa71ea41e,0xf71ff81e,0xff206e1f,0xfa1dfe1d,0xf41df51d,0xdd1df61d,0xd824d924,0x32212e24,0x32213321,0x35213421,0xf1d0e21,0x121d101d,0xf1f0e1f,0xf21ef31f,0xb61eee1e,0xb824b724,0x841d8524,0x831d801d,0x811d851d,0x8a1d871d,0x9c1d8b1d,0x971c9a1c,0xcd24cb1c,0xd324c924,0xd424d224,0xda24d724,0xe724db24,0xe91ee61e,0x891c8d1e,0x5c1c881c,0x5f215b21,0x55215321,0x9b215921,0x9c1d9a1d,0x6321641d,0x5216721,0x250125,0x66216a25,0x6b216421,0x6d216c21,0xfa24f621,0x5724fb24,0x5a215921,0x6f217121,0x73216c21,0x78217721,0x29252d21,0x25252825,0x20252125,0x7f217b25,0x33218021,0x34253225,0x7d217b25,0x83218121,0x88218721,0xa11ca521,0x941ca01c,0x8f1d921d,0x2e25341d,0x18253125,0x1c251d25,0xe224e325,0xb624e424,0xb81db71d,0x8f21911d,0x69218c21,0x66256825,0xe71ce625,0x991ce81c,0x9b1d981d,0x971d9a1d,0x141d961d,0x161f151f,0x5225541f,0xa9254f25,0xa421a721,0xad21ae21,0xb621ab21,0xb321b521,0x1d1f1c21,0x201f1e1f,0x1c1f1d1f,0xb621ba1f,0xa521b421,0xa01da11d,0xc221c01d,0x8d21be21,0x861c8c1c,0x1c1f221c,0xde1f1f1f,0xe41ce01c,0x5725561c,0x57255825,0x5b1c5a1c,0xd121d21c,0xeb21cd21,0xec1cea1c,0xd521d61c,0xd321d321,0xd821d721,0xe71ce821,0xa81cea1c,0xaa1da71d,0xaa1dab1d,0x2f1dac1d,0x311f2e1f,0xd221d01f,0xe821ce21,0xe921e721,0xe921ea21,0xe921e321,0xe421e721,0x371f3b21,0xe31f361f,0xe521e421,0x401f4221,0xf41f3d1f,0xf721f321,0xe122e421,0xb022e022,0xb21daf1d,0xb21db31d,0x3d1db41d,0x411f401f,0xa81da91f,0xf51dab1d,0xf622f422,0x8e219222,0x10218d21,0x12221122,0x31223422,0x3b223022,0x3c1c3a1c,0x1622171c,0x16221022,0x11221422,0x481f4a22,0x9d1f451f,0x981c991c,0x2022261c,0x23222322,0x25222222,0xc51dc622,0xbc1dc31d,0xb71dba1d,0x5b1f591d,0xf21f571f,0xf51cf41c,0xbc1dbd1c,0x311db61d,0x35223422,0x36223722,0x64223022,0x611c5e1c,0xfd1cfb1c,0xfd1cf91c,0xf81cfc1c,0xca1dc61c,0x641dc91d,0x661f651f,0x5c22591f,0xc9225d22,0xc31dc71d,0xd11dcf1d,0x6d1dd21d,0x6e226c22,0x68226e22,0x69226b22,0xab24aa24,0x651f6824,0x721f641f,0x6c1f701f,0xd11dd21f,0xfa1dcd1d,0xfd1cfc1c,0x4422451c,0xb224622,0x8220a22,0x21cff22,0xfe1d031d,0x1cff1c,0x761f771d,0x9d1f791f,0x961c9c1c,0xf81cf61c,0x861cfc1c,0x83228022,0xd71dd822,0x7f1dd91d,0x7a227e22,0x91229022,0x97229222,0x90229622,0x621c6322,0x7c1c641c,0x821f7e1f,0xa422a61f,0x9d22a122,0x9b229f22,0x9a229822,0xa7229e22,0xa222a322,0x861f8722,0x891f891f,0x8a1f881f,0xd1d0b1f,0xb1d091d,0xc1d0a1d,0xb422b01d,0xb422b522,0xb722b622,0x901c8e22,0x9b1c941c,0x9c1c9a1c,0xc422c01c,0xbf22c522,0xb922bb22,0xc222c322,0x6022c022,0x621c5f1c,0xb822b91c,0x8f22bc22,0x911f8d1f,0xce22cf1f,0xe222ca22,0xe422e122,0x5f1c5e22,0xd01c601c,0xd222d122,0xca22cb22,0xd622c822,0xd122d422,0xda22db22,0x422dd22,0xff1d021d,0xd922dc1c,0xa922d822,0xaa1fa81f,0xec1de81f,0xe81ded1d,0xee1dea1d,0x741f7a1d,0x1a1f771f,0x1d1d1c1d,0xf422f11d,0x4d22f522,0x481c491c,0x401d3e1c,0xfc1d441d,0xff1dfe1d,0x323071d,0xd4230223,0xcf1cd21c,0x1123101c,0xf6231223,0xf11df41d,0xe922ec1d,0x6722e822,0x6a1c661c,0x4a1c471c,0x191c4b1c,0x1d231c23,0xdd1fdc23,0xbe1fb81f,0xdb1fda1f,0xdc1fb71f,0xbe1fb81f,0xc11fdb1f,0xb71fb51f,0xbe1fb81f,0xbf1fc11f,0xb81fb51f,0xbf1fbe1f,0xd91fd81f,0xbe1fb51f,0xbf1fbf1f,0xc01fd91f,0xd61fc21f,0xb51fd71f,0xc01fbf1f,0xd71fc21f,0xb51fc61f,0xc21fc01f,0xc61fc21f,0xb61fd51f,0xb51fb41f,0xc21fb51f,0xbd1fd51f,0xb51fb61f,0xb01fb11f,0xb91fb91f,0xb51fbd1f,0xd31fd51f,0xb91fd41f,0xd51fb51f,0xb11fc41f,0xbb1fb91f,0xc41fc51f,0xba1fbc1f,0xc71fbb1f,0xc31fc81f,0xbb1fbc1f,0xc91fc41f,0xc31fc71f,0xbc1fc31f,0xc41fc41f,0xd51fb91f,0xd41fd51f,0xd11fd21f,0xd01fcf1f,0xd51fc41f,0xd11fd21f,0xce1fd01f,0xd21fc41f,0xc91fd11f,0xc41fc31f,0xcc1fcb1f,0xca1fca1f,0xc41fc91f,0xd11fc41f,0xcd1fce1f,0xca1fcb1f,0xce1fc41f,0x291fcd1f,0x2d232c23,0x21e0323,0x2d1e001e,0x2e232c23,0x721c6f23,0x191c731c,0x161d181d,0x61e041d,0xa1e071e,0xc1e091e,0x71e051e,0x471e031e,0x41234323,0xb31fe123,0xb21fb21f,0xe61fe81f,0xe71fe61f,0xe41fe41f,0xb61fe31f,0xbd1fb61f,0xe21fe21f,0xe11fe51f,0xb21fe11f,0xe61fe61f,0xb61fe41f,0xe21fb61f,0x211fe11f,0x27232523,0x111d1523,0xd1d101d,0xe1e0c1e,0x1c231d1e,0x57231e23,0x50235623,0x5b235f23,0x85235a23,0x86238423,0x5c235d23,0x235e23,0x61e021e,0x5c235e1e,0xf2235923,0xf51ff31f,0xf61ff51f,0xeb1ff41f,0xb21fe81f,0xac1fb21f,0xf01ff91f,0xee1fef1f,0xf91fb21f,0xb21ff01f,0xee1ff01f,0xed1fec1f,0xb21fea1f,0xec1fee1f,0xb21feb1f,0xeb1fec1f,0xea1fec1f,0xf41ff51f,0xf21ff11f,0xf11ff51f,0xeb1fe91f,0xea1fea1f,0xf11ff21f,0x421c3e1f,0x61c431c,0xdc200720,0xb71fdc1f,0x6b20041f,0x68236a23,0x141e1523,0x701e161e,0x72237123,0xac1ff623,0xff1fae1f,0xfe20001f,0xae1ff61f,0xfc1fff1f,0xfb1ffa1f,0xf61ffb1f,0xfe1fff1f,0xbb1fc51f,0xff1ffb1f,0xbb1ffe1f,0xfc1ffd1f,0xfb1ffc1f,0x7e1ffe1f,0x79237c23,0x131e1723,0x111e121e,0x151e141e,0x1e1e1f1e,0x941e181e,0x90239123,0xd200c23,0xda1fda20,0xb1fbe1f,0x381c3920,0xab1c3b1c,0xa823aa23,0xad200123,0xb11fb11f,0x31fc41f,0x1200220,0x1f1fb120,0x1a1e1b1e,0x1c1e1e1e,0xb81e191e,0xba23b923,0x161fd923,0x14201420,0xc0201520,0x1920181f,0xd61fd620,0x171fc21f,0x251e2620,0xa11e281e,0xa523a423,0x1f201e23,0xd31fd320,0x1d1fd51f,0x8c238e20,0xad238923,0xa91ca81c,0x1f1d201c,0x9f1d221d,0xa31ca21c,0x2520241c,0xcf1fcf20,0x231fd11f,0x2e1e2f20,0x611e2c1e,0x5f1e631e,0x4c1c4d1e,0x261c461c,0xce202720,0x281fd01f,0xeb202620,0xec20ea20,0xc623c720,0xc623c023,0xc123c423,0x381e3423,0xc41e391e,0xfe1fc51f,0x341fc81f,0x32203220,0xc3203320,0x2e1e2c1f,0x6c1e321e,0x691c681c,0x391fb41c,0x38203820,0xb5200520,0x331fc31f,0x37203520,0x341e361e,0x331e311e,0xea1e2f1e,0x4120421f,0xe51fdf20,0x91fe21f,0xe4240a24,0x451e4623,0x441e481e,0x461e451e,0x3220361e,0x34203420,0xc71fc820,0x3020311f,0x34202c20,0x311fc720,0x36203720,0xbb203420,0x371fba1f,0xfd203e20,0xe91fbb1f,0x3e1ff11f,0xe31fb620,0x3d203d1f,0x3e1fe920,0xbb203e20,0x3720371f,0x31203420,0x2c203120,0x2e202e20,0xcb1fcc20,0x2a202b1f,0x2e202620,0x2b1fcb20,0x31203720,0x3d202e20,0x37203e20,0xb61fb420,0x38203d1f,0xb4203920,0x620071f,0xdd203820,0x71fdc1f,0xa200820,0xd1fdd20,0x8200c20,0xda1fdb20,0xe200d1f,0xdb201020,0x1220131f,0xd9200e20,0x131fd81f,0x16201420,0x191fd920,0x14201820,0xd61fd720,0x1a20191f,0xd7201c20,0x1e201f1f,0xd4201a20,0x1f1fd31f,0x22202020,0x251fd420,0x20202420,0xcf1fd020,0x2620251f,0xd0202820,0x2e20371f,0x2b202b20,0xd0202620,0x2020251f,0x2b1fd420,0x251fd020,0x37203d20,0x38202b20,0x3d1fb420,0xdd200820,0x720071f,0x3d203820,0x2b203d20,0x25202520,0x1f1fd420,0x1a201f20,0x191fd720,0xd9201420,0xd7201f1f,0x3d20191f,0x1f202520,0x7200820,0xe203d20,0xd1fdb20,0x8200d20,0x3d203d20,0x19201f20,0xd9201920,0x1320131f,0xd200e20,0x3d200d20,0x33201920,0x90243424,0xd323d224,0xcc243d23,0xcf23cd23,0xa124a023,0x4e244324,0x9d249724,0xee23ed24,0x6723f023,0xac24b224,0x94245424,0x4a249a24,0x451e481e,0x381d391e,0x571d361d,0x541e561e,0x1924081e,0x4a241824,0x471e441e,0x321d341e,0x4f1d2f1d,0x4c1e4e1e,0x2e24611e,0x3a242d24,0x3d1d3c1d,0x224011d,0x2d240424,0x30202c20,0x26232720,0x52232223,0x4f1e4e1e,0x9a24561e,0x50249c24,0x531e521e,0x6824661e,0xae24b324,0xb01caf1c,0x4f1e531c,0x461e4d1e,0xf21ff320,0xf9203f1f,0x3f1ff81f,0x471ff820,0xf2204620,0x3f20411f,0x46204720,0x621e6320,0x421e5e1e,0x451d441d,0xc01ebc1d,0x411ec11e,0x3e1d401d,0x621e601d,0x581e631e,0x5b1e5a1e,0x3d1d3b1e,0x381d391d,0x3a1c371c,0x5b1e591c,0x5f1e571e,0x5c1e5e1e,0xb21cb31e,0x541cb41c,0x5a1e561e,0x5a1e5b1e,0xf41e561e,0xfb1ff61f,0xd81ed91f,0x3f1eda1e,0x421d3e1d,0xb41cb51d,0x651cae1c,0x601d641d,0xba1cb61d,0x541cbb1c,0x591e581e,0x801d811e,0x4e1d7e1d,0x501c4f1c,0x6d1e6e1c,0x511e701e,0x531c501c,0x721c741c,0x461c6f1c,0x481d471d,0x651e681d,0x421e641e,0xed1fea20,0xed20421f,0xef206c1f,0x401ff01f,0x6c204220,0x6d206d20,0x401fef20,0x6e1e6f20,0xbd1e711e,0xb81cbc1c,0x71204b1c,0x6b207020,0x72207320,0x8f249020,0x8e248e24,0x8c248d24,0x8b248c24,0x93249324,0x91249224,0x90249124,0x8e248e24,0x93248c24,0x7b206324,0x72207a20,0x6f1e6c1e,0x4a1d4c1e,0xc91d471d,0xc71ecb1e,0x4f1d4e1e,0x6e1d501d,0xf51ff720,0x7d1e7c1f,0x551e7e1e,0x77208a20,0x321e3020,0x521e331e,0x75208820,0x781e7a20,0x7d1e751e,0x811e801e,0x781e751e,0x941e791e,0x9a1e961e,0xc41cc51e,0x571cc01c,0x5b1d5a1d,0x7a208f1d,0x90207b20,0x7c209120,0x64205820,0x87207a20,0x841e861e,0x881e8a1e,0x8e1e841e,0x58205920,0x95209420,0x5d208020,0x80205020,0xe920ed20,0x8a20e820,0x53205520,0x571d5620,0x5c1d581d,0x7e205f20,0x521d5420,0x551d4f1d,0x501d511d,0x9420541d,0x8f208120,0x8c1e8e1e,0x722061e,0x5e220322,0x631d621d,0x901e8c1d,0x911e911e,0x8f1e931e,0xd920dd1e,0xa120d720,0x9e20a020,0x921e9020,0x931e931e,0x8e1e921e,0xa2209e1e,0x7520a320,0x6e1c741c,0x401c411c,0x611c3e1c,0x5e1d601d,0xa620a71d,0x5d20aa20,0x561d5c1d,0xb420b21d,0x7620b520,0x781c771c,0xc21cbe1c,0x961cc31c,0x9c209820,0x66205620,0x5e207820,0x641d601d,0xa01ea11d,0x541ea21e,0x511c4e1c,0xa01e9d1c,0x7a1ea11e,0x761d771d,0xb720ba1d,0xc020b620,0xc220bf20,0xc020c120,0xcd20c320,0xc81ccc1c,0x701f6c1c,0xa41f711f,0xa61ea51e,0xcc20cd1e,0x6c20c820,0x671d6a1d,0xc920cd1d,0x6620c720,0x681d671d,0xc81cc91d,0xc61cc61c,0xcc20c820,0xa51ea820,0x661ea41e,0x67205520,0x52206820,0x65206920,0x67206620,0x69206820,0x65206a20,0x68206720,0x51206a20,0x65206b20,0x6a206820,0x48206b20,0x65204120,0x6b206a20,0x41206b20,0x42204220,0x64206320,0x58206420,0x65206520,0x42206b20,0xcf20d020,0xaf20d220,0xac1eae1e,0xe120e51e,0xe420df20,0xe120e020,0x6c1d6d20,0xac1d661d,0xb21eae1e,0xe420e21e,0xb320e520,0xb120b520,0xb21eb320,0x8c1eae1e,0x78208d20,0xd820d620,0xc620dc20,0xcb1cca1c,0xba20bb1c,0xd220bc20,0xcf1ece1e,0xc61ec71e,0x841ec41e,0x4d204a20,0x52208820,0xc4205120,0xc91ec81e,0x721d731e,0xfb1d741d,0xf920fd20,0xc21ec020,0xf91ec31e,0xf620f820,0xc31ec120,0x6e1ebf1e,0x701d6f1d,0x1821191d,0x76211b21,0x781d771d,0x761d7c1d,0xa1d791d,0xd210c21,0x2210421,0xc820ff21,0xcb1eca1e,0xc81cc61e,0x51ccc1c,0x210121,0x11211521,0xf211021,0x13211221,0x8210621,0x78210c21,0x7a1d771d,0xc61ec41d,0x131eca1e,0xf241224,0x10240f24,0x7b241124,0x7c1d7a1d,0x6825661d,0xcf256c25,0xcc1ece1e,0x421051e,0x8520fe21,0x7f1c811c,0x2421221c,0xd7212521,0xdb1cda1c,0xe01ce41c,0x821ce11c,0x851d841d,0xd51ed81d,0x351ed41e,0x30213421,0x2c212a21,0x2c212d21,0x29212821,0x26212721,0x82212a21,0x851c841c,0xde1edf1c,0xdd1edc1e,0xe01edc1e,0x3021311e,0x26212e21,0x2c212821,0xdf1ee321,0xe91edd1e,0xea1ee81e,0x8a1d8b1e,0x381d8c1d,0x3a213721,0xe51ee621,0x561ee81e,0x53215521,0x601c6121,0xdd1c631c,0xd624dc24,0xd71cd624,0xb71cd81c,0xbb24ba24,0x37213624,0x7e213821,0x841d801d,0x4121451d,0xe8214021,0xe41ee51e,0x4825461e,0xd4254c25,0xcf24d224,0xd724d624,0xf024d824,0xf31ef21e,0x5121521e,0xc0214f21,0xbe1dc21d,0x4221431d,0xf1214421,0xef1ef31e,0x921d8f1e,0xf41d931d,0xf91ef81e,0xe824ec1e,0x8424e924,0x811c801c,0xf424f21c,0xf524f524,0xf024f424,0xf61ef724,0xe91ef41e,0xe624e824,0x224ff24,0xf8250325,0xfb1efa1e,0x8f1d8e1e,0x8c1d901d,0x871d8a1d,0x6521691d,0x11216621,0xe251025,0x2250425,0xc24ff25,0x6250a25,0xfb1ef925,0x5f1ef71e,0x5d215b21,0x59215a21,0x30215521,0x36233223,0x971d9823,0x431d9a1d,0x411c451c,0x1825191c,0x24251625,0x1f252225,0x1d251b25,0xff251825,0x11efe1e,0x2c252d1f,0x7a252625,0x75217921,0xfc1f0221,0x11eff1e,0x21f001f,0x3a25361f,0xdd253b25,0xd81cd91c,0x941d951c,0x431d8e1d,0x41254525,0x6d256b25,0x86256925,0x83218521,0x41f0a21,0x91f071f,0xa1f081f,0x8521831f,0x95218921,0x901d911d,0x3c253d1d,0x4253825,0x61f051f,0xfd1efe1f,0x2e1f001e,0x34213021,0x57255a21,0x98255625,0x99219721,0x64256521,0xb2256025,0xae1daf1d,0xf1f131d,0x11f0d1f,0xfe21fb22,0x1a1f1b21,0x561f141f,0x581c571c,0x9f1d9e1c,0x991da01d,0x94219721,0xa721a421,0xa121a821,0x9e219d21,0x181f1921,0xf11f1a1f,0xee1cf01c,0x181f151c,0x9b1f191f,0xa1219d21,0xa1219f21,0x9a21a221,0x95219621,0xa21da421,0x1a1d9f1d,0x151f181f,0x2a1f2b1f,0x1e1f261f,0x201f1d1f,0x801c7e1f,0x451c841c,0x401c441c,0xc721c31c,0xb021c821,0xae21b221,0xb121b221,0xab21ad21,0xb021af21,0x5c1c5d21,0xc61c561c,0xc321c521,0xb921ba21,0x2821b521,0x2b1f2a1f,0xa41da51f,0x271d9e1d,0x241f261f,0xff22001f,0xa3220121,0xa41da21d,0xc121bf1d,0xbb21c221,0xc021bf21,0xbd21be21,0xb721bb21,0xba21b921,0x871c8621,0xb11c881c,0xb31db01d,0x2d1f2e1d,0x871f301f,0x8b1c8a1c,0xdb21e11c,0xcb21de21,0xd021cf21,0xd121cf21,0xce21d221,0xcb21cd21,0xc521c321,0xac21c921,0xa91da61d,0x301f311d,0x321f321f,0x2f1f2c1f,0x381f351f,0x5b1f391f,0x5c1c5a1c,0xda21d81c,0xfd21d621,0xff21fc21,0x2d1f3021,0xd31f2c1f,0xd921d521,0xd921da21,0xcb21d521,0xd121cd21,0xae1db421,0xae1db11d,0xb01daf1d,0xdc21df1d,0xeb21db21,0xed21ec21,0x3a1f3b21,0x3c1f341f,0x3e1f3d1f,0xfc21fb1f,0x3a21fd21,0x351f381f,0xe621ea1f,0xe421e521,0xe821e721,0x451f4421,0xec1f461f,0xe91ce61c,0xee21f21c,0xf221ed21,0xeb21f121,0x401f4121,0x431f421f,0x3c1f421f,0x3f1f431f,0xf91f3e1f,0xf621f521,0xf921f721,0xf621fa21,0xf321f521,0xef21f021,0xde21f121,0xe021dd21,0x57255821,0x29255a25,0x26212821,0x401c3e21,0x61c441c,0x3220422,0x71d0a22,0xff1d061d,0xfb21fc21,0x601f6221,0x521f5d1f,0x4d1f501f,0x901c941f,0x181c911c,0x1a221922,0xf41df122,0xf1df51d,0x9220b22,0x4e1f5322,0x4f1f4f1f,0x4c1f4e1f,0x511f531f,0x171f501f,0x12221322,0x14221522,0x11221622,0x15221422,0xe220c22,0xbb220f22,0xbc1dba1d,0x2422261d,0x1f222122,0x18221e22,0x5f1f6322,0xb71f5e1f,0xbb1dba1d,0xf41cf51d,0x251cf01c,0x26222422,0x581f5422,0x221f591f,0x24222122,0x21222022,0x63222222,0x5c1f621f,0x29222a1f,0x54222c22,0x5a1f561f,0xb91dbd1f,0x5c1db81d,0x5e1f5d1f,0x3422351f,0x5d223622,0x611f601f,0x6d1f6f1f,0x2b1f711f,0x2d222a22,0x28222e22,0x28222b22,0x2a222922,0x1c221d22,0x76221e22,0x781f751f,0xc41dc61f,0x691dc81d,0x6a1f681f,0x4122421f,0xf6224422,0xfb1cfa1c,0x5622541c,0x40225722,0x42224122,0x3c223e22,0x3e223922,0x3b223822,0xf81cf922,0x911cf61c,0x8e1c901c,0x5422501c,0x44225522,0x40224122,0x42224322,0xc7224522,0xca1dc91d,0x48224e1d,0x71224b22,0x75227422,0x49224c22,0x4b224822,0x4d224a22,0x4c224d22,0x46224e22,0x43224022,0x62226322,0x74226022,0x761f751f,0x661f671f,0x5e1f691f,0x59225c22,0x641f6a22,0xd01f671f,0xce1dd21d,0x7122701d,0x5f227222,0x58225e22,0x5c225d22,0x58225e22,0x5a225922,0x62226622,0x6c226322,0x68226922,0x66226422,0x67226722,0x61226322,0xe222e322,0xcb22e522,0xd01dcf1d,0x6e1f6f1d,0x701f6c1f,0x731f721f,0x6922681f,0x61226a22,0x64226022,0x56225722,0x38225222,0x3a223922,0x21d0322,0x771d041d,0x72227322,0x8e228c22,0x7b228f22,0x78227a22,0xdf1ddc22,0x761de01d,0x71227422,0x751f7822,0x881f741f,0x8d228c22,0x81228022,0x78228222,0x7e227a22,0x8a228b22,0x80228822,0x831f821f,0xd41dd51f,0x7c1dd71d,0x811f801f,0x8122841f,0x85228022,0x86228422,0x7f227d22,0xd7227b22,0xd31dd41d,0x9c22981d,0xdb229d22,0xdd1ddc1d,0x8f228d1d,0xd6228b22,0xd81dd51d,0x9422961d,0x84229122,0x861f851f,0xa922a81f,0x9722aa22,0x92229322,0x94229522,0x91229622,0x95229422,0x8d1f9122,0x8a1f8c1f,0x871f841f,0x9e229f1f,0x88229a22,0x841f851f,0x8e1f8f1f,0xe61f8c1f,0xe322e022,0xa422a522,0xa722a622,0xa022a622,0xa422a122,0xa022a522,0xa222a122,0x9e229c22,0x8f229f22,0x8a228e22,0xdf1de122,0xab1ddc1d,0xae22af22,0xa21fa022,0x51fa31f,0xfe1d041d,0xc622c71c,0x9222c222,0x8c1f901f,0xb222b31f,0xac22b022,0xa822a922,0x9c1f9d22,0x991fa01f,0x9a1f981f,0xde1de21f,0xbb1ddd1d,0xb822ba22,0xe11de222,0x9a1ddb1d,0x971f941f,0xba22be1f,0xe022bb22,0xe11ddf1d,0x951f981d,0xb81f941f,0xbe22ba22,0xbe22bc22,0xb522bf22,0xb322b722,0x11d0522,0x61d001d,0x81d071d,0xc222c01d,0xeb22c622,0xe81dea1d,0xef1ded1d,0xa21deb1d,0x9f1f9e1f,0x9f1fa31f,0x9c1f9d1f,0xa21f9e1f,0xcf22cd1f,0xc822cb22,0xcd22cc22,0xe122e022,0xef22e222,0xea1dee1d,0xd322d71d,0xae22d222,0xb21fac1f,0xb31fb21f,0xaf1faf1f,0xb11fb01f,0xae1fad1f,0xaf1fb21f,0xad1fb11f,0xee1dec1f,0xaa1def1d,0xa51fa81f,0xa71fab1f,0xde1fa61f,0xdb22d822,0xdc22dd22,0xd822de22,0xda22d922,0xd422d522,0xc522d622,0xc322c722,0xac22ad22,0x7722ae22,0x70227622,0x25212322,0xff212121,0xfa22fe22,0xe922ea22,0x2a22ec22,0x251e281e,0x5e1e5c1e,0xd71e621e,0xd91ed61e,0xfe22fc1e,0xf622ff22,0xf122f422,0x2a1d2722,0xf71d2b1d,0xf222f322,0xfa22fb22,0xf722f822,0xf022f622,0xf122f022,0x722f222,0x91f061f,0x9230a1f,0xf8230c23,0xfe22fa22,0xf31df722,0x71df21d,0x230623,0xf61df723,0x61df01d,0x1230423,0x4230523,0xb9230623,0xb61cb81c,0x1923181c,0xf8231a23,0xfd1dfc1d,0xa230b1d,0xfb230d23,0xf81dfa1d,0x1223131d,0x4e231523,0x4b234a23,0x10231623,0x15231323,0x16231423,0x11231223,0xd231423,0xe230c23,0xff22fd23,0x1622fb22,0x1b1d1a1d,0x121d131d,0x1f1d141d,0x1a231b23,0x6e1f7223,0xad1f6f1f,0x6e24b424,0x21232524,0x9e232023,0xa01c9f1c,0x4e234c1c,0xdc234f23,0xd71cda1c,0x3923381c,0x7233a23,0x21e061e,0xaf1fb01e,0xdf1fe01f,0xb91fde1f,0xe01fb01f,0xb31fdf1f,0xe01fe11f,0x4823491f,0x37234c23,0x32233623,0x36233423,0x30233723,0x35233423,0xa61ca723,0x81cac1c,0xa1e091e,0x3e233f1e,0x3d233823,0x3e233c23,0x42234623,0xbc234323,0xb823b923,0x46234423,0x41234723,0x44234023,0x42234323,0x39234023,0x3d233c23,0x2b232f23,0x1f232a23,0x18231e23,0x111e1023,0x181e121e,0x1a1e191e,0x6023611e,0x27236423,0x291e261e,0x5123501e,0x48235223,0x4e234a23,0x91e0c23,0x261e081e,0x281d271d,0x301c341d,0x581c311c,0x5a235923,0x51235423,0xf7235023,0xf91ff81f,0xf61fac1f,0xf71ff51f,0xac1ff91f,0x5e235f1f,0x55235823,0x53235723,0x77206723,0xcc207620,0x2c202e1f,0x2d202c20,0xa51fca20,0x9e1ca41c,0x6223661c,0x77236323,0x70237623,0x1f1d1e23,0x161d201d,0x111e141e,0x8123821e,0x6d238423,0x6b236f23,0x6c236823,0x16236d23,0x1c1d181d,0x7323771d,0x1237223,0xae1fff20,0x1c1fd71f,0x1a201a20,0xc6201b20,0x1d1d1b1f,0x171d191d,0x101e161e,0x1c1d1d1e,0x7f1d181d,0x78237e23,0x7c237d23,0x78237e23,0x7a237923,0x74237523,0x64237623,0x67236623,0x91fb823,0xa3200b20,0xa41ca21c,0x51fb51c,0x2a200420,0x271e241e,0x9e239f1e,0x8d239823,0x8e238c23,0x8c238923,0x8f238d23,0x8a238b23,0x89238823,0x9d238a23,0x9e239c23,0x91239223,0x19239423,0x1d1e1c1e,0x9c23991e,0x93239d23,0x95239223,0x1f1d2223,0x981d1e1d,0x9a239923,0x90239623,0x90239323,0x92239123,0x11200f23,0xac1fbf20,0xaf23ae23,0x5f1c6223,0x9e1c5e1c,0x99239c23,0x281e2923,0x521e2a1e,0x4e1c4f1c,0xa123a41c,0xa523a023,0xa323a723,0xa423a523,0xc023a623,0x1720151f,0xb923ba20,0x2423bc23,0x211d1e1d,0xaf23ad1d,0x2423ab23,0x261e251e,0xb223b01e,0xb723b623,0xb223b623,0x49214d23,0xb5214821,0xb323b723,0xb623b423,0xb023b723,0xb523b423,0xae23af23,0x9f23aa23,0x9a239b23,0x80238623,0x4f238323,0x49234b23,0xe51fe123,0x331fdf1f,0x2e1e321e,0x2c1d2d1e,0xd01d261d,0xd323d123,0x3d246523,0x48242e24,0x9f24a324,0xa9245d24,0xeb24a524,0xee23ec23,0xfe23fd23,0xe0240023,0xe123e223,0x95245523,0x49249924,0x72244a24,0x23ff24,0xf1240224,0xf423f223,0x31248e23,0xfb243024,0xfe23fc23,0x71244923,0xf5241024,0xea23f623,0xd723e223,0x4a23d623,0x73245024,0xf423f324,0x5923f623,0x98249b24,0xa21ca424,0xe41c9f1c,0x3b1fe71f,0x401e4120,0xe81e421e,0x3a1feb1f,0x5240620,0x3923e724,0x371e3b1e,0xd240e1e,0x4423e524,0x3e204520,0xf41ff120,0x4420431f,0xf1203e20,0x6123631f,0x47236523,0x491e461e,0xfa1ffb1e,0x4520441f,0xfd1ffc20,0xfa20441f,0x171ffc1f,0x14241624,0x1d241c24,0x1b241b24,0x17240a24,0x9200b24,0x4200820,0x38200520,0x26202720,0x36202a20,0x3b1d3a1d,0x371c361d,0x531c381c,0x4c1f521f,0xb61eba1f,0x301eb71e,0x32223122,0x21202322,0x4d202020,0x501e4c1e,0xe200f1e,0x4d201220,0x511f501f,0x5c205b1f,0x60206020,0x50205e20,0x40205d20,0x60203f20,0x5d205020,0x5b205a20,0x60206020,0x3f205d20,0x4c203f20,0x3f204d20,0x4a204d20,0x60205a20,0x42203f20,0x62206120,0x41204b20,0x4b204820,0x49204820,0x4b204a20,0x4e204920,0x51206b20,0x4a203f20,0x4e204920,0x52205120,0x49203f20,0x63204e20,0x62204220,0x63205920,0x3f206220,0x52204e20,0x68205220,0x55205320,0x56206620,0x52203f20,0x55205320,0x57205620,0x53203f20,0x59205520,0x5a206220,0x65205720,0x59205820,0x3f205a20,0x57205520,0x58205820,0x3f205920,0x11241320,0x2f242f24,0x33243424,0x3a243824,0x2f243924,0x38243324,0xf823ec24,0xee240c23,0xc23ec23,0x2f241324,0x38243824,0x37243924,0x73243724,0xc247424,0x38241324,0xee23f024,0xf0240c23,0x38240c23,0x3823f024,0xf2243724,0x3723f023,0x3723f224,0xf4247424,0x7423f223,0x7423f424,0xf6247524,0x7523f423,0x7523f624,0x6247624,0xea23e924,0x7623f623,0x6247724,0xf623ea24,0xfa242a23,0x99240623,0x28249524,0x6242a24,0x2823f624,0xf6242a24,0x7723f623,0xe240e24,0xdc23e624,0xdc240e23,0x2823db23,0xe23f624,0x28249924,0xe240e24,0xd923db24,0xd9240e23,0x9923d723,0xd7240e24,0xd7249923,0x9723e223,0xe2249924,0xe2249723,0x9d23e023,0xe0249724,0xe423de23,0xe0240a23,0xa23de23,0x1b240a24,0x22242024,0x21242424,0x20240a24,0x9d242224,0xa23e024,0xa249d24,0x21242224,0x1c241e24,0x22249d24,0x94242124,0x21249d24,0x1c242124,0x17241724,0x1f241524,0xa9241f24,0x1724a824,0xa8241f24,0xd523d424,0x3e249a23,0xd4243f24,0x3e243c23,0xd423d424,0x94249a23,0xa8241724,0x1724a624,0xa724a624,0xd4243c24,0x29249423,0xc923cb24,0x94243c23,0x29242124,0x3c23c924,0xa024a124,0x29242324,0x21243c24,0x29242324,0xab242124,0x2624aa24,0x2c242624,0x1a241a24,0x2d243b24,0xa2242d24,0x2624a424,0x2d241a24,0x2624ab24,0xa7242d24,0x2d24ab24,0x21242324,0xa1241724,0x17242324,0x2d24a724,0xa424a424,0x1724a124,0xe623dc24,0x3123e523,0x11242f24,0x10241124,0x72247124,0x37247324,0x71241124,0x30247224,0x11243124,0x35243724,0x30243024,0x72241124,0x4b204124,0x57204c20,0x9b249c24,0x2b202a24,0xcb1fcb20,0x291fcd1f,0x5d204020,0x4f205420,0x5e205020,0x54204020,0x5b204f20,0x42206120,0x5c205f20,0x4f205b20,0x5f205e20,0x5b205f20,0x42204220,0x4f204020,0x9d1e9c20,0xa31e9e1e,0x2d24a224,0x3d242e24,0xa3244024,0x2e242d24,0xa3249f24,0x40242e24,0xb524b324,0x2e249f24,0x23244024,0x9e24a024,0x40249f24,0x2924b524,0x9e242324,0x9e242924,0xcd249f24,0x2923cb23,0x3f23d424,0xcf23cf24,0x2923cd23,0x9f242924,0xb524b524,0xb424af24,0xb5242924,0xcf24b424,0xb4242923,0xb423cf24,0xd424ad24,0xad23cf23,0xd423d524,0x9c24ad23,0xd5249a24,0x9b249823,0x28249c24,0x96249524,0x9c249824,0x2a23d524,0x96242824,0xd5249824,0x2a24ad23,0x98249624,0xfa23fc24,0xfe242a23,0x2a23fc23,0x98242a24,0x2a24ad24,0xae24ad24,0x2a23fe24,0xb024ae24,0xd324ac24,0xae23fe23,0x24b024,0xb023fe24,0xd324b024,0xd123d123,0x1a243b23,0x36241a24,0x32243224,0x25242b24,0x27242524,0x26242624,0xa524aa24,0xa924a524,0x19241f24,0x4240824,0x240224,0x1924b024,0x2240424,0x1f24a524,0x25241524,0xa5242624,0x1a23d124,0x25243224,0x1524a524,0xd124b024,0x32243223,0x15242524,0x2241924,0x3224b024,0x19241524,0x651e6424,0x611e661e,0x7c207d20,0xcc1ecd20,0x691ed01e,0x671e6b1e,0x681e691e,0xb71e6a1e,0xb41eb61e,0x831fec1e,0xd7206c20,0xda1edb1e,0x6f206e1e,0xcb204620,0xc61eca1e,0x6f20461e,0x471ff520,0x4b1d4a1d,0x6d1e701d,0x5e1e6c1e,0x7e207f20,0x81204f20,0x8a208020,0x76208b20,0xf220ef20,0x8320f320,0x6d208220,0x491d4d20,0x4e1d481d,0x73208620,0x4c204d20,0x49207020,0x72204820,0x7a1e7b20,0x861e741e,0x72208720,0x89208820,0x65207420,0x78207920,0x771e7b20,0x511e761e,0x74206a20,0xc423c120,0xb123c523,0xaf1eb31e,0x9c209a1e,0x62209d20,0x651d641d,0x90205b1d,0xbd207d20,0xde1fb91f,0x7f1e831f,0xed1e7e1e,0xe620ec20,0x57208c20,0x8b205620,0x861e8a1e,0x321d331e,0xf81d341d,0xeb23ec23,0x5b209023,0xda205a20,0xdd20dc20,0x851e8720,0x921e891e,0x5c206020,0x9d209b20,0xa2209920,0xa520a420,0xb720b620,0x3620b820,0xba203720,0xbc1fba1f,0x6b20351f,0xff246f24,0xff246b23,0xd2240123,0x6b246a23,0xd223d024,0x6b246b23,0x3240124,0x7240324,0x18241824,0x64246924,0x18240324,0xd0246424,0x3246b23,0xd0246324,0x3240323,0x62246424,0x5b245f24,0x3245a24,0x5f246224,0x3246324,0x5f245f24,0x4b245a24,0x5323ce24,0x5f246124,0xce244b24,0x63246023,0xce245f24,0x60246123,0xd620d724,0xa320da20,0xa120a520,0xb020ae20,0xaa20b420,0xad20ac20,0x9a1e9b20,0x6b1e961e,0x641e6a1e,0x5a1d5c1e,0xc71d571d,0xc223c323,0x56245423,0x6e246e24,0x6d246c24,0x68246d24,0x40245424,0x3c1e3d1e,0x9a1e981e,0xae1e9b1e,0xb320b220,0xb420b520,0xd320b020,0xb224ac23,0xb324b124,0xd3244024,0xb124b223,0x3d244024,0xb823d324,0xbb1eba1e,0xd23e51e,0xe5244724,0x4c244723,0xe523da24,0xda244c23,0x4d244c23,0xda23d824,0xd6244d23,0x4d23d823,0xf244924,0x12241224,0xf7240b24,0xf7241223,0x4a23eb23,0x12244924,0x4a245024,0x12241224,0xed23eb24,0xed241223,0x5023ef23,0xef241224,0xef245023,0x4d23f123,0xf1245024,0xf1244d23,0xd623f323,0xf3244d23,0xf323d623,0xe123f523,0xf523d623,0xe723e823,0xe1240523,0xe823f523,0x523e823,0xe823f924,0xfb23f923,0xfb23e823,0xfd23fd23,0x6f23ff23,0x6e247024,0xfd245624,0x70246f23,0xe3240924,0x6923dd23,0x14241824,0x69245e24,0x16241424,0xdd240924,0xdd241623,0x5d23df23,0x14245e24,0x5b245a24,0x5c245c24,0x14245d24,0xdf241624,0xe823e123,0x7023fd23,0x56247024,0x57245724,0x58245924,0x57247024,0x5c245824,0x16241424,0x5a244424,0x44245c24,0x16245c24,0x7023e824,0xe8245824,0x41245823,0x44244324,0x42241624,0x16244324,0x4123e824,0xe1245524,0x5523e823,0x16244224,0x4523e124,0xe1244224,0x5523e123,0xe1244f24,0x4e244f23,0x45244624,0xce23e124,0x48244b23,0x46244824,0xe123e124,0x51244e23,0x54245124,0x51246824,0x66246824,0xce23cc24,0xca244823,0x4823cc23,0x66245124,0x67246724,0xd2246a24,0x61246523,0x67245324,0x6523d224,0x4823ca24,0xc823e124,0xe123ca23,0x67245123,0x65246524,0x52245324,0xc8245224,0x5123e123,0x52246524,0xad24ae24,0xb9247024,0xbb20b820,0xd51ed420,0x941ed61e,0x991e981e,0x1721161e,0x8b211821,0x37243524,0x4c247624,0x73244724,0x4d245024,0x75244d24,0xc2247424,0xbe20bf20,0xb524af20,0xb5246d24,0xb81eb41e,0x9e24451e,0xca24a024,0xcd20cc20,0xe020de20,0x8520e420,0x83248424,0x82248324,0x81248124,0x88248924,0x87248824,0x86248624,0x83248524,0x81248324,0xd4248824,0xd120ce20,0x27248520,0xd9242524,0xd623d823,0xf023ef23,0xb423f223,0x6c24af24,0xd820dc24,0xdf20d920,0xe220de20,0x31203020,0xc71fc720,0x2f1fc91f,0x3e1e3f20,0xe31e411e,0xde23e423,0x50215223,0xbf214f21,0xbc1ebe1e,0x4e20861e,0xee204920,0xf020ef20,0xb41eb820,0xb71eb61e,0xb91eb51e,0x361e341e,0x641e3a1e,0x62236023,0xf220f423,0xf620ef20,0xfc20f820,0x9a209620,0x9209b20,0x17241624,0xf120f524,0x7d20f020,0x781c791c,0xf420f51c,0x2120ee20,0x1e212021,0xbe1ebc21,0xfa1ec21e,0xfd20fc20,0xfa20f620,0x1920fb20,0x14241524,0x1a248924,0x5242c24,0xfa240624,0x2c248823,0x8f242624,0x31242f24,0x25248424,0x82242b24,0x36243224,0x1b248024,0xd0241d24,0xd31ed21e,0xd210b1e,0xd210921,0x8210c21,0x8210921,0x83210621,0x32242b24,0x1e247d24,0x78242124,0x1b242024,0x24247a24,0x81242224,0x1a243624,0x1c247e24,0x7a241e24,0x78247924,0x80247824,0x7f247f24,0x7d247e24,0x7c247d24,0x7b247b24,0x78247a24,0x7f247824,0xd0247d24,0xce1ecc1e,0xd823da1e,0xd923d923,0xdc23db23,0x22247923,0x7f242024,0x1c241d24,0x4d247524,0x15244c24,0xe211421,0xf210e21,0x13211021,0x14211221,0x1a211b21,0x18211c21,0x1a211721,0x75206921,0x9f207420,0xa31da21d,0x1221141d,0x1e210f21,0x24212021,0xfd21fe21,0x33220021,0x31213521,0x38213921,0xa9213b21,0xa61ca81c,0x9624411c,0x63249524,0xd1243b24,0xe023de23,0x5823df23,0x96249824,0xcf23ce24,0x3e243f23,0x53245224,0x37213a24,0x3f213621,0x43214221,0xc224be21,0x4424c324,0xa424a124,0x9f244624,0x4b249e24,0xa324a224,0xa4245a24,0xa824a224,0x5c24a924,0xa6245f24,0x6624a824,0xb224b124,0xab246424,0x6224a724,0xa624a724,0x201e2124,0xb51e221e,0x6824b324,0xb0246b24,0xcb24ae24,0xc620c720,0x9d245120,0xd249424,0x77240e24,0xac246a24,0x6024b024,0x3b242d24,0x99244f24,0xca249724,0xcd23cb23,0xa5245e23,0xc924aa24,0xca23cb23,0xea23e823,0x323e923,0x8240424,0x3f213e24,0x45214021,0x3e214421,0x42214421,0xc3213f21,0xc124c524,0xba24bc24,0xc524b724,0xc024c424,0xe41eea24,0xc91ee71e,0xc624c824,0xda24db24,0xc224dc24,0xc524c424,0xcc24ca24,0xbd24cd24,0xb824b924,0xe01ce124,0xce1cde1c,0xd024cf24,0xcc24cd24,0x4624c824,0x48214721,0x871d8621,0xc61d881d,0xcc24c824,0x4c214d24,0xef214621,0xec1eee1e,0x4a214b1e,0x47214c21,0x4b214a21,0xd024d121,0xd424d324,0xd124ce24,0xcf24d024,0xc624d224,0xcb24ca24,0xbc24bd24,0x1024b624,0x131f121f,0xf024ee1f,0xdf24f424,0xe21cde1c,0xdf24de1c,0xe424e024,0xdf24e224,0xe41ce224,0x921ce51c,0x8b219121,0x6f217021,0xf3217121,0xf124f524,0xec24ea24,0x5824ed24,0x56215a21,0x61215f21,0xec216221,0xf21eee1e,0x1425121e,0xee251525,0xf324f224,0x5d215e24,0xf1215b21,0xee24f024,0xe824e624,0xe724ec24,0xea24e624,0x5c215e24,0xfc216021,0xfe1efd1e,0x6f216c1e,0x8d217021,0x881d891d,0x6521661d,0xf216321,0x12250e25,0xf824f625,0xfd24fc24,0xf824fc24,0xf61ef424,0x671efa1e,0x6a216921,0xfa1efb21,0x51ef61e,0xfe250425,0xd250924,0x63250c25,0x69216521,0x75217621,0xa217321,0xd250c25,0x4d254b25,0x9254925,0xb250725,0x8250925,0x3250625,0x4250225,0xf824f925,0x7224f624,0x6d216e21,0x921d9321,0x771d941d,0x7a217921,0x10250e21,0x17251425,0x1c251625,0x17251925,0x1d251a25,0x1a251b25,0x86218a25,0x15218421,0xf251125,0x8f219025,0x219121,0xfc1efd1f,0x2a252c1e,0x25252725,0x1e252425,0x22252325,0x7e252425,0x7b217d21,0x76217a21,0x4d217421,0x48254c25,0x2a252b25,0x27252c25,0x2b252a25,0x75217325,0x26217921,0x28252725,0x22251f25,0x8c252325,0x90218f21,0x51f0621,0x801f081f,0x7e218221,0x3c253a21,0x82253d25,0x7d218121,0x4c254a21,0x7f254d25,0x82218121,0x38253921,0x31253625,0x33253025,0x51f0825,0x461f041f,0x4b254a25,0xdc1cdd25,0x361cd61c,0x3c253825,0xda1cdb25,0x451cdc1c,0x40254425,0x8a218625,0x87218921,0x8a218921,0x40253e21,0x42254425,0x45254425,0x3d253b25,0x33253925,0x2f253025,0x10251425,0xdc251125,0xd724da24,0xc921ca24,0x2921c521,0x271f2b1f,0x5225531f,0x1b255425,0x161f171f,0xe1f0c1f,0x551f121f,0x50255125,0x54255525,0x4f254e25,0x53255225,0x58255925,0x5e255b25,0x64256025,0x56255c25,0x9a255925,0x93219921,0x94219321,0x94219521,0x98219721,0xa71da621,0x621da81d,0x65256425,0x62255e25,0x61256325,0x5e256025,0x5a255b25,0x66255c25,0x6b256a25,0x6c256a25,0x6d256d25,0x68256c25,0x4f254e25,0x71255025,0x257225,0x74257527,0x77257625,0x76257525,0x79257a25,0x7c257b25,0x7b257a25,0x94257d25,0x82257e25,0xa6258325,0xf426f325,0x2262c26,0xca25c126,0x4f25f725,0xf8263e26,0xa525a025,0x58275b25,0xdd275927,0xd7257726,0x8b258626,0x89258725,0x86258b25,0x16261525,0x8125bf26,0x7c267926,0x81258e26,0xe2258f25,0xf127f427,0x7e275d27,0x7e276226,0x7d259325,0x94257e25,0xa3259525,0xa826aa26,0x3b25f826,0x9f25bc26,0x9e259d25,0xe927e625,0x9927da27,0x9b259a25,0xb2257f25,0xd258925,0xe26d226,0xb4279c26,0x9b26cf26,0x38263925,0x21261f26,0xa6261e26,0xa7258325,0xa825d725,0x83261c25,0xa9258225,0xca270125,0x94269626,0xba25fa25,0x8a25ab25,0xac258825,0x8825ab25,0xae25af25,0xaf25ad25,0x8525ad25,0xaf258c25,0x4b258525,0x85268027,0x40269226,0xdc268c26,0xec27ef27,0xe525e227,0x2825b225,0x29272b27,0xb5258e27,0xf225b425,0x9125b425,0x9270d25,0x95270b27,0x7e263b25,0x9525ba25,0x77259425,0x78266e26,0x6126f426,0x60262c26,0x7e276227,0xf925cc26,0x99259825,0x9825cc25,0x5c275a25,0x16267b27,0xae271527,0xee27ef26,0x9727ec27,0xfa25fb25,0xc2266d25,0x8326ee26,0xa7263c25,0x92259125,0xbc25b625,0xcb26c927,0xb7259026,0xc625b625,0xc827c426,0x5e26ec26,0x726ed26,0xc326c527,0x89276926,0x71276e26,0x6e26c026,0xe327e726,0xe827e627,0xe727e527,0x7a267d27,0xb7267e26,0xb625f225,0xe025e125,0xd825f325,0xe727e827,0xe325ed27,0xfb25e625,0xba264d25,0xeb27f325,0xcb27ee27,0xb327c926,0xe627d927,0x8227da27,0x83278127,0x40263e27,0xc3263a26,0xc227a526,0x9125f227,0xb825b625,0xf725f625,0xf825f925,0xf925a525,0x9825a525,0x6e259025,0xda259125,0xea27ed27,0xbc25bd27,0xfe25fd25,0xbd25bc25,0xc625c725,0xc7260025,0xff260025,0x75275a25,0xd1275826,0x34261b25,0xd027d326,0xcb27cb27,0xbe261825,0xa6263925,0xe425dc25,0xb1269626,0x7260b26,0xeb25c426,0xde27df27,0x6262027,0x12270527,0x1325bf26,0x1225c326,0xd0261126,0x23262425,0x60265626,0xfe26e926,0x5025be25,0xcc261926,0xf8259925,0xf326f926,0x99261a26,0xdb259b25,0x31263225,0x3e26c126,0xe9264f26,0x3d25f425,0xcf262526,0x2625d525,0xd5262526,0xab266f25,0x7427a827,0x73260a25,0xce27dc25,0x1a27db27,0x625a326,0xd6257127,0x7025cd25,0xcd257125,0xdb263025,0x70263125,0xdb25cd25,0xdb257025,0xd2263025,0x33263425,0xd225d326,0xd7263325,0xa8263625,0x7927ab25,0x3a27aa26,0xde266826,0x9225ee25,0x8c25ea25,0xac25f325,0xe025f325,0xe525ac25,0xea25ee25,0x2e262825,0xa926f726,0x73267927,0x35261a26,0x4225a826,0xef264326,0x1925cc25,0xe2263c26,0xe325f125,0xb260d25,0x33260c26,0xd325d426,0x4b266925,0x43264926,0x4625a826,0xd626d726,0x7826dd26,0x2d262c25,0xaf26bd26,0xcc27ac27,0xcf27d027,0x4d25b827,0x525f626,0xc4260426,0xfd25bd25,0xbd264e25,0xfc264e25,0x27272825,0xa326a227,0x6270525,0xbc265027,0x525fe25,0x52265126,0x53260426,0x55260326,0xa265426,0x7265426,0x49260a26,0x47264826,0xb925de26,0x4c25b825,0x81274b27,0x72275626,0x87275426,0x7f25b325,0x5b26e625,0x1b262126,0x35261c26,0x6825de26,0x3b266726,0x69259526,0x3b25bc26,0x58266926,0x6026e926,0xdb27ea26,0xcc27da27,0x51265226,0x6126e326,0x1d266426,0x2225ce26,0x75277626,0xe2277727,0x63265e26,0xf525ac26,0x45258c25,0x1a263526,0x35264626,0xf0264526,0xb726c226,0xc8260c26,0x35260f25,0xa8261c26,0xa8263c25,0x3c266b25,0xa7266b26,0x2225d025,0xfc25ce26,0xfd26fe26,0x8b25b026,0xe725b125,0xe8265726,0xb2258b26,0x8425b125,0x95268326,0xa426a526,0xe426a126,0xe127e527,0xe7266227,0x71261426,0x3e263f26,0x3a266626,0xb0264126,0xb325e925,0x70257225,0x44263025,0xa8266b26,0x6b25a725,0x61264226,0x5f275e27,0xd427c727,0xcb27cb27,0x4a26cc26,0xc726c926,0xcf26cf26,0xda262425,0xc6260125,0x2825c125,0xd5262926,0x65266c25,0xfd266626,0x6925bc25,0xc725c026,0x4f25bd25,0x4d25f626,0x626d226,0x5426d126,0x726d426,0xcd27ba26,0x626ce26,0x9926d526,0xf027e127,0xdb27e427,0xdf26dd26,0x9d26fc26,0xdf26be27,0xd626dd26,0x74265526,0xdb257525,0x75265526,0xdb26dd25,0xc8257526,0xf261025,0xd726d926,0x56257726,0xd226d326,0xda26de26,0xda26e026,0xe026d926,0x7726e026,0xe0257625,0x73257626,0x5426db25,0x4a265526,0x4c264b26,0xe8260826,0x5a265726,0xa26d826,0xea26e926,0x90265626,0x81258f25,0x8825e125,0x2e25e025,0x9f26ff26,0x9e26ff27,0x8226ee27,0x97259a25,0xeb26ea25,0xf0269d26,0x9f26f526,0xf126f827,0xa26fa26,0xb7270927,0xf226f526,0xb926f626,0xb6270c26,0xc827c526,0xc027b927,0x2260325,0xf326f826,0xf2257a26,0x7c26f126,0x7c26f225,0xf726fb25,0xfb26f226,0xf7262d26,0x2d26fb26,0x7826fb26,0x7c26fb25,0xfb257b25,0x78257b26,0xc4260625,0xff260725,0xfe26fd26,0x68266726,0xcc266626,0xca27dd27,0x1270227,0xd2260e27,0xe270226,0xb2270f26,0x4726b626,0xf8261326,0xc3261025,0xaf261125,0xae26b527,0xab26b927,0x7269526,0xfc262a27,0x7262a26,0x2a270827,0xfd270826,0xeb265926,0x3265826,0x14261627,0xb9270926,0xc126b726,0xd5265226,0xd3270126,0x44260e26,0x43274227,0xb626b727,0xa270e26,0xe26b727,0xb6270f27,0x1526b326,0xb226ad27,0x18271a26,0xb3271927,0x1426b226,0xb3271027,0x15271426,0xae26b227,0xbd27ad26,0x1b27ac26,0xad26ab27,0x1e272026,0xae271f27,0x1a26ad26,0xae271627,0x1b271a26,0xac26ad27,0x33273426,0x2d269727,0x9e269b27,0x3c273e26,0xac273d27,0x2026ab26,0xac271c27,0x21272026,0xa726ab27,0x1b271c26,0x2726ac27,0xa6269e27,0x2a272c26,0xa7272b27,0x2626a626,0xa7272227,0x27272626,0xa226a627,0x21272226,0x4526a727,0x8a268527,0x30273226,0xa2273127,0x2c269e26,0xa2272827,0x2d272c26,0x9c269e27,0x39273a26,0x33269027,0x9b269527,0x36273826,0x9c273727,0x32269b26,0x9c272e27,0x33273226,0x97269b27,0x2d272e26,0x39269c27,0x95268f27,0xc270e26,0x97270d27,0x38269526,0x97273427,0x39273826,0x90269527,0x3f274026,0x3f268b27,0x8f268a27,0x24272626,0x90272527,0x3e268f26,0x90273a27,0x3f273e26,0x8b268f27,0x45274626,0x21268627,0xab26a627,0x48274a26,0x8b274927,0x44268a26,0x8b274027,0x45274426,0x86268a27,0xf525af26,0xe025ae25,0xde260a26,0x85268626,0x46274a26,0x4a268627,0x85274b27,0x50268126,0x4f274e27,0x57275827,0x81275927,0x50268026,0x81274c27,0x96275026,0xaf279827,0x52267026,0x70275427,0x72275426,0x51275226,0x10275327,0xb3270f27,0x7b275726,0x7b275c26,0x5a267626,0xdc25dd27,0x5d25a625,0x5e275f27,0x7a275e27,0x5d267626,0x76275e27,0x5e267a26,0x7e276027,0x60267a26,0x7d276427,0x7d267f26,0x66276426,0x7d268327,0x81276626,0x86269f27,0x74277227,0x6a268e27,0x84268227,0x6a268226,0x6a276c27,0x6b276927,0x82268927,0x6f276c26,0x74268e27,0xa9279527,0x70279326,0x88268727,0x70268726,0x70277227,0x71276f27,0x87268e27,0x75277226,0x7a269427,0x6e276c27,0x76268927,0x8d268c27,0x76268c26,0x66277827,0x83276827,0x8c269426,0x7b277826,0x80269a27,0x92277c27,0x92269326,0x7e277c26,0x92279027,0x9a26aa27,0x7e269226,0x83276327,0x7e276826,0x9a278027,0x98278226,0x98269926,0x84278226,0x7b277c27,0x9f277d27,0x84269826,0xa5278727,0x5b278c26,0x5f26e426,0xa1278826,0xa126a026,0x8a278826,0x87278827,0xa5278927,0x8a26a126,0xaa278d27,0x8a279226,0xa5278c27,0xa3278e26,0xa326a426,0x90278e26,0x8d278e27,0xaa278f27,0x9026a326,0x86278427,0x78269f27,0x94277a27,0x9526a826,0xa8279627,0xaf279626,0x9826af26,0x9826a927,0xa9279327,0x9a26d326,0x6e26d227,0xc126c026,0xe1267c26,0xe1279b26,0x9b265626,0xa527bd27,0xa127b527,0x8279d27,0xad26b527,0xf827ae27,0xf1257c26,0x12271426,0xf0271327,0xbe26b726,0xbe26f026,0xb8266426,0x6c266d26,0xc4266a26,0x47264526,0xcc264826,0xcc27a026,0xa926ca26,0x3c25e725,0xd1279a26,0xb7279926,0xb525b425,0x9a26d225,0x73270227,0x74257625,0x6426f025,0x7826f426,0x79257b25,0xbe26fc25,0xfd270726,0x9d270826,0x7a262c27,0xcb26f325,0xff25c725,0x4259e25,0x80270327,0x8d258e25,0x46257225,0xbb266a26,0xe226ed26,0xc327be26,0xd127c226,0xd2263425,0x40266c25,0x1026b826,0x11271327,0xf271327,0x16271127,0x17271927,0x15271927,0x1c271727,0x1d271f27,0x1b271f27,0x22271d27,0x23272527,0x21272527,0x2e272327,0x2f273127,0x2d273127,0x79272f27,0x77277627,0x5b275727,0x34275927,0x35273727,0x33273727,0x3a273527,0x3b273d27,0x39273d27,0x40273b27,0x41274327,0x3f274327,0x4c274127,0x4d274f27,0x45274927,0x55274727,0x53275227,0x4b274f27,0x46274d27,0x47274927,0x55275127,0x5d275327,0x5f276127,0x70277327,0x75277127,0x77277927,0x6a276d27,0x63276b27,0x65276727,0x64276727,0x81276527,0x83278527,0x82278527,0x6f278327,0x71277327,0x7c277f27,0x7b277d27,0x7d277f27,0x91278d27,0xa278f27,0xb270d27,0x7826e127,0x8726d026,0x89278b27,0x88278b27,0x2b278927,0x29272727,0x8e279127,0x93278f27,0x94279727,0x95279727,0x69279427,0x6b276d27,0xd626df27,0x8826e126,0x6f258625,0xa0279a25,0xaa26ca27,0xe225f125,0x325a225,0xaa270527,0xa827a927,0xa827aa27,0xb927ab27,0xba259525,0xae27ac25,0xac27ad27,0xae27af27,0x2e257127,0xc9262f26,0xbb27bd26,0xfe279d27,0x3626be26,0x65263726,0xdd27be26,0xc627e027,0xc527b626,0x19263c27,0xde261a26,0xdc26d826,0xc826cd26,0x1e27c927,0xa1262126,0xa1261e25,0x3925a425,0x37266726,0xc627c326,0x5c26c326,0x6326e226,0xc027b426,0xb427bf27,0xa227bf27,0xe927f227,0x1c27e327,0xd725d826,0x74275125,0x5d275626,0x5b266226,0xc727c826,0xe427c927,0x5f262b26,0xab269a26,0xcb269926,0xc927b327,0xc927cb27,0xb027c727,0xc927b127,0x826c426,0xf1270727,0xfa26f526,0xd5259c26,0xa625ce25,0xb827b727,0xbc26af27,0xc3264026,0xdf27be27,0xdf27c327,0x1527b627,0x9f259d26,0xe127d625,0xd327d427,0xe127d427,0xd327e827,0x6427e127,0x65276327,0xd827d127,0xd227d227,0xcf27d827,0xd827cf27,0xcd27e627,0xdb27d927,0xda27d927,0xce27db27,0xdb27cd27,0xdd27e027,0xd727dc27,0xd027d127,0xdc27e027,0xdc27de27,0xde27ec27,0x92257d27,0xe3256e25,0xf227e427,0xf527e427,0xac27f227,0xab25aa25,0xf027e425,0xe927f527,0xee27f127,0xf127ee27,0xa627f627,0xce27c627,0xed27ea26,0xee27ef27,0xf327f627,0xd627e227,0xfd27d527,0x2a262926,0x6f27a926,0x8527a826,0x8c258d25,0xaa258a25,0xea25a925,0x3b259325,0x7260926,0xf3260b26,0xf426f926,0x1260226,0xf725c126,0x4f25f625,0x425f826,0x5b25a027,0x58275a27,0x7526dd27,0xbf257725,0x15261725,0x62261526,0x16261426,0xbf261326,0x14261525,0x81261626,0x86268526,0x8a268626,0x7e267e26,0x7b267626,0x75267b26,0x74267426,0x71267026,0x6e267126,0x71266f26,0x73266f26,0x7b267e26,0x74267426,0x73267126,0x77267926,0x74267826,0x79267326,0x7e268626,0x7c267426,0x81268026,0x86268126,0x79267426,0x7c267826,0x74268126,0xf1267926,0xf527f227,0xf027f527,0xd527e227,0xc527c727,0xf527f127,0xe227e227,0xc527d527,0xb627c527,0xf427df27,0xf627f327,0xc527e227,0xf427df27,0xf127f627,0xdf27e227,0x5d27f427,0x7e267627,0xa426aa26,0xae26ae26,0xb326b226,0xb626b326,0xb726b726,0xbd26c226,0xb526ba26,0xb726af26,0xba26bd26,0xb326ae26,0xaa26b726,0xb726ae26,0xba26b726,0xb726af26,0xa926af26,0xb726aa26,0xa826a926,0xa3264026,0xa926aa26,0xf826a826,0x3b25f925,0x9b25a326,0x97259c25,0x99259a25,0x99259725,0xa3259825,0xa4259c25,0xa325a225,0x9625a425,0x98259725,0x98259625,0xa225a525,0xa125a425,0xa2259e25,0x9d25a125,0xa5259625,0xa5259d25,0x9e25a025,0x9f25a125,0xa0259d25,0xe6259e25,0xe927e327,0xb3257f27,0xd25b225,0xd2260626,0xb0279c26,0x9b26b426,0x39259a25,0xe6262026,0x1e262126,0x1d25d926,0x20261f26,0x1e262126,0x1f261d26,0x2270126,0x9426ca27,0xfa259725,0x4e274b25,0x9c268027,0xa2269e26,0xa626a226,0xa726a726,0x93269a26,0xa726a226,0x8e269326,0x9c269b26,0xa2269c26,0x8d269326,0x8e268726,0x8d269426,0x9f268e26,0xab269926,0xad26ac26,0x9f26ae26,0xac26ab26,0xac269f26,0xae26ae26,0xa026a526,0xa326a126,0x9f264026,0xa026ae26,0xa0269f26,0x9826a126,0xa1269f26,0x8e269426,0x94269c26,0x93269c26,0xa1269826,0x94264026,0x92269326,0x98269226,0x8c264026,0x92269426,0xea27dc26,0xe627ef27,0xe225e425,0xe325e225,0xe525e525,0xeb25ea25,0xed25eb25,0xeb25b025,0xb125b025,0xe725cc25,0xec25e825,0xcc25f925,0xec25e925,0xe925cc25,0xe825cc25,0xe925b325,0xb325e825,0xe625e825,0xb325b225,0xe525e625,0xb125eb25,0xe625b225,0xe525e225,0xb225b125,0x2c272825,0x8e272b27,0xb5258f25,0x8d25b425,0xf2258e25,0xb425f025,0xc270d25,0x77270927,0x6e266f26,0x6426f426,0x60266126,0x62276127,0x5b275a27,0x16275c27,0x15271727,0xe927ed27,0xeb27ee27,0xec27de27,0xed27ef27,0xee27ee27,0xec27eb27,0x96259727,0x6a25fb25,0xa8264626,0x65263625,0x6a266d26,0x3625a826,0xc427a126,0xee266a26,0xa1279e26,0xff279f27,0xc226ee26,0x9f26ef26,0xb8266d27,0x6a26c226,0x6d263626,0xa126ee26,0xc2266a27,0xee279f26,0x6a26ee26,0x91266d26,0x92256e25,0xbd27bc25,0xcb26c927,0xbc27b326,0x91259027,0xc625b725,0xc427c526,0x5926ec27,0xc8265e26,0xe825f426,0xe725e825,0xef25ef25,0x45264325,0xc4264526,0xbf270726,0xcf279c26,0xef25e826,0xc8264525,0x4525e826,0xbf270726,0xc726cf26,0xc526c926,0xcf270726,0xc626c726,0x4526c826,0xc626c326,0x7264526,0xc526c727,0x4526c326,0x69270726,0x89268427,0x3e267126,0xe726c026,0xe327e527,0xe127e827,0x8927e527,0x97269526,0x9b269726,0x97268e26,0x88268e26,0x97268926,0x87268826,0x8c268d26,0x88268926,0x82268726,0x87268926,0x8c268726,0x40264026,0x71263f26,0x70267126,0x72267226,0x75267426,0x76267526,0x7e267a26,0x8b268a26,0x75267226,0x7e267a26,0x8f268b26,0x72267126,0x7e267a26,0x90268f26,0x71264026,0x7e267a26,0x83269026,0x87268226,0x7d264026,0x40268226,0x83267e26,0x7d267f26,0x7a264026,0x7f267e26,0xd7267d26,0xe827d327,0xe627e727,0xd827d827,0xe827d727,0xf425e827,0xed25ed25,0xee25eb25,0xe525ee25,0xe325e325,0xe425f125,0xe825e625,0xe325ed25,0xe625e425,0xee25ed25,0xba25e325,0xfb25fa25,0xfc25fb25,0x4e264e25,0x4d264f26,0xb8264d26,0xfb25ba25,0x4d264e25,0xf427f326,0xcb27eb27,0xc926cd26,0xcf27d927,0x8227e627,0x81269927,0xde263a27,0xb825b825,0x3e25f725,0x3f263e26,0x40264026,0x3a264126,0xb8263a26,0xc3263e25,0xa526c526,0x6f259027,0xda256e25,0xed27e927,0x76275a27,0xd1267526,0x1b25d825,0xd727d326,0xcb27d027,0x1825ff25,0x9a263926,0xe625a625,0x5262026,0x3270527,0x5261427,0xe7261427,0xe626e526,0xfc270526,0xe4262a26,0x526e526,0x6426e727,0xe426fc26,0xe526e426,0xe826e726,0xd3260e26,0xe726e426,0xe326e826,0xe4266426,0xbb26bf26,0xed26e326,0x9c26b026,0xe326bf27,0xec26e426,0x9c26ed26,0xbf279c27,0xe426e426,0xd326e826,0xea26d326,0xd3269126,0x96269126,0x9c26ec26,0xb126e427,0xec269d26,0xd326e426,0xb1269626,0xe426ec26,0xf427eb26,0x2027df27,0x6261f26,0xc9261227,0xc325bf25,0x1225c925,0xda25d026,0x56262425,0x60265a26,0xbd25fe26,0xbe25be25,0x50261825,0xfa26f826,0xdb26f926,0x3225d425,0x4e264f26,0xc126c126,0x3e26c026,0xed25e926,0x6f25f425,0xab267726,0x55257427,0xdc260a26,0xce27cc27,0x9b261a27,0xab25a325,0x79267727,0xb625ee26,0xf7259225,0x28262d26,0x27262826,0x2e262f26,0xf226f626,0x2f262826,0x2e262e26,0xf726f226,0xaa27a926,0x42267927,0x43264426,0xe260d26,0x8260826,0xb260926,0xc5260b26,0xd260c25,0xb260826,0x32263326,0x9525d426,0x4b25bb25,0xfd264926,0x69266925,0x4b259526,0x45264626,0x43264326,0xa8264426,0xd926d725,0x7826d626,0x2c257925,0xbc26bd26,0xcf27af26,0xcd27d927,0xce27cd27,0xca27cc27,0xbc27be27,0xcd27cf27,0xcc27cc27,0xbc27ca27,0xb327bc27,0xd027cb27,0xd227d127,0xbc27cc27,0xd027cb27,0xcf27d227,0xcb27cc27,0x527d027,0x53265226,0xc0260426,0x525c425,0x4265326,0x29272826,0xa3272727,0x525a225,0xfd264727,0x49264925,0x48264a26,0xdd25de26,0x4c25b925,0x4b274d27,0x74275627,0x54267226,0x56275527,0xb0258727,0xe625b325,0x5b26e526,0xeb265826,0xea26e926,0xdb27dc27,0x5c26e327,0x1d266126,0xce25d926,0x8d277625,0xe2277526,0x5e26ed26,0xe125ac26,0xf025f525,0xc226ef26,0xc5260c26,0xd025c825,0x22262325,0x6426fc26,0xb026fe26,0x8b258725,0x5d26e725,0x8b265726,0xb2258925,0x89269525,0x84268426,0x7d268226,0x90268326,0x84269526,0x83267d26,0xae26a526,0xa426a426,0xa126a326,0xe327e426,0x6227e527,0xe7265d26,0x68266626,0xb0263a26,0xe925ed25,0x71257225,0x6b257025,0x42264426,0xdf264226,0x6125a725,0x5e276027,0xd527c727,0xd427d627,0xcb27d327,0xd627c727,0xc927d427,0xb426cf26,0xb126b426,0x96269626,0xcc26ca26,0x4826cc26,0x4a264a26,0xec264c26,0xe925ec25,0x3d263d25,0xc825f426,0xc8263d26,0x4a26ce26,0x3d25ec26,0xb426c926,0xc9269626,0xcc269626,0x3d264a26,0x4a26ce26,0xcd26ce26,0xc926cb26,0x4a26cc26,0xcb26cd26,0x2525cf26,0x1262426,0xc6260026,0x2725d525,0x28262826,0x2a262b26,0x26262926,0x2825d526,0x29262a26,0x41266626,0x6c266c26,0x65266d26,0xc325c926,0xc925c225,0xc825c225,0x17259d25,0xbf25bf26,0xc825c925,0xb25c525,0xbf25c426,0xc525c825,0x9d259625,0xfc25bf25,0x9625fb25,0xbe25cb25,0xbd25bd25,0x9625fc25,0xbf259625,0xc525c525,0xc025c425,0xca25c025,0xc125c125,0xc725c625,0xcb25c725,0xbd25bd25,0xc5259625,0xc125c025,0xbd25c725,0xc025c525,0xc827ba25,0xe126cd27,0xf027e227,0xfd26fc27,0xc8279d26,0x1025c225,0xd126d226,0x56265626,0xd326ea26,0xdc26da26,0xd926d626,0xe0257726,0xd626da26,0xdb26d926,0x5426df26,0x49264a26,0x8264b26,0xe8260e26,0x56265a26,0x9026d826,0x8f25b625,0xac25e125,0x84258825,0x7f258725,0x89257f25,0x7f258825,0x8a258825,0x94259725,0x7f258425,0x82258a25,0x84259725,0x82257f25,0x9a25a625,0x7f259725,0x9d258225,0xea269126,0xe926ea26,0xeb26eb26,0x9d26ec26,0xef279f26,0xf026f026,0xf926f426,0xf926f026,0xf626fa26,0x9f262e26,0xfa26f027,0xf526f526,0x9f26f626,0xb270a27,0xb9270927,0xc270926,0xb827b927,0xb727b727,0xc527c427,0xc727c527,0xc827c827,0xc627ba27,0xb727b927,0xc827c527,0xb927c627,0xca260227,0xc025c025,0x3260425,0x5260626,0xcc25c426,0xdd27dc27,0x12270f27,0x5126b227,0x6260526,0xd260626,0xf260c26,0x11261026,0x6265126,0xf260c26,0x12261126,0x5126cc26,0xc260c26,0x12260f26,0x16261326,0xc270426,0x13261226,0xcc264726,0x53260c26,0x47265226,0x3260226,0xff265326,0x1260025,0x2260126,0x47265326,0x13260c26,0x125ff26,0x18265326,0x5325ff26,0xbc25f826,0x50265025,0x53261826,0x53265026,0x13264726,0xf8270426,0x5025f825,0x10264726,0xc325c226,0xbc27af25,0x9d26b526,0xb426b126,0xb4269d26,0x126b026,0x91269627,0x1279b26,0x80269127,0x9b267c26,0x8a268f27,0x85268526,0x9b268026,0x91279b27,0x9b269d26,0xb0269d27,0x85268f26,0x9e279b26,0x95269b26,0x8f269526,0x9b279b26,0xbb26b027,0xbf26bb26,0x7270726,0xb726be27,0xb626b926,0x726b226,0xb926b727,0x9b269526,0xbb26bb27,0xb9270726,0xb226b926,0xab26ad26,0x9e26a626,0xad26b926,0x9526ab26,0xb926bb26,0x9e26ab26,0x59269526,0xeb26ec26,0x4270326,0x6261627,0xd4260726,0xd026d426,0x78267826,0xc1266e26,0x4e26c126,0xfd25fd26,0x52264725,0xcc265226,0xa027a026,0xd5279927,0x626d526,0xd426d426,0xc1267826,0xfd26c126,0x52265225,0xd527a026,0xd426d526,0x126c126,0xd3279b27,0x8a274426,0x15274226,0xad271827,0xad271a26,0xad271826,0xbd26ba27,0x1e271b26,0x2026ab27,0x1e26ab27,0x35273427,0x2d273327,0x9b273027,0x8f273e26,0x1c273c26,0x1b271d27,0x2a272727,0x2c269e27,0x2a269e27,0x23272227,0x45272127,0x85274827,0x9b273226,0x3a273026,0x39273b27,0x36273327,0x38269527,0x36269527,0x2f272e27,0x39272d27,0x8f273c27,0xb6270e26,0x40270c26,0x3f274127,0x42273f27,0x26268a27,0x2426a627,0x47274627,0x21274527,0xa6272427,0x85274a26,0xaf274826,0xf5258c25,0x7326e025,0x50260a25,0x4e268027,0x75275827,0x96275726,0x98279727,0x70275227,0x10275126,0xf271127,0x75275727,0xa6267b26,0xdf25a725,0xde25dd25,0xa625dc25,0xdd25df25,0x99278125,0x72269f26,0x74277327,0x84276a27,0x6f276926,0x8e268827,0xa8279526,0x9326a926,0x95279427,0x88277027,0x75276f26,0x94268d27,0x6d276c26,0x66276e27,0x68276727,0x93277b27,0x90269a26,0x92279127,0x7f276327,0x7e268326,0x80277f27,0x93277c27,0x87277b26,0xa526a027,0xe5265b26,0x8826e426,0x8726a027,0xa4278d27,0x8a26aa26,0x8c278b27,0xa4278e27,0x84278d26,0x86278527,0x79277827,0xd3277a27,0x9a279b26,0xbb27a227,0xbd27bd27,0xbe27bc27,0xc227be27,0xa527a527,0xb527b227,0xa427b527,0xb427b427,0xbd27a227,0xbe27bd27,0xb527a527,0xbd27b427,0x9e27a127,0xb5279d27,0xad26ba26,0x7a26f827,0x14257c25,0x1226b227,0xaa25a927,0xe225e225,0xe725e425,0xcc25e725,0x3c263c25,0xa9258326,0xe225a925,0x9a25e725,0x56279b27,0x626d126,0x9a279926,0xd1265627,0x9125b726,0x2c25b425,0x7a257926,0xa0259e25,0x80270425,0x8e258125,0x29262625,0xff26ff26,0x257126,0xff262627,0x23270026,0x25262426,0x26262526,0x22270026,0x25262326,0x1f270626,0x1a261d26,0x1d270626,0x45266a26,0x1b261a26,0x46263526,0x34263326,0x30261b26,0x32263126,0x33263226,0x1a261b26,0x22261d26,0x22261a26,0x6a262526,0x25261a26,0x32263026,0x6a261b26,0x262526,0x30257227,0x6a261b26,0x72270026,0x1b257225,0xe2264626,0xbb26e326,0xb026bb26,0xbe26ed26,0xc327c327,0x41266c26,0x10264026,0x13271427,0x12271327,0x16270f27,0x19271a27,0x18271927,0x1c271527,0x1f272027,0x1e271f27,0x22271b27,0x25272627,0x24272527,0x2e272127,0x31273227,0x30273127,0x79272d27,0x76277827,0x5c275727,0x34275b27,0x37273827,0x36273727,0x3a273327,0x3d273e27,0x3c273d27,0x40273927,0x43274427,0x42274327,0x4c273f27,0x4f275027,0x48274927,0x55274527,0x52275427,0x4e274f27,0x46274b27,0x49274a27,0x56275127,0x5d275527,0x61276227,0x72277327,0x75277027,0x79277a27,0x6c276d27,0x63276a27,0x67276827,0x66276727,0x81276427,0x85278627,0x84278527,0x6f278227,0x73277427,0x7e277f27,0x7b277c27,0x7f278027,0x92278d27,0xa279127,0xd270e27,0x7c26e127,0x87267826,0x8b278c27,0x8a278b27,0x2b278827,0x27272a27,0x90279127,0x93278e27,0x97279827,0x96279727,0x69279527,0x6d276e27,0xd426d027,0xd0265426,0xdf265426,0x5626d826,0xdc26e126,0xe126d826,0xd026e126,0xd626df26,0xe126dc26,0xae25ad26,0xf525f525,0xf325e125,0xf325f525,0x85258c25,0xf525ad25,0x81259025,0x85258025,0x8c25f525,0x80259025,0x6f258525,0x85259025,0x8c258525,0x8d258d25,0xf025b425,0xf225f025,0xf025b725,0xb525b725,0x8d258525,0xf025f025,0x8f25b525,0x94258425,0x86257d25,0x84258725,0x89258825,0xee258625,0xec25eb25,0x4c25ec25,0xee264b26,0x4b25ec25,0xee25b626,0xb6264b25,0xbb264b25,0xb6258f25,0xb925bb25,0xdf25dd25,0x4225df25,0xef25ef26,0xe425e725,0xe425ef25,0x8f25f125,0xb925bb25,0x8f25f025,0xdf25b925,0xf125ef25,0xf125df25,0xf025e025,0xdf25b925,0xf0258525,0xdf25df25,0x8825e025,0x84258625,0x85257d25,0x8825df25,0x7d258625,0x6f256f25,0x88258525,0x226ca25,0x9a279a27,0xa0279927,0xe025aa27,0xa225f125,0x3259e25,0xbb25b927,0xba259525,0xb925b825,0xd6262f25,0x71257125,0x2e26ff25,0x9e279d26,0xfe26ff27,0xbe266426,0xff279d26,0x3626fe26,0x3725d726,0xdf27de26,0xbe27be27,0xdd27ca27,0xde27e027,0x1a27be27,0x3c25a826,0x99261926,0xdc261a25,0xde26da26,0xa26de26,0x3726d826,0x39263826,0xdc263926,0x6725de25,0x65266626,0xde263926,0x67266725,0x37266526,0xb627c326,0x5c26c627,0xe226e326,0xf127f226,0x1c27e927,0xd8261b26,0x70275125,0x5c267426,0x5e266326,0x58265926,0x61266026,0x5e265c26,0x60265926,0x2c265a26,0x5e266126,0x5a265926,0x2d260a26,0x5e262c26,0xa265926,0x28260926,0x5e262d26,0x59265e26,0x5e260926,0x8260926,0x28262b26,0x5f265e26,0x5e262b26,0x8265e26,0x5e265726,0x5d265726,0x5f265b26,0xa1265e26,0x5b262125,0x9f261526,0x6225a125,0xa1261526,0x5e265b25,0x62265d26,0x5b25a126,0x2a26e426,0x98262b26,0x9a269226,0xa7269a26,0x9926ab26,0x9a269826,0xbf27b026,0xa327a327,0xa427b427,0xc127b127,0xa327b227,0xb127a427,0xa227bb27,0xb027b027,0xb127a327,0xb227b127,0xa527a527,0xc926c527,0xbb26c926,0xb127b027,0xc927a527,0xa126c426,0xf1270827,0xf526f226,0x9b259c26,0x38263825,0xd7263726,0xd825d725,0xd125d125,0xd325d225,0xdb25d425,0xd125cd25,0xd425d325,0x38259c25,0xd725d726,0xd425d125,0xd425d725,0x1e25cd25,0x9c25a426,0x1e25d925,0x9c259c26,0xcd25d725,0x2f25d625,0x9c262726,0xd625cd25,0xd925ce25,0xda259c25,0xce25d025,0xda25cf25,0xd625ce25,0xd5262725,0xcf25d525,0x9c25ce25,0xd525d625,0xb526af25,0xbc26bc26,0xc226bd26,0xb826c226,0x40264026,0xaf26a826,0xc226bc26,0x15264026,0x9d261726,0x7f276425,0xd7276326,0xd127d827,0x6f256e27,0x7d257d25,0x92259325,0xe025ac25,0xa625aa25,0xb927b827,0xa727b927,0xc627c627,0xce27ba27,0xc826ce26,0xc427c426,0xa627b727,0xb927a627,0xce27c627,0xa627c426,0xe127e227,0xfd27d627,0x2926ff26,0x7327a926,0x85266f26,0x8d258025,0x8225a925,0x8a258a25,0xaa25ab25,0xf9263b25,0xec25ec25,0xea25eb25,0x9225ea25,0x93259325,0x3b257e25,0xec263b26,0x925ea25,0x7260a26,0x26,}; +#include +#include +inline void uncompress_d435_obj(std::vector& vertex_data, std::vector& normals, std::vector& index_data) +{ + std::vector uncompressed(0x3b064, 0); + LZ4_decompress_fast((const char*)d435_obj_data, uncompressed.data(), 0x3b064); + const int vertex_size = 0x27f7 * sizeof(float3); + const int index_size = 0x4d78 * sizeof(short3); + vertex_data.resize(0x27f7); + memcpy(vertex_data.data(), uncompressed.data(), vertex_size); + index_data.resize(0x4d78); + memcpy(index_data.data(), uncompressed.data() + vertex_size, index_size); + //normals.resize(0x27f7); + //memcpy(normals.data(), uncompressed.data() + vertex_size + index_size, vertex_size); +} diff --git a/common/res/icon.h b/common/res/icon.h new file mode 100644 index 00000000000..d1e85317b39 --- /dev/null +++ b/common/res/icon.h @@ -0,0 +1,18 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from icon.png +static uint32_t icon_64_png_size = 0xf24; +static uint8_t icon_64_png_data [] { 0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0x30,0x0,0x0,0x0,0x30,0x8,0x6,0x0,0x0,0x0,0x57,0x2,0xf9,0x87,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xe2,0xc,0x17,0xd,0x15,0x23,0x2,0x6c,0x96,0x3b,0x0,0x0,0x0,0x17,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x0,0x47,0x4c,0x44,0x50,0x4e,0x47,0x20,0x76,0x65,0x72,0x20,0x33,0x2e,0x34,0x71,0x85,0xa4,0xe1,0x0,0x0,0x0,0x8,0x74,0x70,0x4e,0x47,0x47,0x4c,0x44,0x33,0x0,0x0,0x0,0x0,0x4a,0x80,0x29,0x1f,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8f,0xb,0xfc,0x61,0x5,0x0,0x0,0xe,0x91,0x49,0x44,0x41,0x54,0x78,0x9c,0xbd,0x9a,0x9,0x74,0x53,0xe7,0x95,0xc7,0x9f,0x24,0xaf,0xf1,0xbe,0x5b,0xc6,0x8b,0x56,0x4b,0xf2,0x22,0xdb,0xb2,0xb5,0x78,0x91,0x2d,0xc9,0xb6,0x2c,0xc9,0xf2,0x6e,0x87,0x50,0x42,0x70,0x48,0x3,0x66,0x71,0x1a,0x60,0x58,0x63,0x96,0x40,0xed,0x10,0xdb,0x38,0x18,0xef,0x18,0x92,0x40,0xe9,0x9c,0x93,0xa4,0xa7,0x93,0xa1,0x4d,0x49,0x4a,0xd3,0x0,0x5,0x1a,0xd2,0x36,0x4d,0x17,0xd2,0x86,0x93,0x69,0x33,0x99,0x34,0xd3,0x85,0xa1,0x49,0x28,0x5b,0x88,0xf9,0xf7,0x7e,0xef,0x9,0x6c,0x42,0x26,0x33,0x98,0xd8,0x3a,0xe7,0x7f,0xde,0xf3,0xf3,0x7,0xba,0xbf,0xef,0xde,0xef,0x7e,0xf7,0x7b,0xd7,0x1c,0xc7,0x3e,0x22,0x99,0x9d,0x74,0x84,0xf4,0x11,0xe9,0xd2,0x57,0x2f,0xf9,0x25,0x4e,0x4c,0xf2,0x53,0x5d,0xe2,0xfc,0xd5,0xc2,0x55,0xa2,0x14,0x24,0x9e,0x2a,0x85,0x30,0xee,0xcb,0xf5,0x31,0xe9,0x35,0x52,0x25,0xfd,0xbf,0xa2,0x1b,0xc6,0x9f,0x25,0xe1,0xab,0x97,0x1c,0xf4,0x45,0x24,0x5,0x38,0x9,0x29,0x50,0x3,0x2e,0x38,0x43,0xb8,0xfa,0xa7,0x83,0xf3,0x53,0xd3,0x73,0x15,0x49,0x49,0x63,0x6e,0x48,0xe1,0xfb,0x37,0xff,0x97,0x14,0xff,0x41,0xaa,0x62,0x0,0x3f,0x9a,0x19,0xe3,0x65,0xb7,0x1a,0xef,0x47,0x86,0x86,0x64,0x83,0x8b,0xcc,0x7,0x17,0x9a,0x43,0x20,0x99,0x4,0xa2,0x3,0x17,0xc0,0x60,0xd4,0x5f,0x0,0xf3,0x79,0x10,0xc5,0xa4,0xd8,0x18,0x26,0x3f,0xd5,0x9,0x6,0xf0,0xf1,0x8c,0x2,0x48,0x7c,0x5f,0xc8,0xc,0x8d,0x2a,0x0,0x27,0xb5,0x82,0x8b,0xb5,0x80,0x8b,0x20,0x90,0xb0,0x5c,0x70,0xf7,0x10,0x54,0xd0,0x54,0x98,0xcf,0x79,0xe6,0xa6,0x54,0xc2,0x24,0xb0,0xdf,0x31,0x60,0x36,0xce,0x5f,0x73,0x85,0x1,0x5c,0x99,0x59,0x0,0xa5,0xf0,0xa5,0x34,0xe3,0x22,0x32,0xde,0x4f,0x5b,0xb,0x89,0xdc,0x45,0xf7,0x65,0x10,0xc5,0x15,0x43,0x14,0x6d,0xf6,0xc1,0xe4,0x91,0x87,0xf4,0x53,0x3c,0xa3,0x65,0x6,0x4e,0x8a,0xc1,0xb1,0x67,0x4c,0xec,0xf7,0xbc,0x32,0x26,0x66,0x1e,0x80,0xcd,0x1a,0x33,0x80,0x8c,0xf3,0x57,0xb8,0x10,0x68,0x5e,0x88,0xa0,0xbc,0x79,0x8,0x4a,0xaf,0x43,0x80,0xcc,0x5,0xff,0xa4,0x72,0xf8,0x25,0x94,0x41,0x12,0x5b,0xc,0x71,0x94,0x5,0xa2,0x8,0x23,0x44,0x61,0x6,0x1a,0x4f,0x61,0x76,0x8f,0x5e,0xf0,0xd0,0x6d,0xd2,0xdf,0xd0,0x4c,0x3,0x28,0x4,0x57,0x7,0xd2,0xac,0x85,0xe6,0xc2,0x50,0xb3,0x2,0x5,0xcb,0x7a,0x20,0xb6,0xb6,0x21,0x34,0x7f,0x21,0xc2,0x32,0xe7,0x22,0x54,0xdd,0x80,0x10,0x99,0x17,0xf7,0x24,0xbb,0x10,0x24,0xad,0x44,0x40,0x82,0x1d,0xfe,0x71,0xa5,0xf0,0x8b,0x29,0x86,0x84,0x80,0xc4,0x91,0x66,0x88,0x23,0x4c,0x2,0x58,0x38,0x85,0x20,0x53,0x18,0xf3,0x98,0x81,0x69,0x36,0x0,0x68,0xf6,0x83,0x28,0xf3,0x84,0x1b,0xe0,0x5a,0xb4,0x5,0x9e,0xce,0x6f,0x81,0xf3,0xac,0x45,0xb0,0xed,0x11,0x44,0x99,0x17,0x23,0x26,0xb7,0x15,0x31,0x19,0xf3,0x11,0x93,0x3e,0x17,0x51,0xca,0x26,0x44,0xc8,0xea,0x11,0x9e,0xea,0x45,0xe8,0x1c,0x37,0xee,0x91,0x3a,0x11,0x9c,0x58,0x8e,0xc0,0x78,0x3b,0x2,0xe2,0xca,0xe0,0x17,0x6b,0x85,0x24,0xa6,0x4,0xe2,0xe8,0x22,0x88,0x8,0x8e,0x8b,0x34,0xcf,0x30,0x0,0x5b,0xc0,0x2c,0x76,0x59,0x5c,0x47,0x9a,0xe0,0x5e,0xbc,0x1d,0x9e,0x9d,0x2f,0x80,0xbb,0x77,0x3b,0x24,0x9e,0x8d,0x88,0xb0,0xad,0x42,0x7c,0x61,0x3b,0x12,0xf3,0xdb,0x20,0xcd,0x79,0x18,0xd2,0xac,0x45,0x48,0xcc,0x58,0x88,0x4,0xcd,0x7c,0xc4,0xab,0xee,0x43,0xac,0xa2,0x5,0xd1,0xb2,0x46,0x44,0xa6,0xd6,0x21,0x3c,0xb9,0x1a,0xa1,0x49,0x2e,0x2,0xaa,0x24,0x20,0x7,0x79,0x89,0xc2,0x2e,0xc6,0x3a,0xb,0x1e,0xa0,0x45,0x27,0xa,0xce,0x2,0x17,0x5d,0x8,0xcf,0xd2,0x1d,0xf0,0xc,0x1e,0x2,0xd7,0xda,0x7,0xae,0xa9,0x13,0xc1,0xae,0xe,0xc4,0xda,0xd6,0x21,0xa9,0x68,0x35,0x92,0x4d,0x8f,0x22,0xa5,0xe0,0x11,0xa4,0xe6,0xad,0x40,0x6a,0xce,0x52,0xa4,0x64,0x2f,0x41,0x4a,0xc6,0xd7,0x31,0x47,0xdb,0x8a,0x24,0xf5,0x2,0x24,0x28,0x9,0x48,0xd6,0x8c,0xa8,0x14,0x82,0x99,0x53,0x8d,0x10,0x69,0x15,0x82,0x12,0xca,0x67,0x1,0x80,0xb2,0x85,0x88,0x2d,0x38,0x5a,0xa4,0x9e,0x15,0x3d,0x70,0x8f,0xbf,0xc,0x6e,0xd9,0x30,0xb8,0xfb,0xfb,0xe0,0x57,0xd7,0x89,0x48,0xe7,0x16,0x48,0x6d,0x8f,0x21,0xa5,0x64,0x3,0xd2,0xa,0xd7,0x43,0x6e,0x5e,0xb,0x45,0xc1,0x1a,0x28,0xc,0xab,0xa1,0xc8,0x5d,0x9,0x85,0xfe,0x11,0xc8,0xb3,0x96,0x21,0x4d,0xb7,0x18,0xc9,0xe9,0xad,0x90,0x2a,0xbf,0x86,0x38,0x19,0x79,0x86,0x81,0x24,0x79,0x66,0x3a,0x84,0x94,0x2,0x0,0x4b,0x8f,0xf1,0x56,0x54,0x7f,0xa3,0xf,0x9e,0x67,0x5f,0x5,0xb7,0x72,0x1f,0xb8,0x45,0x83,0x10,0xb5,0xf4,0x20,0xb4,0xba,0xb,0x9,0x15,0xdb,0x90,0x62,0xdb,0xa,0x99,0x75,0xb,0x14,0x45,0x5b,0xa0,0xb2,0x6c,0x86,0xda,0xb4,0x9,0xe9,0x5,0x1d,0x48,0xcf,0xdf,0x8,0x75,0xde,0x5a,0xa8,0x72,0x56,0x41,0x91,0xd5,0x2e,0x80,0xa8,0x17,0x22,0x51,0x41,0x1e,0x49,0x6d,0x9c,0xe,0x40,0x1a,0x38,0x2e,0xe5,0x4b,0x94,0xf6,0x5,0x0,0x39,0x10,0x51,0xaa,0xac,0x5e,0xd5,0xf,0xf7,0xc1,0xa3,0xe0,0xd6,0xec,0x7,0xf7,0xf0,0x28,0xad,0x85,0xa7,0xe0,0xef,0xed,0x46,0xac,0xf3,0x9,0x24,0x3b,0xba,0x20,0x2b,0xeb,0x82,0xc2,0xda,0x5,0x55,0x51,0x17,0xd2,0x2d,0x5d,0xd0,0x9a,0x3b,0xa1,0x35,0x6e,0x87,0xb6,0xe0,0x71,0x68,0xf3,0x9,0x28,0x6f,0x3d,0x54,0x7a,0x2,0xc9,0x5c,0x8e,0x54,0xcd,0x43,0x98,0xa3,0x5c,0x70,0x87,0x0,0x64,0x5c,0x6a,0x5a,0x11,0x9c,0x55,0xb,0x6e,0x53,0x45,0xe5,0x7c,0x18,0x4d,0xb5,0x48,0x94,0x1a,0x21,0x96,0xb0,0xb1,0xa9,0x3c,0x80,0x88,0x1,0x50,0xe9,0x20,0x4a,0xb4,0xa1,0x66,0xfd,0x10,0x9e,0x7f,0xfb,0xbf,0x30,0x70,0xea,0x1d,0xf4,0x1e,0xf9,0x35,0xda,0xf7,0x1f,0x43,0xf9,0xc6,0xe7,0xa1,0x68,0x1e,0x80,0xd4,0xd1,0x8d,0x34,0x5b,0xf,0x14,0xa5,0xbd,0x50,0x97,0xf4,0x42,0x53,0xb8,0x13,0x3a,0x4b,0x2f,0x32,0xcd,0x3d,0xc8,0x32,0x3d,0x89,0x4c,0x63,0x17,0x32,0xa,0xb6,0x41,0x67,0xe8,0x80,0x26,0x87,0x3c,0x92,0xf5,0x8,0x64,0xba,0xb6,0x3b,0x5,0x48,0xc1,0xd2,0xa5,0x1d,0xb8,0x72,0xe5,0x2a,0xaf,0x6b,0xd7,0x3e,0x9b,0xa2,0x6b,0xf8,0xe4,0x93,0x7f,0xe0,0xcc,0x99,0xb3,0xe8,0xee,0x1e,0x85,0x4c,0x5e,0xc,0x56,0xcc,0x9,0x0,0xb9,0xb4,0xf3,0xda,0x51,0xbb,0x69,0xc,0x57,0x26,0x26,0x30,0xf5,0x73,0xf1,0xca,0x35,0xfc,0xf4,0xb7,0x1f,0x60,0x59,0xe7,0x4b,0x50,0x56,0xf6,0x43,0x51,0xb6,0xb,0x6a,0x6b,0x3f,0x74,0xc5,0xbb,0x91,0x55,0xb8,0x1b,0xb9,0x85,0xfd,0x30,0x58,0x76,0xc1,0x60,0xde,0x89,0x3c,0x2,0xc9,0x31,0x76,0x22,0x3b,0x7f,0xb,0x32,0x72,0x37,0x20,0x5d,0xbf,0xea,0x4e,0x1,0x92,0xb1,0xa2,0x7d,0xb,0xff,0xc5,0xe7,0xce,0x9d,0xc7,0xf7,0xbe,0xff,0x2a,0x5e,0x7c,0xf1,0x87,0xbc,0xbe,0x4f,0xf7,0x6f,0xbe,0xf9,0x5b,0x5c,0xbc,0x78,0x99,0xff,0xfd,0xb1,0x63,0xaf,0x43,0xae,0x2c,0x13,0xb2,0x10,0x3,0x48,0xb2,0xc3,0xbb,0x75,0x1c,0xfb,0xdf,0xfe,0x0,0x2b,0xf,0xbf,0x85,0x75,0x87,0x7e,0x8e,0x91,0x57,0xcf,0xe0,0xcd,0x3f,0xfc,0xd,0x9f,0x4d,0x5c,0xc7,0xe1,0x13,0xef,0x42,0xe3,0x1e,0x86,0xdc,0x36,0x0,0x75,0xe9,0x10,0x32,0xad,0xc3,0xc8,0x2b,0x19,0x86,0xb9,0x78,0x18,0x85,0x45,0x43,0x28,0x22,0x98,0x42,0xf3,0x53,0x30,0x9b,0x7a,0x61,0x34,0x3e,0x81,0x3c,0xa,0x2b,0x7d,0xde,0x63,0xd3,0x1,0xd8,0xcc,0x1b,0x78,0xfc,0xf8,0x69,0x44,0x44,0x66,0xc3,0xcf,0x5f,0x9,0x7f,0x7f,0x15,0x2,0x2,0xd5,0x88,0x8e,0xc9,0xc1,0xbc,0x79,0xed,0xf8,0xd3,0x9f,0xfe,0xcc,0x8f,0xd9,0xd1,0x3d,0xc6,0xea,0x15,0x1f,0x80,0x3,0x9e,0xc7,0xf7,0xc2,0xfd,0xdd,0xd3,0xe0,0x3a,0x9e,0x3,0xd7,0xfe,0x2c,0x44,0xf,0xec,0x41,0xc2,0x83,0xcf,0xe0,0xe1,0x9d,0x47,0x50,0xdd,0xfe,0x2,0x92,0xed,0x83,0x90,0xdb,0x87,0x91,0x6e,0x1b,0x85,0xbe,0x6c,0xc,0x26,0x52,0x9,0xa9,0xcc,0x3a,0xa,0x1b,0x81,0xd8,0xa,0x7,0x51,0x66,0xe9,0x87,0xd5,0xb4,0x13,0x45,0xc6,0x1d,0x30,0x17,0x6c,0x9f,0x3e,0x0,0x9b,0xe1,0x90,0x10,0xdd,0xad,0x8b,0x96,0xdd,0x53,0xec,0xf7,0xf6,0xee,0xe1,0xc7,0xbc,0x7e,0xfa,0x2d,0x44,0x26,0x98,0xf9,0x32,0x42,0x3c,0xc7,0x81,0xea,0x6d,0xfb,0xe0,0x79,0xf1,0x67,0xe0,0x36,0xd3,0x66,0xf6,0x8d,0x3,0xe0,0x16,0x8e,0x43,0xd4,0x34,0x82,0x50,0xf7,0x20,0x12,0x9d,0x43,0x48,0xa9,0x18,0x81,0xdc,0x31,0xa,0xad,0x7d,0xf,0xf2,0x48,0x85,0x8e,0x71,0x94,0xd1,0xb5,0xdc,0xb6,0x7,0x95,0xa5,0x63,0x70,0x12,0x44,0x25,0x41,0x54,0x10,0x84,0x83,0x20,0xca,0x8c,0x3b,0xee,0x12,0x20,0xf4,0x73,0x0,0xbe,0x31,0xf,0x3d,0xb4,0x96,0x1f,0xf3,0xce,0xd9,0x3f,0x22,0x49,0x6e,0xe3,0xb,0x33,0xf1,0x9c,0x72,0x78,0xb7,0x3f,0xd,0xcf,0xbf,0x4f,0x1,0x68,0xdd,0xb,0x49,0xd3,0x28,0x22,0xbc,0x23,0x90,0x56,0x8d,0x10,0xc0,0x28,0x14,0x8e,0x31,0x64,0x90,0xe1,0x5,0xe5,0xe3,0x28,0x21,0x39,0x48,0x4e,0xfa,0xd9,0x45,0x10,0xee,0xd2,0x51,0x78,0x8,0xc2,0x4d,0x10,0x2e,0x73,0x3f,0x9c,0xa6,0x9d,0x33,0x3,0xb0,0x66,0x4d,0x27,0x3f,0xe6,0x17,0xb4,0x26,0x62,0xa4,0x85,0x3e,0xf,0x8,0x0,0x6e,0xde,0x3,0xcf,0x4f,0x2,0x34,0x8f,0xf9,0x0,0x46,0x9,0x60,0xc,0x4a,0x32,0x38,0xab,0x62,0x2f,0x4c,0xa4,0xd2,0xca,0xbd,0x94,0xdd,0xf6,0xa2,0xaa,0x62,0x1c,0x1e,0xc7,0x1e,0x78,0x6d,0x63,0xa8,0xa1,0x70,0xaa,0x29,0x1a,0x46,0x8d,0x65,0x0,0xd5,0xe6,0x5d,0xd3,0x7,0x38,0x7a,0x94,0x85,0x50,0x3a,0xff,0x6c,0x72,0xf,0x48,0x46,0x4a,0x6a,0x21,0x4e,0x9c,0xf8,0x19,0x3f,0x66,0x78,0xf4,0x5f,0x21,0x66,0xe7,0x0,0xaa,0xf5,0xc5,0xc9,0xe5,0xa8,0xfd,0xe6,0x33,0x58,0x77,0xf2,0xf7,0x48,0xee,0x7b,0x9,0xfe,0x2b,0xf,0x82,0x5b,0x30,0xe,0x71,0x23,0x79,0xa0,0x7a,0xd4,0x7,0xb0,0x7,0x2a,0x32,0x56,0x4f,0x46,0x5b,0x48,0x65,0xce,0xbd,0xa8,0xa4,0xab,0x9b,0x54,0x4d,0x60,0x35,0x14,0x4e,0x75,0x14,0x4a,0xf5,0xc5,0x23,0xa8,0x27,0x2f,0xd4,0x9a,0xfb,0xa7,0xf,0xf0,0xcb,0x5f,0x9e,0x41,0x45,0xc5,0x7c,0x14,0x97,0x34,0x91,0x9a,0xe1,0x70,0xcc,0x43,0xdb,0xd2,0xc7,0x6e,0x1a,0x7f,0x96,0xc2,0x27,0xaf,0xa0,0x96,0xaa,0x51,0xad,0x0,0x40,0x1e,0x68,0xe8,0x7c,0x6,0x17,0xae,0x4d,0xe0,0xdd,0xff,0xb9,0x80,0xe7,0xde,0x7c,0xf,0xcb,0xf,0x9c,0x42,0xce,0xa3,0xcf,0x23,0xa6,0x66,0xc,0x9,0x95,0xa3,0x48,0x25,0x0,0x35,0x19,0x9b,0x4b,0x2a,0x72,0xee,0x83,0xad,0x6a,0x1f,0x2a,0xe9,0xea,0xa1,0x9f,0xbd,0xe4,0x91,0x3a,0xf2,0x42,0x3d,0x79,0xa1,0xb1,0x64,0x4,0x8d,0x85,0x43,0x68,0x30,0xef,0x9e,0x3e,0xc0,0x4,0xe5,0xf3,0xcb,0x97,0xaf,0xf0,0xba,0x78,0xf1,0x12,0x2e,0x5d,0xba,0x4c,0xcf,0xae,0xe3,0xea,0xd5,0x4f,0xf9,0xc,0x65,0xb3,0xdf,0x27,0xd4,0x42,0x54,0x4a,0xdf,0xf0,0x40,0x3d,0x1,0xfc,0xf7,0xa5,0xab,0xb8,0xfa,0x99,0xb0,0x17,0x5c,0xbf,0xe,0x7c,0x78,0xfe,0x22,0x86,0xbf,0xfb,0x2b,0xe8,0xe7,0x1e,0xe0,0x3d,0xa0,0x21,0x63,0xd,0x95,0xfb,0x50,0x4c,0x86,0xdb,0x9,0xc0,0x49,0xf2,0xd0,0x7d,0xd,0x3d,0xaf,0x23,0x2f,0x34,0x10,0x40,0x13,0x85,0x51,0x13,0x85,0x51,0xa3,0x65,0x60,0xfa,0x0,0xe7,0xce,0xfd,0x1d,0x2f,0xbd,0xf4,0x63,0x1c,0x3a,0xf4,0x23,0x7e,0xf3,0x62,0x9f,0x8f,0x3f,0xbe,0x80,0xb6,0xb6,0x8d,0x88,0x8a,0xd6,0xfb,0x76,0x62,0x15,0x44,0x37,0x1,0x2a,0x50,0x43,0x21,0xf4,0xf5,0x57,0x7f,0x3,0xd7,0xc1,0x13,0xe8,0xfc,0xe1,0x6f,0xf0,0x6,0xed,0x1,0xd7,0x7c,0x30,0xdf,0x39,0x72,0x16,0xba,0x9a,0x67,0xa0,0xa5,0x99,0xce,0x27,0x83,0x4b,0xc8,0x70,0x87,0xeb,0x69,0x54,0xb9,0xf6,0xa1,0x9a,0xee,0x6b,0x9,0xa0,0x9e,0x0,0x1a,0x29,0x8c,0x9a,0x69,0x31,0x37,0x13,0x40,0xf3,0xdd,0x0,0x1c,0x3f,0xfe,0x6,0x22,0x69,0x1f,0x90,0xf8,0x29,0xa1,0xd1,0x38,0x70,0x9a,0x52,0x26,0xfb,0x8c,0x8c,0x1c,0x44,0x50,0x90,0x5a,0x58,0xdc,0x53,0x0,0x24,0x3e,0x0,0x3e,0xb,0x6d,0xa2,0x45,0xdc,0x7e,0x0,0xb1,0x2b,0xbe,0x8d,0x1d,0xff,0xf6,0x16,0xbf,0x91,0x5d,0xbc,0x7c,0xd,0xb,0xd6,0x1d,0x46,0x3a,0xcb,0x40,0x4,0x60,0x25,0xa3,0xcb,0x9,0xc0,0x45,0x0,0x5e,0xba,0xaf,0x23,0x80,0x6,0x5a,0x1f,0x4d,0x4,0xd0,0x42,0x0,0x2d,0x4,0xd0,0x62,0x19,0xfc,0x8a,0xf6,0x1,0x5a,0xc0,0x9e,0xea,0x56,0x9c,0x3f,0xff,0x11,0x5f,0x62,0x2c,0x5e,0xbc,0xde,0x7,0xa0,0xbc,0xcd,0x3,0x1e,0xda,0x81,0x85,0x34,0xfa,0x2d,0x7e,0x11,0xcb,0x16,0x7f,0x1b,0xef,0x7e,0xf8,0x11,0xff,0x7f,0x6e,0x1f,0xfe,0x29,0x34,0x4,0x60,0x22,0x80,0x52,0x32,0xba,0x82,0x0,0xdc,0x4,0x50,0x43,0xf7,0xf5,0xb4,0xa0,0x1b,0x9,0xa0,0x99,0x0,0xee,0x25,0x80,0x7b,0xbf,0x12,0x80,0x29,0x69,0x54,0xe2,0xa7,0x40,0x57,0xd7,0x10,0xff,0xbb,0xf7,0xde,0xfb,0x0,0x66,0x73,0x9d,0x50,0xb,0x7d,0xde,0x3,0xb7,0x0,0xec,0x45,0x62,0xeb,0x1,0x9c,0xf9,0xcf,0xf3,0x37,0x1,0xb4,0x3e,0x80,0x32,0xb6,0x80,0x9,0xc0,0x43,0x0,0xb5,0x74,0xdf,0x40,0x1e,0x68,0x22,0x80,0x96,0x5b,0x0,0xee,0x22,0x84,0x6e,0xdb,0x7,0x28,0xe6,0x13,0x13,0xb,0xf8,0xf4,0xca,0x3e,0xaf,0xbc,0x72,0x1c,0xf1,0x89,0x46,0xaa,0x85,0x74,0x37,0x17,0xf1,0x64,0x8,0xbd,0xc0,0x87,0x10,0x37,0x7f,0x1c,0x75,0x4f,0xbc,0x8c,0xb,0x97,0x3f,0xc5,0x65,0x2a,0xea,0x5a,0x37,0x1c,0x86,0x8e,0x0,0xcc,0x3e,0x0,0x27,0x8b,0xff,0xa9,0x0,0xe5,0x3e,0x0,0x2b,0x3,0x18,0xa2,0x35,0x70,0x17,0x59,0xe8,0xb,0x37,0x32,0xa,0x25,0x96,0x4e,0xff,0xf2,0x97,0x73,0xfc,0x98,0x27,0x9e,0x1c,0x85,0x5f,0x48,0x36,0x1,0xe4,0xde,0x4,0x98,0xff,0xf2,0x5b,0x88,0xef,0xfe,0x1e,0x32,0xba,0xe,0x61,0xe9,0xfe,0x93,0x38,0xeb,0xb,0x9f,0xd7,0xde,0x78,0x1f,0x39,0x75,0xfb,0x91,0x49,0xb3,0xcc,0xf6,0x0,0x9b,0x53,0xc8,0x40,0x6c,0x1,0xd7,0xb1,0xf0,0xa1,0x67,0xcd,0x94,0x46,0x5b,0x28,0xb,0xb5,0x50,0x1a,0x6d,0xa6,0x7d,0xa0,0x61,0x3a,0x1b,0x59,0xbb,0xaf,0x1a,0x3d,0x76,0xec,0x34,0x1,0x64,0xdc,0xb6,0x13,0x8b,0xc4,0x32,0x74,0x74,0xf4,0xf2,0x69,0x96,0x95,0xd7,0x73,0xef,0x5f,0x7d,0x73,0x27,0xae,0x27,0x80,0x3f,0x7e,0x72,0x19,0xef,0x9c,0xbb,0x80,0xbf,0x5e,0xa0,0xb4,0x4b,0x79,0x94,0x32,0x29,0x7e,0xfe,0xf6,0x9f,0x51,0xd5,0xf6,0x1d,0xc8,0xa8,0x8c,0xc8,0xae,0x10,0x36,0x31,0x3b,0xdb,0x81,0x9,0xc2,0x4b,0xc6,0xb3,0x5,0xdc,0x58,0x2e,0x2c,0x60,0x96,0x81,0x9a,0x68,0xf6,0xeb,0xa9,0x1e,0xf2,0xde,0x79,0x29,0x91,0x82,0x6a,0xef,0x22,0x3e,0x7d,0xb2,0x78,0xf,0xa,0xd2,0x7c,0xc1,0x98,0x34,0xc4,0xc6,0xe6,0x62,0xf7,0xee,0x67,0xf1,0x83,0xc3,0x47,0xb1,0xa3,0x67,0x1c,0xe1,0xd2,0x62,0xbe,0x1a,0xad,0xff,0xe6,0xd3,0xf8,0xdb,0x95,0x4f,0x71,0xee,0xe2,0x55,0xbc,0x7f,0xfe,0x1f,0x38,0xfe,0xbb,0xf,0xb1,0xe9,0xc0,0xeb,0xc8,0x59,0x70,0x0,0x49,0xe5,0x23,0x50,0x12,0x40,0x16,0x19,0x6a,0x26,0x8,0x1b,0x3,0x60,0x3b,0xb0,0x2f,0xff,0xd7,0x93,0xf1,0xd,0x65,0xa3,0xb4,0xb,0xf,0xa3,0x96,0xca,0x8,0x8f,0xa9,0xf,0x95,0x77,0x5c,0xcc,0x91,0xc4,0x12,0x5,0xfc,0x3,0xd4,0x7c,0x19,0xfd,0xbf,0x8f,0x4b,0xe3,0x17,0xb5,0x3f,0x1,0x6,0x86,0xe7,0x40,0x12,0x6e,0xe0,0xab,0x51,0x2f,0x55,0xa3,0x4b,0x8e,0xfc,0xa,0xba,0xfe,0x1f,0x40,0x4e,0xb,0x39,0xec,0xa1,0x7d,0x8,0xac,0x1d,0x42,0x6c,0xd5,0x20,0x6d,0x62,0xc3,0x4,0x30,0x8a,0x4c,0x32,0xd4,0xc4,0xaa,0x50,0x56,0xc4,0x95,0xb3,0x1a,0x48,0x28,0x21,0x6a,0xc8,0xf8,0x1a,0x3a,0x1f,0x54,0x17,0xe,0xa0,0xca,0xdc,0x7,0x87,0xf1,0x49,0x94,0xe4,0xdf,0x69,0x39,0x7d,0xa7,0x62,0x67,0xe2,0x20,0xe1,0x3c,0x20,0x66,0xe7,0x81,0x2d,0xe3,0x70,0xbf,0x70,0xa,0xdc,0x5a,0xaa,0x83,0x96,0xec,0x5,0x37,0x6f,0x18,0x21,0xb5,0x3,0x48,0xac,0x1a,0x40,0x6a,0xf9,0x20,0x94,0xb6,0x61,0x64,0xd0,0x59,0xa0,0x80,0xe2,0xdc,0x6a,0x13,0xca,0xe8,0x2a,0x3a,0xf,0xb8,0x28,0x6c,0x5c,0xc5,0x43,0x70,0xd2,0xa1,0xc6,0x41,0xc6,0x5b,0xc9,0x78,0x4b,0xfe,0x36,0x18,0xee,0xf8,0x40,0x33,0xd,0x0,0x91,0xf,0x40,0x24,0xb5,0xc1,0xd3,0x31,0xa,0xf7,0x73,0x3f,0x1,0xf7,0x2f,0xec,0x50,0x3f,0x6,0xd1,0xbd,0x3,0x8,0xf7,0xee,0x82,0xd4,0xf9,0x14,0xd2,0xec,0xfd,0x50,0x96,0xd,0x40,0x67,0x1d,0x42,0x2e,0x9d,0xc6,0x2c,0xd6,0x11,0x94,0x92,0xec,0x34,0xeb,0xf6,0x22,0xe1,0x20,0x53,0x42,0xc7,0x4a,0xb,0x1d,0x64,0xf2,0xc9,0x78,0x7d,0xde,0x46,0xe8,0xf4,0xab,0x67,0xb,0x40,0x78,0x2b,0xe1,0x5e,0x3f,0x8,0xf7,0xc1,0xd7,0x68,0xf,0xa0,0xd9,0x6f,0x1d,0xa4,0xb3,0x40,0x1f,0xa2,0xdc,0x3d,0x98,0x53,0xd1,0x3,0x99,0xad,0x17,0x2a,0x6b,0x1f,0x34,0xc5,0xbb,0x90,0x55,0xb4,0x1b,0x6,0x92,0x89,0x66,0xdc,0x42,0x67,0x62,0x33,0xcd,0xba,0xd1,0xd4,0xd,0x3,0x1d,0xec,0xf5,0xf9,0x5b,0x91,0xc9,0xce,0xc3,0xd9,0xab,0xa0,0xcc,0x58,0x36,0xbb,0xef,0x85,0x3c,0xab,0x9e,0x82,0x7b,0xdf,0x2b,0xe0,0xda,0x86,0xc0,0x7d,0xad,0x8f,0xe2,0x7f,0x7,0xe2,0x9c,0x5d,0x48,0xb1,0x77,0x42,0x5e,0xda,0x5,0x55,0xc9,0x93,0x48,0x2f,0xea,0x86,0xce,0xd2,0x83,0x4c,0x4b,0x2f,0xf4,0xe6,0x1e,0xe8,0xe9,0x20,0xaf,0x27,0xc3,0xb3,0xa,0xb6,0x21,0xc3,0xb0,0x9,0xda,0xdc,0x75,0x50,0x65,0x3d,0xa,0xb9,0xae,0xd,0xa9,0xea,0x7,0x67,0x3,0x80,0xca,0x69,0xf6,0x4a,0x9c,0xbd,0x99,0x6b,0xef,0x86,0x67,0xe8,0x10,0x1d,0x25,0x7b,0xe9,0x28,0xd9,0x85,0x30,0xf7,0xe3,0x48,0x74,0x6c,0x46,0xaa,0x75,0x33,0xe4,0xc5,0x5b,0xa1,0x2c,0x7a,0x1c,0x6a,0xcb,0x76,0x68,0xcc,0xdb,0xa1,0x35,0x91,0x8c,0xdb,0xa0,0x2d,0xd8,0xa,0x6d,0x7e,0x7,0x34,0x79,0xeb,0xa1,0xd6,0xaf,0x86,0x22,0x73,0x5,0xd2,0xb4,0x8b,0x91,0xac,0x7a,0x0,0x52,0xf9,0x7d,0xb3,0x0,0xc0,0x1a,0x12,0xec,0xe5,0x6e,0xb4,0x5,0xee,0x25,0x9d,0xf0,0xf4,0x52,0x21,0xd7,0xbc,0xd,0xfe,0x9e,0xe,0x44,0xdb,0xd7,0x23,0xa9,0x64,0x2d,0x52,0xb,0xd7,0x42,0x66,0x5e,0x7,0x85,0x69,0x3d,0x94,0xc6,0xd,0x50,0x15,0x6c,0x80,0x3a,0x9f,0xc,0x36,0xd0,0x6c,0xe7,0xae,0x81,0x32,0x67,0x25,0x14,0xd9,0xed,0x90,0x65,0x2c,0x41,0x4a,0xfa,0x83,0x48,0x52,0xce,0x47,0x7c,0x5a,0xb,0x62,0x52,0xea,0x67,0xe3,0xf5,0xba,0x5a,0x78,0xbd,0x1e,0x69,0x44,0xa6,0xb7,0x1d,0x99,0xcb,0xfb,0xc0,0xb9,0xd6,0x22,0xd4,0xf6,0x28,0xe2,0xa,0x57,0x40,0x6a,0x5c,0x8e,0x64,0xc3,0x72,0xa4,0xe4,0xd1,0xcc,0xe6,0x92,0x91,0x4c,0x39,0x24,0xfd,0xa,0xc8,0xb2,0x97,0x23,0x2d,0x8b,0x42,0x25,0xe3,0x61,0x24,0x6b,0x1e,0x84,0x54,0x75,0x3f,0xe2,0xe5,0x73,0x11,0x93,0xda,0x80,0x88,0x39,0x5e,0x84,0x4a,0x5d,0xb3,0xd4,0xa1,0x61,0xd,0x8e,0x70,0x2a,0xe8,0x34,0x35,0x10,0xdb,0x96,0x22,0xd0,0xda,0x86,0xc8,0x82,0x45,0x88,0xc9,0x59,0x88,0xb8,0xac,0x7,0x90,0x90,0xf1,0x0,0x12,0x75,0xb,0x21,0x25,0x25,0xb1,0xb7,0xd1,0x5a,0xba,0x6a,0xe8,0x67,0xcd,0x2,0x24,0xaa,0xef,0x47,0x82,0x6a,0x1e,0xe2,0xd8,0xab,0xf6,0xb4,0x6,0x44,0x26,0xd7,0xf0,0xaf,0xd9,0x83,0x12,0x2a,0x10,0x10,0x67,0x9b,0xd,0x0,0x16,0x46,0xe9,0x7c,0x8b,0x49,0x92,0x46,0x5f,0x6a,0x98,0x87,0xe0,0x9c,0xfb,0x10,0xa2,0x6d,0x44,0xa8,0xaa,0x1,0xe1,0x8a,0x7a,0x44,0xc8,0xeb,0x11,0x29,0x6b,0x40,0xd4,0x54,0xa5,0x31,0xd1,0x73,0x52,0x44,0x6a,0x2d,0xc2,0x93,0xbd,0x8,0x49,0x72,0xf3,0xfd,0x81,0x80,0x78,0x3b,0xeb,0xd,0x40,0x14,0x5d,0x34,0xb,0x0,0x42,0x3b,0x54,0xe8,0xf,0xc7,0x17,0x41,0xac,0x74,0x41,0x22,0xab,0xe2,0x6b,0x23,0xd6,0x1f,0xb,0x60,0x1d,0x18,0x52,0x50,0x82,0xa0,0x60,0x76,0x4d,0xac,0xe0,0xd,0xd,0x96,0x32,0x39,0xf9,0xd6,0x53,0x20,0x3d,0xf3,0x67,0x86,0xc7,0x96,0x42,0x1c,0x5d,0xcc,0xba,0x33,0xe0,0x22,0x8c,0x33,0xc,0x20,0xba,0xd1,0x66,0xf5,0x75,0x6a,0x22,0xf2,0x78,0x8,0xbe,0xcd,0x1a,0x6d,0x86,0x28,0x8a,0xc4,0x7a,0x60,0xbe,0x3e,0x18,0x2f,0x76,0x1f,0x65,0x81,0x24,0xba,0x88,0x66,0xb9,0x98,0xc,0xb6,0xf2,0x12,0xc7,0x94,0xb0,0x19,0x27,0xc3,0x59,0x8b,0xd6,0x28,0xf4,0xc8,0x42,0x73,0x67,0x1a,0x40,0x36,0xd9,0x2b,0xe6,0xbd,0x90,0x29,0xf4,0x86,0x43,0x7d,0xdd,0xc7,0x10,0xfd,0x64,0x27,0x32,0xd8,0x27,0xfe,0x79,0x8e,0xd0,0x76,0xd,0xcf,0x17,0x8c,0x8d,0x34,0x9,0x9a,0x34,0x5c,0xf8,0x77,0xc1,0x59,0x3c,0xc0,0x27,0x77,0x61,0xe0,0x39,0xd2,0x29,0xd2,0xc9,0x2f,0x95,0x58,0x7e,0x92,0x42,0xe9,0x24,0xad,0x85,0x93,0x5c,0x90,0xee,0x24,0x6d,0x6e,0x74,0xaf,0x65,0xd7,0x53,0x74,0xfd,0x2b,0x7b,0xf5,0x72,0x4b,0x3f,0x98,0xf5,0x80,0x19,0x2c,0x3,0x64,0xc6,0x32,0x18,0x26,0x76,0xcf,0xf7,0x92,0xb3,0x84,0xcc,0x16,0xa8,0xe3,0x1b,0xdd,0x47,0xef,0x2,0x60,0x8c,0x14,0x4a,0xa,0xfb,0x72,0xa5,0x85,0x11,0x44,0x18,0x79,0x21,0x8c,0xd2,0x2a,0x29,0x9d,0xee,0x49,0x1,0xe9,0x21,0x9c,0x9f,0xba,0x7f,0xb2,0x33,0x7f,0xa3,0x13,0x9f,0x2e,0xec,0x1f,0xcc,0x48,0x66,0x2c,0xdf,0x1b,0xce,0x12,0xa0,0xd8,0x33,0xbe,0xe1,0xcd,0x77,0xf5,0x5f,0x67,0x0,0x4e,0xd2,0x1f,0xa6,0x9,0xb0,0x84,0xbb,0xdb,0x8f,0x44,0xb9,0x90,0x34,0xc1,0xff,0x7d,0xc4,0xe4,0xdf,0x40,0x4c,0x42,0xdc,0xec,0xca,0x4f,0xed,0xde,0xf3,0x7f,0x5b,0xf1,0x3e,0x8d,0xab,0x61,0x0,0x22,0x92,0xcb,0x17,0xa,0x6c,0x3d,0x4c,0xfc,0x3f,0x74,0x9d,0xf4,0x21,0x29,0xff,0xae,0x1,0xc4,0xca,0x6c,0x32,0xfa,0x7d,0xd2,0x75,0x1e,0xe4,0x86,0xfc,0xd4,0x13,0x4,0x21,0x28,0x40,0x33,0x79,0xef,0xa7,0xbe,0x4a,0x9e,0x3a,0x4d,0x63,0x6a,0x68,0xa3,0x14,0xff,0x13,0xdc,0x84,0xd2,0x44,0x5,0x25,0x9e,0xda,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82}; + +// This file is auto-generated from icon_16.png +static uint32_t icon_16_png_size = 0x339; +static uint8_t icon_16_png_data[]{ 0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x1f,0xf3,0xff,0x61,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xe2,0xc,0x17,0xe,0x29,0x28,0xe4,0xb,0x88,0x15,0x0,0x0,0x0,0x17,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x0,0x47,0x4c,0x44,0x50,0x4e,0x47,0x20,0x76,0x65,0x72,0x20,0x33,0x2e,0x34,0x71,0x85,0xa4,0xe1,0x0,0x0,0x0,0x8,0x74,0x70,0x4e,0x47,0x47,0x4c,0x44,0x33,0x0,0x0,0x0,0x0,0x4a,0x80,0x29,0x1f,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8f,0xb,0xfc,0x61,0x5,0x0,0x0,0x2,0xa6,0x49,0x44,0x41,0x54,0x78,0x9c,0x85,0x93,0x49,0x4f,0xd3,0x41,0x1c,0x86,0xe7,0x4f,0x17,0xa,0x6d,0x95,0x22,0x81,0x56,0xa0,0xb,0x2d,0x74,0xa3,0x29,0x74,0x1,0xba,0xd0,0x4a,0x2d,0x15,0x2c,0x58,0x56,0x89,0x5a,0x8d,0x91,0x44,0x48,0x8c,0x8a,0x8a,0x4,0xd4,0x83,0x46,0x62,0x54,0x48,0x54,0x36,0xe9,0x82,0x1a,0x16,0x43,0x22,0xe0,0x85,0x0,0x9,0x46,0x43,0x38,0x7a,0xf3,0x0,0x9,0x37,0xbe,0x80,0x7e,0x0,0x4a,0x5f,0x7,0xe4,0xc0,0x52,0xe2,0xe1,0xc9,0x4c,0x32,0x33,0xcf,0x6c,0xbf,0x97,0x10,0x46,0xfe,0x8d,0xb2,0x45,0x89,0x25,0x84,0xa5,0x8c,0x11,0x9e,0x2e,0x46,0xb8,0x6a,0xda,0x57,0xc5,0x48,0x52,0x1e,0x45,0xb1,0xd3,0x6e,0xd1,0xb1,0xef,0x64,0x6f,0x31,0x8e,0x83,0xe1,0x69,0xc0,0x91,0x57,0x82,0x95,0x55,0x8e,0x24,0xa1,0x9,0x24,0x45,0xf,0xc2,0xd5,0x80,0x24,0x6b,0x29,0x54,0x4c,0x27,0x6d,0x1f,0x2f,0x50,0x20,0x59,0x64,0x46,0x5e,0x73,0xf,0x4,0x65,0x6d,0x10,0x15,0xb4,0xe0,0x84,0xb4,0x16,0xa9,0x62,0x2f,0xb8,0x19,0x2e,0xb0,0x44,0xb6,0xf8,0x51,0x1,0xc9,0xa5,0xe4,0xfc,0x83,0x91,0x21,0x25,0xd3,0x6,0xf5,0x9d,0x41,0x70,0xea,0x5e,0x40,0x62,0xef,0x86,0xc2,0xdc,0x9,0xb9,0xe1,0x36,0xb2,0xb,0xae,0x23,0x5d,0x5a,0x7f,0x50,0xc0,0xe6,0xa8,0x50,0x57,0x7f,0x13,0x6d,0xed,0x8f,0x70,0xf5,0xda,0x3d,0x28,0xf2,0x5c,0xe0,0x65,0xd9,0x71,0x6b,0x6c,0x1,0xf7,0x27,0x56,0x51,0xd1,0xfa,0x1,0x2a,0x47,0x1f,0xa,0x4b,0x5f,0x43,0x6f,0x7e,0x8a,0xfc,0xc2,0x8e,0x7d,0x2,0x22,0x83,0x40,0xa8,0xc3,0xe4,0xe4,0x57,0x4,0x83,0x1d,0xb8,0xd1,0xda,0x85,0x70,0x64,0x1a,0x12,0xed,0x79,0xf8,0xde,0xce,0xc1,0x3f,0xb0,0x8c,0x9a,0x8e,0x59,0xa8,0xdd,0xef,0x61,0x77,0x8d,0xc2,0x6d,0x1f,0x80,0xdd,0xfa,0xf2,0xb0,0x40,0x8f,0x50,0x68,0xa,0x39,0xb9,0x65,0x90,0x48,0xac,0x18,0x9f,0x98,0x83,0xd2,0xd2,0x4,0x5b,0xdf,0x17,0x8,0xda,0x27,0x90,0x5e,0x39,0x2,0x83,0x37,0x2,0x8f,0x37,0xa,0xbf,0x3b,0x84,0x1a,0xdb,0xe0,0x41,0x1,0x5f,0xa0,0xc3,0xec,0xec,0x22,0x22,0x74,0xe7,0x9d,0xf6,0xd2,0xe5,0xbb,0xe0,0xe7,0xb8,0xf1,0x64,0x66,0x5,0xd1,0xd5,0xd,0x5c,0x79,0xbc,0x88,0xa2,0xca,0x28,0x7c,0xe7,0xc6,0x10,0xf0,0x44,0xd0,0xe8,0x18,0x39,0x7a,0x82,0x48,0x74,0x1a,0xe,0x67,0x13,0x46,0x47,0xa7,0x50,0xee,0xba,0x8,0x9e,0xc4,0x9,0xcd,0xf3,0xcf,0x70,0xf6,0x2d,0x61,0x66,0x79,0x3,0xce,0xda,0x4f,0xa8,0xa2,0x82,0x86,0xb3,0x11,0x34,0x3b,0x8f,0x8,0x74,0x18,0x1a,0x1e,0x87,0x58,0x6c,0x86,0xc9,0xe4,0xdf,0x7d,0x3,0x85,0xa9,0x1,0x2d,0xa1,0x79,0xf4,0x2e,0xfc,0x42,0xff,0xc7,0x9f,0x28,0xa3,0x8b,0xfd,0xbe,0x31,0x34,0x7a,0xc2,0x68,0xb4,0xf,0x1d,0xfc,0x5,0x16,0x5b,0x9,0x7d,0xa1,0xf,0xc9,0x3c,0x35,0x98,0x24,0x39,0x8c,0x45,0xd5,0x90,0x1a,0x3,0x8,0x86,0xe7,0x11,0xe8,0x5f,0x82,0xe6,0x42,0x4,0x96,0x8a,0x30,0xaa,0x28,0x7e,0xe7,0x30,0x3c,0xd6,0x57,0x89,0xea,0x40,0xba,0xaf,0x2f,0xa3,0x45,0xe3,0x80,0xfa,0x61,0x8,0xdc,0xa6,0x37,0x90,0x9e,0xe9,0x87,0xc1,0xf1,0xe,0xa5,0xb6,0x37,0x30,0x5b,0x7a,0xa1,0x35,0x3c,0x48,0x20,0x38,0x5c,0x89,0xa7,0xac,0x90,0x7,0x9f,0x21,0xcd,0xdb,0x3,0x59,0x49,0x17,0x94,0xe6,0x6e,0xa8,0x8c,0x9d,0x90,0x69,0xdb,0x90,0x29,0x6f,0xf9,0x9f,0x80,0x66,0x21,0x45,0x7,0xae,0x26,0x0,0x7e,0x7e,0x3,0xd2,0xe4,0xf5,0x10,0x51,0xd2,0x64,0x75,0x10,0x9c,0xae,0x6,0x27,0xc3,0x1d,0x4f,0x14,0xa6,0x38,0x65,0x93,0xb2,0x46,0x59,0x27,0x6c,0xd5,0x3a,0x11,0x16,0xad,0x31,0xc2,0xe2,0x4d,0x26,0xd5,0xb8,0xcd,0x8,0x8a,0xc1,0x9c,0x2c,0xa1,0x58,0x40,0xf8,0xc6,0xdd,0x30,0xfd,0xd8,0x3b,0x45,0x7c,0x4f,0xf0,0x87,0x52,0x45,0x11,0x53,0xb2,0xe9,0x35,0xb2,0xa9,0x44,0x4c,0xa3,0xec,0xa3,0xf1,0xfd,0x4d,0xd8,0xf9,0x3b,0x49,0x8c,0x53,0xb6,0x9,0xa7,0x60,0xe5,0x2f,0x17,0xa,0x8a,0x50,0xc8,0xcf,0x87,0xa8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; + +// This file is auto-generated from icon_24.png +static uint32_t icon_24_png_size = 0x577; +static uint8_t icon_24_png_data[]{ 0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0xe0,0x77,0x3d,0xf8,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xe2,0xc,0x17,0xe,0x2a,0x1c,0xee,0x92,0x2f,0x63,0x0,0x0,0x0,0x17,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x0,0x47,0x4c,0x44,0x50,0x4e,0x47,0x20,0x76,0x65,0x72,0x20,0x33,0x2e,0x34,0x71,0x85,0xa4,0xe1,0x0,0x0,0x0,0x8,0x74,0x70,0x4e,0x47,0x47,0x4c,0x44,0x33,0x0,0x0,0x0,0x0,0x4a,0x80,0x29,0x1f,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8f,0xb,0xfc,0x61,0x5,0x0,0x0,0x4,0xe4,0x49,0x44,0x41,0x54,0x78,0x9c,0x9d,0x96,0xfb,0x4f,0x93,0x67,0x14,0xc7,0xdf,0xb6,0x40,0x51,0x28,0xd7,0x81,0x5c,0x6b,0x2f,0xf4,0x5e,0x69,0xb,0xad,0x6d,0x81,0x22,0x97,0xb6,0xd8,0x72,0x11,0xd1,0xc2,0x24,0xbb,0x38,0x45,0x36,0x27,0x43,0x40,0x2,0x44,0x98,0x82,0xd1,0x45,0x58,0xc6,0x0,0x91,0x8b,0x5c,0xdc,0xc8,0x32,0xe7,0x22,0x6e,0x73,0xba,0xb1,0x65,0xd3,0xc,0x13,0xd,0xfa,0x8b,0x83,0x64,0x8e,0xe9,0xb2,0x65,0xf1,0x7,0x74,0xba,0x7f,0x0,0xc3,0x77,0xa7,0x6f,0x59,0xe6,0xf,0x52,0x95,0x26,0x9f,0x3c,0xcf,0xf3,0xbe,0x79,0xcf,0xf7,0x79,0xce,0xe9,0x39,0xe7,0x61,0x18,0x8e,0xa8,0x81,0xb8,0x4f,0x3c,0x26,0x16,0x9f,0x9,0x57,0xbc,0xc8,0x4,0xa4,0x2c,0x32,0x41,0xa,0x1a,0x65,0x8b,0xc,0x4f,0x4a,0xcf,0xbc,0x48,0x7c,0xef,0x7c,0x3c,0x26,0x1e,0xd0,0xb3,0x26,0x86,0x3e,0x5a,0x20,0xf0,0xdc,0xf0,0x24,0x60,0xd6,0x6a,0xc1,0x44,0x99,0xc0,0x84,0xa4,0x82,0xe1,0xab,0xc0,0x4,0xca,0x41,0xa2,0xf4,0x4e,0xa,0x32,0xea,0x1b,0xbd,0xeb,0x0,0xd9,0x43,0x66,0x79,0xe7,0xcf,0x29,0x20,0x66,0x3f,0xe4,0xc5,0x66,0x80,0xaf,0xdd,0x86,0x80,0x64,0x7,0x78,0x31,0x99,0xe0,0x86,0x9b,0xc0,0x9,0xd1,0x81,0x9,0xd6,0x10,0xea,0x65,0x68,0xbe,0x46,0xbb,0xf4,0x62,0x2,0x5c,0xaf,0x80,0x1c,0x42,0xa3,0x7,0xa2,0xca,0x76,0xac,0x35,0xee,0x42,0xb8,0xb2,0x1c,0x2,0x51,0x9,0xd6,0x26,0x14,0x80,0x1f,0x9b,0x8b,0xc0,0xe8,0x2c,0xf0,0xa2,0x32,0xc0,0x8d,0x30,0x83,0x13,0x6e,0x5a,0x85,0x40,0x90,0x12,0xf2,0xdc,0x5d,0x90,0x35,0x9e,0x42,0xa0,0xab,0x15,0xb1,0x19,0x75,0x48,0x34,0xec,0x45,0x82,0xb6,0xa,0xf1,0x8a,0xd7,0x10,0x2b,0xad,0x40,0xa4,0xb0,0x14,0xa1,0x9,0x9b,0x49,0x30,0xcf,0x8f,0x0,0x23,0x24,0x92,0x97,0xf1,0xce,0xd7,0xfb,0xfc,0xcb,0x57,0x43,0xe1,0x7c,0xb,0xb2,0x8e,0x33,0x60,0x3c,0x5d,0x88,0xb4,0xb7,0x43,0x98,0xd5,0x6,0x89,0xf9,0x20,0x52,0xd2,0x9b,0x21,0xd5,0x35,0x40,0xa4,0x21,0xc1,0x94,0x57,0x11,0x2d,0x2c,0x7b,0xba,0x0,0x87,0x76,0x2a,0x96,0xd8,0x90,0x6e,0x2c,0x86,0xd1,0x54,0xc,0x9d,0xce,0x85,0xe8,0x68,0x3d,0x9,0x88,0x58,0x1,0x6d,0x71,0x2d,0xf6,0x9e,0xbf,0xe,0x77,0xf7,0x45,0xe8,0x76,0x8f,0x40,0x64,0xef,0x82,0x34,0xab,0x13,0x4a,0x4b,0x27,0xd4,0x1b,0xdf,0x83,0x2a,0xfd,0x30,0x64,0xa9,0x7,0x20,0x52,0x56,0x3f,0x5d,0x80,0x17,0x20,0xc5,0xc4,0xc4,0x24,0xe6,0xe6,0xe6,0x31,0x35,0xf5,0x13,0xae,0x5c,0xb9,0xce,0xe2,0x72,0xbf,0x41,0x2e,0x52,0x23,0x6d,0x7b,0x23,0xbe,0xf8,0xe5,0x1e,0xbe,0x9e,0xfd,0xb,0x57,0xe7,0xee,0x61,0x47,0xe3,0x24,0xc4,0x59,0xbd,0xd0,0x66,0xf6,0xc3,0x98,0x71,0x2,0x26,0x73,0x37,0xd2,0x4c,0xc7,0xa0,0x35,0xb4,0xae,0x2c,0x70,0xfe,0xfc,0x14,0x5a,0x5a,0x3a,0x11,0x1a,0xaa,0xc6,0x4b,0x31,0x6,0xb4,0x77,0xf4,0x60,0xfa,0xea,0x4d,0x84,0xad,0xb3,0x40,0xb9,0xb5,0x1,0xaa,0xc1,0xef,0x11,0xb4,0xef,0x63,0x18,0xde,0x39,0x3,0xbd,0xe7,0x34,0xa4,0x39,0x83,0x48,0xcf,0x39,0x85,0x4d,0x9b,0x86,0x91,0x9f,0x39,0x80,0x5c,0x4b,0xf,0x6c,0xa6,0x4e,0xff,0x2,0xb5,0xb5,0x87,0xc9,0xf7,0xf1,0x44,0x1c,0x9c,0xce,0x4a,0xdc,0xfa,0xf9,0x36,0xe2,0xc4,0xb9,0x50,0x94,0x35,0x40,0x76,0x72,0xa,0x4c,0xd5,0x18,0xf8,0xc5,0x3,0x88,0x77,0xc,0x42,0x91,0x3f,0x2,0xab,0x7d,0x14,0x76,0x1a,0xdd,0x39,0xc3,0x28,0x24,0x11,0x97,0xb9,0xc7,0xbf,0x40,0x57,0xd7,0x30,0x34,0x1a,0x7,0xac,0xd6,0x32,0x9c,0x3d,0x7b,0x11,0xe3,0x1f,0x9d,0x43,0x40,0x98,0x1e,0x69,0x15,0x4d,0xe8,0x9b,0xb9,0x83,0xb2,0xa1,0xcb,0x10,0xef,0x9c,0x40,0x82,0x63,0x18,0x6a,0xc7,0x28,0xb2,0x9c,0x63,0x28,0x70,0x8e,0xa2,0x98,0x44,0x4a,0x6d,0x43,0x28,0xb5,0xf4,0xaf,0x2c,0x30,0x39,0xf9,0x2d,0xe6,0xe7,0x7f,0xc7,0xf4,0xf4,0xc,0x16,0x16,0xfe,0x46,0x6f,0xef,0x38,0x12,0x12,0x2d,0x14,0x64,0xd,0xf4,0xe5,0x4d,0x18,0xbf,0xf5,0x27,0xa6,0xef,0xde,0xc7,0xcc,0xed,0x5,0x94,0xd5,0x5d,0x80,0xc6,0x3e,0x82,0xec,0x82,0x31,0xb8,0x88,0x2d,0x34,0xdf,0x46,0xae,0xda,0x6e,0x3d,0xe9,0xff,0x4,0xcd,0x2d,0xc7,0x91,0x98,0x64,0xc6,0xa5,0x4b,0x97,0xd1,0x71,0xa4,0x7,0x5c,0x6f,0x99,0x8,0xd6,0x42,0x45,0x41,0x96,0xf,0x7c,0x87,0xb0,0xba,0x4f,0xf1,0xc9,0xf4,0x6f,0xf8,0xf2,0x87,0x3b,0x30,0x90,0xe1,0x9c,0x82,0x71,0xb8,0x69,0xdc,0x4a,0xa7,0xf1,0x90,0x9b,0x3c,0x19,0xcf,0x10,0xa8,0xad,0x6d,0x67,0x63,0x60,0xb1,0x94,0x62,0x76,0xf6,0x57,0x94,0x94,0x56,0x53,0xdd,0x51,0xb1,0x2,0xb2,0x7e,0x8a,0xc1,0x9e,0xd3,0xe8,0xbb,0x34,0x87,0xb,0x3f,0xde,0x45,0x1a,0x19,0xce,0x23,0x8a,0x88,0x32,0x3a,0x41,0x39,0x9d,0xc0,0x63,0xf5,0xe3,0x22,0x56,0x60,0xbf,0x57,0x20,0x89,0x4d,0xb2,0xfa,0xfa,0x23,0xb8,0x71,0x73,0x16,0x12,0x8d,0x1b,0xa9,0x9e,0x46,0x74,0x5e,0x9b,0xc7,0xf8,0xb5,0x3b,0x98,0xfb,0xe3,0x21,0x5e,0x6f,0xf9,0x6,0x7a,0xf2,0x7b,0x3e,0xc5,0xa0,0x98,0x62,0xb0,0x8d,0xe6,0xdb,0x6d,0x83,0x14,0x83,0xde,0x95,0x13,0x2d,0x3f,0xbf,0x12,0x6a,0xa,0x30,0x9b,0xc1,0x84,0x20,0x4c,0x8d,0xf2,0x8a,0x1a,0xc8,0x75,0x94,0x78,0x74,0x82,0x7e,0xa,0x72,0xcb,0xb9,0x1b,0xd8,0xb4,0xff,0x73,0x88,0xf2,0x87,0x60,0xc8,0x23,0x1,0xda,0x79,0x11,0x19,0xdf,0x92,0x3d,0x84,0x22,0x6b,0x1f,0xec,0x2b,0xfd,0x4d,0x7d,0xa5,0x82,0x4a,0x4,0x47,0xf8,0xc4,0xb3,0xf5,0xbe,0x92,0x41,0x99,0xac,0x2c,0xad,0x83,0xec,0x83,0xaf,0xc0,0xbc,0x32,0x80,0x88,0xcd,0x3d,0x10,0xe7,0x9e,0x40,0x6a,0xf6,0x20,0x6c,0x64,0xd8,0x6e,0x1b,0x40,0x9e,0xb5,0x17,0x99,0xa6,0xe3,0x30,0x18,0xda,0x5e,0xb4,0xd8,0x2d,0xd7,0x22,0xf7,0x3e,0xc8,0x8e,0x7e,0x6,0x4e,0x79,0x37,0xd6,0x39,0x8e,0x43,0x92,0xdd,0x5,0x55,0x46,0x37,0xf4,0x96,0xf,0x91,0x6e,0x7e,0x1f,0x7a,0xe3,0x51,0xa8,0xf4,0x2d,0x90,0xaa,0xdf,0x5e,0x85,0x40,0x90,0xa,0xf2,0xbc,0xdd,0x48,0x39,0x30,0x84,0x60,0xd7,0x21,0x24,0xda,0xe,0x42,0x62,0x69,0x83,0x6c,0xe3,0x21,0xc8,0x8d,0xef,0x42,0x6e,0x20,0xc3,0x1b,0xea,0x20,0x54,0xec,0xa6,0xa4,0x7c,0x79,0x15,0xe5,0x9a,0xba,0x97,0x40,0x59,0x88,0x88,0xc2,0x46,0x84,0x9b,0xdf,0x44,0x9c,0xae,0xa,0x89,0x1b,0xaa,0x91,0xac,0x25,0xd4,0x7b,0x90,0xa8,0xdc,0x89,0x75,0xd2,0x1d,0x88,0x4c,0xde,0x82,0x90,0xb8,0x82,0xd5,0x34,0x1c,0x6a,0x85,0xd1,0x1b,0x11,0xa0,0x28,0x41,0xb0,0xb8,0x10,0x21,0xc9,0x2e,0x84,0x26,0xb9,0x21,0x60,0x29,0x64,0xe7,0x6b,0xe2,0x9d,0x8,0x8c,0xc9,0x1,0x37,0xd2,0xfa,0x82,0x2,0xff,0xb9,0x69,0xd,0xb5,0xc4,0x8,0x23,0x98,0xb0,0x34,0x70,0x4,0x69,0xe0,0x86,0x12,0x82,0x74,0xb6,0x8b,0x71,0xa3,0xac,0xe0,0x44,0x52,0xc6,0x87,0xd1,0xfb,0x10,0x1d,0x2b,0xf0,0xc0,0x8f,0xc1,0x79,0xa2,0x9e,0xa8,0xf9,0x1f,0x71,0xd,0x35,0xf3,0x1a,0x6a,0xf6,0x5e,0xea,0x99,0x40,0xc5,0x6d,0x5a,0x93,0xeb,0x14,0xbe,0x3e,0xec,0xbd,0x8,0x78,0xf1,0xce,0xf9,0xca,0x47,0x5e,0x81,0x66,0xe2,0xd1,0xb2,0xc1,0xa5,0x27,0xf0,0xae,0xc7,0x9,0xe,0xe3,0xef,0xc7,0x93,0xe,0xb3,0xb7,0x8,0x5e,0xca,0x12,0xc5,0x67,0x89,0x8c,0x2e,0xd1,0x95,0x86,0x4,0x65,0xff,0x90,0x3b,0x5b,0xff,0x5,0xfa,0x3c,0x75,0xfe,0xfc,0x21,0x7c,0x65,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; + +// This file is auto-generated from icon_256.png +static uint32_t icon_256_png_size = 0xb2e2; +static uint8_t icon_256_png_data[]{ 0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x8,0x6,0x0,0x0,0x0,0x5c,0x72,0xa8,0x66,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xe2,0xc,0x17,0xe,0x2c,0x0,0xac,0xc9,0xd4,0xaa,0x0,0x0,0x0,0x17,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x0,0x47,0x4c,0x44,0x50,0x4e,0x47,0x20,0x76,0x65,0x72,0x20,0x33,0x2e,0x34,0x71,0x85,0xa4,0xe1,0x0,0x0,0x0,0x8,0x74,0x70,0x4e,0x47,0x47,0x4c,0x44,0x33,0x0,0x0,0x0,0x0,0x4a,0x80,0x29,0x1f,0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xb1,0x8f,0xb,0xfc,0x61,0x5,0x0,0x0,0x80,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xdd,0x7,0x7c,0x1c,0x77,0x9d,0xff,0xff,0x55,0xef,0xb2,0x64,0xf5,0xde,0x7b,0xef,0xda,0x95,0xb4,0xea,0x5d,0xb2,0xe4,0xde,0x7b,0xef,0xbd,0x3b,0xee,0x4d,0x72,0xaf,0x92,0x6c,0xa7,0x90,0x90,0x50,0x72,0x24,0xf4,0x3b,0xe0,0x80,0x3,0x7e,0x77,0x1c,0x70,0x1c,0xf5,0xf8,0x5f,0x2,0x47,0x12,0xc2,0x1d,0x2d,0x9,0x21,0x74,0x42,0xf8,0xfc,0xdf,0xdf,0x32,0x3b,0xb3,0xa3,0x59,0x69,0x65,0x3b,0x71,0x82,0x56,0x8f,0xc7,0xeb,0x56,0x76,0xec,0x44,0xe2,0xf4,0x7d,0xce,0xe7,0x3b,0x33,0xbb,0x6b,0x32,0x4d,0xf4,0xc3,0x23,0xd5,0x64,0xf2,0x4a,0x33,0x99,0xdc,0x92,0x83,0x51,0x9,0x5a,0x8a,0xce,0xa2,0xa7,0xd0,0xa7,0xd0,0xe7,0x5d,0x4d,0x92,0xdc,0x59,0xa9,0x9f,0xc7,0xcf,0x84,0xc8,0x33,0xd,0xa5,0xdb,0xe7,0x21,0xb3,0x7d,0x9e,0x26,0xfe,0x8e,0x92,0x47,0xaa,0xfd,0xaf,0xdd,0xd3,0xe4,0x9f,0x49,0xb3,0xff,0x5c,0xfb,0x7b,0xfa,0x3c,0xc6,0xf9,0xe7,0xee,0xba,0xff,0xa6,0x36,0xb7,0x14,0x3c,0xea,0x72,0x4b,0x31,0xfe,0x7d,0xed,0x3f,0x77,0xf4,0xcf,0x9c,0xf9,0xe7,0x77,0xf3,0xe7,0xdd,0x6c,0xfd,0x23,0xfa,0x10,0xba,0x84,0xd6,0xe1,0x9f,0x59,0x50,0x18,0xbe,0x17,0x37,0x3c,0x9a,0xde,0xbe,0xf,0xb7,0x64,0x96,0x7,0xca,0x45,0xbb,0xd0,0x3f,0xa3,0xff,0x43,0x7f,0x46,0xe4,0x6a,0xb2,0x94,0x42,0xf8,0x41,0x93,0xe1,0xd7,0xee,0xa9,0x84,0x45,0x8c,0xd2,0x8,0x8b,0x5c,0xcd,0x23,0x7d,0xf4,0xaf,0x79,0x69,0x22,0xdb,0xdf,0x4b,0x15,0x9f,0xbb,0xa7,0xaa,0xbf,0xef,0x9e,0xe6,0x7c,0x1e,0x9a,0xc6,0xfb,0x33,0xee,0xa9,0xa3,0x63,0xdf,0x8f,0xdd,0xf7,0x24,0x1b,0xf5,0xbd,0x3e,0xa0,0x94,0xaf,0x4f,0xf9,0x7a,0xec,0xbf,0xa6,0x37,0xd1,0x2b,0xe8,0xab,0xe8,0x14,0xaa,0x42,0x3e,0x1c,0x2,0xcf,0xfb,0x85,0x81,0x5b,0x32,0xfe,0x4f,0x92,0x1b,0x1e,0xf3,0xd1,0x55,0xf4,0x32,0xfa,0xdb,0x83,0xff,0x41,0x74,0xf5,0xf6,0xa5,0xfd,0xa1,0xd3,0x65,0x5b,0x3c,0xa,0x0,0x29,0xea,0xe2,0xf5,0xca,0x10,0x8b,0x9d,0x3d,0x6a,0xf3,0xcc,0xb0,0xc7,0xc0,0x53,0x81,0x40,0x87,0x80,0x2,0xc9,0x84,0x16,0xb5,0xee,0xcf,0xe9,0xff,0xde,0xa8,0x7f,0xcf,0x44,0x10,0x70,0xf0,0xfb,0xef,0xe8,0xc2,0x9f,0xd0,0xd7,0xc0,0x30,0xf8,0x0,0xb2,0x22,0xaf,0x7b,0x9b,0x8,0xdc,0x92,0x94,0xa3,0x7e,0x8,0xda,0x8d,0x5e,0x7c,0xf0,0x3f,0x98,0xae,0xde,0xf6,0x94,0x5,0x6d,0xb7,0x38,0xb4,0x7f,0x46,0x7b,0xf4,0x4f,0x56,0x17,0xbf,0x76,0xe1,0x7b,0x67,0xaa,0x79,0x29,0x39,0x42,0x40,0xb,0x41,0x9a,0xfd,0x94,0x30,0x16,0x2,0x8e,0xfe,0x99,0xfe,0xf7,0xc,0xff,0xdc,0x5d,0x20,0x70,0xb7,0x10,0x4c,0xf4,0xef,0xdd,0xdd,0xc2,0x37,0x82,0xe0,0x12,0x4a,0xe0,0x8,0x4c,0x18,0x2,0xb7,0x64,0xa5,0x6c,0xf4,0xc,0x7a,0x73,0xe2,0x3f,0x4c,0xe,0x8e,0x20,0xae,0xde,0xdd,0xf1,0x1f,0x20,0xdd,0x42,0xd1,0x8e,0xa0,0x76,0xe3,0x7f,0xb2,0x5c,0xb8,0x72,0x41,0x7b,0x69,0x16,0xbc,0x77,0xa6,0x31,0x4,0xda,0x69,0xc0,0x6e,0x5b,0xa0,0x81,0x44,0xbf,0x5d,0x70,0xd4,0x44,0x26,0x83,0x51,0x40,0xbc,0x8d,0x8,0xdc,0xb,0x16,0xe,0xff,0x3b,0xa9,0x13,0xfd,0xf7,0xfd,0xcd,0x24,0xb6,0x6,0xf5,0x26,0xd3,0x44,0x10,0xe0,0x7f,0x90,0x1f,0xfd,0xcd,0xe8,0x3f,0x1e,0xf8,0xf,0xa4,0xab,0x77,0xb6,0x51,0xb,0x43,0x2e,0x16,0x3b,0x0,0xe4,0xe2,0x67,0x9f,0xdb,0xf6,0xfe,0xec,0xc8,0x9f,0x65,0x9f,0x8f,0xf6,0x51,0xb,0x41,0xc6,0xe8,0x73,0x5,0xca,0xc2,0x55,0xfe,0x5d,0x9e,0x4e,0x22,0x30,0xde,0xc8,0x3f,0x26,0x8,0x6,0x8,0x28,0x10,0x8c,0xb5,0x40,0x1d,0x2d,0xf8,0x7b,0xd9,0x2e,0x38,0x85,0xcc,0x84,0x11,0x60,0xbd,0x88,0x66,0x23,0x27,0x4e,0x12,0xba,0xa5,0x28,0x47,0x7e,0xb,0xfa,0xc1,0x3,0xff,0x61,0x74,0xf5,0xce,0x67,0x9b,0x0,0x74,0x0,0xd8,0xf6,0xfb,0xba,0xa3,0xbf,0xb2,0x60,0xd9,0xc2,0xf6,0xc9,0x1e,0xa3,0xac,0x31,0xb6,0x4,0xfa,0xcf,0xb5,0x8d,0x1,0x81,0xfe,0xa8,0xee,0xf4,0xd1,0xdf,0x49,0x4,0x26,0x7a,0x5e,0xe0,0x6e,0xc7,0xf6,0x7b,0x1f,0xf9,0xc7,0xeb,0x17,0x68,0xde,0xd8,0x8,0xb0,0xcb,0x7b,0x6e,0xc9,0xac,0x1c,0x93,0xeb,0xc8,0xff,0xf7,0xdf,0x98,0x7b,0x7c,0x65,0x61,0x68,0x17,0x49,0x32,0xd9,0x1d,0xf9,0x95,0xa3,0xbf,0x97,0xb2,0xf8,0xb1,0xc0,0x7d,0x73,0xc6,0x48,0x42,0xe0,0x9d,0x65,0x3f,0x9,0xd8,0x40,0xc8,0xd2,0x6c,0x11,0x8c,0x72,0x62,0x6b,0xe0,0x70,0x91,0x8f,0xd7,0x4,0x11,0xb8,0x97,0xc5,0x7e,0xcf,0xb,0x5f,0x3f,0x5,0x18,0x4d,0x5,0x86,0xdf,0xcf,0x4f,0x51,0x2b,0x32,0xf1,0x46,0x7d,0xb8,0x25,0xb3,0x42,0xd1,0x47,0x1f,0xf8,0xf,0xa7,0xab,0xb7,0x39,0xe5,0x87,0x24,0x4d,0xfd,0x1,0xb2,0xdb,0xe7,0xeb,0x7f,0x78,0x34,0x47,0x7d,0xdb,0xbe,0x3f,0x55,0xdd,0xf7,0xf3,0x31,0x1f,0x8b,0xdb,0x2f,0x97,0x4c,0xfe,0x79,0x78,0xcc,0x13,0x8f,0xfe,0xf9,0x22,0xf6,0x6b,0xf6,0xcf,0x18,0x4,0xfa,0x69,0x80,0x83,0x90,0x2d,0x1,0xc8,0xb2,0x9f,0x10,0xbc,0xc6,0x83,0xc0,0xc9,0x13,0x86,0xce,0x5c,0x46,0x74,0x84,0xc0,0x58,0xa3,0xbd,0x33,0xb,0xf8,0x5e,0xfe,0xee,0x84,0x72,0xf4,0xf5,0xdb,0xf5,0x2d,0x94,0x29,0x0,0xc0,0x7a,0xb7,0x7d,0xb8,0xe1,0x17,0x6e,0xfc,0xe6,0x9e,0xfd,0xe8,0xaf,0xf,0xfe,0x7,0xd4,0xd5,0xdb,0x9e,0x1d,0x0,0x1a,0x8,0xc,0x7f,0x98,0xb4,0x0,0xa4,0x68,0x4e,0xd8,0xc9,0x33,0xfe,0x6c,0x51,0xfb,0x4a,0x0,0x2,0xa,0x8c,0xb3,0x83,0x40,0x33,0x9,0x28,0x5b,0x4,0x43,0x4,0x9c,0x81,0x60,0x82,0xe7,0x8,0x1c,0x21,0x30,0xd6,0x24,0x70,0x3f,0xa7,0x81,0xfb,0xb6,0xf0,0x9d,0x5a,0xf0,0x46,0x3d,0x86,0xef,0xd7,0x8f,0x4f,0xfc,0xb6,0xf,0xb7,0x64,0x56,0x31,0x7a,0xe9,0x81,0xff,0x60,0xba,0x7a,0x87,0x1,0xd0,0xfe,0xf0,0xb3,0xc5,0x9d,0x42,0xa3,0x6e,0xd0,0xd1,0xff,0xf0,0xd9,0x8e,0xfe,0x19,0xea,0xd1,0x9f,0x1d,0xdd,0xd9,0x51,0x3f,0xb0,0x90,0x4c,0x41,0x45,0xf6,0xb1,0xdf,0xe3,0x10,0x28,0x13,0x81,0x66,0x1a,0xe0,0x8f,0x39,0x2a,0x2,0xda,0x93,0x88,0x13,0x82,0xe0,0x2e,0x40,0x98,0xe8,0xc9,0xc1,0xb1,0x8e,0xe8,0xe3,0x2d,0xee,0xfb,0x73,0x79,0x6f,0x62,0x8b,0xdf,0xf8,0xfe,0x8a,0xdf,0xa2,0x19,0xc8,0xc4,0xe3,0x8b,0xdf,0x94,0xec,0x89,0xc7,0xa1,0x7,0xfe,0x43,0xe9,0xea,0x1d,0x4a,0xbb,0x5,0xd0,0x1,0x60,0x3b,0xc2,0x6b,0x33,0xf8,0x7d,0x65,0xfc,0xb7,0x1d,0xfd,0x73,0xc4,0x2,0xf,0x2a,0x26,0x53,0xb0,0x2e,0xf6,0x7b,0x36,0x8,0x34,0xdb,0x2,0xdf,0x5c,0x35,0x5,0x1,0xed,0x44,0x60,0x8,0x41,0xa6,0x3,0x8,0x8c,0x2e,0x2f,0x3a,0x79,0x29,0xd1,0x70,0x52,0x18,0x67,0x1a,0x70,0xf6,0x28,0x7f,0x5f,0x16,0xfe,0x4,0x16,0xbc,0x73,0xdf,0x2b,0xbb,0x75,0x3a,0x54,0x5,0xc0,0x2d,0xb9,0x10,0xfd,0xef,0x83,0xff,0xc1,0x74,0xf5,0x8e,0xc4,0x7f,0xa8,0x8c,0xc6,0x61,0x47,0x0,0xa4,0x8e,0x5e,0xfc,0x76,0xe3,0xbf,0x72,0xf4,0xc7,0x51,0x3e,0xb8,0x84,0x4c,0x53,0x4a,0x75,0x95,0x48,0x8,0x34,0xd3,0x80,0x6d,0x4b,0x60,0x4,0x81,0x1e,0x83,0x31,0x26,0x2,0x87,0x18,0x18,0x4d,0x7,0xa,0x8,0xe3,0x9c,0x48,0x74,0x6a,0x1a,0x30,0x3a,0xf9,0x76,0x3f,0x9b,0xc0,0x58,0xef,0x2c,0x6e,0x6a,0x7f,0x44,0xd3,0xb5,0x0,0x1c,0x7c,0xe0,0x3f,0x94,0xae,0xde,0x61,0x0,0xf4,0x13,0xc0,0x78,0x0,0xa4,0x69,0x0,0xc8,0xb0,0x1f,0xff,0xf9,0xc9,0xbf,0x7c,0xb1,0xc0,0xd9,0x82,0xf,0x29,0x97,0x95,0xa9,0xb1,0xdf,0x67,0x38,0xb0,0x69,0x80,0x21,0x30,0xd6,0x34,0xe0,0x9b,0x6b,0xbf,0x35,0x18,0x13,0x82,0xf1,0xb6,0x8,0xe3,0x6d,0x17,0xc6,0x38,0x91,0xe8,0xec,0x44,0xf0,0x4e,0x2e,0x76,0x5b,0x63,0x9c,0xd0,0x74,0x98,0xe6,0x7b,0xf7,0x4c,0x7f,0x3f,0xfe,0xf7,0xf2,0x56,0xce,0xfc,0x7f,0xe9,0x81,0xff,0x50,0xba,0x7a,0x87,0x1,0xd0,0x23,0xa0,0xdf,0x2,0xa4,0x8d,0x6,0x80,0x1f,0xf9,0xd3,0xd4,0xeb,0xfe,0xde,0xf2,0xd2,0x1f,0x5b,0xc4,0x1,0xf2,0xe8,0xcf,0x16,0x7e,0x68,0x5,0x99,0xa6,0x56,0x92,0x29,0xac,0x4a,0x3c,0xb2,0x5f,0x2b,0x8,0x4c,0x29,0xd1,0x6d,0x9,0x74,0xd3,0x80,0x36,0xa3,0xed,0xc1,0x98,0xe7,0x9,0xee,0x5,0x84,0x71,0xa6,0x81,0x71,0xaf,0x16,0x8c,0x5,0x42,0x2a,0xdd,0xdb,0x62,0x4f,0x35,0xf8,0x3a,0x9c,0x59,0xf4,0x6,0x4f,0xca,0x52,0xbf,0xff,0x17,0x51,0x3e,0x3,0xa0,0x1a,0xfd,0xf2,0x81,0xff,0x50,0xba,0x7a,0x0,0x0,0xe8,0x7f,0x20,0xf5,0x0,0xa4,0x19,0x0,0x90,0xa1,0xb9,0xf1,0x27,0x4b,0x5e,0xf2,0xcb,0x17,0x8b,0x99,0x2d,0x72,0x65,0xe1,0x87,0x57,0x23,0xb3,0x78,0xb4,0x41,0x20,0xa7,0x2,0xbe,0x25,0x50,0xa6,0x1,0x9,0x81,0xbf,0x84,0x40,0x99,0xa,0x78,0xfa,0x2d,0x82,0xfe,0x84,0xa1,0xe,0x83,0x7b,0x2,0xc1,0x89,0x73,0x7,0x4e,0x6f,0xd,0xee,0x57,0xce,0x1e,0xd9,0x1d,0x2d,0xf8,0x31,0xbe,0x5f,0xaf,0x8c,0x3f,0xa3,0x95,0xc,0x80,0xb5,0xa6,0xbb,0xba,0xd7,0xdf,0xd5,0x7b,0x36,0x43,0x0,0x34,0xbf,0x37,0x16,0x0,0xda,0x9b,0x77,0xf8,0xf8,0x9f,0x27,0x8e,0xe2,0x6c,0x31,0xb3,0x23,0x3d,0x5f,0xf8,0x28,0x2,0x8b,0x3f,0xd2,0x22,0x1e,0x23,0xe4,0xef,0x4d,0xad,0xd2,0x4c,0x3,0xe,0xb6,0x5,0xb6,0xed,0x81,0xfe,0xf2,0xe1,0x18,0xe7,0xa,0xbc,0x1d,0x80,0x30,0xea,0x92,0xa2,0x93,0xe7,0xf,0x9c,0xb9,0xcf,0xc0,0xee,0xd7,0xf7,0x71,0xb1,0x3b,0x3d,0xd6,0x4f,0x60,0xb1,0x7b,0x66,0xd8,0x7f,0xcf,0xea,0xff,0x16,0x23,0xc,0x80,0xab,0xf,0xfc,0x7,0xd2,0xd5,0x83,0x3,0x80,0x5f,0xf6,0xd3,0x6c,0x1,0x3c,0x9c,0x4,0x40,0x3b,0xfe,0x7,0xca,0xbd,0x3f,0x3b,0xca,0xf3,0x85,0x8f,0xa2,0x2c,0x32,0xf9,0xeb,0x8,0xa3,0x69,0xa0,0x5c,0x40,0x10,0xac,0xd9,0x16,0xe8,0x2f,0x1f,0x6,0x6a,0x20,0x18,0x17,0x83,0x1c,0x1d,0x6,0x13,0xd8,0x2e,0xdc,0xcb,0xdd,0x87,0xce,0xde,0x4b,0x60,0xb4,0xd0,0xc7,0x3e,0x59,0x67,0xb4,0x77,0x77,0xe6,0xe8,0xee,0xa0,0x51,0xdf,0xfb,0x57,0x18,0x0,0xcf,0x3e,0xf0,0x1f,0x48,0x57,0xf,0x18,0x0,0x7,0x7b,0x7e,0xdb,0xef,0xa5,0xe9,0x7e,0xb8,0x24,0x0,0xec,0xe4,0x1f,0xbf,0xee,0x5f,0x22,0x16,0x32,0x5b,0xdc,0xec,0xa8,0x1f,0x55,0x43,0xa6,0x18,0x14,0x5b,0x8b,0x47,0x14,0x6d,0x11,0x8,0x28,0x10,0x84,0x55,0x6b,0xce,0xd,0x94,0xdb,0x9f,0x24,0x74,0x74,0xf9,0x50,0x3f,0x15,0xbc,0x2d,0x18,0x8c,0x35,0x19,0x38,0xb9,0x45,0x30,0xfa,0xb5,0xd1,0xd4,0xf0,0xb6,0x2d,0x78,0x47,0xc8,0xe9,0xe3,0xff,0x3b,0xfc,0x98,0x1,0xf0,0x95,0x7,0xfe,0x3,0xe9,0xea,0xc1,0x0,0xe0,0x31,0xce,0x11,0x5f,0xf,0x80,0xf6,0x7,0xcc,0x5b,0xee,0xff,0xf9,0x75,0x7f,0x79,0xe6,0x9f,0x8d,0xfa,0xd1,0x6c,0xe1,0xd7,0x91,0x29,0xce,0x4a,0xa6,0xf8,0x6,0x11,0xfb,0x9c,0x81,0xc0,0xfe,0x59,0x94,0x45,0x9d,0x6,0xf8,0x96,0x40,0x33,0xd,0xd8,0x4e,0x14,0x6a,0x2f,0x1f,0x96,0xa8,0x18,0x28,0xe7,0xb,0x2,0xb4,0x18,0x28,0xdb,0x4,0xe5,0x6a,0x82,0xf6,0xe4,0xe1,0x58,0x20,0x8c,0x77,0xee,0xe0,0x1e,0xb6,0x9,0x13,0xce,0xc9,0xc5,0x3e,0xfe,0x11,0xdd,0x38,0xfd,0xf7,0xaa,0xf6,0x4b,0x6,0xc0,0x37,0x1e,0xf8,0xf,0xa4,0xab,0x7,0x3,0x80,0xe1,0xc8,0x9f,0x66,0xc,0x80,0xdd,0xe2,0xcf,0x16,0xb,0x8a,0x2d,0x44,0x7e,0xdd,0xbf,0x5c,0x1c,0xd1,0xd9,0x11,0x9e,0x2d,0xfe,0x4,0x2c,0xfa,0xc4,0x26,0x32,0x25,0x37,0xa3,0x16,0xf1,0x39,0x83,0x20,0xb6,0x1e,0x10,0xd4,0x89,0x9,0x81,0x4d,0xa,0xec,0x24,0xa1,0xf6,0x4a,0x1,0xaf,0x5c,0x4d,0x7f,0xae,0x40,0xbb,0x55,0x8,0x94,0x5,0x68,0x40,0xd0,0x63,0x30,0xa,0x84,0x1c,0x27,0xcf,0x1d,0x18,0x2c,0xa2,0xf1,0xae,0x26,0x18,0xde,0x73,0x90,0x4e,0xa3,0x8e,0xe8,0x77,0x3d,0xc6,0x3b,0x7d,0x54,0x1f,0x23,0xfd,0xf7,0x9c,0xfd,0xba,0xb,0x80,0xc9,0xd8,0x78,0x0,0xd8,0x7e,0x40,0x35,0xbf,0xa7,0x3f,0xf9,0xc7,0x16,0x14,0x5b,0x80,0xfc,0xe8,0x5f,0x21,0xc6,0xfa,0xe8,0x5a,0xb1,0xd0,0x93,0xb0,0xf0,0x53,0x5a,0xc9,0x94,0xda,0x46,0xa6,0xb4,0x76,0xf1,0x39,0xc3,0x80,0x41,0x10,0xa7,0x20,0x50,0x2b,0x20,0x88,0x50,0x20,0x90,0x13,0x1,0xc3,0xc0,0x56,0x85,0xba,0x4d,0x98,0x22,0x31,0x8,0x56,0x4e,0x1c,0x2a,0x27,0xf,0x8b,0xc7,0xc6,0xc0,0x99,0xe9,0x60,0xa2,0x5b,0x85,0xf1,0x4e,0xb8,0x4d,0x34,0xe7,0xf6,0xeb,0xce,0x1e,0xd5,0x8d,0x16,0xba,0xa3,0x5c,0x0,0x3c,0x98,0x52,0xde,0x3d,0x0,0x28,0x67,0xfd,0xed,0x5e,0xa2,0xcb,0xe0,0x39,0xfa,0xda,0x1f,0x3c,0x76,0xf2,0x8f,0x2d,0x28,0x7e,0xf2,0xaf,0x4c,0x8c,0xf1,0x6c,0x11,0xc7,0x5a,0xc9,0x2d,0xa9,0x85,0xdc,0x52,0xdb,0xc9,0x3d,0xbd,0x8b,0xdc,0x33,0xba,0xc8,0x23,0xb3,0x9b,0x3f,0xba,0xa7,0x75,0x90,0x5b,0xa,0x30,0x48,0x4,0x4,0xf1,0x8d,0x62,0x1a,0x88,0xc6,0xd6,0x20,0xa,0x18,0x44,0x2,0x83,0x88,0x5a,0x89,0x81,0x45,0x77,0xf9,0x50,0xd9,0x26,0x54,0xa8,0x37,0x18,0x19,0x62,0x50,0xa2,0xc3,0x40,0x3,0x82,0xbf,0xa3,0xe9,0xc0,0x19,0xc,0xb4,0x37,0x20,0x39,0x2,0x61,0xc,0x14,0xf4,0x5b,0x88,0x9,0x1f,0xd9,0xef,0x79,0x91,0xcb,0x72,0x34,0x8f,0x32,0x9f,0x1c,0x17,0x0,0x93,0x32,0xa3,0x9,0xc0,0xf0,0x55,0x79,0x32,0x8c,0x2f,0xfd,0xb1,0x45,0xa3,0x0,0xc0,0x16,0x24,0x5b,0xa4,0xd8,0xd7,0xbb,0xe1,0xe8,0xcf,0x17,0x3f,0x16,0xbc,0x67,0x56,0x2f,0x79,0x65,0xf7,0x91,0x4f,0x4e,0x3f,0x79,0xe3,0xd1,0x2b,0xb3,0x97,0x3c,0xd3,0x81,0x41,0x2a,0x20,0x48,0xc6,0x44,0x90,0x0,0x8,0xe2,0x0,0x41,0xc,0x83,0xa0,0x4e,0x40,0xc0,0xa7,0x82,0x5a,0x1,0x42,0xa4,0x6e,0x3a,0xb0,0x6d,0x15,0x14,0xc,0x94,0xc9,0xa0,0x5c,0x83,0x41,0xa9,0xe,0x83,0xe2,0x9,0x60,0x90,0x67,0x80,0xc1,0x78,0xd3,0xc1,0x58,0x57,0x16,0x26,0xd2,0x84,0x47,0xf7,0x71,0x16,0xba,0xdd,0x22,0xd7,0x95,0xab,0xcd,0x5,0xc0,0xa4,0xcc,0xd1,0x16,0xc0,0xe8,0x8e,0x31,0xfd,0x91,0x4a,0x2,0xe0,0xc6,0x6f,0xfd,0x2d,0x51,0xc7,0x7f,0xec,0xe9,0xdd,0x12,0x1a,0x71,0xe4,0xef,0x24,0x8f,0xac,0x1e,0xf2,0x62,0xb,0x3f,0x6f,0x6,0xf9,0xb0,0x72,0xa7,0x93,0x37,0x7e,0xed,0x95,0x35,0x8d,0x3c,0x33,0x80,0x40,0x5a,0x27,0x10,0x68,0xc3,0xb4,0x0,0x8,0xe2,0xb1,0x2d,0x88,0x6d,0x10,0xd3,0x80,0xad,0x3a,0x9e,0x1b,0x30,0x70,0x3,0x4,0x6e,0x80,0xc0,0x8d,0x43,0xa0,0xd9,0x2a,0x84,0xca,0xc9,0x20,0x44,0x62,0x30,0x45,0x8b,0x81,0x23,0x10,0x14,0xc,0x8a,0x74,0x18,0x14,0x48,0xc,0x26,0xba,0x55,0x70,0x84,0x82,0xae,0x31,0x17,0xf7,0x3d,0x2e,0xf2,0xb1,0x17,0xb8,0x9a,0xaf,0xe6,0x51,0xcd,0x5,0xc0,0xa4,0x6c,0x42,0x0,0xe8,0xf6,0x9c,0xf2,0xe6,0x1f,0x37,0x7e,0x2,0xb0,0x54,0x1d,0xff,0xb1,0x9f,0x77,0xc3,0xde,0xdf,0x33,0x93,0x2d,0xfe,0x3e,0xf2,0xce,0x9f,0x49,0x3e,0x5,0xb3,0xc9,0xb7,0x70,0xe,0xf9,0xb2,0xc7,0xfc,0x59,0x2,0x82,0x6c,0x86,0x40,0xf,0x79,0xa4,0x75,0x91,0x5b,0x4a,0x87,0x40,0x80,0x4f,0x3,0x4d,0x7c,0x22,0x70,0x8b,0x65,0x35,0x90,0x3b,0x26,0x3,0x1e,0x40,0x70,0xc7,0x74,0xe0,0x8e,0xa9,0xc0,0x3d,0x2,0xff,0x8d,0x70,0x81,0x81,0x1b,0x30,0x70,0x9b,0x5a,0x2d,0x2,0x6,0x6e,0x1c,0x3,0x9,0xc2,0x14,0xd,0x8,0xc1,0x1a,0x10,0xc6,0x9a,0xe,0xfc,0x9d,0x98,0xe,0x9c,0x9a,0x10,0xee,0x47,0x63,0x2d,0x70,0x7,0x8b,0x7c,0xd4,0x73,0x29,0x8c,0xd2,0x7c,0x3f,0xe2,0x7b,0x73,0x1,0x30,0x29,0x1b,0x75,0xd7,0x5f,0xaa,0xee,0xec,0xb4,0x1,0x0,0x3e,0xf2,0xcc,0xbf,0xdc,0xff,0xbb,0x5,0xc8,0xfd,0x3f,0x1f,0xff,0x2d,0xfc,0x88,0xed,0x81,0xf1,0xdf,0x27,0x1b,0x47,0xfe,0xfc,0x19,0xe4,0x5d,0x34,0x87,0xbc,0x8b,0xe7,0x91,0x6f,0xc9,0x2,0xf2,0x2d,0x9e,0xf,0x8,0xe6,0xa,0x8,0xf2,0x66,0x8a,0x3f,0x93,0x39,0x8d,0xbc,0xd2,0x7b,0xe4,0x96,0x0,0xd3,0x40,0x62,0x2b,0x26,0x88,0x16,0x72,0x8f,0x6f,0x46,0x4d,0xe4,0x11,0xc7,0x6a,0x24,0xf,0x60,0xe0,0x31,0xa,0x2,0x14,0x5e,0x83,0x2c,0xe4,0x1e,0xc6,0x32,0x93,0xbb,0x1d,0x6,0x8,0x18,0xb8,0x1,0x3,0x37,0x89,0x81,0xdb,0x78,0x18,0x4,0x38,0xda,0x2a,0xe8,0xa6,0x83,0xf1,0x2e,0x35,0xfa,0xe4,0xd0,0xa8,0x31,0xdc,0x28,0xc3,0x85,0x9d,0x73,0x77,0x8b,0x5a,0x5d,0xd0,0x13,0x2c,0xdf,0x5,0xc0,0xa4,0xcc,0x8,0x0,0xfd,0x6b,0xf6,0xeb,0x4f,0xfe,0x29,0x4f,0xfb,0x95,0xcf,0xfc,0x73,0x53,0x4e,0x0,0xf2,0xf1,0x1f,0x47,0xe6,0x58,0x2b,0x16,0x74,0x17,0xf9,0x61,0x81,0x7b,0x17,0xce,0x26,0xaf,0x92,0x79,0xe4,0x5d,0xbe,0x90,0x7c,0xca,0x17,0x91,0x4f,0x19,0x1e,0x4b,0x80,0x40,0xd1,0x3c,0xf2,0x2b,0x98,0x83,0x3f,0x33,0x8b,0xfc,0x72,0x66,0x90,0x5f,0x16,0x20,0xc8,0xe8,0x25,0xcf,0xd4,0x2e,0xf2,0x4c,0xc1,0xd6,0x21,0xb9,0x9d,0xdc,0x93,0xda,0xc8,0x3,0x18,0x78,0xb2,0x0,0x82,0x27,0x40,0xf0,0x64,0x18,0x60,0x32,0xf0,0x88,0x1,0x6,0xd1,0xf5,0xe4,0x11,0x65,0x25,0x8f,0x48,0x80,0x13,0xc1,0x92,0x18,0x84,0xd5,0x8,0xc,0xa6,0x9a,0x45,0xa1,0x12,0x83,0x10,0x5,0x83,0x4a,0x8e,0x81,0x8,0x20,0x0,0x2,0x37,0x1b,0x6,0x12,0x84,0x40,0x47,0x5b,0x5,0xa3,0xe9,0x40,0xbf,0x65,0xd0,0xc1,0x30,0xe1,0xf2,0xec,0x17,0xb4,0xd3,0x8b,0x5a,0xff,0xf5,0x4c,0x28,0x17,0x0,0x93,0x32,0xed,0xf8,0xef,0x6e,0x30,0xfe,0x7b,0x19,0x9c,0x0,0xb4,0x1,0x20,0xef,0xfd,0xb7,0x1,0x60,0xe6,0x27,0xee,0xdc,0xe2,0x1a,0xc8,0xb,0xe3,0x3f,0x3b,0xca,0xfb,0x14,0x8b,0xc5,0xef,0x55,0xb9,0x84,0x7c,0xaa,0x96,0x92,0x5f,0xe5,0x52,0xf2,0x2d,0x5f,0x4c,0xbe,0xa5,0xb,0x31,0xd,0xcc,0xe3,0xdb,0x2,0xff,0xfc,0xd9,0xe4,0x9f,0x3b,0x93,0xfc,0x31,0xd,0xf8,0x62,0x1a,0xf0,0xc1,0x34,0xe0,0x95,0xda,0x4d,0x5e,0x80,0xc0,0x2b,0x99,0xd5,0x41,0x5e,0x49,0xed,0xe4,0x95,0xd8,0x46,0x5e,0x9,0xc0,0x20,0x4e,0x40,0xe0,0x19,0xd3,0x28,0x8a,0x6e,0x20,0xcf,0x28,0x60,0x10,0x69,0x15,0x49,0xc,0x3c,0xc2,0x6b,0x35,0x18,0x58,0x6c,0x18,0xa8,0x20,0x38,0xc6,0xc0,0xcd,0xd1,0x89,0xc4,0x80,0xb1,0x40,0x28,0x70,0xb0,0xb8,0xb4,0xb,0xf4,0x6d,0x59,0xbc,0xf2,0xbf,0x5d,0x60,0xff,0xb5,0x4c,0x2c,0x17,0x0,0x93,0x32,0xbb,0x9,0x40,0x73,0x9b,0xaf,0x6d,0xec,0xd7,0xbc,0x42,0xaf,0x1d,0x0,0xb9,0xe2,0x7,0x4f,0x1,0x80,0xed,0xb7,0xd9,0x65,0xbb,0x68,0x2c,0xba,0x84,0x46,0x7e,0xb6,0xdf,0xf,0x47,0x79,0x5f,0x76,0xc4,0xc7,0xe2,0xf7,0x34,0x2f,0x27,0x4f,0xcb,0xa,0xf2,0x31,0xaf,0x20,0xdf,0xaa,0x65,0xe4,0x57,0xb1,0x84,0xfc,0xca,0x16,0x91,0x1f,0xb6,0x4,0xfe,0x85,0xf3,0x28,0x30,0x7f,0xe,0x5,0xe6,0xce,0xa2,0x80,0x6c,0x31,0xd,0xf8,0x64,0x8,0x8,0x7c,0xd2,0xba,0xc9,0x7,0x53,0x81,0x37,0x30,0xf0,0x6,0x4,0xde,0x89,0x80,0x20,0x1,0x10,0xc4,0xb7,0x92,0x57,0x5c,0xb,0x79,0xc5,0x36,0x93,0x57,0x8c,0xc4,0x20,0x5a,0xc5,0xc0,0x33,0xb2,0x5e,0x83,0x41,0x1d,0xc7,0xc0,0xc3,0xc1,0x74,0xe0,0xe,0xc,0xdc,0x43,0xec,0xb7,0xa,0x6e,0x72,0xab,0x60,0x7,0x42,0x90,0xa,0x82,0x9b,0x23,0x10,0x6c,0x28,0x14,0xde,0xcb,0x62,0xbc,0xcb,0xf4,0xff,0xdd,0x42,0xdd,0xef,0xeb,0xbf,0x36,0xbb,0xdf,0x73,0x1,0x30,0x29,0x33,0x4,0x40,0x7b,0x93,0x89,0x3c,0x19,0x65,0xfb,0x75,0x26,0xdf,0x9f,0xba,0x29,0x47,0x1d,0xfe,0xec,0xbf,0x22,0x71,0x2,0x30,0xa2,0x86,0xef,0xff,0xdd,0x13,0x9b,0xf8,0x25,0x3f,0x7f,0xb6,0xe7,0xc7,0x42,0xf7,0xc6,0xe2,0xf7,0xa8,0x59,0x45,0xee,0xb5,0xab,0xc8,0x13,0x8f,0x5e,0xc,0x82,0xea,0xe5,0x7c,0x1a,0xf0,0x2f,0x5b,0x8c,0x3f,0xb7,0x90,0x2,0x8a,0xe6,0x53,0x60,0xc1,0x5c,0xa,0xca,0x3,0x4,0x39,0x80,0x20,0x6b,0x3a,0xf9,0x65,0x62,0x22,0xc8,0xe8,0x23,0xdf,0xf4,0x5e,0x40,0x0,0xc,0x30,0x15,0xf8,0xa4,0x74,0x91,0x4f,0x52,0x27,0xf9,0x24,0x2,0x3,0x40,0xe0,0x1d,0x8f,0xe2,0xec,0x31,0xe0,0x31,0xc,0xa2,0x1a,0x44,0x91,0xc,0x4,0x2b,0x79,0x46,0xb0,0x14,0xc,0x10,0x30,0xf0,0x30,0x98,0xe,0x18,0x6,0xee,0x86,0xd3,0x81,0x3d,0x8,0x6e,0x41,0xac,0x12,0xbb,0x2d,0x83,0x9b,0xcc,0x1e,0x6,0x1d,0x10,0xfa,0xfc,0x1d,0x7c,0xae,0xc5,0x64,0xd4,0xdf,0x33,0xfa,0xf7,0x3b,0x9b,0xe1,0xdf,0x77,0x1,0x30,0x29,0xb3,0x7b,0xf2,0xcf,0xe8,0x13,0x7e,0x6e,0x76,0x67,0xb7,0xc5,0xd9,0x7f,0x37,0xec,0x49,0xdd,0x94,0xc5,0xaf,0x3c,0x1,0x68,0x6a,0x95,0xb8,0x4c,0x17,0x63,0x25,0xf7,0xe4,0x16,0x7e,0xc9,0xcf,0x1f,0x47,0x78,0x1f,0x1c,0xed,0xbd,0xd8,0xe2,0xb7,0xae,0x21,0xb7,0xfa,0xb5,0x78,0x5c,0x4b,0x9e,0xb5,0xab,0x81,0xc0,0x4a,0xf2,0xad,0x5e,0x41,0xfe,0x95,0xcb,0xc8,0xbf,0x7c,0x89,0x6,0x81,0x79,0x2,0x1,0x36,0xd,0xe4,0x60,0x5b,0x20,0x21,0xf0,0xe3,0x10,0x4c,0x23,0xdf,0xb4,0x5e,0xf2,0x4d,0xe9,0x26,0xdf,0xe4,0x2e,0xf2,0x5,0x4,0xbe,0x80,0xc0,0x27,0xa1,0x9d,0xa7,0x60,0xe0,0x1d,0xdb,0x82,0x9a,0xc9,0x3b,0x6,0x45,0xb,0xc,0xbc,0xa2,0x58,0xd8,0x9a,0x44,0x8a,0xe9,0x40,0xc1,0xc0,0x33,0xbc,0x4e,0x83,0x1,0xb2,0x61,0x60,0x3f,0x1d,0x8c,0xf,0x42,0x99,0x4,0x41,0x83,0x82,0x26,0xb7,0x40,0x75,0x6a,0xb0,0x21,0xa1,0x79,0x1c,0xb3,0x0,0x67,0xfe,0x4c,0x91,0xf8,0x73,0x77,0xf,0x83,0xb,0x80,0x49,0x99,0xb2,0xe7,0xd7,0x8f,0xff,0x72,0xdc,0x77,0x33,0xba,0xbc,0x25,0x1,0xe0,0x97,0xff,0x94,0x5b,0x80,0xc3,0xaa,0xc5,0xb5,0x7a,0x76,0xa6,0x3e,0xb5,0x43,0x9c,0xe5,0xc7,0xd1,0xdf,0xb,0x23,0xbf,0x7b,0xdd,0x1a,0x32,0x35,0xac,0x27,0x53,0xd3,0x6,0x32,0x35,0x6e,0x0,0x4,0xeb,0xc8,0x3,0xbf,0xe7,0xd,0x18,0x7c,0xcd,0x2,0x81,0x0,0x20,0x10,0x50,0xba,0x88,0x2,0x8b,0x17,0x50,0x10,0x43,0x20,0x7f,0x2e,0x5,0xe6,0xcd,0xb6,0x41,0x10,0x90,0x5,0x50,0x32,0xa7,0x93,0x3f,0x20,0xf0,0x3,0x4,0x7e,0xa9,0xbd,0xe4,0x97,0xd2,0x43,0x7e,0xc9,0xc0,0x20,0x49,0x62,0x90,0xd0,0x21,0x8a,0x7,0x8,0x71,0x6d,0xa8,0x95,0x7c,0x62,0x51,0xc,0x40,0x92,0x18,0xf0,0x6c,0x18,0x48,0x10,0x22,0xac,0x1a,0x10,0xec,0xa7,0x3,0xf,0xfd,0x74,0xa0,0x1,0xc1,0x7d,0x8a,0x11,0x8,0x3a,0x14,0xec,0x60,0x10,0x99,0x74,0x9f,0xab,0x8d,0x86,0xc3,0xb0,0x40,0xed,0xd4,0x31,0x5e,0x4e,0xe0,0x21,0x72,0x1,0x30,0xf9,0x4a,0xd1,0xdc,0xee,0x6b,0xf0,0x84,0x14,0x1b,0x0,0xba,0x9b,0x53,0xd8,0xcd,0x3f,0xd8,0x2,0xd8,0x0,0x98,0x52,0x26,0xae,0xc9,0xb3,0xf1,0x9f,0x5d,0xb6,0x4b,0xed,0xa4,0xa8,0x9a,0xe5,0x74,0xe2,0xd6,0x33,0x34,0xf2,0xd1,0x7f,0xa1,0x3d,0xc3,0xcf,0x90,0x6f,0xe7,0x36,0x32,0xb5,0x6c,0x22,0x53,0x33,0x6a,0xda,0x48,0x6e,0x0,0xc1,0x3,0xd3,0x80,0x77,0xcd,0x6a,0x20,0xb0,0x92,0xfc,0xab,0x96,0x53,0x60,0xf9,0x52,0xa,0x2c,0x5d,0xc,0x4,0x16,0x52,0x50,0xe1,0x7c,0xd,0x4,0x6c,0x22,0x0,0x6,0xd9,0xb3,0x38,0x4,0x1,0x80,0x20,0x20,0xa3,0x9f,0x2,0xd2,0xfa,0x28,0x20,0x75,0x1a,0xf9,0xa7,0x0,0x83,0x64,0x60,0x90,0xd4,0x8d,0xba,0xc8,0x2f,0xb1,0x93,0xfc,0x12,0x50,0x7c,0x7,0xf9,0xc5,0xb5,0x93,0x2f,0x30,0xf0,0x8d,0x6d,0xd3,0x60,0x80,0xa2,0x9b,0x6d,0x18,0xf0,0x24,0x6,0x5e,0x11,0x2c,0x75,0x3a,0x30,0x2,0xc1,0xc3,0x10,0x4,0x15,0x5,0x77,0x80,0xa0,0x34,0x1a,0x87,0x31,0xa0,0x18,0x5,0x47,0x19,0x16,0xba,0x3e,0x3d,0x1a,0xe3,0xe5,0x34,0x16,0x2e,0x0,0x26,0x65,0x76,0x97,0xfd,0x32,0xec,0xef,0x65,0x37,0xda,0x2,0xf8,0x64,0x63,0xf1,0xe7,0xf1,0xbb,0xff,0xf8,0xe5,0x3f,0xf6,0x24,0x1c,0x5,0x0,0x36,0xfe,0x27,0xb6,0xf0,0x1b,0x7b,0x52,0x5a,0xd7,0xd3,0xf,0x5f,0xfa,0x19,0xb1,0x8f,0xaf,0xff,0xf7,0x8b,0x14,0xd4,0xb7,0x87,0x4c,0x6d,0xdb,0x44,0xad,0x5b,0x0,0xc1,0x66,0x72,0x6f,0xd8,0x48,0xde,0xd6,0xf5,0xe4,0x53,0xb3,0x86,0x2,0xcc,0xab,0x29,0xa8,0x6a,0x25,0x5,0x95,0x2f,0x13,0x8,0x60,0x4b,0x10,0x54,0xb4,0x90,0x82,0xb,0xd9,0x44,0x0,0xc,0xf2,0xc5,0xd6,0x20,0x28,0x67,0x36,0x5,0x1,0x82,0xa0,0xac,0x99,0x14,0x94,0x31,0x83,0x2,0xd3,0xa7,0x53,0x60,0x5a,0x3f,0x2,0x6,0x29,0xd3,0x50,0x2f,0x5,0x0,0x3,0x7f,0x60,0xe0,0x9f,0xd8,0x45,0xfe,0x9,0xac,0x4e,0xf2,0xe7,0x18,0x48,0x10,0x62,0x19,0x8,0xad,0xe4,0x1b,0xc3,0x12,0x18,0xf0,0xa2,0x14,0x10,0x1a,0x46,0x81,0xe0,0x15,0xae,0x82,0xe0,0x19,0x36,0x1a,0x4,0x9e,0xd,0x5,0x3,0x18,0x6c,0x38,0xb0,0xa9,0x41,0x4c,0xe,0x2a,0x10,0x9a,0x82,0x2b,0x1c,0x60,0xa1,0x66,0xb2,0x55,0x66,0xdf,0xbd,0x81,0xe1,0x2,0x60,0x52,0x66,0x77,0xe9,0x4f,0x73,0x2,0x50,0x39,0xf,0xa0,0x0,0xe0,0x93,0xa3,0x3,0xa0,0x40,0x2,0x20,0x5e,0xfc,0x93,0xdf,0xa2,0x1b,0x5b,0x4f,0x1e,0x49,0x6d,0xfc,0xee,0xbe,0x94,0xf6,0x8d,0xf4,0xfc,0x4f,0x7e,0x2e,0x0,0x78,0xee,0x25,0xa,0x9a,0xbe,0x9f,0x4c,0x9d,0x3b,0x44,0xed,0xdb,0x81,0xc0,0x56,0x72,0x6b,0xde,0x42,0x1e,0x8d,0x2,0x1,0xdf,0xda,0xb5,0x14,0x68,0x5e,0x43,0xc1,0x40,0x20,0xb8,0x62,0x39,0x5,0x95,0x2d,0xa5,0xe0,0xd2,0x25,0x34,0xa5,0x78,0x31,0x5,0x17,0x2d,0x2,0x4,0xc0,0x0,0x10,0x4c,0xc9,0x9b,0x47,0xc1,0xb9,0x73,0x29,0x38,0x67,0xe,0x5,0x67,0xcd,0xa2,0xe0,0xcc,0x99,0x14,0xc,0x8,0x82,0x0,0x41,0x50,0x7a,0x3f,0x5,0x1,0x82,0xa0,0xd4,0x3e,0xa,0x4,0x6,0x81,0xc9,0xc0,0x20,0xa9,0x87,0x2,0x12,0xbb,0x45,0x36,0xc,0x14,0x10,0xda,0xc7,0x0,0xa1,0x89,0x83,0xe0,0x23,0xa7,0x3,0x91,0x16,0x4,0x5,0x5,0x1,0x82,0x27,0x40,0xf0,0xd4,0x9c,0x47,0xb0,0x87,0x41,0x3b,0x31,0x18,0x1,0xa1,0x3b,0xcf,0x10,0xa2,0x20,0xa1,0x62,0xa1,0xcf,0x14,0x2c,0xb0,0x30,0xf1,0xca,0xc7,0x69,0x2c,0x20,0x6c,0xb9,0x0,0x98,0x94,0x39,0x2,0xc0,0xf6,0xc4,0x14,0xed,0x2d,0xa9,0xf6,0x0,0xd8,0x5e,0x3,0x80,0x5d,0x3a,0x8b,0xc4,0x5e,0x99,0xdd,0xad,0x97,0xdc,0xce,0x9f,0xec,0x93,0xd2,0xb1,0x49,0x3,0xc0,0x4f,0x28,0x68,0xd6,0x41,0x32,0xf5,0xec,0x46,0x98,0x4,0xba,0xf1,0xd8,0xb1,0x13,0xd3,0xc0,0x76,0x20,0xb0,0x15,0x8,0x6c,0x22,0x1f,0xeb,0x6,0xf2,0xaf,0x5d,0x47,0x81,0x16,0x86,0xc0,0x2a,0xa,0xae,0x5c,0x41,0x53,0xca,0x97,0xd3,0x94,0xb2,0x65,0x34,0xa5,0x64,0x29,0x87,0x60,0xa,0x20,0x8,0x29,0x58,0x48,0x21,0xf9,0x2,0x82,0x10,0x40,0x10,0x92,0x3d,0x87,0x42,0xb2,0x66,0xd3,0x94,0xcc,0x59,0x34,0x25,0x63,0x26,0x9a,0x41,0xc1,0xc0,0x20,0x38,0xd,0xa5,0xf6,0x53,0x70,0xa,0x40,0x48,0x9e,0xc6,0xb,0x4c,0xea,0x45,0xf6,0x20,0x4,0x18,0x80,0xe0,0xa7,0x3,0xc1,0x57,0x33,0x21,0x8,0x10,0x34,0x28,0xe8,0x40,0x50,0x12,0x28,0xa8,0x30,0x78,0xda,0xc1,0xa0,0xa6,0x9e,0x70,0xd4,0x9e,0x78,0xb4,0x4f,0xdc,0xc0,0xa4,0xcd,0x18,0x9,0x93,0x3e,0xa7,0x70,0xb0,0x1,0xe1,0x2,0x60,0x52,0xa6,0x3f,0xfb,0xaf,0x5,0x40,0xb9,0xe5,0xd7,0x76,0xdb,0x6a,0x96,0xf8,0xb5,0x2,0x40,0xa0,0xfa,0x1c,0x0,0x76,0x5,0x80,0xed,0xff,0xd9,0x5d,0x7c,0xec,0x1e,0x80,0xe4,0xae,0x2d,0x2a,0x0,0xcf,0x3,0x80,0x39,0xf,0x91,0x69,0xda,0x3e,0x32,0xf5,0xed,0x13,0x8f,0xc,0x82,0xce,0x5d,0x40,0x60,0x7,0xb9,0x3,0x1,0xaf,0xc6,0xcd,0xe4,0x6b,0xdd,0x48,0x1,0xb5,0xeb,0x29,0xc8,0xb2,0x96,0xa6,0x54,0xaf,0xa6,0x90,0xca,0x55,0x34,0xa5,0x62,0x25,0x85,0x0,0x82,0x90,0xd2,0x65,0x14,0x2,0x8,0x42,0x1,0x41,0x68,0xe1,0x22,0xa,0x5,0x4,0xa1,0xf9,0xb,0x28,0x34,0x77,0x3e,0x85,0xe6,0xcc,0xa3,0xd0,0x6c,0x15,0x83,0x10,0x60,0x10,0x92,0x81,0xd2,0x67,0x52,0x48,0xda,0xc,0x9a,0x92,0x3a,0x1d,0x31,0xc,0xb4,0x20,0xf4,0x52,0x10,0x3,0x21,0xb1,0x7,0x75,0x53,0x60,0x2,0xb,0x20,0x0,0x83,0x0,0x60,0xe0,0x1f,0xc7,0x62,0x18,0x8,0x10,0xfc,0x80,0x81,0x9f,0x6,0x4,0x5f,0x1b,0x8,0x2,0x5,0x1f,0x1d,0xa,0xf6,0x30,0x58,0x35,0x30,0x68,0x71,0x50,0x91,0xf0,0x98,0xaa,0xa4,0xc5,0xc1,0xa2,0xc3,0x41,0x7b,0x23,0x93,0x26,0x3d,0x10,0x0,0xc1,0x64,0xcb,0x69,0x18,0x5c,0x0,0x4c,0xca,0xec,0x0,0xd0,0x3d,0x35,0x55,0x2,0xe0,0xa6,0xbc,0x82,0x8e,0xdd,0x6b,0xff,0x17,0x8a,0x2d,0x0,0x3,0x80,0x5d,0x2,0x8c,0x62,0x37,0x0,0xb5,0x90,0x17,0xf6,0xff,0xde,0x39,0xd3,0x29,0xa9,0x67,0x1b,0x0,0xf8,0x85,0x4,0xe0,0x65,0xa,0x9a,0x7f,0x94,0x4c,0xd3,0xf,0x20,0x4c,0x2,0xfd,0x78,0xec,0xc5,0x96,0xa0,0x7b,0x2f,0x26,0x81,0x5d,0xe4,0xd6,0xba,0x83,0x3c,0x9a,0xb7,0x91,0x4f,0xe3,0x16,0xa,0xb0,0x6e,0xa2,0xa0,0xda,0xd,0x34,0xc5,0xb2,0x9e,0x42,0xaa,0xd7,0x52,0x48,0xd5,0x1a,0xa,0x5,0x4,0xa1,0xe5,0x2b,0x29,0xb4,0x6c,0x39,0x85,0x2,0x82,0xa9,0xc5,0x4b,0x69,0x6a,0xd1,0x12,0x9a,0x5a,0xb8,0x98,0xa6,0x16,0x2c,0xa2,0xa9,0x79,0xb,0x69,0x6a,0xee,0x2,0x34,0x9f,0xa6,0x2,0x83,0xa9,0xc0,0x20,0x34,0x6b,0xe,0x85,0x66,0xa2,0x8c,0xd9,0x14,0x9a,0x3e,0xb,0x31,0xc,0x34,0x20,0x0,0x3,0x56,0x70,0x72,0x1f,0x9a,0x46,0xc1,0xc0,0x20,0x28,0x91,0xd5,0x43,0x41,0x12,0x83,0xc0,0x78,0x16,0x40,0x88,0x63,0x9,0x10,0xfc,0x63,0x59,0xc,0x4,0x5,0x5,0x6,0x82,0x8a,0x82,0xaf,0xe,0x5,0x1f,0xdb,0xf6,0x41,0xb,0xc3,0x68,0x1c,0x3c,0x6d,0x38,0xd8,0x3,0xe1,0xa1,0xc3,0xc1,0xdd,0x6,0xc3,0x68,0x1c,0xdc,0xc6,0x80,0x81,0x3f,0x39,0x6a,0x6c,0x18,0x5c,0x0,0x4c,0xca,0x8c,0x5e,0xe3,0x5f,0x77,0xcf,0xbf,0x9b,0x72,0x6f,0xba,0x72,0x2e,0x40,0x1,0x80,0x9f,0x0,0x94,0x0,0xf0,0x1b,0x80,0x5a,0xc9,0x3b,0xbd,0x9b,0xbc,0x72,0x19,0x0,0xdb,0xe9,0xf9,0x97,0x35,0x0,0x2c,0x3c,0x4e,0xa6,0x99,0x87,0xd0,0x61,0x32,0xcd,0xc0,0x34,0xd0,0x87,0xcf,0x7b,0x1,0x41,0x97,0x44,0xa0,0x6d,0x27,0x79,0x35,0x6f,0x27,0xff,0xc6,0x6d,0x14,0x58,0xbf,0x85,0x82,0x6b,0x37,0x51,0x48,0xcd,0x6,0xa,0x31,0xaf,0xa3,0x50,0x40,0x10,0x5a,0xb9,0x9a,0xa6,0x56,0xac,0xa2,0xa9,0x80,0x60,0x6a,0xe9,0xa,0xa,0x2b,0x59,0x4e,0x61,0x80,0x20,0xac,0x8,0x15,0x2c,0xa1,0xf0,0xfc,0x45,0x14,0x96,0xc7,0x5a,0x48,0x61,0xc0,0x20,0x2c,0x67,0x3e,0x85,0x65,0xcf,0xa3,0xb0,0x2c,0x80,0x90,0x39,0x17,0xcd,0xa1,0xa9,0xc,0x3,0x5,0x4,0x60,0xc0,0xa,0x49,0x9d,0x41,0x21,0x29,0xd3,0x11,0x40,0x48,0x66,0xf5,0xd1,0x94,0x24,0x1,0x42,0xb0,0x6,0x4,0x9e,0x4,0x21,0x50,0x82,0xc0,0x93,0x20,0xf8,0xc7,0xa8,0x53,0x82,0x5f,0x34,0xab,0x85,0x27,0x50,0x30,0x82,0x41,0x3b,0x31,0x34,0x68,0x60,0xa8,0xd7,0xc0,0x60,0x35,0x84,0xc1,0x83,0x35,0x55,0x85,0xc1,0xdd,0xe,0x6,0x5,0x3,0x25,0x5,0x3,0x91,0x89,0x63,0x20,0xb3,0x3,0xa1,0xd2,0x5,0xc0,0xa4,0xcc,0xee,0x55,0x7f,0x8c,0x0,0xc8,0x13,0x77,0xfd,0xf1,0x29,0x40,0xde,0x2,0x2c,0xdf,0xfc,0x83,0xdf,0x1e,0x2b,0x9f,0x5,0xc8,0x0,0x60,0x4f,0xdc,0xf1,0xce,0xe8,0x21,0xef,0xbc,0x99,0x94,0xd4,0xbb,0x43,0x5,0xe0,0x87,0x0,0x60,0xf1,0x49,0x32,0xcd,0x3e,0x82,0x8e,0x92,0x69,0x16,0x1e,0x67,0x0,0x82,0xfe,0x43,0x62,0x12,0xe0,0x8,0xec,0x26,0x77,0x20,0xe0,0xdd,0xbc,0x43,0x45,0xa0,0x8e,0x21,0xb0,0x91,0x42,0x30,0xd,0x84,0x56,0xaf,0xa3,0xa9,0x55,0x6b,0x29,0xac,0x62,0xd,0x85,0x95,0xaf,0xa2,0xf0,0xb2,0x95,0x14,0xe,0x8,0xc2,0x8b,0x97,0x53,0x78,0xd1,0x32,0xa,0x2f,0x5c,0x4a,0x11,0x1c,0x82,0xc5,0x14,0x9e,0xc7,0x5a,0x44,0xe1,0xb9,0xb,0x29,0x3c,0x67,0x1,0x85,0x67,0xcf,0xa7,0xf0,0xac,0xf9,0x1c,0x83,0xb0,0xac,0xb9,0x14,0x6,0x10,0xc2,0x32,0x4,0x8,0x53,0xd3,0x51,0xda,0x2c,0x4,0x10,0x80,0x41,0x68,0xa,0xb,0x20,0x0,0x83,0x10,0xd,0x8,0x1c,0x85,0x44,0x86,0x2,0x3,0xa1,0xc7,0x6,0x82,0x16,0x85,0x40,0xe,0x82,0x40,0x81,0xc3,0x10,0xd3,0x26,0xd3,0xa3,0xd0,0x22,0x51,0xd0,0xc0,0x10,0xa9,0x83,0x21,0x42,0xa4,0xa2,0x50,0x2f,0x41,0x18,0x8d,0x82,0x87,0xe,0x5,0x77,0x5,0x85,0x50,0x75,0x52,0xd0,0x83,0x60,0x62,0xd9,0x83,0xe0,0x2,0x60,0x52,0x36,0xe,0x0,0xfc,0x84,0x1f,0x7b,0x92,0xc9,0x28,0x0,0x8a,0xc4,0x33,0xe8,0xd8,0x53,0x6b,0xc3,0xb0,0x2f,0x8d,0xb1,0xf2,0x2b,0x0,0x3e,0x99,0xd3,0xc8,0xbb,0x60,0x36,0x25,0xf5,0xed,0xd2,0x0,0xf0,0x53,0xa,0x5a,0x7a,0x9a,0x4c,0x73,0x8f,0x21,0x4c,0x2,0x73,0x8e,0xb,0x8,0x18,0x2,0x7d,0xec,0xe4,0xa0,0x44,0xa0,0x9d,0x21,0xb0,0xb,0x8,0xec,0x4,0x2,0xdb,0x29,0xa8,0x7e,0x2b,0x4d,0xa9,0xdb,0x4c,0x21,0x98,0x6,0x42,0x2d,0x1b,0x68,0xaa,0x79,0x3d,0x85,0x55,0xad,0xa3,0xb0,0xca,0xb5,0x14,0xe,0x8,0x22,0xca,0x56,0x53,0x44,0xe9,0x2a,0x8a,0x28,0x59,0x49,0x11,0xc5,0x2b,0x28,0xb2,0x68,0x39,0x45,0x16,0x2e,0x3,0x4,0x4b,0x29,0x32,0x7f,0x9,0x2f,0x2,0x18,0x44,0xe4,0x2e,0xa2,0x88,0x9c,0x85,0xa2,0xec,0x5,0x48,0x80,0x10,0x9e,0x39,0xf,0xcd,0xa5,0xf0,0xc,0xd6,0x1c,0xa,0x3,0x6,0x61,0x1a,0x10,0xa6,0xa6,0x2a,0x28,0x4c,0x17,0x53,0x2,0x47,0x81,0x81,0x20,0x51,0x48,0x14,0x53,0x42,0x30,0x40,0x8,0xb6,0xa1,0xa0,0xc0,0xa0,0xa2,0x10,0x18,0xa7,0x45,0x61,0xc,0x18,0x6c,0x28,0xc8,0xf3,0xb,0x91,0x4d,0x12,0x4,0xc7,0x28,0x78,0x1a,0xa0,0xa0,0x82,0x50,0x2b,0x31,0xa8,0xb1,0xdb,0x36,0xb8,0x69,0x32,0x29,0x18,0x84,0x56,0xbb,0x0,0x98,0x94,0x19,0x5e,0x1,0xd0,0xbc,0xe0,0x87,0xbc,0xe9,0xc7,0xf6,0x5c,0x77,0x6,0x40,0x80,0x32,0x1,0x94,0xd9,0x5e,0x5,0xc8,0x3d,0xb6,0x81,0x3c,0x93,0xdb,0xc9,0x37,0xab,0x8f,0x3f,0xdf,0x3f,0xa9,0x7f,0x37,0x0,0xf8,0xa5,0x0,0xe0,0x47,0x0,0x60,0xf9,0x59,0x32,0xcd,0xc7,0x14,0xb0,0xe0,0xa4,0x78,0x9c,0x7b,0x42,0x20,0x30,0x9d,0x9d,0x1c,0x4,0x2,0xdd,0xec,0x32,0xe1,0x3e,0x4c,0x2,0x7b,0xc8,0xa3,0x6d,0x37,0xf9,0x0,0x81,0x0,0x20,0x30,0x5,0x8,0x84,0x58,0xb7,0x0,0x81,0xcd,0x34,0x15,0xd3,0x40,0x98,0x79,0x3,0x85,0x57,0xaf,0xa7,0xf0,0xca,0x75,0x14,0x51,0xb1,0x96,0x22,0xca,0xd7,0x50,0x24,0x20,0x88,0x4,0x4,0x51,0x80,0x20,0xaa,0x78,0x25,0x20,0x58,0x41,0x51,0x85,0xcb,0x29,0xaa,0x60,0x99,0x28,0x7f,0x29,0x45,0xe5,0x1,0x4,0x56,0xee,0x62,0x8a,0xcc,0x59,0x24,0xca,0x96,0x20,0x64,0xa1,0xcc,0xf9,0x68,0x9e,0xc4,0x40,0x1,0x1,0xa5,0x1,0x5,0x80,0x10,0x96,0x2a,0x40,0x98,0x9a,0x22,0xa7,0x84,0xe4,0xe9,0x8,0x20,0x24,0xb1,0xfa,0x78,0x53,0x12,0x5,0xa,0x53,0x12,0x54,0x14,0x82,0xe3,0x35,0x28,0xc4,0xb1,0x24,0xc,0xb1,0x4e,0x4e,0xb,0x36,0x10,0x9a,0x25,0x8,0x4d,0x12,0x84,0x46,0xd,0x8,0x2,0x5,0x4f,0x2d,0x8,0x1c,0x82,0xb1,0x31,0x70,0xe3,0x29,0x10,0x98,0x5d,0x0,0x4c,0xca,0x8c,0x0,0xd0,0xbe,0xe2,0x8f,0xf2,0xc4,0x1f,0xe5,0x44,0xa0,0xe6,0x29,0xc0,0xfc,0x85,0x35,0xd8,0xd3,0x6a,0xc3,0xb1,0xef,0x8c,0x6d,0xe4,0x4f,0xdf,0xf5,0x65,0x4f,0xe9,0x2d,0x9c,0x47,0x49,0xd3,0xf7,0xd2,0xf3,0x3f,0x55,0x0,0xf8,0x5f,0xa,0x5a,0x79,0x8e,0x4c,0xb,0x31,0x5,0x2c,0x3a,0x2d,0x1e,0x17,0x9c,0x12,0x8,0xcc,0x2,0x2,0xfd,0x98,0x4,0x7a,0x19,0x2,0x7,0x38,0x2,0x6e,0x1d,0x7b,0xc9,0xb3,0x75,0x37,0xf9,0x1,0x81,0xe0,0xc6,0x1d,0x14,0x52,0xbf,0xd,0x8,0x6c,0xa5,0x50,0x8e,0xc0,0x66,0xa,0x37,0x6f,0xa4,0x88,0xea,0xd,0x14,0x51,0xb5,0x9e,0x22,0x1,0x41,0x64,0xc5,0x3a,0x8a,0x2a,0x5f,0x4b,0x51,0x65,0x6b,0x80,0xc0,0x6a,0x8a,0x66,0x15,0xaf,0xa2,0xe8,0xa2,0x95,0x14,0x5d,0xb8,0x2,0x2d,0xa7,0xe8,0x2,0x94,0xcf,0x30,0x40,0x79,0x2,0x84,0xa8,0x5c,0x94,0xb3,0x18,0x31,0xc,0x4,0x8,0x91,0x59,0x5a,0x10,0x50,0xc6,0x3c,0x4,0x10,0xd2,0x59,0x73,0x28,0xdc,0x6,0x82,0x40,0x21,0x2c,0x45,0xa0,0x30,0x15,0x20,0x4c,0x95,0x28,0x84,0x26,0xb1,0x80,0x42,0x22,0x6b,0x1a,0x7,0x41,0xc4,0x40,0xd0,0xa0,0x10,0x27,0x50,0x8,0xd4,0xa3,0x80,0x29,0x21,0x40,0x33,0x29,0x8,0x10,0x5a,0x25,0x8,0x1a,0x14,0xb4,0x20,0x44,0x34,0x4a,0x8,0x1a,0x46,0x4d,0x7,0x1e,0xe1,0xa,0x6,0x75,0x86,0x18,0x8,0x8,0x2c,0x2e,0x0,0x26,0x65,0xb6,0x3b,0x1,0x15,0x0,0xb2,0xec,0xee,0xfa,0x73,0x4,0x80,0x1b,0x7,0xa0,0x42,0xbc,0xf2,0x4e,0xb8,0xb8,0x7,0xc0,0x2b,0xb5,0x8b,0xfc,0x72,0xa6,0xf3,0x57,0xfd,0x49,0x9a,0xb9,0x5f,0x5,0xe0,0x7f,0x0,0xc0,0xea,0xf3,0x64,0x5a,0x82,0x29,0x60,0xe9,0x0,0x1e,0xd1,0x22,0x36,0x11,0x0,0x81,0x39,0x40,0x60,0xa6,0x82,0xc0,0x21,0x89,0xc0,0x7e,0x72,0x6f,0xdf,0x4b,0x3e,0x40,0x20,0xa0,0x79,0x17,0x4d,0x61,0x8,0x34,0x6c,0x7,0x2,0xdb,0x68,0x6a,0xed,0x56,0xa,0xab,0xd9,0x42,0x11,0x96,0x4d,0x40,0x60,0x13,0x45,0x56,0x6d,0xa4,0xa8,0xca,0xd,0x14,0x55,0xb1,0x9e,0xa2,0xcb,0xd7,0x51,0x74,0xd9,0x5a,0x8a,0x2e,0x65,0xad,0xe1,0x10,0xc4,0x14,0xa3,0xa2,0x55,0x14,0x53,0xb8,0x92,0xc7,0x41,0xe0,0x18,0xa0,0xbc,0x65,0xa2,0xdc,0xa5,0x68,0x9,0x45,0xe7,0x28,0x20,0x20,0x80,0x10,0x95,0xc5,0x40,0x40,0x99,0xb,0x44,0x19,0xf3,0x11,0x40,0x48,0x67,0xcd,0xa5,0x88,0xb4,0x39,0xbc,0xf0,0xd4,0xd9,0x68,0x16,0x8f,0x81,0xc0,0x4b,0x96,0x28,0x24,0xb1,0x0,0x42,0x22,0x4b,0x80,0x10,0x92,0xc0,0x92,0x28,0xc4,0x8f,0x46,0x41,0x60,0xd0,0x29,0x27,0x84,0xe,0x89,0xc1,0xd8,0x20,0xf8,0x44,0x36,0xdb,0x61,0xe0,0x70,0x32,0x60,0x20,0x68,0x30,0x70,0xf,0xb3,0x61,0xe0,0x2,0x60,0x52,0xe6,0x14,0x0,0x79,0x1a,0x0,0x72,0x5,0x0,0x41,0xc5,0xfc,0xb9,0xf3,0xfc,0x4,0x20,0x0,0xf0,0x88,0xc7,0xf,0x5f,0x5a,0x37,0xf9,0xe7,0xce,0x20,0xbf,0x92,0x85,0x94,0x3c,0xeb,0x80,0x6,0x80,0xff,0xa3,0xa0,0xb5,0x17,0xc9,0xb4,0x6c,0x10,0x9d,0x13,0x2d,0xc1,0xe7,0xb,0xcf,0x90,0x69,0x1e,0x10,0x98,0x7d,0x9c,0x4c,0x33,0x80,0x40,0x1f,0x43,0x0,0x5b,0x82,0xee,0x83,0xe4,0x6,0x4,0xbc,0x80,0x80,0x5f,0xeb,0x1e,0xa,0x6c,0xde,0xd,0x4,0x76,0x1,0x81,0x1d,0x34,0xd5,0xba,0x9d,0xc2,0xea,0xb6,0x51,0x78,0xcd,0x56,0x20,0xb0,0x85,0x22,0xcd,0x9b,0x29,0xa,0x10,0x44,0x3,0x82,0x68,0x40,0x10,0x53,0x81,0xca,0xd7,0x53,0x4c,0xd9,0x3a,0x8a,0x29,0x65,0xad,0xa5,0xd8,0x92,0x35,0x14,0x5b,0x8c,0x8a,0x18,0x6,0xa8,0x50,0x80,0x10,0x5b,0x0,0x14,0xa,0x56,0x50,0xc,0x30,0xe0,0x1,0x3,0x1e,0x40,0x60,0x31,0x10,0xa2,0x81,0x41,0x74,0x36,0x6b,0x11,0x45,0x67,0x1,0x85,0xcc,0x85,0x68,0x1,0x45,0x65,0xb0,0x0,0x2,0x30,0x10,0xcd,0xa5,0xc8,0x34,0x89,0x42,0x2a,0xb,0x28,0xa4,0xcc,0x92,0x9,0x10,0x38,0xa,0x49,0x5a,0x14,0xfa,0x44,0x9,0x1a,0x14,0x80,0x1,0x47,0x21,0x8e,0x61,0x60,0x0,0x42,0x4c,0x87,0x8a,0x41,0xf4,0xd8,0x18,0xf8,0x18,0x4c,0x6,0x9e,0x86,0x93,0x1,0x87,0xc0,0x5,0xc0,0xa4,0xcc,0x9,0x0,0x4c,0x76,0x0,0xe4,0xd9,0x0,0xe0,0xfb,0x7f,0x36,0x1,0x44,0x8,0x0,0xd8,0xb,0x78,0x4,0xe4,0xcf,0x26,0xbf,0xd2,0x45,0x94,0x3c,0xfb,0x20,0x0,0xf8,0x95,0x0,0xe0,0xc7,0x0,0x60,0xc3,0x65,0x32,0xad,0xbc,0x80,0x0,0xc1,0xa,0x86,0x1,0x3e,0x5f,0xc,0x4,0x16,0x0,0x81,0xb9,0x40,0x60,0x16,0x26,0x81,0xe9,0xc,0x81,0x23,0x64,0xea,0x1,0x2,0x5d,0x7,0xc9,0xbd,0xf3,0x0,0x79,0xb7,0xef,0xa3,0x80,0xd6,0xbd,0x14,0xc,0x4,0x42,0x80,0x40,0x68,0xc3,0x4e,0xa,0xb3,0xee,0xa0,0xf0,0xba,0xed,0x14,0x51,0xb3,0x8d,0x22,0x2d,0x5b,0x29,0xca,0xbc,0x85,0xa2,0xab,0x37,0x3,0x81,0x4d,0x14,0x53,0x89,0x2a,0x36,0x52,0x6c,0xf9,0x6,0x51,0xd9,0x7a,0x8a,0x5,0x4,0xb1,0x25,0xeb,0x28,0xae,0x4,0x18,0x14,0xaf,0x95,0x18,0xac,0xa1,0x38,0x60,0x10,0x57,0xc8,0x5a,0x5,0xc,0x56,0x71,0x10,0x62,0xf3,0x59,0x2b,0x28,0x36,0x8f,0xb5,0x9c,0x62,0x73,0x19,0x8,0x28,0x7,0x28,0x64,0x2f,0x91,0x1,0x84,0x2c,0x94,0x9,0x14,0x0,0x2,0x4b,0x80,0x80,0xd2,0xe7,0x23,0x89,0x42,0x9a,0x16,0x85,0xd9,0x62,0x52,0xb0,0x81,0xa0,0x47,0x41,0xf,0x2,0xc3,0x40,0xf,0x2,0xb6,0xc,0xb1,0x5d,0x1c,0x83,0x40,0x89,0x41,0x80,0x1,0x6,0xbe,0x76,0x18,0xc8,0x6d,0x42,0x84,0x3d,0x6,0x2,0x82,0x7a,0x20,0xc0,0x26,0x2,0x3e,0x15,0xb8,0x0,0x98,0x94,0x8d,0x3a,0x7,0xa0,0xb9,0xfd,0xd7,0x6e,0xb,0x90,0xa7,0xbe,0x4,0x38,0x7,0x40,0xde,0x2,0xcc,0x1,0xa8,0xe1,0x0,0xf8,0x66,0x4c,0xa3,0x0,0xf6,0x3a,0x7f,0xe5,0x4b,0x28,0x79,0xee,0x43,0x1a,0x0,0x7e,0x46,0x41,0x1b,0xaf,0x91,0x69,0xd5,0x25,0x32,0xad,0x6,0x4,0xab,0xd0,0xa,0x7c,0xbe,0xc,0xdb,0x82,0x45,0x40,0x60,0x3e,0x10,0x98,0xd,0x4,0x66,0x2,0x81,0xfe,0x63,0x64,0x9a,0xc6,0x10,0x38,0x4c,0x6e,0x5d,0x87,0xc8,0xab,0xe3,0x0,0xf9,0xb7,0xed,0xa3,0x40,0x20,0x30,0xa5,0x79,0xf,0x10,0xd8,0x4d,0x53,0x1b,0x76,0x51,0xb8,0x75,0x27,0x45,0xd4,0xed,0xa0,0xc8,0xda,0xed,0x14,0x5,0x8,0xa2,0xcd,0x5b,0x81,0xc0,0x56,0x8a,0xa9,0xde,0x42,0x31,0x55,0x9b,0x29,0x16,0x10,0xc4,0x56,0xa0,0xf2,0x8d,0x14,0xc7,0x2a,0xdb,0x40,0x71,0xa5,0xac,0xf5,0x80,0x80,0x5,0x10,0x8a,0x51,0xd1,0x5a,0x51,0xe1,0x1a,0x19,0x40,0x28,0x60,0xad,0xa2,0xb8,0x7c,0xd6,0x4a,0x8a,0x3,0x6,0x71,0xb9,0x0,0x21,0x77,0xb9,0x28,0x67,0x19,0x5a,0x4a,0xb1,0xd9,0x1a,0x14,0x0,0x42,0x8c,0x16,0x85,0x8c,0x85,0x1a,0x10,0x24,0xa,0xa,0x8,0xa9,0x72,0x4a,0x48,0x51,0xa7,0x4,0x5,0x4,0xdb,0x84,0x20,0xb7,0xc,0xa1,0x9,0x7d,0x62,0x3a,0x50,0x30,0x88,0x13,0x18,0x4,0x3b,0x81,0x81,0x2f,0xb,0x10,0xf8,0xb0,0x94,0x2d,0x82,0x63,0x8,0x5c,0x0,0x4c,0xca,0x1c,0x9d,0x4,0xf4,0xb1,0x7,0xc0,0xb6,0xd,0x60,0xcf,0x2,0xe4,0x0,0x94,0xaa,0x0,0x44,0x2,0x80,0x84,0x66,0xf2,0xcb,0x9c,0x46,0x81,0x85,0xf3,0xc8,0xaf,0x62,0x29,0x25,0xcf,0x3,0x0,0xff,0xab,0x1,0x60,0xf3,0x75,0x32,0xad,0xc1,0xc2,0x5f,0x7b,0x5,0x8f,0x57,0x24,0x2,0x98,0x4,0x96,0x0,0x81,0x85,0x3,0x98,0x2,0x80,0xc0,0x2c,0x20,0x30,0x3,0x8,0xf4,0x1,0x81,0xde,0x23,0xe4,0xd6,0x7d,0x98,0x3c,0x81,0x80,0x5f,0xc7,0x41,0xa,0x68,0xdb,0x4f,0xc1,0x2d,0xfb,0x28,0xa4,0x79,0x2f,0x85,0x36,0xee,0xa1,0xb0,0x86,0xdd,0x40,0x60,0x17,0x45,0xd6,0xed,0xa4,0xa8,0xda,0x1d,0x14,0x5d,0xb3,0x9d,0x62,0x2c,0xdb,0x28,0xc6,0xbc,0x8d,0x62,0x1,0x41,0x6c,0xd5,0x56,0x8a,0xab,0xdc,0x82,0x36,0x53,0x5c,0x5,0x2a,0xdf,0x44,0xf1,0xac,0xb2,0x8d,0x14,0x5f,0xca,0xda,0x40,0xf1,0x25,0xac,0xf5,0x14,0x5f,0xcc,0x5a,0x27,0x2a,0x42,0x85,0x6b,0x45,0x5,0x6b,0xd0,0x6a,0x11,0x30,0xe0,0xe5,0xad,0xe4,0x31,0x10,0x44,0xcb,0x29,0x2e,0x47,0xa2,0x90,0x2d,0x50,0x88,0xcd,0x5a,0xc2,0x8b,0xc9,0x4,0xa,0x0,0x81,0xc5,0x40,0x88,0xe6,0x20,0x48,0x14,0xd2,0xe6,0xf1,0x22,0x53,0x81,0x82,0xdc,0x32,0xd8,0x40,0x48,0x96,0x13,0x42,0xd2,0xc,0xe7,0x30,0x88,0x65,0x18,0x74,0xf2,0x2,0x63,0x34,0xe7,0xc,0xb4,0x53,0x81,0x2,0x1,0xa6,0x2,0x6f,0x23,0x8,0x22,0xea,0x5d,0x0,0x4c,0xca,0xc,0x1,0xc8,0xb6,0xbd,0x34,0xb5,0x9b,0xbc,0x11,0x48,0x1,0xc0,0x4d,0xb9,0xb,0x30,0x58,0xbc,0xd,0x18,0x7f,0x4d,0x7e,0x0,0xc0,0x5e,0xb9,0xd7,0x3f,0xab,0x9f,0x3,0xe0,0x5b,0xb1,0x8c,0x92,0xe7,0x1f,0x56,0x1,0x78,0x1,0x0,0x6c,0xb9,0x49,0xa6,0x75,0x57,0xc9,0xb4,0xfe,0x9a,0x68,0x2d,0x3e,0x5f,0x9,0x4,0x96,0x1,0x81,0xc5,0xe7,0x30,0x5,0x0,0x81,0x39,0x12,0x81,0xe9,0x2a,0x2,0x1e,0x40,0xc0,0xa7,0xf3,0x10,0xf9,0x3,0x81,0xc0,0xb6,0x3,0x14,0xd2,0xb2,0x9f,0x42,0x9b,0xf6,0xd2,0x54,0x20,0x10,0xde,0xb0,0x87,0x22,0xac,0xbb,0x29,0xaa,0x6e,0x17,0x45,0xd7,0xee,0xa4,0x98,0x9a,0x1d,0x40,0x60,0x7,0xc5,0x9a,0xb7,0x3,0x81,0x6d,0x14,0x57,0xc5,0x62,0x10,0x6c,0xa5,0xf8,0x8a,0x2d,0xa2,0xf2,0xcd,0xbc,0x84,0xb2,0x4d,0x22,0x60,0xc0,0x2b,0x61,0x6d,0xa0,0x84,0x62,0xd6,0x7a,0x4a,0x28,0x62,0xad,0xa3,0x84,0x42,0xd6,0x5a,0x4a,0x28,0x60,0xad,0xa1,0x84,0x7c,0xd6,0x6a,0x9e,0x0,0x41,0xa2,0x90,0xcb,0x5a,0xc1,0x31,0xe0,0x65,0x2f,0x13,0x65,0x49,0x10,0x32,0x59,0x12,0x84,0xc,0x16,0x40,0x0,0x6,0xac,0xa8,0x34,0x9,0x82,0xc4,0x20,0x32,0x45,0x4e,0x7,0xc9,0x2,0x83,0x70,0x40,0x30,0x1a,0x83,0x69,0x3a,0xc,0xba,0xc5,0x36,0x41,0x62,0xc0,0x20,0xb0,0x61,0x30,0x16,0x4,0xea,0x79,0x2,0x17,0x0,0x93,0x32,0xbb,0x57,0x2,0xd2,0x3,0x80,0x5,0xef,0x9b,0x2f,0x0,0x90,0x2f,0x4f,0xad,0xbc,0xe,0x80,0x0,0xa0,0x4a,0x2,0x50,0x6b,0x3,0x80,0xbd,0xac,0x97,0x6f,0xd5,0x72,0x4a,0x5e,0x70,0x54,0x3,0xc0,0xcf,0x29,0x68,0xdb,0x30,0x99,0x36,0x60,0xa,0xd8,0x78,0x43,0x3c,0x32,0x4,0x56,0x5f,0x11,0x5b,0x1,0x3e,0x5,0x0,0x81,0x79,0x12,0x81,0x99,0x2a,0x2,0x6e,0xbd,0x47,0xc9,0xb,0x8,0xf8,0x75,0x3e,0x44,0x1,0xed,0x7,0x29,0xb8,0xf5,0x0,0x85,0x72,0x4,0xf6,0x51,0x58,0xe3,0x5e,0x8a,0x0,0x2,0x91,0x1c,0x81,0xdd,0x40,0x60,0x17,0x10,0xd8,0x49,0xb1,0x2c,0x40,0x10,0x67,0xde,0x41,0xf1,0xd5,0xdb,0x29,0xbe,0x8a,0xb5,0x8d,0xe2,0x2b,0xb7,0x51,0x42,0xc5,0x56,0x51,0x39,0x6b,0xb,0x10,0xd8,0x42,0x89,0x65,0x9b,0x29,0xb1,0x94,0xb5,0x49,0x54,0xc2,0xda,0x48,0x89,0xc5,0xac,0xd,0x94,0x58,0xc4,0x5a,0x4f,0x89,0x85,0xac,0x75,0x94,0x58,0x20,0xe2,0x28,0xe4,0x6b,0x50,0xc8,0x63,0xad,0xa2,0x84,0x5c,0x16,0x40,0xc8,0x59,0x21,0xca,0x5e,0x8e,0x18,0x6,0x2,0x84,0x38,0x2d,0x8,0x12,0x83,0x98,0x74,0x9,0x82,0x3,0xc,0x22,0x24,0x6,0x61,0x1c,0x3,0x1,0x1,0xc7,0x60,0x9c,0xa9,0x60,0x5c,0x8,0x22,0x95,0x89,0xa0,0xc9,0x5,0xc0,0xa4,0x6c,0x14,0x0,0xf2,0x1c,0x80,0xbc,0xf1,0x47,0x1c,0xfd,0xb,0x6c,0x53,0x80,0x0,0xa0,0x58,0xbc,0x30,0x85,0x72,0xf,0x40,0x54,0x2d,0x79,0x25,0xb7,0x53,0x60,0xf6,0xc,0xa,0xb4,0x1,0x70,0x4c,0x5,0xe0,0x45,0x0,0xb0,0x63,0x84,0x4c,0x9b,0xb0,0xf8,0x37,0x63,0x12,0xd8,0x84,0x36,0xe0,0xf3,0xb5,0xd7,0xd4,0x29,0x60,0x11,0x10,0x58,0x30,0x8,0x4,0xce,0x92,0x69,0xb6,0x44,0xa0,0x1f,0x8,0x4c,0x3b,0x46,0x1e,0x3d,0x47,0xc9,0xa7,0xeb,0x30,0xf9,0x3,0x81,0xc0,0xf6,0x43,0x14,0xd2,0x7a,0x10,0x8,0x1c,0xa0,0xb0,0xa6,0xfd,0x14,0xde,0xb8,0x8f,0x22,0x1b,0xf6,0x52,0x94,0x75,0xf,0x45,0xd7,0xed,0xa1,0x98,0xda,0xdd,0x14,0xcb,0xaa,0xd9,0x45,0x71,0x96,0x9d,0x14,0x6f,0x96,0x55,0xef,0xa0,0x84,0x2a,0xd6,0x76,0x4a,0xa8,0xdc,0x4e,0x89,0xc0,0x20,0xb1,0x42,0x6,0xc,0x12,0xcb,0x58,0x5b,0x44,0xa5,0x5b,0x28,0x9,0x20,0x24,0x95,0xb0,0x36,0x51,0x52,0xb1,0xac,0x68,0xa3,0x6c,0x83,0x8,0x20,0xb0,0x14,0x10,0x12,0xf3,0xd7,0xca,0xd6,0x50,0x62,0x1e,0x6b,0x35,0x25,0xe6,0xae,0x16,0x20,0xe4,0xac,0xe4,0xc5,0x67,0x4b,0x10,0xb2,0x24,0x8,0x99,0x0,0x81,0x61,0x90,0xb1,0x18,0x1,0x83,0xf4,0x45,0x2,0x83,0x34,0x89,0x41,0xaa,0xc4,0x20,0x85,0x61,0x20,0x20,0x88,0xe0,0x53,0x81,0xc4,0x20,0x71,0xba,0xd,0x82,0x50,0x3,0x8,0x46,0x4d,0x4,0xd1,0x46,0x10,0xf0,0x2b,0x7,0x2e,0x0,0x26,0x65,0xfc,0x2a,0x80,0x6e,0x2,0x50,0x6e,0xf9,0x35,0x4,0x40,0x9c,0x0,0xe4,0x2f,0x73,0x25,0xef,0x1,0x60,0x13,0x80,0x37,0x0,0x8,0xca,0x99,0xc9,0x5f,0xd3,0xcf,0xa7,0x7a,0x5,0x25,0x2f,0x64,0x0,0xbc,0xa2,0x2,0xb0,0xeb,0x16,0x99,0xb6,0xc,0x91,0x69,0x2b,0x26,0x81,0x2d,0xc3,0x2,0x81,0xf5,0xec,0xbc,0x0,0xb6,0x2,0x2b,0x80,0xc0,0x52,0xd,0x2,0x73,0x25,0x2,0x33,0x4,0x2,0x6e,0xd3,0x8e,0x93,0x17,0x10,0xf0,0xeb,0x3a,0x42,0x1,0x1d,0x87,0x29,0xb8,0xed,0x21,0xa,0x5,0x2,0x53,0x9b,0xf,0x50,0x78,0xd3,0x1,0x8a,0x68,0xdc,0x4f,0x51,0xd,0xfb,0x28,0xda,0xba,0x97,0x62,0x50,0x2c,0x20,0x88,0xad,0xdd,0x43,0x71,0x35,0xbb,0x29,0xde,0xb2,0xb,0x0,0xec,0xa2,0x4,0x56,0xf5,0x4e,0x5e,0x62,0x15,0xaa,0xdc,0x61,0x2b,0xa9,0x62,0xbb,0xa8,0x9c,0xb5,0x8d,0x92,0xca,0x94,0xb6,0x52,0x72,0x29,0x6b,0xb,0x25,0x97,0xb0,0x36,0x53,0x72,0xb1,0xd2,0x26,0x4a,0x2e,0x12,0x28,0x24,0x17,0xb2,0x18,0x8,0xa8,0x60,0xbd,0x28,0x7f,0x1d,0x5a,0x4b,0x49,0x79,0x2c,0x9,0x42,0x2e,0x3,0x61,0x15,0x25,0xe6,0x48,0x10,0x80,0x41,0x2,0xc7,0x40,0x82,0x20,0x31,0x88,0xb3,0x61,0xc0,0x26,0x3,0x1,0x41,0x74,0xaa,0xc0,0x20,0x32,0x45,0x60,0x10,0x91,0x2c,0xa7,0x82,0x24,0xb9,0x45,0x90,0x10,0x4c,0x75,0x0,0x81,0xfd,0x44,0xd0,0x6e,0xf,0x41,0x14,0x87,0xc0,0x5,0xc0,0xa4,0x6c,0x14,0x0,0x59,0xe,0x0,0x90,0x8,0xb0,0x13,0x80,0xec,0x25,0xb1,0x75,0x0,0xf8,0x24,0x77,0x50,0x50,0xee,0x2c,0xa,0x2c,0x59,0x44,0x3e,0xe6,0x95,0x94,0xb2,0xf8,0x84,0x6,0x80,0x5f,0x50,0xd0,0xee,0x3b,0x64,0x62,0xdb,0x80,0xed,0x80,0x60,0xdb,0x88,0x40,0x60,0x23,0x3b,0x2f,0x0,0x4,0x56,0x1,0x81,0x65,0x40,0x60,0xc9,0x5,0x6c,0x5,0x80,0xc0,0x7c,0x20,0x30,0x7,0x8,0xcc,0x3a,0x8d,0xad,0x0,0x10,0xe8,0x3b,0x41,0x9e,0xbd,0xc7,0xc9,0xa7,0xfb,0x28,0xa6,0x80,0x23,0x14,0x4,0x4,0x42,0x38,0x2,0x87,0x28,0xac,0xf9,0x20,0x45,0x0,0x81,0x48,0x20,0x10,0x5d,0xbf,0x9f,0x62,0xea,0xf7,0x51,0xac,0x15,0xd5,0xed,0xa5,0xb8,0xda,0xbd,0x14,0x5f,0xb3,0x87,0x12,0x2c,0x32,0xf3,0x6e,0x4a,0x64,0x55,0xef,0x2,0x2,0xbb,0x28,0x89,0xb7,0x93,0x92,0x2a,0x65,0x15,0x3b,0x78,0xc9,0xac,0x72,0xd6,0x76,0x4a,0x2e,0x63,0x6d,0xa3,0x94,0xd2,0x6d,0x80,0x60,0x9b,0x0,0xa1,0x64,0xab,0x0,0xa1,0x78,0xb,0xa5,0xf0,0x36,0x53,0x4a,0x11,0x6b,0x13,0xa5,0x14,0x6e,0x92,0x20,0xa0,0x82,0xd,0x94,0x9c,0xcf,0x5a,0x8f,0x0,0x42,0xde,0x3a,0x1b,0x8,0x49,0xb9,0x12,0x4,0x3b,0xc,0x56,0xd8,0x63,0x90,0x21,0x27,0x3,0x39,0x15,0xc4,0xb0,0xa9,0x40,0x42,0x10,0x25,0x21,0x88,0x64,0x10,0x24,0x8d,0xd,0x41,0x88,0xfe,0x1c,0x41,0x8c,0x7a,0xb2,0x30,0x20,0xda,0x76,0xd5,0xc0,0x5,0xc0,0xa4,0x8c,0xbd,0x1f,0x0,0x3f,0x9,0x98,0xa9,0x1,0x20,0xc7,0xf6,0x36,0x55,0xea,0xe2,0x77,0xc,0x0,0xdb,0x2,0xb0,0xd7,0xeb,0xf,0x62,0xaf,0xe2,0x5b,0x2a,0x0,0x48,0x66,0x0,0xfc,0x9f,0x4,0xe0,0x25,0x0,0xb0,0xf7,0x61,0xb1,0xf8,0x77,0xdc,0x16,0x6d,0xc3,0xe7,0x9b,0x87,0xc5,0x56,0x60,0xd,0xb6,0x2,0x2b,0x80,0xc0,0xd2,0x4b,0x64,0x5a,0x7c,0x51,0x20,0x30,0xf,0x8,0xcc,0x6,0x2,0x33,0x31,0x9,0xf4,0x9f,0x22,0x8f,0x69,0x27,0xc8,0xbb,0xe7,0x38,0xa6,0x80,0x63,0x14,0x0,0x4,0xa6,0xb4,0x1f,0xa6,0x50,0x20,0x30,0xb5,0xe5,0x21,0xa,0x6f,0x3e,0x44,0x91,0x4d,0x7,0x29,0xaa,0xf1,0x0,0x45,0x37,0x1c,0x0,0x2,0xfb,0x81,0xc0,0x7e,0x8a,0xab,0xdb,0x47,0xf1,0xb5,0xfb,0x28,0xa1,0x66,0xaf,0xc8,0xb2,0x97,0x12,0x1,0x41,0xa2,0x79,0xf,0x25,0x55,0xb3,0x76,0x8b,0xaa,0x76,0x53,0x72,0xe5,0x2e,0xfb,0x2a,0x76,0x52,0x4a,0xb9,0xa6,0xb2,0x1d,0x6a,0xa5,0xdb,0xd5,0x4a,0xb6,0x89,0x8a,0xb7,0x52,0x2a,0x4a,0x29,0xda,0x22,0x2a,0xdc,0x2c,0x63,0x28,0x6c,0xa4,0x94,0x2,0x23,0x10,0xe4,0x84,0x60,0x80,0x81,0x7e,0x2a,0x30,0x82,0x20,0x5a,0xf,0x81,0x32,0x11,0x24,0x4a,0x8,0x12,0x24,0x4,0xf1,0x72,0x22,0xd0,0x5f,0x35,0xb0,0xdf,0x16,0xb8,0x0,0x98,0x94,0xb9,0x1b,0xbc,0x20,0x88,0x16,0x0,0x36,0xf2,0x2b,0xc9,0x57,0x2,0x16,0x0,0x68,0x6e,0x3,0x8e,0xaa,0x23,0xdf,0x54,0xfc,0x50,0xb1,0x77,0xf7,0x29,0x5d,0xc,0x0,0x56,0x8d,0x6,0x60,0xdf,0xa3,0x64,0xda,0x89,0x85,0xbf,0x13,0x10,0xec,0xc4,0x34,0xb0,0x1d,0x9f,0x6f,0xc5,0x24,0xb0,0x11,0xdb,0x82,0x75,0x40,0x60,0x15,0x10,0x58,0x7e,0x5,0x53,0x0,0x10,0x58,0x84,0x49,0x60,0xfe,0x39,0x4c,0x1,0x40,0x60,0x16,0x10,0x98,0x71,0x9a,0xdc,0xfb,0x4e,0x91,0x27,0x10,0xf0,0x5,0x2,0xfe,0x40,0x20,0xa8,0xe3,0x28,0x85,0xb4,0x1f,0xc1,0x14,0x70,0x98,0xc2,0x81,0x40,0x44,0xf3,0x43,0x0,0xe0,0x10,0x0,0x38,0x48,0x31,0x28,0xb6,0xfe,0x0,0xc5,0x59,0xf,0x50,0x7c,0xdd,0x7e,0x4a,0xa8,0x45,0x35,0xfb,0x78,0x89,0x16,0x51,0x92,0x79,0xaf,0xa8,0x7a,0x2f,0x25,0xb3,0xaa,0xf6,0xd8,0x4a,0xa9,0x64,0xed,0xa6,0x94,0xa,0x59,0xf9,0x2e,0x4a,0xd5,0x56,0xb6,0x53,0x54,0xca,0xda,0x21,0x2a,0xd9,0x2e,0x2a,0x66,0x6d,0x13,0x15,0x6d,0x95,0xe9,0x40,0x28,0x10,0x20,0xa4,0x28,0x18,0x60,0x32,0x48,0xe6,0x10,0x48,0xc,0x72,0x24,0x6,0xd9,0x1a,0xc,0x32,0xb5,0x53,0x81,0x31,0x4,0x51,0xc9,0xba,0x89,0xc0,0x49,0x8,0xe4,0xb6,0xc0,0x5,0xc0,0xa4,0xcc,0x3d,0xd5,0xe1,0x4,0xa0,0xbc,0x1,0x88,0xfd,0x4,0x30,0xe,0x0,0x65,0x0,0xa0,0x66,0x35,0x25,0x2f,0x3d,0xa5,0x1,0xe0,0x97,0x14,0xb4,0xff,0x31,0x32,0xed,0xc2,0xe2,0xdf,0xfd,0x88,0x78,0x64,0x8,0x6c,0x3,0x2,0x9b,0x81,0xc0,0x7a,0x6c,0x5,0xd6,0x60,0x2b,0xb0,0x92,0x6d,0x5,0x80,0xc0,0x62,0x20,0xb0,0x10,0x8,0xcc,0x3,0x2,0xb3,0x7,0x30,0x5,0x9c,0x25,0xb7,0xe9,0xa7,0xc9,0x3,0x8,0x78,0xf7,0x9e,0x20,0xbf,0xee,0xe3,0x14,0xd8,0x79,0x8c,0xa6,0x0,0x81,0xd0,0xb6,0x23,0x14,0xd6,0x7a,0x4,0x0,0x1c,0xc6,0x14,0xf0,0x10,0x45,0x3,0x81,0x98,0x86,0x43,0x0,0xe0,0x20,0xc5,0xa1,0x78,0x2b,0xaa,0x3b,0x0,0x4,0xe,0x50,0x22,0xab,0xe6,0x0,0x25,0xd5,0xec,0xa7,0x24,0xb,0x32,0xef,0xa3,0x64,0xa5,0xea,0x7d,0x94,0xc2,0xaa,0x52,0xda,0x4b,0xa9,0x95,0xb2,0x8a,0x3d,0xf6,0x95,0xef,0xa6,0x34,0x56,0x19,0x6b,0x17,0xa5,0x95,0x2a,0xed,0xa4,0xb4,0x12,0xd6,0xe,0xd9,0x76,0x4a,0x2b,0x96,0x15,0x6d,0xb3,0x61,0x90,0x5a,0xc8,0xda,0x4c,0xa9,0x5,0x12,0x83,0x7c,0x89,0x41,0x9e,0xc4,0x40,0x42,0x90,0x24,0x21,0x48,0x64,0x10,0x64,0x19,0x40,0x90,0xbe,0xd8,0x78,0x22,0xe0,0x10,0xcc,0x2,0x4,0x2a,0x2,0x61,0x89,0xf6,0x8,0x84,0xc4,0xc9,0x6d,0x81,0x6d,0x1a,0xe8,0x74,0x1,0x30,0x29,0xb3,0x9d,0x3,0xc8,0x1c,0x35,0x1,0xd8,0x0,0xf0,0x37,0x0,0x20,0x44,0x6e,0x1,0x22,0x2c,0xfc,0xed,0xba,0xfd,0xd2,0x7a,0x28,0xa8,0x60,0x2e,0x0,0x58,0x42,0x3e,0xb5,0x6b,0x28,0x65,0xe9,0x69,0x7b,0x0,0xe,0xbc,0x4f,0x2c,0xfe,0x3d,0x8f,0x8a,0x76,0xe1,0xf3,0x1d,0x40,0x60,0xb,0xb6,0x2,0x1b,0x30,0x5,0xac,0xbd,0x29,0xa7,0x0,0x20,0xb0,0x4,0x8,0x2c,0xc2,0x56,0x60,0xfe,0x79,0x39,0x5,0x0,0x81,0x19,0x67,0xc8,0xbd,0xff,0x34,0xa6,0x80,0x53,0x98,0x2,0x4e,0x52,0x40,0xd7,0x9,0xa,0x6,0x2,0x21,0xed,0xc7,0x68,0x6a,0xdb,0x51,0x4c,0x1,0x47,0x28,0xb2,0xf9,0x8,0x45,0x35,0x1d,0xa6,0x98,0xc6,0xc3,0x14,0xdb,0xf0,0x10,0x0,0x60,0x1d,0x2,0x2,0x87,0x28,0xa1,0xee,0x20,0x0,0x10,0x25,0xb1,0x0,0x41,0xb2,0x45,0x2d,0xc5,0x2c,0xab,0xde,0xcf,0x4b,0x65,0x55,0xc9,0x2a,0xf7,0x51,0x9a,0x52,0x5,0x6b,0x2f,0x0,0x10,0xa5,0x97,0xef,0xa1,0xf4,0x32,0xa5,0xdd,0x94,0x5e,0xaa,0x4,0x10,0x4a,0x76,0x51,0x7a,0x89,0x44,0xa1,0x78,0x87,0x84,0x40,0x60,0x90,0x6,0xc,0xd2,0xa,0xb7,0xa,0xc,0xa,0x24,0x6,0x12,0x82,0x94,0x71,0x20,0x48,0x50,0x20,0xc8,0x58,0x2a,0x4e,0x18,0xb2,0xad,0x41,0x9a,0x6,0x82,0x14,0x5,0x82,0xd9,0x14,0x99,0x64,0xf,0xc1,0x18,0xd3,0x80,0xb,0x80,0x49,0x99,0xf6,0xfd,0x0,0xf5,0x0,0xb0,0x5,0xaf,0x1d,0xff,0x6d,0x37,0x1,0x95,0x8a,0x37,0xd1,0x94,0xb7,0x1,0x73,0x0,0xd2,0x5,0x0,0x41,0xe5,0x4b,0xc9,0xb7,0x6e,0x2d,0xa5,0x2c,0x3b,0x3,0x0,0x5e,0x15,0x0,0xfc,0x4,0x0,0x1c,0x7a,0x9c,0x4c,0x7b,0xb1,0xf0,0xf7,0x1,0x82,0xbd,0xc,0x83,0x47,0xc5,0x76,0x80,0x4d,0x1,0x9b,0x30,0x5,0xac,0x3,0x2,0xab,0xb1,0x15,0x58,0x1,0x4,0x96,0x2,0x81,0xc5,0x97,0xc9,0xb4,0x0,0x53,0xc0,0x5c,0x20,0x30,0x1b,0x8,0xcc,0x1c,0xc0,0x14,0x70,0x6,0x53,0xc0,0x69,0x4c,0x1,0xa7,0xc8,0xbf,0xfb,0x24,0x5,0x1,0x81,0x90,0x8e,0xe3,0x14,0xa,0x4,0xc2,0x5a,0x8f,0x52,0x44,0xcb,0x51,0x8a,0x2,0x2,0xd1,0x4d,0x47,0x38,0x2,0x71,0xd,0x87,0x39,0x2,0xf1,0x28,0xc1,0xfa,0x10,0x25,0xd6,0x1d,0xe2,0x25,0xd5,0x8a,0x92,0x6b,0x90,0xe5,0x20,0x2f,0x85,0x65,0x3e,0x48,0xa9,0x4a,0xd5,0xac,0x3,0x0,0xe0,0x0,0xa5,0xb1,0x2a,0x95,0xf6,0xf3,0xd2,0x2b,0x64,0xe5,0xfb,0x44,0x65,0xac,0xbd,0x9a,0x0,0x42,0xe9,0x1e,0x15,0x4,0x8e,0x1,0x2a,0xde,0x89,0x76,0xf0,0x6c,0x18,0x14,0xa,0xc,0xd2,0x38,0x4,0x28,0x5f,0x62,0x90,0x27,0x31,0xc8,0x95,0x18,0xe4,0x0,0x83,0xec,0xd5,0xc6,0x10,0xa4,0x8f,0x86,0xc0,0x78,0x5b,0x80,0x69,0x20,0xc1,0x70,0x1a,0x70,0x1,0x30,0x29,0x1b,0xb,0x0,0x3e,0x1,0x14,0x8a,0xa3,0x3f,0x87,0x80,0xdd,0x3,0x80,0x5f,0xb3,0x37,0x2,0x51,0xee,0x2,0x54,0x0,0xe0,0x13,0xc0,0x3c,0xa,0xaa,0x58,0x46,0xbe,0xd6,0x75,0x94,0xb2,0x72,0x80,0x9e,0xff,0x99,0x6,0x80,0x87,0x9e,0xc0,0xe2,0x7f,0x8c,0x4c,0xfb,0x1f,0x17,0x31,0x4,0x76,0x1,0x81,0xed,0x98,0x2,0x36,0xb3,0x29,0x60,0x18,0xdb,0x0,0x4c,0x1,0x2b,0xaf,0x6b,0xa6,0x0,0x6c,0x5,0xe6,0x1,0x81,0x39,0xd8,0xa,0xcc,0x1a,0x24,0xb7,0x19,0x3,0x98,0x2,0xce,0x90,0xd7,0xb4,0xd3,0xe4,0xd7,0x73,0xa,0x53,0xc0,0x49,0x9a,0xd2,0xc9,0x10,0x38,0x41,0x61,0x6d,0xc7,0x29,0xa2,0xf5,0x18,0x45,0xb6,0x1c,0xa3,0xe8,0xe6,0xa3,0x14,0xd3,0x74,0x94,0x62,0x1b,0x8f,0x0,0x81,0x23,0x0,0xe0,0x30,0x0,0x38,0x4c,0x89,0xac,0xba,0x87,0x28,0x89,0x55,0xfb,0x10,0x25,0xb3,0x6a,0x44,0x29,0x2c,0xcb,0x21,0x4a,0x65,0x99,0x65,0xd5,0x87,0x28,0x4d,0xa9,0x8a,0x75,0x90,0xd2,0x59,0x95,0xb2,0x8a,0x83,0x94,0x51,0x71,0x40,0x54,0xce,0xda,0xaf,0x6,0x10,0x78,0xa5,0x7b,0x65,0x7b,0x44,0x25,0xbb,0xd1,0x2e,0xca,0x28,0x96,0x18,0x14,0xed,0x90,0x6d,0xa7,0xf4,0x42,0x89,0x41,0xc1,0x16,0x1b,0x4,0xa9,0xa,0x4,0xb9,0x12,0x82,0x1c,0x3,0x8,0x32,0x19,0x4,0x62,0x5b,0xc0,0x21,0x48,0x5b,0x64,0x7c,0x7e,0x40,0x37,0xd,0xe8,0x20,0x70,0x1,0x30,0x29,0x73,0x4,0x80,0x8f,0xe,0x0,0xbf,0x2,0xf5,0x2e,0x40,0xb6,0xff,0x67,0x6f,0x6c,0xc1,0x2e,0x1,0x4a,0x0,0xfc,0xd3,0x7b,0xf9,0xdb,0x79,0x5,0x32,0x0,0xea,0xd7,0x53,0xea,0xaa,0x41,0xd,0x0,0xbf,0xa2,0xa0,0xc3,0xef,0x17,0xb,0xff,0xc0,0x13,0x22,0xf6,0xf9,0x6e,0x80,0xb0,0x3,0x5b,0x81,0x2d,0x40,0x60,0x23,0xa6,0x80,0xb5,0x98,0x2,0x56,0x61,0xa,0x58,0xae,0x9d,0x2,0x2e,0xca,0x29,0x0,0x8,0xcc,0x4,0x2,0xd3,0x7,0xc8,0xb3,0xef,0xc,0xf9,0xf6,0x9e,0xc6,0x14,0x70,0xa,0xdb,0x80,0x93,0x0,0xe0,0x24,0x4d,0x6d,0x3f,0x41,0xe1,0xad,0xc7,0x29,0x12,0x45,0x37,0x1f,0xa7,0x98,0xe6,0x63,0x14,0xdb,0x74,0x8c,0xe2,0x1a,0x8f,0x52,0x7c,0xc3,0x51,0x4a,0xa8,0x3f,0x42,0x89,0x2c,0xeb,0x11,0x4a,0x62,0xd5,0x1d,0x1,0x0,0x87,0x6d,0xa5,0xd4,0x88,0x52,0x2d,0x9a,0xcc,0x87,0x29,0x8d,0x55,0xfd,0x10,0xa5,0x2b,0x55,0x89,0x32,0x2a,0xf,0xa9,0x55,0x28,0x1d,0xe4,0x65,0x96,0xb3,0xe,0x50,0x66,0x19,0x6b,0xbf,0xa8,0x74,0x9f,0xc,0x18,0x94,0xb0,0x24,0x6,0xc5,0xbb,0x75,0x18,0xd8,0x43,0x90,0x36,0x26,0x4,0xc,0x1,0x6c,0xd,0xb2,0x14,0x8,0x96,0x51,0x7c,0x86,0x7a,0x7e,0x20,0x56,0xbf,0x2d,0xe0,0x8,0x88,0x69,0x20,0x2,0x8,0xe8,0xa6,0x1,0x17,0x0,0x93,0xb2,0x51,0xe7,0x0,0xf4,0x27,0x1,0xb,0xd5,0x73,0x0,0xa,0x0,0x7c,0xfc,0x17,0x0,0xb8,0x47,0x4a,0x0,0x32,0x7a,0x29,0x98,0x1,0x50,0xb9,0x5c,0x0,0xb0,0xfa,0x1c,0x0,0x78,0x4d,0x0,0xf0,0x32,0x0,0x38,0xfa,0x24,0x99,0xe,0x62,0xd1,0x1f,0x2,0x4,0x7,0xdf,0x2f,0x10,0xd8,0x83,0x29,0x60,0x27,0xa6,0x80,0xad,0xd8,0xa,0x6c,0xc2,0x14,0xb0,0x1e,0x53,0xc0,0x6a,0x4c,0x1,0x2b,0x30,0x5,0x2c,0x63,0x0,0x60,0xa,0x58,0xa0,0x4c,0x1,0x40,0x60,0xd6,0x39,0x0,0x30,0x48,0x1e,0xfd,0x3,0xe4,0x3d,0xed,0x2c,0xa6,0x80,0x33,0x14,0xd8,0x75,0x1a,0x53,0xc0,0x29,0xa,0x5,0x2,0xe1,0x6d,0x27,0x31,0x5,0x9c,0xa0,0xa8,0x96,0x13,0x0,0xe0,0x38,0x0,0x38,0xe,0x0,0x8e,0xf1,0x12,0x1a,0x50,0xfd,0x51,0x20,0x70,0x14,0x0,0x88,0x92,0xeb,0x50,0xed,0x51,0x4a,0x51,0xaa,0x39,0x4a,0xa9,0x35,0x47,0x44,0x96,0x23,0x94,0xc6,0x32,0x1f,0xa1,0x74,0x56,0xb5,0x5a,0x6,0xab,0xea,0x30,0x2f,0xb3,0x52,0xe9,0x21,0x51,0x5,0xeb,0x10,0x0,0x50,0x2,0x6,0x65,0x7,0x25,0x6,0xa8,0x74,0xbf,0xcc,0x8,0x3,0x5,0x2,0x89,0x41,0x21,0xb6,0x8,0xc,0x83,0x2,0x39,0x15,0x18,0x42,0x20,0xa6,0x81,0x24,0x5,0x2,0x4c,0x3,0x36,0x8,0x6c,0xd3,0x0,0x20,0xd0,0x9f,0x24,0xe4,0x8,0xd8,0x4d,0x3,0x2e,0x0,0x26,0x65,0x5a,0x0,0xbc,0x8c,0xce,0x1,0x14,0xda,0x9d,0x3,0x10,0x0,0x54,0xf2,0xfd,0xbf,0x0,0xa0,0x96,0x3c,0x62,0xea,0x1,0xc0,0x34,0xe,0x40,0x10,0x3,0xa0,0x61,0x3,0xa5,0xae,0xbd,0x40,0xcf,0xff,0x5c,0x3,0xc0,0xb1,0xa7,0xb0,0xf8,0xb1,0xe8,0x1f,0x7a,0x52,0x20,0x70,0x0,0xed,0x7b,0x5c,0x6c,0x3,0xb6,0x31,0x0,0x6e,0x63,0x1b,0x80,0x29,0x60,0xd,0xa6,0x80,0x95,0x72,0xa,0x58,0x2,0x4,0x16,0x62,0xa,0x98,0xf,0x4,0xe6,0x2,0x81,0xd9,0x40,0x60,0xc6,0x39,0x6c,0x3,0x6,0xb1,0xd,0x18,0xc0,0x14,0x70,0x96,0x2,0xba,0xcf,0xd0,0x14,0x20,0x10,0xd2,0x71,0x8a,0xc2,0xda,0x4f,0x51,0x4,0x10,0x88,0x6a,0x3d,0x49,0xd1,0x1c,0x81,0x13,0x14,0x7,0x4,0xe2,0x1b,0x45,0x9,0xd,0xc7,0x1,0xc0,0x31,0x4a,0x62,0x59,0x8f,0x51,0x32,0xab,0xee,0x18,0xa5,0xb0,0x6a,0x45,0xa9,0x35,0x6a,0x69,0x16,0x51,0xba,0xf9,0xa8,0x5a,0xf5,0x51,0x0,0x20,0xca,0xac,0x62,0x1d,0x11,0x55,0xaa,0x65,0x55,0x1c,0x16,0x95,0xb3,0x1e,0x92,0x1d,0xa2,0xac,0x32,0x96,0x6,0x84,0xd2,0x3,0x2a,0x6,0x25,0x1a,0xc,0x94,0xa9,0x60,0x2c,0x8,0xf2,0x34,0x10,0x60,0x1a,0x50,0x20,0x48,0xcc,0x2,0x4,0x99,0x72,0x5b,0xc0,0x11,0x50,0xb6,0x5,0xc,0x1,0xdd,0x34,0xa0,0x9c,0x24,0x14,0xd3,0x80,0xb,0x80,0x49,0x99,0x76,0xb,0x30,0x1,0x0,0xf8,0x5b,0x5a,0xc9,0x9,0x40,0x1,0x20,0xa8,0x48,0x3,0xc0,0x3a,0x2d,0x0,0xaf,0x50,0xd0,0xf1,0xf,0x60,0xf1,0x63,0xd1,0x1f,0x7e,0x4a,0x20,0xc0,0xa6,0x80,0xfd,0x0,0x61,0x37,0xa6,0x80,0xed,0xd8,0x6,0x6c,0xc6,0x36,0x60,0x3,0xa6,0x80,0xb5,0x9a,0x29,0x60,0x29,0x10,0x58,0xc4,0xa6,0x0,0x20,0x30,0x17,0x8,0xcc,0x6,0x2,0x33,0xcf,0x63,0xa,0x38,0x87,0x6d,0xc0,0x20,0xf9,0xf4,0xe,0x90,0x7f,0xcf,0x59,0xa,0xee,0x3a,0x43,0x21,0x9d,0xa7,0xb1,0xd,0x38,0x8d,0x29,0xe0,0x14,0xb6,0x1,0xa7,0x0,0xc0,0x49,0x0,0x70,0x12,0x53,0x0,0x43,0xe0,0x4,0x0,0x38,0x1,0x0,0x4e,0x50,0x22,0x4a,0xaa,0x3f,0xce,0x4b,0xb6,0xa2,0xba,0xe3,0x0,0x40,0x56,0x7b,0x9c,0x52,0x59,0x35,0xa2,0x34,0x96,0xe5,0x38,0xa5,0xb3,0xcc,0xa2,0xc,0x56,0x35,0xeb,0x18,0x65,0xb2,0xaa,0xd4,0xb2,0x2a,0x59,0x47,0x45,0x15,0xac,0x23,0x6a,0xe5,0x3a,0x10,0x24,0x6,0x3c,0x5,0x82,0x92,0x7d,0x32,0x40,0x50,0x2c,0x21,0x28,0xda,0x85,0x46,0x43,0x60,0x3b,0x59,0xc8,0x20,0xc8,0xdd,0xa0,0x6e,0xb,0xb2,0xd7,0xd8,0x4d,0x3,0xf1,0xba,0x69,0x20,0x56,0x99,0x6,0xf4,0x57,0xa,0x12,0x67,0xba,0x0,0x98,0x94,0xe9,0x1,0xd0,0xbd,0x16,0xe0,0x68,0x0,0x8a,0xf9,0x3b,0xcd,0x70,0x0,0xd8,0xfe,0x5f,0x4e,0x0,0x7e,0xd8,0x2,0xa8,0x0,0x6c,0xa4,0xd4,0xf5,0x17,0x55,0x0,0x7e,0xa,0x0,0x4e,0x7e,0x10,0x8b,0x1f,0xb,0xff,0xc8,0x7,0x4,0x2,0x87,0x9e,0x14,0x0,0xec,0xc1,0x14,0xb0,0x1d,0x53,0xc0,0x16,0x4c,0x1,0x1b,0x31,0x5,0xac,0xd3,0x4c,0x1,0xcb,0x80,0xc0,0x62,0x4c,0x1,0xb,0x80,0xc0,0x3c,0x0,0x30,0xe7,0x22,0xb6,0x1,0x40,0x60,0xc6,0x79,0x6c,0x3,0xce,0x91,0xcf,0xb4,0x41,0x6c,0x3,0x6,0x28,0xb8,0xfb,0x2c,0xa6,0x80,0x33,0xd8,0x6,0x9c,0xa1,0x70,0x20,0x10,0xd9,0x76,0x9a,0xa2,0x81,0x40,0x4c,0xcb,0x29,0x8a,0x6d,0x3e,0x5,0x0,0x4e,0x52,0x3c,0x4a,0x68,0x3c,0x9,0x0,0x50,0xfd,0x49,0x0,0x70,0x92,0x92,0xeb,0x4f,0x0,0x81,0x13,0x58,0xfc,0x6a,0xa9,0xb5,0x6a,0x69,0x35,0xa2,0x74,0x8b,0x5a,0x86,0x59,0x94,0x59,0x6d,0x5f,0x56,0x15,0xeb,0x38,0x16,0xbf,0x12,0x30,0xa8,0x50,0x3a,0xaa,0x56,0x7e,0x44,0x26,0x31,0x28,0xd3,0x60,0x50,0xaa,0x99,0xa,0x24,0x4,0x99,0x7a,0x8,0xa,0x25,0x4,0xb6,0x69,0x40,0xb,0x1,0x9b,0x6,0x14,0x8,0xb0,0x2d,0xd0,0x4d,0x3,0xf1,0x6,0xd3,0x80,0xe6,0x4a,0x81,0xb,0x80,0x49,0xd9,0x28,0x0,0xc6,0x99,0x0,0xd8,0x13,0x81,0xd8,0xdb,0x4d,0xd9,0x1,0xd0,0xa0,0x2,0x50,0xb5,0x82,0x7c,0x9b,0x30,0xa2,0x6e,0xba,0x42,0xcf,0xff,0xe2,0xd7,0x2a,0x0,0xa7,0x3e,0x8c,0xc5,0xff,0x94,0x4,0x80,0x4d,0x3,0x1f,0x10,0xdb,0x80,0xbd,0x40,0x60,0xc7,0x63,0x0,0x0,0x53,0xc0,0x46,0x4c,0x1,0xeb,0x31,0x5,0xac,0xc1,0x14,0xb0,0x12,0x53,0xc0,0x72,0x20,0xb0,0x4,0x53,0xc0,0x42,0x20,0x30,0x1f,0x53,0xc0,0x1c,0x20,0x30,0xb,0x8,0xcc,0xb8,0x40,0xee,0xd3,0xcf,0x93,0x37,0x0,0xf0,0xed,0x1d,0xa4,0xc0,0xee,0x1,0x0,0x30,0x40,0xa1,0x9d,0x67,0xb1,0xd,0x38,0x83,0x6d,0xc0,0x19,0x6c,0x3,0xce,0x50,0x4c,0xeb,0x69,0x8a,0x6d,0x39,0x4d,0x71,0x40,0x20,0xbe,0xe9,0x14,0x25,0xa0,0xc4,0xc6,0x53,0x94,0xd4,0x20,0xab,0x3f,0x5,0x4,0x4e,0x52,0x8a,0x55,0x56,0x77,0x92,0x52,0x59,0xb5,0xac,0x53,0x94,0xc6,0xaa,0x39,0x45,0xe9,0x2c,0x8b,0x28,0x83,0x65,0x3e,0x45,0x99,0xac,0x6a,0xd6,0x49,0x5e,0x56,0x95,0x5a,0x76,0xe5,0x9,0x5b,0x59,0xbc,0xe3,0x94,0x5d,0xc1,0x3a,0x26,0x2a,0x3f,0x2a,0x93,0x18,0x94,0x1d,0x56,0x21,0x28,0x65,0x49,0xc,0x4a,0xf6,0x1b,0x4e,0x4,0xe9,0x36,0x8,0xe4,0xb6,0x20,0x5f,0x42,0xa0,0xdf,0x16,0xd8,0x4d,0x3,0x80,0x20,0x43,0x77,0x6e,0x20,0xd5,0x6e,0x1a,0x70,0x1,0x30,0x29,0xd3,0x3e,0x1d,0x58,0x3b,0x1,0xf8,0x3a,0x98,0x0,0x82,0x8a,0x47,0x1,0xe0,0x19,0xdb,0x40,0xfe,0x99,0x7d,0xfc,0xa9,0xc0,0x81,0x12,0x80,0x94,0xcd,0x57,0x55,0x0,0xfe,0xf7,0x55,0xa,0x3a,0xf3,0xb4,0x58,0xfc,0x47,0x3e,0x28,0x3a,0x8c,0xe,0x3e,0x29,0x0,0xd8,0x89,0x6d,0xc0,0x56,0x4c,0x1,0x9b,0x18,0x0,0x98,0x2,0xd6,0x62,0xa,0x58,0x25,0x1,0x58,0x8a,0x29,0x60,0x11,0x10,0x98,0x8f,0x29,0x60,0x2e,0x10,0x98,0xd,0x4,0x66,0xa,0x0,0xbc,0xfa,0xce,0x1,0x80,0x73,0x14,0xd0,0x33,0xc8,0x1,0x8,0xe9,0x1c,0xa0,0xb0,0x8e,0xb3,0x14,0xd1,0x7e,0x96,0xa2,0x80,0x40,0x34,0x43,0xa0,0xe5,0xc,0x0,0x38,0x4d,0xf1,0xac,0xa6,0xd3,0x98,0x2,0x4e,0x63,0xa,0x38,0xd,0x0,0x50,0xfd,0x69,0x0,0x70,0x1a,0x8b,0xff,0x14,0x3a,0xcd,0x4b,0xad,0x13,0xa5,0xb1,0x6a,0x45,0xe9,0x35,0x6a,0x19,0x16,0x64,0x3e,0xd,0x0,0x64,0xd5,0xa7,0x29,0x4b,0xa9,0xea,0x14,0x2f,0x5b,0xa9,0x92,0x75,0x52,0x54,0x71,0x42,0x93,0x4,0xa1,0x5c,0x83,0x41,0xd9,0x11,0x74,0x18,0xc9,0xa9,0x40,0x3,0x41,0x96,0x2,0x41,0xb1,0xfd,0x44,0x20,0x20,0xd8,0x4e,0xe9,0x5,0x1a,0x8,0xf2,0xe4,0xf9,0x1,0xbb,0x6d,0x81,0x66,0x1a,0xc8,0xd0,0x4c,0x3,0x69,0x9a,0x69,0x20,0x65,0xbe,0xb,0x80,0x49,0x99,0xb3,0x5b,0x0,0xff,0x7c,0xf5,0xa9,0xc0,0x21,0xe2,0x1e,0x0,0xe,0x40,0x14,0x3,0xa0,0x91,0x3,0x10,0x54,0xb4,0x40,0x4c,0x0,0xcd,0x9b,0x28,0x79,0xeb,0x35,0x7a,0xee,0x97,0xaf,0xab,0x0,0x9c,0xfd,0x7,0x32,0x1d,0xc5,0xa2,0x3f,0xfa,0x21,0x0,0xf0,0x21,0x1,0xc0,0x21,0x4c,0x4,0xfb,0x30,0x5,0xec,0xc2,0x36,0x60,0x1b,0x0,0xd8,0x8c,0x6d,0xc0,0x86,0x3b,0x2,0x80,0xd5,0xd8,0x6,0xac,0x0,0x2,0x4b,0x6f,0x8,0x0,0x16,0x60,0xa,0x98,0x7,0x4,0xe6,0x0,0x81,0x99,0x97,0xc8,0x6d,0xc6,0x45,0xf2,0xec,0xbf,0x80,0x6d,0xc0,0x79,0x0,0x70,0xe,0xdb,0x80,0x41,0xa,0xe9,0x1a,0x4,0x0,0x3,0x0,0x60,0x0,0xdb,0x80,0xb3,0x0,0xe0,0x2c,0xa6,0x80,0xb3,0x14,0xc7,0x11,0x38,0x3,0x0,0xce,0x60,0xa,0x38,0x83,0x29,0xe0,0xc,0x0,0x10,0x25,0xd7,0x9f,0xa1,0x14,0x96,0x55,0x94,0x5a,0xa7,0x96,0x56,0x7b,0x86,0xd2,0x59,0x35,0xa2,0xc,0x96,0xe5,0xc,0x65,0xb2,0xcc,0x6a,0x59,0xd5,0xb2,0xaa,0x33,0x58,0xf8,0xac,0xd3,0x6a,0x95,0xa7,0x25,0x4,0xb2,0x8a,0x93,0x32,0x89,0x41,0xf9,0x71,0xca,0x1,0x4,0x22,0x2d,0x4,0xa8,0x54,0x3,0x41,0x89,0x1,0x4,0x45,0xbb,0xed,0xb6,0x5,0x1c,0x2,0xdb,0x34,0xb0,0x89,0x23,0xa0,0x6e,0xb,0xd4,0x69,0x20,0x51,0x99,0x6,0xd2,0x35,0xe7,0x6,0x52,0x17,0xba,0x0,0x98,0x74,0xb1,0x67,0x2,0x8e,0x7a,0x67,0xe0,0x2c,0xe3,0x2d,0x80,0x92,0x4,0xc0,0x3d,0xcc,0x22,0x1,0xa8,0x23,0xcf,0x38,0x0,0x90,0xd5,0x47,0xc1,0xc5,0xb,0x5,0x0,0x2d,0x5b,0x28,0x79,0xc7,0x4d,0x15,0x80,0xff,0x3,0x0,0x83,0x1f,0x91,0x0,0x7c,0x58,0x5,0x80,0x6d,0x3,0xf6,0x4b,0x0,0xb6,0x3f,0xa6,0x6e,0x3,0xd6,0xc9,0x6d,0xc0,0xa,0x20,0xb0,0xc,0x0,0x2c,0xbe,0x6e,0xf,0xc0,0x2c,0x4c,0x1,0x0,0xc0,0x3,0x0,0x78,0x3,0x0,0xff,0xde,0xf3,0x0,0xe0,0x1c,0xa6,0x80,0x73,0x34,0xb5,0x73,0x90,0xc2,0x3b,0x6,0x29,0x12,0x8,0x44,0xb7,0xe,0x0,0x80,0x1,0x6c,0x3,0x80,0x40,0xf3,0x59,0x4c,0x1,0x67,0x1,0xc0,0x59,0xe,0x80,0x40,0xe0,0x2c,0x25,0xdb,0x10,0x38,0xb,0x0,0xce,0x52,0x2a,0xab,0xee,0x2c,0x26,0x0,0x51,0x7a,0xad,0xac,0xe6,0x2c,0x0,0x18,0x0,0x0,0x3,0x0,0xe0,0x2c,0x16,0x3e,0x6b,0x80,0x97,0x55,0x7d,0xd6,0x56,0x76,0x95,0x3e,0x80,0x50,0x29,0xca,0x1,0x6,0x39,0x15,0xac,0x53,0xb2,0x93,0xb2,0x13,0x88,0x41,0x70,0xdc,0x6,0x41,0x4e,0x19,0x4b,0x9d,0xa,0xb2,0x1,0x41,0xb6,0x16,0x82,0xe2,0x7d,0x1c,0x81,0xcc,0x22,0x79,0x7e,0xa0,0x50,0x42,0x60,0x38,0xd,0x38,0x38,0x37,0x60,0x3f,0xd,0xb8,0x0,0x70,0x5c,0xca,0xdb,0xfc,0xe7,0x1f,0xd0,0xf7,0x64,0x4,0x0,0x26,0x0,0x37,0xdb,0x53,0x81,0xf5,0xb7,0x2,0x17,0xc8,0x93,0x80,0x3a,0x0,0xe2,0x9b,0x28,0x20,0xab,0x5f,0x0,0x50,0xbd,0x92,0x3,0x90,0xb4,0x6b,0x88,0x9e,0xfb,0x95,0x2,0xc0,0x6b,0x14,0x74,0xee,0x19,0x32,0x1d,0xc3,0xc2,0x3f,0xf6,0xb4,0x8a,0x0,0x7,0x0,0xdb,0x80,0xdd,0xd8,0x6,0x6c,0x7f,0x9f,0x4,0x0,0x53,0xc0,0x3a,0x6c,0x3,0xd6,0x60,0xa,0x58,0x9,0x4,0x96,0xdd,0x14,0x0,0x2c,0x64,0xdb,0x0,0x20,0x30,0x17,0x8,0xcc,0x2,0x2,0x33,0x2e,0x1,0x80,0x8b,0xe4,0xdd,0x77,0x81,0xfc,0x7a,0x2f,0x50,0x50,0xcf,0x79,0xe,0x40,0x68,0xe7,0x39,0x9,0xc0,0x20,0x45,0xb7,0xd,0x4a,0x0,0x6,0x30,0x5,0xc,0x0,0x80,0x1,0x1,0x0,0x47,0xe0,0x2c,0x25,0x35,0xe,0x0,0x0,0x54,0x3f,0x0,0x0,0x44,0xa9,0x56,0x59,0xdd,0x0,0x0,0x18,0xc0,0xe2,0x57,0x1a,0x4,0x0,0xc8,0x32,0x8,0x0,0x64,0xe6,0x41,0xca,0x52,0xaa,0x1e,0xa4,0x6c,0x6d,0x55,0x3,0xbc,0x1c,0xde,0x59,0x2c,0xfe,0xb3,0x94,0xcb,0x3b,0x23,0x3b,0xcd,0x41,0xc8,0xb5,0x81,0xa0,0xc1,0xc0,0x11,0x4,0xa5,0x2a,0x4,0xd9,0x12,0x82,0x2c,0x39,0xd,0x70,0x8,0xa,0x15,0x8,0xd8,0x49,0x42,0x31,0xd,0xa4,0x69,0xa7,0x81,0x9c,0xf5,0x6,0x57,0xa,0x94,0x69,0x60,0xc9,0xdb,0x1,0x40,0x8a,0xa6,0x77,0x6a,0xf1,0xbd,0x1b,0xfe,0xfd,0xce,0xfc,0x3b,0xdf,0x5,0x48,0xb8,0x27,0x1b,0x6e,0x1,0xdc,0x94,0xc5,0xaf,0x5,0xc0,0xf6,0x6a,0xc0,0xc5,0xb6,0xdb,0x80,0x5,0x0,0x56,0xf2,0x8a,0x6f,0x6,0x0,0xd3,0x29,0xb8,0x64,0x91,0x0,0xa0,0x75,0x2b,0x25,0xee,0x19,0xa6,0xe7,0x5e,0xf9,0x8d,0x0,0xe0,0x67,0x0,0x60,0xf0,0x19,0xb1,0xf7,0xe7,0x5b,0x0,0x0,0x70,0x18,0x8f,0x87,0x0,0xc0,0xbe,0x27,0xe5,0x16,0xe0,0x31,0x6c,0x1,0x1e,0x11,0x5b,0x80,0x35,0xb7,0xc4,0xe2,0x5f,0x8e,0x9,0x60,0x29,0x3,0x0,0x53,0xc0,0x42,0x20,0x30,0x1f,0x8,0xcc,0x5,0x2,0xb3,0x81,0xc0,0xcc,0xcb,0xe4,0x3e,0xfd,0x12,0x79,0xf5,0x5d,0x24,0xdf,0x69,0xc,0x80,0xb,0x34,0xa5,0xfb,0x3c,0x0,0x38,0x8f,0x6d,0xc0,0x39,0x6c,0x3,0xce,0x51,0x54,0xdb,0x39,0x8e,0x40,0x6c,0xeb,0x20,0x0,0x18,0x4,0x0,0x83,0x94,0x80,0x12,0x9b,0x6,0x0,0xc0,0x0,0x0,0x18,0x4,0x0,0x83,0x1c,0x1,0x1,0xc0,0x20,0x16,0xbf,0x5a,0x5a,0xdd,0x20,0xa5,0xd7,0x9d,0xc3,0xe2,0x17,0x65,0xd4,0x88,0x32,0x2d,0x6a,0x59,0x66,0x59,0xf5,0x39,0x2c,0x7c,0xb5,0x1c,0x56,0xd5,0xa0,0xad,0xdc,0xca,0x1,0x4d,0x67,0x35,0x49,0x10,0x2a,0x18,0x6,0xa7,0xd0,0x49,0xd9,0x9,0xca,0x5,0x4,0xb9,0x86,0x10,0x1c,0x12,0xd9,0x10,0xd8,0x27,0x20,0x28,0x62,0x10,0x8,0x4,0x32,0xa,0x9c,0x9b,0x6,0x34,0xf7,0xd,0x38,0xb,0x40,0x8a,0xee,0xf1,0x5d,0xfc,0x3,0xfe,0xc0,0x7a,0xbb,0xbe,0x77,0xfd,0xbf,0xd7,0xd9,0xff,0x5f,0x8c,0x91,0xd3,0x0,0x14,0x48,0x0,0xf4,0xe7,0x0,0x24,0x0,0xd9,0xc,0x80,0xc5,0x14,0x64,0x5e,0x45,0xbe,0x6d,0xdb,0x28,0xf1,0xc0,0x6d,0x1b,0x0,0xdf,0x7f,0xe5,0xd,0x6a,0xff,0xe0,0x57,0xa8,0xff,0x43,0xff,0x4a,0x2b,0x3f,0xf1,0x1f,0xb4,0xf3,0xb3,0xdf,0xa1,0x23,0x5f,0xfc,0x2f,0x3a,0xfe,0xc5,0xef,0xd3,0xb1,0x2f,0x7c,0x8f,0x8e,0x7d,0xee,0xbb,0x74,0xec,0x33,0xdf,0xa1,0xfd,0x9f,0xf8,0x26,0x6d,0xfa,0xf0,0x57,0x69,0xc1,0x23,0x5f,0xa4,0x8e,0x2b,0x9f,0xa6,0xb2,0x13,0x1f,0xa1,0xe4,0x5d,0xef,0xa7,0x29,0x6b,0xef,0x90,0xe7,0x12,0x40,0x30,0x4f,0x5d,0xfc,0xa6,0x19,0xc,0x80,0xcb,0xe4,0xd5,0x7f,0x89,0x7c,0xa6,0x5d,0xa4,0xc0,0x5e,0x6,0xc0,0x5,0xa,0xe9,0xba,0x40,0x61,0x40,0x20,0xa2,0xe3,0x3c,0x45,0xb5,0x33,0x0,0xce,0x1,0x80,0x73,0x1c,0x0,0x5,0x81,0xc4,0x26,0x84,0xc5,0x9f,0x24,0x63,0x8,0xa4,0x34,0x9c,0x3,0x0,0xe7,0x28,0x95,0x65,0x65,0x9d,0x7,0x0,0xe7,0x1,0x0,0xaa,0x15,0x65,0xd4,0x88,0x32,0x2d,0x6a,0x59,0x66,0x59,0xf5,0x79,0x2c,0xfc,0xf3,0x58,0xf8,0x9a,0xaa,0xce,0xf1,0x72,0x65,0x79,0xbc,0x41,0xca,0xab,0x64,0xd,0x68,0x3a,0x8b,0xce,0x88,0x0,0x41,0x1e,0x20,0xc8,0xb3,0x61,0xa0,0x42,0x90,0xb,0x8,0x72,0x81,0x40,0xe,0x10,0xc8,0xc1,0x34,0x90,0x33,0x6a,0x1a,0x60,0x10,0x88,0x69,0x20,0x13,0xd3,0x40,0x26,0xb6,0x4,0x19,0x5,0xe,0xce,0xd,0xe4,0x68,0xee,0x1b,0xc8,0xe2,0xd3,0xc0,0xdd,0x4c,0x0,0xf7,0x7a,0x74,0x7f,0x3b,0x17,0x90,0xd1,0x62,0x99,0xc0,0xbf,0xd7,0x94,0xf8,0x2e,0x28,0x41,0x17,0xfb,0xbd,0xa4,0xfb,0xfb,0xbf,0xb5,0x21,0x0,0x79,0x2a,0x0,0x7e,0x63,0x4c,0x0,0x91,0x12,0x80,0x4,0x0,0x90,0x23,0x1,0xb0,0xac,0x26,0xbf,0xf6,0xed,0x94,0x78,0xe8,0x61,0x7a,0xee,0xd5,0x37,0x38,0x0,0x6f,0xbe,0xf5,0x37,0xfa,0xed,0x5f,0xde,0xe4,0x8f,0xce,0x7c,0xfc,0xd,0x7f,0xec,0x4f,0x6f,0xfe,0x95,0x5e,0xfb,0xfd,0x9f,0xe8,0x85,0x5f,0xbd,0x41,0xff,0xfe,0xa3,0x9f,0xd3,0x7,0xbf,0xfa,0x43,0x3a,0xf6,0x91,0xaf,0xd3,0xec,0x4b,0xff,0x48,0xf9,0x3b,0x9f,0xa4,0x29,0x8b,0x87,0xc9,0xd,0x0,0xb8,0xf5,0x5e,0x24,0x2f,0x14,0xd0,0x73,0x91,0x82,0xbb,0x2f,0xda,0x0,0x8,0xe7,0x0,0x9c,0x7,0x0,0xe7,0xb1,0xd,0x60,0x0,0x88,0xe2,0x9b,0xcf,0x61,0x1b,0x70,0xe,0x8,0x88,0x92,0x1a,0xcf,0x1,0x0,0x2c,0xfe,0x86,0xf3,0xbc,0xd4,0xfa,0xf3,0x7c,0xf1,0x73,0x0,0xac,0xa,0x0,0x17,0x78,0x19,0xac,0x9a,0xb,0x58,0xf8,0x6a,0x59,0x66,0x51,0x36,0xca,0xa9,0x46,0xca,0x23,0xca,0x95,0xe5,0x55,0x9d,0xd7,0x74,0x8e,0xf2,0x6d,0xd,0x52,0x7e,0x25,0x6b,0x40,0x76,0x56,0x76,0x86,0xf2,0x35,0x10,0xe4,0x1,0x82,0xbc,0xf2,0x13,0xc8,0x31,0x4,0x39,0x25,0xc,0x82,0xfd,0x94,0x2d,0xa7,0x81,0x2c,0x39,0xd,0x64,0xca,0x69,0x20,0x3,0x8,0xa4,0xe7,0x6b,0xa6,0x81,0x5c,0xcd,0x34,0xc0,0x11,0x58,0x3d,0x51,0x0,0xde,0x6b,0x47,0x78,0x27,0x8f,0x96,0xa6,0x64,0xf2,0xf,0xc8,0xa1,0x9d,0xbb,0x4e,0xd1,0xd5,0xab,0x8f,0xd1,0xe5,0xcb,0x8f,0xd8,0x77,0xc5,0xe0,0xf3,0x2b,0x8f,0x8c,0xfe,0x73,0x46,0x39,0xf3,0xe7,0xf0,0x67,0x6,0xcf,0x8d,0xd0,0xd1,0x63,0x97,0x69,0xd7,0xee,0xd3,0xb4,0x72,0xd5,0x5e,0xea,0xef,0x5f,0x43,0x96,0x9a,0x99,0x94,0x9e,0xd1,0x40,0x21,0x53,0x8b,0xc8,0xd3,0x2b,0x4d,0x3,0xc4,0x3d,0x82,0xe0,0x8,0x0,0x1b,0x2,0x5,0xa3,0xaf,0x2,0xc8,0x97,0x3,0x57,0x9e,0x7,0x20,0x0,0x98,0x41,0xc1,0xa5,0x2,0x0,0xdf,0x8e,0x1d,0x94,0x78,0xf8,0x51,0x7a,0xee,0xb5,0x37,0x9c,0x5a,0xf0,0x13,0xf9,0x78,0xf3,0xaf,0x6f,0xd1,0x2f,0x5e,0xff,0x3,0xfd,0xdb,0x73,0xff,0x47,0xd7,0x3f,0xfd,0x6d,0x5a,0x78,0xfe,0xd3,0x94,0xb3,0xf6,0x51,0x9a,0xd2,0x7f,0x85,0xfc,0xb1,0xf0,0x83,0x3b,0x2f,0xd0,0x54,0x14,0xde,0x71,0x1,0x0,0x5c,0x90,0x0,0x9c,0xa7,0x38,0x56,0xcb,0x79,0x8a,0x47,0x9,0xcd,0xe7,0xb1,0xf8,0xcf,0x53,0x12,0xab,0xf1,0x3c,0x0,0x38,0xaf,0x3,0xe0,0x2,0x2f,0xd,0xa5,0xd7,0xb1,0x2e,0x2,0x80,0x8b,0x0,0xe0,0x22,0x65,0xd6,0x20,0xb,0xeb,0x12,0x65,0xf1,0x2e,0x62,0xf1,0x5f,0xc4,0xc2,0x67,0x5d,0xe2,0xe5,0xb2,0xaa,0x2f,0xf2,0xf2,0x58,0x55,0x17,0xb1,0xd8,0x2f,0xd8,0x2a,0x0,0x4,0x6a,0xe7,0x44,0x80,0x40,0x34,0x80,0xce,0xf2,0x14,0x8,0xf2,0x81,0x80,0x48,0x85,0x20,0x8f,0x41,0x50,0x26,0x20,0xc8,0x2d,0x3d,0x2c,0x10,0xc0,0x34,0x90,0x83,0x69,0x40,0x85,0x60,0xf4,0x34,0x20,0x20,0xd8,0x42,0x69,0x79,0x9b,0x6d,0x97,0xb,0xf9,0x34,0x90,0xbd,0xf6,0xed,0x3a,0x7,0x70,0x2f,0x7f,0x77,0x22,0x7f,0xdf,0xe8,0xcf,0x8e,0xf5,0x7b,0xe,0xfe,0xdd,0x58,0x50,0xa1,0x61,0xc5,0xf4,0xcd,0x6f,0x7e,0xef,0xbe,0xff,0xf0,0xde,0xed,0xc7,0x5f,0xde,0x7c,0x93,0xde,0x78,0xe3,0xb7,0xf4,0xf2,0xcb,0x3f,0xa3,0x6f,0x7c,0xe3,0x3b,0xf4,0x81,0xf,0x7e,0x82,0xe,0x1c,0x3c,0x47,0xed,0x1d,0x4b,0x29,0x21,0xd1,0x22,0x41,0x30,0xc2,0xc0,0x9,0xf4,0x1c,0x0,0x60,0x7b,0x32,0x90,0x9f,0x76,0xb,0x50,0x28,0x1,0xa8,0x16,0x27,0x1,0x1d,0x1,0xd0,0xb9,0x93,0x12,0x8e,0x3f,0x4e,0xcf,0xfd,0xfa,0xb7,0x6f,0xfb,0xff,0x36,0xc,0x84,0x97,0x7e,0xf9,0x6,0xfd,0xc3,0x57,0x9e,0xa3,0x75,0x97,0x3e,0x43,0xf9,0xcb,0xee,0x0,0x80,0x8b,0x14,0x8a,0x85,0x1f,0xc9,0x0,0x40,0x31,0x6d,0x17,0xb0,0xd,0xb8,0x0,0x0,0x2e,0x0,0x80,0xb,0x0,0xe0,0x2,0x7,0x20,0xb1,0xe9,0x2,0x0,0xb8,0x0,0x0,0x2e,0x60,0xf1,0x8b,0x52,0xeb,0x2f,0x8a,0xac,0x17,0x1,0xc0,0x45,0xb1,0xf8,0xeb,0x2e,0xf1,0x32,0x6a,0x2f,0x1,0x0,0xb5,0x2c,0xcb,0x65,0xca,0x66,0xc9,0x85,0x6f,0x5b,0xfc,0xe6,0xcb,0x58,0xf8,0x97,0x78,0xf9,0xb2,0x2,0xde,0x45,0x2a,0xac,0x52,0xba,0x20,0x3b,0x2f,0x3b,0x27,0x2,0x2,0xa2,0x1,0x24,0x20,0x28,0xa8,0x38,0x83,0x4e,0x23,0x81,0x40,0x3e,0x10,0x10,0x1d,0xa3,0x3c,0x20,0x90,0xc7,0x10,0xc0,0x34,0x90,0x8b,0x69,0x20,0x57,0x37,0xd,0x64,0xcb,0x69,0x20,0xcb,0x60,0x1a,0x48,0x7,0x2,0x69,0x7c,0x1a,0xe0,0x97,0xb,0xdf,0xce,0xab,0x0,0xef,0xd4,0xb4,0x70,0x1f,0xce,0xd6,0x33,0x0,0x70,0x94,0x7d,0x37,0x1,0xe0,0xe8,0xe3,0x8f,0x7f,0xfc,0x13,0x3d,0xff,0xfc,0xb,0xf4,0xfe,0x27,0x3f,0x4a,0x8b,0x97,0x60,0xec,0x4e,0xc2,0x82,0x64,0x27,0xf6,0xd8,0x74,0xe0,0x2c,0xaa,0x1e,0xe9,0xf6,0x4f,0x5,0xd6,0x4e,0x0,0xda,0x57,0x4,0xd2,0x1,0xa0,0x4c,0x0,0x1e,0x6,0x0,0xf8,0x75,0x1,0x80,0x93,0x4f,0x0,0x80,0xdf,0xbd,0xa3,0xff,0x7b,0x30,0xc,0x7e,0xf4,0xd3,0xd7,0xe8,0xe6,0xb3,0xdf,0xa4,0xf6,0x6d,0x1f,0xa0,0xb8,0xee,0xcb,0x14,0xde,0xc2,0xb6,0x1,0x17,0x5,0x0,0xad,0x5a,0x0,0x2e,0x48,0x0,0x2e,0x52,0x32,0xab,0xe1,0x22,0x0,0x90,0x8b,0xbf,0xfe,0x12,0x2f,0xcd,0x7a,0x49,0x2e,0xfe,0xcb,0xbc,0x8c,0xda,0xcb,0x58,0xf8,0x6a,0xd9,0x16,0xb5,0x1c,0x2c,0xfa,0x5c,0x59,0x9e,0x2c,0xbf,0x5a,0x54,0x20,0x2b,0x4,0x2,0xac,0x22,0xde,0x45,0x2a,0xaa,0x12,0x15,0x3,0x82,0x62,0x20,0xa0,0x54,0x54,0x79,0xe,0xd,0xca,0x4,0x4,0x3c,0x40,0x50,0x28,0x21,0x28,0x0,0x4,0x5,0x1c,0x81,0xe3,0x1c,0x82,0x7c,0x9,0x41,0x5e,0xe9,0x61,0x8e,0x40,0xae,0x9c,0x6,0x72,0x38,0x4,0xa,0x2,0xbb,0x29,0xb,0x8,0xd8,0xa6,0x1,0x8e,0xc0,0x16,0x8e,0x40,0x5a,0xee,0xc6,0x77,0xea,0x32,0xe0,0xbb,0x7c,0xeb,0xf0,0x1e,0x2,0x40,0xfb,0xf1,0x26,0xf6,0xcc,0xcf,0x3d,0xf7,0x63,0xba,0x70,0xe1,0x36,0x95,0x57,0x4c,0x53,0xb7,0x9,0xe3,0x7d,0xbf,0x13,0x5,0x80,0xbd,0x1a,0x10,0x7b,0x25,0x20,0x39,0x1,0x8,0x0,0x5a,0x38,0x0,0x41,0x0,0x20,0xb0,0x6,0x0,0x74,0xef,0xa2,0x84,0x33,0x4f,0xd2,0x73,0xaf,0xbf,0xb3,0x0,0x68,0x3f,0x5e,0xfd,0xcd,0x1f,0xe8,0xe9,0xcf,0xff,0x80,0xfa,0x77,0x7d,0x98,0xe2,0x3b,0x2f,0x53,0x74,0x33,0x3,0xe0,0x22,0x0,0xb8,0x8,0x0,0x2e,0x52,0x22,0xab,0xe9,0x22,0xb6,0x1,0x12,0x80,0xc6,0x4b,0x0,0x0,0xb,0xbf,0xe1,0x92,0x4,0xe0,0x32,0x0,0xc0,0xc2,0xb7,0x5e,0xd6,0x0,0x70,0x85,0x32,0x59,0x35,0x57,0x28,0xb,0x65,0xb3,0x2c,0x57,0x28,0x7,0xe5,0x9a,0xaf,0x60,0xd1,0x8b,0xf2,0x65,0x5,0xb2,0xc2,0xea,0x2b,0x58,0xf0,0xac,0xcb,0xbc,0x62,0x59,0x9,0x20,0x28,0xa9,0x62,0x5d,0x94,0x5d,0x90,0x9d,0x17,0x1,0x82,0x62,0x20,0x20,0x1a,0x0,0x6,0x67,0xa9,0x8,0x8,0x14,0x1,0x81,0x42,0xde,0x49,0x2a,0x2c,0x17,0x10,0x14,0x30,0x8,0xca,0x18,0x4,0x40,0x0,0xd3,0x40,0x9e,0x9c,0x6,0x72,0x4b,0xe,0x72,0x4,0x72,0xe4,0x34,0x90,0xcd,0x11,0x10,0xd3,0x40,0x26,0x47,0x40,0x6c,0x9,0x30,0xd,0xdc,0x2f,0x0,0xde,0xe5,0xb,0xdc,0x19,0x0,0xc2,0xde,0x7b,0x0,0x68,0x3f,0x7e,0xf1,0x8b,0x5f,0xd1,0x8d,0x9b,0x4f,0x50,0x41,0x61,0x3b,0xb9,0xb9,0x25,0x8d,0x7d,0x9e,0x60,0xd4,0x16,0x20,0xdb,0x7e,0xb,0xe0,0x0,0x0,0xdb,0x33,0x1,0xb5,0x0,0x94,0x31,0x0,0xd6,0x90,0x6f,0xcf,0x6e,0x8a,0x1f,0xfc,0x20,0x3d,0xf7,0x9b,0xdf,0x3f,0xe8,0xff,0x29,0xe8,0xd7,0x6f,0xfc,0x91,0x9e,0xf8,0xd4,0x77,0xa9,0x69,0xcd,0xe3,0x14,0x8b,0xc5,0x1f,0x87,0x85,0x9f,0xd0,0x72,0x9,0x0,0xa0,0xa6,0x4b,0x0,0xe0,0x12,0x5f,0xfc,0x2,0x80,0xcb,0x0,0xe0,0x32,0x5f,0xfc,0x2,0x80,0x2b,0x0,0x0,0xd5,0x89,0x32,0x6a,0xaf,0x2,0x80,0xab,0x58,0xfc,0xa2,0x6c,0x94,0xc3,0xb2,0x5c,0xa5,0x5c,0x94,0x87,0xf2,0xcd,0xa2,0x2,0x54,0x28,0x2b,0x42,0xc5,0xa8,0x4,0x18,0x94,0x54,0x8b,0x4a,0x1,0x80,0xda,0x25,0x2a,0xab,0x62,0x5d,0xe4,0x95,0x2,0x1,0xd1,0x79,0x2a,0xad,0x14,0x10,0x94,0x0,0x81,0x12,0x20,0x50,0xcc,0x3b,0x4b,0xc5,0x12,0x82,0x22,0x4c,0x3,0x45,0x1c,0x82,0x13,0xe8,0x38,0x20,0x38,0x46,0x5,0x98,0x6,0x18,0x4,0xf9,0x40,0x20,0xf,0x8,0xe4,0x1,0x81,0x5c,0x36,0xd,0x14,0x33,0x8,0x18,0x2,0x62,0x4b,0xc0,0xa7,0x1,0xb9,0x25,0xc0,0x34,0xf0,0x20,0x6f,0x4,0x4a,0x71,0xf0,0xf9,0xdb,0x89,0xcd,0x18,0xe7,0x0,0xde,0x83,0x13,0x80,0xd1,0xc7,0xb,0x2f,0xbe,0x4c,0x3b,0x76,0x9e,0xa4,0x90,0xd0,0x2,0xc7,0xd3,0xc0,0xa8,0x9,0x20,0x9b,0xbf,0x1f,0xa0,0x73,0x0,0xd4,0xa,0x0,0x12,0x1,0x40,0xee,0x4c,0x0,0xb0,0x44,0x2,0xb0,0x87,0xe2,0x2f,0x7c,0x88,0x9e,0x7b,0xe3,0xc1,0x3,0xa0,0x7c,0xfc,0xe4,0xe7,0xbf,0xa1,0x63,0xc3,0x5f,0xa2,0x9c,0xbe,0x9b,0x14,0xdb,0x78,0x51,0x0,0xd0,0x7c,0x19,0x0,0x5c,0xc6,0xe2,0x17,0xa5,0xb0,0x38,0x0,0x57,0x78,0x2,0x80,0xab,0x58,0xfc,0xa2,0x8c,0xda,0x6b,0x0,0xe0,0x1a,0x65,0xb1,0x6a,0xae,0x1,0x80,0x6b,0x0,0xe0,0x1a,0xe5,0xa2,0x3c,0xcb,0x75,0xca,0xb7,0x5c,0xa3,0x2,0x59,0x21,0x2a,0x32,0x5f,0xc3,0xc2,0x17,0x95,0xa0,0x52,0xde,0x55,0x2a,0x53,0x2,0x4,0xe5,0xbc,0xcb,0x9a,0x2e,0x51,0x79,0x15,0x8b,0x61,0x70,0x1,0x9d,0x17,0x1,0x81,0x52,0xde,0x20,0x1a,0x0,0x6,0x67,0xa9,0xa4,0x82,0x75,0x6,0x18,0x48,0x8,0x30,0xd,0x14,0x71,0x8,0x4,0x2,0x5,0x1c,0x81,0xc3,0x1a,0x8,0xe,0x0,0x2,0x31,0xd,0xe4,0x0,0x1,0x65,0x1a,0xc8,0xc2,0x96,0x0,0xd3,0x80,0x2,0xc0,0x7b,0xfc,0x8,0x7e,0xaf,0xbd,0xb,0x4f,0x2,0xde,0xcb,0x7,0x3b,0x81,0xf8,0xec,0xb3,0x9f,0xa1,0xdc,0xbc,0x56,0x63,0x4,0x46,0xdd,0x9,0x98,0x2d,0xdf,0xc,0xd4,0x11,0x0,0x25,0x12,0x80,0x1a,0x1d,0x0,0xb3,0x4,0x0,0xb5,0x72,0x2,0xb8,0xf4,0x34,0x0,0xf8,0xc3,0x83,0xfe,0xf6,0xed,0x3e,0xd8,0x39,0x82,0xcf,0x7d,0xf5,0xc7,0xd4,0xb5,0xfe,0x29,0xbe,0xf8,0x5,0x0,0x57,0xb0,0xf8,0x45,0x29,0xac,0x86,0x2b,0x12,0x80,0xab,0x0,0x40,0x94,0x6e,0xbd,0x6,0x0,0xae,0x51,0x46,0x9d,0x2,0xc0,0x75,0xca,0x46,0x39,0x28,0x97,0x55,0x73,0x83,0xf2,0x50,0x3e,0x2a,0xb0,0xdc,0xc0,0xe2,0xbf,0x41,0x45,0xa8,0x18,0x28,0x94,0xa0,0x52,0x54,0x26,0x2b,0x7,0x2,0xac,0xa,0xde,0x55,0x11,0x10,0x10,0x5d,0xb6,0x55,0x9,0x4,0x2a,0x80,0x80,0xe8,0x2,0x40,0x38,0x2f,0x2,0x2,0x65,0x40,0xa0,0xc,0x8,0xb0,0x4a,0x81,0x40,0x29,0x10,0x28,0x1,0x2,0x25,0x40,0xa0,0x18,0xd3,0x40,0x31,0x10,0x28,0xc2,0x34,0x50,0x84,0x2d,0x41,0x21,0x87,0xe0,0x30,0x15,0x0,0x81,0x7c,0x39,0xd,0x70,0x8,0x18,0x2,0x98,0x6,0x72,0x80,0x40,0x36,0x47,0x60,0xa7,0x33,0x13,0xc0,0xdd,0x1e,0xa9,0xef,0xe5,0xc8,0xfd,0xe,0x83,0xf4,0x77,0x6,0x80,0xf2,0xf1,0xdd,0xef,0xfe,0x37,0x35,0xb7,0x2c,0xc4,0xf7,0xa8,0xdb,0xe,0x28,0x5b,0x0,0xe5,0x79,0x0,0x12,0x0,0xfb,0x9,0xa0,0x50,0xe4,0x68,0x2,0x48,0xd0,0x4c,0x0,0x0,0xc0,0xa7,0x17,0x13,0xc0,0xd5,0x8f,0xd0,0x73,0xbf,0x7d,0x77,0x1,0xa0,0x7c,0x3c,0xfd,0xd9,0x1f,0x50,0x6a,0xfb,0x35,0x0,0x70,0xc5,0xe,0x0,0x8e,0x40,0xc3,0x55,0x6c,0x3,0xae,0xa,0x0,0xea,0xaf,0x1,0x80,0x6b,0x1c,0x80,0xc,0xeb,0x75,0xca,0xac,0x63,0xdd,0x0,0x0,0x37,0x0,0xc0,0xd,0x0,0x70,0x3,0x0,0x60,0xf1,0xa3,0x7c,0x54,0x0,0x0,0xa,0x51,0x11,0x2a,0x46,0x25,0x40,0xa0,0x14,0x95,0xa1,0x72,0x54,0x1,0x0,0x58,0x95,0x4a,0x40,0xa0,0xca,0xd6,0x55,0xaa,0x2,0x2,0xa2,0xcb,0xb2,0x4b,0x54,0x5,0x8,0x2a,0x81,0x40,0xa5,0x84,0xa0,0x2,0x8,0x54,0x54,0xa,0x8,0xca,0x1,0x41,0x39,0x87,0xe0,0x2c,0x95,0x1,0x81,0x52,0x20,0x50,0xa,0x4,0x18,0x4,0x25,0xe5,0xc,0x82,0xe3,0xe8,0x18,0x20,0x38,0xa,0x8,0x8e,0x50,0x61,0x29,0x83,0xe0,0x10,0xe5,0x3,0x81,0x7c,0x20,0x90,0x7,0x4,0x72,0x39,0x2,0x7b,0xd0,0x2e,0xd7,0x73,0x1,0x6c,0x0,0xfc,0x9d,0x6c,0x1,0xf4,0x1f,0x2f,0xbe,0xf4,0x53,0xea,0xee,0x59,0x6e,0x7f,0x4e,0x40,0xbb,0x5,0x90,0xaf,0x5,0x30,0x1a,0x0,0x79,0xf4,0xb7,0x3,0x40,0x73,0x15,0x20,0xd1,0x1e,0x0,0xdf,0x69,0x0,0xe0,0xda,0x33,0xe3,0x2,0xf0,0xd7,0xbf,0xfd,0x8d,0xdf,0x1c,0x24,0x7a,0x8b,0xf7,0xd6,0xdf,0x9c,0xbb,0x59,0xe8,0x6e,0x3f,0xd8,0x39,0x81,0x5,0x7b,0x9f,0xa5,0xb8,0xc6,0xcb,0x1c,0x80,0x44,0x0,0x90,0xc4,0x17,0xff,0x55,0x9e,0x0,0xe0,0x1a,0x2f,0xad,0xfe,0x3a,0x0,0xb8,0xe,0x0,0xae,0x3,0x80,0x1b,0x94,0xc9,0x62,0x0,0xd4,0x29,0x0,0xdc,0x54,0x17,0x3f,0x3e,0x2f,0x44,0x45,0xa8,0xb8,0xe6,0x26,0x95,0xa0,0x52,0x54,0x86,0xca,0x81,0x41,0x5,0xaa,0x4,0x2,0x55,0xb2,0x6a,0x0,0x60,0xcb,0xcc,0xba,0x46,0x66,0xde,0x55,0x32,0x3,0x81,0x6a,0xde,0x65,0x11,0x10,0x60,0x55,0x1,0x81,0x2a,0x20,0x50,0x9,0x4,0x78,0x40,0xa0,0x2,0x8,0x54,0x0,0x1,0x6,0x41,0x79,0x85,0x80,0xa0,0x4c,0x42,0x50,0xa,0x4,0x4a,0x30,0xd,0x94,0x30,0x8,0x80,0x40,0x11,0x10,0x28,0x2,0x2,0x85,0x98,0x6,0xa,0x6c,0x8,0xec,0x47,0x7b,0x29,0xb7,0x68,0x8f,0xb,0x80,0xbf,0x77,0x0,0xd8,0xc7,0x8b,0x2f,0xfe,0x94,0x5a,0xd8,0x24,0xa0,0x6c,0x7,0xf4,0xe7,0x0,0x7c,0xb4,0x13,0x40,0xbe,0xfd,0x6d,0xc0,0x46,0x13,0x40,0x4c,0xbd,0xe,0x80,0xb5,0xe4,0xdb,0xb7,0x97,0xe2,0x6f,0x3c,0x4b,0xcf,0xfd,0xee,0x8f,0xfc,0xbf,0xf9,0x67,0x2c,0xf0,0x1f,0xbc,0xf6,0x5b,0xfa,0xd4,0x8f,0x7e,0x4e,0x43,0xff,0xf9,0x63,0x3a,0xf4,0xa5,0x1f,0xd0,0xda,0x4f,0x7f,0x8b,0xe6,0x7f,0xe4,0x6b,0x34,0xf3,0x83,0xff,0x46,0x33,0x3f,0xf0,0xaf,0x34,0xf3,0xfd,0x5f,0xa1,0x59,0x8f,0x7f,0x99,0x96,0x3c,0xf9,0xff,0x68,0xd3,0xd3,0xff,0x4e,0x47,0x3e,0xf5,0x2d,0x1a,0xfe,0xf2,0x7f,0xd3,0x27,0xbf,0xf3,0x13,0xfa,0xf6,0x4f,0x5e,0xa5,0x5f,0xfc,0xe6,0xf,0xf4,0x17,0x8c,0xf0,0xf7,0xfa,0x71,0xe7,0x99,0x6f,0x53,0x52,0xdb,0x35,0x4a,0xc0,0xe2,0x4f,0x68,0xbe,0xa,0x0,0xae,0x62,0xa,0xb8,0x2a,0x1,0xb8,0x6,0x0,0xd8,0xe2,0xbf,0x2e,0x62,0x0,0xd4,0xdf,0xe0,0x8b,0x5f,0x74,0x13,0x8b,0x5f,0x94,0x8d,0x72,0x39,0x0,0x37,0x1,0xc0,0x4d,0xe,0x0,0x5f,0xfc,0xa8,0x4,0x95,0xc9,0xca,0x51,0x5,0x10,0xa8,0x44,0x55,0xa8,0x9a,0x77,0x83,0xcc,0x16,0x91,0x85,0x77,0x9d,0x2c,0x66,0xa5,0x6b,0xe8,0x2a,0x59,0xaa,0x59,0x57,0xd0,0x65,0x80,0x80,0xaa,0x58,0x97,0xd0,0x45,0x60,0x70,0x81,0x57,0x85,0x49,0xa0,0xa,0x8,0x54,0xf2,0x6,0xd1,0x0,0x55,0x0,0x81,0xa,0x20,0x50,0xe,0x4,0xca,0x80,0x40,0x19,0x10,0x28,0x5,0x2,0xa5,0x40,0xa0,0x4,0x5b,0x2,0x1,0xc1,0x61,0x40,0xf0,0x10,0x20,0x38,0x4,0x8,0xe,0x0,0x2,0x86,0xc0,0x3e,0x17,0x0,0x77,0xb,0xc0,0x9f,0xfe,0xf4,0x67,0xfa,0xd6,0xb7,0xff,0x8b,0xfe,0xfd,0x6b,0xdf,0xa2,0xaf,0x7d,0xed,0xdb,0xf7,0xd6,0xd7,0xbf,0x4d,0xdf,0xfd,0xde,0x7f,0xd3,0x8f,0x7e,0xf4,0x22,0xfd,0xec,0x67,0xbf,0xa4,0xdf,0xfd,0xee,0xf7,0xf4,0xd7,0xfb,0xf0,0x83,0xaf,0xfd,0x60,0xdb,0x81,0xbc,0xbc,0x16,0x81,0x80,0x87,0xee,0x6d,0xc1,0xb4,0x5b,0x0,0xe5,0xed,0xc0,0x95,0xa3,0xbf,0x23,0x0,0x94,0x2d,0x40,0x39,0x0,0xa8,0x3,0x0,0xfd,0xfb,0x28,0x7e,0xe8,0xe3,0x36,0x0,0xbe,0xf3,0xeb,0xdf,0x51,0xda,0x13,0x5f,0x22,0xef,0xc1,0x8f,0x91,0xe9,0xf4,0xb3,0x64,0x3a,0xf5,0xc,0x99,0x8e,0x7f,0x84,0x4c,0x47,0x9e,0x26,0xd3,0xa1,0xf,0x91,0xe9,0xc0,0x7,0xc8,0xb4,0xf7,0x49,0x32,0xed,0x7c,0x82,0x4c,0x5b,0x1f,0x23,0xd3,0xa6,0x47,0xc8,0xb4,0xfe,0x61,0x32,0xad,0x7d,0x98,0xbc,0xd7,0x3f,0x42,0xe1,0x5b,0x9e,0xa0,0xfc,0x83,0x4f,0xd3,0x8c,0x2b,0x9f,0xa5,0x93,0x1f,0xfd,0x26,0x7d,0xee,0x7b,0x2f,0xd3,0xcf,0x5f,0xff,0xfd,0x84,0xa7,0x85,0xe7,0x5e,0x7c,0x95,0x6a,0x96,0xbe,0x8f,0x62,0x9b,0xc4,0xe2,0x17,0x0,0x5c,0x3,0x0,0xd7,0xf8,0xe2,0xe7,0x0,0x34,0x5e,0x7,0x2,0xc,0x80,0x1b,0x3c,0xe,0x40,0xbd,0x58,0xfc,0x99,0xb2,0x6c,0x94,0xc3,0x0,0xa8,0x1b,0xa2,0x3c,0x54,0x80,0xa,0x51,0x71,0xed,0x10,0x16,0xff,0x10,0x95,0x22,0xbe,0xf0,0x51,0x25,0xaa,0xaa,0x55,0x17,0xbf,0x19,0x59,0x34,0xd5,0x0,0x0,0x56,0x2d,0x10,0xe0,0x1,0x81,0x1a,0x20,0x20,0xba,0x4a,0x35,0x40,0x40,0x74,0x99,0x63,0x60,0x1,0x2,0x16,0x9,0x81,0x99,0x41,0x0,0x4,0x44,0xe7,0x80,0xc1,0x20,0x1a,0x0,0x4,0x67,0xa9,0x12,0x8,0x28,0x10,0x94,0x4b,0x8,0xca,0x80,0x40,0x29,0xb6,0x4,0x25,0x40,0xa0,0x18,0xd3,0x40,0x31,0x10,0x28,0x2,0x2,0x85,0x98,0x6,0x0,0x81,0xb,0x80,0xbb,0x5,0xe0,0x85,0x17,0x5e,0xa6,0xbc,0xfc,0x36,0xa,0xa,0xce,0xa7,0x29,0x21,0x5,0xf7,0x5c,0x58,0x78,0x9,0xc5,0x27,0x98,0x29,0x37,0xb7,0x95,0xea,0xac,0xb3,0x69,0xd1,0xa2,0x6d,0x74,0xf2,0xd4,0x75,0xfa,0xd4,0xa7,0xbf,0x48,0x2f,0xbd,0xf4,0xbf,0xfc,0x9a,0xff,0xbd,0x7e,0x7c,0xf8,0xe9,0x4f,0xe1,0xeb,0xcd,0x93,0xe7,0x0,0x34,0x2f,0x6,0xa2,0xbd,0xc,0xa8,0x3c,0x19,0x68,0x3c,0x0,0x12,0x5b,0xed,0x0,0xf0,0x61,0x0,0xc,0x7f,0x9c,0x9e,0xff,0xbd,0x0,0xe0,0xeb,0xaf,0xbe,0x41,0x41,0xb7,0x3e,0x47,0xa6,0x33,0x58,0xfc,0x67,0x3e,0xa,0x4,0xd0,0x49,0x7c,0x7e,0x4c,0x83,0xc0,0xfe,0xa7,0xc8,0xb4,0xfb,0xfd,0x64,0xda,0xf1,0x38,0x99,0xb6,0x0,0x81,0x8d,0x8f,0x92,0x69,0x1d,0x10,0x58,0x75,0x87,0x4c,0xcb,0x6f,0x91,0x69,0xc9,0x8,0x99,0x16,0xc,0x91,0x69,0xfe,0x10,0xf9,0x2f,0xbd,0x4d,0xf9,0xbb,0x3e,0x48,0x1b,0x6e,0x7f,0x89,0x3e,0xf9,0x1f,0x2f,0xd2,0x2b,0x6f,0xfc,0x71,0xdc,0xef,0xf7,0x2f,0x6f,0xbe,0x45,0x7b,0x2e,0x7f,0x81,0x62,0x70,0xe4,0x8f,0x6f,0xb9,0x2a,0x1,0x60,0xe7,0x1,0x24,0x0,0x4d,0xd7,0x1,0xc0,0x75,0x9,0xc0,0xd,0x9,0xc0,0x4d,0x4a,0xaf,0x17,0x29,0x0,0x64,0x59,0x87,0x0,0xc0,0x10,0xe5,0xa0,0x5c,0xeb,0x30,0xe5,0xa3,0x2,0x54,0x84,0x8a,0x51,0x69,0xdd,0x30,0x95,0xa1,0x72,0x54,0x89,0xaa,0x0,0x43,0x35,0x32,0xd7,0x8a,0x2c,0xc0,0xa0,0xa6,0x46,0x54,0xab,0xd,0x8,0xd4,0xf1,0xae,0x8b,0xcc,0xac,0x6b,0x0,0x1,0x61,0x1a,0xa8,0x5,0x2,0xa2,0xcb,0x54,0x53,0xc5,0xba,0x84,0x2e,0x2,0x83,0xb,0x3c,0x33,0x10,0x30,0x3,0x81,0x6a,0x20,0x50,0xd,0x4,0x18,0x4,0x55,0x15,0x2,0x82,0x4a,0x20,0x50,0x1,0x4,0xca,0x25,0x2,0x65,0x98,0x4,0x4a,0x81,0x40,0x9,0x47,0xe0,0x30,0x3a,0x44,0x45,0x25,0x7,0x5d,0x0,0xdc,0x2d,0x0,0xff,0xf3,0x3f,0x2f,0x51,0x62,0xa2,0x59,0x7d,0xb2,0xce,0x7d,0x4b,0xb9,0xdf,0x3f,0x9e,0x7f,0xee,0xeb,0x97,0xc5,0x9f,0xf,0xb0,0x74,0xd9,0x4e,0xfa,0xf8,0x27,0xfe,0x99,0xdf,0x1e,0x7c,0xb7,0x1f,0x7f,0xfe,0xf3,0x5f,0x68,0xed,0xba,0x3,0xf8,0x9e,0x53,0x47,0xbd,0x1a,0x90,0xdd,0x73,0x1,0xfc,0xb,0xc7,0x6,0x80,0x9f,0x3,0x68,0x15,0x57,0x1,0xb4,0x0,0xdc,0xfa,0x4,0x0,0xf8,0x93,0x4,0xe0,0xb7,0x14,0x74,0xe7,0x9f,0xc9,0x74,0xd6,0x1,0x0,0xf,0x31,0x0,0x30,0x5,0xec,0xc6,0x14,0xb0,0x83,0x4d,0x1,0xef,0xc3,0x14,0xa0,0x1,0x60,0xc5,0x6d,0x32,0x2d,0x3,0x2,0x8b,0x81,0xc0,0xc2,0x61,0x32,0xcd,0x3,0x4,0xb3,0x6e,0x90,0x69,0xc6,0x75,0xf2,0x9f,0x37,0x42,0xe6,0x3d,0x4f,0xd3,0x85,0x67,0xff,0x93,0x7e,0xfc,0xb3,0xdf,0xd0,0xdf,0x1c,0x4c,0x5,0x9f,0xfb,0xf7,0x17,0x28,0xb3,0x6f,0x98,0x62,0xb1,0xf8,0xe3,0x5b,0xb0,0x5,0x60,0xd9,0x0,0xb8,0x2e,0x1,0xb8,0xc1,0x63,0x0,0xa4,0x60,0xf1,0x33,0x0,0xd2,0x24,0x2,0x19,0xf5,0x43,0x0,0x60,0xc8,0x6,0x0,0x5b,0xfc,0x79,0x12,0x80,0x42,0xb9,0xf8,0x4b,0xac,0x23,0x54,0x8a,0xca,0x51,0x5,0xaa,0x44,0xd5,0xf8,0x7d,0x33,0xb2,0xd4,0x89,0x6a,0x50,0x2d,0x20,0x60,0xd5,0x1,0x83,0xba,0x1a,0x35,0x2b,0xb6,0x6,0x56,0x8b,0xd2,0x75,0xb2,0x9a,0x59,0xd7,0x44,0x40,0xa0,0xe,0x0,0x88,0x2e,0x53,0x1d,0x10,0xa8,0x5,0x2,0xb5,0x12,0x82,0x1a,0x6,0x1,0x10,0xb0,0x48,0x8,0xcc,0x12,0x82,0x6a,0x20,0x50,0x5,0x4,0xaa,0x80,0x40,0x25,0x10,0xa8,0x0,0x2,0xe5,0xd8,0x12,0x94,0x63,0x12,0x28,0x3,0x2,0xa5,0x40,0xa0,0x84,0x23,0xf0,0x90,0xb,0x80,0xbb,0x7,0xe0,0x27,0x94,0x98,0x64,0xb9,0xff,0xcf,0xd4,0x33,0xfc,0xfa,0x4,0xa,0xfe,0xfe,0xd9,0xd4,0xde,0xb1,0x84,0x3e,0x8d,0xa9,0xe0,0x2f,0x7f,0x79,0xf3,0xae,0x10,0x60,0x5b,0x81,0xc4,0x14,0x2b,0x99,0xdc,0xd3,0xed,0x27,0x0,0xbf,0x89,0x0,0x50,0x4f,0xde,0xda,0x9,0x80,0x9d,0x4,0x9c,0xbe,0x9f,0x12,0xee,0x7c,0x6a,0x62,0x0,0xb0,0x6d,0xc0,0x1e,0x65,0x1b,0xa0,0x0,0xf0,0x88,0x31,0x0,0xf3,0xd1,0x1c,0x20,0x30,0xfb,0x26,0xb9,0xcd,0x0,0x4,0x7d,0xd7,0xc9,0xbb,0xef,0x6,0x15,0xac,0x7d,0x3f,0x9d,0x7e,0xea,0xeb,0xf4,0xc2,0xcf,0x7f,0x63,0xf7,0x7d,0xbe,0xf2,0xfa,0x1f,0x68,0xc6,0xae,0x67,0x28,0xa,0x47,0xfd,0xb8,0xd6,0x6b,0x1a,0x0,0xae,0x3,0x80,0xeb,0x12,0x80,0x1b,0xa2,0xc6,0x9b,0x98,0x2,0xc4,0xe2,0x57,0x1,0x18,0x12,0x0,0xa0,0xac,0xfa,0x61,0xca,0x41,0xb9,0x28,0x1f,0x15,0xd4,0xb3,0xa3,0xff,0x8,0x0,0x10,0x8b,0xbf,0x4c,0xb3,0xf8,0xab,0x38,0x0,0x0,0xa,0x59,0x50,0xd,0x20,0xa8,0x45,0x75,0x75,0x22,0x2b,0x26,0x3,0x2b,0x20,0xa8,0xc7,0xe2,0xb7,0xb,0x0,0x88,0xae,0x53,0xbd,0x59,0xe9,0x1a,0x8f,0x41,0x60,0x5,0x2,0x56,0x20,0x60,0xad,0x62,0x10,0x5c,0xe2,0xd5,0x2,0x81,0x5a,0x20,0x50,0x3,0x0,0x6a,0x38,0x4,0xe7,0xd0,0x20,0x20,0x18,0x20,0x33,0x10,0xa8,0x6,0x2,0xd5,0x40,0xa0,0xa,0x8,0x54,0x2,0x81,0xa,0x20,0x50,0x81,0x69,0xa0,0x1c,0x8,0x94,0x1,0x81,0xd2,0xd2,0xc3,0x2e,0x0,0xee,0x1e,0x80,0x97,0x24,0x0,0x4e,0xdc,0x7a,0x7b,0xdf,0x4a,0xe2,0x10,0x84,0x60,0xcb,0x70,0xf0,0xd0,0x79,0xfa,0xf5,0xeb,0xbf,0x19,0xff,0xb,0xd5,0x7d,0xb0,0xa3,0xe5,0xee,0xbd,0x3,0xa3,0x1,0xb0,0x9b,0x0,0x8c,0xb7,0x0,0x6e,0xfc,0x2a,0x80,0xd8,0x2,0x78,0x27,0x1,0x80,0xbc,0x59,0xfc,0x8d,0x41,0xd9,0x49,0x40,0x1f,0x0,0x90,0x8,0x0,0x7e,0xa8,0x0,0xf0,0x1a,0x0,0x78,0xf8,0xf3,0x0,0xe0,0xa3,0xa2,0x33,0xe,0x26,0x0,0x23,0x0,0x56,0x63,0xa,0x58,0x1,0x4,0x96,0x1,0x81,0xc5,0x40,0x60,0xe1,0x88,0x6,0x80,0x21,0x72,0x9b,0x79,0x93,0x3c,0xa6,0xdf,0xe0,0x0,0xf8,0xf6,0x5c,0xa3,0xc0,0x9e,0xeb,0x54,0xb9,0xee,0x49,0xba,0xf3,0xc9,0xef,0xd2,0xeb,0xbf,0x13,0xff,0xfd,0x1b,0x4f,0xff,0x27,0xc5,0x76,0x5c,0xa7,0xd8,0xb6,0xeb,0x0,0xe0,0x3a,0x0,0xb8,0xe,0x0,0x44,0x89,0xcd,0x37,0x0,0x80,0x5c,0xfc,0x4d,0x37,0x75,0x0,0xc,0x1,0x80,0x21,0x4a,0x6f,0x50,0x0,0x18,0xa6,0xec,0xfa,0x11,0x0,0x30,0x42,0x79,0x1c,0x80,0x11,0x2a,0x44,0x45,0xa8,0x4,0x95,0xa1,0x72,0x54,0x89,0xaa,0x50,0x35,0x32,0xd7,0x2b,0x8b,0x7f,0x4,0x8b,0x7f,0x4,0x5b,0x3a,0x16,0x16,0x3f,0xaa,0xaf,0x13,0x35,0x0,0x1,0x1e,0x16,0xbf,0xda,0xd,0x6a,0x0,0x2,0x8d,0x2c,0x0,0xd0,0xc0,0xbb,0x26,0x2,0x2,0xf5,0x40,0x80,0x57,0xc5,0x20,0xb8,0x24,0xbb,0x8,0xc,0x2e,0x50,0x2d,0x0,0xa8,0xe5,0x10,0x9c,0x43,0x83,0x80,0x60,0x80,0x2c,0x40,0xc0,0xc,0x4,0xcc,0x40,0xa0,0x1a,0x8,0x54,0x1,0x81,0x4a,0x20,0x50,0x9,0x4,0x2a,0xb0,0x25,0x28,0x2f,0x3b,0xe2,0x2,0xe0,0xee,0x1,0xf8,0xc9,0x3,0x0,0x40,0xfd,0x7a,0x3d,0x3c,0x53,0x68,0xe5,0xca,0x3d,0xf4,0xeb,0x5f,0x4f,0x1c,0x81,0x6f,0x7e,0xf3,0xfb,0x14,0x19,0x5b,0x2d,0xee,0x5,0x70,0x12,0x0,0x77,0xdd,0x39,0x0,0x3e,0x1,0xe4,0xa9,0x5b,0x0,0x36,0x1,0x24,0x3e,0xfc,0x69,0xfa,0xd1,0x1f,0x74,0x0,0xc,0x68,0x0,0x38,0xf5,0xac,0x7a,0x22,0x50,0xf,0xc0,0x36,0x6,0xc0,0x63,0x2a,0x0,0x2b,0xd,0x0,0x98,0x3b,0xac,0x1,0xe0,0x26,0x79,0xf7,0xdf,0x20,0xff,0x69,0x37,0x28,0xa8,0x17,0x75,0x5d,0xa3,0x8,0x3c,0x2e,0x38,0xfa,0x49,0xfa,0xd0,0xe7,0xfe,0x3f,0xaa,0x5c,0xfa,0x38,0x45,0xe1,0xc8,0x6f,0x3,0xa0,0x95,0x2d,0xfe,0x1b,0x3c,0x5,0x80,0x24,0xb6,0xf8,0x6d,0x0,0xc,0xf1,0xc5,0x2f,0x0,0x18,0x6,0x0,0xc3,0x94,0x81,0x32,0x1b,0x46,0x28,0x1b,0xe5,0xa2,0x3c,0x54,0x80,0xa,0x51,0x71,0xc3,0x2d,0x2a,0x45,0x65,0xf8,0xbc,0x2,0x55,0x36,0x68,0x16,0x3f,0xaa,0x41,0xb5,0xa8,0xe,0x59,0x59,0x40,0xa0,0x5e,0xd6,0x0,0x8,0x1a,0x80,0x40,0x23,0xb,0x8,0x34,0x62,0xf1,0xab,0x49,0x0,0x50,0x93,0x59,0x40,0x20,0xba,0x46,0x8d,0x40,0xa0,0x1,0x0,0xf0,0x80,0x40,0x3d,0x0,0x10,0x5d,0x4,0x4,0x17,0xc8,0x5a,0x79,0x81,0xea,0x38,0x4,0xe7,0xd0,0x20,0x20,0x18,0xa0,0x1a,0x20,0x60,0x1,0x2,0x16,0xe,0xc1,0x29,0xaa,0x6,0x2,0x55,0x12,0x81,0xca,0xb2,0x63,0x2e,0x0,0xde,0x93,0x0,0x28,0x8,0x78,0xa4,0xd0,0xfe,0xfd,0x83,0x13,0xde,0xe,0xb0,0x2b,0x18,0xd3,0x67,0x6e,0xc0,0x14,0x90,0xe6,0xdc,0x39,0x80,0x29,0x65,0xa3,0xde,0x15,0xc8,0x5b,0xb9,0xc,0xc8,0x26,0x0,0x76,0xe,0x60,0xc6,0x1,0x4a,0x7a,0xf4,0x1f,0xed,0x1,0x78,0x44,0x1,0xe0,0x63,0x6,0x0,0x7c,0xd8,0x0,0x80,0x47,0xef,0x1a,0x80,0x29,0xdd,0x37,0x28,0xb4,0xeb,0x3a,0x4d,0xed,0xc0,0xb8,0xdf,0x3b,0x44,0xd1,0x38,0xfa,0xc7,0xb4,0x6b,0x26,0x80,0xd6,0x1b,0x3a,0x0,0x6e,0xca,0x86,0x80,0xc0,0x90,0x0,0xa0,0x51,0xf,0xc0,0x8,0x65,0x69,0x0,0xc8,0xe7,0x0,0xdc,0xa2,0x22,0x54,0x22,0x1,0x28,0x47,0x15,0xa8,0xa,0x55,0x23,0x33,0xaa,0x41,0xb5,0xf8,0xb3,0x75,0x32,0x6,0x40,0x3d,0x6a,0x60,0x1,0x80,0x46,0xde,0x30,0xaf,0x9,0x8,0x34,0xd5,0xb2,0x86,0xa8,0x9,0x0,0x88,0xb0,0xf8,0x2d,0x32,0x33,0xeb,0xba,0xec,0x1a,0x35,0x1,0x81,0x46,0xde,0x15,0x6a,0x4,0x2,0xd,0x3c,0x81,0x40,0xbd,0x44,0xc0,0xa,0x4,0xea,0x80,0x40,0x1d,0x10,0xa8,0x5,0x2,0xb5,0x40,0xa0,0x46,0x22,0x60,0x1,0x2,0x66,0x20,0x50,0xd,0x4,0xaa,0xca,0x8f,0xbb,0x0,0x78,0xcf,0x2,0x20,0xbf,0x6e,0xb6,0x1d,0xf8,0xd4,0xa7,0xbe,0x30,0x21,0x0,0xd8,0xc7,0xcd,0xe1,0x27,0xc9,0x8d,0x1f,0xfd,0x95,0xf7,0x4,0xc8,0x95,0x2f,0xb,0x56,0x60,0x3c,0x1,0x84,0x99,0x47,0x4f,0x0,0xb9,0xb3,0x54,0x0,0x66,0x1e,0xa0,0xe4,0x47,0xff,0x89,0xfe,0xc7,0xe,0x80,0x2f,0x68,0x26,0x0,0x20,0x70,0xa,0x8f,0xc7,0x9f,0x21,0xd3,0xd1,0x7f,0x90,0x0,0x7c,0x10,0x0,0x3c,0xa5,0xd9,0x2,0x3c,0x36,0x6,0x0,0x23,0x1a,0x0,0x86,0x24,0x0,0x37,0xed,0x0,0x98,0xa,0x0,0xc2,0x3b,0xaf,0x53,0x4,0x16,0x7f,0x54,0xc7,0xd,0xe,0x40,0x4c,0xdb,0xd,0x8a,0x43,0xf6,0x0,0xdc,0xe4,0x29,0x0,0x24,0x69,0x1,0x68,0x1c,0xe6,0x0,0xf0,0xa3,0x7f,0x23,0x0,0x40,0x39,0x28,0x17,0xe5,0x37,0xde,0xa2,0x42,0x54,0x84,0x4a,0x50,0x19,0xaa,0x40,0x95,0xa8,0x1a,0x99,0x91,0x5,0xd5,0xa0,0x5a,0x54,0x7,0x8,0xac,0xa8,0x1e,0x35,0x34,0x8,0x0,0x1a,0x65,0x4d,0x56,0xa5,0x61,0x6a,0xae,0x93,0x1,0x81,0x66,0x0,0x20,0xba,0x41,0xcd,0x16,0x99,0x99,0x75,0x5d,0xc6,0x10,0x10,0x10,0x34,0x49,0x4,0x44,0x97,0x0,0xc1,0x45,0x5e,0x3d,0x10,0xa8,0x7,0x2,0x56,0x20,0x60,0x5,0x2,0x75,0x40,0xa0,0xe,0x8,0xd4,0x2,0x80,0x1a,0x6c,0x7,0x18,0x2,0x16,0x20,0x60,0x2e,0x3f,0xe1,0x2,0xe0,0x3d,0xd,0x0,0xff,0xda,0x13,0xa8,0xa3,0x73,0x29,0xbd,0xf1,0xc6,0xc4,0x9e,0x86,0xfb,0xcd,0xff,0xfc,0x3e,0x85,0x47,0x57,0xd9,0x9e,0xb,0xa0,0x2,0xa0,0xdb,0x2,0x4,0x3a,0xd8,0x2,0x24,0x8d,0x6,0x20,0xe5,0x31,0x6,0xc0,0x9f,0x25,0x0,0xbf,0x53,0x1,0x38,0x33,0x6,0x0,0x7b,0x19,0x0,0xef,0xc7,0x4,0xf0,0xb8,0x0,0x60,0xbd,0xe,0x80,0x25,0xc,0x80,0x5b,0x63,0x0,0x70,0x53,0x33,0x1,0xdc,0x0,0x0,0x37,0x28,0x12,0x8b,0x5f,0x0,0x70,0x3,0x13,0x80,0x1e,0x0,0xb6,0xf8,0x87,0x78,0xca,0xe2,0x17,0x13,0xc0,0x30,0x2f,0x4d,0x96,0x81,0x5,0xcf,0x0,0xc8,0x96,0x0,0xe4,0x61,0x41,0x17,0xc8,0xc5,0x5f,0x8c,0x4a,0x51,0xb9,0x5c,0xfc,0x55,0x12,0x0,0xbb,0xc5,0x8f,0xac,0xa8,0x1e,0x35,0xb0,0x80,0x40,0x23,0xf,0x8b,0xbe,0x5e,0xd4,0x6c,0x15,0xb5,0x0,0x81,0x96,0x3a,0x59,0x2d,0x6b,0x88,0x5a,0x80,0x40,0xb,0x10,0x68,0xb1,0xc8,0xcc,0x4a,0xd7,0xd1,0x35,0x6a,0xae,0x66,0x5d,0x45,0x57,0xa8,0x9,0x0,0x88,0x2e,0x71,0x8,0x1a,0x19,0x4,0x40,0xa0,0x1,0x8,0xd4,0x3,0x81,0x7a,0x20,0x60,0x95,0x8,0xd4,0x1,0x81,0x5a,0x20,0x50,0x53,0xce,0x11,0x70,0x1,0x70,0xef,0x0,0xbc,0x3,0x57,0x1,0xc6,0xf9,0xda,0x3,0x2,0x72,0xe8,0x1f,0xff,0xf1,0x5f,0x26,0x4,0xc0,0xab,0xaf,0xbd,0x4e,0xe5,0xd5,0x33,0xc5,0x4d,0x41,0x7c,0x2,0xc8,0xb3,0x7f,0x35,0xa0,0x51,0x5b,0x0,0xcd,0x93,0x81,0x6c,0x0,0x88,0x2d,0x40,0x90,0x2,0xc0,0xfb,0x3e,0x43,0x3f,0xd6,0x2,0xf0,0xe8,0x17,0x74,0xe7,0x0,0x74,0x0,0x1c,0x70,0x6,0x80,0xdb,0x3a,0x0,0x86,0x25,0x0,0x43,0x1c,0x0,0x3f,0x2d,0x0,0xdd,0x46,0x0,0xdc,0xc4,0x16,0xe0,0xa6,0x4,0xe0,0x26,0x1a,0xe2,0xd9,0x3,0x80,0xc5,0xdf,0xa4,0x2,0x90,0x8e,0x5,0x9f,0x81,0x45,0xab,0x0,0x90,0x8b,0xcf,0xb5,0x0,0x28,0x47,0x7f,0x2d,0x0,0xa3,0x8e,0xfe,0x3a,0x0,0x1a,0x65,0x4d,0xd,0x2c,0x2c,0xfc,0x7a,0x51,0x8b,0x55,0xad,0x15,0x0,0xf0,0x6a,0x59,0x43,0xd4,0xa,0x4,0x5a,0x81,0x40,0xab,0x45,0x66,0x56,0x12,0x8,0xb4,0x54,0xb3,0xae,0xa2,0x2b,0xd4,0xc,0x0,0x44,0x97,0x0,0xc1,0x45,0x8e,0x40,0xa3,0x44,0xa0,0x41,0x22,0x50,0xf,0x4,0xac,0x40,0xc0,0xa,0x4,0xea,0x80,0x40,0x6d,0xc5,0x29,0x17,0x0,0xef,0x79,0x0,0xf8,0xd7,0x9f,0x40,0x9b,0x37,0x1f,0x99,0x10,0x0,0x7f,0x7d,0xeb,0x2d,0x5a,0xb0,0x78,0xa7,0x38,0xf,0xa0,0x9c,0x3,0xf0,0xd3,0x3,0x50,0x24,0xb7,0x0,0x65,0x62,0xb,0xa0,0xbc,0x2d,0x58,0x4c,0x3,0x0,0x68,0x13,0x27,0x1,0x2b,0x4,0x0,0xbe,0x33,0xf,0xda,0x3,0xf0,0xeb,0xbb,0x0,0x60,0x33,0x3,0xe0,0x51,0x32,0xad,0x61,0x0,0x3c,0xec,0x14,0x0,0x62,0x2,0xb8,0x69,0x0,0xc0,0x4d,0x0,0x80,0x6c,0x0,0xdc,0x74,0x0,0xc0,0x30,0x7,0x20,0x59,0x2,0x90,0xca,0x1,0xb8,0xc5,0x1,0xc8,0x42,0xd9,0x88,0x1,0xa0,0x8c,0xff,0xec,0xe8,0x5f,0xd2,0x4,0x0,0x9a,0x6e,0x53,0x5,0x1e,0x2b,0xf1,0x58,0x8d,0xcc,0xa8,0x6,0xd5,0xe2,0xf7,0xea,0xf0,0x68,0xc5,0x63,0x7d,0x93,0x3c,0xfa,0x2b,0x8b,0x1f,0x35,0xb3,0x80,0x40,0xb,0x10,0xe0,0x1,0x81,0x56,0xab,0xd2,0x30,0xb5,0xb1,0x80,0x40,0x5b,0x2d,0x6b,0x88,0xda,0x80,0x40,0x1b,0x10,0x68,0xb3,0xc8,0xcc,0x4a,0xd7,0xa9,0x15,0x0,0x88,0x80,0x40,0xd5,0x15,0x74,0x99,0xc7,0x10,0x50,0x20,0x68,0x2,0x2,0x8d,0x40,0xa0,0x11,0x8,0x34,0x0,0x81,0x6,0x20,0x50,0x2f,0x11,0xb0,0x56,0x9c,0x76,0x1,0xf0,0xf7,0x2,0x40,0x65,0x55,0xdf,0x84,0xaf,0x8,0x3c,0x74,0xf4,0x8a,0x6d,0x2,0x10,0x8b,0x5f,0x7,0x40,0x60,0x91,0x3a,0x1,0x8c,0x2,0x40,0x73,0x19,0x50,0x4e,0x0,0xa9,0xa3,0x0,0xf8,0x22,0x0,0xf8,0x98,0x38,0x9,0x78,0x76,0x8c,0x2d,0xc0,0x2e,0x3d,0x0,0x8f,0x48,0x0,0xee,0xe8,0x0,0x18,0x71,0xc,0x40,0xcf,0x4d,0x0,0x70,0x53,0x2,0x70,0xd3,0x0,0x80,0x21,0xdb,0xe2,0x57,0x0,0x48,0xc4,0xa2,0x57,0x1,0x18,0xc1,0x14,0x30,0x42,0xa9,0x28,0x1d,0xb,0x37,0x3,0x65,0xa1,0x1c,0x94,0x8b,0x5,0x9d,0x8f,0xa,0x51,0x31,0x2a,0x45,0xe5,0x1c,0x80,0xdb,0x54,0x25,0x17,0xbf,0xc5,0x6,0x0,0x5b,0xfc,0xb7,0xb1,0xf8,0x45,0xd,0xf8,0xfb,0x8d,0xa8,0xa9,0x49,0x5,0xa0,0x85,0x5,0x4,0x5a,0x79,0x58,0xf8,0x40,0xa0,0x8d,0x65,0x95,0x1,0x80,0x76,0x56,0x2d,0x6b,0x88,0xda,0x81,0x40,0x3b,0x16,0xbf,0x2d,0xd,0x2,0x6d,0x0,0xa0,0x4d,0x22,0xd0,0xa,0x4,0x5a,0x25,0x2,0x2d,0x0,0xa0,0x5,0x0,0x34,0x57,0x5d,0xe0,0x8,0x34,0x49,0x4,0x1a,0x19,0x2,0x15,0x3,0xe8,0x2c,0x20,0x38,0xe3,0x2,0xe0,0xef,0x3,0x80,0x24,0x8a,0x8a,0x2e,0xa7,0xef,0x7f,0xff,0xb9,0x9,0x1,0x30,0x72,0xfb,0x43,0x76,0x4f,0x6,0x12,0x0,0xe4,0x8f,0x2,0xc0,0x7d,0x4a,0xb9,0xfa,0xae,0x40,0xf2,0x8d,0x41,0x6d,0x5b,0x0,0x39,0x1,0xf8,0xcc,0x3a,0x48,0xa9,0x4f,0x7c,0xd6,0x1e,0x80,0xc7,0x24,0x0,0xa,0x2,0xa7,0xc7,0x39,0x7,0xa0,0x7,0x60,0xb9,0x16,0x80,0x5b,0x1a,0x0,0x86,0x25,0x0,0x43,0xf6,0x0,0x74,0x31,0x0,0x6e,0x52,0x64,0xa7,0xe,0x80,0xb6,0x21,0x20,0x30,0x44,0xf1,0x76,0x0,0xc,0xf3,0x6c,0x47,0x7f,0x9,0x40,0x1a,0x16,0x2a,0x3,0x20,0xd3,0x6,0xc0,0x6d,0xca,0x43,0x5,0xa8,0x8,0x95,0xa0,0x32,0x9,0x0,0x3f,0xfa,0x37,0xcb,0xa3,0x7f,0xb3,0x58,0xfc,0x75,0x1a,0x0,0x1a,0x50,0x23,0x6a,0xe2,0x61,0xf1,0x37,0xc9,0xc5,0x8f,0x5a,0x1b,0x15,0x0,0x6e,0x51,0x5b,0x83,0x0,0xa0,0x9d,0x65,0x65,0x49,0x0,0x50,0x47,0x2d,0x4b,0x20,0xd0,0x81,0x49,0xa0,0x43,0x83,0x80,0xe8,0x3a,0xb5,0x4b,0x4,0xda,0x80,0x40,0x1b,0x10,0x68,0x93,0x10,0xb4,0x4a,0x4,0x5a,0x0,0x40,0x33,0xef,0x3c,0x20,0x38,0x87,0x6,0xa9,0x51,0x20,0xe0,0x2,0xe0,0xde,0x1,0x78,0xc0,0x27,0x1,0x65,0xec,0x96,0xe1,0x7f,0xfa,0xcc,0x97,0x26,0x4,0xc0,0x3f,0x3c,0xf3,0x19,0xf2,0xf4,0xcf,0xd5,0x3c,0x1d,0x58,0x1,0x20,0x7f,0xec,0x9,0x20,0x76,0xf4,0x16,0xc0,0x31,0x0,0x1f,0x95,0x0,0x7c,0x5c,0x5,0xe0,0x88,0xfe,0x2a,0xc0,0xdb,0x8,0x40,0xfb,0x90,0x1d,0x0,0x2,0x81,0x61,0x4a,0xb0,0x3,0x40,0x3d,0xfa,0x6b,0x1,0xc8,0x1e,0x3,0x0,0xe5,0xe8,0xcf,0x0,0xb0,0x34,0x4b,0x0,0x90,0x15,0xd5,0x37,0xeb,0x17,0xff,0x6d,0x2c,0xfe,0xdb,0x2,0x0,0xd4,0xda,0x24,0x0,0x68,0x63,0x35,0x88,0xda,0x1b,0x4,0x0,0x1d,0x2c,0x2b,0xb,0xb,0xbf,0x4e,0xd4,0x59,0xcb,0x1a,0x2,0x0,0x37,0x39,0x0,0x3c,0xb3,0xb6,0xeb,0xd4,0x1,0x0,0xda,0x79,0x57,0xa9,0x9d,0x23,0x70,0x19,0x5d,0xe2,0x8,0xb4,0x4a,0x4,0x5a,0x0,0x40,0x33,0x0,0x68,0x96,0x8,0x34,0x55,0xc,0xb8,0x0,0xb8,0x77,0x0,0xde,0x5,0x13,0x0,0x72,0x73,0x4f,0xa1,0xc7,0x9f,0x78,0x66,0x42,0x0,0xfc,0xd3,0x67,0xbf,0x42,0xbe,0xc1,0x85,0xf6,0x4f,0x7,0x56,0xde,0x1c,0x64,0xd4,0x4,0xc0,0x0,0xb0,0xc8,0x77,0x6,0x6,0x0,0xc9,0xfa,0x73,0x0,0xd8,0x2,0x3c,0xfe,0x59,0x7a,0x61,0x22,0x13,0xc0,0x1,0xdd,0x16,0x60,0x93,0x3,0x0,0x16,0xdd,0xd6,0x0,0x30,0x32,0xa,0x80,0xe0,0xde,0x21,0x9a,0xd2,0x2d,0xb7,0x0,0x5d,0x5a,0x0,0x86,0x78,0xb1,0x76,0x0,0xc,0xdb,0x1,0x90,0x64,0x7,0xc0,0x2d,0xe,0x80,0x32,0xfe,0x67,0x63,0xd1,0x1a,0x8e,0xff,0x58,0xe0,0x95,0xa8,0x8a,0x1d,0xfd,0x25,0x0,0x6c,0xf1,0xd7,0x69,0x1,0x40,0x8d,0xa8,0xa9,0x59,0x59,0xfc,0xb7,0xb1,0xf8,0x6f,0x63,0xf1,0xdf,0xe6,0x0,0xb4,0x35,0x9,0x0,0xda,0x59,0xd,0xa2,0x8e,0x6,0x9,0x40,0xbd,0x0,0xa0,0x93,0x55,0x27,0x3,0x0,0x9d,0x35,0xac,0x9b,0xd4,0x9,0x0,0x78,0x66,0x6d,0x2,0x1,0x5e,0x95,0x40,0xa0,0x5d,0x22,0x20,0xba,0x48,0xad,0x40,0xa0,0x15,0x8,0xb4,0x48,0x4,0x9a,0x2b,0x6,0x5d,0x0,0xdc,0x3d,0x0,0x2f,0xbd,0xab,0x0,0x60,0x5f,0xc7,0x8d,0x1b,0x8f,0x4f,0x8,0x80,0x2f,0x7d,0xf9,0xeb,0x14,0x10,0x5a,0xac,0xbe,0x2d,0xb8,0xf6,0xdd,0x81,0xc6,0xdd,0x2,0xe8,0x0,0xc0,0x4,0x90,0xf6,0xc4,0xe7,0x8c,0x1,0x38,0xab,0x1,0xe0,0xc4,0x18,0x0,0x38,0x9a,0x0,0x1c,0x1,0xd0,0xc7,0x0,0x18,0xd2,0x0,0x30,0x4,0x0,0x86,0x0,0xc0,0x10,0x0,0x18,0x1a,0x17,0x80,0x24,0xe,0xc0,0x88,0xd,0x80,0x31,0xc7,0x7f,0x2c,0xe4,0x12,0x54,0xd6,0xac,0x2,0x50,0x2d,0x1,0x50,0x8e,0xfe,0x75,0x2d,0x0,0xa0,0xc5,0x0,0x0,0xd4,0xd2,0xac,0x2c,0xfe,0xdb,0x58,0xfc,0xb7,0x39,0x0,0xed,0x4d,0x12,0x0,0xd4,0xc1,0x92,0x8,0x74,0x2,0x80,0x4e,0xeb,0x88,0x0,0x0,0x75,0x1,0x80,0xae,0x5a,0xd6,0x10,0x75,0xd5,0xb0,0x6e,0x52,0x17,0x0,0xe0,0x99,0x45,0xa,0x2,0x9d,0x0,0xa0,0x53,0x22,0xd0,0x21,0x11,0x68,0x7,0x0,0xed,0x12,0x81,0x36,0x89,0x40,0x2b,0x0,0x68,0xa9,0x74,0x1,0x70,0xf,0x0,0xbc,0xbb,0x26,0x0,0xb6,0x15,0x39,0x77,0xfe,0xd6,0xc4,0x0,0xf8,0xca,0x37,0xec,0x1,0x50,0x4e,0x2,0xda,0x1,0x50,0xa4,0x99,0x0,0x6a,0xc8,0x83,0xbd,0x33,0xb0,0x9c,0x0,0x2,0xf3,0x67,0x53,0x70,0xc5,0xb2,0xb1,0x1,0x18,0x74,0x2,0x0,0xb6,0x5,0xd8,0xca,0x0,0x78,0x9f,0xe,0x80,0x87,0xc7,0x4,0xc0,0xc7,0xe,0x80,0x21,0x1,0x40,0xa7,0x1e,0x80,0x61,0x0,0x30,0xc,0x0,0x86,0xf9,0xe2,0xb7,0x7,0x60,0x84,0x27,0x0,0xc0,0xd1,0xbf,0x59,0xb,0xc0,0x6d,0xca,0xc1,0xa2,0xcd,0x43,0x5,0xcd,0xf6,0x0,0x54,0x30,0x0,0xb0,0xd0,0xab,0x5b,0xe4,0xf8,0xdf,0xa2,0x59,0xfc,0xa8,0x1,0x35,0xa2,0xa6,0x16,0xb1,0xf8,0x6d,0x0,0x34,0x2b,0x8b,0xff,0x36,0x16,0xff,0x6d,0xe,0x40,0x47,0x93,0x5c,0xfc,0x12,0x80,0x4e,0x6,0x80,0x44,0xa0,0xcb,0xca,0x1a,0x16,0x49,0x4,0xba,0x81,0x40,0x37,0x43,0xc0,0x72,0x93,0xba,0x1,0x40,0xb7,0x59,0x45,0x80,0x57,0x7d,0x1d,0x31,0x4,0xae,0x52,0x27,0x0,0xe8,0xe0,0x5d,0x46,0x97,0x24,0x4,0x2,0x81,0x36,0x81,0x80,0xb,0x80,0xbf,0x27,0x0,0xae,0x5c,0x79,0x74,0x42,0x0,0x7c,0xfe,0x8b,0x5f,0x25,0xff,0x29,0x45,0xba,0x73,0x0,0x5,0xea,0x39,0x80,0x0,0x2d,0x0,0x16,0xbe,0x5,0xb0,0x1,0xc0,0x27,0x80,0xd9,0x98,0x0,0x74,0x0,0xfc,0x71,0x9c,0x2d,0xc0,0x84,0x0,0x60,0x13,0xc0,0x1d,0x7,0x0,0xc,0xdb,0x0,0x8,0x9a,0x20,0x0,0xac,0xc4,0x96,0x11,0x7b,0x0,0x9a,0x25,0x0,0x28,0x13,0xb,0x35,0x1b,0xe5,0xa2,0x7c,0x54,0x88,0x8a,0x51,0xa9,0x3c,0xfa,0x57,0x60,0x61,0x57,0xb5,0xdc,0x21,0x33,0xb2,0xa0,0x5a,0x54,0x87,0xac,0xa8,0x1e,0x35,0xa0,0x46,0xc4,0x1,0x68,0x11,0x8b,0xdf,0x6,0x40,0xb3,0xa,0x40,0x87,0x2d,0x2c,0xfc,0x46,0x19,0x10,0xe8,0x2,0x0,0xbc,0x7a,0x15,0x80,0xee,0x3a,0x99,0x4,0x80,0xa7,0x41,0x40,0xed,0x3a,0x75,0x4b,0x4,0xba,0x30,0x5,0x74,0x1,0x80,0x4e,0x0,0xd0,0x89,0xc5,0xdf,0xc1,0xbb,0x48,0xed,0x0,0xa0,0x1d,0x0,0xb4,0xb9,0x0,0xf8,0x3b,0x2,0x0,0x3d,0xf2,0xc8,0x87,0x27,0x4,0xc0,0xc7,0x3e,0xf1,0x79,0xf2,0xe,0xcc,0xb7,0x7f,0x4d,0x40,0xfe,0x8a,0x40,0x9a,0x9,0x20,0xb0,0xd0,0xe,0x0,0x77,0xe,0x40,0xa3,0x66,0xb,0xa0,0x1,0xe0,0xfd,0x46,0x0,0x7c,0xd4,0x49,0x0,0x9e,0x20,0xd3,0xa6,0xf1,0x0,0xb8,0xe5,0x18,0x80,0x1e,0x3d,0x0,0xc3,0x63,0x0,0x30,0x82,0xfd,0xbf,0x88,0x3,0x80,0x45,0x9f,0x2a,0x1,0xc8,0xc0,0x2,0x35,0x4,0x0,0xb,0x9a,0x3,0xd0,0xc2,0x8e,0xfe,0x77,0x1c,0x2,0xa0,0x2e,0xfe,0x3b,0x58,0xfc,0x77,0x4,0x0,0xa8,0x55,0xc6,0x0,0x68,0x97,0x29,0x0,0x74,0x32,0x0,0x24,0x2,0x5d,0xd,0x4a,0x23,0xd4,0x5d,0x2f,0x63,0x0,0xa0,0x1e,0x0,0xd0,0x53,0xcb,0x1a,0xa2,0x9e,0x1a,0x19,0x10,0xe8,0xc1,0xc2,0xb7,0xab,0x5a,0x20,0xd0,0xd,0x4,0xba,0x25,0x2,0x5d,0x12,0x81,0x4e,0x89,0x40,0x87,0x40,0xc0,0x5,0xc0,0xdd,0x3,0xf0,0xee,0x3a,0x7,0xe0,0xed,0x93,0x41,0x1f,0xfb,0xd8,0x67,0x27,0x4,0xc0,0x63,0x8f,0x3f,0x23,0x9e,0xf,0xe0,0x23,0x4e,0xfe,0x99,0xfc,0x74,0x57,0x1,0x24,0x2,0x1c,0x80,0x70,0x79,0xe,0x40,0x1,0x20,0xb9,0x9d,0x2,0xf2,0xe5,0x4,0x60,0x5d,0xc7,0x1,0x48,0xd7,0x1,0x10,0x6c,0x37,0x1,0x7c,0x5c,0xdc,0xc,0xf4,0x36,0x0,0xc0,0xb6,0x0,0x21,0x76,0x0,0xc,0x4b,0x0,0x86,0xd,0x0,0x18,0x11,0x0,0xb4,0xe8,0x1,0xb8,0xd,0x0,0x6e,0x73,0x0,0xb2,0x6c,0x0,0xdc,0xa1,0x2,0x2c,0x62,0x3e,0xfe,0xe3,0xb1,0xc,0x95,0x23,0x6,0x40,0xb5,0x4,0xa0,0xa6,0x15,0x0,0xa0,0x3a,0x64,0x45,0xd,0xa8,0x11,0x35,0xb5,0xa,0x0,0x5a,0x50,0x2b,0xf,0x8b,0x5f,0x66,0x3,0xa0,0x99,0x2d,0x7e,0x25,0x2c,0x7a,0x56,0xa3,0xa8,0xbb,0x81,0x35,0x42,0x3d,0xf5,0x32,0x6,0x80,0x44,0xa0,0x17,0x0,0xf0,0x14,0x0,0x30,0x5,0xf4,0x9a,0x45,0x2,0x81,0xeb,0x1c,0x81,0x1e,0x9,0x80,0x48,0x20,0xd0,0x25,0x11,0xe8,0xac,0xe4,0x8,0xb8,0x0,0xb8,0x77,0x0,0xde,0x5,0x97,0x1,0xe5,0xd7,0xff,0x1f,0xff,0xf1,0xdd,0x9,0x1,0x70,0xea,0xcc,0x10,0x99,0x3c,0x32,0x6c,0x0,0x8c,0x3a,0x9,0xe8,0xc,0x0,0x95,0x2a,0x0,0xfa,0x9,0xc0,0xe,0x80,0x81,0x8f,0x8d,0x3,0xc0,0xe3,0x77,0x1,0xc0,0xf0,0x5d,0x1,0x90,0xa0,0x1,0x20,0x59,0xf,0x40,0xb,0x3,0xe0,0xe,0xf6,0xff,0x77,0xb0,0xff,0x7,0x0,0xa8,0x8,0xb,0x58,0x1,0xa0,0x42,0x1e,0xfd,0xab,0xb1,0xc0,0x2d,0xad,0x2a,0x0,0x6c,0xf1,0xd7,0xeb,0x1,0x40,0x2d,0xa8,0x15,0xb5,0xb5,0x88,0xda,0x19,0x0,0x2d,0x62,0xf1,0x73,0x0,0x34,0x8,0x30,0x0,0xba,0x1b,0x65,0xa,0x0,0xd,0xf6,0x0,0xf4,0x72,0x0,0x86,0x6d,0x0,0xf0,0x80,0x40,0xaf,0x6,0x81,0x5e,0x0,0xd0,0x5b,0x2d,0x62,0x8,0xf4,0x0,0x80,0x1e,0x0,0xd0,0xcd,0xbb,0xc4,0x11,0xe8,0x2,0x0,0x9d,0x2e,0x0,0xb4,0xb,0x68,0x62,0xef,0xb,0xf0,0xae,0xba,0xf,0x0,0x5f,0x43,0x5e,0x5e,0x2b,0x7f,0x41,0x51,0x67,0x3f,0xd8,0xb,0x83,0xac,0x58,0x7d,0x40,0xdc,0xa,0x2c,0x2f,0xff,0x19,0x5e,0x6,0xd4,0x1,0xe0,0xa1,0x5,0x20,0x6f,0x36,0x5,0x3,0x80,0x60,0x2b,0xb6,0x0,0xb3,0xf,0x61,0x2,0xf8,0xe7,0xd1,0x5b,0x80,0xc1,0x89,0x9e,0x3,0x78,0xc,0x0,0x0,0x81,0x95,0x8f,0xc8,0x93,0x80,0x63,0x0,0xd0,0x7f,0x3f,0x0,0xb8,0x85,0xfd,0xff,0x6d,0xe,0x40,0x7a,0x8b,0xe,0x80,0x16,0x39,0x1,0x68,0x1,0xc0,0x62,0xae,0x42,0x66,0x9,0x80,0xf6,0xe8,0x5f,0xaf,0x59,0xfc,0x7a,0x0,0x14,0x4,0xda,0x51,0x47,0x8b,0x66,0xf1,0x37,0xb3,0x85,0x2f,0x16,0x3f,0x7,0x40,0x83,0x40,0x4f,0xc3,0x2d,0xe,0x40,0x6f,0xbd,0x8c,0x1,0x20,0x11,0x98,0x56,0xcb,0x1a,0xa2,0x69,0x35,0x32,0x20,0x30,0xd,0x8b,0xdf,0x56,0xb5,0x82,0xc0,0x35,0xea,0xe5,0x0,0x28,0x8,0x5c,0xe6,0x8,0x74,0xb,0x4,0x5c,0x0,0xa8,0x0,0xbc,0x87,0xcf,0x1,0x98,0x12,0x68,0xc1,0x82,0x2d,0x13,0x7a,0xe1,0xd0,0xdf,0xbc,0xf1,0x5b,0xaa,0xa9,0x9f,0x2f,0x6f,0x5,0xce,0xd1,0xbd,0x28,0xa8,0x93,0x0,0xe4,0x4b,0x0,0xf8,0x39,0x80,0x43,0xc6,0x5b,0x80,0x89,0x0,0xc0,0xef,0x3,0x78,0x4c,0x4e,0x0,0x1a,0x0,0x16,0x8e,0x5,0xc0,0xb0,0xd,0x80,0xa9,0x5d,0x6,0x0,0xb4,0x8d,0x1,0x40,0xcb,0x2d,0x1b,0x0,0x69,0x2d,0x2,0x0,0xb1,0xff,0xbf,0x43,0xb9,0x58,0xa8,0xf9,0xa8,0x10,0xf1,0xfd,0x3f,0x1b,0xff,0x5b,0xed,0x1,0xd0,0x8e,0xff,0x8e,0x8e,0xfe,0xb6,0x9,0x40,0x26,0x0,0xb8,0x43,0x9d,0x2d,0x1a,0x0,0x9a,0x6f,0xab,0x8b,0x1f,0xf5,0xb0,0x1a,0x65,0x40,0xa0,0x57,0x22,0x30,0xcd,0xca,0xc2,0xc2,0xaf,0x93,0x39,0x4,0xe0,0xba,0xa8,0x5a,0x49,0x20,0xd0,0xb,0x0,0x7a,0x78,0x97,0x14,0x4,0x5c,0x0,0xdc,0x3d,0x0,0xef,0x9e,0x2d,0x80,0x87,0x67,0x2a,0x3d,0xfa,0xe8,0xd3,0x4e,0x7f,0xed,0xec,0xe3,0x7b,0xdf,0x7f,0x9e,0xa2,0xe3,0x2d,0xf2,0x56,0xe0,0x1c,0xdd,0xb,0x82,0x4c,0x10,0x0,0xbe,0x5,0x18,0x3,0x80,0x41,0x67,0xb7,0x0,0x8f,0x39,0x9e,0x0,0x16,0xd8,0x3,0xe0,0x69,0x7,0xc0,0x30,0x0,0x18,0x96,0x0,0xc,0x8f,0x1,0xc0,0x88,0x6,0x80,0x5b,0xbc,0x24,0x94,0xd2,0xa2,0x1,0x0,0x8b,0x33,0xbb,0xc5,0x0,0x80,0x56,0x1,0x40,0x65,0xeb,0x5d,0x8c,0xff,0xca,0xe2,0x47,0x1d,0xad,0xa,0x0,0x2,0x81,0x2e,0x9,0x40,0x37,0x4b,0x7,0x40,0x6f,0xa3,0x5c,0xfc,0x68,0x5a,0xbd,0x8c,0x1,0x20,0x11,0xe8,0xc3,0x14,0xd0,0x87,0xc5,0x6f,0xb,0x8,0xf4,0x1,0x80,0x3e,0x2c,0x7e,0x5e,0xb5,0x88,0x1,0x30,0xd,0x0,0x4c,0xb3,0x21,0x70,0x99,0x23,0xd0,0xe3,0x2,0xe0,0x5e,0x0,0x78,0x97,0x6c,0x1,0xf0,0xdf,0xcf,0x2f,0x68,0xa3,0x97,0x5f,0xfe,0xd9,0x84,0x0,0x78,0xf4,0xb1,0x8f,0x90,0x3b,0x7b,0x1a,0x30,0x3f,0x9,0x78,0x37,0x0,0xb4,0xd9,0xb6,0x0,0xfc,0x1c,0x0,0xdb,0x2,0x3c,0xe9,0x60,0xb,0xc0,0x1,0xf8,0xb8,0x78,0x4d,0x0,0x43,0x0,0x9e,0x1c,0x1f,0x80,0xf9,0xa3,0x1,0xf0,0xed,0xd3,0x0,0xd0,0x2d,0x1,0xe8,0x72,0x6,0x0,0xb9,0xf8,0x71,0xf4,0x4f,0xc6,0x22,0x1c,0x13,0x0,0x2c,0xd8,0x12,0x54,0x26,0x8f,0xfe,0x7a,0x0,0xea,0xee,0x6,0x80,0x56,0x1,0x40,0x17,0x3,0xa0,0x45,0x2e,0x7e,0xe,0xc0,0x6d,0xb1,0xf8,0x51,0x6f,0x93,0x2,0x80,0x68,0x9a,0x44,0xa0,0xcf,0xca,0x1a,0x16,0x1,0x81,0x7e,0x4c,0x1,0xfd,0x35,0x22,0x15,0x80,0x1b,0x2a,0x4,0x12,0x81,0xbe,0x2a,0x5,0x81,0x2b,0x40,0xc0,0x5,0xc0,0x7d,0x4,0xe0,0xc1,0x6e,0x1,0xd8,0xcb,0x82,0x9d,0x9f,0xe0,0xd,0x40,0xec,0x25,0xc4,0xe6,0x2f,0xdc,0x8e,0xbf,0x2f,0x5f,0x12,0x4c,0xb9,0xfc,0xa7,0xbd,0xa,0x20,0x17,0xbf,0xd,0x80,0x30,0xd,0x0,0x71,0x6,0x13,0xc0,0xec,0x87,0xc,0x0,0xf8,0x17,0x9,0xc0,0xc7,0xc7,0x1,0x40,0x7b,0x12,0xf0,0x5e,0x0,0x18,0xb6,0x4d,0x0,0xd1,0x0,0x20,0x9a,0x3,0x30,0x22,0x1,0x18,0x19,0xd,0x40,0x8b,0x3d,0x0,0x19,0x58,0x94,0xc,0x80,0x9c,0x16,0xcd,0xfe,0x5f,0x7,0x80,0x76,0xff,0x3f,0x11,0x0,0xda,0xf5,0x0,0xb4,0x32,0x0,0xee,0xd8,0x1,0xd0,0xc3,0x92,0x8,0x28,0x0,0x4c,0x63,0x69,0x1,0xa8,0x77,0xc,0x0,0xf,0x8,0xf4,0x63,0xf1,0xf7,0xcb,0x29,0xa0,0xbf,0x5a,0xd4,0x87,0x29,0xa0,0x4f,0x4e,0x1,0xa,0x2,0xbd,0x2e,0x0,0xde,0xe3,0x0,0x60,0xef,0xdf,0xda,0xb6,0x88,0x7e,0xf5,0xab,0x57,0x27,0x4,0xc0,0xf7,0x31,0xfe,0xc7,0x25,0xd5,0xd9,0x5e,0x14,0xd4,0xf6,0xae,0xc0,0xbe,0xe3,0x1,0x60,0x19,0x3,0x80,0x43,0x94,0x81,0x2d,0xc0,0x8b,0x12,0x80,0x6f,0xb0,0x2d,0xc0,0xa3,0xf2,0x3e,0x0,0xdb,0x4,0xc0,0x5e,0x19,0xd8,0x59,0x0,0x1e,0x1e,0xff,0x24,0xe0,0x38,0x0,0xc4,0x38,0x9,0x40,0xaa,0x6,0x80,0x2c,0x5,0x0,0x2c,0xd0,0x82,0x56,0x15,0x0,0xfd,0xfe,0xdf,0xee,0x4,0x60,0x1b,0x0,0x40,0x8d,0x6d,0xf,0x53,0x13,0x6a,0x46,0x2d,0xf8,0x35,0xcb,0x8,0x80,0x4e,0x5,0x0,0xd4,0xcd,0x0,0x68,0x91,0x8b,0x5f,0x7,0xc0,0xb4,0x26,0x2d,0x0,0x2,0x81,0x3e,0x39,0x5,0xf4,0x3,0x80,0xfe,0x3a,0xd1,0x74,0x89,0xc0,0x74,0x3b,0x0,0x64,0xd5,0xa,0x2,0x2,0x80,0x3e,0x17,0x0,0xf7,0xb,0x80,0x7,0x7c,0x1f,0x0,0x16,0x7f,0x56,0x76,0x13,0x7d,0xe3,0x1b,0x13,0xbb,0xf4,0xc7,0x3e,0x4e,0x9e,0xba,0x29,0x2e,0xff,0xd9,0xde,0x18,0xc4,0x60,0xb,0xa0,0x5,0x20,0xa4,0xc2,0x7e,0xb,0x30,0xa,0x0,0x71,0x15,0x20,0x3,0x13,0x80,0x2,0xc0,0x2b,0x7f,0x7e,0x93,0xce,0x7d,0xfb,0x45,0xea,0xfe,0xc8,0xbf,0x53,0xc2,0xd0,0x67,0xc9,0x93,0x4d,0x1,0xca,0x8b,0x82,0xde,0x87,0x9,0xc0,0x19,0x0,0x6c,0x13,0x0,0x16,0xbf,0x2,0x40,0x82,0xe,0x80,0x14,0x9,0x40,0xba,0x16,0x80,0x56,0x15,0x80,0xe2,0x56,0xfb,0xfd,0xbf,0xdd,0x9,0x40,0x2c,0xf0,0x3a,0x2c,0x76,0x2b,0x6a,0x40,0xf6,0x0,0x3c,0xc,0x9c,0x59,0x6,0xe3,0xbf,0x6,0x0,0x36,0x5,0x68,0x1,0xe8,0x65,0x35,0x29,0x49,0x0,0x50,0x5f,0x3,0x4b,0x0,0xd0,0x5f,0x2f,0x1,0x50,0x10,0xa8,0x15,0x8b,0x9f,0x67,0x41,0xe6,0x9b,0x48,0x4c,0x1,0xfd,0x9a,0x29,0xa0,0xbf,0x4a,0x41,0xe0,0xa,0x10,0xb8,0x8c,0x5c,0x0,0xdc,0x7,0x0,0x1e,0xc4,0xcb,0x82,0x27,0x50,0x4e,0x6e,0xb,0x7d,0xfe,0xf3,0xff,0x3a,0xe1,0xc5,0xff,0xc2,0x8b,0x3f,0xa5,0xdc,0x82,0x4e,0xfb,0xf7,0x5,0x50,0x0,0x50,0x2e,0x1,0x6a,0x1,0x8,0x50,0xcf,0x1,0x78,0x38,0x38,0x9,0x18,0x64,0x0,0x80,0xf2,0xf1,0xc7,0xbf,0xbe,0x45,0xcf,0xbd,0xf6,0x3b,0xfa,0xc0,0xf,0x7e,0x4a,0xeb,0xff,0xe9,0x3b,0x54,0x76,0xe7,0xb,0x14,0x8c,0xad,0x80,0xdb,0x21,0x0,0xb0,0x4f,0x79,0x55,0xe0,0x71,0x4e,0x2,0x1a,0x5c,0x5,0x70,0xb4,0x5,0x88,0xb0,0x3,0x60,0xc4,0x0,0x80,0x5b,0x1a,0x0,0x6e,0x6b,0x0,0x10,0xe3,0xbf,0x2,0x40,0x7e,0xab,0xd8,0xff,0xeb,0x1,0xa8,0x56,0x0,0xc0,0xe2,0xae,0x45,0xc,0x80,0xfa,0x31,0x0,0x68,0x93,0xb5,0xb7,0xe9,0xc6,0x7f,0x65,0x2,0x90,0x53,0x40,0x4f,0xcb,0x68,0x0,0xa6,0xc9,0x29,0xa0,0xaf,0x51,0x2e,0x7e,0x99,0x16,0x80,0xe9,0x7c,0x2,0x10,0x53,0x80,0x8a,0x80,0x0,0x60,0x3a,0x16,0xff,0x74,0x9,0xc0,0x74,0x39,0x5,0xf4,0xcb,0x29,0x40,0x22,0xe0,0x2,0xe0,0xee,0x1,0x78,0x0,0x5b,0x0,0x60,0xe3,0xe9,0x99,0x4a,0x9d,0x5d,0xcb,0xe8,0x3f,0xbf,0xf5,0x5f,0x13,0x5e,0xfc,0xec,0xe3,0xe8,0xb1,0x2b,0xea,0xd1,0x7f,0xac,0x9,0x40,0x7b,0x12,0x90,0x4f,0x0,0xe6,0xb1,0xaf,0x2,0xe8,0xb6,0x0,0x46,0x1f,0xec,0x1d,0xbc,0x5e,0xfd,0xc3,0x9f,0xe9,0xff,0xfd,0xe4,0x15,0x1a,0xfc,0xca,0x7f,0x53,0xef,0xe3,0x5f,0xa1,0x24,0x60,0xe0,0xc5,0x5e,0x13,0x80,0xdd,0x3,0xc0,0xdf,0x1b,0xf0,0x51,0x7,0x0,0xdc,0x36,0x4,0x20,0x0,0x0,0x4c,0x31,0x2,0xa0,0x5d,0x3,0x40,0x9b,0x31,0x0,0xf6,0x27,0x0,0x5,0x0,0xd9,0x58,0x90,0xb9,0x1a,0x0,0x8c,0x4e,0x0,0x9a,0xb1,0xa0,0x15,0x0,0xac,0x4e,0x0,0xd0,0xae,0x1,0xa0,0xd3,0x10,0x80,0x3b,0x1c,0x80,0xde,0x66,0x35,0x65,0xf1,0xdb,0x0,0x90,0x8,0xf4,0xdb,0x0,0x18,0xa1,0xe9,0xa,0x0,0x72,0x1b,0x30,0xa3,0x46,0x66,0x3,0x40,0x26,0x1,0x98,0x2e,0x1,0xe8,0x97,0x0,0xf4,0xb9,0x0,0x78,0xf,0x0,0x60,0x12,0xef,0x6,0xe4,0xee,0x9e,0x4c,0xd9,0x39,0xcd,0x74,0xe9,0xd2,0xc3,0xf4,0xea,0xab,0xbf,0xbe,0xab,0xc5,0xff,0xb5,0xaf,0x7d,0x8b,0xe2,0x13,0x2c,0xea,0xd1,0xdf,0xd1,0x4,0xa0,0xb9,0x11,0xc8,0x5d,0x1,0x80,0x9f,0x3,0xa8,0xb5,0x1,0xe0,0x63,0x4,0x80,0xc1,0x4,0x30,0xd6,0xc7,0x9f,0xde,0x7c,0x8b,0x7e,0xf4,0xca,0x6f,0xe9,0xc3,0xdf,0x7e,0x89,0x36,0xff,0xc3,0xd7,0xa9,0xe2,0xdc,0x27,0x29,0x64,0xc7,0x53,0xe4,0xb6,0xfa,0x11,0x71,0x17,0xe0,0xd2,0x3b,0xce,0x1,0xd0,0x73,0x37,0x0,0xdc,0x1e,0xd,0x40,0xab,0xa,0x80,0x76,0xff,0xaf,0x3d,0x1,0x58,0x8d,0xc5,0x6c,0x31,0x2,0xa0,0x1d,0x0,0xb4,0x4b,0x0,0xf0,0xd8,0xd2,0x6e,0xf,0x40,0x7,0x3,0xa0,0xcd,0x60,0xf1,0xcb,0x38,0x0,0x12,0x81,0x69,0x1c,0x0,0xcd,0x4,0x80,0xfa,0x1,0x40,0x7f,0xc3,0x2d,0x15,0x80,0x7a,0x9,0x80,0xd5,0x8,0x0,0x84,0x85,0x3f,0x63,0x14,0x0,0xa8,0xea,0x9a,0xb,0x80,0x77,0x2d,0x0,0x26,0x65,0xc1,0x2b,0x6f,0x10,0x9a,0x48,0xc1,0x53,0xf2,0xa9,0xb6,0x76,0x16,0x5d,0xb8,0x70,0x9b,0xbf,0x23,0xb1,0xa3,0x37,0xc2,0x1c,0xef,0xe3,0x15,0xa0,0xd1,0xd3,0xb3,0x5c,0xfc,0x37,0xd8,0xc9,0x3f,0xcf,0x71,0x0,0x8,0xd4,0x5d,0x6,0xc,0xb3,0x9f,0x0,0x7c,0xec,0xb6,0x0,0xca,0x4,0x30,0x31,0x0,0xb4,0x1f,0xec,0xdb,0x7a,0xed,0xf7,0x7f,0xa6,0xaf,0xfe,0xf8,0x97,0x74,0xf1,0x73,0xdf,0xa7,0xfe,0xeb,0xff,0x4c,0x29,0xbb,0x3f,0x4c,0xde,0xcb,0x1f,0x51,0xc7,0xff,0x39,0x63,0x3,0x10,0xa6,0x0,0xd0,0xa1,0x3,0xc0,0x70,0xb,0x0,0x0,0x5a,0x25,0x0,0x58,0x80,0xe9,0xad,0x2,0x0,0xfd,0xfe,0x7f,0x2c,0x0,0xf8,0xfe,0x1f,0xb,0xbd,0xbe,0x5d,0x3,0x40,0xbb,0x6,0x0,0xd4,0xd6,0xae,0x3,0xa0,0x6d,0x34,0x0,0x3d,0x1c,0x80,0x3b,0x1c,0x80,0x69,0x2d,0x12,0x0,0x39,0x5,0xf4,0x69,0x1,0x68,0x94,0x0,0xa0,0xe9,0x12,0x80,0x19,0x2c,0x0,0x30,0x3,0xdb,0x0,0x1b,0x0,0x2c,0xf3,0x4d,0x89,0xc0,0x75,0xde,0xe8,0x29,0x80,0x1,0x70,0xc5,0x5,0xc0,0xdd,0x3,0xa0,0xbc,0x3b,0x70,0xc2,0x3d,0xbf,0x23,0x30,0x7b,0x35,0x1f,0x2f,0xef,0xc,0xa,0x8,0xcc,0xa5,0xe8,0x98,0xa,0x2a,0x2c,0xea,0xa4,0x99,0xb3,0xd6,0xd3,0x99,0x33,0x37,0xe9,0xcb,0x5f,0xf9,0x3a,0xbd,0xfe,0xfa,0x1b,0x77,0xb5,0xa8,0x94,0xf,0xf6,0xae,0xc0,0x7,0xe,0xc,0xf2,0x4b,0x86,0x26,0xf7,0x54,0xd,0x0,0x19,0x1a,0x0,0x72,0x75,0xe7,0x0,0xc6,0xbe,0xf,0xc0,0x70,0x2,0x18,0x67,0xb,0x30,0xa1,0xaf,0x19,0xd3,0xc1,0xb,0xbf,0xfa,0x2d,0x3d,0xf3,0x8d,0x17,0x68,0xd3,0xfb,0xfe,0x8d,0xa,0xf7,0x7e,0x84,0xfc,0x16,0x61,0x4b,0x30,0x63,0x98,0xdc,0xa6,0x3b,0x2,0x60,0x4,0x0,0x8c,0x0,0x80,0x11,0xbe,0xf8,0x1d,0x1,0xc0,0xf7,0xff,0xad,0x12,0x0,0x2c,0x3e,0x6,0x40,0x6,0xca,0xd2,0x0,0x50,0xa8,0x1,0x40,0x5c,0x1,0x78,0x98,0xaa,0xb0,0x90,0xcd,0x12,0x0,0xbe,0xff,0x6f,0x37,0x0,0xa0,0x4d,0x2c,0x7e,0xbb,0x2d,0x40,0x3b,0x3,0xe0,0x61,0xbe,0xf8,0x3b,0xf1,0xa8,0x5,0xa0,0x47,0x93,0x1e,0x80,0x3e,0x43,0x0,0x6e,0xd1,0x74,0x9,0xc0,0xc,0x96,0x2,0x0,0x47,0x60,0x88,0x66,0xd6,0x88,0xd8,0x36,0x40,0xb,0xc0,0xc,0xd,0x0,0xd3,0x25,0x0,0xfd,0x2e,0x0,0xee,0x1e,0x0,0xf6,0x36,0xdd,0x4f,0x3e,0xf9,0x31,0x1a,0x19,0x79,0x92,0x46,0x6e,0x3d,0x75,0x4f,0xbd,0xef,0xf1,0x8f,0xd0,0x33,0xcf,0xfe,0x13,0x7d,0xe9,0xcb,0x5f,0xa3,0x1f,0xfc,0xe0,0x87,0xf4,0xab,0x5f,0xbd,0x76,0xd7,0xef,0xfe,0xab,0xff,0x78,0xeb,0xad,0xb7,0xe8,0xc6,0xcd,0x27,0x80,0x4b,0x8e,0x0,0x47,0x1,0xc0,0x6e,0xb,0x90,0xad,0x79,0x1e,0x40,0x81,0xe,0x80,0xe2,0xd1,0x57,0x1,0x14,0x0,0xf2,0xec,0xef,0x3,0x98,0xe8,0x16,0xc0,0xd9,0xf,0x36,0xf5,0xfc,0xe2,0xf5,0x3f,0xd0,0x27,0xbf,0xf9,0x12,0xad,0x1d,0xf9,0x32,0xa5,0xaf,0x7f,0x8a,0xbc,0xa6,0x8f,0x90,0x57,0xef,0x10,0x5,0xf4,0x3a,0xf,0x40,0xc2,0x28,0x0,0xee,0x50,0xaa,0x1,0x0,0xa3,0x4f,0x0,0x3e,0x4c,0x95,0x6d,0xf6,0x0,0xd4,0xb4,0x4b,0x0,0xe4,0x16,0xa0,0x71,0xac,0x9,0x80,0x1,0xd0,0xfe,0xb0,0x58,0xfc,0x6c,0x2,0x68,0xd3,0x1d,0xfd,0x6d,0x0,0xdc,0x11,0x0,0xa0,0x3e,0xe,0x80,0x8a,0x40,0xbf,0x44,0x60,0xba,0x6,0x80,0xe9,0x56,0x9,0x80,0x75,0x34,0x0,0x33,0x25,0x0,0x33,0x35,0x0,0x88,0x4,0x0,0x12,0x1,0x17,0x0,0x77,0xb,0xc0,0x7b,0xe1,0x83,0x2d,0xfe,0x87,0x1f,0xfe,0x10,0x4d,0xc5,0xf7,0x66,0xdb,0xaa,0xd8,0x0,0xc8,0x30,0x0,0xa0,0xc0,0x18,0x0,0x7,0x13,0x40,0x60,0xfe,0x9c,0x77,0x4,0x0,0xed,0xc7,0x5f,0xdf,0xfa,0x1b,0xfd,0xcf,0xcf,0x7e,0x43,0xd7,0x3e,0xf9,0x3d,0x6a,0xd8,0xf3,0x2c,0x85,0xce,0xb8,0x4d,0x81,0x5d,0x43,0x4e,0x2,0xa0,0x8e,0xff,0x49,0x58,0x70,0x2,0x80,0xdb,0x7c,0xfc,0xcf,0x68,0x1d,0x7d,0x2,0x50,0xf,0x40,0xb5,0x76,0x2,0x68,0xb7,0x9f,0x0,0x8c,0x0,0x50,0x16,0xbf,0x21,0x0,0x6d,0xf6,0x0,0xf4,0x2a,0x69,0x1,0x68,0x36,0x2,0x60,0xc4,0x86,0x80,0x6d,0x2,0x40,0x33,0x1,0xc0,0x4c,0x3b,0x0,0x10,0xb6,0x1,0xc,0x80,0x99,0xa3,0x0,0x50,0x10,0x70,0x1,0xf0,0x77,0xb,0x0,0x7b,0x3,0xd0,0xab,0x57,0x1f,0xc5,0xf7,0x55,0x68,0x7f,0xa9,0xd2,0x6e,0xb,0x90,0x69,0xff,0xe6,0xa0,0xca,0xcb,0x81,0x19,0x6d,0x1,0xc2,0xde,0xd9,0x2d,0x80,0x33,0x1f,0xaf,0xbe,0xf1,0x27,0xfa,0xd0,0xbf,0xfc,0x90,0xba,0xf6,0x7d,0x8c,0xc2,0x7a,0x6f,0x51,0x68,0xe7,0xf0,0x28,0x0,0x62,0xc7,0x0,0x20,0x45,0x3,0x80,0xf1,0x9,0xc0,0x87,0xb1,0xff,0x7f,0x98,0xca,0xdb,0xec,0x1,0xd0,0x5e,0x2,0xb4,0x8e,0xb1,0xff,0x37,0x9e,0x0,0x1e,0xb6,0x1,0xd0,0x63,0x0,0x0,0x5f,0xfc,0x3a,0x0,0xfa,0x47,0x4d,0x0,0xb7,0x68,0x86,0x21,0x0,0xc3,0xff,0x3f,0x7b,0xef,0x1,0x5e,0x47,0x79,0xe6,0x6f,0xab,0x17,0xcb,0x72,0x93,0xac,0xde,0x7b,0xef,0xbd,0x77,0xc9,0x96,0x6c,0x49,0x96,0xbb,0x8d,0xbb,0x8d,0xbb,0xb1,0x8d,0xb,0xee,0xbd,0x5b,0x96,0x8b,0xdc,0x6d,0x52,0x20,0x90,0x42,0x20,0x6d,0x53,0x37,0x9b,0x64,0xbf,0xdd,0x6c,0xca,0x96,0xb4,0xdd,0x40,0x8,0x49,0x36,0x5,0x42,0xb,0x9,0x81,0x84,0x90,0xfd,0x9e,0xff,0xef,0x2d,0x33,0xe7,0x9d,0x39,0x73,0x8e,0x74,0x64,0x83,0x1,0x9d,0x73,0x5d,0xf7,0x25,0x81,0xb,0xb6,0xd0,0x7d,0xbf,0xcf,0x3b,0x33,0x67,0xc6,0x22,0x0,0x83,0xa6,0x8,0x5c,0xa4,0x19,0xee,0x0,0x7c,0xb0,0x3,0xf0,0xfb,0xdf,0xbf,0x4c,0x9b,0xb7,0x1c,0xa6,0x31,0x63,0xd2,0xed,0xf,0x52,0x5a,0x6,0x20,0xd3,0x78,0x3f,0x40,0xbb,0x2b,0x1,0x1d,0x6c,0x1,0xee,0xf0,0x2c,0xc0,0xdd,0x7a,0xbd,0xfa,0xa7,0xbf,0xd0,0x8d,0xcf,0xfd,0x98,0x4a,0x57,0x3c,0x46,0x21,0xed,0x57,0x87,0x98,0x0,0x6e,0xf0,0xf1,0x5f,0xb,0x80,0xa3,0x3,0x80,0xb6,0x33,0x0,0xc6,0x0,0x54,0xb5,0xcb,0x0,0xc8,0x9,0x60,0xa8,0x3,0x80,0x86,0x0,0xb4,0x8b,0x0,0x74,0x72,0x2c,0x56,0x7f,0x1e,0x80,0x9b,0x86,0x9,0xa0,0xa7,0xe9,0x86,0x31,0x0,0x8d,0x52,0x7e,0x47,0x1,0x90,0x53,0xc0,0x4c,0xb9,0xd,0x50,0x3,0xd0,0xa7,0x4d,0x1,0xe5,0x2c,0x2,0xee,0x0,0x7c,0xe0,0x2,0xf0,0xf7,0xbf,0xff,0x9d,0xbe,0xf1,0x8d,0x7f,0xa3,0xa6,0xe6,0xf9,0xe4,0xe5,0x9d,0x60,0x7d,0x86,0x42,0xf,0x40,0xaa,0x45,0x0,0x72,0x6c,0xb7,0x4,0x33,0x5f,0xa,0x6c,0xe,0x40,0xa2,0xb6,0x5,0x58,0x7a,0xcf,0x3,0xa0,0xbd,0xfe,0xe7,0x97,0xaf,0xd2,0xf2,0x63,0x5f,0xa5,0xc8,0xa9,0xd7,0x29,0xbc,0xcd,0x78,0x16,0x20,0x46,0x6,0x20,0xae,0xf5,0x86,0xbe,0xff,0x1f,0x3a,0x0,0x98,0x0,0x20,0x6b,0xa9,0xdc,0xff,0x1b,0xce,0x0,0x58,0x1d,0x0,0x74,0xb0,0xff,0x37,0x4,0xa0,0x5d,0x9,0x40,0x9b,0x69,0xf5,0x97,0x1,0xd0,0x26,0x80,0x1e,0xd,0x19,0x80,0xde,0x26,0x2d,0x0,0xca,0x4,0x0,0xfa,0x64,0x0,0x66,0xd6,0x1a,0x3,0x30,0x53,0x6,0x60,0xa6,0x12,0x80,0x3e,0x7d,0xa,0x70,0x7,0xe0,0x3,0x13,0x0,0x76,0x90,0xec,0xd9,0x67,0x7f,0x49,0xdb,0xb7,0x1f,0xa7,0xb0,0xb0,0x62,0x71,0x66,0xc2,0xd1,0xdf,0xd5,0xf2,0x20,0x60,0xa6,0xed,0x76,0x60,0xa6,0x0,0x78,0x59,0x4c,0x0,0xbe,0xd1,0xe6,0x9,0xc0,0xf1,0x95,0x80,0xef,0xf6,0xeb,0x4f,0x6f,0xbc,0x45,0x67,0x1e,0xf9,0x3e,0x25,0xf7,0xdc,0xa6,0xf0,0xd6,0xab,0x4a,0x0,0xb0,0xfa,0xb7,0x5a,0x7,0xc0,0x7c,0x6,0x40,0x4,0xe0,0x16,0xf6,0xff,0xc6,0x0,0x54,0xb6,0x9b,0xe,0x0,0xe,0x33,0x0,0x1d,0x16,0x1,0xe8,0x92,0x1,0x98,0x66,0xe,0x80,0xb2,0xd,0x50,0x3,0xd0,0xab,0x6,0x40,0x4e,0x1,0x7d,0xf5,0x12,0x16,0x80,0x3a,0x11,0x80,0x99,0x35,0x52,0x7e,0x1e,0x0,0x20,0x3,0x30,0x53,0x9,0x40,0x9f,0xc,0x0,0x70,0x7,0xe0,0xfd,0x1c,0x80,0xb7,0xdf,0x7e,0x9b,0xbf,0xb1,0x67,0xff,0x81,0x73,0x94,0x96,0xd6,0x48,0x9e,0x9e,0xf1,0x43,0x5f,0x97,0x60,0x37,0x1,0x64,0x98,0x26,0x0,0x7,0xef,0x5,0x90,0xf,0x6,0xd1,0xde,0xb,0xc0,0x26,0x0,0x63,0x0,0x8c,0x7,0x1,0x7f,0xfe,0xc6,0x5f,0x69,0xff,0x7f,0x3e,0x47,0x4f,0xfe,0xec,0x79,0xfa,0xf9,0x6b,0x6f,0xd0,0x5f,0xff,0xfe,0x7f,0xef,0xde,0xd7,0x5,0xff,0xad,0x8f,0x7c,0xe1,0xbf,0x29,0x7d,0xc6,0xc3,0x14,0x81,0x8,0xd8,0x2,0x70,0xc3,0x10,0x80,0x21,0xcf,0x0,0xb4,0xd9,0xc6,0x7f,0xc3,0x29,0x40,0x8b,0x0,0xa8,0xf2,0x3b,0xa,0xc0,0x54,0x27,0x1,0x98,0xae,0xd0,0x6d,0xa,0x40,0xaf,0x39,0x0,0x72,0x2,0xe8,0x6b,0x18,0x4e,0x0,0x2e,0xeb,0x1,0x98,0xe9,0xe,0xc0,0xfb,0x3f,0x0,0xec,0x9c,0x3e,0xbb,0x20,0xe8,0xf1,0xc7,0x3f,0x47,0xf7,0x2d,0xda,0x42,0xd1,0x31,0x15,0x52,0xfc,0x61,0xbe,0x27,0xc1,0x6a,0xb,0xa0,0xbd,0x1b,0xd0,0xe1,0x16,0xa0,0x54,0xb9,0x10,0xa8,0x4e,0x6,0xa0,0xc3,0xe9,0x4,0xa0,0xdd,0xf,0xc0,0xb7,0xff,0x73,0x94,0x70,0xf5,0xab,0x34,0xed,0x89,0xef,0xd0,0xf1,0x7f,0x7d,0x86,0xbe,0xfe,0x8b,0x17,0xe9,0xf9,0xd7,0xff,0xc2,0x8f,0xe6,0xbf,0x93,0xaf,0xff,0xc3,0xef,0xff,0x51,0x44,0x20,0xd,0x93,0x40,0x64,0x8b,0x39,0x0,0x37,0xf9,0x35,0x0,0xec,0x0,0xa0,0x16,0x0,0xcb,0x33,0x0,0x6a,0x0,0xda,0x65,0x0,0xda,0xad,0xcf,0x0,0xf0,0x0,0x74,0x40,0x7e,0xd0,0xda,0x71,0xdb,0x7a,0xff,0xcf,0xe4,0x97,0x74,0xc9,0x8,0x4c,0x6b,0x33,0x6,0xa0,0x9b,0x7,0xe0,0xa6,0x1e,0x80,0x5e,0x53,0x0,0x66,0xc8,0x9,0xa0,0x6f,0x18,0x1,0x98,0x65,0x11,0x80,0x99,0x32,0x0,0x7d,0xe2,0x38,0x80,0x3b,0x0,0xef,0x87,0x0,0xbc,0xf9,0x97,0xbf,0xd2,0xe7,0x3e,0xff,0x8f,0x74,0xf0,0xd0,0x79,0xea,0xee,0x59,0x49,0x49,0xc9,0x75,0xe4,0xeb,0x97,0x62,0xbb,0x8,0xc9,0x95,0xbf,0x2b,0xbb,0x7,0xa0,0xe1,0x34,0x60,0x86,0x29,0x0,0x43,0xdf,0xf,0xc0,0xd7,0x14,0x0,0x76,0x25,0xa0,0xbf,0xe9,0x2c,0x0,0xbf,0x23,0xd0,0x47,0xbe,0x41,0x1e,0xa7,0x95,0xbb,0x1,0x1d,0x7b,0x8a,0x82,0x4e,0x7e,0x96,0xb2,0x7,0xbf,0x42,0xb,0x3f,0xf5,0x1d,0xba,0xf2,0x6f,0xcf,0xd2,0xf7,0x7e,0xfd,0xa,0xfd,0xe1,0xcd,0xb7,0x68,0x84,0x17,0x38,0x3a,0x7d,0xfd,0xfd,0xef,0xff,0x3f,0x9d,0xff,0xd8,0x7f,0x50,0x5c,0xc7,0xd,0x8b,0x9,0xe0,0x6,0x9f,0x0,0xcc,0x67,0x0,0x44,0x0,0x6e,0x21,0x0,0xb7,0xc,0x1,0xd0,0xcf,0x0,0xb4,0x3b,0x38,0x0,0x8,0xe9,0x45,0x0,0x6e,0x8b,0x0,0x80,0xf6,0xe,0xe7,0x1,0x98,0x26,0x3,0x30,0x7d,0xc8,0x0,0x88,0x8,0xcc,0x50,0x2,0xa0,0x4e,0x0,0x33,0xeb,0x18,0x5a,0x0,0xae,0xda,0x26,0x0,0x79,0x1c,0x40,0xdd,0x6,0xa8,0x1,0xe8,0x73,0x7,0xe0,0xfd,0x11,0x0,0x76,0x4a,0x6f,0xd5,0xaa,0x87,0xf0,0xe7,0x8c,0xd1,0x2f,0x11,0x1e,0xf1,0xdf,0x75,0xa8,0x0,0x8c,0xc9,0x1d,0xf2,0xed,0xc0,0xe2,0x18,0x40,0x87,0xdd,0xd,0x41,0xcc,0x13,0x80,0x1e,0x0,0xf5,0x7e,0x0,0xec,0x86,0x20,0xfb,0x3e,0x49,0x1e,0xbb,0x3f,0x4e,0x5e,0xf,0x3d,0x4e,0x93,0xf6,0x3f,0x41,0xe5,0xe7,0xbf,0x44,0xeb,0x3f,0xf5,0x5d,0x7a,0xec,0xfb,0xbf,0xa0,0x67,0x5f,0xfc,0x13,0xfd,0xed,0x2e,0x6e,0x17,0x5e,0x7f,0xf3,0x6f,0xb4,0xe6,0xe8,0xd7,0x28,0xaa,0xf9,0x9a,0x21,0x0,0x89,0x72,0xb,0x60,0x15,0x0,0xb6,0xff,0x2f,0x74,0x25,0x0,0x90,0x5d,0x4,0xe0,0xb6,0x29,0x0,0xb7,0xa9,0xa3,0xc3,0x41,0x0,0xda,0xed,0x3,0xd0,0xad,0xd0,0xc3,0x2,0xd0,0x62,0xb,0xc0,0xc,0x53,0x0,0xb4,0x9,0x60,0x66,0xbd,0x94,0x5f,0x6,0x60,0x56,0xd,0x3,0xab,0x7f,0xb5,0xc0,0x2a,0x0,0x33,0xdd,0x1,0xb8,0xf3,0x0,0xb0,0xcb,0x73,0x6f,0xdc,0x7c,0x9c,0xce,0xf6,0xdf,0xa4,0xfe,0x73,0x4e,0xc0,0x8f,0x9f,0x1b,0xb8,0x45,0xb7,0x1f,0xfe,0x4,0x7f,0xfb,0xee,0x6f,0x7e,0xfb,0x2,0x1f,0x4f,0x5d,0x7d,0xb1,0x4b,0x8f,0x8b,0x4b,0xba,0xee,0xfc,0xed,0xc7,0x56,0x1,0xb0,0x7a,0x3b,0x70,0x90,0xa3,0xd3,0x80,0xb6,0x2d,0x80,0xb3,0xb3,0x0,0x22,0x0,0xff,0x24,0x3,0xe0,0xe0,0x8e,0x40,0xec,0xe9,0xc0,0xdb,0x3e,0x46,0x1e,0x9b,0x3f,0xca,0xdf,0xd,0xe8,0xb3,0xf1,0x23,0x14,0xbf,0xfb,0x93,0x34,0xe7,0xfa,0x37,0xe8,0xa3,0xdf,0x7e,0x96,0x7e,0xf3,0xea,0x1b,0x77,0x65,0x32,0xf8,0x9f,0xe7,0x5e,0xa1,0xea,0x45,0x8f,0x53,0x74,0xf3,0x75,0x7d,0xb,0xe0,0x38,0x0,0xb7,0xc4,0x19,0x80,0x36,0x71,0x0,0x50,0xf,0x40,0xbb,0x3c,0x5,0x28,0x3,0xa0,0xef,0xff,0x21,0xb9,0xf3,0x0,0xdc,0xe6,0xf2,0xab,0x1,0xe8,0x72,0x31,0x0,0x33,0x9a,0x95,0x0,0x80,0x3e,0x73,0x0,0x94,0x8,0xcc,0xaa,0x35,0x6,0x60,0x96,0x83,0x0,0x88,0x8,0xb8,0x3,0x30,0xe2,0x0,0x18,0xdf,0xb,0x10,0x27,0xd1,0xae,0xef,0x8f,0xb3,0xc3,0x13,0xff,0x9d,0x31,0x41,0x99,0xfc,0x7d,0xfc,0x47,0x8f,0x5d,0x1a,0xd1,0x3b,0xfa,0xbe,0xf0,0x85,0xaf,0x53,0x48,0x68,0xc1,0x9d,0xbd,0x1,0xc9,0x69,0x0,0x94,0xeb,0x0,0xe4,0xa3,0xc1,0xbc,0xf4,0x4b,0x81,0xab,0xed,0xb6,0x0,0x63,0x73,0x4d,0x1,0x30,0xdf,0x11,0xe8,0xc3,0xc3,0x8,0xc0,0x76,0xd3,0xd,0x41,0xee,0x17,0x77,0x3,0xf2,0x5d,0xf9,0x30,0x65,0xed,0x7a,0x82,0xf6,0x7f,0xfa,0xdf,0xe9,0x99,0xe7,0x5f,0xbb,0xe3,0x10,0x5c,0xfe,0xf8,0xf,0xb8,0xfc,0xe2,0x4d,0x40,0xce,0x4e,0x1,0xde,0x12,0x13,0x40,0x9b,0xed,0xc,0x80,0x39,0x0,0xb5,0x16,0x1,0x50,0xe5,0xb7,0xb,0x40,0x87,0xa3,0x0,0xdc,0xa2,0xe9,0x2c,0x0,0x6d,0x26,0xf9,0x9d,0x4,0xa0,0x4f,0xb,0x80,0x8c,0xc0,0xcc,0x86,0xa1,0x3,0x30,0x4b,0x9,0xc0,0x2c,0x77,0x0,0xee,0x56,0x0,0x46,0xf0,0x6e,0x40,0xfe,0x6e,0xbf,0x38,0xfe,0xa6,0x9c,0x79,0xf3,0x37,0xd2,0xb,0x2f,0xbc,0xe4,0xd2,0x37,0x31,0xbb,0xb4,0xf7,0xd0,0xe1,0xb,0xfc,0x2e,0xc0,0x23,0xf,0x80,0xc5,0xa5,0xc0,0xfa,0x3d,0x1,0x73,0xc8,0x7c,0x3f,0x0,0x35,0x0,0xde,0x86,0x0,0x4c,0x71,0x7a,0x29,0xf0,0xf7,0x2c,0x27,0x0,0xb9,0x5,0xd8,0xef,0x24,0x0,0xea,0xd,0x41,0x16,0xdd,0x24,0xcf,0x85,0x10,0x75,0xf3,0xc7,0xe9,0xe8,0x53,0xff,0x49,0x2f,0xbc,0xf6,0xa6,0x4b,0x5f,0x2f,0xf5,0xf5,0xbb,0x17,0xff,0x4c,0xad,0xab,0x9e,0xa0,0x18,0x76,0x23,0x50,0xfd,0x4d,0x40,0xe2,0x2a,0xc0,0x74,0xbb,0x0,0xdc,0x34,0x4,0x40,0x3f,0x3,0x60,0xe,0x40,0x87,0x8,0x80,0xa3,0xd5,0x5f,0xd,0x80,0x79,0xfc,0x17,0xc7,0x0,0xec,0x3,0xd0,0xa3,0x7,0xe0,0x26,0xf5,0x9a,0x2,0xd0,0xa7,0x6,0x40,0x9b,0x0,0xc0,0x2c,0x4,0x60,0x16,0x93,0xdf,0x32,0x0,0x57,0x78,0x0,0x66,0x31,0xf9,0x4d,0x1,0x98,0xe9,0xe,0x80,0x1a,0x80,0x77,0xf7,0xc1,0x20,0xec,0xc8,0xfd,0x8a,0x95,0x3b,0xe9,0xcf,0x7f,0x7e,0xc3,0xa5,0x6f,0xe4,0x57,0x5f,0x7d,0x8d,0xba,0xbb,0x57,0x38,0x3f,0xd7,0xef,0x90,0x44,0xfb,0x0,0xf0,0xf7,0x1,0x64,0x92,0xe1,0xad,0xc0,0xa6,0x0,0x78,0xf2,0xb,0x81,0xcc,0x1,0x30,0x4f,0x0,0x4e,0x2,0x70,0x72,0x38,0x1,0xf8,0xa8,0x7d,0x0,0x96,0xdc,0x22,0x8f,0xfb,0x6e,0xf2,0x7b,0x1,0x78,0x81,0xda,0xfd,0x9f,0xa3,0x6f,0xfe,0xf7,0xef,0x46,0x3c,0xd,0x9c,0x7f,0xe4,0x3f,0x28,0xb6,0x59,0xde,0x7,0x40,0x39,0x3,0x60,0x1f,0x80,0x5b,0xe,0x3,0x60,0x38,0x3,0x30,0x8c,0xf1,0x5f,0x4,0xe0,0x36,0x4d,0xed,0x30,0x5,0x80,0x4d,0x0,0xed,0x22,0x0,0xdd,0x96,0x1,0xb8,0x31,0x64,0x0,0x66,0x3a,0x8,0xc0,0xec,0x21,0x2,0xa0,0x47,0xc0,0x1d,0x0,0x35,0x0,0xef,0xf2,0x6d,0xc1,0x3d,0xd8,0xf3,0xfc,0x52,0x68,0xe0,0xfc,0x6d,0x97,0xbf,0x91,0xff,0xeb,0xbf,0xfe,0x9b,0x52,0xd3,0x1a,0x46,0xf0,0xdf,0x4e,0xb4,0xdf,0x2,0xf8,0x3b,0x3a,0x6,0x60,0x7e,0x37,0xa0,0x1a,0x80,0x26,0xe5,0x18,0x80,0x32,0x1,0x3c,0x32,0xd2,0x0,0x3c,0xea,0x3c,0x0,0xb,0xc0,0xdc,0x1b,0xe4,0x31,0xf3,0x1a,0xc5,0xac,0x7a,0x84,0x3e,0xf6,0xad,0x9f,0xd1,0xff,0x8d,0xa0,0x2,0x3f,0xfe,0xd9,0xcb,0x54,0x34,0xeb,0x11,0x71,0x2b,0x30,0xcb,0x0,0xdc,0x92,0xa7,0x0,0x6d,0x7,0x0,0xd,0x17,0x1,0x99,0x2,0xe0,0x78,0xff,0x7f,0x4b,0x59,0xfd,0xe5,0x4,0x60,0xa,0xc0,0x34,0x3d,0x0,0xb7,0xf4,0x0,0xf4,0x28,0xf4,0x6a,0x1,0x68,0x11,0x1,0xe8,0x53,0x2,0x30,0xb3,0x51,0xe2,0x24,0x0,0xb3,0xab,0x5,0xd6,0x1,0x70,0x4f,0x0,0x77,0x31,0x0,0x77,0xb0,0x1f,0x87,0xc0,0xb1,0xb1,0x15,0xf4,0xed,0x6f,0xff,0x87,0xcb,0xdf,0xcc,0x8f,0x3c,0xf2,0x24,0x8d,0xd5,0xde,0xe2,0x7b,0xa7,0x1,0x8,0x18,0x4e,0x0,0xd4,0xb3,0x0,0x4d,0xca,0x85,0x40,0xc3,0x98,0x0,0x86,0xb5,0x5,0x90,0x1,0x58,0xed,0x24,0x0,0xec,0x86,0x20,0x33,0xae,0x52,0xc4,0x92,0xf,0xd3,0xe7,0xbe,0xfb,0x4b,0x97,0xbf,0x66,0x6f,0xfe,0xf5,0x6d,0x5a,0xb8,0xe3,0x8b,0x14,0xb,0x89,0xac,0x2e,0x2,0xca,0x76,0x74,0xa,0xb0,0x5d,0x4,0xc0,0x70,0x6,0x0,0x62,0x3b,0xf,0xc0,0x2d,0x7e,0x6,0x40,0x5b,0xfd,0xb5,0x0,0x74,0xb9,0x18,0x80,0x19,0x4e,0x3,0x70,0x7d,0xc8,0x0,0xcc,0x76,0x30,0x1,0xcc,0x72,0x7,0xe0,0x3d,0x10,0x0,0xfe,0xdf,0x8e,0xa5,0xa9,0x53,0x97,0xb8,0x7c,0x50,0x90,0x5d,0x10,0xb4,0x71,0xd3,0x1,0xfc,0x1e,0x23,0x9,0x40,0x8a,0xed,0x42,0x20,0xf3,0x4,0x60,0x77,0x1a,0xd0,0xfe,0xed,0xc0,0x76,0x5b,0x80,0xfa,0x3b,0xdd,0x2,0x3c,0x6a,0xc,0xc0,0x4a,0xc7,0x1,0xf0,0x9c,0x89,0x8,0xf4,0x5c,0xa5,0x92,0xcd,0x9f,0xa2,0x5f,0xfd,0xde,0xf5,0x1b,0xa5,0x9c,0x79,0xf8,0xfb,0x14,0x67,0x11,0x0,0xed,0xc,0xc0,0x70,0x2,0x50,0xe7,0x20,0x0,0xf6,0x7,0x0,0x6f,0xe9,0xab,0xbf,0xe3,0x0,0x88,0x2d,0x80,0x41,0x7e,0xd,0x8b,0x0,0xcc,0x74,0x71,0x2,0xe0,0x1,0xa8,0x72,0x7,0xe0,0x1d,0xc,0xc0,0x9d,0xdf,0x15,0x98,0x1d,0xd4,0x63,0x67,0x6,0x5c,0xbd,0xdd,0xd7,0x6f,0x7f,0xfb,0x2,0xd5,0xd5,0xcf,0x76,0xe1,0xcf,0x80,0x0,0x78,0x27,0x8b,0xe7,0x1,0xfa,0xa4,0x98,0xe,0x2,0x6a,0x37,0x3,0xb1,0xa,0x80,0xd5,0x4,0xa0,0x9c,0x6,0xd4,0x2,0x60,0x3e,0xb,0x70,0xb7,0x8e,0x1,0x18,0x2,0x70,0x8d,0xbc,0x67,0x5c,0x23,0xbf,0xee,0x6b,0x74,0xe2,0x13,0xff,0xee,0xd2,0xd7,0x8b,0xbd,0x3e,0xff,0xcd,0xe7,0x28,0x5,0xe2,0xf1,0x3b,0x1,0x5b,0x9c,0x2,0xe4,0x1,0x68,0xb3,0xf,0x80,0xdd,0x29,0x40,0x25,0x0,0xb6,0xd5,0xff,0x96,0x7e,0x1,0x50,0x87,0x3e,0x1,0x48,0xf9,0x25,0x86,0xfd,0xbf,0x32,0x1,0xd8,0xc9,0xf,0x66,0xa8,0x1,0x68,0x96,0xf2,0x9b,0x2,0x30,0xb,0xcc,0x46,0x0,0x66,0x43,0xfe,0xd9,0x7a,0x0,0xae,0x1a,0x2,0x30,0xdb,0x3d,0x1,0xbc,0x13,0x1,0xb8,0x8b,0xcf,0x5,0xc0,0xef,0x11,0x1e,0x51,0x4c,0xff,0xf4,0x8d,0x6f,0xbb,0xfc,0xd,0xfd,0x8d,0x6f,0xfe,0x1b,0x45,0x45,0x97,0xd,0xf3,0xcf,0x21,0x27,0x0,0x6f,0x39,0x5,0xa8,0xb7,0x4,0xd3,0x2,0xe0,0xe4,0xb9,0x0,0xde,0x61,0xda,0x73,0x1,0x1c,0x1c,0x3,0x70,0x36,0x1,0xa8,0xf,0x7,0xdd,0xff,0x49,0xe7,0xc7,0x0,0x9c,0x4e,0x0,0x22,0x0,0x3e,0xd3,0xaf,0x52,0xd5,0x96,0x27,0xe8,0xe5,0x3f,0xfe,0xc5,0xa5,0xaf,0xd7,0xf,0x9e,0x7e,0x89,0xf2,0x7b,0x3e,0xc2,0xef,0x5,0x68,0x7d,0x15,0xa0,0x38,0x3,0x60,0xbe,0x8,0xc8,0xfe,0xc,0xc0,0x6d,0x7,0x67,0x0,0x6e,0x19,0x56,0x7f,0x43,0x0,0xcc,0xab,0xbf,0x1a,0x80,0x36,0x17,0x2,0x0,0x66,0x21,0x0,0xb3,0xc,0x1,0x90,0x11,0x30,0x4f,0x0,0xd5,0x56,0x1,0xb8,0xe8,0xe,0xc0,0x9d,0x7,0xe0,0x2e,0xdf,0x14,0x14,0x5b,0x81,0xc6,0xc6,0xb9,0x2e,0x9f,0x1a,0x64,0xaf,0x81,0x81,0xdb,0xe4,0xc7,0x2e,0xd,0x1e,0xea,0xbf,0xe1,0xa5,0x5,0xc0,0x62,0xb,0xa0,0x7,0xc0,0xe2,0x4a,0x40,0xbb,0x2d,0x40,0x93,0x8b,0x67,0x1,0x64,0x4,0x58,0x0,0xe,0xc9,0x0,0xec,0x91,0xf,0x6,0xd1,0x3,0xf0,0x91,0x61,0x6,0xe0,0xba,0x3e,0x1,0x84,0xcd,0xb9,0x4d,0xff,0xfc,0xe3,0xdf,0xb9,0xf4,0xb5,0xfa,0xdf,0xe7,0xff,0x44,0xd5,0xb,0x1e,0xe3,0x4f,0x4,0x1e,0xea,0x22,0x20,0xa7,0xd7,0x0,0x38,0xc,0xc0,0x6d,0x87,0x1,0xb0,0x1b,0xff,0x9d,0x4,0x60,0x86,0x12,0x80,0xbe,0x66,0x81,0x41,0x7e,0x8e,0x12,0x80,0x7a,0x7,0x1,0x90,0x13,0xc0,0x6c,0xf7,0x4,0xf0,0x4e,0x5,0xe0,0xee,0x3d,0x18,0x84,0xdd,0xfa,0x7b,0xf7,0x9e,0x33,0xf4,0x77,0x17,0x2f,0x85,0x7d,0xfd,0xf5,0x37,0x68,0xe1,0xc2,0x7,0x86,0xfe,0xb3,0x38,0xc,0x40,0x86,0x72,0x10,0x50,0x4e,0x1,0x4e,0x6e,0x8,0x62,0x1d,0x0,0x8b,0xb,0x81,0x1c,0x6e,0x1,0x64,0x0,0x46,0x34,0x1,0x5c,0x27,0x1f,0x4,0xc0,0xbf,0xe7,0x1a,0x8d,0x99,0x7e,0x8d,0x6e,0xfc,0x83,0x6b,0xcf,0x47,0x78,0xe5,0xb5,0xbf,0x50,0xeb,0xf2,0x4f,0xf1,0xc7,0x82,0xdb,0xdf,0x9,0xc8,0xfa,0x1a,0x0,0x47,0x13,0xc0,0x50,0x97,0x0,0x1b,0xf6,0xff,0x2c,0x0,0x1d,0xa6,0xf1,0xbf,0x9d,0xc9,0x7f,0x4b,0xc8,0xdf,0x66,0x5a,0xfd,0x2d,0x2,0xa0,0x1d,0x3,0x98,0xa5,0x46,0xc0,0x41,0x0,0xe6,0x38,0xd,0x80,0x7b,0x2,0xb8,0x8b,0x1,0xb8,0x9b,0xb7,0x5,0x8f,0xa7,0x90,0x90,0x2,0xfa,0xe2,0x17,0xbf,0xe1,0xd2,0x37,0x35,0x7b,0x3d,0xfd,0xf4,0x73,0x94,0x97,0xdf,0xe1,0x3c,0x2,0x5e,0xca,0x41,0x40,0xcb,0xd3,0x80,0xe,0x26,0x0,0xab,0xf7,0x2,0xdc,0xb5,0xb3,0x0,0x8f,0xb9,0x78,0x10,0xf0,0x9a,0x1e,0x0,0xff,0xae,0xab,0xb4,0xef,0x43,0xdf,0x71,0xe9,0xeb,0xf4,0xda,0xeb,0x7f,0xa5,0x69,0x6b,0x9f,0xa4,0x84,0xa6,0xeb,0xc3,0xba,0xa,0xd0,0xd1,0x35,0x0,0xce,0x2f,0x1,0x36,0x9e,0x1,0xe8,0xc4,0x47,0x2d,0x0,0xd3,0x1c,0x5,0xc0,0x2c,0xbf,0xc,0x40,0x9f,0x69,0x2,0x98,0x65,0x31,0x1,0xcc,0x52,0x8e,0x1,0xd8,0x7,0xe0,0xb2,0x3b,0x0,0xef,0x9b,0x0,0xf0,0x3f,0x4b,0x2c,0x55,0x56,0xf5,0xba,0xfc,0xb8,0x6f,0xf6,0x7a,0xea,0xa9,0xaf,0xc8,0x7b,0x0,0x3a,0xf8,0x33,0x39,0xc,0x80,0xc5,0x3d,0x1,0xd,0x8f,0x7,0xd7,0xae,0x3,0xa8,0x51,0xde,0xb,0xc0,0xee,0x8,0xa4,0x3e,0x17,0xe0,0x2e,0x5e,0x9,0xc8,0x2,0xb0,0xcc,0x41,0x0,0xfa,0xc4,0x31,0x0,0x16,0x0,0xbf,0xce,0x2b,0xb4,0xe1,0xd2,0xb7,0x5c,0xfa,0x1a,0xfd,0xf1,0xf5,0xb7,0x68,0xfa,0xda,0xa7,0xc,0x13,0x80,0xf9,0x2a,0x40,0xc3,0x8d,0x40,0xda,0xed,0xaf,0x1,0x70,0xf4,0x1e,0x80,0x36,0x8b,0x4b,0x80,0xd,0x1,0x30,0x8f,0xff,0x4a,0x0,0x7a,0xdb,0x86,0xa,0xc0,0x75,0xfb,0x2d,0x80,0xc5,0x41,0xc0,0xe1,0x6,0xc0,0x7d,0x1d,0xc0,0x1d,0x7,0xe0,0x9d,0x7c,0x38,0x68,0x3c,0xbf,0xa7,0x9f,0xab,0xb7,0x6,0x67,0xb7,0x4,0xdb,0xb3,0xf7,0x2c,0x79,0xb1,0xfb,0xff,0x5b,0xfe,0xbe,0xf2,0x4a,0x40,0xef,0x64,0xd3,0xd,0x41,0x32,0xec,0xef,0x9,0xa8,0x5e,0xa,0x8c,0x0,0x78,0x2b,0x1,0xd0,0x4f,0x3,0xe,0xf5,0x74,0x60,0xcb,0x0,0x3c,0x61,0x3a,0x8,0xf8,0x98,0x31,0x0,0xda,0x4,0xe0,0x30,0x0,0xb6,0x2d,0x0,0xb,0xc0,0x9a,0xf3,0xdf,0x70,0xe9,0xca,0xc0,0xd7,0xb4,0x0,0xc8,0x9,0xc0,0x7c,0x27,0xa0,0x2,0x25,0x0,0xfa,0x8d,0x40,0xcc,0xd7,0x0,0x98,0x2,0x30,0xe4,0x15,0x80,0xa6,0xf1,0x5f,0xb,0x40,0x77,0xbb,0x6d,0xff,0x6f,0x27,0x3f,0xe8,0x53,0x2,0x30,0xd3,0x6a,0xfc,0xc7,0x4,0x30,0x5b,0x6,0x60,0x8e,0x45,0x0,0xe6,0x38,0xb,0x40,0xf9,0x5,0x77,0x0,0xde,0xb3,0x1,0xc0,0xef,0x39,0x7e,0x42,0xe,0x7d,0xfa,0xd3,0x5f,0x72,0x29,0x0,0xec,0xc5,0x9e,0x29,0xc0,0x9e,0x1d,0x68,0xbd,0x15,0xd0,0x2,0x90,0xe4,0xe0,0x18,0x80,0xfd,0x69,0x40,0x2f,0xc3,0x59,0x80,0x1a,0xe3,0x75,0x0,0xef,0xc4,0x7b,0x1,0x86,0xc,0xc0,0x35,0x43,0x0,0x36,0x5f,0xf9,0x67,0x97,0xbe,0x3e,0xec,0x18,0x40,0xfb,0xa,0x71,0xc,0xc0,0xea,0x32,0x60,0x7e,0xd,0x0,0x3e,0x37,0x4,0xc0,0xea,0x6d,0xc0,0x16,0x6f,0x2,0x32,0xae,0xfe,0xda,0x4,0x70,0x9b,0x4f,0x0,0x96,0xfb,0x7f,0x35,0x0,0x6d,0x43,0x8f,0xff,0xe6,0x0,0x70,0xf9,0x95,0x0,0xcc,0x91,0x1,0x98,0x63,0x17,0x80,0x4b,0xe,0x2,0xe0,0xbe,0x27,0xe0,0x1d,0x4,0xe0,0xee,0x1f,0x4,0x34,0xfe,0x99,0xe2,0xa8,0xa8,0xa8,0x93,0x9e,0x7b,0xee,0x7f,0x5d,0xfa,0x6,0x67,0xaf,0xef,0x7f,0xff,0x87,0x94,0x94,0x54,0x6b,0xf1,0x67,0xb3,0x8,0x80,0x9f,0x79,0xb,0x60,0xe,0x40,0x81,0x7e,0x43,0x10,0xbb,0xf7,0x2,0x18,0x2,0xc0,0xde,0xe,0x3c,0x9c,0x9,0xe0,0x4e,0x3,0x20,0x26,0x80,0x0,0x4,0x20,0xa0,0xeb,0x2a,0x1d,0x79,0xe4,0x7b,0x2e,0x7d,0x6d,0x7e,0xf3,0xc2,0xeb,0x54,0xbb,0xf0,0x71,0x7e,0x16,0xc0,0xe9,0xc3,0x40,0x1c,0xdc,0x7,0xc0,0x76,0x1b,0x30,0x2d,0x0,0xf6,0x37,0x1,0x51,0xc7,0x7f,0x75,0x2,0xb0,0x1b,0xff,0xdb,0xed,0xf,0x0,0xe,0x37,0x0,0xb3,0x9d,0x4,0xc0,0x7e,0x2,0xb8,0xa4,0x9c,0x6,0xbc,0xe8,0xe,0xc0,0xfb,0x22,0x0,0x32,0x2,0xab,0x57,0xef,0xe6,0x37,0x4,0x71,0xf5,0xc5,0x1e,0x8,0x32,0x66,0x4c,0x86,0x69,0x42,0x51,0xb6,0x0,0xbe,0xe6,0x2d,0x80,0xf5,0x75,0x0,0x5a,0x0,0xbc,0xf5,0x83,0x80,0x35,0x76,0x77,0x4,0xb2,0xbd,0x17,0xe0,0x9d,0x8,0x0,0x98,0x6f,0xb,0x80,0x97,0x12,0x80,0xb1,0xdd,0xd7,0xe8,0xa3,0x5f,0xfd,0xa9,0x4b,0x5f,0x97,0x9f,0x3c,0xfb,0x32,0x15,0xf5,0x7d,0x94,0x5f,0x8,0x34,0xec,0x0,0x98,0x2f,0x2,0x6a,0x97,0xf7,0x1,0x1c,0x62,0x2,0x70,0x75,0xff,0xef,0x70,0xfc,0x7,0xb3,0x94,0x0,0xcc,0x36,0x5,0x60,0x8e,0x12,0x80,0x39,0x76,0x13,0xc0,0xa0,0xc3,0x0,0xf4,0xb9,0x3,0xf0,0x5e,0xf,0x40,0x3c,0x7f,0xa4,0xd7,0xa3,0x8f,0x3e,0xe5,0xd2,0x37,0x39,0x7b,0xfd,0xe5,0x2f,0x7f,0xa5,0x35,0x6b,0xf6,0x18,0x3,0xc0,0xe4,0xf7,0x4a,0xb4,0x5,0xc0,0xcf,0x41,0x0,0x2,0xcd,0x1,0x90,0x5b,0x0,0xed,0xb6,0xe0,0x76,0x77,0x5,0x1e,0xc1,0x16,0x60,0x8f,0x93,0xf7,0x2,0x38,0xa,0xc0,0x2c,0x19,0x80,0x5e,0x6c,0x1,0x20,0x7f,0xe4,0xbc,0x87,0xe9,0x3b,0x3f,0xfd,0xbd,0x4b,0x5f,0x97,0xaf,0x7d,0xfb,0x57,0x94,0x3e,0xe5,0x36,0x7f,0x22,0xb0,0xab,0x13,0x80,0xdd,0x8d,0x40,0x3b,0x6e,0xc9,0x0,0xdc,0x72,0x78,0xa,0xd0,0x51,0x0,0xba,0xf5,0x0,0xdc,0x1a,0x56,0x0,0x66,0x9a,0x3,0xa0,0xae,0xfe,0x5a,0x0,0x6a,0x8d,0x5b,0x80,0xd9,0xd5,0xa6,0xfd,0x7f,0xa5,0x7a,0x0,0xf0,0xbc,0x3b,0x0,0xef,0xf9,0x0,0xf0,0x3f,0x5b,0x1c,0x65,0x65,0xb7,0xd0,0xff,0xfc,0xf4,0x59,0x97,0xbe,0xd1,0xd9,0xeb,0x57,0xbf,0xfa,0x2d,0x55,0x56,0xf6,0xda,0xde,0x3a,0x6c,0xe,0x80,0xfa,0x64,0x20,0x7,0x17,0x2,0x79,0x59,0x3d,0x1d,0x38,0x5a,0x7d,0x34,0x98,0x8b,0xa7,0x1,0xf,0x59,0x5,0xc0,0xe2,0x34,0x20,0xb,0xc0,0x62,0xc7,0x1,0xf0,0x9d,0x76,0x95,0x6a,0xb7,0x7e,0x9a,0x3f,0x1d,0xc8,0x95,0xd7,0xf5,0x4f,0xfc,0x10,0xfb,0xff,0x1b,0xfc,0x5e,0x0,0x8e,0x3,0x70,0x8b,0x3f,0xc,0x54,0xbf,0xa,0xd0,0x22,0x0,0xb6,0x1b,0x81,0x5a,0xbd,0x9,0xe8,0xb6,0xf1,0x2,0x20,0x57,0xf7,0xff,0xe,0x2,0x30,0xcb,0x6a,0x2,0x30,0xad,0xfe,0xc3,0x3a,0x0,0x58,0xc1,0x57,0x7f,0xe0,0x7e,0x3c,0xf8,0x5d,0x8,0xc0,0x3b,0x71,0x16,0xc0,0x3e,0x2,0x8b,0x16,0x6f,0xa1,0x37,0xde,0x70,0xed,0xb2,0x57,0xf6,0xfa,0xda,0xd7,0xfe,0x85,0x5f,0x66,0xac,0x3f,0x18,0x94,0x5,0x40,0x7d,0x33,0x90,0x5d,0x0,0xcc,0x13,0x80,0x55,0x0,0x9a,0x86,0x7f,0x16,0xe0,0x94,0x83,0x0,0xc,0xf5,0x66,0x20,0x87,0x1,0xb8,0xc6,0x3,0xe0,0x37,0xfd,0x2a,0x1d,0x7d,0xec,0xfb,0x2e,0x7d,0x2d,0xd8,0x9d,0x88,0x37,0x1e,0xfb,0x3a,0x7f,0x33,0x90,0xf3,0x0,0x88,0xc7,0x81,0x1b,0x2,0xd0,0x66,0x7c,0x1c,0xb8,0xf3,0x0,0xdc,0x32,0x9e,0x1,0x30,0x5f,0xff,0x3f,0xd4,0x19,0x0,0x4d,0x7e,0xd3,0x16,0x60,0x64,0xfb,0x7f,0x8b,0x9b,0x81,0x88,0xf1,0x9f,0x66,0xb8,0x3,0xf0,0x7e,0x9,0x40,0x2,0x5,0x4,0xa6,0xd1,0x8d,0x1b,0x8f,0xbb,0xf4,0xd,0xcf,0x5e,0xec,0xd,0x46,0xa7,0x4e,0x61,0xc5,0xf4,0xc5,0xaa,0xcf,0x8f,0x1,0x98,0x3,0xa0,0x5e,0xa,0x6c,0xbc,0x2b,0xb0,0x97,0x7e,0x21,0x90,0x7a,0x57,0xe0,0x1a,0xfd,0x4a,0x40,0x67,0xcf,0x5,0x30,0x4,0x60,0x24,0xef,0x6,0xd4,0x3,0x70,0xd3,0x2e,0x0,0x5e,0x3d,0x57,0x29,0x63,0xd5,0xc7,0xe8,0xa7,0xbf,0x76,0xed,0x1d,0x94,0xcf,0xbf,0xf4,0x6,0x35,0x2f,0xfb,0x24,0xc5,0x37,0x8f,0x30,0x0,0xed,0xe,0x9e,0x5,0x68,0x71,0x0,0xd0,0x7c,0x9,0xb0,0xc3,0xb,0x80,0x9c,0xad,0xfe,0x2d,0xf6,0xe3,0xbf,0x8,0xc0,0xb5,0x21,0x3,0xc0,0xc7,0x7f,0xbe,0xff,0x1f,0xb4,0x1b,0xff,0xfb,0xdc,0x1,0x78,0x9f,0x5,0x80,0xff,0x19,0xe3,0x28,0x25,0xb5,0x9e,0xdf,0xc,0xc4,0xd5,0xd7,0x1f,0xff,0xf8,0x3a,0xcd,0x9e,0xb3,0x4e,0x4e,0x1,0x89,0xb6,0xeb,0x0,0xfc,0xcc,0xef,0x5,0x18,0xce,0x6d,0xc1,0x6b,0x1c,0xdf,0x10,0xc4,0xee,0x2c,0xc0,0x37,0x64,0x0,0xc0,0x9,0x27,0x1,0xd8,0xe2,0xe0,0x20,0xa0,0xc5,0x4,0xc0,0x4e,0x3,0xfa,0x61,0x1b,0x70,0xee,0xa9,0x1f,0xb8,0xfc,0x75,0xf8,0xca,0xbf,0xfe,0x92,0xd2,0xa6,0xde,0xe6,0x6f,0x4,0x72,0x14,0x0,0xf1,0x3c,0x40,0x11,0x80,0x72,0x60,0xe,0x80,0xf9,0x49,0x40,0xfa,0x43,0x40,0xec,0xe,0x0,0xde,0x36,0xbc,0x5,0xd8,0xe1,0xf9,0x7f,0x17,0xc7,0x7f,0xfd,0xf2,0x5f,0x65,0xff,0xaf,0x5e,0x4,0x34,0xa7,0x46,0xb9,0x0,0x48,0x7d,0x1b,0x70,0xa5,0x76,0x2b,0x30,0x5d,0x7e,0xea,0x2d,0x3b,0xe7,0xe,0xc0,0xc8,0x3,0xf0,0xab,0x77,0xe7,0x18,0x80,0x29,0x2,0xb3,0x66,0xad,0xa5,0x3f,0xfd,0xe9,0x75,0x97,0xbf,0xf9,0x7f,0xf2,0x93,0x67,0x28,0x3b,0xa7,0x4d,0x44,0x40,0x7f,0x27,0xe0,0xd0,0x1,0x30,0x6e,0x1,0xaa,0xc,0x67,0x1,0xec,0x4e,0x3,0x5a,0xdd,0x14,0x54,0xd,0xc0,0x31,0xab,0x2d,0xc0,0x63,0x8,0xc0,0xa3,0xc3,0xe,0x80,0x47,0xef,0x55,0x9a,0x7f,0xf6,0x6b,0xf4,0xda,0x9f,0x5d,0x3b,0x33,0xc2,0xee,0xc4,0xbc,0xfd,0xec,0xb7,0xe4,0xcd,0x40,0x6e,0x38,0x3c,0x8,0x68,0xe,0x80,0xfe,0x34,0xa0,0xa1,0x2,0xd0,0x7e,0xcb,0xfe,0xa,0xc0,0x76,0x63,0x0,0x86,0x35,0xfe,0x3b,0xb,0x80,0xd5,0x15,0x80,0xe,0xdf,0x4,0x34,0x68,0xbc,0x11,0x88,0xc,0x40,0x9f,0x3b,0x0,0x77,0x2b,0x0,0xef,0xd2,0x41,0x40,0x13,0xec,0x81,0x20,0xec,0xb1,0xdf,0x23,0x79,0x7d,0xe2,0x93,0x5f,0xa0,0x71,0xe3,0x73,0xc4,0xb1,0x80,0x91,0x6,0x20,0xac,0x46,0x1c,0x3,0xb0,0x78,0x36,0x60,0x8a,0x79,0xb,0xf0,0x61,0xd3,0x16,0xc0,0x32,0x0,0x1f,0x93,0x1,0xc0,0x16,0x60,0x9d,0x93,0x2d,0xc0,0x1c,0xf1,0x3e,0x80,0xae,0x63,0x5f,0xa4,0x5f,0xbd,0xe4,0x7a,0x0,0x9f,0xfe,0xe5,0xab,0x54,0x31,0xef,0x63,0x14,0x87,0xf1,0x9f,0xdf,0xb,0x80,0x5,0x0,0xb8,0x14,0x80,0xb6,0x21,0x2,0xd0,0xee,0xe4,0x19,0x0,0x4e,0xc6,0x7f,0xd7,0x2e,0x0,0xba,0xe6,0xf4,0x12,0xe0,0xd9,0x72,0xfc,0x9f,0xa5,0x4,0xc0,0xf0,0x40,0x90,0xa,0x5d,0x7e,0xea,0x71,0x7,0xe0,0x4e,0x2,0xf0,0x4e,0x5e,0xa,0xec,0xec,0xcf,0x1a,0xc7,0xff,0xbb,0xdf,0xf9,0xce,0x7f,0xb9,0x2c,0x1,0xbb,0xb4,0x78,0xfb,0x8e,0xe3,0xe4,0xa9,0x5d,0x8,0x24,0xf,0x0,0x8e,0x68,0xb,0x60,0x71,0x1a,0x30,0x5,0x13,0xc0,0x2f,0xd4,0xe7,0x2,0x18,0x26,0x80,0xcf,0x58,0x7,0x60,0x9b,0xb6,0x5,0x70,0x70,0xc,0x60,0x21,0x5b,0xfd,0xaf,0x53,0xc0,0xc2,0x5b,0xb4,0xe2,0xea,0xb7,0xe8,0x77,0xaf,0xba,0x76,0x13,0x55,0xed,0x75,0xe6,0xe1,0xef,0x51,0x2c,0xbb,0x23,0x30,0xe4,0xd2,0x2,0x90,0xc6,0x2,0xd0,0x32,0x44,0x0,0x80,0x55,0x0,0x9c,0x3d,0x8,0xd4,0xf2,0x16,0xe0,0x86,0x0,0x38,0x78,0xf7,0x9f,0x2b,0x1,0x30,0xcb,0xaf,0x4,0xc0,0x4e,0x7e,0x65,0xf5,0x9f,0x81,0xd5,0xbf,0x17,0x1,0xe8,0x71,0x7,0xe0,0x4e,0x3,0xf0,0x2e,0x1f,0x3,0x30,0xfc,0x79,0x63,0xa9,0xab,0x6b,0x19,0xbf,0x43,0xb0,0xab,0xaf,0xdf,0xff,0xfe,0x65,0x6a,0x69,0xbb,0x4f,0x4c,0x1,0x8e,0x2,0x10,0x68,0x7e,0x33,0x90,0xd5,0xfd,0x0,0x44,0x0,0x82,0x95,0x2d,0x80,0x1a,0x0,0x7d,0x2,0x38,0x69,0x75,0x43,0x10,0x7,0x13,0x80,0x1a,0x80,0xa5,0xb7,0xf9,0xea,0xef,0x85,0x0,0xe4,0xec,0x78,0x82,0x6e,0xfd,0xd3,0x4f,0xe9,0x8d,0xbf,0xba,0xf6,0xde,0x8,0xed,0xf5,0xd3,0x5f,0xbc,0x42,0x95,0xb,0x3e,0x86,0x0,0x5c,0x33,0x4,0x20,0x55,0x6,0x20,0xab,0x45,0x7b,0x22,0x90,0xf3,0x0,0xd4,0xb1,0x0,0xb4,0xb9,0x1e,0x0,0xc3,0xfe,0xbf,0x6d,0xf8,0xe3,0xbf,0x7e,0xb,0xb0,0x61,0xbe,0x1,0x88,0xcb,0xaf,0xac,0xfe,0xe6,0xc7,0x81,0xcd,0xa8,0xe0,0x8f,0x4,0xd7,0x56,0x7f,0xea,0x2e,0xeb,0x77,0x7,0xe0,0x7d,0x19,0x0,0xe0,0xe3,0x93,0x44,0x27,0x4e,0x5c,0x71,0xf9,0x36,0x62,0xec,0xf5,0xed,0x7f,0xfb,0x4f,0x8a,0x4b,0xac,0x23,0xf,0xef,0x54,0xc7,0x67,0x1,0x2c,0x3,0xa0,0x6d,0x1,0xe4,0x95,0x80,0xd9,0x72,0x2,0xa8,0xb5,0x6d,0x1,0x2c,0x3,0xc0,0xe4,0x67,0xf,0x5,0x39,0x6a,0xba,0x10,0x68,0xa7,0xe9,0x20,0xe0,0xba,0xf,0x89,0xdb,0x81,0x2d,0xbb,0x45,0x7e,0x88,0x40,0xfe,0x9e,0x27,0xe9,0xd8,0x67,0xff,0x8b,0x7e,0x39,0x82,0x91,0x5f,0x7b,0xbd,0xf5,0xb7,0xbf,0xd3,0x8e,0xfe,0x6f,0x52,0x74,0xd3,0x35,0x8a,0x6f,0xb9,0x4e,0x89,0x2d,0xd7,0x1d,0x6,0xc0,0xd1,0x4,0x50,0xd,0xec,0x2,0x80,0x8f,0xcd,0x6d,0x23,0x9,0x80,0x83,0x9b,0x7f,0xb4,0x3a,0xbe,0x1,0x88,0x76,0x1b,0x30,0x75,0xf5,0x77,0x7c,0x2b,0xf0,0x41,0x1e,0x0,0xe3,0x63,0xc1,0x85,0xfc,0xea,0xea,0xf,0xf9,0x69,0x7a,0xd9,0x59,0x77,0x0,0x46,0x1e,0x80,0x7b,0xb4,0x5,0x50,0xfe,0xcc,0x91,0x91,0xa5,0xf4,0xcd,0x6f,0xba,0xf6,0x7e,0x78,0xed,0x75,0xf5,0xfa,0x63,0x14,0x30,0x36,0xc7,0x74,0x4b,0xb0,0x1c,0xdb,0x85,0x40,0xfa,0xbb,0x1,0x9d,0x4,0x20,0xc7,0x14,0x0,0xd3,0x16,0x20,0xf8,0xe1,0xaf,0x43,0xfe,0xa7,0x94,0x0,0x3c,0x49,0x1e,0x7,0x9f,0xd0,0x9f,0xd,0xe8,0xb1,0x43,0x5e,0x5,0xf8,0xc0,0x47,0xc9,0x73,0xe3,0x47,0x28,0x18,0x93,0x40,0xf6,0xc1,0x27,0x69,0xd9,0x87,0xfe,0x99,0x3e,0xfe,0xdd,0xe7,0xe8,0xf9,0xd7,0xde,0xa4,0x3b,0x7d,0x32,0xd8,0x67,0xbf,0xf1,0x2c,0xa5,0x77,0xdd,0xe6,0xab,0xbf,0xd3,0x0,0xb4,0xd8,0x4e,0x3,0x5a,0x7,0xe0,0x26,0xf,0x40,0x3,0x68,0x6c,0xb3,0x4d,0x0,0xaa,0xfc,0x43,0x5,0xa0,0x5b,0xbb,0x1,0xe8,0x30,0x2,0xa0,0x9e,0xfe,0x33,0xdf,0x3,0xd0,0xf1,0x83,0x40,0x2e,0xd3,0x4c,0xb3,0xfc,0x60,0x86,0xb2,0xfa,0xb,0xf9,0xcf,0x41,0xfe,0x7e,0x9a,0xe6,0xe,0xc0,0xfb,0x38,0x0,0xfc,0xcf,0x1d,0x4b,0xcd,0x2d,0xf3,0xe9,0xc5,0x17,0x5f,0x71,0x59,0x8c,0x37,0xdf,0xfc,0xb,0x2d,0x5f,0xb5,0x8b,0x3c,0x7c,0xd2,0x2c,0xb6,0x0,0xd9,0x3c,0x0,0x5e,0x41,0x8e,0xe,0x2,0xda,0x1e,0xe,0x1a,0x5c,0xaa,0x6,0xe0,0x2b,0x7a,0x0,0x7e,0xfa,0xfa,0x5f,0xa8,0xf1,0xb,0xdf,0xa7,0xac,0x5b,0x5f,0xa7,0xe4,0x6b,0x5f,0xa3,0x98,0xc1,0xaf,0x50,0xf4,0x85,0x2f,0x51,0xfc,0xf9,0x2f,0x52,0x2a,0x3e,0xe6,0x5d,0xfa,0x32,0xd5,0x5c,0xfd,0x1a,0xcd,0xfc,0xc8,0x3f,0xd3,0x96,0xcf,0xfc,0x3b,0x5d,0xfb,0x97,0x67,0xe8,0x5b,0xcf,0xbe,0x40,0xcf,0xff,0xf1,0xcd,0xbb,0xf6,0xe8,0xf0,0xff,0xfe,0xf9,0xcb,0xd4,0xb0,0xec,0xe3,0x58,0xfd,0xaf,0x52,0x6c,0x8b,0x8,0x40,0x82,0x12,0x80,0x34,0x73,0x0,0x5a,0x1c,0x7,0xa0,0xb6,0xf5,0xa6,0x3e,0x1,0xf0,0x0,0xc8,0x9,0x60,0xd8,0xfb,0xff,0x36,0x25,0x0,0xad,0x8e,0x6f,0xff,0x35,0xc3,0xc1,0xea,0xaf,0xdf,0x1,0xd8,0x49,0x0,0x66,0x62,0xf5,0xd7,0x2,0xd0,0xa7,0xc8,0xdf,0xab,0xcb,0x3f,0xa0,0xca,0x4f,0x5d,0x65,0x67,0xdc,0x1,0x18,0x79,0x0,0xee,0xed,0x16,0x40,0x83,0xbd,0xf7,0x7f,0xdf,0xbe,0x7e,0xfe,0xd8,0x30,0x57,0x5f,0xcf,0xfd,0xe2,0xd7,0x54,0x52,0xd9,0xc7,0x23,0x60,0x79,0xc,0x40,0x9b,0x2,0xac,0x6e,0xb,0xce,0xe,0x2,0xda,0x6d,0x1,0x6c,0x13,0x0,0x73,0xf8,0x4f,0x7f,0x7b,0x9b,0x5e,0xf8,0xf3,0x5f,0xe9,0x57,0x90,0xfa,0x67,0xaf,0xfe,0x99,0x9e,0x79,0xe5,0x75,0xfa,0x39,0x26,0x83,0x5f,0xe3,0x9f,0x5f,0x7a,0xe3,0xaf,0xf4,0xe7,0xb7,0xde,0xa6,0xb7,0xef,0x92,0xec,0xe6,0xd7,0xf3,0x2f,0xfd,0x99,0xe6,0xed,0xfc,0x3c,0x45,0x36,0x5d,0xe1,0xf2,0xdb,0x5,0xa0,0x59,0x4,0x20,0x3,0xa8,0x1,0x28,0x6c,0x71,0x12,0x0,0xd0,0xe0,0x42,0x0,0xd4,0xc7,0x80,0xab,0x4f,0x0,0xb2,0xbf,0xfd,0xb7,0x29,0x0,0x76,0xb7,0x0,0x37,0xca,0x6f,0x7c,0x1a,0xb0,0xf6,0x28,0x70,0xb1,0xfa,0xf7,0xa9,0xf2,0x3,0x2e,0x7f,0x5,0xe4,0x2f,0xd7,0xe4,0x3f,0x7,0xf9,0xfb,0x99,0xfc,0xd4,0x59,0x76,0xda,0x1d,0x80,0x91,0x7,0xe0,0x3d,0x30,0x1,0xc8,0x3f,0x7b,0x68,0x68,0x21,0x7d,0xf9,0xcb,0xae,0xdd,0x19,0x47,0x7b,0xfd,0xc3,0x97,0xbe,0x45,0xa1,0x51,0x95,0x98,0x2,0xb2,0x8d,0xcf,0x7,0xb4,0xdc,0x2,0x54,0x2b,0x13,0x80,0xf9,0x2c,0x80,0x31,0x0,0xf7,0xf2,0xf5,0xe2,0x1f,0xde,0xa4,0xd5,0x47,0xbf,0x4a,0x51,0x2d,0x57,0x29,0x6,0xc4,0x41,0xfe,0x38,0x2d,0x0,0xd8,0xa,0x24,0x35,0xcb,0x9,0xa0,0x59,0x6,0xa0,0xd9,0x85,0x0,0x0,0x2d,0x0,0x2d,0x2c,0x0,0xa0,0xd,0xb4,0x83,0xe,0x30,0x5,0x4c,0x5,0x9d,0x6d,0x36,0xf9,0xf5,0x0,0xb4,0x3a,0xa,0x80,0x71,0xf5,0x57,0x1f,0x2,0x22,0x1e,0x3,0x76,0x5d,0x79,0x8,0xe8,0x35,0x5d,0x7e,0x4e,0x8d,0x90,0xbf,0xf,0xab,0x7f,0x9f,0x12,0x0,0x21,0xbf,0x58,0xfd,0x7b,0xb0,0xfa,0x77,0x23,0x0,0x36,0xf9,0xcf,0x42,0xfe,0x33,0x34,0xd5,0x1d,0x80,0xf,0x40,0x0,0xf8,0x9f,0x3f,0x96,0xaa,0x6b,0xfa,0xf8,0xa3,0xc7,0x5d,0x7d,0xb1,0xc9,0xe1,0xc8,0xf1,0xab,0xe4,0x3,0xe1,0x3d,0xf4,0x87,0x83,0xd8,0x7,0xc0,0x3b,0xc4,0x62,0x2,0xd0,0xce,0x2,0xb0,0x9,0x60,0xa6,0x71,0xb,0x70,0xaf,0x5e,0xbf,0xc3,0xca,0xbf,0xa,0xf2,0x47,0xb6,0x5d,0xa5,0xa8,0x56,0x11,0x80,0x58,0x3d,0x0,0xd7,0x28,0x91,0x7,0xe0,0xba,0x6d,0x2,0x68,0x96,0x13,0x0,0x3e,0xea,0x1,0x68,0x19,0x22,0x0,0xa0,0x9,0x42,0x8b,0x0,0xdc,0x44,0x0,0x6e,0x5a,0x4,0xe0,0x26,0x2,0x70,0x93,0x3f,0x0,0x54,0x7b,0x4,0xb8,0x65,0x0,0x4c,0xcf,0x0,0xb4,0x93,0xdf,0xc1,0x53,0x80,0x1d,0xc9,0x3f,0x43,0x91,0xbf,0x47,0x95,0xbf,0xdc,0x4e,0x7e,0x9a,0x52,0x7a,0xca,0x1d,0x80,0xf,0x44,0x0,0x38,0xf1,0xf4,0xe0,0xb6,0x63,0xf4,0xf6,0xdb,0xae,0x9f,0x2a,0x7b,0xf5,0xf,0x7f,0xa4,0xde,0xd9,0x1b,0xc9,0xc3,0x2f,0xd3,0xf1,0x4,0x10,0x62,0x9b,0x0,0x6c,0x5b,0x80,0x99,0x14,0x5c,0xba,0x58,0xf,0x40,0xf2,0x23,0xf7,0x76,0x2,0xf8,0xf1,0x73,0x2f,0xd3,0xec,0x9d,0x9f,0xa3,0x88,0xb6,0x2b,0x3c,0x0,0xd1,0xad,0xa6,0x9,0xa0,0xd9,0x14,0x80,0x66,0x63,0x0,0xf2,0xd5,0x0,0xb4,0x98,0xe,0x2,0xca,0x0,0xd4,0x6b,0x1,0x68,0x65,0x1,0xb8,0x69,0x9a,0x0,0x6e,0x22,0x0,0x37,0x11,0x80,0x9b,0x4a,0x0,0x40,0xab,0x8,0xc0,0xf4,0xd6,0xa1,0x1e,0x0,0xaa,0x3c,0x6,0xbc,0xd1,0xf8,0x14,0xe0,0x3e,0xc8,0xdf,0x7,0xf1,0xfb,0xa4,0xfc,0x7d,0xc,0x4,0x80,0xc9,0x3f,0xa3,0x4a,0x82,0x0,0xf4,0x32,0xf9,0x2b,0x85,0xfc,0xdd,0x18,0xfd,0xa7,0xeb,0xf2,0x9f,0x83,0xfc,0xfd,0x90,0xff,0xac,0x90,0xbf,0xec,0x14,0x75,0x94,0x9e,0x74,0x7,0x60,0xe4,0x1,0x78,0x6f,0x1c,0x3,0x50,0xff,0xe,0x13,0x26,0xe4,0xd2,0x67,0x3e,0xf3,0x95,0x11,0xc9,0xf3,0x83,0x1f,0x3d,0x4d,0xe9,0xb9,0x9d,0xd8,0xa,0x64,0xd,0x3f,0x0,0x39,0xe6,0x0,0xdc,0x9b,0x9,0xe0,0xad,0xb7,0xff,0x4e,0x4f,0x7e,0xf3,0x59,0xaa,0x5a,0xf1,0x18,0x85,0xb5,0x42,0xfe,0x76,0xac,0xfe,0x16,0x1,0x48,0x30,0x4,0xe0,0x3a,0x2,0x70,0x1d,0x1,0xb8,0x8e,0x2d,0xc0,0xd,0x31,0x1,0x60,0x2b,0x50,0x88,0x8f,0x7a,0x0,0x5a,0xec,0x3,0xd0,0xa0,0x4,0xa0,0x19,0xb4,0xb6,0x6a,0x13,0xc0,0x4d,0x63,0x0,0xf0,0xef,0xbb,0x5a,0x85,0xfc,0xe6,0x0,0xf0,0x8,0xb4,0x88,0x0,0xf4,0x98,0x9e,0x0,0xac,0x3,0xf9,0x67,0xa8,0xf2,0x6b,0x1,0x50,0xe4,0x9f,0x81,0xd5,0x7f,0x46,0xb5,0x51,0xfe,0x1e,0x6,0x56,0xff,0xee,0xf2,0xb,0x10,0xff,0x3c,0x4d,0x43,0x0,0x8c,0xf2,0x9f,0x81,0xfc,0xa7,0x99,0xfc,0xd4,0xee,0xe,0xc0,0x7,0x28,0x0,0xfc,0xef,0x11,0x47,0xc5,0x25,0x5d,0xf4,0x8b,0x5f,0xfc,0x7a,0x44,0x22,0x3d,0xfa,0xf8,0xe7,0x29,0x38,0xb4,0x54,0x6c,0x5,0xf8,0x41,0x40,0xd3,0x95,0x80,0xf2,0xbe,0x80,0xea,0x4,0x30,0x4e,0x3b,0xb,0x30,0x73,0x37,0xa5,0x7c,0xf4,0xdd,0xd,0x0,0xbb,0x4,0xe2,0x99,0x5f,0xff,0x81,0xb6,0x5e,0xfa,0x26,0xc5,0xf7,0xde,0xa4,0xd0,0xb6,0xcb,0x14,0x1,0xf9,0xed,0x3,0x70,0xd5,0x14,0x80,0x6b,0x4a,0x0,0x6e,0x28,0x1,0xb8,0x21,0x2,0x0,0xf4,0x0,0x80,0xaa,0xa1,0x2,0x0,0xda,0x41,0x7,0x98,0x2,0xa6,0xb6,0xda,0x2,0xd0,0x65,0x15,0x0,0x45,0xfe,0x9e,0x66,0x11,0x80,0x5e,0x65,0xf5,0xe7,0xf2,0xcb,0x0,0xcc,0xa8,0x97,0x40,0x7e,0xe,0xe4,0x9f,0xa1,0xc8,0xdf,0x5b,0x25,0x91,0xf2,0x77,0x33,0xf9,0x2b,0x6c,0xf2,0x77,0x41,0xfe,0x4e,0xc8,0x3f,0x15,0xf2,0x4f,0x81,0xfc,0x1d,0x90,0xbf,0xbd,0xf4,0x14,0xb5,0x21,0x0,0xad,0xa5,0x27,0xdc,0x1,0xf8,0x40,0x5,0x40,0xfe,0x5d,0xd6,0xae,0xdb,0x43,0x6f,0xbd,0xe5,0xba,0x88,0x6f,0xfd,0xed,0x6f,0xb4,0x79,0xdb,0x49,0xfd,0x34,0xa0,0xf1,0x52,0x60,0xf3,0x69,0x40,0xe3,0x16,0x20,0x10,0x1,0x78,0xb7,0x26,0x0,0x76,0xde,0x80,0x3d,0x18,0xf4,0xec,0x27,0xff,0x83,0x8a,0x56,0x3c,0x4a,0x13,0xa6,0x5c,0xa6,0xd0,0x8e,0xcb,0x14,0xd6,0x71,0x5,0x1,0x10,0x13,0x40,0x34,0x2,0x10,0xa3,0x6,0xa0,0xf9,0xaa,0x8,0x40,0x13,0x2,0xd0,0x24,0x3,0xd0,0x64,0x9e,0x0,0x6e,0x50,0x81,0x55,0x0,0x5a,0x1c,0x6c,0x1,0x5c,0x8,0x80,0x1e,0x1,0x48,0xdf,0x6d,0x27,0xff,0x75,0x1b,0xaa,0xfc,0xd,0x56,0xf2,0x5f,0xa5,0x5e,0xc8,0xdf,0xab,0xc8,0xdf,0x53,0x39,0xa8,0xcb,0x3f,0x1d,0xf2,0x4f,0xd3,0xe4,0x2f,0x77,0x2a,0x3f,0xb5,0x94,0x1e,0x77,0x7,0x60,0xc4,0x1,0x78,0xee,0xbd,0x1b,0x80,0xb1,0xc1,0x59,0xf4,0xd8,0x63,0x9f,0x1d,0x91,0x5c,0xcf,0xbf,0xf0,0x12,0x35,0x75,0x2c,0x23,0xf,0xfd,0x54,0xa0,0x16,0x80,0xa,0x8b,0x9,0x40,0xb9,0xe,0xa0,0xf,0x1,0x60,0x13,0xc0,0x9b,0xef,0x5c,0x0,0xfe,0xf6,0xf6,0xff,0xd1,0xf,0x7f,0xf9,0xa,0x1d,0x79,0xfc,0x7b,0x54,0xb4,0xf6,0x31,0x1a,0x37,0xed,0x32,0x8d,0x9f,0x3a,0x48,0x93,0xa6,0x5e,0xa6,0xc9,0x53,0xae,0x50,0xb8,0xc,0x40,0x14,0x88,0x6e,0xbb,0x62,0x8,0x40,0x3c,0xf,0xc0,0x55,0x1e,0x80,0x64,0x16,0x80,0x26,0x19,0x0,0x90,0x5,0x72,0x9a,0x4c,0x1,0x0,0x5a,0x0,0xaa,0x59,0x0,0x5a,0xec,0x3,0xe0,0x6c,0x2,0x50,0x23,0xc0,0x3,0xd0,0x62,0x93,0xbf,0x5b,0xca,0xcf,0xc1,0x7f,0x5b,0x83,0xc9,0xcf,0x69,0x60,0x5c,0xa3,0x5e,0x45,0xfe,0x5e,0xc8,0xdf,0x2b,0xe5,0xef,0x81,0xfc,0x1c,0x29,0x7f,0x37,0xe4,0x9f,0x5e,0x29,0xe5,0xc7,0xbe,0xbf,0xb,0xf2,0x77,0xea,0xf2,0xf7,0xdb,0xe4,0x2f,0x13,0xf2,0xb7,0x40,0xfe,0xe6,0xd2,0xe3,0xd4,0x54,0x72,0xcc,0x1d,0x0,0x4d,0x9a,0x71,0xe3,0x73,0xe9,0xf1,0xc7,0x3f,0x47,0x3f,0xc2,0x5e,0xf8,0x7,0x3f,0xf8,0x1f,0xa7,0xfc,0xe8,0x47,0x3f,0xa5,0x2f,0x7c,0xe1,0xeb,0x14,0x11,0x59,0xfa,0xde,0xb,0x0,0xff,0xfb,0xc4,0x51,0x6e,0x6e,0x1b,0xfd,0xe3,0x3f,0xfe,0xb,0xfd,0xf0,0x87,0x3f,0xb5,0xfe,0x7b,0xfc,0x90,0xf1,0x53,0x85,0xa7,0x39,0x3f,0xfe,0xc9,0xcf,0xe8,0xf2,0xf5,0xc7,0x29,0x38,0xac,0x82,0x3c,0xe4,0xb5,0x0,0xfa,0x4,0x20,0x3,0xe0,0x13,0xa5,0x5c,0x7,0xc0,0x26,0x80,0x9a,0x55,0x8,0xc0,0x2e,0x4a,0xfa,0xc8,0x97,0xe9,0xb9,0xbb,0x1c,0x80,0xb7,0x20,0xfd,0xcf,0x5f,0xf8,0x23,0x3d,0xf2,0xad,0x67,0x68,0xee,0xb9,0xaf,0x52,0xcc,0xf2,0xf,0x93,0x5f,0xf7,0x65,0xa,0xec,0x1a,0xe4,0x1,0x98,0xd8,0x79,0x59,0x6,0xe0,0x32,0x2,0x70,0x19,0xab,0xff,0x65,0x8c,0xff,0x32,0x0,0x2d,0x57,0x8c,0x1,0x68,0x1a,0x22,0x0,0xa0,0xa0,0x49,0x9,0x0,0xa8,0x84,0xac,0x55,0x80,0x7,0x0,0xd4,0xb7,0x88,0x6d,0x80,0xa3,0x0,0x58,0x4e,0x1,0xf8,0xf5,0xd3,0x0,0xb,0xc0,0x74,0xfc,0x9e,0xdd,0x1a,0x8a,0xfc,0x3d,0xba,0xf8,0x36,0xf9,0x39,0x52,0xfe,0x1e,0x46,0x8d,0x4d,0xfe,0xee,0x2a,0x89,0x94,0x7f,0x5a,0xc5,0x45,0x45,0xfe,0x1,0x88,0x7f,0xe,0xe2,0xf7,0x43,0xfc,0xb3,0x10,0xff,0xc,0xb5,0x41,0xfe,0x56,0xa3,0xfc,0xd4,0x58,0x72,0xd4,0x1d,0x0,0xd,0x4f,0xaf,0x44,0x9a,0x30,0x31,0x8f,0x42,0x27,0x17,0x81,0x42,0xf9,0xd1,0xfc,0xb9,0xed,0x9f,0xd9,0xc4,0xe0,0xe5,0x93,0x74,0xcf,0xff,0xdc,0xe,0xff,0x3e,0x60,0xfc,0x84,0x5c,0xd3,0x9f,0x5d,0x12,0x5e,0x4a,0xa1,0x11,0x65,0x14,0x1a,0x59,0x4e,0xa1,0x51,0x15,0x82,0x98,0x6a,0x9a,0x1c,0x53,0x4b,0x93,0x63,0x6b,0xf1,0x39,0x56,0xf9,0xf1,0x85,0xf6,0xc7,0x0,0xb4,0xeb,0x0,0x10,0x0,0xbf,0x78,0x65,0xb,0xc0,0x3,0xb0,0x9b,0x92,0x30,0x1,0xdc,0x49,0x0,0xd8,0x15,0x80,0x7f,0xfc,0xcb,0xdf,0xe8,0xd9,0x17,0xff,0x48,0x5f,0xf9,0xd1,0x6f,0xe8,0xe4,0xe7,0xff,0x8b,0x7a,0xcf,0x7d,0x99,0x12,0x36,0x3c,0x4a,0x3e,0x73,0xaf,0x91,0x47,0xef,0x65,0xf2,0x6,0x1,0x3d,0x97,0x29,0x68,0x3a,0x56,0xff,0x2e,0x11,0x80,0x10,0x4,0x20,0xcc,0x10,0x80,0xcb,0xd8,0xff,0x8b,0x0,0xc4,0x2,0x63,0x0,0xae,0xca,0x0,0x5c,0xa3,0x54,0x88,0x97,0xe,0x32,0x4d,0x1,0x28,0x2,0x25,0x10,0xb4,0xc,0x54,0x80,0xaa,0x66,0x16,0x80,0x1b,0x8,0xc0,0xd,0x1e,0x80,0x46,0xd0,0x4,0x9a,0x5b,0x9c,0x6c,0x3,0xf0,0x63,0x9d,0xf8,0xf9,0xc,0x3d,0x0,0xcd,0x92,0x26,0x26,0xbf,0x8,0x40,0xb7,0x94,0x9f,0x3,0xf1,0x39,0x10,0xbf,0xa7,0x8e,0x71,0x55,0xa0,0xcb,0x7f,0x99,0xba,0x15,0xf9,0xa7,0x43,0xfe,0x69,0x52,0xfe,0x2e,0xc8,0xdf,0x89,0xd1,0x7f,0x2a,0x93,0xbf,0xdc,0x2c,0xff,0x69,0xc8,0x7f,0x8a,0xcb,0xdf,0x4,0xf9,0x1b,0x4b,0x8f,0x51,0x43,0xc9,0x51,0xaa,0x2f,0x39,0xe2,0xe,0x80,0x1,0xb6,0x9a,0xbb,0xc2,0xbd,0xfe,0xf3,0xba,0xfc,0xf7,0x49,0xb0,0xdd,0x1b,0x90,0x3f,0x20,0x34,0x4d,0xdc,0x16,0xcc,0x57,0xbc,0x1f,0x80,0x1d,0xfc,0xf3,0x8,0xc8,0xb1,0x1d,0x4,0xd4,0xce,0x2,0x8c,0x2b,0x96,0x1,0x90,0x5b,0x80,0x28,0xe5,0x18,0x40,0xc9,0x22,0x5b,0x0,0x94,0x9,0xe0,0xa5,0xb7,0xde,0xa6,0x4f,0xfe,0xfc,0x5,0xfa,0xec,0xcf,0x9e,0xa7,0xaf,0xfd,0xe2,0x45,0xfa,0xd7,0xdf,0xbc,0x42,0xdf,0x66,0xfc,0xfa,0x15,0xfa,0xff,0x7e,0xf5,0x12,0x7d,0x5,0xff,0xfe,0xa9,0x9f,0xfc,0x9a,0x3e,0xfc,0xbd,0x9f,0xd3,0xd9,0x7f,0xfa,0x9,0x6d,0x7b,0xf2,0x7b,0x34,0xf7,0xe6,0x3f,0x51,0xe5,0x89,0xcf,0x51,0xec,0xb6,0xc7,0x28,0x70,0xe5,0x6d,0xf2,0x58,0x8,0xe9,0xe7,0x5e,0x21,0x8f,0xd9,0x57,0xc9,0x63,0xd6,0x15,0xf2,0xec,0xbb,0x42,0x3e,0xbd,0x57,0x78,0x0,0xc6,0xf2,0x0,0xc,0x22,0x0,0x83,0x32,0x0,0x83,0x86,0x0,0xc4,0xb4,0xa,0xf9,0x79,0x0,0x9a,0xaf,0xf0,0xf1,0x9f,0x5,0x20,0x89,0x63,0x1f,0x80,0x6c,0x90,0xab,0x6,0xa0,0xc9,0x14,0x0,0x50,0xcb,0x3,0x70,0x83,0x1a,0x80,0x1e,0x0,0xd0,0xa,0xda,0x40,0x3b,0xe8,0x0,0x53,0x5a,0x58,0x0,0x84,0xfc,0x9d,0xf8,0x75,0x5d,0x60,0x9a,0x64,0x3a,0xfe,0x3b,0x1a,0x3c,0x0,0x8d,0x92,0x6,0xc6,0x35,0xea,0x56,0xe4,0xef,0x66,0x40,0xfe,0xee,0x1a,0x26,0xbe,0x90,0x7f,0x7a,0x95,0x44,0xca,0xdf,0x5,0xf9,0x3b,0x15,0xf9,0xa7,0x40,0xfe,0xe,0xc8,0xdf,0xe,0xf9,0xdb,0x20,0x7f,0x2b,0xe4,0x6f,0x81,0xfc,0xcd,0x58,0xfd,0xb9,0xfc,0x25,0xba,0xfc,0x54,0x57,0x7c,0xc8,0x1d,0x80,0x51,0x89,0x7a,0x3f,0x0,0xed,0xa6,0xa0,0xe6,0x7,0x83,0x58,0x5d,0x8,0x64,0xb7,0x5,0x98,0x49,0xe3,0x64,0x0,0x2,0x67,0x60,0xb,0xf0,0xe1,0x2f,0xe9,0x1,0xf8,0xee,0xab,0xaf,0xd3,0x84,0xdb,0xff,0x48,0xbe,0x27,0x9f,0xa4,0xc0,0x93,0x9f,0xa1,0xa0,0x53,0x9f,0xa1,0xb1,0x27,0x9e,0xa2,0xb1,0x47,0x9f,0xa4,0xa0,0x43,0x4f,0x50,0xc0,0xbe,0x4f,0x90,0xdf,0x43,0x8f,0x91,0xd7,0xd6,0x8f,0x92,0xc7,0xc6,0xf,0x91,0xc7,0x5a,0x8,0xbf,0xea,0x26,0x79,0x2c,0xbf,0x41,0x1e,0x4b,0xc1,0xe2,0xeb,0x22,0x0,0xf3,0x21,0xff,0x5c,0x11,0x0,0x2f,0x4,0xc0,0x17,0x13,0x40,0xa0,0xc,0xc0,0x4,0x4,0x60,0x12,0xf,0xc0,0x20,0x85,0x75,0xc,0x62,0xff,0x3f,0x48,0x91,0x6d,0x5a,0x0,0x2e,0x9b,0x2,0x0,0x9a,0xae,0xf0,0x9,0x40,0x4,0xe0,0x2a,0x2,0x70,0xcd,0x2e,0x0,0xf9,0x6a,0x0,0x40,0x45,0x93,0x12,0x0,0x50,0xf,0x1a,0x40,0x23,0xe4,0x6e,0x6,0x2d,0xa0,0x15,0xb4,0x81,0x76,0xd0,0x1,0xa6,0xe0,0xc7,0xa7,0x4a,0xb4,0x0,0x74,0xe1,0xf7,0x99,0xc6,0xb9,0xce,0xe1,0x11,0x50,0xc5,0x97,0xf2,0x77,0xd7,0x5d,0x13,0xe2,0x73,0xf9,0xaf,0xd0,0x74,0xc8,0x3f,0xbd,0x9a,0x21,0xc4,0x9f,0xc6,0x80,0xfc,0x5d,0x90,0xbf,0xb3,0x52,0xc8,0x3f,0x15,0xf2,0x4f,0x71,0x20,0x7f,0xb3,0x2e,0xff,0x9,0x6a,0xc0,0xca,0x5f,0xf,0xf9,0xeb,0x20,0x7f,0x6d,0xf1,0x21,0xaa,0x29,0x3e,0xe8,0xe,0xc0,0xe8,0x41,0x79,0x5e,0xa0,0xfe,0x64,0xa0,0x74,0xdb,0xbb,0x1,0xcd,0x8f,0x7,0x37,0x9d,0x5,0xf0,0xd6,0x9e,0xc,0xc4,0x3,0xd0,0x80,0x2d,0x40,0x1b,0x5,0x65,0xf5,0xe9,0x13,0x80,0x55,0x0,0x82,0x6f,0x7d,0x95,0x3c,0x8e,0x3e,0x21,0x38,0x2,0xe,0x7d,0x4a,0x3e,0x1a,0xfc,0xe3,0xe4,0x1,0xf9,0x3d,0xb6,0x3d,0x42,0x1e,0x5b,0x10,0x80,0x4d,0x1f,0x26,0x8f,0xf5,0xf,0x93,0xc7,0xea,0x5b,0xe4,0xb1,0x12,0x11,0x58,0x66,0xa,0xc0,0x1c,0x2d,0x0,0x97,0x45,0x0,0xba,0x59,0x0,0x6,0x45,0x0,0x20,0x7f,0xe8,0x14,0x35,0x0,0x83,0x4a,0x0,0x2e,0xdb,0x2,0xd0,0xa4,0x4,0xa0,0xf1,0x2a,0xa5,0x80,0xd4,0x46,0x73,0x0,0xae,0xf3,0x0,0x14,0xb2,0xe3,0x0,0xa0,0x54,0xb,0x0,0xa8,0x6e,0x12,0x1,0xa8,0xd3,0x2,0x0,0x9a,0x40,0xb,0x68,0x5,0x6d,0xa0,0x1d,0x74,0x48,0xb4,0x8,0x74,0x36,0x31,0xae,0x23,0x0,0x2,0x1e,0x80,0x46,0xc1,0xf4,0x6,0xc6,0x35,0x1,0xe4,0x9f,0x5e,0xc7,0xb8,0x2a,0x90,0xf2,0x4f,0xab,0x66,0x8,0xf1,0xbb,0x18,0x8a,0xfc,0x53,0x2b,0x2e,0x48,0xf1,0x7,0xa8,0x3,0xf2,0xb7,0x43,0xfe,0x36,0xc8,0xdf,0xa,0xf9,0x5b,0xa4,0xfc,0x4d,0x90,0xbf,0x91,0xcb,0x7f,0x5c,0x97,0xbf,0x6,0xf2,0x57,0x17,0x1f,0xa4,0xaa,0xe2,0x3,0xe6,0x0,0x38,0x7a,0xa8,0xe4,0x10,0xdf,0x50,0x96,0x3f,0xe6,0xca,0xef,0xf5,0x7e,0xe7,0xfd,0xf0,0xf7,0x55,0xfe,0x8c,0xe6,0x0,0xf8,0x65,0xc,0x11,0x80,0x62,0xdb,0xa3,0xc1,0xf4,0x63,0x0,0xf6,0x1,0x48,0x44,0x0,0x7e,0xfe,0xe6,0x5f,0xed,0x3,0xc0,0xe4,0x67,0xf,0x5,0x3d,0xa4,0x3d,0x18,0xd4,0x14,0x80,0x8d,0x8,0xc0,0x3a,0x4c,0x0,0xf7,0x23,0x0,0x2b,0x64,0x0,0x16,0x5d,0x13,0x1,0x98,0xc7,0x2,0x70,0x85,0x7,0xc0,0x1b,0x1,0xf0,0x43,0x0,0xc6,0x74,0xf,0x52,0xf0,0x34,0x8c,0xff,0x3c,0x0,0x97,0x10,0x80,0x4b,0x7a,0x0,0xa2,0x10,0x80,0x68,0x10,0xd3,0x32,0x28,0x3,0x70,0x59,0xf,0x40,0xa2,0xc4,0x16,0x80,0xab,0x94,0xe,0x11,0x33,0x41,0x36,0xc8,0x5,0xf9,0xa0,0x10,0x92,0x6a,0x1,0x28,0x7,0x95,0x5a,0x0,0x40,0x1d,0x68,0x68,0xb2,0x5,0xa0,0xd9,0x2a,0x2,0xf8,0xf1,0x29,0xf8,0x3d,0xa6,0xe2,0xe3,0x54,0x7c,0xec,0x94,0xf0,0x8,0x30,0xf9,0x1b,0x34,0xae,0x9,0x20,0xff,0xb4,0x3a,0xc6,0x55,0x9a,0x56,0xcb,0xb8,0x42,0xd3,0xa4,0xfc,0x5d,0x90,0x9f,0x3,0xf9,0x3b,0x21,0x3f,0x17,0xbf,0x12,0xe2,0x63,0xe5,0x9f,0x52,0xc1,0xc4,0x1f,0xa0,0x76,0xc8,0xdf,0x6,0xf9,0x5b,0x21,0x7f,0x8b,0x94,0xbf,0x9,0xf2,0x37,0x42,0xfe,0x6,0xc8,0x5f,0xf,0xf9,0xeb,0x20,0x7f,0x2d,0x93,0xbf,0xe4,0x30,0xc4,0x3f,0x48,0x95,0xc5,0x7,0xa8,0xa2,0x68,0x9f,0x7b,0x2,0x78,0x77,0x5,0x1c,0xc9,0xcf,0xbb,0x4b,0x51,0xf6,0x52,0x27,0x80,0x64,0x7,0x5b,0x0,0xf5,0xf1,0x60,0xb9,0xe2,0xc,0x80,0x7e,0xc,0xc0,0x78,0x16,0x40,0xd,0x40,0x30,0x3b,0x6,0xd0,0xfb,0x10,0x25,0x3c,0xfc,0x45,0x63,0x0,0x6e,0xb2,0x0,0x7c,0x4a,0x6,0x0,0x1f,0xf,0xb2,0x9,0xe0,0x13,0x72,0x2,0xf8,0x18,0x79,0x3c,0x88,0x0,0x6c,0xfe,0x88,0x6d,0xb,0x70,0xff,0x4d,0x11,0x80,0xa5,0xd7,0x45,0x0,0x16,0x5c,0x55,0x2,0x70,0x99,0xbc,0x67,0xc,0x92,0x5f,0xcf,0xa0,0x12,0x80,0x4b,0x7a,0x0,0xc2,0x3b,0x2e,0x21,0x0,0x97,0x10,0x80,0x4b,0x14,0xdd,0xaa,0x5,0x60,0x10,0xf2,0x5f,0xa6,0x78,0x90,0xd0,0x74,0x59,0x4,0xa0,0xf1,0xa,0x25,0x3,0x5b,0x0,0xae,0x21,0x0,0xd7,0x10,0x80,0x6b,0x8,0xc0,0x35,0x11,0x0,0x50,0xc,0x4a,0x41,0x39,0xa4,0xad,0x94,0x53,0x40,0x8d,0xc,0x40,0x3d,0xb,0x0,0x68,0x2,0xcd,0xa0,0x5,0xb4,0x82,0x36,0xd0,0xde,0x24,0x2,0xd0,0x81,0x5f,0x27,0x22,0x0,0xf0,0xfb,0x74,0x4a,0x58,0x0,0xba,0x1a,0x18,0xd7,0xa8,0xab,0x5e,0xc8,0xdf,0x5,0xf1,0x39,0xb5,0x8c,0x2b,0xd4,0x55,0xc3,0xc4,0xbf,0x4c,0x9d,0x1c,0x88,0xcf,0xe4,0xaf,0xba,0x4,0xf1,0x2f,0xd2,0x14,0xc8,0xdf,0x1,0xf9,0x3b,0x2a,0x98,0xf8,0x3,0xd4,0x6,0xf9,0x5b,0xcb,0x6d,0xf2,0x37,0x5b,0xc8,0x5f,0xb,0xf9,0x6b,0x20,0x7f,0xb5,0x94,0xbf,0x2,0xf2,0x97,0x17,0xed,0xa3,0xb2,0xa2,0xbd,0x2c,0x0,0x89,0xe,0x2,0x30,0x82,0x15,0xcd,0xeb,0x5e,0xaf,0x82,0x56,0xf2,0x24,0x3a,0xf9,0xf1,0x7b,0x21,0xf8,0xbd,0xfa,0x7d,0x2d,0x2,0xa0,0x3e,0x18,0xc4,0x2a,0x0,0x8e,0x6e,0xa,0xaa,0x6,0xa0,0xf8,0x3e,0x1a,0x5b,0xbd,0x92,0xfc,0x7b,0x76,0x22,0x0,0xff,0x60,0xa,0xc0,0x57,0x44,0x0,0xe,0x4b,0xe,0x62,0xf5,0xc7,0xde,0xdf,0x63,0xf7,0xe3,0xe4,0xb1,0x53,0x9,0xc0,0x86,0x87,0x95,0x0,0xdc,0x30,0x5,0x80,0x1d,0x4,0xbc,0x4c,0x1e,0x33,0x45,0x0,0xfc,0x11,0x80,0xa0,0xe9,0x97,0x10,0x80,0x4b,0x34,0xb1,0x53,0x4,0x60,0xb2,0xc,0x40,0x64,0x9b,0x16,0x80,0x4b,0x5c,0x7e,0x11,0x80,0x41,0x8a,0x6f,0xb2,0x5,0x20,0x49,0xb,0x40,0x3,0x2,0x0,0xd2,0x1,0xb,0x40,0x96,0xc,0x40,0x9e,0x29,0x0,0x65,0xa0,0x2,0x54,0x41,0xe4,0x1a,0x50,0xb,0xea,0x41,0x83,0x8c,0x80,0x1a,0x80,0x56,0xfc,0xfb,0x36,0xd0,0xe,0x78,0x0,0x1a,0x5,0x2c,0x0,0x53,0x1b,0x4,0x9d,0x10,0x9f,0x53,0x2f,0x2,0xc0,0xc4,0xef,0x64,0x40,0xfc,0x4e,0x88,0xcf,0x81,0xf8,0x53,0x21,0x3e,0x7,0xf2,0x4f,0xc5,0xca,0x3f,0x5,0xf2,0x77,0x48,0xf9,0xdb,0x2b,0x98,0xf8,0x3,0x10,0x1f,0xf2,0x63,0xe5,0x6f,0x81,0xfc,0xcd,0x90,0xbf,0x9,0xf2,0x37,0x96,0x9d,0x82,0xf8,0x27,0x21,0xfe,0x9,0xaa,0xe3,0xf2,0x1f,0xd3,0xe5,0xaf,0x54,0xe4,0x2f,0x2d,0xda,0x4b,0x25,0x85,0x7b,0xee,0xe5,0x4,0xf0,0x6e,0xc4,0xc2,0x6a,0x34,0x77,0xf5,0xbf,0x7b,0xaf,0xa3,0xf6,0xe,0xa0,0x7,0x20,0xdd,0xfa,0x8e,0x40,0xfa,0x4,0x20,0xb7,0x0,0x6c,0x2,0x98,0x64,0xbe,0xe,0x40,0x4,0x60,0x2c,0xb,0x40,0xd5,0xa,0xa,0xe8,0xde,0x49,0xf1,0xb7,0xbf,0x40,0xcf,0xaa,0x1,0xb8,0xf1,0x65,0xac,0xfe,0x9f,0x14,0xf2,0x1f,0xc2,0xc7,0x3,0x90,0x7f,0x1f,0x56,0xff,0xdd,0x8f,0x89,0xbb,0x1,0x3d,0x88,0xf1,0xff,0x81,0xf,0x8b,0x0,0xac,0xb9,0x25,0x2,0xc0,0xe,0x2,0x2e,0x41,0x0,0xee,0x63,0x1,0xb8,0x22,0xcf,0x2,0xb0,0x0,0xc,0x92,0xf,0xf,0xc0,0x25,0x1e,0x80,0x71,0x8,0xc0,0x24,0x4,0x20,0x84,0x7,0xe0,0x22,0x2,0x70,0x11,0x1,0xb8,0xa8,0x4,0xe0,0x92,0x12,0x80,0x41,0x11,0x80,0xc6,0xcb,0x22,0x0,0xd,0x2c,0x0,0x57,0x78,0x0,0xd2,0x40,0x6,0x84,0xcc,0x2,0x39,0x3c,0x0,0xd7,0xa8,0x0,0xc2,0x16,0x81,0x12,0x35,0x0,0xa0,0x1a,0xd4,0x82,0x3a,0xd0,0x0,0x1a,0x21,0x79,0x13,0x68,0x6,0x2d,0x80,0x7,0x0,0xff,0xbe,0x5d,0xd2,0xc1,0x80,0xf4,0x53,0x38,0xd7,0x10,0x0,0x50,0x2f,0xa9,0x63,0x5c,0x15,0x40,0xfe,0xa9,0x10,0x9f,0x23,0xe5,0x9f,0x52,0xc5,0x60,0xe2,0x5f,0x82,0xf8,0x17,0xa9,0x1d,0xf2,0xb7,0x43,0xfe,0x36,0xc8,0xdf,0x5a,0x21,0xe4,0x6f,0xc1,0xca,0xdf,0xc,0xf9,0x9b,0x20,0x7f,0x23,0xe4,0x6f,0x80,0xfc,0xf5,0x90,0xbf,0xe,0xf2,0xd7,0x42,0xfe,0x1a,0xc8,0x5f,0xd,0xf9,0xab,0x20,0x7f,0x5,0xe4,0x2f,0x87,0xfc,0x65,0x52,0xfe,0xe2,0xc2,0x3d,0x54,0x54,0xb8,0xcb,0xd9,0x4,0x70,0xb7,0x84,0x7b,0xb7,0x71,0x36,0x5,0xb8,0x3a,0xd,0xdc,0xc9,0xdf,0xe5,0x6e,0x7e,0x1d,0x46,0xf2,0x7b,0x39,0xf9,0x35,0x3e,0xe6,0x9,0x40,0x9,0xc0,0x18,0xe3,0x16,0x80,0x6f,0x3,0x1c,0x6e,0x1,0x66,0x20,0x0,0xb,0x65,0x0,0x76,0x50,0xdc,0xcd,0xcf,0xd3,0xcf,0x2c,0x3,0xf0,0x49,0x25,0x0,0x8f,0xcb,0x0,0x3c,0x4a,0x1e,0x5b,0x65,0x0,0xd6,0xcb,0x0,0xac,0x82,0xfc,0xcb,0x21,0xff,0x12,0xc8,0x7f,0x1f,0x56,0xff,0xf9,0x2c,0x0,0x90,0x7f,0xf6,0x20,0x79,0xf6,0x21,0x0,0xbd,0x97,0xf0,0xdf,0x61,0x1,0xb8,0x48,0xe3,0xba,0x2e,0x22,0x0,0x17,0x11,0x80,0x8b,0xd8,0xff,0x23,0x0,0xed,0x32,0x0,0xad,0x17,0x31,0xfe,0x5f,0x84,0xfc,0x17,0x21,0xff,0x25,0x8c,0xff,0x97,0x20,0xff,0x20,0x47,0x4,0xe0,0xb2,0x12,0x80,0x2b,0x98,0x0,0xae,0x20,0x0,0x57,0x45,0x0,0x40,0x1e,0x28,0x0,0x85,0x90,0xb6,0xb8,0x41,0x6e,0x3,0x40,0xa5,0xc,0x40,0x8d,0xc,0x40,0xbd,0x16,0x1,0xd0,0x4,0x9a,0x41,0xb,0x68,0x6d,0x54,0x22,0xd0,0xc0,0x2,0x70,0x8d,0x33,0xa5,0x5e,0x52,0x67,0x93,0x7f,0xa,0xc4,0xe7,0x40,0x7c,0xe,0xe4,0xef,0x80,0xfc,0x1d,0x55,0xc,0x26,0xfe,0x25,0x88,0x7f,0x91,0xda,0x20,0x7f,0x1b,0xe4,0x67,0xe2,0xb7,0x30,0x20,0x7f,0x33,0xe4,0x6f,0x82,0xfc,0x8d,0x90,0xbf,0x1,0xf2,0xd7,0x43,0xfe,0x3a,0xc8,0x5f,0xb,0xf9,0x6b,0x20,0x7f,0x35,0xe4,0xaf,0x82,0xfc,0x95,0x5c,0xfe,0x43,0x5c,0xfe,0xd2,0xa2,0xfd,0x54,0x22,0xe5,0x2f,0x2c,0xdc,0x45,0x5,0x5,0xf,0xdd,0xad,0x9,0xe0,0x4e,0xbf,0xd9,0x47,0x3a,0xa6,0x27,0x92,0x6b,0xd1,0x79,0xa7,0xa5,0xbf,0xdb,0xe2,0xdf,0xc9,0xef,0xef,0xe8,0xe7,0x25,0x5a,0x6f,0x1,0xd4,0x87,0x83,0xb2,0xf7,0x2,0x38,0xc,0x40,0xad,0xc,0x40,0x2b,0x5,0x65,0xf6,0xd2,0xd8,0x22,0x5b,0x0,0x62,0x6f,0x20,0x0,0x6f,0xc8,0x0,0xbc,0xf2,0x27,0xa,0xbe,0xfe,0x25,0x11,0x0,0x26,0x3f,0x1b,0xff,0xf7,0x63,0xf5,0xdf,0x8b,0x0,0xec,0x42,0x0,0xb6,0x23,0x0,0x5b,0x30,0xfe,0x6f,0xfa,0x10,0x2,0x80,0xf1,0x7f,0xd,0x56,0xff,0x95,0x8,0xc0,0x32,0x4,0x60,0xb1,0x29,0x0,0xb3,0x58,0x0,0x2e,0x91,0x2f,0xf,0xc0,0x45,0x1a,0x3b,0xed,0x22,0x8d,0x97,0x1,0x8,0x9d,0x72,0x81,0x7,0x20,0x42,0x6,0x20,0x9a,0x7,0xe0,0x2,0xc5,0x36,0xb3,0x0,0x5c,0xc4,0xea,0xcf,0x2,0x0,0x1a,0x59,0x0,0x6,0x21,0xff,0x65,0x4e,0xa,0x60,0x1,0x48,0xab,0x47,0x0,0x40,0x56,0xfd,0x55,0x3d,0x0,0xf9,0x3c,0x0,0xd7,0x44,0x0,0x40,0x39,0xa8,0x0,0x55,0xd,0x22,0x0,0xb5,0x4e,0x2,0xd0,0x82,0x9f,0xd3,0xa,0xda,0x38,0xd7,0xa8,0xbd,0x5e,0xd0,0xc1,0xa8,0x63,0x5c,0x15,0x40,0xfc,0xe,0x48,0xcf,0xa9,0xd6,0x18,0xa4,0xf6,0x2a,0x86,0x26,0xfe,0x45,0x48,0x7f,0x1,0x9c,0xe7,0xe2,0x37,0x57,0x30,0xf1,0xcf,0x51,0x13,0xe4,0x17,0xe2,0x9f,0x81,0xf8,0xa7,0xa9,0xce,0x24,0x7f,0x15,0xf6,0xfc,0x95,0x90,0xbf,0x2,0xf2,0x97,0x43,0xfe,0x32,0x29,0x7f,0x31,0xe4,0x2f,0x92,0xf2,0xe7,0x17,0xec,0xa4,0xbc,0xfc,0x1d,0x1f,0xd4,0x83,0x80,0xae,0x86,0xe1,0x4e,0x7e,0xfd,0x7b,0x61,0xea,0x19,0x4e,0x1c,0x86,0x38,0x6,0x60,0xbe,0x25,0x98,0x12,0x0,0xcf,0x71,0x45,0xd8,0x2,0x54,0x28,0x13,0x40,0x3,0xf9,0xc5,0xb5,0xd2,0x18,0x35,0x0,0xd3,0x11,0x80,0xeb,0x9f,0xa5,0x67,0xd4,0x0,0x5c,0x43,0x0,0xe,0x7f,0x42,0x6,0xe0,0x13,0x32,0x0,0x8f,0x89,0x3,0x80,0xfc,0xc,0x80,0x3c,0x0,0xc8,0xce,0x0,0xac,0x86,0xfc,0x2b,0x21,0xff,0x32,0xc8,0xbf,0x18,0xf2,0x2f,0x84,0xfc,0xf3,0x21,0xff,0x9c,0x41,0x1e,0x0,0x2f,0x1e,0x80,0x8b,0x14,0xc8,0x3,0x70,0x81,0x26,0x74,0x5d,0xc0,0xfe,0xff,0x2,0xf,0x40,0x78,0xc7,0x5,0x4,0xe0,0x2,0xc6,0xff,0xb,0x8,0xc0,0x5,0x19,0x80,0xb,0x32,0x0,0x17,0x21,0xff,0x25,0x8e,0x8,0xc0,0xa0,0x2d,0x0,0xf5,0x97,0xf5,0x0,0x64,0x82,0x6c,0x44,0x20,0x17,0xe4,0x83,0x42,0x50,0xc,0x69,0x4b,0x40,0x19,0xa8,0x80,0xcc,0x55,0xa0,0x9a,0x45,0x0,0xd4,0x81,0x7a,0xfc,0x73,0x3,0x3e,0x36,0xe2,0x63,0x13,0x68,0x6,0x2d,0xc,0xfc,0xfc,0x56,0xd0,0xa6,0x1,0xf1,0xdb,0x21,0x3d,0x7,0xe2,0xb7,0xd7,0x5e,0xa6,0xf6,0x1a,0x49,0xb5,0xc6,0x20,0xb5,0x55,0x31,0x2e,0x9,0xf1,0xb1,0xea,0xb7,0x54,0x32,0xf1,0xcf,0x43,0xfc,0x1,0x6a,0x62,0x70,0xf1,0xcf,0x2a,0xe2,0x9f,0xa6,0x5a,0xc8,0x5f,0xb,0xf9,0x6b,0x20,0x7f,0x15,0xe4,0xaf,0x84,0xfc,0x15,0x90,0xbf,0x1c,0xf2,0x97,0x61,0xec,0x2f,0x85,0xfc,0x25,0x8a,0xfc,0x5,0x5c,0xfe,0x87,0x98,0xfc,0x94,0x9b,0xbf,0xfd,0x83,0x1a,0x80,0x77,0x5b,0xba,0xbb,0x11,0x80,0x77,0x6b,0x72,0xb0,0x9a,0x0,0x2c,0x9e,0xb,0x60,0x98,0x0,0x8a,0x8c,0xc7,0x0,0x22,0x11,0x80,0xd8,0x16,0x63,0x0,0xa6,0x6d,0xa7,0x98,0xab,0x9f,0x41,0x0,0xc4,0x13,0x8c,0xbf,0xfb,0x32,0x2,0x70,0xf5,0x8b,0x22,0x0,0x4c,0xfe,0x3,0x90,0x7f,0x3f,0x56,0xff,0x3d,0x90,0xff,0x21,0xac,0xfe,0xdb,0x30,0xfe,0x6f,0xc6,0xf8,0xbf,0x11,0xe3,0xff,0x3a,0xb6,0xff,0x47,0x0,0x56,0x40,0xfe,0xa5,0x60,0x11,0x2,0xb0,0x0,0xf2,0xcf,0xd3,0x2,0x70,0x89,0xbc,0x66,0x5c,0x24,0xbf,0x9e,0xb,0x34,0x66,0xfa,0x5,0xa,0x46,0x0,0x26,0x76,0x9e,0xc7,0xf8,0x7f,0x1e,0x1,0x38,0x8f,0x0,0x9c,0xa7,0xc8,0xf6,0xf3,0x7a,0x0,0x62,0xb5,0x0,0x34,0x5d,0x90,0x1,0xb8,0x8,0xf9,0x11,0x80,0x86,0x4b,0x32,0x0,0x83,0x94,0xc2,0xe5,0xbf,0x4c,0xe9,0x20,0xa3,0xe,0x1,0x0,0xd9,0x20,0x7,0x92,0xe6,0x83,0x2,0x4,0xa0,0x8,0x68,0x1,0x28,0x7,0x95,0xa0,0xa,0xd4,0x80,0x5a,0x50,0x7,0xea,0x41,0x3,0x68,0x4,0x4d,0xa0,0xb9,0x5e,0x4,0xa0,0x5,0xd2,0xb7,0x72,0xae,0x72,0xda,0x20,0x7e,0x1b,0xc4,0x6f,0xab,0x91,0x54,0x6b,0xc,0x72,0x5a,0x21,0x7e,0x2b,0x46,0xfe,0x16,0xc8,0xdf,0x2,0xf9,0x9b,0xb9,0xf8,0xe7,0xb9,0xf8,0x8d,0x58,0xf5,0x1b,0x21,0x7f,0x3,0xe4,0xaf,0x87,0xfc,0x42,0xfc,0xd3,0x54,0x3,0xf9,0x6b,0x20,0x7f,0x35,0x5b,0xf5,0x41,0x5,0xe4,0x2f,0x87,0xfc,0x65,0x90,0xbf,0x14,0xf2,0x97,0x40,0xfe,0x62,0xc8,0x5f,0x4,0xf9,0xb,0xa5,0xfc,0x79,0x90,0x3f,0xb7,0x60,0x7,0xe5,0xe4,0x6f,0xa7,0xec,0xbc,0x7,0xef,0xc6,0x31,0x80,0xf7,0xca,0xea,0xf7,0x5e,0x13,0xfa,0xbd,0xf6,0x35,0x73,0x36,0x1,0x38,0xa,0x40,0xae,0xf5,0x9b,0x81,0x22,0xeb,0xc9,0x37,0xb6,0x99,0xc6,0x64,0xf4,0x20,0x0,0xb,0x28,0xa8,0x72,0x39,0x2,0xb0,0x8d,0x62,0xae,0x3c,0x45,0x4f,0xff,0x59,0x9,0xc0,0x95,0x7f,0xc0,0xea,0xff,0x71,0x29,0x3f,0xd8,0x87,0xd5,0x7f,0x37,0x2,0xb0,0xf3,0x11,0x71,0x0,0x70,0xf3,0x87,0x44,0x0,0xd6,0xb2,0x0,0x5c,0x97,0x1,0x80,0xfc,0x8b,0xae,0xc8,0x0,0x40,0xfe,0xd9,0x97,0xc8,0x63,0xe6,0x45,0xf2,0x46,0x0,0xfc,0x79,0x0,0xce,0x53,0x70,0xd7,0x79,0x19,0x80,0x1,0x9a,0xdc,0x31,0x80,0xfd,0x3f,0x2,0xd0,0xc6,0x2,0x70,0x1e,0x1,0x38,0x8f,0x0,0x9c,0xc7,0xea,0x7f,0x1e,0xf2,0x9f,0x87,0xfc,0x17,0x44,0x0,0x1a,0x2e,0x52,0x12,0x2,0xc0,0x48,0xa9,0x1f,0xe4,0xf0,0x0,0xd4,0xb1,0x0,0x5c,0xe6,0x1,0xc8,0xe2,0x1,0xb8,0x42,0xb9,0x20,0x1f,0x14,0x42,0xdc,0x62,0x50,0xa,0xca,0x20,0x73,0x5,0xa8,0x4,0xd5,0xa0,0x6,0xd4,0x82,0x7a,0xd0,0x0,0x1a,0x25,0x4d,0xa0,0x19,0x3f,0x9f,0xd1,0x52,0xcb,0xb8,0x2,0x2e,0x53,0xb,0xa4,0x6f,0x65,0x54,0xab,0xc,0x52,0x4b,0x15,0x43,0x88,0xdf,0xcc,0xc4,0x7,0x4d,0x10,0xbf,0x91,0x89,0xf,0x1a,0x20,0x7f,0x3d,0xe4,0xaf,0x87,0xfc,0x75,0x90,0x5f,0x13,0xbf,0xba,0x8c,0x89,0x2f,0x57,0xfd,0xd2,0x63,0x5c,0xfe,0x32,0x29,0x7f,0x9,0xe4,0x2f,0x86,0xfc,0x45,0x45,0xfb,0xa8,0x10,0xf2,0x17,0x40,0xfe,0x7c,0x93,0xfc,0x59,0x79,0xf,0x52,0x66,0xde,0xd6,0xf7,0xe3,0x4,0x30,0x9c,0x31,0xf7,0x4e,0x46,0xff,0x3b,0xfd,0xf5,0x77,0xeb,0x62,0xaa,0x77,0x10,0x53,0x0,0x3c,0xb5,0xbb,0x0,0x39,0xa,0x80,0xf6,0x5e,0x80,0x50,0x79,0x31,0x50,0x84,0x16,0x0,0x4c,0x0,0x85,0x32,0x0,0x5d,0x8,0xc0,0xe0,0xa7,0x95,0x0,0xfc,0x91,0x82,0x7,0xbf,0x80,0xd5,0x1f,0xab,0xfe,0x1,0xb0,0xff,0x31,0x19,0x0,0xac,0xfe,0x3b,0x20,0xff,0x56,0x8c,0xff,0xf,0x40,0xfe,0xd,0x72,0xff,0xbf,0xa,0x1,0x58,0xe,0xf9,0x97,0x42,0xfe,0xfb,0x20,0xff,0x7c,0xc8,0x3f,0x17,0xf2,0xcf,0xbe,0x48,0x9e,0x33,0x2f,0x90,0x4f,0xef,0x5,0x4,0xe0,0x3c,0x5,0x21,0x0,0xe3,0x10,0x80,0x49,0x90,0x3f,0x64,0x8a,0x16,0x80,0x1,0x4,0x60,0x80,0xa2,0x5a,0x7,0x30,0xfe,0xf,0x60,0xf5,0x57,0x3,0x20,0x22,0x90,0xd8,0x70,0x1,0xf2,0x23,0x2,0xf5,0x17,0x21,0x3f,0x22,0x50,0x77,0x89,0xd2,0xea,0x6,0x39,0xe9,0x3c,0x0,0x97,0x29,0xb,0xa2,0x66,0x83,0x5c,0x48,0x9b,0xf,0xa,0x40,0x11,0x42,0x50,0x2,0x58,0x4,0xca,0x41,0x25,0xa8,0x2,0xd5,0xa0,0x6,0xd4,0x82,0x7a,0x49,0x3,0x68,0xc4,0xaf,0x61,0x34,0x31,0x20,0x7c,0xb3,0x46,0xb5,0xca,0xa0,0x0,0xe2,0x37,0x43,0xfc,0x26,0xce,0x5,0x6a,0xac,0x64,0xe2,0x9f,0xa7,0x6,0x26,0x3e,0xa8,0x97,0xf2,0xd7,0x41,0xfe,0x5a,0xc8,0x5f,0x3,0xf9,0xab,0x21,0x7f,0x15,0xe4,0xaf,0x82,0xfc,0x95,0x90,0xbf,0x1c,0xf2,0x97,0x97,0xa,0xf9,0x4b,0x4b,0xe,0x71,0xf9,0x8b,0x20,0x7f,0xa1,0x94,0x3f,0x1f,0xf2,0xe7,0x41,0xfe,0x5c,0xc8,0x9f,0x3,0xf9,0xb3,0x6d,0xf2,0x53,0x46,0xee,0xe6,0xe1,0x4,0xc0,0xd9,0x1,0xba,0xbb,0x7d,0x50,0xed,0x9d,0x3e,0x45,0x37,0xcc,0x3d,0xf2,0x3b,0xfa,0x67,0x18,0x29,0x77,0xeb,0xe0,0xa4,0xfd,0x16,0xc0,0x3a,0x0,0xca,0xc5,0x40,0xca,0x41,0x40,0x71,0x63,0xd0,0x3a,0xf2,0x8d,0x31,0x5,0xa0,0xf3,0x41,0x8a,0xb9,0xf0,0x4,0x2,0xf0,0xa6,0x8,0xc0,0x4b,0x8,0xc0,0xa5,0xcf,0x23,0x0,0x8f,0x89,0xd1,0x9f,0xc9,0xbf,0x17,0xab,0xff,0x2e,0xac,0xfe,0xdb,0x59,0x0,0x30,0xfe,0x6f,0x42,0x0,0xd6,0x63,0xf5,0x5f,0xc3,0xf6,0xff,0xd7,0x44,0x0,0x96,0xb0,0x0,0x40,0xfe,0xf9,0x90,0x7f,0xee,0x45,0x8c,0xff,0x8,0x40,0xdf,0x5,0xec,0xff,0xcf,0x53,0x40,0xf7,0x0,0xf6,0xff,0x3,0x34,0xbe,0x6b,0x40,0x6,0xe0,0x1c,0x85,0xa8,0x4,0xc6,0x7f,0x0,0x0,0x32,0x43,0x49,0x44,0x41,0x54,0x75,0x9c,0xc3,0xfe,0xff,0x1c,0x56,0xff,0x73,0x58,0xfd,0xcf,0xc9,0x0,0xc,0x20,0x0,0x3,0x4a,0x0,0xce,0x23,0x0,0xe7,0x21,0xff,0x5,0x19,0x80,0x8b,0x94,0x8a,0x0,0xa4,0xca,0x8,0xa4,0x83,0x8c,0xda,0x41,0x25,0x0,0x97,0x29,0xf,0xb0,0x0,0x14,0x82,0x62,0x50,0x2,0xca,0x40,0x5,0xa8,0x4,0x55,0xa0,0x1a,0xd4,0x80,0x5a,0x50,0x87,0x9f,0x5f,0xf,0x1a,0x6a,0x4,0x8d,0x1a,0x10,0xbe,0x49,0x67,0x50,0x0,0xf1,0x19,0x8d,0x10,0xbf,0x11,0xe2,0x37,0x30,0x20,0x7e,0x3d,0x93,0x9e,0x73,0x8e,0xea,0x20,0x7e,0x6d,0xf9,0x59,0x48,0x7f,0x86,0x53,0xd,0xf9,0xab,0x20,0x7f,0x25,0xe4,0xaf,0x80,0xfc,0x15,0x90,0xbf,0xc,0xf2,0x97,0x61,0xe5,0x2f,0x85,0xfc,0x25,0x90,0xbf,0x58,0x91,0xbf,0xc0,0x24,0x7f,0xb6,0x94,0x3f,0x13,0xf2,0x67,0x40,0xfe,0xf4,0xdc,0xcd,0x94,0x96,0xf3,0xc0,0xfb,0x71,0x2,0x70,0x33,0xb2,0x20,0xc8,0x9f,0xcf,0x2e,0xd6,0xb2,0x3b,0xd,0x28,0x2,0xa0,0xdf,0x15,0x58,0xbf,0x33,0xb0,0x12,0x0,0x7e,0x10,0xb0,0x52,0xf,0x80,0x4f,0x4c,0x13,0x8d,0x49,0xef,0xe1,0x1,0x18,0xcb,0x3,0xb0,0x95,0x62,0xce,0x7f,0x92,0x9e,0x7e,0x5d,0x9,0xc0,0xc5,0xcf,0x61,0xf5,0x97,0x2b,0xff,0x3e,0xc8,0xbf,0xe7,0x51,0x11,0x80,0x6d,0x58,0xfd,0xb7,0x7c,0x8,0xe3,0x3f,0x56,0xff,0x75,0x37,0xe5,0x1,0x40,0x4,0x60,0x19,0xe4,0x5f,0x8c,0xd5,0x7f,0x21,0x2,0x30,0xf,0x1,0x98,0xc3,0x2,0x70,0x81,0xbc,0xfa,0xce,0x63,0xff,0x3f,0x40,0x81,0x8,0x40,0xf0,0xb4,0x73,0x34,0xa1,0xf3,0x1c,0xc6,0xff,0x73,0xd8,0xff,0x23,0x0,0xed,0xfd,0x14,0xd1,0xd6,0x8f,0xd5,0xbf,0x5f,0x6,0xe0,0x1c,0xe4,0x7,0x4d,0x8,0x40,0xe3,0x0,0xe4,0x1f,0x10,0xf2,0xf3,0x0,0x88,0x8,0x24,0xd7,0x5d,0x80,0xfc,0x17,0x39,0x69,0xb5,0x97,0x28,0x1d,0x88,0x0,0xc,0x52,0x76,0xcd,0x20,0xe5,0x40,0xdc,0x3c,0x90,0xf,0xa,0x41,0x11,0x28,0x1,0xa5,0xa0,0xc,0x54,0x80,0x4a,0x50,0x5,0xaa,0x41,0xd,0xa8,0x5,0x75,0xc,0x88,0x5e,0x2f,0x69,0xd0,0x19,0x14,0x40,0x7a,0xe,0xc4,0x6f,0x90,0xe2,0xd7,0x57,0x32,0xf1,0xcf,0x53,0x1d,0xc4,0x67,0xd4,0x42,0xfe,0x1a,0xc8,0x5f,0x3,0xf9,0xab,0xd,0xe2,0x9f,0xa2,0xa,0xc8,0x5f,0xe,0xf9,0xcb,0x20,0x7f,0x29,0xe4,0x2f,0xe1,0xe2,0x1f,0xa6,0x62,0xc8,0x5f,0x4,0xf9,0xb,0x8b,0xf7,0x43,0xfc,0x7d,0x94,0xf,0xf9,0xf3,0xa,0x77,0x53,0x2e,0xe4,0xcf,0x29,0xd8,0xc9,0xe5,0xcf,0xb2,0x93,0x7f,0x13,0xa5,0x66,0x6f,0x74,0x7,0x60,0x54,0xe2,0xe0,0x18,0x0,0xf,0x80,0x7a,0x6b,0x70,0xed,0x40,0x20,0x2,0xe0,0xc9,0x2,0xc0,0xaf,0x6,0xac,0x91,0x1,0x90,0xc7,0x0,0xa,0xe7,0x53,0x50,0xc5,0x32,0xa,0x98,0x8a,0x0,0xf4,0x7f,0x9c,0x9e,0xfe,0x93,0x78,0x7a,0xef,0x77,0x5f,0x7c,0x8d,0x82,0xcf,0x7f,0x6,0xab,0xff,0xc7,0x84,0xfc,0x7b,0x21,0xff,0x1e,0xc8,0xff,0x10,0x56,0xff,0x6d,0x1f,0x96,0xe3,0x3f,0x56,0xff,0xb5,0x37,0xe4,0xfe,0x9f,0x8d,0xff,0x90,0x7f,0x11,0xe4,0x5f,0x0,0xf9,0xe7,0x41,0xfe,0xd9,0x17,0xb0,0xff,0x3f,0x8f,0xfd,0xff,0x0,0xc6,0xff,0x1,0xec,0xff,0xcf,0x61,0xff,0xdf,0x8f,0x0,0xf4,0x63,0xf5,0xef,0xa7,0xd0,0x8e,0x7e,0x8c,0xff,0x4a,0x0,0x5a,0xfa,0xb1,0xfa,0xf7,0x43,0xfe,0x7e,0xac,0xfe,0xe7,0x20,0xbf,0x20,0xb1,0x61,0x0,0xe2,0xf,0xf0,0x0,0x24,0xd7,0x9,0x52,0x6b,0x11,0x81,0x5a,0x16,0x80,0x8b,0x8,0xc0,0x45,0xca,0xa8,0xb9,0x44,0x99,0x40,0x4,0x60,0x90,0x72,0x41,0x1e,0x28,0x0,0x2c,0x2,0xc5,0x2c,0x2,0xd5,0x32,0x2,0xf8,0x58,0x1,0x2a,0x41,0x15,0xa8,0x6,0x35,0x92,0x5a,0xce,0x20,0x42,0x20,0xc1,0x1e,0xbf,0x1e,0xd2,0x73,0x20,0x7e,0x3d,0xa4,0xaf,0xe3,0x9c,0x87,0xec,0x8c,0x1,0x4e,0xd,0x13,0xbf,0xa2,0x9f,0xaa,0xb9,0xf8,0x67,0x21,0xfd,0x19,0x48,0x7f,0x1a,0xd2,0x5b,0x88,0x8f,0x91,0x9f,0xc9,0x5f,0xc,0xf9,0x8b,0x20,0x7f,0x21,0x56,0xfd,0x2,0xc8,0x9f,0xf,0xf9,0xf3,0x20,0x7f,0x2e,0xe4,0xcf,0x81,0xfc,0xd9,0x90,0x3f,0x8b,0xcb,0xbf,0xd,0xe2,0xdb,0xc9,0x4f,0x29,0x59,0xeb,0xdd,0x1,0x18,0x95,0x38,0xc,0x40,0x96,0x83,0x0,0x14,0x91,0xe7,0xc4,0x32,0x11,0x1,0x4c,0x0,0x5e,0x86,0x9,0x60,0x3e,0x8d,0x65,0x1,0x98,0xb2,0x85,0x62,0x4e,0x7d,0xcc,0x18,0x80,0x81,0xa7,0x20,0xff,0xa3,0x36,0xf9,0xd9,0xea,0xbf,0x13,0xab,0xff,0xd6,0xf,0x61,0xfc,0xc7,0xea,0xbf,0x1e,0xab,0xff,0x1a,0xc8,0xbf,0x8a,0x8d,0xff,0x58,0xfd,0x97,0x40,0xfe,0xfb,0x20,0xff,0x7c,0xc8,0x3f,0x17,0xf2,0xcf,0x3e,0x8f,0xfd,0xff,0x0,0x2,0x70,0x8e,0xfc,0xbb,0xcf,0x61,0xff,0xdf,0x8f,0xfd,0x7f,0x3f,0x4d,0x9c,0x7a,0x16,0x1,0x38,0x8b,0xfd,0xff,0x59,0x4,0xe0,0x2c,0xf6,0xff,0x67,0xb1,0xfa,0x9f,0xc5,0xea,0x7f,0x16,0x1,0x38,0x8b,0x0,0x9c,0xc5,0xea,0xdf,0xf,0xf9,0x41,0x3,0xb,0xc0,0x39,0xc8,0x7f,0x8e,0x47,0x20,0xb9,0x6e,0x0,0xfb,0xff,0xf3,0x94,0x52,0x2b,0x22,0x90,0x6,0xd2,0x6b,0x2e,0x20,0x0,0x17,0x11,0x80,0x8b,0x94,0x55,0x7d,0x91,0xb2,0xab,0x2f,0x21,0x2,0x97,0x78,0x4,0xf2,0x21,0x71,0x1,0x28,0x2,0xc5,0xa0,0x4,0x94,0x82,0x32,0x50,0xe,0x2a,0x40,0x25,0xa8,0x2,0xd5,0x92,0x9a,0x2a,0xc6,0x25,0x4e,0x6d,0xd5,0x45,0xaa,0xad,0x64,0x5c,0xe0,0xd4,0x40,0x7c,0xe,0x97,0x7e,0x80,0xaa,0x21,0x3e,0xa3,0xa,0xab,0x7e,0x15,0xe4,0xaf,0xd4,0xc5,0x3f,0x4d,0xe5,0x90,0xbf,0x1c,0xf2,0x97,0x41,0xfe,0x52,0xc8,0x5f,0x2,0xf9,0x8b,0x21,0x7f,0x11,0xe4,0x2f,0x82,0xfc,0x85,0x58,0xf5,0xb,0x20,0x7f,0x3e,0xe4,0xcf,0x83,0xfc,0xb9,0x45,0x7b,0x20,0x3e,0x93,0xff,0x21,0x5d,0xfe,0x4c,0x29,0x7f,0x7a,0xde,0x16,0x4a,0x83,0xfc,0xa9,0x5c,0xfe,0xd,0x4c,0x7e,0x4a,0xce,0x5a,0xe7,0xe,0xc0,0xa8,0xc4,0xd9,0x4,0x60,0x71,0xc,0x80,0x7,0x60,0x42,0x29,0x2,0x50,0x6e,0xa,0x40,0x37,0x8d,0x2d,0x98,0x87,0x9,0x60,0x29,0x5,0x74,0x6c,0xa6,0x98,0x13,0x8f,0xd2,0xd3,0x7f,0xfc,0xb3,0x8,0xc0,0xef,0x11,0x80,0xfe,0x27,0x21,0xfe,0x47,0x85,0xfc,0xbb,0xf1,0x71,0x17,0xd8,0x8e,0xd5,0x7f,0xb,0x56,0xff,0x8d,0x58,0xfd,0xd7,0x61,0xf5,0x5f,0xd,0xf9,0x57,0x42,0xfe,0x65,0x58,0xfd,0x17,0x43,0xfe,0x85,0x90,0x7f,0x3e,0xe4,0x9f,0x73,0x1e,0xe3,0xff,0x0,0xf6,0xff,0xe7,0xc8,0xa7,0xb7,0x1f,0xfb,0xff,0x7e,0xec,0xff,0xcf,0xd2,0xf8,0xce,0xb3,0xd8,0xff,0x9f,0xc5,0xf8,0x7f,0x6,0xe3,0xff,0x19,0xac,0xfe,0x67,0x28,0xb2,0xf5,0xc,0x56,0xff,0x33,0x8,0xc0,0x19,0x4,0xe0,0x8c,0xc,0xc0,0x59,0xc8,0xcf,0xe8,0xa7,0xc4,0xfa,0x7e,0xc8,0xdf,0xcf,0x23,0x90,0x5c,0x77,0xe,0xf2,0xf,0x70,0x52,0x11,0x81,0xb4,0x9a,0xf3,0x22,0x0,0xd5,0x82,0xcc,0x6a,0x2d,0x2,0x17,0x29,0x7,0xe4,0x21,0x6,0xf9,0xa0,0x0,0x14,0x1,0x3d,0x2,0x90,0xbc,0xc,0x94,0x83,0xa,0x88,0xce,0xa8,0x4,0x55,0x10,0xbe,0xaa,0x52,0x50,0xd,0xe1,0x6d,0x9c,0xc7,0xbf,0x3,0x90,0x5e,0x70,0x8e,0x53,0x9,0xf1,0x2b,0x21,0x7e,0x45,0xf9,0x19,0x48,0x7f,0x6,0xc2,0xb,0xf1,0xcb,0x20,0x7e,0x69,0x99,0x26,0xfe,0x71,0x88,0x7f,0xc,0xd2,0x1f,0xa5,0x42,0x26,0x3e,0x56,0xfd,0x2,0xc8,0x9f,0xf,0xf9,0xf3,0xb4,0x55,0x5f,0xca,0x9f,0xd,0xf9,0xb3,0x20,0x7f,0x26,0x1b,0xf9,0x2d,0xe5,0xdf,0x28,0xe5,0x5f,0x4b,0x49,0x99,0x6b,0xdc,0x1,0x18,0x95,0x68,0x1,0xf0,0x31,0x9d,0x6,0x74,0xb4,0x5,0x8,0x2e,0x44,0x0,0x4a,0xac,0x3,0x90,0x8f,0x0,0x94,0x2f,0xa1,0x80,0xb6,0x4d,0x14,0x73,0xf4,0xa3,0xf4,0xf4,0x6b,0x5a,0x0,0xfe,0x40,0xc1,0x67,0x9e,0x80,0xf4,0x1f,0x91,0xf2,0xe3,0xe3,0x4e,0xc8,0xbf,0xd,0xf2,0x6f,0xc6,0xea,0xbf,0x1,0xab,0xff,0x5a,0xac,0xfe,0xf7,0x63,0xf4,0x5f,0x81,0x0,0x2c,0x1d,0xb4,0x5,0x60,0x1e,0xe4,0x9f,0x33,0x80,0xf1,0xff,0x1c,0x79,0xcd,0xe8,0x27,0xdf,0x9e,0x7e,0xa,0x9c,0x7e,0x16,0xe3,0xff,0x19,0x8c,0xff,0x67,0xb0,0xfa,0x9f,0xc1,0xf8,0xcf,0x2,0x70,0x1a,0x1,0x38,0x8d,0xf1,0xff,0x34,0x2,0x70,0x9a,0x62,0x9a,0x4f,0x43,0x7e,0xc6,0x19,0x4,0xe0,0xc,0xe4,0x3f,0x83,0xd5,0xff,0x2c,0x2,0x70,0x56,0x4,0xa0,0xae,0x1f,0x1,0xe8,0x87,0xfc,0xe7,0x64,0x0,0x6,0x10,0x80,0x1,0x4a,0xaf,0x66,0x9c,0x47,0x0,0xce,0x23,0x0,0x17,0x28,0xab,0xea,0x2,0x65,0x83,0x1c,0x90,0xb,0xa1,0xf3,0x40,0x3e,0x28,0x0,0x45,0xa0,0x18,0x94,0x40,0xf0,0x52,0x49,0x19,0x28,0xe7,0x5c,0xa0,0xa,0x3,0xe7,0xa9,0x92,0x33,0x40,0x95,0x15,0x1a,0xe7,0xa8,0x82,0xd3,0x4f,0xe5,0x10,0x9f,0x3,0xf1,0xcb,0x20,0x7e,0x19,0xc4,0x2f,0xe5,0xe2,0x9f,0x84,0xf4,0x27,0x20,0xfd,0x71,0x2a,0x62,0xe2,0x97,0x32,0xf1,0x8f,0x50,0x1,0xe4,0x2f,0x80,0xfc,0xf9,0x90,0x3f,0xf,0xab,0x7e,0x2e,0x5f,0xf5,0xf7,0x42,0xfc,0x3d,0x10,0x7f,0x17,0xc4,0xb7,0xc9,0x9f,0x1,0xf9,0xd3,0x31,0xf2,0xa7,0x29,0xf2,0xa7,0x60,0xe5,0x4f,0xb6,0xc9,0x4f,0x89,0x19,0xf7,0xbb,0x3,0x30,0x2a,0x71,0x3a,0x1,0x58,0x5,0xa0,0x80,0x3c,0xc7,0x23,0x0,0x13,0x95,0x0,0x44,0x23,0x0,0x69,0x2c,0x0,0x73,0x29,0xa8,0xc,0x1,0x68,0xdd,0x48,0xb1,0x87,0x3e,0x44,0x4f,0xff,0xe1,0x75,0x11,0x80,0x17,0x10,0x80,0x53,0x9f,0xc2,0x9e,0xff,0xc3,0x42,0x7e,0xf6,0x71,0xc7,0x87,0xc8,0xe3,0x41,0xc8,0xff,0x0,0x56,0xff,0xf5,0x58,0xfd,0xd7,0x60,0xf5,0x5f,0x5,0xf9,0x97,0x43,0xfe,0x25,0x90,0x7f,0x11,0xe4,0x5f,0x0,0xf9,0xe7,0x42,0xfe,0xd9,0xe7,0xb0,0xfa,0xf7,0xf3,0x0,0xf8,0xf5,0x9c,0xc5,0xfe,0xff,0xc,0x2,0x70,0x1a,0xe3,0xff,0x69,0x4,0xe0,0x14,0x4d,0x6e,0x3f,0x45,0xe1,0x6d,0xa7,0xb0,0xfa,0x9f,0xa2,0xa8,0x96,0x53,0x8,0xc0,0x29,0xac,0xfe,0xa7,0x20,0x3f,0x68,0x3c,0x8d,0x0,0x9c,0x46,0x0,0x4e,0x23,0x0,0x67,0x20,0x3f,0xa8,0x3b,0xcb,0x49,0xae,0x3d,0xb,0xf9,0x45,0x4,0x52,0x6b,0x4,0x22,0x0,0x3,0x8,0x0,0xa8,0x42,0x4,0x40,0x16,0xc8,0x6,0x39,0x10,0x38,0x17,0xe4,0x41,0xe8,0x7c,0x50,0x0,0xa,0x41,0x11,0x28,0x6,0x25,0x92,0x52,0xfc,0x1c,0x46,0x99,0xce,0x0,0x95,0x57,0xa8,0x9c,0xe3,0x94,0x41,0xfc,0x32,0x48,0xcf,0x81,0xf8,0xa5,0x10,0x9f,0x51,0x2,0xf9,0x4b,0x20,0x7e,0x71,0x99,0x26,0xfe,0x71,0x2a,0x84,0xfc,0x85,0x90,0xbf,0x0,0xf2,0xe7,0x33,0xf1,0x4b,0x98,0xf8,0x7,0x28,0x57,0xca,0x9f,0x53,0xc4,0xc4,0xdf,0xad,0xcb,0x9f,0x89,0x91,0x3f,0x83,0xc9,0xcf,0x57,0x7d,0xc8,0x9f,0xbb,0x85,0x52,0x73,0x1f,0x70,0x24,0x3f,0x25,0xa4,0xaf,0x72,0x7,0x60,0x54,0xe2,0xe8,0x42,0x20,0x7,0x67,0x1,0xc4,0x4,0x50,0x6a,0xa,0x40,0x23,0x5,0xa6,0x4e,0xa3,0xa0,0x3c,0x4,0xa0,0x74,0x31,0x5,0xb4,0x6c,0xa0,0xd8,0xfd,0xb7,0x95,0x0,0xbc,0x4a,0xc1,0x27,0x3e,0x1,0xf1,0x3f,0x24,0x56,0x7e,0x26,0xff,0x76,0xac,0xfe,0x5b,0x21,0xff,0x26,0xac,0xfe,0xeb,0xb0,0xfa,0xaf,0xc6,0xea,0xbf,0x12,0xa3,0xff,0x32,0xc8,0xbf,0x18,0xf2,0xdf,0x87,0xd1,0x7f,0x1e,0xe4,0x9f,0x73,0xe,0xe3,0x7f,0x3f,0x2,0x70,0x16,0xe3,0xff,0x19,0x8c,0xff,0x67,0x28,0x68,0xda,0x69,0x1a,0xd7,0xc9,0x2,0x70,0x8a,0x42,0x3a,0x44,0x0,0x22,0xda,0x4e,0x22,0x0,0x27,0x21,0xff,0x49,0xac,0xfe,0x27,0x29,0xb6,0xe9,0x24,0xe4,0x3f,0x5,0xf9,0x4f,0x41,0xfe,0x53,0x58,0xf9,0x19,0xa7,0x11,0x0,0x50,0x77,0x6,0xab,0x3f,0xa8,0x3d,0x3,0xf9,0x11,0x81,0x9a,0xb3,0x90,0xbf,0x9f,0x52,0xab,0xfb,0x29,0xad,0x9a,0x45,0x40,0x84,0x20,0xa3,0x6a,0x0,0x1,0x18,0xa0,0x2c,0x8,0x9c,0xd,0x72,0x24,0xb9,0x20,0xf,0x62,0xe7,0x4b,0xa,0x40,0x21,0xfe,0x5d,0x91,0xa4,0x18,0x92,0x97,0x28,0x94,0x72,0xce,0x49,0xfa,0xa9,0xb4,0x9c,0x71,0x16,0x9c,0xa1,0x12,0x6,0x97,0xfe,0x34,0x84,0x3f,0x5,0x4e,0x52,0x11,0xc4,0x2f,0xc2,0xaa,0x5f,0x28,0xc5,0x2f,0xd0,0xc5,0x3f,0x4c,0x79,0x90,0x3f,0xf,0xab,0x7e,0x2e,0x93,0xbf,0x68,0x3f,0xc4,0xdf,0x4b,0xd9,0x52,0xfe,0x2c,0xc8,0x9f,0xc9,0x56,0x7d,0x2e,0x3f,0x5b,0xf5,0x1f,0xc4,0xaa,0x6f,0x93,0x3f,0x45,0x95,0x3f,0xd3,0x20,0x3f,0xc5,0xa7,0xad,0x70,0x7,0x60,0x54,0xa2,0xdf,0x11,0xc8,0xf4,0x5e,0x0,0x7e,0x53,0xd0,0x6c,0x8b,0x0,0x14,0xc8,0x63,0x0,0xda,0x41,0x40,0xf1,0x86,0x20,0x16,0x80,0xb1,0x79,0x73,0x44,0x0,0x9a,0xd7,0x53,0xec,0x9e,0x1b,0xf4,0xf4,0xab,0x7f,0x12,0x1,0x78,0x1e,0x1,0x38,0xf6,0x38,0xc4,0x7f,0x58,0xc0,0xe4,0x67,0xab,0xff,0x16,0xc8,0xbf,0x11,0xf2,0xaf,0xc5,0xea,0x7f,0x3f,0xe4,0x5f,0xe,0xf9,0x97,0x42,0xfe,0x45,0x17,0xe4,0xea,0xf,0xf9,0x67,0xf7,0x63,0xfc,0x3f,0x4b,0x9e,0x33,0xce,0x60,0xfc,0x3f,0x8d,0xf1,0xff,0x14,0x8d,0xed,0x3a,0x45,0xe3,0xa7,0x9e,0xa4,0x49,0x53,0x4e,0x62,0xfc,0x3f,0x49,0x61,0x90,0x3f,0xa2,0xf5,0x4,0x56,0xff,0x13,0x14,0xdd,0x7c,0x2,0x1,0x38,0x81,0x0,0x9c,0x40,0x0,0x4e,0x20,0x0,0x27,0x11,0x80,0x93,0x90,0xff,0x24,0x8f,0x40,0x52,0x1d,0xe3,0x34,0x2,0x70,0x5a,0x4,0xa0,0x46,0x90,0xca,0x22,0x50,0x7d,0x16,0x1,0x38,0x4b,0xe9,0x55,0xfd,0x9c,0x8c,0xaa,0x73,0x94,0x59,0x29,0xc8,0x2,0xd9,0x40,0x8d,0x80,0x8,0xc1,0x0,0xe5,0x43,0xf0,0x2,0x50,0xc8,0x39,0x47,0x45,0xa,0xc5,0x9c,0x7e,0x1,0xa4,0x17,0x9c,0x81,0xe8,0x8c,0xd3,0x90,0x9d,0x71,0xa,0x9c,0xa4,0x42,0x88,0xcf,0x28,0x80,0xf8,0x5,0x10,0x3f,0x1f,0xe2,0x73,0x20,0x3f,0x13,0x3f,0xb7,0x44,0x88,0x9f,0x53,0xcc,0xc4,0xdf,0x7,0xf1,0x99,0xfc,0x52,0xfc,0xc2,0x87,0xb8,0xfc,0x19,0x5,0xdb,0x29,0x5d,0x91,0x3f,0x95,0x8f,0xfc,0x4c,0xfe,0x8d,0x52,0xfe,0x75,0x10,0x7f,0x2d,0x25,0x66,0xae,0x96,0xf2,0xaf,0x64,0xf2,0x53,0x5c,0xea,0x32,0x77,0x0,0x46,0x25,0x5e,0xe6,0x0,0x64,0xda,0xe4,0xb7,0x3c,0x6,0x60,0xde,0x2,0xd4,0x92,0xb7,0x29,0x0,0xfe,0x8d,0xeb,0x28,0x76,0xe7,0x55,0x7a,0xfa,0x95,0x3f,0x8a,0x0,0xfc,0xee,0x15,0xa,0x3e,0xc2,0xde,0xf5,0x87,0x15,0x7f,0x3b,0xc4,0xdf,0x86,0x8f,0x5b,0x21,0xff,0x3,0x18,0xfd,0xd7,0x43,0xfe,0x35,0x18,0xfd,0x57,0x62,0xf4,0x5f,0x6,0xf9,0x97,0xb0,0xd5,0x1f,0xf2,0xcf,0x3f,0x27,0x57,0xff,0xb3,0xe4,0xd1,0x77,0x86,0xbc,0x7a,0x4f,0x93,0x5f,0xf7,0x29,0x1a,0x33,0xed,0x24,0x5,0x77,0x9e,0xa4,0x9,0x8,0x40,0x48,0xc7,0x9,0xa,0x6d,0x3f,0x81,0xf1,0xff,0x38,0x2,0x70,0x1c,0x1,0x38,0x8e,0x0,0x1c,0xa7,0x98,0xa6,0xe3,0x90,0x5f,0x10,0xdf,0x70,0x82,0x12,0xea,0x4f,0x40,0xfe,0x13,0x3c,0x2,0x49,0x75,0xa0,0xf6,0x24,0xe4,0x3f,0x5,0x4e,0x43,0x7e,0x41,0x6a,0xf5,0x19,0x4e,0x5a,0x15,0x83,0x45,0xe0,0x2c,0x2,0x0,0x2a,0xcf,0x22,0x0,0xfd,0x94,0x5,0x81,0xb3,0xf0,0x31,0x9b,0xc3,0x42,0x0,0x20,0x77,0x2e,0xfe,0x7d,0x9e,0x24,0x5f,0x52,0x20,0x29,0x84,0xec,0x36,0xce,0x48,0x4e,0x43,0x72,0xc6,0x29,0xc9,0x49,0x2a,0xe0,0x9c,0x80,0xec,0xc7,0xc1,0x31,0x4e,0x1e,0xc4,0xcf,0x83,0xf8,0xb9,0x58,0xf5,0x73,0x21,0x7f,0xe,0x56,0xfd,0x1c,0xc8,0x9f,0xd,0xf9,0xb3,0xe5,0xaa,0x9f,0x85,0x55,0x3f,0x93,0xaf,0xfa,0xf,0x41,0xfc,0x1d,0x10,0x5f,0xc8,0x9f,0x26,0xf7,0xfb,0x4c,0x7e,0xb1,0xea,0x6f,0xa4,0xe4,0xec,0xf5,0x52,0x7e,0xb6,0xea,0xaf,0xa6,0x4,0xa3,0xfc,0x60,0xa9,0x3b,0x0,0xa3,0x12,0x6d,0x2,0xf0,0x31,0x7,0x40,0x3b,0xd,0x98,0x6d,0xc,0xc0,0x58,0x16,0x0,0x79,0x16,0x20,0x94,0x5,0xa0,0x6,0x1,0x68,0xa0,0xc0,0x94,0x2e,0x1a,0x9b,0x3b,0x9b,0x82,0x4a,0x16,0x21,0x0,0x6b,0x29,0x6e,0xdb,0x65,0x7a,0xfa,0x65,0x19,0x80,0xdf,0xbe,0x4c,0xc1,0x87,0x1e,0xc5,0xaa,0x7f,0x53,0xc0,0xe4,0xdf,0xc,0xf9,0x37,0x42,0xfe,0x75,0x57,0xc4,0xea,0xbf,0x2,0xe2,0x2f,0xc5,0xca,0xbf,0x18,0x2c,0xc4,0xe8,0x3f,0xf,0x2b,0xff,0x6c,0xc8,0x3f,0xf3,0xc,0x79,0xcc,0x38,0x4d,0xde,0x3d,0xa7,0x28,0x60,0xfa,0x49,0xa,0xea,0x3a,0x41,0xe3,0xa6,0x9e,0xa0,0x89,0x53,0x8e,0x53,0x48,0xfb,0x71,0x9a,0xc,0xf9,0xc3,0x5b,0x8f,0x51,0x64,0xcb,0x31,0x8a,0x6a,0x3e,0x6,0xf9,0x8f,0x51,0x6c,0xe3,0x31,0xc8,0x7f,0xc,0xf2,0x33,0x8e,0x23,0x0,0xc7,0x29,0xb1,0x8e,0x71,0x2,0x1,0x0,0xb5,0x27,0x20,0x3f,0x22,0x50,0x73,0x12,0xf2,0x9f,0xa2,0x94,0xea,0x53,0x90,0xff,0x34,0x27,0xad,0xea,0xb4,0x8c,0xc0,0x19,0x4a,0xaf,0x3c,0x83,0x0,0x8,0x32,0x2b,0xce,0x20,0x2,0x67,0x75,0xb2,0x25,0x39,0xc,0x8,0x9e,0xb,0xf2,0xf0,0x79,0x1e,0x24,0xcf,0x57,0x28,0xe0,0x9c,0x86,0xe0,0x8c,0x53,0x94,0xcf,0x39,0x29,0x39,0xc1,0xc9,0x83,0xf8,0x79,0x5c,0x7a,0x21,0x7e,0xae,0x14,0x3f,0x87,0x89,0x5f,0xa2,0x8a,0xbf,0x8f,0xb2,0x20,0x7f,0x56,0x91,0x14,0xbf,0x90,0x89,0xbf,0xd3,0x26,0xbf,0xbe,0xea,0x9b,0x46,0x7e,0xc8,0x9f,0x4,0xf9,0x13,0x75,0xf9,0x57,0x49,0xf9,0x97,0x73,0xf9,0x63,0x53,0x97,0x50,0x6c,0xca,0x62,0x77,0x0,0x46,0x25,0x76,0x1,0xc8,0x70,0x1c,0x0,0xed,0xce,0x40,0xe3,0xe5,0x16,0x80,0x5,0x20,0x4c,0x4,0x20,0x40,0x6,0x60,0x2c,0x2,0x10,0x50,0xbf,0x86,0xe2,0xb7,0x5c,0xa4,0xa7,0x5f,0x7a,0xcd,0x16,0x80,0xfd,0xec,0x92,0xdf,0x1b,0x82,0x2d,0x18,0xfb,0x1f,0x80,0xfc,0x1b,0x20,0xff,0x1a,0xc8,0xbf,0xa,0xa3,0xff,0x72,0x88,0xbf,0x4,0x2b,0xff,0x22,0xc8,0xbf,0x0,0xf2,0xcf,0x85,0xfc,0xb3,0x20,0x7f,0xdf,0x29,0xf2,0xe8,0x3d,0x49,0xbe,0xdd,0x27,0x29,0x70,0xda,0x9,0x1a,0xdb,0x79,0x1c,0xe3,0xff,0x31,0x9a,0xd4,0x71,0xc,0xab,0xff,0x51,0x8c,0xff,0x47,0x29,0xa2,0xe5,0x28,0x2,0x70,0x94,0xa2,0x9b,0x8e,0x22,0x0,0x47,0x11,0x80,0xa3,0x14,0xd7,0x70,0x14,0xf2,0x1f,0x85,0xfc,0xa0,0xee,0x18,0xe4,0x3f,0xc6,0x23,0x90,0x54,0x2b,0x48,0x66,0x11,0xa8,0x39,0x1,0xf9,0x4f,0x72,0x52,0x19,0x55,0xa7,0x20,0xbe,0xc6,0x69,0x4,0x40,0x90,0x51,0x71,0x1a,0x1,0xd0,0x60,0x21,0x10,0x64,0x97,0xdb,0xc8,0xe1,0x9c,0x46,0x8,0x4,0x79,0x65,0x8c,0x53,0xa,0x27,0x25,0x27,0x24,0xc7,0x29,0xb7,0x94,0x71,0xc,0x1c,0xe5,0xe4,0x94,0x1e,0x81,0xf0,0x36,0xf1,0xb3,0xa5,0xf8,0x59,0xc5,0x9a,0xf8,0x7b,0x20,0xbd,0x90,0x3f,0x43,0x5b,0xf5,0xb,0xb4,0x55,0xff,0x41,0x4a,0x95,0xab,0xbe,0x90,0x9f,0xad,0xfa,0x1b,0xb8,0xf8,0x49,0x59,0x6b,0xa5,0xfc,0x72,0xbf,0x6f,0x2f,0x3f,0xc5,0x24,0x2f,0x72,0x7,0x60,0x54,0x62,0x71,0x3f,0x0,0x26,0x3f,0xf,0x0,0x3f,0x8,0xa8,0x6e,0x3,0xe4,0x1d,0x82,0x27,0x94,0xe9,0xf7,0x4,0xe0,0x1,0x88,0xa8,0xa7,0x80,0xe4,0x4e,0x1a,0x9b,0x33,0x8b,0xdf,0x16,0xcc,0xbf,0xee,0x7e,0x8a,0xdf,0x38,0x40,0x4f,0xbf,0x28,0x3,0xf0,0x9b,0x97,0x28,0x78,0xef,0x87,0xb1,0xea,0x43,0xfa,0xcd,0x52,0xfe,0x8d,0x57,0xb1,0xfa,0x43,0xfe,0xd5,0x97,0xe4,0xea,0xf,0xf9,0x17,0x63,0xe4,0x5f,0x8,0xf9,0xe7,0x41,0xfe,0xd9,0xa7,0xb1,0xfa,0x43,0xfe,0x19,0x27,0xc9,0xb3,0xe7,0x4,0xf9,0x4f,0x3f,0x4e,0x63,0xba,0x8e,0x51,0x30,0xe4,0x9f,0x38,0xe5,0x28,0xc6,0xff,0xa3,0x14,0xda,0x76,0x4,0xab,0xff,0x11,0x4,0xe0,0x8,0x56,0xff,0x23,0x8,0xc0,0x11,0x8a,0x69,0x3c,0x2,0xf9,0x5,0xf1,0xf5,0x47,0x10,0x80,0x23,0x10,0xff,0xa8,0xa0,0xf6,0x28,0xe4,0x3f,0xc6,0x49,0xae,0x39,0xce,0x49,0xa9,0x66,0x9c,0x40,0x0,0x40,0xd5,0x49,0x88,0xf,0x2a,0x6d,0xa4,0x57,0x9e,0xa2,0xf4,0x8a,0x53,0x88,0xc0,0x29,0xc8,0xaf,0x72,0x9a,0xb2,0xca,0x4f,0xe9,0x64,0x4b,0x72,0xca,0x18,0x27,0xd,0xe4,0x42,0x78,0xc1,0x71,0x48,0xce,0x38,0x26,0x91,0xd2,0x83,0x6c,0x88,0x9f,0xd,0xf1,0xb3,0xa5,0xf8,0x59,0x8a,0xf8,0x99,0x4c,0x7c,0xac,0xfa,0x19,0x4c,0x7c,0xb9,0xea,0xa7,0xcb,0x55,0x3f,0x2d,0x5f,0xae,0xfa,0xea,0xc8,0x9f,0xb3,0x51,0x5f,0xf5,0xf9,0xc8,0xaf,0xef,0xf7,0x99,0xfc,0x18,0xf9,0xb9,0xfc,0x4b,0x21,0xfe,0x12,0x8a,0xe1,0xf2,0xdf,0x47,0xd1,0x49,0xb,0xdd,0x1,0x18,0x95,0xf0,0x0,0xa4,0x59,0x7,0x40,0x3f,0x15,0xa8,0xc0,0x2,0xc0,0x26,0x80,0x89,0x65,0x4a,0x0,0xea,0x28,0x20,0x69,0x2a,0x5,0xb1,0x0,0x14,0x2d,0xa4,0x80,0x5a,0x8c,0x98,0xeb,0xfb,0x11,0x80,0x3f,0x88,0x0,0xfc,0x1a,0x1,0xd8,0xfd,0x30,0x79,0x6c,0xc2,0x8a,0xbf,0xe9,0xaa,0x90,0x7f,0x3d,0xe4,0x5f,0x83,0x7d,0xff,0x2a,0xc8,0xbf,0x1c,0xf2,0x2f,0x81,0xfc,0xf7,0x41,0xfe,0x5,0x90,0x7f,0x2e,0x56,0xfe,0x59,0x8,0x40,0xdf,0x49,0xac,0xfe,0x27,0xc8,0xbb,0xfb,0x38,0x5,0x4c,0x3b,0x46,0x41,0x9d,0x47,0x69,0xdc,0x94,0x23,0x58,0xfd,0x8f,0x50,0x48,0xdb,0x61,0x9a,0xdc,0x7a,0x98,0xc2,0x5b,0xe,0x53,0x64,0xf3,0x61,0x8a,0x6a,0x3a,0x4c,0xd1,0x8d,0x87,0xb0,0xfa,0x1f,0x86,0xfc,0x87,0x28,0xae,0xfe,0x30,0x2,0x70,0x18,0xab,0xff,0x61,0x88,0xcf,0x38,0x2,0xf1,0x41,0xd,0xe3,0x28,0xe4,0x7,0xd5,0xc7,0x20,0xbf,0x20,0xb5,0xea,0xb8,0xa0,0xf2,0x38,0xc4,0x67,0x9c,0xe0,0xa4,0x57,0x68,0x9c,0xa4,0x8c,0xf2,0x13,0x94,0x59,0x7e,0xd2,0x40,0x96,0xa,0x24,0xcf,0x36,0x70,0x5c,0x50,0xca,0x10,0xd2,0x67,0x43,0x7a,0x81,0x2a,0xfd,0x21,0xca,0x82,0xf8,0x59,0x52,0xfc,0x4c,0x88,0x9f,0x69,0x21,0x7e,0xba,0x26,0x7e,0x1,0x13,0x5f,0xac,0xfa,0xfa,0x5e,0x5f,0x8e,0xfc,0x7c,0xd5,0x57,0x47,0xfe,0x4c,0x39,0xf2,0x67,0xac,0x94,0xf2,0x2f,0xb3,0xc9,0x9f,0xbc,0x88,0xa2,0xb9,0xfc,0xb,0x28,0x2a,0x69,0xbe,0x3b,0x0,0xa3,0x12,0xab,0x0,0xb0,0x47,0x83,0xf1,0xc7,0x83,0x65,0xca,0x49,0xc0,0x41,0x0,0xd8,0x53,0x82,0xd5,0x0,0x64,0xcf,0xa4,0xa0,0xa2,0x5,0xe4,0x5f,0xbd,0x92,0x12,0xd7,0x9c,0xa1,0x67,0x7e,0xff,0xaa,0x8,0xc0,0xff,0xbe,0x48,0xc1,0xf,0xdd,0xc2,0xc8,0x3f,0x28,0xc6,0xfe,0xd,0x90,0x7f,0x1d,0x3e,0x5f,0xd,0xf9,0x57,0x40,0xfe,0xa5,0x90,0x7f,0x11,0xc4,0x5f,0x8,0xf1,0xe7,0x41,0xfc,0xd9,0x58,0xf9,0x67,0x42,0xfe,0x19,0x27,0xc8,0xa3,0xe7,0x18,0xf9,0x4e,0x3f,0x8a,0xd5,0xff,0x8,0x56,0xff,0x23,0x34,0x61,0xca,0x61,0x9a,0xd4,0x7e,0x8,0xab,0xff,0x21,0xa,0x6b,0x39,0x44,0x11,0xcd,0x7,0x29,0xb2,0xe9,0x20,0xe4,0x3f,0x88,0xd5,0xff,0x20,0xc5,0x36,0x1c,0x84,0xfc,0x82,0xf8,0xba,0x43,0x94,0x50,0x7b,0x8,0xf2,0x1f,0xe2,0x11,0x48,0xaa,0xd1,0x38,0x2,0xf9,0x5,0x29,0xd5,0x47,0x29,0xa5,0x4a,0x90,0x5a,0x85,0x10,0x54,0x1e,0x83,0xf8,0xa0,0x82,0x71,0x9c,0x93,0xce,0x28,0x17,0x64,0x48,0x32,0x55,0xca,0x4,0x59,0x9c,0x63,0x82,0x52,0x8d,0xa3,0x92,0x23,0x2,0x48,0x2f,0x90,0xd2,0x3b,0x10,0x3f,0x43,0x17,0x7f,0x17,0xa5,0x73,0xf9,0x15,0xf1,0xf3,0xd9,0xb8,0x2f,0x56,0x7d,0x5d,0x7c,0x6d,0xe4,0xcf,0x86,0xf8,0x72,0xe4,0x4f,0xc8,0xbc,0x9f,0xcb,0xcf,0x47,0xfe,0xf4,0xe5,0x5c,0x7e,0x7d,0xe4,0x4f,0x11,0xf2,0x47,0x31,0xf9,0x13,0xe7,0x53,0x64,0xe2,0x3c,0x77,0x0,0x46,0x25,0xfa,0x69,0xc0,0x54,0xd7,0x2,0x80,0x6d,0x80,0x27,0xb,0xc0,0xe4,0x1a,0xf2,0x42,0x0,0xfc,0x93,0xa6,0xf0,0x3b,0x3,0x7,0x15,0x2e,0xa0,0x80,0xaa,0x15,0x94,0xb8,0xea,0x24,0x3d,0xf3,0x82,0x12,0x80,0x1d,0xd8,0xfb,0xaf,0xbb,0x24,0xc4,0x67,0xac,0xc1,0xe7,0xab,0xb0,0xef,0x5f,0x6,0xf9,0x17,0x43,0xfe,0xfb,0x20,0xfe,0x7c,0x30,0x7,0xf2,0xcf,0x82,0xf8,0x7d,0xc7,0xb9,0xfc,0x9e,0x90,0xdf,0xbf,0xeb,0x30,0x56,0xff,0xc3,0x58,0xfd,0xf,0xd1,0xc4,0xf6,0x83,0x58,0xfd,0xf,0x62,0xf5,0x3f,0x40,0xe1,0xcd,0x7,0x20,0xff,0x1,0x8a,0x6a,0x3c,0x80,0x0,0x1c,0xa0,0x98,0x86,0x3,0x14,0x5b,0x7f,0x80,0xe2,0xea,0xe,0x40,0x7e,0x50,0x7b,0x0,0x1,0x38,0x0,0xf9,0xf,0x52,0x62,0xcd,0x41,0x88,0xf,0xaa,0xf,0x71,0x92,0x39,0x87,0x21,0xbe,0xc6,0x11,0xc8,0x2f,0x48,0xab,0x3c,0xa,0xf1,0x6d,0xa4,0x33,0xca,0x6d,0x64,0x40,0x70,0x95,0xcc,0xb2,0xa3,0x46,0x20,0xba,0x8d,0xc3,0x1c,0x21,0xbc,0x90,0x3e,0x93,0x73,0x0,0xc2,0xef,0x97,0xec,0x83,0xf0,0x7b,0x81,0x26,0xfe,0x6e,0x45,0x7c,0xb1,0xea,0xdb,0x89,0x9f,0x27,0x56,0xfd,0x64,0x2e,0xbf,0x5c,0xf5,0x75,0xf9,0xe5,0x51,0xfe,0xc,0xd3,0xc8,0x9f,0xaa,0x8c,0xfc,0xc9,0xb,0x6d,0xf2,0x27,0xcc,0x5,0x73,0xdc,0x1,0x18,0x95,0xf0,0x0,0xa4,0x58,0x7,0xc0,0x7f,0x88,0x0,0x28,0x6f,0x8,0xf2,0x4f,0x94,0x1,0x28,0x98,0x8f,0x0,0x2c,0xa7,0xc4,0x95,0x2c,0x0,0xaf,0xc8,0x0,0xfc,0x9e,0x82,0xb7,0x61,0xef,0xbf,0x6,0xc2,0xaf,0xb9,0x28,0xb8,0x1f,0x9f,0xaf,0x18,0xc0,0xea,0x8f,0xb1,0x7f,0x11,0x56,0xfe,0x5,0x10,0x7f,0x1e,0x56,0xfd,0xd9,0x90,0x7f,0x26,0xe4,0xef,0x3d,0x46,0x1e,0xdd,0x47,0xc8,0x67,0xda,0x61,0xa,0xec,0x3c,0x44,0x63,0xa7,0x1e,0xa4,0xf1,0x1d,0x7,0x69,0x52,0xdb,0x1,0xa,0x6d,0xdd,0x4f,0x93,0x5b,0xf6,0x53,0x78,0xd3,0x7e,0x8a,0x6c,0xdc,0x47,0x51,0xd,0xfb,0x28,0x1a,0xc4,0xd4,0xef,0xa3,0xd8,0xba,0x7d,0x8,0xc0,0x3e,0xc8,0xbf,0x9f,0x12,0x6a,0x34,0x10,0x1,0x90,0x54,0xad,0x71,0x90,0x92,0xab,0x4,0x29,0x55,0x87,0x28,0xa5,0x52,0x90,0x5a,0x79,0x58,0x50,0x71,0x18,0xe2,0x6b,0x20,0x8,0xe5,0x47,0x20,0xbe,0xa4,0xcc,0x9e,0xc,0xce,0x61,0x5d,0x76,0xc1,0x21,0xca,0x0,0x99,0xa5,0x7,0x39,0x19,0x25,0x8c,0x3,0x92,0xfd,0x94,0xc1,0xa4,0xe7,0x40,0xfc,0x62,0x21,0x7e,0x7a,0x11,0x93,0x5e,0x88,0x9f,0x56,0xb8,0x93,0xd2,0x98,0xf8,0x58,0xf5,0x53,0xb,0xb6,0x51,0x2a,0xe4,0x4f,0xc9,0xdf,0xa,0xf1,0x99,0xfc,0x10,0x3f,0x57,0xac,0xfa,0x49,0x9a,0xfc,0x4c,0xfc,0x2c,0xdb,0xc8,0x1f,0x9f,0xa1,0xae,0xfa,0x9a,0xfc,0xda,0xc8,0xcf,0xe4,0xe7,0xab,0x3e,0x97,0x3f,0x22,0x7e,0xe,0x98,0xed,0xe,0xc0,0xa8,0x84,0x6f,0x1,0x52,0x6c,0x4f,0x7,0xe2,0x1,0xc8,0x30,0x4c,0x0,0x86,0x49,0x80,0x7,0xa0,0xc4,0x74,0x31,0x50,0x1d,0xf9,0x25,0x76,0x50,0x60,0x66,0x2f,0x8d,0xc9,0x9f,0x4b,0xfe,0x15,0xcb,0x28,0x71,0xf9,0x71,0x7a,0xe6,0x79,0x19,0x80,0x5f,0x21,0x0,0xf,0xb2,0x8b,0x7d,0x30,0xee,0xaf,0x3e,0x2f,0x3e,0xae,0x3c,0x2f,0x57,0x7f,0xc8,0xbf,0x50,0xca,0x3f,0x7,0xe2,0xcf,0x84,0xf8,0x33,0x8e,0x62,0xf5,0x3f,0x82,0xd5,0xff,0x30,0xf9,0x75,0x1e,0xa4,0xa0,0xa9,0x7,0x68,0x5c,0xc7,0x1,0xac,0xfe,0xfb,0x29,0x4,0xf2,0x87,0xb6,0xec,0xa3,0xb0,0xe6,0x7d,0x14,0xd1,0xb8,0x17,0x1,0xd8,0xb,0xf9,0x41,0xfd,0x5e,0xc8,0xbf,0x97,0xe2,0x6a,0x5,0xf1,0x35,0x7b,0x21,0x3e,0xa8,0x66,0xec,0xa3,0x44,0x46,0xd5,0x7e,0x4a,0x92,0x24,0x57,0x1d,0xa0,0xe4,0xca,0x3,0x10,0x5f,0xe3,0x20,0x27,0xb5,0x42,0x90,0xc6,0x28,0x3f,0x64,0x20,0xbd,0x4c,0xa1,0xd4,0xcc,0x41,0x1d,0x3b,0xd9,0x35,0x74,0xe1,0x85,0xf4,0xe9,0x5c,0x7a,0x21,0x7e,0x5a,0x91,0x94,0xbe,0x70,0x7,0x84,0x67,0x58,0x89,0xbf,0x59,0x17,0xdf,0xb8,0xea,0x4b,0xf1,0x31,0xf2,0xc7,0x73,0xf9,0xb1,0xea,0x43,0xfe,0x58,0x39,0xf2,0xc7,0xe8,0x23,0xbf,0xdd,0xaa,0xcf,0xc4,0xa7,0xf0,0xf8,0x59,0x14,0x16,0x37,0xd3,0x1d,0x80,0x51,0x89,0x16,0x0,0xcb,0x2d,0x0,0x3b,0x10,0x68,0xe,0x40,0xae,0x78,0x47,0x20,0x8b,0x80,0x72,0x35,0xa0,0x5f,0x42,0x3b,0x5,0x66,0xf4,0x20,0x0,0x73,0xc8,0xbf,0x6c,0x9,0x25,0x2e,0x39,0x8c,0x0,0xbc,0x2c,0x2,0xf0,0xcb,0x17,0x28,0x78,0x33,0xf6,0xfd,0x2b,0x21,0xfc,0xca,0x1,0xc1,0x72,0x7c,0xbe,0x44,0x1b,0xfd,0x4f,0xd8,0xe4,0xef,0x63,0xf2,0x1f,0x26,0x8f,0xe9,0x87,0xc8,0xb3,0xeb,0x20,0xf9,0x41,0xfe,0xb1,0x1d,0xfb,0x69,0x7c,0xfb,0x3e,0x9a,0xd4,0xba,0x97,0x42,0x5a,0xf6,0xd2,0xe4,0xe6,0xbd,0x14,0xde,0xb8,0x7,0x1,0xd8,0x43,0x51,0xf5,0xbb,0x21,0xff,0x6e,0x8a,0xa9,0xdb,0x4d,0xb1,0xb5,0xbb,0x29,0xae,0x86,0xb1,0x7,0x1,0xd8,0x3,0xf1,0x25,0x55,0x7b,0x20,0xff,0x5e,0x88,0x2f,0xa9,0xdc,0xc7,0x49,0x66,0x54,0xec,0xa7,0x14,0x3,0x7,0x28,0xb5,0x5c,0x90,0xc6,0x28,0xb3,0x27,0xbd,0xd4,0x1,0x90,0xdc,0xc6,0x3e,0x1,0x64,0x17,0xec,0x91,0x8,0xe9,0xd3,0x74,0xe9,0x6d,0xe2,0xeb,0xab,0x7d,0x1,0x46,0x7d,0x26,0xbd,0x22,0x3e,0x1f,0xf7,0x73,0xe5,0xb8,0x9f,0xa3,0x8c,0xfb,0x59,0x72,0xaf,0x9f,0x29,0x56,0xfd,0x38,0x79,0xa0,0x2f,0x36,0xcd,0xb4,0xea,0x27,0x9b,0x56,0x7d,0xc8,0x1f,0x6e,0x93,0x9f,0x26,0xc7,0xf5,0xb9,0x3,0x30,0x2a,0xd1,0xdf,0xd,0x28,0x9f,0xe,0xa4,0x4f,0x0,0x19,0x7a,0x4,0xf4,0x49,0x40,0xf,0x40,0xa1,0x7d,0x0,0xe2,0xdb,0x44,0x0,0xf2,0xe6,0x50,0x40,0xe9,0x62,0x4a,0xbc,0xef,0x20,0x3d,0xf3,0x3b,0x19,0x80,0x5f,0x3c,0x4f,0xc1,0x1b,0xd8,0xd1,0x7e,0x8,0xbf,0xbc,0x5f,0xb0,0x14,0x9f,0x2f,0x86,0xfc,0xb,0xe4,0xca,0x3f,0xb,0xe2,0xf7,0x1d,0xc1,0xe8,0xcf,0xe4,0x3f,0x48,0x1e,0xd3,0xe,0x90,0x4f,0xe7,0x7e,0xa,0x9c,0xb2,0x8f,0x82,0xdb,0xf7,0xd2,0x84,0xb6,0xbd,0x34,0xa9,0x65,0xf,0x85,0x36,0xef,0xa6,0xb0,0xa6,0xdd,0x14,0xde,0xb0,0x8b,0x22,0xeb,0x77,0x51,0x54,0xdd,0x2e,0x8a,0x6,0x31,0xb5,0xbb,0x28,0xb6,0x46,0x10,0x57,0xbd,0x8b,0xe2,0x41,0x42,0x95,0xc6,0x6e,0x4a,0xac,0xd4,0xd8,0x3,0xf9,0x41,0xc5,0x1e,0xc8,0xcf,0xd8,0x4b,0x29,0xe5,0x7b,0xe5,0xc7,0x7d,0x9c,0x54,0x46,0x99,0x20,0xcd,0x4c,0xa9,0x11,0x21,0xfa,0x5e,0x1b,0x90,0x3d,0xd,0x1f,0xd3,0x20,0xbb,0x60,0xb7,0xd,0x2e,0xbd,0x14,0xbf,0x68,0x27,0xa5,0xb2,0xd5,0x9e,0x63,0x13,0x3f,0xa5,0x80,0x89,0xbf,0x85,0x93,0xcc,0x56,0xfc,0x3c,0x48,0x9f,0x8b,0x15,0x3f,0x57,0x11,0x3f,0x5b,0x13,0x5f,0x5b,0xf5,0x57,0x2a,0xab,0xfe,0x52,0xeb,0x55,0x5f,0xca,0xcf,0xc4,0x8f,0x48,0x90,0xe2,0xc7,0xcf,0x84,0xfc,0x7d,0x90,0x7f,0x6,0x85,0xc6,0xf6,0xba,0x3,0x30,0x2a,0x51,0x27,0x0,0x5f,0xf1,0x74,0x60,0x2e,0xbf,0x9f,0x12,0x0,0x3d,0x4,0x59,0x4a,0x0,0x8a,0xc5,0xe5,0xc0,0xec,0x54,0x60,0x78,0xd,0xf9,0xb2,0x0,0xa4,0x77,0xd3,0x98,0xdc,0xd9,0x14,0x50,0x7c,0x1f,0x25,0xce,0xdb,0x47,0xcf,0xfc,0xf6,0x25,0x11,0x80,0xe7,0x10,0x80,0x35,0x58,0xf5,0x97,0x60,0xd4,0x5f,0x7a,0x5a,0xb0,0x18,0x9f,0x2f,0xc4,0xca,0x3f,0xf,0xab,0xfe,0x6c,0x88,0xdf,0x7,0xf1,0x7b,0xf,0x61,0xdf,0x2f,0xe4,0xf7,0x86,0xfc,0xfe,0x53,0xf6,0x52,0x50,0xfb,0x1e,0x1a,0xdf,0xb6,0x9b,0x26,0xb6,0xec,0xa6,0x90,0xe6,0x5d,0x14,0xda,0xb4,0x8b,0xc2,0x1a,0x1e,0xa2,0x88,0xfa,0x9d,0x14,0x59,0xb7,0x93,0xa2,0x6a,0x77,0x52,0x34,0x88,0xa9,0xd9,0x49,0xb1,0xd5,0x82,0xb8,0xaa,0x9d,0x14,0xcf,0xa8,0xdc,0x49,0x9,0x95,0xf,0x71,0x12,0x2b,0x18,0xbb,0x38,0x49,0x92,0xe4,0xf2,0xdd,0xa,0x7b,0x38,0x29,0x8c,0x32,0x41,0x2a,0xa3,0xd4,0x48,0x9a,0x46,0x89,0x9,0x55,0x74,0x8e,0x2a,0xbb,0x10,0xde,0x26,0xfd,0x76,0x93,0xf4,0x72,0xcc,0xe7,0xe2,0x33,0xe9,0x1f,0xd0,0xc5,0x4f,0xd2,0xc4,0xcf,0x51,0xc4,0xcf,0xb2,0x1f,0xf7,0x6d,0xab,0xfe,0x62,0xcb,0x55,0x3f,0x22,0x51,0xae,0xfa,0x90,0x3f,0x4c,0xca,0x8f,0x55,0x9f,0x89,0xcf,0x9,0x89,0xe9,0x71,0x7,0x60,0x54,0x62,0x8,0x40,0x9a,0x75,0x0,0x2,0x4c,0x1,0xe0,0xef,0x7,0x50,0x2,0x10,0x86,0x0,0xc4,0xb5,0x52,0x40,0xda,0x74,0xa,0xcc,0x99,0x49,0xfe,0x85,0xf3,0x29,0x71,0xd6,0x2e,0x7a,0xe6,0x37,0x32,0x0,0x3f,0xff,0x1d,0x5,0xaf,0xc2,0x8a,0xbf,0x8,0xc2,0x2f,0xc6,0x8a,0xbf,0xe8,0xa4,0x90,0x7f,0x3e,0xe4,0x9f,0x3,0xf9,0x67,0x42,0xfc,0xde,0x3,0x90,0x7f,0x3f,0xe4,0xdf,0x4f,0x9e,0x9d,0xfb,0xc8,0x17,0xf2,0x7,0x42,0xfe,0xe0,0xb6,0x5d,0x34,0xa1,0x65,0x17,0x4d,0x6a,0x7e,0x88,0x42,0x9a,0x76,0xd2,0xe4,0x86,0x9d,0x14,0x5e,0xbf,0x83,0x22,0xea,0x76,0x50,0x64,0xed,0xe,0x8a,0xaa,0xd9,0x41,0xd1,0x35,0xdb,0x29,0xa6,0x7a,0x3b,0xc5,0x56,0x9,0xe2,0x2a,0xb7,0x43,0xfe,0x1d,0x14,0x5f,0x21,0x48,0xe0,0xec,0xa4,0xc4,0x72,0x1b,0x49,0xe5,0xf,0x71,0x92,0xcb,0x34,0x76,0xe9,0xa4,0x94,0x1a,0x49,0x2d,0x71,0x0,0x93,0x9c,0xf3,0x10,0x3e,0x97,0xd8,0xc9,0xae,0xac,0xf2,0x85,0xdb,0x4c,0x2b,0xbd,0x2a,0xfd,0xd0,0xe2,0x27,0x6a,0xe2,0xab,0xe3,0x7e,0xba,0x32,0xee,0x43,0xfe,0xe8,0x14,0x29,0x7e,0xf2,0x2,0x8a,0x84,0xfc,0x5c,0xfc,0x44,0x21,0x7e,0xb8,0x22,0xbe,0x5c,0xf5,0x29,0x24,0xb6,0x7,0xf2,0x77,0xd3,0xa4,0xe8,0xe9,0xee,0x0,0x8c,0x4a,0xbc,0x53,0x94,0x2d,0x40,0x9a,0x6d,0xfc,0x1f,0x2a,0x0,0xda,0x9d,0x81,0x42,0x44,0x0,0x7c,0x62,0x5b,0x28,0x20,0x75,0x1a,0x8d,0xc9,0xee,0x23,0xbf,0x82,0xb9,0x94,0xd0,0xb7,0x13,0x1,0x78,0x51,0x4,0xe0,0xd9,0xdf,0x52,0xf0,0x72,0xb6,0xe2,0x43,0xf8,0x85,0xc7,0xc5,0x47,0x26,0xff,0x5c,0x29,0xff,0xc,0x26,0xff,0x3e,0xc8,0xf,0x3a,0xf7,0x92,0xd7,0x94,0x3d,0xe4,0xd7,0xbe,0x9b,0x82,0x20,0xff,0xf8,0x96,0x9d,0x34,0x9,0xe2,0x4f,0x6a,0xdc,0x41,0xa1,0xd,0xdb,0x29,0xac,0x7e,0x3b,0x85,0xd7,0x6d,0xa3,0x88,0xda,0x6d,0x90,0x1f,0x54,0x6f,0xa3,0xe8,0xaa,0x7,0x29,0x6,0xc4,0x56,0xa,0xe2,0x2a,0xb6,0x71,0xe2,0x19,0xe5,0xdb,0x28,0x81,0xb3,0x9d,0x93,0x58,0xc6,0xd8,0xc1,0x49,0x62,0x94,0xa,0x92,0x4b,0x77,0x1a,0x48,0x61,0x94,0xd8,0x48,0x65,0x1f,0x8b,0x8d,0xa4,0x72,0x20,0x77,0x91,0x99,0xed,0x36,0xe1,0x41,0x4a,0xa1,0x5c,0xe5,0x99,0xf4,0x5,0x8a,0xf4,0xea,0x6a,0x9f,0x27,0xa5,0x97,0xe2,0x27,0x6a,0xe2,0x67,0xcb,0x15,0x3f,0x4b,0x11,0x5f,0x1d,0xf7,0xd3,0x34,0xf1,0x17,0x71,0xf9,0x35,0xf1,0x23,0x93,0xc4,0xaa,0x1f,0xae,0xaf,0xfa,0x10,0x3f,0xde,0x26,0x7e,0xa8,0x26,0x7e,0xcc,0x74,0x9a,0x18,0x3d,0x8d,0xe1,0xe,0xc0,0xe8,0xc0,0x74,0x7,0x61,0xf5,0x2c,0x80,0x79,0x2,0xf0,0x53,0x8e,0x5,0xf8,0x3b,0xa,0x40,0xa5,0xc,0x40,0x33,0xf9,0xa7,0x74,0xd2,0x98,0xac,0x19,0xe4,0x97,0x3f,0x87,0x12,0x66,0xec,0x30,0x6,0x60,0x29,0x56,0xfd,0xf9,0x47,0x4,0xf3,0xc0,0x5c,0x8c,0xfc,0xb3,0x99,0xfc,0x58,0xf5,0x7b,0x20,0xfe,0xf4,0x3d,0xe4,0xd1,0xb5,0x9b,0x3c,0xa7,0xec,0x26,0x9f,0xf6,0x5d,0x14,0xd0,0xb6,0x93,0x82,0x21,0xff,0x84,0xa6,0x1d,0x90,0x7f,0x3b,0x85,0x34,0x6c,0xa3,0xd0,0xfa,0x6d,0x14,0x56,0xfb,0x20,0x85,0xd7,0x3c,0x48,0x91,0xd5,0x5b,0x39,0x51,0x55,0x5b,0x29,0xba,0x72,0x2b,0xc5,0x54,0x8,0x62,0x41,0x5c,0xb9,0x8d,0xf8,0x32,0xc6,0x83,0x94,0xa0,0x51,0xfa,0x20,0x25,0x96,0x6e,0xd3,0x49,0x62,0x94,0x6c,0x37,0x90,0xac,0x52,0xbc,0x1d,0xb2,0x4b,0x8a,0xcc,0x6c,0xb3,0xa1,0x89,0xae,0xb3,0xd5,0x26,0x7c,0x1,0xf6,0xf3,0x6c,0x4f,0xaf,0x49,0x9f,0x2f,0xa4,0x4f,0xe2,0xd2,0x6f,0x34,0x4a,0x9f,0x23,0xa5,0x37,0x8b,0x9f,0xa9,0x88,0x9f,0xbe,0x94,0x62,0x98,0xf8,0x69,0x10,0x3f,0x55,0x8a,0x9f,0xb2,0x90,0x22,0x93,0xa5,0xf8,0x49,0x10,0x5f,0xae,0xfa,0x61,0x9,0xb3,0x20,0xbe,0x1c,0xf7,0xb5,0x55,0x3f,0xa6,0x7,0xe2,0xdb,0xe4,0x9f,0x10,0xdd,0x45,0x13,0xa2,0x3a,0xdd,0x1,0x18,0x1d,0x98,0x1e,0x58,0xe2,0x28,0x0,0x3c,0x2,0xb6,0x47,0x86,0xeb,0x1,0x60,0xef,0x7,0x18,0x9b,0x2f,0x8e,0x3,0xa8,0x1,0x88,0x69,0xe2,0x17,0x3,0xb1,0x53,0x81,0x7e,0x79,0xb3,0x28,0xa1,0xe7,0x41,0x7a,0xe6,0xd7,0xbf,0x97,0x1,0xf8,0xd,0x5,0x2f,0xc6,0xca,0x3f,0x7,0xc2,0xcf,0x3d,0x24,0x3e,0xce,0xc6,0x5e,0xbf,0x8f,0xc9,0xbf,0x17,0x2b,0x3f,0xe4,0xef,0xdc,0x45,0x1e,0x53,0x1e,0x22,0xaf,0x8e,0x9d,0xe4,0xd7,0xb6,0x83,0x2,0x5b,0xb6,0xd3,0xb8,0xa6,0xed,0x90,0xff,0x41,0xa,0xa9,0xdf,0x4a,0x21,0x75,0x5b,0x69,0x72,0xed,0x56,0xa,0xab,0xd9,0x42,0x11,0xd5,0x5b,0x28,0xb2,0x6a,0x33,0x45,0x56,0x6e,0xa6,0x28,0x10,0x5d,0xb1,0x99,0x62,0xca,0x5,0xb1,0x65,0x82,0x38,0x8d,0xd2,0xcd,0x14,0x5f,0xba,0x45,0x27,0xa1,0x84,0xb1,0x95,0x93,0xc8,0x28,0xd6,0x78,0x90,0x93,0xa4,0x52,0x24,0x48,0x56,0x29,0x64,0x6c,0xb5,0x0,0x82,0x17,0xa8,0x6c,0x16,0x30,0xd9,0x41,0x52,0xfe,0x26,0x1,0x93,0x3e,0x4f,0xac,0xf4,0x89,0xb9,0xeb,0x5,0x10,0x3f,0x1,0xe2,0x73,0xe9,0xb3,0xa5,0xf4,0x52,0xfc,0x38,0x29,0x7e,0x6c,0xc6,0x32,0x3b,0xf1,0xa3,0x74,0xf1,0x17,0x70,0xf9,0x23,0x20,0x7f,0x78,0xa2,0x90,0x9f,0x89,0x1f,0x66,0x16,0x3f,0xd6,0x52,0x7c,0x1a,0xf,0xc6,0x45,0x4d,0x75,0x7,0x60,0x74,0x60,0x15,0x80,0x54,0x63,0x0,0xfc,0xa4,0xfc,0xda,0x71,0x1,0xf9,0x16,0x61,0x4f,0x73,0x0,0xd8,0x99,0x80,0x10,0xf9,0x7c,0x80,0xa8,0x6,0xf2,0x4d,0x6c,0x27,0xff,0xf4,0xe9,0xe4,0x97,0x3b,0x93,0x12,0xba,0x95,0x0,0xfc,0xc,0x1,0xb8,0xf,0xab,0xfe,0x2c,0x8,0x3f,0xeb,0x0,0xc6,0xfe,0x3,0x42,0xfe,0x5e,0xc8,0x3f,0x7d,0x37,0xe4,0x7f,0x8,0xf2,0xef,0x24,0xcf,0xf6,0xed,0xe4,0xd3,0xb6,0x9d,0x2,0x5a,0xb6,0xd1,0xd8,0xa6,0x7,0x69,0x7c,0xe3,0x56,0x9a,0x54,0xbf,0x5,0xf2,0x6f,0xa6,0xd0,0xda,0xcd,0x14,0x56,0xfd,0x0,0x85,0x55,0x3d,0x40,0x11,0x55,0x9b,0x20,0x3f,0xa8,0xd8,0x44,0x51,0xe5,0x9b,0x28,0xba,0x6c,0x23,0xd8,0x44,0x31,0xf8,0x18,0x53,0xba,0x89,0x62,0x4b,0x6c,0xc4,0x71,0x1e,0xa0,0x78,0x46,0xb1,0x20,0x81,0xb3,0x99,0x93,0xc8,0x28,0x62,0x6c,0xb1,0x23,0x9,0x52,0x27,0x69,0x1f,0x75,0x84,0xd8,0x49,0x5,0xb6,0x8f,0x49,0x5,0xf,0xd8,0x50,0x65,0xcf,0xdf,0xc8,0x85,0x4f,0xe4,0x40,0xf8,0x3c,0x29,0x7c,0x2e,0x84,0xcf,0x95,0xd2,0xe7,0x8,0xe9,0xe3,0x39,0x4c,0x7c,0x48,0x9f,0x5,0xe9,0x33,0x21,0x7d,0xe6,0x72,0x2e,0x7e,0xc,0x13,0x3f,0x7d,0x9,0x45,0x33,0xf1,0xd3,0x20,0x7e,0xaa,0xbd,0xf8,0x86,0x55,0x5f,0x8e,0xfb,0x5c,0xfc,0x38,0x93,0xf8,0x31,0x42,0xfc,0xf1,0xc,0x21,0x3e,0x5,0x47,0x4e,0x1,0x1d,0xee,0x0,0x8c,0xe,0x12,0xc5,0x3,0x41,0xc,0x1,0x50,0x26,0x0,0x15,0x1f,0x35,0x0,0xe2,0x9a,0x0,0xed,0x62,0x20,0x8f,0xe0,0x42,0xf2,0x18,0x2f,0x9e,0x11,0xe0,0xc9,0xe,0x4,0x46,0xd6,0x91,0x4f,0x42,0x2b,0xf9,0xa5,0x75,0x91,0x5f,0x76,0x1f,0x25,0x4c,0xdf,0xa2,0x4,0xe0,0xd7,0x14,0xbc,0x0,0xab,0x7e,0x1f,0x84,0x9f,0x21,0xe9,0xd9,0xa3,0xc8,0xbf,0x3,0xf2,0x6f,0x23,0xef,0xd6,0x7,0xc9,0xbf,0x65,0x2b,0x5,0x35,0x6d,0xa1,0x71,0xd,0x9b,0x69,0x42,0xdd,0x3,0x34,0xa9,0x76,0x13,0x85,0xd4,0x6c,0xa2,0xd0,0xea,0x4d,0x90,0x7f,0x23,0x85,0x57,0x6e,0xa4,0x88,0x8a,0xd,0x14,0x51,0xbe,0x81,0x22,0xcb,0x36,0x50,0x14,0xa3,0x74,0x3,0x45,0x33,0x4a,0xd6,0x53,0xc,0xa3,0x78,0x3,0xc5,0x4a,0xe2,0x18,0x45,0x8c,0x8d,0x3a,0xf1,0x1a,0x85,0x1b,0x29,0xa1,0x70,0x93,0x1d,0x89,0x2a,0x5,0x16,0xe4,0x6b,0x6c,0x14,0x92,0xe7,0xab,0x92,0x6f,0xb0,0xc9,0x6e,0x16,0x3e,0x57,0xa,0xf,0xe2,0x73,0x14,0xe9,0xb3,0x99,0xf4,0x8a,0xf8,0x19,0x16,0xe2,0xa7,0x2a,0xe2,0xa7,0xd8,0x8b,0x1f,0xa6,0x8f,0xfb,0x10,0x3f,0x5e,0x13,0xbf,0x97,0x26,0xc5,0x76,0x73,0xf9,0x27,0x42,0xfe,0x9,0x72,0xd5,0xd7,0xc5,0x8f,0xe2,0xe2,0xd3,0xd8,0xc8,0x76,0xa,0x8a,0x68,0x77,0x7,0x60,0x74,0x90,0x28,0xee,0x2,0x64,0x17,0x80,0x14,0x53,0xc,0x52,0xd,0x1,0xd0,0xf,0x8,0xea,0x1,0xc8,0x47,0x0,0x8a,0xf8,0x8d,0x41,0x3c,0xd9,0x53,0x82,0x58,0x0,0xe2,0x5b,0xc8,0x37,0xb5,0x93,0x7c,0xb3,0x7a,0x28,0xb2,0x7d,0x3d,0x3d,0xfa,0x95,0xef,0xd0,0xbf,0xfc,0xf8,0x39,0xba,0xfa,0xc5,0x6f,0xd3,0x98,0xd9,0xd8,0xe7,0xf7,0x60,0xcc,0xef,0x81,0xf4,0xdd,0x60,0x3a,0x3e,0xef,0xda,0x9,0xf9,0xb7,0x93,0x47,0xfb,0x83,0xe4,0xd,0xf1,0xfd,0x9b,0x37,0xd3,0x98,0xc6,0x7,0x28,0xb8,0x7e,0x13,0x8d,0xaf,0xdd,0x48,0x13,0x6b,0x36,0x52,0x48,0xf5,0x6,0xa,0xad,0xda,0x40,0x93,0x2b,0xd7,0x53,0x58,0xc5,0x7a,0xa,0x2f,0x7,0x65,0xeb,0x28,0x2,0x44,0x96,0xae,0xa5,0xa8,0x12,0x49,0xf1,0x5a,0x8a,0x6,0x31,0x45,0x1a,0xeb,0x28,0xb6,0xd0,0xcc,0x7a,0x8a,0xd3,0x28,0x58,0x4f,0xf1,0x3a,0x1b,0xc,0x24,0x30,0xf2,0x95,0x8f,0x6,0xd6,0x53,0x42,0x9e,0x19,0x4d,0x70,0x45,0x74,0x45,0x76,0x7b,0xe1,0xef,0xb7,0x9,0x6f,0x5e,0xed,0x33,0x84,0xf4,0x4e,0xc5,0x4f,0xc6,0xa8,0xaf,0x89,0x9f,0x28,0xc5,0x4f,0x98,0x9,0xf1,0xc5,0xaa,0x1f,0x12,0xc7,0xc4,0xef,0xe1,0xf2,0x73,0xf1,0xf5,0x55,0x5f,0x15,0x7f,0xa,0xc4,0x87,0xfc,0x11,0x4c,0xfe,0x36,0x1a,0x13,0xd1,0xea,0xe,0xc0,0xe8,0xc0,0x22,0x0,0x9c,0x24,0x89,0xb2,0x25,0xe0,0xa7,0x7,0xc5,0x99,0x1,0xf6,0xcc,0x40,0x1e,0x1,0x2d,0x0,0x63,0x1,0xb6,0x1,0x1e,0x13,0xe5,0x9b,0x82,0x22,0x6a,0xf9,0x81,0x40,0xdf,0xe4,0xe,0x4,0xa0,0x9b,0xfc,0xcb,0x17,0x53,0x50,0xcb,0x7a,0xa,0xea,0xdc,0x4a,0x1,0xdd,0xdb,0xc9,0x73,0x1a,0x44,0x9f,0xe,0xe1,0xa7,0xed,0x14,0xe2,0x77,0xee,0x10,0xf2,0xb7,0x3d,0x48,0x5e,0x2d,0x5b,0xc8,0xaf,0xe9,0x1,0x1a,0xd3,0xb0,0x89,0x82,0xeb,0x36,0x42,0xfe,0xf5,0x34,0xb1,0x7a,0x1d,0x4d,0xaa,0x5a,0x47,0x21,0x95,0xeb,0x28,0xb4,0x62,0x2d,0x4d,0x6,0x61,0x65,0x6b,0x21,0xff,0x1a,0xa,0x2f,0x5d,0x43,0x11,0x25,0xab,0x29,0xb2,0x58,0x52,0xb4,0x9a,0xa2,0x18,0x85,0xab,0x29,0x5a,0xa3,0x60,0x35,0xc5,0x14,0xac,0x31,0x10,0xcb,0xc8,0x67,0xac,0xa5,0x38,0x85,0xf8,0x3c,0x7c,0xcc,0x93,0x9f,0xe7,0xaf,0x13,0xe4,0xa9,0xac,0xb5,0x91,0x6b,0x66,0x8d,0x20,0x47,0x63,0xb5,0xd,0x26,0x3a,0x67,0x95,0x40,0x13,0x3e,0x8b,0x9,0x6f,0x92,0x1e,0x44,0x33,0xe9,0xd3,0xe5,0x98,0x9f,0x6,0xe9,0x53,0x99,0xf4,0x42,0xfc,0x8,0x55,0xfc,0x24,0x21,0xfe,0x64,0x55,0xfc,0x78,0x21,0x7e,0x48,0x9c,0x3,0xf1,0xa3,0x6d,0xe3,0xbe,0x51,0xfc,0x36,0xa,0xc,0x6f,0x5,0x2d,0xee,0x0,0x8c,0x1a,0xc,0x5b,0x80,0x24,0x13,0xc9,0xb6,0xd5,0x5f,0xb,0x80,0x5f,0x86,0xb8,0x24,0x98,0x45,0x20,0x10,0x4,0xe5,0x8a,0x0,0x4,0x17,0xf0,0x6d,0x80,0x7,0x9b,0x2,0xd8,0xad,0xc1,0x62,0x1a,0xc9,0x27,0xb1,0x8d,0x7c,0x33,0xa6,0x91,0x5f,0xe9,0x42,0xf2,0xae,0x5d,0x45,0x5e,0x4d,0xeb,0x30,0xde,0x3f,0x40,0x1e,0x53,0xb7,0x42,0xfa,0x6d,0xf8,0x8,0xa6,0x80,0x8e,0x7,0x21,0xff,0x16,0xc8,0xbf,0x99,0xcb,0x1f,0xd8,0xb0,0x81,0xc6,0xd6,0xad,0xa7,0x71,0x35,0xeb,0x68,0x42,0xf5,0x5a,0x9a,0x54,0xb9,0x86,0x42,0x2a,0xd6,0x50,0x68,0xf9,0x6a,0xce,0xe4,0x32,0x50,0x7a,0x3f,0x85,0x95,0xdc,0x4f,0xe1,0xc5,0xab,0x28,0xbc,0x68,0x15,0x45,0x30,0xa,0x57,0x51,0x24,0xa3,0x60,0x15,0x45,0x69,0xe4,0xaf,0xa2,0x68,0x8d,0x3c,0xc6,0xfd,0x14,0xa3,0x10,0xab,0x91,0xcb,0x58,0x4d,0x71,0xae,0x90,0xc3,0xb8,0xdf,0x1e,0x4d,0x72,0xce,0x4a,0x5d,0xf6,0x58,0x26,0x7b,0x96,0x94,0x1d,0xc4,0x64,0x2e,0x13,0x30,0xe1,0x15,0xe9,0xa3,0xd2,0x99,0xf4,0x42,0xfc,0x48,0x26,0x7e,0x2a,0xa4,0x4f,0x99,0xcf,0xc5,0xf,0x67,0xe2,0x27,0xcf,0xa5,0x30,0x4d,0xfc,0x44,0x29,0x7e,0x82,0x4d,0xfc,0x49,0x9a,0xf8,0xb1,0x52,0xfc,0x18,0xb1,0xcf,0x1f,0xa7,0xac,0xfa,0x76,0xe2,0x47,0xb4,0x52,0x40,0x78,0xb,0xc7,0x3f,0xac,0xd9,0x1d,0x80,0x51,0x89,0x55,0x0,0xf4,0x2d,0x40,0x8a,0x72,0x66,0x40,0x79,0x8b,0xb0,0x21,0x0,0x45,0x62,0xa,0x60,0xf7,0x5,0x88,0x6e,0xc0,0x36,0xa0,0x95,0x7c,0xd2,0x3a,0xc9,0xaf,0x78,0x3e,0xf9,0x54,0xaf,0x20,0xaf,0x86,0x35,0xe4,0xd9,0xba,0x1,0x63,0xfe,0x66,0x48,0xbf,0x5,0x20,0x4,0xed,0xf8,0xd8,0xb6,0x99,0x3c,0x9b,0x37,0x91,0x4f,0xd3,0x46,0xf2,0x87,0xfc,0x63,0xea,0xd6,0x51,0x70,0xcd,0x1a,0x9a,0x50,0xb5,0x6,0xf2,0xaf,0xa6,0x90,0xf2,0xfb,0x29,0xa4,0x6c,0x15,0x85,0x96,0x4a,0x4a,0x56,0xd2,0xe4,0xe2,0x95,0x14,0x56,0xb4,0x82,0xc2,0xa,0x57,0x50,0x78,0x81,0x20,0x22,0x9f,0xb1,0x9c,0x22,0xf3,0x34,0x56,0x70,0xa2,0x72,0x55,0x56,0x52,0x34,0x3e,0x46,0xf3,0x8f,0x2b,0x29,0x26,0xc7,0x48,0xac,0x81,0x55,0x46,0x20,0xb3,0x63,0x56,0xd8,0x4,0xd7,0x81,0xe4,0xc,0x55,0xf6,0x4c,0x29,0x3b,0x47,0x13,0xde,0x26,0x7d,0xa4,0x2e,0xfd,0x42,0x8a,0x90,0xe2,0x87,0xa7,0x48,0xe9,0xa5,0xf8,0x93,0x93,0x84,0xf8,0xa1,0x52,0xfc,0x10,0x26,0x7e,0xbc,0x14,0x3f,0x4e,0x8a,0x2f,0xe5,0x1f,0x1f,0x63,0x21,0xbe,0xd8,0xe7,0xeb,0xe2,0xb3,0x55,0x9f,0x8b,0x1f,0xde,0xc,0xf9,0x9b,0xc8,0x7f,0x72,0xa3,0x3b,0x0,0xa3,0x12,0x47,0x1,0x30,0x9c,0x19,0x48,0xb7,0xc1,0x2,0x30,0x26,0x87,0x47,0xc0,0x93,0x1d,0x7,0x18,0x87,0x0,0xb0,0xd3,0x81,0x93,0xc5,0x81,0x40,0xef,0xb8,0x66,0xf2,0x49,0x99,0x42,0xfe,0x85,0xf3,0xc8,0xb7,0x72,0x19,0x79,0xd5,0xad,0x22,0xf,0x4c,0x1,0x1e,0xad,0x1b,0x21,0xfd,0x26,0x7c,0xdc,0x44,0x9e,0x2d,0xa0,0x79,0x23,0x79,0x37,0x6e,0x20,0xbf,0xfa,0x75,0x14,0x58,0xbb,0x96,0xc6,0x56,0xaf,0xa6,0x71,0x55,0xf7,0xd3,0x84,0x8a,0x55,0x34,0xa9,0x6c,0x25,0x85,0x94,0x82,0x92,0x15,0x60,0x39,0x85,0x14,0x2d,0xa7,0x50,0x46,0xe1,0x32,0x9a,0x5c,0xb0,0x8c,0xc2,0xf2,0x97,0xa,0xf2,0x96,0x52,0x38,0x23,0x77,0x29,0x45,0x68,0xe4,0x8,0x22,0x19,0xd9,0x8c,0x65,0xf8,0x7c,0x19,0xff,0x18,0x65,0x22,0x9a,0xb3,0x9c,0xa2,0xb3,0x9c,0x13,0x63,0x0,0xbf,0x26,0xd3,0x8a,0xa5,0x36,0x98,0xe4,0x20,0x8a,0xb3,0x58,0xa0,0x9,0x9f,0x2e,0x85,0x97,0xd2,0x73,0xe1,0x41,0xb8,0x2e,0xfd,0x3c,0x21,0x7d,0xb2,0x94,0x3e,0x69,0x96,0x10,0x3f,0xd1,0x5e,0xfc,0x89,0xc,0xac,0xfa,0xaa,0xf8,0xe3,0xed,0xc4,0xef,0x30,0x88,0x1f,0x60,0x16,0x3f,0xac,0x91,0xfc,0x26,0x37,0x92,0xef,0xe4,0x6,0x77,0x0,0x46,0x25,0xde,0x89,0xf6,0x11,0xd0,0xe,0x4,0xea,0x13,0x40,0xba,0xf1,0x9a,0x80,0x31,0xd9,0x8,0x40,0x8e,0xed,0x38,0x0,0x7b,0x54,0x98,0x16,0x80,0xd8,0x26,0xf2,0x49,0x6a,0x27,0xff,0xfc,0x39,0xe4,0x57,0xbe,0x98,0xbc,0x6b,0x56,0x90,0x67,0xc3,0x6a,0x11,0x81,0x96,0xf5,0xe4,0xd1,0xbc,0x81,0x3c,0x9b,0xd6,0x63,0x32,0x58,0x47,0xbe,0x75,0x6b,0xc8,0xbf,0x76,0x35,0x8d,0xa9,0x5e,0x45,0xc1,0x95,0xab,0x68,0x7c,0xc5,0x4a,0x9a,0x50,0xb6,0x9c,0x26,0x96,0x2c,0xa3,0x89,0xc5,0x4b,0x69,0x52,0x91,0x20,0xa4,0x70,0x9,0x85,0x14,0x2c,0xa1,0xd0,0x7c,0x90,0xb7,0x98,0x26,0xe7,0x4a,0x72,0x16,0x53,0x58,0xce,0x22,0xa,0xcb,0x16,0x84,0x6b,0x64,0x2d,0xa6,0x8,0xb,0x22,0xb3,0x96,0x50,0x64,0xa6,0x8d,0x28,0x57,0xc9,0x50,0x59,0x6c,0x44,0x15,0x5c,0xe7,0x3e,0x9b,0xec,0x69,0x90,0x3d,0x4d,0x11,0x3e,0x75,0xbe,0x2e,0x7d,0x58,0xca,0x5c,0x93,0xf4,0x42,0x7c,0x2e,0x3d,0x8,0x91,0xe2,0x4f,0x62,0xe2,0xc7,0x3b,0x11,0x3f,0x5a,0x1e,0xe0,0x93,0xf2,0x7,0x45,0x2a,0x2b,0x7e,0x84,0x43,0xf1,0x41,0x3d,0xf9,0x84,0xd6,0xbb,0x3,0x30,0x2a,0xb1,0xb,0x80,0x72,0x56,0xc0,0x51,0x0,0x2,0xb3,0xf5,0x29,0x80,0x6f,0x3,0xd8,0x55,0x81,0xa1,0x15,0xe4,0x19,0x51,0x4b,0x5e,0xd1,0x8d,0xe4,0x9d,0xd8,0x4a,0xfe,0xb9,0x33,0xc9,0xaf,0xf4,0x3e,0xf2,0xa9,0x5a,0x4a,0x5e,0xb5,0x2b,0xc9,0xb3,0x1e,0x11,0x68,0x5c,0x3,0xd6,0x92,0x57,0xfd,0x1a,0xf2,0xa9,0x5b,0x4d,0x7e,0x35,0xab,0xf8,0xdd,0x83,0x82,0x2a,0x56,0x50,0x70,0xf9,0x72,0x1a,0x57,0xba,0x8c,0xc6,0x17,0x2f,0xa1,0xf1,0x45,0x8b,0x69,0x42,0xe1,0x22,0x9a,0x58,0x0,0xf2,0x17,0xd1,0x24,0x46,0xde,0x7d,0x14,0x92,0xb,0x72,0xee,0xa3,0xd0,0x9c,0x85,0x14,0x9a,0x2d,0x98,0x9c,0x25,0xc9,0x14,0x84,0x31,0x32,0x16,0x52,0xb8,0x1d,0xf7,0x71,0x22,0x34,0xd2,0x8d,0x44,0xba,0x80,0xfe,0xeb,0xd2,0x34,0x16,0xda,0x23,0x45,0xd7,0x65,0x37,0x8,0x6f,0x93,0x7e,0x32,0x93,0x3e,0x59,0x48,0x1f,0x6a,0x96,0x3e,0x81,0x49,0x2f,0xc5,0xe7,0x2b,0x7e,0xb7,0x9d,0xf8,0xe3,0x74,0xf1,0xa7,0x1a,0xc5,0x8f,0x64,0xe2,0xb7,0x59,0x88,0xdf,0xa4,0x88,0x8f,0x2d,0x1b,0x97,0xbf,0x8e,0xe1,0xe,0xc0,0xa8,0xc4,0xe1,0x16,0xc0,0x41,0x0,0x2,0xe4,0x4,0xc0,0x3,0x20,0xa7,0x0,0xf6,0xb8,0xb0,0x90,0xa,0x7e,0x20,0xd0,0x2b,0xaa,0x9e,0xbc,0xe3,0x5b,0xc8,0x2f,0x7b,0x6,0xf9,0x17,0xcd,0xe7,0x53,0x80,0x4f,0xf5,0x72,0xf2,0x66,0x11,0xa8,0xbb,0x1f,0x5b,0x82,0xfb,0x31,0x15,0xac,0x22,0xdf,0xea,0x95,0xe4,0x5f,0xb9,0x9c,0x2,0x2b,0x96,0xd1,0x98,0xb2,0x25,0x34,0xb6,0x64,0x31,0x5,0x17,0x2f,0xa6,0xf1,0x10,0x7f,0x7c,0xc1,0x42,0x9a,0x90,0xf,0xf2,0x16,0xd0,0x84,0xdc,0x5,0x34,0x91,0x91,0xb3,0x80,0x26,0x65,0xcf,0xa7,0x49,0x59,0x82,0x90,0x4c,0xc6,0x3c,0xa,0xcd,0x50,0x48,0x9f,0x47,0x93,0x35,0xd2,0x24,0xe9,0xf3,0x29,0x2c,0xcd,0x9a,0x70,0x9d,0x5,0x2,0x55,0x56,0xc3,0xe7,0xc3,0x80,0x8d,0xef,0xa,0xba,0xe4,0xea,0xea,0xae,0x61,0x58,0xe5,0xcd,0xd2,0x5b,0xac,0xf6,0x71,0x52,0x7a,0x30,0xde,0x20,0x7e,0xa7,0x4d,0xfc,0x28,0x26,0x7e,0x7,0xc4,0x6f,0x37,0x1c,0xe0,0xf3,0x17,0x7,0xf8,0xc8,0x4f,0x8a,0xef,0xa7,0x89,0x1f,0x2a,0xc4,0xf7,0x66,0x84,0xd4,0x32,0xdc,0x1,0x18,0x95,0xb8,0x3a,0x1,0x4,0xc8,0x9,0x80,0x9d,0xd,0xe0,0x5b,0x1,0x39,0x5,0x84,0x94,0x93,0x67,0x58,0x35,0x79,0xca,0xe3,0x0,0xbe,0x99,0x3d,0xe4,0x5f,0x30,0x97,0x2,0x30,0x5,0xf8,0x55,0x2c,0xc1,0x24,0xb0,0x8c,0xbc,0xab,0x57,0xf0,0x3,0x83,0x7e,0x55,0xcb,0xf9,0x5d,0x83,0x2,0xcb,0x97,0xd0,0x98,0xd2,0xc5,0x14,0x54,0x7c,0x1f,0x5,0x15,0x2d,0xa4,0xb1,0x85,0xb,0x68,0x5c,0xfe,0x7c,0x1a,0x9f,0xb,0x72,0xe6,0x82,0x79,0x34,0x3e,0x7b,0x2e,0x67,0x42,0xd6,0x5c,0x9a,0x98,0x9,0x32,0xe6,0x70,0x26,0xa5,0x4b,0xd2,0x4,0x21,0x8c,0x54,0x41,0xa8,0x15,0x29,0x82,0xc9,0x3a,0x73,0xd,0x84,0x99,0x49,0xb6,0x62,0x8e,0x25,0x93,0x95,0x8f,0x7c,0x35,0x4f,0x9e,0xad,0x48,0x2e,0x45,0x37,0xc9,0xce,0x85,0x4f,0xec,0xb3,0xad,0xf4,0x9,0x42,0xfa,0x89,0x1c,0x29,0xbd,0x2e,0xfe,0x34,0x2e,0xfe,0x38,0x29,0x7e,0x30,0x67,0x2a,0xa4,0x77,0x20,0x3e,0xf0,0x57,0x56,0x7d,0x83,0xf8,0x62,0xdc,0x57,0xc5,0x27,0xef,0x49,0x8,0xf7,0xa4,0x6a,0x77,0x0,0x46,0x25,0x96,0x13,0x80,0xb3,0x2d,0x40,0x86,0xed,0xdd,0x81,0x3c,0x0,0xf2,0xa2,0xa0,0x49,0x65,0xfc,0x38,0x80,0x67,0x4,0xbe,0x99,0x62,0x30,0x62,0xa6,0x4f,0x23,0xff,0xbc,0x59,0x7c,0xa,0xf0,0x47,0x4,0x7c,0x31,0x9,0xf8,0x56,0x2e,0x85,0xf8,0x4b,0x29,0x0,0xe2,0x7,0x96,0x2d,0xa6,0xc0,0x92,0x45,0x34,0x6,0xe2,0xb3,0x1b,0x89,0x6,0xe5,0xcf,0xa3,0xe0,0xbc,0xb9,0x34,0x2e,0x67,0xe,0x8d,0xcb,0x9e,0x4d,0xc1,0x59,0xb3,0x28,0x38,0x53,0x30,0x2e,0x63,0x16,0x8d,0x67,0xa4,0x83,0xb4,0x59,0x34,0x21,0x6d,0x26,0x4d,0x48,0x9d,0x49,0x13,0x19,0x29,0x36,0x26,0x25,0x5b,0x13,0x92,0x3c,0xcb,0x48,0x92,0x8d,0x50,0x57,0x49,0x34,0x7d,0x6e,0x92,0xda,0x26,0xb7,0x46,0x9f,0xd,0x55,0x76,0x4e,0xaf,0x94,0xbe,0xc7,0x28,0x7d,0x1c,0x56,0x7a,0xb6,0xda,0xc7,0xca,0xd5,0x9e,0x63,0x14,0x3f,0x48,0x15,0x3f,0xd2,0x5e,0x7c,0xbe,0xe2,0x2b,0xe3,0xbe,0x26,0xbe,0x8f,0x22,0xbe,0x57,0x8,0x13,0x9f,0xcb,0x4f,0x9e,0x13,0xab,0xdc,0x1,0x18,0x95,0x38,0xc,0x40,0xb2,0x7d,0x0,0x94,0xe7,0x7,0xda,0x2,0xc0,0x4e,0x9,0x22,0x0,0x13,0xd9,0x99,0x80,0x4a,0x6c,0x3,0xf0,0xcd,0x14,0x5d,0xcf,0xaf,0x8,0xf4,0xcb,0xc1,0x36,0xa0,0x60,0xe,0xf9,0xb1,0xad,0x40,0xe9,0x42,0xf2,0x2d,0xbb,0x8f,0x2,0xca,0x16,0x51,0x60,0x29,0xc0,0xaa,0x1f,0x58,0xb4,0x80,0xc6,0x14,0xcc,0xe7,0x4f,0x15,0x1e,0x9b,0x3b,0x87,0x82,0x75,0xf1,0x67,0xd2,0xd8,0x8c,0x3e,0xa,0x4a,0x9f,0x41,0x63,0xd3,0x4,0xc1,0xa9,0x33,0x68,0x1c,0x23,0x45,0x30,0x3e,0x99,0xd1,0x2b,0x48,0xea,0xa5,0x9,0x2a,0x89,0x90,0x2a,0x71,0x86,0x43,0x26,0x39,0x43,0x11,0x34,0x44,0xa2,0xfe,0xf3,0xa4,0x61,0xd3,0x6b,0x43,0x5d,0xd9,0x15,0x26,0xa8,0xc2,0x2b,0xd2,0x8f,0x8b,0x15,0xab,0x7d,0x30,0x93,0x3e,0x46,0x4a,0xaf,0x8a,0x1f,0x25,0xc4,0xf,0x94,0xfb,0xfc,0x0,0x2e,0xbf,0x69,0xdc,0xf,0x53,0xf6,0xf9,0xfa,0xb8,0x2f,0x57,0x7c,0x55,0xfc,0x49,0x55,0x4c,0x7e,0x50,0xe9,0xe,0xc0,0xa8,0xc4,0x2e,0x0,0xf2,0x2c,0x80,0xb7,0x32,0x1,0xa8,0xf8,0xa5,0xd9,0x1e,0x1e,0xa2,0x1d,0xc,0x64,0xc7,0x1,0xd8,0x99,0x80,0xd0,0x4a,0xb1,0xd,0x88,0xaa,0x23,0x9f,0xe4,0x29,0xe4,0x97,0x85,0x6d,0x40,0xee,0x2c,0xf2,0x43,0x4,0x7c,0x8b,0xe6,0x91,0x6f,0x31,0xa6,0x81,0xe2,0x5,0x14,0x50,0x38,0x9f,0x2,0xb,0xe6,0xf1,0x1b,0x88,0x6,0x41,0xfc,0xb1,0x39,0x10,0x3f,0x7b,0x16,0x8d,0xcd,0x64,0xd2,0xf7,0xd2,0x98,0xb4,0x1e,0x41,0x6a,0x37,0x8d,0x49,0xe9,0xa6,0x20,0x30,0x36,0x59,0x92,0xd4,0x4d,0xc1,0x8c,0xc4,0x6e,0x1a,0xa7,0x92,0x20,0x18,0xaf,0x11,0x6f,0xcd,0x4,0x87,0xf4,0xe8,0x98,0x45,0xb5,0xa7,0x5b,0xc7,0xf1,0xef,0xd7,0xad,0x8,0x6e,0x12,0x5d,0x17,0x7e,0x9a,0x4d,0xf8,0xd8,0x2e,0x6b,0xe9,0xa3,0x99,0xf4,0x42,0xfc,0x31,0xce,0xc4,0xf,0xb7,0x89,0xef,0x78,0x9f,0x5f,0x23,0x57,0x7d,0x83,0xf8,0x88,0x37,0xa3,0xc2,0x1d,0x80,0x51,0x89,0xa3,0x0,0xf8,0x98,0xde,0x17,0x60,0xe,0x80,0x3e,0x5,0xc8,0xb3,0x1,0xec,0x8a,0xc0,0x90,0x72,0xf2,0xc0,0x36,0xc0,0x83,0x6d,0x3,0xd8,0x15,0x81,0xd8,0x6,0xf8,0x65,0xf5,0xf2,0x77,0x7,0xfa,0xe6,0xcf,0x22,0xdf,0x82,0xd9,0x14,0xc0,0x8e,0xb,0xb0,0xfb,0x6,0xe6,0xce,0xa6,0xc0,0x9c,0x59,0xe2,0x61,0x22,0x10,0x7f,0x4c,0x46,0x2f,0x5,0xa6,0x75,0x53,0x40,0xea,0x74,0xa,0x48,0xc1,0xf6,0x21,0x79,0x1a,0x5,0x24,0x75,0x71,0x2,0x13,0xbb,0x68,0x4c,0xe2,0x34,0x41,0xc2,0x34,0xa,0x4a,0xe8,0xa2,0xa0,0xf8,0x2e,0x1a,0xab,0x12,0x27,0x8,0x56,0x89,0x55,0x81,0x64,0x71,0xa,0xb1,0xce,0x19,0x7f,0x17,0xb0,0xfe,0xbd,0xbb,0x74,0x82,0x55,0xe1,0xc1,0x58,0x47,0xd2,0x47,0x31,0xe9,0x85,0xf8,0x1,0x4e,0xc5,0x6f,0x74,0xb0,0xcf,0x77,0x2a,0x3e,0xe2,0xcd,0x28,0x77,0x7,0x60,0x54,0xe2,0x65,0x11,0x0,0xfd,0xbd,0x1,0xc9,0xf6,0x53,0x80,0x7a,0xe7,0x60,0x7d,0x1b,0x90,0x23,0x2e,0x8,0x9a,0x54,0x46,0x1e,0x98,0x2,0x3c,0xb0,0xd,0xf0,0x8a,0x6b,0x26,0xef,0x94,0xa9,0xe4,0x93,0x31,0x9d,0xbc,0x31,0x9,0xf8,0x62,0x3b,0xe0,0x97,0xdb,0x7,0xf1,0x67,0x51,0x40,0xce,0x4c,0xa,0xc8,0xee,0xa3,0xc0,0xcc,0x19,0x14,0x8,0xf1,0x3,0x20,0xbe,0x7f,0xea,0x34,0xf2,0x4d,0xee,0x22,0xdf,0xa4,0x4e,0xf2,0x4d,0x9c,0x4a,0x7e,0x9,0x2,0xff,0xf8,0xa9,0x14,0xa0,0x10,0x18,0x27,0x89,0x9d,0x4a,0x63,0x62,0xa7,0xe8,0x4,0x31,0x62,0x18,0x10,0xc8,0x82,0x60,0x89,0xfa,0xf9,0xf0,0xd0,0x4,0x35,0xff,0xf3,0xc8,0x18,0xab,0xa1,0xcb,0x3e,0x95,0x82,0x98,0xf0,0x92,0x31,0xaa,0xf4,0x51,0x72,0xb5,0x8f,0xd4,0xa4,0xd7,0xf6,0xf8,0x2d,0xe4,0xa7,0x88,0xef,0x1b,0xa6,0x89,0x2f,0xe4,0xb7,0x12,0x5f,0xee,0xf3,0x8d,0xe2,0x73,0xf9,0x11,0xed,0x9,0xf8,0xff,0x36,0xbe,0xcc,0x1d,0x80,0x51,0x9,0xb,0x80,0x97,0x95,0xfc,0x43,0x1c,0x14,0xd4,0xb6,0x1,0xda,0x29,0x41,0x76,0x26,0x60,0x42,0x29,0xa6,0x0,0x7c,0x53,0xb1,0x63,0x1,0x31,0xd,0xe4,0x95,0xd4,0x46,0xde,0x69,0x9d,0xe4,0x9d,0x31,0x8d,0x7c,0x32,0xbb,0xc5,0x96,0x80,0x4d,0x4,0x99,0x3d,0xe4,0x87,0x30,0xf8,0xa7,0x4d,0x27,0x3f,0x26,0x7e,0xa,0x13,0x1f,0xb1,0x48,0x9c,0x42,0xde,0xf1,0xed,0xe4,0x1d,0xd7,0x4e,0x3e,0xc0,0x37,0xb6,0x9d,0xfc,0x80,0x3f,0xa7,0x83,0x13,0x10,0xd3,0xae,0x13,0x18,0x6d,0xcf,0x18,0x8d,0x28,0x23,0x41,0x96,0x74,0x48,0xcc,0xff,0xec,0x84,0x68,0x95,0x29,0x23,0x66,0xc,0xa7,0xc3,0x42,0x78,0x7b,0xe9,0xad,0xc4,0xf7,0x75,0x24,0xbe,0x61,0x9f,0x5f,0xad,0xac,0xfa,0x95,0x52,0x7e,0x3b,0xf1,0x41,0x29,0xc3,0x1d,0x80,0x51,0x89,0x9d,0xfc,0x29,0x16,0x11,0x50,0xc2,0xc0,0x22,0x60,0x3e,0x25,0xc8,0x3,0x90,0x2f,0xdf,0x18,0xc4,0xa6,0x80,0xa,0x7e,0x1c,0xc0,0x33,0xa1,0x99,0x3c,0x93,0xdb,0xc9,0x2b,0x6d,0x2a,0xe8,0x24,0x1f,0x6c,0x9,0x7c,0xd3,0x31,0x11,0xa4,0x75,0x91,0x77,0x6a,0x27,0x79,0x25,0xe3,0xdf,0x27,0x75,0x60,0xbb,0xd0,0x41,0xde,0x9,0xf8,0x79,0x71,0x6d,0xe4,0x15,0xdb,0x4a,0x5e,0x31,0x8c,0x16,0xf2,0x8e,0x6e,0x21,0x5f,0xe0,0x17,0xdd,0x4a,0x7e,0xf8,0x77,0xfc,0x23,0x23,0xa,0x42,0x68,0x44,0x42,0x10,0x27,0x4,0x3a,0x61,0x8c,0x4a,0x84,0x9,0xe5,0xc7,0x98,0x8c,0x63,0x86,0x1,0x97,0x57,0x15,0x59,0xc6,0x27,0xd0,0x8a,0x48,0xa3,0xec,0x5c,0x78,0xb3,0xf4,0x11,0x8a,0xf4,0xc0,0xd7,0xa9,0xf8,0x8e,0xc6,0x7d,0x2b,0xf1,0xcb,0x55,0xf1,0x31,0xbd,0x31,0x4a,0xdc,0x1,0x18,0x95,0x78,0xa9,0x82,0x6b,0x1,0xb0,0xda,0x16,0x68,0xc7,0x7,0x92,0x8d,0x67,0x3,0x78,0x0,0xb2,0xe5,0x65,0xc1,0x45,0xfc,0x6c,0x0,0x3f,0x16,0x10,0x59,0x4b,0x9e,0xb1,0xd,0x3c,0x2,0x1e,0x88,0x80,0x47,0x4a,0x7,0x79,0xa6,0x4c,0xe1,0xdb,0x2,0xaf,0xe4,0x29,0xe4,0x99,0xd4,0x8e,0x1f,0x6b,0x23,0x8f,0xf8,0x56,0xf2,0x88,0x6b,0x21,0x8f,0x18,0xfc,0xbc,0xe8,0x26,0xf2,0x8c,0x46,0x34,0xa2,0xf0,0x31,0xb2,0x91,0xbc,0x22,0x9b,0xc8,0x27,0x8a,0x81,0x6f,0x7e,0x6,0xfe,0x59,0xc3,0x2f,0x42,0x21,0x5c,0xe0,0xef,0x2,0x1,0x3a,0xcd,0xca,0xc7,0xa1,0x10,0xef,0x9c,0x63,0xfb,0x6f,0x95,0x40,0x4e,0xab,0xed,0x92,0x5b,0x2b,0x22,0x1d,0x7c,0xae,0xcb,0x2e,0x85,0x97,0x68,0xd2,0xb3,0xbf,0xd7,0xc8,0xc4,0xaf,0x1a,0x5a,0x7c,0x2e,0x7f,0x89,0x86,0x3b,0x0,0xa3,0x12,0x2f,0x79,0x7f,0x0,0xaf,0xe4,0x21,0x26,0x0,0xd3,0xdb,0x85,0xd5,0x6d,0x40,0xa0,0x3c,0x1d,0xc8,0xdf,0x17,0x20,0xa7,0x80,0xf0,0x6a,0x8,0x5d,0x47,0x1e,0x88,0x80,0x47,0x2,0x4,0x4f,0x6c,0x23,0x4f,0x4e,0xab,0xf8,0xe7,0x78,0x8,0x1f,0x7,0x62,0x99,0xf8,0x8d,0xe4,0x11,0x5,0x22,0x1b,0xb8,0xf8,0x1e,0x11,0xf8,0x35,0x11,0xf5,0xe4,0x89,0x8f,0x5e,0xc0,0x1b,0xf8,0x68,0x84,0x2b,0x84,0x35,0x40,0xa,0x23,0x7e,0x1a,0x93,0x95,0xcf,0xb5,0x7f,0x36,0xff,0x3b,0x89,0xbf,0x43,0x1a,0xc5,0x35,0xf3,0xf2,0xa3,0x4e,0x78,0xa3,0x45,0x54,0x9a,0x1d,0xd0,0x62,0x10,0xdb,0x8c,0x5f,0xb8,0x2a,0xbb,0x5c,0xe9,0x15,0xe9,0x7d,0x38,0x9a,0xf4,0xf8,0x5a,0xd8,0x89,0x5f,0xab,0x88,0x2f,0xe5,0x9f,0xa4,0x1e,0xe0,0x1b,0x52,0x7c,0x80,0xff,0x67,0xc1,0xc5,0xee,0x0,0x8c,0x4e,0xd4,0x0,0xa4,0xc,0x3f,0x0,0xe6,0x63,0x1,0xfc,0xb2,0xe0,0x7c,0xfd,0xcd,0x41,0xec,0x38,0x80,0x47,0x84,0x12,0x81,0xb8,0x26,0x29,0x3d,0x3e,0xc6,0x42,0xf2,0xe8,0x7a,0x48,0xf,0x22,0x41,0x44,0x2d,0x17,0x9e,0x13,0xe,0xc2,0xea,0x74,0x3c,0xc3,0xf0,0xd,0x8e,0x8f,0xde,0x2a,0x93,0x6d,0xf8,0xa8,0xf0,0x6b,0xda,0x6b,0x39,0xbe,0x23,0xa2,0x8e,0xfc,0x80,0xaf,0x99,0xc9,0x75,0xfc,0xd,0x33,0x46,0xc4,0xa9,0x36,0x43,0x74,0x64,0x2c,0x7c,0xe5,0x47,0x7e,0x90,0x2e,0xdc,0x1e,0x5f,0x33,0x61,0x66,0xe1,0xa5,0xf4,0x61,0xca,0x6a,0xaf,0x88,0xef,0xa5,0x49,0xef,0x4c,0x7c,0x4d,0xfe,0x21,0xc5,0x2f,0xd2,0x70,0x7,0x60,0x54,0xe2,0xe5,0x6a,0x0,0x92,0x2c,0xe,0x6,0x66,0x2a,0x97,0x5,0x8b,0x5b,0x85,0xb1,0xe3,0x0,0x1e,0x61,0xe2,0x94,0xa0,0x47,0x14,0x4,0x8f,0x46,0x4,0x62,0x1a,0xa4,0xf8,0x90,0x3b,0xb2,0x4e,0x88,0x1f,0x5e,0x23,0x8,0x93,0x4c,0x66,0xd4,0xa,0x42,0x6b,0xc8,0x33,0x14,0xdf,0xdc,0xec,0x11,0xe4,0xa1,0x1a,0xd5,0x36,0x42,0xaa,0xb1,0x2,0x5a,0xe3,0x63,0xfa,0x5c,0x67,0x92,0x9,0xf3,0x8f,0xeb,0xd4,0x58,0x50,0x2b,0x8,0xd5,0x10,0x81,0xe0,0x1f,0x9d,0x4,0xc2,0x88,0x1c,0xe5,0xe5,0xe7,0xba,0xe8,0x2a,0xec,0x34,0x9e,0x49,0x7a,0x76,0x70,0x4f,0x15,0xdf,0x33,0xc4,0x26,0xbe,0x87,0x95,0xf8,0xc6,0x3,0x7c,0x46,0xf1,0x83,0x8b,0x25,0x9a,0xfc,0x85,0xc,0x77,0x0,0x46,0x25,0x2e,0x6f,0x1,0xb4,0x29,0x40,0xbb,0x42,0x50,0xde,0x42,0x3c,0x30,0xcb,0x76,0x51,0xd0,0xb8,0x2,0x79,0x4d,0x40,0xa5,0x8c,0x40,0xb5,0x90,0x9d,0x4b,0xaf,0x9,0x5f,0x2d,0x7e,0x8c,0x31,0x19,0x9f,0x87,0x56,0x9,0x42,0xf0,0x6b,0x42,0xaa,0x14,0x2a,0x39,0x9e,0x12,0xaf,0x49,0x4e,0x98,0x68,0xc3,0x5b,0xf9,0x38,0x22,0x26,0x69,0x54,0x29,0x54,0xb,0xf4,0xb8,0xd4,0xe8,0x58,0xc5,0x41,0x47,0xa,0xed,0xc,0x6f,0x3b,0xe1,0xb1,0xd2,0xeb,0xd2,0x2b,0xe2,0x4f,0x1a,0x4a,0x7c,0xf3,0x1,0x3e,0xbb,0x51,0xdf,0x2c,0x3e,0xfe,0x9f,0x31,0xa,0xdc,0x1,0x18,0x95,0x8c,0x24,0x0,0x3e,0xca,0x71,0x0,0x2d,0x0,0x1,0xa6,0x37,0x7,0x4d,0x14,0x67,0x3,0xf4,0x8,0x30,0xc2,0xe5,0xc7,0xb0,0x4a,0xf1,0xef,0xd9,0x8f,0xb3,0xd3,0x86,0x4c,0xf2,0x49,0x15,0x36,0x26,0x96,0xb,0x26,0x95,0xdb,0x3e,0x7,0x9e,0x2a,0x13,0x6c,0x78,0x39,0xa4,0xcc,0xc6,0xf8,0x21,0xe0,0x3f,0xcf,0xc1,0xef,0x3,0xb9,0x6c,0xc8,0xc8,0xf0,0xe8,0x54,0xe9,0x18,0xe3,0x50,0xa3,0x20,0x4f,0xcb,0x85,0xaa,0xd4,0xd9,0x8b,0xae,0x11,0x62,0x21,0x7d,0x88,0x3a,0xe6,0xdf,0x4d,0xf1,0xb,0x24,0x98,0xda,0x82,0xf2,0xdd,0x1,0x18,0x9d,0x8c,0x70,0x2,0x50,0xa7,0x0,0x75,0x1b,0x30,0x46,0x1e,0xb,0x60,0xc7,0x1,0xd8,0xc1,0x40,0x36,0x9,0x68,0x21,0x30,0x48,0x2f,0x5,0x67,0x3f,0x87,0xc5,0x82,0x9d,0x3d,0x60,0xd7,0x11,0xb0,0xcf,0x27,0x94,0x3a,0x7,0xdf,0xe0,0x9e,0xce,0x18,0xa7,0x7d,0x2c,0x21,0x2f,0x97,0x29,0x15,0x8c,0x37,0xa3,0x85,0xc2,0x49,0x18,0x4c,0x51,0xd0,0xce,0xc3,0xb3,0xad,0x8a,0xa0,0x66,0x58,0x78,0x9a,0x56,0x7a,0x21,0x7d,0x95,0x94,0x7e,0x58,0xa7,0xf4,0x86,0x27,0x7e,0x50,0xbe,0x8a,0x3b,0x0,0xa3,0x13,0xf9,0xa0,0x10,0xaf,0x44,0x65,0x1a,0x50,0x64,0xb7,0xbc,0x52,0x50,0xc2,0xa7,0x80,0x34,0xe5,0x9a,0x0,0x65,0xa,0x18,0x5f,0x64,0x13,0x9a,0x87,0x40,0x8a,0x6f,0x27,0x7d,0x89,0x38,0x73,0xc0,0xae,0x21,0x60,0xbf,0x66,0x7c,0x89,0x44,0xfb,0x77,0x25,0xf6,0xb0,0x6f,0x6c,0x89,0xa7,0x15,0xc1,0x43,0x51,0x64,0xc2,0xe2,0xe7,0xe8,0xbf,0x5f,0x89,0x11,0x43,0x6c,0xca,0x30,0x81,0x94,0xd9,0xa6,0x11,0x3e,0x9d,0x54,0x48,0x2a,0xf9,0x41,0x39,0x41,0x95,0x89,0x6a,0x27,0x28,0xc2,0x5b,0xad,0xf6,0xc3,0x3a,0xb2,0x5f,0x6c,0x3a,0xc0,0xe7,0x54,0x7c,0xfc,0x3f,0xcb,0x63,0xb8,0x3,0xe0,0x46,0xe2,0x68,0x5b,0xe0,0x65,0xba,0x52,0xd0,0xea,0x60,0xa0,0x76,0xd7,0x60,0xed,0x94,0x20,0x13,0x7c,0x62,0x89,0x51,0x7a,0xf6,0xcf,0xba,0xf8,0x45,0xe2,0xfa,0x81,0x71,0x85,0xb6,0x6f,0x54,0x4e,0x81,0xf8,0x38,0xae,0xc8,0x9e,0x60,0x2b,0xc4,0xaf,0xf3,0xd4,0x18,0x3b,0x14,0x5,0x12,0x7,0x3f,0xce,0x7f,0x1f,0x8b,0x50,0x98,0xc3,0xa0,0x8,0x68,0xb,0x42,0x99,0x5d,0x10,0x84,0xbc,0x95,0x42,0xe8,0xa1,0x30,0xaf,0xf4,0xaa,0xf4,0xe6,0x83,0x7b,0x4e,0xc5,0x2f,0x52,0xf7,0xf8,0x26,0xf1,0xf3,0x34,0xf1,0x41,0x2e,0xc3,0x1d,0x0,0x37,0xa,0x56,0x67,0x6,0xec,0xa6,0x1,0xe5,0xe,0xc2,0x86,0x29,0x20,0xc7,0x76,0xc7,0x60,0x4e,0xb1,0x1c,0xdf,0x4b,0x94,0x95,0x5e,0x93,0xbe,0x40,0x9c,0x39,0x8,0x56,0xf6,0xa3,0xec,0x40,0x22,0xff,0xa8,0x51,0x30,0x34,0x41,0x46,0x3c,0xf1,0x4d,0xae,0xe2,0xa1,0xfe,0xf3,0x98,0x7c,0xbb,0x1f,0xb7,0xa7,0x40,0xa0,0xff,0x37,0xd4,0x38,0x49,0xb9,0xf4,0x49,0x44,0xd9,0x6f,0xab,0x62,0x32,0x51,0x99,0xb0,0xba,0xbc,0xe5,0x46,0xa9,0x87,0x42,0xfd,0x75,0xe3,0x9d,0x89,0xef,0xe2,0xb8,0x6f,0x14,0x5f,0x10,0x98,0xe3,0xe,0x80,0x1b,0x5,0x6d,0xa,0x70,0x36,0x1,0xa8,0xef,0x13,0x30,0x4f,0x1,0xda,0x6d,0xc3,0xd9,0x19,0x1,0x26,0xba,0x26,0x3c,0xa7,0xc0,0x26,0x3e,0xfb,0x79,0x6c,0x62,0xe0,0xe4,0x49,0xd4,0xcf,0x35,0xf2,0x2d,0x90,0xdf,0xc8,0x86,0xd5,0xcc,0xa,0xed,0x9b,0x3c,0x97,0x3c,0x3,0x8d,0x1f,0x75,0x74,0x19,0x2c,0x7e,0xbd,0xfa,0xdf,0xd4,0x84,0x1a,0x56,0xc,0x1c,0x5,0xc1,0x14,0x5,0x3b,0xca,0x14,0xe1,0x4d,0xd2,0x8f,0x2f,0x19,0x7a,0xc5,0x77,0x38,0xee,0x5b,0x8a,0xaf,0xe1,0xe,0x80,0x1b,0xd,0xed,0xf9,0x81,0x89,0xca,0x14,0x30,0x54,0x0,0xd4,0xad,0x40,0x86,0x7c,0x9b,0xb0,0xf6,0x4,0x21,0x45,0x78,0x4d,0x7a,0x55,0x7c,0xf6,0x73,0x39,0xda,0x37,0xa6,0xf9,0x9f,0x87,0x81,0x59,0x68,0xdb,0x37,0x36,0xfe,0x3c,0xca,0x47,0x47,0x4,0x5a,0x61,0x11,0x86,0xa1,0x62,0x30,0x4e,0x8d,0x41,0xb1,0x93,0x18,0x98,0xc2,0x60,0x29,0xbb,0xd5,0x4a,0xaf,0x1e,0x3,0x19,0xa6,0xf8,0x66,0xe9,0xc7,0x98,0xbe,0x3e,0xfc,0x16,0x6f,0xd9,0xee,0x0,0xb8,0xd1,0x50,0x9e,0x1c,0xc4,0xa5,0x57,0x2,0xa0,0x6f,0x3,0x94,0x9b,0x86,0x18,0x1e,0x2f,0x9e,0xae,0x5c,0x17,0xa0,0xdd,0x31,0xc8,0x24,0xbc,0x2a,0xbd,0xf8,0xe6,0xb3,0x27,0x40,0xfb,0xdc,0x91,0x9c,0xe,0x8,0xc8,0xb6,0xc7,0x5f,0xfb,0x98,0x65,0x4d,0x80,0x86,0xe9,0xd7,0x99,0xff,0xfb,0x6a,0xc,0xcc,0x53,0xc9,0x58,0x2d,0x72,0x85,0xa6,0x63,0x17,0x8e,0x62,0xe0,0x2c,0xa,0x66,0xe1,0x4b,0x4c,0xbf,0x8f,0x49,0xfa,0x91,0xad,0xf8,0xc6,0xaf,0x75,0x40,0x96,0x3b,0x0,0x6e,0x2c,0xf0,0xd2,0xee,0x10,0xa4,0x5,0x20,0xd1,0x78,0x6c,0x40,0x7f,0xa8,0x68,0xb2,0xf1,0x9e,0x1,0x7c,0x2b,0xa0,0xbc,0x5b,0x50,0x3b,0x45,0x68,0x16,0x3f,0x20,0xcb,0x1e,0xed,0x29,0x44,0xda,0x3d,0x7,0x2,0xd4,0x6f,0x54,0x2b,0xd4,0x5f,0xeb,0x88,0x4c,0x23,0x7e,0xa,0xe6,0x1f,0xb3,0xa,0x83,0x65,0xc,0x86,0x11,0x2,0x7d,0x2a,0x30,0xc7,0xa0,0xd8,0x42,0x72,0x47,0xc2,0x17,0x9b,0xe,0x80,0xde,0x55,0xf1,0xb5,0xaf,0x9b,0x3b,0x0,0x6e,0x2c,0xd0,0x26,0x0,0xf5,0x81,0xa2,0x5e,0xa6,0x9,0x40,0x3f,0x2b,0xa0,0xdc,0x39,0x48,0xbf,0x79,0xa8,0x3c,0x26,0xa0,0xdd,0x48,0xd4,0xa1,0xf4,0x9a,0xa4,0x19,0xb6,0x1b,0x8e,0x98,0x85,0x1c,0x12,0x93,0xd8,0x3a,0x19,0x36,0x7c,0x95,0x8f,0xbe,0x19,0xc6,0x1f,0xd3,0x31,0xc7,0x41,0xf9,0x73,0xaa,0x21,0x50,0xb7,0x29,0xe6,0x63,0x15,0x76,0xdb,0x3,0x7,0x67,0x34,0xec,0x44,0xb7,0x12,0xde,0x24,0xbd,0x7e,0xc0,0x74,0xa4,0xe2,0x5b,0x5,0x33,0x93,0x7,0xe0,0x5f,0xef,0xf9,0x37,0x9c,0x9b,0xf7,0x1e,0xea,0xc3,0x44,0xf9,0x3f,0x3b,0xb8,0x77,0x80,0x7a,0xf7,0x20,0xff,0x74,0x45,0xe6,0xc,0x32,0xdc,0x4d,0xd8,0x6a,0xa5,0xf7,0xcf,0xb0,0x5d,0x55,0x38,0x94,0x94,0x6,0xb1,0x33,0xad,0x7f,0xbe,0xaf,0x99,0xf4,0xe1,0xe1,0xe8,0xbf,0xed,0x34,0x4,0xe,0x22,0x10,0xa4,0x9c,0xc5,0x8,0x36,0xc5,0x40,0xb,0x42,0xb0,0x59,0x74,0x47,0xd2,0xdb,0x5d,0xb9,0x77,0xb7,0xc4,0xd7,0xbe,0x9e,0x2f,0xb3,0x0,0x7c,0xfe,0x9e,0x7f,0xb3,0xb9,0x79,0x1f,0x90,0x68,0x3c,0x36,0x60,0x77,0x5a,0x50,0xbd,0x75,0x98,0x76,0x3b,0xf1,0x74,0x25,0xa,0x99,0xc6,0x30,0xe8,0xa2,0xa9,0x22,0x6a,0x38,0xa,0x82,0x3,0x9c,0xc9,0xed,0x93,0xe6,0x18,0x1e,0x2e,0x67,0xff,0x6d,0xab,0x89,0x20,0x7b,0x78,0x21,0xb0,0x3a,0x9d,0x69,0x96,0xdb,0xe,0xf3,0xa9,0x4e,0xb,0xe9,0x35,0x2c,0xc5,0xb7,0x18,0xf3,0xd,0x93,0x96,0xdd,0x74,0xf4,0xbf,0x2c,0x0,0x37,0xee,0xfd,0x37,0xd7,0x7,0x86,0xbf,0x83,0x57,0xc1,0xcb,0xe0,0x95,0xf,0x1e,0x89,0xaf,0x60,0x32,0x0,0x49,0x20,0xf9,0x15,0x4,0x0,0xa4,0xbc,0x82,0x29,0x0,0xa4,0xbe,0x2,0xa1,0x5e,0x81,0x44,0x20,0x4d,0x7c,0xae,0xc1,0xfe,0xd9,0x3f,0x3,0x1f,0x33,0xc4,0x8f,0xf3,0x7f,0x9f,0x2e,0x51,0x3f,0x97,0xf8,0x39,0xc1,0x37,0xfd,0xad,0x11,0xc9,0x3e,0x64,0x8,0x94,0x20,0x58,0xc5,0xc0,0x70,0x7c,0x62,0x38,0xdb,0x2,0xab,0x18,0xc,0x75,0x7d,0x83,0xf2,0xf3,0xac,0xc4,0x1f,0x6a,0xc5,0x37,0xee,0xef,0x9d,0x89,0xaf,0xf1,0x3d,0x16,0x80,0x2d,0xe0,0xff,0xde,0x3,0xf2,0x7c,0x10,0xf8,0x4f,0x50,0x3,0xa,0x3f,0xd0,0x78,0x25,0x82,0xa4,0x42,0x4,0xa0,0x10,0xf2,0xdb,0xf0,0x4d,0xb3,0xc6,0x8f,0x91,0x2e,0xf0,0x4d,0x55,0x7e,0x2c,0x5d,0xf9,0x98,0x6e,0xfb,0x67,0xed,0xe7,0xea,0xbf,0x46,0xff,0xbc,0x8,0x9f,0x7f,0x5a,0x97,0xd5,0xa1,0xd4,0xa9,0x23,0xc0,0x7c,0x2b,0x74,0x27,0x11,0x18,0x6a,0x1a,0x70,0x14,0x82,0x20,0x45,0x6e,0x3b,0xc9,0x87,0xb9,0xda,0x8f,0x19,0xf2,0xc0,0x9e,0xe9,0xc0,0xa7,0xa3,0xc9,0x89,0xff,0xfd,0x1e,0x65,0x1,0x68,0x6,0x7f,0x78,0xf,0xc8,0xf3,0x41,0xe0,0x36,0xf0,0x2,0x1e,0xee,0xd7,0x5d,0x7e,0xf9,0xa4,0x79,0x40,0x4c,0xc6,0x56,0x7b,0xf9,0x9d,0x88,0xed,0x2d,0x19,0x51,0x8,0x86,0x13,0x1,0x7,0xd3,0x80,0xdd,0x85,0x4e,0x56,0x17,0x39,0x39,0xfa,0xb1,0x61,0x9d,0xc3,0x77,0x32,0xe6,0x3b,0x95,0x5e,0xe3,0xef,0xf8,0xfb,0x6d,0x66,0x1,0x88,0x0,0xff,0xe1,0x71,0xef,0xe5,0xf9,0x20,0xb0,0x11,0x78,0x70,0xdc,0xaf,0xbb,0xff,0x62,0x11,0xf0,0x49,0x6b,0x81,0xa8,0x6f,0xe,0x5b,0x68,0xfd,0xb2,0x66,0x13,0xef,0x48,0x4,0x1c,0x6d,0xb,0x9c,0x5,0x21,0xd7,0x5a,0x78,0xbb,0xd5,0xde,0x42,0x7c,0xbb,0x31,0x7f,0x48,0xe9,0x49,0x7f,0xda,0x93,0x6f,0xda,0xb,0xa0,0xc2,0xc3,0xc3,0x2b,0x81,0x7d,0xc3,0xf6,0x7b,0xdc,0x7b,0x79,0xde,0xef,0xbc,0x1,0x5a,0x81,0xb,0xdf,0xd1,0xee,0x97,0x4b,0x2f,0x9f,0x54,0x46,0x32,0xf8,0xa5,0x63,0x79,0x1d,0x8,0xcf,0xaf,0x69,0x50,0xdf,0xe8,0xe4,0x24,0x6,0xbe,0xda,0x47,0x27,0x11,0xb0,0x3a,0x4b,0x60,0x9e,0x6,0xf4,0x10,0xc,0xf7,0xa,0x47,0xf5,0x9a,0x9,0x17,0xc4,0xb7,0x3c,0x8b,0x62,0x29,0xbd,0xca,0x3f,0xe0,0xef,0x39,0x56,0xac,0x56,0x9e,0x9,0x75,0x1e,0xee,0x6d,0xc0,0x9d,0xf2,0x2b,0x90,0xcc,0xbf,0x9e,0xee,0xd7,0x3b,0xf3,0x12,0x1,0x18,0xb,0xbe,0x31,0xec,0x95,0x5e,0x3f,0x6b,0xa1,0x62,0x35,0x11,0xa4,0xd8,0x47,0x60,0xa8,0x63,0x2,0xfa,0x34,0xe0,0xe8,0x22,0xa2,0x6c,0x53,0x4,0xac,0xe4,0x76,0x22,0xbc,0xb3,0x31,0x7f,0x38,0x2b,0xbe,0xaf,0xa5,0xf8,0xec,0xef,0x86,0xf1,0x3f,0x75,0x25,0xf0,0xd0,0x2,0x10,0x8,0x9e,0xf4,0xb8,0xf7,0x12,0xbd,0x9f,0xf9,0x26,0x18,0xcb,0xbf,0x9e,0xee,0xd7,0x3b,0xf3,0x62,0x1,0xf0,0x48,0x61,0x1f,0xaf,0x3a,0x97,0xde,0x2c,0xfc,0x70,0x70,0x14,0x81,0xd4,0x61,0x46,0xc0,0x62,0x1a,0x30,0x6c,0xd,0xd4,0x2d,0x82,0xf9,0x2a,0x43,0xf3,0x25,0xd1,0x8e,0x2e,0x98,0x1a,0xae,0xf8,0x96,0xd2,0xdb,0xf0,0x49,0xfd,0x1,0x88,0x11,0x5f,0x4f,0xcf,0x4,0x8d,0x36,0xf,0xf7,0x14,0x70,0x27,0x5c,0xe5,0xdf,0xa4,0xec,0x6b,0xe9,0x7e,0xbd,0x33,0x2f,0x1f,0xc8,0xef,0xcd,0x59,0x3f,0x6c,0xf9,0xbd,0xd4,0xd1,0xdf,0xf4,0xb9,0xd5,0x54,0x30,0xd2,0x49,0xc0,0xcf,0x74,0x9a,0xd0,0x19,0x86,0x4b,0x9c,0x1d,0xfc,0x1c,0xab,0xcb,0x99,0x5d,0x96,0xde,0x4e,0x7c,0xc6,0xdb,0x60,0xbd,0x9c,0xa6,0xe4,0x17,0xd6,0x33,0x81,0xe1,0x7,0xae,0x78,0xdc,0x7b,0x91,0xde,0xaf,0xac,0x95,0x5f,0xc7,0x61,0x7c,0x27,0xbb,0x5f,0x23,0x7e,0x89,0x0,0x34,0x81,0x3f,0x5b,0x4a,0xef,0x65,0x21,0xbd,0xa3,0x18,0x38,0x62,0xd8,0x11,0x70,0x36,0xd,0xc,0x33,0x6,0xce,0xde,0x13,0x31,0xe2,0x15,0x5f,0x3d,0x8e,0x61,0x77,0x9c,0xe4,0xab,0x20,0xc4,0x26,0xbf,0xf6,0xf2,0x4c,0x60,0xb0,0x3d,0xac,0xfb,0xbd,0x1,0xae,0xf3,0x27,0x50,0xcb,0xbf,0x86,0xee,0xd7,0x3b,0xfb,0xf2,0x4e,0x66,0xc4,0x82,0x9f,0x39,0x14,0xdc,0x51,0x4,0xac,0xfe,0xbd,0xa3,0x20,0x8c,0x34,0x2,0xea,0x95,0x8e,0x7a,0x8,0x34,0x94,0xf7,0x47,0x38,0x93,0xde,0xd1,0xa5,0xce,0x43,0x1f,0xd8,0xb3,0x5a,0xf1,0xd5,0x83,0xa3,0xbf,0xc1,0xdf,0xad,0x4e,0x44,0x34,0xd9,0xf4,0x85,0xf5,0x4c,0xd0,0x60,0x47,0xb2,0x7f,0xe3,0x71,0xef,0xa5,0x7a,0x3f,0xf1,0x33,0x10,0xc7,0xbf,0x7e,0xee,0xd7,0x3b,0xfb,0x12,0x1,0x8,0x4,0x5f,0xb6,0x94,0xd9,0xcb,0x42,0xec,0xa1,0xc4,0xb7,0x8c,0xc0,0x10,0x1,0x18,0x49,0x8,0x1c,0xa1,0xbe,0x1f,0xc2,0xe5,0x23,0xfa,0xa9,0xf6,0xa8,0xd2,0xfb,0xe8,0x13,0x12,0x26,0xa6,0xe4,0xfb,0xf1,0xf7,0xf2,0xb4,0x97,0x5f,0x7b,0x79,0x26,0x4a,0x12,0x16,0x7a,0x88,0xcb,0x59,0xef,0xb5,0x58,0xef,0x17,0xbe,0xec,0x21,0xe,0xa4,0x3a,0xfb,0xd6,0x75,0xbf,0xee,0xc6,0x8b,0x7d,0xf3,0x7a,0x2,0xaf,0xe4,0x73,0x76,0xc2,0x3b,0x92,0xde,0xd9,0x54,0xe0,0x74,0x6b,0x30,0xc4,0x41,0x41,0xcb,0x8,0x58,0x6d,0xb,0xcc,0x41,0x30,0xfd,0xb3,0x6b,0xe7,0xef,0xad,0x47,0x7d,0xcb,0x53,0xa1,0xda,0xb1,0x8d,0xe4,0xbf,0x80,0xfd,0xf8,0xdc,0xcf,0xb1,0xfc,0xda,0xcb,0x2b,0x91,0xc1,0xae,0x66,0x5b,0x4,0x9e,0xf7,0xb8,0xf7,0x72,0xbd,0x1f,0x38,0xb,0xdc,0xfb,0xff,0x77,0xe3,0xe5,0x95,0xac,0xb1,0x4,0xfc,0x9f,0x53,0xd1,0x5d,0x19,0xf9,0x87,0x3a,0x1e,0x60,0xb5,0xd2,0xe,0x19,0x2,0x57,0xdf,0xd8,0x34,0x1c,0xe9,0xd3,0xec,0xa5,0xf7,0x35,0x8b,0x6f,0x38,0x2e,0xf2,0x3a,0xd8,0x87,0xbf,0x77,0xe0,0xd0,0xf2,0xeb,0x5f,0xe4,0x4,0x94,0x36,0xc1,0xd3,0xc3,0x33,0x61,0xa,0xf8,0x91,0xc7,0xbd,0x17,0xec,0xbd,0xcc,0x5b,0xa0,0x17,0xb8,0x3,0xf0,0x6e,0xbd,0x44,0x0,0xf2,0xc0,0xb,0x76,0x23,0xff,0x70,0xf,0xf4,0x39,0xfa,0x75,0x56,0xbf,0x56,0x3d,0x1e,0x30,0x54,0x4,0x1c,0x86,0xc0,0x5,0x1c,0x9f,0xbf,0xb7,0x5f,0xf5,0x7d,0xcd,0x2b,0xbe,0x81,0xdf,0xe2,0xef,0x73,0x3f,0xf0,0xe3,0x5f,0x33,0x97,0x5e,0x7c,0x2b,0x10,0xcf,0xbe,0xa9,0x33,0xc0,0x23,0x1e,0xe2,0x4a,0xb7,0x7b,0x2d,0xdb,0x7b,0x91,0x1f,0x82,0x28,0xe0,0xe2,0x17,0xd8,0xfd,0x1a,0xf1,0x4b,0x1c,0x7,0x8,0xc0,0x37,0xf5,0x93,0x4e,0xc7,0x7a,0x67,0xff,0xec,0xea,0x34,0xc0,0xef,0x7b,0x30,0xcc,0x49,0xc0,0xd5,0x18,0x38,0xfb,0xf5,0x4e,0xf,0xec,0xa5,0xaa,0x7b,0x7c,0x95,0xb7,0xf1,0x77,0xfb,0x1a,0xa8,0xc5,0xe7,0x4e,0xf6,0xfc,0x43,0xbe,0x72,0xb5,0x3,0x83,0x63,0xc0,0x2c,0xf0,0xff,0x76,0x0,0x88,0x7f,0x30,0xc,0x7c,0xa6,0x1b,0x2c,0xf8,0x1f,0x10,0x57,0x33,0x30,0xcb,0x41,0xa,0xcc,0x51,0x40,0x1f,0xc0,0xa4,0xc,0x29,0x4,0x98,0x94,0x83,0x81,0xf4,0x57,0xbc,0x83,0x81,0xe4,0x34,0xfb,0xc9,0xea,0xe,0x10,0x28,0x8,0x48,0xc2,0xaa,0xa8,0x19,0x1f,0x5b,0x73,0x1f,0xb5,0x8f,0xf,0xc3,0x7f,0x80,0xf8,0x22,0x10,0x67,0x33,0x30,0x29,0x9,0x3,0x31,0x3,0x18,0x53,0xc,0xc0,0x2d,0x1,0xf0,0xe0,0xa0,0x20,0x10,0x7,0x3,0xf1,0x32,0x6,0xc8,0xd2,0xd7,0x5f,0xc,0x3,0x9f,0x9,0x7,0x12,0x6f,0x67,0x80,0x6c,0xa6,0x22,0x3b,0x68,0x47,0x1,0x99,0x0,0x52,0x0,0x80,0xfa,0xb5,0x53,0x80,0xf8,0x2f,0x51,0xcd,0x7d,0x7c,0x5d,0x4,0x42,0x3,0x85,0xf0,0xcc,0xa6,0x82,0x99,0x19,0xa9,0x56,0x20,0x60,0x19,0xcd,0x47,0x1f,0xd5,0xc7,0xec,0xe3,0x83,0x32,0xfd,0xb,0x20,0xde,0xa,0x74,0x77,0x32,0x90,0x96,0x86,0x17,0x90,0x54,0x7,0x1c,0xea,0x90,0x82,0x80,0x49,0x91,0x9d,0x81,0x51,0x41,0x7,0x88,0x93,0x81,0x78,0x26,0x10,0x1f,0x2,0xe2,0xbb,0x40,0xfc,0x82,0x1,0x72,0x20,0xc6,0xfb,0x61,0x8e,0x41,0xfe,0x5c,0xe,0xc4,0xea,0x40,0x3c,0xda,0xf7,0x1f,0x28,0x0,0xe9,0xa,0x88,0x2,0x13,0x7c,0x1f,0x90,0x7e,0xc,0xc4,0xef,0xc1,0x98,0x9,0x89,0x66,0x52,0x42,0xf0,0xe1,0x62,0x48,0x7c,0x74,0x71,0x5c,0xf2,0x28,0x58,0xe5,0x3d,0x30,0x43,0xbe,0x7,0x66,0x4e,0x54,0x8c,0x4d,0xc,0x3,0xab,0x21,0xd1,0x6a,0xd8,0xd5,0xb0,0x20,0xd1,0x60,0xac,0x2,0xb1,0x93,0x59,0xe5,0x1d,0xd0,0xfe,0x57,0x40,0xfa,0x1,0x90,0x3e,0x9,0xc4,0x8b,0x81,0x38,0x1f,0x88,0xcd,0x80,0x98,0x7,0x9c,0xf1,0x59,0x48,0xcb,0xf8,0x0,0x6b,0xf3,0x9f,0x2e,0xfe,0x90,0x2b,0xd2,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82 }; diff --git a/common/res/l500.h b/common/res/l500.h new file mode 100644 index 00000000000..f38747487b8 --- /dev/null +++ b/common/res/l500.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from L515.obj +static uint32_t L515_obj_data [] { 0xba0c10f1,0x26aec158,0x147a414d,0x6e74c11a,0xdb3dc15f,0x147cc155,0x9895c11a,0x61d9c155,0x71001872,0xc15b9293,0x1857746f,0x9c10f100,0x5fc188b6,0x7bc12030,0xf7c11a14,0x6fc18778,0x7bc0fe92,0x98c11a14,0xf2c188e3,0x18101a,0x55e604f1,0xe676c187,0x147b410e,0x6265c11a,0x3333414f,0x71004873,0x41476e74,0xc580000,0x7604f100,0x7ac1758c,0x6b4126dd,0x28c11a14,0xc34185a8,0x301abe,0x6a0a7171,0x13fafdc1,0x2771000c,0x62415955,0x7871d0,0x28c1a871,0x44af5741,0x10f1000c,0x41585723,0xc172399a,0xc10f5c2b,0xc067852f,0x41a180fd,0xc10f5c29,0xc08d22e0,0xca9545a,0xfbc87100,0xadb8c0b7,0xf1000caa,0x28304528,0x87674141,0xf5c25c1,0xc80000c1,0xb30000c0,0xf5c2841,0x45af5cc1,0x93f3f341,0xf5c3fc1,0x1f1232c1,0xa655e6c1,0xf5c2ac1,0x961defc1,0xb53333c0,0xc7710024,0x97c1108b,0x18b0b5,0xbaf510f1,0xf77ec137,0x5c2bc197,0xbffec10f,0xdc7ac194,0x5a6d4183,0x5723c10f,0x399ac158,0x44006c72,0x40961def,0xfb71003c,0xcdc10f56,0x3ca54c,0xb9db9c71,0xb1891940,0x26120054,0x300100d8,0x66667100,0xcccdc0f6,0x710024a2,0xc111f5c9,0x609e0bee,0xc5107100,0xf1f94195,0x53002417,0x40d80438,0xf100ccb7,0x9640ba04,0x16561c41,0xf5c29c1,0x96f2cfc1,0x1513b141,0xcd71000c,0x8440e4cc,0x60ba78,0xf85cd762,0xcc86e940,0x4400,0x60410e,0x1d000071,0xa7215041,0xd962006c,0x3fc0d325,0x71012c2c,0xc0dc0000,0x3cae0000,0xcccd4400,0xcc100,0x33d19444,0x62004841,0xc0ffa329,0xc0ba1c,0xd2000071,0xb25483c0,0x4f10030,0xc1206490,0xc1a64e7a,0xc138bd11,0xc113a7f8,0xca786ff,0x8104f100,0xecc16bb6,0x10c0256c,0xf7c138bd,0x11c17cae,0xc418b,0x81729371,0x6c9431c1,0xe71000c,0x7bc14c6e,0xc3249,0xe7a8ac71,0xf9bb4bc0,0x4f1000c,0xc0e007e1,0xc101d61c,0xc138bd10,0xc14b1669,0x54ad64f6,0xc8dc7100,0xf0a5c0d6,0x71000c8c,0xc0c1999a,0xc95352c,0x40abf200,0xa1c19a60,0xd6c0d1bb,0xd4c13ea0,0x43c1b5ce,0x36411e61,0xb1c13a5e,0x4d41b6a1,0xa94119d1,0x5bc13a5d,0xd8c18f6e,0x99418982,0x2dc13a5c,0xaac180a2,0xfac050f0,0x2cc13a5f,0x9a41725b,0x36c19399,0x78c13a5e,0x10418b47,0x36c18c92,0x73c13a5e,0x18418473,0x5b415066,0x94c13a5e,0xb73fff6c,0x7b419f85,0xd0c13a85,0x5c4017ec,0x8141a1fc,0xfdc14304,0xa7401614,0xcfc12e2d,0x55c143f7,0xc34016a3,0x35c0d2c9,0xbdc14a5e,0x14401da6,0xeec0d4d0,0x55c18373,0x264016a3,0x35c088e3,0x55c14a5e,0x6d4016a3,0x35411b8e,0x9bc14a5e,0xc4c01604,0xf2003c28,0x3c89fc63,0xb7cb3740,0x43f79641,0x8902dac1,0xc503e440,0x45e47641,0x86cc4dc1,0xc4cd2cc0,0x45dae641,0x30d706c1,0xa6dc04c0,0x43f8f541,0x168e61c1,0xa1d659c0,0x43e6bd41,0xd72f5ac1,0x9ab0bc40,0x1ccccfc1,0x487d1dc1,0xaf87cd41,0x1ccc42c1,0xb7d60c1,0xb06a2b41,0x1ccccfc1,0x5f37ffc1,0x93c9c941,0x1cccf2c1,0xf2ddd9c1,0x30047f40,0x2504f100,0xf440b713,0xcfc193bb,0x3ec11ccc,0x9dc0dc79,0xcb369,0x3359da71,0xa8b109c1,0x4b71000c,0x5c14aac,0xcae52,0x3c2d00f1,0xfe3ac166,0x2319c18f,0xb617c11d,0xf101380d,0x83baece0,0xa8084c1,0x93999ac0,0x3b3d10c1,0x171491c1,0xbdbcb941,0x472279c1,0x152482c1,0xa7dd0841,0x4723a5c1,0xd361bdc1,0xb2edb140,0x472b4441,0x14b47cc1,0xbd126d41,0x47201e41,0xb5b52fc1,0xab5c19c0,0x472b0241,0xdbe9f7c1,0x43560c0,0x472b20c1,0x9a0f8ec1,0x57e4dfc0,0x472b03c1,0xb3c305c1,0x58a47ac0,0x472b03c1,0xd7d780c1,0x479f64c0,0x472b03c1,0x59d93cc1,0xd9cf5340,0x4a5e3540,0x4c6c22c1,0x13cb1a40,0x83c3e641,0x5cafa2c1,0x67a2641,0x838593c1,0x66bfa2c1,0x5dc20041,0x84d1c741,0x11a0c9c1,0xa0cccdc1,0x482e5c41,0x46de7c1,0x9fa976c0,0x3aa32841,0x1baeb5c1,0x8b68a7c1,0x3ae4ad41,0x35dbac1,0xa54efcc1,0x3c291841,0xf6209dc1,0xb790d6c0,0x3c28f541,0x9aeb9ec1,0xb8659cc0,0x10f1000c,0xc0ed0bbb,0x41c92a81,0xc13c2901,0x403ddc8c,0x41b8fe29,0xc13c2af3,0x409002fd,0x24b27b02,0x852f7100,0x80fd4067,0x44000ca1,0x40f51462,0x1471003c,0xd340b32f,0x18bc0c,0x459703f2,0xd27940a4,0x270641c8,0x92f3c13c,0xe289c016,0xfff50228,0x25d4f159,0x7e2a7640,0x8548c441,0x56a737c1,0x124ea9c0,0x4ae05e41,0x562429c1,0xe522d1c0,0x4b3d59c0,0x478341c1,0x147e1cc0,0x84e89841,0x1dca82c1,0x3079a5c0,0x83a513c1,0x4488b5c1,0xe00d99c0,0x854700c0,0x46c2ecc1,0x3cae90c0,0x851535c1,0x4cc78fc1,0x7f6baa40,0x83925f41,0x1dafa5c1,0x9e963f41,0x3a65d2c1,0x17d8a4c1,0x9dc46e41,0x3e89e7c1,0x27e42fc1,0x86df8c41,0x3a56afc1,0x4b1b57c1,0x4b8f6141,0x3a56acc1,0x376f20c1,0x54c48d41,0x3a56acc1,0x2f0752c1,0x5e23741,0x3a56ab41,0x1c2278c1,0x8b799c41,0x3ab6c8c1,0x9ac256c1,0xf74a4d41,0x4bf7cfc0,0x9d3b00c1,0x725ce541,0x319b1441,0x95f574c1,0x15a34f41,0x191b1141,0x9ab4fec1,0x606b2741,0x472b023f,0x99a6b3c1,0x215a6941,0x3b62c441,0x5aca3dc1,0x4f1eb9c1,0x472b0141,0x9ab2f2c1,0xef8404c1,0x472b0240,0x689df5c1,0x256cecc1,0x835ddec0,0x5cef8cc1,0xf47afc1,0x83e9f841,0x5dfd06c1,0xa0af21c1,0x84eb7741,0x5a3172c1,0x2569dbc1,0x3ed190c0,0xa3688bc1,0x23e8c1c1,0x3b89e341,0xa04722c1,0xf65e05c1,0x8571e240,0xdf42ddc1,0x84871ec0,0x207ae240,0x62bec3c1,0x53504fc1,0x207ae2c1,0x14f106f0,0xc1207ae2,0xc1814c94,0xc12beb48,0xc1207ae1,0x41834660,0xc1121bcf,0xc1207ae2,0xc1856216,0x18039637,0x7410f100,0xc1476e,0xe0415800,0xc1207a,0x7ec18800,0xe1c0ef80,0xdec1207a,0x65c14161,0x302299,0x809204f1,0xb088413c,0x7ae24104,0x9293c120,0x746f414b,0xf1003057,0x8174a004,0x16bec1c1,0x207ae141,0x6c0429c1,0x13a1e2c1,0x4db50024,0xf4c107a8,0xe2408f26,0x6e4207a,0x207ae2b1,0x550a39c1,0x5104dac1,0xc371003c,0x4fc152be,0xc5350,0xd23e7393,0x7f3bebc0,0xce1bf,0xe95700f1,0x7ae1403e,0x6e74c120,0xdb3dc14f,0xf2002455,0xd58ac693,0xd5499dc0,0x2f5c2abf,0x16b3cc1,0x275de1c1,0x2f5c2ac0,0xd81840c1,0xc5c1c6bd,0x2f5c2a3e,0xcf56fc1,0xf57edc3e,0x2f5c2a3f,0x235bcc1,0xebdda5c1,0x83dd62c0,0x4b868ec1,0x4bde9541,0x10d70bc1,0x3fb27dc1,0x4670a841,0x128107c1,0x87c839c1,0x10ee2441,0x10e76bc1,0xa13333c1,0x4000041,0x12810641,0x94b72ec1,0x8e4f141,0x12810641,0x382d5ac1,0x4c28e341,0x128107c1,0x940000c1,0x300002c1,0x10e76dc1,0x9a0000c1,0x4000041,0xf4dd3c1,0x987274c1,0xc68ad41,0x131cf100,0xe3419471,0xd3c10a6a,0xc10f4d,0xc19400,0xd3412000,0x6ac10f4d,0x41b1bb,0x1b410400,0xd9c12840,0xf9418c9d,0x241fd5,0x171604f1,0xc8ae4137,0x4dd4c14e,0xf170c10f,0xd36fc181,0xf1001815,0x685e8e08,0x3921c2c1,0xf4dd241,0xaeb9fbc1,0x3ffff41,0x8a7eb5c1,0x8f1000c,0x41040001,0xc18a7eb5,0x419a078c,0x4104167e,0xc1a0e002,0x249f87bd,0x820cf100,0x6bc19ee9,0x4f4195ce,0xce410f3f,0x33c1a0cc,0xff416733,0x66c10fff,0xca266,0x10000171,0xa6666641,0x1802000c,0xc1a65300,0x24960000,0xc0200,0xf1002404,0x6062bf28,0x4cf5b40,0x899bfe40,0x4373d6c0,0x15336e40,0x88d845bf,0x30a8e7c0,0x52dba540,0x8a71de40,0x61a2d3c0,0x40000040,0x6bedfa40,0x6e6666c0,0x3e666640,0x882000c,0x96c06222,0x18bfc878,0x403e5100,0xcdccccd,0x48cba600,0xa6dbc058,0xeea2bfb4,0x20f10030,0xc05f212d,0xc03e6666,0xbfdccccd,0xc05f212d,0xc04590d1,0x407dff61,0xc05f212d,0xc07da340,0xbfa1586d,0xc05e8230,0x407e6666,0x2479999a,0xe528f100,0x9040790d,0x73bfbb82,0xaec05c2a,0x88c059b6,0x9ebfba13,0x3ac04542,0xb407894,0xb7bf40b7,0xe3c04f97,0xe34058e3,0x614058e3,0xeec01254,0x9ac05e7b,0xc5199,0x491c4371,0x620026c0,0x2671000c,0x43c06200,0xc491c,0x6d8f04f1,0x405f,0x5461bf80,0xc012,0xdb16c040,0x71000cbe,0x40563911,0xcac7222,0x469df400,0xa6406679,0x38400009,0x3fc045a1,0xb3402453,0x5b3e027b,0x26bfbe42,0x493fad38,0x74405666,0x43bfbe42,0x8a402453,0x5b3fefb0,0x7fbfbe42,0x18be0ef7,0xfb3f817b,0x82c00bcc,0x3f36c8,0xfa3f8000,0x98c00899,0x4abc88a6,0xea3f83f1,0x62c00beb,0xe53fd612,0xc33fa3b8,0xc1bff344,0xc73e6ce6,0x894018ba,0xe3bffe79,0x5bed51c,0xc3402932,0x81bff344,0x42bf2e5c,0xc3402360,0x20bff344,0xbeb743,0xf03f8000,0xd5c00b16,0xd4bf99ae,0xc4022b9,0xf7bfe7b2,0xbf95cb,0xb63f8000,0x3fc00312,0x84c02453,0x5659f100,0xa43d3d29,0x1e3ee2a5,0x4c009e2,0x4e3ff28e,0xc3f0527,0xc3bfe7b2,0xbfbfab44,0xc3bd29b7,0xadbff344,0xc7bee4a1,0x39bc93a0,0xf9c003ed,0x53bff8d7,0x25bd555c,0xb0bfdaeb,0xb1bee9ab,0x89bea8a8,0xc1bffe79,0x39be6ce6,0x89bec5d6,0xbffe79,0xdf000000,0x89becfa6,0x9ebffe79,0xe4bf227c,0x54bf594e,0xbb1bf100,0x98e1bea4,0xb20cbf6d,0x5dc8bfe7,0xbe403f84,0x79893d44,0x59d1bffe,0x28bf3f8c,0xed393f51,0xaed5c003,0xe74f3f99,0xf100240a,0x690efe28,0x6cb0293f,0x6805a3f,0x60fa1ac0,0x25857bc0,0x88d845be,0x381c54c0,0xc27703c0,0x89a67abf,0x4371bdc0,0x57f2b240,0x6816f0bf,0x31eb85c0,0x8cba9540,0xad71000c,0x89403f88,0xc26ce,0x2df34171,0x8bd1e540,0x8544000c,0x24c031eb,0xa501f400,0x5ac02d87,0x50bf8a65,0xadc06a70,0x30c03f88,0x9a5b7100,0x2d88c042,0xf1003069,0x4371bd04,0x35fcad40,0x6816f040,0x41dc40c0,0x35b164c0,0x6c710018,0x94403a5b,0x184434,0x65c704f1,0xb23ac031,0x16f03f98,0xcf46c068,0x4d94bfb7,0x83001841,0xc02b001d,0x3e733bda,0xc0410090,0x1829b3a2,0x9a5b7100,0x4b62c042,0x44000c3a,0xc03a5b6c,0x7a710048,0xf13faf89,0x34890d9,0x4e9404f1,0xc8dac01e,0x3a3bfbb,0x76a3c089,0xb878bfe5,0xf5001889,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x309071d4,0x97aff3c0,0x8a71debf,0x44ad1dc0,0x415875c0,0x89901140,0x47d2c8c0,0xedb90fc0,0x8a71de3f,0x4843a6c0,0x3a676240,0x895a8a40,0xa06cdbc0,0x4bade2bf,0x89b0de40,0x92813dc0,0x4a2a4e3f,0x88d84540,0xc2ac19c0,0x5db5283f,0x88ff2e40,0x3d034fc0,0xace48640,0x8553c3be,0x3d00c5c0,0x1805d140,0x850b2840,0xe08e26c0,0x41f4aabf,0x81ca9440,0xc0105ac0,0x485f74bf,0x88f7d140,0xc00000c0,0x4bd7fe3f,0x892a3040,0x48f5a5c0,0xc0,0x892a303f,0x1242e5c0,0x8a2ff140,0x44e19c3e,0x156ee3c0,0xe5ab3b40,0x44e19c3e,0x2e32a0c0,0x8737a0bf,0x62bdfd3f,0xf4b839c0,0x85da49bc,0x6582fd3f,0x925ef6c0,0xf1ecd5bf,0x59303c3f,0xf51266c0,0x1c6c8bbd,0x59303c40,0x44b231c0,0x8d4e4dbe,0x653e3a3f,0xd76ffc0,0x159e2bf,0x5d8b7e40,0x97598ac0,0xa91a33be,0x6463203f,0xb621d9c0,0x19e7253e,0x59303c40,0xdc6328c0,0xd28b54bd,0x62f9093f,0x93d15fc0,0x1040c43f,0x5496bc40,0xdac322c0,0xce8816bf,0x5261d03f,0xb1083ec0,0x3487b13f,0x47ba9140,0x5810c0,0xdc8e69c0,0x444fb1be,0xd76ffc0,0xaceee13f,0x5d8b7ebc,0x93d15fc0,0x8205ffbf,0x5496bcbe,0x7b3f10c0,0x8768e0bf,0x59303cbd,0xcba030c0,0xbafc8bbf,0x500210bd,0x885415c0,0x5e03713f,0x5eb1293f,0x70f68cc0,0x5d04f73f,0x4c7b89bf,0x42a498c0,0x5f3bfbbf,0x4e0104bf,0x48f5a5c0,0xc0000040,0x892a303f,0x5ad2d0c0,0x5583240,0x89002e3f,0xd02f39c0,0x3ea2ea41,0xa4e4d741,0xc0bbf3c1,0x333d9441,0x6e666541,0xd4472bc1,0x3324f841,0x2ea15141,0xd65858c0,0xe6029c3f,0x600011c1,0xc0b132bf,0x806e4941,0x5fcc1841,0xa0d9d3bf,0xa4f68641,0x37c07f41,0xa32e13c1,0xa2da8f41,0x8c0f6941,0x8efb79c0,0xb5b59541,0x5f3509c1,0xa7963ebf,0x9e1c2e41,0x5fffef41,0x9af4f5bf,0xaa885b41,0x2680c541,0xa1c71bc1,0xa40edd41,0xb0008f41,0x972a17bf,0xade8d941,0x8339e0c1,0xbab3bac1,0x87c94441,0x71fc2bc1,0xa44005c1,0xa4511c41,0xb017b1c1,0x80ae1dbf,0xbf1dfc41,0x23c23341,0xd278b3c1,0x2ee85641,0x993361c1,0xe84699c1,0xdef65540,0xaffff841,0x68e30dbf,0xe4a57540,0x24f75841,0xd0d10ac1,0x42c9ce41,0x74bd43c1,0xc134ddc1,0xe147b340,0x216d4c41,0xd8613fc0,0x1ea36b41,0x5387a5c1,0xd6be71c1,0x1ef8ee41,0x99357ec1,0xd49555c1,0x34bd2c41,0x5fc159c1,0x210175bf,0xe586f740,0x3702d541,0xe2a1d7c1,0xacc51941,0x4fffb6c0,0xe696cfc1,0xbb06e641,0x5001653e,0xdda4c8c1,0xfaff2841,0x2c5a9bc0,0xe319f1c0,0xa3b1be41,0x5f73c1c0,0xe0c45abf,0xf0740441,0xb02d5140,0xd57ae3bf,0x99ce1441,0x171d4240,0xd79799c1,0x5f2b5641,0x1e18a0c0,0xc48e9ac0,0x33554141,0x154d0841,0xc58306c1,0x33749f41,0x24678c41,0x9013a6c0,0xa01cab41,0x5d999bc1,0xb0efa0c1,0x78682c41,0x5d98f8c1,0xce9368c1,0xfd49cd41,0x1527c6c0,0xd2bdfdc1,0x1a172641,0x5d9dd4c1,0xbfd2ebc1,0x2233ba41,0x993333c1,0x82c3f3c1,0xa5240d41,0x993333c1,0x96474dc1,0x89615741,0x7593bec1,0x85362ec1,0xb595c941,0x3b368c1,0xd66606c1,0xb2f9b740,0x3bbf7c1,0xb013cbc1,0xd3778e40,0x362b1c1,0xd134f0c1,0xb1079ac0,0x3bc1bc1,0xa4441c1,0xbe341dc1,0x39b6ec1,0x50d989c1,0xa1862ac1,0x3e885c1,0xca4d55c1,0xc2e17d3f,0xcf9f27c1,0x66d061c0,0xb70ed141,0xd1999cc1,0x4986c4c0,0xaf4399c1,0xd19c97c1,0x9415c0c0,0xd5444e40,0xd08ddec1,0xf4d832c0,0xcf8ffb40,0xd1999cc1,0x51b7b0c0,0xa19e3dc1,0xd199bdc1,0x273f7dc0,0xd5ca3040,0x24ccd1c1,0x2235b1c0,0xbba36ec0,0x24ccd1c1,0xba0304c0,0xd8a4b3bf,0x24ccd1c1,0xd6fd54c0,0xd5a302bf,0x24ccd1c1,0xc1347ac0,0xd627b33f,0x24ccd1c1,0xd604d1c0,0xc24c32bf,0x24ccd1c1,0x27db8cc0,0xba834c40,0xcfdec2c1,0x67910ac0,0xb7c1e841,0x600011c1,0xd756f1bf,0xd2b01540,0x603654c1,0xf925abbf,0xd8a22fbf,0x600011c1,0xc46c41bf,0x38878fc1,0x5fced941,0x1d9a56bf,0xd88153c1,0x5fffef41,0xbb041bf,0xcdf3cac1,0x5fffef41,0xdb6598bf,0xf1ab1c1,0x5f89a441,0x40364fbf,0xc315c8c1,0x5fffef41,0xa937f1bf,0x87b98bc1,0x6017fc41,0xc78842bf,0x666666c1,0x5fffef41,0xad3f04bf,0x982930c1,0x5fa9a041,0xbc5e1abf,0xe1c2f7c0,0x5fe532c1,0x347e24bf,0xd461aac1,0x5fa3fdc1,0x9e74e2bf,0x94bb9a41,0x5fffef41,0xac0333bf,0x854887c1,0x5ffe4cc1,0xceeb63bf,0x4cf612c1,0x5fffacc1,0x40364fbf,0xc315c841,0x5fffef41,0xbb041bf,0xcdf3ca41,0x5fffef41,0xa98ed6bf,0xd54d49c0,0x5fffef41,0x98cee5bf,0xacf8b6c1,0x22de0ac1,0xc0cfadc1,0xe19441c0,0xdcb8b241,0xc04b7bc0,0xe1a6e3c0,0x21479541,0xef92d1c0,0xdf8be7c0,0x8c065541,0xf4c48bc0,0xde201cc0,0xb00008c1,0x9a228fbf,0xab55c0c1,0x25277e41,0xe6510dc1,0xf5fc6ec1,0x2861953f,0xdda1b5c0,0xfb1e1fc1,0x2cb78dc0,0xb256abc0,0x9270d1c1,0x50002741,0xa46ba6c1,0xa4787dc1,0xb0336a41,0xd62f95bf,0x2abf81c1,0x509f3541,0xd4492ec1,0x3320c1c1,0x2e1f1541,0xdd2e49c0,0x10bcdc1,0x500000c1,0xdd2cb5c1,0x11695c1,0x23741ec1,0x730f45c1,0xd5fbcac0,0x241d0141,0x1eb32cc1,0xaca60ec1,0x23f3d441,0xc744e3c1,0xcae132c0,0x23a2e541,0x8f62a4c1,0xa19a13c1,0x2549cf41,0x7db457c1,0xd841a63f,0x23718341,0x51c02c1,0xc4cc2841,0x23b34241,0x1e77efc1,0xacba7e41,0x23f36441,0x921393c1,0x61d866c1,0x93333341,0xa59d6ec1,0x8526fec1,0x6e666541,0xc044e5c1,0xd3dac0c0,0x234d3c41,0x371a81c0,0xc52d3ac1,0x8f5d641,0xc044e5c1,0xd3dac040,0x234d3c41,0x17a7a5c0,0xb9eead41,0x8f56341,0x56af8c1,0xc5160541,0x8f5f941,0x249d88c1,0xacaacf40,0x8f66041,0x1eeb2cc1,0xace1fcc1,0x8f65641,0x89f0a2c1,0x8f7b933e,0x70f61041,0xd2222dc1,0x95c111bf,0x70f60a41,0x19c209c1,0x9c03a73f,0x70f5c241,0xb0b6d8c1,0x9a0bfebe,0x70f5c241,0x8ac604c1,0xa5daaebe,0x70f5c241,0xc1,0x9a000080,0x85999a41,0x7c3b5c1,0x9bc1e23f,0x85999a41,0x400000c1,0xa000003f,0x85999a41,0x429889c1,0xa614c4bf,0x85999a41,0x2646e1c1,0xa30000bf,0x85999a41,0x8e742ac1,0xa84e95be,0x85999a41,0x8e742ac1,0x97b16b3e,0x85999a41,0x9999ac1,0xa772a43f,0x85999a41,0x7c3b5c1,0xa43e1e3f,0x85999a41,0x7deb85c1,0x9c98cf3f,0xa0000041,0x238fbdc1,0x9900babf,0xa0000041,0x89ce7dc1,0xa0d9dbbf,0xa0000041,0x50535dc1,0xd964723f,0x9fffff41,0xc1,0xd8e68740,0x9fffff41,0x237ee9c1,0xd74fa9c0,0x358f5941,0xb5cbb5c1,0x5b80cb41,0x39afcd41,0xb633cfc1,0x5ae95341,0x6e666541,0xb111e7c1,0x6b27be41,0x6e666541,0xb165adc1,0x6a889e41,0x3840ce41,0x91a7fec1,0x4029a9c1,0x6e666541,0x9fb613c1,0x388b24c1,0x6e41d641,0x90ea11c1,0x109320c1,0x6e666441,0x8b310ac1,0x1f5da0c1,0x6e667241,0x88207ac1,0x3b0e54c1,0x6e666541,0xb3046dc1,0x6500ecc1,0x6e666541,0x89fd33c1,0x3e5ed3c1,0x6e666541,0x88d02bc1,0x3c82c7c1,0x6e666541,0x878797c1,0x268c68c1,0x6e666641,0x7e1912c1,0x29c8be41,0x6e666641,0x7ff85fc1,0x3949b241,0x6e666541,0x73f10ac1,0x4161b241,0x6e667441,0x8ff90fc1,0x2815b041,0x6e666641,0x8536d3c1,0x1f62d741,0x93333341,0x8e9246c1,0x262cc541,0x93333641,0x9f35b1c1,0x2e41a241,0x93333341,0x90f0d1c1,0x409d2bc1,0x93333341,0xc0afb0c1,0x436d6ac1,0x93331b41,0xae3d9bc1,0x26800ac1,0x93333341,0x85f7a8c1,0x3009f5c1,0x93333741,0x7f7c8ac1,0x273873c1,0x93334e41,0x808a21c1,0x3beb33c1,0x93333e41,0x8f3497c1,0x1ea3e6c1,0x93333341,0x8a6a33c1,0x3ee549c1,0x93333341,0x88a23cc1,0x3c2989c1,0x93333341,0xa67d47c1,0x7a25da41,0xa5999a41,0xc634f7c1,0x296cb2c1,0x53da6141,0xd71421c1,0x231f60c1,0x4fffa7c0,0xcb200dc1,0xe73ebc1,0x500000c1,0xc48b3ac1,0x6541dc1,0x4ffe4fc1,0xd8f5e3c1,0xbf7bf2c1,0x1e1da83f,0xc5dbcac0,0x2cc7b2c1,0x23dfccc1,0xc5a0f4c1,0x332e7cc1,0x247e7441,0xd72151c0,0x3920f3c1,0x171aecc0,0xce926ac1,0xfcf26bc1,0x154d53c0,0xa91713c1,0x5900fbc1,0x53c32a41,0xb3c493c1,0x644be2c1,0x1deb9341,0xb745a6c1,0x554d67c1,0x21329341,0xb0d487c1,0x4d11abc1,0x48a33c41,0xce0399c1,0xef9a02c1,0x937f04c0,0x77f929c1,0xa591dec1,0x93a36dc1,0x6a93ebc1,0xa35402c1,0x93dfd2c1,0xc00c83c1,0xf1b832c1,0x93dfd2c0,0xbcce8ec1,0x1c46ecc1,0x2bed42c1,0xbc4f52c1,0x1ddbeac1,0x24b852c1,0x907f19c1,0x8a9a98c1,0x4f1eb9c1,0x84109ac1,0x8de0fbc1,0x5ced21c1,0xa9ccbec1,0x337dcdc1,0x4fb22ec1,0xaff2bac1,0x230955c1,0x5f80fdc1,0xb00fc1c1,0x23821ec1,0x79f508c1,0xbfd611c1,0xec5930c1,0x39999ac0,0xb57db7c1,0x1229f9c1,0x292bebc1,0x4ab25bc1,0xa0272c3f,0x6e684bc1,0x4a8b3bc1,0xa02873bf,0x6e6872c1,0xb79c8c1,0xa49d4fbf,0x6b80d3c1,0x400000c1,0x8c0000c0,0x6e6667c1,0x397529c1,0x631b17bf,0x79999bc1,0x7c3b5c1,0x687c3abf,0x79999bc1,0xc00000c1,0x6a646dbe,0x79999bc1,0xc1,0x6bffff00,0x79999bc1,0x400000c1,0x5fffff3f,0x79999bc1,0x397529c1,0x5ce4e73f,0x79999bc1,0xc00000c1,0x559b91be,0x79999bc1,0xcba95c1,0x50c402bf,0x79999bc1,0x1a1fd1c1,0x4e0b6b3d,0x799978c1,0x73bfe8c1,0x68cba93f,0x79999bc1,0x470553c1,0x6c7054bf,0x79999bc1,0x8cba9dc1,0x5fffff3f,0x79999bc1,0xcba95c1,0x50c4023f,0x79999bc1,0x73bfe8c1,0x5734553f,0x79999bc1,0x470553c1,0x538faa3f,0x79999bc1,0x73bfe8c1,0x573455bf,0x79999bc1,0x470553c1,0x538faabf,0x79999bc1,0x5d490ec1,0x6efddcbf,0x9332adc1,0x3587f0c1,0x8bf11e40,0x933343c1,0x382d80c1,0x66814840,0x933333c1,0x61df76c1,0x44cdb5bf,0x933348c1,0x3587f0c1,0x8bf11ec0,0x933343c1,0xcef441c1,0x75dff8bf,0x9331a9c1,0xdf3f8ec1,0x8bc6cebf,0x933333c1,0x27e74bc1,0x8bc6cebf,0x933333c1,0x27e74bc1,0x8bc6ce3f,0x933333c1,0xd1e083c1,0x76b022bf,0x83fe1ac1,0x19999ac1,0x8c00003f,0xa00000c1,0x2fe16dc1,0x8c000040,0xa00000c1,0x8760a2c1,0xb1793ac0,0x9ffffcc1,0x4c82aec1,0x99a317bf,0x9ffff2c1,0x89c66dc1,0xa0455abf,0xa00000c1,0x5ad57cc1,0x9773bf3e,0xa00001c1,0xae9742c1,0x9317483f,0x9fffcec1,0x586706c1,0x9a48f33f,0x9ffffcc1,0x89ce7dc1,0xa0d9db3f,0xa00000c1,0xa97e26c1,0xd3cd92c0,0xa00001c1,0x968c33c1,0xda515dc0,0x9fffe7c1,0x149b30c1,0xa774743f,0xa00000c1,0xa97e26c1,0xa0635b40,0xa00000c1,0x8afbeec1,0xa55c7c40,0x9ffecfc1,0x6e5482c1,0xa44ccd3f,0x800000c1,0x429889c1,0xa614c43f,0x800000c1,0x9999ac1,0xa772a43f,0x800000c1,0x8e742ac1,0xa84e953e,0x800000c1,0x8e742ac1,0xa84e95be,0x800000c1,0x84e94fc1,0xa239d1bf,0x800000c1,0x9999ac1,0x988d5cbf,0x800000c1,0x8e742ac1,0x97b16b3e,0x800000c1,0x84e94fc1,0x9dc62f3f,0x800000c1,0xc9d55ec1,0x9a89a8be,0x800000c1,0xc1,0x99b15580,0x800000c1,0x50f40ec1,0x99e8593e,0x800000c1,0xc9d55ec1,0x9a89a83e,0x800000c1,0x2ecb10c1,0x9cd8aa3f,0x800000c1,0xc9f4dc1,0xa56c1740,0x840000c1,0x38e39bc1,0x8f66203f,0x840000c1,0xbea348c1,0x923ef83f,0x83fdf5c1,0xd22974c1,0x76afa63f,0x83fe9ec1,0x862d8ac1,0xa53d0bc0,0x83fed7c1,0x847c37c1,0xb5738740,0x18b576c1,0x8291b6c1,0xb4787ac0,0x165f82c1,0x3fcac1c1,0xdc0000c0,0xddd54cc1,0x535050c0,0xdbd7c140,0xe825fac1,0x6fc7acc0,0xd79b7740,0x51742c1,0x4f1334c1,0xb4e24d40,0x4b5e3c1,0x7c7f0bc1,0xb2c0cf40,0x191c13c1,0x37e98ec1,0xb297e9c0,0x61e4dc1,0x371d5cc1,0xd6a35fc0,0xfb816fc1,0x749614c0,0xd79c10c0,0x64cd7c1,0x89805ac1,0xd6cc23c0,0x141bccc1,0x63cf89c1,0xdbfffec0,0xe419fec1,0x9dcb57c0,0x9f248941,0x72a8b8c1,0x98b7a3c1,0xa6216241,0x76c7c7c1,0xc907b6c1,0x4743d341,0x832044c1,0x9a98a4c1,0xa38aee41,0x8cea76c1,0xc0c00bc1,0x5e0f6641,0x744251c1,0xa528b1c1,0x95019141,0x993333c1,0xc49a4dc1,0x5373b541,0x83d3f6c1,0x9471b4c1,0x958cf241,0x916affc1,0xbc1bbfc1,0x3debd441,0x910df9c1,0xa44085c1,0xa4516ac1,0xb019ebc1,0x2cb628bf,0xd520d8c0,0xcf8f26c1,0x5a95eac0,0xa60af2bf,0x87fff5c1,0x66db94c1,0x9754593e,0x880000c1,0x837ca2c1,0x9d77113f,0x880000c1,0x1948edc1,0x9f0c143f,0x898419c1,0x522d1fc1,0x9e1193bf,0x9ffaa2c1,0x1ce2d2c1,0xa41d253f,0xa00000c1,0x10d0bbc1,0xa486863f,0xa00000c1,0x3a494c1,0xa4e7163f,0xa00000c1,0x881028c1,0xa148223f,0xa00000c1,0x15e258c1,0xa76427bf,0xa00007c1,0x6fa9b0c1,0xa4456c3f,0xa00002c1,0x837ca2c1,0x9d7711bf,0x9d3d71c1,0x881028c1,0x9eb7debf,0x9d3d71c1,0x873cbcc1,0x9be32cbf,0x9c8cb3c1,0x83ca53c1,0x9cd0623f,0x9d47f0c1,0x3b2f01c1,0xa64de33f,0x9d3d71c1,0x82297cc1,0xa4201c3f,0x9cc313c1,0x264452c1,0x9774b03f,0x9bd70ac1,0x9f03c0c1,0x9d23043f,0x9bdb88c1,0x264452c1,0xa88b503f,0x9bd70ac1,0x5a6abac1,0xa74ef13f,0x9bd70ac1,0x5a6abac1,0x98b10f3f,0x9bd70ac1,0x9ed741c1,0xa2e82abf,0x9bd711c1,0x264452c1,0x9774b0bf,0x9bd70ac1,0x5a6abac1,0x98b10fbf,0x9bd70ac1,0x5a6abac1,0xa74ef1bf,0x9bd70ac1,0x903cc9c1,0x9ce72fbf,0x965d2fc1,0x5a6abac1,0xa74ef1bf,0x965d2fc1,0x5a6abac1,0x98b10fbf,0x965d2fc1,0x49f2bbc1,0xa7c1d23f,0x965d2fc1,0x862670c1,0x9e16193f,0x965d2fc1,0x801694c1,0xa324563f,0x965d2fc1,0x6857c1c1,0xa4a12f3f,0x965d2fc1,0x1b0692c1,0x98e4f43f,0x965d2fc1,0x2b95a3c1,0xa6b9483f,0x965d2fc1,0x2b95a3c1,0x9946b83f,0x965d2fc1,0x1b0692c1,0xa71b0cbf,0x91a2d1c1,0x524e16c1,0x96ec093d,0x91a2d2c1,0x862670c1,0xa1e9e73f,0x91a2d1c1,0x2b95a3c1,0x9946b83f,0x91a2d1c1,0x49bc66c1,0x9a26883f,0x91a2d1c1,0x49bc66c1,0xa5d9783f,0x91a2d1c1,0x801694c1,0x9cdbaa3f,0x91a2d1c1,0x9beabcc1,0xa3b1113f,0x91a2d2c1,0x5a6abac1,0x98b10fbf,0x91a2d1c1,0x947ee1c1,0xa2f931bf,0x91a2d2c1,0x57e953c1,0x956d463e,0x91a2d2c1,0x92c0f9c1,0x9c04183f,0x91a2d1c1,0x88b503c1,0x9acddd3f,0x91a2d1c1,0x264452c1,0xa88b503f,0x91a2d1c1,0x96c301c1,0x9ca6b53f,0x8c28f6c1,0xf10024,0xc18c28f6,0xbf998de7,0xc1a37dc3,0x508c232d,0xf1cf101,0xf6c198b1,0xfcc18c28,0x7cbe8cfb,0xccc19701,0x1dc18b4f,0x2dbe875b,0x9cc1a87b,0xd5c18ac0,0x49bf7f21,0xdc1a3ac,0xfc8ac4,0x98e4f475,0x8ac28fc1,0x8f3502a0,0x1208ac2,0x8ac28f35,0x24f104c8,0xc18ac28f,0x3f869963,0x419d68bb,0xc187fff9,0x3ee14e3c,0x41a8657c,0xc187ffef,0x3dd24f22,0x419a6994,0xc1887bd7,0xbf88d4c3,0x41a1a18a,0x54880000,0x88ef3100,0x71000ca2,0x3f03a494,0xc9b18ea,0x2628f100,0xe0beacc4,0xd941a463,0x6fc18988,0x643f09d5,0x1941a24d,0xffc18984,0xe33ea793,0xa441a45b,0x2ec18986,0x213e6f3c,0xe741a483,0x57c19e7b,0xe73edd06,0xc9c8b,0xcccccdb7,0xa58ae53e,0xa0000041,0x12f10054,0xbe7bc1a0,0x63a3bf84,0xfff841a2,0x7fe9c19f,0xe3f9bf75,0x37a5419d,0x3bbcc1a0,0x37ca3ea2,0x30030a8,0xc0100e4,0xe40300,0xb1000c01,0xbda9a027,0x4196cc98,0xb49d3bfd,0x110cf100,0x71419d77,0x48c19d3d,0x273f9ca7,0xa419df7,0xfdc19bd7,0xf03efef9,0xc96d3,0x783a4371,0xa64f963f,0x10f1000c,0xbf9615e4,0x419b78bf,0xc19bd920,0xbcab94d9,0x41aa6216,0xc1965d2f,0xbf943e42,0xc9b39af,0x300400,0x4102d003,0xa74ef13f,0xb3710018,0x36be13ea,0xc9696,0x2b95a362,0x24b948bf,0xcf426200,0xbf93beee,0x2a710024,0x50bf5857,0x249a8e,0xeecf4271,0x98406d3e,0xdc03000c,0xc0102,0x102dc03,0x4f1000c,0x0,0x41976666,0xc191a2d1,0x0,0xca8999a,0x600400,0x91a2d1b1,0x801694c1,0x9cdbaabf,0x66710018,0x783f49bc,0xca5d9,0x49f2bb71,0xa7c1d2bf,0x271000c,0x28be2e4b,0xca9e8,0x9ca74871,0x9df727bf,0x9403000c,0xc0102,0x6b5908f5,0x50403d88,0x2b8d41aa,0xe319c18c,0x981abb43,0x2be84195,0x2200308c,0x29428f6,0xa74ef174,0x8c28f641,0x41310270,0x27cc28f,0x1b0c3f41,0x71000ca7,0x3f3b2f01,0xc99b21d,0x971cf100,0x264185c8,0x65413c5d,0xc1c17666,0x53417c6d,0x3412cc1,0x7fc17666,0xd4418353,0x66412631,0xd7c17666,0xb9418323,0xc211a,0x85c89771,0x23a2dc41,0x9371000c,0x6d4189f9,0xc1f90,0x80b75c71,0x3ab95b41,0x2c620048,0xc7418197,0xf500549b,0x883b1138,0x3a058a41,0x796ca041,0x85922bc1,0x39064441,0x796e9741,0x821880c1,0x2f986141,0x79922541,0x88db96c1,0x26a71241,0x796e9841,0x8aedd0c1,0x37444141,0x91aea041,0x87cb25c1,0x25b7a041,0x91abf241,0x7f20090,0xc1933333,0x4181e5be,0x4129999b,0xc1933333,0x418bf72a,0x18f2f5,0x82986f71,0x21c9e941,0x4f10018,0x418230ba,0x413b4113,0xc1936e36,0x417ffbfe,0x1838999b,0x1ad6200,0xc1e54187,0x10f10bac,0x417f2275,0x4131b2b9,0xc1938f50,0x418bee51,0x413ee3b1,0xc193332f,0x418ccd51,0x30228d72,0x7a04f100,0x33417e1c,0xa4412c2c,0x67c19070,0x264183b5,0xc3f7f,0x7ede7575,0x29b75641,0xac31000c,0xc3648,0xde040f5,0x81fc4190,0x76a54132,0x6ec8c190,0x13c4418d,0x70b6413d,0xc99fc190,0x89a3418f,0xe2a94127,0xa8f3c18f,0xe9134185,0x9cc411b,0x8e7c18f,0xb296417c,0xa3d4136,0x8928c18f,0xf7d1417c,0xa3d4137,0xed37c18f,0x5d68417a,0x31000c31,0x242ea29a,0xcaa77100,0x6446417d,0x4000c3a,0xf50024,0xc1899062,0x418d34f1,0x411fa91e,0x8899062,0x9062b101,0x648dc189,0xd7bc417e,0x71001839,0x41885f3a,0xc42ec23,0xba647100,0xb6f4417d,0x71000c2e,0x417e3723,0xc26a991,0x29ec3100,0x401c88e,0xf10024,0x4131490e,0xc184d604,0x41844c4e,0xc1ffd2e,0xcd517100,0x7290418c,0x4000c3d,0x4310030,0x6c84d6,0x26284531,0x81710018,0xa241823e,0xc4116,0x84bdf671,0x1cbdde41,0x4f1000c,0x4190b2cb,0x4134ad94,0xc184d60f,0x418f3276,0x183c9f2d,0x43fa7100,0x6220418e,0xf1000c21,0x8d34f110,0x4056e441,0x7eb85141,0x904090c1,0x3a842041,0x7ec44341,0x84bdf6c1,0x43422441,0x7cb10018,0xd1417ea0,0xd8413c84,0x9c7eac,0x2d424f1,0xeb844140,0x752c17b,0x4be64190,0xf4b5412c,0x29ecc17b,0x46a7418e,0xeb854125,0xb368c17b,0x9f46c188,0x6666412b,0x41adc176,0xcca0c186,0xf4000c2c,0x895cbe01,0x30d6acc1,0x77d5b541,0x913fefc1,0x4402d0c1,0xc1905f0c,0x1bf202e8,0xc18d8444,0x411f9def,0xc175c510,0xc1861d66,0x41300001,0xc1766665,0xc18c0b4f,0x412450f7,0xc1766678,0xc189decb,0x324c9e9,0x8635fd71,0x329044c1,0x22710024,0x40c18688,0xc355a,0x892c1a71,0x366667c1,0xb844000c,0x30c187fd,0x2c1a7103,0x999bc189,0x71009029,0xc19303cd,0x243ee549,0x450ff200,0x2c1912d,0xeb413931,0x6cc1797b,0x8ac193c0,0x7f412fd8,0x87c1796f,0xbec18cd8,0x710330f9,0xc18c005e,0x3c27e0d3,0xf0807103,0x325fc18a,0x75036036,0xc18b9dd0,0x18287302,0xcda33900,0xa2000c29,0xc191af1b,0xc18b42e7,0xc17cf,0xaaec00f1,0x6b72c18f,0xaf1b4126,0x6da1c191,0xb1005491,0xc191af1b,0xc1909578,0x18390644,0x2604f100,0xc191c7,0xe141249c,0xe9c19332,0xb8c189cf,0x32427c5,0x8a99db62,0x8431d4c1,0x2104f103,0x14c18d29,0x224125ab,0x21c1928a,0x6c18fff,0x244102,0x8fff2162,0x78fdfcc1,0xd701f403,0xdac1882a,0xd9413afe,0xadc19347,0x6cc19413,0x4a14f503,0x44c19811,0x3412d1c,0x39c18fd2,0xd9c194d7,0xed413d71,0xd1c19078,0xf2c18b44,0xbb411ffd,0x15c906d,0x70a420f1,0xa6c6c190,0x343cc186,0xb84139,0x3db2c190,0x5193c18b,0x5034143,0x411ec18f,0xabfac18b,0x2a8411c,0x680fc18f,0xa6adc187,0x7103303d,0xc1974250,0xc259bbc,0xe04f100,0xfac19325,0x61411d89,0x8ec18990,0x9bc1868b,0x3003b88,0x87680f75,0x225955c1,0xf1000c,0x413da6ad,0xc1899062,0xc190a099,0xc1e675e,0x445b7100,0x999bc187,0x71000c38,0xc197e785,0xc3216ef,0x8469b100,0x6327c185,0x9054412b,0x2200d889,0x3c7290,0x8b92aa71,0x1ffd2ec1,0x33620024,0xb9c18a6a,0x71039c1a,0xc189decb,0x183e3619,0xdd887100,0x643bc188,0x71000c23,0xc19504e3,0xc244d11,0x3c317100,0x40e0c190,0x6203181e,0xc1953a42,0x330a280,0x31005404,0x7c84d604,0x36193102,0x400243e,0x4350258,0x5484d6,0x84d604b1,0x8f981dc1,0x1b3f6cc1,0xee710024,0xa5c18515,0xc2a9a,0x855bd4b5,0x30daf6c1,0x84d61e41,0x24080108,0xb852b100,0x2bafc17e,0x6446c186,0x403783a,0x5f40150,0xc17eb851,0xc192b2e8,0x411da7e2,0xc17eb852,0xc19169ae,0x4f1039c,0xc18c6c31,0x41412a35,0xc17bd838,0xc192723d,0x842080dc,0x1bc0403,0x7beb84b1,0x86b596c1,0x29b756c1,0xb8440018,0xa8c187fd,0xbb86f303,0xedc15930,0xc5c1ad75,0xfec09e8c,0x1bc15768,0xb9c1b00f,0xec0d245,0x11c140dd,0x7cc1beee,0xa0c09fc5,0xd4c13ad4,0x3dc1c0de,0xdbc0d119,0x13c10d4f,0x96c1c4e1,0xc0d0d1,0x69c0e136,0xefc1bf1f,0xc4c09fc8,0x88411a18,0xafc1b158,0xf5c09ed2,0xe7410ce7,0x86c1c4b1,0x64c0a02c,0xa1c0d3d7,0x78c194be,0x5ec09cd3,0x21413499,0xcc1c243,0x6ec0a001,0xccc12e5a,0xa5c1ad25,0x48c09e87,0x784156a2,0x30c1b1d3,0x3ac09eda,0x89c115e7,0xfff30048,0x30dbb0ff,0x4f3ac136,0x5ab2c19c,0x79ccc09d,0x48354137,0x366dc19a,0xaeabc09d,0x867bc0fd,0x6aa5c1ab,0x9b07c09e,0x5f4d415d,0xcccfc194,0x129dc09c,0xa28ac07a,0xa23cc1ae,0x6ca7c09e,0xb194086,0xb5a8c1be,0x3c82c09f,0x1fbc40e1,0xc8f3c1bf,0x66c1c09f,0x2ccc086,0x4c62c1be,0xd552c0d1,0xf2a4c122,0x3b9bc1be,0x4e4dc0d1,0xc5b4415c,0x56f5c1a0,0x4c69c0d3,0xd9f2414a,0x3793c1b0,0x3954c0d2,0x34534139,0x1345c1c1,0xd185c0d1,0x325c40ba,0x2b88c1a3,0x307c0d3,0xd8d3410d,0xd228c1c4,0xe269c0d0,0x2e8740fd,0x6d0bc1bc,0x2cfec0d1,0xb62cc07a,0x5dd7c1ae,0x2cb2c0d2,0x4300c0ff,0x6b9cc1bc,0x4e4dc0d1,0xc5b4c15c,0xbaeec1a0,0xaecac104,0xa3ea4122,0xfb7cc1c4,0xc3d7c105,0xf86040e8,0x9330c1b8,0x5cfec105,0xe55a4158,0x3927c1ae,0xea3ec105,0xaf19414a,0x4033c1af,0xd185c105,0x5f9140ab,0xd218c1a3,0xf5bcc104,0x686c40bb,0xd269c1a3,0x3934c104,0x4f08c0bb,0xd1a6c1a3,0x2b1fc104,0x71c04120,0xfc30c1b1,0xe4f8c11e,0xc0254146,0xa014c1bb,0x5f49c11e,0xdd644133,0x51cdc1a7,0x7e81c11f,0xb481c140,0x85aec1be,0x9eb5c11e,0xa6aec158,0x1569c1ae,0xafa8c11f,0x4a58c114,0xfd90c1b1,0x5cafc11e,0x25a94137,0xcc62c19a,0x9b07c11f,0x5f4dc15d,0x1c194,0x9160c120,0x3809c137,0xcbc2c19a,0x8c5dc11f,0xbf19c0ed,0x736fc1c0,0xef78c11e,0x5e61c0fd,0x327dc1ab,0xb329c11f,0x9bb7c0d1,0xfde6c194,0x12ffc11f,0x4c6540f8,0x6590c1c2,0xd764c11e,0xbea140d3,0xfcadc194,0x8c91c11f,0xccf9c0df,0xc74cc1be,0x5f46c105,0x519ac153,0xbfd3c1a1,0x294ec104,0x3077c11e,0xcac4c1bf,0x3156c105,0x4dbec13f,0x844bc1b7,0x4b2ec105,0xe631c0b3,0x4b30c1b0,0x2ebc105,0xba240fc,0x6c1441b6,0xb5ccc13f,0xba6840fd,0x6f0d41b3,0xaad2c0de,0x4dfc40e1,0xf67941bb,0xe1c8c0de,0x35474087,0x7d7641a6,0x44ddc0dd,0x23504054,0x22d141a1,0xe1c8c0dd,0x3547c087,0xf99541a6,0x1e1fc13f,0xc4f1c0c6,0x2ffc41bc,0x44ddc13f,0x2350c054,0x26e941a1,0xf130c140,0x80b2c0eb,0x4d2e41b9,0x1333c13f,0xcc4dc10f,0xc47c41c8,0x1bf3c13e,0xd8784106,0xa94041cb,0x7660c13e,0x9fb4c0ff,0x939641b1,0xd4ebc13f,0x164640d0,0x835841d0,0xf4a3c13e,0xe92d4128,0x28f541a0,0xf1ec140,0x6c454104,0xc81d4400,0x3cc083,0x65309df4,0x1693c012,0x360c41bc,0xf2aec13f,0x5592bff6,0xc2df41ac,0x27e7c13f,0x27924113,0x230741a1,0xf0a5c0dd,0xc233c127,0xc59241ab,0x2c63c109,0x1c60c128,0xf5c241ac,0xf6fc124,0xb919c122,0x932941bd,0x5cfbc125,0x830fc025,0xac1541c0,0x63b2c125,0x52663ff7,0xf7a141ac,0x841bc124,0xd7854012,0x796941ba,0x6d11c125,0xbe0e4128,0xf26d41ab,0x2382c124,0xadff4121,0x92c541bd,0x94eec125,0xf231405b,0xee8541c7,0x5f37c125,0x10a40af,0x680c41d0,0x7f2c0e0,0x55964002,0x79e641b4,0x552ec0de,0x150c0ae,0x924a3444,0xf40168c0,0xf7a0386d,0xb43999bf,0xde781841,0xfdf940c0,0xb4385c3f,0x97a1d41,0xf0e6bcc1,0xcec00140,0x88d1c41,0xa65897c1,0xcf6c1740,0x886fe41,0x4d4617c1,0xc62d5540,0x8d9ac41,0x5821ffc1,0xc7fcbfc0,0x8c96f41,0x5419bc1,0xcc7c06c1,0x8a15c41,0xd958eac1,0xca957140,0x8b23941,0x181cd7c1,0xb910c7c1,0x94ecd41,0x43e87c1,0xc55be5c1,0x8e0ea41,0xb6a718c1,0xf40024c0,0x26d47401,0xacba05c0,0x9bd2541,0x8782f5c1,0xf2002440,0x1e2b5057,0xaccf0841,0x9bc6141,0x1e2d85c1,0xacce55c1,0x24fbe541,0xf5721dc1,0xc89c83c0,0x25f47841,0x51bea5c1,0xbd3c85c0,0x258ecf41,0x1869fbc1,0xb8abcf41,0x2565fc41,0x7c1a4c1,0xc3d09d41,0x25c99941,0x263ff9c1,0x38031c41,0xd0f5b641,0x2daa85c0,0x3652ae41,0x6851ec41,0x2bbe54c0,0xc16aa41,0x9b3cf500,0x6041261c,0xec4130ef,0xe6c06851,0xd54123cb,0x674132ad,0xcbc0b0a9,0xec4122b8,0x4240e622,0xdec0b113,0x5841290e,0x26419681,0xc5bfcd70,0x9340c60c,0x9b419518,0xcabfcd70,0xd940aa6d,0x9b41942f,0x3bbfcd70,0x18a9f3,0x28d8fff2,0xc6c1b6a5,0xa440eccd,0xdebfcd70,0x34c1bb4a,0xa4410d97,0xc8bfcd70,0x5941c92c,0x853fa8a3,0x20bfcd7b,0x76c1345d,0x7f41b2cc,0x7cbfcd6b,0xa5c15058,0x93418add,0xabbfcd70,0x2dc10835,0x11418c2d,0x94bfcd37,0x58c106a7,0x224198c8,0x1ebfcd71,0xfd409c8b,0xacc193a0,0xfbfcd70,0xa440bd48,0x22c1a75c,0x1cbfcd6f,0x7f419faa,0x9bc1085f,0x28bfcd70,0x30c1b326,0x1ec108e4,0x56bfcd70,0x6cc0c57d,0x6fc1afb8,0x92bfcbf2,0x4c1b8db,0xe3c0c604,0xcbbfcd6f,0x784094c7,0xacc09cb3,0xefbfcd70,0xd6410fd1,0xa4c1164d,0x96bfcd70,0x26407a77,0xb5405134,0xf3bfcd70,0x65c1a127,0x9bc1085e,0x45bfcd70,0x42c1b0b1,0xa4411605,0xf7bfcd70,0xe419faa,0x93c0c4ea,0x7cbfcd70,0x4140b727,0xebc1960e,0x99bfcd6f,0x35c0ecf1,0xa8c1a569,0xdcbfcd71,0x48c10090,0x9341b1d3,0xd6bfcd70,0xe8c1a0b7,0xa440e787,0xa3bfcd70,0x9d413073,0xa3c1af06,0x34bfcd76,0xc8c17e8b,0x72c11c9f,0x69bfcd70,0x17c1af9e,0xa44117c5,0x1bfcd70,0xf4c09994,0xc241a526,0x74bfcd88,0x6b41bca5,0x37408837,0xf6bfcd70,0xadc09725,0xa4c0a35f,0xe3bfcd70,0xd6c0a38e,0xa4c0a849,0x39bfcd70,0x2fc094e1,0xa4c09cdd,0xc6bfcd70,0xc441b898,0xcec0c560,0xc5bfcd70,0xa8411669,0xa440867f,0xadbfcd70,0x9a4055be,0xa4406e96,0xc7bfcd70,0x19405fa1,0xa4406b1d,0x8ebfcd70,0x8040b412,0x9b41c246,0x2cbfcd70,0x140b457,0x9b41bb45,0xc0bfcd70,0xc7c1a137,0x9bc0c4e4,0x36bfcd70,0x7cc1a27c,0xa44117fe,0xa4bfcd70,0x8b413a5a,0xdcc19e32,0x6fbfcd84,0x1f417823,0xf10060be,0x5d57d704,0xebcd0e41,0xcd74f740,0xf71c9dbf,0xb4cccd40,0x10f1021c,0x41bdd184,0xc055964f,0xbfcd6feb,0xbf9dcc42,0x41b6b486,0xbfcd72a4,0x4115e240,0x24b8df43,0x3204f100,0x6b419fb3,0x933fef45,0x65bfcd70,0x5641ac20,0x184bc9,0x29310f1,0x58fc4122,0x73e2c192,0xef82bfcd,0x61a44110,0x70a4c11a,0x4db2bfcd,0x7c0f4114,0xf1000c1d,0x96ef6710,0x49609b40,0xcd70acc1,0x166b0bbf,0x1e2f4241,0xcd70cec1,0xff12abf,0x17b33141,0x9e710024,0xda40b0f9,0x54920d,0xa6666671,0x44cccdc0,0xfff40030,0xd80e50a9,0xb7ec0540,0x799275c1,0x7ed4ec0,0xc09bd041,0x9ccba3c1,0xc313b2c0,0xd1909d41,0x7b3333c0,0x20b580c0,0xb9067541,0xdd1eb641,0xb88ea2c0,0x276db841,0x9cbe98c1,0x7bb02ec0,0x9e422a41,0xdd1d5441,0x9c9b2cc0,0x80146f41,0xdd203041,0xc03eb2c0,0x1defe741,0x50cb41,0x872385c1,0x884a31c1,0xdd1d08c1,0xae2c52c0,0x2196afc1,0xdd1eb8c1,0x61ae64c0,0xa1672ac0,0xdd1ecd41,0x94c793c0,0xb5649ec0,0xdd1fb441,0xb39a39c0,0xc850dbbe,0xdd1d9341,0xf30ad4c0,0xa3e601be,0xdd1eb641,0x286c55c0,0xaa254f3f,0xdd1eb641,0xb11284c0,0x4394ccc1,0xdd1eb641,0x4418f7c0,0xb09f41c1,0xdd1f9b41,0x8b00bdc0,0xa2f7fb3e,0xdd1eb641,0x4f9e6fc0,0xa1087640,0xdd1eaa41,0x4779e9c0,0xa044f1c1,0xdd1e1b41,0x878c00c0,0xa5a69640,0xdd1e6f41,0xfb386fc0,0xb5649e40,0xdd1f9b41,0xa8766cc0,0x382a5dc1,0xdd193141,0x1a2da6c0,0xaf4a4541,0xdd260741,0x19a02cc0,0xa0eb8241,0xdd1eb041,0xc80000c0,0xbd3528c0,0xdd236c41,0x1441e2c0,0xa1354ec1,0xdd12ef41,0xa8a4ccc0,0x369a1f41,0xdd20fbc1,0xc1de4bc0,0xe0cedb41,0xdd2637c0,0x73c1a3c0,0x876ba141,0xdd1eaec1,0xa6c691c0,0x33a40d41,0xdd2640c1,0x891111c0,0x92f26b41,0xdd1ebac1,0x584876c0,0x925c5641,0xdd207bc1,0x200000c0,0xa7b22dbf,0x6851e741,0xeef827c0,0xa3f64dbe,0x6851e741,0xa9069c0,0xaa322d3f,0x6851e741,0xe24639c0,0xab3b463e,0xbe14000c,0x4f1000c,0xbf1a8c58,0x41a8fd77,0xc06851e7,0xc0e124e6,0xc8e6ae2,0x32e87100,0x59f5c038,0xf1000ca1,0x5b40110,0x97a1bac1,0x68526141,0xea587dc0,0xa1f07fc0,0x68525041,0xfd154ac0,0x9cedbfc0,0xa5710024,0x39c0935a,0xc9ba3,0xdc356171,0x967b45c0,0x4f1000c,0x4138ae32,0x4137f8f4,0xc06851ca,0x414b48c2,0x2816b7b3,0xbefff405,0x4142a1c2,0x40dc38f1,0xc06851ec,0x41658100,0x410d5795,0xc06853c5,0xc10f5b79,0x41a0a2ae,0xc108f5bb,0xc10081a9,0x41a744cc,0xc108f5a9,0xc195999a,0xc1315353,0xc108f5c4,0xc0f7ec5f,0xc197088f,0xc1090094,0xc0912ac9,0x41a0e148,0xc108f5c2,0xc08f8a1e,0x41a7a7dc,0xc108f5c0,0xc1b8572e,0x4105b4f4,0xc108f5c3,0xc1b6bfc5,0x410e50e1,0xc108f5c3,0x40f82060,0xc1973909,0xc108ff8a,0x40ddff24,0xc192ba26,0xc108f5c9,0xc19549d3,0x4120e9ba,0xc108f5bb,0x408fe63f,0x41a83ed8,0xc108f5ab,0x4116d970,0xc187971b,0xc108f5c4,0x41956c53,0x4120bdb6,0xc108f5bd,0x412645df,0xc18b22f1,0xc108f5c4,0x41407ad8,0xc192d7d8,0xc108f5d2,0x41aff58e,0x411ca9ab,0xc108f437,0x4159c5b7,0x4172306a,0xc108f590,0x41372598,0x419f9edc,0xc108f5c2,0xc18812a5,0x41738a2d,0xc108f5c2,0x415bbb75,0xc190ab37,0xc108f636,0xc124281f,0x41840a44,0xc108f5c2,0xc11cf6dd,0x418c1914,0xc108f5c2,0xc120db61,0x418cdb91,0xc0e1eb83,0xc0531690,0x4172350e,0xc0e53a45,0xc158ab36,0x41722930,0xc0e428f6,0x40b214e8,0x416f1fa6,0xc0ea93b4,0x40c532b5,0x413968c2,0xc0e64a86,0x4193e36b,0x4025eba7,0xc0e4291c,0x4193e409,0x3ed3929f,0xc0e428c6,0xc195001e,0x40c6b854,0xc0e428f6,0xc1825808,0x4103d8a4,0xc0e4292c,0xc0f7b682,0x416e4569,0xc0e4292a,0x4143ab29,0x41028e6e,0xc0e428f6,0x4171eb4c,0x4102b19c,0xc0e428da,0x414f76b4,0x410fffd9,0xc0e428f6,0x4195001e,0xfff20048,0x70a324ff,0x8b594167,0x3f8abf97,0x4e87c0e5,0x1b28414c,0xbc4140a8,0xa97c046,0x4b92c193,0xb852411e,0xbc90c046,0x985a4174,0xb8204106,0x6b65c046,0x2a1a414d,0xb8454162,0x9726c046,0x64d5415b,0xb86f4168,0x19fec046,0x9afcc0d4,0xeb4ac127,0x770ac046,0x2394c111,0xb8aac10a,0xb010c046,0x3772c0ae,0x1811c128,0xd8edc047,0xca4940ad,0xb852c0a4,0x9b89c046,0xf239413e,0xb86fc007,0x468fc046,0x5733c158,0xc2e7c144,0x501cc046,0x6e49c193,0xb852c12f,0xb270c046,0x5aa140af,0xb74e40ab,0xa075c046,0xd37dc0f0,0xb503c157,0xfd57c046,0xe45ac149,0xb888c0df,0xfedc046,0xa4a5416e,0xb8a63e67,0xacfdc046,0x85e0c134,0xb95ac0d8,0x70d6c046,0x1e38c0fb,0xb4c8c0bb,0x40c2c046,0xd053c096,0xa433c084,0xbb19c046,0x59af40ae,0xb852c145,0x7879c046,0xa387409b,0xb856c086,0xfda8c046,0x10a14092,0xb81bc054,0xafe4c046,0xc0eac0d0,0x3333c14e,0x97dc0b3,0x99dcc0cc,0xe77bc15f,0xd62cc0b2,0x70f2c0de,0xedb9c12e,0x702ac0b2,0xe49c0a6,0x3333c14b,0xe940c0b3,0x4e5fc08d,0x2b24c154,0xcceec0b3,0xe6bc112,0x35e3c13d,0x854fc0b3,0x9fb7c0b0,0x136ac15f,0xbc68c0b3,0xac5ac114,0x3314c137,0x7cfac0b3,0x4387c084,0x27bfc0c4,0x5617c0b3,0x4bb8c0d2,0x3333c0c3,0xbf39c0b3,0xa37ec114,0x3312c10a,0x1844c0b3,0x7dbdc0b1,0x3333c0cb,0x42e4c0b3,0x18cc118,0x25dbc0fe,0x7cbfc0d0,0x51dfc094,0x48a6c0df,0xe7d5c086,0x8479c085,0x580ac0c9,0x9cd6c099,0xcaa6c096,0x7b7cc12f,0x7ec5c083,0xa104c0a0,0xe98ac12b,0xe499c06c,0x4af9c086,0x74f9c13d,0x265bc094,0xee48c001,0x3333c141,0xd25bc0b3,0xc9774064,0x3333c12a,0x147c0b3,0x8f653fd4,0x3333c0f3,0xb9c7c0b3,0x963cbfc9,0x3335c125,0xa42bc0b3,0xd5563fd8,0x3333c0f7,0x2d73c0b3,0x49cdbfd0,0x1831c0f1,0x18bf1400,0x1d79f400,0xe6c13cd8,0xf9c157e4,0x2ec0d007,0x95c15545,0x53c1025d,0xa8c0d025,0x8b40c2c4,0x4d40c0f0,0x74c08690,0xc8c09c41,0x5240a3a6,0x73c066b8,0x90c0a939,0x52c0164d,0x53c066b8,0xfdc0a413,0x52c02933,0x43c066b8,0x8dc09d82,0x52c03944,0x37c066b8,0xd4c08c5d,0x52c0515f,0x46c066b8,0x86409ca2,0x52c03b04,0xa5c066b8,0x3440ac67,0x52c002f7,0xd2c066b8,0x3d40806e,0x52409a1e,0x74c066b8,0x60409c41,0x2804f100,0xd640970e,0xb640a5c9,0xe2c0898f,0xe7408ca0,0x787adf,0x91d21171,0x69206d40,0x4f1000c,0xc08b6a4f,0xbfd24d44,0xc066b852,0x4051ed35,0x901e62bb,0x5c27f200,0x1cc0859f,0xd7bfc1b2,0xa6c0644c,0x2bc06644,0xdcc006fb,0xd3c062f3,0x58c0774a,0x72405daa,0x9dc05115,0xa3c058d6,0xd44078b0,0x2cc050f1,0xd3408c9e,0x710060db,0x408cf61b,0x6079eb10,0xae04f100,0x6e40848c,0xd3bfb718,0x4ec05a86,0x8b4083d4,0x600c6f,0x835bec71,0xd1f6840,0x1071000c,0xb4c079eb,0x30868f,0x75ada0f3,0xf414144,0x3f8cbff9,0xa6a8c0e5,0x8223c0b3,0xa2e840de,0xb3abc066,0x1accc084,0xb63540ba,0x4fa5c026,0x8b5c077,0xb7bf40b9,0x4563c066,0x3ba14073,0xb76740b8,0x12bec066,0x5ad7c16d,0x7d3940e6,0xac32c0b1,0x3ebcc095,0x28f44166,0x6373c0b4,0xde99bfd8,0x28f64134,0x999ac0b4,0xcb1ec091,0x28f6410a,0xa24c0b4,0x74dcc092,0x28f64163,0x1705c0b4,0x57ebc002,0x28f6413a,0xbc32c0b4,0xd66b40a2,0x28f4418f,0x1855c0b4,0x2c81409b,0x28f44193,0x2aaec0b4,0xc0f3c0bc,0xf3e44188,0x8477c0b2,0xf251c010,0xf1003c1e,0x55409a0e,0xf441999e,0x64c0b428,0xc940ce87,0xf64132d8,0xb5c0b428,0x77bfcc6f,0xc2985,0xcd3d5771,0x3424bd40,0x54f5000c,0xc0f4c4ed,0x41652eb3,0xc0cbff39,0xc095a629,0x4164c351,0xc0cb079e,0xc095cc79,0x4107f9d9,0xc0cb11fb,0xc14eb8c7,0x4188d96b,0xc0b1c2cc,0xc0d6e871,0x41a01736,0xc09428f4,0xc09f454a,0x41b82eae,0xc09428f4,0xc0c80000,0x41bc6666,0xc09428f4,0xc0e4cccd,0x41ba7884,0xc09428f4,0x24f0bab6,0xa09f7100,0x57d8c0de,0x71003ca8,0xc0bfb7c1,0xcb5ba37,0x7100,0xc0c8,0x71000ca6,0xc0ac4986,0xcb20000,0xb7c16200,0x45c9c0bf,0x710018,0x9fc0b800,0x18b4ed,0xb8000073,0xa71261c0,0xd815000c,0xde710018,0xf040e6e8,0x18abed,0xaccccd71,0xb9c72740,0x6144000c,0x7840b15f,0x4400,0x3c40b8,0xe3b67a44,0x44006c40,0x40d0483f,0x33350090,0x3ce333,0xdea09f35,0x97c4003c,0x3ac0aa1d,0x2941b118,0xc0c10f5c,0x2808f100,0x9fc10f5c,0x28c0dea0,0x2841b3a8,0xa0c10f5c,0x93c0cf7c,0x24a5b0,0xc9185b62,0xcd59740,0x5f614400,0x2440b1,0xac498631,0x28110078,0xb8513834,0xb4ed9f40,0x5971003c,0x4240b9fb,0xcbb14,0x439c04f1,0xea85c093,0x5c5541b1,0xd684c10f,0xc36c091,0x710018a1,0xc0ee4c62,0xcb79318,0x297c3500,0x920018fe,0xc0fc5786,0x41b26728,0x14004866,0x350048c0,0x30a1b39e,0xfffff200,0x7c12dc09,0x8e45b741,0x46a9e741,0x1d2dd2c0,0xaccb8d41,0x46b1d141,0x9fc03cc0,0x47c8ac41,0x46983941,0x18c5d4c0,0xa2f6acc1,0x46c36141,0x8b31ffc0,0x6eb0acc1,0x46b84e41,0x8a1001c0,0x7661a4c1,0x46b84e41,0x883a45c0,0x7d54cdc1,0x46b84e41,0xc08c6bc0,0x1bf5a3c1,0x5e0f41,0xc92c06c1,0xbc332dc1,0x60ecc0,0xb8cc37c1,0xbd9c50c1,0x6666c0,0xcf2adec1,0x95db23c1,0x68edbf,0xca9091c1,0xbe2aa8c1,0x558640,0xb86bbdc1,0x96e02c1,0x66f341,0x87a099c1,0x864b9941,0x46b414c1,0x464e32c0,0x941dc241,0x9ccc49c1,0x36f1a7c0,0x999e0b41,0x9ccd08c1,0xfd3576c0,0xa2cccd40,0xf5c2ac1,0xf546a2c1,0x9c956140,0x9ccce0c1,0x412bb5c0,0x94a453c1,0x9ccceec1,0xdf6fb5c0,0x94c883c0,0x9cccd7c1,0x331c4cc0,0xa93540c1,0x9cceeac1,0x60048c0,0xbfec91c1,0x9ccccfc1,0xddaa08c0,0xb9b5e7c0,0x9ccd6ec1,0xf94c60c0,0xa8b109c0,0x9ccdecc1,0x7d6b1ec0,0xab05ffc0,0x9ccd18c1,0x880cc3c0,0xb8598740,0x9ccd0ac1,0x82422bc0,0xad02ee40,0x9cccd7c1,0x180002c0,0xb201f841,0x9cd0ccc1,0x586ef8c0,0xa9434540,0x9cccecc1,0xd00490c0,0xde939f41,0x7bda233d,0xca0d72c0,0xc8f8f9c1,0x7b3a7e3f,0xbac5dec0,0x1c36dcc1,0x7b341a41,0xde0bc4c0,0xb8cab8c0,0x7972ebc1,0xc00bfcc0,0xae5640c0,0x7994d1c1,0x899b86c0,0xb7f981c0,0x799a63c1,0xcf5959c0,0x5963ec1,0x7c257d40,0x7c707ac0,0x85dc60c1,0x46b856c1,0xabee20c0,0x1f3060c1,0x46b852c1,0xaba8e0c0,0x1eb10bc1,0x46b852c1,0xa81fbfc0,0x1a6a4cc1,0x46b852c1,0xac2a4ec0,0x22a447c1,0x46b852c1,0xa738a2c0,0x1b0b24c1,0x46b856c1,0x9463f0c0,0x6e9d5ec1,0x46b856c1,0xac5173c0,0x2136eec1,0x46b852c1,0xac22ffc0,0x54cbe6c1,0xbc04f100,0x1e410201,0x2ac1a926,0xa7c10f5c,0xac411e92,0xcaf10,0x24b2a271,0xadcbef41,0x4435000c,0x242dfe,0x18000062,0x247f70c1,0x45e46500,0xc132c114,0xc114003c,0x9a44003c,0xb0c10999,0x65453501,0x44000c31,0xc10201bc,0x7c71006c,0x66c10b87,0x60a666,0x3087bf62,0xc1620c1,0x2eae7100,0xe424c122,0x710018a7,0x4113dbe1,0xcaa8704,0xdb3d6200,0xcccd4125,0x440024,0x60410800,0x3500,0xf1000c28,0xaa1ac04,0xa00803c1,0x66b856c1,0x10cccdc0,0x9c908bc1,0x3f71000c,0x5ec12048,0xc9358,0xb1007804,0xc066b856,0xc0f8930a,0x18aacccd,0xa09e7100,0x1d1cc12e,0x71000cae,0xc10a1736,0xca4a9db,0x900400,0x66b856b1,0x1f3333c0,0xa9090fc1,0x1c310018,0xfc1bba,0x66b856b1,0x180000c0,0xb2cccdc1,0x4f10018,0xc0f495a5,0xc19ca5b9,0xc066b8bf,0xc1015f62,0x18977c7e,0x8ecda200,0x78a6c136,0xbc1bc19c,0x6c040018,0xb7c14400,0x9c410f,0x10000071,0x9bdf2e41,0xdd620030,0xec4136e8,0x400a8f0,0x6c0300e4,0xcd414100,0x2492cc,0xcafb171,0xa874f441,0x1802000c,0xc9a1300,0x14381100,0x300201,0xa410851,0x18b0a8,0xfb7c162,0xa8413b41,0x2e457100,0xa8ad40f2,0x4400189e,0x40f00000,0x9e440030,0xb4412ea0,0x483f3500,0x62003020,0x410a24c3,0x30cccd,0xcafb171,0x9d24a541,0x4f1003c,0x3f3a6363,0x41b5a71b,0xc067b557,0x3e7e5fb7,0xcb6b032,0x278d7100,0xa73cbf94,0xf2000cb3,0xfcc2ccff,0xfce4058,0x18ec419f,0xae86c066,0xe1044120,0xf5bc4131,0xeb31c0d0,0xeb2140cf,0xf5c5419a,0xb511c0d0,0xcc7f40ca,0x1fc4191,0x75bc0b1,0x3995c08d,0x8143419b,0xa49ec0b1,0x7817c08e,0xa5c64194,0x8701c0b1,0x3d49c08f,0x1f58419e,0x2a06c06a,0x530c093,0x8ed6419b,0x7e5ac06f,0x4d79c004,0xdaad4139,0x3337c0b3,0x1df3bff2,0xdaad4137,0x2368c0b3,0xf39cc055,0xdaad4130,0xf972c0b3,0x645abfd1,0xdaad412d,0x7e5ac0b3,0x7b3bc004,0xdaad4121,0xb70bc0b3,0x83f1bfe0,0xdaad4126,0x3b0cc0b3,0x8268bff4,0x2852412c,0x22c9c084,0x8aaec019,0x25634123,0xfe5c084,0xb5cc41af,0x19b54113,0xc794c0ab,0xc12941b5,0x828ec0cb,0xdb8dc0ab,0xfbd8c1ae,0xa9284113,0x796c0aa,0xf594c1bb,0xdc424080,0xfbe7c0aa,0xfa8fc1a2,0xf7d34005,0x72eac0aa,0x685ac1bd,0xdbb6bf97,0x3f97c0aa,0x6ac2c1bc,0x22f9c046,0xfc1dc0ab,0xf348c1a2,0xe271c104,0xdb40c0aa,0x55a6c1b5,0x1f0cc0ca,0x4667c0a8,0xc7a441bc,0xb2cfc046,0x77f1c0aa,0xab5841a1,0xf7cdbf96,0xc188c0aa,0x5dab41b6,0x142f40ea,0x3b56bfce,0xb73dc115,0x2841c11c,0xfd6dc017,0xd8434110,0x68a9c118,0xdf4c013,0x895f4116,0x28f7c187,0x96a8c110,0x5204128,0x28f7c18b,0x595ac110,0xe9e9415d,0x28f7c16c,0xaae3c110,0xad0ec158,0x28f54170,0xf57ec110,0x1ed0c11c,0x28f54183,0xab81c110,0xcae1c13a,0x28f5419f,0xcccdc110,0x6c6e41b0,0x28f6410a,0x6c6ec110,0xcccd412a,0x28f541a0,0xf1a6c110,0xc7754193,0x28f64121,0x42cfc110,0xf4784137,0x10f10030,0x414d7efd,0x41998948,0xc11028f5,0xc128264e,0x41851cbf,0xc10828f5,0xc11dc106,0xc83038b,0x89657100,0x51e1c11a,0xf1000c8c,0xb8cccd10,0xe54ad3c1,0x828f6c0,0xb7cae1c1,0xaab80c1,0x828f641,0x3cb879c1,0x9f5e28c1,0xf4b40024,0x5a419274,0xf6c12559,0x900828,0x62000c01,0x413ceec4,0x24cae1,0xcccd1cf4,0xcccec06c,0xc28d4194,0xcccdc0a1,0xcccdc06c,0x5c294140,0xf3e4c09f,0xe67fbee2,0x9cd44171,0xf577bfce,0x5bd8be6a,0x14000c76,0x71000c3e,0x3ea62414,0x18753121,0x7ae57100,0xabd63ecb,0x44000c73,0x3ee2f3e4,0xb362003c,0xebead61,0x7100246b,0x3df33f42,0x2468e861,0x59327100,0x2b34bed4,0x62000c6c,0x3e7532e8,0x60a2ca,0xf120f2f3,0x87d2be8b,0x6fdb4178,0x250bbfc7,0xd6473eab,0xdac74166,0xa3dbfc7,0x2cdf3e97,0xf5ba4178,0xed35bfc8,0xf689bfb0,0x665e4188,0x861abfc6,0x32d8bffd,0x64774182,0xd2b7bfc6,0x28a13fa5,0x66884184,0x2389bfc6,0x59614006,0x6c764182,0xf430bfc6,0xb9b13ec0,0x6613414d,0x9c88bfc6,0x1a754001,0x6602415b,0x7e63bfc6,0xd3b54007,0xc8d64169,0xe482bfec,0x303e3fdf,0xcaef415c,0xbf62bfec,0x2c263ff7,0xccc44163,0x66fdbfec,0x1b493ec2,0xcf31414e,0x9a95bfec,0x74cbbff1,0x99954161,0xe7b8c009,0xf066bfe1,0xccc4415d,0x4e48bfec,0x85dabfd4,0xccc4415b,0x84bebfec,0xb82fbf84,0x8f2e4150,0xe3b4c009,0x7c09bfa6,0xd1b74157,0xcabcbfec,0x165bbfea,0xf9594181,0x2abfc00a,0xdb8d400a,0x99954165,0xfcadc009,0xb894002,0x99954161,0x2abfc009,0x188ec00a,0x90fff200,0x4006399f,0x417d099a,0xc0099995,0xbeac80a6,0x414bf131,0xc013ab8f,0xbff8c60d,0x415d6799,0xc04710ae,0xbf9a5b96,0x41550d75,0xc02dcf5f,0x3ed95f24,0x414b9ae2,0xc0240fcb,0x3fb29236,0x41577305,0xc02ab3af,0x3fd01227,0x4184a94f,0xc01e960b,0x3f4fe187,0x41871ee4,0xc0254973,0xbf94b6f2,0x4187b06d,0xc01b372a,0xbf5518a0,0x41894532,0xc03b9414,0xbfbab47c,0x41837a52,0xc0225e89,0x3f881b00,0x41863b36,0xc01611a5,0xbff6641b,0x417b4884,0xc0117bf6,0xbfe4a961,0x418357da,0xc02a27b3,0xbfa9a101,0x4184a68a,0xc0329e52,0xc0019ad0,0x4175b7b4,0xc030b799,0x3fb658a3,0x41849811,0xc04a734b,0xbfe570f8,0x415ccf0e,0xc04c7725,0x3ebdfdce,0x414f7a12,0xc04c2a35,0x4002ebe1,0x4168c465,0xc04cccc9,0x4002b7e5,0x41688a85,0xc063332f,0x4004b008,0x41744c6c,0xc04aae79,0x3fd1a7eb,0x415b19c2,0xc063332f,0x3f9475de,0x4184705f,0xc06130cf,0x3fe74c01,0x417964e5,0xc063332f,0xbeeeaf47,0x418856fd,0xc063332f,0xbf164d3c,0x418674c4,0xc0619995,0xbf43f089,0x418799f8,0xc063332f,0xbf8ef2d0,0x41844c0f,0xc0619995,0x3f907ee9,0x4156cff8,0xc06100de,0xbf9df21b,0x41838ee4,0xc063332f,0xbff99f88,0x417c3f09,0xc063332f,0xbfe74c01,0x417964e5,0xc063332f,0xbff27347,0x4172629a,0xc063332f,0xc005b481,0xc8145,0x61010f1,0xcc58bf8a,0xccc94187,0xa58fc01c,0xba593fcb,0x5c254184,0x8e50c06f,0xc9793fe6,0xf1000c82,0xff38c504,0x8061213f,0x6f5c2941,0xe88c6c0,0x751f9340,0x8d710030,0x36bfac97,0x18532e,0xb1000c04,0xc01ccccd,0xbfbc9995,0x1854cb03,0xa7eb7100,0x6ccebfd9,0x92000c58,0x402e553b,0x415b9de5,0x41000cc8,0x82310ec0,0x10f1000c,0xc045da45,0x415c230a,0xc0770a3d,0xc030a5ad,0x418a8c37,0xc06fe083,0xbf654563,0x3c45c536,0x1e5c7100,0x999ac02c,0xf1000c59,0x6659fb1f,0x48cfe740,0x7cc92141,0x65c8c9c0,0x8a91b940,0x8b310e41,0x666666c0,0x8d33333f,0x8b333141,0x266666c0,0x8cbe1740,0x18202341,0x9abf4100,0x184599,0x80000071,0x8ecccdc0,0x9a46000c,0x30c01999,0xbf662400,0x3371000c,0xc03333,0x248c00,0x73333362,0xccccdbf,0x999a4400,0xcc019,0x19f1cf1,0xa679c022,0xc719418e,0xd3b7c051,0xa744407e,0x332f418e,0x6bd7c053,0xb21bbf0e,0xff8f4142,0xab0dc04f,0x164cc037,0xf1001888,0x36f1fa10,0x86eaeac0,0x5cccc941,0x40c8b8c0,0x84c1ecc0,0x5cb69541,0x3e6666c0,0x84aaffc0,0x2a710018,0x66c0388b,0xc8566,0x3b509c75,0x873333c0,0x9a22000c,0x62001899,0xc0466666,0x30cccd,0x6e331cf1,0x656dc04e,0xdc944185,0xb2ffc07c,0x9273c02d,0xccc94182,0x59ffc07c,0xcfe6c066,0xca5c4148,0x6666c07c,0x1c99c036,0x7100185c,0xc02c5a68,0xc89999a,0x7100,0xe4dc030,0x62000c8a,0xc02c7a3a,0x18b7ce,0x2f0e5e62,0x180a53c0,0x3f1cf100,0x4cc06e58,0x3b418e03,0x86c0551a,0x594034c8,0xfc4172f6,0xacc04fff,0x23c033c7,0x624172f2,0xa7c01666,0x104031b0,0x1878d6,0x30b43571,0x78c98340,0x2db10018,0xdf3e94af,0x9d418c98,0x3019d8,0x6d0ddd31,0xb1710018,0x13bfcdfc,0xc87d3,0x10e72171,0x5d3ab640,0xf271000c,0x24402195,0xc5c14,0x227ccc71,0x5bf7af40,0x8f50054,0x407ecef2,0x4159e5a9,0xc0522221,0xc073d4c7,0x41466a8e,0x3c542885,0xccc9b100,0xd1ccc01c,0xc8c7c022,0x4029472,0x8f10060,0xc01cccc9,0xbe982907,0x4187034e,0xc05ffffc,0x3fe74c4d,0xc7964c8,0xcfe17100,0x8b1fbf5c,0x71000c85,0xbfd8b0b8,0xc7dcd4b,0x8604f100,0x33bee01b,0x4152d4,0xeac06000,0xc0bfe440,0x1866ba,0xd5d76f71,0x62615abf,0x1d62000c,0xb3bf37b0,0x71003cdb,0xbf8d1184,0x188422a0,0x429a7500,0x5a91bfef,0xf1000c72,0x6da56f0c,0x4e147741,0x79b4ddc0,0x521fde3e,0x4e310541,0xcca234c0,0x7facca3f,0x1cf10018,0x3fa1be44,0x4182ee3a,0xc04b8859,0x3fbf9392,0x4180b2f9,0xc04c7add,0xbfe641a2,0x4176e911,0xc04ab4ee,0x3fc9e871,0xc7f7724,0xe23f7100,0x5e6c3fe9,0x71000c6b,0xbfe6420f,0xc691727,0xc6ac7100,0xac49bfda,0x71000c64,0x3f125764,0xc53d93a,0x3c257100,0xa72f3f35,0xf4005454,0x1daae7cd,0x5b8757bf,0x4f70ef41,0x947326c0,0x628470bf,0x4c332f41,0x835936c0,0x5dc2e03e,0x5f392641,0x477dd8c0,0x6ffde0ba,0x5646c741,0xa3fb7ac0,0x7827d0be,0x60047541,0xf8d973c0,0x8012f7be,0x5e68a141,0x27f2f5c0,0x750e15bf,0x614f6141,0x32cc3ec0,0x7e034abf,0x5e68a141,0x98609ac0,0x6ecf3fbd,0x571aac41,0x7b239ac0,0x757e0abf,0x604c9d41,0x1d7b0fc0,0x67c854bf,0x6225a241,0xc0,0x6ded6680,0x576e0141,0x812f6fc0,0x683935bf,0x5e68a141,0xafc137c0,0x604dc6be,0x604c9d41,0xb359e6c0,0x7553653f,0x4d67a541,0x3a68d3c0,0x7000003f,0x614f6141,0x8e3077c0,0x6891253f,0x5ce3ce41,0x11bda5c0,0x7743973f,0x614f6141,0xa3fb7ac0,0xf100a83e,0x3c23d904,0x7bc23d3f,0x604c9d41,0xafc137c0,0x7fb23a3e,0x58f3000c,0x4004aa2a,0x417480d3,0xbfecccee,0x3fe7211d,0x4181ef5e,0xbfeccc0c,0x3eca8cbd,0x4189214d,0xbfeccf07,0xc0036488,0x415ae2c4,0xbfeccb32,0xbed6770c,0x416bc6ab,0xbfd46bcf,0x3f733333,0x4139999b,0xc07f5c29,0x40a582b0,0x41904824,0xc08bfe04,0x40d00000,0x4164d9ce,0xc08bfe04,0x3fb9999a,0xc2e6666,0xd502f100,0x63333340,0x8bfe0441,0xd49642c0,0x7c1e1c40,0x14f1000c,0x40e9999a,0x413ccccd,0xc08ccccd,0x408cccb6,0x4191999a,0xc0e63d6f,0x40c33333,0x416a0941,0xc761605,0x270cf100,0x4e4177c4,0x7c07941,0x9640ce6f,0x64417b0a,0x9ac08666,0xcb40e999,0x489918,0x333304f1,0xccce40c3,0xd764417a,0xcccdc089,0x999a3dcc,0x71001839,0xbfe00000,0xc2564c8,0xcdc4f500,0x9b4064cc,0xc413999,0xc085d6,0xc8c05000,0x9e412564,0xcfc09597,0xee40dccc,0x8b4165c2,0x50c0881a,0x2440ca7d,0x38419048,0x7fc09f31,0xd5bfe5a1,0x3a4132bb,0x55c09f31,0xf2c1469a,0x8f416669,0x1dc0a0ed,0x5cc1477a,0x3f4167fa,0x61c0a0f1,0xbc1471d,0xbf416791,0xcac0a0f3,0xaec14773,0x634166fe,0xecc0a0ed,0x4dc14706,0x48416789,0x42c0a0ed,0xc0c14793,0xc54129fb,0x1cc0a0f2,0xbec146e9,0x2e412914,0x58c0a0f1,0x48c14659,0x9341298f,0x5dc0a0f1,0x75c15920,0x1f412ff5,0xaec0a0f6,0xd7c15992,0xb3413037,0xabc0a0ed,0x644102d4,0x81418cb2,0x9bc0bac0,0xdd410409,0x74417112,0x9bc0bd5d,0x76410409,0xc7aac,0x97fc1bf2,0x5d74414c,0xbfd1c0bd,0xefd54104,0x89dd4186,0x4896c0bd,0xe5974104,0x95404187,0x9e68c0bd,0xfe624104,0x9b934142,0x62310018,0x1842fe,0x4f1,0xcccdc0b0,0x40fc,0xb67cc050,0xcccdc03b,0x71000cc4,0xc0523d25,0xcebc635,0x581cf100,0x7ec06770,0x4419722,0xc0513c,0xcbc04000,0x40dccc,0x8c04000,0x1ec07420,0x41268b,0x71c05000,0xb8409976,0xc340c,0x28c5d271,0x546f0e40,0x73000c,0xcd408800,0xc38cc,0xcd402051,0x54bccc,0x41172271,0xe0f0eb40,0x8471000c,0xcd404449,0xce4cc,0xaed5cb71,0x85864e40,0x4f104e0,0x406b0f02,0x4196699e,0xc04ff890,0xc05ccccd,0x48300000,0xb917100,0x7cf74004,0x7100248b,0xc05dffda,0x182db8ef,0xc9f17100,0x7e6c4093,0x7100188f,0xbf04baa6,0x183e4993,0x2f1b7100,0xc5abbe85,0x62000c3d,0x4051c28b,0xd8dc8e,0xa0000071,0xeccccd40,0x440078,0x840b000,0x3c0601,0xc0301ef1,0xbffcaa2a,0x4148a05f,0xc0300000,0x3fed8dd6,0x418ce249,0xc02ffffc,0xc0af746f,0x40f8a8ac,0xc0300000,0xc0addb3c,0xcf4cccd,0x504e7100,0x7c7ec0ab,0x71000cf1,0xc0a4241e,0xced585e,0x15c0600,0xc03091,0x8fc03000,0x18bef1,0x8f919271,0x27c3a140,0xde710060,0xacc03ee8,0x18c8a8,0x8d1fcd71,0x282b14c0,0x330018,0x1447000,0x14003c01,0x6003c40,0x30910138,0x6e6666c0,0x379efbc0,0xb8710030,0xd4093c0,0xa88f7b,0x523d2542,0x9101c840,0xc030,0xf18f40a8,0xb70060ee,0xc0898d39,0x4190f98c,0xfc2f9ee9,0x301ef100,0x3e121bc0,0x9ebd3940,0x6a3ab041,0x52c461c0,0x9bf36040,0x4734ca41,0x318555c0,0xa247cec0,0x4851e741,0x27b491c0,0xb6676d3f,0x1571000c,0x59402b39,0xca49d,0xb1d0c871,0xb210d23f,0x4f1000c,0xbdb1f362,0x41a03ca4,0xc06851e7,0xbfa3d04a,0xcb30921,0xf2dc7100,0x27b63db1,0x71000caf,0xbe88c4bd,0xcb729b3,0x8c9c7100,0x8f3b3f5e,0x71000ca9,0x3f22ead9,0xcacc984,0x701cf100,0xc9c0280a,0x9541857f,0x16c02999,0x3e4016f6,0x9a414f4c,0x6bc02999,0xeb407b9f,0x5241384f,0xc0299b,0x9f408800,0x1836ed,0x64498471,0x340000c0,0x8771000c,0x64bfd7fc,0xc45fd,0x60000031,0x9ab30240,0x70c02999,0x6fc0280a,0x185500,0xc08051,0xc3800,0x47c01a71,0x70000040,0xf671006c,0xc8403b27,0xc80b9,0x280a7044,0x71008440,0x3fbf75da,0x188dea23,0x4400,0x78c088,0x611ada71,0x8ff5183f,0x6e710018,0xf43ee36b,0xc90b6,0x29d71371,0x3f3421bf,0x4e710060,0x28c08b50,0xc35a8,0x695f6371,0x2a57d840,0x8471000c,0x406449,0xc2c00,0xcc4904f1,0xcb734082,0x9c244127,0x1722c029,0xedf04061,0x7100182d,0x3fef6977,0xc4805dd,0x7e28f100,0x8fc08d52,0xb412efa,0x2bc06847,0x7040816e,0x1e4137ab,0x62c06751,0xe94064f3,0x824130e3,0x62c068e3,0x6a3fe966,0x66410b40,0xbfc666,0x3d3fe000,0xc0ccc,0x243a94f4,0xa5f03fe5,0xcef24110,0x18bdc026,0x86413fee,0x6c874110,0x8cd6c029,0xfef33fde,0x69404111,0xad64c029,0xbb17bfe5,0xa11b4110,0xeb4ac027,0x55e1bfdf,0x99804112,0xc4ec029,0x8fcbbfeb,0xbae0410c,0x1c7c027,0x8e55c091,0xf883410c,0xf230c026,0xcf92c09a,0x65674112,0x4a2ec029,0x3afbc09d,0xbea14185,0x21dc026,0xaf98c03d,0x65674197,0xc072c029,0x14e5409b,0x66a1410d,0x82b8bfc6,0xf9d8c09b,0x662c410c,0xbfc6,0xd44bc0a0,0x665e4183,0x407dbfc6,0xd472c09e,0x14000c85,0xf1000c40,0x28068a07,0x65ea4840,0xc6665e41,0x22ef5fbf,0x4540e1bf,0x18650641,0x18c01400,0x44707100,0x9c4ec02c,0xf100246c,0x8023e204,0x8c39acbf,0xc7873841,0x1fa57abf,0x5f77d440,0xfff40018,0xc2c1d319,0x4b5efcbf,0x5794241,0x142181c0,0x56c06340,0x9656741,0x14973c0,0x508875c0,0x97cb341,0xaff11c0,0x5449dcc0,0x8cc2941,0x49946c0,0x513dd9c0,0x9999a41,0x18d624c0,0x59f0a140,0x7d7a541,0xf1d8aec0,0x4f6b40bf,0x8cc2941,0x2497a2c0,0x5dbed840,0x98c7a41,0xc5ada7c0,0x4bc1e4bf,0x6976841,0x257e5ac0,0x5fc31c40,0x8cc2941,0xb8173cc0,0x49cf4dbf,0x8f81a41,0x2c0e3dc0,0x662eaf40,0x7d7a541,0x2d7fa6c0,0x69765b40,0x6976841,0x2e48a1c0,0x75ded140,0x5ff5441,0x2d535dc0,0x661c2240,0x8cc2941,0x9a2e1bc0,0x48076ebf,0x8ad9f41,0xb4e2cac0,0x48d64abf,0x9999a41,0x32dd90c0,0x69429540,0x9999541,0x314934c0,0x6cadb640,0x8cc2941,0x4ede76c0,0x46158ebf,0x6976841,0x5012f1c0,0x45d70dbf,0x7d7a541,0xd134adc0,0x44a017be,0x6976841,0x5303c0c0,0x4400d7be,0x7d7a541,0x51cac1c0,0x4442103e,0x6976841,0x549279c0,0x43adb33e,0x3f140048,0x4f10048,0xc02cd474,0x41697cce,0xc0051fde,0x3f536102,0x38452ba0,0xa404f101,0xf1c02ffc,0xa5416cb3,0x21c007d7,0x693f81e7,0x13846a0,0x8c6104f1,0xf8a33f84,0xb04f4145,0x457c009,0x1edbc027,0x71003c63,0xc02fcc21,0x2469602e,0xdd904400,0xc0c032,0x2447ed71,0x5fe191c0,0x11710048,0x283fdf90,0x604cf5,0xe18f9b71,0x4ca4f93f,0x4f10180,0xc01c703f,0x4153527a,0xc009ca79,0xbffb776c,0x184bb959,0x7104f100,0xd0402891,0x61417fd2,0x24c0098a,0xadbfcf9b,0x18479e,0x9f84f571,0x445671bf,0x10f1000c,0x402883ae,0x41838081,0xc0099995,0x4008dd83,0x41891bb0,0xc0099946,0xc03e0bb3,0x18692b3c,0x39006200,0x85eec038,0x7f620f90,0x4ac02cd9,0x71000c54,0xc033e4f3,0x2480631c,0xb804f100,0x99c01193,0x804187c4,0xb5c00999,0x124007c3,0x604e0f,0x8631be71,0x8e7c9ebf,0xaa710024,0x30bf5544,0xc8d9b,0x585ee571,0x8f0720bf,0xfff4000c,0x7f00ce22,0x4236753f,0x247e7c41,0xa0a609c0,0x440751bf,0x2388f041,0xfe6f50c0,0x4b07b83f,0x21d1dd41,0x2ca565c0,0x59dcc540,0x25becf41,0x2b733fc0,0x58986440,0x27d7a541,0xfd9f88c0,0x4b69b4bf,0x251fde41,0x1ea02cc0,0x52504740,0x29656741,0xfe8249c0,0x4b48ffbf,0x26976841,0xc1c9fc0,0x4cf8d8c0,0x29656741,0xd21e26c0,0x47219cbf,0x26976841,0xd33911c0,0x46ea95bf,0x27d7a541,0xed7dc8c0,0x4857f6bf,0x29656741,0x383fbcc0,0x5ed1d540,0x28cc2941,0x39a79cc0,0x5eb04840,0x29656741,0x3de1cec0,0x65ac6640,0x26976841,0x87d15fc0,0x427b78bf,0x26976841,0x402752c0,0x658cc540,0x28cc2941,0x415b4bc0,0x690cc540,0x27d7a541,0x888837c0,0x423e2fbf,0x27d7a541,0x8a7dc3c0,0x419619bf,0x29656741,0x4625e1c0,0x70000040,0x29656741,0x2733a9c0,0x3ff62bbf,0x28cc2941,0x607571c0,0x3ef69ebe,0x28cc2941,0x77ded7c0,0x3ec84b3e,0x293eb841,0x261826c0,0x4047a13f,0x27d7a541,0x2733a9c0,0xf400303f,0x6960a60d,0x412dc13f,0x287c4e41,0x287a3ac0,0x3f98573f,0x29656741,0x888837c0,0xf100783f,0xb99c2004,0x4582963f,0x251fde41,0x3b6ea0c0,0x623dc2c0,0x46710138,0xf9c03707,0xc5eee,0xa1a501f4,0xa4723fd4,0xcc294146,0x8249c028,0x1383ffe,0x22e7ea71,0x55d3a1c0,0x4f1003c,0x4012dc05,0x41502fb7,0xc0269768,0x400b0d06,0x304d3cbe,0xdc054400,0x18c012,0x22e7ea44,0x71003040,0xc01ea02c,0x9086d7dc,0x104f100,0xaac034c0,0x724181cc,0x46c028fe,0x84c03707,0x788088,0x383fbc71,0x809715c0,0x4f10048,0x3fd73ed5,0x418c88ce,0xc028b913,0x3fbc7c85,0x188d92fe,0xe1767100,0x6182c03e,0x7100307a,0x3f888837,0xc8ee0e9,0xd8e47100,0x7be3c042,0x71000c73,0xc0442589,0x307381d6,0xb4af7100,0x1bbb3e5c,0x71024090,0x3f287a3a,0x849033d4,0x6200,0x2b7f0000,0x71710018,0xb13e6075,0x309084,0x26182671,0x8fdc2fbf,0xa9620048,0xebbf2733,0x71001804,0x403facf3,0xfc76e3c3,0xd8e44400,0x6c4042,0x5f4c9071,0x8fc3e4bf,0x92710054,0xc3404421,0xc770c,0x37074647,0x1400d840,0x7100d840,0x4039a79c,0x2480a7dc,0x1c9f7100,0x8394c00c,0x71000c89,0x401d6cb1,0x8486bb17,0x1f04f100,0xce3fd9f3,0xde418914,0xdac0051f,0x4dc01f00,0x3f08192,0xa9ca10f1,0xede7c027,0x9768417c,0x1ea3c006,0xb509c02a,0x88f04179,0xc836c003,0xebb43fae,0x7100308a,0x3faf7553,0x248afe72,0xd4747100,0x8332c02c,0x71001876,0xc029e27a,0x507d19c2,0x7fa67104,0x89a5c02d,0x71002476,0xc02ef7be,0xc73472b,0xcc217100,0x9fd2c02f,0xf1002476,0x3147ed04,0x76ae22c0,0x9656741,0xd5c444c0,0x8e28fe3e,0x4c71000c,0x84bed3fa,0x248df9,0xd5c44444,0x710018be,0x40314934,0x1873524a,0xc8367100,0x59774032,0x71003073,0x402c0e3d,0xc079d151,0x938a7100,0x30ecbf9b,0x4400188c,0xbfd9f31f,0x357100e4,0xb94022b3,0xa87ff6,0xc6d46f71,0x8a3a14bf,0xff710030,0xb9bfdaca,0x9c8925,0x92e204f1,0xc567bff5,0x69594187,0x517ec007,0x3610402b,0x7100487d,0xc0009eba,0x2486eaf1,0x90117100,0x856cbfdf,0x71001889,0x40001fd1,0x5486dc39,0x21817100,0x9fce4014,0xf1001884,0x96666604,0x180000c0,0x29999a41,0x8e6666c0,0x111261c0,0xb771000c,0x8ec091b6,0xc240e,0x9441a471,0x3d999ac0,0x6673000c,0x9ac09666,0xc4199,0xfbc08e51,0xc3aab,0x62a210f1,0xa429bfba,0x3850413f,0x1494c026,0x70103fa8,0x70a04190,0x5e68c025,0xb7efc044,0xf108d081,0x9d04f704,0x3e6d453f,0x2570a441,0x8a8a87c0,0x1045c940,0xb771003c,0xd84091b6,0xc1257,0x96666646,0x51009040,0x66664096,0x7100181e,0x408a8a87,0xc26209e,0xbc9d7100,0xd0b7c04a,0x79005494,0xc019f549,0xc8a1271,0xaa00f100,0xa3c02147,0x4c040ce,0xaa419614,0xd82147,0x25540551,0xcae41,0x66c08651,0xc2666,0x8a8a8762,0xc209ec0,0xd80400,0x31002404,0x2439999a,0x3a9f6200,0x66664031,0xa8040048,0x47aeb100,0xdad5c021,0xedf04095,0x71002415,0x40626a0e,0xc37f313,0x66664400,0x604086,0x8e666644,0x71007840,0x4091b6b7,0x24240e8e,0x8804f100,0x86c185ed,0xc9c16a71,0xaebf251e,0x10c19182,0xc8bcd,0x71d40f71,0x8184dec1,0x5071000c,0x8cc16e45,0xc9552,0x9ef38692,0x64ae3ec1,0x18a841,0x184114,0x70ba8e62,0x30aeea41,0xbdbe7100,0x4f564181,0x71003094,0xc1738122,0x3072c219,0xd8bc7100,0x63d2c17c,0x71000c9d,0xc13d1523,0xc8e7851,0x1ab57100,0x422dbffa,0x71000cac,0xbfff7319,0xcc90b91,0x50127100,0x5dd83f39,0x62000cb2,0x3f9d439e,0x1847b8,0xa6c8e71,0xbd7e7c41,0xcc710018,0x8640c497,0xc9524,0x56cdd571,0xaae15e41,0x1371000c,0xa4412f0e,0xc93af,0x3452ed71,0x92617541,0x10f1000c,0x408d054f,0x41994e30,0xbfec28ed,0xc1927819,0xc18af1be,0xbfec28fe,0xc1855e62,0xc6d2277,0xe8ed7100,0xded8c182,0x71000c93,0xc16fb809,0xc81f4b5,0x45507400,0x6707c15e,0x14000c83,0x4000c41,0xedb100e4,0xe3bfec28,0xd7c14838,0x608bc3,0x3e46f071,0x8e5558c1,0x2f71000c,0xa7c137c1,0xcb401,0xb100f004,0xbfec28ed,0xbf8b3094,0x18ca38f6,0x50127100,0x5dd8bf39,0x71000cb2,0x41869e45,0xc52da3b,0x5c877100,0x5c634119,0x62000cba,0x413cf26f,0x2400c5,0x2965b271,0x947cc741,0xf710018,0x88415ebc,0xca7f3,0x26f5fff5,0xb7c1d42d,0xcd40b67c,0x44c114cc,0xc1c662,0xcc413000,0xc5c114cc,0xa2c1d891,0xcd3fe10c,0xec114cc,0xfc1c2a1,0x1441205b,0x39c10e40,0x37c1d008,0x3fc04cfa,0x54c10951,0xf4c1d0d8,0x57c08523,0xbbc11055,0x93c1c108,0x76412cb7,0x84c11050,0x64c1ca4f,0x57c0f666,0x15c11055,0x66c1da50,0xa6c0f666,0x97c03bb5,0x66c1d019,0x9ac0f666,0x87c03999,0x5bc1e7b3,0x1640287c,0x38c06d88,0x48c1e2fa,0xcd406f19,0x7c04095,0x84c1e76d,0x7cc04cd8,0xb5c0649c,0xc1e60f,0xa4bfb5ad,0x19c04b70,0x5ec1e472,0xa2bfb466,0x7dc041d3,0x1ac1d78c,0xa441226e,0xccc04b70,0xbdc1d3b6,0xd94122d3,0xf2c03bb0,0xdbc1e308,0xe140b4c1,0x58c0567c,0x6fc1e884,0xcdbfb79d,0x89c104cc,0xa1c1e535,0x4c3fe4da,0x80c11184,0x16c1e68a,0xea3fe62f,0xabc10eef,0xb9c1e254,0x7b3f7653,0x1ec11473,0xedc1e3e9,0x4c3f780b,0x2ac1136d,0xebc1e5ad,0x6bc092e5,0x26c10868,0x8ec1d35e,0xf641228f,0x74c11473,0xa8c1dc3a,0xf6c0d2fd,0x9cc11473,0x60c1dfb5,0xa9c0dff6,0x97c10fcc,0xccc1d010,0x9a402027,0x2fc07999,0x78c1d103,0x9a3e96b3,0x70c07999,0x59c1ceb0,0x1c0da86,0xe1c03f14,0x65c1d2d0,0x793e9800,0xdc0511e,0xb7c1cf80,0xd9c0e2b3,0xb3c03b7a,0xdec1d1ce,0xf1bee3aa,0xa0c05d81,0x83c1cbc3,0xf140c87a,0x98c05d81,0xebc1d0a5,0xec4099f1,0xe8c046c1,0x24c1d75b,0xa8bdc30c,0xf5c03a8b,0xcbc1d134,0x754050d7,0x7c0511e,0x2ec1d528,0xd1bdca58,0x4ac04193,0x59c1da6e,0xaec0e2b5,0xacc11547,0x3cc1ccfa,0x15c0d4bf,0x7fc04f8b,0xd9c1ca9a,0xefc0d232,0x22c10cc2,0xd8c1e26f,0x1c0eb03,0x4ac06b13,0x5bc1da6e,0x72c0e2b5,0xc3851,0xcc53f1f4,0x7469c03c,0x6e18c1d2,0xcc53c0da,0x2ca5c03c,0xbed3c1e2,0x47aec0ea,0x709ec105,0x1fb6c1ca,0x4c3c0d2,0x820fc106,0xc9dec1da,0xae14c0e2,0x5317c037,0xa6aec1dc,0x3d47411e,0x46cac060,0x590ac1d9,0x28f64132,0x4437c07c,0xc89dc1da,0xdd84120,0x7aa8c04c,0x85c6c1e7,0x91c9c011,0x987dc048,0xd7cc1e9,0xae14bf15,0x2ec6c057,0x456fc1e8,0x91c93e8a,0xa1c9c048,0x226cc1e9,0xae143e8b,0x732bc057,0xc975c1e9,0x46cc4035,0x505c069,0xdca3c1df,0x3333408b,0x6ab3c033,0x743ac1e7,0x2a7c409d,0x81aac06e,0x8353c1e5,0x28f640c7,0xaa93c07c,0x374cc1e8,0x6666c080,0xd138c15e,0xd50bc1ea,0x6666bf15,0x81aac15e,0x8356c1e5,0x666640c7,0x4b36c15e,0x8759c1ea,0x66663e8b,0x9576c15e,0xd880c1e9,0x6666c012,0xc22ac15e,0xec2dc1d8,0x28f64131,0x18c07c,0xfffffff1,0xffffffff,0xf6ddffff,0x44c07c28,0x2ac1dc14,0x15411c0e,0xcfc05f38,0x91c1dc80,0x81411788,0x94c059eb,0x59c1d6fb,0x22413070,0x16c04c33,0x7bc1d87d,0xa04131b3,0x4c06a6f,0x48c1df83,0x8ac0c7b3,0xf3c03ce4,0x76c1d742,0xc2412227,0x21c040da,0x9cc1e672,0x4bc02ba7,0x5c04674,0xb5c1e94b,0xa4c012a9,0xb5c06a6f,0x5ac1e9ba,0xa4bfb810,0x8cc06a6f,0xeac1ea00,0xa43e8b5a,0xe5c06a6f,0x14c1e79f,0xc33f8eed,0xe2c04bbc,0xcec1e8fb,0x853f8fc3,0x75c059eb,0x78c1e80f,0x854034b4,0x58c059eb,0x20c1e8e9,0xa040355e,0x2ac06a6f,0xebc1e826,0xa0406bc4,0xecc06a6f,0x3dc1c505,0xa0410bec,0xdac06a6f,0xb4c1cf81,0xc3c09f3c,0xe9c04bbc,0x5ac1d02b,0xa4c01b66,0x27c06a6f,0x3fc1d066,0x4d3ff073,0xd3c07049,0xc8c1d4ed,0xc73f72d3,0xedc040da,0x46c1cccb,0x3a40b042,0x95c064e9,0xb4c1cde4,0x8540a3e8,0x22c059eb,0x9cc1cf3a,0xc340a4f8,0x40c04bbc,0xf7c1d0f7,0xc740a65a,0x7dc040da,0x56c1c9b9,0xf640d755,0xb9c07c28,0xbcc1d0b2,0xaebf3fc9,0x15c10547,0x8ec1cca7,0xcfc0aabd,0xfdc1096b,0x23c1ca55,0x1d410fb2,0x9dc114bc,0xfc1cf58,0xfec09f1d,0x45c11097,0xec1cd85,0xcec09fe8,0x79c10b7c,0x1bc1d2bc,0xfebfcd84,0x9dc11097,0x45c1d177,0xaebfcc47,0x4ec10d47,0xbac1d2fe,0xfe3f709e,0xbc11097,0xcbc1d1b9,0xae3f6f2b,0x94c10d47,0x9ec1d0ec,0xcf3f6e42,0x69c1096b,0x66c1d0c9,0x6f40014e,0xdac10bd7,0x72c1d3b8,0xec4029de,0xd0c11322,0xd6c1d212,0xfe40288b,0x12c11097,0x53c1d6e5,0xae406478,0xf3c11547,0xd4c1cf10,0xfe40a4d7,0xeac11097,0x52c1c9fc,0xcf40d79d,0x63c1096b,0x7bc1d222,0xc4412c7d,0x7bc1150b,0x3ac1e443,0xcfc0c29f,0x3fc1096b,0x2ac1dfb3,0xe4c0bebb,0x4cc1140f,0x97c1d76e,0x954130d2,0x15c10ee0,0x9bc1dbf8,0xae41172a,0x42c10d47,0x1dc1e373,0x27c0cb38,0x8bc10b67,0xa4c1df39,0xe4c0c771,0xb4c1140f,0x43c1e961,0xaebfb7ca,0x12c10547,0x84c1e895,0xae3e8a82,0xdcc10d47,0xd5c1e937,0xcf3f8fe8,0x32c1096b,0xfcc1e84b,0xcf4034e2,0x86c1096b,0x33c1e487,0xfe408f51,0x5fc11097,0x26c1e56b,0xcf40ab81,0x61c1096b,0xbcc1e285,0xcf40e0d9,0x62c1096b,0x95c1e184,0xcd40f500,0x28c07b3a,0x87c1e3cb,0x53c0d031,0x24c07ccc,0x17c1e99e,0x53bf1511,0x70c07ccc,0xd5c1e9a7,0x533e8b25,0x21c07ccc,0xd6c1e6d8,0x534090c4,0x5fc07ccc,0xd1c1e2eb,0x15c0b3a4,0x15c04f8b,0x9bc1dbf8,0x4f41172a,0xc1c05ccc,0x26c1d585,0xbc412f47,0xa5c047e7,0xe7c1e7e0,0x53c011c5,0x9dc05ccc,0x20c1e8ac,0xd6c01246,0xe3c06c3b,0x55c1e80e,0x533ffc15,0x2bc05ccc,0xabc1e138,0xda40bb67,0x30c044a9,0x9ac1e693,0xd6409099,0x55c06c3b,0xa2c1e362,0x1540a9fb,0xa8c04f8b,0x94c1c59b,0xd1410c56,0x1ec06c3b,0x72c1d0ca,0xd6c01bdc,0xa2c06c3b,0x97c1d084,0x53c01ba8,0xd4c07ccc,0x86c1d195,0x53c01c74,0x34c05ccc,0x99c1d56c,0x5f3dbcd8,0xedc0455f,0xb6c1d060,0x5340272f,0x7ac07ccc,0x1dc1cedf,0xd640892f,0x67c06c3b,0xdfc1d0ea,0x15408a89,0xd8c04f8b,0x5cc1d28c,0x5b408b9f,0xacc0455f,0xec1c93d,0x6140f1f4,0x13c05f19,0xedc1cdf9,0x27c0a73c,0xe0c061c0,0x28c1d1c3,0x60c0aa51,0xe1c042cb,0x32c1c673,0xfc4105ca,0x5cc10604,0x5ec1c880,0xfc40f1e9,0x64c10604,0x33c1d0f1,0xfc3fe2f9,0x46c10604,0x5cc1cd65,0xfc40a383,0x36c10604,0xb2c1c139,0xfc411e9a,0xe3c10604,0xfec1cb6d,0xfc40bd57,0x29c10604,0x75c1cf0b,0xfc405c1f,0x48c10604,0x45c1cfd2,0x534026bd,0xe3c07ccc,0xfbc1cb6d,0x5340bd57,0x82c07ccc,0xcac1cbb1,0x72411814,0xa6c03851,0x5dc1c4ac,0x89411071,0xe8c06297,0x18c1cf95,0x20c09f4c,0x36c04c60,0x40c1d11a,0xe3c01c18,0xc6c05a8e,0x18c1d111,0xfdbf4021,0x94c06b12,0xdfc1d01c,0xfd4026f8,0x7ec06b12,0xf6c1d414,0x24402a27,0xd8c0417e,0x9fc1cff5,0x95405c04,0x6cc05c7c,0xeec1d787,0x72406524,0x9cc03851,0xa7c1cdf8,0xe340a3f8,0x38c05a8e,0x97c1e280,0x77c0e1ae,0x9bc05fdb,0x14c1e191,0x24c0b293,0x6fc0417e,0xfcc1e4a4,0xe3c0b501,0xe0c05a8e,0xd8c1e3c0,0xf8c0d3d7,0xefc067ff,0xc1d976,0x20411572,0x26c0417e,0x1bc1dd83,0x4f41183a,0x72c07ccc,0xcfc1e1ab,0xdc0ddbd,0x49c05253,0x91c1e1df,0xb0c0d7b9,0xb4c050c7,0xaec1e338,0xe3c0cfab,0x7dc05a8e,0x39c1e6e5,0xe3c07e7b,0x5bc05a8e,0x40c1e7be,0x1c07f6a,0xfcc06b13,0xf4c1e7b4,0x203e89fc,0x6dc04c60,0xf7c1e26e,0x2040c4d6,0x8ac04c60,0xdc1e054,0xfc40d836,0x5dc044a8,0x83c1e07a,0xe340fae8,0x9bc05a8e,0x12c1e191,0x3ac0b293,0xefc1141b,0xc1d976,0x3a411572,0x2c1141b,0xa0c1d0c4,0x66412b5c,0x8ac11666,0x1dc1d6cc,0x8e4129d3,0x7ac112b5,0x39c1e8e7,0xa3f8fb7,0x5c10dd7,0xbbc1e64d,0xeb401a42,0xa7c11383,0xc5c1e498,0x340c6b8,0x8ac109b6,0xbac1c56e,0x2e4107cc,0xac10b7c,0x3c1c7b1,0xbb4106a0,0x19c11162,0x71c1c313,0xae4111a5,0x46c10547,0xeec1c1a4,0x74411ed6,0xd4c10dac,0xe2c1c149,0x24411ea4,0xa7c10a05,0x32c1cc01,0xe0c0b35a,0xb0c10bd4,0x6cc1d0fb,0xabfcbce,0x1ec10dd7,0xd3c1d404,0x3a3fe64f,0xd3c1141b,0x8bc1ceb2,0x3405bc1,0xbc109b6,0x8ec1cc38,0xae40a293,0x78c10547,0x7ac1cbc7,0xaf40b172,0x27c066cc,0x6bc1ca97,0x9f410fe0,0xe7c035af,0x61c1c667,0x904122ce,0x36c03930,0x5ac1d406,0x33c0bf2c,0x82c03333,0xf7c1d6fb,0xa33dbe39,0xf6c035af,0x8c1d2c2,0xc93f705b,0x9c04891,0xbec1c9a3,0x8b4107ef,0x66c03cf9,0xe8c1cce6,0x65c0a65d,0x7dc05d53,0x3d41c559,0x61413038,0xc3c114a7,0x7841ddad,0x40c0ee42,0xc2c112ab,0x2641bf6c,0xd9412ea4,0x45c10fa6,0x7341cdcb,0xcd409274,0xeec104cc,0x9441d0a1,0xc240bbce,0xa0c113be,0x2f41ce5b,0xbf4092db,0x5ac10abe,0xe241cbf5,0xbf40c12e,0x90c10abe,0xf541c87f,0x1c40ee67,0x7ac107d2,0x2b41cf24,0xcdc05ff6,0xdc104cc,0xf641d2ca,0x57c008b5,0x4cc11055,0x6e41d333,0x57bfae34,0x5bc11055,0x5241d105,0xcd3e34d5,0x29c104cc,0xf241d235,0x503f6b60,0x55c10d93,0x7541d654,0x6b4134b2,0x4bc10868,0x9f41d25d,0x8f413361,0x33c11321,0x9841ce4e,0x9a413295,0xf3c03999,0xd741bed5,0xf1412e82,0xb8c05d81,0x4541e8b1,0x743e549e,0xdc0679a,0x3441e667,0xe140332c,0xa7c0567c,0x3341e4c9,0xe1408d08,0x6ac0567c,0x4941e3a7,0xa4408c55,0x6fc04b70,0x8341e29c,0xa440a525,0x96c04b70,0xd441e080,0x3040e8e5,0x26c05bf4,0xde41da32,0x9ac0d85a,0x8fc03999,0x5a41df1d,0x9a4104e5,0xb7c07999,0x141e84c,0x9abff413,0x63c07999,0x1d41d4b3,0x2e412309,0x7ac03e3a,0x5e41d7d0,0xb641210f,0x19c04b80,0x4f41e775,0xe1bef2e7,0xc3c0567c,0x9e41e0d8,0xcd40f152,0xa5c104cc,0x8a41e645,0xcdc088db,0xe7c104cc,0xe441e7cb,0xcdc02cbc,0x2dc104cc,0x9a41e8a1,0xcdbf8e7d,0xd4c104cc,0x7d41e8c4,0xcd3ef3ad,0x79c104cc,0xbf41e615,0xcd408dd4,0xf3c104cc,0x341e10c,0x61c0ec86,0xbfc10774,0xa541e0ef,0xeac0d221,0xacc10eef,0xa441e4c8,0xec0a9f0,0xd1c10878,0xef41e0a5,0x6b40f11b,0x2c10868,0x3d41deeb,0x6b4104c7,0x71c10868,0xc141e411,0xf93fc28b,0xbec113ff,0xe741dd12,0x3c0dca8,0x2c11397,0x8c41e403,0x4cbeef49,0x47c1136d,0x5341d02c,0x9ac0f569,0x7ac03999,0x2b41cf24,0x9ac05ff6,0x30c07999,0xfa41d16b,0xf13fd408,0xa5c05d81,0xd741cc2e,0x93c0ebea,0x55c044a9,0x4441cf8c,0xf140774c,0xe4c05d81,0xd441d373,0x84086ac,0x96c03c91,0xf741cb99,0xbd40c0d7,0xcfc06b39,0x2741d223,0x79c0084a,0x4ac0511e,0xaa41d5c8,0x13e38f3,0x5ec03f14,0xf041d5e6,0xfe412d3f,0xec112bd,0x541d12a,0xae412968,0x91c11547,0x3041c3ea,0x1c411ead,0xcbc04c60,0x6b41c986,0x4f412338,0xdec03ccc,0x4d41e5df,0xd0c0ba75,0x88c06946,0x2841da3d,0x33c0e6e0,0xb7c03333,0x2a41dc85,0xa3c0e94a,0x17c035af,0xd41dea6,0x8bc0eb8a,0x65c03cf9,0x9341e2e9,0x7bc0f00c,0xdfc06e33,0xb141e19d,0xc940db79,0xafc04891,0xf541e853,0x8b40813c,0x79c064fa,0xd41ea65,0xf63fed00,0x13c07c28,0x1b41e982,0x143f7d2b,0x2ec057ae,0xd041ea6b,0xcc3f7e27,0xb6c06946,0xfa41e830,0xc93e097b,0x68c04891,0xc641e9be,0xccc01bc0,0xc5c06946,0xcb41e834,0xd0c08464,0x87c06946,0xb241e883,0xf6c08491,0xa6c07c28,0xf241e30e,0x9fcf033,0x657910f1,0x1541ea,0x66663fed,0xa156c15e,0x429441e5,0x6666c0ba,0xa4c1c15e,0xd4d841e7,0xf50a388c,0xe6f5d920,0x985f0741,0x674938c0,0xe94e33c0,0x2cdcd741,0x7c28f640,0xdb9112c0,0x1498a741,0x4bbcbe41,0xe4618ac0,0xc2894041,0x5f3819c0,0x14b100fc,0xdec037ae,0xf841e23b,0x978ef54,0xa41a10f1,0xcc1041da,0xf42c4124,0x17f3c061,0xbad641de,0xae1440a1,0xcf19c037,0x34f41e6,0xf109602b,0xe3817004,0xe6086c41,0x3a036d3f,0xe590e6c0,0xe81dc141,0x10f1099c,0x41e903d9,0x402ca5c2,0xc06a6fa4,0x41e655e7,0xc04fe358,0xc04bbcc3,0x41e8897f,0x6051e001,0xc728f100,0x3041cb0f,0x6d410e13,0x91c03a03,0x9a41cd5c,0xf6c0a0fb,0xe9c06625,0xf841cbda,0xa040b9b8,0x5cc06a6f,0x6e41ccb0,0x8540ba7b,0xabc059eb,0xa341d020,0x541f1e,0x4a8b04f1,0x417841d3,0xbcc3bd04,0x5196c04b,0x1e7941cf,0xf10060a3,0xca1d1610,0xafbe041,0x3e189341,0xc3f051c0,0x1034ba41,0x547ae41,0xcf0684c1,0x5856eb41,0x1cf10c18,0x41d0263f,0xc0dc32d1,0xc114f23f,0x41c8f75c,0x411176db,0xc1140fe4,0x41d1fba1,0xc0b34ae0,0xc114bc1d,0x41cd3964,0xd09f6324,0xfffff108,0xbd6443ff,0x690e41d5,0xbc1d4023,0xd1b1c114,0xf12441d3,0x22ec4021,0xe779c113,0xb6a241d0,0x47ae401f,0x208ec10d,0x274241d3,0x97febd04,0xdb17c110,0x5ac941d1,0x47aebd03,0xdad1c10d,0xcc9641d0,0x47aec023,0xc891c10d,0x458041d0,0x22ecc0a4,0x2863c113,0xfe0f41cf,0x97fec0a2,0x260ac110,0x41e041c6,0xab94108,0x29cac10c,0xcb4541da,0x47aec0e6,0x890c115,0xe45841e4,0x6bcfc0c6,0x2768c109,0xed9441dd,0x1e2ac0e9,0xfd32c114,0x9e9b41de,0xfe4c0cb,0xbe2c114,0xddc241e3,0x47ae40dc,0x9054c105,0x37dc41e4,0x47ae40c2,0x9498c105,0xb9b441e3,0x97fe40a5,0x97e8c110,0xb3541e9,0x47aebf38,0x55bec105,0x534c41e1,0xcc5340f7,0xbe2c07c,0xddc041e3,0xcc5340dc,0x9054c07c,0x37da41e4,0xcc5340c2,0x29cac07c,0xcb4741da,0xcc53c0e6,0x4593c03c,0x454641e2,0x8b1540c0,0xff7bc04f,0xf9ec41df,0xcc53405a,0x55d4c03c,0xa97641e6,0x8b15402a,0x211cc04f,0xb53d41e8,0xcc533fea,0x9ae1c05c,0xf2441e5,0x9015bf50,0x414fc042,0x562641e8,0xcc53bfc8,0x9049c05c,0x3db841d1,0xcb60c0ae,0xe65bc042,0x991a41ca,0xf57fc0d6,0x2e2dc05c,0x73d841cd,0xd9b6c0b0,0x7fac068,0x4f8b41cf,0x3bd64085,0xd1f9c06c,0xd19e41cf,0xcc534085,0x7960c05c,0x627441d0,0xcc53401f,0x989dc07c,0x9c0f41d1,0x3bd63f4f,0x99f6c06c,0x6ff441d4,0xb1f73fd5,0xb232c044,0xacbd41d0,0x3bd6c023,0xc916c06c,0x7c7e41cf,0x8b15c0a3,0xc0ebc04f,0xac6141c6,0xc0234108,0xae17c061,0x28c341ce,0x4fcc087,0x767cc106,0x2f4241ca,0x4fcc0d6,0x31ccc106,0x82041cc,0x4fc40ba,0x60bbc106,0xad9741d0,0x4f2c00c,0x7d92c106,0x9f2a41c8,0x7ce140ed,0x7783c074,0xb4a841d2,0xa6cac0b3,0x2923c03a,0x1d5641ce,0x8ee340a0,0x7bc1c05a,0x870941d6,0x6f723ffa,0xbd3ec03b,0xedc41d0,0x12fd3fd3,0x9ffc06b,0x6e2f41d1,0x12fdbf5f,0x972dc06b,0x3dc041e3,0xb4eac0bc,0x1e41c04e,0x20ab41e1,0xe5dac0ee,0x2820c056,0x401641e2,0x1301c0ef,0xdffec06b,0xeb0941e1,0xcc5340f7,0xa8bcc07c,0x998941e2,0x602040c0,0x5b3ec04c,0x2b7341e7,0x8ee34062,0x9589c05a,0x150e41e7,0x60203f7b,0x8c9bc04c,0x470241e3,0xa6cabfc4,0x9c5ac03a,0xe3941e5,0x7e24bfc6,0xdc93c041,0x415741e9,0x12fdbf38,0x45e5c06b,0xc5e341e8,0x8ee3c01a,0x7534c05a,0xcdb341e8,0x1301c051,0x7050c06b,0x8c7241e2,0x47aec0ef,0xcfd4c105,0x689e41d9,0x1b3a4113,0x6d97c114,0x48f341e4,0xd70ac0b9,0x2820c10d,0x401441e2,0xb603c0ef,0xfcc109,0x650741db,0x62bb4117,0xca74c111,0x1a3f41e2,0x62bbc0be,0x9589c111,0x151e41e7,0x62bb3f7b,0xcff3c111,0x295641e5,0x1b3a3f79,0x132ac114,0x23241e9,0xd70a3e0a,0xb6ebc10d,0x33e341e7,0x62bb3e09,0x4610c111,0x6aee41cc,0x7108acae,0x41cae939,0x84baf379,0x611cf100,0x8141c7f9,0xc941159d,0x76c11518,0x8341ca88,0x10410db4,0x9ac115d1,0x7341c3a2,0xe041125e,0x9ac10bd4,0x5441c468,0xc0e2a,0x5749fff5,0xe541d1d7,0x10c0b32b,0xd8c115d1,0xee41cd93,0xae40845f,0x56c10547,0x9941d38a,0x3a4021ba,0x62c1141b,0xd341cf85,0x3c022c0,0x84c109b6,0xa641c995,0xc6410a9e,0x2bc114cb,0x6241c5ab,0xe64107ed,0xc7c10c83,0xb541c369,0xf6410fd1,0xdfc07c28,0xd541d01f,0xf63f4e26,0x41c07c28,0x9f41d23f,0xa3c0b384,0x1fc035af,0x3c41c533,0x474109f9,0x11c0603d,0xd541d023,0xf9c0c478,0xcac038c0,0x6941cccd,0x1c409f90,0xfac063ef,0xa741d036,0xc9408612,0xffc04891,0x3541ced7,0xcc405409,0x58c06946,0x5e41cfbf,0x144054f6,0x5dc057ae,0xa041d12f,0xc940566f,0x81c04891,0xd041d53d,0x9f405a97,0x70c035af,0xde41d107,0x143fd359,0xbbc057ae,0x4641d279,0xc93fd4d0,0xe7c04891,0x541d088,0xccbd0288,0xb5c06946,0x8c41d4c8,0x8bbd0530,0x5fc03cf9,0xaf41d072,0x14c0237a,0xa1c057ae,0x4941d1e3,0xc9c0249c,0xcac04891,0x7a41c9e3,0x29410ad4,0x66c03a09,0x1d3f4666,0x41aabd,0x38c1d000,0x5b3f8c4a,0xc1973b,0x27c1d000,0xc3becd66,0xc19405,0x4cc1d000,0x6abf9388,0x5bc1a938,0x66c1cff2,0xe33f4666,0x249542,0xabfa3dc4,0xd0000041,0x466666c1,0x440048bf,0x3ecd6627,0xc471003c,0xce3fabd1,0x2499cc,0x8c4a3871,0xa8c4a5bf,0xc274000c,0x99bfbfa3,0xca335,0xca693f41,0x82000c9c,0x0,0xc1939999,0xc6510054,0xa000013f,0xc4710018,0x323fabd1,0x18a633,0x8c4a3871,0x973b5dbf,0xc2440018,0x483fbfa3,0x66667100,0xffffbfc6,0x7100249f,0xbfbfa3c2,0xc9cca67,0x66277100,0xfa3b3ecd,0xf4000cab,0x8a775eff,0xb774c1cc,0x638f404e,0xe1fdc1ce,0x37bdc1d9,0xe0c13586,0x6cdec1c5,0x37bdc1d3,0xb2643686,0xc873c1cb,0x5133c1cc,0xb265c0d2,0x4da3c1cb,0xa7ac1bf,0xb265c134,0x8b97c1cb,0x901ec1ba,0x6390c12f,0xeea0c1ce,0xee80c1be,0xe0c1c151,0x1c76c1c5,0xc28abfcf,0x638e41cd,0xc1ce,0x52df8000,0xc13141c8,0x3dc9c1cf,0xeda8bfc9,0xc13841c7,0x7825c1cf,0xae2cc09e,0xb26341cf,0x8721c1cb,0x83d4c09a,0x638e41ca,0x9317c1ce,0x831fc162,0xb266c1b2,0x59e1c1cb,0x4ce7c128,0x8c3c1de,0xb5fac1b2,0x45fdc14b,0xb26441b9,0xa4e8c1cb,0xaa51c146,0x638e41b4,0x117bc1ce,0x4559c180,0xe0c041b0,0x8b7dc1c5,0xbf2c178,0xb26541ab,0x25dfc1cb,0xc678c096,0xc13ac1c4,0x1e32c1cf,0xc287bfcf,0x6390c1cd,0xc0ac1ce,0x8b96c1ab,0xb2644178,0xf6eac1cb,0x7eb0c1b7,0xe0c14169,0x4dadc1c5,0xa80c1bf,0xb2644134,0xc289c1cb,0x200841cd,0x6390bfcf,0x2a2ac1ce,0x76b441d8,0xe0c1405a,0xae19c1c5,0x77ee41cf,0xb265409e,0xa0afc1cb,0x87ab41c7,0x2fa540cb,0x3805c1cf,0xa8b341cf,0xe0c14106,0x62c1c5,0xbdbb41b5,0xb54f4145,0x833ec1ce,0x931341b2,0xb2654162,0xf6eac1cb,0x6c41b7,0xfffffff2,0xb0455815,0x80117c41,0xc5e0c141,0x9625d3c1,0x9092d941,0xcdc4ac41,0x86c46bc1,0xa2e7ee41,0xcbb26541,0x206a7fc1,0xca950f41,0xc5e0c2c1,0x2f9062c1,0xba8b9541,0xce638f41,0x2a9697c1,0xb5421c41,0xcfc13841,0x46a4c0c1,0xb4aa4d41,0xce6391c1,0x9e7829c1,0xcfae2c40,0xcbb26441,0x8ae23bc1,0xa7e1ad41,0xc5e0c1c1,0x86c47fc1,0xa2e7eb41,0xcbb265c1,0x95fd42c1,0x8a7e7c41,0xcf7c97c1,0xb5421ec1,0x2a965941,0xcfc139c1,0xc913d1c1,0x2ab0441,0xcbb265c1,0xcfae2fc1,0x9e77f541,0xcbb265c0,0xeed6cdc1,0x828a37c1,0xabc38140,0x8f378fc1,0xf1253bbf,0xab8975c1,0xf2b95fc1,0xa9562ac1,0xa71439bf,0xe45b42c1,0xee6d50bf,0xaf319541,0xed9434c1,0x452a80c1,0xaf3196c0,0xac82c5c1,0xeddbe5c0,0xaa639741,0xac06a1c1,0xed30cbc0,0xabc38041,0xaa7475c1,0xeb0580c0,0xaf319541,0xecf103c1,0xd6e07cc1,0xa71439c0,0xe4f562c1,0x50960c1,0xafbf79c1,0xe5806bc1,0x23ad0ec1,0xa3cb3ac1,0xe4d73ac1,0x233461c1,0xa71439c1,0xe0337fc1,0x3ecfc7c1,0xa3cb3ac1,0x43f231c1,0xdc403ac1,0xabc38041,0x6d189cc1,0xd53445c1,0xa386fa41,0x42276bc1,0xda3c97c1,0xaf319541,0x5b7eb0c1,0xd3aa59c1,0xafbf7841,0x8674d2c1,0xc56a4cc1,0xaf319541,0xc35e75c1,0x91ea0fc1,0xa23113c1,0x9fbe53c1,0xb70e0dc1,0xa7143741,0x9d0c10c1,0xb3f70ec1,0xaf319541,0xa98af5c1,0xac5089c1,0xaa639841,0xa9a780c1,0xb00401c1,0x97a56341,0xb38953c1,0xa1e01fc1,0xaa639841,0x9aad06c1,0xbb5b3fc1,0xa7143ac1,0xbc5b92c1,0x966f15c1,0xabc38141,0x8f9e07c1,0xc4d4cdc1,0xa3cb3bc1,0xd67652c1,0x674b92c1,0xa3cb3a41,0xd5d832c1,0x66a111c1,0xa7143841,0xd23c29c1,0x62bc7dc1,0xaf319641,0xd8a242c1,0x49349ec1,0xaf319641,0x88573c1,0xea05f9c1,0x99da16c1,0x3623f6c1,0xdccf89c1,0xaf3197c1,0x370388c1,0xe2305e41,0xa5689641,0x801750c0,0xcf0403c1,0xa8b8d641,0x9d61ebc0,0xb9caf9c1,0x95604941,0x9703e5c1,0xbff963c1,0xdb52fc41,0x3a10b0bf,0xe1916b41,0xd999a2c1,0x86d765bf,0xcb5b3941,0x9984b9c1,0x5c0e65c1,0xd9c8ac41,0x90f5c5c1,0x6e8e5fc0,0xd4dbc741,0xd999a2c1,0x806665bf,0xcf7bce41,0x90f5c5c1,0xc76a36c0,0x8c9ad2c1,0xd9999141,0xe30c05bf,0x32b9aec1,0xd9999a41,0xf1c0ecbf,0x842214c1,0xd9999a40,0xcc44d8bf,0x85747441,0x733334c1,0x31c79bc1,0xf2932840,0x968e9941,0xe0084ac0,0x412d2ac1,0x4c6429c1,0x108bacc1,0xf2bba540,0xa8b3fa41,0x6c99d0c0,0xf3469c3f,0xa8e86c41,0x8a31c6c0,0xf3f6ab3f,0xda617c41,0xa119fdbf,0xb73a22c1,0x869b0ac1,0xec1617c1,0xf68d7a41,0x789a40,0x410efff5,0x4132b9ae,0xbfd9999a,0x41bea815,0x4198450d,0xbfd99991,0xc08a5b03,0x41f1fd08,0xbfd9a7a8,0xc0128df8,0x41f347fc,0xc09b2b0a,0xc0e7013d,0x41ed088d,0xc198688a,0x41a7e6dd,0x41b10a01,0xbfd03337,0xc186d766,0xc1cb5b39,0xc096b9ef,0x4194f848,0x41c08c7a,0xc1955aa9,0x419071ef,0x41c3fd95,0xc19a018f,0xc1245dea,0x41e51338,0xc194f482,0x41952df3,0x41c10d65,0xc09b286b,0xc0e7167b,0x41ec7bd7,0xc0a73869,0xc0d79924,0x41ed604b,0xc0981494,0x418ee7a0,0x41c5c5ed,0xc0910cfe,0xc1548a03,0x41dba1bd,0xc1975fc2,0xc180a420,0x41cf517c,0xc1975ec3,0xc14f39b7,0x41dce87b,0xc09695b8,0xc18d2e38,0x41c66e40,0xc199b75b,0xc16a49c8,0x41d60a52,0xc098ca7d,0x414157da,0x41e00858,0xc092c6a0,0xc1891100,0xc19d0c8a,0xc13be48d,0xc1898849,0xc19c6818,0xc18fd2eb,0xc1bad278,0xc13121b9,0xc137eb86,0xc18f3b63,0xc1949005,0xc74e149,0x5395f500,0x72c164b8,0x6fc1b98d,0x53c134a0,0x9c164b8,0x42c1c43a,0x85c1173e,0x57c157eb,0xbfc1b81d,0x1ac13895,0xf9c156f2,0x73c1c00b,0xbc122bf,0xa2c13c33,0xb2c1c3b4,0xbac118ad,0x18c14d17,0xafc190fe,0xb6c19223,0x77c1820c,0x34c1b4b3,0xb6c131a6,0x16c15732,0x74c18c8c,0x1dc19017,0xb8c1566a,0x13c17c45,0xd8c1a540,0x91c1b428,0x1ac1c3a2,0x9ac1088a,0xcc1bd99,0xf2c1846e,0x47c1b3ac,0xf8c19a26,0xcdc1149c,0x17c1d26b,0x54c1aab8,0x1a40b5e3,0xf6c1dedf,0xf8c1aab7,0x1841149c,0xd603f100,0xb16241a0,0xb816c19a,0xb89cc1aa,0x1e5e41a1,0x71000ca0,0x41b5d430,0xc815ee4,0x8e10f100,0x6d416f8a,0x1541c228,0x63c1aab8,0x25c199e1,0x464197b3,0x39c1ad14,0xf14114a1,0x18d74f,0x678503f2,0x5aebc19c,0xb81641a4,0x3500c1aa,0x73a4c197,0x7a71000c,0xe7402ce3,0x24e31a,0x71,0xdfb38b00,0xee71000c,0x4bc1aa92,0x308ee3,0x6aab1cf1,0xc526c1de,0xb816c0c0,0x822fc1aa,0xca97c1e3,0xb816bf33,0xcfcac1aa,0x987cc1d5,0xb81640ff,0xc726c1aa,0xc64a41a2,0xf100308f,0xe3caff04,0x8a6941,0xaab8163f,0xcd1483c1,0x34ad6141,0x10f10018,0x4196c034,0x41a51880,0xc1af7077,0xc1d92e22,0xc0ca4fd3,0xc1af7077,0x41d3a11c,0x180d9595,0xbb907100,0xd2741c7,0xf1000c47,0x8859f610,0xb0a78941,0xaf7078c1,0x82b729c1,0xac131fc1,0xaf7077c1,0xac19a2c1,0xda7f96c0,0xf7710018,0x74c131be,0xcc847,0x12704f1,0xa442c181,0x707641b0,0x9185c1af,0xae50c1aa,0x7100488e,0xc1d24ee7,0x6ce2602a,0x29ff6200,0xf77dc1a2,0x35710018,0xfb41d78d,0x189cca,0xa918b771,0x8abf4841,0x1cf10030,0xc179b801,0xc1ad0c83,0xc1b428d8,0xc1cc8c69,0x41037e2f,0xc1b428d8,0xc09b3cef,0x41d7aa0d,0xc1b428d7,0x418ea3ba,0x249ff2b8,0x89317100,0xd6c141a1,0xf1000c8c,0x3cf15e04,0xc6740e41,0xb428d9c1,0x36d72fc1,0xc725aac1,0x6b710030,0xab41b85f,0x246b61,0x39bab471,0xc21ff541,0x92710024,0x8841bfa3,0x1852e4,0xb53f6c71,0x65ae73c1,0xa671006c,0x2c41c98c,0x1813f0,0xd11535b5,0xfc69fd41,0xb428d8c0,0xd8b101e0,0x40c1b428,0x14c1a0e4,0x308d93,0xab0a8d71,0xd1504740,0x87710054,0x8c40ad86,0xcd5ee,0xa46b04f1,0x221841d9,0x28d84054,0xdfb7c1b4,0xff6941d5,0x71000c15,0x41b81052,0x3c5b8b79,0x7b177100,0x38d141a4,0x44000c8e,0x4136d72f,0x917100b4,0xc4405d0a,0xc0d9d9,0x669d6271,0xd6bb25bf,0xf5f1000c,0xc1d6014c,0x3fea8f7e,0xc1b428d8,0x413a6bc5,0xc1c1954f,0xc1b8e13b,0x41a3fb52,0xc18b3d0c,0xc1b8e13a,0x41d5675a,0x403c08c0,0xc1b8e13a,0x41544c78,0x41bb6964,0xc1b8e139,0x40ed0816,0x41cdf4c9,0xc1b8e138,0xc1bc0d5d,0x414fd63f,0xc1b8e13a,0xc1d63497,0x3f57ce10,0xc1b8e139,0xc1740a31,0xc1aabe73,0xc1b8e13a,0x418ec95b,0xc199d612,0xc1b8e139,0xc17b6312,0x41a81769,0xc1b8e139,0xc19bb4ed,0x418cbe93,0xc1b8e139,0xc1924c66,0x41968017,0xc1b8e139,0x4146055e,0xc1b9b45b,0xc1b8e13b,0x40873b13,0xc1c52b01,0xc1b8e13b,0x41ad7004,0x416c6a33,0xc1b8e139,0x41847542,0x41a327fa,0xc1b8e13a,0xc1c89d50,0xc0f6d109,0xc1b8e139,0xc1d0fad5,0xc033dc90,0xc1b8e13a,0x41ccc0cd,0xc0bfb00c,0xc1bd999b,0x41cfa6eb,0x40748538,0xc1bd999a,0x419cc427,0x418b903a,0x13f503cc,0x8b418463,0x9b41a311,0x95c1bd99,0x45c1c052,0x9a41281d,0x33c1bd99,0x6c1cee4,0x9ac08d65,0x60bd99,0x999a2cf1,0x6095c1bd,0x3adec0f1,0x999b3f03,0x393fc1bd,0x5bd5c0bd,0x999b4086,0xcd93c1bd,0xee57c138,0x999b3da5,0x5a53c1bd,0x9b6d40b4,0x999bc1cc,0x2ea3c1bd,0xaab24087,0x71000cc3,0xc10bb3fb,0x30f59cde,0x5110f100,0x4b4013fa,0x9941b27f,0x27c1bd99,0x9040554d,0x9ac1ae6c,0x14c1bd99,0x2b3f78d0,0x84b98f,0x5a666671,0x3ffff41,0x4f10018,0xc15c8ba3,0x402ed66b,0xc1bd999a,0xbf982492,0x24b89513,0x3304f100,0xef419933,0x9abf7fff,0x3cc1bd99,0x2fc03568,0xccae20,0x14304f1,0xe588c09b,0x999cc1ca,0x999ac1bd,0x9c77c085,0x710084c0,0xc156345a,0x84bdaaac,0x45ae7500,0x1c051,0xf10048a0,0x80000800,0xbd999a3f,0x4a2431c1,0x993ac5c0,0xe8710018,0x1dc13eb9,0x78e766,0x569f04f1,0xe17e40da,0x999bc03d,0x27ccc1bd,0xb9f73f85,0xf1005407,0x4a243108,0xa6c53c40,0xa2666641,0x58a793c1,0xb94486bf,0xa2666541,0x18040048,0x3c297100,0xeba5c035,0x71002492,0x3fd145ae,0xc89587b,0xfa517100,0x80b64013,0x62000c8d,0xbe6e8709,0x48f465,0x22ead971,0x9ae8a9bf,0x66730018,0x3f6666,0xca000,0xbebee651,0xc99c3,0x71,0xa7333300,0x9c71000c,0xf2bf5e8c,0xc9e22,0x6e870962,0x240b9bbe,0xead97100,0x17573f22,0x710018a5,0xbf5e8c9c,0xca1dd0e,0xa7938300,0xbb7abf58,0x90c186,0x587bbf41,0x71000c89,0x0,0xc98cccd,0x87097100,0xb9b3e6e,0x71000c99,0x4048c2df,0xc9724e3,0xa7934400,0x3c3f58,0xe6666662,0x24c3be3e,0xfa517100,0x80b6c013,0x300248d,0xc0100c0,0x8c9cb700,0x22f23f5e,0x6666c19e,0x170030ae,0x910024ae,0x8844c1ae,0x6666bf47,0x7100249c,0xbf478844,0xca3999a,0x66667100,0x3c42bee6,0x3000ca6,0xc010120,0xd80300,0x44000c01,0x3f478844,0x9c710030,0xe3f5e8c,0x18a1dd,0x9a8c5071,0x9d696c3f,0xf071000c,0xc5bea5a4,0xca9a8,0xa0000071,0xa00000bf,0x5071000c,0x94bf9a8c,0xca296,0xa5a4f071,0x96573b3e,0x2874000c,0xce3f6246,0xc98ed,0x1232bf41,0x71000ca7,0x3f8a9069,0xca50000,0x2408f400,0x613df6d2,0x7bc195a7,0x65c1cd8f,0x7c3f8472,0x7bc1a62a,0x84cd7d,0xb44113,0x1d43e12,0x1b0ae17,0x300a801,0x2402018c,0x1b00200,0x1200f001,0x101e03e,0x3f41009c,0x48a29694,0x7100,0x56fabf20,0x3000c97,0xc0100b4,0xa4f07100,0xa8c53ea5,0x71000ca9,0xbf624628,0xc98edce,0xbcb0f500,0xddbf95cb,0x8641a3b9,0x24c1cd90,0x63bdf6d2,0x7b4195a7,0x80c1cd8f,0x744082d8,0x5ec1b600,0xddc13188,0x3e7c5c,0xd7c1b600,0xa7c115af,0xc02940,0x8dc1b600,0x23c13c0e,0xbfce87,0xa5c1b600,0xffc11ff3,0xeac027b0,0x3c1ec26,0x6c13976,0x44bfd612,0xf4c1ec76,0x42c160f5,0x773fe3ce,0x95c1ec5e,0x83c15e73,0x1fc04a19,0xe4c1f132,0xc13a8e,0x333f50e4,0x73c1f133,0xd6c170b9,0x333fc9c5,0x63c1f133,0xc5c16baf,0x33400eac,0x33c1f133,0x88c163ab,0x33402ebd,0xbcc1f133,0xc5c15938,0x334042e5,0x41c1f133,0xdc14d0e,0x333ffd17,0x4ec1f133,0x30aa29,0x1c54cf35,0x46330030,0x14426c7,0x3c1f1a4,0x88bf807d,0x18c02ebd,0xacc53100,0xf1000c0e,0x1c54cfc8,0xc9c5d6c1,0xf13333bf,0x14509fc1,0xe469e8c1,0xea325e40,0xabc38041,0xc35e9ac1,0xea3d1540,0xaef12e41,0xeb0a02c1,0xa02a3b41,0xafbf79c0,0xebae7ec1,0x9b31bc41,0xaf3196c0,0x68a20ac1,0xf2037240,0xa30e4d41,0x67cb53c1,0xf125bd40,0xa7541341,0xefc587c1,0x46fca041,0xabc380c0,0xf106d2c1,0xfa27af41,0xabc3813e,0xee6911c1,0xab15f941,0xafbf7a3e,0xedbcadc1,0x10d62841,0xafbf7a40,0xec607bc1,0x797f2041,0xafbf7a40,0xeb074c1,0xe64d3741,0xacb78dc1,0xebd93ac1,0xf64dc241,0xa30e4e40,0xdd9410c1,0x43e2cd41,0xa9900141,0xdd1416c1,0x4d555d41,0xa30e4d41,0x6d7646c1,0xd3e22541,0xa75415c1,0xd42ce2c1,0x64d42a41,0x10f100c0,0x41698617,0xc1d05e88,0xc1af3197,0x41cf4067,0x41804ecb,0xc1a30e4d,0x418cc956,0x18c0f3a2,0xf710f100,0xf14199df,0x6ec1ba62,0xcdc1aa7a,0x194197ca,0x7ac1b7dd,0xfec1afbf,0xd741a128,0xcafb5,0xaca48171,0xa4712841,0xd871000c,0xae41b67c,0x3c9a1b,0xc7361271,0x83006a41,0x77710018,0xb4179dc,0x60d14e,0x5d451cf1,0xe3614179,0xdc0f41d0,0xf7c8c1a5,0x8e4c4178,0x541341d0,0xe90fc1a7,0x35b041d3,0x8523c16b,0x6da8c1a9,0xeac94145,0xf10018dd,0x1936a204,0xe80ee441,0x9bd14a41,0xe624c0c1,0xebf7f140,0x4f10018,0x40e306ec,0x41e64570,0x358637bd,0x419d449b,0xcb184d5,0x134cf200,0x7e41ddb4,0x87412b0a,0x4339d2c3,0xb941ddc0,0xc12832,0x79800000,0xfc41b9c6,0x1bc19402,0xf03969d5,0x88418394,0x3ac1c691,0x3aa7e7,0xaa000000,0xbdc1ed29,0xc8b58637,0xfec064b1,0xbdc1eb6e,0xf3b58637,0x9ec17562,0xbdc1caf5,0x43b58637,0xcbc19243,0xcbab0,0xc1ddc034,0x2f30054,0xc1e64570,0xc0e306ec,0x80000000,0xc1ed29aa,0x71000100,0xc1c32e5e,0x9086b94b,0x84d57100,0x449bc1b1,0x71000c9d,0xc186b94b,0xcc32e5e,0x6e187100,0xff48c15c,0xf1000cd1,0xe64ef704,0x5fb752c1,0x40,0x8f142b00,0xb6a06741,0xa8710090,0x8041beee,0xc83ca,0xec7c04f1,0x8963c1d8,0x4124,0x6d010000,0xa1ad41cd,0x71001857,0xc1cd6d01,0x4857a1ad,0xec7c7100,0x896341d8,0x7100f024,0xc157a1ad,0x18cd6d01,0x46d47100,0x332740a7,0x710030e4,0x41e1422d,0x6cde15be,0x6e7a6100,0x8f8ec13e,0xb51311a4,0x30010054,0xa78d7100,0xd82e41ad,0x71000c99,0xc1b6a067,0x3c8f142b,0xca807100,0xeea84183,0x710018be,0xc1c68a90,0x18700b74,0xa1ad4400,0x6c4157,0x3e6e7a71,0xd38f8e41,0x78030024,0xc0100,0xfffffff4,0xffffffff,0x748affff,0xfdc134ca,0x6741d687,0x48c1a601,0x5c1e088,0xb6c0dba2,0xb7c1a5ff,0xdbc1dca8,0x63c10dc5,0x5bc127eb,0xfdc1dc1b,0xf2c10f43,0xc6c14fff,0xc8c166e2,0x8541c942,0x33c199e2,0xa2c1be1d,0x37c18560,0xf5c127ec,0xc5c131d0,0xf841d64a,0x39c101b2,0xb2c173a0,0x1641c570,0x83c19568,0x60c07a15,0xd1c1e5e2,0xebc04ccc,0xb2c08a8d,0x87c1e42e,0x18c1036e,0x10c18365,0xa841bf3c,0x6c1972f,0x99c0be64,0x5641e316,0xa5c199e2,0xcc0a9a4,0xc141e41b,0xcdc101b4,0xc6c1717e,0xe141c619,0x5ac1005d,0xdac1022f,0x7541deae,0xc194df,0xf9c19672,0xd41b09a,0xac1969a,0xc196c6,0x2b41b055,0xecc101b5,0x3fc1317e,0xb341d65a,0xb6c1972d,0xbac1c7ca,0xa0416de1,0xddc1a5ff,0x2cc1e09b,0xaf40f248,0x26c1a5ff,0x79c1e6d3,0xb5403a93,0xf9c1a5ff,0xc0c079db,0x1b41ebea,0x93c1029e,0xd9c030c8,0xa641ece0,0xa7c0fc19,0xb0c00eb2,0xcd41ed53,0xecc107e9,0x3ec04c86,0x5b41f0f2,0x1bc199ec,0x46c0baf4,0x7641e945,0xe9c0fc19,0xcfc0deb9,0xef41e75e,0xcc0a347,0x1cc0c184,0x1441e8ec,0x19c09698,0x9fc11f33,0x1c41e044,0xc8c1029e,0x87c10dba,0xa641e31b,0xc0fc19,0xe0c110ec,0x1441e296,0x30c09698,0xd9c1062d,0x5f41e455,0x9ec0a795,0x94c11634,0x5b41e65d,0x5bc199ec,0x3ec1508b,0x2141dad2,0x34c0a184,0x65c1352d,0x5f41dc12,0x53c0a795,0x48c15002,0xa241dabb,0xb2c19742,0x3cc16911,0xa641cf69,0x3bc0fc19,0xc9c161a6,0xca41d18d,0x44c107e9,0x8dc178d6,0xdc41d145,0xf7c096aa,0xbc17c98,0xc441cea9,0xaec19741,0xa4c19101,0x1c41bcb1,0x67c1029e,0xcdc1861c,0xcc41c49c,0xc107e9,0x3ec18cbc,0x5741c554,0x21c09794,0x62c1894c,0x4841c905,0x74c0a3c1,0x37c190f9,0xef41bcb8,0x73c0a347,0x90c19335,0xc441c053,0x87c19741,0x6cc0afc5,0xd2c1e02a,0x3cc0b93a,0xbcc0deb1,0x8ac1dad9,0x86c0753c,0xfbc0ecb7,0x2c1e353,0x57c1a040,0x6ec0acf8,0xe3c1de57,0xd1c191e4,0x6cc002b0,0xf9c1e2ec,0x33c1033b,0xb8c06b70,0x6c1d889,0x58c11e66,0x4ac0902b,0x73c1df5d,0x9dc11ec1,0x1fc057b8,0x63c1e13b,0x57c10d10,0xa0c10b03,0x9ec1dea8,0xfcc06999,0x8ec1841f,0x36c1c258,0xb8c07d3a,0x44c1d240,0x86c119f3,0x1ac127eb,0x74c18ee2,0x3ec1c554,0x99c18f63,0x54c19044,0x3dc1c457,0xafc0d22a,0x92c14ab8,0xb4c1de23,0xccc092e6,0x5ac0cfde,0xa4c1ee10,0x4ac0d417,0xb4c0f8ec,0xedc1eba6,0x79c197fb,0xc1c0e61e,0x2fc1ecd3,0x3dc1946b,0x55c18348,0x73c1cd6f,0x18c199c8,0x72c1883a,0x65c1ca00,0x29c197ab,0xd6c0c542,0x5dc1e7c9,0x2bc1868f,0x35c0cddc,0xc5c1e6d0,0x68c0ba4b,0x18c1d063,0xc0e5d0,0x63c15000,0x24c199e1,0xff4197b3,0xf4c14fff,0x5841dca9,0x31c10fee,0x2bc14ffc,0x3641e32b,0x6bc0afca,0x5fc15000,0x8741a086,0xed41a7b2,0xa0c14fff,0xbc1d0b7,0xb6c0e85e,0xb9c1a5ff,0x21c1d79b,0xb6c0eb11,0x75c1a5ff,0x37c1cf8a,0xb6413cba,0xdcc1a5ff,0xd4c041b9,0xb541e2f8,0x6dc1a5ff,0x49419a91,0xb84197bd,0x71c1a5ff,0x47419e56,0x1441a978,0xe7c1a600,0x541af9f,0xb6419023,0x5cc1a5ff,0xd541b1a7,0xad4193cd,0x51c1a5ff,0x9341df0a,0xb6c0a68d,0xeec1a5ff,0xc841a75b,0xb6419361,0x6c1a5ff,0x52419f2c,0x7a41a7e1,0xaac1976d,0x5740868f,0x2c1e4b0,0x2fc1031a,0xb94078dd,0x5241e5e6,0xe4c194df,0xfe411f3c,0xd1c1d9e8,0xcdc04ccc,0x840473e,0x8841e6b2,0x4bc199e2,0x44418d20,0xea41b822,0x69c101b4,0xcf418bf7,0xd1c1b905,0x88c04ccc,0x80407482,0xf441e5fc,0xeac1036f,0x241bbf3,0x1fc1889a,0xbfc17599,0x80413df2,0x9541d3b5,0x27c199e2,0x9f3f5589,0x6d41e7e6,0x46c195bf,0x1441d520,0x35c1375a,0x9bc18e29,0x3141d40c,0xddc13c2b,0xadc18087,0xae413045,0x4041d69b,0x7ac19568,0x4a4196ca,0x8d41b050,0x6ac197b0,0xa34139de,0xa441d492,0x3cc0fbe2,0xb6418838,0x6141bbcc,0x9ec199be,0xfb40d8c5,0x1141e194,0x93c1972f,0x37419f98,0xe041a85e,0x89c101b4,0xa41902e,0x5741c2d3,0x20c09794,0xda418cb9,0x1641bfce,0x5cc09698,0x9e41896c,0xc441c76f,0x42c19741,0x9e4172b6,0xa841cca0,0x1ec0fc19,0x5641677b,0x2141d4fa,0x1c0a184,0x2c4162e0,0xf141d133,0x1c0a347,0xf64171e2,0x5b41d1f4,0x79c199ec,0x4a4135d1,0x8f41dbed,0x79c102a0,0x28414e6e,0xdd41d673,0x38c107e8,0xca4139b0,0x2141dfe8,0x19c0a184,0xb9414ddc,0x6241d693,0xbbc0a795,0x1c411851,0xa641e163,0x7c0fc19,0x60412078,0xcf41e010,0x8ac107e9,0xf74119d7,0x5741e5d7,0x94c09794,0x9b40acca,0x3341ea05,0x71c1029f,0x2a40d0b8,0x5241e81d,0xe8c0fc18,0xdb40acf4,0xef41ea03,0x26c0a347,0xcf40e045,0x5f41e749,0xc0a795,0x56401400,0x1b41ed41,0x80c1029e,0x52405b9f,0x5541f0d0,0xeac09794,0xa54080ec,0x8c41f027,0x60c0aa11,0xc7407cac,0x5d41ebe1,0x36c0a795,0xa4401a5a,0xc441f16d,0x1fc19741,0x7940372b,0x7c1e4df,0xb7c10363,0x503fe90d,0x5fc1e078,0xa1c1033c,0x6f409884,0x6dc1dc86,0x47c13465,0xf3406b3e,0xdcc1d820,0xd6c11e9a,0x6140852b,0xadc1d5ce,0xe4c133ae,0x4740bba2,0x34c1e8e0,0xe8c18933,0x2240f76c,0x3fc1e21e,0xabc071ab,0xeb40deaf,0xa7c1dad8,0x64c0753c,0x32418b29,0xabc1b519,0x62c0b66a,0xf9418351,0xb0c1c2b5,0x37c0753c,0x9d418186,0xcec1c385,0x25c1992d,0xfb418e69,0x6cc1bdb1,0x29c193dd,0xd640c542,0x5ec1e7c9,0xf9c0e28f,0x7140dd22,0xe0c1db4e,0x85c1a065,0xa1419655,0xd1c1b00b,0xbbc04ccc,0xd14197e7,0xadc1af41,0x87c1a999,0xcd41dc70,0x9ac10783,0x58c1a999,0x5141d6c1,0x9ac0f05b,0x9cc1a999,0x7b41ddd8,0x70c149d0,0xc5c180de,0xb9418ecd,0x71c1c544,0xe9c0bf68,0x7418a60,0xc9c1c8f7,0xf2c0a000,0x64418831,0xd0c1c9fb,0xf0c09e29,0xc418bf6,0x15c1c758,0xa1c0ac8d,0x7a41843a,0xf6c1ccc9,0x72c1999b,0x6841071e,0xf0c1ea26,0xcc199bd,0xcc40d015,0xc3c1eddb,0xe9c18aa8,0x1f40f25f,0x9bc1ec5b,0x79c09d01,0xa941a33b,0x4441b491,0x6dc19a2a,0x3541a000,0x1641b00c,0xa2c09698,0xbfc1a3ef,0x1b41ac80,0xccc1029e,0xf4c19e5b,0x1441b186,0x21c09698,0xf940073d,0xf5c1ec2c,0x66c126d0,0xff415a66,0x9ac103ff,0xb4c1a999,0x50bdf0ab,0x9ac0df2b,0x68c1a999,0xfb3f3d7a,0x9ac02102,0x2ac1a999,0x23408fc7,0x9abfaebb,0x25c1a999,0xb8c159b4,0x9a4008c9,0x99c1a999,0xb4c12d84,0x9abe591f,0x80c1a999,0x92c15e64,0x9a409621,0x66c1a999,0xef415a66,0x9abf7fff,0x29c1a999,0xa3c184b9,0x7cc1bc69,0x8c18bbd,0xecc0fc65,0xfec1dbe0,0x32c0ade4,0x82c0ed63,0xbdc1dd97,0xa2c19240,0xc1c1348a,0xaac1cf97,0xadc0b1ba,0xd1c18525,0x5ec1bc34,0xa9c0e28f,0x9fc173a9,0x31c1c152,0x39c0b14d,0xbac184cf,0xcc1bc5f,0x29c0cfe9,0x60c185d3,0x1cc1bbe6,0xe5c1884b,0xf0c11802,0x48c1d60a,0xd5c192ce,0x8c173a7,0xbc1c153,0x78c193d7,0x95c16896,0x30c1c3d3,0x24c192d6,0xfbc12057,0x71c1e11c,0xb5c1936d,0xdac141b9,0xa9c1dab5,0x83c19370,0xa1c170b3,0xf5c1ce91,0x5dc1936c,0xd9c18044,0xcec1cf90,0x95c196cc,0x48c16fd5,0xb9c1cef8,0xbdc19370,0x44c12055,0x17c1e132,0xd9c0af1b,0x55c14078,0xedc1dad1,0x91c0af19,0x14c170aa,0xffc1cea2,0x8c0af17,0x86c18d51,0xbec1c6e9,0x5fc0c807,0x7cc18463,0xa4c1cd52,0x83c197fb,0x98c185b8,0x63c1cc2a,0x16c09b18,0xeac10e3c,0x34c1e967,0x3fc19933,0x43c0d5c6,0x6ec1ee15,0xd4c18c95,0xe6c0fc52,0x9ec1ebc8,0x7ac09ced,0x4bc0e3c8,0xd9c1e853,0x28c0d193,0xf1c0e537,0xb7c1e42c,0x54c0a270,0xe6c0be8d,0xadc1e88b,0x38c181c5,0x98c1802b,0xaac1c422,0x4ac076d7,0x37c18486,0xc3c1c22a,0xbcc0a083,0x71c18a8b,0xbcc1bf71,0x73c190f3,0xdac18f06,0x6cc1bd6a,0x31c18b8d,0xaac0bd7b,0x74c1e8ab,0xf5c0f853,0xb5c11b94,0xf0c1dae9,0x14c06add,0xeac1647a,0x77c1ca6e,0x5c1a1d7,0xa3c16334,0x28c1cab8,0xc8c1a25c,0xa2c11c41,0x4c1dac2,0x84c07000,0xd0c18f4f,0x4ac1bd49,0x2bc18176,0xb6c0bef9,0x24c1e87f,0xe7c0ce97,0xc4c0df2b,0x29c1e4db,0x24c195c3,0x5fff100,0xc0f90c58,0xc18f3ac8,0xc1bd5331,0xc0f9c913,0xc18f2168,0xc1bd5eaa,0xc0f5b61e,0xc18f45b3,0xc1bd4e40,0xc0f685c9,0xc18b7603,0xc1bf0770,0xc0c20ae3,0xc18c4dee,0xc1bea602,0xc0a416e1,0xc0bdfc26,0xc1e89c50,0xc18191c3,0xc0bdb9bb,0xc1e8a3d2,0xc1815ae6,0xc18c6a94,0xc1b4899d,0xc1813190,0xc18c6ef5,0xc1b48780,0xc0f7fd18,0xc17a1756,0xc1bb7ac6,0xc0b14d36,0xc186d3e9,0xc1b70ea1,0xc09780fc,0xc0ac81fe,0xc1e084d6,0xc181e453,0xc18a6a04,0xc1b56fa3,0xc1935ad7,0xc1800a3f,0xc1ba203c,0xc1915493,0xc1801c93,0xc1ba17ef,0xc19f05f5,0xc15ceb18,0xc1c21325,0xc0632ccb,0xc1593739,0xc1c2e96e,0xc06c2774,0xc15ba58c,0xc1c25cbf,0xc05f1f19,0xc0aad382,0xc1e0b57f,0xc0f733ce,0xc173ab45,0xc1bcee73,0xc1a135db,0xc112c5f9,0xc1d2d64a,0xc1a34f52,0xc1153449,0xc1d24997,0xc1a1ae46,0xc1105219,0xcd36439,0x1014f500,0xddc0e35b,0x79c1da51,0xc9c1a02c,0x67c0ae1c,0xe4c1e056,0x5c0ce66,0xd3c0f5c5,0x1bc1d83c,0xcad9e,0xcbae0cf5,0x69e4c193,0xf932c0e6,0xa315c1d9,0xfed4c192,0xdbc5c0b8,0xe453c1e5,0xf7000c81,0x8082161d,0x1595dc1,0xdb2a8441,0x92dfe8c1,0x689678c1,0xc3d39541,0xb17413c1,0x8525adc0,0xbc34d141,0xe28f5ec1,0x348aa2c0,0x1035441,0xdf40018,0xc1868f5d,0x4185d329,0xc1bbe660,0xc0dba062,0x40f46f0d,0xc1dcc9d2,0xc0b0b13c,0xfff10018,0x884b1c59,0x1802e5c1,0xd60af041,0x92ce48c1,0xfc6508c1,0xdbe0ec40,0x93b9f6c1,0x820fdcc1,0xc8e20741,0x932694c1,0x70ad72c1,0xce91f141,0x936ccfc1,0x4971acc1,0xd8b82641,0x936dacc1,0x697ec6c1,0xd0c61e41,0x9370a8c1,0x185ed5c1,0xe2be3f41,0x9370b9c1,0x49912ac1,0xdea67541,0x9820c4c1,0x6fe110c1,0xcef4d441,0xaf0a3dc1,0x4874c9c0,0xd9304f41,0xaf0a2dc1,0x1f443cc0,0xe18e1841,0xaf0a35c1,0x1d414c0,0xe656df41,0xb03287c1,0x60e2bac0,0xd92cb241,0x9d921dc1,0xe3c16c0,0xe967ea41,0x993334c1,0x490d47c1,0xde546d41,0x980002c1,0x80445dc0,0xcf90d941,0x993334c1,0x8816c1c1,0xca8e2341,0x974f84c1,0x8d50a5c1,0xc6e94f41,0x8d312ac1,0x830e28c1,0xcdd11241,0xa2ec5bc1,0x8c1527c0,0xc7c78041,0xb9e1ccc1,0x88a52ec0,0xc4566341,0x8b7c04c1,0x8370dcc1,0xc7db6d41,0xb3f7b4c1,0x7bb8b6c0,0xc52da141,0x987805c1,0x8f2168c0,0xbd5eaa41,0x80a0bbc1,0xf908eec1,0xe1efb440,0x778534c1,0x186293c0,0xdba2b941,0x700004c1,0x1a4ee5c0,0xdb336e41,0x66b86bc1,0x190f66c0,0xdb7ba641,0x6addf0c1,0xc3186ac0,0xe808a040,0x92596fc1,0x1c41c8c1,0xdac2a241,0x54040030,0xe618f500,0xc4c0fa49,0xef4101d0,0x33c1e0bc,0xecc19915,0x1c418f59,0xcfc1bd45,0x84c0f7bb,0xd0418f4f,0xacc1bd49,0x54f6f3,0xa1d77744,0xf4003cc1,0xf5b61e61,0xbd841dc0,0xe8ab0840,0x8134afc1,0x1b0f00c1,0xdb07fd41,0xa221a0c1,0x1ad934c1,0xdb142741,0xa23025c1,0x8dc82cc1,0xbdfb0441,0xb02cf3c1,0x802baac0,0xc4226341,0xa0580cc1,0x7bb8b6c1,0xc52da141,0x991533c1,0xbef92bc1,0xe87fb640,0xce9724c1,0x8b7545c0,0xbf07c541,0x8eb246c1,0xadaecdc1,0xe062d540,0xfb8317c1,0xf1000cc0,0x80526f08,0xaa8c13c1,0xe0bd9340,0xf7f5d1c1,0x8c1541c0,0xb4ae2f41,0xc0402ac,0x1611f400,0x66c18082,0xc640b330,0x22c1dfc3,0x79c1935b,0xeb40d892,0xbac1db89,0x5c190bc,0x40f5c5,0x6a04f103,0xe1411180,0x9bc1d31f,0x49c1a2cd,0x97411534,0x384d249,0x59373944,0x4039041,0x7ca20054,0x8ac0fac4,0x16415a65,0xf403b4a5,0xcbe14c01,0xdcf90140,0x884d72c1,0x105219c1,0x44037841,0x415ceb18,0x186203d8,0x7e415bab,0xf403cc5b,0x89021d3d,0xb5a7a041,0xde6668c1,0x8a4e40c0,0xb57c3b41,0xadd105c1,0x7c0ba7c0,0xbb09d141,0x77518bc1,0x738900c0,0xbcf63241,0xad9e1bc1,0x817416c0,0xb97cc041,0x90504ac1,0xb321d1c1,0xdfc52540,0xde6668c1,0xae1cc9c0,0xf103cc40,0xd8927928,0xdb89e940,0xb9d9ecc1,0x8bae8ec0,0xb4dc9f41,0x8b997cc1,0xb43a30c1,0xdd032b40,0x6f3334c1,0xa9bb47c1,0xdec41540,0xa9999abf,0x9c785dc1,0xc8cb3240,0x4f1000c,0x40f2506a,0xc0ab03f7,0xc1a9999a,0x403981dc,0x18b34bcf,0x311f7100,0x735240ed,0x710018ce,0x3fbc219f,0x18f6e71d,0x84ba7100,0x8d7a40e5,0xf10018e2,0xb64b6804,0xbb2b740,0xa9999ac1,0x72be2fc1,0x15683640,0xdc71000c,0x7f403981,0xc149a,0xfd66271,0x11ea9240,0x5272000c,0x993e3a0a,0x3cef1d,0x3f3d7a61,0x1802c339,0xd01f200,0x823f898d,0x9ac1078b,0x42c1a199,0x1840ccb4,0xc1a14400,0x9c73e2,0x68c1a1d7,0xd40b64b,0x9abffa8a,0xcca199,0xeec1a191,0xf33fb378,0x18fc57,0xd7ae04f1,0xe4213e9c,0x999ac041,0xa52c1a1,0xd4ae3e3a,0x71000c4d,0xbea98a87,0xc8e8868,0x104f100,0xc0c0c3f9,0x9a40aadd,0x20c1a999,0xa1c1107c,0xcf556,0x20006371,0xf8a00ac1,0x9471000c,0x89c15c39,0xc9bfb,0xd26b10f1,0x36b1c15d,0x999a4046,0xc36fc1a1,0xf6b6c150,0x999a3fa2,0xfb25c1a1,0x4dbac14b,0xf4000c70,0x40c6b90d,0xc2abacc1,0xa1999a3e,0x307195c1,0x9cc964c1,0xa1999abd,0xd960c4c1,0x710030c0,0xc0cd6c7f,0x30ea86be,0xa75d7100,0xbdbec0bd,0x42005462,0xc0c27479,0xa191006c,0xc73220c1,0xa987f6c0,0xb1330018,0x9c2cf7,0xc1a152f4,0x40e00000,0xc017ae14,0xbf19999a,0x41b74adf,0xc18b55d7,0xbf1999aa,0xc05828f2,0x4150cccd,0xbf199989,0xc1be9136,0x41813521,0xbf1cccbc,0xc1828eea,0xc1bd98d6,0xbf1cccde,0xc16d66f9,0xc1c54865,0xbf1999aa,0xc157b159,0xc1cb6b79,0xbf1cccde,0xc0711859,0x4180133d,0x24199989,0x480100,0xff204b71,0x939e43bf,0x10f10048,0xc0e992be,0xc060522a,0xbf1c0fcb,0x41ddd905,0x40f66215,0xbf1ccccd,0x412a70f4,0x84d5e33a,0xf6b67100,0x79f040a9,0x71000c56,0x4157b156,0x48cb6b79,0xe8d37100,0xa5aa40b2,0x71001850,0x4079999a,0x18700000,0x27387100,0x55ff41a7,0xf1000c9e,0x5421d904,0xdf62e1c0,0x1d0bd8bf,0x9e55ffbf,0xa7273841,0x24040030,0xffef3400,0xc100181f,0x1fffef41,0x8b55d7bf,0xb74adf41,0xee71000c,0xe1c1af7a,0xc950d,0x55ff04f1,0x2738c19e,0x11c1a7,0x70f4bf20,0xe33ac12a,0x71000cd5,0x41950de1,0xcaf7aee,0x540300,0x71000c01,0x40b3904f,0xc4e2998,0x1440400,0xffef08f1,0xe66dbf1f,0xd4244049,0x4075,0xfdccbf20,0xf664c0b0,0x4002452,0xef31012c,0x1741fff,0x87999a31,0x4f440078,0x48c0b390,0x3f04f100,0x2ac0af73,0x36c087c9,0x41bf1dac,0x7340a555,0x3c576f,0xb0fdcc44,0x4004840,0xefb10108,0x58bf1fff,0xd8404274,0x1085795,0x50756071,0x6065dd40,0x4f1000c,0xbed6e6da,0x419348aa,0xbf1bbbb6,0xc02e6345,0x8c4336bc,0xdf1e7101,0xd456c055,0xf100244f,0x7243f604,0x8038a940,0x1c77ff41,0x4a6fc6bf,0x39b129be,0x5c710018,0x40c0593b,0x306cd6,0xb8c5e371,0x94fbec3f,0x9a440018,0x80c07999,0x3b5c7101,0x29c0c059,0x71001873,0x4026b0f7,0xc897bdc,0x72757100,0x999ac03c,0x71000c85,0x400c1284,0xc3c5a2a,0xb4707100,0xe1a6c046,0x71000c8a,0x400bdedf,0xc4653c2,0xb0f74400,0x3cc026,0x50756071,0x6065ddc0,0x58710114,0xd8c04274,0xc5795,0x26b0f771,0x4d0848c0,0xa804000c,0xffefb100,0xf113bf1f,0x5d504001,0x4001844,0xefb10054,0x25bf1fff,0xe5404c7a,0x185d64,0xb1011404,0xbf1fffef,0x403c7275,0x1885999a,0x545c7100,0xf10c4014,0x71000c8b,0x4001f113,0xc8dd158,0xd80400,0x1fffefb1,0x2144ddbf,0x96d808bf,0x7710018,0xdd407823,0xc6940,0xc128471,0x3c5a2ac0,0x5004000c,0xffefb101,0xdf61bf1f,0xe744c067,0xb1001858,0xbe58359c,0x4131b107,0x18200000,0x8c5e3100,0x4001883,0x7ff20108,0xbf1fffef,0xc194894c,0xc1aeded7,0xbf600011,0x41c76a7f,0x410a259c,0xbf600000,0x4112855e,0x41d96df9,0xbf3fffef,0xc1d96df7,0xc1128566,0xbf600000,0xc112855d,0xc1d96df9,0xbf400011,0xc1dd13aa,0xc0f58738,0xbf400000,0xc1e01369,0xc0c54a90,0xbf600000,0xc0683c58,0xc1d48245,0xbf600011,0xc080c05d,0xc1d0d464,0xbf400011,0xc1e5260e,0xbffff0b3,0xbf4aaab0,0x3fc7097d,0xc1e57023,0xbf400011,0x40678933,0x30924c,0x1007803,0x2a710060,0x1f413483,0x9cbec4,0xfc0b04f1,0x2939c1b8,0xffef414b,0xded7bf5f,0x894cc1ae,0x62000c94,0xc19586ec,0xced91,0x9c87ef71,0x8d8c5f41,0xd8030030,0x240100,0x6c93cd71,0xc498e9c1,0x5471000c,0xc41bdaa,0xcc3918,0x40adc071,0xd03beec1,0x4f10018,0xc12b6e43,0x41d4e6d0,0xbf3ff9a5,0xc156f17a,0x2ccab687,0x8804f101,0xc5c1e584,0x3fa3c9,0xb0bf2000,0x11c18289,0x30ca5d3,0xbde7ac71,0x80c23ec1,0x3e71000c,0xacc180c2,0xcbde7,0xcab68771,0x56f17ac1,0x4803000c,0xc0100,0x34832a42,0x9100ccc1,0x91d7bf20,0x90b4137,0x420060be,0x41b8fc0b,0x6f100d8,0x6c9abf1f,0xf640c1d3,0xbdba,0x4a90bf20,0x136940c5,0x71003ce0,0xc1c337c2,0xc8205927,0x26657101,0xd8e2c1b3,0x71003c5f,0xc19da992,0xc8c497c,0xfc0600,0x32bf2091,0x9f41ab6e,0x3c762a,0x38a404f1,0x93c94005,0xccdec1b2,0xbf6c,0x2405bfe0,0x71000cd5,0x405da183,0xcbb4a13,0x6c947100,0x46a9c055,0x71000cb9,0x40506617,0xcb855fd,0x4367400,0xd9a4403e,0x14000cb5,0xf1000cc0,0x15dddf10,0xb3769fc0,0x680004c1,0x530679c0,0xb82c08c0,0x6801a8c1,0xf800f3c0,0xb2d1fcbf,0x3d710018,0xf0c06362,0xcd351,0x13333371,0xba05e140,0x9071000c,0x3240296a,0xcd42b,0x63623d44,0xf2002440,0x5defe966,0xbbbc8640,0x68003bc1,0x25e00dc0,0xbaea5dc0,0x67ff61c1,0x281362c0,0xd45a9140,0x1b3337c1,0xbc526c0,0x638562c1,0x466666bf,0x209763bf,0x8e4b5ac0,0x46665641,0xf06d6ebf,0x2b6bf4c0,0x466666bd,0x2d5198bf,0xa20009c0,0x46665641,0xf2ea6bf,0x6e362f41,0x466677c1,0xa5b715bf,0x865191c0,0x466666c0,0xc8b1ddbf,0x95d5eebe,0x185641,0x184014,0xd89f10f1,0xd27240b2,0x6666c08a,0x1c54bf46,0xb8a2c02d,0x666640e0,0x59e2bf46,0xebb3c057,0x71000c78,0xc04ea4b1,0xcfdd508,0x91e27100,0xfc8f4065,0x8300849a,0x40d8b9b0,0x3f9d6830,0x40140030,0x22710030,0x45402951,0x30dfa0,0x719cf571,0x6fe9f740,0x8871000c,0x80c00d11,0x3c3f75,0xf44910f1,0x4303c06e,0x99954162,0x5929c011,0x3c914056,0x999a4152,0x2789c011,0xb7b3c019,0x71000c40,0x401af95d,0x248fec11,0x7706f100,0x77c108f8,0x9ec178f8,0xc01199,0x41c11000,0x9abfde9d,0xf051000c,0x80000040,0xec710018,0x5cc046f8,0x309f81,0xb32a3d71,0x56b69b40,0xdc710018,0x410cc8,0xc7400,0x10000071,0x68000041,0xe271000c,0x67405759,0x48f1d7,0x2ebacf71,0xa9056c3f,0x2d71003c,0xe9407240,0x18dd45,0xd208b371,0x73937ec0,0x3710018,0xaec02708,0x9c0d4a,0x2ea604f1,0x362fc10f,0xccdec16e,0xc8dcbf2c,0xc10c,0x71000c74,0xc0fc6c5d,0xc7f2ea6,0xec15f400,0x2fc0b35f,0xaac15696,0x7dbf3999,0xa9402104,0xcd4141c5,0xe0bf2ccc,0x34c0b2f7,0x2fc08ac7,0xccbf376a,0xcd01f400,0x10bf2ccc,0x36bff23e,0xbc419239,0xa8bf2ccc,0xccde3500,0xf101d42c,0x2cccde08,0xb291d8bf,0x89afe040,0x2ccccdc0,0xe5701ebf,0xa722813f,0x4f10030,0xc070d44a,0x407187c2,0xbf394d62,0x406eaf6c,0x1876458f,0x92ef7100,0x89a24054,0xf1000c9d,0x6d6f704,0xf6ee741,0x2ccccdbf,0xeeb0bbf,0xa59e4141,0x2671000c,0x62410bc5,0xc6385,0xd3d04271,0x701514c0,0xc9710030,0xf13fc33b,0x1b0392f,0xf0000071,0x3c09da3f,0x271000c,0x9e40422a,0xc4cbb,0x5b403e71,0x57988640,0x6c71000c,0x71406eaf,0xc69ba,0x94540471,0x36efc6bf,0x11000c,0x34110001,0x9974000c,0x404fd8,0xc8700,0xcc014,0x5b403e71,0x8433bdc0,0x6c710018,0x8fc06eaf,0xc7645,0xc136a871,0x80b771c0,0x4f1000c,0xc0f00000,0xc1800000,0xbf466677,0x4108f877,0xc78f877,0xe28d7100,0xb0c4c0da,0x6202886f,0x40a488d9,0x2f41f45,0xd4475862,0x90706d40,0x3e757100,0x18873ed4,0x710048a9,0xc03ebcfd,0x94e3c966,0x57717102,0xa34d3f53,0x440018a8,0x40c136a8,0x17b5006c,0x7340e953,0x663e257f,0x12c4666,0x666614f4,0x6bf2bf46,0x150e40ea,0x999ac05d,0xfdddbe19,0xd317c0ef,0x6666c024,0x6bf2bf26,0x150ec0ea,0x41000c5d,0x1f13e840,0x9f4000c,0x41d0dd85,0xc17c47a3,0xc16c0001,0x41d45b06,0xc17057a6,0xc0980000,0x20f1000c,0xc16c0001,0x41a2b297,0xc1b5d6d4,0xc167fce3,0x41a37ead,0xc1b5eec7,0xc16a3c4e,0x41a4a6e1,0xc1b41251,0xc16bd325,0x41a543f4,0x48b38233,0xcaeb7100,0x694141dd,0x7100484b,0x41af2b26,0x18a9dbd4,0xd404f100,0x5641df6a,0x89c145dc,0x3cc09c19,0xc341b3e9,0x18a4d3,0xbcf58271,0x9a5f0c41,0x4f9000c,0x41c56670,0xc18f6b6b,0xc0980002,0x41c96275,0xc89c4d0,0x12cf100,0x80c16c00,0xf441a521,0xb8c1b49b,0x34c09859,0x7341a32d,0x27c1b660,0x8cc0a006,0x3941a2ec,0xb6c1b69a,0x86c0a314,0x3a41a2c7,0x1c1b6bb,0x93c16400,0xd941a5be,0x60b40b,0xde73b871,0x4bfd6b41,0x4f1000c,0x41decc3c,0xc14a7995,0xc16bd326,0x41c1d390,0x6c956568,0xd1cf300,0x33c17012,0x8a413aa5,0x8c11a14,0xfb4149e5,0x7cc149fa,0x65c11a14,0xfc15b62,0x7a416ffc,0x98c11a14,0x32c181ca,0x1831c1,0xfc16b51,0xc6ffc,0x94e83262,0x185525c1,0x103f200,0x9ac18c0b,0x7bc117ac,0xdfc11a14,0x84c1839a,0x71000c39,0x418354bb,0x181227ab,0x6d97100,0x95ad4189,0x62000c10,0xc17b4ea0,0x18c7a0,0x87b8b271,0x62db841,0x4f10018,0xc1951ccd,0x41205722,0xc11a147b,0x41559895,0x847261d9,0x62654400,0x90415b,0x86ed9f71,0x176e7441,0xdc710024,0xaa41605a,0x246c2b,0x54d20871,0x36ba79c1,0x9a71000c,0x9a413799,0xa85199,0x5934d071,0x41a8dec1,0x5b710018,0x6d413153,0x183a19,0xf6500cf5,0x5d48411e,0x5c30c18c,0xc10f,0xc0b4,0x5c2841ae,0x6666c10f,0x71000c8e,0xc0b4ae77,0x18af4b4a,0xe904f100,0x35c0b30f,0x2941bb88,0xe8c10f5c,0x8fc0bfd9,0xcb29b,0x905cd735,0x4f19a68,0xc1266666,0xc1af4551,0xc10f5c2a,0xc09f454a,0x3cb82eae,0x696c7100,0xa12fc115,0x710018a7,0xc110edce,0xca655e6,0x2604f100,0x62c16955,0x2bc171d0,0x4ac10f5c,0xda405762,0x54a10c,0xb6adf371,0xb0800040,0xd762003c,0xe9c0f85c,0x71003086,0xc10e573c,0x3ca41817,0x7100,0xcccdc10e,0x71000ca2,0x4196f2cf,0x3c1513b1,0xcbfe7100,0x46704197,0x71000c14,0xc0f2ddd9,0x609a047f,0x5c229100,0xbc6e4194,0xf01b4122,0x40be5100,0x60b25483,0x7e859100,0x120e4101,0x182f41a9,0x40dc2400,0x89440108,0xfc40db51,0x9b1bf200,0x4198b9,0x29c11400,0x49c10f5c,0x72419449,0x83c1232f,0x29c10f5b,0xc3c11692,0x6241a085,0xc10f5d,0x50411300,0x7100e421,0x40f9e211,0x60b53333,0x573c4400,0xb4410e,0x15696c44,0x71010841,0x41108bc7,0xc0b0b597,0x7100,0x33334118,0xf1000cb1,0x665bad10,0xa05e0e41,0xf5cc141,0x9759b8c1,0x81b73741,0xf613741,0x20a905c1,0xa54ccd41,0xc4350024,0x5421a8,0x22000044,0x35010841,0xb0db5189,0x2a00201,0x412122f1,0xc10f5c2a,0xc107dcc0,0xc1bc8e48,0xc138bd11,0xc196025e,0xc0d0f0a6,0xc13952da,0xc177b681,0xc032497b,0xc138bd10,0xc181db40,0xc82b676,0xa5327100,0x6cecc143,0x71000c55,0xc1413f68,0xc6c9431,0xab04f100,0xcfc13a4d,0x10c12628,0x36c138bd,0x12c1281f,0xc1879,0xfd2d3a71,0xed4eecc0,0x9a710024,0x1cc0d999,0x180dd6,0x8755e371,0x1fcb8ec1,0x4271000c,0x6ac11ce6,0x849d89,0xc1999a71,0x91fe08c0,0xfff1000c,0xc5ffffff,0x4001c8eb,0xc193999a,0xc13a9ba8,0xc1a3662f,0xc0d1b87c,0xc13ba392,0x41aec8dc,0x4105ae9f,0xc13a5dd8,0x41ae9650,0x413cb41e,0xc135fc0e,0xc19ff5d4,0x416add4c,0xc135fbbd,0xc1876b29,0x41386662,0xc13a5f73,0xc177f1f5,0x4129437e,0xc13a5e36,0x4187bc2a,0xc1119f1a,0xc13a5e36,0x41899154,0x4120952c,0xc13a5ea4,0x41853452,0xc190fbf2,0xc13a5e36,0x41822fe9,0x413c9eee,0xc13a5e34,0x402d91ac,0x41a55d4d,0xc13c277c,0x403099e1,0x41a6db18,0xc143f86f,0x4016a355,0x40ed363d,0xc14a5e35,0x40d9abef,0xc19fff9e,0xc145cbef,0xc0d7703b,0xc14bb36f,0xc143f7d0,0xc0b907d9,0xc1581e5b,0xc143f7d0,0xc03b82cf,0x41b64d55,0xc143f8b0,0xc016049b,0x417e6667,0xc143f7ce,0x41081286,0xc1bca8eb,0xc11ccc95,0xc1208f7c,0xc1b0dead,0xc11ccccf,0xc0f522e0,0xc19c2126,0xc11ccccf,0x4103d1b5,0xc193999a,0xc1851083,0x40fc949c,0xc19399a3,0xc1480ed4,0x41175b90,0xc193999a,0xc1471159,0x416b8c69,0xc193999b,0xc13caf9a,0x41005dae,0xc1baf90c,0xc1472b46,0x4084db79,0x418542f3,0xc146e9b3,0x40bc9e43,0x41a91250,0xc1472af8,0x40d77901,0x41c9e8fe,0xc1472afa,0xc0fc7f58,0x41a0cccd,0xc147ebc8,0xc0d9999a,0xc1412fbd,0xc1472b03,0xc0bff857,0xc1566bb7,0xc1472b03,0xc0ca8a22,0xc152a4b8,0xc1472b03,0x4022bce0,0xc131f307,0xc184c498,0x404b742a,0xc13e1477,0xc183fb30,0x40578da0,0x41802c19,0xc14a3ec3,0x40570271,0x411243d9,0xc14acb99,0x404c60fe,0xc0e24d34,0xc183876a,0x41679433,0xc0000000,0xc1841d50,0x416859ac,0xc1067a27,0xc1838089,0xc04b3943,0xbe6c6690,0xc183a6a2,0xc01d9c02,0xc08aea7b,0xc1838629,0x41686627,0x4100e6bb,0xc183892d,0x415e257e,0x410ba754,0xc185225d,0x415db97b,0x41a0b0e5,0xc184c0f2,0x416c46e8,0x419ed4f6,0xc13b5fdb,0x410d7f0b,0x41a0ccce,0xc183e9f8,0x410365d5,0x41a0ccce,0xc184e74c,0x41128283,0x41a0cccd,0xc147e807,0xc11c50f1,0x41a0cccb,0xc13aa552,0xc0589071,0x41a11daf,0xc13c28f5,0xc1128223,0xc0ebac3b,0xc147eb59,0xc116b00c,0x41ba29c1,0xc147266f,0xc119c93b,0xc0ebac36,0xc13b6c1f,0xc1247e0f,0x418b4392,0xc13a56b2,0xc08be3c5,0x41c5ce70,0xc13c2798,0xc08bef82,0x41a796bb,0xc13c28f5,0x408b81c3,0x41a8701f,0xc13c28f5,0xc045f827,0x417ed6c8,0xc185070b,0xc05be19c,0x4180474c,0xc1450550,0xc056ec81,0xc09b760c,0xc14ad2d3,0xc05c1583,0xc14308dc,0xc1485862,0xc01f2703,0x411a5178,0xc183f85d,0xc0277f91,0x40e853a6,0xc1856e62,0x4118d658,0xc1bdaf9e,0xc13c20a4,0x411897db,0xc1a7e7f6,0xc13cf1d7,0x414e3b5e,0xc19c2124,0xc13a56ac,0x41247401,0xc18b480c,0xc13a56ab,0x4125b26c,0x41139d6b,0xc13a56ab,0x413c8091,0x4123e97b,0xc13a56ab,0x413be8b8,0xc14899af,0xc13a56ac,0x4144f93b,0xc15c589a,0xc13a56a9,0x41a26dd3,0xbf601f64,0xc1472b02,0x41a26dd3,0x41014e6c,0xc1472b02,0x41a26dd3,0x3fb78ac2,0xc1472b02,0x41aeea97,0xc113a7a5,0xc118f733,0x41a37ac5,0x41074c4c,0xc118f51c,0x41aedc8c,0x4105a96b,0xc1335814,0x4199bb3f,0xc1725d71,0xc13b317b,0x41a383af,0xc1576f0b,0xc13b9eaa,0x419ab4fe,0x40f8d74f,0xc1472b02,0x419ab4fe,0x4122e10d,0xc1472b02,0xc166d238,0x412b9372,0xc1472d11,0xc16a3ab1,0x410f4480,0xc1472b31,0xc1a26bc7,0x40f8ffda,0xc1472b02,0xc19ab8e8,0x411bc3dc,0xc1472926,0xc15e652a,0x414f1eb5,0xc18511e2,0xc16839ee,0x419f7d93,0xc183db50,0xc19cb90e,0xc0d1b876,0xc1854f98,0xc188ae91,0x414a81c8,0xc1319a00,0xc19b9d4f,0x40f0a3d7,0xc1837f81,0x419bf3c1,0x40fa6ab3,0xc1844974,0x41a18d9c,0xbf704e2f,0xc1837d9c,0x419ca650,0xbfa57354,0xc18553e2,0x4147be39,0x41139d6b,0xc1207ae2,0x4125b26c,0x4114fc99,0xc1207ae2,0x3e1e2d1f,0x3ff593de,0xc1207ae2,0x414862ce,0xc135d46d,0xc1207ae3,0x4132ebbf,0xc139123a,0xc1207ae3,0xc1811c40,0xc1305fb3,0xc1207ae2,0xc17defcc,0xc1381f46,0xc1207ae2,0xc130d32e,0xc123d0a1,0x3f1003c,0x7e4187ac,0xe2c10607,0x5dc1207a,0xedc13c7c,0xc041b,0x6e741cf1,0x4147,0x7ae04158,0xa3a5c120,0x8a8bc146,0x7ae23fe2,0xa828c120,0xbec34185,0x7ae1411a,0x8e2ec120,0x5863c183,0x71000c15,0xc1856210,0xc12d924,0x7d167100,0xf0cfc17e,0xf1000c16,0x5612f704,0x228035c1,0x207ae241,0x224115c1,0x5306ae41,0xec040060,0x7ae0b107,0x2b0dc120,0xe4e0c159,0xf2006c49,0xd915d563,0xeb0542c0,0x207ae2bf,0xf48451c1,0x482763bd,0x207ae13f,0x843183c1,0x90ca8240,0x2f5c2a40,0xfc8032c1,0xecdefac0,0x486b51c0,0x940000c1,0x20000141,0x10e76dc1,0x8de4f8c1,0x11fb4141,0x128106c1,0x867692c1,0x1d307641,0x128106c1,0xa13333c1,0x4000041,0x128106c1,0x9a0000c1,0x4000041,0x12810641,0x987274c1,0x1868ad41,0xc0300,0x64108f2,0x6dc11281,0xcfc182fb,0x6c11ee4,0xe6c11281,0xf4c18d4c,0x71000cb7,0xc1652300,0x242a53ea,0xb314f500,0x72c183bb,0xe9c11063,0x47c110ac,0x9cc16974,0x541393c,0xc11281,0x92419700,0xd3c1059b,0x540f4d,0x4dd308f1,0x28d1c10f,0x41b2,0x7176c104,0x42ccc12a,0x84254186,0x7100241c,0xc1833ac2,0xc1f4385,0xcccd7100,0xc181,0x71000c18,0xc18d89b3,0xc1e4119,0xe400f100,0xff41b6bf,0xddc103ff,0x54c14ebc,0xcb030,0x8b24f431,0x1b1000c,0xf4410400,0xeac18b24,0x18b526,0x4eea0c71,0xb40565c1,0x3531000c,0x1872b7,0x40001b1,0x4eea0c41,0xa3d95ec1,0x31710018,0x4cc19dfc,0xca040,0x572c20f1,0x1cfcc1a0,0xb21d4198,0x81d34105,0xc1a2,0xffff4196,0x6666c10f,0xf5a5c1a2,0x4048,0xd8453f00,0x477cc088,0x40b34047,0xf1000ced,0x4373da14,0x254cf540,0x88d84540,0x5e7f63c0,0x4f50ad40,0x8a720040,0x3e6666c0,0xdccccdc0,0x6bedfabf,0x66c4000c,0x2d406e66,0x66c05f21,0xc403e66,0x3ee67300,0xc894064,0x62001861,0x999ac06e,0x24bf79,0x66407e51,0x183e66,0xea0c9df4,0x1355405b,0x19fbfba,0x7beec045,0x3333405e,0x5461bfa3,0x3911c012,0x39114056,0x54614056,0x302bc012,0x18ac058,0x7ffa4057,0xcccdc012,0x406c,0x54610000,0x37a8c012,0x6d8fc05b,0x5461bf9f,0x999ac012,0xf7dbc051,0x5461bfbc,0xc012,0x6d8f4040,0x5461405f,0xb6c8c012,0x37a8404f,0x5461405b,0xe3dac012,0xd9664067,0x2ab2ba93,0x6113c046,0xd174053,0xc76d407d,0x4346c05d,0x43464050,0x3dcd4050,0x9dedbfbe,0xffc14009,0x425bbf26,0xbfbe,0xcccd4040,0x425bbfac,0x3837bfbe,0xc3fad,0x56666674,0x80000040,0x49f10024,0x566666c0,0xbe425b40,0x989507bf,0x580c20be,0xd0f1d440,0xd39cb7bf,0x8000003f,0xf505963f,0xf8d7f9bf,0x355713f,0xdaeb2540,0xbc011dbf,0x6e7193d,0x3ed3940,0xc0,0xeb17e780,0x75e8d3f,0xe9abb0c0,0x1515163e,0xfe798940,0x38e5cbf,0xd48302bf,0xfff30018,0x227c9e1a,0x3653b9bf,0xe7b20c40,0x8e22abbf,0x3df7bf,0xfe0c1740,0x5cec4bf,0xdbdf5dc0,0xdaeb253f,0xd3682bf,0x686f8bbf,0x9e21e3f,0xa4c272c0,0xdeeb4fbf,0xfe79893e,0x8bb8c3bf,0x9effa0be,0x3ed39bd,0x2b4214c0,0x71d474bf,0xfe7989be,0x38e5cbf,0xadf3f93f,0x75e8d3e,0x5d0279c0,0xdfa00e3f,0xfe7989bd,0x227c9ebf,0x594ee43f,0xe7b20cbf,0xbfa259bf,0x20572a3f,0xdaeb25bf,0xd177eabf,0x8da3c23f,0xe7b20cbd,0xe52303bf,0x5bee3d3f,0xe7b20c3e,0x523316bf,0xa267f1c0,0xbe28f6bf,0x650a35bf,0x85815ac0,0x8ac88cbf,0x40b852c0,0x79091840,0x6816f0bf,0x55732c0,0x36b7e940,0x684aa940,0x3f88adc0,0x29b3a240,0x6816f040,0x31eb85c0,0x465d4f40,0x6816f040,0x4371bdc0,0x57f2b2c0,0x6816f0bf,0x433105c0,0x466be8c0,0x6816f0bf,0x20af08c0,0x79ecc4c0,0x6816f0bf,0x429a5bc0,0x3a4b6240,0x6816f040,0x3b99e9c0,0xe413ec0,0x6816f0bf,0x3851ecc0,0xab31c240,0xf1000cbe,0x6638c03d,0x16f04015,0xcf46c068,0x9b203fb7,0x16f0bf82,0xbca5c068,0xef8d3fc2,0x1744bf87,0xaf36c068,0xbbc33fc6,0x17c24043,0x6677c068,0x3359c005,0x2e7bbf5e,0xd0c4c068,0xf840c037,0xadf3bed0,0xa63bc079,0x823dbfd4,0x84003c7f,0xc0301ca8,0x3f1d742e,0xfa31009c,0x60319a,0x753604f1,0x4d55c037,0xf028401c,0xe9b8c074,0xa1fdc03d,0x44001841,0xc031eb85,0x417100d8,0xf3c02df3,0x1845e8,0x20af0871,0x3e7b31c0,0x28f1000c,0x402ec3f8,0x3fc5d7ba,0xc06815c2,0xbfb501a8,0xbf90a140,0xc088d845,0xc048aa37,0x3e80a761,0xc089b6cc,0xc041c038,0xbeeb764f,0xc088d845,0xc0471d86,0x843431a5,0x897a7103,0x6cfdbfaf,0xf1000c48,0xc2ac1910,0x5db528bf,0x89002e40,0x7195eec0,0x605b57bf,0x899eb240,0x200000c0,0x58a4ca40,0x2df10024,0xbf7abd90,0xbfbfe3e3,0xc08957e6,0x4018209b,0x3edfd285,0xc04451ce,0x401915db,0x3f50914b,0xc044e19c,0x40156ee3,0x3fc69531,0xc044e1a0,0xbf43e660,0x3fb50204,0xc0610464,0x43f11097,0x943f8000,0xb2c06587,0xbefd46,0x1f3f8000,0xd3c06410,0x64be2011,0x6e4038cf,0x3ec050c1,0x27be43b0,0x7e40094b,0x97c05d8b,0xf63f1503,0x3c4014ed,0xa6c05930,0x113fed43,0xba3fc7e3,0x82c04fd7,0x503f5aad,0x7e3fe4a7,0xdcc05d8b,0x318bf7e,0x5864c7b1,0x5bb57cc0,0x9254de3f,0x7cf5006c,0x3f9b646b,0x3f8ce04c,0xc05cc0a5,0xbf70f68c,0x4037413e,0xc04c7b89,0x3fcc106b,0x3fd7fdce,0xc053fa27,0xc01a75b0,0x3f1f7521,0xc04451ce,0xbfb1083e,0xbf521ec5,0xc047ba95,0xbfdbce4a,0xbf2ce5d6,0xc044e1a0,0x3cf4b839,0x3f744b7f,0xc06582fd,0x3df51266,0xbee3645a,0xc059303c,0x3dbd6063,0x3f66490a,0xc0656ae8,0x3d9327aa,0x3e080e49,0xc0610464,0xbec104f7,0xbdc8fc93,0xc05d8b7e,0xbf5bb57c,0x905b5654,0x3f683100,0xf1009066,0x7e8effff,0x80bfb5e1,0xa53ed881,0xf1c057bd,0xc1c11221,0xebc1c546,0xabc0a036,0x84c0dfdc,0xdcc1bf0b,0x1ac0d139,0xe140dac4,0x49c19511,0x30c09cd9,0xf2407a29,0x94c1aeb5,0x75c09ea3,0x8740f33f,0x6fc19c20,0xaac09d57,0x7b413128,0xa5c1ab86,0xf4c09e6a,0xe2c1429d,0x47c19511,0x7c09cd9,0x4dc15d9b,0xcfc1945f,0x4ec09ccc,0xa1414614,0x7ac194be,0xf7c09cd3,0x72c086ad,0x2cc1be12,0x67c09fb6,0x35c0f10c,0x6dc19a48,0x6cc09d36,0x9e41071f,0xd7c1aee4,0x9dc09ea6,0x5840f8d8,0x7dc1a760,0xf1c09e20,0x5ac1523f,0x45c1a17b,0x4dc0d34a,0xb4c15c4e,0xf5c1a0c5,0x63c0d356,0x154152a5,0xf3c1a155,0x54c0d34c,0xa34156d4,0x1ec1b0ee,0x5ac0d236,0x19c1488a,0xb0c1b23e,0xcdc0d21e,0x834124eb,0x9dc1bec7,0xdc0d13e,0xb540dfe2,0xd8c1bf0b,0xec0d139,0x6e40cc82,0x1dc1b09b,0x88c0d23c,0x35407a11,0x3bc1aea2,0xa2c0d25f,0x5408652,0x5bc1bdf5,0x9cc0d14d,0x75c0bbc1,0x3dc1a356,0x3ac0d329,0x9dc0cd93,0x73c1b13e,0x4dc0d230,0xb4415c4e,0xeec1a0c5,0x7c104ba,0x4d415d9b,0x1c1945f,0x14c12000,0x4c41523d,0x4ec1a17c,0x53c104c1,0xc341023d,0xdbc1c356,0xc7c105ef,0x8a41157b,0x90c1bf2a,0x2ec105ca,0x3e40c811,0xfc1ad8a,0x20c1052d,0x5440b8c4,0x8ec1b51d,0x35c10570,0xbf41424a,0x42c1bde6,0x33c105bf,0x1e41338f,0x50c1bb72,0xfcc105a9,0x2f40acf1,0x6fc1a3a7,0x58c11f77,0x4bc127bc,0x9ec1af45,0xa0c11f0f,0xe641593d,0xbfc1ad97,0x72c11f1e,0x23c13373,0xc4c1a7a5,0xadc11f53,0xe1c1196e,0x28c1c540,0x6dc11e4b,0xb7414726,0xe7c1949b,0x4ec11ffd,0xa1c14614,0xadc194be,0x2dc11ffc,0x29c0b588,0x25c1b2ce,0x22c11ef0,0x9bc0ac0a,0xfcc1a37a,0xa2c11f78,0xa9c0f146,0x62c19a25,0xadc11fcc,0xb140b6af,0x7c1b372,0x26c11eea,0x134100ca,0xd4c1ac73,0x5ac11f28,0x17412666,0xe9c1c49c,0x28c11e50,0x140f17d,0xdc19a69,0x28c11fca,0xaec0ac65,0x8cc1a36d,0x52c104d2,0xd4c0f473,0xbc1baf7,0x8bc105a5,0xa7c15936,0x2ac1acfe,0x89c10528,0x3dc11d64,0xb3c1c58f,0xe1c10603,0x21c14861,0x68c1bb58,0x65c105a8,0xd9c0c945,0x4bc1aeb1,0xc10537,0xc11000,0x13e06800,0x94540444,0x71144c3f,0xc0a5b715,0x185948ca,0x153c0400,0x466666b1,0xeeb0bbf,0xa59e41c1,0xd1921728,0x2740325a,0x564147da,0x404116c8,0x18f1d76f,0x3100,0xb11cc870,0xbf466656,0x40b789f0,0x24844bba,0x12d39200,0x3455c026,0x5866410d,0x400df117,0xbd2b6bf4,0xbf466666,0x40f86d65,0xbe56b980,0xbf466666,0x40702004,0x87a8347,0x14880416,0x11999eb1,0xfc6c5dc0,0x7f2ea6c0,0xd3621650,0x55402612,0x71162034,0xc0b38d09,0x18568fb8,0xb40400,0x999e08f1,0x2a3dc011,0x75f3c0b3,0x999ac08b,0xd6f7c011,0x6ee7c106,0x416680f,0x9ab117e8,0xc01199,0xdc410400,0x3c7cc8,0x2612cf82,0xde830ac0,0x24001840,0x16f84110,0x2707ff62,0x18565840,0xf8597100,0x1529c066,0x415b483,0xde121728,0x140115e4,0xcccdb101,0x88d9bf2c,0x4f8340a4,0x71169859,0x40fc6c5d,0xc7f2ea6,0x171c0400,0xccde08f1,0x545fbf2c,0xf4f1c0dd,0xcccd3efa,0xa36ebf2c,0x5f42406d,0xf1005463,0x71d85a04,0xdf223240,0x38a9dfbf,0x422a02bf,0x89a23140,0x6f10018,0xc02777b4,0x410d3c3e,0xbf39999a,0x40dcf6ec,0x3f008f97,0x2416bccd,0x168c070,0x6eaf6c44,0x711614c0,0xc06ac161,0x7463867a,0x11884401,0x180c400d,0x6440ea71,0x5d7580c0,0x63710018,0xa7bf4798,0xc354f,0x6ac16171,0x7c7986c0,0x71000c,0x133ff000,0xc91fb,0x94540471,0x94881d3f,0xef71000c,0xa2c05492,0xc9d89,0xa488d944,0x6215fcc0,0xc054fa4c,0x1f8c1f0,0xb3545071,0x8bc74740,0x6218e4,0xb7800000,0x7116083f,0x40c949b2,0x3c79cb74,0x64ae7100,0xdfa84017,0x44000ca3,0x405492ef,0x58440054,0x44c0d447,0x49b24416,0x30c0c9,0xa64d1cf1,0xb2764190,0x66854130,0x986fc176,0xc9e94182,0x66664121,0xb6ffc176,0x8b734189,0x6aac413c,0x4c4ec176,0xfd2e4184,0xf500181f,0x87526b00,0x258a8b41,0x7801f241,0x8a94fac1,0x4f10018,0x418c307d,0x41219ab7,0xc176665d,0x418d4a1c,0x3023643b,0xf72a7100,0xf2f5418b,0x71000c26,0x418e29ec,0xc2546a7,0x6f1cf100,0x19418298,0x65413e36,0x75c17666,0x418457,0x9741378d,0x2bc1796e,0xbe418592,0x984126f9,0x23c1796e,0xa3418b37,0xc29cd,0x89d304f1,0x7302418a,0xaf1b4128,0xba02c191,0xe0d34184,0x35000c27,0x18845775,0x1104f100,0xe8418142,0x33412caf,0xbec19333,0x674181e5,0xc3666,0x843d7171,0x24ea3641,0x10f1000c,0x41832828,0x412a5c40,0xc192302c,0x41853f1a,0x4140bac0,0xc1933336,0x4186c6f0,0x24416840,0x6908f500,0xa2418f6b,0x80412e6b,0x89c19386,0x82418ca0,0x3a413b8c,0xd89372,0x333320f1,0x50ac193,0x57304188,0x7b384141,0xe7b5c190,0x6f954184,0x70a44140,0x9825c190,0x1d14183,0x835e4120,0xfbfec190,0x999b417f,0xf5001838,0x8ac73a10,0x43aacf41,0x8f12bb41,0x823e81c1,0x1ee96041,0x8f0a3d41,0x7b4c5fc1,0x3411b341,0x4f31000c,0xc2bee,0x82d6e071,0x41c1fa41,0x8162000c,0xa241823e,0x71000c16,0x417c8928,0x18280831,0x904f100,0x3b41877d,0x62411b1d,0xf6c18990,0x244184bd,0xc4342,0xf1003004,0x89906214,0x91dc05c1,0x2e4f6941,0x89906e41,0x8ebd4ec1,0x3e403741,0x89906841,0x86ca10c1,0x1e11ae41,0x64710030,0xe417dba,0xc3149,0x8bbd7171,0x3ee54941,0x5171000c,0x72418ccd,0xc228d,0x401d404,0x90310018,0x183d72,0xe7b504f1,0x906d4184,0xd604411f,0x5b00c184,0xf785417e,0x4000c39,0xf50048,0xc184d604,0x41907165,0x4129b514,0xa884d607,0xd604b100,0x664ec184,0xddb64188,0x71003042,0x4188d6c6,0xc1d1bec,0xed377100,0x5d68417a,0x31000c31,0x88c0a68,0xd604a201,0x43fac184,0x9de2418e,0x18040054,0xb8513500,0xf201507e,0x7eb85207,0x7b9640c1,0x320dc241,0x7d2a4441,0x82d6e0c1,0x183e0841,0xa08f500,0xb3417e50,0xb3412427,0x67c17ea8,0x264183b5,0x84413f7f,0x1bc7beb,0xeb840cf1,0xa4dac17b,0xddc34189,0xc938411e,0x9895c17b,0xaad64188,0xd754142,0x7500247d,0x411f906d,0xc7beb85,0xeb85b103,0x972cc17b,0x9bc74181,0xb500483c,0x418eec0d,0x4139545b,0x287bdc80,0xeb85b102,0x3515c17b,0x1e241cd,0x71184884,0x41d0dd85,0xf07c47a4,0x180418,0x980002a2,0xa24cecc0,0x84319841,0x7714f518,0xaa41a310,0xf0c1b582,0x3ec16958,0xfb41a299,0x81c1b668,0x15c0a4c2,0x9341a28f,0xddc1b5f6,0x30a17c,0x22cf1,0x49e0c0a8,0x4f0741a3,0x194ec1b5,0x8e17c09c,0xc0dd41df,0x6fb9c144,0x19afc167,0x109441a4,0xcb90c1b5,0x6e39c099,0xbe841de,0xa0aac149,0xcaebc16b,0x694041dd,0xc400904b,0x41a4cec8,0xc1b3edcc,0xc09831be,0x2171998,0x235198c,0x19809800,0x201f4,0xf582c098,0x5f0c41bc,0x2c19a,0x1980c098,0x6c000135,0xf51938,0xc0980002,0x41a38b16,0xc1b60c48,0x5c9d4e0c,0x2b119,0x16e6c0a8,0xb0cb41e0,0xf100e444,0xdf6c4710,0x47b34a41,0x6a77bfc1,0xdfacf2c1,0x4690e541,0x6958fdc1,0xde73b8c1,0x4bfd6c41,0x4f10120,0x41e016e6,0xc144b0cc,0xc0a80000,0x41b46ffa,0x78a5518c,0xc0400,0x6c000135,0xfff2198c,0x6c000158,0xc478e8c1,0x386aaa41,0x5fd7d441,0xbc3591bf,0x3213aa41,0xa5999a41,0xdd6d22c1,0x1bf2741,0x71e67941,0x5f289ebf,0xe4fdf140,0x434495c1,0xb263edc0,0x8f291b41,0xa560b541,0xa1b634c1,0xa46d2b41,0x50004041,0x9713d1c1,0xadf41141,0x433337c1,0x7d36b7c0,0xc07f1441,0x5fffef41,0x28a2dfbf,0xd788f641,0x23806641,0xd433abc1,0x33754c41,0x84b576c1,0xc1,0xe5d80240,0x9fffff41,0xb31acac1,0xe6b12a3f,0x5fc8e241,0xdd962cbf,0xfc6c7841,0x13d480c0,0xe7224fc1,0xb534c641,0x159483bf,0xe1bc1dc1,0xbf629341,0x4fffc540,0xe6528fc1,0xf13fe241,0x28707abf,0xdfcc4fc0,0xecce0e41,0x287c1c40,0xdeba8dc0,0xeeafd141,0xb05ae6c0,0xe029f2bf,0xf0294541,0x296f7ec0,0xd2a799c0,0x3af4c641,0x539c5541,0xcce93ac1,0x5c81241,0x50bbc0c1,0x90395cc1,0xa1486241,0xd1992dc1,0xc88387c0,0x1d547a41,0x5d999ac1,0xc369b3c1,0x42222441,0x5fe49bc1,0xcf9c42bf,0xfc66be41,0x23fda0c0,0xd3b784c0,0xc669a341,0x5fd9bac0,0xd981febf,0x4043e541,0x5f5ff6be,0xd650f3bf,0x9a3e6041,0x1e30d340,0xd31faec0,0xd4621b41,0x6008ea40,0xa461b4bf,0x9cf92c41,0x74aff121,0xf4196b2,0x33c189b5,0xb6c19933,0xb41106a,0xf3c1bebf,0xa6c1039b,0x4a4150ef,0xd5c1a182,0xd2c103e8,0xba40bb70,0x7ec1a2d7,0xaec103e2,0xf3c135be,0x15c1ba19,0xecc103a5,0xd7c0d02f,0x39c1daba,0xa3c1034f,0x17c0b013,0x33c1d1c9,0xeac10367,0x95c0d02e,0x26c1cff0,0xc3c1036c,0x563f0ad4,0xe9c1a792,0x4c0d19a,0xbfc0940d,0xbbc1d547,0x8ec0d08c,0xeac0d903,0x61c1b47b,0xe6c0d199,0x743f7607,0x9cc1a336,0x42c0d199,0xf414921,0x89c1af86,0x61c0d198,0xd1c166d0,0x9cc1b70e,0x4ac0d199,0x440bd0a,0x9ac1a3a7,0xffc0d199,0xf0bf12e9,0xbbc1a759,0x14003c9a,0xf2003cbf,0xada0063,0xbdb1f0c1,0xd197f2c1,0x357910c0,0xba519541,0xd19803c1,0x2cb16cc0,0xd5206440,0xcf8f4bc1,0xca5c36c0,0xd51cce3f,0xcfa65dc1,0xd6fd4cc0,0xc25cff3f,0x24ccd1c1,0xc1347ac0,0xc1d84d3f,0x24ccd1c1,0xd604d1c0,0xd5b3ce3f,0x24ccd1c1,0x245116c0,0xbc2b5ec0,0x24ccd1c1,0x21ba23c0,0xbb8eb240,0x24ccd1c1,0x1f0d88c0,0xc3e6940,0xc74c6200,0xbffb4022,0x471000c,0xb33fba03,0x54d8a4,0x1fb36362,0x184ddbc0,0xec04f100,0xfcc08a93,0xcdc1d628,0x8ac024cc,0x40408abf,0x24d628,0x17b8aa71,0xbaf48040,0xab71000c,0x2f3ff925,0x198d8a2,0xa98ed671,0xd54d4940,0x10f12310,0xbcffda40,0x41da2906,0xbf6068ba,0xc1d50f70,0x40bad3b5,0xbf5fcf4f,0xc0d4891c,0x24e03086,0x4401f400,0xafc02517,0xe341e578,0xd1c13381,0xf4c19713,0xf7c1f402,0xecc0f014,0x4c1dff8,0x4cc0433d,0xedc1e089,0xbf40f090,0x8fc0297f,0x4ec1e03d,0x53c0eff0,0x7fc02940,0x1cc1e457,0xcf4099d1,0x1bc11592,0x42c1e528,0xd0c056b0,0x66c11598,0x65c1e6b4,0x4ec00153,0xecc15001,0xddc1a32f,0xef41a2dc,0x35c08c0e,0x8cc1c4b9,0x96417078,0x60c1a261,0xbdc1cfd3,0x50413f93,0xe0c1a519,0xd4c1d450,0xca41330e,0x8c1140b,0xb2c1e33e,0x40980e,0x5ec15000,0x7c04110,0x7f41b9ac,0x64c123d0,0xf6bf97ad,0xc941ac63,0x62c123f2,0x95c025bf,0x4141ac71,0x4ec123f4,0x8241828f,0x3141ac18,0xec123f5,0x3a4025a0,0x8741ac6e,0x8fc123f4,0x2ec196b6,0xff419a37,0x8fc14fff,0xc4196b6,0x9897100,0x6de1c1a3,0xf2041481,0x8324529f,0xac1201c1,0x8f6a141,0xb80f56c1,0xda511ebd,0x2287a541,0xc039e5c0,0xd33d2dc0,0xdbbf0141,0x21942ec0,0xc92dc941,0x8f6be41,0xbd920cc1,0xd4142a40,0xdbd06541,0x17b357c0,0xd86c3c40,0x8f8f141,0xf4e896c1,0xd861e9bf,0xdc120c41,0x924686c0,0xd585d7c0,0x8f6f741,0x9638d0c1,0x9afb3e41,0x37696941,0x9cd971c1,0xc85c7840,0x8f50141,0x4dc92ec1,0xbd829a40,0x8f3a341,0xeae0c1c1,0xa88f6cbf,0x70f71841,0x40a2bec1,0xb9ba6ac0,0x8f57641,0xba2c3dc1,0xca42f3c0,0x8f4fc41,0xf25322c1,0x3c71dbc0,0xa728f100,0xfc3f0240,0x26419097,0x5dc1a000,0x6bbf5053,0x41addb,0x91c1a000,0xa73ff529,0xa419977,0xac170f6,0x963fcc85,0xdd41a8f3,0x63c19fff,0x5ebfb261,0x30949d,0xc52604f1,0xc6683f2b,0xf5c241a3,0xee18c170,0xc9dbf44,0xf1000ca1,0x40000004,0xa00000bf,0x85999a41,0x397529c1,0x9e7274bf,0x71000c,0xc9bec000,0xc9acd,0x2646e171,0x9d00003f,0x2944000c,0x243f3975,0xe94f7100,0x39d13f84,0x440018a2,0x3f89999a,0x82710048,0x333f6e54,0x189bb3,0x10011,0xca611,0x8e742a71,0xa84e953e,0x8971000c,0x3c3f4298,0xc99eb,0x89999a35,0xd2710084,0xa93e46c5,0x18a5cb,0x84e94f62,0x78c62fbf,0x34d77100,0xd601bf5b,0x400189c,0xb1006c,0x30c1a000,0x74bf149b,0x108a774,0xb1,0xd8e687c0,0x9fffff41,0x72310120,0xcd964,0x65f554f5,0x4fc44023,0x96eb41d7,0x730fc135,0x6f3441a5,0x66654185,0x794c16e,0x47dac187,0x66664128,0xc108c16e,0xcd03c185,0x66724131,0xa45ec16e,0xdc29c186,0x668e4113,0xa950c16e,0x3a67c182,0x66654144,0xbb46c16e,0xbc84c18c,0x66654140,0xdaecc16e,0x5ed9c18a,0x6665413f,0x9313c16e,0xf1000c92,0xa0ec9910,0x42584c41,0x6e386b41,0x9cb9bdc1,0x53a88841,0x6e236741,0x8ddaecc1,0x3bff7541,0x12b10078,0xd3418619,0x8c410fa8,0xa206e66,0x66670cf1,0x33334127,0x2acfc193,0x3c7e4190,0x332f4133,0xb2ccc193,0xe1d74191,0x71001855,0x418d1072,0xc6105d2,0xa3d37100,0x67e141c0,0xf1000c43,0xad154304,0x81ad1541,0x93331a41,0xabc32cc1,0x341e39c1,0x10f10018,0xc1962b08,0x4126efb6,0xc193332e,0xc18a8144,0x4110e189,0xc193338a,0xc19303cd,0x24211ab9,0x7d2f7100,0x62d7c18c,0x71000c1f,0xc1bc4696,0x18316681,0x791cf103,0xc4c1aab3,0xe5417ff9,0xafc1a645,0x84c1ce75,0x88c0f0c9,0xb2c15001,0x44c178d2,0x1c1a63c,0x55c15000,0xb2c1813b,0xcb7d4,0xb358e8f4,0x21e2c1c4,0xe6afc106,0xe66bc139,0xea00c1cb,0x2a99c10d,0x2253c124,0x400ec1d5,0x1e2740a2,0xff6bc117,0x351c1c5,0xeb85c12d,0x5c64c10f,0x37fcc1d1,0xa03440e7,0x9742c01d,0xe6a7c1cf,0x7c70c0fc,0xb5a5c024,0x4994c1c3,0xa0d3c106,0x7b1fc193,0x43b4c172,0x7d1bc1b1,0x5b9fc193,0x9532c18b,0xe0a3c191,0x3c02c154,0x7865c1c0,0x7496c112,0xdc0dc138,0xe4d9c1b5,0x2b05c12c,0x7f34c180,0x9d49c1b1,0x1212c138,0x13c2c185,0x8a73c1ad,0x2ab6c12a,0xfd82c152,0xca39c16a,0xeb86c1a0,0xfe00c10f,0x106b40ac,0x6d5fc1a0,0xc5a0c16e,0x6af9bdf2,0xf045c1a6,0xd56fc17f,0x3f49,0xc1a0,0xf4cfc180,0xa1e83f42,0xc1a1,0xb7ccc180,0x75be3f0e,0xc1a4,0xf40ec180,0x17a7be50,0xc1a6,0xd55ec180,0x7658bec9,0x140024a5,0xf10024bf,0x2ecb1000,0xa32756bf,0x800000c1,0x49d56fc1,0x20f342c0,0xc1800000,0xbefd43af,0xc16a507d,0xc16e6667,0x80000000,0xc1994fbb,0xc16e6450,0x3f7c25e1,0xc1434981,0xc16e669b,0xbd944aa5,0x2453916f,0x40405100,0xc65c28e,0x4146400,0x2fe23ee7,0x2f1003c,0xffffbf40,0x999bc15f,0xc179,0x646d3ec0,0x71000c6a,0x3f2646e1,0xc65ffff,0x75297100,0x1b173f39,0x71000c63,0x3ec00000,0xc559b91,0xb304f100,0x60bcd245,0x9cc153c0,0xb5c17999,0xc4bf07c3,0x185783,0x8cba9d35,0x7710054,0x733f87ef,0x185b72,0x87ef0744,0xf1000cbf,0xa30aa228,0x5f2dc83f,0x933296c1,0x987208c1,0x5b92a0bf,0x933317c1,0xd066e4c1,0x75d7433f,0x933212c1,0xdf3f8ec1,0x8bc6ce3f,0x933333c1,0x27e74bc1,0x7f2cd6bf,0x10f1000c,0xbf19999a,0xc18c0000,0xc1a00000,0x3ff1f8c2,0xc18d1574,0xc1a0006a,0xc0a97e26,0x18a0635b,0x7e10f100,0x9bfaee2,0xd9c19311,0x99c19fff,0xd5bff563,0xc1c19895,0x9ac19fff,0xef3f1999,0x24901b,0x4cccd71,0xa66666c0,0x4f71000c,0xd1bf84e9,0xca239,0x27fa04f1,0x3072bd98,0xdc1a9,0x6762c1a0,0x807f4017,0x92001894,0xc0c8bd81,0xc1dbc32d,0xf1006c3e,0xcd924001,0x1c1d3,0x999ac1a0,0x9a740c9,0x3000cd2,0xc1c104bc,0xc1800000,0xbf09999a,0xca772a4,0x98897100,0x14c4bf42,0x3000ca6,0xc010480,0x54827100,0xb333bf6e,0x71000c9b,0xbf429889,0xc99eb3c,0x7100,0x66668000,0x3000c97,0xc0104f8,0xf4cf7400,0x5e183f42,0x14000c9e,0xf1000cbf,0x862d8a10,0xa53d0b40,0x83fed7c1,0x38e39bc1,0x7fedc63f,0x840000c1,0xc9f4dc1,0xa56c17c0,0xdf4000c,0xc0057f67,0xc19711e5,0xc183f810,0xc0c4f35a,0xc1dc0000,0xc0433337,0x40c4f35a,0xfff5000c,0x10ffffff,0x403feb70,0xc1b295cb,0xc106dd0d,0x40726730,0xc1b462b0,0xc10d8b44,0xc070819d,0xc1b2951b,0xc1133e96,0xc065501e,0xc1b49902,0xc1097a7f,0x41940fb8,0xc1ad2246,0xc1993350,0x41d15998,0xc13062ac,0xc182cc08,0x41c2bbce,0xc15897ef,0xc18bb375,0x419ebbc7,0xc19dd8ed,0xc191ada7,0x41c9dce5,0xc144f912,0xc18ff641,0x41985a74,0xc1902bd3,0xc18a0000,0x41958069,0xc1941924,0xc1835b20,0x4191657c,0xc199bfb0,0xc1848bfc,0x41b8b5e0,0xc1474644,0xc1870ac5,0x41b8ef89,0xc146a7c6,0xc18d7eff,0x41ce4e33,0x41329598,0xc114cccc,0x41d019ae,0x40481f8a,0xc10abebf,0x41c44754,0x412507a9,0xc1128796,0x41cb0ca3,0xc0f7f601,0xc112315d,0x41c1f87e,0x41230ab6,0xc10dc813,0x41c81b32,0xc0f98457,0xc10b04e6,0x41cf21f9,0xc068f4e8,0xc107d21c,0x41d0644f,0xc0022121,0xc104cccd,0x41c06070,0x41237fa2,0xc104cccd,0x41d466e4,0xc009c1b9,0xc112bd61,0x41d6b3df,0xbfb117f0,0xc11445aa,0x41c13181,0x41215864,0xc1096118,0x41d10aa8,0x3f6a12a5,0xc107d21c,0x41d17862,0x3f6a8d86,0xc10abebf,0x41d09bc2,0x3fd336f8,0xc104cccd,0x41d68a8e,0x4134c0bc,0xc079999a,0x41d0679b,0x41332318,0xc03bb5a2,0x41bfdd36,0x412ec828,0xc0511e7e,0x41e0c511,0xbeebe2b5,0xc039999a,0x41e74d10,0x3f950c80,0xc0567ce1,0x41e627a2,0x3f944f66,0xc04b70a4,0x41e4e37f,0x40a6ce6c,0xc06d8816,0x41e28f52,0xc0d3a5df,0xc06d881a,0x41e0d8c3,0x40f1529e,0xc079999a,0x41defa59,0x4104d060,0xc06d8816,0x41e645a5,0xc088db8c,0xc079999a,0x41e6214d,0xc088c5f1,0xc06d881a,0x41da0120,0x41200e89,0xc061dc72,0x41d94f19,0x411f8bd5,0xc0567ce1,0x41d6b6ac,0x411da404,0xc041d3a2,0x41e5d186,0xc05e0d41,0xc0567ce1,0x41dc8787,0xc0d454ce,0xc03bb0d9,0x41e54a28,0x3f3bfd3f,0xc03ef2e9,0x41d561a3,0x4121403d,0xc03f517e,0x41e71ed6,0xc05f4f4c,0xc104cccd,0x41e84cb7,0xbff41301,0xc104cccd,0x41e866a8,0xbe8cbb3d,0xc10a8f20,0x41e6f919,0x3eb055fc,0xc10eefea,0x41e7f76c,0x3eb1181a,0xc10bd812,0x41e44b62,0x408cba5e,0xc10eefea,0x41e439e0,0x40a652d0,0xc10bd812,0x41ddd1f9,0x41017e4b,0xc10f0d1b,0x41e552af,0xc05d92b4,0xc10eefea,0x41e897d2,0x3c680bed,0xc1086a60,0x41e64f31,0xc05e86ad,0xc10bd812,0x41e6ea78,0xc05f1cb4,0xc108686b,0x41dbf991,0x40f9c474,0xc112cee8,0x41e42304,0x400f32f0,0xc1138e8a,0x41e59fc6,0xbef0fabe,0xc111844c,0x41c8321b,0xc0f9874f,0xc05baeff,0x41cdf7b1,0xc0f692a5,0xc03bb2a7,0x41cb66ac,0x40c0a7bd,0xc079999a,0x41d0644f,0xc0022121,0xc079999a,0x41c08adc,0x41259f76,0xc061e065,0x41c1ddcc,0x4127224e,0xc04e82e8,0x41c3cd5e,0x412fb45d,0xc03cf30e,0x41d2db7b,0x3feabaf9,0xc048e881,0x41d15287,0x40494c62,0xc0511e75,0x41d08772,0x40787779,0xc0511e75,0x41cb5f05,0x40f1d276,0xc046c1ec,0x41ca16d8,0x40f04c3c,0xc0511e75,0x41c6cb58,0x410281ec,0xc06b39bd,0x41d0f3df,0xbfac59d1,0xc06b39bd,0x41d75ca9,0x3e3a51a0,0xc03afdb1,0x41be1e46,0x412e520b,0xc06e2374,0x40ccb442,0xc02102fb,0xc1a9999a,0x40f231c6,0xc0ab03f7,0xc1a9999a,0x3e9cd7ae,0xc041e421,0xc1a9999a,0x3e3a0a52,0xc04dd4ae,0xc1a9999a,0xbd1095af,0xc066f4f1,0xc1a9999a,0x409c785d,0xc111ea92,0xc1a9999a,0xbea98a87,0xc08e8868,0xc1a9999a,0xbed9aac5,0xc0a3d6a8,0xc1a9999a,0xbebff3f1,0x18c074cf,0x31484400,0x30c0b2,0xc77f8831,0x1f2000c,0x3f3d7a68,0xc102c339,0xc1a1999a,0x3fb8609a,0xa1913534,0x26c05c1,0x10a2d440,0x2f710018,0x364072be,0xc1568,0x958fd471,0x13513b40,0x6844000c,0x3040b64b,0xc00600,0xbac1a1e6,0xf140e584,0x9ac066f4,0xe4c1a199,0xc1a19100,0x408ead58,0x10b8e621,0x35d00635,0x62c1a191,0xf03d8a9d,0x305a32,0xf500e406,0xa134ffff,0xc1dfc0c1,0x1d03d141,0x5aac8a41,0xc24a04c0,0x1d59b241,0x61612441,0xc4e147c0,0x1f734241,0x13008841,0xc1e0b4c1,0x1cf8a041,0xb3b7241,0xc352c3c1,0x1e323d41,0x1162bb41,0xd337c0c1,0x2b11cb41,0x3aa6ca41,0xd12a0ec0,0x29680541,0x38517241,0xd8a0a0c0,0x2f549141,0xbfd6141,0xe4fb48c1,0xb9bbe241,0x57ae14c0,0xe04679c0,0xd1663841,0x3cf98bc0,0xe30664c0,0xdcd86841,0x57ae1440,0xe3e907c0,0xddb4df41,0x6946cc40,0xde17f3c0,0xa1bad641,0x33333340,0xe5bcc4c0,0xc3372641,0x7c28f640,0xe87710c0,0x671f9f41,0x5c1aef40,0xe49a7ec0,0x5f7a8141,0x3cf98b40,0xe67a75c0,0x614fb541,0x4891c940,0xe8a57dc0,0x2c5fd941,0x57ae1440,0xe8d5f8c0,0x1b25e541,0x57ae14c0,0xe62dd6c0,0xbab48941,0x5e6666c0,0xe9213bc1,0x63e74741,0x5e666640,0xea0dafc1,0x1bf59941,0x5e6666c0,0xea4d2bc1,0xabc0e41,0x5e66663e,0xe667eec1,0xa5a4c641,0x6c92d1c0,0xdc8b80c0,0x1c7b7741,0x6a6fa041,0xde4c7fc0,0xe1eb4241,0x3e1898c0,0xd71544c0,0x1d581f41,0x3ce48641,0xe000abc0,0xd1250b41,0x40dac7c0,0xe30dc4c0,0xd3fe5441,0x59eb85c0,0xe2e08dc0,0xd0a12b41,0x4ed2e540,0xe76f83c0,0x623f4241,0x59eb8540,0xe81519c0,0x54fe6d41,0x5eb7d040,0xe6e0a0c0,0x27557a41,0x446e833e,0xe92795c0,0xa0e4141,0x59eb853e,0xea0280c0,0xa8fc141,0x6a6fa43e,0xe8e4fdc0,0x1c6f8241,0x60c209c0,0xd140f9c0,0xadfbc641,0x3e1898c0,0xd2638bc0,0xb3a39a41,0x3a0371c0,0xc498fbc0,0xf5fe241,0x66484541,0xc8892cc0,0x51b9041,0x4bbcbe41,0xca37eac0,0x6397941,0x40dac241,0xcb921bc0,0xb976a341,0x7c28f640,0xd2e631c0,0x64d12041,0x509f5ebe,0xd4f651c0,0x52f18841,0x40dac73f,0xd70694c0,0x54fcd641,0x3a036d3f,0xd17ae6c0,0xdc094641,0x59eb85bf,0xd10ee6c0,0xa47cd941,0x40dac7c0,0xca25f3c0,0xd5b82241,0x60f740c0,0xfff40054,0x47ae07ff,0xc398c105,0x62141cf,0xad034035,0xaaf5c102,0x89a41d0,0x47aebf5f,0x1185c105,0x526e41cc,0xf3c3c0b6,0xab7bc109,0xcd0441ca,0xbc1d410d,0x6152c114,0x11d41c8,0x97fe4105,0x39c8c110,0xe6f741cd,0xd87e40a9,0x278c10b,0x895941d3,0x97febf61,0xb071c110,0x973941d5,0xbc1dc027,0xcecfc114,0xc60c41c9,0xc7eb410a,0xefeec113,0xb86341d0,0xc7ebc0ad,0xff7bc113,0xf9ec41df,0x47ae405a,0xf5c0c115,0x113741db,0x6bcf411c,0x2157c109,0x7a941e2,0x65e3c0ef,0xa1cfc107,0x945741df,0x97fec0ec,0xb193c110,0x529e41e2,0x6727c0d8,0x55bec10b,0x534e41e1,0x47ae40f7,0xb6bbc105,0x5bbc41e5,0x444a409b,0xdb7ec10c,0x7d6741e2,0x69294073,0x65a1c114,0x308841e8,0x6bcf402c,0xab1ec109,0x640241e8,0x47ae402c,0x55d4c105,0xa97641e6,0x97fe402a,0x303ec110,0x635e41e9,0x2aaf3e27,0x518dc10b,0xf7db41e7,0x97fe3e08,0xa7f9c110,0x79c441e5,0x7e82c045,0xca2cc112,0x737141e7,0x47aec01a,0x6e47c10d,0xc95a41df,0xcc4f4108,0x1db5c07c,0x4a9441db,0x8b154114,0x64ebc04f,0x2cfe41d8,0x2464412f,0xce91c060,0x246641d6,0xab7a411d,0xfd32c041,0x9e9b41de,0xab7ec0cb,0x5a2fc041,0x1dd641e5,0xf0e93fa3,0xf34dc040,0x89d241e1,0x5f5b40a4,0x9498c045,0xb9b441e3,0x8b1540a5,0xd4ccc04f,0xa2e041e4,0xcc5340a6,0x9e16c05c,0x357641e5,0x3bd640a7,0xed4cc06c,0x83b641e8,0x3bd63feb,0x54c7c06c,0xd07d41e5,0x5f5fbfc5,0x85d4c045,0x9b5241e6,0x8b15c019,0xa95fc04f,0xdb6e41d2,0x3cefc0de,0x9bcdc03a,0xd3a441d2,0xfa98c0b3,0x756ac03e,0x644341ce,0xdd0c0da,0x25dc042,0xf0e841c5,0x1cc1410f,0x4613c06a,0x392e41cb,0xfa98410e,0x7e96c03e,0x92e741c6,0xb50f4120,0x5f10c043,0x7ccc53b1,0xd0183ac0,0xbd95c041,0x39f400a8,0x41d65d53,0x40260bbf,0xc03d7308,0x41d1b246,0xbd03419e,0xc06c3bd6,0x41d56c7d,0xbd05974e,0xc0455f5f,0x41d14ea6,0xbf5fb784,0xc07ccc53,0x41d17dd1,0xc0244c6e,0xc05ccc53,0x41c922cc,0x40e5cadc,0xc106050c,0xe0f10024,0xc10604fc,0x41cf1ac3,0xc0586c16,0xc10604fc,0x41d0dd21,0xbd02bc73,0xc10604fc,0x41cb88d3,0xc0bb8685,0xc07ccc53,0x41c43c00,0x4112d138,0xc0629789,0x41cc0c05,0x41162c63,0xc0385172,0x41cb230e,0x410e20ac,0xc03aa6ca,0x41cf7f00,0x40a126d7,0xc04c6020,0x41d13c86,0x40a280da,0xc0417e24,0x41d50aba,0x3f5305c9,0xc0417e24,0x41dcc79a,0x41156ad0,0xc05a8ede,0x41db00fc,0x41176507,0xc04c601c,0x41e66e50,0x408c181c,0xc05a8ee3,0x41e746bf,0x408c9bb0,0xc06b12fd,0x41e79091,0x408cc893,0xc07ccc53,0x41e60191,0x4060d988,0xc04c6020,0x41e8ef84,0x402c96af,0xc06b12fd,0x41ea1701,0x3f7dcc96,0xc07ccc53,0x41e901b9,0xbf3794ea,0xc05a8ee3,0x41e7618a,0xbfc79525,0xc04c6020,0x41e96a78,0xcc1b88d7,0xbf677100,0x10aa41e8,0x79000c52,0x41e6d09e,0xc9f453b,0x47aeb100,0x1c8fc105,0xaf0641e5,0x402acc2,0xd4f10084,0xc10547ae,0x41e15b7f,0xc0b6cb55,0xc1141b3a,0x41dfaf1b,0xc0c3192f,0xc11518c9,0x41e14055,0xc0ee3dab,0xc10f2677,0x41dc4e1b,0xc0e90f54,0xc115d110,0x41e0eccb,0x40bf204d,0xc1141b3a,0x41e51605,0x408b46cc,0xc11162bb,0x41e8f882,0x402bcea3,0xc10a2e24,0x41e9ee14,0x3e0a83b2,0xc109b603,0x41e7618a,0xbfc79525,0xc11162bb,0x41e9200f,0xc01b5743,0xc109b603,0x41cb7251,0x4115bb44,0xc1166666,0x41cf2b1a,0xc0db1347,0xc1155ec4,0x41ca7be9,0xc0d626a6,0xc10d8187,0x41c6b696,0x4103e5dd,0xc10dd70a,0x41cd7822,0x40bb3170,0xc11162bb,0x41cb4f21,0x40b9399f,0xc109b603,0x41cd885c,0x409fa077,0xc10dd70a,0x41ccb174,0x409ef990,0xc109b603,0x41ce8916,0xf053b852,0x8d1cf100,0x3141d1c6,0xbb402061,0xfac11162,0x9b41d5f8,0x153fd0e7,0x45c115f6,0x8041d0f4,0xa3fd346,0x3cc10dd7,0x2a41d082,0x108a40e,0x47a0b0f5,0x78b341cf,0x28f6401e,0xcc5fc07c,0x23ab41d3,0x3333c0c3,0x5806c033,0x4cec41cf,0x4513c0db,0xbbafc039,0x4d9241c9,0x46cc40d3,0x9d50c069,0x39e941ca,0xae1440d4,0x5bc2c057,0x699441d8,0x33334025,0x1913c033,0x6f4841d3,0x65aebfec,0xdf65c042,0xe7474067,0xccbc4158,0x7a25bf1c,0x64e5404c,0x9989415d,0xa659bf19,0xb2a8c02b,0x99894142,0xd20bf19,0x52e1c017,0xccbc413e,0x3b5cbf1c,0xd6404059,0x9989416c,0x974abf19,0xfb5bc04e,0xccbc414c,0xd45abf1c,0xde6dbfe9,0x999a4138,0xdf61bf19,0xe744c067,0x99894158,0x88cabf19,0x135ec06c,0xccbc415c,0xf139841c,0x19998908,0x56a066bf,0x9678773f,0x19998941,0x73c3b5bf,0x6295fac0,0x4d71000c,0xb5c0564b,0xc668d,0x78230771,0x6940ddc0,0x9a71000c,0x4f3fd999,0xc8f8e,0x4a6fc644,0x713a503e,0x400c6702,0x188cea68,0xd2c7100,0xd68e4017,0x71000c90,0x4046b470,0xc8ae1a6,0x3604f100,0xf3fa003,0xbc413cd8,0xc8bf1ccc,0xfcc047cd,0x1882c5,0x5c864d71,0x869d46c0,0x4f1000c,0xc0537c67,0x4188956a,0xbf1b6da8,0x4021966c,0x184070eb,0xdf1e4400,0x3ad44055,0x7a2501f4,0x64e5c04c,0xffef415d,0xdedfbf1f,0x3a14c00b,0xd9999a71,0x40e362bf,0x9c040018,0xffefb100,0xcd5bbf1f,0x1b514035,0x71001852,0xc00bdedf,0xc8cd61f,0x15c0400,0x1fffef35,0xef3500fc,0x3b101fff,0x1fffefb1,0xe9d45abf,0x9390ca3f,0xd8040030,0xffef3500,0xb135881f,0xbf466677,0xc0b2d89f,0x2857085b,0xdd01f620,0xd4c0b341,0x66c08b1c,0x15bf4666,0x4040a5b7,0x363c0220,0x34d47712,0xa231c041,0x711e0089,0x40b341df,0x3c56e329,0x11887100,0x4540c00d,0x71001890,0xbfc33bc9,0xc936807,0xc1377100,0xd35dbfcf,0x44000ca6,0xc05759e2,0x17442064,0x38c0e953,0x40ea4434,0x1ed84064,0xd43e7571,0xa91887be,0x23710030,0xa840d711,0xc60e9,0x726f7681,0x6f5532c0,0x61009c40,0xdcc00a8d,0xcdc75,0x2d519871,0xa2000940,0x710024,0x21c0d800,0xc5849,0x41c52e71,0x9fe1d340,0x8d83000c,0xc440dae2,0x3c3f6fb0,0x3c401400,0xd8997100,0xc04f,0x44002452,0xbff00000,0x4f135b8,0x3fcc4cbe,0x4138fe55,0xc011999a,0xbecb28b7,0xc33988c,0xd14ac400,0x66f2c062,0x99954182,0x2148c011,0x11999ad2,0xdcf6ecc0,0x8f97c0,0x20e89a3f,0xb1203401,0xc011999e,0xbfb10e56,0x30a7f7f5,0x5c97100,0xed8c073,0x4420c4dc,0xc05759e2,0x4f13750,0xc06fefbb,0x4072ee4a,0xc011999a,0x404ea4b1,0xcfdd508,0x8d096200,0xc3b740b3,0x15712100,0x9140a5b7,0xc8651,0x4ea4b171,0xfb16afc0,0x43710024,0x224033c9,0x60a22b,0x4436b404,0xc011999a,0x9ab136a8,0x74c01199,0x9140715c,0x307181,0xc87a1cf1,0x534b40e3,0xce3ec1e8,0x21c18a,0x7232415d,0x93b4c1c6,0x7865c0b1,0xe5614140,0xc48ac1cc,0x8aa2c192,0x97c14134,0xc4000ccf,0x417f86d4,0xc1bea721,0xc19228d3,0xaab10024,0xe5c0b1ba,0xf0411802,0x3cd60a,0x8e29fff5,0x8d410c6c,0x13c1d8a9,0x97c0b174,0xfc40d9f3,0xe8c1dfc7,0x82c0c3af,0x374176d0,0xf6c1c09c,0x31c193b9,0x1a41015b,0xbc1db2a,0xcbc193d7,0x3417bf6,0x98c1bf72,0xc9c0b38a,0x4f414874,0xa9c1d930,0x7dc19370,0xa241205a,0x2cc1e117,0x3cc1936d,0x18411f44,0xa8c1e18e,0xa8c19370,0xf341516e,0x9c1dce7,0x5dc19833,0xd9418044,0xc2c1cf90,0xec196cc,0x544170b5,0xb5c1ce73,0xc6c0af16,0x1e41697e,0x33c1d0c6,0xcbc0af0a,0xb4416814,0x8dc1d0dd,0x94c0af18,0xa0417c8b,0x40c1cb27,0xf4c0af0a,0xd1414975,0xb5c1d8b8,0x5ec0af15,0x2a41405d,0x85c1dac3,0xb5c0af16,0xda4141b9,0x2fc1dab5,0x3bc0af0a,0x47411735,0xdfc1e2cb,0xd5c0af19,0x3f41185e,0xf2c1e2be,0x16c0af09,0xea410e3c,0x9ec1e967,0xe7c0a199,0x9a41031f,0x7bc1eb09,0xb0c0a4ce,0xd240e000,0xc2c1ed7c,0xb7c0c807,0x9840e49c,0xcac1e847,0x5ec0cedc,0x574101a9,0xa6c1eb3d,0x22c195b8,0x1440d5c4,0xeec1ee15,0xd4c0ca7c,0x9f40f8b8,0x40c1ebf8,0x549f93,0x2c1f4,0x293dc098,0x79104185,0xff9ec1cc,0x2e1cc195,0x5f124182,0x89c4c1ce,0x7c82c098,0x47c04188,0xcdb8c1ca,0x611bc0a0,0x229e4182,0x81cc1c3,0x286dc09d,0xdc2840df,0xc3dbc1e4,0xd0c4c0a5,0xbcef4101,0x7807c1e0,0x3739c098,0x2cef40e5,0x970bc1e4,0x38b2c196,0x574440c9,0x1610c1e7,0x3ac8c18c,0x5331418f,0x36f4c1bd,0x6293c0f6,0xa2b94118,0x3334c1db,0x41c8c1a1,0xc2a2411c,0x3334c1da,0x99b1c1a1,0x7cff4181,0xf9bec1c3,0x5126c079,0x310b418d,0xb866c1be,0x51a0c194,0x974740be,0xb7d2c1e8,0x4704c0f8,0x55ba40c9,0x83a5c1e7,0xd63bc0a5,0x6827418c,0xa5a4c1be,0xaecdc188,0x62d540ad,0x7cf0c1e0,0xcc0f4,0x8213f9b9,0x8bca0ec1,0xb4d03041,0xdf4000c,0xc180526f,0x40db47f1,0xc1db3b62,0xc19ed1e1,0x4112c06d,0xc1d2d78b,0xc1a34f52,0xdf444a0,0xc0632ccb,0x411405f8,0xc1d28df0,0xc0632ccb,0x40aaa381,0xc1e0baed,0xc1813073,0x6df40018,0xc1a2cd9b,0x40f5807a,0xc1d84493,0xc1a135db,0x418c8ce1,0xc1b47819,0xc0f80b0d,0x415e1969,0xc1c1cecc,0xc06c2774,0x40bd3b95,0xc1dea0dc,0xc16f3334,0x418c1541,0xc1b4ae2f,0xc0f53b88,0x41593739,0xc1c2e96e,0xc1a1ae46,0x415bbd24,0xc1c25894,0xc1a33dbd,0x417eef27,0xc1ba62c6,0xc19fc98f,0x41738900,0xc1bcf632,0xc193cbae,0x4187e6dc,0xc1b6922a,0xc16f3334,0x8f1450c,0xc0db970d,0x41843d6e,0xc1b83a05,0xc1884d72,0x418e07a8,0x60ba8d21,0x380cf100,0xca4041c0,0x45401d6e,0x2ec088d8,0x3b40381b,0x9c40613a,0xd3c089a6,0x2c3461a2,0xedfa08f1,0xc06b,0xa2d34040,0xedfa4061,0xb13ec06b,0x663c4065,0xf1000c5f,0x5a530d04,0x58492cc0,0x6bee9e40,0x6e6666c0,0x3e6666c0,0xdf40018,0xc06e6666,0xbf79999a,0xc06bedfa,0xc044aa50,0x406dfd48,0xc05f212d,0x4044aa50,0x484000c,0x8406300,0x84bfc600,0xcccd312d,0xf1000cdc,0x655f2404,0xe742c4c0,0x5e7186bf,0x4590d1c0,0x7dff6140,0x2683003c,0x86406200,0x48bf9238,0x4001f12d,0x404fb6c8,0xc0125461,0xc051999a,0xc5e7bee,0x6d8f7100,0x405f,0x44000c40,0xc05b37a8,0x33350024,0x186333,0x4fb6c871,0x5b37a8c0,0xcd710024,0x406ccc,0xc0000,0x40000071,0x5f6d8fc0,0xc871000c,0x50404fb6,0x6cb66f,0x491c4374,0xc4004bc0,0x4041000c,0x24620026,0xf314f100,0xd4407573,0x91405199,0x93c04d63,0x43404aa9,0x96407070,0xb2c04a20,0xa4c04d64,0xd840761a,0x1384dd8,0x862d6c04,0x4045cc2d,0x4055a301,0x40112d90,0x4f1000c,0x3fe4a10e,0xbf852dcb,0xbfbe425b,0x3ff53d19,0x183ad324,0x8f04d100,0x877bbf4b,0x11274057,0x100bfcb,0x802ef100,0xbedfa3f,0x7821afc0,0xb52ce0bd,0xac64c3f,0xb74320c0,0x8000003e,0xb16f03f,0xff4813c0,0x8fd95ebf,0xe59e173f,0x95cbf7bf,0x8000003f,0x312b63f,0x334f51c0,0xba93103f,0x4f12d9c,0x3f8a1f97,0x3ffb27b3,0xbffe259e,0x3ecbe20d,0x18de2f94,0xad01f400,0x423ee4a1,0x39400127,0xc4c003ed,0xa84005ce,0x31cf12d,0x383fe523,0xc3fe482,0xa9bfe7b2,0x8f3f3ada,0x184056fd,0xbfd20a,0xdc800000,0x894019f4,0x14bffe79,0x47bf2b42,0xc0f1d,0x50f401f1,0x8ea8bf63,0xeb254041,0xc882bfda,0xb4bf36,0x8991ff1,0x62528bc0,0x53f62b3e,0xb6a3c3f,0xe52303c0,0x5bee3dbf,0xe7b20c3e,0x6350f4bf,0x831d50bf,0xdaeb25bf,0xf53d19bf,0x6b4c90bf,0xc1830108,0x393e6ce6,0x54bec5d6,0x243f1400,0xf96df400,0x823f969d,0x893e6cc6,0x26bffe79,0x73400b8b,0x253f22db,0x13bfdaeb,0x87c052d3,0x7b404f32,0xe5bfbe31,0x67402f7f,0x5ebf9662,0x6cc0891c,0x27403a5b,0xf0bf8869,0x5c06816,0xe8404331,0xf0bf466b,0xc1c06816,0xac4036c4,0x78401b8c,0x90c06fd1,0xea402a2f,0xf0404491,0x5bc06816,0xe9c026d2,0xf0bf84d3,0x45c06816,0xdcc03646,0xf0bf8ba1,0x6cc06816,0x48c03a5b,0xf3417100,0xe8f3402d,0x712d1845,0x40433105,0xc319afa,0xb8527100,0x918c040,0x71006c79,0x4040b852,0x183e4246,0xe9b87100,0xa1fd403d,0x83000c41,0xc03165c7,0x3f4e9b9d,0xc0140024,0x45620024,0xeec03646,0x620054d0,0xbfd2a601,0x30f02c,0x2f4503f2,0xfaad4037,0x3bfbbef4,0x897ac06d,0xd9f1bfaf,0x10f12d78,0xbfc109a6,0xbf8f0bb7,0xc087f76a,0xc0300000,0xbf96e24c,0xc088d845,0xc0200000,0xcb1498c,0x9304f100,0xecc00cfc,0x1abf75fa,0xacc086b1,0xd2bfd157,0x188ce0,0x927d0371,0x9454263f,0xe71000c,0x77bff987,0xc8849,0x477c02f3,0x40a3c047,0xd8453fed,0xc033c088,0x14c1c041,0xf111f304,0x47c034b7,0xb6405f3b,0x64c08993,0xddc02e96,0xd9404ae9,0x7ac08919,0xfd3faf89,0x7840486c,0xfe404300,0xc4bd7,0x26403042,0x71000c71,0x4030248d,0x185346dc,0x362cf100,0xa3403b57,0x98be9bcb,0x7fc083a5,0x79403ddf,0xc0401379,0xebc08621,0xdfbff6e4,0x9d403d32,0x90c08038,0x71401e4e,0xa3405de4,0xa5c08903,0xc048f5,0x303fc000,0xd8892a,0xaff30cf1,0x2a30bf97,0x9db2c089,0xa0514003,0x37dfbebf,0xdd5dc044,0x955f401b,0xa22d604f,0x401915d7,0x3f97b75a,0x18e1a0,0x98355031,0xfd710018,0x314010bd,0xcf627,0xce4a7af3,0x397a3fdb,0xe1a0402b,0x2f5ec044,0xad97bf45,0x39434022,0xb57cc054,0x54debf5b,0x4643f92,0xe5b4c061,0xaf1dbcdc,0x5e4a3f94,0x6328c065,0x8b543ddc,0xf9093fd2,0x8fb0c062,0x46fe3f36,0x8b7e3ff5,0x83f5c05d,0xf8ba3dfa,0x86233f93,0x46b2c066,0x3efd,0x101f3f80,0x42e5c064,0x7404c012,0xe19c3fdd,0xb60bc044,0x6aa5bfeb,0xe19c4022,0x3dabc044,0xbf7c,0xc1943f80,0xdd5dc05f,0x9c59c01b,0xdd5d4400,0xc0c01b,0x2f5e19f4,0xb65b3f45,0x3943bf0a,0xad82c054,0xc57e3f5a,0x8b7e3e5a,0x11d3c05d,0x3d8e3e20,0xc172bf63,0x4f7c050,0x2dfc3ec1,0x135e04f1,0x9bedbfc6,0x210be1b,0x15d7c050,0x914bc019,0xf300fc50,0x2651b1d8,0x70728fbe,0x6595c43f,0xd91c8fc0,0x5c04eabf,0x54a41a3f,0x9ed41bc0,0xb1b3d03f,0x520ff5be,0xdac322c0,0xc5dfcabf,0x5261d03e,0xd01997c0,0xf66664c1,0x14cccdc0,0xd4a59ac1,0x2ff5e3c1,0x124d7a41,0xe0820cc1,0xb74528c1,0x14cccdbf,0xd12803c1,0x96ce14c1,0x7d21c3e,0xcd8f39c1,0xe7ea01c1,0x133d46c0,0xcb3201c1,0xe5f634c1,0xfb488c0,0xc48db9c1,0x300000c1,0x14725e41,0xcfcedbc1,0xe95e33c1,0x149fc0c0,0xc9b75cc1,0xdb2c43c1,0x4cccd40,0xd05651c1,0xb32f68c1,0x12bd6140,0xd277fac1,0x9ca9dcc1,0x13c67c40,0xbecf86c1,0x2ffacac1,0xd5ca741,0xbd9951c1,0x300000c1,0x4cccc41,0xcf6ac8c1,0x4f0e6bc1,0x4cccd40,0xc2d0f3c1,0x300000c1,0x136a2141,0xe08096c1,0x45100b4,0xdfa7adc1,0x31f400c0,0xc10bd812,0xc1ce5e91,0xc0f66666,0xc03afdb1,0xc1c9c89c,0xc0f6679b,0xc04d19ca,0xc1e746a0,0x40282d28,0xc061dc77,0xc1e2e5de,0x3ffdb585,0xc03cc975,0xc1e82c50,0xbf238423,0xc061dc77,0x9ff200f0,0xc039999a,0xc1e22be4,0xc00aea4f,0xc03bb5a6,0xc1d144eb,0x4124366a,0xc039999a,0xc1d608f8,0x41214a13,0xc041d3a2,0xc1dfb2bb,0x40ffc151,0xc06d8816,0xc1de9340,0x40fe78a3,0xc0567ce1,0xc1e1e8ee,0x40b3dc8c,0xc04b70a4,0xc1e052c8,0x40b29931,0xc041d3a2,0xc1e6231e,0x40889510,0xc06d8816,0xc1e5b6f3,0x408854de,0xc061dc77,0xc1d7c3e6,0x41265fa9,0xc053b1e6,0xc1d786e2,0x41300000,0xc104cccc,0xc1e5c7a8,0x4094c8b6,0xc108c821,0xc1e55b4e,0x405b54b5,0xc10eefea,0xc1e657da,0x405c4639,0xc10bd812,0x306838,0x74604bf2,0x6999c107,0x4335c1e8,0x7a1bcaa,0xb56ac10a,0x2fd7c1e6,0xefeabfb6,0xfb3fc10e,0x1903c1d3,0x97034127,0x3c96c113,0x5356c1e1,0x844c40b3,0x1e46c111,0xf9ccc1e1,0xddd1c0df,0x8ba5c10b,0x5e1ac1e2,0xefea40b4,0xdc80c10e,0x7aa2c1e2,0x134406d,0x28cfc113,0xaff201d4,0xc03bb2a7,0xc1c7efe4,0xc0f65d2d,0xc06dcd46,0xc1c9b44a,0xc0e3e276,0xc061e065,0xc1cc32c6,0xc0e145b9,0xc048ba1b,0xc1c2bcb0,0x412a4075,0xc044a98f,0xc1d1a0ef,0x3e53cea7,0xc0607286,0xc1d2cc8c,0xbee4be62,0xc0511e79,0xc1d13335,0xbee3022e,0xc06b39bd,0xc1d219d1,0xbfa46488,0xc0559347,0xc1ccba29,0x40c96d11,0xc0511e75,0xc1d23d95,0x409b1ef1,0xc03f1401,0xc1d5b5a2,0x40555675,0xc03afdac,0xc1ca680a,0x40d681bd,0xc06681aa,0xc1128566,0x41d96df7,0xbf5fffef,0xc0ea465f,0x41cac004,0xbf5fffef,0x41dee5e3,0xc0dbbd68,0xbf600000,0xc0c54a90,0x23e81369,0x8c408f4,0x3bc7c02d,0xffef41d2,0x476fbf5f,0x378b41e5,0xbfea,0xc1478860,0x600011c1,0xab6e32bf,0x762a9fc1,0x4f1000c,0x41cde8be,0x40b902a7,0xbf600000,0xc1d03bee,0x1840adc0,0xaa04f100,0x3841dd13,0x40f587,0xc9bf4000,0x7541cafb,0x24e704,0xd94f04f1,0x24fbc129,0x11c1d5,0xc194bf40,0x36b8c0e3,0x620030cb,0x4156f17a,0x9cb687,0xbac104f1,0xbcf841b5,0xffef418c,0xbcf8bf3f,0xbac0418c,0x71000cb5,0xc046749f,0x3ce41852,0x5a857100,0x8fc9c1e2,0xb40054a4,0xc1c78ff9,0x410a3cfb,0x943b91f7,0xc00147,0xac69c171,0x7367e7c1,0xb071000c,0x11418289,0x6ca5d3,0x94894c71,0xaeded741,0x9271000c,0x7cc19da9,0x248c49,0x4ca50271,0xb89345c1,0x9006000c,0xbf1f9100,0x40467460,0x78e41853,0x6908f70f,0x90c1e013,0x40c54a,0x98bf2000,0xa9c19453,0x11c1961f,0x1202000,0x49682017,0x12c2017,0xbdbf2091,0xf3c1b829,0x304e1f,0x6a7f04f1,0x259c41c7,0x410a,0x6b33bf20,0x774d4069,0x510018d4,0x4129d958,0x640120f9,0xc23ebf20,0x486c4180,0x74c9c471,0xabec54c1,0xa8060084,0xbf1f9100,0xc13791d7,0x18be090b,0xea0f7100,0xe4f7c121,0xf1000cc2,0xc6dae21c,0xd583241,0x200000c1,0x8c4a38bf,0xa8c4a53f,0xd0000041,0x466666c1,0x9542e3bf,0xd00000c1,0x8c4a38c1,0x973b5d3f,0x710018,0x67000000,0xcac66,0xcd662771,0x9405c5be,0xc471000c,0x34bfabd1,0xca633,0xcd662744,0x7100183e,0xbfbfa3c2,0x189cca69,0x66667100,0xbd1b3f46,0x730054aa,0xbfabd1c4,0x1899ccce,0x3fc65100,0x189fffff,0x4a387100,0x3b5bbf8c,0xf3000c97,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x30ffffff,0xc1d1c206,0x4053fd37,0xc1cbb265,0xc1d82a2a,0x405a76b4,0xc1c5e0c1,0xc1d05b8e,0x3fb58698,0xc1cdb3e3,0xc1ca83d0,0xc09a86ea,0xc1ce638f,0xc195a5e8,0xc190e10f,0xc1cde104,0xc186c47f,0xc1a2e7ea,0xc1cbb265,0xc180117b,0xc1b04557,0xc1c5e0c2,0xc0427ca6,0x41c9a8c3,0xc1cf792d,0xc15cf07d,0xc1ae1280,0xc1ce638f,0xc1340a78,0xc1bf4da4,0xc1cbb266,0xc11ba940,0x41c4940a,0xc1cbb264,0xc0cd15ad,0xc1c7b087,0xc1ce6391,0xbfd468dc,0xc1d3020f,0xc1cbb266,0xc19a1f5b,0x4190bb07,0xc1cbb264,0xc192079d,0x41892188,0xc1cfc138,0xc1ba8b9b,0x412f9025,0xc1ce638f,0xc1ca9510,0x41206a80,0xc1c5e0c1,0xc1c49405,0x411ba966,0xc1cbb265,0x41d30214,0xbfd4686e,0xc1cbb265,0x41d9e1fd,0x358637bd,0xc1c5e0c1,0x41d36cde,0xb58637bd,0xc1cbb265,0x41c913c3,0x4102ab00,0xc1cbb265,0x41a6caf5,0x41725d07,0xc1ce6390,0x41a2e803,0x4186c47c,0xc1cbb265,0x40a4f10d,0xc1d07cfb,0xc1cb149d,0x415cf090,0x41ae1283,0xc1ce6390,0x414bb5ab,0xc1b945f9,0xc1cbb266,0x419ed468,0xc19526a8,0xc1c5e0c1,0x41b04558,0xc180117a,0xc1c5e0c1,0xc1f1b3b5,0x40841abf,0xc1a0a42c,0xc0c8da30,0xc1e98420,0xc1af3197,0xc1f3ff3d,0x3f28f788,0xc1a3513d,0xc1ec607b,0x40797f39,0xc1afbf79,0xc1f1b4b1,0x3efadeca,0xc1aa6398,0xc1f106d3,0x3efa2a2c,0xc1abc381,0xc1f3b767,0xbfaa07b3,0xc1a0a42c,0xc1eed28b,0x3ef7dfc2,0xc1af3196,0xbe746ae4,0x41f3ef47,0xc1a5a6fe,0xbfe67592,0x41f0a0a7,0xc1abc380,0xbf9358da,0x41eebf85,0xc1af476e,0xc0bf2e10,0x41ef7bd8,0xc19af0d4,0xc067dd2b,0x41f13838,0xc1a71437,0xc1f07280,0xc0478bca,0xc1aa6398,0xc1efc58a,0xc046fc44,0xc1abc381,0xc0adb0a3,0x41ef7ad2,0xc1a554e2,0xc1ede900,0xc0d7c16e,0xc1a0a42c,0xc0e6366b,0x41ec0a07,0xc1a71437,0xc1eb178c,0xc0d5331e,0xc1abc381,0xc10e64af,0x41e703da,0xc1aa6397,0xc10dfe3d,0x41e65dac,0xc1abc380,0xc135d8f2,0x41e25f74,0xc1a2883f,0xc10cb1fa,0x41e4425b,0xc1af3195,0xc1e30df4,0xc121ee44,0xc1abc381,0xc1d9305c,0xc14bef9b,0xc1aea099,0xc15faa29,0x41d7afb6,0xc1a71437,0xc1d7c61b,0xc156f2d7,0xc1abc381,0xc18f9b34,0x41c5328d,0xc1a34895,0xc14926d1,0x41d8658b,0xc1af9ba1,0xc1d18e06,0xc1710779,0xc1aa6398,0xc1c3002f,0xc191a3a1,0xc1a554e4,0xc1a28949,0x41b64520,0xc19b793c,0xc1ba6134,0xc19d6513,0xc1a0a42c,0xc1b03bda,0xc1a7dcc9,0xc1a554e4,0xc1afec21,0xc1a790d8,0xc1a71439,0xc1a91100,0x41abd495,0xc1abc381,0xc1aed04c,0xc1a4f2b0,0xc1ada53b,0xc1b4f62d,0x41a3290c,0xc1a3cb3a,0xc1b470c0,0x41a2b0c5,0xc1a71438,0xc19b1f60,0xc1bbe5c4,0xc1a3cb3b,0xc1bce372,0x4196db99,0xc1aa6398,0xc1c7224b,0x418c681c,0xc1a3cb3a,0xc1c33576,0x4189a3a4,0xc1af3196,0xc17af93c,0xc1d057ba,0xc1a74bcd,0xc1d6b80a,0x4167926c,0xc1a0a42c,0xc180c5fc,0xc1c8a8ba,0xc1afbf7a,0xc1d42cdf,0x4164d438,0xc1abc381,0xc1dd410f,0x414d7f29,0xc1a0a42c,0xc1e797c5,0x41170ff7,0xc1a6629f,0xc1d83eca,0x4148d83a,0xc1afbf79,0xc14e5bef,0xc1dcd649,0xc1a5ca3b,0xc113b1a5,0xc1e7fa4a,0xc1a6eac0,0xc135d054,0xc1dc6a25,0xc1afbf7a,0xc1e316ab,0x4114149f,0xc1af3196,0xc1e93d79,0x40f3947d,0xc1abc381,0xc1e6f209,0x40ed02b8,0xc1afbf79,0xc1002796,0xc1e6192a,0xc1af3197,0xc09346b2,0xc1f132ea,0xbfd95ff6,0xc09311cb,0xc1f13333,0xbfd9296f,0xc17a1cd7,0x41d18412,0xbfd99991,0xc16d949c,0x41d52191,0xc09428eb,0x41215b44,0x41e646a6,0xc098ca7d,0x40ac7f02,0x41f0256e,0xc1975f2c,0x40f01f92,0xc1ec8007,0xc09e4528,0xc190435a,0x41c43fe5,0xc0938026,0x410fba55,0x41e92d59,0xbfd99991,0x4119cc07,0x41e790ca,0xc09185ba,0x4058cc96,0x41f1ec0f,0xc199fc7a,0x4154b0d4,0xc1db9b0f,0xbfd999a2,0x4183c8d4,0xc1cd59be,0xbfd999a2,0x40d3a444,0x41ed7bf7,0xc095db83,0xc1a106e2,0x41b66509,0xc095dd48,0xc1a55828,0x41b2a646,0xc097fd87,0xc1b53784,0x41a363f7,0xbfd99991,0x3f6b01a8,0x41f3581a,0xc1955e64,0x40adaf83,0x41ef7e27,0xc0a73b8c,0x4082af7f,0x41f1cbdf,0xc09b12da,0x419b5760,0xc1bc2991,0xbfd999a2,0x41a9b9c6,0xc1af0ed8,0xc1769cd7,0x41be7c48,0xc1987230,0xc19a019c,0x41ba6b77,0xc19d6da4,0xbfd999a2,0x41be0bb4,0xc199080d,0xc1733334,0xc1e00065,0xc141866a,0xc186c445,0xc1dc42f2,0xc1525586,0xc1900d51,0xc1ea4fd1,0xc1082595,0xbfd9999a,0x4068dec6,0x41f241e9,0xbfd99991,0x41cbde8f,0xc1861080,0xbfd999a2,0xc1dd1b0a,0xc14f44f6,0xbfd38c33,0xc011119d,0x41f2c62f,0xc1955b6b,0xc1c401df,0xc191fedd,0xc137eb24,0xc0adaeb6,0x41ef8259,0xc1955858,0x41d6c3c1,0x41679f1f,0xbfd99991,0xbf6b5caf,0x41f35c9a,0xc0a72412,0xc183c8d4,0xc1cd59be,0xbfd999a2,0xc108c4fd,0x41e9acdf,0xc195fee7,0x41a84390,0x41afcf8b,0xc0a92ac1,0x41a49fcd,0x41b33bd9,0xc095c28b,0xc0ad61e7,0x41ef7d0c,0xc0a8feae,0x41891270,0x41c9d829,0xc1975f2e,0xc0c10c52,0x41ee8518,0xc095c354,0x41a05a79,0x41b722b5,0xc0981a00,0xc10fba55,0x41e92d59,0xbfd99991,0x418b8175,0x41c82f71,0xc09695ba,0xc1669f3d,0x41d668de,0xc1955b6b,0x41801906,0x41cfab9b,0xc09f1da8,0xc126b1b1,0x41e5523a,0xc0a56896,0x416f1ea0,0x41d4b34c,0xc092c69d,0xc13c4215,0x41e11cd9,0xc098ca7d,0xc1465631,0x41def04b,0xbfd99991,0xc1423362,0x41dee39d,0xc09613cd,0x416ba1ff,0x41d5abc7,0xc09695ba,0x41509d00,0x41dc94d2,0xc098ca75,0x41495506,0x41dd4d34,0xc09613cb,0xc185216e,0xc1a276f5,0xc14c2613,0xc185144d,0xc1a28977,0xc18640ed,0xc194678d,0xc18d7177,0xc1531eb9,0xc1b46148,0xc142dd8a,0xc1531eb9,0xc1beb2eb,0xc1267614,0xc190217f,0xc1c3a717,0xc118d21c,0xc186b9c6,0xc1b98d72,0xc134a06f,0xc174e149,0xc1b29ced,0xc13765a9,0xc182cc18,0xc1b57579,0xc12f9022,0xc17ad69c,0xc17ecea7,0xc1a59fb2,0xc1aab818,0xc1c48b32,0xc107ded1,0xc1b8e13a,0xc1830aa4,0xc1a953f8,0xc127ebea,0xc1838b25,0xc1ab21a4,0xc1966e6b,0xc0a636a4,0xc1da3d0d,0xc1aab817,0xc0868853,0xc1d1b700,0xc1aab817,0xc0b5ccee,0xc1dedd9c,0xc1aab7e8,0x40869371,0xc1d2d8c3,0xc1aab833,0x41c6decc,0xc14a79ca,0xc1aab816,0x41d77823,0xc1127ceb,0xc1aab816,0x41d4380e,0xc100ace4,0xc1aab816,0x41d0b669,0xc0e710e4,0xc1aa1dd3,0xc0bf9fe4,0x41da1ade,0xc1aab815,0xc086719d,0x41e1486b,0xc1aab815,0x419a7e3e,0x41981cd0,0xc1aab816,0xc114a137,0x41d74ff1,0xc1aab815,0xc148270c,0x41c87406,0xc1aab815,0xc16f8a8e,0x41c2286d,0xc1aab815,0x40c46f20,0x41d9e318,0xc1aab815,0xc1d0999d,0xc0e68508,0xc1aab816,0xc1b3abef,0x418c60d9,0xc1aab816,0xc1d591f9,0x411d381c,0xc1aab816,0xc1ca0534,0x415190eb,0xc1aab816,0x41d3a23e,0xc0bc151e,0xc1aab816,0x41df7bd2,0xc0a3ae73,0xc1aab816,0x41de80a6,0x4034c93a,0xc1aab816,0x41d9fef0,0x41088def,0xc1aab816,0x41aee388,0x41908cbb,0xc1aab816,0x413a66dd,0xc1cb23c8,0xc1af7078,0xc0bfb80f,0x41da3650,0xc1af7076,0xc146d88d,0x41c86585,0xc1af7076,0x41425786,0x41c9a3f0,0xc1af7076,0xc1974420,0x41a4a327,0xc1af7077,0x40bae48f,0x41da6939,0xc1af7076,0xc1d5cfca,0x40ff987c,0xc1af7077,0xc1dd7f00,0x406a960b,0xc1af7077,0x41dcc3b6,0xc08fdf85,0xc1af7077,0x41def0ef,0x3f9c9036,0xc1af7077,0x41c04ff0,0x416266fe,0xc1af7077,0x41a0d654,0xc19ab161,0xc1af7077,0x41c0d74f,0xc162c554,0xc1af7077,0x41d496d5,0xc101b57f,0xc1af7077,0xc088864b,0xc1d34095,0xc1af7078,0xc0ae1744,0xc1d5f8a8,0xc1af7078,0xc0da6c63,0x41d3ced9,0xc1af7076,0xc13fb4bb,0x41c50d49,0xc1af7076,0x413fb4bb,0x41c50d49,0xc1af7076,0xc19a4c32,0x419a36bf,0xc1af7077,0x40a50067,0x41d7605e,0xc1af7076,0xc1a941d7,0x418b0247,0xc1af7077,0xc1d6ca8d,0x40a8d181,0xc1af7077,0x41da9773,0x3f7c3d57,0xc1af7077,0x40af4d6c,0xc1d6424b,0xc1af7078,0x40872fcd,0xc1ce3522,0xc1af707c,0x41bba486,0xc161a410,0xc1af7077,0x41469cda,0xc1c35ced,0xc1af7079,0xc17b40e2,0xc1b2935a,0xc1b428d9,0xc0888a57,0xc1cebc2c,0xc1b428d9,0xc0ae46ce,0xc1d171f8,0xc1b428d9,0xc128ee42,0xc1ca2d6f,0xc1b428d9,0xc12ffa48,0xc1c3d24e,0xc1b428d9,0xc1d45dd8,0x40e18056,0xc1b428d8,0xc0d6d76f,0x41cf9fb7,0xc1b428d7,0x41890d4d,0xc1aa7930,0xc1b428d8,0x4184548b,0xc1a893ab,0xc1b428d8,0x41b1e463,0xc16f07ac,0xc1b428d8,0xc13f3e84,0x41c03950,0xc1b428d7,0xc1a580ce,0x418db3b4,0xc1b428d8,0xc1810127,0x41b0a442,0xc1b428d7,0xc197fd15,0x419ce121,0xc1b428d8,0xc196346c,0x419f0192,0xc1b428d8,0x41d80ac1,0xc095b9a8,0xc1b428d8,0x4087357e,0xc1c9b0a2,0xc1b428dd,0x41be9593,0x4144080e,0xc1b428d8,0x41a8e0d9,0x4183f200,0xc1b428d8,0x41a918b7,0x418abf48,0xc1b428d8,0xc1cd00f6,0xc1009a64,0xc1b428d8,0x40c28f9d,0x41d11c9b,0xc1b428d7,0xc1d4e20f,0xc056a750,0xc1b428d8,0x40ae4c16,0xc1d17253,0xc1b8e13b,0x4184548b,0xc1a893ab,0xc1b8e139,0x41b90920,0xc1584090,0xc1b8e139,0x40841084,0x41d3c0cd,0xc1b8e138,0xbf664dd3,0x41d670d7,0xc1b8e139,0xc0d6f356,0x41cfbaaa,0xc1b8e139,0xc147c06c,0x41be0c69,0xc1b8e139,0xc1a0e440,0x418d9314,0xc1b8e139,0xc1d2ae1b,0x40ac6391,0xc1b8e13a,0xc1cdd52c,0xc0eebdd1,0xc1b8e139,0xc0868c67,0xc1c4234f,0xc1b8e13b,0xc1b80f78,0x414d86fe,0xc1b8e13a,0xc1652a62,0x41afda70,0xc1b8e138,0x41848f6b,0xc1a2bb20,0xc1b8e139,0x40af95ab,0xc1cd315f,0xc1b8e13b,0x41cfa6eb,0x40748538,0xc1b8e139,0x41c9fc27,0x40e43bbf,0xc1b8e139,0x414505d3,0x41b981ff,0xc1b8e139,0x4106b79d,0x41c6c98f,0xc1b8e138,0xc1cb2a9c,0xc1013636,0xc1b8e13a,0xc009419a,0x41d1f2d5,0xc1b8e139,0xc1d1d388,0x3f24c294,0xc1b8e139,0xc1c98c42,0x40ea5593,0xc1b8e139,0x40c09cbb,0xc1cc4a86,0xc1bd999b,0x4189eb5e,0xc19e90fd,0xc1bd999b,0x41c9fc27,0x40e43bbf,0xc1bd999a,0x41c0f3d7,0x412533b0,0xc1bd999a,0x41ad7004,0x416c6a33,0xc1bd999a,0x414520ee,0x41b99b84,0xc1bd999a,0xc103b542,0x41c74a74,0xc1bd9999,0xc135f3df,0x41bd25d8,0xc1bd9999,0xc1652a62,0x41afda70,0xc1bd9999,0xc1924c66,0x41968017,0xc1bd999a,0xc1cf6a40,0x40808914,0xc1bd999a,0xc1d1d388,0x3f24c294,0xc1bd999a,0xc1d1b89c,0xbf8677ab,0xc1bd999a,0xc0c77f5a,0x4008c9b4,0xc1bd999b,0xbed3d578,0xc0972afc,0xc1bd999b,0x404c794f,0x4198397f,0xc1bd999b,0xc14bfb25,0x3f704dba,0xc1bd999a,0x40a82cf9,0xc1cc21e0,0xc1bd999b,0xc1c5cbac,0xc104fc4d,0xc1bd999a,0x404a2431,0x41a6c53d,0xc1bd999a,0x40353c29,0x41ad145c,0xc1bd999a,0x41993333,0xc103ffff,0xc1bd999a,0x40610d02,0xc1b1934b,0xc1bd999b,0x407388c2,0xc1b42c61,0xc1bd999b,0x41993333,0xc0c7fffe,0xc1bd999a,0xc15626de,0x3fe230c2,0xc1bd999a,0x405145ae,0xc1aafbe8,0xc1bd999a,0x4046be2f,0xc1954c22,0xc1bd999b,0xc0b45a53,0xc1cc9b6d,0xc1bd999b,0xc12f4a66,0x40f42fa5,0xc1bd999a,0x415a6666,0xbf7fffef,0xc1bd999a,0x40d6a1bc,0xc0fbebcc,0xc1bd999b,0x3f126373,0xc1852b56,0xc1bd999b,0x40f4d860,0xc0af656b,0xc1bd999b,0x403cb185,0xc115398c,0xc1bd999b,0x41993333,0x41040001,0xc1bd999a,0x415a6666,0x3f800008,0xc1bd999a,0x40353c29,0x41ad145b,0xc1a26666,0x4013fa51,0x41b27f4a,0xc1a26665,0x3fd145ae,0x41b6a785,0xc1a26665,0x0,0x41ba28b6,0xc1a26665,0xc0353c29,0x41ad145b,0xc1a26666,0xc05145ae,0x41a00000,0xc1a26666,0xc04a2431,0x41993ac4,0xc1a26666,0xc013fa51,0x418d80b6,0xc1a26666,0xbfd145ae,0x4189587b,0xc1a26666,0x40353c29,0x4192eba5,0xc1a26666,0xbf22ead9,0x41a51757,0xc1a26666,0x3f5e8c9c,0x419e22f2,0xc1a26666,0xbf478844,0x419c6666,0xc1a26666,0x3e6e8709,0x41a6f465,0xc1a26666,0x3ee66666,0x41a63c42,0xc1a26666,0x3e6e8709,0x41990b9b,0xc1a26666,0xbf478844,0x41a3999a,0xc1a26666,0x3ee66666,0x4199c3be,0xc1a26666,0x3ee4067d,0xc1a6c9d4,0xc1a26666,0xbf190d5a,0xc1a5c414,0xc1a26666,0xc05a0cc3,0xc1b12da8,0xc1a26667,0xbee66666,0xc199c3be,0xc1a26666,0xbe6e8709,0xc1990b9b,0xc1a26666,0xc0353c29,0xc192eba5,0xc1a26666,0xbf478844,0xc19c6666,0xc1a26666,0x3fd145ae,0xc189587b,0xc1a26666,0x4013fa51,0xc18d80b6,0xc1a26666,0x3f22ead9,0xc19ae8a9,0xc1a26666,0x3f666666,0xc1a00000,0xc1ae6666,0x3e6e8709,0xc1990b9b,0xc1ae6666,0xbe6e8709,0xc1990b9b,0xc1ae6666,0xbee66666,0xc199c3be,0xc1ae6666,0x3e6e8709,0xc1a6f465,0xc1ae6666,0xbf200000,0xc19756fa,0xc1ae6666,0xbf8a9069,0xc19b0000,0xc1ae6666,0xbea5a4f0,0xc196573b,0xc1ae6666,0x0,0xc1960000,0xc1ae6666,0x3fa00000,0xc1a00000,0xc1ae6666,0x0,0xc1aa0000,0xc1ae6666,0x3f9a8c50,0xc1a29694,0xc1ae6666,0xbf87a5b9,0xc199fded,0xc1cd8f7c,0x3f89999a,0x41a00000,0xc1ae6666,0x3f478844,0x41a3999a,0xc1ae6666,0x3f08ef67,0x41a5dbad,0xc1ae6666,0xbf478844,0x41a3999a,0xc1ae6666,0xbe6e8709,0x41990b9b,0xc1ae6666,0x3f22ead9,0x419ae8a9,0xc1ae6666,0x3f478844,0x419c6666,0xc1ae6666,0xbea5a4f0,0x4196573b,0xc1ae6666,0xbf8a9069,0x41a50000,0xc1ae6666,0x0,0x41aa0000,0xc1ae6666,0x3f4a43dd,0x41a7d8be,0xc1ae6666,0x3f9a8c50,0x419d696c,0xc1ae6666,0x3f624628,0x4198edce,0xc1ae6666,0x3f9597bb,0x419af4a9,0xc1cd9b1a,0xc082de07,0xc1b6002a,0xc13189a7,0x40206588,0xc1b60000,0xc14abe9b,0x4011475a,0xc1b60000,0xc12b07e4,0x3fdd5b14,0xc1b60000,0xc1033334,0x404cec6c,0xc1b60008,0xc1145f4a,0x3fb070ca,0xc1b60000,0xc16367a5,0xc04dced1,0xc1b5ffd3,0xc1147dc9,0x402393bc,0xc1ec728f,0xc145a371,0xbefa43dd,0xc1f1326d,0xc17236d3,0x4049c5d6,0xc1f13333,0xc1400001,0x408cab1d,0xc1f13333,0xc1a2e9ed,0x80000000,0xc1f13333,0xc10d8e8b,0xbf50e400,0xc1f13333,0xc10f468f,0x40b93b5e,0x41efd0da,0xc1a0cce6,0x41e8dc9e,0xc0cb70c5,0xc1afe254,0x41eddb57,0xc09ca079,0xc1abc380,0x40682a78,0x41f1881e,0xc1a5dc10,0x4066a8df,0x41eff87e,0xc1aa7a6d,0x41ee32f6,0xbfa62e88,0xc1afbf79,0x41f1aa3f,0x3efad128,0xc1aa7a6e,0x41f0ffbe,0x4012d2d4,0xc1aa7a6e,0x40c87de5,0xc1e918e7,0xc1afbf7a,0x4102c8a6,0xc1ead1b4,0xc1a30e4f,0x41e93d7b,0x40f3945b,0xc1abc381,0x41e6b14a,0x40f0eb4f,0xc1afbf7a,0x41e7bf62,0x41171e57,0xc1a30e4d,0x41e87030,0x41075397,0xc1aa6a4f,0x41e04f4c,0x413091fd,0xc1abc380,0x416c4da1,0xc1d2d974,0xc1aa7a6f,0x41cf87c7,0x417ffc40,0xc1a56077,0x41811299,0xc1cc5fb9,0xc1aa91e9,0x41810134,0xc1c9050b,0xc1af3197,0x418701d2,0xc1cb4367,0xc1a3cfa7,0x41a44d68,0xc1b0642a,0xc1abc382,0x41acaf7d,0x41ab4693,0xc1a772d6,0x41a0fcd1,0x41b18944,0xc1aec2c5,0x41d0f741,0xc1705a2e,0xc1abc381,0x417059db,0x41d48965,0xc19b6a67,0x41cf0e09,0xc16e2777,0xc1af3196,0x41606674,0x41d8656c,0xc1a30e4d,0x41e013bd,0xc122ecd2,0xc1afbf79,0x41e55eb3,0xc10546a0,0xc1af3195,0x40e504d1,0x41ead129,0xc1aa7a6d,0x3fe51cc9,0x41ecbae5,0x358637bd,0x41cb3421,0x41768ab6,0xb927c5ac,0x41ed29aa,0x0,0x0,0x41d1ff48,0xc15c6e18,0xb58637bd,0x41a7b30b,0xc1a7b30b,0xb58637bd,0x417562f3,0xc1caf59e,0xb58637bd,0x410d1d00,0xc1e26c9a,0xb58637bd,0x40aaffc7,0xc1e9472b,0xb58637bd,0xc142ab55,0xc1d844c8,0xb58637bd,0xc1a7b30b,0xc1a7b30b,0xb58637bd,0xc1caf59e,0xc17562f3,0xb58637bd,0xc1ecbae5,0xbfe51cc9,0x80000000,0xc1eb6efe,0x4064b1c8,0x0,0xc19d449b,0x41b184d5,0x358637bd,0xc02df940,0x41e7aef6,0x38f34507,0xc10a0a9a,0x41dd7ec8,0x358637bd,0xc1dd7ec8,0x410a0a9a,0x0,0x41700b74,0xc1c68a90,0xb58637bd,0x413e6e7a,0xc1d38f8e,0xb58637bd,0x410a0a9a,0xc1dd7ec8,0xb58637bd,0xc1beeea8,0x4183ca80,0x358637bd,0xc1c10048,0xb58637bd,0xc157a1ad,0xccd6d01,0xb747100,0x8a90c170,0x71000cc6,0xc18f142b,0xcb6a067,0x7c0cf400,0x63c1d8ec,0xc12489,0x52800000,0xf7405fb7,0xbd41e64e,0x358637,0x7320e800,0x804afff1,0xc119d62a,0x41dade22,0xc1005d80,0x3d8059a7,0x41e80182,0xc1998ff6,0xbf5169e4,0x41e7e7dd,0xc196263f,0xc15bee6e,0x41cc478b,0xc194df0e,0xc1d4a580,0xc13a530d,0xc127eb8f,0xc01157b0,0x41e7495d,0xc1972f03,0xc08f15ec,0x41e5686c,0xc1a600c4,0xc19ab1d0,0xc1ad8ece,0xc127ebab,0xc18c25db,0xc1b8e2a3,0xc04cccd1,0xc14f4d25,0xc1cfeaf7,0xc04cd1a6,0xc0d31f90,0xc1e24e81,0xc04cd84d,0xbf3ac8d6,0x41e7ecf3,0xc1015fac,0xc146c13a,0x41d1a21d,0xc1005e3e,0x3e389a89,0xc1e860f7,0xc1033360,0xc185eab0,0x41bd7287,0xc1a5ffb4,0xc012aade,0x41e7444f,0xc101b38d,0xc0db5b12,0x41e16ce6,0xc19568f8,0xc06de2ce,0x41e61eb2,0xc1005cff,0xc1838498,0x41bf21fd,0xc101b689,0xc1a08614,0x41a7b238,0xc14fffea,0xc06459f7,0x41f1c8e5,0xc096ab00,0xc0133b58,0x41f19bb2,0xc0aa118c,0xc07988a9,0x41ebec54,0xc0a347ef,0xc03e22a7,0x41ecb40a,0xc0969814,0xc081d738,0x41f13e50,0xc1963421,0xc0aa3025,0x41ea298b,0xc107e968,0xc0ca7002,0x41ecf431,0xc199ec36,0xc121a7e5,0x41e4859d,0xc0a18421,0xc11f1f63,0x48e04855,0x5910f100,0x13c14d36,0x1d41d6b8,0x95c1029e,0xbac13c6e,0x9c41da74,0x81c0fc19,0x1bc13f7f,0x60d9c6,0xfa0498f5,0xd14ac178,0x9e1b41ca,0xf9e4c102,0x9286c16b,0x981641ce,0x310dc096,0x65b0c162,0x955f41d1,0x9398c0a7,0x17fbc189,0x19a641c2,0x33bcc0fc,0xa1aec0e2,0xc3eec1da,0x44a5c1a0,0x716cc17a,0xab15c1bb,0xa1d4c071,0x5699c18a,0x5728c1b5,0x908dc0ad,0x89bbc186,0x5e1fc1a9,0x2437c18f,0x5d64c18f,0x57f0c1bd,0x7794c191,0x1b28c0c2,0x22a4c1e8,0xa2e4c193,0xe047c0bb,0x3334c1e8,0x9509c189,0x49bac091,0x4cccc1db,0xc1bcc133,0xb940c084,0xc38c1d5,0xab9fc133,0x6608c034,0x916bc1dc,0xf100300d,0xd80002d4,0xc19cb2c0,0xe8335ac0,0xb1a064c1,0x728623c0,0xc741f0c1,0x69999ec1,0x86f5dec0,0xa95bc8c1,0x27eb86c1,0x906ef8c1,0xc44649c1,0x8a2d5ac1,0x8c74b7c1,0xbe93c9c1,0x8ef083c1,0x8122f9c1,0xc3b28cc1,0x9945b6c1,0x8c673fc1,0xbe9ac2c1,0xc1fa70c1,0x87c080c0,0xca44dfc1,0x9d2a99c1,0xd726e5c0,0xeda3cfc0,0xbf27f6c1,0xea4391c0,0xec9163c0,0xa6b5aac1,0xd01881c0,0xedae81c0,0x89afa1c1,0xd67521c1,0xedb02ec0,0x8f2654c1,0x8c090fc1,0xc765b6c1,0x9417cfc1,0xeb5649c1,0xe37b44c0,0x986725c1,0x82ebd3c1,0xc2e38ec1,0x9b5235c1,0x77eb0fc0,0xc609bfc1,0x95c291c1,0xf09c1bc0,0xe2e36dc0,0x9ae352c1,0xd1689ec0,0x19cacdc1,0x500000c1,0xcbb980c1,0x45d80c1,0x8af2000c,0xc19ff6c6,0x419ec74e,0xc1500003,0x41d385e9,0xc0bbf851,0xc1500000,0x4199e163,0x4197b324,0xc14fffff,0x41b2a96f,0x419357a7,0xc14fffcd,0xc1a714c0,0x4192642e,0xc1a5ffb6,0xc1b20834,0x41938846,0xc1a5ffad,0xc1e07f7e,0x409ee9db,0xc1a5ffb6,0x41a02155,0x41a1282a,0xc1a5ffb0,0x419c5196,0x41a4bc1b,0xc1a5ffb6,0xc1194d3c,0x41d67de6,0xc1a5ffb5,0xc16f3b26,0x41c1e80b,0xc1a5ffb5,0xc19d076b,0x419afe4f,0xc1a5ffb7,0xc19a1e80,0x41979be3,0x230024b6,0x240c41,0x194d3d53,0x3ce541,0x9b1d6a71,0xa64dfac1,0x10f10084,0x408b6098,0x41e1286d,0xc1a5ffb5,0x41dc2298,0xc0bec3ad,0xc1a5ffb6,0x41d35d7a,0xcbb8d8d,0xfffff400,0x98daf8ff,0x33d341e4,0xffb340ac,0xb89cc1a5,0x1e5e41a1,0x999ac1a0,0x8230c1a9,0x9ff6410f,0x337f41dc,0x9169c0fb,0x1f184112,0xfdb941dc,0x6c08c0fb,0x9bd3411b,0x6d8741da,0xd413c103,0x97d84182,0x67d741bf,0xdb4bc195,0x4caf40b9,0xccd1c1e3,0xcbf3c04c,0x8a644124,0xc4ebc1d9,0x1997c04c,0x10554197,0x5ddb41b0,0x5be9c100,0xbce941a4,0x999ac1a3,0x978c1a9,0x5700400c,0x681641e7,0x34e5c195,0xdf724172,0xb4c741c5,0x5309c101,0xf05a4198,0xcc64c1ae,0x39dac04c,0x755b41bb,0x3502c189,0x49eec199,0xee6c41b8,0x999ac18c,0x412cc1a9,0x8644149,0xdf5f41d1,0x7b16c194,0x2bff41d1,0x5d95c148,0xc303c198,0xb61b41db,0x999ac114,0x753fc1a9,0x6a42411c,0xdf7141da,0xa69cc194,0x779b4110,0xe27d41dc,0x39aac199,0x6d6b4131,0x1aa741d6,0xa62ac103,0x38134186,0x9e1b41c4,0x8c0bc102,0x4dbf4191,0xe9c941bc,0x5e62c107,0xb6864189,0x842141c7,0xaef6c0a1,0x32494186,0x47f141c4,0x251bc0a3,0x6d0d417e,0x21fd41ce,0x9792c195,0x31b54146,0x16dd41d8,0x89abc0fc,0xdfe14143,0x981441d8,0xaa3dc096,0x72cf4144,0xec5a41dd,0x78dc199,0x2fb74139,0x39db41e1,0xd904c196,0x39684106,0x9e1b41e4,0xed54c102,0x369e4106,0x47ef41e4,0x20a4c0a3,0xe7f74115,0x981441e1,0xdf8bc096,0x2921411f,0x956441e0,0x7eb5c0a7,0x392c40e1,0xe95d41e7,0x2a2cc107,0xd96b407f,0xe9cd41eb,0x2867c107,0x96e3407e,0xccd1c1e5,0xe180c04c,0xf2d440ab,0xd5c5c1df,0xd98ac11e,0x510a40ac,0x6df1c1de,0x43b5c191,0x4f28418f,0x4f76c1bd,0x66a1c0bb,0x8158417e,0x51cec1ba,0x5645c076,0x7b4540eb,0x3042c1e3,0x7ed4c09b,0x19eb40c2,0x45dac1e8,0x2c19c193,0x811240eb,0x6d81c1e3,0x74bbc198,0x93d1418c,0xaccc1be,0xe300c0c1,0x439240c9,0xcdbbc1e7,0x22fac18d,0xb28b4181,0xb5fcc1c3,0x7729c097,0x234180,0x3dd0c1c4,0xea4dc1a1,0x433240c9,0x63efc1e7,0xfd82c0c5,0x255c417f,0x2ca7c1ba,0x375fc1a0,0x908f41ab,0x27f4c1ad,0x3d17c199,0x448741a6,0xc402c1b2,0x9b7fc195,0xb11641c4,0x4566c190,0x23ec174,0x9cfe41df,0xdf7bc144,0x7094c18c,0x996041dd,0x7db1c14b,0xcdc194,0x521e41da,0xb889c15a,0x8920c175,0x60d341da,0xf0c8c158,0x3d28c198,0xca2d4190,0xf6f1c1c4,0x44a2c0c3,0x5cf04190,0xc919c1c4,0x8267c18a,0x72f0418a,0xd9c2c1c8,0x7925c195,0x5b4e418e,0xddcbc1c5,0x5c6ec18f,0x7d140df,0x9a22c1ed,0x1f7c192,0xf95740d0,0x212dc1ed,0xb0fdc0d6,0x68140f1,0x8b9ec1ec,0x85dc0a0,0x8f6140d8,0x9659c1ed,0x2d8bc0bd,0xfc4f4108,0xa260c1e9,0x3337c095,0x448f41a4,0x955b41ac,0x9603c0a7,0x7fe8419d,0x4f1441b9,0x7428c196,0xb1c419a,0x47f141b5,0x3f9dc0a3,0xecac41a1,0x19a841ae,0x6ecdc0fc,0xeef41a4,0xe9d141ac,0xbf6ec107,0x4d07bf60,0x48c341f3,0x8d82c196,0xe425beab,0xec5941ed,0x270fc0fb,0xe4263f58,0x955d41ed,0x816bc0a7,0xe4153e0d,0x981441ed,0x6fb0c096,0xa508c19f,0x7fe441a6,0x2917c194,0x4eb5c19a,0x956241b5,0x3333c0a7,0xffff4199,0x999ac103,0x3da3c1a9,0xa534098,0x999ac114,0x29bfc1a9,0x3e083ff8,0x999abfd4,0x263ec1a9,0xb93d40e8,0x999ac06d,0xa63cc1a9,0xeeddc104,0x999a3da5,0xfb25c1a9,0xeaac14b,0x999a40d3,0xcd92c1a9,0x80aac138,0x999a40ee,0x7f5ac1a9,0xb387c0c7,0x999a40ac,0x6666c1a9,0x1415a,0xc4104,0xc80002b3,0xa9999a40,0x993333c1,0xc020e04,0xef08f100,0x9abf7fff,0x85c1a999,0x62410459,0x544172fe,0x86c0bd9c,0xc03ee,0xbd328146,0xd71cf8c0,0x87efbf60,0x8c5fc19c,0x11c18d,0x91652860,0x1852bf60,0x749f41e4,0x31e0046,0x24011d94,0x5f05f300,0x440ea46,0xef41cac0,0xf9bf5fff,0x58c1d524,0x18c129d9,0xfb41411e,0x1de8d524,0x21ea0f71,0xc2e4f741,0xb710024,0x3941b8fc,0xc4b29,0xcafbc944,0xf11e48c1,0x72252c10,0xacfd5b41,0x400011c1,0xc4371cbf,0x6f17ebc1,0x35555041,0x8ceb38bf,0x9d1913c1,0xd7440030,0xb441aede,0xb687441e,0x8441ca,0x11d2806,0x41140084,0xc030084,0x1d940100,0x911f1406,0x8566bf1f,0x6df7c112,0x711d58d9,0xc180c23e,0xcbde7ac,0xded76200,0x894cc1ae,0x5c062d9c,0x1f06f11f,0xde661ebf,0xe57b7841,0x200000c0,0xd234d1bf,0x218f8a41,0x2c061e30,0x8201701,0x81f1701,0xbf206401,0xc1c6dae2,0x4f11db8,0xc1d96df7,0xc1128566,0xbf200000,0x417b2de9,0x78aaa58c,0x1ec00600,0x98bf2064,0x84419453,0xfc061e,0xf01f17,0xd82014,0xf1004801,0xe99d9928,0x6087ba40,0x1eb852c0,0xaf7aeebf,0x950de1c1,0x19998941,0xb65564bf,0x8cc5b0c1,0x1cccbc41,0xadf0aebf,0x54f361c0,0x1999aac1,0x8b55d7bf,0xb74adfc1,0xcc710024,0x64c0b0fd,0x1852f6,0xba8410f1,0x99704045,0x999a4077,0x6b7cbf19,0xb14c41cb,0xccdec157,0xf6b6bf1c,0x79f0c0a9,0x71002456,0xc15bd8e7,0x54ca6a4c,0x28f27100,0x999ac058,0x71004887,0xc1a72738,0x249e55ff,0xde17100,0x7aeec195,0x62000caf,0xc0a55545,0x486f73,0xb3904f71,0x4e2998c0,0x1c710018,0x31c0a05d,0xc57c3,0x55e55871,0x66a6d740,0xfe710078,0x3c0a1f0,0x54e387,0x819704f1,0x3f35c1da,0xcccdc113,0x204bbf1c,0x9e433fff,0x71007893,0x3fc77069,0x3ce5e6ff,0xfeaa7100,0x34fa4094,0x7100a8e3,0x416d66f9,0x18c54865,0x6aec0400,0x1999aab1,0x711859bf,0x80133d40,0x5f710054,0xf041b78f,0x488b89,0xf16bc404,0x19998908,0xe00000bf,0x17ae14c0,0x19999ac0,0x9e55ffbf,0xa7273841,0x1f40030,0x4053abd2,0xbfe1179c,0xbf1d27d4,0x41a72738,0x2c6200e4,0x2e418135,0x31fa491,0xc8010078,0xb1567101,0x6b794157,0x71000ccb,0xc1813530,0x6cbe912b,0x6b797100,0xb156c1cb,0x4001857,0xc8010120,0x6d666101,0xc54865c1,0x7712028,0x640f662,0xcddd9,0x2a70f471,0xd5e33a41,0xa803000c,0xc0100,0x1009c03,0xdf71000c,0xd741b74a,0xc8b55,0x59bb6b71,0x5d63ed40,0x5c040294,0x11b101,0xbf20,0x33338000,0xb5007897,0xc0e8d3b5,0xc01a79dd,0x2c1f63f5,0x11b16d,0xf0aebf20,0xf36140ad,0x4004854,0xefb1012c,0xbf1fff,0xe140e000,0x114647a,0xf4a1ec71,0x4b08d540,0x4f44000c,0xc840b390,0x1401f401,0xe7bfbb40,0x3341357b,0xffbf1b33,0x38c19e55,0x2640301,0x44018c01,0xc0b2e8d3,0x44b46d80,0x24401936,0xbc413e15,0x301ccc,0x71002401,0xc12a70f4,0x74d5e33a,0x4adf7101,0x55d7c1b7,0x7100188b,0x405828f2,0x1850cccd,0x70694400,0x1f8bfc7,0xf4a1ec71,0x312021c0,0x440090,0xa8c0e000,0x9804f100,0x30c1da81,0xcd41133f,0xd9bf1ccc,0x3c40bd97,0x3ce19f,0x5bd8e371,0xca6a4d41,0x5c030228,0x180101,0x5828f244,0x7102c440,0x41cb6b79,0x1857b156,0x1740400,0x1999aa35,0x9c0301e0,0xd7414100,0x248b55,0x950de171,0xaf7aee41,0xf997000c,0x144034a3,0x9abff3b4,0x40010048,0x300332,0x1fffef35,0xc030078,0xf00100,0x1fffef34,0xa4010108,0x27357801,0x5603c1a7,0x102349e,0x14040198,0x113501,0x1036c20,0xcc0222a4,0x240103,0xb1031804,0xbf200011,0x41813530,0xf0be912b,0x733fb500,0xc92a40af,0xed63c087,0xb101501b,0xbf1fffef,0xc0f0a0b0,0xd45147ae,0xe8d37504,0xa5aa40b2,0x31020450,0x905fd985,0x5d1c7100,0x9e6f40a0,0xf2002482,0xd79e1703,0x94411dbf,0x1aaa9f41,0x339e5abf,0xd8be0bbf,0x4b4d7133,0x8db54056,0x71010866,0x40764fdb,0xc065e7a3,0xdedf7100,0x53c2c00b,0x44001846,0x40782307,0x940433e4,0x9989b102,0xae9fbf19,0x8838c000,0x7100303a,0x405648e4,0x307bc394,0x86517100,0xc577c05c,0x4001852,0x89a23378,0x58bf1999,0xd8c04274,0x7101a495,0x3f48ba62,0x30927782,0x359c9200,0xb107be58,0xc9a4131,0xc3e1400,0x33600400,0x998908f1,0xa6c6bf19,0x1e754047,0xa705418b,0x5382bf1e,0x6e4e4015,0x71003c48,0x40387048,0x6c45b4b4,0x46c77100,0xab20401e,0x400184a,0xe40833d8,0xffefb100,0x3b5cbf1f,0xd6404059,0x7101206c,0x3f94d8dc,0xc918f45,0xb0f77100,0x7bdcc026,0x71000c89,0xc03c7275,0xc85999a,0x348c0400,0x1fffefb1,0x564b4dbf,0x79724bc0,0x70710018,0xb4c046b4,0xc4a3c,0x79486271,0x6d127f40,0x5a710084,0x6dbfe9d4,0x6b438de,0x70808862,0x8c4e65c0,0xa0667101,0x78773f56,0x4003096,0xef353534,0xf01fff,0x200000b1,0x746541bf,0x7da440c0,0x8a710024,0x8c3fa058,0x483483,0xc128471,0x3c5a2a40,0x59710018,0xacc02ba6,0xc8ea6,0xf08910f1,0x260ebfff,0x553f41e5,0xa830bf35,0x58da41d2,0xbfcb,0x5f34bf40,0xeb1c41d2,0x3258c23,0xec010720,0x32ba7107,0x6de8c15e,0x4207a4b3,0x41e01369,0x60172538,0x601406e4,0x4144069c,0x74600000,0x3c0107,0xc106c003,0x5fffef41,0x72c347bf,0xad8a2e41,0xdf71000c,0x7a41a2d8,0xc8751,0xe3c19471,0xcb36b840,0x2c030030,0x480107,0x1085803,0x5006000c,0x26640525,0x71003001,0xc183dd6e,0x48a4c567,0xa80df200,0x4641bde7,0x11c180c2,0x24bf4000,0x4fc15f80,0x7941b313,0xbdbf4022,0xb041b829,0x3c0125,0x26a0c114,0x17255c06,0x9100d860,0x3bfabf20,0xad8f41d0,0x7108c440,0xbfee5cee,0x38d35dcf,0x4595b701,0x73b3405b,0xaa9f41d1,0x1727304a,0x17270020,0x1708f420,0x8201081f,0xbe66bf20,0x88abc068,0x71261c,0x12c1d02f,0x5b88a6b,0x9100fc06,0xffffbf20,0x9a42411d,0x7100c0c3,0x4134832a,0x9cbec41f,0x32c35103,0x80e4415e,0xbf209101,0xc19586ec,0x9094ed91,0x9180600,0xe42017,0xbf2006f1,0x40660b7c,0xc1bfab92,0xbf6cccde,0xbfe00000,0xcd2bd9f,0x378f7100,0x703a4063,0x71000cbd,0x4016cc79,0xcb31ad3,0x378f4400,0x18c063,0x2f644e71,0xb485a140,0x17710018,0xfdc05066,0xcb855,0x44a8a071,0xb69e1f40,0x6671000c,0x47406666,0xcd3a6,0xf349f4,0xd1fc3ff8,0x4c1b2,0x7eac068,0x47fb402b,0x54c1b4,0xd8e4c068,0xb817c023,0x3194c1ba,0x924c01b,0xbf60bfe4,0x3255c1d3,0xcb7c01b,0x52583fe4,0x33fdc1d3,0xc01b,0xc8dcc104,0x6677c17c,0x803bf46,0x4aae4027,0x6666410d,0xbf46,0x184104,0xf155ec04,0x46667708,0xf00000bf,0x91fb13bf,0x46665641,0xcc8dcbf,0x74000041,0x2c7136e4,0x9ac0002e,0x18a57c,0x719cf571,0xdfd3edc0,0x71715730,0x4dbf5357,0x18a8a3,0xa4b104f1,0x16af404e,0x666640fb,0x6f76bf46,0xaa654072,0x710024de,0x40cfaaf1,0x2471c3fa,0xaf6c7100,0x458f406e,0x71000c76,0x3f9d61cc,0xca7e107,0x403e6200,0x33bd405b,0xc971576c,0x73fc33b,0x189368,0x10000062,0x489d4141,0xc5264400,0x6ee8410b,0x325ad171,0x47da27c0,0xdd710024,0x25bec8b1,0xc3454,0xac9e8871,0x9687b2be,0x3a713618,0x72c02290,0xc8e91,0x846d8004,0xc011999e,0xc1100000,0xa6736de0,0x2fc10f2e,0x186e36,0xb1012c02,0xc011999e,0x40a5b715,0x185948ca,0x6c480400,0x14003003,0x44003041,0xc0a5b715,0x4271369c,0x1440d3d0,0x6c7015,0xddc7de92,0xe641d540,0x372c9a3e,0x372c4114,0x12006004,0xf1576cde,0x4f83c00d,0xccdec159,0xd6f7bf2c,0x6ee7c106,0xcccdbf0f,0x58abf2c,0x9468c070,0xf1000ce4,0x4f14cf10,0xfe78ba40,0x40b5fe40,0xc136a8bf,0x80b77140,0x2cccbc41,0x4fd899bf,0x87000040,0x3804000c,0xbc14f101,0x50bf2ccc,0xfd402671,0xa740de41,0x4cbf3b05,0x6c4064a4,0xcd4076d0,0x2abf2ccc,0xc05a00,0x305311,0x51c204f1,0x3726bfbe,0xcccd4138,0xe337bf2c,0x8a034047,0x710024ee,0x3f479863,0x44354fa7,0x2a027101,0xbb9ec042,0x71000c4c,0xc0209763,0xc43694c,0x11887100,0x4540400d,0x71000c90,0x3f479863,0xc95582c,0x7100,0x8000,0x4000c96,0x58030150,0x58c01402,0x585c0402,0x667705f4,0x6d65bf46,0xb980c0f8,0x6666be56,0x64aebf46,0x5754c017,0x736a9471,0xd9cbb4c0,0x440234,0xd040d800,0x9b04f138,0x8940e347,0x663ecace,0x23bf4666,0xa8c0d711,0x6c60e9,0x6bf2a4f5,0x13e8c0ea,0x999ac01f,0x182bbe19,0xc5a2bffd,0xfffe4183,0x182bc087,0x51ecbffd,0x33314159,0x3226c08b,0x5adc41da,0xcccdc0d8,0xacacc114,0xb6b341cf,0xd21c4047,0xf3f5c107,0xab441c1,0xb4884127,0xd539c10f,0xd3e541d0,0x93504048,0x7883c10d,0xaecf41c6,0x67ad4126,0x2c6bc114,0x3c0c41d1,0x55574079,0xef88c110,0x8e4141cd,0xd21c4092,0xc617c107,0x242d41d2,0xbd61407b,0xad29c112,0xdcfb41cc,0x935040c1,0xd993c10d,0x1db041cf,0xcccdc031,0x68a9c104,0xde5141d0,0x1901c03e,0xd0f0c10b,0x899c41d4,0xbd61bfaf,0xf2470412,0x4cccc74,0xc14006c1,0x2f259541,0x46c1e841,0xe2ce7bc0,0xee05cd41,0x3bb5a6be,0xe507a4c0,0xa6e8c441,0x79999a40,0xe477eac0,0xa6800641,0x61dc7740,0xe10506c0,0xa3fc9c41,0x41d3a240,0xe35b8ac0,0x47576441,0x3e39c540,0xe12b59c0,0xec760141,0x79999ac0,0xdf9bb5c0,0xed206a41,0x51d024c0,0xdebaedc0,0xd0120241,0x41d3a6c0,0xe71ed6c0,0x5f4f4c41,0x79999ac0,0xe7cbe7c0,0x2cbce441,0x2cf4000c,0xea41db3a,0x2ec0ef85,0xfac03c3a,0x9141e4ad,0xa8c05cf3,0x2dc04b70,0xa241e8a1,0x9abf8e7d,0xb2c07999,0x5841d515,0xf4413429,0x8fc051a8,0x5a41df1d,0xcd4104e5,0x78c104cc,0xcd20f100,0xc2c104cc,0x5441e546,0x12408d55,0xc0c10bd8,0xf441e4d3,0x6b40a6c2,0x24c10868,0x441ddcf,0x4c40ee10,0xc1c11184,0xcf41e00e,0x24f079,0x8715ecf5,0x42c741d5,0x6e494134,0xd61dc10d,0xab8c41e0,0xf236c0df,0x6070c10c,0x7fa241c0,0x999a4123,0x9bc2c079,0x36f041d0,0x999a3fd3,0xcffac079,0x6bd341d0,0x39bd3fd3,0x50f3c06b,0x441d41c2,0xadc1412b,0x97e6c045,0x61241ce,0x81f14093,0xfec9c05d,0x991c41cd,0x39bd4092,0x5f1bc06b,0xe2ed41c7,0x81f14102,0x790ec05d,0x277841d3,0xc1ecc009,0x8f2ec046,0xd9e841d1,0x81f1bfac,0xacabc05d,0xfd1541cf,0x81aac055,0xb590c066,0xd20341d1,0x81f13f6a,0x3ac8c05d,0xd95e41d3,0x93cd4064,0xdb63c041,0xa0cd41d8,0x2b06412f,0xd936c056,0x29541d6,0xbcbe412e,0x2a0ec04b,0x680541d1,0x66664129,0xaa17c116,0xe48441c6,0x3f4b4120,0x6d12c03c,0x3cfa41d3,0xaf9f412b,0x4722c035,0x936641c6,0x9b7f4120,0x4ed5c115,0x923641d6,0xd6f412d,0xf4003c49,0x3ccc4f51,0xda2af1c0,0x301aa441,0x5e66f741,0xdf8100c1,0xbb56741,0x581db441,0xe3e8e9c0,0xc5683841,0x507cc8c0,0xe9a3bcc0,0xa57a841,0x57ae143e,0xe5825ac0,0x18ee6c41,0x3cf98bc0,0xe5bcc4c0,0xc3372641,0x5e666640,0xe2840ec1,0xefa15341,0x5e6666c0,0xe97ed2c1,0x1b966841,0xf10018c0,0xefa1550c,0x7c28f6c0,0xe53089c0,0xc2bffd41,0x7c28f640,0xe7a4c1c0,0x8cd4d841,0x9f4000c,0x41e78a95,0x40830097,0xc05deed9,0x41ea4d2b,0x3e0abc0e,0xc07c28f6,0xe0f10048,0xc07c28f6,0x41dcdaf2,0x411577e7,0xc059eb81,0x41e16f83,0xc0b6db92,0xc040dac7,0x41e4819b,0xc0b95932,0xc059eb85,0x41dc61d8,0xc0e92438,0xc03a0371,0x41e09f8c,0xc0ed9d7a,0xc04e39ef,0x41d3630b,0x412b335d,0xc03881c7,0x41db6f0d,0x412086e9,0xc061f42c,0x41e2de71,0xc0be2b02,0xc04bbcc3,0x41e15b53,0x40e3fe0f,0xc04fcc64,0x41e5dbcb,0x3f9437c5,0xc03ba94c,0x41e50b30,0x4029b47c,0xc040dac7,0x41e7b9ff,0xbf3692b4,0xc04bbcc3,0x41e91623,0xbf37a509,0xc059eb85,0x41e492eb,0xc04e4c51,0xc040dac7,0x41d193ea,0x4056d6b2,0xc04bbcc3,0x41d0fa97,0x401fc53f,0xc059eb85,0x41d0a8dd,0x3fd2fa40,0xc06a6fa4,0x41d2dee6,0x3fd53693,0xc04bbcc3,0x41d0a073,0xbfdb23d5,0xc06a6fa4,0x41cfc9bf,0x2c22f66f,0x8f10f101,0xa141c554,0xcf410a10,0x9ac1096b,0x6941d071,0xfe408638,0x44c11097,0x41d16a,0xc56ac,0x1bceedf4,0x1aeb41d0,0x6bcf401f,0xa3fdc109,0xf55641d0,0x6bcf3fd2,0xe7ec109,0xdadc41d1,0x6bcfbd02,0xaa63c109,0x4e7741d4,0x22ecbf63,0x518bc113,0x382641d8,0x47aebfe3,0xf32c115,0x2ce441d0,0x6bcfc023,0x5200c109,0x1b3841dc,0x47ae4115,0x1db5c10d,0x4a9441db,0x97fe4114,0xf3eac110,0xe64341e3,0x47aec0b8,0xce91c10d,0x246641d6,0xfe4411d,0x35c4c114,0x795141e3,0x6727c0cf,0x6e47c10b,0xc95a41df,0x47ae4108,0x2365c105,0x68ad41e2,0x55c840de,0xc814c10d,0x9bca41e2,0x6bcf40dc,0xf34dc109,0x89d541e1,0x22ec40a4,0xda1c113,0xfc4841e2,0xbc1d405c,0xa966c114,0xfcb941e5,0x22ec3e07,0x5225c113,0xd44a41e9,0x6bcfbf37,0x470ac109,0xa31a41e8,0xa830bfef,0xeb9ac10d,0x517e41e7,0x6bcfc051,0xc0bfc109,0x923e41e8,0x2524c047,0xb4c070,0xcc4f14f1,0xb4f1c05c,0xe38841e2,0x8b15c0b7,0xaa84c04f,0x5c2d41db,0x38dac0e8,0xa1cfc03a,0x945941df,0xc40018ec,0x41de7b75,0xc0d44dd5,0xc041ab7e,0xdf4009c,0xc06c3bd6,0x41e383f0,0x40c153cc,0xc05ccc53,0x41e64ab8,0x408d57f1,0xc0622913,0x8f100a8,0xc03efa98,0x41e68a06,0x3f7eb11c,0xc044ad7d,0x41e799e8,0x302b9995,0xa11cf100,0x8841e865,0xd6402c30,0xe2c06c3b,0x8941d951,0x533f5742,0x27c03ccc,0xca41c5ef,0xd1410a7c,0x83c06c3b,0x1f41cfe2,0xadb8a174,0xd0bed771,0x1f979241,0xfff40030,0xd2651d8a,0x50669041,0x5ccc533f,0xd16c7dc0,0x316a041,0x7ccc53bd,0xd3c455c0,0x48e0441,0x4f8b15bd,0xd2dc43c0,0x90e8b041,0x553ce6bf,0xd07960c0,0x1f627841,0x604fc40,0xc9ebe4c1,0xd59ca441,0x604fcc0,0xcf2b8ac1,0x545ed941,0x604fc40,0xcfce04c1,0x2b97dd41,0x8130f740,0xcf4313c0,0x5cf4c341,0x69661fc0,0xd154f7c0,0xae0c6541,0x3ebbf5c0,0xd3e045c0,0xc3360041,0x385172c0,0xc892c7c0,0x16104641,0x3d87e441,0xcc8c21c0,0xaea6c241,0x6b1301c0,0xc75208c0,0x44d0b41,0x5a8ede41,0xd6a05fc0,0xdc432d41,0x39ffb53f,0xd34519c0,0x51447841,0x4c60203f,0xd10241c0,0x23eb8541,0x5a8ee3c0,0xd155d8c0,0x79bad441,0x4c6a59c0,0xcd4736c0,0xaaad8e41,0x5fdb77c0,0xd9cfd4c0,0x13689e41,0x417e2041,0xdd96f8c0,0x15f72741,0x6b12fd41,0xe27050c0,0xef8c7241,0x7ccc53c0,0xe0c4dfc0,0xf6b44841,0x5a8ee340,0xe197fcc0,0xf79c0041,0x6b12fd40,0xe4eafec0,0x674ba941,0x426f0d40,0xe4d385c0,0xc270f441,0x6b12fd40,0xe9777fc0,0xec0f6f41,0x6b12fd3f,0xe6ead9c0,0x19dea441,0x4c6020c0,0xea1701c0,0x7dcc9641,0x547ae3f,0xe96a78c1,0x1b88d741,0x547aec0,0xde38b4c1,0xe1d72341,0x14cbc6c0,0xda29cac1,0xe6cb4541,0x166666c0,0xe197fcc1,0xf79c0241,0x9b60340,0xd6032dc1,0x1c8f9c41,0x15d11041,0xf4006cc1,0x9b60325,0xe26766c1,0xcc6acf41,0x109168c0,0xdfecc8c1,0xd1127941,0x141b3ac0,0xe36adfc1,0xa255b241,0x12be3640,0xe00b6dc1,0xe0989341,0x12b58ec0,0xf1459cc1,0xd70a35ff,0x1587c10d,0xf53041e8,0xd70a402b,0xff7bc10d,0xf9ec41df,0x6666405a,0xf114c116,0x273141e5,0x1b3a3e08,0xe092c114,0xee7441e3,0xd1103e06,0xbebdc115,0x8f8841e6,0xd70ac083,0xfd3dc10d,0xf21b41c7,0xb64240eb,0xcb5fc107,0x2b2441cb,0xd4e0c0b7,0x11cc10b,0xc14041c8,0x62bb4104,0xdd90c111,0x8f6541cd,0xb6034084,0xc7e1c109,0x126241d2,0x1b3a4058,0x19cac114,0x699c41d0,0xb6033fd2,0x62bfc109,0x1eb41d4,0x1b3abf63,0x9d28c114,0x1d1541d2,0x62bbbf61,0xb9d7c111,0x7b8141d1,0x62bbc024,0x5f41c111,0x6bb141d0,0xd70ac023,0x5a7c10d,0xca7541d1,0x929c0ad,0xe2a5c03a,0xb08141cb,0x91c9c0d7,0x72ddc048,0x31c241c4,0x3d47410e,0xaa3fc060,0xdf6641c6,0x1f9b4120,0xf8dbc039,0x1e4941cb,0x332f4116,0xecc1c033,0xfaaf41ca,0xaf9f410d,0xa6d2c035,0x88be41d0,0xc0f9c0bb,0x28f6c038,0xdbb441c8,0x91c94104,0xefbc048,0x5b4641d3,0xf98b4058,0x626fc03c,0x7a2541d6,0x7e783f81,0x7224c035,0x19c641d1,0xae14bd03,0xee1fc057,0xd03741ce,0xf10078a2,0xc5b7df1c,0x7f61e41,0x5d536541,0x2d4abc0,0x7c97fc41,0xbac08141,0xeaf577c0,0x700000be,0xce9cd441,0xf33f42bf,0x77179f3d,0x4f1000c,0x3ea68662,0x41694463,0xbfd3c151,0x3ecb7ae5,0x186c542a,0x59327100,0xd4ccbed4,0x71000c73,0xbe7532e8,0xc76a2ca,0xd8f96200,0x66c0bdfd,0xf944003c,0xc3dfdd8,0xd8127100,0x44e3eec,0x7100246e,0xbead61b3,0xc6a94f2,0xf6a2f200,0x4c3f1161,0xcd4173bb,0x30bfc803,0x28bec0f4,0x13418923,0xdcbfc666,0x77c019bc,0x64167ab,0xcebfc665,0x49bfafa8,0x5e414dde,0x6dbfc666,0x7ebeb990,0x80414e80,0x22bfc664,0x44400c72,0x2841690d,0x35bfc663,0xef3fb0ed,0x5e414e12,0xa1bfc666,0x7e3fa5f6,0x8415768,0xe3bfeccb,0x1bbebd88,0x7c414e5a,0x44bfecd1,0xe0be2051,0x9a414e92,0xe5c00999,0x85c002b7,0x9541688a,0xf0c00999,0xdbbfedbf,0xc441607e,0x6dbfeccc,0x15bfdd90,0x95415d1e,0x95c00999,0xcb3ff19a,0x95416174,0x85c00999,0x7bbe245d,0x9a414c17,0x3e14000c,0x3f2000c,0x3f3fc45d,0x41894902,0xc00a63f5,0xc002fcad,0x300b89,0x47ed10f1,0x8974bff2,0x9995415c,0xa7ebc009,0x6ccebfd9,0x999a4158,0x9f88c009,0x3f093ff9,0x7100187c,0x4009b7d8,0xc7a8457,0x2efff400,0x3ffe52b5,0x41819b11,0xc00c3f2d,0x3ded87f9,0x414f4476,0xc02c7d4a,0xbf425d8d,0x414df969,0xc0454f40,0x4011e55c,0x41671bcb,0xc02107d9,0x3feb033a,0x416208c8,0xc04974d1,0x400e429a,0x4168b3b3,0xc0411444,0x3fd1d05b,0x418588c9,0xc03e4c90,0x3e98bda9,0x4189c632,0xc01cd8f5,0x3f3d6239,0x4187938e,0xc045510d,0xbef6b9e5,0x4187f7b9,0xc023fd48,0xbfc83982,0x415a867f,0xc03eb8c7,0xbf600a7c,0x415256a3,0xc01d65cb,0x3e3f1e4b,0x414f7505,0xc01c28d8,0xbe72fa94,0x414f01d6,0xc03d2b56,0x3fa2c333,0x41562b77,0xc01aadc9,0x3f88c198,0x41540b6b,0xc03ad71b,0x3ff89ba6,0x4165c75e,0xc0193a26,0x3ff343f2,0x416357cc,0xc03972de,0xbed97d8d,0x41899a09,0xc02be172,0x3fc45c79,0x4159de11,0xc04cccc9,0x3fdc087d,0x415d6295,0xc04cccc9,0x40060889,0x416b72c5,0xc04ccc7d,0x3fec0c8d,0x415ff2b5,0xc04ccc9a,0x3ff28662,0x41618acd,0xc063338b,0x4006147b,0x41700000,0xc063332f,0x3ff034c2,0x4174c167,0xc0619995,0x3ff33333,0x4f10018,0xbe982de0,0x4187034b,0xc063332f,0x3fd8b157,0xc6232dd,0xc0be7100,0x219f3fc4,0xf1000c5e,0x5b48128,0x728145c0,0x4cccc941,0xf3f959c0,0x81bf6cbf,0x4b239e41,0xcba58fc0,0x84ba59bf,0x1cccc941,0xa91e5cc0,0x8691c6bf,0x4c22fb41,0xf4e011c0,0x8996b1be,0x10f10018,0xbeb04cad,0x418a195a,0xc06f5bfb,0x3f82b8fa,0x4188440d,0xc06f5c29,0x3fe68e50,0x2482c979,0x8e37b500,0xa8544005,0xcccd415e,0xb102041c,0xc06f5c25,0xbf8a0610,0x3050674f,0x6a04f100,0xfabfd04e,0x9d41514e,0xe6c01a0e,0x20bf6dcd,0x188cd9,0x6babc962,0xcea323f,0x5c04f100,0x9a402c1e,0x25418999,0xfc06f5c,0x3c01a48,0x244692,0x1a480f44,0xf1002440,0x2e635e1c,0x5b9a5b40,0x7ccd9241,0x2e990fc0,0x8237c440,0x782af541,0x7b3309c0,0x4d6668c0,0x8b2ecd41,0x800000c0,0x42666640,0x66710d38,0x9a3f6666,0xc4599,0x73333371,0x4666663f,0x1bf2000c,0x40220158,0x418ea66f,0xc051b4e5,0xc031b0a7,0x416729f0,0xc04ffffc,0xc0466666,0x41886666,0xc05cccc9,0xc04e6666,0xc21ce,0x3b161671,0x84fc5cc0,0xcd710018,0x20c04ccc,0xc87c9,0x46666662,0x240000c0,0x7100,0x3adc040,0x62001885,0xc04f7371,0x248808,0x40000035,0x1bf20030,0xc02f4bba,0x41824fde,0xc07cccc9,0xc02e2d34,0x414c02ac,0xc07ccccd,0xc064d7dc,0x418bacbd,0xc07ccbfb,0xc02d6bdb,0x1827c3,0x2cd77b62,0xc581ac0,0xccb87100,0x6b0c033,0x71003c5c,0xc0316067,0xc5bc674,0xd77b7100,0xd3f3c02c,0xf1000c89,0x794d110,0x87f51840,0x16656741,0xb42a6fc0,0x8b80e6bf,0x16666241,0x89e493c0,0x8cce72bf,0x4f1000c,0x401dcda3,0x4183b1af,0xc04fffd6,0x4022d1cc,0x186d3739,0xf704f100,0x21c01bcb,0x2c415819,0x58c01666,0xb0400554,0x185878,0x1d830eb5,0x64f78440,0x19999541,0xcd350018,0x3c1ccc,0x1cccc9b1,0xee8b7ec0,0x85ec91bf,0x2710210,0xddbf5a9c,0xc8b38,0x4d0ee62,0xcf92bbf,0x2604f100,0xc9bff273,0xfc417262,0x56c05fff,0xe13fb67f,0xc81bd,0xd5d76f71,0x7d9ea63f,0x3671000c,0x33bfebae,0xc767e,0xef429a71,0x6da56fbf,0x20f5000c,0xbee01b86,0x4152d433,0xc04e147b,0x3fedc9f7,0x416dbb56,0xc04d4fe8,0xbfed0b95,0x416b4e95,0xc04e1477,0x3f55f99c,0x415536b0,0x604da23c,0x7708f100,0x61c04e14,0x77bfe9e2,0xdd4174a1,0xbcc04c7a,0x5bfe641,0xc76e9,0xe7a704f1,0x36b8bfbf,0xd0dd4181,0xc682c04b,0x53c33fda,0x7100187b,0x3feccccd,0xc6fffef,0xf404f100,0xeebfdac5,0xee417b53,0xcdc04ab4,0xd13feccc,0xc6fff,0xec11f571,0x6dad89bf,0xb4710024,0x423f1258,0xc53d9,0x255b1cf1,0x7f1bf96,0xd66b4158,0x4c0ac04b,0x63443fc5,0x9e23415e,0xb1a3c04b,0xca1abf4a,0x8f824181,0xaf3ac04b,0xddbfbfaf,0xf4004873,0xa157bca0,0x71ad3abf,0x5a595341,0xc0,0x796ea400,0x5fd9ae41,0x2676eac0,0x721301be,0x58c0c241,0x18664dc0,0x7bf1a6bf,0x615b1041,0x35bc56c0,0x7297aebf,0x614f6141,0x1923f6c0,0x711414bf,0x60047541,0x117625c0,0x6cd19dbf,0x60047541,0x27f2f5c0,0x6af1ecbf,0x614f6141,0x27d03c0,0x6ae024bf,0x60047541,0x8432d3c0,0x6e235bbf,0x604c9d41,0xa3fb7ac0,0x67d830be,0x60047541,0x6034a0c0,0x64d33cbf,0x5e68a141,0xd77e1cc0,0x700000bd,0x571aac41,0x998afcc0,0x793e28bf,0x51b80241,0x4b9885c0,0x66e89e3e,0x61f1006c,0x732e633f,0x60047541,0x3affb0c0,0x71844e3d,0x571aac41,0x8bca32c0,0x73fcff3f,0x5e68a141,0x3621c9c0,0x803c873f,0x5acf7841,0xddc26ec0,0x81dd61bf,0xeccc4741,0x4aa2abf,0x6b7f2ec0,0xecccee41,0x382a1bf,0x49166dbf,0xecccf741,0x68018abf,0x70f334c1,0x1028f7c1,0xb8cccdc1,0xe54ad3c1,0x1028f6c0,0x685a7cc1,0x92d2a3c1,0x4f10018,0xc1b75e27,0x410cb879,0xc11028f6,0x411b3fdf,0x188c868e,0xc4b57100,0x25a54150,0x71000c94,0x41657efd,0xc8d8948,0x1905f300,0xb9c127b0,0xf54184cf,0xf4c11028,0x5a419274,0x3cc12559,0x8ec14200,0x188c86,0xc1160d61,0xc87895f,0xcccd7100,0x90b4194,0x7100601a,0x41aec281,0xc20323d,0x18a7100,0xf3344158,0x71002470,0x4143393b,0xc9d7a39,0x4c04f100,0x1ec11627,0xf5418729,0x9ec10828,0xc5c1280e,0xc8b5d,0x799a10f1,0x18cc194,0x28f7c130,0x5687c108,0xaae4c194,0x28f64120,0xc106c108,0x38b411d,0x71001883,0x4156a9a6,0xc712dc3,0xb40600,0x4ec10891,0xbf412826,0x18851c,0x58018a42,0xd70078c1,0x2c13c108,0x8dfd4194,0x28f6c120,0x9100a808,0x2451c108,0xf0e4194,0xf2006021,0x608790ff,0x1cbec181,0x7ae2c161,0x7aadc170,0xad2fc195,0x999ac129,0x6b52c16b,0xadf4c188,0x999bc14d,0xee86c16b,0xe5974103,0x32814187,0x4f8ec0bd,0xa43ac1dc,0x7c00c0e4,0xc009c115,0x4467c1e0,0x91c9c0e9,0x272cc048,0xb928c1e2,0xae14c0ea,0xcaf5c057,0x28efc1dc,0xafa3c0e5,0x3108c035,0xdbddc1cb,0x56b8c0d2,0x8ae2c065,0x53d8c1cf,0x5914c0d7,0xb769c115,0x4ed9c1e2,0xcc53c0eb,0x6f22c07c,0x3d5c1e2,0xb603c0eb,0xe807c109,0x6434c1df,0x97fec0e8,0xebf4c110,0xda9bc1e1,0xf98bc0b2,0xce09c03c,0xaddcc1d9,0xf98b4115,0xf639c03c,0xd942c1dc,0xae104117,0xfd31c057,0x1ca0c1d8,0x46cc4132,0xc5a5c069,0x2c7ec1e3,0xae14c0d0,0x18a0c057,0xc1e7c1db,0x91c94119,0x5bc4c048,0xbdfc1e8,0x46d0c080,0x989bc069,0x56bdc1e5,0xf98bc010,0x31f1c03c,0xa22fc1e9,0x46d0c049,0xf4ec069,0x2a67c1e5,0x2154004,0x81aec038,0xa251c1ea,0x46ccbf15,0xda91c069,0xdcadc1ea,0x28f63e8b,0x19bec07c,0xf51fc1e7,0x91c94033,0x8b07c048,0x14b1c1e8,0xae144035,0xfe75c057,0xa094c1e8,0x28f6406c,0x63fec07c,0xdb77c1e5,0x91c9408f,0xd28bc048,0xc157c1e6,0xae144090,0x63b3c057,0xc1bec1dd,0xaf9f40db,0x446c035,0x23f3c1d9,0x66654132,0xf694c15e,0x432fc1e4,0x6666c0d1,0xfe75c15e,0xa099c1e8,0x6666406c,0x703dc15e,0x1028c1e8,0x8e88000c,0xfc1e81c,0xcc07fd2,0xf6bcf100,0x36c07c28,0x59c1ea4b,0xf63e8b87,0xf6c07c28,0xc5c1e650,0xf640ac2c,0xd9c07c28,0x64c1e362,0xc3c0b403,0x61c04bbc,0x55c1d506,0x93412a06,0x47c03e18,0xf2c1df28,0x91c0e79a,0xcec03fed,0xc1c1e7de,0x85be828f,0xbcc0495d,0xc6c1e6fb,0xd1408bfa,0xe3c05ecf,0xc9c1e0c6,0xc740c366,0x61c040da,0x51c1e282,0xc340c4e8,0xafc04bbc,0x25c1e3d6,0x8540c610,0x99c059eb,0xd0c1e31f,0xa040e172,0xe1c06a6f,0x7bc1e195,0xe740f5dd,0xd7c06251,0x3fc1ce2b,0x85c09e36,0xaac059eb,0x78c1d080,0x52bff6d4,0xc8c0792b,0xfbc1d18a,0x85bfcc59,0x76c059eb,0x30c1d0f1,0xa43f6e48,0x44c06a6f,0x92c1d328,0x108c70ce,0xcdf90f71,0x88964fc1,0xff7100c0,0x7ac1cb59,0xcbd45,0xc7e38e71,0xf12c2cc1,0x9f4000c,0xc1d1747c,0xc0aa10b2,0xc03e1898,0xc1cd0b83,0xc09d58fd,0xc10547ae,0x2cf10030,0xc10547ae,0xc1c35140,0x412052b1,0xc11097fe,0xc1d230bb,0xc0af5c4b,0xc114bc1d,0xc1c7d282,0x4117a312,0xc1140fe4,0xc1c48f3d,0x41105bc3,0xc10b6727,0xc1c3c63a,0xc1490ae,0xcf10f100,0xabc1d1da,0xae3db9b0,0xe8c10d47,0x1bc1d006,0xae405d2b,0x18c10d47,0x7ac1cf3c,0x10ec5c53,0x589228f1,0xba9bc1cd,0xab9c0a6,0x8cf6c10c,0x9e5fc1c8,0x47ae4124,0x4b4ac115,0x5b68c1e1,0x22ecc0b2,0xf1b8c113,0x13dec1e2,0x6727c0d4,0x7a4fc10b,0x1f3fc1e7,0x7100a87f,0xc1e73ee1,0x2047f2aa,0x9d04f155,0x20c1e8ac,0xcfc01246,0x2fc1096b,0xdac1e8f2,0x241271,0xced245f4,0x26e1c1e8,0x9e4cbfc1,0x9e24c10b,0x1117c1e9,0x47aebf15,0xa770c105,0x25d5c1e9,0x47ae3e8b,0x4f9fc105,0xc0a9c1e7,0x97fe3e89,0x6b6bc110,0x6aadc1e8,0x47ae3f8f,0xa242c10d,0xeacdc1e4,0x47ae40aa,0x37cec10d,0x76a7c1e5,0xcc53c0b5,0x84c07c,0xcc5355f4,0x4facc07c,0xde87c1e8,0xcc53c048,0x5587c07c,0x7e69c1e4,0xcc5340c6,0x437bc07c,0x9f3ac1e4,0x3bd6c0c2,0xc402c06c,0x5ca0c1d0,0xcc4f412b,0x6fdac03c,0x268ec1d6,0xab7a411f,0x9c2ec041,0xf9ecc1e6,0x8b15c010,0x585fc04f,0xe497c1e9,0x3bd6bf14,0xa77cc06c,0xc415c1e5,0x5f5f3e88,0x9cc045,0x8b1519f4,0x90c8c04f,0x6bdfc1e3,0xfa983f8c,0xc54c03e,0xeeaac1e4,0xd341407d,0xca2bc045,0xb496c1e6,0x8b153ffa,0xb4c04f,0x5ccc53b1,0xc9247ac0,0x251abec1,0xfff40078,0xcaf054ea,0x101fc0c1,0x3efa9841,0xcd22f9c0,0xb4588ec1,0x644e72c0,0xcff976c0,0x9f987cc1,0x4f8b15c0,0xd3ae08c0,0x42873cc1,0x4f8b15bf,0xd55603c0,0x440cd8c1,0x455f5fbf,0xd19041c0,0x6efd44c1,0x6c3bd63f,0xd25cb9c0,0x6fe671c1,0x5ccc533f,0xce7260c0,0xa45994c1,0x5ccc5340,0xd1bff5c0,0xc33a04c1,0x3efa9840,0xc673e1c0,0x5ca32c1,0x7ccc4f41,0xd1566fc0,0x406035c1,0x604fcbf,0xd0bb3fc1,0x6e0a52c1,0x604fc3f,0xc3ac89c1,0x121800c1,0x7ccc4f41,0xcf0b29c0,0x5c1f75c1,0x7ccc5340,0xc9dc8fc0,0xced22c1,0x3ebbf141,0xd2acbcc0,0xafc3c2c1,0x3aa6cac0,0xd0403ec0,0x1b7586c1,0x6b12fdc0,0xd2fac5c0,0xcdc0dbc1,0x4c6020bf,0xd4bfc6c0,0xcf7aa2c1,0x417e24bf,0xd628e5c0,0x8f041c1,0x3cbe23bf,0xd105dec0,0x6e5f74c1,0x6b12fd3f,0xcf4e29c0,0xa5088dc1,0x4c602040,0xcbb69dc0,0xbd9bacc1,0x6b12fd40,0xc5f3d7c0,0xa327fc1,0x5fdb7341,0xe48729c0,0xbe31d5c1,0x5fdb77c0,0xd7676dc0,0x1b1b9fc1,0x3d87e441,0xda543ec0,0x2007c0c1,0x51d48941,0xd2d0b4c0,0x2d0b50c1,0x3aa6ca41,0xe20b79c0,0xc8d5bfc1,0x4abdcbc0,0xe302bfc0,0xb9db1dc1,0x4c6020c0,0xdaa5b4c0,0x197141c1,0x4c601c41,0xe8f5c9c0,0xc7970c1,0x5d1a7ac0,0xe41513c0,0x61c461c1,0x3d420f40,0xe9a650c0,0xb8004bc1,0x6b12fdbf,0xe5ef29c0,0x88eeafc1,0x417e243e,0xe1951fc0,0xfc2490c1,0x7ccc5340,0xdd8326c0,0x183a1bc1,0x547ae41,0xd8af46c1,0x31dcabc1,0x547ad41,0xe9811ac1,0x12cbb4c1,0x547aec0,0xe93d08c1,0x17ace6c1,0xa580840,0xdbc343c1,0x1e3f1cc1,0xbd4e041,0xd86a32c1,0x31a3f8c1,0x9b60341,0xf100ccc1,0x1518c9d4,0xe7be5bc1,0x7f6a3cc1,0x9b603c0,0xde662ec1,0xc6b4cac1,0x15d110c0,0xda1e75c1,0x244e7fc1,0xdd70a41,0xd9cbe9c1,0x206fffc1,0x10916841,0xd72fd7c1,0x221910c1,0x141b3a41,0xe96f6dc1,0xae8ae7c1,0xbc70bbf,0xe9ec21c1,0x8b4ebac1,0x9b6033e,0xe78b7dc1,0x8ee07ec1,0x1162bb3f,0xe811e8c1,0x6bb05bc1,0x9b60340,0xe3c2bac1,0xc5fecec1,0xdd70a40,0xe26e6dc1,0xc4d6f9c1,0x1162bb40,0xe07a5dc1,0xfae886c1,0xdd70a40,0xc5d857c1,0x225f78c1,0x15763541,0xcf9d2bc1,0x1afbcac1,0x9b603c0,0xcf52d3c1,0x1ac44cc1,0x547aec0,0xd41b96c1,0x457831c1,0x15371240,0xcd57fbc1,0xa378c6c1,0xdd70a40,0xc941eec1,0xc812ec1,0x14cbc641,0xcb20a3c1,0xb726c2c1,0x8af6156c,0xc1cb9e60,0x41180681,0xc033332f,0xc1c360c4,0x4120407d,0xc04ab24a,0xc1d2746c,0xc0af94c6,0xc035afa3,0xc1cfa208,0xc01aff6d,0xc06946cc,0xc1d072f1,0xbf3f8f26,0xc06946cc,0xc1d15c16,0xbf406562,0xc057ae14,0xc1d171dc,0x3db953df,0xc057ae14,0xc1d4a630,0x3f72821f,0xc03cf98b,0xc1d934cf,0x3f77b481,0xc0333333,0xc1d0668d,0x40273437,0xc057ae14,0xc1d00e3e,0x4089f7e2,0xc04891c9,0xc18ac5d2,0xc14735f9,0xc1707ae2,0x414089da,0xc15d73f0,0xf37d4007,0x8106c109,0x1c112,0xc168,0xe76dc170,0x1716c110,0xc8ae4137,0xf100244e,0x1419402,0x6b412000,0xcdc110e7,0xc181cc,0x301800,0x825cd971,0x13cccdc1,0x171000c,0xc15800,0x247000,0x8d049371,0x111b33c1,0x11f20018,0xc17727b6,0x4126acdf,0xc11114ef,0x41a13333,0xc1040000,0xc10f4dd3,0x41970000,0x41059b92,0x8401000c,0xc0100,0x1002403,0xf1000c,0x41a927b2,0x41040000,0xc11440d1,0x3caa7fea,0xfa867100,0x65fc116,0x71000ca8,0xc11183a3,0xcb2b5ea,0x7f08f100,0x1cc122e6,0x8c414872,0xd4c15b55,0xdbc10f4d,0x43414089,0xc45bf,0x382d5a71,0x4c28e341,0x5371000c,0x8cc16d74,0x6024b2,0x655e7171,0x2cc412c1,0x18f1000c,0xc17921c2,0x4137a173,0xc10f4dd2,0x41b6bfe4,0x41040001,0xc14ebcdd,0x41b675d3,0xc103ffff,0xc1672e66,0xcaac474,0x789f7100,0xd521c193,0x71000ca6,0xc19ae355,0xcb4de60,0xda8f7100,0x565c166,0x71003cb4,0xc172b735,0x18a2d40e,0xc618f100,0xbdc19cc0,0x1d419810,0xb4c1059e,0x61c1a0e5,0x41419971,0x46c104a5,0x33c1a267,0xff416733,0xcdc10fff,0xca0cc,0x10000148,0xf5000c41,0xa266662c,0x48f5a5c1,0xc0000040,0x88d8453f,0x5ad2d0c0,0xbd53ef40,0x89001f3f,0x5a530dc0,0xb0924f40,0x6beea2bf,0x639ee4c0,0xc63ada40,0x6bedfabf,0x400000c0,0xc345a6c0,0xd3c4000c,0xfa4061a2,0xd3c06bed,0xa0c061a2,0x66667150,0x999a406e,0xf1002479,0x6e666604,0x3e6666c0,0x5f212d40,0x65b13ec0,0x5f663cc0,0x2404000c,0x212db100,0xff61c05f,0x90d6c07d,0xf1001845,0x7dff6104,0x8b21a3c0,0x5f212dbf,0x4590d1c0,0xfbfec1c0,0x1f4000c,0x407b4bcb,0x405bc0b1,0xc05ef972,0x404590d1,0x97b10018,0xec04c1d,0x71bff2d7,0x9c5274,0x666608f5,0x5461bfc6,0x5b68c012,0x2257405e,0x54614048,0x3333c012,0x3505863,0xc1000c,0xc0125461,0xc05f6d8f,0x24400000,0x7100,0xdb164040,0x2003cbe,0x80110018,0x3331000c,0xd86333,0x125461b1,0x620026c0,0x923886c0,0x68710018,0xaf405e5b,0xc9044,0x5e7bee71,0xa33333c0,0x5771000c,0xd0404822,0xcbcb6,0x56391171,0xac7222c0,0x9a71000c,0xee405199,0x6c5e7b,0x8c5efff4,0xf0c05cf2,0xd9405a4f,0xbdc04543,0x7ec06fa6,0x80bfaa55,0x1c04b48,0x2d4055a3,0x5b4045cc,0xcfbfbe42,0x26402d2e,0x5b3f528c,0xa1bfbe42,0x2e405186,0xa5bfa056,0x8dbfbe2f,0xff3f2c63,0xdf4057b2,0x8bbfccfe,0xeabe6252,0x3c3f9604,0x9ec00b6a,0xc00c27,0xe33f8000,0x39bfdbfe,0xd53f690d,0x5a3f89b2,0xeec00680,0xb53f8694,0x393fae33,0x65c003ed,0x73f7be1,0x533fba29,0xb0c004cb,0x16bee9ab,0x89401515,0x7dbffe79,0xd5bf4425,0x8d3fab04,0xf9c0075e,0x30bf969d,0x893fe267,0x59bffe79,0xcabfbfa2,0x25402815,0x2ebfdaeb,0xccbfb6fe,0xe73f8f29,0xedbffd70,0xf0c0099d,0x5b4029bf,0x49bfbe42,0xb83dfa14,0xcf3f543a,0x9bc00ba3,0x8b3e5300,0x3c3f4f70,0x13c00b6a,0x443fff48,0x173f604d,0x39bfe59e,0x56bf690d,0x5a3f6c9a,0x37c00680,0xcdbfad38,0x5bbfaccc,0xeebfbe42,0x96bf8694,0x393f2398,0x98c003ed,0x6d3c88a6,0xea3f781d,0x7dc00beb,0x55bf4425,0x8d3f29f6,0xc7c0075e,0x8dbe9c9b,0x1e3f0825,0xe3c009e2,0x15bed51c,0xc3bf24c8,0x3abff344,0x5cc01641,0x5bbeb6e4,0xd5bfbe42,0x4fbf99ae,0xcbf0ae7,0xb0bfe7b2,0xb13ee9ab,0x89bea8a8,0xeebffe79,0x603f8694,0x1e10f100,0x8c3fb816,0xcbea5da,0xb8bfe7b2,0xfa403de9,0xf0bf8343,0x40c06816,0x644041dc,0xc35b1,0x2a2f9071,0x8923d540,0x4f1000c,0x403851ec,0x40156638,0xc06816f0,0x40229742,0xc08049f,0x46457100,0xd0ee4036,0xf5000c45,0x31d3aa04,0x80000040,0x6816f03f,0x3165c7c0,0x4e9b8d40,0x3131000c,0xc98b2,0xaccccd62,0x54999abf,0xf0787100,0x2939bfbf,0x71006088,0xbfed843c,0x483ca5b5,0x52df7100,0x73efbfe6,0xf1000c3d,0x2df9e404,0xd98d4740,0x6816f03e,0xd4a68fc0,0x3fe0873f,0x10f10018,0xc0407171,0xbf8fdf8f,0xc0896fbd,0xc030248d,0xbfa68db9,0xc088d845,0xbfc00000,0xc97aff3,0x1101f400,0x48bfc2ac,0x2ebfbb6a,0x3c088ff,0x58bf927d,0xf5a54450,0x3e4c048,0x11000c02,0xf503f000,0x4542685c,0x2fcc25c0,0x826b4040,0x47adf7c0,0x37156ec0,0x8a71de40,0x606c7fc0,0x6e73ac0,0x8a66cb40,0xcc32f4c0,0x46ffce3f,0x88c3a840,0x1233cec0,0x3e01a840,0x86a8d440,0x2e4ce0c0,0x49b15740,0x88d84540,0xe576a3c0,0x44dc3c3f,0x88d84540,0x111023c0,0x3b2ad8c0,0x81351a40,0x200000c0,0x4bd7fe40,0x892a3040,0xadf400a8,0xc0892a30,0x3f9ab1c4,0xbf58e8c9,0xc049a8ce,0x4018209b,0x3fc80b5f,0xc04451ce,0x3ff9d71b,0x401f0774,0xc044460b,0xbf4ae5bd,0x400da3b1,0xc059303c,0xbe1779a7,0x3f94917d,0xc0653e3a,0xbf78d456,0x3fd148c3,0xc05d8b7e,0xbdbd6063,0x3f8cdb7b,0xc0656ae8,0xbe5ab96f,0x3febf727,0xc0610464,0x3ec104f7,0x400647e9,0xc05d8b7e,0xbfed43a6,0x3fc7e311,0xc04fd7ba,0xbfcf5875,0x4000e1ce,0xc050b296,0xbfb1d788,0x40346e93,0xc047a9fc,0xbfcba038,0x4005d7e4,0xc0500210,0xbfbf7edc,0x3f800000,0xc05864c7,0xc014e1b5,0x3e8275ab,0xc04451ce,0xbf9ab1c4,0x317100b4,0x673e44b2,0x906563,0xb96f04f1,0x46c7be5a,0x4643e20,0xdcc2c061,0x3d57bf16,0x71000cb8,0xbf78d456,0x34badd16,0x61cf150,0x303fdf47,0x103e3446,0x5fc05002,0xff3f93d1,0xbcbe8205,0xe5c05496,0xf1c01242,0xa03e8a2f,0xddc044e1,0xdac0effd,0x21905755,0xeffddd75,0x24d31740,0xfff5000c,0x55da0aff,0x6666c057,0xd103bf26,0x3647c188,0xce40c1c4,0x79a8c18a,0x55e4c180,0xacc1c1be,0x9678c191,0xd395c168,0x7413c1c3,0xd329c0b1,0xe660c185,0xa062c1bb,0xd082c0db,0x9c37c176,0xe4fec1c0,0x6508c0ad,0xe0ecc0fc,0xb9f6c1db,0x595dc193,0x2a84c101,0xdfe8c1db,0x5b31c192,0x2a1ac101,0xd70bc1db,0x21c193,0x7232c15d,0xce48c1c6,0x5fedc192,0xc54ec140,0x6db8c1da,0x1518c193,0xe053c168,0x6d2cc1d0,0x7ec6c193,0xc61ec169,0x70a8c1d0,0x7545c193,0xb879c149,0x6dbfc1d8,0x74c9c193,0x304fc148,0x70a9c1d9,0xaf30c193,0x9859c152,0x2f89c1dc,0x5ed5c198,0xbe3fc118,0x70b9c1e2,0x4179c193,0xd3b4c117,0x1a8fc1e2,0x325ec0af,0xed95c168,0x1d84c1d0,0xfcd6c0af,0xfabec103,0x4d51c1ea,0x718fc0a3,0x185c184,0x583c1cd,0xa52ec0a3,0x5663c188,0xdcc6c1c4,0xcf5fc0ce,0x488fc18c,0x6b9bc1c7,0xf3bbc192,0x31fc18f,0x8f5ec1c5,0x445dc0e2,0x90d9c180,0x3334c1cf,0xc163c199,0xf80dc0f8,0x4f84c1eb,0x113c197,0x7c63c0e0,0x3129c1ed,0xffdec18d,0x320c0d6,0x9f1bc1ee,0x9cb9c0c8,0x4798c0e4,0x7c03c1e8,0x3880c18b,0x5748c0c9,0x7504c1e7,0x8d54c0cc,0x8be6c0be,0xa0bbc1e8,0xd4e5c180,0xa0c0c0bd,0xf01ec1e8,0xb8b6c180,0x2da1c17b,0x7805c1c5,0xaa6dc098,0xbed8c187,0xdc93c1c0,0x47b2c19b,0x27eec161,0x4c1cb,0x6120c070,0x229cc182,0xf12cc1c3,0x82f3c197,0x73adc17a,0xe84cc1c5,0xd63bc1a0,0x6827c18c,0xa5a4c1be,0xb8b6c188,0x2da1c17b,0x1533c1c5,0xf66c199,0x7ba6c119,0xddf0c1db,0x564ec06a,0x46bec18f,0xb82c1bd,0x59ecc181,0x451cc18f,0x4441c1bd,0xf486c181,0xdbc161,0xd777c1cb,0x2168c1a1,0x5eaac18f,0xa0bbc1bd,0x45b3c180,0x4e41c18f,0xd4a6c1bd,0xf4008480,0xa1333425,0xc78d37c1,0xe78798c0,0xa9f740c1,0x1a50afc0,0xdb33c9c1,0xa2536ec1,0xf1bc3cc1,0xe2c314c0,0x9fb806c1,0x1d0c4c1,0xe0bcefc1,0x991533c1,0xf40078c1,0xf7613b85,0x8f0673c0,0xbd6adac1,0xce9722c1,0xc841d7c0,0xe7730cc0,0x8a3ab8c1,0xbdab43c1,0xe8a575c0,0x812226c1,0xadaecdc1,0xe062d5c0,0x80526fc1,0x779befc1,0xbc0a78c1,0x726666c1,0x738900c0,0xbcf632c1,0xad9e1bc1,0x5e1969c0,0xc1ceccc1,0x6c2774c1,0x8420e2c0,0xb846efc1,0x8983acc1,0x5a658ac1,0xc2a516c1,0x632ccbc1,0x5baa26c0,0xc25bb5c1,0xa358f3c1,0x593739c1,0xc2e96ec1,0xa1ae46c1,0x12acc1c1,0xd2dd28c1,0x5fac54c1,0xf2006cc0,0xf47cf043,0x11806ac0,0xd31fe1c1,0xa2cd9bc1,0xe4c02fc1,0xda2976c0,0x77518bc1,0xb32fc9c0,0xdfc3d7c0,0x935ad7c1,0x831fcdc1,0xb8bb3cc1,0xc79c84c1,0xb8fed4c0,0xe5dbc5c0,0xf53b88c1,0x4687f5c0,0x66382dc1,0xa0f1aa41,0x480f2cc0,0xc4898c1,0x2596f200,0xb2c1475f,0xb941681a,0x78c0a0ed,0xa7c14768,0x69416722,0x2ac0a0f2,0x51c147f6,0xfe4167e7,0x56c0a0ee,0xd3c14810,0x2a41672f,0xedc0a0ef,0xc8c147c8,0xb0412935,0x99c0a0f5,0xf3c14744,0xb44129b6,0xb0c0a0f5,0x4fc146e0,0xf14129e5,0x53c0a0f2,0x83c158ea,0x39412ff2,0xa1c0a0f1,0xeac158f0,0x8141308d,0xe3c0a0f6,0xc9c0451a,0xbc419fe7,0xbf2ccc,0xc11000,0xdec16800,0xbf2ccc,0xc0f000,0xdec18000,0xb8bf2ccc,0x6e3eca91,0xcd4133c5,0x26bf2ccc,0x62c10bc5,0xcdbf6385,0x40140024,0x10f10024,0x40b35fec,0xc156962f,0xbf3999aa,0x41040000,0xc17cc8dc,0xbf2cccde,0x4108f877,0xc78f877,0x604f100,0x2bf8d66,0xbc41a89a,0x85bf2ccc,0x963f0a06,0xc968c,0xd4e36771,0x6bdf6a40,0x4f1000c,0xc027db98,0x40de50fa,0xbf2ccccd,0x400d1188,0x18904540,0x282c0400,0xcccd00f3,0x5669bf2c,0xdc334072,0x92c0406f,0xd127303f,0x66564152,0xc161bf46,0x867a406a,0x71000c63,0xbf479863,0xc95582c,0x54047100,0x881dbf94,0x71000c94,0xc0325ad1,0xc8c12ec,0x2a027100,0xa2314042,0x71000c89,0xc108f877,0x1078f877,0x27c00429,0x46667735,0x580227c0,0x41105129,0x24680000,0x9b10f100,0x89c0e347,0x663ecace,0xb0bf4666,0x30c0d8b9,0x663f9d68,0x4cbf4666,0xf04054fa,0x26e8f1c1,0x14cf04f1,0x78bac04f,0x7d2440fe,0x6e0bbf32,0x30440de,0x44002428,0x4106d6f7,0x10f10054,0xc0af746f,0x40f8a8ac,0xc0500000,0x40a90c72,0x410e6666,0xc0500000,0x3fc4683c,0xc428ba6,0xc06e7100,0x38754053,0x71000c29,0x405758c9,0xc3772bb,0x7100,0xcccdc040,0x71003ccc,0xc092f6c2,0x182e5920,0x9eb27100,0xc12a4038,0x7119bc5b,0x40284841,0x24bd585e,0x7100,0xf18f4030,0x71000cbe,0x403ee8de,0xcc8a8ac,0x4f100,0xcd404000,0x40dccc,0x84c04000,0xcdc04449,0x18e4cc,0x69da6a62,0x6cdf70c0,0x52697100,0xdd71c014,0x7100604d,0x403ead3f,0x60802eb4,0xc5d27100,0x6f0ec028,0x71001854,0x40a642fa,0x1889b0f5,0xaf367100,0x22cec0ae,0x71000c86,0x408be966,0xc905687,0xbd307100,0x7dc3c04f,0x71000c6e,0x40976ea8,0xc8e95db,0xeb357100,0x54b0bf82,0x71004840,0x3e852f1b,0xc3dc5ab,0x241e7100,0x585e40a4,0x710090ed,0x40ab504e,0xcf17c7e,0x7100,0xf18f40a8,0x44000cee,0x40af746f,0x3c710144,0xcd40addb,0x18f4cc,0x4ab828b7,0x71583440,0x2ffffc41,0x2f170114,0x309100cc,0x8c2a4c0,0x919c7bbf,0x49710024,0x6f40314d,0xc83fe,0xf200e406,0x82c02f0f,0xd04052e6,0x41292c,0xc03000,0xcdc0a000,0x40eccc,0x41c03000,0x5cc02848,0xc0309101,0xc036a09d,0x18c17c7e,0x7100,0xcccdc020,0x71000cbc,0xc0411722,0xce0f0eb,0x32987300,0x805c409b,0x51004833,0xcccd4088,0x44000c38,0x4036a09d,0xb006003c,0xc0309101,0x403bb67c,0x3cc4cccd,0x1b00600,0x1b03013,0x18cc11,0x41172244,0x6006040,0x309101bc,0x57bef0c0,0x2e3ba1c0,0xac710060,0xe640af01,0xd88599,0x1701a406,0x5301982f,0x12cbc02f,0x1701ec8b,0x17019830,0x1701802f,0xf1016830,0x24c03006,0xe8bf0a9c,0xe741adce,0x8ec04851,0xd4403323,0xca186,0x61866671,0xb59a07bf,0x4f1000c,0x402b3915,0x41a49d59,0xc06851e7,0x3f778d93,0xcb4f63a,0xe4fff200,0x41283acc,0x4137086d,0xc0ad4d3c,0x4125cc8e,0x412fbad7,0xc06851ec,0x41abf5bf,0xc1528f8a,0xbfcd7072,0x4191e1f6,0xc18b7c90,0xbfcd707a,0xc13b8ae3,0xc1b2f5a6,0xbfcd7397,0x3f1f5276,0x41c566ed,0xbfcd709b,0xbe946d61,0x41b93125,0xbfcd709b,0xc13966d0,0xc1a74666,0xbfcd76a3,0x40f932f6,0xc1accec8,0xbfcd71a8,0x41121c54,0xc1b4121d,0xbfcd7ad5,0xc1807443,0xc19bcb98,0xbfcd71a8,0xc0ffdd59,0xc1be077f,0xbfcf033a,0xc08ed79f,0xc14c4284,0xbfcd70ac,0xc09c8b1e,0xc193a0fd,0xbfcd70ac,0x40981d65,0x41a716a0,0xbfcd709b,0x406e691f,0x419d9562,0xbfcd709b,0x40a7d929,0x419d1528,0xbfcd70a4,0x40eb4051,0xc1a23945,0xbfcd73e2,0x4107a402,0xc1bec923,0xbfcd6df4,0x417e755f,0xc11cb59b,0xbfcd7072,0xc1b50adf,0xc130dab1,0xbfcd6f6d,0x40b7d497,0x41a0b63a,0xbfcd709b,0xc1008235,0xc1af5c55,0xbfcd73e2,0xc1a130a2,0x40e3de87,0xbfcd70a4,0xc0f0ad36,0x41a05f1d,0xbfcd709b,0x41103448,0x4079b235,0xbfcd7100,0xc0ed353d,0x41a23942,0xbfcd71c9,0x41beeb0a,0x3ff17764,0xbfcd7058,0x40680397,0x4066224b,0xbfcd70a4,0x419fa581,0x40e2588a,0xbfcd7093,0xc0b933f4,0xc0cda9eb,0xbfcd70a4,0xc0b6cc23,0xc13899d5,0xbfcd70a4,0xc1bdcd8e,0xc05598e1,0xbfcd7026,0xc1a0baed,0x4082da47,0xbfcd70a4,0x3f23cf1c,0x41c8185b,0xbfcd7404,0xc0dcd0ee,0x41bc0cd3,0xbfcd709b,0xc0f6d270,0xc198ab82,0xbfcd78ab,0x4103bd69,0xc1948167,0xbfcd7742,0xc0aa8ca8,0xc0c5c543,0xbfcd70a4,0xc0a99d8a,0xc13ecccd,0xbfcd70a4,0xc0994f37,0x41a3c51e,0xbfcd709b,0xc098471f,0xc4380,0xf8fe3df4,0x4843415c,0x72474126,0xbc43bfcd,0xcccdc0a6,0x70a4c0c0,0x4fbebfcd,0x334dc090,0x709b41a2,0x828bfcd,0x54c8c1b0,0x70a44117,0xaa1cbfcd,0xb12d419f,0x709bc054,0x7e4cbfcd,0x6e7ec08d,0x6f9741b0,0x94e6bfcd,0x18c4122,0xfc8bdf71,0xaa7ae540,0x4f1003c,0x4113bb53,0x408482f9,0xbfcd70a4,0x41b8e2f9,0x60cf1c78,0x27f36200,0xaccdc1a1,0xeb710048,0x56c1adc4,0x304634,0xa22f1062,0x6ccc43c1,0xd20df400,0xfb413b4b,0x514135e5,0xb7bfcd87,0xec41399c,0x8b419522,0x9fbfcd70,0x1c408ed7,0x146a7102,0x22f840d6,0xf1003cbb,0x70fa1428,0xdfc4a2c1,0xcd709b40,0x7b1069bf,0x861facc1,0xcd710940,0x9fac47bf,0x74354841,0xcd7093bf,0xbeecb9bf,0xf1a3fdc1,0xcd70693f,0xc15116bf,0xd2627841,0xde71009c,0x7741b6bc,0xce877,0xbef04f1,0x1f7541b6,0x77a740e2,0x7775bfcd,0x9ddd40ee,0x620060b7,0x40e33333,0x2dcc727,0xb6a52871,0xeccdc641,0xf1710030,0x9541b6c0,0xceaa7,0x6cfb4d71,0xdcc517c1,0x1871000c,0x4dc1a0bf,0x3c14ec,0xfe666671,0xae000040,0xa671000c,0xc441ba19,0x15013a3,0x23bd4d62,0xc483ec41,0xdba26202,0x7aa1c1a1,0x747100fc,0x6841a18c,0x241821,0x3e74a871,0xaf5bb041,0x10f1003c,0x417af942,0x419b8146,0xbfcd6e05,0xc066806f,0xbfc7c233,0xbfcd70e7,0xc03cfeac,0x78700000,0xcc04f100,0x5fc1116a,0xa4c11c89,0xd4bfcd70,0x34c0660e,0x11462db,0xf62510f1,0xfcb0c0af,0x70acc14e,0x303abfcd,0x645ac1a1,0x70933fef,0x4137bfcd,0xe7ba4110,0xf1003018,0x7190df10,0x74920ec1,0xcd709341,0x9fa2e8bf,0x87abfc41,0xcd709340,0xb80000bf,0x91956240,0x4f10084,0x40709f66,0xbfcd2171,0xbfcd70d6,0xbf1fb720,0x18c753c8,0xef4e7100,0x9cc040c1,0x62000c92,0x40bba2ea,0x30b406,0xbf066262,0x180dda40,0x2ae57100,0x56fb40c4,0xf1002493,0xb26e0d28,0x96713640,0x799907c1,0xc13da2c0,0xe1755141,0x7b333340,0xb9669dc0,0xc9b5c03e,0xdd1e0e41,0xc14d75c0,0xc3c66740,0xdd1eb641,0x451de7c0,0xb011f441,0x4f1000c,0x41b97007,0x411be5a2,0xc07b332f,0x41ba42ca,0x181e6666,0x7f2e3500,0xf20018bf,0x343f9cff,0x8cb641a7,0x1d7e4133,0xcf60c0dd,0x9cca4172,0xb8524189,0xf1c7c046,0x9c9bc1b4,0x1ebfc0e0,0x2e82c0dd,0xb62bc18a,0x211fc192,0x83edc0dd,0x9ca4c177,0x1eb6c187,0x721ac0dd,0xa636c1a7,0x1ebac115,0x2bfec0dd,0xa0bbc1a5,0x1eb8c165,0x7f2dc0dd,0xe705418a,0xa2d4184,0xbb86c0dd,0xa640c08c,0x1eb641a8,0xa181c0dd,0xe384c186,0x1eb64188,0xf791c0dd,0xc2a0c18b,0x1f864192,0x8e1c0dd,0xb0f1c1a6,0x1eb64166,0xa613c0dd,0x69fcc160,0x1b00419b,0x3f60c0dd,0xa32abefc,0x1eb641ab,0x956cc0dd,0x284941a8,0x1cde4137,0x3d40c0dd,0xf6a4c14a,0x1a1741a2,0xba2ec0dd,0xacea40aa,0x1f7d41ba,0x5005c0dd,0x532c40d5,0x1fb241bc,0xa1abc0dd,0x3ad9c15a,0x1eb04198,0x9cd4c0dd,0x9128c1ba,0xe27c411e,0x3fdc0dc,0x4c72c11a,0x2e4941af,0xb728c0dd,0x9917c0fd,0x205c41b4,0xa7f3c0dd,0x34b94151,0x1e9f41a1,0x51f4c0dd,0x44f84180,0x1b56418e,0x2219c0dd,0x4fc04187,0x1eb8c188,0x55b4c0dd,0x390b3ec9,0x51e741a3,0xc068,0xb22d3f20,0x51e741a7,0x8c58c068,0xfd773f1a,0x51e741a8,0x9d88c068,0xb485bd89,0x641f41ac,0xc068,0x6b0bea0,0x51e741ac,0x445bc068,0x17b23e74,0x51e741b6,0x92b4c068,0x2819c0e5,0x51e74194,0xf263c068,0xcccec0ed,0x51e7419f,0xa4e8c068,0x1e58c0be,0x51e7418a,0xfb18c068,0x45dbc0ca,0x51e7418d,0xf582c068,0x9366c0ee,0x10f10024,0x4124ca71,0x40e2e7da,0xc06851e7,0x413bed0b,0x4114d8a0,0xc06851ec,0x413d3892,0xc06a78c,0xbca76200,0x12f8414c,0x10f1000c,0x415bd580,0x4125776c,0xc068534c,0xc0dfa80b,0x418dc51e,0xc108f5c2,0xc0bfea90,0xc8f82da,0xc2b97100,0x8865c0c4,0xf1000c96,0x95999a10,0x21535341,0x8f5c3c1,0x695353c1,0x733333c1,0x8f5c4c1,0xfed537c1,0xa0e148c0,0x1cf10024,0xc1b51803,0xc0d9c4b5,0xc108f5c3,0xc0e06da4,0xc192f0dc,0xc108f5cf,0xc06554da,0x41a0badb,0xc108f5b1,0xc11bcccd,0x30845cd9,0xd36f7100,0xf170c11d,0x92000c83,0x4068816b,0x41a0bf17,0x140054ce,0xf1005440,0x3af110,0xa7a7dc41,0x8f5c041,0xeec6ac1,0xa0b47f41,0x8f59341,0x1e87eec1,0x83b13241,0xe4710084,0x33415407,0x487333,0x27d04f71,0x85be8f41,0x53440018,0xa8415953,0xa410f100,0x5bc14768,0x2b419f4a,0x71c108f5,0x864128a0,0x87c1866b,0x61c0e1eb,0x914120db,0xc8cdb,0x8e204f1,0xa31bc11e,0xeb834183,0x101bc0e1,0xd1e8c117,0xf4000c87,0x6f6a22ff,0x10b2416a,0x28cc4025,0xc394c0e4,0xc4dac194,0x28df410a,0x3d2c0e4,0x2d08c182,0x2924412d,0xb16cc0e4,0xd3e4c14b,0x28ae416e,0x4295c0e4,0xc2fc4144,0x28f64118,0x3e7ac0e4,0x4c16416c,0x29114137,0x3967c0e4,0xe36d4166,0x42ab4088,0x3b17c0e5,0x5d254136,0xbbed4088,0x90c1c046,0x9e024139,0x407d4084,0xdf87c0e5,0xae20c182,0xb86b410d,0xaadc046,0x24a54193,0xb84e411f,0xd005c046,0xf8184191,0xb8954105,0x7131c046,0x8ff8416f,0xb899413a,0x6e49c046,0xa038c167,0xb856c16e,0x1208c046,0xce2bc14a,0xbd51c155,0x7732c046,0x6940ad,0xb7edc007,0x2c40c046,0x9322c133,0xb949c15a,0xc0cac046,0x6e8c191,0xb873c0eb,0xc1dbc046,0x778c40c5,0xb7d840be,0xed3dc046,0xa6a04191,0xb8303e56,0x490fc046,0xa043c11f,0xb91fc0e3,0xf828c046,0x85ba4191,0xb8a24031,0x501cc046,0xf84b4193,0xb85240bf,0x70b9c046,0xa787c08d,0xb7d0c056,0x3dc9c046,0xa0f1c0ac,0xb880c013,0x501cc046,0x24c193,0xe8d7acf4,0x8199c0c5,0xb84e40be,0xd5a4c046,0x5a1c0af,0xb91340ac,0xe0e0c046,0xabc5c193,0x32fbc074,0x75c0c0b3,0x423dc0c5,0x1635c129,0x7f70c0b3,0x758ec18d,0x334ec0d9,0xa800c0b3,0x1df5c0a2,0x3333c0b7,0x92ecc0b3,0xeccec0f7,0x34fac0bd,0x824bc0b3,0x6d44c096,0x1ff7c089,0x1a07c0b3,0x73c5c0e9,0xeba2c095,0x29ddc0b2,0x3eafc121,0x3325c0e9,0x2da5c0b3,0x336ac0c9,0x3333c09f,0x67c9c0b3,0xba3bc0df,0x353fc0e5,0x5159c0b3,0x6cc9c064,0x3333c12d,0x27dbc0b3,0xc889c085,0x9249c14b,0x265bc083,0xee484001,0x3333c141,0x6ad7c0b3,0xf3503fb7,0x14000c25,0xf4000cbf,0x4dcbff95,0xbe7a9ec0,0xb33381c0,0xc7b225c0,0xf09b0f3f,0xb33333c0,0xd7c9f7c0,0x231167bf,0xb33333c1,0x28ce0bc0,0x568e06c1,0xd0194ac1,0xc27660c0,0xc11c24c0,0x87532a40,0x99a5c4c0,0xa6ef72c0,0x8988c040,0xaf9f56c0,0xadfebfc0,0x66b3f240,0x806ed2c0,0x9a1e3dc0,0x66b85240,0xad7b50c0,0xf19e9dc0,0x66b895bf,0x95a2d5c0,0x46b863c0,0x66b852c0,0x68c7f3c0,0x5bd2bb40,0x66b852c0,0x8b26c8c0,0x5272e740,0x66b852c0,0x9499fec0,0x4826a640,0x66b852c0,0xade95ec0,0xd18fe740,0xf1000cbf,0xa3e25400,0x66b85240,0x69206dc0,0x8b6badc0,0x6871000c,0x5dc04520,0xc8f31,0xed3904f1,0xd7564075,0xb852c016,0xd658c066,0x74f74083,0xf2000c0c,0x59d994c4,0x1b44e9c0,0x66b6d0c0,0x5db745c0,0xee8f00c0,0x511ab1bf,0x839e08c0,0x5e424a40,0x58615640,0x8f69b8c0,0x55919240,0x6537e740,0x7be0a8c0,0x7c6ef0c0,0x62ea6040,0x7adbcfc0,0x8637c5c0,0x66b85240,0x496c18c0,0x6a5adc41,0xf0f5c541,0x58184ec0,0x71bd4a41,0xf0f67541,0x5c963cc0,0xf871a441,0xe53f8abf,0xf36e1ac0,0xe4ca56c0,0xb270cc40,0xcccccdc0,0x3597ea40,0xb428f641,0xd6981cc0,0x3535d1bf,0xb4259a41,0x53ce46c0,0x25ea1cc0,0xb428f641,0x91999ac0,0x6201afc0,0xb428f641,0x94ac8ac0,0x6c2c5c0,0xb428df41,0x9e0af6c0,0x91618040,0xb428f441,0x86e3d4c0,0x93a67cc0,0xb428f441,0xf3851fc0,0x60000c0,0xff10054,0x12c05a7a,0xe841342b,0x83c0b43f,0x5d40d068,0xf64131d8,0x89c0b428,0x64c02f7b,0xc3bd6,0xcccd04f1,0xc100,0x28f441ae,0xa329c094,0x45e4c0ff,0x71000caa,0xc0f9e211,0xca6cccd,0xcccd7100,0x877cc0e4,0x71000ca1,0xc0c80000,0xc9f999a,0x178f7100,0x1736c0b9,0xa2000ca0,0xc08c323c,0x41aa4d5b,0x3c298d,0xb5333331,0x3f620018,0x37c0d048,0x62000cba,0xc0e3b67a,0x600000,0xe6e8de71,0xb01210c0,0x18020024,0xcb21100,0xa09f7100,0xa828c0de,0x71000cb3,0xc0a77814,0xcab773e,0xa200400,0x14003003,0x71004840,0x40f71c9d,0x24a73333,0xeb967100,0x22f840b9,0x4000cbb,0xf4a2093c,0xc1c09428,0xc940bfb7,0x6200cc45,0x40c80000,0x24999a,0xa9172262,0x60edf040,0x7100,0x40c8,0x71003cb6,0x40fc8bdf,0xcb1851b,0x180200,0x22003c06,0xf06666,0xd8000071,0xb4ed9f40,0x21350024,0x309374,0xe3333371,0xa238d940,0x75710018,0x2340ee77,0xca462,0xb15f6144,0x3100d840,0xe4b15f61,0x5c28b300,0xc10f,0xc0c8,0x51000cb6,0xed9fc0d8,0xf1000cb4,0xea0bce04,0xada835c0,0xf5c2941,0xfc5109c1,0xb1812a40,0x82710018,0x8c40e544,0x18a9c6,0xfe297c71,0xa10c3640,0x42710018,0xf740aceb,0xcb9b9,0x91d68435,0x22620018,0x30409918,0x710054c5,0x40a91722,0x24b01210,0xb7c17100,0xba3740bf,0x73000cb5,0x40c80000,0xcbb8a5f,0x74a81100,0x48040a,0x35000c04,0x30d0483f,0xa09f3100,0xb100ccde,0xc10f5c28,0x40ee4c62,0x3cb79318,0xe7de3500,0x35006cf6,0x6ce6e8de,0x4400,0x60c0c8,0x726628f1,0x832d4150,0xb806419f,0x6f62c046,0x45b0c147,0xe5ef41a2,0xacd5c046,0x2e8bc19e,0xb71c4148,0xb88ac046,0xb639c199,0xb84e4160,0xb0d1c046,0xc517c185,0x71000c81,0xc18252f6,0xc8ad0a0,0x39fff500,0x41c19283,0xc0da0145,0xc1005227,0xc1c35d93,0xc0ceec8d,0xc1005c12,0xc1b441db,0xc0e0cc79,0xc1006664,0xc1c11c7f,0xc0e00000,0xc1006666,0x417ba6cb,0xc1860001,0xc046b839,0x41a0b4ff,0xc14bed15,0xc046b735,0x41316545,0xc1955e22,0xc10f5c2a,0x41316545,0xc1a2cccd,0xc10f5c2a,0x40de7282,0xc194cc9e,0xc09ccce0,0x418ad4d5,0xc193c904,0xc09cbb5e,0xc1355caf,0xc19c9562,0xc09ccce0,0xc18ac12b,0xc1941934,0xc09cab1b,0x41a24ba1,0xc172fdd4,0xc09cb90d,0xc1b918d9,0xc1258ba2,0xc09cb75d,0xc088339a,0xc1b8634c,0xc09ccd0a,0x41331c4c,0xc1a9353f,0xc09cceea,0x41c9ff7d,0xc0d1abe7,0xc07b3d8e,0x407f54a4,0xc1aa823d,0xc0799ab7,0xc07e18b9,0xc1aa481f,0xc0799ac8,0xc1ced153,0xc030f3c7,0xc07c8d6d,0xc17c1101,0xc1863226,0xc046b856,0xc17bd8f7,0xc186f8c7,0xc046b856,0xc1a7aca2,0xc11a9654,0xc046b852,0xc1ac44c3,0xc1207c02,0xc046b852,0x41060ae8,0xc1abc759,0xc10f5c2a,0x410b4d5e,0xc1adcbef,0xc10f5c2a,0x41180000,0xc1af7f70,0xc10f5c2a,0x2429f518,0x1f400,0xc11800,0x2ac1aa00,0x76c10f5c,0x8c0fd35,0x6d597101,0x10acc111,0x710018af,0xc110cccd,0xca9090f,0x17367100,0xa9dbc10a,0x71000ca4,0xc10dd152,0xca7e424,0xae84400,0x54c106,0x26666644,0x350048c1,0x3c1f3333,0x746f6200,0xdedd4127,0x9135003c,0xc088b,0xa24c371,0xa6cccd41,0xb1710048,0xf4410caf,0xca874,0x10000062,0x78ba6c41,0x6200,0xcccd4118,0x9a3100a8,0x600999,0xb85607f2,0xc464c066,0xa1c1c115,0xb856c19b,0xba1cc066,0xd868c11b,0x3371000c,0x8bc11f33,0x189c90,0x27841371,0xa172cfc1,0x71000c,0x8fc12800,0xc94f1,0xf22e4571,0xa6f0ecc0,0x3993000c,0xb9c13612,0xd0c1a89d,0xa310024,0x18b0a8,0x20483f71,0xb2413bc1,0x31000c,0x120f000,0x245611,0x2013802,0x815000c,0x350054,0x3c0800,0x8000044,0x31006c41,0xe425db3d,0xb8564400,0x108c066,0x66b85644,0xa200fcc0,0xc066b856,0x40f8930a,0x54cccd,0x13dbe162,0xc870441,0xe8dd7100,0xa8ad4136,0x7100849e,0x4127746f,0xca0babd,0x4600,0x904108,0x6c2815,0xb1012c04,0xc066b856,0x41015f62,0x30977c7e,0x504f3100,0xf1015c23,0x66b8562c,0x4bd528c0,0xa16477c0,0x61766041,0x44f423c0,0xa0793340,0x6795bc41,0x223f13c0,0x9afb4e41,0xd0f5be41,0x366141c0,0x91adae41,0xd0f5c041,0x32d121c0,0x93952541,0x7171000c,0x79413566,0xc92b8,0xde8128f1,0xcc0340a3,0xe78c4192,0xfa4cc0af,0x646340a4,0xa07f4190,0x508c0b3,0x61f7c04c,0xfc9a412e,0x81a6c0af,0x4d79c03b,0xdaad4139,0xe664c0b3,0x1df3c046,0x71000c37,0xbfd5b930,0xc30f39c,0x310f100,0x91c0425f,0xbe4126c7,0xefc0b03c,0x16c02773,0x1741223c,0x7bc0b0f1,0xf1c04fa4,0x242683,0xfffffff1,0x452cc77f,0x2a7efcc0,0x84275741,0x384abec0,0x34b696c0,0x84281e41,0xa16a68c0,0x6407441,0xaaef0740,0xb355e8c0,0xe8fb78c1,0xabc1f840,0xb675f4c0,0xcf7d5dc1,0xac0510c0,0xa2eebbc0,0xcc3b51c1,0xaaf2aec0,0xa16e54c0,0xe9813641,0xaaf41d40,0xb6e05ec0,0xd10ebf41,0xa88a55c0,0xb5a661c0,0xe5cab441,0xa4809fc0,0xa2f733c0,0xe96a7bc1,0xaaf22840,0xbc6417c0,0x5a34dc1,0xabd01c40,0xa2ef0fc0,0x80aa45c1,0xaadd1840,0xa2fc19c0,0x47003fc1,0xaae25fc0,0xb1fcc1c0,0x520e0c1,0xaaa7e1c1,0xb38f13c0,0xe7ca8641,0xa8a60b40,0x7ef43cc0,0x18d239c1,0x138bf0c1,0x10e393c0,0x77068ec1,0x12ea7940,0x14f395c0,0x1c79f341,0x17bc06c1,0x7ab366c0,0x1cafe441,0x1720cdc1,0x7ef37cc0,0x1871c741,0x1461fac1,0xa9b9dac0,0x872f5541,0x5fe66041,0xa16522bf,0x20707541,0x93333341,0xc3df59c1,0x73d5fc41,0xa23c5041,0xf010e9c1,0xdff84840,0x433ce2c1,0xb30134c0,0x910e8b41,0x4fffff41,0x344874c1,0xd461da41,0x5fb95ac1,0x6a835abf,0xc6b88741,0x434791c1,0xa47722c0,0xa473d841,0xb0104941,0x9e9c75bf,0xa730fc41,0x73b4dec1,0x941928c1,0xb07f2441,0x5fffef41,0x95a8f4bf,0xaf2ca241,0x23ecf141,0xb7c719c1,0x8b8f5241,0x5fc3e7c1,0x1d9a56bf,0xd8815341,0x5fffef41,0xc0885fbf,0xe1bd1040,0xdcc1a741,0xd4891cc0,0xe0308640,0x5fffef41,0x9e2110bf,0xe67c5c3f,0x20ae7941,0xe05414c0,0xd77dfe41,0x15a48d40,0xd456c8c1,0x32ee5741,0x143a1241,0xe658b9c1,0x2498c841,0x5fe86840,0xc5c182bf,0x2b780b41,0x50a1f341,0xd623edc1,0x782e7341,0x5000c940,0xd5fdb3c1,0x5eeed041,0x50016cc0,0xc3aa89c1,0x3440ff41,0x5a4b1641,0xcb1dc7c1,0xf75d141,0x5ca49bc1,0xd6f83dc1,0x3e6c0141,0x172138c0,0xbfa901c1,0x20227141,0x5d999ac1,0xb1890cc1,0x4988fc41,0x993333c1,0xc0c00bc1,0x5e0f6641,0x993333c1,0x858119c1,0xa01cab41,0x5d999bc1,0x81bc7cc1,0xa1a1bb41,0x3e32bc1,0xb11851c1,0x48f0e941,0x7593bec1,0x8685e9c1,0xb4e18741,0x99340dc1,0xd02f12c1,0xd1a2cb40,0x3679ac1,0xd02fecc1,0xdabad740,0x34f39c1,0x4ac241c1,0xad11c041,0x3c84dc1,0x38f9c4c1,0xb8f71641,0x3a9d2c1,0xba9477c1,0xa2c948c0,0x3e364c1,0x67e6a1c1,0xa15640c1,0x3e6a0c1,0x48e5ffc1,0xaf252ac1,0x3c52bc1,0x6a7948c1,0xaff043c1,0x3c1f0c1,0x80887fc1,0xb8258ec1,0x3abefc1,0x514d53c1,0xa1b46d41,0xd19ad6c1,0xca5892c0,0xd51b9dbf,0xcfa36cc1,0xca6db5c0,0xc2e65fbf,0xcfaa3bc1,0x9038b5c0,0xa147c2c1,0xd1991ec1,0xbdaf96c0,0xa3b7d3c0,0xd19ad0c1,0x2ea2c3c0,0xbc7ff5c1,0xd197abc1,0xd06013c0,0xb0d72940,0xd19bf8c1,0xaac04c0,0xbe870a41,0xd19ba0c1,0xf4d832c0,0xcf8ffbc0,0xd1999cc1,0x1e291cc0,0xbb2c35c0,0x24ccd1c1,0x277582c0,0xd5d08cc0,0x24ccd1c1,0x17b8aac0,0xbaf480c0,0x24ccd1c1,0x1b79f6c0,0xbb046bc0,0x24ccd1c1,0xc1347ac0,0xc1d84dbf,0x24ccd1c1,0xc1347ac0,0xd627b3bf,0x571003c,0x1540244e,0xcbc31,0x1b668062,0x30023940,0xa28f100,0xe8c16791,0x11c1b7c1,0x3bf6000,0xd8c0d4f9,0x48c1d30c,0xa8bf6035,0xa6c18082,0x8d41c0c0,0xc8bf5f9a,0x8dc1847c,0xb941acfe,0x58bf6036,0x9cbfd658,0x30e602,0x20d08f1,0xe5f7c190,0xb80fc1b4,0x49d2bf5e,0x6c504184,0xffef41ac,0x22000c5f,0xc9c44,0x7173ef71,0xb4e2c841,0xfff40018,0xf82907ff,0xa6f5c1c9,0x789ac122,0x9d53bf5f,0xf1d4c1d8,0xf26fc03d,0xe653bf5f,0x8c0c1e2,0xc0a0,0x9cdcbf60,0xaeb0c1e6,0x65023fdc,0xc855bf5f,0xbe89c1d0,0xc3c3c144,0xce25c122,0x2c05bffe,0x4a41e6,0xa4b1c1a0,0xa6f0c1a3,0x705c1a3,0x7996c08c,0x63b8c077,0x31fa41e4,0xd75ac124,0x1216c110,0x77a341db,0x6148c123,0x6b5cc16b,0x46f6c1c6,0x12a0c043,0x7639c16f,0xb14c41c5,0xa35ec123,0xfb44c1dd,0x5ddc0fb,0xd9e5c114,0xf5cac1a0,0xa51341a4,0x866ec137,0x4c42c1a1,0xffff41a4,0xaec5c14f,0xbecc1b1,0x4f8a4190,0x96dc1a5,0xc653c1a5,0xffa441a0,0x7efbfaf,0x7e5fc1d2,0xd3e1413d,0xd948c162,0xeed2c1e0,0x170940f0,0xaf6cbfb0,0x415bbf7d,0x741841d8,0x1115c123,0xaab1c085,0xb39b41c4,0x7c19c123,0x7cb4c112,0xbe0c41bf,0x8f4ec123,0x1882c182,0xf53141ac,0x9ba2c123,0x6cea418f,0x978f41a1,0x8b2dc125,0xe11e4117,0xcfec41b9,0xd32ac123,0xe15640c7,0xa2e541ca,0x338fc123,0x649b3f97,0xf28b41ac,0xca60c123,0x48144054,0xbedb41bf,0x3309c123,0xf90ec196,0x5e46419a,0xabf3c137,0x9591c1a7,0xffff4187,0xa67fc14f,0x9c4f41a7,0xffff4187,0x96b8c14f,0x4091c183,0x66654146,0xef30c16e,0x8fa0c183,0x33334145,0x2eaec193,0x95884183,0xf5c041ac,0x3719c108,0xe49e4183,0xf5c241ab,0xd50cc108,0xebc0411e,0xf5d941ac,0xf171c108,0x49a740d4,0xf52341ca,0xc5a8c108,0x564c3fd0,0xf67c41aa,0x7171c170,0xf458c084,0xf5ee41c4,0x472ac108,0xb84fc114,0xf37441bd,0xfdb9c108,0x96c7c023,0xf5ff41ac,0x1b93c108,0x2d23bff5,0x3d41a5,0x1359c1a0,0x9b703ff5,0x26419b,0x535dc1a0,0xdb6b3f50,0x41ad,0xc5d2c1a0,0x3457be46,0x999a419a,0xc5d2c185,0xc3e46,0xc0000062,0xccdc93e,0xe104f100,0x3f2646,0x9a41a300,0x82c18599,0xcd3f6e54,0xca44c,0x39752971,0xa18d8c3f,0x2a71000c,0x6bbe8e74,0xc97b1,0x9999a71,0x988d5cbf,0xb562000c,0x1ebf07c3,0x4400303e,0xbf6e5482,0x71003c,0x37bec000,0x24a532,0x9999a71,0xa772a4bf,0x62000c,0x66000000,0x71004866,0xbf84e94f,0x18a239d1,0xe94f7100,0xc62f3f84,0x62000c9d,0xbe46c5d2,0x3ccba9,0x39752944,0x440084bf,0x3f09999a,0x710078,0x9a800000,0x30a899,0xc0000044,0x71006c3e,0x3f429889,0x18a614c4,0xdb93f200,0x1d3e3150,0x1d4196f1,0x5ac1a000,0xf0bf6048,0xfd419ab2,0x50c19fff,0x873f56a9,0xfa41a5b8,0xa8c19fff,0xb40731a,0x1b41d5fa,0x59c1240a,0xb0c1990e,0x65414706,0x4fc16e66,0xdc1b7fa,0xba415490,0x59c16e65,0x7ec18ffe,0x5d414109,0xdc16e66,0x16c180c2,0x66412178,0x77c16e66,0xbc17c8e,0xbb413219,0xa7c16e66,0xefc193c4,0x6541216a,0xa2c16e66,0x8cc197cf,0x674134e3,0xfdc16e66,0xc1c18e36,0x6541412b,0xc0c16e66,0x6fc18171,0x66411f17,0x17c16e66,0xad41869c,0xf20018d1,0x8448ffff,0xe417058,0x1141229b,0xa1c16e67,0xbf4185ef,0x66411e5b,0xe5c16e66,0x50417d52,0x33412f69,0xeac19333,0x984182ed,0x2b412123,0x33c19333,0xbc418b00,0x30412036,0x75c19333,0x2b4189aa,0x3341409d,0x46c19333,0x60416ff9,0x5941294c,0xb1c19333,0x641834d,0x6d4110e0,0x66c19333,0xc341750e,0x384140e2,0x2fc19333,0xa8418220,0x2f413dac,0x3bc19333,0x15c19733,0x33415799,0xcdc19333,0x49c19303,0x33413ee5,0xc19333,0x4fc1acba,0x33418153,0x85c19333,0x6641ad64,0x814182a8,0xefc1a599,0x7141bf1c,0x8d414169,0x41c1a64f,0x35c1c16d,0x814142c8,0x88c1a599,0x7c1ba20,0x9a413d35,0xb6c1a599,0x4241a278,0x9a4181e7,0x4bc1a599,0x6cc1c2d7,0xa413489,0xccc16e23,0x78c1d492,0xe54099cf,0x70c14fff,0x63c17882,0x4dc1ac51,0x7c15000,0xa7c18971,0x1c1b204,0x16c15000,0x51c170c8,0x1c1b168,0x64c15000,0xacc1cb68,0x6dc10e5d,0xc0c13a2d,0x1bc1d6f8,0x61c0740f,0xbdc01ddd,0x59c1c47c,0x18413393,0xbfc1155a,0x8ec1cefd,0x1ec0ed9e,0x90c13a10,0xaac1ae50,0x5ac180b8,0x2ec10feb,0x39c19056,0x86c1a0ca,0x19c10feb,0xefc1bc54,0x1ac11de3,0x28c121ef,0x19c1796f,0x53c1a675,0x6dc124b8,0xfc1b5df,0x5ec12e18,0x3fc1565b,0x6c1b146,0x8fc13af9,0x2dc14f4a,0xc2c18a20,0x5bc192ad,0x44c17db6,0x1c18dd5,0xd7c18d67,0x6bc184bd,0xd3c18770,0xb6c1890d,0x36c150c4,0x19c18456,0x2ac18dfa,0x8cc17cc3,0x3fc18807,0x4fc18912,0x81c18453,0xdcc1ad6c,0x66c12b2a,0x8fc183c3,0xfdc1b512,0x85c11290,0x3c10feb,0xb3c1b950,0x9fc10817,0xc13834,0x6bc0acfe,0x5fc1a010,0x81c16e6d,0x573f0d7c,0x33c1a488,0x10c16b17,0x563f2ecb,0xc1a327,0x5ec18000,0x583ec9d5,0xc1a576,0xec18000,0xa73e50f4,0xc1a617,0xcfc18000,0xe8bf42f4,0xc1a1a1,0xaac18000,0xbebf5266,0xe1c14175,0xc16e66,0x8ec04000,0x67c165c2,0x36c16e66,0xf8bf39e6,0x67c15b2f,0xf20018,0x8c000040,0x6e6667c1,0x452ec7c1,0x187c5d3f,0xe104f400,0xffbf2646,0x9bc165ff,0xd2c17999,0x52be46c5,0xc6b97,0xc3e14,0x7c3b571,0x687c3a3f,0xe1710018,0xff3f2646,0xc59ff,0x7c3b571,0x5783c43f,0x4802000c,0x180200,0x39752971,0x5ce4e7bf,0x7710018,0x8b3f87ef,0xc648d,0xcba9571,0x6f3bfdbf,0xe862000c,0xa9bf73bf,0x710054cb,0xbe91b175,0x1870fde0,0xef074400,0x30bf87,0x71,0x71975200,0x75440018,0x243e91b1,0xba954400,0x483f0c,0x47055371,0x6c70543f,0x7f10024,0x3f135558,0xc14ebd4d,0xc193331d,0x3f052232,0xc1721c62,0xc32fa,0x9ebf19f1,0xf5c14de3,0xddc19332,0x593f38d0,0x66c14326,0x4bc19333,0xd63f27e7,0x33c17f2c,0x80c19333,0x48c0382d,0xc6681,0xe39b0df4,0xedc6bf38,0xc17f,0xd41c184,0x3ddbbf3b,0xffdec18f,0x999ac183,0x9078bf19,0xaf9f1cf1,0xe997bfc1,0xfd62c191,0xf8c2c183,0x1574bff1,0x6ac18d,0xe16dc1a0,0xc02f,0xc18c,0x6762c1a0,0x807fc017,0xf1000c94,0x8afbea1c,0xa55c7cc0,0x9ffeb0c1,0xf5c1b5c1,0x98894b3f,0x9fffcec1,0xc9999ac1,0xd209a7c0,0xa00001c1,0x4cccdc1,0xa6666640,0x20f40030,0x408772b0,0xc1b1891c,0xc19ffffe,0x4094898f,0xc1d9628a,0xc19fffdf,0x40c798ca,0xc1dc05dc,0xc1a000b7,0x3f89999a,0xc1a00000,0x70800000,0xc0105,0x89999a44,0x30018bf,0x180305ac,0x5340100,0xf2000c01,0x28ae1004,0x9aba8f3f,0x800508c1,0xeb7ccc1,0x9b8a42bf,0xcb610018,0xd8aabf2e,0x71000c9c,0xbe50f40e,0xc99e859,0x65fff400,0x40059d52,0xc19707a8,0xc183f869,0xc098522d,0xc1dbad42,0xc10c6f44,0xc065654d,0xc1dbdbbe,0xc0e9ec72,0x403b2fba,0xc1d78ae7,0xc0fb16b1,0x40896ba2,0xc1d6bbbf,0xc1142180,0x40968a11,0xc1db9bec,0xc10c90b7,0x40226990,0xc1b490e7,0xc100b5bc,0xc030a255,0xc1b4d19a,0xc100f478,0xc04e8b09,0xc1da5ec4,0xc0f36b59,0xc18959ba,0xc1b36422,0xc12379aa,0x41944f71,0xc1ac3494,0xc184c4ab,0x41c81d65,0xc149c976,0xc172a8b8,0x41cbef3a,0xc13f446b,0xc174fe0b,0x41a528b1,0xc1950191,0xc1744251,0x41a3560a,0xc1978220,0xc18b5d5f,0x41cb99df,0xc1403011,0xc1894c4e,0x41c609cc,0xc14f8067,0xc1913607,0x419ba5ea,0xc1a2181f,0xc1844f59,0x41a09722,0xc19b4af3,0xc1832045,0x418ff8ae,0xc19bb559,0xc18bdc80,0x41bdd780,0xc13922c6,0xc182aebf,0x41c08000,0xc131d3d9,0xc18cd2c1,0xc0280dd4,0xc1ba87c7,0xc0cfed0f,0x3f202cf5,0xc1a19e8f,0xc188d391,0xbf84888b,0xc19e6bfb,0xc187e2c6,0xbf2f3733,0xc19908b2,0xc1880003,0x3f4c054f,0xc19f7134,0xc1880000,0x3f881028,0xc19eb7de,0xc1880000,0x3f687dc3,0xc19c0e0f,0xc188f949,0x3f2b95a3,0xc19946b8,0xc1880000,0x3f49bc66,0xc19a2688,0x80880000,0xc10cf207,0xc1880000,0xbf212d45,0xc1a00ce1,0xc1898bd1,0x3edd0657,0xc19c8be7,0xc8419,0x741900f1,0x7be7c1a3,0xa87ac19e,0xf0693ead,0xf5000c9b,0x40dcfd80,0xa4ce443e,0x9e74f6c1,0x12a572c1,0x9ddaa9bf,0x9e7878c1,0xf8bf1ac1,0xa38c90be,0x9e7715c1,0xb5a8dfc1,0x9964adbd,0x9ffe6cc1,0x747e07c1,0x9e54983f,0xa03d48c1,0xcccccdc1,0x9a751b3e,0xa00000c1,0x7c78a7c1,0xa6d01cbe,0x9ff0a9c1,0x881028c1,0x9eb7debf,0xa00000c1,0x1b0692c1,0x98e4f43f,0xa00000c1,0x837ca2c1,0xa288ef3f,0xa00000c1,0x49bc66c1,0xa5d9783f,0xa00000c1,0x83e5c9c1,0xa32571bf,0x9d4a2ec1,0x71310024,0xf09d3d,0xb94824f1,0x3d71c1a6,0xa748c19d,0x8d93f9c,0xd70ac1a2,0xf545c19b,0x5a0b3956,0xe27ec1aa,0x4452c19b,0x8b50bf26,0x5d2fc1a8,0xc196,0x69770000,0x71000caa,0xbcab94d9,0xc959deb,0x3c0400,0x965d2f84,0x264452c1,0x7100303f,0x3f5a6aba,0x24a74ef1,0x3a437100,0x4f963f78,0x62000ca6,0xbf1b0692,0x181b0c,0xdaec4a62,0x60f947bc,0x16947500,0xdbaa3f80,0x3100249c,0xc98e4f4,0x26707400,0xe9e73f86,0x14003ca1,0x4003c3f,0x2fa200e4,0xa3c1965d,0x48bf2b95,0x40060b9,0xd131000c,0x1891a2,0x9946b875,0x91a2d1c1,0x8f10054,0xc191a2d1,0x3cdaee63,0xc1a8f947,0xc191a2d2,0x3f8a523f,0xc9fdd72,0x16947100,0x24563f80,0x710030a3,0x3f6e5482,0xc9bb333,0x6aba7100,0x4ef1bf5a,0x71000ca7,0xbf9ac405,0x309c8d84,0xa7487100,0xf7273f9c,0x6200189d,0x3f49f2bb,0x24c1d2,0x615214f5,0x7c353ef4,0x2130c196,0xc0f9c18c,0x4183f92,0x28f6c19c,0x62c7c18c,0x67b23f9d,0x20f5c1a3,0x3100548c,0x688c28f6,0x74b03101,0xf5002497,0x8d35f408,0x9ca588bf,0x8b552ac1,0x3b2f01c1,0xa64de3bf,0x8ac28fc1,0x18f40294,0xc18ac28f,0x3f285953,0x419ebb10,0xc188af7e,0xbf2e072d,0x419beb37,0xc18804a8,0x3e7599aa,0x419756d7,0xd087fffd,0x414402,0xd88800,0x62000c01,0x3f315ca7,0xc3333,0xf40a5c04,0x88000090,0xaee632c1,0xa70b873d,0x880ef541,0x9a749fc1,0x9b6a5abe,0x89946d41,0x158eebc1,0xa16af23f,0x89841941,0xe9d0c8c1,0xa35a843e,0x9e7fda41,0x40dd40c1,0x9b31bc3e,0x9e74f641,0x22d0c4c1,0x9f48753f,0x9e72d941,0xdcf052c1,0x9c26dabe,0x9e7bc241,0x4a20dec1,0xa4f3f2be,0x9e734d41,0x8c1765c1,0xa603983e,0xa0000041,0x7c78eac1,0x992fe5be,0x9ff0a941,0x636189c1,0x9b27cb3f,0xa0000041,0xc9157bc1,0xa801693e,0x9d3d7141,0x83acefc1,0xa334143f,0x9d46a741,0x411402e8,0xb83102b8,0xc9946,0x3b2f0162,0xcb21d3f,0x3b40300,0x31001805,0xca64de3,0x6208f400,0x11bc6069,0x124195c4,0x15c19bdc,0xd23fa06f,0x9441a225,0x2a09bd7,0xd70a41c1,0xf9fdc19b,0xd3f0befe,0x11000c96,0x23000100,0x2d04196,0x8b50bf41,0x62000ca8,0x3e2e4b02,0x1817d8,0x5a6aba71,0x98b10f3f,0xf4030018,0xc0102,0xeecf4262,0x18406dbe,0xbc667100,0xd978bf49,0x30018a5,0xc0102f4,0x6367100,0x4b80bf8f,0x71000ca1,0x3f8fe258,0xc9cd809,0x10b67100,0x7efd3e24,0x62000c97,0x3ea32160,0x784367,0x102e803,0x5f70018,0xbf8a3600,0x41a1fd52,0xc191a2d2,0xbe2410b6,0x41a88103,0xc0502dc,0x1b0c3100,0x71000ca7,0x3ea23bbc,0xc97c836,0x18767100,0x45303e73,0x71003ca9,0x3f983505,0xc9d74c9,0x2880300,0x71002401,0xbf8cb14f,0x189c3833,0xf9fd7100,0x2c10befe,0x710018a9,0xbf9db86f,0x18a30fdf,0x11f0100,0x18aa0021,0xb7206200,0x192b3f8f,0x25710018,0x2b3f2896,0x249756,0xe1015c04,0xc191a2d1,0x3f98bacf,0x419b5e0b,0x2f410bc,0xf13f1df1,0xf641a74e,0x66c18c28,0x503f8bd9,0x9d41a50a,0x33c18c2d,0x48bf8036,0x1f419b9a,0x3ec18b25,0x993d9879,0x704196cf,0x3008abd,0x99b21d62,0xcc28f41,0x4de33100,0x3000ca6,0xc0103e4,0x15c0400,0xc28f00f4,0x728ac18a,0xc41e3f83,0xb0b1419c,0x105b88a,0xd4f50024,0x41844c4e,0x414002d4,0xc1766665,0x418d939e,0x41314710,0xc1770e78,0x41899e70,0x4141b196,0xc1766675,0x41809bba,0x412eb4ae,0xc17671fa,0x418710d2,0x411e9883,0xc1766666,0x418918b0,0x4123a2dc,0xc1766666,0x418a250f,0x41246637,0xc1766666,0x418a7c75,0x41279cc2,0xc1780a2f,0x4182898e,0x41383a4a,0xc1766665,0x4183537f,0x4139ce2e,0xc1766665,0x418caebd,0x4128a882,0xc1766666,0x4184ba02,0x41381f2f,0xc1796e97,0x4183fc8b,0x4136e833,0xc1796e97,0x41845775,0x41287302,0xc1796e98,0x4184ba02,0x4127e0d3,0xc1796e98,0x418c2f64,0x4133cb77,0xc17980fd,0x41894f1c,0x4126f9be,0xc1796e98,0x418ae4bd,0x412917cf,0xc1796e98,0x418c77e9,0x412e2b4b,0x1891a761,0x1b20f100,0x79c191af,0x2c418616,0xd84139f2,0xddc191a7,0xb4418286,0xda41326a,0x11c191ab,0x1a418142,0x33413350,0x63c19333,0xce418b1c,0xc2583,0x7e1c7a62,0x18d3cf41,0x1c7a7100,0x2c33417e,0xa200182c,0x418a3f68,0x41212fb7,0x18751e,0xd3cf0cf1,0x70a44133,0xb6edc190,0xaf124180,0xe9ad413c,0xfbfec18f,0x6667417f,0xf1001827,0x8c37c81c,0x1f876d41,0x8faf1c41,0x9150f1c1,0x35e13241,0x8f12cb41,0x8e43fac1,0x21622041,0x8f0a3d41,0x8f3276c1,0x2360d541,0xf671000c,0x244184bd,0xc4342,0x7c08e771,0x294d6c41,0xa771000c,0xbc417dca,0xc259b,0x81210e79,0x207c5d41,0x14f1000c,0xc1899062,0x41823e81,0x411ee960,0xc1899062,0x417c4901,0x41300001,0xc1899086,0x417aed37,0x182ea29a,0x780400,0x89906235,0x62b10078,0x45c18990,0x57419092,0x242fad,0x8323d771,0x3ee54941,0xb571000c,0x954184e7,0xc406f,0x8bbd7162,0x3c1ab941,0x29ec7100,0x46a7418e,0x71001825,0x418d4a1c,0xc3c9bc7,0x300400,0xd60404f1,0xba64c184,0xb6f4417d,0xd604412e,0x23d7c184,0x4003c83,0x4931000c,0x183ee5,0x4003c04,0x3b31000c,0x182364,0x8ccd5171,0x228d7241,0x7804000c,0xd6043500,0x3500e484,0xd884d604,0xd604a200,0x34f1c184,0x56e4418d,0xf1710078,0x1e418d34,0x3c1fa9,0xd1f400f1,0xdad4189,0xa95a411c,0xc03ac17e,0xf501388d,0x7eb85288,0x9133c8c1,0x290b5f41,0x7ea9ee41,0x84bdf6c1,0x1cbdde41,0x7eb85241,0x82d6e0c1,0x41c1fa41,0x7eb85141,0x83b567c1,0x2080dc41,0x7beb8541,0x7ed3fbc1,0x2735b941,0x7bc55741,0x82986fc1,0x3e361941,0x7beb8441,0x86b596c1,0x29b756c1,0x76666641,0x9735c2c1,0x29d878c1,0x76667841,0x8d10c3c1,0x3aa6b2c1,0x77794941,0x9303cdc1,0x211ab9c1,0x76666641,0x95e76fc1,0x3a109dc1,0x76668941,0x8baefdc1,0x24aadbc1,0x76667741,0x8a6a33c1,0xe9710024,0xb8c189cf,0x36c27c5,0x87fdb871,0x2546a7c1,0x3f2000c,0xc191ea33,0x413b15cd,0xc1766665,0xc18c699c,0x31862aa,0x68541cf1,0x653bc18a,0x6e98412b,0x954ac179,0x622cc18c,0xa5dd4139,0xa769c191,0x92bec18a,0xaf1b412a,0x21f1c191,0xa712c190,0x71000c26,0xc1916da1,0xc381f2f,0x2b194400,0x324c192,0x8faaec71,0x399490c1,0x81710018,0xfcc18fd3,0x2f42364,0x933d8671,0x390d0dc1,0x4f1000c,0xc191be26,0x413b6ea1,0xc19332d9,0xc18fd381,0x183c9b07,0x2c1a7100,0x999bc189,0xf1000c29,0x873f5b10,0x3437acc1,0x936ff741,0x958c6ac1,0x3a9ff6c1,0x93333241,0x913fefc1,0x1f906dc1,0x1f40024,0xc18bda1f,0x41403d61,0xc1933335,0xc1865499,0xee710348,0x5dc18515,0x2dc3565,0x87680f71,0x225955c1,0x1cf1000c,0xc19333de,0x411db076,0xc18f14c8,0xc197b8b7,0x41393fea,0xc18f0856,0xc1920769,0x41431517,0xc18f0a86,0xc1947b4d,0x304056e4,0x8a567100,0x9de2c195,0x44000c3e,0xc19678d2,0xed710360,0xe3c19957,0x2ac31d8,0xb1001804,0xc1899062,0xc186b596,0x183648ac,0x989a7100,0x2c55c18e,0x4000c42,0xc040180,0xb95b3100,0x7100183a,0xc19504e3,0x64244d11,0xd20c7102,0x4f98c195,0x71000c26,0xc1986d8b,0xc3090ce,0xdd884400,0x2dcc188,0x87445b71,0x38999bc1,0xec040018,0xd6043501,0xb1007884,0xc184d604,0xc184ced8,0x242d46d5,0xca417100,0xcf27c18c,0x71000c42,0xc1862baf,0xc3a6446,0x676a7100,0x83a5c188,0x71000c3f,0xc187680f,0xc3da6ad,0x180400,0xb85114f1,0x6888c17e,0xfe12c18c,0xb3f14143,0xcea8c17e,0x7ad3c184,0xb2544133,0x8af0c17e,0xf7d1c185,0x4402dc37,0xc19169ae,0xe87102f4,0x20c192b2,0x184258,0x135608f5,0x1901c196,0xa5ab413e,0xde91c17e,0x2999c196,0xc5af4123,0xf1117c7e,0x7beb8400,0x92723dc1,0x3f7f26c1,0x7beb8441,0x953101d4,0xc406f,0x971232a2,0x367923c1,0x18b2fb41,0x906d3100,0xf1033c1f,0x95c39104,0x255838c1,0x7bf00e41,0x861d66c1,0x300001c1,0xfd710030,0xbec18635,0x242d6f,0x86549971,0x2c2c33c1,0x5b71000c,0x67c18744,0xc2766,0x7ae504f1,0xabd6becb,0x9cd44173,0x2414bfce,0x3121bea6,0xf1000c75,0x87610204,0x7755633e,0xd537ca41,0x7532e8bf,0x695d363e,0x77620018,0x283e6af5,0x71000ca4,0xbea62414,0x186acedf,0xd8127100,0xfbb23eec,0x71000c71,0x80000000,0xc68a854,0xd8127100,0x44ebeec,0x65000c6e,0xbee2f3e4,0xc1981,0xc3e14,0xcb7ae544,0xf14d70be,0x91e9d104,0x77e5d63e,0xc8f5ba41,0x170f7cbf,0x78cf113e,0x5271000c,0xd3bed59a,0xc76ac,0x1c5e2d71,0x791e4c3e,0xfff2000c,0x65bf09ff,0xe0e6bef6,0x2e454169,0x1555bfc8,0x78923e0a,0xd4064179,0xd2f6bfc7,0x4e68bf04,0x9a9e418b,0x2ac7bfe9,0x3b62c01e,0xdc014178,0x906dbfd6,0xbfc13eb9,0x64804188,0xa8cebfc6,0x10db3faf,0x665e4189,0x2389bfc6,0x4d3fc006,0x6c76415b,0xd228bfc6,0xf2f23fff,0xccc44165,0x5144bfec,0x92e03e20,0x999a414e,0xbf62c009,0x2c26bff7,0xccc44163,0x8bb5bfec,0x5502bfc5,0xccc44159,0x9342bfec,0x335bbfc4,0x999a4159,0xf2b6c009,0x6c1e400e,0x75c9416c,0x8152c00c,0xbb5bbf99,0xc3ca4186,0x1134c00a,0x518ac00a,0x627c4170,0x688cc00a,0x4ed33fd5,0x113c4156,0x9d41c00d,0xb75b3fb6,0x9b024184,0x9a95c009,0x8b353ff1,0x9995417e,0xb7e5c009,0x757b4002,0x99954177,0xa91ec009,0x9dc1c013,0x46ae4170,0x861ac018,0x2ea2bff5,0xd5fa415d,0xd7d8c015,0x8293c00f,0xe064170,0xf4e4c049,0x701bbf2d,0x9df14187,0xab9fc043,0x5fc6bfcb,0x71b04182,0x9bfac042,0x58c1bfd6,0xf3f1415d,0x9a91c01e,0x8ab1c007,0xb1104163,0xca32c037,0x74cebf6b,0xa355414e,0xf49c035,0x1ee84010,0x8c4c4169,0x8dcac030,0xb9b03fc8,0xbb954182,0xf7b1c036,0x3ed6be8a,0x40c84188,0xbc8c014,0x9b023e39,0xed074188,0x63f5c034,0xf1a8bf9f,0x9a174184,0x408c012,0x41f93ffe,0xcce64165,0x1041c04c,0x5706be00,0x89274189,0xdf6c04b,0xa9854001,0x1c2e4174,0x7297c038,0x5061bf12,0xc3694150,0xd5edc04c,0x38353fcb,0xccc9415a,0xdef0c04c,0x9d863f9d,0xc4594155,0xcbb8c04b,0x77ef3f86,0x33224152,0xe111c063,0x303bbfe9,0x99954167,0xeac0c061,0x19f2bfa4,0xea0c4159,0x4c01c060,0x9b1b3fe7,0x332f4166,0x2329c063,0xb00bf3a,0x332f4186,0xd22dc063,0x8b16bf5c,0x332f4185,0x31ecc063,0x1a7fbfa7,0x1cf1000c,0xbff99f88,0x417c3f09,0xc04cccc9,0xbffaadef,0x4180b411,0xc04ccbb8,0xbfc3da6a,0x4185b6ce,0xc04ccd0c,0xbf460ddc,0x2488e709,0x181cf100,0x143fff60,0xcd41806b,0xbfc01ccc,0x72400a2a,0x25417a24,0x2bc06f5c,0xef4006db,0x29415eaf,0x62c06f5c,0x543de92e,0xc4a9b,0x612e4171,0x4aba643e,0x4f10030,0xbff247ed,0x415c8974,0xc01cccc9,0xbfd9a7eb,0x18586cce,0xcde67100,0x4dbf3f6d,0xf1003046,0x45e50010,0x81efd3c0,0x7970a441,0x45dd7fc0,0x5c223b40,0x77c28b41,0x2c1e5cc0,0x83333340,0xd8f5006c,0xc0317004,0x414a7c5e,0xc06fe0d2,0xc02f032e,0x415bb59f,0xc06f5ca7,0x402dbef5,0x418a02be,0xc07cccd9,0x4065e3de,0x418a8749,0xc07cc6de,0x406d0e95,0x4159ccb7,0xc0803a84,0x4065fffc,0x4148e667,0xc08b326a,0x40266666,0x414683d3,0xc08b2023,0x3f733333,0x418ccccd,0xc08b3331,0x40800000,0x418ecccd,0xc08b3331,0xbf3be34c,0x418e984d,0xc04ffef4,0xc0230264,0x41569bb4,0xc050fa5d,0xc034c886,0x416d09a7,0xc04ffffc,0xc03125ab,0x417bdddb,0xc04fffda,0xc02197ea,0x41583b62,0xc05108d1,0xc056aa5c,0x41870897,0xc053332f,0xc0499ced,0x41841ce4,0xc053332f,0xc0366666,0x41866666,0xc05cccc9,0xc0388b2a,0x41876666,0xc05cccc9,0xc0424246,0x418854f4,0xc05cccc9,0x185441a2,0xdad37300,0xeaeac055,0x154d7c86,0x73003c56,0xc05441a2,0x18856666,0xc04e5300,0xc84aaff,0xc0464200,0xc6666,0x36f1fa62,0x24e1e2c0,0xcccd3500,0x624d884c,0xc0517c31,0x18999a,0x49b68062,0x30dac2c0,0x999a3500,0x62006039,0xc052c38b,0x24fc63,0x53333335,0x4c710018,0xbc04316,0x6c87f2,0x3d595c62,0xc8808c0,0xfe28f100,0x93c03c9a,0x424185e4,0x5ec07cd1,0x5bc02f0e,0xcd414beb,0x7cc07ccc,0xa2c044ef,0x794187f5,0x68c07cce,0x33c02c5a,0xc9418333,0x3ac07ccc,0x64c02c7a,0x244c90,0x2c5a6871,0x59999ac0,0xba71000c,0x45c02f4b,0x245b60,0x31606771,0x821cc6c0,0x3471000c,0xaac02e2d,0xc89fe,0x3a6d0ff2,0x8f753fa2,0xffc1418c,0xc7acc04f,0xf2234033,0x66624172,0xd1ccc016,0xc8c74022,0x5c71000c,0xf401fc9,0x18784d,0x430f04f1,0x2ab63ec3,0x660e4142,0xb435c016,0x367dc030,0x71001867,0xc022d1cc,0xc6d3739,0x4f100,0xc23ff7fe,0x56414edd,0x9ac01666,0x1fbfa997,0x18896e,0x2acc10f1,0x1ce0bf96,0x9995418a,0xa20ec019,0x9ad1402d,0x665e4163,0x9c02c016,0x38ddbf5a,0xf200248b,0xc153267b,0x486cef3f,0x4fff5441,0x315a3ac0,0x6573bc40,0x4fffeb41,0x7ed3b7c0,0x42b17940,0x53332f41,0xe961ccc0,0x66ec3d3f,0x6088db41,0xf27369c0,0x6d9d96bf,0x5ffffc41,0x3a20cdc0,0x860b08bf,0x5ffffc41,0x9df117c0,0x838ef2bf,0x5ffffc41,0xc4bfecc0,0x80ef43bf,0x5ffffc41,0xcca234c0,0x7facca3f,0x5ffffc41,0xf00000c0,0x7000003f,0x5ffffc41,0xed0b95c0,0x6b4e953f,0x5ffffc41,0xe01b86c0,0x4895e7be,0xea577100,0x5d77bf59,0xb5006085,0xbe16a444,0x415217ad,0x30600000,0x14773500,0xb100184e,0xc04e147b,0xbfed0b95,0x3074b16b,0x2104f14e,0x9e3feab0,0x1a4174e4,0x9ac04be0,0x91bfef42,0x18725a,0xcd7d1cf1,0x8003bfec,0xf91e4170,0xc6d6c04a,0x53a93fda,0xb4ee417b,0xe261c04a,0x5e893fe9,0x7add416b,0x9881c04c,0x7dbf3e14,0x71001852,0xbfe641f6,0x1869171c,0x19df7100,0x37bc3edd,0x71001853,0x3edd1c7e,0x185337c1,0x12027100,0xb877bfaf,0xf100186b,0xcc91010,0x82779b3f,0x4abb9941,0x8c2899c0,0x6120133f,0x4b278941,0xd2d56c0,0x5b85923f,0x76710024,0x32bfac1b,0xc75dd,0x96ba8c71,0x5a34733e,0x14f1000c,0xbe8107b8,0x4181909c,0xc05c7e39,0xbfa625a7,0x4174bd81,0xc051b802,0xbe59902a,0x41611b2c,0xc615b10,0xe4d43100,0xf1000c7e,0xafc13704,0x7fb23abe,0x604c9d41,0xd8ec9c0,0x7e149cbf,0x4f1000c,0xbe4f93ff,0x416f427c,0xc058c0c2,0xbf3c23d9,0x187bc23e,0x2f6fb100,0xc6ccbf81,0x68a14177,0x3100185e,0x18643dc3,0x280df400,0x2dbe0c99,0xae416ec9,0x6fc057d9,0xdbbc70f1,0xee416fa5,0x2ac05676,0x6c3e5990,0xf304f100,0xda3ee872,0x6141791b,0x71c0614f,0xa03f13e2,0x9c5cce,0xd77e1c44,0xf44e543d,0x618334c,0x7580cec0,0xeccde241,0x8f0b8dbf,0x8895e1be,0xeccf6441,0xa675a3bf,0x8491ab3f,0xecd3ae41,0x1df120bf,0x78920940,0xeccd7d41,0xae5c0cbf,0x88fd573f,0xecccc441,0xafa8cebf,0x8910dbbf,0xecccc441,0x7f13dbf,0x830304c0,0xeccd5341,0xa26bf0bf,0x852417bf,0xdf10030,0x4e0553bf,0xeccccd41,0x866666bf,0x2e66663f,0x8bfe0441,0xea0ebfc0,0x34098ebf,0x4f1000c,0xbe000000,0x412e6666,0xc086b731,0x404eeeee,0x1839999b,0xcccd4400,0x303dcc,0xca666671,0x63333340,0x33440018,0x18406333,0xaf427100,0x431540d1,0x6200187b,0x40d3401a,0xc97b6,0x99850cf1,0x999a40e9,0x51e94191,0x8b70c090,0x999a4122,0xe0444191,0xa48bc0e8,0x71000c25,0xc0918efe,0xc23b1a1,0x62527100,0xe98fc09b,0xf1000c2c,0xc0698804,0x30a53bc0,0x3cccce41,0xae016b41,0x2fa5e9c0,0x14f1000c,0xc0d06fd0,0xbffd182b,0x415951ec,0xc084cccd,0x40dccccf,0x417bccce,0xc088bae9,0x40cc502d,0x8490e504,0x66667100,0x64c8c086,0x53000c25,0xbe4ccccd,0x7300cc9a,0x40d5999a,0x187ccccd,0xc02c1500,0x3500,0xf40114e0,0xc3333301,0x659ffe40,0x88e22041,0x400000c0,0xf5003c3f,0xa0000000,0x9918cb40,0x95979e41,0x400000c0,0x4271003c,0xeb40d1af,0x5464bc,0xd0000062,0xfc263240,0x331cf100,0x9b3fd333,0x29413999,0x9ac07f5c,0xc840e999,0x38412564,0x18c09f31,0xc43ff87a,0xdec1b271,0x66bf6ccc,0x47c06666,0xcd3a6,0x660b7c71,0xbfab92c0,0xed71000c,0x3240277f,0xcb3f8,0x16cc7962,0xc1ad3c0,0x7100,0xbd9f3fe0,0x710018d2,0x3fe00000,0xcd52405,0x7a184400,0x54bff8,0x6a9004f1,0x2b32c029,0x4c1d4,0x3333c068,0x5e1c013,0xf2000cba,0x256eb99b,0xbacdfb40,0x67ff32c1,0x281362c0,0xd45a91c0,0x1b3337c1,0x242afec0,0xbacb9140,0x1b31e4c1,0x47d485c0,0x67341bc1,0xa0f5cb41,0x46d811c0,0x67c116c1,0xa0f45841,0x47f7b1c0,0x6798e7c1,0xa0f09941,0x47f777c0,0x29b2e7c1,0xa0f3c941,0x47e681c0,0x2a1a94c1,0xa0f2f341,0x472a17c0,0x29de45c1,0xa0f23641,0x469064c0,0x29ac52c1,0xa0f60441,0x46cb6fc0,0x2a08fac1,0xa0f5ed41,0x590423c0,0x300de0c1,0xa0ed6341,0x4099bc0,0x56319541,0xbd5d7441,0x44896c0,0x8318cb41,0xbd954041,0xc27eac0,0xb010f500,0x68c0bd7e,0x841049e,0x93418223,0x85c0bd9b,0x43410459,0x54416779,0x66c0bd9c,0x1988666,0x59999a31,0x298401bc,0xcdc07f5c,0xb0402ccc,0x66663501,0x3501ecca,0x94ccbfe6,0x66667102,0x18cbc086,0xf2018c99,0x4af8a163,0x34098ec0,0x9f313a41,0x8cccc2c0,0x3cccce40,0xe63d7141,0x5a6174c0,0x5af47740,0x19999a40,0xe8664fbf,0x1a3cc040,0x1d7eedc0,0x307e6bbf,0x43e065c0,0x19998941,0x711859bf,0x5fd985c0,0x19998941,0x2a70f4bf,0xd5e33ac1,0x1999aac1,0xb6d6aebf,0xe1dc7bc0,0x1b6dcac1,0xcb6b79bf,0x57b156c1,0x1999aac1,0xa05d1cbf,0xcc33140,0x703f200,0x640f662,0xaac1ddd9,0x41bf1999,0x7340a555,0xf400186f,0xd5e33a01,0x2a70f441,0x19999a41,0xadf0aebf,0x446e7c40,0x40711859,0x1c92006c,0x6fc0a05d,0x9ac0829e,0x4014000c,0x6c03000c,0x9c0100,0xf4004804,0x20000000,0x950de1bf,0xaf7aee41,0x1fffef41,0xc010078,0xfe937100,0xf21d4058,0x3000ce4,0xc016d50,0x55d77100,0x4adfc18b,0xf1000cb7,0xc7706904,0xe5e6ffbf,0x200011c1,0x6d66f9bf,0xc5486541,0x9fb5000c,0x1a41b085,0xdec193c2,0x6cf01ccc,0x8f1,0xa5fbf20,0x73a3405b,0x4053,0x58b4bf20,0x3ad9c014,0x400483d,0xefb1012c,0xaebf1fff,0x61c0adf0,0x4854f3,0x79999a71,0x700000c0,0xb6710024,0xf0c0a9f6,0x185679,0xb2e8d371,0x50a5aac0,0x1f4000c,0xc0f3e419,0xc03a5f67,0xbf200000,0xc0e00000,0x5004006c,0x11b101,0x28f2bf20,0x999a4058,0x4004887,0xb10120,0xe4bf2000,0x85406287,0x11455cc,0x70808862,0xb04e6540,0xb0f77101,0x848c026,0x7100184d,0xc046b470,0xc4a3cb4,0x12847100,0x5a2ac00c,0x71000c3c,0xc035cd5b,0xc521b51,0xa804f100,0x613ed7e5,0xbc419704,0xe4bf1ccc,0x84c06287,0xc55cc,0xac404f1,0xfeeabf8f,0xa0dc4133,0x7a25bf1e,0x64e5c04c,0x4400305d,0xc0708088,0xdc71006c,0x453f94d8,0x18918f,0x3c727571,0x85999a40,0x1e71000c,0xd54055df,0xc8815,0x78230771,0x76bf23c0,0x2b71000c,0x393fa0bd,0x204345e,0x564b4d71,0x79724bc0,0xa0710018,0x17c071c1,0xc7fc2,0x50756071,0x7f9a27c0,0x61710084,0x5ec067df,0x18838c,0x1f11371,0x445d5040,0x5971000c,0xacc02ba6,0xc8ea6,0xbdedf71,0x8cd61fc0,0x5371000c,0x64403e3c,0xc479a,0x170d2c71,0x90d68ec0,0x4f1000c,0xbfc73227,0x41903cdc,0xbf1bbbb6,0xc0564b4d,0x50668db5,0x1080401,0xffef08f1,0xa472bf1f,0xa09ebf77,0xc27f413b,0x7458bf1d,0x95d84042,0x71002457,0x40549c49,0xc7d87b2,0xb0f77100,0x7bdc4026,0x71000c89,0x3fd9999a,0xc8f8e4f,0x7d17100,0x58e83e83,0x4000c93,0xef350198,0x1981fff,0x1fffefb1,0x764fdbbf,0x65e7a1c0,0x4d7100d8,0x46c05c86,0x30869d,0x4e975762,0x548250c0,0x566d7100,0x9e634030,0x4001843,0xefb100c0,0x1ebf1fff,0x564055df,0x184fd4,0x87fd28f1,0x9de241cd,0xc0bf,0xc94fbf40,0x84883fa3,0xffef41e5,0x89b0bf5f,0xd311c182,0x11c1a5,0x98eebf60,0x93bdc1c4,0x11c16c,0x4a90bf40,0x136940c5,0x710024e0,0xc1b829bd,0x244e1ff3,0xf17a7100,0xb687c156,0x71000cca,0xc134832a,0xcbec41f,0xf702f100,0x6641d96d,0x411285,0xfbbf6000,0xf5c1cd87,0x6091006c,0x3791d7bf,0xbe090b41,0x4f10048,0xc1d35a90,0xbf1a4b99,0xbf600000,0x4080c05d,0x6cd0d464,0x2f00b400,0x6b12c1d0,0x408a,0x1007860,0x3e710054,0xac4180c2,0xcbde7,0xa6928971,0x9dc92841,0x3271000c,0x9f41ab6e,0xc762a,0xd7737406,0x8488bf5f,0xc9c541e5,0xbfa3,0x91009020,0xb687bf20,0xf17a41ca,0x6010856,0x1f9100d8,0x40adc0bf,0xd03beec1,0x4c710018,0xd7c19489,0xcaede,0x24f904f1,0xd958c1d5,0x4129,0x3beebf20,0xadc0c1d0,0xb7037840,0x41cafbc9,0x40e70475,0xe4200000,0xbf209100,0xc1e01369,0x90c54a90,0x175e6203,0x846541a3,0x7a4201a4,0x2c4156f1,0xbf209101,0xc183dd6e,0x60a4c567,0xbafff400,0xc1d8320a,0xc0f66664,0xc114cccd,0xc1d144eb,0x4124366a,0xc114cccd,0xc1c46acf,0x412902d9,0xc1137694,0xc1c1f676,0x41288553,0xc1105217,0xc1d1dd85,0x3fcedc5d,0xc10cc222,0xc1d1032f,0x3e96b39a,0xc104cccd,0xc1cc0055,0xc0f66664,0xc112bd5f,0xc1cdf945,0xc0f66664,0xc11445aa,0xc1d515d3,0x3e99a34d,0xc112bd61,0xc1c861a9,0xc0f63363,0xc10aa47d,0xc1cc37b2,0x40c82930,0xc10d37de,0xc1cb2e93,0x40c451e1,0xc104cccd,0xc1cf8f54,0x404f32e8,0xc107d21c,0xc1d735ce,0x400c6c40,0xc114da74,0xc1d1da76,0x40517d03,0xc1105557,0xc1d03541,0x40204407,0xc107d21c,0xc1e049e5,0xc0f66664,0xc108686c,0xc1df6e21,0xc0f650a2,0xc05403c5,0xc1d8320a,0xc0f66666,0xc039999a,0xc1e26c7b,0x404383c7,0xc03cd60a,0xc1e70a04,0x3fe6ae64,0xc0567ce1,0xc1e5e4eb,0x3fe589be,0xc04b70a4,0xc1e8fc38,0xbf0c5c14,0xc07a1306,0xc1e899a4,0xbf23d124,0xc06d8816,0xc1d786e2,0x41300000,0xc079999a,0xc1df4997,0x40ff491b,0xc061dc77,0xc1e10c6c,0x40e0bdb6,0xc05ac0ba,0xc1d495c4,0x412ff5b0,0xc044c8da,0xc1e5e140,0xc093073c,0xc104cccd,0xc1dfd60f,0x40ffe9b4,0xc104cccd,0xc1e875a5,0x3f7cff54,0xc108686b,0xc1e7b372,0xbfb6f872,0xc10bd812,0xc1e84faa,0xbfb773d2,0xc108686b,0xc1e3a68e,0xc0ba92a7,0xc10a07b0,0xc1dcf2dd,0xc0f5bd5a,0xc11293e9,0xc1e14cd6,0x40e729fc,0xc108686b,0xc1e23e46,0xc084c7d8,0xc112cee8,0xc1befa1f,0x412fef27,0xc054efdd,0xfff29768,0x79999a04,0xd01c49c0,0x40deb5c1,0x78e5b8c0,0xc9b75cc0,0xdb2c41c1,0x79999a40,0xc276ebc0,0x2382dbc1,0x4ff40241,0xcd488dc0,0xe78de5c1,0x410247c0,0xd0c159c0,0x2a4791c1,0x5d81f1c0,0xd026a2c0,0x29c95cc1,0x6b39bdc0,0xcf781fc0,0x58b3fac1,0x6b39bdc0,0xd185b7c0,0x85927dc1,0x46c1ecc0,0xd0339ec0,0x84baf3c1,0x511e79c0,0xca8f49c0,0xd1a8b9c1,0x6b2ee840,0xd6e55dc0,0x68aa43c1,0x3b9e56bd,0xd03907c0,0x4fdc4dc1,0x5d81f140,0xd044adc0,0x204fe3c1,0x6b39bd40,0xe0caf1c0,0xe9496bc1,0x10782bc0,0xcd8a34c1,0xd54c4dc1,0x3fb118c0,0xde92dac0,0xe7021bc1,0x417e24c0,0xe22ca5c0,0xeabed3c1,0x7ccc53c0,0xdc9347c0,0xe4ef24c1,0x3aa6cac0,0xd0d068c0,0xd8b1f7c1,0x3afdfcc0,0xcaac92c0,0xd1e927c1,0x68bf98c0,0xda820fc0,0xe2c9dec1,0x333333c0,0xe2cb2dc0,0xeb635cc1,0x5e6666c0,0xe355f1c1,0xcf362c1,0x491cf100,0x2bc1e38f,0xd4c0ebea,0x9cc0749e,0x54c1d25b,0x62412cab,0xf0c033f5,0xe7c1e25b,0xc9c0cee1,0x10c04891,0xcbc1e37a,0xcba3c,0xc3fffff4,0xc1d9d89c,0x411c113c,0xc042edd5,0xc1d98712,0x411f0957,0xc04444f6,0xc1e774b5,0xc07f1911,0xc057ae14,0xc1e7af7f,0xc04ae258,0xc04f21de,0xc1e98108,0xc049e692,0xc07c28f6,0xc1e9fbc5,0xbfa2e619,0xc05f01da,0xc1e64217,0xbf12ec5b,0xc03cf98b,0xc1ead138,0xbf15d50b,0xc07c28f6,0xc1ea8b04,0x3e8bad5c,0xc06946cc,0xc1e3864a,0x408eafe2,0xc03cf98b,0xc1e1fbde,0x40defc09,0xc04c8eb4,0xc1e1059b,0x40fb8427,0xc057ae14,0xc1e1e63d,0x40fc7f3d,0xc06946cc,0xc1dfb81c,0x410b4192,0xc15e6666,0xc1e650f6,0x40ac2cc7,0xc15e6666,0xc1e36811,0x40e1bac1,0xc07c28f6,0xc1e8703d,0x406c1028,0xc07c28f6,0xc1e4b878,0xc0b511d8,0xc059eb85,0xc1e4dee3,0xc0c323bc,0xc06a6fa4,0xc1d98a3f,0x41157f45,0xc040dac2,0xc1d0d6e7,0x412b6c22,0xc037ae10,0xc1d2e398,0x412d1ad1,0xc03a036d,0xc1dab8f8,0x41197ec6,0xc04bbcbe,0xc1da3191,0x41245ce4,0xc059eb81,0xc1e8e00e,0xbfb76428,0xc059eb85,0xc1e61b9d,0xbf968e93,0xc040978d,0xc1e7c02e,0xbf13e026,0xc04bbcc3,0xc1e6b4d9,0x4033a68f,0xc04bbcc3,0xc1ca96d1,0xc0d1d817,0xc0632935,0xc1d0b045,0xbfcb84e4,0xc06a6fa4,0xc1d172e6,0x3fe385e0,0xc059eb85,0xc1d84c22,0x40060258,0xc0384142,0xc1c7e38e,0x40f12c2e,0xc10547ae,0xc1c39967,0x411209b7,0xc10547ae,0xc1d0a6d7,0x3f6df30e,0xc10547ae,0xc1c5d3e1,0x410a1c2e,0xc10c0ab9,0xc1c57b61,0x41221736,0xc113edc6,0xc1d0bd8b,0xc0b783a1,0xc1140fe4,0xc1d0f2c1,0xc01bfaca,0xc10d47ae,0xc1d0270b,0xc01b62b7,0xc1096bcf,0xc1d6b65c,0x3dbdfd26,0xc114bc1d,0xc1d10e36,0x3db8fbca,0xc1096bcf,0xc1d3a80b,0x401cabfc,0xc1129d47,0xc1cdd1bf,0x40a3d9b6,0xc10d47ae,0xc1c8111a,0x4106e0c6,0xc11097fe,0xc1d1235e,0xc0a9ced5,0xc113c7eb,0xc1c97b22,0x410ca91d,0xc113c7eb,0xc1e3cb28,0xc0d03185,0xc10547ae,0xc1e537ce,0xc0b576a5,0xc10547ae,0xc1e2eb5f,0xc0b3a4cf,0xc11097fe,0xc1dac448,0x41165714,0xc11097fe,0xc1d5a6ae,0x412352c9,0xc1140fe4,0xc1e84fac,0xc048de87,0xc10547ae,0xc1e5fb4d,0xc046dae0,0xc11097fe,0xc1e5a77c,0x3e88c415,0xc11322ec,0xc1e7cdc3,0x406b6b27,0xc10547ae,0xc1e2e47d,0x408e4a6b,0xc11322ec,0xc1e1d7cd,0x40f16dc4,0xc1047f07,0xc1d7f390,0x41313286,0xc06343d0,0xc1e42aa5,0xc0b4a190,0xc05ccc53,0xb1f10078,0xc04f8b15,0xc1e06664,0xc0e8e706,0xc04db23e,0xc1df398b,0xc0c771a6,0xc041ab7e,0xc1e6bd63,0xc0822dd8,0xc062627c,0xc1e17f1d,0x3f8b250b,0xc03ccc53,0xc1e3ff3d,0x405dfc11,0xc04334f8,0xc1e2e47d,0x408e4a68,0xc0455f5b,0xc1e0c7d7,0x40fb3f1c,0xc06c3bd6,0xc1d8ecb0,0x3feba4cf,0xc03ccc53,0xc1ca15c3,0x410d1511,0xc042cb60,0xc1c6d889,0x4123338d,0xc03cdb8c,0xc1cca433,0xc0bd2227,0xc0644e72,0xc1d0dc1e,0xc0c1083c,0xc041ab7e,0xc1c245af,0x411f6f04,0xc05de619,0xc1d2d9e3,0xc01d666f,0xc04f8b15,0xc1d75a23,0x3dbe8dda,0xc03efa98,0xc1d3a1fb,0x3f715960,0x63f100c0,0x33c1d0f1,0x533fe2f9,0x73c07ccc,0x99c1cfbd,0x9340842a,0xb7c05fc4,0xd8c1cda9,0xd640a3b9,0x4dc06c3b,0x66c1c8ac,0x15410749,0x82c04f8b,0x22c1c66e,0x23410a88,0x22c061c0,0x96c1c1cb,0xfc411f0f,0x56c10604,0x87c1d08f,0x13c00f6a,0x84c10605,0xb4c1d14a,0xfc3f6ead,0xedc10604,0xb6c1d060,0xfc40272f,0xa2c10604,0x75c1ce9a,0xc8901,0xfffffff5,0xcd5da4ff,0x6eac1ca,0xa6ca4110,0x6bddc03a,0x3b49c1cd,0x31cfc0d5,0x27ecc044,0xe128c1d1,0x87e8c0b7,0x5ebc03d,0xa2fac1c9,0x87e44113,0x74f4c03d,0x1b15c1d2,0x6020c01d,0x7bc7c04c,0x9accc1d8,0x5172c021,0x3509c038,0x6cd3c1d7,0xa6ca3dbe,0xe0a6c03a,0x58f3c1d1,0x8ee33f6f,0x3cacc05a,0xe5d6c1d3,0x60203f70,0xc1ffc04c,0xf8f9c1d2,0x54f34095,0x4c3ec03d,0x8a4c1c8,0x601c4107,0xf8adc04c,0xaac1c1d4,0x6edbbf02,0xc402c045,0x5ca0c1d0,0x5172412b,0x6a32c038,0xa3f8c1d8,0x12fd4131,0xaf46c06b,0xdcabc1d8,0xcc4f4131,0x2ac3c07c,0xe105c1e0,0x7e24c0cc,0xdd5ec041,0xb231c1e2,0x1c32c0ca,0x601ec053,0x8e7ec1e5,0x4923c03d,0x854c044,0xbbc3c1e8,0xcc53c07f,0x1138c07c,0xcc4fc1e9,0x8ee33e8a,0xec21c05a,0x4ebac1e9,0x12fd3e8b,0xbda7c06b,0xd0fac1e4,0xd923403a,0x652cc03f,0x8927c1e9,0x12fd3ffd,0xafabc06b,0xda16c1e9,0xcc533ffd,0x38bbc07c,0xd3c8c1e7,0x8ee3406a,0x11e8c05a,0xb057c1e8,0x12fd406b,0xf37dc06b,0xe6e4c1e5,0x12fd40ab,0xc2bac06b,0xfecec1e3,0x8ee340c5,0x4d35c05a,0xd42ec1e1,0x12fd40fb,0x951fc06b,0x2492c1e1,0x47ae40fc,0x5bfbc105,0xfb94c1e8,0x47ae406b,0x1e2dc105,0x9034c1e3,0x37e7c0bf,0x7972c111,0xd22fc1e0,0xcbc6c0ba,0x6d7fc114,0x7b4cc1dc,0xd70a4117,0xf36ac10d,0xf732c1d4,0xcbc64129,0xd0b4c114,0xb50c1d2,0xd110412d,0x2bfc115,0xdb1dc1e3,0x62bbc0b9,0xa5b4c111,0x7141c1da,0x62bb4119,0xba50c111,0x5d64c1e7,0xd70ac048,0x6015c10d,0x3205c1e6,0x62bbc047,0x36aac111,0x9ce9c1e9,0xb603c012,0x9cdec109,0xabdec1e4,0x1b3ac045,0x1d58c114,0xbc0ac1d9,0x650a411e,0xa8b1c112,0xdbb8c1d7,0xdcba4124,0xa086c112,0x96bcc1e6,0x62bb4033,0xdcd0c111,0x36fcc1e4,0x1b3a4032,0x1bfec114,0xef65c1e7,0xb6034090,0x43b7c109,0x67c5c1e6,0xd70a4090,0xebabc10d,0x9002c1e4,0x62bb408f,0x4d35c111,0xd430c1e1,0xb60340fb,0x5935c109,0xc68bc1c5,0x83e64109,0x7ed3c10c,0x8c4cc1c4,0xb603410b,0xc68c109,0x3dfdc1d2,0xd110c0af,0x20a3c115,0x26c2c1cb,0x47aec0b7,0x3306c105,0x994ec1ca,0xd110410f,0x6e0fc115,0x8aa0c1d0,0xb603bf3f,0x236cc109,0x4602c1d0,0x47aebf3f,0x3f51c105,0x63f1c1d2,0x62bb3fe4,0xe3dec111,0xea85c1d0,0xd70a3fe2,0x493bc10d,0x1c37c1d4,0xf5264019,0x974c114,0xfd3fc1d0,0xb6033fe1,0x2f52c109,0x3a86c1cf,0x47ae4026,0xad88c105,0x88afc1ce,0x62bb40a4,0x1718c111,0x735c1cb,0xb60340bd,0x74b1c109,0x9a70c1c1,0x15fd411e,0x2f52c065,0x3a86c1cf,0x28f64026,0x244ec07c,0x5074c1cc,0x46d0c0aa,0x1e4cc069,0xf04ec1cf,0x91c9c09e,0xb86ec048,0xf217c1d2,0x52c1bf68,0x7e7ac047,0x7a07c1cf,0x46cc4026,0xeb45c069,0x3435c1d1,0xf98b408b,0x391cc03c,0xe07cc1d1,0x929c0a9,0xaca7c03a,0x39f5c181,0x1ec9c194,0xe614bf25,0x607cc19d,0x1ec9c173,0xdd1abf25,0xa269c199,0x1ea84181,0x7819bf25,0xf1bf4192,0x1ec9c18a,0x354fbf25,0xedfcc137,0x1ea841b3,0xa210bf25,0xf206c0e8,0x1ea841c0,0x296bbf25,0x507c08a,0x1ea84198,0x545cbf25,0xb1a3c09c,0x1ea841c5,0x1ab5bf25,0x422d3ffa,0x1ea841ac,0x545cbf25,0xb1a3409c,0x1ea841c5,0x4181bf25,0x3268408c,0x1ea84199,0x5d45bf25,0x48c1419e,0x1ea8416f,0x65b2bf25,0x7cc74129,0x1ea84194,0x5c54bf25,0xd18b4183,0x1ea8415d,0x5837bf25,0x48a64160,0x1ea84182,0x4550bf25,0x528cc16e,0x28fec195,0x9484bfec,0x2f33c186,0x28ed4154,0xa879bfec,0xaa92c197,0x28ed4184,0xd6a9bfec,0xd0d74170,0x28fec181,0x4796bfec,0x13f4182,0x28fec194,0xed88bfec,0x71864185,0x28fec16a,0xda59bfec,0x51cdc16e,0x28ed41a2,0x296bbfec,0x507c08a,0x28ed4198,0x545cbfec,0xb1a3c09c,0x28ed41c5,0x35dfbfec,0x12bfb2,0x28ed41b0,0xbfec,0x851f8000,0x28ed41c9,0x13adbfec,0x8faa401d,0x28ed41c8,0xe13bfec,0xafa4412f,0x28ed4193,0x3500b4ec,0xb4ec28ed,0xed08f100,0x1fbfec28,0xc4197be,0xed41843c,0x68bfec28,0x454186ac,0xc95e9,0x94a39171,0x88138d41,0x83f2000c,0xc147ad83,0x416812ce,0xc0a0f5b4,0xc1475a77,0x4166ff8b,0xc0a0f304,0xc147d73e,0x41673963,0xc0a0edb5,0xc147884c,0x41292aea,0xc0a0f5cd,0xc147614d,0x41293a26,0xc0a0f0e1,0xc1468dee,0x4129afe7,0xc0a0eddd,0xc15a6666,0x415f69d0,0xc0a0f1aa,0xc1594bba,0x412ffab8,0xc0a0ed7a,0xc1599097,0x41306a21,0xc0a0f5a3,0xc15965a0,0x4130adaa,0xc0a0f384,0x41047bfa,0x415ddfa9,0xc0bda1c9,0x41047bfa,0x415fcb2f,0xc0bda1c9,0x12789e68,0x909b9322,0x97fca212,0x9540417c,0x99bc0bd,0x74e2000c,0xeac0bd5d,0xfc410427,0xb0414c97,0x62003c7e,0x4187e597,0x18a1c7,0x42fe6231,0x1cf10018,0x41045985,0x416964c8,0xc0bd9c54,0xc0313a9f,0x41966666,0xc0299995,0x409441a4,0x413d999a,0xc029999a,0xc0866666,0xc100000,0xdad57100,0x7876c095,0x73000c20,0x40966666,0xc41999a,0xcc861100,0x300212,0x5c08e51,0x182554,0x95dad571,0x3f878a40,0x6673000c,0x66c08666,0xc2666,0x66c09651,0xc1e66,0x8a8a8762,0x18209ec0,0x687f7100,0x1f15c064,0x44001828,0xc095dad5,0xb771003c,0x72c091b6,0x183bf1,0x86666644,0x62006cc0,0xc08a8a87,0xcdf62,0xd3c36171,0x92311c3e,0x4f100c0,0xc05159bc,0x41783b12,0xc02570a0,0xc0932765,0x1885b46b,0x66664400,0xcc4086,0x39137371,0x84b7e2c0,0xa4710024,0x409441,0x601400,0x61d33d62,0x84525840,0x687f7100,0xe0eb4064,0x44001837,0x40866666,0xa47100c0,0x66409441,0x182266,0x95dad544,0x71011440,0x4091b6b7,0x18240e8e,0x9fba7100,0x5770c006,0x6200788c,0xc03aea29,0x15c365e,0x2e9901f4,0x4ddebe54,0x47ae413b,0x2e99c021,0xc3e54,0x8e666671,0x3aabfb40,0x87710018,0x62408a8a,0xc39df,0xb1018004,0xc02147ae,0xc09441a4,0x18226666,0x1a40400,0x2147ae35,0xae350168,0x12c2147,0x1004803,0x8f10120,0xc02147ae,0x40932765,0x4185b46b,0xc02147aa,0xc0961d41,0xc843ebb,0x8a876500,0x45c9408a,0x8010060,0x47aeb101,0x687fc021,0x1f154064,0x71006c28,0x40966666,0xc1e6666,0x6a04f100,0xca414686,0x7cc13570,0x95c11a14,0xd9c16598,0xc7261,0x626504f1,0x3333c14f,0x147a4173,0x6e74c11a,0xc147,0xf1000c58,0x82433e04,0x207b5c41,0x1a147bc1,0x865b66c1,0x17ac9941,0x4f1000c,0x419520e1,0xc1204bb7,0xc11a1246,0x418d24c6,0x181df2b0,0xccb47100,0x37e3418d,0xf1000c13,0x87ba3704,0x13929341,0x1a147b41,0x9530edc1,0x1d989541,0x7471000c,0x3d414f6e,0x6055db,0x35c604f1,0xb926c17a,0x14774132,0x15d5c11a,0x5adc4192,0x71002428,0x411dc1f9,0x9c56e7f5,0x573c7100,0x9694c166,0x71003032,0xc16756fb,0xc350000,0xd1f17100,0x6d244148,0x71002459,0x413b9580,0xc491c5c,0xf11cf100,0x6741182c,0x2dc18703,0x56c10f5c,0xcc411f5e,0x34c19f04,0x94c10f5c,0xe9c133d1,0x2ac1a686,0x39c10f5c,0x97c11f74,0xcb0b5,0xb9db9c73,0xb18919c0,0x185140e0,0xa7cccdc1,0x710018,0x33c11800,0xcb133,0x34cccd71,0xa2cccdc1,0x28f1000c,0xc1b521a5,0x412581b1,0xc10f5bc6,0xc120021b,0xc19f7a83,0xc10f5c2b,0x408addd9,0x41a737b3,0xc10f5c29,0x412002f3,0xc183f43d,0xc10f5c30,0xc1635303,0x24901f07,0xae777100,0x4b4a40b4,0xf1006caf,0xb1df1104,0xe55437c1,0xf5c29c0,0xb5ee35c1,0xc0dc72c1,0x4a71000c,0xc3c1b461,0xcd3f2,0xb6747871,0xace6cdc1,0xba71000c,0x1c419640,0x601656,0x98b99b71,0x14000041,0x2e71000c,0x7bc0d448,0x6093ea,0x2710f1,0x561a410f,0x5c1c41a1,0xc510c10f,0xf1f94195,0x5c29c117,0x1defc10f,0x40fe,0x6200c0aa,0x4110edce,0x10855e6,0x9999a62,0x3c455141,0x2d28713f,0xd46340cd,0x62009cb2,0x40d20000,0xc5483,0xf0bab673,0xb82eae40,0x18240018,0xf5012041,0x11d4760c,0x9e371741,0xf5c2cc1,0xb66e40c1,0x1850d341,0xf5a6a41,0x1f1232c1,0x9440060,0x784130f1,0xe2117100,0x3333c0f9,0x440048b5,0xc0f0bab6,0x4f50054,0xc10d399e,0xc1a1dc87,0xc138bd11,0xc0b605f9,0xc940247,0x30ed3100,0x71000c93,0xc0d72f5a,0xc9ab0bc,0x25557100,0x957fc12a,0x71000cbc,0xc0ddcbda,0xcb420ff,0xb000f500,0x57c171ec,0x10c028b2,0xdfc138bd,0xc5237,0x587b04f1,0x86b0c18c,0xbd10c119,0xcf93c138,0x76d0c13d,0x71000c04,0xc149c3f7,0xc156a5e,0xd796200,0xc730c184,0xcd710024,0x38c104cc,0x48ebac,0xf1999a71,0xf21a80c0,0xfef3000c,0x41b73c15,0xc11b9de1,0xc13a5deb,0xc16c99f7,0xc0247d07,0xc13b85ea,0xc18ee1dd,0x41204ad5,0xc13a6025,0xc16c690a,0x4126139c,0xc13ba3c0,0x41886a5b,0xc18f0433,0xc13a5e36,0x4181b99b,0xc1926ce4,0xc13a5e36,0x41883cca,0xc11f7dc3,0xc13a5e36,0x418d4941,0xc1123a4d,0xc13a5e36,0x401858d1,0xc193999b,0xc142dc21,0x401614fd,0x417e6667,0xc143f7ce,0x40b68149,0xc193ce9d,0xc143f7d0,0x40d3356e,0xc1991ebd,0xc143f7d0,0xc0d685d1,0xc18cc2ac,0xc143f7d0,0xc0929687,0xc157650d,0xc143f7d0,0x4086b2ee,0x41876b38,0xc143f7a9,0x40dc542c,0xc1b34c1c,0xc1472b30,0x40dcca21,0xc1b3bfff,0xc11ccc9c,0x4133a0f4,0xc1a7accd,0xc11ccccf,0x4141a298,0xc1947bbe,0xc11ccccf,0x40d54aff,0xc1940752,0xc11ccccf,0xc14f9e3d,0xc1994085,0xc11cccee,0xc10a27ca,0xc1afc684,0xc11ccccf,0xc0dcbacf,0xf10030bd,0x107d8400,0x93999a41,0x4a52c9c1,0x5ae905c1,0xd075000c,0x4fc14bf7,0xc6a25,0xb52f12f2,0xa3e840b5,0x2b0241b0,0x4ad1c147,0x5c1940da,0x2b1d41ab,0x7166c147,0x6c1f410d,0x18dfc1a1,0xc001f100,0x41b0a3e9,0xc1472ac0,0xc0bc9e45,0x30b2edb2,0x7104f100,0x6c084d4,0x3c1509d,0x6dc1472b,0x8ac08e73,0xc54fa,0x61bde0f1,0x1250c0d3,0x2b3841a9,0x25e1c147,0x749b4054,0x273640db,0xf4edc14d,0x96a94053,0xa4d3c09a,0x1e32c14d,0xde48c056,0x38f740da,0x92f3c14b,0x363dc016,0x5e3540ed,0x1351c14a,0xf97b4043,0xe3bcc040,0xf41c184,0x9d0fc04d,0x69b4c098,0x4a7c183,0x63f1c02c,0x52cfbe6c,0xe905c185,0x7a23415a,0xf7cfc106,0xae2c14b,0xe252415d,0x12534152,0x4000c184,0xe1a2416a,0x2b014160,0xdbcbc147,0xd7674158,0x4c3241a0,0x8f93c13b,0xcccec103,0xed9741a0,0xad14c184,0xccd2c117,0x34041a0,0x79bfc140,0xcd4d4118,0xd31c41a0,0x8812c13b,0xd118c117,0x28f541a0,0xe1f4c13c,0x263dc040,0x29bf41b8,0xf58cc13c,0xa31ec02e,0x282641a5,0x419fc13c,0x2f764115,0x256d41bc,0x58b8c13c,0x5d654103,0x291c41a5,0xf200c03c,0x2529ffff,0x35c0d2c9,0xb3c14a5e,0xcc01db7,0xa6c0d4d9,0x9c1838f,0x92404a53,0x3140de4a,0x36c1843d,0x39402173,0x7f40ea17,0xdfc184a3,0x744116dc,0x20c19db3,0x3ec14720,0xf54122c6,0x19c1a432,0xc0c13a3b,0x4c415c3b,0xacc193d1,0x96c13a56,0x3c411fa9,0x74c18409,0x53c13a3c,0xa4415ae7,0x96410f6d,0xc4c1472b,0x35415b01,0x4c4150f1,0x7bc1472b,0x6141a260,0xd0c15a90,0x7bc14bf7,0x4d41a260,0xcfc0f74a,0x56c14bf7,0xab419ac2,0xd0c16f88,0x80c14bf7,0x5841a17f,0x75c0f74a,0xeac18394,0x2741a218,0x22412c7a,0x1fc14386,0xd8419593,0x61411d51,0x15c1319a,0xd541b43e,0x34c112e7,0x4c12a25,0x75419617,0x35c1157f,0x18c118f4,0xc041a43b,0x2c10943,0xf6c118f5,0x6c41b430,0x8b4112f4,0x6dc12aa5,0x2141aecc,0xaec105ec,0xfec1330e,0xe0419ab4,0x2bfb764,0x23c1472b,0x2c418296,0xc4414b5f,0xf8c13199,0x4cc169fc,0x60414f93,0x3dc1472c,0xafc15aca,0x2410f47,0x21c1472b,0x20c1a224,0x704121c6,0x8cc14728,0xb4c14f21,0xdcc199c7,0xe5c129e7,0xd3c18b4e,0xcd4125ef,0x72c13198,0x2641a103,0xe1410069,0x34c18497,0x2a419c8f,0xf13f8152,0x8fc1853c,0xa2413dab,0xe241236d,0x53c1207a,0xcd412f07,0xe24122b7,0x93c1207a,0x6fc15b92,0xe2c15774,0xfbc1207a,0xa440b8ae,0xe2bfd852,0xbc1207a,0xdbc18050,0xe2c1348c,0x74c1207a,0xc1576e,0xe2c15800,0x7fc1207a,0x4dc17ae3,0xe2c112ac,0xbdc1207a,0x8941820e,0xe2c12143,0x9ec1207a,0x2ec187b1,0xe1c0f845,0x63c1207a,0x1f408b1c,0xe240933c,0xf7c1207a,0x31c149c3,0xe2c1140b,0x84c1207a,0x65412e14,0xe241066e,0x14c1207a,0x2b40b868,0xe24069bf,0x84c1207a,0xbc101bc,0xe2c025d3,0xc1207a,0x74418800,0xe1410f6e,0xc3c1207a,0x4f4152be,0xe0415350,0x9dc1207a,0x7ec187b1,0xe1410b65,0x2cc1207a,0x6c411aee,0xf100b46b,0x1ee40f04,0x55b87641,0x207ae2c1,0x24c6c6c1,0x4f881e41,0xdf4000c,0xc154d208,0x4136ba79,0xc1207ae0,0xbdf48451,0x3f9a2110,0xc1207ae1,0x408a79d3,0x10f1006c,0xc1470e7a,0x3fe1ba2c,0xc12f5c2a,0xc0d759ef,0x4077f76a,0xc12f5c2a,0xc104e0ab,0xc90ca82,0x702f300,0xcd40b64f,0x2abfede6,0xecc12f5c,0x6e40b698,0x28f10024,0x41960000,0x41100001,0xc1a26666,0xc06ccccd,0x4140cccd,0xc0a428f6,0xbf5a95ea,0x4199f50f,0xc187fff5,0xbf1fee2d,0x41a70f2a,0xc187d9e1,0x3f881028,0xa0a14822,0xd25b6232,0xa80d3f45,0x6671000c,0x883f49bc,0x189a26,0x1ce2d271,0x9be2db3f,0x6b96000c,0x57bf212c,0xf6419ff1,0x19f73594,0x89841941,0x9358f3c1,0xa44eab3e,0x9e7be741,0x1dcb58c1,0xa0f7e6bf,0x9e75c841,0x935116c1,0xa66667be,0x9ffc2841,0x22f10048,0xbdb2c1a0,0xca113f72,0x31a541a1,0x3098c1a0,0xc342bf52,0xffed41a5,0xfbc2c19f,0xc3aabdea,0x941a8,0xcf42c1a0,0xbf933eee,0x41a7,0x3100a8a0,0xc9eb7de,0x9c0600,0xc1a009f1,0xbdf99fe4,0x41a8da96,0xc19d3e54,0xbf7a4d3c,0x419bf1ed,0x32c43cac,0xcbf01f1,0x7141a71b,0x1c19d3d,0xe3bf3b2f,0xca64d,0xfe5008f5,0x9f57bf8a,0xa6db41a3,0x6becc19c,0x982d3f01,0x3c7c41a7,0xb100609d,0xc19d3d71,0x3f5728fa,0x309aa353,0x7101f400,0xa83f838d,0xa4419b3d,0x92c19c67,0x543f1b06,0x5207f100,0x503f2644,0xa41a88b,0x45c19bd7,0xa63c772b,0x2e41aa60,0x4135c4dd,0x9774b03f,0xb8040018,0xd70a2132,0xbf140018,0xe8040018,0x180a1232,0xf1bf4133,0x30a74e,0x96ddf8b5,0xa3d20ebf,0x965d2f41,0x2fb10030,0xfdc1965d,0xf0befef9,0x1896d3,0xa2003004,0xc1965d2f,0x3ed652bd,0x1893d0,0xfef9fd44,0x400243e,0x2f340084,0x3528965d,0x3003c01,0xc013594,0x325d7100,0x7a293f92,0x4000ca2,0x2fb53e94,0xb6c1965d,0x3be2410,0x18a881,0xc999a22,0x32dc0400,0x965d2f35,0xc030108,0xb83f4136,0x309946,0x267004f1,0x1619bf86,0xa2d1419e,0xcf42c191,0x406dbeee,0x71000c98,0xbf2b95a3,0xc9946b8,0x33a80400,0x31002404,0x18a7bf93,0xcf424400,0x303eee,0x3339c04,0x74013648,0x480301,0xb9483f41,0x440030a6,0x3f1b0692,0x50043384,0xcd11201,0xfbf3233,0x40078b1,0xd1b10144,0x78c191a2,0x85bd5662,0x33309620,0x96c30171,0x9ca6b5bf,0xc8040048,0x28f63401,0xf237988c,0x28f64100,0xd5aec18c,0xca8fbf9e,0x1c0741a2,0xf31363c,0x1898b1,0x31005404,0x988c28f6,0x2c103501,0x40018a9,0x60040048,0xf620f100,0x19c18c28,0x523addc6,0x341a918,0x8ac18ac0,0xe3bf8372,0xb141a33b,0x94c18ab0,0x563f8016,0x8f41a324,0xa2c18ac2,0xef3f837c,0xca288,0x3039004,0x3f413384,0x18a64de3,0xf804f100,0x63c0e828,0x9a40d7fd,0xf0c1a999,0x48c1003a,0xce998,0x178f7b71,0xf7be27c1,0xb171000c,0xa1c12cf7,0xcf556,0x33dd3371,0xf15d5bc1,0xe871000c,0xf5c0c487,0xc0c2a,0x56bd9171,0xb676b2c1,0x4f1000c,0xc1051809,0x3d433d6c,0xc1a9999a,0xc15ea022,0x187f7304,0x4004f100,0x42c11b23,0x9abe6808,0xeac1a999,0xf8c12688,0xc55c5,0x5c399471,0x2a39b0c1,0x10f10024,0xc140c6b9,0x3ec2abac,0xc1a9999a,0xc154eaa3,0x3fd1ca43,0xc1a9999a,0xc150c36f,0xca2f6b6,0xfb257100,0x4dbac14b,0x6000c70,0xaf7003c,0x6362c1a1,0x560c158,0x999a4002,0x44cfc1a1,0xe73ec125,0x999abe5e,0x620078a1,0x7479c1a1,0x6cc0c2,0x5dc1a162,0x9cc0bda7,0xc1a19100,0xc0bf42ca,0x3c8dfd09,0x6c7f4200,0xccc0cd,0x120a117,0x114a117,0x25c1a191,0xaac14bfb,0x30d30e,0xf100e406,0xb1ffffff,0xf626c1a1,0x49d54127,0x51b14134,0xad52c068,0x557b4125,0x51ec412e,0x71eac068,0xa14d411f,0x28f640ec,0xf054c0b4,0x864d4124,0xf5a54194,0x5a9dc0d0,0x1d6c1b6,0x9ca640e3,0x3f0bfcd,0x3ac7c1a2,0x70a44089,0x9236bfcd,0x2fd940c5,0x709b4194,0x3482bfcd,0xfa1fc121,0x84dcc1b3,0x6501bfcd,0xcd1441bf,0x7037bf77,0x6380bfcd,0x89983fa3,0x72b441b6,0x6d61bfcd,0x31253e94,0x709b41b9,0x5276bfcd,0x66edbf1f,0x709b41c5,0xb6acbfcd,0x3e3a40da,0x208ac1b7,0x887bfce,0x1a340c8,0x70a4419d,0xf819bfcd,0x9d4ec132,0x7ad5c197,0x247ebfcd,0xb140c1a2,0x709b40e0,0x5e1abfcd,0x5fbdc1c4,0x7321c0b2,0x1980bfcd,0xc472c1a1,0x70a44085,0xfe3dbfcd,0x5eec1a0,0x70a440e5,0xea36bfcd,0x3313c1b0,0x70a44115,0xb70bfcd,0x9d454092,0x709b41b1,0xf102bfcd,0xa00c0fc,0x715441a8,0x50b7bfcd,0x922bc0ff,0x709b419d,0x7cacbfcd,0xafe04112,0x70a44082,0xba32bfcd,0x746640e8,0x709b41a2,0x2af8bfcd,0xd413c0d4,0x70a4c0bd,0xe2b2bfcd,0xc775c17f,0x70a44076,0x3691bfcd,0xbbf64167,0x742e410f,0xa6f8bfcd,0xa8941ba,0x70a4c116,0xd8fabfcd,0x147241b2,0x70bdc109,0xdd5cbfcd,0x5a6b41b3,0x70a4c106,0x7f5cbfcd,0x7269c17e,0x70a44080,0x992abfcd,0xc32a419f,0x709b4116,0x9a8dbfcd,0x38e6c091,0x709b41a2,0xceafbfcd,0xd594c096,0x709b41a2,0xf73abfcd,0x806bc094,0x709b41a2,0xe00dbfcd,0x49a0c092,0x709b41a2,0x8bb5bfcd,0x708cc19e,0x6e3fc179,0xd5cbbfcd,0x5232c099,0x709b41a4,0x2bd8bfcd,0xa20c1af,0x70a44118,0x1069bfcd,0x2168c1a3,0x70a44118,0x629ebfcd,0x760cc1bf,0x701ebf77,0x8142bfcd,0x5cddc1c8,0x797d401a,0xee37bfcd,0xa874c0b4,0x6fdbc195,0x6e9cbfcd,0x334dc052,0x709b41a2,0x353cbfcd,0xdf8d4115,0x70a44085,0xb52dbfcd,0x6b841c1,0x70a4c0d7,0x181ebfcd,0xe5cfc09a,0x709b41c3,0xe571bfcd,0x7b8cc0a8,0x709b41ba,0xcd46bfcd,0x742c4094,0x70a4c14b,0x1ec3bfcd,0x133b4163,0x7093c1a7,0xbcbabfcd,0x2e84414b,0x70a440da,0xd832bfcd,0xce51417e,0x70a44081,0x37c1bfcd,0xf317c1a1,0x709bbf73,0xa933bfcd,0x2b82c1bc,0x700d4088,0x8bdfbfcd,0x851b40fc,0x709b41b1,0xd84dbfcd,0x8b9041b0,0x707a4115,0x64f9bfcd,0xbd8941b0,0x70a44116,0xd8f1bfcd,0x9ce1c116,0x73e2c191,0x2bd5bfcd,0xa2141af,0x70a44118,0x9e62bfcd,0xc51d41af,0x70a44117,0x511fbfcd,0x9eacc1a1,0x70a44116,0x823bfcd,0x54ce41b0,0x70a44117,0x7eecbfcd,0xb0fac1a1,0x709b416b,0xd341bfcd,0x2546c0c8,0x70acc150,0x78b8bfcd,0x35dbc111,0x70724083,0x6573bfcd,0x2c08c0c7,0x70a4c09e,0xb0fcbfcd,0xb7584126,0x7093419c,0x30cdbfcd,0xc071c0d8,0x70a4c140,0x9020bfcd,0x5d81419b,0x7a2d417c,0xf7cabfcd,0xa9c34112,0x70a4c11c,0xd90ebfcd,0xa04b4111,0x70a4c11b,0x25f6bfcd,0x5fad4097,0x70a4c0a3,0x5d16bfcd,0xb40640b4,0x709b4191,0x10b2bfcd,0x9cc040ae,0x709b4192,0x1a68bfcd,0xf285c18a,0x754b4190,0xd51bbfcd,0x56fb40ab,0x709b4193,0xe88abfcd,0x6ed4c094,0x70acc14b,0x37bfbfcd,0xe7e4c0a7,0x70acc147,0x840bfcd,0x2244c097,0xf400b449,0x37bf46ff,0xb1b6c0a7,0x70a4c141,0x1946bfcd,0x4d8c0b0,0x9803c196,0x3c25c079,0x9af940ba,0x9946c1a8,0xef33c079,0x971440dd,0xced9c1b9,0xbaedc09c,0xecb41ca,0x38c5bc71,0x6447c07b,0x333341c3,0xcccfc0d3,0xe98dc09c,0x69f416a,0xcccdc1a6,0x2f57c09c,0xb85941b0,0x1eb64146,0x1593c0dd,0x666641b1,0x1eb6411e,0x3f26c0dd,0x9f5c413f,0xb82c41a1,0xef64c046,0x56a04149,0xf5c2419a,0xc880c108,0x53c44172,0x1eb84187,0xe57dc0dd,0xfbc6c1c1,0x259ec0e0,0x49c0c0dd,0xfd09c1ae,0x1e86c11e,0xd6d7c0dd,0x3c4c162,0x1f38c192,0xf809c0dd,0x61a9c1af,0x1eb8c143,0x96f7c0dd,0x375ac196,0x1eb8c16e,0x15b8c0dd,0xc474c199,0x1eb64167,0xf1e5c0dd,0x772c408f,0x1f0c41b2,0x863bc0dd,0x61e2c1a7,0x1f214133,0x8c70c0dd,0x172cc1b1,0x1e73411e,0x8d6ac0dd,0xc1b84102,0x1eb641a6,0x1bb2c0dd,0x9434c0b0,0x1f8041c5,0x160ac0dd,0xe50cc103,0x1e5241a6,0xf351c0dd,0x6d2e4182,0x1eb8417b,0xe5cec0dd,0x703341b0,0x1eb8c11a,0x999ac0dd,0x41b1,0x1eb8c0e0,0x2b26c0dd,0x72eb41a9,0x24e8c15c,0xc0dd,0x59883ea0,0xa4f004f1,0x86903e25,0x51e741ac,0x9069c068,0x322dbf0a,0xf1000caa,0x9d07ee10,0xa38b95c0,0x684ae041,0x51e35c0,0x8a6c05c1,0x6843d941,0xd7628bc0,0x96fb24c0,0x3f20024,0xc0ca191e,0x419f7b76,0xc06851c2,0xc0c98551,0x18e0f3,0x935aa571,0x94f0e8c0,0x3710024,0xe2c0bcee,0xc91ef,0xeb6c28f1,0x6b60c095,0x4c7b41a1,0xe235c068,0x2a7a4120,0x51ec40e0,0xfb1c068,0x2ed54158,0x561940e6,0x83cc068,0x525fc0cd,0xf5c2418d,0x6632c108,0x72f9c0e3,0xf4000c95,0xb014714d,0x1b184f41,0x8f6a1c1,0x64dd11c1,0x909082c1,0x8f67dc1,0x410071c1,0x92ba25c1,0x8f5cbc1,0x3378d6c1,0x980a7ac1,0x8fe24c1,0xb731fcc1,0xcb31bec1,0x8f5c3c0,0xb8777bc1,0xbb8aa0c1,0x8f5c3c0,0xb8e881c1,0xaacf5bc1,0x8f5c3c0,0xb30ef2c1,0x187ec0c1,0xf1001841,0xf87fd000,0x8f5c340,0x912ac9c1,0xa0e14840,0x10f10078,0x411cf6dd,0xc18c1914,0xc108f5c4,0x413380da,0xc197cf16,0xc108fd7b,0x413fc185,0x249e0773,0xa9c7100,0x6b934145,0x71000c9c,0xc1592a5d,0xc735c29,0x62fa7100,0x3087c128,0x71000c8a,0xc116d970,0xc87971b,0x1b04f100,0xe8411710,0x87c187d1,0xe2c0e1eb,0x1b411e08,0xc83a3,0xa0713df4,0x6b86c128,0xeb834186,0xf5b0c0e1,0x3d6b40b0,0xf80e4170,0xc888c0f0,0x83240b6,0x796a413a,0x3968c0eb,0xa2ec416a,0x291c3ed0,0x1c4bc0e4,0xe555c190,0x28f64100,0x4d5ec0e4,0x91cc14d,0x28f640e6,0x91cc0e4,0xcc0f6,0x728204f1,0xa16ec18b,0x28b34132,0x4d09c0e4,0x763c413a,0xf5003010,0xffffffff,0x4ad6bf64,0x3d1f1a41,0xe42b3d41,0x93e36bc0,0x33d7841,0xe4292c41,0x65ec23c0,0x945e9c41,0x46bc7340,0x4cb88fc0,0xa1d05f41,0xe5417b40,0x38f1cac0,0xa4b1d541,0xe53f8abf,0x8be7c5c0,0x2bc61bc1,0x46b69a41,0x8302d0c0,0x21ee2ec1,0x46b86b41,0x91d656c0,0x80126c1,0x46b83041,0x87ab72c0,0x3e8d9c1,0x46b76b41,0x4f24b0c0,0x3ff60341,0x46b82441,0x118579c0,0x385c2fc1,0x46b85ac1,0xff09fac0,0x3d5748c0,0x46af36c1,0xde3aa3c0,0xea62fcc0,0x46b16cc0,0xb06671c0,0xf0bab2c0,0x468462c0,0x352633c0,0xabbccb41,0x46b86bbf,0x576e49c0,0x6ea03841,0x46b856c1,0x93501cc0,0x1f6e4941,0x46b852c1,0x898390c0,0xe2c515c1,0x46b852c0,0x6103dec0,0x7fab541,0x46b873c0,0x5b35abc0,0x11b479c1,0x46b8bfc1,0x9281afc0,0x7379c0c1,0x46b87cc0,0xc1b209c0,0x63a506c0,0x46cc10c1,0x6d79e4c0,0x342f8841,0x46b86f40,0x92d2d2c0,0x592c4fc0,0x4656ebc1,0x6ab3dec0,0xb136f841,0x46b84ebf,0xe688a0c0,0x88869ec0,0x46d1fec0,0xa0365bc0,0x56cc1540,0x46b8f1c1,0xb9ab54c0,0x716588c0,0x46c14cc0,0xef451ec0,0x559a11c0,0xb3342fc1,0xb55f22c0,0x3879e1c0,0xb33333c1,0x25a27ec0,0x553dafc1,0xb333dfc1,0xf9bb62c0,0x3e6766c0,0xb335a2c1,0x8b187ec0,0x382ae2c0,0xb2f7e0c1,0xab6a46c0,0x2ac270c0,0xb30a2fc1,0xd2c62cc0,0x3d94acc0,0xb33333c1,0x492517c0,0xe57e5ac1,0xb33472c0,0x58c6b1c0,0x105fc7c1,0xb333f0c1,0x9411acc0,0xefccc4c1,0xb3337fc0,0xad14ddc0,0xa06d07c0,0xb33333c0,0xa94316c0,0xea5ff6c0,0xb2f475c0,0xc82e2cc0,0x7a332fc0,0xb32763c0,0xa112f7c0,0xe91509c0,0x6b62e1c0,0x841d2ac0,0xa02025c0,0x84ec9ac0,0x8dd880c0,0x359f9dc0,0x8f09c2c1,0x64d25bc0,0xe4aa93c0,0xb33333c0,0x4e6ae4c0,0x3cdd8ac0,0xb3326ec1,0x4e8976c0,0x3ce2df40,0xb333b3c1,0xd4651fc0,0x241f4fbf,0xb33333c1,0x63dedbc0,0xdd59b040,0xb33333c0,0xcf6955c0,0x2532a23f,0xb33333c1,0x44bc4dc0,0xbc18df40,0xb3335dc0,0xd82d51c0,0x22d3103f,0xb33333c1,0x4a74c3c0,0x519fb5c1,0xd003acc1,0x16cd7ec0,0x421291c1,0xd021e4c1,0x54de05c0,0x442588c1,0xcfff5fc1,0x3a64a0c0,0xdccae2c1,0xd02c9bc0,0x74122bc0,0x9ad0c8c0,0x85f0fc40,0x7b5d4fc0,0x5abffdc0,0x66b802c0,0x80c533c0,0x59227540,0x66b852c0,0xa35c31c0,0x2b45aa40,0x66b852c0,0xa8afeac0,0x18ba6f40,0x66b852c0,0xb0463dc0,0xaeb44e40,0x66b65240,0x466666c0,0x96e36d40,0x66b85240,0x718351c0,0x9a3cb040,0x84e92740,0x9597c4c0,0x45206d40,0x66b85240,0x78b4bbc0,0xb18c11c0,0x50eceebf,0x863635c0,0xf5c01ac0,0x66b852bf,0x67e760c0,0x7a7f9140,0x56be6240,0x641755c0,0x88d8f340,0x653bda40,0x825f3bc0,0x810ff140,0x656a6e40,0x6c02fbc0,0xf507d140,0x595a71bf,0x8f3f59c0,0xae951040,0x653bdebf,0x9408e1c0,0xb3b26840,0x66b6d0bf,0x4876f0c0,0x3a083141,0xf0f5c341,0x4e9e56c0,0xe4e299c1,0xb1ed6140,0x4cd355c0,0x7010a4c1,0xb428c641,0xb3db73c0,0xdf07c240,0x66a6ce40,0xb13542c0,0xde726b40,0x26b85240,0xb13542c0,0xde726bc0,0x26b85240,0x879592c0,0xbb814940,0x26b63940,0x6d7edac0,0x72f591c1,0xb1b89941,0xf27c70c0,0x674e2bc0,0xb428c141,0xd46419c0,0x30dc9840,0xb428f841,0xcceaffc0,0x34d14a40,0xb428f641,0x91b7ccc0,0x62c84fc0,0xb428f641,0x108477c0,0x3bd664c0,0xb428f641,0x2f7b89c0,0x1ef251c0,0xb428f641,0xaffef1c0,0x8de42640,0xb428f441,0xfb1d58c0,0x711484c0,0xb4290441,0xd18febc0,0x31739340,0xb428f641,0x53ce46c0,0x34de99c0,0xb428f641,0xf4c3ddc0,0x7a152c0,0xcbeb3e41,0xf0bab6c0,0xa3d152c0,0x9428f441,0xab3333c0,0xa1877cc0,0x9428f441,0x961defc0,0xb53333c0,0xf10018,0x41ba7884,0xc09428f4,0xc0b9178f,0xcbbe8ca,0xe8713500,0x71000cd6,0xc0ffa329,0x18b1ba1c,0x7100,0x1261c0d8,0x71000ca7,0xc0d0483f,0xca645c9,0x7100,0xc0c8,0x71000cb6,0xc0e6e8de,0xcabedf0,0x7100,0xc0e8,0x71000cae,0xc0b15f61,0xcb3a828,0xb7c17100,0xba3740bf,0x62000cb5,0x4098e363,0x543333,0xa1888b71,0xa4622340,0xcd710018,0xd940accc,0xca238,0xac498671,0xaa000040,0x2162000c,0xe5409374,0x71000c7a,0x40e6e8de,0x18b01210,0x4400,0x6c40e8,0xb9eb9671,0xa0dd0840,0x9a350018,0x189199,0xd6146a35,0x9d715a90,0xcd40f71c,0x24b4cc,0xdea09f44,0x35009c40,0x30a80000,0x483f4400,0xe440d0,0xd6146a35,0x75710054,0xdd40ee77,0x3cb79d,0x359c404,0x40140120,0xb4020120,0x24b21100,0xe3633500,0x35006c98,0x3ca1888b,0x3500,0x625ab4b8,0xc0b80000,0x5a18ed9f,0xd0483f62,0x3cba37c0,0xbb807118,0xc68cc0aa,0x7118fca9,0x40a1b39e,0x54b79318,0xaef77118,0x812a4093,0x71000cb1,0x40c80000,0xcb60000,0x5fad7100,0xaf8940ae,0x710030a8,0x40d604a7,0x18bb1442,0x3100,0xb1006cd8,0xc10f5c28,0x40e314be,0x18b9b9f7,0xb67a7100,0x40e3,0x44000cb2,0xc0e314be,0xa7440018,0x3cc0d604,0xeb423500,0xf10018ac,0x1caa5610,0xa2d79141,0x46b85241,0x8a4bf0c0,0x82a9de41,0x46b3c441,0x853fa5c0,0x7b9edf41,0x34f20018,0x41a0bb6f,0x414c26f0,0xc046c975,0xc11d39a7,0x41acf017,0xc046ab11,0xc1a0da71,0x414a2fe9,0xc046b739,0xc1b167b5,0x411d119a,0xc1006543,0x41b121ed,0xc0e00000,0xc1006666,0x41c82e19,0xccdf58e,0xc027f100,0x5a4b41cf,0x67a7beb9,0xbf53c100,0x21ec41ca,0x225740bd,0xf14ec100,0xa97f41af,0x66d2411d,0x7ed8c100,0xbcd5419f,0xc4a4c147,0x3576c046,0x5e2240fd,0xf419f895,0x16c3f3d9,0xb21ed7c1,0x9cd1e7c1,0x475542c0,0xb15cfac1,0x9ccd6ac1,0xf55d10c0,0x9ce14dc0,0x9cccbac1,0xf9c763c0,0xa9354040,0x9cce44c1,0xc95587c0,0xcc1fb0c1,0x7b65cbc0,0xc9ef33c0,0xb8fd6541,0x7b343340,0xc3721bc0,0xd11e82c1,0x7b352bc0,0xc0d93cc0,0x14bea1c1,0x7b4f1641,0xb97007c0,0x1be5a2c1,0x7b332f41,0x89b639c0,0xb8003940,0x799a63c1,0xa6e731c0,0x1bbad8c1,0x46b852c1,0x7be4a0c0,0x867ae8c1,0x46b856c1,0x7ce79bc0,0x882ae2c1,0x46b863c1,0xac4872c0,0x21f213c1,0x46b852c1,0xa8e0c8c0,0x1ab41cc1,0x46b856c1,0xa85b53c0,0x1a6dd0c1,0x46b852c1,0x84db4dc0,0x884dcac1,0x46bd0ac1,0xfef082c0,0xa6162040,0xf5c2ac1,0x116d59c1,0xaf10ac41,0xf5c2ac1,0x3087bfc1,0x71001841,0xc11bba1c,0xfca9c132,0x2501f400,0xe1c10d10,0x2bc19d54,0x76c10f5c,0x14c0fd35,0x19517101,0xc1d7c122,0x4400189c,0xc1316545,0x82440018,0x48c0fef0,0x4d5e7100,0xcbefc10b,0x710048ad,0xc125e8ca,0xca4a9db,0xfe446200,0x261ec12d,0x18710060,0x59c129f5,0x18abc7,0x24b2a235,0x1f710030,0x4411c24,0x18aa87,0x20000035,0x58625a24,0x21410b7a,0x71009006,0x4123504f,0x24a874f4,0xc2217100,0xca2e4122,0xf100909b,0xdd1520c,0x9db576c1,0x66b856c1,0x148c19c0,0x92c57cc1,0x66b8d0c1,0x1445e4c0,0x56b100d8,0xc1c066b8,0x3bc10fb7,0x24b241,0x10cccd62,0x18090fc1,0xd1527100,0xe424c10d,0x710018a7,0x4113dbe1,0xc9b1295,0xb67b7100,0xcccd4133,0x71000caa,0x40f22e45,0xca6f0ec,0x5f627100,0x1d1c4101,0x35000cae,0x301c241f,0x3100,0x4200b410,0xc066b856,0x6c021bfc,0xdb3d7100,0xcccd4125,0x7100309e,0x4120483f,0xc93585e,0x8b917100,0xdedd4108,0x2000ca4,0x9a11006c,0x62000c,0x2e412000,0x620084df,0x4123504f,0xd824a5,0x4012004,0xbd31003c,0x30a0ba,0xf8930a48,0x6003c40,0x28240084,0x355af041,0xb42ea09e,0xfffff100,0x103843ff,0x17cac15d,0xa1e8419a,0xc84c046,0x5a9ec03d,0xecbb41a1,0xc1f8c067,0x86293bf9,0x733b41b8,0xcd0c05f,0xc773bf92,0x3c7541b5,0x7d85c063,0x9a153f99,0x8f0c41b5,0x6363c060,0xa71bbf3a,0xb55741b5,0xc3b1c067,0xbbec4067,0x30be419c,0xb392c079,0x5b53c08f,0x5847419c,0x4b0ec07c,0xa37140d0,0xf5b64132,0x512cc0d0,0xc1b04135,0xf5c34139,0xcb3bc0d0,0x6e9f4135,0xf5c04192,0x6605c0d0,0x30c14134,0xf5c04193,0x743cc0d0,0x6b3e40b5,0x349418f,0x24b5c0b1,0x6066409e,0xa07f4193,0xc7c1c0b3,0xc5cd40a0,0xa07f4191,0xab54c0b3,0x47f740a0,0xea21419b,0x5dec0b0,0x5fd6c014,0xf8574138,0x8184c0af,0x725bc03d,0x3c304135,0x690ac0b0,0xd220bfe7,0x1f2a412e,0x347c0b0,0x645ac057,0xdaad412d,0xc0b3,0x252cc020,0xdaad413b,0xb70bc0b3,0x44c3bfe0,0xdaad4134,0xda45c0b3,0xc155c003,0x422b4124,0xe664c0b0,0xaac1c046,0xdaad4123,0xb930c0b3,0xd519bfd5,0xdaad4129,0xe782c0b3,0x2f0c00d,0x27ca4136,0x704ec084,0x2e0c41a1,0xf360c0cc,0xb8f1c0aa,0x272641b1,0x4d77c105,0xdf47c0ab,0xdc7241bc,0x4d664006,0x709cc0ab,0xb5f641a1,0xe1284080,0x6ba3c0aa,0xefb741bd,0x3fadbf97,0xd665c0ab,0x5d2741b2,0x809fc103,0x6ab5c0a4,0xe24c41a1,0xd9c9c104,0x2d84c0aa,0xd7de41bb,0xb1cd4080,0xeee8c0aa,0x362ec1af,0x809d4112,0x21a0c0a4,0xc09ec1b3,0x809d4101,0x8695c0a4,0xd6b0c1b4,0x668e40ee,0xf352c0a9,0x8c63c1a2,0xe0224113,0x83d4c0aa,0xa3f9c1bd,0xc54e400e,0xeecec0a7,0x52cac1a2,0xf308bf97,0x6a54c0aa,0xbaae41a1,0xd9a1c046,0x7376c0aa,0x991541a1,0xdce44113,0x3648c0aa,0x99fc41b4,0xe67d40ed,0x7adc0ab,0x701cc17b,0xc815c11c,0xa90fc017,0x6d0fc17a,0x562e4084,0x4faac013,0xd745c17e,0xc2b14078,0xf2a4c017,0x1a31c114,0xadfb4083,0x2316c017,0xd23bc111,0xcab4c118,0x7a4ec014,0x4a174111,0x87cf4077,0x5c06c017,0x69a54115,0xd4bf4084,0xb20cc013,0x531e417a,0x8a934083,0xf356c017,0x5992417e,0xed244077,0x5687c013,0xaae3c194,0x28f7c130,0x799ac110,0x18cc194,0x28f64120,0xf57ec110,0x1ed0411c,0x28f7c183,0x73b6c110,0xf3054157,0x28f7c170,0xb019c110,0xcfb94127,0x28f7c184,0x96a8c110,0x520c128,0x28f5418b,0x8948c110,0x7efd41a9,0x28f6c12d,0x515bc110,0xd9fc4194,0x28f6c11f,0xcccdc110,0x90b4194,0x28f6c11a,0xda8fc110,0xa21741ae,0x28f6c11e,0xcccdc110,0x6c6e41b0,0x28f6c10a,0xaae2c110,0xad0ec168,0x28f7c170,0xc315c108,0x9629c172,0x28f7c18e,0xcaadc108,0x83dec158,0x28f7c194,0x8965c108,0x51e1411a,0x28f7c18c,0x274cc108,0x291e4116,0x28f7c187,0x371ac108,0xca994153,0x28f7c193,0xe9ec108,0x5dc54128,0x28f7c18b,0x595ac108,0xe9e9415d,0x6003c6c,0x817009c,0x1ef10090,0x4e21c108,0x741441af,0x28f6c11c,0xaae2c108,0xad0e4158,0x28f54170,0xcccdc108,0x6c6e41b0,0x28f6410a,0x256cc108,0x6deb41ae,0xf2000c22,0x9000001b,0x40ccce40,0xa1c28f41,0xc9bdc7c0,0x748217be,0xd4d20b41,0xf33f42bf,0x77179fbd,0xce9cd441,0xbf,0xc57ac00,0xf5777100,0x3eea,0x71001870,0x3ead61b3,0xc6a94f2,0x32e87100,0x5d36be75,0x62000c69,0xbe6af577,0xca428,0xa6241462,0x24cedf3e,0x59327100,0xd4cc3ed4,0x71002473,0x3ead61b3,0xc756b0e,0xd8f97100,0x9940bdfd,0x62000c68,0xbdf33f42,0xce861,0xecd81244,0x44432cbe,0xbef532e8,0xe8440078,0xc3ef532,0x6200,0xa9970000,0x62009c,0x69000000,0x44003c56,0x3dfdd8f9,0x32710054,0x343ed459,0x606c2b,0x5a5704f1,0x72d2bece,0xf5ba4176,0xbab6bfc8,0x8f4fbefc,0x62000c74,0xbf02cdf2,0xcb852,0xb09a55f4,0x520fbf15,0xd4174172,0x9c67bfc7,0x80b9bfa2,0x646f4184,0x3858bfc6,0xd44ebff9,0x60fe4172,0xd2b7bfc6,0xaebebfa5,0x66884157,0xb542bfc6,0x8a894009,0x5ff24176,0x3dc0bfc6,0x67f53fa5,0x64cb4158,0xa7ebbfc6,0xab473fad,0xcccd414e,0xd19abfec,0x715e3f03,0x50094148,0xb7e5bfe9,0x906c4002,0x159cfff2,0x103f9c6f,0xd8415354,0x28c0099a,0xf2bfffd2,0xc44165f2,0xeebfeccc,0xc63f287b,0x1e414d32,0xf5c00cdf,0x38becbd7,0x6c4189c9,0xb9c00a3d,0x8a4001fe,0x95417f7c,0x8ac00999,0x5440001f,0x954179e1,0x50c00999,0xfac00354,0xcb41613b,0x3bc0162c,0x4bbfb71c,0xf34153ad,0xc014c8,0x9ac00f52,0xdf417001,0x7fc0286f,0xd7bff432,0xed416483,0x8cc02f9c,0x57bfd72e,0x70415704,0x85c02697,0x533f8943,0x5b414f81,0x1cc04340,0x5540047b,0x9e416e1a,0x4bc02823,0x823fd621,0x58418160,0xf8c02703,0x5c0088b,0xbe417ba3,0x75c0394d,0xecc0043f,0x724170f8,0x14c0408b,0xf63f7e94,0xdd414f2d,0x10c0335e,0x393fbeb2,0xd5418673,0x96c02e7a,0x87c00496,0xf94172db,0x4cc02082,0xbc3ffdfa,0x7b41792a,0x12c017bf,0x343fe784,0xa7415ef0,0x35c04ccc,0xc43ff47b,0x514161ca,0xfac06332,0x26bffd5e,0xa0416337,0xbcc06333,0x4cbf30b1,0x48414ecb,0x4cc06335,0xafbe3ce2,0xc7415123,0x47c06183,0x66bff273,0x2f416d9d,0xb9c06333,0x283fccaa,0x2f418379,0xaac06333,0x403ec944,0x4e418798,0xe5c06209,0x7b4002b7,0x2f417775,0xbcc06333,0x433ff092,0x954174c3,0x5c06199,0xb2bee317,0x814186c7,0xc0c061eb,0xd0bf7e23,0x954184f5,0x92c06199,0xa1bfc57a,0x2f418362,0x5fc06333,0x74bfc260,0x5418117,0xbec06088,0x31bfc4c0,0x2f4180ef,0xbcc06333,0x48bfe83b,0xf4000c61,0xd8b15701,0x7dcd23bf,0x63332f41,0x2b7e5c0,0x79006cc0,0xbff034b1,0x1874c170,0xc9a7f100,0x5c04ccc,0x27bffa52,0x3241825c,0xe9c06f59,0x37c001d5,0x3641803c,0x53c01ccd,0x3cbfc577,0x7c41851a,0x8dc04bd1,0xe5bfac97,0xc9418668,0xd7c01ccc,0xc6bf876c,0x9b4187e2,0x90c04c76,0x77bf494a,0xc94188dd,0x73c01ccc,0xb53f1e2d,0xcd4189ea,0x8fc01ccc,0x593fcba5,0xc94184ba,0xbfc01ccc,0x72400a2a,0xc9417a24,0xc6c01ccc,0x93400e88,0x2541751f,0xf7c06f5c,0x6bc00e21,0xc416843,0x63c06f5c,0x56c01142,0x4f416a45,0x10c01ccc,0x4fbf8a06,0xcd415067,0xc2c01ccc,0x964030a5,0x43414ae7,0xfc06fe6,0x7b401a48,0x29414609,0xf2000c5c,0xfb43c018,0x5c29418c,0xdffcc06f,0xef334045,0x51ec4181,0x6666c078,0xea324036,0x5c254181,0xbd2bc06f,0xf5684033,0x3062000c,0x3bf7212,0xa2003c92,0x403218df,0x418ac8a3,0x48f4cf,0x45c53631,0x4f10048,0x40733333,0x41866666,0xc08b3331,0x40733333,0xc5b3333,0x7100,0x6666c080,0xa1000c42,0xc0266666,0x414683d3,0x242023,0x6666bf41,0x71001846,0xc0333333,0xc8d3333,0x6f27f200,0x37c06762,0x5d418b72,0xa6c08b32,0x49c07ed0,0xa541830d,0xb7c05283,0x44c07ed3,0x2f418ea7,0x61c05333,0x9dc024dd,0xee41841d,0x16c05122,0x70c03b16,0xf2429cd0,0x3e666603,0x8821cec0,0x5cccc941,0x4a8a87c0,0xc54f4c0,0xb6b73500,0x71002451,0xc055dad3,0x2485e1e2,0xb6b76200,0xfc5cc051,0x87624314,0xd9c04a8a,0x62000c77,0xc03a0942,0x24fc63,0x49b68062,0x60f20bc0,0x73716200,0x44c5c04f,0x8b710018,0x6ac052c3,0x4886d0,0x517c3162,0x243333c0,0x595c3500,0x3500243d,0x243a0942,0x6610f100,0xb3c03666,0xc94181f1,0xc07ccc,0x67c03000,0xcd414be3,0xcc07ccc,0xfdc02cb2,0x1882df,0x2c5a6871,0x4ccccdc0,0xff710018,0x19c02db2,0x185adb,0x33ccb862,0x3cfca8c0,0x6bdb7100,0xec1ec02d,0xf1001889,0x1a9e1f10,0x84bef5c0,0x1665ba41,0xc0,0x8ef39e00,0x16660a41,0x33c7acc0,0x6d0ddd40,0x4f142b4,0xbfac8662,0x41481c7c,0xc0166656,0xc01fc95c,0x1867b2f1,0x5e04f100,0x79401314,0x6241818b,0xccc01a66,0xc7c022d1,0x1872c8,0x911504f1,0x3ab8c017,0x99954180,0x8b7ec019,0xec91bfee,0x72001885,0x4015cd68,0xc56f9f0,0x82096100,0x8ab60ebf,0x6ab10024,0x304016a3,0x4156d6,0x485000,0x6d373931,0xcc7102e8,0xc74022d1,0xc72c8,0xa9979a71,0x896e1fbf,0x4f1000c,0x3ff33333,0x416fffe3,0xc05ffffc,0xbfe74b94,0xc796511,0xb957100,0x4e95bfed,0x62000c6b,0x3fe440ea,0x184540,0x4f1,0x3ff0,0x14774170,0x40eac04e,0xbac0bfe4,0x71000c66,0xbfd5d76f,0xc62615a,0x9ecfb500,0x3449bf13,0xd2c84186,0x3003c4b,0x3f410024,0x247d9ea6,0xcd10f100,0x11bfeccc,0xdd417000,0x1bc04c7a,0xc93ee30e,0xad4186a1,0x4c04bda,0x3a3fc9e8,0x187f77,0xcccd10f1,0x1bbfec,0xb4ee4170,0x58b0c04a,0x83d7be73,0xe83e4152,0x2edcc04a,0xc3b4be94,0x71002452,0xbfe9e29b,0x246b5eb6,0xe28b7100,0x5eabbfe9,0x6200186b,0x3e149dbf,0x247dc1,0xdac68271,0x64ac3dbf,0x47710018,0x3d3f5700,0x3055a0,0xb260dd71,0x6fca33bf,0x9071000c,0xedbfa0a4,0xc79b1,0x8f1,0x354a8000,0x25814166,0x37bdc060,0x8f42b586,0x99074163,0xf201d461,0x7268980f,0x57bf8341,0x98609ac0,0x7130c1bd,0x571aac41,0xa1c27fc0,0x7a7f30be,0x244f6141,0x3324f100,0x5417cac,0x3c061a8,0xdcbf027d,0x7541751f,0xa0c06004,0xc5bf6034,0xa1417b2c,0x1ac05e68,0xbf746e,0x10417000,0x32c0615b,0x1bf8bca,0x186c03,0x3f1a6d71,0x66799bbf,0x4f10018,0xbf7b239a,0x416a81f7,0xc0604c9d,0xbf6149b6,0xc672714,0xa04f100,0xd7bd6c30,0x6e416fc4,0xd2c056a5,0x263ee872,0x7866e4,0x6e4d3c71,0x6c99bf3f,0x4f1003c,0x3d04b902,0x416fee5d,0xc0564de8,0x3f8432d3,0x3c71dca5,0x2f6f5300,0x50cb3f81,0x49b67143,0xd8ed3f61,0xf1001878,0x97b00c04,0x5b3b4b3e,0x51b80241,0xffd228c0,0x7a0d0e3f,0x62710714,0xda3ff7bf,0xc7cd3,0xf1201cf1,0x6df7c01d,0xcd7d4167,0xf545bfec,0x315739d6,0x48064170,0x6666bfc8,0x18cbc086,0xfe044199,0xa255c08b,0xd358c024,0x62000c39,0x3fb9999a,0xc999a,0xd4964271,0x63e1e440,0xbe620018,0x1c40cb69,0x72420c1e,0x40e9999a,0x182564c8,0xce505200,0xc4431540,0x42480441,0x9f3138b1,0xa3afd3c0,0x90e50440,0x9a754038,0xcb40e999,0xc9918,0xcccd08f1,0x5c29413c,0x59edc097,0x999a4131,0x34334191,0x1119c0b2,0x71000c22,0xc0dde43f,0xc2e7e29,0x3b04f100,0x91c0d437,0xce412c76,0xf7413ccc,0x92c0bea1,0xc227b,0xe92b3271,0x23af67c0,0x1571000c,0xefc0dcf3,0xc24c1,0x90915e71,0x25419dc0,0x8075000c,0x66c09d37,0x40ecc666,0x44,0xf1426000,0xec816f04,0x5951ec3f,0x88000041,0x4d2f40c0,0x32bbd5c0,0xe67100cc,0x4a40ccbf,0xc6468,0xce50be62,0xcbceb40,0xdf600,0x2140d000,0x6441650c,0xcfc08666,0x5b40dccc,0x8b4169c4,0x33c07688,0x60403333,0xbfe02400,0xaf3100fc,0x1501b5d,0x313aecf1,0x9a55c09f,0x69f2c146,0xf5c34166,0xc3c0a0,0x3befc147,0xf7e84129,0x6a7dc0a0,0xbd3c147,0xef4a4129,0xee00c0a0,0xff52c146,0xecdf4129,0xbafac0a0,0x4b5c146,0xeda4412a,0x3a0cc0a0,0xb513c147,0xecaf4129,0xd789c0a0,0x3cd3c147,0xed6a4129,0xc786c0a0,0x3b30c146,0xed834129,0xdf32c0a0,0x351ec158,0xf007415f,0x7f3bc0a0,0x1db4c159,0xf5cf4130,0xc0afc0a0,0x90f1c158,0xf0eb4130,0x7d4ec0a0,0xd8c9c159,0xf1ef412f,0x3840c0a0,0xbca24104,0x89f8418b,0x3840c0bd,0xb2644104,0x89f8418c,0x7bfac0bd,0xfe624104,0xa1c94172,0x99bc0bd,0x46104104,0x5d744154,0x4896c0bd,0xac764104,0x9540417a,0xbfd1c0bd,0x97fc4104,0x89df417c,0x506ec0bd,0x5a84c00a,0xfffc418b,0xdb3cc04f,0xcccdc0ad,0x40f4,0x504ec050,0x7c7ec0ab,0x71000cf1,0xc0a4241e,0xced585e,0x7300,0xf18fc0a8,0x51000cee,0xcccdc0a0,0x71000cec,0xc036a09d,0xcc17c7e,0x48417100,0x585ec028,0x71000cbd,0xc0300000,0xcbef18f,0x133a7100,0x123c4092,0x71051c28,0xc0200000,0x18bccccd,0xe8de7100,0xa8acc03e,0x42000cc8,0xc0411722,0x50917bd8,0xa90c72c0,0xe6666c0,0x24710030,0xa408c8e,0xc3880,0x436e5d71,0x63a0a640,0x9d4400b4,0x784036a0,0xb67c7100,0xcccd403b,0x710048c4,0x40400000,0xccccccd,0x52eb7100,0xb7b9bff3,0x71003c47,0x404a51ad,0x3c731066,0x4d497100,0xfe6f4031,0x71000c83,0xbfbfe6e6,0x2443acae,0x81007100,0xa0d6c089,0x71000c37,0x3e417acc,0x24919246,0x730df400,0x1ac0512e,0xfc416e33,0x1bc02fff,0xab3e852f,0x413dc5,0x1bc03000,0xcbe852f,0x9c0600,0x7ddc2f17,0x603017,0xd2c03091,0xe4028c5,0x3c546f,0xd2b7cc71,0x43978a3f,0xd244000c,0x18c028c5,0xae537100,0x944fc01a,0x42006c88,0x40a90c72,0x30170108,0x6f10180,0xc030,0xcccdc0b0,0x40fc,0x95d9c030,0xe31d4056,0x42004836,0xc0400000,0x309100fc,0x51c28fc0,0xebdc8ec0,0x50060024,0xc0306201,0x40200000,0x30620180,0x76e3bdc0,0xf2015cc0,0xa7c03003,0xf240711f,0xf441962a,0x4ec02ef8,0x440ab50,0xc0309102,0xc0ae207b,0x90868d01,0xdb3c4200,0x22840ad,0xc03062,0x440a000,0x301ef102,0x38057dc0,0xa054a4c0,0x6965ae41,0x55fc37c0,0x9b8c4dc0,0x43e10541,0xb3d295c0,0x9fda443d,0x4851e741,0xc82a35c0,0xae80db3e,0xbc71000c,0x293f7521,0xca763,0x6f55de71,0xa602f0bf,0x6671000c,0x2d3f6666,0x1d04a7b2,0x3cef0371,0xa32a633f,0x3471000c,0xf5bf5f14,0xca4ce,0x3cef0362,0x8839f7bf,0x8844711d,0x4bc73f47,0x710018ab,0x3fb1d0c8,0xcb210d2,0x6f04f100,0xf0408f74,0x9a412ded,0xc02999,0x409000,0xc3000,0xd3eaf71,0x89a7d6c0,0x6f713150,0x10408f74,0x183212,0x8f746f46,0x510030c0,0xc080,0x71001828,0xc049df11,0x3096b528,0x75da7100,0xea23bfbf,0x71000c8d,0xbee36b6e,0xc90b6f4,0x5f637100,0xa828c069,0x71003035,0x403dd1a2,0x189774d7,0xdb3c7100,0xc08d,0x71001834,0xc0473dd1,0x18739001,0x17223500,0x71007861,0x408b504e,0x242a57d8,0x4b28f100,0xadc0889d,0x43413603,0x8dc066ca,0x10c06e25,0x1841353f,0x30c067ea,0xfd4093f0,0x94410d20,0x41c0284c,0x1b4090c7,0x67410dba,0xbc02965,0x77409b6c,0xc1399,0xc85003f2,0x33333fec,0x6666410b,0xc97ebfc6,0xcd273fe2,0x4e71000c,0xfe3fe07f,0x180c54,0x65a104f1,0x85363fe7,0x6d984111,0x245bc029,0xd0e63fe9,0xf1007811,0xdf25e504,0x125ae73f,0x29997841,0x929b95c0,0xe90b3c0,0xf6710018,0x68c09b8a,0x608492,0x473910f1,0xf5dbc047,0x27dd4197,0x6badc027,0xf4ef4047,0xf6234197,0xd307c026,0xc3f4404b,0xf2002496,0x48806f0f,0x98889940,0xc6662341,0x9f8c6fbf,0x84dd7540,0xc6665e41,0xe4cf9ebf,0x908c63bf,0x44707100,0x9c4e402c,0xf100186c,0x104b804,0x528dbcc0,0xc6635241,0x28068abf,0x7a15b8c0,0xfff40018,0xb9c3f025,0x44711abe,0x35c6441,0x226eb5c0,0x600fff40,0x388f041,0x145c6cc0,0x58ccac40,0x5431341,0xec6f8c0,0x566b95c0,0x6098941,0x36c8bc0,0x51839bc0,0x9656741,0x2447edc0,0x5fe19140,0x7d7a541,0x23545cc0,0x5ff97840,0x6976841,0xeeaf14c0,0x4fd851bf,0x6976841,0x2a665ec0,0x6646e040,0x51fde41,0x34e2c5c0,0x700000c0,0x9999541,0x28a3cac0,0x62fed140,0x7d7a541,0xddb118c0,0x4d403bbf,0x8cc2941,0x26e3e7c0,0x5fa00740,0x9656741,0xdf9011c0,0x4cf528bf,0x9656741,0x2cd474c0,0x697cce40,0x51fde41,0xb07afac0,0x49ca77bf,0x7d7a541,0x2ef7bec0,0x6cb8d540,0x6976841,0x2ffca4c0,0x6cb3f140,0x7d7a541,0x940f4dc0,0x476e74bf,0x91ef741,0x4e4357c0,0x44e2c9bf,0x988df41,0x1e3de6c0,0x44ab28bf,0x8cc2941,0x1f93cdc0,0x444d8bbf,0x9656741,0x584838c0,0x42e7adbe,0x9999a41,0xd134adc0,0x44a0173e,0x6976841,0x565dc0c0,0x434df23e,0x9656741,0x1d1516c0,0x44fc713f,0xc0140078,0x28f10078,0xc02b0f28,0x41663d3d,0xc0069768,0xc022b335,0x41600947,0xc0051fde,0x3fb1c875,0x41498243,0xc008cc29,0xc0303c9f,0x4166deb4,0xc00986ec,0xc0257e5a,0x185fc31c,0xf6f57100,0xc6f1c019,0x71000c59,0xc01b4396,0x5c5996ee,0x39007101,0x85ee4038,0x710f907d,0x3f9f84f5,0xc8dd4c7,0xe2ca7100,0x94db3fb4,0xf1000c8b,0x585ee504,0x41f1c0bf,0x9999a41,0xda9889c0,0x407d13be,0x35000c,0x1684000,0xda988944,0x7400183e,0xc03e0bb3,0x3c76d4c4,0x3c3f1400,0x83ae7100,0x8081c028,0x71001883,0x3fcf9b24,0x48479ead,0x74757100,0xbcb1c015,0x71001884,0xbff61134,0xc889329,0xad03f200,0x6bfb6a1,0xc5418b4e,0x64c00972,0x86bfe61f,0x71009036,0x402883ae,0x3c58fefd,0xa63b7100,0xf61402e,0x7100305c,0x40383900,0xc627a12,0xad4b7100,0x5bb2bed7,0x71000c8e,0x403e0bb3,0xc692b3c,0x27897100,0xf059be5b,0x62000c8f,0x0,0x249c59,0x31910f1,0xc5fcc03e,0x54d24165,0xe6ffc026,0x9e49bf59,0x88f04141,0x1362c023,0x557fbfd1,0xf1000c47,0x2979891c,0x585bcec0,0x24fb5d41,0xb0d06c0,0x4d3cbec0,0x28cc2941,0x13a1c2c0,0x5004e1c0,0x27d7a541,0x1d6cb1c0,0x5289d240,0xa5710018,0x72bfd4a1,0xc46a4,0x585c04f1,0xa406bf87,0x1fde4142,0x4c6ac025,0x93b6bfa2,0x71003043,0xbfa36178,0x244347df,0x714c7100,0xf011bf89,0x71000c41,0x4043584f,0x24700000,0x21927100,0xf33d4044,0x71039068,0x40442589,0x246c7e2a,0x23d97100,0x2458bf5c,0x71002441,0xbe622c02,0x243e96d7,0x4f100,0x1b3f5afd,0x68414163,0xe9c02697,0xc7c041d3,0xc6c88,0x4411c3a1,0x6d0f59c0,0x6098c841,0x1bc0100,0x27d7a5b1,0x415b4bc0,0x690cc5c0,0x6a440048,0x9c3fa24c,0x73937100,0x5030c03a,0x44003c62,0x3fa36178,0x267100a8,0x9c3fd21e,0x184721,0xbc7c8571,0x44da043f,0x9b710090,0x45c03cae,0xc6226,0xbdecab71,0x4485bd3f,0x2b710090,0x9fc030c3,0x305bd1,0x12592e71,0x504c0fc0,0x9f710108,0xd8400c1c,0x244cf8,0x1d6cb144,0x710138c0,0x400a2136,0x90894427,0xfb2a200,0x33abc032,0x6fb4182,0x94310030,0x308983,0xea21b871,0x8b8c373f,0xde710024,0x683fbb3c,0xc8d6e,0x3de1ce71,0x7a539ac0,0xf371006c,0xc3c03fac,0x6c76e3,0xeb2007f2,0x380cc040,0xe9604179,0xc0a9c028,0x4f8f3ea1,0x21084190,0x39310120,0x307377,0x5cb4af71,0x901bbbbe,0x27101ec,0x95be622c,0x6c90b4,0x41d3e944,0x74002440,0xbf888837,0x6c8ee0e9,0x6c401400,0x5a10f100,0xf2bfebf1,0x27418b62,0x43c025a5,0x7fbfaa91,0x96418e41,0x52c02920,0x3b404027,0x1147a73,0xbb3cde44,0x7100a8bf,0x4036121f,0x78807d16,0x6310f100,0x31403e99,0x61417d8d,0x60c02970,0x6dc00158,0xbe418abd,0xf2c02966,0xc8402c97,0x3c83c7,0xa213644,0xf10114c0,0x285cf604,0x84e6f040,0x29310e41,0x1c61b7c0,0x86a21c40,0xff710090,0xb93fdaca,0x4208925,0x218104f1,0x9fcec014,0x65674184,0x457c009,0xe125c027,0x71042c7c,0xc022b335,0xc7ff6b9,0x151e7100,0x841dc01e,0xf1003081,0x28a3ca04,0x7d012fc0,0x7d7a541,0xc84c27c0,0x8a5c853f,0x1671042c,0xefc02e4b,0x307343,0x9924d971,0x8be01b3f,0x4c710024,0x8c3f8034,0x3c8c6a,0x9a463971,0x8c05aa3f,0x4f10030,0xb9217b0f,0x418e262b,0xc00471d2,0x80000000,0x188e390f,0x6b907100,0x5667bf7f,0x4400488c,0xbf80344c,0xbe71003c,0x2b402ef7,0x487347,0x53610271,0x8d6a30bf,0x537100b4,0x72bfaf75,0x188afe,0x9a463944,0x710060bf,0x402d535d,0x5479e3de,0x151e4400,0xc0401e,0x1fd171,0x86dc39c0,0x5a710060,0x7240257e,0x24801e,0x8a66e71,0x859f32c0,0x89710018,0x30c0015e,0xc08701,0x2530071,0x871d8bc0,0x72710024,0xdbc010f8,0x6c845a,0x11d09e71,0x846d4740,0x9e440024,0xcc011d0,0x9eba7100,0xeaf14000,0xf1002486,0x916d4c10,0x911d05bf,0x2570a041,0x9441a4c0,0x140000c0,0x29999a41,0x95dad5c0,0x15edf0c0,0xb771000c,0xd8c091b6,0xc1257,0x8e666671,0x3aabfb40,0xb771000c,0x724091b6,0xc3bf1,0xb139b404,0xc029999a,0xc061d33d,0x1837ada8,0xf6237100,0x850a4095,0x4085884,0x9ab13a14,0x66c02999,0x1ac09666,0x18834a,0x40cea362,0xc4140440,0x6208,0x66668000,0x23623ae0,0xabc09607,0x62003c25,0xc094edc6,0xcf705,0xa23a5004,0xc029999a,0xc03941ee,0x3ae0bb15,0x8e666662,0x34126140,0xdad54408,0xc04095,0x2add4871,0x87847dc0,0x6644006c,0xb8408e66,0xb118713b,0xaac6c043,0x4001895,0xf13a8c,0xc029999a,0x3ed3c361,0x4192311c,0xf82147aa,0x66662201,0xba71000c,0x70c0069f,0x188c57,0xb1005404,0xc02147aa,0xc0445e68,0x1881b7ef,0xde7a7500,0xc2fac094,0x313aa412,0xc240e8e,0xdad57100,0x7876c095,0x4000c20,0xae310138,0x12c2147,0x28525831,0x66710018,0x9a409666,0xc4199,0x313c1804,0x982147ae,0x999a3101,0x4400183d,0xc08e6666,0x7f733b40,0xebc06468,0x1837e0,0x1a409651,0x84834a,0x96072371,0x8425ab40,0xc662000c,0x54094ed,0x4000cf7,0xaab13c24,0x18c02147,0xc64043b1,0x2495aa,0x3aea2971,0x96365e40,0x9d71000c,0xb7404abc,0xc94d0,0x86666673,0x10000040,0x5c020060,0xa80401,0x18000031,0xa4440018,0xac409441,0xdad5443b,0xe44095,0x8a8a8771,0x26209e40,0xdf40024,0xc15e4550,0xc1836707,0xbf251ec9,0xc1865578,0x41558a9a,0xbf251ea8,0x415e4550,0x62710018,0x7841855e,0x246d22,0x9e353b71,0x71293841,0xe371000c,0xd7c14838,0x308bc3,0xb8f5de71,0x90b39fc0,0xdf71000c,0x12bfb235,0xcb000,0x39501271,0xb25dd8bf,0x75000c,0x1f800000,0xcc985,0xb32d1031,0xdf44000c,0x303fb235,0x13ad7100,0x8faa401d,0x710018c8,0x4186ccf2,0xc5170df,0x3f240400,0x251ea835,0xa8b13f24,0x91bf251e,0x8d4194a3,0x248813,0x97cc10f1,0x248640c4,0x28ed4195,0x353bbfec,0x2938c19e,0x28fec171,0xb370bfec,0x70e4c19e,0x7100186a,0x416e4550,0x1895528c,0x47c97100,0x6f944193,0x44000c8a,0xc186ac68,0xc2713f78,0x18419e4b,0x186efc,0xbfc99f71,0x9018c8c0,0x1071003c,0x6c0e8a2,0xcc0f2,0xb100c004,0xbfec28ed,0x3f395012,0x18b25dd8,0xcc0400,0xec28edb1,0xfa1ab5bf,0xac422d3f,0x5c710018,0xa3409c54,0xcc5b1,0x9e7f5b71,0x6db17841,0xed71000c,0x75413452,0xc9261,0x4bf104f1,0x1973418d,0x8106c11f,0x8409c112,0x99be4194,0xf1000c09,0x4c375804,0x55883841,0x128107c1,0x36f80ac1,0x54d58741,0x7071000c,0x6fc181f1,0x2415d3,0x39e80271,0x49e80241,0x10f10018,0xc174b9f4,0x413a4987,0xc1128105,0xc1940000,0x41200000,0xc1128106,0xc17b9388,0x182f8899,0x4928f100,0x2141944d,0xd3410b17,0xe7c10f4d,0x41b362,0x52410400,0x72c1258d,0x5d418e76,0xd3c11360,0xa9c10f4d,0x1c4137dd,0xd4c15872,0x3ec10f4d,0x7cc18cc5,0x1810bc,0x75d300f1,0x141b6,0x2e664104,0x478c167,0xf1000ca5,0x9dae8204,0xa5902bc1,0x3ffff41,0x99e9fdc1,0xb4de60c1,0x8f620018,0xf3c166da,0xf30024b8,0x9a1e7a69,0x95d8e3c1,0xf30a741,0xa213b8c1,0x48f5a5c1,0x40,0x892a303f,0x47477cc0,0x15faec40,0x88d8453e,0x41c033c0,0xeb760c40,0x88d845be,0x375350c0,0x49f1ae40,0x89702c40,0x309071c0,0x4bd7fe40,0x8a71de40,0x400000c0,0xc345a640,0x6bedfabf,0x44aa50c0,0x6dfd4840,0x6bedfa40,0x5a5315c0,0x58491740,0x6bee9e40,0x643ee6c0,0x610c89c0,0x14002440,0xf40024c0,0x61a2d3a1,0x400000c0,0x6bedfa40,0x643c4bc0,0xc4440fc0,0x5f212dbf,0x637afac0,0x746473c0,0x5f17db40,0x7a82aac0,0x59e9e6c0,0x594fc640,0x50fc72c0,0xfbec5f40,0x5b1ec5bf,0x491c43c0,0xc4004b40,0x125461bf,0x51999ac0,0xbcf7db40,0x125461bf,0x58e3e3c0,0xb1c7c540,0x125461bf,0x5e7beec0,0x51999a40,0x12546140,0x620026c0,0x491c4340,0x12546140,0x5e5b68c0,0x482257c0,0x12546140,0x482257c0,0x5e5b68c0,0x12546140,0x400000c0,0x633333c0,0x12546140,0x633333c0,0x400000c0,0x12546140,0x5b37a8c0,0x9f6d8f40,0x34003cbf,0x6c9044af,0x6cc01400,0xb6c87100,0x6f50c04f,0x620018b6,0xc0482257,0x90b6d0,0x40000044,0x44005440,0x40482257,0x1cf1006c,0x405ba112,0x405b054f,0xc0453322,0xbfad3837,0x40566666,0xbfbe425b,0xbd3d2956,0x3fc75697,0xc009e21e,0xbe0c9470,0xcc56473,0xa285f400,0xc7be0db6,0x3c3f9f2a,0x49c00b6a,0xa4bdfa14,0xcf3f95e2,0x98c00ba3,0x2cbf91df,0x9f4046d3,0x11bfd0e6,0x2a3fb6fd,0xe73f8f37,0x1fbffd70,0xee3f40be,0x393fe8af,0x5cc003ed,0x23f038e,0x8d3fd483,0xf9c0075e,0x303f969d,0x893fe267,0x79bffe79,0x3f5d02,0x894006fd,0x81bffe79,0x423f2e5c,0xc3402360,0x1dbff344,0x19bdbc01,0x394006e7,0xc1c003ed,0xc7be6ce6,0x894018ba,0x51bffe79,0x10bf334f,0x8d3fba93,0x79c0075e,0x3cbf5d02,0x59d17100,0x6ba0bf8c,0xf1006c97,0x690efe10,0x89a7ebbf,0x6805a3f,0xb8161ec0,0x14bb51bf,0xe7b20c40,0xdb6a2bf,0x41aa713e,0x10f100c0,0x3e0ef77f,0x3f7d09d0,0xc00bccfb,0xbfd61262,0x3f388e37,0xbff344c3,0xbfb6fd11,0xc06191ac,0xd05f300,0xd1becbe2,0x8d3e8741,0xc8c0075e,0x40bf845d,0xb43d44be,0xbfa9f100,0xbddfa00e,0xbffe7989,0xc0300fc3,0x3f493a0c,0xbfbef616,0xbf6aa140,0xbfaeaa11,0xbfc8d530,0x3f2b4214,0xbe71d474,0xbffe7989,0x3f4b8f04,0xbfaf0eed,0xbfcb1127,0x3fa4c272,0x3edeeb4f,0xbffe7989,0x3fae685e,0x3f27ab00,0xbffe7989,0xbe481adf,0xbfb03116,0xbfd17ea2,0x3e989507,0xbfb01840,0xbfd0f1d4,0xc05cfeb0,0x40537e84,0xc08a723b,0xc060fa16,0x400a588e,0xc088d845,0x405cfeb0,0xbfa6fd09,0xc08a723b,0x4034b7f1,0xbfbe768e,0xc08993b6,0x40483bd1,0xbf6d4e2b,0xc089829b,0x40429a5b,0xbf692d88,0xc06816f0,0x40364645,0xc8ba1dc,0xe9b87100,0x43fac03d,0xf1000c83,0x41dc4004,0x2d6c5d40,0x6816f040,0x2df341c0,0x8bd1e5c0,0x13f10018,0xc03851ec,0xbeab31c2,0xc06816f0,0xbfba8156,0x40447408,0xc06817a4,0xc00da6d7,0x4036a3cf,0x3c58b8,0x3cc014,0x3b99e971,0x23904fc0,0x5b710048,0xf5c026d2,0xc4269,0xc28704f1,0x300a4008,0x4c66bf5c,0x89ec068,0x4e1abfd0,0xf1001840,0xf980314,0x68f9c240,0x803697bf,0xc0ec20c0,0x90ef673f,0x88f83cbf,0x2c8616c0,0x929c99c0,0x88d845bf,0xf3312214,0xc97af,0xa92a10f1,0xbbe8c030,0x71debfa5,0xee5bc08a,0x721c046,0xca06bf41,0x73d6c088,0x4cdbc043,0x71011425,0x3fc00000,0xc4bd7fe,0x57ac7100,0x70693fd1,0xf1000c46,0xdbce5310,0x2ce5e63f,0x44e19cbf,0xc7b7aec0,0x42df2f3f,0x460fe0bf,0xebb60bc0,0x9aa823f,0x14f10018,0x401a75b0,0x3fb0456f,0xc04451ce,0x401242e5,0x3fdd7404,0xc044e1a0,0xbf150397,0x4014edf6,0x6459303c,0x9851f408,0x7e400a4e,0xf6c05d8b,0xd53f925e,0x3c3ff1ec,0x56c05930,0xc33f78d4,0x7e3fd148,0x60c05d8b,0x43f43e6,0x643fb502,0xabc06104,0x3f7c3d,0x943f8000,0xc4c05fc1,0x32bf9ab1,0xce40363a,0x7ec049a8,0xa8bfb5e1,0xa53fc9df,0x98c057bd,0x33f42a4,0x44037cf,0xc4c04e01,0x243f9ab1,0x5310f100,0x7abfdbce,0x9c402b39,0xf9c044e1,0x8cc0039d,0xdf4017f3,0x9bc04437,0x5fc01820,0xa8c80b,0xfaa014f1,0x5ec4bfc5,0x2da1bf44,0x79a7c046,0xdd053e17,0x3e3a3f56,0x87dfc065,0xad86be33,0x63203f19,0xf200c064,0xa76f8f8f,0x59303cbe,0x925ef6c0,0xe132b5bf,0x59303c3d,0x368fb0c0,0xab9021bf,0x5d8b7e3d,0x56662c0,0x2deebb40,0x48c8c53e,0xaa9f06c0,0xea747ebf,0x53f35abd,0xc5efc8c0,0x9d9664bf,0x54ca4b3e,0x885415c0,0x5e0371bf,0x5eb1293f,0x926cf7c0,0x3eb4b0c1,0x77f8af41,0x913fefc1,0x406f95c1,0x76666541,0x905f0cc1,0x3c5d26c1,0x76666541,0x951e26c1,0x2b678ac1,0x766ef341,0x91ea33c1,0x24ea36c1,0x76666641,0x8c1479c1,0x4129d0c1,0x76665841,0x8d9a7ec1,0x8c64fcc1,0x1110f16a,0x6dc18c2e,0x66411f90,0x81c17666,0x99c193ef,0xa4137c9,0xdbc17667,0xd4c18a99,0x182631,0x445b03f2,0x999bc187,0x66654138,0xcfe9c176,0x3a4ac189,0x5b71000c,0x67c18744,0x242766,0xfb6a12f3,0x93b5c190,0x84aa4126,0x4c0ec179,0xa712c18d,0x6e984126,0xa769c179,0x6d44c18a,0xc974135,0x92be3100,0x7100182a,0xc18a33de,0xc2c4310,0xb904f500,0x6c1899a,0x5b413028,0x78c191ae,0xbec19095,0x676826f9,0x36e83331,0x28f1000c,0xc1940286,0x412fe173,0xc191a1e4,0xc191cc86,0x4124b745,0xc193332c,0xc1933d86,0x4126f2f5,0xc1933333,0xc191dece,0x413b3352,0xc193332a,0xc19413ad,0x183d7290,0x12c0400,0x333320f1,0x4ebfc193,0x287ec197,0x33364132,0xa5a4c193,0x266cc18d,0x33344141,0x80f8c193,0xd144c196,0x6f15412d,0x5bcec193,0x8728c186,0xb5003c2b,0xc18a2040,0x41213a0f,0xf093332f,0x3333b100,0xfdb8c193,0x46a7c187,0x71002425,0xc188dd88,0xc23643b,0x691d7100,0x4d11c188,0xf5000c24,0x92eb1528,0x201516c1,0x907b5141,0x8c9dc6c1,0x40f4d8c1,0x907ab941,0x85c45bc1,0x299e1ac1,0x8fd45b41,0x84ced8c1,0x32b92dc1,0x8f0a3d41,0x868b8ec1,0x3b889bc1,0x6731000c,0xc2477,0x4b5904f1,0xbfd8c18b,0x9062411c,0x7b4dc189,0x56e4c194,0x71000c40,0xc1958a56,0xc3e9de2,0x42507100,0x9bbcc197,0x4000c25,0x62b10054,0xeec18990,0x5dc18515,0x183565,0x85c0bbb1,0x38f9c0c1,0x89906041,0x6731006c,0x182477,0xf0e904f1,0x59fdc18d,0x905d4145,0xd20cc189,0x4f98c195,0x4001826,0x6235678c,0xf08990,0xd60420f1,0xfe3fc184,0xa26fc186,0xd5fe4122,0x7f41c184,0xb003c195,0xd600413f,0x7f53c184,0xf46ec196,0xd6044122,0x8af0c184,0xf7d1c185,0x71000c37,0xc18a1d3b,0xc1e3e08,0xbbeab100,0x98dac18c,0xd36e411d,0xf500fc7c,0x2d46d526,0x7eb85241,0x870fecc1,0x224149c1,0x7ea5dc41,0x98c9ebc1,0x3277dfc1,0x7eb77841,0x871ba8c1,0x3a0dbdc1,0x7ca48b41,0x8ddb3cc1,0x2c000040,0x159c9a41,0x44000c02,0xc08b504e,0x711584,0x61c08800,0x242912,0x84241e71,0x2845c9c0,0x45000c,0x44c09000,0x950ff116,0x593dc06b,0x9abb4129,0x1adac029,0xf518bf61,0x9995418f,0x2f7bc029,0x628f4043,0x73000c65,0xc0611722,0x3c2dedf0,0xc0705100,0xc36ed9f,0xb7bf6200,0xba37c077,0x1e350dbc,0xc8424,0x8b504e44,0x44164440,0xc0432f7b,0x710048,0xf9800000,0x3c3e0f,0x3b27f671,0x80b9c8c0,0x98710060,0x63ff386,0x180da4,0xa5f56a71,0x42933d3f,0x44000c,0xc0407000,0x3500,0x4416f860,0x40644984,0x6335168c,0x6c695f,0x1493ff2,0x53ffc084,0x33124129,0xfe97c068,0x3be2c065,0xc1fd412c,0xb82ec066,0x9549408d,0xda55412d,0xa055c067,0x1d014074,0xd4304129,0xfbafc066,0xc217409c,0x35764111,0xb431c026,0x91163fea,0x7b03410c,0x1527c027,0x5e1e3fe7,0x4b6215e4,0xf73fe575,0x62000c7c,0x3fe1bcba,0xcfe63,0x3b8610f1,0xfa8cbfdf,0x69ba4111,0xeb23c029,0xc22bc09c,0x6a554111,0xa9e3c027,0x2af7c09b,0x71114014,0xc09a7102,0xc8568cb,0x36b97100,0xa68a403e,0xf2000c97,0x9d534103,0x85366140,0x26bc7341,0x9a59cbc0,0x24757740,0x7eda7100,0xa002409b,0xf1002484,0xa0000004,0x83d44b40,0xc6665e41,0x9f8c6fbf,0x84dd75c0,0x2a71000c,0x41c09c1c,0xc86b9,0x499c4192,0x9872e0c0,0x182c41,0x184014,0xe9b69162,0xa83bc4bf,0x597d6200,0x6accbfe6,0x1e62000c,0xddbfe24e,0x71000ce1,0xbfdc01a3,0x4c0fa9fa,0xc21cf117,0xd74029bd,0xad4179de,0xbfbfc66b,0xd040017d,0xa141864d,0x21bfca4d,0xb83f8893,0xc7418c2d,0x7abfc79c,0xd4c01fa5,0x785f77,0xdd998071,0xf9bbb3f,0x7071000c,0xb2c02c44,0xc7363,0x821651a2,0x479a783f,0x301e3a41,0x44163100,0xf4001880,0xf7d0071c,0x870dfabf,0xc9407941,0x4a9f8bf,0x53d7cf40,0xc6677b41,0x2a1ea3bf,0x664af7c0,0x388f041,0x2e01b4c0,0x6cbd71c0,0x4014000c,0xa344000c,0x24402a1e,0x6eb57100,0xfffc022,0xf4002460,0x27045701,0x631edb40,0x51fde41,0x22b335c0,0x44161440,0x4019f6f5,0x10f115f0,0xbff01301,0x414fa85e,0xc007d7a5,0x4027a9ca,0x41631219,0xc0069768,0x402b0f28,0xc663d3d,0x41cc7100,0x7ab9bf98,0x44000c48,0xbfb1c875,0x4f11650,0x4031522a,0x41708a41,0xc008832c,0x403147ed,0xa06951de,0xe2c53111,0xb114a034,0xc0099995,0xbf1d1516,0x6044fc71,0xcac17100,0x4210be51,0xf4004844,0x54927901,0x43adb3be,0x8cc2941,0x565dc0c0,0x7116e0be,0x3ed0663c,0xb444cae3,0x3c06200,0xd73e53,0x3844003c,0x1c3e5848,0x12517117,0x3eea3f4e,0xf1002446,0xce3ea704,0x4c20e13f,0x4bdd341,0x2e4b16c0,0x6cbc11c0,0xa6710018,0x5bc02d7f,0x6c6976,0x2a665e44,0x711800c0,0xc031c875,0x78700000,0xe3d7100,0x2eafc02c,0x44009c66,0xc03147ed,0x5c7100c0,0x78c02354,0x3c5ff9,0xddb11871,0x4d403b3f,0xe7440030,0x18c026e3,0xd8ae7118,0x6b403ff1,0x7100184f,0x400aff11,0xc5449dc,0xbb37100,0xd4c4403e,0xf2164476,0x37a7a803,0x8f58563f,0x9998941,0x5544aac0,0x409b303f,0xe4f37117,0x631c4033,0x62002480,0x3fb80818,0x181076,0x15747544,0x4416ec40,0xc0383900,0x347116b0,0x293ff611,0x308893,0x302303f2,0x2760bcd6,0xa2e04140,0xdd90c017,0xbd6bc032,0x6c71006c,0x593ffb77,0x16f84bb9,0x40000035,0x89440180,0xd43e5b27,0x7e10f116,0xc8c0418a,0x4e416fac,0xdbc02480,0x90403986,0xf0416261,0xbdc02388,0x3e402fe2,0xc5beb,0xa213671,0x4d77b1c0,0x10f11434,0x4023798e,0x4155bc3b,0xc0269768,0x402dc001,0x415843d2,0xc0296a1a,0xbfea21b8,0x2448e792,0xfb04f100,0xde40423b,0x77416b99,0x6cc0242c,0xd4bfebb1,0x149448a4,0x9c2004f1,0x8296bfb9,0x1fde4145,0x4218c025,0x5c99bfba,0x71004845,0x403b6ea0,0x3c623dc2,0x1904f100,0xb9403dc7,0xf14162a6,0xe7c0290e,0xa2bf5a39,0x30418c,0x41d3e944,0x71169840,0xbf5afd00,0x3c41631b,0x18267100,0x47a1bf26,0x71003c40,0xbedd3d86,0x183fe9ec,0x7a3a7100,0x9857bf28,0x7104143f,0xbe5ef8cf,0x243f49c7,0xf8cf4400,0xc3e5e,0x87585c71,0x42a4063f,0x5f710060,0x783f87d1,0x3c427b,0x44a5ca33,0x28510210,0x4625e1c0,0x6784000c,0x18c02965,0xb43fba42,0x62f17100,0x46053fd1,0x71003c47,0xc0402752,0xe4658cc5,0xa0997100,0xf0863fa4,0x71007842,0xc0419ea5,0xc65785c,0x39117100,0xea953fd3,0x71008446,0xc03e1f21,0x18620b37,0x9f887100,0x69b43ffd,0x7100484b,0xc0383fbc,0x485ed1d5,0x733f7100,0x9864c02b,0x44003058,0xc023798e,0x2e440174,0x10401259,0x21364417,0x198400a,0x46004f1,0xb167c01c,0xad3f4152,0x61b7c027,0xbbc9401c,0x71003c52,0xc01ea02c,0x6c525047,0xd067500,0x61a1400b,0x31006089,0x2483b3ce,0x6cb17100,0xbb17c01d,0xf1001886,0xdb19ce10,0x8c358a3f,0x24d97b41,0x9481c0,0x8ace6e40,0x295f6c41,0x3e1f21c0,0x7df4c9c0,0x99710048,0xbc3fa4a0,0xc8e87,0x89714c71,0x8f07f73f,0xa971003c,0xeb3f2733,0xc9004,0x963504f1,0x4a2abf60,0x80fe418f,0x2589c025,0x81d64044,0x71001873,0x40415b4b,0x7876f33b,0x8f10f100,0x4402f8e,0x6c4182d2,0x76c025e8,0x82403ee1,0xa5417a61,0xfbc027d7,0x2bbfd640,0x608cd6,0x2b733f44,0x4400a840,0xc00b0d06,0x2c7100c0,0xdc401ea0,0x2486d7,0x12e42a71,0x8484c3c0,0xb571036c,0x1c0226e,0x4ec7ff0,0x20f783a2,0x81be7cc0,0x9c692f41,0x4a603103,0x71002488,0x3ff01301,0xe4882bd1,0x665e7103,0xb920c02a,0x71042079,0x3fddb118,0x24895fe2,0xf287100,0xc2c3c02b,0x7103f079,0x3fc6d46f,0x308a3a14,0x1104f100,0x6c3fdf90,0x67418985,0x7ec00965,0x10c02b51,0xc7d36,0x2e01b471,0x73428fc0,0x90440078,0xbc3f7f6b,0xfca47116,0x4c0fc02f,0x71003c73,0x3f9b938a,0x308c30ec,0x61027100,0x6a303f53,0x71000c8d,0x80000000,0xc8e6912,0x9c287100,0x3c4fbf51,0x4400848d,0x402ffca4,0x3671003c,0xb4bfaec8,0xa88aeb,0x9924d944,0x711758bf,0x4027a9ca,0xa87cede7,0x4c277100,0x5c85bfc8,0x71003c8a,0x402447ed,0x78800f37,0xda7100,0x924d401f,0xf4000c81,0x2ac7ce01,0x7f6d0740,0x9c09841,0x10f872c0,0x4416c840,0x4008a66e,0x2a4416f8,0x504012e4,0x946ff201,0x563f8016,0xc1a324,0x9ec18800,0xf13f827e,0x34c1a13e,0xcac188e7,0x53e07c2,0x73c19a90,0xe8c1888b,0x44be592e,0x5c1a679,0xa0c18802,0xda3eec19,0x9c1a85a,0xf6c18800,0x8bbf2dec,0xa6c19be6,0xbdc18804,0x4d3ebefc,0x70c1a481,0x5bc188a0,0xf33f45d2,0xc19e57,0x7fc18800,0xbc3f12c1,0xe9c19da1,0x94c188d8,0xea3f03a4,0xc19b18,0xd2c18800,0xdb3f1ce2,0x62000ce2,0x3f10d0bb,0xc797a,0x17a3403,0x38f70090,0xbeacc405,0xc19b9c21,0xc18988d9,0xbe9a749f,0xc1a495a7,0xc189946d,0x3f1b890d,0xc19f8573,0xc1898419,0xbd34c6e7,0xc19adc03,0xc19e7675,0x3ec64bcb,0xc19c3980,0xc19e7be7,0x3f2ac472,0xc19fa643,0x789e6d33,0x78a01700,0xa01ef100,0x196fbc1,0x9827a5bf,0xa0000ac1,0x837ca2c1,0x9d7711bf,0xa00000c1,0x7977d9c1,0xa3c9d3bf,0xa00006c1,0x2b95a3c1,0x9946b83f,0x66710018,0x883f49bc,0xc9a26,0x1459003,0x1cf5000c,0xbb79096c,0xc1a91ae3,0xc19d379d,0x3b4692f7,0xc196e773,0xc19d3e1f,0xbf1b0692,0xc198e4f4,0xc19d3d71,0xbf3b2f01,0xc99b21d,0x4de33100,0x62000ca6,0xbf2b95a3,0xcb948,0xb17cb004,0xc19d3d71,0x3f881028,0x24a14822,0x6924400,0x183f1b,0x49bc6671,0xa5d9783f,0x1440018,0x543f3b2f,0x6924500,0x6c3f1b,0x96c30ff1,0xa3594b3f,0x9bd70ac1,0x772b45c1,0x959f5a3c,0x9bdd2fc1,0x783a43c1,0xa64f963f,0x52710018,0x50bf2644,0xca88b,0x9ca74871,0x9df727bf,0x52b5000c,0xb0bf2644,0x2fc19774,0x48965d,0x965d2fb1,0x9e45b3c1,0x9d2a083f,0xba710018,0xf3f5a6a,0xc98b1,0x8e167271,0xa4a1b83f,0x5244000c,0x3c3f2644,0x54827100,0xb3333f6e,0x300189b,0xc017b78,0x47100300,0x71000c01,0x3f8a5248,0xca0228f,0x6200,0xf250000,0x78710078,0x22bf8dd5,0x18a362,0xf1017404,0x965d2f14,0x8c7ea6c1,0x9dbd70bf,0x91a2d2c1,0x862670c1,0x9e16193f,0x91a2d1c1,0x6a494dc1,0xa488713f,0x6c040018,0xa2d13100,0x3101bc91,0x24a6b948,0x1440400,0x91a2d135,0xc0400e4,0x8b503100,0x710024a8,0x80000000,0x48aa5bad,0xc3017100,0xa6b53f96,0x7100189c,0x3f783a43,0xc99b06a,0x4804f100,0x273f9ca7,0xf6c19df7,0x52c18c28,0x503f2644,0xca88b,0x49f2bb71,0xa7c1d23f,0x3004000c,0x240300,0x1016801,0xe3a14710,0x67e6bb43,0x2be8c1aa,0x75021c8c,0xc1a71b0c,0x1c8ac28f,0xc28f3102,0x3101f88a,0x189eb7de,0xba6c400,0xe2243ec9,0xc0c0c197,0x3a8c18a,0xc28f10f1,0x4788c18a,0x88303f16,0xbfa0c1a7,0x9ef6c18a,0x66664195,0xa06e4116,0x803ec113,0xf1000ca4,0x164b18e3,0x2ebe3c1,0xa69dca41,0xdd84b041,0xc065cfc0,0xbcd79940,0x3f2f5641,0xbb21bcc1,0xbc2a5d40,0xdf05de41,0x93ac1fc0,0xb5bbc340,0xde92e441,0x94f111c0,0xb5802e40,0x3f70f241,0x8a1c22c1,0xa69ad740,0x3ff61441,0x536063c1,0xa1279240,0x4026ca41,0xd27263c1,0xd0779bc0,0x3e7ff241,0x23a56ac1,0xbbde1d41,0x3f384c41,0x2524e6c1,0xb92f2ac1,0x3f503141,0x12eec8c1,0xa1235041,0x4026e541,0x922a0bc1,0xcda8a340,0x3e990c41,0xab687c1,0xa258c2c1,0x401c2641,0x28f4a3c1,0xa0e92dc1,0x4028f541,0x1a0cb7c1,0xbe789640,0x3f20c741,0xf8a1c7c1,0xac693e3f,0x3fc22b41,0x936a77c1,0xb59787c0,0x3f702241,0x40f1ec1,0xa63546c1,0xdd7d7841,0x12eec8c0,0xa12350c1,0xdd22d741,0x28f4a3c0,0xa0e92dc1,0xc1eb641,0xc411400,0x7556f300,0x8fbff773,0xb141ac53,0x3cc124f7,0xccc0a63e,0x1841cfd7,0xcec12635,0x16c10167,0x9041cd19,0x1ec1261c,0x4b4024fa,0x5841ac94,0x40c109be,0x4b40ff20,0xed41ce25,0x37c12625,0x6d40a8c7,0x5e41cf50,0xd2c12630,0xb7412944,0x2641ac6f,0xa6c109c0,0x9c12254,0x6441bdc2,0xe3c0df21,0xc2c0fc53,0x3df40138,0x41173c42,0x41c4d576,0xc0dfa0c3,0x40f925ec,0x41cdf857,0xc0e0442f,0x412605d3,0x41b700e5,0xc0dea961,0x4037fa8b,0x41c3f760,0xc0df9162,0xc067cffa,0x41c91f86,0xc0dfed6e,0xc0aeffb9,0x41cfacbd,0xc0e062a6,0xc08a2839,0x1f401b0,0xc0536063,0x41a12792,0xc0dd230c,0xc0d4de44,0x92f301b0,0xc0f922b1,0x41ce4d70,0xc0e049ba,0x411aacdd,0x41c35c0d,0xc108f2ca,0xc00010f5,0x41b4435e,0xc10979bb,0xc0b7ad32,0x41d010cd,0xc1088158,0xc123674c,0x41bb85fe,0xc10938c4,0x4114f018,0x41bd1f32,0xc1092a88,0xc11d6b99,0x41ad7c8e,0xc109b63c,0xc04c59f7,0x41bd23a4,0xc1092a54,0x403f8ca8,0x41b910c8,0xc1094ecd,0xc026a2cf,0x41acc4d0,0xc124fbba,0xc09aeb98,0x41c832f1,0xc125f0c7,0xc1175aae,0x41b9e8c3,0xc1257113,0x411d69f4,0x41ad7d61,0xc125021c,0x4042954a,0xf10018c4,0xd3708018,0xca670a40,0x26047941,0x8b9149c1,0xc607f340,0x25dd6841,0x2749e9c1,0xacce5540,0x24fbea41,0xd00000c1,0x8f12a6c,0xc095979e,0x3fe00000,0x4139999a,0xc08bfe04,0x3f400000,0xc2e6666,0x69be7100,0xe1e440cb,0x35000c63,0xf4d3401a,0xcf01f429,0xe940dccc,0x474177d3,0x9ac07902,0x30403999,0x6910f12a,0x6fc17e0e,0xe2c16796,0x8c1707a,0x91c190c8,0x9bc136a0,0x59c16b99,0x8c1815f,0xc611b,0xd1c404f1,0x33343fab,0x41a6,0x6627c1d0,0xfa3d3ecd,0xf1000cab,0xbfa3c204,0x9cca673f,0xd00000c1,0xabd1c4c1,0x99cccc3f,0x6671000c,0xe53f4666,0x249542,0x71,0x93999b80,0x3874000c,0xa33f8c4a,0x24a8c4,0x24bf14,0xbfa3c271,0xa335973f,0x710018,0x65800000,0xcac66,0xabd1c444,0xf10054bf,0xcfae2f10,0x9e77eac1,0xcbb265c0,0xb945f6c1,0x4bb5afc1,0xcbb265c1,0xa2e7e9c1,0x86c47bc1,0xfff5000c,0xffffffff,0xffffffff,0xd4683eff,0x26a8c19e,0xe0c1c195,0x64cbc1c5,0x211bfd4,0xb26441d3,0x217bc1cb,0x49ffc18d,0x638fc196,0x8a3ac1ce,0x256ec139,0xe0c2c1c5,0xa4c2c1c5,0xaa4dc146,0x6390c1b4,0x9692c1ce,0x421dc12a,0xc13841b5,0x5155c1cf,0xc86bc0d2,0xb266c1cc,0x8709c1cb,0x83cfc09a,0x6391c1ca,0xc469c1ce,0xe7f0c186,0xb26541a2,0x6a52c1cb,0xdaafc183,0x638f419e,0xd468c1ce,0x26aac19e,0xe0c14195,0x4558c1c5,0x117cc1b0,0xe0c14180,0xcaf2c1c5,0x5d0dc1a6,0x638e4172,0xdf74c1ce,0x1139c1b8,0x5dbc4131,0x16efc1cf,0xbedb41cb,0x9be3c0c4,0x602c1cd,0x4f0541d6,0xe0c140a3,0x83c6c1c5,0x86ec41ca,0x6390409a,0x9406c1ce,0xa96041c4,0xb265411b,0xb05fc1cb,0xca3e41bf,0x63904117,0xc0cc1ce,0x8b9241ab,0xb2654178,0xe1aec1cb,0xe23c41a7,0xe0c1418a,0xe547c1c5,0x73ec3fda,0xe0c2c1d9,0x19dbc1c5,0x8e77404f,0xf65c1d0,0xecdec1cd,0xfd1c414f,0x2fa741b9,0xa965c1cb,0x9406411b,0xb266c1c4,0x3cb0c1cb,0x735f4139,0xa5d3c1b9,0xd1c2c1ce,0x1ed40d9,0x403041d4,0xee80c1c5,0xee9f4151,0xe0c2c1be,0x117bc1c5,0x45574180,0xe0c2c1b0,0x8729c1c5,0x83d4409a,0x638f41ca,0x25bcc1ce,0xd0424198,0x2cdbc18f,0xbe8c1cd,0x8b9641ab,0xb265c178,0xf2ebc1cb,0xe30641aa,0xd236c159,0x3805c1cf,0xa8b141cf,0xe0c1c106,0xaf9bc1c5,0xf9d2c097,0x978bc1f0,0x7df4c1a5,0x18e6c0c8,0xbf7ac1e9,0xa7a2c1af,0x5890c1ec,0x31964081,0x95e1c1af,0x7a81bff6,0x6ab1c1ee,0xfc44c1af,0x8db53de3,0x47bd41f3,0x6911c19a,0x1705c1ee,0xbf793eab,0x53f8c1af,0x785c1ee,0xc2b2bf83,0xa03c1af,0x2a28c1eb,0xbf79c0a0,0x9f17c1af,0x74ffc0e6,0x54e241ec,0xbecec1a5,0xf413c1e5,0x6369c124,0x5d57c1a2,0x96d6c10f,0x54e241e8,0x8b6ac1a5,0x9b19c15e,0x639741d6,0x78a9c1aa,0xa3bac1d9,0x1439c158,0xf0a6c1a7,0x4b78c1d2,0xb0eec176,0xd6b5c1a1,0x18d5c174,0x319541cd,0x51e1c1af,0xf4dcc188,0x22a541c7,0x7eddc1ab,0x52c3c1c4,0x4a6c18b,0xa7f9c1ad,0x61bdc1c2,0x1439c191,0x4cfac1a7,0x53fbc1ba,0x3113c19d,0x7f27c1a2,0xa044c19e,0xc38041b5,0xe377c1ab,0xaeadc1aa,0xcb3a41ad,0x6e2fc1a3,0xcbdc1b0,0xcb3ac1a8,0x10a0c1a3,0xad34c194,0x1a76c1be,0x139ac1ac,0xa853c1b1,0xbf79419f,0x818dc1af,0x2e0cc1b1,0xbf79419f,0x47e4c1af,0xcaaec1c3,0xbf794188,0x9589c1af,0xc439c14c,0x8853c1dd,0xfd59c19a,0x404ac1dc,0xcb3a414d,0x4086c1a3,0x496fc1da,0xf6904150,0x931c1aa,0x7febc1ec,0xa42c40f6,0x1b6ac1a0,0x5a32c1e7,0x319640f1,0xcbe0c1af,0x2fa8c093,0x99a2c1f1,0xf6c2bfd9,0xcc1b40d0,0x18941ed,0x4366c19a,0x1826c171,0x85ba41d4,0xcbe0c091,0x2fa84093,0x99a2c1f1,0x5631bfd9,0xf04b4146,0x999141de,0x6aa1bfd9,0x15924124,0xe86c41e5,0xcd5ec0a8,0xe413411d,0x28e941e6,0x1578c094,0x244bc189,0x585641c9,0x43c2c195,0xb6284108,0xba6941e9,0x881c0a8,0x46924083,0x5fad41f1,0x18b3c195,0x7e5740e7,0x5aa641ec,0x3e44c195,0x69f040e7,0xff7c41ec,0xf326c0a8,0x887cc194,0x3b7941c0,0x4c7ac0a7,0xc565c19d,0xeab141b9,0x3509c0a8,0xe0440e7,0x999141ed,0x4824bfd9,0x56f0400e,0x5f9441f3,0x30eec197,0xe059c1a8,0x550f41af,0xb42ac0a7,0x5e4841a2,0xc691c1b5,0xc3c1c185,0x9f1fc1d6,0x99914167,0x4ab4bfd9,0xda7d40bd,0xe38841ee,0x993cc097,0xb2ee41b6,0xf51c1a1,0x1617c1a4,0x8d7ac1ec,0x999a40f6,0x4ebabfd9,0x8b2741a6,0x99a2c1b2,0xf7cabfd9,0x38acc1f3,0x999a3efd,0xc4b5bfd9,0x1073c1f3,0x999abfaa,0xf413bfd9,0x1a5941ad,0x3334c1ab,0xc26dc173,0x897ac1f0,0x999ac09e,0x4578bfd9,0xfe3841cf,0xd83fc180,0xf26fc199,0xeee3c040,0x538841f2,0x2da7c19b,0xcb4cc1dc,0x69b8c152,0x1d36c139,0xeda3c1c4,0xd7a1c191,0x22bcc190,0xd13ac1c3,0xb28ec192,0xc54ebfd6,0x842e41ed,0xb235c0e0,0x4d4ebfd9,0xc457c1a8,0x1de4c1b0,0x37f1c190,0x3a1941f4,0xdf93bf12,0xb8aebfd4,0x76b0bed8,0xf38841f3,0x2a67c097,0x6f693e9c,0x9e0241f3,0xfb2ec095,0x456941e7,0x999a4117,0xb4f3bfd9,0x4ee7c1a3,0x436c1b5,0x3b9bfd7,0xfc21c1a8,0x86f9c1b0,0x4d20c139,0x8a6e41dd,0x9991414d,0x75e4bfd9,0x6ff241cf,0x99914180,0x4092bfd9,0x22aac1a1,0xc25c1b7,0xea2c14c,0x5d941a8,0xfd4141b0,0x39bec195,0x1e014196,0x6a7641c0,0x9f9ac1a5,0xb18ac12d,0xcdd1c1e4,0x43ccbfd8,0x37b3c083,0xb8ed41f1,0xa58ec0a8,0x67d1c11a,0x3aef41e7,0x5b22c19b,0xbb56419d,0x42f441b9,0xe8dc0a7,0x4a644181,0x3e1041cf,0x8901c197,0x4a22c138,0x5bc441e1,0xec03c195,0x10a4c142,0xf8aa41df,0x287ac199,0x19c34195,0x999141c1,0xffa0bfd9,0x30c4c108,0x8a041ea,0x7d00c09b,0x5ad24166,0xf42c41d6,0x5e00c194,0x50de4153,0x5b9341db,0x24fc195,0xdc4dc118,0xcfc41e7,0x8925c091,0x36434188,0x6b8341ca,0xec45c0a5,0xe367417f,0xed1c41ce,0x80d7c0a9,0xa697c170,0xf97d41d3,0x63a8c199,0x4037c138,0xe86e41e1,0xe86ac0a8,0x8749c11f,0x95b841e6,0x1cd7c096,0x8412417a,0x999141d1,0xe5e6bfd9,0xa09a4172,0xcfe41d3,0x9c03c091,0x5c644177,0x65b241d1,0x5bb1c096,0x29034124,0x5b1341e5,0x4c30c195,0x62804165,0x689441d7,0x9afec0a5,0xbf82c14b,0xc69b41dd,0x6851c092,0x3c784153,0xe86a41db,0xb8f4c0a8,0x616bc13f,0x28eb41e0,0xb8dec094,0x5a51c155,0x689841db,0x782dc0a5,0x6143c166,0xe86c41d6,0xac2bc0a8,0xd0cf413d,0x95bc41e0,0x34fec096,0x60f1414d,0x28e541dd,0x2dd4c094,0xdbcc195,0x69e841c1,0x8eccc198,0x411bc184,0xd70ac1a3,0x8eccc180,0x411bc184,0xeb86c1a3,0xf65ec157,0x4f60c18d,0xeb86c196,0x18bfc137,0xa265c1b8,0xa97bc138,0x3a09c181,0x3e42c1c4,0xd70ac117,0x79d7c180,0xd9b6c190,0x5a4ac192,0x5122c157,0x6898c18c,0x3372c190,0xa291c181,0x8a1ac1c3,0xc108,0x5358c150,0xf15fc180,0xb816c1a0,0xb68ec1aa,0x442dc17a,0xe13ac1a5,0xfcafc1b8,0x5368c17b,0x7077c1a5,0xa291c1af,0x8a1bc1c3,0xeb85c108,0x7de5c127,0xd3a0c17e,0xeb87c1a2,0x9b29c127,0xe1aec181,0xb807c1b8,0x530cc1aa,0x1b80c17c,0x97c1c1bb,0xbe80c1a0,0xcdd9c184,0xb830c1af,0x725ec1aa,0x28bdc089,0xb81dc1d8,0xadbac1aa,0x5aa540aa,0xb817c1da,0xe11c1aa,0x29d04091,0xb809c1da,0x4ef5c1aa,0x99824172,0xb817c1bc,0xcf71c1aa,0x9cc14187,0x5898c1b6,0x9760c1aa,0xcfb941d3,0xb816c10d,0xf5a5c1aa,0x5bb7419c,0xb81641a3,0xa02bc1aa,0x102b4197,0xb81641a4,0x8a4cc1aa,0x2c0b414c,0xb81541c7,0x5e61c1aa,0x3375c19b,0xb816419a,0xc4e9c1aa,0xdc88c1a9,0xb8164191,0xde7fc1aa,0xc281c1da,0xb816c0dc,0xb99fc1aa,0xf356c1d7,0xb816c0d3,0xe37ec1aa,0x2bd4c1be,0xb8164167,0xe367c1aa,0xcc4dc1d9,0xb816c0c0,0x3d2dc1aa,0xa915c1de,0xb816c021,0x12cec1aa,0xf3a5c1df,0xb816bf41,0x618dc1aa,0x76bcc1dd,0xb816406a,0x5413c1aa,0xd769c1e1,0xb816408a,0x107cc1aa,0xec6cc1a2,0x5be6418e,0x4eb2c1a8,0x67941dc,0xb816c096,0x7497c1aa,0xc19041c4,0xb8164165,0x8262c1aa,0x3fe541ad,0xb816418c,0x6731c1aa,0xf002c180,0xb817c1b5,0x92d3c1aa,0xaaf3c182,0xb82bc1aa,0xe0bdc1aa,0x6b6a40b3,0x7078c1da,0x9d64c1af,0x989dc138,0x7078c1cb,0x1c94c1af,0x2312c17f,0x7078c1b7,0xc1af,0x68800000,0x707641df,0xe37ec1af,0x2bd4c1be,0x70774167,0xe619c1af,0x8180c1de,0x7077bfe6,0x6a78c1af,0xbc2741db,0x707740a2,0xb51ac1af,0xd66041ae,0x7077418a,0x859c1af,0x2669408b,0x7078c1d5,0x8297c1af,0xa36bc087,0x7078c1ce,0x2cbfc1af,0xe177c17c,0x7078c1b1,0x5127c1af,0x86ec419a,0x70774199,0x127c1af,0xa4424181,0x707641b0,0x125ec1af,0x863dc002,0x707641da,0x18c8c1af,0x55efc1db,0x7077bf2b,0xd606c1af,0x72d9c1cc,0x70774119,0x1fdc1af,0xd6c9c1c1,0x7077414d,0xc233c1af,0xb41641d3,0x7077c0ba,0x2bcdc1af,0x448241d7,0x7077409d,0x410cc1af,0xdc0141cf,0x7077410b,0x18bc1af,0x298b41c3,0x70774146,0x2061c1af,0x2c0241a9,0x7077418f,0x9929c1af,0xfe0941a2,0x7077418e,0x87e0c1af,0xa23f41a7,0x7077c18c,0xd4dc1af,0x79304189,0x7077c1aa,0x29c9c1af,0xd2d641d1,0x7077c102,0x21e1c1af,0x4ebe41d0,0x7077c0e8,0x8568c1af,0x1df1c087,0x28d9c1ca,0xda30c1b4,0xd5f7c0aa,0x28d9c1d5,0x3e93c1b4,0xe1d541a0,0x28d8c18e,0x87e0c1b4,0xa23f41a7,0x28d8c18c,0x920c1b4,0x409041b9,0x28d8c158,0xaeb9c1b4,0x6953c1bb,0x28d84161,0x8f46c1b4,0x2dcdc183,0x28d841a9,0x3c6ec1b4,0x6655c199,0x28d8419a,0xf994c1b4,0x25ae4088,0x28d9c1cf,0x4d00c1b4,0x5d8341d2,0x28d8c0bd,0x1c40c1b4,0xf0b041cc,0x28d84103,0xf100d8b4,0xb428d808,0x9ac169c1,0x95723741,0xb428d841,0x933910c1,0xa3120741,0xfff5000c,0x6003a689,0xb7f88141,0xb428d741,0xd30d92c1,0xda8d0fc1,0xb428d8c0,0xdae98ac1,0xa76e1ec1,0xb428d8bf,0x78c408c1,0xaddd2dc1,0xb8e13ac1,0x275eafc1,0xc5b2f7c1,0xb8e13bc1,0xa3625cc1,0x8b47ed41,0xb8e13ac1,0xcb253fc1,0xaee7f41,0xb8e13ac1,0xd51405c1,0x45b55741,0xb8e13ac0,0xc44c66c1,0x31903a41,0xb8e13a41,0x9ef6a6c1,0x904e5441,0xb8e13a41,0x838f46c1,0xa92dcdc1,0xb8e13941,0xd55d82c1,0x20f06bc1,0xb8e139c0,0xa83731c1,0xcce0c2c0,0xb8e13bc1,0x888e8fc1,0xca36a5c0,0xb8e13bc1,0xab0718c1,0xd14ffec0,0xb8e13bc1,0x2c25ccc1,0xbfb413c1,0xb8e13bc1,0x35f3dfc1,0xbd25d8c1,0xb8e13841,0xa169b1c1,0x86297f41,0xb8e139c1,0xb15989c1,0x60815741,0xb8e139c1,0xc3e2f2c1,0x18323b41,0xb8e13ac1,0xd1c499c1,0x19eac041,0xb8e13ac0,0x88fe76c1,0xcaa07640,0xb8e13bc1,0xc0f3d7c1,0x2533b041,0xb8e13941,0x9cc427c1,0x8b903a41,0xb8e13941,0x5e94c8c1,0xd0098840,0xb8e13841,0xcf6a40c1,0x808914c1,0xb8e13940,0x3b542c1,0xc74a74c1,0xb8e13841,0x6a99ecc1,0xaf2eb5c1,0xbd999cc1,0xe43ae2c1,0xca6944c0,0xbd999cc1,0x2d3665c1,0xc03e6741,0xbd999cc1,0xa9f1dfc1,0x773c0041,0xbd999bc1,0xbe54e8c1,0x30f21241,0xbd999ac1,0xd21508c1,0x8117d741,0xbd999bbe,0x6b79dc1,0xc6c98f41,0xbd999941,0x8f10078,0xc1bd9999,0xc0359a17,0x41d15b99,0xc1bd999a,0xc17b6312,0xca81769,0xb405f100,0x86c1ac60,0x9b417189,0x42c1bd99,0x93c1c98c,0x5440ea55,0x1d0ff100,0x384c3edc,0x999bc034,0xd219c1bd,0xcc42c117,0x999bbe75,0xe558c1bd,0x8b44be42,0xf40018d9,0x754f810,0xcaec1840,0xbd999bbf,0xf8c1a9c1,0x8ab765bf,0xbd999bc1,0x983da1c1,0xb7cd2540,0x3f410018,0x608ab767,0x66667100,0x1415a,0x71007804,0xbf126373,0x18852b58,0xe22c7100,0xe5e3409c,0xf1003cca,0xd54efb04,0xc49f6bc0,0xbd999b40,0x933884c1,0xc8fc4a40,0xf710018,0x5d408bd3,0xcc685,0x85999a71,0xc09c7740,0xdd71000c,0xe8c02a44,0x489073,0x85999a71,0xb5ffff40,0xe8710018,0x61c15eb9,0xcc7118,0x8bd30f44,0x71003cc0,0xc0872ea3,0x24c3aab2,0x999a4400,0x30c085,0x5745d872,0xb06fa9c0,0xc2610168,0x24e2c048,0xf1002497,0x5a666604,0xc7fffe41,0xbd999ac0,0xa0b913c1,0x11a67640,0x33710018,0x2419933,0x60c800,0x5a666635,0x10f1000c,0x405145ae,0x41a00000,0xc1a26666,0x3f58a793,0x41b94486,0xc1a26665,0xbfd145ae,0xcb6a785,0xfa517100,0x7f4ac013,0x71000cb2,0xbf58a793,0x3086bb7a,0x7100,0xd74a8000,0x44000c85,0x3f58a793,0x31710018,0xc4404a24,0x18993a,0xe6666671,0xa63c42be,0x4471000c,0x663f4788,0xc9c66,0x5e8c9c71,0xa1dd0e3f,0x4471000c,0x9a3f4788,0xca399,0x66666644,0x710090bf,0x80000000,0x1898cccd,0xead97100,0xe8a93f22,0xf4000c9a,0x5745d804,0xb06faa40,0xa26667c1,0x85999ac1,0xb60000c0,0x4014000c,0x4f1000c,0xbf6b2bdc,0xc19fc0ec,0xc1a26666,0xc04ede3c,0xc9b72b1,0xb12d6200,0x4e0d3f6e,0x710018,0x4a000000,0x1885d7,0x44009c03,0xae6666c1,0xc01006c,0x7100,0xcccd0000,0x71000c98,0xbf5e8c9c,0xc9e22f2,0xa80300,0x71000c01,0xbf5e8c9c,0xca1dd0e,0xead97100,0x1757bf22,0x71000ca5,0x80000000,0xca73333,0x66667100,0x3c423ee6,0x71000ca6,0x3f8a9069,0xc9b0000,0x7100,0xa906bf20,0x62000ca8,0xbf624628,0x6cedce,0x9a8c5071,0x9d696cbf,0x710018,0xfa3f2000,0xc9756,0x8a906962,0x600000bf,0xa4f07100,0xa8c53ea5,0x470018a9,0x3f200000,0x3f320048,0x781232,0x84228f1,0xe4383f9a,0xa0c7c19b,0xc7cc1cd,0x34bb3cd6,0x871dc1aa,0xb13ec1cd,0x9325bf90,0x9b1ac1a5,0xd456c1cd,0x3dc6bef8,0x666641a6,0x1e00c1ae,0xdc22bf61,0x42000c9d,0xbf22ead9,0xc0010174,0xbebe4100,0x1899c3,0x1019806,0x3f4100fc,0x189e22f2,0xd80200,0xca511,0x19d46371,0xa902bebf,0x7c62000c,0x55bf9f2a,0x110054b0,0x11000100,0x62001896,0x3ea5a4f0,0xc573b,0x100e403,0x48020018,0xc9b1100,0x6524f100,0xa3bf07ab,0x5f41a97d,0x8c1cda1,0x753f69ca,0xb841a7b1,0xecc1cd67,0x73bf9712,0x7b419ba9,0x14c1cd8f,0xbfdd5b,0x34c1b600,0xfbc10333,0xce3eb,0x778de0f1,0x5f3c15e,0xbe8d,0xea8ec1b6,0xb4c168,0x642f3e8d,0xe911c1ec,0x34f4c168,0x2962c025,0xb122c1f1,0xe5c5c15f,0x33334042,0xf1c1c1f1,0xe400c132,0x33333f50,0x468fc1f1,0x6614c10f,0x6cc641ee,0xa7f0c0d8,0x1788c19e,0x335541eb,0xc37fc0d5,0xf76ac1ab,0xeb8141f1,0x2176c04d,0x681ac1a7,0x839041f0,0x7a6dc047,0x9fb6c1aa,0xe01b3ff6,0xc54941f0,0x912ec1ab,0x5d8941f3,0xabdf3f9b,0xfb7fc1a4,0x28283fb4,0xbf7bc1ee,0xd6cdc1af,0x8a1341ee,0xc3814082,0xfcd3c1ab,0x2d0c4102,0xda60c1ea,0xd247c1a7,0xd9454137,0xc382c1de,0x5decc1ab,0x308941e2,0xdc104132,0x4631c1a5,0x83e941dd,0x10eb414d,0xdc17c1a0,0xa44b41dd,0xbf79412e,0xadd5c1af,0x4add416b,0xc382c1d2,0xdba2c1ab,0x545941d1,0xf1001862,0xc736cb1c,0x8c768941,0xa30e4d41,0x8f2925c1,0xc434af41,0xa75414c1,0x8e15f8c1,0xc2bb8b41,0xabc381c1,0xc347e5c1,0x88caac41,0x22710030,0xec419aa1,0x24bb4c,0x83befff4,0x4f41c2cc,0x43418d96,0xc2c1acb9,0x3341a2cc,0x97c1aec7,0x55c1af31,0xa941ab67,0x7ac1a5bb,0xaec1afbf,0xf141c2c0,0x24c19202,0x32c1a616,0x9b41bea0,0x69c18fdb,0x85c1af3f,0xe741c64c,0x7ac18460,0xfec1afbf,0x844180d5,0x9e41ca02,0xf5c1ae8b,0x1b41ceae,0x79c16dba,0xd1c1afbf,0xd2415e81,0x6d41d691,0x32c1aa7a,0x96414932,0xd541de69,0x28c19b4b,0x2341e780,0x1bc111c2,0x2dc1a9bd,0x1f412ad3,0xf41e3c8,0x75c1a5dc,0x3f4129b8,0x6d41e24f,0xaec1aa7a,0x35412945,0x8041e1b6,0x12c1abc3,0x8e41e093,0x79c12029,0x67c1afbf,0xd3410f11,0x1341e81b,0xebc1a754,0x3540e682,0x1041ec58,0xe2c1a5dc,0x7b409365,0xc0c1f132,0xb9bfd977,0x43412832,0xbd41ddc0,0x55358637,0xc84142ab,0xbd41d844,0xd5358637,0x9b41b184,0xbd419d44,0x2b358637,0xc741e947,0x40aaff,0x67000000,0x4541e96f,0x6ac0ae55,0x43b8abf7,0xcb419243,0xbdc1bab0,0xb58637,0x9ac10d1d,0xbdc1e26c,0xcbb58637,0x43c1bab0,0xbdc19243,0x9ab58637,0xc1e26c,0x410d1d,0xec000000,0x70c0e306,0xbd41e645,0x7c358637,0x7c41a40c,0xbdc1a40c,0x7ab58637,0x8ec13e6e,0xbd41d38f,0x63358637,0x7c412489,0xbdc1d8ec,0x94b58637,0x8041e419,0x7c0b40c,0x80b7f345,0xa8c183ca,0xbd41beee,0x2e358637,0x8dc199d8,0xbd41ada7,0x8d358637,0x2ec1ada7,0xbd4199d8,0x4d358637,0x61bfb92d,0xd7c1e896,0xc939e1f7,0xe141e845,0xc53f9d9a,0x7cb8b673,0x7cc1a40c,0xbdc1a40c,0x2eb58637,0x3c4199d8,0x8f8e7200,0x6e7ac1d3,0xf100a83e,0xa2dffff,0x7ec8410a,0x37bd41dd,0x422d3586,0x15bec1e1,0xc0de,0xecb18000,0x4c55c1e7,0xffb5bf3d,0xcd03c1a5,0xe47a4025,0x9b41e7,0x55f0c1a6,0x3c79c1e5,0xffb5c08c,0x2807c1a5,0xfd3c070,0xcaf241e6,0xd569c197,0x43d8c0a5,0xdf2e41e4,0x567c194,0x380fc18d,0xcac341b8,0x9d7dc197,0xd1d0c15d,0xb91341cb,0x268bc101,0xe030c10e,0xe27941dc,0x7dfc199,0xdd15c19d,0x571e41aa,0x347ec199,0x74e0c11c,0x67eb41da,0xcba2c195,0x657fc18c,0x5de541b8,0x7925c100,0xb3d9c0d6,0x5dca41e1,0x855c100,0x693bc104,0xb60341de,0x4c88c101,0xab31c19f,0x5d9c41a8,0x4f48c100,0xa5a0c1b2,0xffbe4193,0x4775c14f,0x864cc147,0xcc8e41d1,0xb852c197,0x4259c039,0x945741f1,0x3066c097,0x4b4ac011,0x955d41ed,0xe2aac0a7,0x5c25c0de,0x9e1b41e7,0x69adc102,0x18dcc0ab,0x955d41ea,0x8eb4c0a7,0x7ba0c0e4,0xc48c41eb,0x94b9c194,0x6ea2c105,0xe9cf41e4,0xbc95c107,0x2911c111,0x945541e7,0x784ec097,0x8086c108,0x118a41e8,0x9acdc0aa,0x3302c134,0xe97441dc,0x2384c107,0xbcccc14d,0x47f141d6,0xac81c0a3,0xf575c16e,0x945741d2,0xe847c097,0xd6f8c178,0x47f141ca,0xef35c0a3,0x1b8dc18a,0x981641c1,0x5d3ec096,0x6dacc186,0x955f41c4,0x63f7c0a7,0xdb95c198,0xccd1c1ae,0x1486c04c,0xae84c18c,0xeb86c1b4,0xeb83c127,0xe1d1c182,0x8684c1c2,0x2930c1a0,0x1513c0aa,0x4b9cc1df,0x16dbc129,0xd9ebc0e8,0xae14c1e3,0x2b13c080,0x5a4cc18f,0x60afc1bd,0xa265c0b8,0x72bc18c,0xe5a3c1c7,0xb3c7c0ae,0xbcb2c182,0x8479c1cd,0x7c9cc095,0xb3bfc103,0x653c1ea,0x4229c097,0xc9d6c0c5,0x8f5ec1e7,0x9e6bc0e2,0xe0d1c105,0xc291c1df,0xea4fc095,0x4332c0c9,0xda3bc1e7,0x7795c18d,0x6241c1e1,0xffd5c0d7,0xae27c14f,0x6684c1d7,0xc0ec,0x6e15c150,0x84aec1a2,0xffff4190,0xc1e5c14f,0xf42a41d8,0x710018f4,0x41d021e1,0xce84ec0,0x9c04f100,0x4d419fe7,0x3419e6e,0x7cc15000,0x6c41a210,0x308eec,0xa7f1c171,0x93aab541,0x4f1000c,0xc1b2a40f,0x418d6d60,0xc1a5ffb6,0xc1de6aab,0x4cc0c526,0x822f7102,0xca97c1e3,0xf1027033,0x69f91528,0xc90add41,0xa5fe5741,0xa02534c1,0xa13731c1,0xa5ffb541,0x9e4667c1,0xa98c27c1,0xa6001441,0xe402bcc1,0xa41ff541,0xa5ffb6c0,0xa220c9c1,0x8fb55041,0xfe710054,0xeb41e7ee,0x4831a9,0xf63704f1,0xe8ab41e3,0xffb63feb,0x892ec1a5,0xf98241d1,0xf3002435,0xfffffff,0x41cc8b74,0x415edb31,0xc1a5ffc9,0x410439de,0x41de68e7,0xc101744b,0x4173dbad,0x41c55fdd,0xc194df45,0x4073f9cf,0xc1e5f0e4,0xc04ccc9a,0x416926b4,0x41c89a96,0xc199e277,0x419d6890,0xc1aa8ec6,0xc19730d3,0x415c2c0e,0x41cc38db,0xc1956794,0x40d81d80,0x41e19c7a,0xc101b42e,0x4183def0,0x41bee658,0xc1005eb9,0x41a00857,0xc1a805c3,0xc1771bf2,0x4198ba2d,0xc1ae9b0b,0xc1868145,0x40ab4d27,0x41e40979,0xc1005ede,0x41d010b8,0xc14d41a3,0xc1761de7,0x400b6b27,0x41e758bf,0xc10683d7,0x4034e6ac,0x41e6e197,0xc0fa9149,0x3f34f095,0x41e7ede7,0xc1009ca9,0x4146ebae,0x41d1989f,0xc10094e7,0x415e6036,0x41cba085,0xc1005fa5,0x41027022,0x41dea447,0xc19567ec,0x418dc0c4,0x41b7a8dd,0xc195996d,0x40aa2cb4,0x41e415a9,0xc197cae6,0x418e14a0,0x41bed241,0xc0fc19a8,0x4193fd98,0x41bfdd52,0xc0aa1188,0x41914b2e,0x41bc7cd8,0xc0a79559,0x4162cd4d,0x41d13803,0xc1029e1b,0x417a221d,0x41ca7c68,0xc107e9ce,0x416fce43,0x41cd7782,0xc0969814,0x41799740,0x41caa478,0xc0a7955d,0x4135e5c3,0x41dbe94c,0xc0a347f1,0x411087e1,0x41e87d89,0xc096ac38,0x41154aca,0x41e68391,0xc199ec5b,0x4108f035,0x41e99f93,0xc1963a0d,0x40ca2aaa,0x41e8766d,0xc0969814,0x40b1b2a7,0x41ee16c5,0xc19741c5,0x405d13ec,0x41ec4bdf,0xc0fc19a6,0x4014541e,0x41ed40b8,0xc0a347ef,0x404fba02,0x41ec78e1,0xc0969814,0x40307497,0xc1dbd8b6,0xc10cc39f,0x408187ee,0xc1df4968,0xc116f4b2,0x40bba2e4,0xc1e8e047,0xc0d80002,0x40c49412,0xc1e7dd84,0xc0a85020,0x40afbe57,0xc1e02682,0xc0b938a0,0x40edec5b,0xc1e331c3,0xc1a0584f,0x40c54229,0xc1e7c9d6,0xc1868f5d,0x418c6742,0xc1be9aca,0xc18eb499,0x418b7c37,0xc1b4f362,0xc1905f59,0x41a49e81,0xc1b33d2b,0xc18049f0,0x41a26958,0xc1b58fce,0xc18d61bd,0x41deb60c,0xc1456f53,0xc185eca0,0x41dbd883,0xc150df90,0xc17a7fa0,0x41906842,0xc1c442e4,0xc0d41b95,0x418349c3,0xc1cd5030,0xc095f397,0x40f6b641,0xc1ebaa27,0xc197a6b6,0x41450ea2,0xc1df4daf,0xc0935600,0x419a6c04,0x41b511ca,0xc1029e1c,0xbf61e29b,0x41ede40a,0xc107cb94,0xbf4b8690,0x41ede426,0xc0a347ef,0x3f4ef827,0x41ede3f1,0xc102e25e,0xc1a3e824,0x41ac8826,0xc0a347ed,0xc19d1c76,0x41b2a656,0xc0fc19a8,0xc199ed89,0x41b5845c,0xc107e9ca,0xc1a0faf0,0x41b5259f,0xc1996890,0xc1a6e42a,0x41afb543,0xc1968a16,0x3ecaa1b6,0xc1ec642f,0xc11757db,0xbf9cfde3,0xc1ec5e77,0xc11b3751,0x415a6666,0xc0c7fffe,0xc1a9999a,0x24993333,0xc1a9910c,0xbed2367e,0x188d6e98,0xf804f100,0x76400754,0x9ac111a6,0xb9c1a999,0x4440ea7a,0x18d98b,0x1ea310f1,0xed9ac0be,0x999a4035,0xf156c1a9,0x4dbac0e2,0x999a3f70,0xebbac1a9,0xe284c0ff,0x330018eb,0x2c993333,0xc020d,0x910c6c02,0x6666c1a9,0x8415a,0xf4003080,0x8525ad51,0xbc34d1c1,0x868f5dc1,0x827859c1,0xc8c02cc1,0x931aeec1,0x73a9a9c1,0xc1529fc1,0x92dfe8c1,0x1595dc1,0xdb2a84c1,0xb14d34c1,0xc6c8ec0,0xd8a98dc1,0xb17413c1,0x1802e5c0,0xd60af0c1,0xb193b4c1,0x407865c0,0xcce561c1,0xb1baaac1,0x348aa2c0,0xcf97c1c1,0x92c48ac1,0xf50018c1,0x92c48a0c,0x5d0021c1,0xc67232c1,0xb193b4c1,0x80f6b5c0,0xbe1d18c1,0xb72259c1,0xfff10054,0x92d63005,0xea8028c1,0xddeab5c0,0xb545ebc1,0x76d082c0,0xc09c37c1,0x93b9f6c1,0x1d416c1,0xe656dec1,0x932694c1,0x173695c1,0xe2cbaec1,0x936cd0c1,0x1f443cc1,0xe18e18c1,0x9370a8c1,0x4a0ff0c1,0xded339c1,0x97d378c1,0xe3c16c1,0xe967eac1,0x96ccc2c1,0x4968cbc1,0xd8d3e6c1,0xaf1731c1,0x820fddc0,0xc8e207c1,0xb03285c1,0x499176c0,0xdea665c1,0x9c49b6c1,0x8d220fc0,0xc70a72c1,0x8d5a71c1,0x8fb1f4c1,0xc5331dc1,0x89f3ebc1,0x8e6d67c1,0xc62140c1,0xbe6636c1,0x2c0012c0,0xe45780c1,0x993334c1,0x32003c1,0xeb0995c1,0x95ff9dc1,0xe0df9ec1,0xed6f5ec0,0xc762fec1,0x11734c0,0xe68ef3c1,0xb06120c1,0x1d0c4c0,0xe0bcefc1,0x987807c1,0xbe27dbc0,0xe89760c0,0x80c0f0c1,0x6526e8c1,0xca47d7c1,0x700004c1,0x647a14c0,0xca6eeac1,0x6addf0c1,0x8df400c0,0xbde6f6c1,0x915332c1,0x61f486c1,0xcb00dbc1,0x4f10018,0xc1633a98,0xc1cab725,0xc066b86b,0xc1186293,0x3cdba2b9,0x480400,0x333408f1,0x2168c1a1,0x5eaac18f,0xc5adc1bd,0x5578c181,0x31f0c11a,0xf40030db,0x8f3ac709,0xbd5331c1,0x81a57ac1,0xf4acdec1,0xe26defc0,0x79f9bac1,0xf10030c0,0xfa49e6bc,0x8f59ecc0,0xbd451cc1,0xf84435c1,0xc317c0c0,0xe808b4c0,0x925915c1,0x8cd63bc1,0xbe6827c1,0xda3644c1,0xadaecdc0,0xe062d5c0,0x8213f9c1,0xaaa381c1,0xe0baedc0,0x8135f6c1,0xac81fec1,0xe084d6c0,0x808216c1,0x153449c1,0xd24997c1,0x6c2774c1,0xad7410c0,0xe0699dc0,0xfbb444c1,0x738900c0,0xbcf632c1,0x93cbaec1,0x5e1969c1,0xc1ceccc1,0xa1ae46c1,0x1405f8c1,0xd28df0c1,0xa2cd9bc1,0xce732cc1,0xdcaeb1c0,0xcc5be0c1,0xb692ffc0,0xdf61b6c0,0xa8dfd2c1,0xe65602c0,0xd9fb73c0,0xb2145bc1,0x8b84bcc0,0xb4ef8bc1,0xc62303c1,0xcf82c9c0,0xdc8ffcc0,0x8cb2c6c1,0x11735c1,0xe68ef441,0x2cf502b8,0x40e97f32,0xc1de07e0,0xc191c3da,0x40d73e68,0xc1e01751,0xc18bf3a1,0x418454f3,0xc1bc95d3,0xc18cc352,0x41846a5d,0xc1bc8d88,0xc0ca89e7,0x40d2b967,0xc1e096c2,0xcdba062,0x4b1ce100,0x9678c188,0xd3954168,0xd630c1c3,0xaf402b8,0xc6723241,0x92ce48c1,0x7d9efcc1,0xbf120d41,0xb08816c1,0xc6c8ec0,0xf402b841,0x6813f585,0xd0e1d441,0x936d3ec1,0x405c57c1,0xdac6fb41,0x936dbfc1,0x41b9b5c1,0xdab5da41,0x9370a9c1,0x173216c1,0xe2cdc041,0x936cf5c1,0xe3c16c1,0xe967ea41,0x96cccec1,0x4ca539c1,0xde10a841,0x978e07c1,0x6fd595c1,0xcef84841,0x9370b9c1,0x205f1cc1,0xe1185641,0xaf17b1c1,0x4f8897c0,0xddd43441,0x9cc9a1c1,0xe0dfabc0,0xed6f4d40,0x8d5a70c1,0xd7006bc1,0xee036740,0x8d0b75c1,0xf9815ac1,0xebee0b40,0x977d49c1,0x2c0012c1,0xf402ac41,0x8f73e019,0xc562bb41,0x8c956fc1,0x8f3278c1,0xc5919f41,0xc89f17c1,0x88d103c0,0xc4364741,0xd193d3c1,0x8cd63bc0,0xf101ec41,0x8a8bbc1c,0xbf717141,0xb8fde5c1,0x8f6546c0,0xbd40ac41,0x8155f9c1,0xf1bc3ac1,0xe2c31440,0x9fb806c1,0x1b94f5c1,0xdae9b541,0x38f502a0,0x418f45b3,0xc1bd4e40,0xc0f97a3c,0x41633531,0xc1cab974,0xc0674b77,0x418f564e,0xc1bd46be,0xc0f89ec9,0x41199003,0xc1db5e93,0xc1a2263e,0x411a465c,0xc1db3559,0xc1a23de9,0x411a8b77,0xc1db25ba,0x54a23bad,0x7760f500,0x7fc1a1d7,0x90416343,0x1cc1cab5,0xb2c1a25c,0xee416147,0x34c1cb27,0xf2c1a133,0xd2418484,0x22c1c22a,0xd4c19713,0xc540b8fe,0x88c1e5db,0xd0c0f53b,0xcf40dc09,0x74c1db25,0xe1c07d98,0x19418c8c,0xf7c1b478,0x19c18135,0x39411052,0x74c1d364,0xfec06c27,0xd640ac81,0x53c1e084,0xf9c181e4,0x4a4112c5,0x1dc1d2d6,0x185f1f,0x821625f4,0xc505c180,0x3cd340f5,0xcbaec1d8,0x3449c193,0x49974115,0xae46c1d2,0x21d1c1a1,0xc52540b3,0x3334c1df,0xca0ec16f,0xd030418b,0x8315c1b4,0xcc0fb,0x7cf049f4,0x7415c0f4,0x7cbf4181,0x8baac1b9,0x3d6ec0bb,0x3a054184,0x970bc1b8,0x3b95c0db,0xa0dc40bd,0x6668c1de,0x127ac0de,0x9706418a,0x77e0c1b5,0x95b8c193,0xb81a40b3,0x1f30c1df,0x3a30c0b2,0x32b40b4,0x6668c1dd,0x7a8c0de,0x8d21418e,0x8216c1ba,0xcc180,0xfac47cc1,0xb64b68c0,0xfa8a0d40,0x6105e8bf,0xf140e584,0x60c66f4,0x8ead5871,0xb8e62140,0x2f710018,0x124072be,0xcacde,0x3e2df971,0xb0e59b40,0x1f71000c,0xa140ed31,0x308794,0xf062ce75,0xc074cf40,0x2131000c,0xc9593,0xfd66272,0xc8cb3240,0xa1610030,0xc4153fea,0x71000cde,0x40ccb442,0x8402c339,0x44d47106,0xd27c40d6,0x710030fa,0xbe53ec89,0xcd54a8e,0x95af7100,0x8d7abd10,0x71000ce2,0x40026c05,0x3010a2d4,0x609a7100,0xb2b73fb8,0xb7000c0b,0xbea98a87,0xc0c77f88,0x30a1999a,0xa106f100,0xfd662c1,0x11ea9240,0xa1999ac1,0x3981dcc1,0x149a7f40,0x6c06000c,0xc1a19100,0x40de933c,0x3cef1d99,0x84ba4200,0x6c40e5,0xcca117,0x2000c02,0xa11700cc,0xa1a40108,0x3949bfc1,0xb26d4840,0x2006cbf,0xa11700e4,0xa19100e4,0x3d7a68c1,0x2102fb3f,0xc5710060,0xa8bed9aa,0xca3d6,0xc6b904f1,0xeda6c140,0x999a40e4,0xa12ac1a9,0x9f3fc146,0x71000cdc,0xc1586362,0xcb015b1,0x71958400,0xc964c130,0x18bd9c,0x2056031,0xcb840018,0x66c13737,0x3c3d92a0,0xc9153100,0xf3077423,0x59dac00c,0xf20d5c1,0xa1999a40,0x54eaa3c1,0xd1ca43c1,0xa1999a3f,0xd023dc1,0xa1d70048,0xf95a30c1,0xc2abacc0,0xa1999a3e,0xa19107e0,0xd50f84c1,0xc29e17c0,0x5071003c,0x83c0ff89,0xce893,0x107c2071,0xf556a1c1,0xa471000c,0x82c122f4,0xcf873,0x1700c006,0x9100b4a1,0x3994c1a1,0xfb89c15c,0xf100249b,0x957bdb10,0x29aee4c1,0x707ae1c1,0x4f6e74c1,0x55db3dc1,0x1a147a41,0x4b9293c1,0x57746fc1,0x12f2000c,0x4160e241,0xc141fe4b,0xc11a147c,0x4188bfd6,0xc11f2f80,0xc11a147b,0xc181329f,0x411737e0,0x1400307b,0x71003041,0x4193fe08,0x18236265,0xbec37100,0x504f4152,0xf1004853,0x679a1e04,0x2904f5c1,0x1a148741,0x5515a9c1,0x2499cac1,0x2a710024,0x2413b01,0x605a32,0x24c6c671,0x4f881e41,0xce71000c,0x32c168ed,0x3c3712,0x37f0d462,0x18030641,0xd010f100,0xeec1181d,0x2e41870d,0x34c10f5c,0x5c40db1e,0x2bc1942f,0x14c10f5c,0x7f413691,0xc9a04,0xf160c004,0xf5c2808,0xe4cccdc1,0xba7884c0,0xf5c2841,0xcd2d28c1,0xb2d463c0,0x71000c,0x66c0c800,0xcbc66,0xa90504f1,0x4ccdc120,0x5c2ac1a5,0xf109c10f,0xc130,0x71000caa,0xc12c5d5b,0xcacfb7a,0x7100,0x2150c11d,0x71000ca7,0xc0b6adf3,0x3cb08000,0xa8c47100,0x1817c121,0x620018a4,0xc11a9694,0x24a12f,0x22000071,0xa2cccdc1,0x350018,0x3c1300,0x9999a71,0xaf4551c1,0xa5350018,0x6003a2,0xda2704f1,0x2c3f40bc,0x5c2941a9,0x1ccdc10f,0x5721c195,0xf100cc30,0x86224704,0x9174ce41,0xf5a70c1,0xb40000c1,0xae000040,0x66350078,0xc8e66,0x905cd771,0xb1ba1c40,0xef440018,0xc0c0fe1d,0x4804f100,0xc4c167b1,0xc641a038,0x4ac10f5b,0xae409f45,0x24b82e,0x5dab0df4,0xddeec122,0x5c204183,0x5949c10f,0x1f41c127,0x5c23418a,0x3333c10f,0x12c40ab,0xb9178f44,0x44014440,0x40c2d2d8,0xfe810138,0x704197cb,0xa8c11446,0xcc3400,0x44009041,0x40c80000,0xfb440150,0x50410f56,0xa2a54601,0x1444103,0x40c851,0x84b300,0x1c29af71,0x8b8c61c1,0x29350084,0xc0ffa3,0xd6e87135,0xd440078,0x6840d952,0x24646201,0x891940d6,0x1f400e4,0x41b1eb08,0xc12f975a,0xc10f5c27,0x40f66666,0x94440168,0x80411a96,0x74397101,0xb597411f,0x710168b0,0x40f522e0,0x509c2126,0xa801f401,0x1541b590,0x17c115da,0x66c10f5b,0x8c412666,0x5d5b3501,0x7100a82c,0xc1027c9b,0x64a7548f,0x520d3502,0x4401ecd9,0x4134cccd,0x6444006c,0x90c0d624,0x5910f100,0xfac1a6c3,0xfac0defd,0xaec138bc,0xecc1803f,0x10c0556c,0xec138bd,0xecc1586e,0xc256c,0x47759771,0x418b11c1,0x8582000c,0x2bc18711,0x24c10fa5,0xc1405100,0x1882b676,0x94e67100,0xcb5cc12d,0x71001808,0xc0db3c4d,0xc079fed,0xfffff100,0x87581bff,0xb712c14f,0xbcdcc18e,0x4485c138,0xe30c1b5,0xa3abc0d0,0xdf13c139,0xa201c1b0,0x5b0f4134,0xdc1fc133,0x98ef41ae,0x5ddbc105,0xba2c13a,0x4f0a41a5,0x88c14130,0xb3eac13a,0x9803c18b,0x68764150,0xf7ec13a,0xdbbfc16c,0xe816419e,0xa471c13b,0x6c3fc199,0x809b411b,0x7310c13b,0x6844c178,0x47ef4137,0xe3eec13a,0x79cf4182,0x5e344134,0x2046c13a,0x4df5417c,0x5e36c193,0x999ac13a,0xffff4186,0x5e35c117,0xe023c13a,0x360418d,0x5e36c11c,0xbb6cc13a,0x75ca419d,0x5eb94174,0xe6aec13a,0x3ba4c0b8,0xf7d0c193,0x4684c143,0x999ac016,0xf697c193,0x96ccc143,0x396405a,0xfc294180,0xeaa3c143,0xf6f240f7,0xcccfc1a6,0xea36c11c,0x5903414e,0xcce0c19a,0x6e91c11c,0x21264135,0xcccfc19c,0x7a75c11c,0xe8334128,0xcd18c1bc,0xd837c11c,0xc6844125,0xcccfc1af,0xac4fc11c,0x4cb0c138,0xcccfc197,0x8889c11c,0x2960c105,0xcccfc1bc,0xc687c11c,0x1dcbc126,0xcccfc1bd,0xbe18c11c,0xaccdc0f8,0xcccfc1a7,0x110cc11c,0x480c0d6,0xcccfc19a,0xbf2fc11c,0xb8fdc0b5,0xcccfc193,0xa4e2c11c,0x99994158,0xeb9dc193,0xc4a4c13a,0xcb97c0e3,0x2bd441c9,0xcf1ec147,0x2558c0a6,0x2b03c159,0xb22dc147,0x9656c0d2,0x2b03c14d,0x2075c147,0xbfdd405b,0xac7ac142,0x32e4c148,0x23184056,0x3c91c0e5,0x6ee3c14b,0x2b5e4059,0x6860c09c,0x92f3c14a,0x8e6dc016,0x5e35411b,0xa4d7c14a,0x88f04024,0x19074119,0xb4f6c185,0xed89401d,0x8366c08a,0x3505c183,0xa3df404d,0x6b9dc098,0x254fc183,0x7a23416a,0xf7cfc106,0xe72cc14b,0x8af54167,0xd43419f,0xfeac184,0x1e34416a,0x2bc840fd,0x9c51c147,0xcccec10d,0xd9ce41a0,0xbd23c183,0xcccd40fb,0xadc941a0,0xd5cbc147,0xd7f6c158,0x6c5241a0,0x37bac13b,0xac38c10c,0xf120c0eb,0x2e97c184,0x774bc141,0x5658c066,0xb098c13a,0x9cbbc151,0xe63ac026,0xe3b2c139,0xe59cc127,0x56aa4186,0xd89ac13a,0x886c11f,0x357b4184,0x6719c13a,0xa25ec118,0x34104186,0xea0cc13e,0x8c02c116,0x2b0941b9,0x3711c13c,0x6cfdc0ce,0x28f541bc,0xdd89c13c,0x4cc240eb,0x28b341c8,0x3c5cc13c,0x648dc01e,0xccde417e,0x4e7bc183,0x6979c04d,0x3d3f40dd,0x297c183,0xa1134135,0x6214c1b9,0x1485c13a,0x2b9f412e,0x56ab4122,0xbe39c13a,0xfc994147,0x56ac4114,0x29a0c13a,0x55aa414b,0x55e9c1ac,0xab8fc13a,0x2c61413d,0x56ab4105,0x2739c13a,0xec674118,0x334bc186,0xb17ec13e,0x4a51419c,0x4738c0f7,0x31e7c185,0x94ed41ae,0xf5cc4113,0xce26c118,0xa7184185,0x99b64127,0xab1ec131,0xf31dc168,0x2c524136,0xd13ac147,0x47afc166,0xf200410f,0xa1edc184,0xf5036c5e,0x854356d8,0x6bb98cc1,0x396104c1,0x3cb95941,0x687f39c1,0x4f1a16c1,0x83a6ef41,0xb3c7f4c1,0xd9e286c1,0x222920c0,0xa18e81c1,0xd1b878c1,0x836378c0,0x9b2d6ac1,0x1aecf7c1,0x319b4241,0xa17acec1,0xaec5d241,0x83a5593f,0x610be2c1,0x41b36241,0x207ae3c1,0x80dd41c1,0x2788a4c1,0x207ae1c1,0x86cc77c1,0x2f08c1,0x207ae1c1,0x470e7ac1,0x63d46bc1,0x207ae23e,0x284f80c1,0xeb5efc1,0x207ae2c1,0x880000c1,0x7031fc1,0x207ae141,0x86ed9fc1,0x176e7441,0x207ae141,0x87ba37c1,0x13929341,0x207ae141,0x4f6e74c1,0x55db3d41,0x207ae041,0x86cc74c1,0xf71f2c1,0x207ae141,0x16a8f9c1,0x58000041,0x207ae2c1,0x5791fcc1,0x4dba04c1,0x207ae041,0xcf56fc1,0x8b5e533e,0x207ae23d,0xfff207a4,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x207ae06a,0x46a3a5c1,0x5d5172c1,0x2f5c2a3e,0x84abb2c1,0x23c85040,0x2f5c2ac0,0xd5275dc1,0x9096d12,0xde020c02,0x4700440f,0xfa0d480d,0xa19cb03,0x600d6121,0x5700650d,0x602a630d,0x6b0d690d,0x7900682a,0x7918f729,0x740d720b,0x532a752a,0x4d0d4d20,0x530d7400,0x3e004d20,0x270d2420,0x4f20542a,0xe5004e00,0xe6058322,0xef25cb22,0x6223fe06,0x5a145b14,0x79205814,0xc9205700,0x3711bb11,0x652a7a25,0x1920490d,0xf11ed11f,0x530d5707,0x7520302a,0x4c0d5900,0x4c007000,0x28004b00,0xe203e00,0x7a181c20,0x2a08431f,0x10205c0d,0x8a25cd20,0xe068b06,0x5b203e20,0x3405ec20,0x84235117,0x2e1a1621,0x560d4f04,0x57005c0d,0x7b0d7d2a,0x7b00512a,0x512a7e2a,0x7b2a5700,0x7e0d7d2a,0x9d205c0d,0x7a166210,0x3b187f08,0x13188125,0x80008100,0x800d060d,0x4b00850d,0x2a17fe1f,0xdf001b08,0xc400081f,0x40074324,0xce08d907,0x6b08d710,0x67206920,0x650d8c20,0x6e2a4720,0x492a8720,0x841fed2a,0xed1fec2a,0x842a021f,0x42000a2a,0x3c1fe90d,0x33003f2a,0x710d3300,0x1b0d342a,0x352a7220,0x722a3d00,0x90201b2a,0x722a6f00,0x390e372a,0x41120f0e,0x7220240d,0x24207220,0x242a8b20,0x8b2a4a20,0x700d922a,0x4a2a4a20,0x8b20702a,0xaa0e252a,0x9211fd18,0x8a0d9500,0xee02e62a,0x681cde02,0x3d0a3428,0x7929790a,0x320b780b,0x3128610a,0x32200d0a,0x322a312a,0xfc0ffb02,0xcf25a00f,0x1a031701,0x5c225305,0x2217422,0x3519fa1a,0x362a582a,0x7413ff2a,0x228940a,0x71f5b18,0xce136e18,0xbc09e509,0xbb14380a,0x8907830a,0xbd1eb607,0x3a053c19,0x772a0a21,0x992a072a,0xb000a92a,0x240b240d,0x6b14a129,0x80087f10,0x3c196108,0xa823ba19,0x14240f06,0xce275b24,0x5b096912,0x9702b31c,0xe50de220,0x1e0ddc0d,0x670dff25,0x4c035e18,0xad0e450e,0x160a0a13,0x5f158a0a,0x4f1e8e12,0x59105a10,0x6e0d0e10,0x340d0a00,0x35227f05,0xce056b05,0x3122cd22,0xc3060f1d,0x7b283022,0x62139513,0xf322f41d,0x2e1a1922,0xb043c1a,0x56224705,0xbe1c4f22,0x4e26bd26,0xe5245024,0xc302d206,0x4702d00e,0xa91daa23,0x79070f1d,0x70247724,0x2e15661e,0xb913f60c,0x600b3b14,0x6128ea14,0x9315ee14,0x130c8c0e,0xf00312a,0x3d0d1d0d,0x38002320,0x3a203f2a,0x730d232a,0x9a200c00,0xa260b06,0x10181124,0xd21f6418,0xd1043304,0x11290404,0x8727990b,0xde051819,0x1625951a,0x8e1bab03,0x791e2723,0x8e06e723,0x90067406,0xc1117b11,0x2127220b,0xfe128c27,0x2d080707,0x4119dd1f,0xe8224022,0xd9038826,0x69271726,0x5b091028,0x5c0b410a,0x100d750a,0x170d6f00,0xe006e00,0x342a060d,0xa1001520,0x6121b521,0x9711f304,0xd800c811,0xfb25db25,0xbf04b023,0x3a04ae04,0xb1182918,0x7508bf00,0xe108c116,0xbd1f0707,0x8e13f917,0x2278828,0x1230a17,0xc809b617,0xfd27d109,0xfc133828,0xeb1dba28,0x1e22f405,0x1b203c00,0x8b08c70d,0x2b168516,0xe308041f,0xb815f017,0xd315db0c,0x5c193f23,0xa401c506,0xdb1ba11b,0x9610dc10,0x3805af16,0xba1da023,0xdc1b9601,0xb1e0401,0xa2237a27,0x2409aa14,0x22156a0b,0x2c111011,0x351e471e,0xe01310c,0xf4120c12,0xd70cd915,0xbc183c0c,0x26183b0d,0x3a072e07,0x572a0c24,0x2c2a0d00,0x2b205c0d,0xfb18990d,0xd0255b00,0x851a4e21,0xcc04f904,0xf1acd1a,0x351d3306,0xf11e81d,0xb11eb01,0xa06b626,0x40037324,0x420e6d0e,0x3e034303,0x5c0e520e,0x1403600e,0x92098f29,0xae12e914,0x1a141028,0x7600712a,0x3618820d,0x9a188025,0xf20a6912,0x82269113,0xf11c2526,0xfc1c010f,0xe203971b,0x6039826,0x727fb28,0xeb281b28,0x97280f09,0x2140328,0x513ab14,0x9f28420a,0xc50fa20f,0xf51abc01,0x10223c04,0x1300310d,0x8b206f2a,0xa42a6f00,0xaf00a700,0xe111af0d,0x1125210d,0xe417c01f,0x93124807,0xb11ecd07,0xc829a229,0xab17ad0b,0xa107c917,0x9400010d,0xf814c700,0x6528c928,0x9514e60c,0x8226e915,0x1b038e03,0x110a3e09,0xfe0c1c09,0x4b14fd14,0x5315610c,0x3c15ca1e,0x430e9e11,0x1d19ff04,0x4f089e04,0xe5108f16,0xe42a4f1f,0xd829611f,0x7296018,0xca222304,0x81053704,0x1e228722,0xce1acf05,0xb600b21a,0x3124f600,0xf800b018,0x9f053024,0xef227e04,0xfa00b824,0xfc0dbd24,0x1f182e24,0xf61f161f,0xae18ac07,0xfd012118,0xc80dc724,0xe105840d,0x8416ec16,0x8809840a,0xb30c7e27,0x715ae15,0xbd17bc1f,0x3f091d17,0x5f271c0a,0xd1186118,0x2f060f11,0x9022c31d,0xd30ac009,0xd605f628,0xf506031d,0x2d24f624,0x45184618,0x3250218,0xd0013425,0x5c272c0d,0x83275b27,0xd0300,0x7119772a,0x82210922,0x361af422,0x140d1605,0xd00d1520,0x83068725,0x9609f406,0x5909fc13,0xd9198d1a,0xc702d221,0x5c0ec301,0x60025e02,0x3d264102,0x8706f126,0xec11c918,0x5b234d00,0x93234e23,0x11dfc23,0x7311131e,0xf0c3815,0x4b153c0c,0x7200351e,0x642a3e2a,0xec1e8b0c,0xea1eeb14,0xb41ee91e,0x5212aa12,0xf2259309,0xc4030b1c,0x9e113c0c,0x1225130c,0xed0dda25,0xef22e716,0x4f0a6316,0xd2129909,0xe524e324,0x8c14b224,0x9314b414,0xa1108b10,0x302a0b08,0x152a1000,0x22251625,0xd811a625,0xb2186900,0xf00d011,0xbd011e25,0x5a0e2e18,0x5711a218,0x1a25f218,0xd4240907,0x6a186900,0xd500d318,0xaa0dda00,0xd10ddd11,0x63186511,0xbd00d418,0xe2187111,0xe3252700,0xc8252600,0xea253411,0xe111b900,0x8a00e800,0x7d088908,0x80187a08,0xe4253618,0xd17c007,0xf011cc1f,0xc5188400,0xee252f11,0xf900e20d,0xb911bd00,0xbb253711,0x4900fc11,0x1254a25,0x8925490e,0xd211d318,0x4b254b11,0xfd11d225,0xef0df700,0x8a0df800,0xd4254918,0xd255711,0xe525550e,0x1a11e411,0xe818920e,0x4e189311,0x10125,0x9811d801,0x4c11d918,0xdc189825,0xa406a011,0xdc25fe06,0x3189811,0x5c0e0501,0x60e0625,0x5255c0e,0x1b189801,0x10255c0e,0x1c255c0e,0x14255d0e,0x7711ed0e,0x9b0f6b01,0x9f255201,0x3a0e1318,0x71162410,0x11010b08,0xe011e001,0x15011111,0x110e150e,0xf1010c01,0x870a6213,0x3f02fa28,0x1a1cea03,0x1b01450f,0x1725541b,0x9711ef0e,0x1611f711,0x130e0801,0xdb010401,0x4d011311,0x60e0425,0x8e188e25,0x6250618,0xa6109401,0xd5165608,0x18119611,0xa813e901,0xe5288128,0x981ee21e,0x618a417,0x5f18a325,0xa218a525,0xf00e1e18,0xb7255011,0xa71cb00e,0xee25301c,0x2b0df00d,0x2e129527,0xf11e927,0x4d11e801,0x9f26a002,0xd00f9b26,0xe801bf01,0x59255a11,0xad18af25,0x3a012018,0xf900f325,0x28011f0d,0x3a12090e,0x6101600f,0x9a1fe001,0xa000992a,0x31b25,0x3116181d,0x38161710,0x3625730e,0x512a800e,0xbb205e20,0x770e3a18,0xc8124925,0x771ec91e,0x79247b24,0xc0099106,0xad09900a,0x810c7c15,0x522950c,0x4e053f1b,0x174f17,0x841b0d06,0x481b0e19,0xfd084c08,0xf625f315,0x69260f25,0x4c00680d,0xe5058620,0xdd058b16,0xf00eef1c,0xe506920e,0xc8069725,0xce01ee0f,0xab17911b,0x8507ad07,0xf423f006,0x17005623,0x202a5d20,0x1c15f816,0xf616ad16,0xfa10f410,0xaf17ad1e,0x38163d17,0x4d164516,0x48057f1d,0x870bbd1d,0xa29b311,0x541aa604,0x640a6321,0x4113ef0a,0x58264626,0xee19bb24,0x6721421a,0x640d6300,0x6e18180d,0xc11f691f,0x6b1d2d22,0xb71ce805,0x4102fa25,0x480d960d,0x3b15e52a,0xa2113c11,0x9f097f09,0xd003bd09,0x8903c919,0x8a1c6602,0x721ffa02,0x9b0d1200,0xfa26f003,0x71001c26,0x742a1b00,0x2c290827,0x94124629,0x2e079607,0xb10b0329,0xe519f514,0xbe19f419,0x3d07911e,0x39066212,0x1123d906,0x2d203320,0xd9169400,0x5008e110,0x2a197e21,0x6291321,0xe149129,0xf14870b,0x75077329,0xe024df07,0xdf169b10,0xab204f10,0x862a7000,0xe12fa0a,0xcd27e414,0x8d09e109,0x8f058e05,0x95237905,0x221de723,0xe6270c1e,0x961d5f1d,0x751d5e05,0x23212021,0xf0b0e21,0x34291629,0x402a710d,0xad11512a,0xc729880b,0x57027f26,0xf922861c,0xec1af81a,0x2804cf19,0x1f265422,0x36242d26,0x89043704,0x171a0b21,0xf91a0a1a,0xac04bf21,0x88088604,0x9d107708,0x8a267606,0xc1130724,0xae09910a,0x3f26b226,0xa02301c,0xd71c051c,0xfe1dd81d,0x41014205,0xbb1b1a01,0x980fa901,0x9d05eb0f,0xb022f405,0xae012518,0xb925b718,0x95033f25,0x2e05c81d,0xb7249c23,0xd9249d24,0xda14520a,0x9c11390a,0xd40e9d0c,0xce10c408,0x14002108,0x410d1620,0x262a1800,0xcd0e9320,0x93192c0c,0xb00f8f1b,0x4250601,0xd511da0e,0xff1dd41d,0x841fee05,0xf22a000d,0xc00571f,0xa10cf42a,0x2620790d,0x2200742a,0x6d20132a,0xe1201200,0x8c1f7d24,0xad16521f,0xf208ac08,0xee00820c,0xd620df1f,0xcf1c9320,0xda1f1f17,0x801e0d17,0xa1e0a0c,0x81061b27,0xeb1dfe23,0xae23911d,0x83122b1e,0xc71ec507,0x441ec61e,0x83268402,0xf500e826,0x15253a0d,0xf9216f04,0x6e03d019,0xdc212521,0x58048721,0x9a267e1a,0xbc267f24,0xbd02d21c,0x2b00731c,0x7d2a252a,0xf90b660b,0x240e8518,0xb60e7611,0x9f07b507,0xc01c7717,0x611c7520,0x6010a216,0x28015916,0x261b260f,0x2601490f,0x5901491b,0xf31b2601,0xf60d501f,0x470f451f,0x3a01690f,0x6e1b451b,0x8f25ea01,0x9f240606,0xa912191e,0x1c03321e,0xb803391d,0x57095612,0xd325bf09,0xbe25c025,0xfb25f706,0xd0187c25,0xf311c211,0x6616a808,0x52018110,0xa7019c0f,0xc328f40a,0xc8187d28,0x3f00ea11,0xd2195e06,0x7a01a223,0xa20f7e1b,0x7a0f7601,0x5f102a1b,0x3f160808,0x1015521e,0x72067415,0xbc067306,0xab259b01,0xab01bc0f,0xdd01cf0f,0xdc042804,0xa81b9b04,0xbc1b9c0f,0x9b01cf01,0x981b9d1b,0x470f9a25,0x48250825,0xe30fb725,0xc001e201,0xbd1bbf1b,0x5203ee0f,0xbb03ef21,0xea1bc60f,0xec1bbd01,0x9b01e401,0x9c1a1b21,0xd208c821,0xcb08d108,0xca0fc31b,0xcc0fc31b,0x41bca1b,0x1f2a742a,0xc50fc42a,0xc501ef0f,0xef0fc60f,0xc70fc601,0xf101ef0f,0xcf0fd601,0xca02250f,0x2402240f,0x10fca02,0x95039d1c,0xe7039c03,0x6628e928,0x401b1714,0x47023a01,0x1b100001,0x4710000f,0x51c0e01,0x15100610,0x5f0fea1c,0xb61b2f01,0xb81bb41b,0xfc0b210f,0xe812e70a,0xe926d926,0x3d143b26,0x6a279114,0x180f4d01,0x49016f1c,0x6f0f4b0f,0x470f4b01,0x4114371b,0x9728d514,0xe210e416,0x1f268b10,0x2826891c,0x21272409,0x8f1c1c27,0x891c1926,0x23268226,0x24024a1c,0x4b02491c,0x241c2602,0x6708661c,0xb6085608,0x110e3d18,0x9620d812,0x621c941c,0x63196d06,0xe120e006,0x2820d620,0xc3134713,0x33093127,0xdd275209,0x57144c0a,0xb4025e14,0x9d026026,0x23112f0c,0x13025219,0x98269902,0x14131409,0x1625220b,0xcf11a925,0xd502d402,0x7b26cf02,0x7526c902,0xc1d4b23,0x1257e06,0x321ce403,0x34003f0d,0x231d1e00,0x591d201d,0x67215a21,0x90030221,0x42030125,0xb416b316,0x721e6516,0x4e111d15,0xd3236517,0xb002b81d,0x960eb80e,0x581c6120,0x661c671c,0x19209d1c,0x420380d,0x72a9620,0x20208500,0x5c0d1400,0x5009a2a,0x9e207d00,0xa829fa00,0x732a2b0d,0x530d2300,0x78027c1c,0x921eca02,0x75122307,0x771c711c,0x861c8f1c,0x9820cb1c,0xa620a902,0xb71d1c20,0xb01d2425,0xb1012218,0xba1ba418,0x4d1cb61c,0x58017b1b,0x9f1af20f,0xd6227c04,0x881c9120,0x771d431c,0xf416d305,0x10030a1c,0x76111603,0x871e661e,0x79037a03,0x2a14b803,0xc414b729,0xb302cb02,0xc80ecb1c,0xfe02d30e,0x191cfd1c,0x8d02ad03,0xdc02aa1c,0xa50de50d,0xe61cd811,0x4f02eb0e,0x4b0f2301,0x2e002601,0xf1200c2a,0xe802ee0e,0xe802b50e,0x411ce00e,0xcb074007,0x51ce41f,0xc4258703,0xb002c00e,0x63028d1c,0xc3028b1c,0xc402c00e,0xeb12790e,0x5e1e9014,0xda18e80b,0xfb1d2618,0x8702f802,0xac1feb20,0x3f00340d,0xc42a3c00,0xa202d10e,0x6327580f,0x2612ca09,0x2c007300,0x3925b42a,0x861d1f03,0x4c048404,0x9225de1a,0x49240006,0x4a0e6b0e,0xe626a10e,0x15269b0f,0x430a080a,0x1d077c28,0x2e1ea212,0xb7252d25,0xe713e911,0x670a5913,0xa912e527,0x46264e28,0x53246224,0xe013e614,0x8c03a713,0x9826ff03,0x3719300e,0xaf197211,0xee03b003,0x4203b21a,0x2914ba21,0x5c0b2e29,0x810b410a,0xa5294328,0x7b104b13,0x6a126d1e,0x3b152a0c,0xd1e4a15,0x550e0c0e,0xc2054425,0x6b1aff03,0x811e7a12,0x620c6915,0x610c5a12,0x2b1a9921,0xe5040f04,0xea041419,0xe915cb15,0x15011415,0x2b0e1e01,0x80b2a29,0x8428ac29,0xda098509,0xdb047f21,0xcc0e8921,0xf715b90c,0x1b217919,0x1a182204,0x9007af18,0x1f044521,0x3e1ce21a,0xc1d2803,0x17006e0d,0x8f046500,0xc9046719,0x9628d00a,0x807e027,0xc61f0a1f,0x9f19270c,0xd50be90c,0xb60bea29,0xc1046b21,0xc121b621,0x28046d21,0x3227c313,0x4d21b70b,0x75046c04,0x271a2904,0x5c056e1a,0x261de317,0x2700520d,0x522a280d,0xe7200900,0x6e06fb23,0x50264706,0xd9067526,0xd8198d21,0x89048803,0x3219c304,0x31187625,0x82048b25,0x8c048304,0xca21dc04,0x56048e19,0xfd1a551a,0xc817b21e,0x3a218f07,0xd4218e04,0x5f295d18,0xc2275429,0x90275112,0x9a044f04,0x7c19a221,0xff21171a,0xfe044119,0xfd219519,0xfd19fe19,0x1d1a1d19,0xe221e304,0x9221e521,0x91049304,0xa4049904,0x8221ea04,0x851eaf07,0x70217107,0x7104a71a,0x701a7121,0x6e21f31a,0xd01a7221,0x7219a003,0x91a821a,0xfd1a8022,0x761a8e21,0x8e1a751a,0x7921fc1a,0xb222181a,0x56015704,0xb70f2701,0xb6221c04,0x72029504,0xe820bf1c,0xef227721,0x86218721,0xdd215821,0xf31abc19,0x2040004,0x71a0c04,0x9f04ca04,0x2921621a,0xb31aa222,0xb524f00d,0xa107bd00,0x5d1ef617,0x9222f31d,0xfe210305,0x7b22931a,0xd0057a05,0x2e102f16,0x9a086d10,0xb320971c,0x85053902,0xa9053822,0xef227919,0xf704f41a,0xca223f03,0x60195223,0x5c04f706,0xbd1abd21,0xf8215c1a,0x5c04f804,0x8404f121,0x861b5a01,0xd604ef01,0xd81ab904,0x26042704,0x22272104,0x2a275427,0xb024f818,0x3b026600,0x951c431c,0x15051619,0x62197a05,0x27052222,0x28225305,0x55226705,0x28226822,0x1a225305,0xb9183105,0x7b00b00d,0x7d12aa27,0x24198227,0x2c052305,0x7a072507,0x7e25ee26,0x19267d26,0x32086c16,0x19a810,0xef199b1a,0x6a227721,0xdf041f1a,0xda211a03,0xd823fa25,0x81053525,0x84228422,0xf7228122,0x281fe41a,0xf529f920,0x6b22831a,0x3a22811a,0x85228505,0xf9053b22,0xe311f41a,0xf811d511,0x861afa1a,0x88227f22,0x70228122,0xbc253818,0x4d236911,0x49175317,0x781a4b1a,0xb6229304,0x19210303,0xf712f613,0x3e03cf12,0x28212605,0xcb243126,0x881b0406,0x81211119,0x1c22031a,0xb8229422,0x88213c19,0xe1b0419,0x951b0521,0x619af22,0x421101b,0x6211021,0xe219921b,0x9a16a210,0x3f2a3a16,0x3c002f20,0x3d213805,0x3c213821,0xb6213705,0xb1054719,0xda168819,0x14168908,0x83083818,0xe7054917,0x2c214603,0xd622a021,0x4919c603,0xea03eb05,0xe81b0c03,0xce1b0a03,0x57229a03,0x59085808,0x67176508,0x6922a917,0x68055717,0xd3079f17,0x3d17be07,0x8c0a7227,0x63166228,0xc4166416,0xcc22bf16,0x725af22,0x13032b1d,0xcb06c024,0xd3168f06,0xaf169210,0xaa20ae20,0xeb187920,0x940df400,0xdc19a722,0x7a16d003,0x4616d105,0xdb05731d,0xde1d4622,0xe016dd16,0xde058022,0xe3057a16,0x15058122,0x16103116,0x86058716,0x5322e905,0xea058f1d,0xe716ef22,0x5616e322,0x5816e41d,0x6005921d,0x911d5f1d,0x5d22f305,0x4f23051d,0x8216fd1d,0x5237d23,0x6e13b51e,0x1f286d28,0x4d286d0a,0x7a090f28,0x15271528,0x18287909,0xdf091709,0x9a091a13,0x9b285013,0xe50a5313,0x30287f13,0x1a1d9823,0x1e1d7617,0x31172017,0x931d9823,0x9a17181d,0x38232c1d,0x2f107a16,0x6822fc16,0x391d661d,0x231d7f23,0xa1233a23,0x901d7f1d,0x2d05c81d,0x9805c623,0x2f23301d,0x1b1d9a23,0xe11d3f17,0x2c060d1d,0x191d9a23,0xa505bf17,0xbf233c1d,0x80233c05,0xbf17101d,0xf0231c05,0xc1173f05,0x141c2a1d,0x5c024c02,0xf5173a23,0x65059c05,0x205e21d,0xa4270027,0xc054903,0xca229f1b,0xd502dd0e,0xb214740e,0xd1147809,0xc8146d27,0xf2235927,0x491dc405,0x5d1dc717,0x790cb023,0x590e9c0e,0xf9236f17,0xb929ba05,0xe90bd629,0xd60ee70e,0x661dd41c,0xd205fd23,0x2d10ae10,0x2a15cc16,0x490c8b11,0xd5236617,0x9a01d01d,0x3525980f,0x6501681b,0x30040901,0xde040c22,0xe41d471d,0xf911cd1d,0xf700ec0d,0x54060205,0xf8060317,0x6d05f605,0xb6046004,0x4b05f921,0xc236217,0x10160b16,0xd3236c16,0x5817551d,0x4421c804,0x5617471a,0xdd235e17,0x5f0a5e12,0x5b1dc80a,0xf1dcd17,0xb2186925,0x5a060411,0x73237117,0xf805f623,0x71060405,0xa175b23,0x9175b06,0x66174706,0xa174923,0x5b1dcd06,0xc91ddb17,0x841dca1d,0x8313ef28,0x4060628,0x451dc906,0x37235717,0x6c2a3717,0xf10d2100,0x4206d606,0xd22df26,0xe01d4a06,0xb22d71d,0x3e16c906,0x91dde1d,0xb4241e26,0xca237606,0xe0175d16,0xb207b31e,0xdd1edc07,0xd007a91e,0x5e16cc16,0xa3118917,0xbf118329,0xb0117d29,0xf1190229,0xd20b8718,0x3f1da705,0x9122f223,0x8d1d4f05,0xf61df623,0x21061015,0xb51dff1e,0xb712b812,0xdc229412,0x9c212703,0x91e141f,0x9d062719,0xb190c1f,0x91f9c19,0x9d0b1819,0x9e149c14,0xa1e131f,0x131e1519,0x9b1f9e1e,0x98239723,0x29239c23,0x181e1606,0x991e1a1e,0x2b1e1a23,0x2a239a06,0x9b239706,0x9c190d23,0x291e1623,0xe239b06,0xf700f919,0xb7252900,0xd707d517,0x19239707,0x2d1fa11e,0xa3062c06,0x2c239f1f,0xa4062d06,0x2d239f1f,0x2c1fa306,0xef1e1b06,0xf007be1e,0xa41fa51e,0x98062d1f,0x960b930b,0x7f267b0b,0x16266626,0xb003000,0x6b06652a,0x4a196e06,0x2d00500d,0x69186a20,0xcd251018,0xfb0e0000,0xbe0eab00,0x90cca0c,0x1256c12,0xa415db12,0x2e15f00e,0x2c0e9311,0xde217d19,0x58217c04,0x68193806,0xec1e0119,0x121de91d,0x1103fc04,0x5d2a5504,0x94005320,0x6d017801,0xb622001b,0x1f220304,0x60225505,0x491ad522,0x5d1ad422,0xce096d27,0xfb1af812,0x111af41a,0xe00302a,0x5e160e2a,0xe102708,0x1600302a,0xf71c0600,0x5b1c071b,0x5623b119,0x3f065c06,0x68196419,0xe023db06,0xdc066d23,0x6a066a23,0xe2196c06,0xf91be523,0xf31be701,0x2701ed0f,0xee0ff402,0x10fc801,0x3f100710,0x320e2d02,0xc20e300e,0xc525d425,0x6c12ef25,0xc812f027,0x7b23f425,0x8625c906,0x81067106,0x8025d606,0xd6068006,0xa025cf25,0xa720a820,0x31269720,0xd102101c,0xf2068725,0x86067023,0x7325d206,0xd120625,0x801c2112,0x79268c26,0x90297a29,0xbd1cb00b,0xa31ca702,0x9e029120,0xb925b220,0xf125b625,0xbb02ba0e,0x79089202,0xf163710,0xbc242726,0x96072b06,0x27267924,0x21f281f,0x2c1f2108,0x6408071f,0x611c581c,0x2f26331c,0x6f06e226,0x5c247124,0xc81d9426,0x1b1d9505,0xab06aa24,0x1405d606,0x761da617,0x1e1d991d,0x51247c17,0xd9071326,0xe21cda1c,0x41173d0e,0xfa05ef17,0xe016f922,0xdb05f805,0x7b23731d,0xeb061223,0x3710091d,0xf086d10,0x2f1d3506,0x6926281d,0xff246424,0x101e221d,0xb21e0d06,0x3b0c8215,0x3d18bc0e,0xe6297e0e,0xca0b8618,0xc9265d06,0x13267006,0x8f248226,0x79072924,0x58180a26,0xbb1f541f,0x11242406,0x84049726,0x981af722,0x1f19bd22,0x3724a421,0xb1fcd07,0x916b909,0xb7073209,0x9e249e24,0x9c24b724,0xa224c024,0xdb24bb24,0x4c1fc51f,0x4324b007,0x7b1fcc07,0x14061223,0x9c124d06,0xda079907,0x551e8c14,0x910c5d12,0x461e9815,0x6c1b391b,0xc90c9c01,0x550e990c,0x400d6a0d,0xca08d000,0x1008c908,0x1200302a,0x830d032a,0x22a0300,0x17008820,0x1820270d,0x72a4d2a,0x1200600d,0x8f207800,0x8d208b20,0x9300a520,0x2a9800,0xc0dae00,0x26007320,0x742a2100,0xe22a1e00,0xfa0d431f,0x26186f0c,0xce253125,0xc410c708,0x3f0d2d10,0x332a3820,0xb81fd207,0x35094124,0x7e094227,0x80292109,0x92000709,0x4320852a,0x12006a00,0x880d170d,0x3a0d1800,0xa603b722,0x96277719,0x89140128,0x3b2a442a,0x2722262a,0x3504ce22,0xb1a1704,0xa0239b1a,0xc4190e1f,0x4121b021,0x9425d71a,0x223f606,0xfb100b16,0x921e9f15,0xe5079307,0x36262f06,0x99266326,0x3d071524,0x2815cc11,0xdd23df11,0xfe066c23,0xa202529,0x39144a00,0x4c28cb14,0x9b124712,0xcf09e507,0xb135f09,0xff15fe10,0xe60cf015,0x730f050c,0x742a8c20,0x360abc20,0x1e143814,0x906b524,0x8a248e26,0x76267624,0x7d1b7b1b,0xac07280f,0x1325ee06,0x60afd29,0x29120b29,0x580e3d01,0xc90b4c29,0xed0fc118,0x970ff301,0x920d950d,0xd014700,0x911c0e1c,0xce00c020,0xa70a810d,0xc28a228,0x8c12ff14,0xa028d727,0xd1279b27,0xd529a60b,0x1127940b,0xcc14950b,0xc917af07,0x7a22e307,0x7d16db05,0xef246e06,0x5e2a2e23,0x492a2d00,0xa9274a27,0x4912a712,0xe512ab27,0x57058816,0xd714511d,0xf514500a,0x46264d06,0x47184c26,0xb3119825,0x98029a20,0x5d1c3602,0xe326aa02,0xef1d5c16,0x10e2616,0xa718ae12,0xd422361a,0x3d1d1a04,0x3b1d2603,0xb528c929,0xa810ef0a,0x7f08fb16,0x85122d07,0x9c10e307,0xb808e916,0x3a12381e,0x72019b12,0x910f6d0f,0x94269326,0xd908e526,0xb310da10,0x921ee307,0x670e3217,0x5a012825,0x8b09510a,0x5a085928,0x78160808,0xa815930c,0xbd118715,0x2c29b50b,0xf2290729,0xbf27df12,0x6127d727,0x36003700,0x4e09e100,0x6027e413,0x53175023,0x3228ee17,0xe80aeb0b,0x1f0e9615,0xad15eb19,0xfc0cac0c,0xf319f203,0xd821d919,0x103d703,0x21f2608,0xe5041408,0x99216d19,0x9e240b06,0xf9262b06,0x806db06,0x13006d2a,0x6d201220,0x91002e00,0x3f219e21,0x732a1f04,0xdc2a202a,0x8e068d25,0xbc04af06,0x7b1a7904,0xbb1a901a,0xec03c104,0xc704ed04,0xef01ee0f,0x25102401,0x59085b10,0x5a204820,0xf30dc420,0x27182b24,0x481c281c,0x91b0102,0x3522991b,0x92272909,0xdb1d4112,0xe8057322,0xe1069825,0x13286925,0xf4091009,0x850df800,0xe307b318,0x5b17921e,0x6f1f9107,0x9a171907,0x991d961d,0xa4049604,0x60210104,0x7a03b11a,0xf90aec14,0x3116c028,0xdb05671d,0xe2169408,0x5b1a5408,0xa1048f1a,0x96031125,0xf625d725,0x8023f823,0x821e0d0c,0x2b216d0c,0xf7041405,0x5900191f,0x9d289f2a,0x2e273928,0x2c0f2d0f,0x8e07aa0f,0x9f1ee217,0xa022a122,0xee07ed22,0xd707ec07,0x5e295418,0xf516a629,0xed08f608,0xf01d5822,0xe415e016,0x6115dc15,0x58025702,0xcc052f02,0xeb19ce19,0xd319eb04,0x8f0a7104,0x22289128,0x23217521,0x211d0b21,0xc125b003,0x840b0a14,0x10efe14,0xd80efc0f,0x7416cf22,0x9d169f05,0xe8169c16,0xe61bc301,0x6e066901,0x45066b19,0x65006520,0xf406762a,0x7b25c823,0x7f23f406,0xfb0ffc06,0xba02330f,0xb50ee802,0x9c093e02,0xe9093f12,0xe802ec02,0xa506a902,0x8025ff06,0xd910c916,0x9a069f08,0x4a240a06,0x35244324,0x6927eb26,0x6a27fd13,0xcf275a09,0x9825e112,0x6c240506,0x9a01820f,0xc9293c01,0xa7293b28,0x5012a912,0xa8144f09,0x64132109,0x5e111915,0x44153115,0xa71e2b1e,0x341c3226,0x35102d1c,0xde103310,0xe60ee01c,0x31181102,0xb180f08,0x7316cd06,0x37110f05,0x98156a0c,0xc901b91b,0xa920db01,0x3002b002,0x2512d809,0x401ff427,0x5b2a0f20,0x380d4b0d,0xc807ec0d,0x2207eb17,0x2008800,0x620d8c20,0xbb0d8520,0xd80bd929,0x5c2a1c0b,0xa20d142a,0x98000000,0xa90db02a,0x7d208a00,0x8f000520,0xeb20862a,0xc820871f,0xca167e10,0x52200910,0xfe0d2600,0x5306fb06,0xd607d326,0x9c17be07,0xb60eeb1c,0xd824a80e,0x5224a91f,0x6e205020,0x3904d30d,0xb204eb22,0xb1109c08,0x732a2008,0x870d732a,0x2f1eb507,0xa0299d12,0x1d299e29,0x44181f18,0x6422fb08,0x361db21d,0x31c0a02,0xbf1ca11c,0x20eb002,0xd519a41b,0x8f1c9103,0x7a1c881c,0xed18ee0b,0xf0f1018,0xaf0f090f,0xbc1a8b04,0x55226004,0x69226722,0x6b1af51a,0x9926a51a,0x18269826,0xa1d7823,0xba02a117,0xbe20bb20,0x4217401d,0xc2174617,0xc21dbb1d,0xbf1ec01e,0x7210731e,0x48088710,0xd8264f24,0x7f11c806,0x2b188118,0x7721d31a,0x9100c104,0x2b184920,0x2a205c0d,0xa9028e0d,0xb520a020,0xbf24f000,0xe1186e0d,0xc20deb0d,0xcc167a10,0x51189508,0x9b189425,0xd254511,0xbd256225,0x2f257818,0xb30b3429,0x4e160214,0x4084f08,0xf7201c00,0x8123fd0c,0x14068006,0x1520372a,0x500d0d2a,0xd51ff30d,0xdc02d402,0x9b0e9a02,0x250c9c0e,0x860e8411,0x96191f0e,0xb60cba0e,0xa50cce0c,0xca02d10e,0xcb0ec602,0x28241306,0xd70ee824,0xac02e51c,0xf202f00e,0x9e0eec0e,0x490eee1c,0x59014a01,0x6e1f6701,0x40083a1f,0x4a1b491b,0x4b23611b,0x1174a17,0xf1259003,0x45027a1c,0xe626cd02,0x832a941f,0x92a0820,0xee2a072a,0xc623f523,0xfc240b25,0xb825fd25,0x76121018,0x4070125,0x4406fe07,0x5e245a26,0xe606e324,0xb5244b06,0x806b406,0x8e1c2826,0x1e1c2626,0x201c571c,0x50024f1c,0x4026ab02,0x3a1c0c01,0xdc01ba02,0xce01df01,0xd30fcd0f,0xf11bd11b,0x4c0fcf01,0x530b5429,0x970fe40b,0x4b0fe626,0x531a541a,0xee1c001a,0x230ff401,0xff0fca02,0xf70ff81b,0xf0022c0f,0xa508ef08,0xea09dc16,0x1127fd27,0x31c171c,0x16023f10,0x3f023b1c,0x16100702,0xd5217f1c,0x3b218004,0x16013f01,0xdc27e91b,0x9135109,0xd707d51f,0x89038f07,0x1b038803,0x29102810,0x8c038d10,0x3a703,0x781e261e,0x4c007523,0xeb007000,0xec038526,0x5c010526,0xf10e1025,0xa61ef51e,0x927fe17,0xa6136828,0xc7131127,0x1d09f00a,0x45137b28,0x46282f28,0x2f284628,0x42284728,0xac0a0528,0xd413b713,0x490a2113,0x1a286c28,0x2b0a240a,0x4b0a2a28,0xd1136213,0x31253409,0xf5187625,0x112a170c,0x7f13e80d,0xe80a5228,0x800a5213,0x7515dc28,0x1c0cbf0e,0x4501481b,0xe227fe01,0x4327ff27,0xdb253e25,0x661d5b00,0xf51d681d,0x7d14b012,0x3d19dc09,0xb91aba22,0xa914a714,0xcc09be14,0x8327ca27,0x7d0b7729,0x8818f10b,0xe4297f0b,0xda29c90b,0xed06ec29,0x7506eb06,0x7a247224,0x7a024524,0x841c1b02,0xcf027b26,0xb7232026,0xe2231f05,0xf10ff80f,0x4a1ec61b,0x10124b12,0x202401c,0x9702b310,0xde1c5b20,0xe223e123,0xdc265023,0xde067506,0xdd10dc10,0x3e187e10,0xc800ee25,0xf1186f11,0xb010950d,0x77165908,0xba02961c,0xc10c9d20,0x2b19220c,0xa228be14,0x94219b0a,0xbc1a1b21,0xbd285313,0x350da213,0x27009b0d,0x72a5400,0xf40da020,0x6620790c,0x12141127,0xa420ac14,0xa11c6920,0xf41eed17,0x8e00a01e,0x63009320,0x9225522,0xc10ebf05,0xd01cb602,0xed187c11,0xa607bd00,0xe717a307,0x11aa119,0x5316e804,0x9422eb1d,0x75140128,0x211f7a0a,0x6f084118,0x25252618,0x4406d925,0xf7263124,0xf6059022,0xf011c122,0xad252f0d,0x37233205,0x7e277e23,0x7814b40a,0x8f0b650b,0x7c07060b,0x67265706,0x680d630d,0x7603b10d,0x1c19fc21,0xd817d71f,0xb1d4617,0x8e057306,0x900b0514,0xd900d214,0x5a00d50d,0x960c570c,0x7612651e,0xe00c750c,0x5d059116,0x1606c21d,0x7b06c324,0x7a037903,0xcd0ac303,0x53142728,0x770d602a,0x7012d800,0x1412d109,0x1309f628,0xfb0faa28,0x7b25a01c,0x138413,0xff27e30a,0x5927e227,0x5608af16,0xa413c216,0x340a2813,0x2f088e16,0x7f0a5516,0x6413e828,0x1018121f,0xfa0df918,0x1625410d,0xae098313,0xa5270727,0xa003a003,0x703ab03,0x4b0a7927,0xf812a309,0x97037f26,0x8e279203,0x970ac609,0xe2037f03,0x8126ef26,0xef26f803,0x81038426,0x4d28e403,0xfe0add14,0xab03aa26,0x45161f03,0x16162110,0x7e147f0b,0x3e19bc14,0xc919a621,0xe827fb09,0xa910a727,0x4210a810,0xca13a629,0x22292414,0xb80af90b,0x5c214321,0xd14ce04,0x660b480a,0x3c046804,0x38153d1a,0x9151f1e,0x41e4815,0x50155d15,0x371e721e,0x38103010,0xd60e7e10,0x4a0cd415,0x56153b1e,0x5e043115,0x381a111a,0xbc03d31a,0xf319dd21,0xe3224104,0xd0ce10c,0x3292d0f,0xc1290829,0xf0252d11,0xbd1fbb0d,0x2c074724,0x7412f229,0xf421fe27,0x704a821,0x204b722,0xc71ec122,0x1012451e,0x951a9822,0xc01a841a,0xb61a7f04,0x3221c04,0x8f277522,0xd9097a0a,0xab223004,0x118001a,0x77180518,0x79252318,0x471ad218,0x68050b22,0x63225522,0x8c12fb22,0x6f12f80a,0xea19e422,0x7b141619,0x80277d27,0xf61af522,0x71214c1a,0xad21c504,0x506b106,0x3b1afb26,0x9b053a05,0xa1278009,0xfe109109,0xab08fa08,0xfe188d18,0xc5182e11,0x7b0dbb0d,0xc926c802,0x81123526,0x38122907,0xfb182618,0x2e078724,0x951eb512,0x6f255618,0xad1ab525,0x3921851a,0x38086f10,0xf5183d10,0x5e00bb24,0x55082f1f,0x7512d01f,0x96097a27,0x461ec407,0x4e079a12,0x4a078012,0x931ec112,0x4f1eca07,0x2f079812,0x3d24f718,0xbf124718,0x9c12431e,0x95124907,0xc2054807,0x4f229e19,0x6a205400,0x1f102200,0x9f086a10,0xc4198a22,0xba1ef203,0x7a07b907,0x65204a2a,0xbc00bb0d,0x2c183c0d,0xbf05621d,0xa1121c16,0x4007791e,0x8e1eaa12,0x3717ba07,0x617b608,0x32215804,0x3322a204,0x8a22a121,0x75087d08,0x97179610,0xa3179417,0x201f1c07,0x211f251f,0x251f221f,0x2c1f2d1f,0xdd17de1f,0xd0079e17,0x421ed21e,0x616b81f,0xaa090909,0x35269b26,0xb912bd1c,0x1e274e12,0xf817f908,0x6b18b417,0xf8012125,0x24082517,0x251f4308,0x4317f808,0xf917f81f,0x6f088317,0xf7106d10,0xf61f1607,0xa316a417,0xcf10e916,0x7e20c520,0xe31d521c,0x571d4e22,0x53082c1f,0x3125321f,0xa252f25,0xf0c2815,0xff14250c,0x1f29090a,0x20268b1c,0xd08491c,0x115f910,0x4d100f16,0x10102808,0xec102916,0x4111bd0d,0xd105fb25,0x12174c1d,0x24102516,0x3d161d10,0x8a104710,0xae132614,0xc217cc09,0x4617cd17,0x1a086908,0x68161a16,0xc9084608,0x461ec81e,0x40161e12,0x80160410,0xce1c5202,0x3f161e26,0x97104010,0xe010818,0x3a08730e,0x26103b10,0x42104316,0x29087a10,0x49162c16,0x2a269202,0x3008821c,0xc1162b16,0x34148414,0xaf176029,0x89055822,0x8108da16,0x5d055316,0xc4176d05,0xcd1c8020,0x6406ce20,0x7e243524,0x44164110,0x641d2c16,0x83056305,0x81e070c,0x702311e,0xb202301c,0xaf19741a,0x1528b01a,0xbb278214,0x91090c16,0x86109110,0x2610fa10,0xef11bb25,0x4808750d,0x6a101b10,0x3822d205,0xb212071d,0xde121118,0xaf20d720,0x69165b02,0xc7087910,0xbb08c808,0xbf167610,0x2910bc10,0x301e4c0c,0xf51f3f1e,0xc5082a17,0xb90ec802,0x1f17fb1c,0x9b17f908,0x4a163e08,0x19085316,0x7d103216,0x3b00ea18,0xfe0dcc25,0xd1184124,0xbb0ed502,0xb209001c,0xa810fb16,0x6608f616,0x76205010,0xf60d712a,0x20c030b,0xd7243b0c,0x5806fa06,0xca096327,0x8b0a7012,0x71288c28,0x6e18171f,0xe329ef1f,0x5520e420,0x6015291e,0xb109a315,0xa5131927,0x1727b309,0xba27b613,0xbd131e27,0xbb09a827,0xdc296527,0x830b6118,0xef0cf20d,0x813671f,0xe927fc28,0xcc09d509,0x1e281209,0x7e281128,0xf309f913,0x1c280c09,0xed280f28,0x24138d09,0x25137828,0x3d09ee28,0x2f00b618,0xb10a2018,0xca284513,0xc813c713,0x7c0a3e13,0x20091112,0x12286b09,0x4b128009,0x7e09190a,0x14287912,0xdf271809,0xdf127d13,0x1a091c13,0x7b139509,0x330a0013,0x3209f128,0xf10a0128,0x14283309,0x221bf902,0x4c271b02,0x8127f0a,0xb905bb17,0x3e091305,0xb209160a,0x48139313,0xd0135528,0x27135209,0xc3139f0a,0xa40a2813,0x56285613,0x2313a428,0x530a570a,0x960a560a,0xe81ee617,0xc609bd1e,0x26133d27,0x2c171823,0xf40b7b23,0x2d0b7518,0x9105c823,0x2405af1d,0x92233817,0x9005c81d,0x9a1d971d,0x2c05c51d,0xbe22bf1d,0x651d2c22,0x56405,0xe9297119,0x2a1d8018,0x1b1d8317,0x181d9a17,0xfd189117,0x2118aa11,0x510f221b,0x200aae01,0x9028ba14,0x1828b80a,0xc4143f14,0xbf0abe28,0xd328cc0a,0x800b1628,0xbc147f14,0x360abd0a,0xd1143e14,0xd128d228,0xd2143c28,0x981d9328,0x2c232b1d,0xc40abe14,0x270ac328,0xbf0ac214,0xb214400a,0xd827980a,0xcc28d728,0x7228dc0a,0xc6278709,0xc1278614,0xd413070a,0x5130728,0x2028d413,0x1d290c29,0xd60ac30b,0x8328cd28,0xfe141c14,0xd70ac40a,0xd70ac528,0xc528d828,0xc60ad30a,0x45099628,0xac28d914,0xdd0ad00a,0xca12e428,0xc70acb0a,0x14098f28,0xe40b0b29,0x6f0ad212,0xc0b0b27,0x9314930b,0x1b0ab90a,0xcf144a14,0x8814390a,0xd1143c09,0xdb06d928,0xb0262b06,0xc609960a,0x80b0d28,0xa8098d0b,0xbc28e109,0x52132427,0x227be14,0x66012512,0x61146025,0x3d0ae214,0xbd173c17,0xd50adc1d,0x5928e30a,0x5a0adf14,0xe50ae614,0xe7145b0a,0xb11ee81e,0x820a4b07,0x5f091912,0x6628e714,0xe3096f14,0xbd14630a,0xcb1efe17,0xf2132c07,0x6b27c40a,0xfa0af214,0x40072228,0x61267324,0xb122f51d,0x8924881d,0x41072024,0x42044304,0xa7131304,0xa3131427,0xf291827,0xb0b0c0b,0xb29150b,0x1529140b,0x9e22fd29,0xa31db305,0xa2130e27,0xcd17cc27,0x391f1b17,0x3f28ce29,0xff29200b,0xe290c0a,0x8729170b,0x9b291b14,0x1e276b14,0x7e29220b,0xa3291809,0xa3291927,0x19279d27,0x8a1b0329,0x96228e22,0xe0b1314,0x6812e129,0xec0b1827,0x73293812,0xc7144627,0x1113110a,0x460ac813,0x99140514,0x160b1127,0x800b170b,0x1b277614,0xdb12ef0b,0x48144928,0x50b1a14,0x1a290929,0x5149e0b,0xc0130829,0xeb279314,0xec0b4012,0xea291e12,0xea0b1c12,0x1c276e12,0xe07100b,0x9265b07,0x1227640b,0x12291f29,0xb276429,0xc0b1d29,0x9f292029,0xdb0aff14,0xcc144828,0x1e29220a,0x1e0b200b,0x200b1f0b,0xe8070e0b,0x25265b06,0x2313e40b,0xdf10d529,0xaa169210,0x2427c009,0x14079d0b,0xb11f121f,0xb20b0314,0xae106914,0x2e168d10,0x40b3429,0x2f0b340b,0xae0b0429,0x30142f0a,0x35293014,0x3714a80b,0xaa29310b,0xea0b7a14,0xee18ee18,0xef27c90a,0xbb14bd0a,0x3214a514,0xb914a729,0x3a293214,0xb814a70b,0x2a14b614,0x3d0af829,0x3d0b060b,0x614bf0b,0x3627860b,0xea130029,0x76291e12,0x40b3e27,0x414be13,0xbe130313,0xc214c114,0x810b0a14,0x7d00e818,0x8714c618,0x8714c527,0xc5098127,0x3e130414,0xe113080b,0xe70a5313,0x3a293913,0xec0ab629,0x1328290b,0x3d13eb0a,0x82288229,0xf723f806,0xc7133123,0x6027ca09,0xec293e0a,0x4914d313,0x9e14d40b,0x9b15e70c,0x1214cc0c,0xcd104a0a,0x4313a329,0x2294629,0xec0bf80a,0x420a130b,0x1c1ecf29,0xa0084018,0xc717a817,0x7e1a2807,0x471a5104,0xcd28280b,0x54295e14,0xab0b4f29,0xb7025a26,0x83278526,0xaa288327,0x6f0b9b0b,0xaf0ba511,0x6e0ba70b,0x740ba711,0xe20b5f11,0x620b6718,0x760b6729,0x919b10b,0xf19b21b,0x731b681b,0xf318db0f,0x7b0b7118,0xf429750b,0xfc18c618,0x7c190518,0x529540b,0xf00b8b19,0x8f0b7018,0x7e29780b,0x7a0b900b,0xfe18f829,0x6c0b6d18,0x4b084a0b,0x7a15ff08,0xea18eb0b,0x35103618,0x9e086410,0xa129a029,0xa1117129,0x42117229,0x6b0c3b0c,0x73116c15,0x9e117c11,0x7129a129,0x6018f311,0xda29630b,0x8811510b,0xb8118c29,0xdb0bdf29,0xc029bd0b,0x8b29a629,0x220bd411,0xff1f5008,0x8129a217,0xc10bc811,0x820bc929,0xb207b611,0xc207b307,0xd029b929,0x8d11950b,0xaf29ba11,0xc7117f29,0xc7117c0b,0xbd0bc50b,0xb50bc60b,0xb30bbd29,0xd4118029,0x550beb29,0x50106110,0xe30bf510,0x5f29de0b,0x39187d10,0xee253b25,0xa119bb1a,0xe908ef19,0xf216a310,0x5c04f104,0x840b6321,0xf818de29,0x1106221d,0x5f0ba206,0x10299811,0x231de927,0xb629391e,0xb928ce0a,0xfd10f916,0xef213110,0xf8215503,0xfd084815,0x3f003315,0xca0d3100,0xb328c70a,0xeb08790a,0xd508e808,0x2053d03,0x7f01a31b,0xdc1b7e1b,0xad186d00,0x630f4611,0xa70f4501,0xd515c20e,0x29256d15,0xbe18970e,0xc70ec61c,0xe300880e,0x1820681f,0x9d127d27,0x9e025c12,0x18025126,0xf21a6f04,0xac12b021,0x1a095512,0x221fe70d,0x3114d000,0xbf294628,0xcc0ab20a,0x9516e228,0x2316e305,0x220b2329,0x8e01af0b,0x360f8b1b,0x29033e03,0x9e1ea81d,0x3d1ea21e,0x62064019,0xf6260f19,0x74240c25,0xdc1d4c23,0xa507c416,0xbc17a617,0xb8231305,0x57265805,0xf7070026,0x1a1dfb1d,0x97249506,0x54249924,0x1f06ca26,0x2b249526,0xb9072d07,0xfe216503,0x7b11c903,0xcd0df918,0xc7073f24,0x4307401f,0xa024b007,0xec17a517,0xc17c21e,0xb07e31f,0x916b809,0x9b12fd09,0x3b27b009,0x3c262326,0x708ff26,0x2090b09,0xc0c2315,0xe4127615,0xf6126914,0xb4097f12,0x6c157f12,0x80c3915,0x1c14fd0c,0x13154a0c,0x14151d0c,0x150c2b15,0x290c0e0c,0xf156015,0x411e4d15,0x2d156f15,0x3c155c0c,0x7215730c,0x431e6c15,0xda1e710c,0x98158614,0x40c4c15,0x570c3011,0x7811051e,0x4b0c2f15,0x531e530c,0xea0c6712,0x50c0d14,0x591e3d15,0x5815a00c,0x8d1b620c,0x6a0f6101,0x7b15850c,0x92108b1e,0x55165110,0x7f0c6e0c,0xb41e0f1e,0xb50c8815,0x7a15aa15,0x121e100c,0xab0c841e,0x7b0c8715,0x5310970c,0x2d109616,0xef0dee25,0x6401280d,0xb3256725,0x2b15bb0c,0xb71ca511,0xe21ca70e,0xda0aaf28,0x440c980a,0xfb114c11,0x1c28b50a,0xc908ca14,0x8f10bf08,0x9b164408,0xd1191e08,0x4a192f0c,0x2f06c824,0xbe15f324,0x8d0eaa0c,0xef19120c,0xd310d615,0xbd168f10,0x2c191b15,0x930ccd11,0x8c192d0e,0x2e0e930c,0xd715f411,0xd618c00c,0xc118c20c,0x290d4418,0x3e0d4320,0x41182208,0xb020ff08,0x8703af03,0xda1edb17,0x48103b1e,0x56087810,0x50d1c20,0xb704e620,0xe904e81a,0xfe0f010c,0x9f0bad0e,0xfd0b9529,0xc180d17,0xe110d618,0x8a169308,0x1217921,0x76070b1a,0xe5247124,0xfc0c0420,0xdd0cde20,0xe60ef80c,0xf00f050c,0xde00dd0c,0xa00de30d,0xed0eef1c,0x310d0f0e,0xf91ff500,0x210d3a1f,0x3f000600,0x2b0cf82a,0x2d203f00,0x402a0f0d,0xb0d0920,0xf420400d,0x4000141f,0x90d0b20,0x1420402a,0x5e2a2d00,0xb0d1e00,0x2e005e20,0x5e2a232a,0xfd2a2900,0x13203c1f,0x5e2a290d,0xa200a00,0xb005e20,0x3c0d1320,0xc0001e20,0x771d2c16,0x880d1823,0x2f200300,0x3420222a,0x872a492a,0x8e2a4b2a,0x852a8600,0x70da92a,0x962a9600,0xa00cf400,0xfa0daa0d,0xd7009e29,0x105fe1d,0x362a9106,0x220da20d,0x2100742a,0xea10de2a,0x6108e908,0x372a4200,0x582a3200,0x542a352a,0x352a0500,0x37001820,0xac2a1420,0x3824f100,0x6180b18,0xa1f5d18,0x9018960e,0x830d4418,0x4020662a,0xc124ae07,0xc324ae1f,0x9d1fc11f,0x3124b724,0xff251f07,0x37251e0d,0x38093909,0xbf17b809,0x2d07d417,0x38093727,0xb00aad09,0x9614350a,0x480d400d,0xa0dd32a,0xbc00c925,0x92055f22,0xa71ba020,0x650fa01b,0xdc135113,0x47119809,0x9d00c625,0xb229e22,0x3e28d11b,0x5c143b14,0xb521b204,0xa910f621,0x1810f116,0x1b149c0b,0xe60df229,0x670deb00,0xdf0dff18,0x8d088f0d,0x1b163708,0xdc186d25,0xfb00cd00,0xbd184e00,0xc024a21f,0xef0e1624,0xe40e1711,0x5c057c1d,0x42087417,0x3a104310,0x1817f01f,0x73120608,0x918b925,0x1256c12,0xed10f712,0xe116ae10,0xe225e325,0xf610f425,0x5d10f110,0x8802891c,0x89041902,0x96211519,0xd10dd211,0xef08f00d,0xb10e908,0x9d21401b,0xfc216c22,0xe0216b03,0x4f224e04,0x9023422,0x10ffe1c,0xb003b121,0x43234703,0xa51da923,0x8a29c229,0x68013e11,0x491b191b,0x481a4a1a,0xa18041a,0x681f5418,0x1a071726,0x8b258707,0x1202fd25,0x6b052904,0xa7299821,0x7411740b,0x780e6703,0x660e4303,0x4f034603,0x7703750e,0x770e4f03,0x4b035503,0x4f03750e,0xfc07f40e,0x5b07fa07,0x500e5b03,0x60035b0e,0xbe0e5b03,0xef1ef107,0x9c1f9f1e,0x24190d23,0x47162316,0xaf167110,0x5f08c010,0x601b600f,0xae0d040f,0x4b00000d,0x24095427,0x18284709,0xa313b80a,0xe110e916,0x11261210,0xb406b926,0xa31cad0e,0xbc02c01c,0xae1cb002,0xc01cab1c,0xc002be02,0xb31cb10e,0xba02c11c,0x7910c20e,0xea10c516,0xe81ce00e,0x1d070e,0xd2031e1d,0xd41cbb02,0xbb0ed40e,0xd60ed51c,0xd002e51c,0x7f1afc1c,0x8228022,0xfc0efe0f,0x8d038c0e,0x7d26df03,0x47091712,0x121b1409,0x2e1b151b,0x95272b27,0x2e102d12,0x28102f10,0xae04dd04,0xec197c1a,0x7003c104,0xaf117211,0xee1bef0b,0x840fe11b,0xa829a911,0xd31b6229,0xe8018d01,0x9907a81e,0x2f04db17,0xec04da04,0x9426dd26,0xc129b103,0xe90bb029,0x51244d06,0x88268724,0x16024726,0x1507f01f,0x7522e11f,0x9f237423,0xf926ee03,0xf0215426,0xbe03f203,0xc014c114,0x510a5014,0xb00a4f0a,0xc7134d09,0xe50f1127,0xd60f060c,0x911c9a20,0x6c297e1c,0x94296f0b,0x2f19230e,0x6d0f4411,0x190f4701,0xc260f26,0x4f017d24,0x2a1b731b,0x51f281f,0x230e2708,0xc3012001,0x9f1ba901,0xe4187c1b,0x96252900,0xc1259c0f,0x51175301,0x2e1dd717,0xfd020e02,0x16023b0f,0x111c111c,0x171c161c,0x1f170f1c,0xcd05ca17,0x9e0aaa0a,0xdf196f27,0xd066c23,0x47101410,0xf020e408,0x5729ef29,0x1235f17,0x97108006,0xc3107f08,0x6c26bc26,0x21131e02,0xe127d613,0xe323f825,0x6b166c25,0x21166d16,0x76104616,0xb108ae08,0x7e08ac08,0xd208d116,0x511f4a08,0x6218031f,0xba10a716,0x610b6808,0x1c18e729,0xb703321d,0x8a113325,0x940c930e,0x98298811,0xc4299d0b,0xbb117e0b,0x8e298929,0x96031629,0x371bab25,0xbb1a2a1a,0xdd028221,0x59209420,0xaf26b102,0xb607b826,0x8f179f07,0xd302ae1c,0x5f12dd20,0x980a600a,0x9920941c,0xb602b51c,0x711c9f02,0x9d1c751c,0x1f06cd02,0x95262407,0x9d269e26,0xed227326,0x5a052c1a,0x5605eb23,0xbb258123,0x93033b25,0x8e108708,0x9611fb10,0x870e2318,0x8c15ee0e,0xc507e90c,0x6317c617,0x6426bb02,0xe91bbf02,0x490fbd01,0xaf24a607,0xb0217d1f,0x7904de1a,0x10012d25,0x60e2f12,0x5a120312,0xd2295a0b,0x32078718,0x3a078212,0x3b257a0e,0xa40de30e,0xdb0dda11,0xda0ad90a,0xe51d250a,0x571ce31c,0xa3269b02,0x80091826,0xfd092c12,0x1825a31c,0x11cee03,0x221cf303,0x66012601,0x1425a025,0x200faa03,0x2a1d0a03,0x4503c303,0x9904701a,0x8a278d09,0xc802d327,0x3c1cba0e,0x251ce503,0x9212231d,0x411e9f07,0x40034203,0x45163d03,0x34089116,0x91c0802,0xe23151c,0x62231417,0x6c086b08,0xd01d8408,0x41232105,0x26087810,0x3c1eba16,0x2c1eb912,0x730e3a01,0x42078a25,0xeb078d12,0x34228321,0xe725e605,0x72240125,0xa11e860c,0xee264415,0x5806f406,0x5b160708,0x9316f608,0xeb059405,0xf90efa0c,0xd714520e,0x8f28e20a,0x7d14de1e,0x501e901e,0xde159612,0x5e126a14,0xa4127412,0x5c15a215,0x7f0c6e12,0x9915881e,0x1214e915,0x40153f15,0xa715931e,0xf114e515,0xf525901c,0x8215831c,0x6514f015,0x5f0c7512,0x8712960c,0x6f129812,0x640e7103,0x2309250e,0x67128a09,0x66007e2a,0x33144500,0x59144414,0x26271f09,0x231ac309,0xaf223404,0xb91cad1c,0x1912950e,0xd4128209,0x7b26d326,0xf5033c03,0xca1ce502,0x470ab30a,0xac144514,0xe414330a,0xe314630a,0x1c09a30a,0x1d27b113,0x1c27b113,0x88038f13,0x2626e803,0xae134613,0x8326eb09,0x94038503,0x9126e003,0x7509e303,0xde09cc13,0x67280809,0x21281813,0x48137f28,0x41139328,0x350a1728,0x1813b028,0x19282d0a,0xa28440a,0xb113ad0a,0x45282f13,0x1a13ac28,0xdf0a1e0a,0x70e0b11,0xd1127c01,0x1e128613,0x2113d127,0x69128509,0x83271628,0x1a0a3f12,0x3f271a27,0x1d091d0a,0x22286a27,0x6c13b309,0xb5284928,0x1f286d13,0x4c27190a,0x8412810a,0x1e287b12,0x500a0409,0x9a139a28,0x96039903,0x69082e03,0x51083a1f,0x800a540a,0x3c13c028,0xec285428,0x7a138509,0xe4244f13,0xed245006,0xa6039226,0x6c18b603,0x34120925,0x1a25b503,0xa927001d,0x270303,0xa3270327,0xab26fe03,0xf03a003,0x11279f13,0xaa099713,0x5628db27,0x550ad414,0x5011714,0x5d00c725,0xc9261e26,0x1f121c06,0x661ea712,0x6e0e440e,0x7909b403,0xf10af114,0xb4132b0a,0x92291309,0x4a0afd14,0xce28cb14,0x1f12f00a,0xa0b1e0b,0xfd101510,0x6d086f15,0x66103908,0x3508361f,0xd727f108,0xa027f009,0x43094412,0x6f25c409,0xa706da06,0x6513f028,0x791d450a,0xa116d405,0x20bf813,0xec09ba0a,0xd727d427,0x420ac428,0x3e0a5f14,0x3e0a6029,0x3d0a4e29,0x48132329,0xcd132213,0x4509fd14,0x4520f229,0x6214ce29,0x8914e50c,0x5d1e871e,0x30c730c,0x260c0615,0x1a151515,0x1015180c,0x331e390c,0x4f15071e,0x1f155015,0x1815250c,0x3f15230c,0x1b0c1115,0x2d0c2b0c,0x13151c15,0x7915440c,0x59110715,0x5f0c361e,0x781e5d1e,0x171e4f1e,0xdd0c6d11,0x1814db14,0x7069924,0xb1277524,0x6b0a8f28,0x1203fc21,0xfc041104,0x6d19f303,0x1319e521,0xe5041304,0x5c19f519,0x5e247126,0x3217226,0x1b21741a,0x70217904,0x121a1521,0x89042e1a,0x35218d21,0x590be804,0x2105810,0x6120512,0x1317c812,0x307f31f,0xe7258a03,0xd41a451c,0xd2047303,0xca0bcb0b,0x7b007c0b,0xf7007d00,0x90cec0e,0xa61ef00f,0x6507bf07,0xc7275709,0xbc02a112,0x1402a220,0x6d1a6e21,0xbf04ae1a,0xb421fa04,0x7b1a9004,0x74116d1a,0xd117311,0x8404c022,0xa629941a,0xa7299c0b,0xba10a510,0x25186f08,0xe7253125,0xc0224404,0x4722561a,0xd4050a22,0xd322491a,0x1719781a,0x44210d05,0xff184118,0x491af224,0x63214b21,0x8621ec1a,0x340ffd22,0x9a0ffe02,0xab165810,0xe60b8108,0x7418e318,0x20161f08,0x40053f16,0x7c1b0605,0x66049f22,0xb122991a,0xa9054719,0x791af119,0x96190722,0x8c062423,0x8907a717,0x170a8e17,0xc6277a14,0xc9073006,0xb112a806,0x95212,0xb716bc09,0xcd106816,0x8008d810,0x2e091912,0x16081509,0x121f3708,0xb501b80f,0x8f089201,0x89408,0x50101016,0xfb07fd08,0xf41f1e07,0xa810f610,0x56165516,0x6a08af16,0x3918141f,0x830bb508,0xbb29a311,0xd6168310,0x4e174d08,0xb4175117,0x317ac17,0xb222a51f,0x54a22,0x420dca25,0xce08c818,0xdc10c508,0x64295818,0x7a121e29,0x76122207,0xb9176c17,0x4d164f22,0x6d08a216,0x54055d17,0xde169605,0xaa10ea10,0xa917a817,0xcb12c517,0xbd275912,0xb810a208,0x64180008,0x1d1f501f,0xd917d51f,0x6b2a4617,0xad206720,0xca1ef917,0x161f6707,0xb7083a18,0xc91cb41c,0xbf17a102,0xa907bd07,0xf110f216,0xcd0dce10,0x1518460d,0x3c1c131c,0x94272d02,0x30093712,0xd180c08,0x30103718,0xff086d10,0xfc1d6822,0x2f142322,0xaf28df14,0xae099c27,0xc804c627,0xa504bf04,0x75170a05,0xc21d8e1d,0x1d05c705,0xb231923,0x9a171c17,0x721d971d,0x1117121d,0x6216c517,0x74056905,0xd522dc05,0xe5058f16,0x3722e422,0x39056c1d,0x917001d,0x431d6a23,0x711e720c,0xb705b81e,0x541d7e05,0xe6287c14,0x82233913,0x3f05d21d,0x50235117,0xb105ab23,0x2c170505,0xd805dd17,0xe21d6405,0x321d6505,0x311e301e,0xb616f71e,0xbf234b1d,0x52173c1d,0x371dbc23,0xf7235717,0x4816f816,0x4d1dc423,0x3f173923,0x51235417,0x4c237423,0xd22e11d,0xfb242624,0xf9059a25,0xbb05e016,0xb71db61d,0xba02da1d,0x561cbc1c,0x80298229,0x80298429,0xca18f829,0x8e0ac628,0x6a18fb09,0xf00b8229,0xf210f110,0xe30b8110,0x830b7f18,0x7718f529,0xe1a8f0b,0x5a1a911a,0x97115311,0xe30b7f29,0x8a296b18,0xa529a711,0xa00ba629,0x6e29940b,0x190329,0xfb17fd19,0x591f4617,0xc1f5b1f,0xa21ef118,0xf807bb17,0x1707f507,0x4b294c1f,0xd90b5729,0xe010d710,0xdf0b4408,0xfc29cc29,0xf10bf820,0xee07ef29,0xf117cb07,0xf610f410,0xbb221110,0x5d1a9004,0x49044a1a,0xc210c504,0x36167b10,0x3308131f,0x3317ef1f,0x9d081b1f,0x5d0c5915,0x238012,0x806111e,0x7239619,0x13238b19,0x8c1dfd06,0xfa061d23,0x6e01801d,0x2d1b720f,0x37272c27,0x871c6609,0x99209c02,0x9c1c6520,0x9d053120,0x6c1a6704,0xe423e306,0xd60fda23,0x781be00f,0xad20b21c,0x590e5c20,0x98036403,0xfb000500,0x420f310c,0x591b320f,0xa0299211,0x55027c0b,0x6102781c,0xf60b710b,0xb9118a18,0xb629a70b,0x570b9a29,0x85190611,0x2919010b,0x6c012101,0x4223c125,0x45194619,0xc0064f06,0x59063e23,0xce193606,0x59193623,0x3b196406,0x54065806,0x1f641f,0x1a12f618,0xdd27b213,0xe023df23,0xdd066c23,0xb423e323,0x5a063a23,0xc4045919,0xad046f21,0x6e21c321,0xc31ba204,0xd701c201,0x5819c021,0xb121f61a,0x1a21f504,0x9504c222,0x3b0a6b1a,0x28273109,0x291aae04,0x6728a904,0x7b12e527,0xcd19ce22,0x631a6919,0x5d22821a,0x6210a416,0x1d085616,0xf3086110,0xfd0d2e0c,0xf621f00c,0xcd22831a,0xa019ee04,0xde1a5a1a,0x7721dd21,0xc110c016,0x8e068c10,0x4e25cb06,0x7c1b5b1b,0x761d9901,0xb023331d,0x1217d1a,0xca20d005,0xbd1c8520,0xd101c001,0x5401d701,0x5e1b530f,0x311b3f01,0xe31bd60f,0x261be21b,0x250fca02,0xfc022d02,0x1002330f,0x4010041c,0x8523e902,0xe725bd06,0x94127814,0x821c2515,0xbc269026,0xe525d525,0xd625cf23,0x90068225,0x27268d26,0x861c261c,0x221c2426,0x271c281c,0xf525c61c,0xb325c723,0x97109808,0xf5067210,0x9523ee23,0x931c5a1c,0x4d1c5520,0xb702781c,0xcf02d41c,0x84027b02,0x1d024426,0x3a1d221d,0xcd1cbe03,0xa20ece02,0x321c3426,0x171ebd1c,0x8124112,0xc0d750d,0x9826a60d,0xec1c2e26,0x970fe60f,0x911cf526,0xdc259925,0xdf02ea1c,0xdc02ea0e,0xdd1cdb1c,0xe602ee0e,0xb1d0f02,0xf925b01d,0xee258e1c,0xed07ec1c,0xf17cb07,0x9031003,0xf8259d03,0x62259c1c,0x6612670c,0x8292d12,0xf4277429,0xf7215f04,0x9126e103,0xf26e003,0xf3260e26,0x6d071e25,0x93071b26,0x7f267b24,0xaa06ab26,0x25260006,0x2406bb24,0xfc260024,0xc5241225,0x1017ce17,0xfd240c1f,0x3f241025,0xc1046d1a,0xd242a21,0x7606a224,0x4a273e0a,0x9f240d09,0x30241106,0x2f244324,0xd116d724,0x2e16d616,0x61f6008,0x2a1d9018,0x881d9223,0x25171c1d,0xf7264f23,0x5a262c06,0xef245e24,0x3c05ef06,0xd4173d17,0x3408151e,0x6726541f,0xcc246624,0x4f1ecd1e,0xcc027e12,0xe526c426,0x50244e06,0x64246824,0x27246924,0x917e01f,0x4b244a08,0x55263124,0x3c235223,0x78071217,0x62266124,0xa5108810,0x9a24dd08,0x1807761f,0xf925fa24,0x87248825,0x74248524,0x8f267726,0x8f248d24,0xab072624,0x9a165708,0xac267810,0x93072806,0x2c073024,0x92072d07,0xa1249424,0xab1b8f20,0x391fc001,0xab24b607,0xb524ae24,0x9910df24,0xd508de16,0x751d4116,0x1406bb05,0xef06bf26,0xf1252f0d,0x3312320d,0x71122f12,0x4f1e501e,0x4515421e,0x491e3515,0x48224a22,0x4c1e5622,0x630c300c,0x6114e40c,0x1f15430c,0x530c180c,0x5e126a0c,0x7908cf12,0xc0167b16,0xbd02c30e,0xc7136a0e,0x8133109,0xb617b91f,0xe010e717,0x6a169510,0x141f6b1f,0x4915c418,0xc40ca811,0x7706e825,0x2d096d06,0x8a272f27,0x861df323,0x9529fd23,0x320842a,0x2a17e108,0xd810cf1f,0xb210cd08,0x706b406,0x1f0c1826,0x250c200c,0x231ce31d,0x60f051d,0x360ce50f,0x35129209,0x3c2a1909,0x9c1ffd20,0x57109a10,0x741f9616,0x1a24ee07,0x1929090b,0x9c06250b,0xc31e151f,0xb524ae1f,0x1e17f924,0x1c1f4408,0x1e001e00,0x8e04852a,0x4f1a5504,0x2084908,0x90207e16,0xfd208120,0x6f0a7313,0xcc1eca0a,0x561ecd1e,0x580e5703,0xd626d40e,0xf526d326,0x6425f425,0xf60ce826,0x4a0ef40e,0x400f4e1b,0x7415741b,0x6a15731e,0x9020a21c,0xa820b502,0xe520a920,0xe520eb29,0x61265320,0x8f247a26,0x8c092f12,0xcd21b912,0x83047621,0x851df523,0xbf21fa23,0xfc21f904,0xfd1a8e21,0x3c213a21,0xf9213b05,0x4816f822,0xee05ec23,0xc2173b05,0xbb17381d,0x6a06021d,0x38236b23,0x3713f527,0x5b264127,0xe4264624,0xe8169608,0x63094f10,0x2a27430a,0x1402521c,0xb0072c02,0xe5260506,0xe625d523,0x1406bf23,0x6f242926,0xbe166e16,0x1906a708,0xf25ff24,0x27261726,0x1e06b324,0xd5241c24,0x44263106,0x9112df24,0x1c0a920a,0x71227804,0x2e06de19,0xe806dd26,0x50263406,0xec263e24,0x58245306,0x41263e24,0x78249126,0xb4072826,0xd024b11f,0x8524881f,0x8b248624,0x77248e24,0x1406bb26,0x5006bf26,0x570e5f0e,0x45124603,0x841ec912,0x86107008,0xad10b308,0xf0166e10,0xea0bfb20,0xf00a6629,0x4f28a713,0x3a273009,0xf60cda09,0xa20ef50e,0x640ba50b,0x16181811,0x8e1f6918,0x9d164e10,0xfa12f508,0x5c12f412,0x8601741b,0x171f7101,0x50083b18,0xc606dc26,0xaf25a925,0x7c032425,0x22257d25,0xf512f21d,0xbe277c12,0xbf25d325,0xa4277a25,0xfe12a612,0xa0241625,0xfc0de806,0x4e00f80d,0x5b265c24,0xfe265226,0xe0265306,0x2d263406,0x180cb626,0x3f0cb419,0x6a264026,0x5b23cb24,0x81065619,0xce268026,0x1f121c26,0x7b122012,0x740b750b,0xd104d20b,0x91aa304,0x7030603,0x9203a603,0xd6270503,0xe120e020,0x9c1eea20,0xe1179b17,0xc21bc101,0x9712491b,0x73079507,0xc81efd1f,0x7c278f07,0x160a7b0a,0x87138828,0x7e287d13,0x5b285128,0x5027e613,0xf727e713,0xbf134f27,0x54027926,0xff15fa1c,0xc815fc15,0xa01c8a20,0xd5098902,0xb7144128,0xd027960a,0xf1264028,0x8f265623,0x7d0c531e,0x850b911e,0xd5299329,0x3206e306,0x9c299426,0xb6299529,0xa502bb0e,0x4027331c,0x98094109,0x9926a526,0xfa07cf26,0x4e17af1e,0x4c108c16,0x631f6216,0x861f5f1f,0x85107308,0x4e05f308,0x36235b23,0x301eb212,0x1c0c4212,0x7d1e7611,0x70a7f0a,0x6920a414,0x1920ac1c,0x306ae24,0x24144b26,0xa09a913,0x27062819,0x2f257906,0xf2257a01,0xf026fa26,0x921a6026,0xb721e021,0xe421e319,0x6d096e21,0x112d509,0xef21e821,0xa41a2121,0x841a2021,0x4c0b8e29,0x5c160f0b,0xa0087008,0xcc11a111,0x4053e00,0x2822941b,0x361e4e0c,0x30d181e,0x1e002220,0x1b001e2a,0x1e001c0d,0x1b2a1e00,0xfd2a192a,0xfd001c1f,0x1b0d131f,0x101d7e23,0xf4001717,0xa2a0f1f,0xb00140d,0x92a0a0d,0x900142a,0xf00170d,0x70d0c2a,0x2b0d080d,0x2c002e00,0x7b239100,0xbd061423,0xa502b402,0x222a461c,0x5f0d8c20,0x4e2a5f20,0x2700e120,0x4c186f25,0x2e202f0d,0x8813f320,0x58288528,0x5700522a,0x41dfd2a,0x50238b1e,0x5800570d,0x4b110500,0x4615780c,0x8812db27,0x5806f012,0xc8245a24,0xf311f200,0x3a0f4111,0x5901610f,0xaf26b102,0x2a10cc26,0xed168416,0xec10550b,0x6b20500b,0x280d6e00,0x2914c314,0x9f0a7d14,0x730a7f28,0x202a2a0d,0xd510cb2a,0x1f168608,0x732a742a,0x1c1e9c2a,0x21122412,0x52006c0d,0x76004a20,0xbc204700,0x3c229419,0xec16ee21,0x9716e116,0x710a6e28,0x1c26270a,0xf8072026,0xa910f208,0xd2224916,0xa31ad31a,0xe242b06,0x2a272b24,0xd9093427,0x5214530a,0x5c103b14,0x5f104808,0x552a7800,0xfb101320,0x7e15f715,0x60007700,0xeb0df20d,0x8025280d,0x54205b00,0x7e0d250d,0x29005d0d,0x7e205c00,0x250d220d,0xd005d0d,0x7e2a3120,0x2400280d,0xc203e0d,0xfd0eff0f,0xe718600e,0x560de80d,0x3120320d,0xc705c820,0xb05c205,0xab1d7617,0x6e060505,0xb4236d23,0x7e12f314,0xd91dda27,0xc0060a1d,0xf407c107,0xc01eed1e,0xcf1ef407,0x7422dc16,0x130d0605,0x700d8000,0x6b02971c,0xb21bb91c,0x8601731b,0x62206400,0xe601fa20,0x341be41b,0x8820672a,0x880d890d,0x7d206800,0xb80e830e,0x89206b15,0x20690d,0x440c2d11,0x462a830c,0xb1206d0d,0xd01fcf24,0xb707b91f,0x8f1ef307,0x841fec0d,0xf12a022a,0x902a870c,0x322a3d00,0xfb08fd00,0xb216b210,0xfd106216,0x91123d08,0xff078e07,0x2a891f,0x99216e20,0x61212519,0x7118db0b,0x712a430b,0xa0005920,0xba1fd324,0xfd0e2424,0xa311fb11,0xbd17a117,0xf517a107,0x4107bd1e,0x9620720d,0x817b80d,0x5117b61f,0xfa100a08,0xfb0e2415,0x86011e11,0x8d0d980d,0x980c9a0d,0x1b114c0c,0x300ea619,0xef010c11,0x6411e111,0x990d9a20,0x207d50d,0x207d71f,0xd707d81f,0x670a3307,0xc9285f28,0x66286713,0xc913cf28,0xcf286613,0x5e0a3213,0x5d286128,0x390a3128,0x650a300a,0x152a5c28,0x3020372a,0x650a3c0a,0xa42a4128,0x70201d0d,0x5a070924,0x41202f26,0x380d7a20,0xb50b350b,0xc030114,0x1b1cf303,0x3e091609,0x48264d0a,0x5264c26,0x6e060706,0x472a7a23,0x220d7c20,0x441e2b0c,0x1d041d1e,0x8104431a,0xe922e305,0xc419e816,0x941a9204,0xff289028,0x72289013,0x9113ff0a,0xdf10d616,0x5712c708,0xe4096427,0x8f058d22,0xc6042505,0x8504c504,0xf000ee18,0x45093000,0xbd12dc27,0xbc184000,0x89117800,0x910bd311,0x12239023,0xdd011306,0x4a11de11,0xd5263124,0x27237906,0x7623951e,0x7708441f,0xf713191f,0x75278112,0x74057305,0x48048105,0x8104771a,0x8510ca16,0x46112916,0x270ca411,0x44294128,0xa708f10b,0x8508fa16,0x6b299929,0xb31e0911,0x6a15ac15,0xf2040a21,0x1f07fc03,0xe17da1f,0x51d7023,0x800c7f17,0xf40c810c,0xf12fa12,0xda073c14,0x48074a1f,0x3a12a109,0x3a2a5e27,0x6f201500,0xef071826,0xa4170a25,0xa5170c05,0x99025226,0xef020626,0xd31bf01b,0xf61bd81b,0xf50ff501,0x4802281b,0x4c06d626,0x7100826,0xa0100110,0x580c5c15,0x9e093f0c,0x2b094012,0x191e1a06,0x9e131d1e,0x50131b09,0x5b280213,0xc7280213,0xdd280109,0x4c144d0a,0x42130d14,0xbd098e14,0x671a3e21,0x18078c04,0x1d079012,0x24082308,0x7e1ea308,0xdf121b07,0x8f043b21,0x5045121,0x3204221a,0xff225022,0x183e04,0xc80dcb25,0xfd18430d,0x1a1a0024,0xfe199b21,0xc8250124,0xf900b70d,0xfd183e24,0x184324,0xd104d025,0xdd043304,0x201ae503,0xb4183105,0x330dc000,0x3000b318,0xb500ae18,0xc00dbf00,0x3200b30d,0x3a228518,0x42053b05,0x211f7908,0xbe00bb18,0x910dbc0d,0x7f163d08,0xb310b210,0x2d10b110,0x66103410,0x31275208,0x79093309,0xf400eb18,0x50161c0d,0x46103d08,0xc1250218,0x77077900,0x7d122007,0x7e16d505,0x46057d05,0x4622db1d,0x4c16dd1d,0xd222d01d,0xe122d122,0xdc058022,0xec293d16,0xdd293e13,0x4c22e116,0x380b351d,0xc314a80b,0x600b5d18,0x7a297429,0xd418ed0b,0xd528e30a,0x9305940a,0xee1d5a05,0x8400821f,0xcf052f0d,0x8319cc19,0x8401b01b,0x6f1ddc1b,0xd3175823,0xd40fcc0f,0xac1b920f,0x231b8e01,0x24014f0f,0xef1bf10f,0x780fe11b,0x531c4c02,0x41c0a1c,0x7d1c031c,0x8220c61c,0xcc22941c,0x5119b803,0xee125412,0x8805c014,0xa123251d,0xa20eb11c,0xef17481c,0x961dcb05,0x5d1c5c20,0xf605f71c,0x5d174505,0x481dc023,0x60070f17,0xa1247926,0xd224b924,0xc15b61f,0x1f1e0b1e,0xa160b10,0x23102216,0xd101f10,0x22102316,0x880f9110,0xb701a91b,0xb6046b21,0x5926a621,0x2726a502,0x291e4315,0xe01cde1e,0xea02e60e,0xa813f613,0x89159f28,0x12126115,0xec0e1d01,0x1d011111,0x7118a00e,0x6e162b10,0xf408f910,0x1010f508,0xec030303,0x1720021c,0x170d180d,0xc0d0900,0x440de80d,0x8186025,0x2f2a3a2a,0x2d005500,0xa005020,0x142a092a,0x3a201200,0x8920132a,0x6c0d8500,0x300d5720,0x27004c20,0x280c0f0c,0x640d4b0c,0x392a6200,0xac00ad18,0x4500be00,0xce00bf18,0xcd24a41f,0x5d0d4c1f,0xcb0d5c0d,0xcf02a220,0xed0a9f20,0x93146c0a,0xa602931b,0xb21af020,0x1210203,0x230a17,0xd6171417,0xed1d8105,0x3b173305,0x67197017,0xf623e406,0xf51df615,0x271f9d15,0x5b062806,0xb1063c19,0xd416d323,0xe7057816,0xe9244d06,0xda24ec06,0xc51f8424,0xd702d61c,0xfa0db402,0x9800ae24,0x9711370e,0xd0d500c,0xe000572a,0xad02b71c,0x581c3c0e,0xe926a902,0x8525c123,0x691d3606,0xc922c605,0xc126c026,0xe71f7f26,0xb0076e24,0x840f8f01,0x911b941b,0xc901ad1b,0xd401f20f,0xa527431b,0x4f140828,0xee0a6309,0x4e274313,0x7094f09,0xf81bf71c,0x8b138a1b,0xc30a0e13,0xc71c5026,0xbf0bc326,0xd10bdc29,0x2e13a714,0xdf01dd28,0x6a01dc01,0x650c3e1e,0x2405c015,0x201d8723,0x1ce61d,0x6260503,0x7c06b026,0x24260626,0xa4116907,0x8611680b,0xdc038b03,0xfa17f626,0x2f17f517,0xad14ab0b,0x9b123e14,0x65078f1e,0x15249926,0x8c14b407,0x68148914,0xec1e8b0c,0xf90bf614,0x2120f820,0xf05b723,0x7b124417,0x331ec107,0x4215481e,0x7d0b3115,0xe027c214,0xd710d510,0x5c145910,0x5d0ae014,0x351e471e,0x2915600c,0x67150f15,0x77155a1e,0x8415b41e,0xf1e120c,0xe503fb04,0x7616cc19,0x1f057105,0x24095427,0x8b0cb309,0xb3112a0c,0x90199821,0x94049219,0xb1049304,0x1604bd04,0xc004b722,0xc8221c04,0x6042404,0x6025401a,0x960de818,0xea226b19,0xed22211a,0x26040719,0x6d03cd05,0x36183322,0xe183418,0x316b709,0x6090309,0xb816b809,0xb516b916,0xb316b516,0x9090e16,0x700600d,0x6c096b0d,0xbe276009,0xe303f119,0x9b07b503,0xb6179c17,0xb307b207,0x9a179d07,0xd707b217,0xd6179a1e,0xea07b41e,0x29179b1e,0xaf212821,0xcd1eca19,0x7f07921e,0x591f901f,0x4d0b2507,0x3913e40a,0xef04d722,0xe0057004,0x32060c1d,0x205a117,0x73175f23,0x3f22a617,0x2f262624,0xb3176526,0xb2176422,0x301eb71e,0xac256512,0x920e3118,0xfd0a7328,0x47219413,0x39042a04,0x33002d2a,0xdb1d7e20,0x20171005,0xd628700a,0xed05ee13,0x37173b05,0xe41dba17,0x5a176205,0x66054f05,0x4e055617,0x7500ea05,0xd4187618,0x5318cb18,0xeb1dbc29,0xcd1dba05,0xfd282814,0xd0181b09,0xf2083f07,0xf3227d1a,0xc704951a,0xc019ac19,0x2e056716,0x842a001d,0xc000830d,0xd80cd718,0xbf19150c,0x520e750c,0xa823ca19,0xf419a023,0x841a7221,0xde26e303,0x72197726,0xd1227122,0x90228c03,0xdb03ca22,0x3e1ad71a,0xfe229305,0x9703e11a,0x3c199f22,0x181b1501,0x11084c0f,0x101410,0xb0197221,0x46196403,0x7f063b06,0x821b800f,0xd40fc91b,0x7301f11b,0x51027702,0x891cf21c,0xa030b25,0x541f5818,0xac1cfe1f,0x1325ab25,0x6d243324,0x7257126,0x18255101,0x92062106,0x361d7723,0xe01d9e23,0xf716f905,0x4b1fc422,0x231fda07,0x2f129809,0xf41df127,0xa123831d,0x2414a214,0x260aba0b,0xaa28c114,0x7a277b12,0x1707f527,0xe91f1b1f,0xa508ef10,0x6823e116,0x7023d906,0x6d156215,0xfb08f41e,0x7508f308,0x1515e50e,0xea1cd619,0x4302e50e,0x6a005b00,0x7126b700,0x5c26b902,0x7d0d7e00,0x1f17da0d,0x2407f61f,0xb00e2a01,0xbf0db818,0x8824f00d,0x59058c05,0x9c2a991d,0x2100a92a,0xf718a70e,0xb1072411,0x2a072306,0x42a3700,0xaa17872a,0xd01edb07,0x301330d,0x8416e125,0xa6058505,0xa228a728,0xa228a328,0xb20a7f28,0xdd1b971b,0xc321d701,0x4919c019,0xb15f908,0xe603ba10,0xf904a621,0xbe1ace04,0x681d331a,0x431d3505,0xcc050822,0xd004fa1a,0xcf22511a,0xce1abe1a,0x521ac11a,0xfa225422,0xfb225204,0xd0050604,0x281ac01a,0xd305d417,0xf9223505,0x3f1abe04,0xe11ddf1d,0xa81dad1d,0x1c1da51d,0x9a1d9617,0xad1c411d,0xf91c3926,0x20237f1d,0x951de706,0xc9062323,0x51065c23,0x2a072719,0xf072907,0xb8242326,0xfa023006,0x540ff90f,0x530e410e,0xbf191b0e,0x66112c15,0x440e450e,0xbb0dc30e,0x6d0dc50d,0x390d540d,0x23187920,0x3d0dea25,0xd100eb25,0x8f0c8a11,0x1f19160e,0x26128a27,0xd90caf09,0x1a192915,0x63103516,0xd71cc508,0xc202d90e,0xdb1cc31c,0xcb0ed102,0xc50ed61c,0xde02df1c,0xd902dc02,0xd30ed702,0xd21cca0e,0xcd0ed50e,0x6d02e01c,0x461b3901,0xd202dd1b,0xd31cca0e,0xc902dc0e,0x9f030f1c,0xc2259e25,0xdf02db1c,0xc902cf02,0xf202c70e,0x6a197303,0x8528ad21,0x27140d27,0x2b249207,0x9a249807,0xe2266724,0x6710d608,0xf9084710,0xfd100d15,0x64265206,0x411c4a24,0x23026a1c,0xbd1d7f23,0xa401a305,0xb201a101,0x570f9301,0x931b7c1b,0xa101b20f,0x7b0f9120,0x32a010f,0xae000e2a,0x9101ad01,0x350f161b,0x601bad01,0xaf1b600f,0x1f26971b,0xd11bfa02,0xd51bda1b,0xfa0fd90f,0xe71bdc01,0xf801f91b,0x1b024e01,0x11021a02,0x211bfd02,0xc50fed02,0xc20fec0f,0xdb1cc31c,0xc7021f02,0xfb1bfa0f,0x1f1bce1b,0xff002,0xf00fef1c,0xff02230f,0x250ff11b,0xfd022402,0x2102251b,0xf21bfe02,0x1b02270f,0xc31bcc02,0xcb021b0f,0xc7021a1b,0xfa0fed0f,0xcb0feb1b,0xf90fc21b,0xc10fc21b,0xf41bfb0f,0xfc80f,0xef0fee1c,0xf31bf90f,0xfd02220f,0x261bfe1b,0x1022002,0x2202231c,0xf2022702,0x7410b40f,0x1c08c316,0x19061806,0xf009d406,0x3709d727,0x4327dd13,0x5b12ce13,0xbc275c27,0xc0134409,0x8b222309,0xf322161a,0xf5188300,0x7e11cc00,0x7e11cb18,0xcb253e18,0x3e026811,0xf01c481c,0xf2146b28,0xd279c28,0x4913060b,0xa213a80b,0x13294213,0x2c13a60a,0xf81bf102,0xc21b9f0f,0xf41ba50e,0xd60fce01,0x3d1aba1b,0xf01abb22,0xbb1aba04,0xf6223c1a,0xf204f404,0xf1223f04,0xf7223f04,0xf31abd04,0x411abc04,0xb421cb22,0x631a4721,0x640d670d,0x1c18650d,0xa7186325,0x9b208e00,0x2f05df2a,0x6316fe17,0x62186118,0xd70ddd18,0x1511a800,0x16185c25,0xa9185d25,0xd911a711,0x17185f00,0xdc0ddb25,0xdb251400,0x1b18640d,0xda185d25,0xd7185e00,0xa8251700,0x5f186211,0xa6251a18,0xd8251811,0x1411ad00,0xa400dc25,0x6400da11,0xe102dc18,0xa60edd02,0xaa0ddd11,0xe1251911,0x6825200d,0xe2252118,0x5d0dde0d,0xd6185e18,0xdc0de200,0xac00d80d,0x16251911,0xa911a725,0xa500d611,0x251511,0x5000cd0e,0xfa0da918,0x8000729,0x2503341d,0x2b1d0d03,0x9c1d0c03,0x9d054822,0x8200ec22,0xcc253a18,0x1717cd17,0xfa07fd1f,0x9617da07,0xb9141b0a,0x2b18bf0a,0x3618b701,0x270e280e,0x3d0e9f0e,0xaf0cc811,0xad1efa17,0xaf07cc17,0x7f17ad17,0xa328a40a,0x700d4828,0xc2004b00,0xc11cc01c,0x5d0e141c,0x72189f25,0x350e1125,0x6d12590e,0x531e930c,0x59035c0e,0xdd14f503,0x6c14f314,0x840c510c,0xf3125915,0xed14dd14,0xec189d11,0xc813bf11,0xab13c713,0x211ff18,0x3c286b0e,0x4b28610a,0x4813da0a,0x5327520a,0xba095d27,0xab27b927,0xf911bd0a,0x7b00f700,0xb1277809,0x3724c028,0xed1fc007,0xfe11cf00,0xe4187c0d,0x2f252900,0xb2147813,0xc927a909,0x1909930a,0xe291729,0x2529260b,0xa8292729,0x7a14fb15,0x8c158212,0x9a14f01e,0x6b159b15,0xee14eb12,0xeb14ea14,0x790c6814,0xf914ed12,0x6c1e9114,0x920c7412,0x9514f51e,0xf51e961e,0xf414f314,0x9314f314,0x6b14f41e,0x70126e0c,0xf1126f12,0x6f126e14,0x6a0c6c12,0x9815a40c,0x9715a51e,0x5f0c711e,0xa40c5d12,0x6b15a215,0x6d12710c,0xa10c720c,0x930c6915,0xf412711e,0x770c6814,0x9e127912,0xde0c7015,0x71159914,0xe312720c,0x750c7414,0x9415980c,0x8d159c1e,0x9412721e,0x730c5b1e,0x3515a012,0x580c2b1e,0x9d125c15,0x6e0c6f15,0x850c6f0c,0xf1126e15,0xec127014,0x68127714,0x761e910c,0xfd14ec12,0x1c154d14,0x4c15320c,0x52154d15,0xe00c710c,0x5157814,0x2156111,0x530c4b11,0xd80cd61e,0xd718c20c,0xd515c815,0x67026b0c,0xb3026502,0x951c5a02,0x4c1a341c,0x4f1a311a,0x4e132114,0x4e1fe214,0x670d432a,0x6e1f691f,0x1197f1f,0xa1220022,0xa5062c23,0x2526931f,0x7f1c2b1c,0x87122c07,0x38257307,0x118b90e,0x1f0e2612,0xb90e2701,0xb30e3618,0x270db800,0x3f084318,0x85083e08,0x28223121,0x516b704,0x7f090609,0xd5217e21,0x3a0e3704,0xe70e390e,0x441abf04,0xc2051322,0xd22461a,0x31ac605,0xba10c305,0xc108c610,0xc310ba10,0x85228710,0x32053922,0x7703df21,0xb20dc321,0xba182800,0x2b0dc40d,0xc11ab518,0x2304fc1a,0x3d1f7818,0xd70f5408,0xfa0fb501,0xd617d907,0x2624fb17,0xf624f218,0x1f17da07,0xa907c71f,0xbd17a817,0x184200,0x4312a025,0xb8127d09,0x5f12ba12,0x79205709,0xca00760d,0x7011bc11,0xc808cf18,0xb910c508,0x79055222,0x6d088317,0x6d106c10,0x6c163010,0xa308f010,0x9a10e616,0xe626a326,0x44284e0f,0xbd28700a,0x707e117,0xa292f1f,0x30b0429,0x4135a28,0xfc09dc28,0xce09dd27,0xcf27f509,0x5d135e09,0xd609ce13,0xd427f609,0x8f281909,0x68138e13,0xfe09df13,0xcd09e127,0x6409e209,0xf809d813,0xcc09e327,0xdb135b09,0xda09d009,0xf609d209,0x69135f27,0xde136813,0x670a3f09,0x53286828,0x5a285b28,0x7b1d7a28,0x3e05b21d,0xcc13cd0a,0x14091513,0x3e287909,0xcd0a3a0a,0x750a4c13,0x66287628,0xe711ad18,0x871c5f0d,0x3c028902,0xee253b25,0x181cfd00,0x311cf903,0x6722ce1d,0xb0176405,0xee176122,0x320b3328,0x5c104a0b,0xde29c410,0xef1d4616,0xf8038422,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x105296ff,0x29d31054,0x104d1060,0x9d2104e,0x27ee27f5,0x10a910a4,0x1df210a7,0x1def2382,0xb71835,0x193b0dc1,0x65a195d,0x1d3716c5,0xf0a22cc,0xf110f0e,0x20210db2,0xe8d0d37,0x11280cc7,0x15ca0cc5,0x23d41915,0x66023da,0x189a0e1a,0x1e9811e9,0x15a51275,0x13a709f8,0x3e51388,0x213b213a,0x1130191b,0x221415bf,0x22132113,0x22221a8d,0x22222217,0x22171a8c,0x22201a9c,0x23011a9b,0x5a0059f,0x1a8c04ca,0x4be1a9f,0x1a8d2221,0x19df2226,0x4e22225,0x4ec04ee,0x21691aa6,0x96e222b,0x12d412d9,0x19ae2297,0x3c8199f,0x3d5053d,0x5412134,0x1b002296,0x3db03c6,0x19920540,0x4e31b06,0x1ac8224c,0x2df1ccf,0xf6802e5,0x1b6d1b5e,0x63b0658,0x1b671938,0xf6b01a0,0xf69013a,0xf130f73,0x1bae01c8,0x1ba41ba1,0xfda02c8,0x2000201,0x191d0ccf,0x64a1131,0x641065b,0x1bfe0226,0x22990fca,0x19b50547,0x1b300fea,0xf141bf8,0xf220151,0x1c421c48,0x202426be,0xd420d41,0x184019a,0x1c210185,0x28026cf,0x1c63209a,0x25a20283,0x25a50325,0x2611c3b,0x3240258,0x326032d,0x240025df,0x25e90692,0x68f0690,0xee10ed8,0x1c5c0ede,0x20df20e0,0x15c91135,0xd0e97,0x1fe30d20,0x24182601,0x22ce241a,0x5671d2e,0x7620761,0x18870763,0xf900f7,0x1ee907b7,0x25491799,0x11e300fe,0x70c2474,0x187a265e,0x11c92536,0x1702230b,0x231205a4,0x1d721712,0x5df2341,0x60f05d7,0x1d3316be,0x173f1dbe,0x5e42350,0x1dba1dbc,0x57b16cb,0xdd21de5,0x11311d5,0x56d1de2,0x26661d3c,0x267f0730,0x70b265d,0x2675262f,0x72506ac,0x24a224bb,0x115f1fba,0xba12996,0xf5b0f5d,0x275f0f62,0x96b12d0,0x3cd1983,0xc16197a,0x15451e35,0x15141546,0xc160c15,0xc151546,0x15140c13,0x1e611544,0x15751e5f,0x159f1589,0x14ed125c,0x1e9115a6,0x1e9114ec,0x14f51e99,0x14f41e93,0xc6d1271,0x126f1e7c,0x126e126d,0x126e1270,0x1e98126d,0x15a51275,0x14f814f7,0x1cea14e2,0x1ce902ff,0x1e9914ec,0x12781276,0x12770c68,0x14ec1277,0x14f91276,0x1e911e99,0x14f915a6,0x14e31e91,0xc6014ed,0x1ea31216,0x15591225,0x1e4e1e36,0x8350833,0xc391f72,0x157f157e,0xc6814ec,0xc680c64,0xc641596,0x126c158e,0x14e71e92,0x12691277,0x14e01e97,0xb10c71,0x24f4182c,0x1130dd2,0x11430dd1,0x112d15be,0xea40e95,0x114415db,0x11320c94,0x11ac11b8,0xce2523,0x185400d2,0x11c20ded,0x108a00e0,0x8a21090,0x11a3119f,0xdd60de4,0x119f11a3,0x18551852,0x18572510,0x185911a1,0xcf250e,0x185411a2,0xd300d2,0xdd81855,0x185a1856,0x25111859,0xdd600d0,0xd00dd5,0x119e0dd5,0xd32511,0x25140dda,0xdda2513,0x25140ddb,0x11af0dda,0x25221868,0x1831b58,0x530f57,0xd55205d,0xd64204b,0xd62a6a,0x25222515,0xd61868,0x11ae2522,0xd40de0,0x2a460d8a,0x1f0d3e,0xcff0cfe,0xd860d8e,0x11a20d8d,0xd1186a,0x1865251d,0xde000d4,0xd4251d,0xd700d9,0x21e41869,0x4910492,0x186c11c2,0x1f6100e0,0x1f621812,0x1aef03ac,0x8f22102,0x10ed16a7,0x174c05ff,0xe61752,0xe70df2,0xea2539,0x25381878,0x11bc1878,0xd9e29f8,0x10d01fdd,0x1682168a,0x11b200d0,0x21d911b1,0x21db21da,0x203f0d71,0x11cc0069,0xf000ee,0x11c50df0,0x20590dee,0x20482a69,0x188911d2,0x184e2549,0xe2200fb,0x11d400fc,0x25492549,0x254a0e01,0xff11d2,0xe0a00fd,0x188c1891,0x47221c6,0x11db0470,0x188e0e03,0x11dd11de,0x188e188e,0x11de0106,0xe0411da,0xe02188e,0x11d511d6,0x11da11d6,0x8ad0e03,0x109908af,0x255811d2,0x11e82557,0x18930e0f,0x254c1898,0x189811d9,0x11011e6,0xe3c120d,0x11ed18bd,0xe1c0e10,0x11e10e16,0x189e11ef,0x189d18a1,0x245b2646,0x18a506f5,0x11f1255e,0x1140e1f,0x18a30e1e,0x18a411f1,0x18a42506,0x11f111f2,0x11f30e21,0x12ac2887,0x11f70a65,0xe2111f3,0xe1e11f0,0x7bb0115,0x7be17a2,0x21ef04a1,0x81a6a,0x91fe0,0x829fb,0x1fdf0009,0x1fe029f7,0x29f70cf3,0x60002,0x50cf8,0x184f0e20,0x1131199,0x10411db,0x132120e,0x10d20e37,0x168c1067,0x10b189f,0x1ab60e13,0x4e9222d,0x18940119,0x1f5c11f6,0x1f5a1f57,0x18a611f6,0xf00119,0x11ca11cc,0xdd6250c,0xf012509,0xf020f07,0x256a1206,0x25550130,0x11fa2560,0x189811e6,0x10f2559,0x189a11e9,0x1899255a,0xc772559,0xc7815a7,0x1b930f7e,0x189b01b0,0xfb0e22,0xe3c256a,0x12290130,0x1eae122b,0xb9d0ba2,0x18961162,0xe2311fa,0x8881632,0x15e00886,0x15e415e1,0x2725092f,0x20da128d,0x20dd1c99,0x128d092f,0x1234128c,0x7881235,0x18bd2562,0x11d2578,0x25782562,0xa8a1301,0x18b20a8b,0x18b60129,0x24eb1f83,0x591f85,0x20362071,0x80717e5,0x10c707fe,0x167a167d,0xf520f53,0x18b80f1d,0xe110132,0x16060862,0xd931616,0x8f0d94,0xb87297f,0x21c018f1,0x1a3a0464,0x120d2573,0x255e0e39,0x18a2255f,0x256a1206,0x213e0130,0x19e319e2,0x4be2221,0x222204c7,0x22211a8d,0x23311d87,0x19d705c1,0x3f5222e,0x29c02a3,0x3ca20bd,0x1adb0515,0x19f90531,0x227b049d,0x19c919cd,0x229f2116,0xe3322a0,0xe120109,0x1da005af,0x14b505cf,0x12f12779,0x19d303e3,0xc0003d9,0x20f720e8,0x1d11032a,0x24cf0328,0x1f7d0758,0x2408069f,0x230f069a,0x1d4f230e,0x165108b3,0x119e08aa,0x1853250b,0x19ba19d1,0x1ee419b0,0x179407ad,0xfad01ca,0x1f571bac,0x1f5a1f59,0x1f1d17d5,0xd531f1a,0xd520d6c,0xe12120b,0x193111df,0x15c80cd5,0xe7f1931,0x15bc15c7,0x192b0c8e,0xccc15b9,0x112715bc,0x15b915ba,0x15b71928,0x15b915ec,0x1127192b,0xe761127,0xe770ccb,0x192a15ee,0x15ec1123,0xccb15eb,0x15ec15eb,0x11e40e1a,0xea2189a,0x112a0c8b,0xc960e7c,0x19a10cc6,0x19be19bb,0x112d0c91,0x15f10c8f,0x112f1923,0xc27154e,0xc98154f,0xc941133,0xa0f2840,0xdd0283f,0x25052504,0x10f710ec,0x222a08f7,0x21812162,0x18c0f5e,0x1b5d1b4b,0x1900f5c,0xa7113fb,0x18cc0a6e,0xb55295a,0x1b8d0f80,0x18f01aa,0x1bb701d5,0x1fe90cf1,0x209d2a4b,0x28f209c,0x16ae16ad,0x275416af,0x12c12750,0x12000121,0x3940124,0x26e026dd,0x2685268d,0x12141c22,0x18bd18be,0x29e00bf3,0x2a7e0b44,0x512a55,0x1b5b017c,0x420f58,0x206d0087,0x11610bae,0x12da1158,0x12db2762,0x18b6257b,0x2a591209,0x591ffc,0x114f2990,0xebc0b9d,0x1ca902be,0x20dd02b2,0x16650282,0x166710ab,0x11b11f1,0x1d0c18a7,0x32c0322,0x18131f69,0x293d1818,0x28820a5b,0xf710f6f,0x19d60f70,0x3f519d7,0x8871071,0x140b1072,0x98212f9,0x177e07e8,0x119e079d,0x250c2509,0x9b201e,0x12f50d35,0x12f412fa,0x27460950,0x1d0112a7,0x3161d04,0x95a274d,0x2985095c,0x2994116b,0x115d0b9c,0x29920b9b,0x11592995,0x18bb0e28,0x23360e3b,0x1d9d05b1,0x17961ee7,0x14641788,0x145c28e5,0xcaa0eab,0x12490eaa,0x1ec91ec8,0x3600e5b,0x4a70e5a,0x21710418,0x1f0f07e5,0x28d407e2,0xabf1440,0x2345233f,0x14c405de,0x290d2937,0x17e61f29,0x202e0800,0x390d3b,0x19fb2115,0x21d41989,0x47f21d5,0xccd113f,0x19f8192d,0x19fb1989,0x1a3e044c,0x21dc21a2,0x48e048d,0xf080efe,0xceb0ce9,0xce90f07,0xf090ceb,0xcec0f07,0xced0cde,0x18772535,0x25231879,0x18771879,0x1a9a1a86,0x14c4221e,0x1432290d,0x2030004c,0x17b00d48,0x17bd17b5,0x28950a71,0xd292897,0xd280d6a,0x2dc0ecf,0x11940ed3,0x119229bc,0x15060c0d,0x1461537,0x14c0f94,0x101a161e,0x1839103f,0xad24f4,0x18d418ce,0x3040b5c,0x2f91cec,0x92a092e,0x2291092c,0x3c7199e,0x1f0a1f06,0x278c07df,0x9862892,0x17801ed8,0x6fa178b,0x264c264f,0x24382439,0x257243a,0x1c3a0261,0x58c1d48,0x5af1d4d,0x5cd05cf,0x23592358,0x1b3d1743,0xf340161,0x17f9081f,0x8260826,0x1f4417f9,0xbb429b2,0x19041185,0xb8a18f2,0x7f117d0,0x288d17cc,0x288e0a6f,0x109b1096,0x1be81652,0xfcb1bcf,0x61d270c,0x23911dea,0x238f270d,0x12a1897,0x1897256e,0x1080e31,0x173e1735,0x61a1dbd,0x1e031ded,0x1c271c29,0x1a280248,0x21d221d1,0x16b616b1,0x16b116bb,0x90110fa,0x90d16b6,0x1d5316bb,0x22e50583,0x20012a44,0xb5e003c,0xb5818da,0x29a20bde,0x1135117b,0xcbe0e93,0x19700665,0xf99066b,0xf9701bd,0x111d1580,0x1a1b1572,0x1a1c0439,0x4382193,0x19e9218f,0x221d221f,0x121e1ea5,0xfa61ec2,0x1bad01d2,0x6f22459,0x6812643,0x25d60687,0x25926ae,0x268226af,0x2690268d,0xc121512,0x128c0c11,0x12902726,0x95412b6,0x27790959,0xa8612f4,0x57e1d46,0x17cb1d49,0x7ec1f13,0x1d5416df,0x170d22ec,0x1d7405ac,0x5f21743,0x248a1dc4,0x2488248b,0x72c267c,0x26cc2493,0x26811c1d,0x1214120c,0x262f0131,0x244e246f,0x25e12403,0x252425e2,0x11bb2526,0x201a0032,0x18aa2023,0xe19188d,0x1e8a15a8,0x1e950c78,0x1e821587,0x296b0b7f,0xea10b69,0x191c15c6,0x11a5186b,0x33b0de5,0x2581257d,0xd222008,0xd49005d,0x650d61,0x2a3f0cf8,0x66201f,0xd610d60,0x2a6d0d5a,0x166d0069,0x10b008bf,0x10af08c1,0x162d1671,0x162e10af,0x167108c1,0x287e1672,0x287f0a52,0xdad2a98,0xa600a2,0x2a9a0099,0x29f92a4e,0x2a952028,0x20840da5,0xdb000a5,0x2a94208a,0x20830da7,0x20880dac,0x207a2a97,0x20770095,0x960da1,0x2a8f0da0,0x207d009a,0x9e2a92,0x2a960da8,0xda90da8,0xa700a5,0x186700a4,0x251d1865,0xd761ffa,0x18430072,0xdcb0dc9,0x7600764,0x1e581f85,0x11180c3e,0xc00dce,0x58d00be,0x22ee22e4,0x130928b2,0x23eb1310,0x6932401,0x138613a7,0x23ef1387,0x67c067a,0x23ff068d,0x6c025c2,0x26212615,0x23fd0681,0x23fd0683,0x68323fe,0x25c323ed,0x11490693,0x11361134,0x1b981b96,0x25cb1b9d,0x67e068e,0x266c242e,0x7952671,0x1ecc124a,0x1da305d4,0x1eee1da2,0x1ed61ed8,0x1d4d058a,0x201a0588,0x340032,0x2a400d34,0x123201b,0x18af18ad,0x360d37,0xd372a42,0x362021,0x370036,0x3a2a42,0x392017,0x252068,0x22e92a24,0x22ed22e8,0x11dd0e08,0x113b0113,0xc9d0e79,0x10d189c,0x16cf11ea,0x22d916ce,0x39e0399,0xb2f26f4,0x292814a6,0x48121ce,0x278e21d5,0xaf80b3d,0xf0f0f11,0xdda0f10,0x185b2512,0x89a163a,0x1d401080,0x579060e,0xd020dad,0x51f2089,0x22552253,0x1d500589,0x8ee1d51,0x10e210e1,0xf60df9,0xeb2541,0xdf41870,0x170b231e,0x28b52317,0xa9b1482,0x1e11bb4,0x11fc0fb8,0x11fb11fd,0x16d722de,0x5e70581,0x1db9234f,0x65523ae,0x6741958,0x25d425c5,0x23f325bc,0x6d425d5,0x24342432,0x163f1079,0x742089c,0x74124ae,0x2be1ca4,0x16181ca8,0x1616086b,0xe52035b,0x24e00360,0x24e10754,0x121256c,0x137418ae,0x9d927f8,0x90a10f8,0x13f50904,0x288b0a6c,0x10891088,0x89f08a0,0x164b08a0,0x1cf31cf7,0x16df030c,0x1d540583,0x16b308a4,0x181e089d,0x18231f78,0x1ca81cb1,0x108a02be,0x89d08a4,0x1924191c,0x1bf0c90,0x1b7001c0,0x15f215d6,0x13c0cd4,0x1b151b14,0x7a517ec,0x1431f2f,0x1b191b18,0xcec0f09,0x1cc60f10,0x2da0ed9,0x1b231b24,0x209f014e,0x1c64209e,0xd41869,0xf291862,0x1580f2a,0xf490f4b,0x29990f4a,0x116c1169,0x1631b45,0x2070f46,0x20b1beb,0x20562051,0x6922005,0x25df23eb,0xf4c0172,0x1d0016b,0x3130319,0x1cc259a,0x25a125a2,0x31a1d02,0x31d1d07,0x1d1e1d05,0x25ba1d0e,0x3230330,0x25a41d0b,0x31925ac,0x321031a,0x1d16031c,0x1d170338,0x1639163a,0x4600890,0x21ad1a40,0xeef1cdd,0xa660ef0,0x140a0a81,0xe2e18be,0x1485011d,0x29030b31,0x18c318d7,0x1f360b4e,0x1f221f25,0x5b2015,0x25fb2a5e,0x6be2426,0x25fa2412,0x89c2418,0x10791635,0x7152482,0x18b2480,0x1b6e0f68,0x13041303,0x2460098a,0x264e06f9,0xdfd0dfa,0x21782541,0x1a0c1a02,0xf80dfa,0x1821888,0x19a0175,0xac528d6,0x268b28d8,0x1c20268a,0x1b4f017d,0x24921b73,0x25f50727,0x1b691b74,0x12930197,0x2737129f,0xf741b75,0x1c4d1b6a,0x2700279,0x1c20027f,0x26b81c57,0x26b326bc,0xf631b79,0x14d0f65,0xf1e0f1f,0xf781b65,0x1920193,0x1a01b78,0xf790f78,0xf7b0193,0xf640f76,0x1b940f8a,0x1b9201ad,0x1b891b83,0x1ef407c0,0x101507bf,0x10101600,0xf8a20a1,0xf941b8f,0x1951b95,0x1b41b57,0x14af0f56,0x290314ae,0x46a21bd,0x204e0469,0xd282005,0x1be0199,0x1b961b96,0x1b90f9c,0xf9901bf,0x25d00f9b,0x23f225ce,0x1c11b99,0x1c51b9e,0x1ba401c7,0xfa201c5,0x18101c7,0xf521b1d,0x2ca0fa3,0x1ce1ba5,0x1b710313,0x25971cfa,0x1d10fa7,0x1d001bf,0x1cc0f96,0x456259c,0x45421b9,0x1cf1b9b,0x1b9b0faa,0xfa80faa,0x262106c4,0x1b9c242b,0x25970fa8,0x1d41bb3,0x1db0f5d,0xfb40fb6,0x17e0fb4,0x1d41bbb,0x1da0fb3,0x95d274e,0x1d1012bd,0x3231d08,0x188c0e19,0x1bba188f,0xfae01e0,0x1bbf0fbb,0x1e501d6,0x1e61bc0,0x1bc30fb9,0x1bc801e7,0x1e90fbd,0x1e70fbe,0x4ae1bc3,0x4b01a71,0x11fc2563,0x11fc0e25,0x11e11fb,0x18aa0e25,0xfbb2563,0x1bc60fbc,0x1ec1bc7,0x135e1bbd,0x9d309e4,0xfbc1bc5,0x17861bc2,0x17c107e7,0x1ece17c1,0x1b381786,0xf3c1b31,0x1ef0fc0,0xf380f3f,0x1bca0f3b,0xf3f0fc0,0x1bd10f38,0x1bcf0fcc,0xfd301ff,0x1bd301fd,0x1bd90fd3,0x20101f7,0xfd801f8,0xfd60fcf,0x1f301fb,0x1be11bdd,0x1f41bd5,0x1bde01f2,0xfd11bd4,0x1bd71be4,0x1be11bd6,0xfd001f4,0x1be31be4,0x1f51bdc,0x1f601fc,0x1f501fc,0x1fa0fd2,0x1be30fd1,0xfd01bd6,0x2011bda,0x26270fd5,0x24402441,0x1bd51bdd,0x1bde1bdf,0x1bd401f1,0x1bdb0200,0x1bea0fd8,0xfda0205,0x2040fd9,0x20a0fdb,0x1be90fdd,0x24e0feb,0x1203021a,0x25691204,0xff20213,0x1beb1bfe,0x20b1bee,0x22a0ff6,0xe7a0229,0x112d1143,0x2290212,0xfe3022a,0x20a020c,0x262c06d8,0xfdc06fa,0x22a0fdf,0x1436142c,0x27230abd,0x92b0949,0x37e26f7,0x1f1e0380,0x17d517d7,0x216022e,0x2b4020e,0xeae02bc,0x17eb17ef,0x12ff17ee,0x288e278b,0x985278b,0x2a52288e,0x5b006a,0x1218078c,0x9330790,0x272a0934,0x2350ffe,0x272a0236,0x272c1294,0xffe0237,0x1b370236,0xf570ff9,0xfb21b56,0xb901d8,0x18280dc4,0x23d0239,0x6761c0d,0x25c70675,0x1c130239,0x1c171c14,0x10071c16,0x230205a2,0x230105a1,0x5a0059f,0x22ff059f,0x23002300,0x22fe22ff,0x22fe22fd,0x59922fc,0x16f922f7,0x16f816f6,0x59422f9,0x16f81db0,0x16fb22f1,0x59b16fa,0x22fb1d64,0x16f90599,0x230222fa,0x5a02301,0x192c113f,0x23000ccd,0x59f05a0,0x59822f6,0xf300597,0xfff023e,0x20d0218,0x1bc90203,0x20601f0,0x1bc90f36,0x1bea0215,0x1bd001f0,0x210b2151,0x8b903be,0x10a610a3,0x8b808b9,0x1c051661,0x2310232,0x25f7069c,0xdfc25f8,0x11ce00f8,0x3a52706,0x27042708,0x3a803a2,0x1ce0f99,0x61a1b71,0x6151dfb,0x38526ec,0x19826dd,0x1b700199,0x1b6e018b,0x1b70199,0x1b80f9e,0x236f1758,0x17480607,0x1dce1dcb,0xe35012b,0x1350e0f,0x1b110f16,0x1b2b0156,0x15e91b2c,0x15ea191c,0x1c1b0245,0x1c212682,0x268c2680,0x1c1d1c1c,0x1cf72687,0x1cf31cee,0x268a1c1e,0x1c192687,0x2681268c,0x1c23268b,0x1e5c268a,0x1111156a,0x268a2688,0x7121c23,0x2661265f,0x165e08b5,0x97b10a1,0x276112d3,0x24b0249,0x209c1c24,0x28f1c65,0x11211110,0x9561569,0x9570953,0x95c274d,0x24ec2751,0x773075f,0x1c9920dd,0x2842094,0x20de2094,0x9a327b4,0x24e099c,0x1c3026a4,0x131d09a4,0x113127b5,0x15d515f1,0x95a095b,0x1caa0958,0xeb802b6,0x1c7320ae,0x161f1c70,0x10431042,0xc3d1108,0x10821e69,0x10830897,0x2f4258e,0x2752258b,0x96012c0,0x8961087,0x20d10893,0x20d820d9,0x141828b9,0xc660a90,0x15961269,0x141828b7,0x28b228b8,0x28b40a91,0xa8e0a93,0x28a91426,0x28bf0a82,0x25b0260,0x2693025c,0x26981c2e,0x28bf0aa5,0xa910a82,0xa9a28b7,0xa821425,0x994140b,0xacd0972,0x28c7142a,0x1c420acb,0x2660261,0x1c3e1c37,0x26b71c36,0x1c44025f,0x26ac26b4,0x26b10260,0x26af0267,0x26b61c38,0xaa926b1,0x14670ade,0x26326b0,0x26ad0264,0x2631c41,0x1c441c36,0x267025f,0x26af26b8,0x27c828f3,0x9af146d,0x9b11477,0x27e227c5,0x1475132c,0x27c709b0,0x1c461c40,0xaf01c47,0x13341333,0x2621c49,0x292b26ba,0xb2a14a3,0xb2d14ab,0xb2d14ad,0x14ad292b,0x26bc26c3,0x26bc026c,0x1c4b0274,0x26bf1c46,0x26c11c47,0x2751c48,0x1c4a26bb,0x1da6026f,0x5d61da7,0x1c4526c0,0x1c4f0268,0x26bd26be,0x26b0272,0x1c4d0269,0x26b91c46,0x1c450271,0x14a01c4c,0xafb1482,0xea10c9f,0x14a015cb,0x14822901,0x14880afe,0x16800b30,0x8d708d9,0x31c031f,0x13a00321,0x280c281c,0x25d50682,0x75a23f3,0x24d424e6,0x26a926b0,0x11520254,0x114f0b9d,0x2d50ec9,0x18c302d8,0x18c4294b,0x25bb1d18,0x2b00338,0x1c9720de,0x1d6722ff,0x2461d68,0x27e26cc,0x1c1f26cd,0x20a1027f,0x20a520a7,0x1a701a3,0x1be61b7f,0x1be31be2,0x139e2850,0x1bf40a27,0xf370f35,0xec402c6,0x187c1cb0,0x11c2186c,0xfcb0204,0x30e0fcd,0x1cf81cef,0xc111e40,0x257e1523,0x3011ceb,0x1c592094,0x26822099,0x268d2685,0x58516e1,0x1a322e8,0xf840f85,0x57c1d47,0x1d221de4,0x1d211d1d,0x4152178,0x1cb919fa,0x2ce0ed0,0x1cbf0ed0,0x229202ce,0x3b62112,0x229303b6,0x15a32292,0x15a41274,0x16bc10fc,0x10fb10fb,0x16b20900,0x1cf22593,0x87e030b,0x10f910fd,0x1a0a1a18,0x4711a17,0x21c521c3,0x1e621e74,0x1d0f1114,0x1d16032f,0x113e0e87,0xca00e88,0x15cf15cd,0x15d10e81,0xe830ca2,0x113b113c,0x15cf15d0,0xf190e81,0x1b181b50,0x3391d24,0x3d71d1c,0x19a303d8,0xca715d4,0xf9c1147,0x1b9601b9,0x3161d03,0x1aa51d04,0x226f19e4,0x268e1c1a,0x1c681c22,0x1c65028f,0x1c651c68,0x28c1c63,0x209b1c62,0x15770c4a,0x155d155f,0x155f0c4a,0xc2b1577,0x258c0c15,0x2ff1ce9,0x1ced02ff,0x28d258c,0x1c631c68,0xc3a1e75,0x11150c50,0x11141e74,0x28c028a,0x209d209b,0x28e028f,0x28d20a4,0x1b92209e,0x1c681b93,0xdac2a01,0x13d71feb,0x287813d8,0x2a412a91,0x208b0d36,0x2a9c208f,0x209e20a4,0x1f3c1c69,0x17f11f3b,0x28c1b94,0x207720a2,0x30001,0x1b93028f,0xf9020a6,0x1c6b209f,0x1c9102ae,0x25891c95,0x1cf0030a,0x1c6a20b0,0x1cdb20a5,0x1cda0eed,0x20bd20af,0x20d91c73,0x2ae20d3,0x20c420bd,0x29902a3,0x20c220c1,0x1c7a20b7,0x20b820be,0x1c7a029d,0x1c75029d,0x26c220c0,0x26e26ba,0x20c31c77,0x20b61c7f,0x1c7d029a,0x29e1c76,0x1c771c7c,0x1c7520c0,0x20730d98,0x20d42074,0x2a720c6,0x20d41c8a,0x20d202a7,0x20d320c7,0x13b10a1b,0x20ce0a1d,0x1c9002ac,0x2a502aa,0x1c8d1c83,0x2a51c87,0x1c8902a6,0x1c8702a9,0x20cd02ac,0x20c820d2,0x1d6c1c84,0x230d2315,0x20d120c8,0x1eee1c8a,0x1eed179e,0x25c269d,0x587025b,0x22ed22e9,0x2b120d8,0x12ab1c96,0x9241288,0x1ca50eb7,0x1ca51ca8,0x1ca81ca4,0x996276a,0x1c9d0ab0,0x1cab0eae,0x12518ad,0xebb1202,0xebc02c2,0x11b40de2,0xeae0de5,0x1cab02bc,0x3022584,0x1cae0301,0x1cab1c9d,0x1c9502b1,0x2c42093,0xec31cae,0x1c9f1ca9,0xebc02b6,0xec002c2,0x1e8d1588,0x1cb11e81,0x1cb002c6,0x125a1e8d,0x15981e81,0x125a1586,0x1cb31ba4,0x1ba302cb,0xebf02c5,0x2ec02f0,0x1cde0ef2,0x2ef0eeb,0x2cc1cbf,0xeed02ce,0x1cda1cdd,0x25b81d28,0xecb1d27,0x1cc11cc2,0xdeb0de1,0x261511c4,0x71b266d,0xdea11ac,0x1ade2523,0x225a225b,0x2500210,0x2a2b1c2d,0x2a250d1d,0x15df15de,0xd2315dd,0x2a2b0d1e,0xa90141f,0x32f0a8f,0x32925b0,0x200a2a26,0xd232a2c,0x2a2d2a2e,0x2e802e9,0xedf02e4,0x1cd302ea,0x19c603e7,0x13303e9,0x184b184a,0xb970bdd,0x31c1155,0x25a4031f,0xec602d1,0x2a8e0eca,0xcfb207b,0x1cdb0ef3,0x2cc02f1,0xecd1cbf,0x20db1c98,0x1cdc02b0,0x2f102f0,0x25b00330,0x25b31d0f,0x1d0e032d,0x264106f0,0x2f706f4,0x25892582,0x2689268a,0x25731c23,0xe39120d,0x25932591,0x1ceb2599,0x3012584,0x1cb61cb3,0x1c6402c1,0x28b209e,0x28d209e,0x258d028b,0x2f402f2,0x30e1cef,0x1cf50308,0x25901cf1,0x3061ce9,0xeb42585,0x1ca60eb5,0x18061811,0x259d082e,0x25a2259c,0x31e031b,0x1d1e1d00,0x1d2325ba,0x1c911c95,0x2502b3,0x20060024,0x20112010,0x2a350d2a,0x2a322a31,0x200a0026,0xd26200b,0xd25200d,0x13000f,0xd260015,0x20090d22,0x20102a35,0x2d0029,0xd2b0d2c,0xd2b2011,0x25aa0d2a,0x25ab1cfe,0x2fe02fd,0x25a72587,0x32625a8,0x1d0925ae,0x25a90329,0x31d0315,0x2862097,0x18ce1c5b,0x18d418cd,0xec402d1,0x1d1402ca,0x32f1d16,0x1d171d16,0x3351d0f,0x3301d10,0xd8a2a82,0x1d16206a,0x32f1d0f,0x3350338,0x2b21d17,0x20d51c92,0x1cbb02d0,0x129902d2,0x129b093a,0x2f81d27,0x2a9302f3,0xd001fe6,0x207c29f8,0x1682a8d,0x1b340162,0x187b2537,0x1a4011bb,0x21ad21c3,0xe2d2567,0x17c21204,0x17c307e3,0xfa20ec3,0x1fe502d0,0xcfc0088,0xd001fe7,0x1fea1fe6,0x29fc0d00,0x29fb0cff,0x29f71fe8,0x29f60cf3,0xdaa000c,0xd04009f,0x1fed2a02,0xb0d01,0xd011fea,0x29fd1fe8,0x33a033b,0x186f1d22,0x25262527,0x8721042,0x1c5e1625,0x28220e2,0x20390d6b,0x33c005a,0x3391d1f,0x13ed12ac,0xe490a65,0x3530e4a,0x5f9236c,0xf31dd7,0x18862544,0x14f80c62,0xe600c77,0xe6b0e6d,0x14e21266,0x1f6014f8,0x82e1806,0x1f6b1f70,0x272e1f6f,0x9370939,0x34f036b,0xe720370,0x36a0e70,0x3480e69,0x34d0371,0x36e0e63,0x16e81d54,0x284b16eb,0xa1c0a40,0x10381039,0x167c102e,0x10c508cf,0x2367174d,0x15f805ff,0x1620161c,0x381037f,0x1dd926d9,0x1dd02364,0x26e426df,0x280726e5,0x9e609dd,0x99d09a5,0x27d527b3,0x27d609c2,0x26d926e9,0x13850382,0x281e2811,0x135a1358,0x9f01359,0x281d1385,0x1386137c,0x9e309f7,0x137509ea,0x1387137d,0xa1d1386,0x286f13d6,0x13c913bb,0x1379285e,0x138c2824,0x285c2853,0xa38285b,0x286313d1,0x28680a3f,0xca80a3d,0x15c40cd2,0x13901382,0x358138f,0x349034b,0x242306b7,0x27712422,0x12e50a82,0x28a90a82,0x28a912e5,0x276728aa,0x3aa03a6,0x39e26fe,0x270026fb,0x2042202f,0x3c2041,0x2a451ff8,0x26e326de,0x279426e4,0x279d1495,0x99827ab,0x10350b14,0x86a1036,0x4e204e1,0x89a197c,0x1084163b,0x12bb12be,0x17eb12bc,0x17ee1f35,0x7cb17ae,0x9af17ac,0x14761471,0x21ee21e7,0x279a0440,0x149828a0,0x28dc0972,0x286b1447,0x28650a39,0x10170850,0xb281015,0xb2b14a4,0x290712f2,0x1e390b00,0x15481527,0x6092371,0x1eea175b,0x1eeb1ee9,0x29361300,0x143a2935,0xb3f293c,0x14831482,0xb420b30,0xa06283d,0x13481322,0x294009c3,0x139c1399,0x28f10af7,0xb4628fa,0x139d0a07,0x14ef14e8,0xc5b14fb,0xc731e87,0x14f41587,0xc141271,0x1530151a,0x15121e34,0x23e91553,0x25de25bd,0xc141543,0x15301513,0xc061e41,0x266c2669,0x201c2666,0xcf70006,0x15171547,0x16460c05,0x896164a,0x7ee1f13,0x4807ef,0x450046,0x1e38151f,0xc4e14fe,0x1e571567,0xdf911cd,0x1e4200ec,0x152e153c,0xc460c37,0x11011e6e,0x111e1576,0x3f7215c,0x19db215b,0x3f6215f,0x215e215f,0xc4103f7,0xc3b1e63,0x1e921264,0x14e614e3,0x159314fa,0x1e0f0c82,0x1e0f0c80,0xc8415b2,0x15b615aa,0x1e101e0b,0xc850c87,0x1e0f0c80,0x151c0c88,0x15440c13,0x15ec15d0,0x151b15b7,0x15161544,0x192815cd,0x19fb1123,0x19f82170,0x188d1891,0x7b4188c,0x1ee91799,0x15d3192b,0x19f70ca6,0x21791a01,0xe7f0e98,0x192a0e7e,0x15da1916,0x191915ba,0x19fa0e91,0x21781a02,0xe9b15e2,0x21810e9a,0x4270426,0x1a111a0a,0x2cb1a0b,0xec502c4,0x21592186,0x5f40432,0x1dcc1dc5,0x230716fe,0x217f05df,0x217e1a07,0x1a12218c,0x218b1a15,0x1a161a15,0x1a18218d,0x21891a17,0x218d0437,0x4a004a2,0x1a112277,0x218e1a5e,0x96a0968,0x43d12cb,0x43c1a19,0xd0a2a77,0x45f006e,0x214d19c4,0x219b0447,0x1a2b219c,0x4461a2f,0x4481a23,0x4621a25,0x460045f,0x21bb1a37,0x21b31a35,0x1998214f,0x199021b8,0x21182143,0x21411a3d,0x1f061f0a,0x8cc07e0,0x10c21679,0x21af21be,0x275021b1,0x95c2751,0x83d1823,0x1fb31824,0x24c124a3,0x248c241a,0x46e2604,0x1a411a42,0x25da23fa,0x21c925db,0x46f0472,0x47221c6,0x21c80470,0x4731a45,0x47421c2,0x124f1a46,0x124c1ec3,0x7062658,0x12282657,0x12271ec4,0x1a36044b,0x462045e,0x21ab21ad,0x21ab0462,0x79a045d,0x79c1ec8,0x21cb0468,0x124e0476,0x124d079c,0x1243124d,0x450124e,0x21ba21a9,0x1d59057c,0x1a37058c,0x1a2a21a7,0x6a506a1,0x203306a9,0x2a582a36,0x1a480477,0x4890444,0x19c319c1,0x16521653,0x26401097,0x25ca2645,0x25ca2640,0x23f123f1,0x246a25cc,0x19ca1a58,0x30c21dc,0x1cf31cf7,0x1bfc0211,0x1cac020f,0xeba1ca3,0x28cc1437,0x42d28cd,0x444043c,0x10ba10bb,0xc6810b9,0x14ec0c64,0x5840585,0x218e16df,0x1a5d1a5e,0x1c050230,0x1d4e0231,0x22e216d9,0x8611610,0x21c8101d,0x21c6044e,0x8a81096,0x1a26109b,0x1a051a13,0x21e01a1c,0x19fe2192,0x21950441,0xbfe20ec,0x21e329e5,0x21e40492,0x4910494,0x169c0493,0x8e908ec,0x236c174f,0x14e11dd7,0xc740c5f,0x398037e,0x289726e2,0x13fd2892,0x8e916a5,0x8ec08ec,0x169c08e9,0x8970899,0x8991648,0x8971647,0x44021f1,0xae22193,0x27632744,0x77f0783,0x21320785,0x41e2177,0x204c204d,0x21320068,0x21e32176,0x22e21d52,0x4a522ee,0x1a651a68,0x7841eaf,0xae10785,0x28e728e6,0x245b2646,0xdfb06f5,0x11ce2540,0x21141a6c,0x19b41a6d,0x4ba2209,0x4aa1994,0x1a8421f7,0x220d220e,0x4bb1a88,0x1a7a2211,0x1a7c1a7b,0x22051a7e,0x22092206,0x4ba1a86,0x1a7d1a82,0x4b521ff,0x1a7d21ff,0x2208197f,0x22082113,0x1a872210,0x1a812200,0x4ba2204,0x220f220b,0x220e2211,0x22081a88,0x220c1a81,0x4bb1a7c,0x1a7e1a89,0x1a7a04b4,0x22121a87,0x22132213,0x22141a8a,0x1a8a04b5,0x220a2215,0x1a832205,0x220b220a,0x3da04b8,0x1a7d04b5,0x1a7d03da,0x19861a80,0x22071a85,0x1a892117,0x22011a88,0x22021986,0x12a90950,0x4b312a8,0x1a8d04be,0x22201a9c,0x1a9b1a9b,0x1a9c221f,0x221b221d,0x221d1a97,0x1a9a221e,0x4c2221a,0x1a951a95,0x221a1a99,0x4c304c4,0x22191a92,0x1a9404c2,0x221b04c4,0x1a911a96,0x4c01a93,0x4c11a92,0x22122219,0x4c21a95,0x4c21a8a,0x221504c1,0x4c304c1,0x1a961a82,0x2205221b,0x1a9e2220,0x23072306,0x215816fe,0x4cd2224,0x22952135,0x21b4053f,0x1a290453,0x104d29e0,0x24110bf4,0x240d06a2,0x10eb08f4,0x45b1629,0x1a4f21d0,0x19e904c4,0x4031a97,0x1a9c1a9d,0x4001a09,0x22191a0c,0x19e82161,0x221d19e9,0x221f1a97,0x1a9c0403,0x1a9219e8,0x21612219,0x221a1a94,0x1c9b1c92,0x21641c93,0x1a0e1a0f,0x299a117c,0x407116c,0x22221a9f,0xdb200ab,0x1aa30d70,0x22291aa2,0x4cf0401,0x1aa10408,0x4cf2228,0x4d104d2,0x1aa41aa3,0x226f1aa5,0x19dc19dd,0x4d804f0,0x4d604d5,0x42604d8,0x4302182,0x222b222f,0x1c591c60,0x22920283,0x2291053e,0x1f4a1f47,0x4df180d,0x4232234,0x42304df,0x4e21a08,0x4e32232,0x19d519d7,0x4ea19d1,0x4ef2239,0x3fa1976,0x1ab6210a,0x215403f0,0x9260928,0x18f6128a,0xb6118dd,0x78a078d,0x19d2123f,0x19931976,0x4ee04ed,0xc871ab8,0x15a915ab,0x7e117b5,0x4ee17bd,0x1ab804e4,0x19da1aa9,0x1abb215b,0x223d1aba,0x14b70b39,0x223c0b2c,0x4f404f6,0x223f04f2,0x4f104f1,0x1abd04f7,0x1abc04f3,0x1abf2241,0x1abe2235,0x1d5a16f2,0x225016e2,0x1aca0505,0xfc50fed,0x1ad00fec,0x1ac004fa,0x213719ba,0x50119b5,0x504224d,0x1ac10507,0x22452254,0x1aad0509,0x1acb04fc,0x50a2245,0x1ad10500,0x22432235,0x4e304f9,0x224b0502,0x1ac42232,0x210d224c,0x1ad60517,0x4791a31,0x4e7047a,0x4fa1ac0,0x510050e,0x510050d,0x1ad11adb,0x22561add,0x22570516,0x1ad21ad3,0x1adc2259,0x22590514,0x2258225a,0x1da3233b,0x5161729,0x50a2256,0x226e226c,0x1ada1aeb,0x5131adc,0x1ad90511,0x1ad40512,0x1ad6050c,0x226e1ae0,0x1ae1225d,0x51b225d,0x51c051b,0x1ae81ae1,0x22672260,0x5252267,0x22601ae8,0x51f051d,0x51a1aea,0x5241adf,0x523226a,0x1ae2225f,0x1ae31ae3,0x225e2265,0x1ad62139,0x522050c,0x5212261,0x51a1adf,0x520225c,0x51c1ae6,0x22630525,0x5222266,0x1ae41ae9,0x2261225f,0x2266051e,0x1ae51ae6,0x22650524,0x226b1ae7,0x527226a,0x21391add,0x50f2257,0x21061978,0x1add1995,0x21060516,0x1ad91ada,0x50e1987,0x21060518,0x1ada0514,0x3ca050e,0x51b1ad7,0x3dd03cd,0x1979225e,0x3dd1ae3,0x51b0520,0x225f1979,0x197a1ae3,0x22620526,0x1adf1996,0x3cd0519,0x226d226e,0x226403e6,0x1aeb1ae8,0x22540507,0x5082265,0x1ae91ae7,0x1ad02251,0x1ace1ae2,0x224d1acd,0x1ad51ac9,0x1acd2265,0x1ae41acc,0x5061ad0,0x2254226c,0x5122252,0x1aca2246,0x1ac52258,0x225a04fe,0x1ac51ac7,0x28262819,0x3cd1383,0x226e225d,0x21092273,0x28fd2271,0x133827d3,0x2275052c,0xdb61980,0x18351834,0x19801981,0xe6d2275,0xe6b0e4a,0x1158298e,0x28910b92,0x9422733,0x227a1af1,0x9d12279,0x134b134a,0x1af41afa,0x10282282,0x160c160f,0x6b925f8,0x1eb12610,0x1eae122b,0x9460947,0x53312a0,0x22760530,0x1e9e1ea2,0x24ca077c,0x73d24ad,0x9432736,0x1aef0944,0x41c2278,0x10170848,0x27e4161c,0x9cd134a,0x9820987,0x21ce0988,0x1a4b21d4,0x8951643,0x2287107a,0x53704a1,0x5422296,0x1a621b07,0x5350534,0x22901afd,0x21eb228c,0x22831a6b,0x214e21c5,0x538214c,0x1af92285,0x21111b04,0x54503cc,0x22970546,0x1b081b00,0x1b010543,0x2298053c,0x228a2289,0x2a30053d,0x542a33,0xe3a0e39,0xe3718ba,0xe390e3a,0x5062261,0x1d681acf,0x23031d67,0x1d6a1d68,0x12101d5b,0x12f0e35,0x1d5a16f3,0x16f30593,0x5950593,0x16de16d8,0x2289058b,0x228f03bf,0x22f20591,0x10be22f3,0x10c010bd,0x10731072,0x4cc0883,0x19ef19ee,0x23872385,0x3cf1df0,0x53e199e,0x6f506f4,0x229606f8,0x213419a5,0x1d5122ea,0xbab22eb,0xba51170,0x299e299d,0x3c00baa,0x1b080543,0xb80db5,0x3db24ef,0x1b000544,0xdb50dc2,0x79f00ae,0x17831f01,0x26f926fc,0x178e26f5,0x7af1ed5,0x1b0d229f,0x18b122a1,0x12031204,0x969275c,0x229c0967,0x2119211e,0x211619a3,0x48922a0,0x19c121d9,0x810d84,0x186a205e,0x18561855,0x1ee807a8,0x17fa178a,0x82b17f6,0x108e1086,0x1dd31087,0x2365174e,0x10fa1087,0x99a1086,0x13160983,0x1f4b1f4d,0x7d01f4e,0x7cc17af,0x123d078b,0xf5123c,0x254311cb,0xb7c0b7d,0x19a31905,0x212c22a0,0xd4a2032,0xb282031,0xb292926,0xb2b0b2a,0x4614a4,0x2a642a65,0x100a0851,0x101d15fa,0x8590857,0x88a0889,0x237d0888,0x6140621,0x22f11d5a,0x22a10594,0x3de2133,0xe2111f1,0x22a411f3,0x17621760,0x176a22ad,0x5280550,0x527226b,0x1e5a1569,0x553110d,0x5510554,0x22ab22aa,0x106922a9,0x10ae10ac,0x8ae1653,0xa7708ac,0x94b094a,0x19f01aab,0x169304d9,0x10d410d5,0x10d41692,0x177810d5,0x22ba055c,0x55b1774,0x22b622b5,0x22b722b8,0x1c9002a8,0x17711c8e,0x5580559,0x1775054b,0x54a22a7,0x176322b1,0x16391638,0x22bd163a,0x5601d2a,0x25d925d8,0x176125da,0x22af22b0,0x179e07b6,0x8e7179d,0x10de08ea,0x176b22ba,0x56822bb,0x1d351d2f,0x552176a,0x59f176b,0x5a02300,0x16be22c9,0x16c70560,0x1d2f22c3,0x1d3422cf,0x16c216c1,0x5661d2b,0x22c01d30,0x1d3222cb,0x22ca16be,0x56116c4,0x22cf22be,0x22c122c4,0x56016c2,0x22c51d2a,0x5640563,0x22bf16c5,0x16c616bf,0x1d3422c0,0x56216c5,0x5660569,0x16c30561,0x56222c6,0x22c50563,0x1d300565,0x1f591f5a,0x22c7180c,0x22c81d31,0x22d022d2,0x22d21d38,0x22d122d3,0x1d37056c,0x1d381d36,0x56a22d0,0x1d3b1d39,0x56c1d37,0x16c81d36,0x1efd17ba,0x16660837,0x166508bb,0x22dd0577,0xdeb16d2,0x11c711b8,0x1ecd0797,0x5741ecc,0x57516d5,0x1d420576,0x16d022dc,0x1d4216d1,0xb4f0b5c,0x22e218c5,0x1d4d057f,0x16dd0580,0x1d4e16de,0x16da16db,0x16d81d57,0x581058b,0x57a16d6,0x1d491d46,0x1d5216ee,0x22e316e9,0x16ea16e9,0x16ea0581,0x58122de,0x22de16ec,0x102d16ea,0x1034102f,0x16f00587,0x22e616e7,0x22e522e4,0x1d4f0582,0x16e00591,0x22e70592,0x16e222e7,0x258416e3,0x302257f,0x188711bb,0x58800e2,0x16e716e5,0x16e40589,0x299c16e6,0xbb80ba6,0x8da1685,0xbc210c8,0x115c0ba8,0x3b0d3d,0x12f40d30,0x277c2779,0x17dd1f23,0x22ef1782,0x16de058b,0x16ef1d55,0x22ed1d5c,0x1d581d56,0x16f116e2,0x12f416f2,0x12f5277c,0x22ec0585,0x16f31d55,0x1d5a16e2,0x1d571d59,0x122e0588,0x12330787,0x16ea16ec,0x16e00584,0x16eb22e7,0x1d5c1d56,0x1d5f16e4,0x16f11d5e,0x16f41d5e,0x16f416f2,0x16f50596,0x25eb2406,0x58825ea,0x58a16e7,0x132327be,0x1d4f1322,0x1d682304,0x230f2305,0x16ff1d4f,0x230705a3,0x1d692304,0x23081d68,0x5a32309,0x1d6a2309,0x17011700,0x1d6a1700,0x133a09c1,0x1d5027c1,0x1d5b16e6,0x1d501d51,0x58f16ff,0x22ea058e,0x589058e,0x280322ea,0x280f2804,0x9e91375,0x281d09cc,0x137b1384,0x138a2810,0x10f281a,0x11eb189a,0x1e8a0c62,0x13bc14e5,0xa30285d,0x27162717,0x13b82869,0xa440a45,0x13d10920,0x1364286b,0x134d09c5,0x13db2879,0x13522873,0x135327fa,0x134e09e0,0x135209e1,0x9db09d0,0x232205b7,0x141805bd,0x9740a91,0x171a05c8,0x1d841d98,0x23271d89,0xefa0f08,0x17200cea,0x2333171e,0x5cb1d9d,0xe3a1722,0x120e0e37,0x1d7305c8,0x171d05ca,0x1d9b2337,0x12ae2723,0x5af2887,0x172405ce,0x13df091f,0x52d287a,0x3b021e8,0x1d2b22bd,0x23181d2a,0x5b5170c,0x22bd16be,0x22c70560,0x22cd056b,0x86c1616,0x1da60862,0x5d61da7,0x5a7172c,0x23421704,0x172b05d8,0x23412339,0x233b05d7,0x172c1729,0x1da91726,0x13141daa,0x14970b15,0x233e05d5,0x1da71725,0x5d605d2,0x5a82310,0x231205a9,0x1d7c2311,0x5c31d85,0x5c005c2,0x23261716,0x1d8d1d85,0x1d852329,0x1d8c2329,0x233705ad,0x234a1d9f,0x5e5234d,0x1d8e1d85,0x1dc6232a,0x174405f4,0x1d631db0,0x5f416fa,0x174405f5,0x144c0adc,0x1f190ad5,0x7a0081d,0x28960a75,0x176a2893,0x5521779,0x23761d40,0x559060e,0x5581760,0xa110a0d,0x1dc32825,0x2356235a,0x1daa2309,0x3e505a3,0x213d213b,0x3e32136,0x147c03e0,0x28fc28fd,0x87b10cb,0x13ed1063,0xa6528a7,0x730072c,0x27d0261e,0x9b828f5,0x1b0e2133,0x23481984,0x1db016f8,0x59705e1,0x9040598,0x10fb0902,0xb100b0f,0x1db32916,0x59c059e,0x1db105e9,0x17321732,0x5e91735,0x22f41dba,0x1d6105e4,0x5e5234a,0x5e41d62,0xa9b22f4,0x29011482,0x292714a1,0x23562925,0x17452357,0x22c922d1,0x2e516c2,0x2db02df,0x1550f2d,0x3920f22,0x26e626ed,0x219e043f,0x17591a22,0x236f0608,0x3bb0417,0x218c216f,0x1a10042c,0x1f1c17d5,0x97a1f1a,0x12d012cd,0x6042370,0x17540606,0x1dd6236a,0x5f61754,0x140705f7,0xa7f0a7c,0xf380fc0,0x7091bca,0x265a246b,0x236c1dd3,0x1756174f,0x235e1dcb,0x1dc8175b,0x1dcd0604,0x1dc81747,0x11a811d1,0x1a312517,0x4791a4c,0x23702371,0x6082372,0x174a2361,0x236f0607,0x23730608,0x1dcc1dca,0x6062370,0x1dbb236e,0x234c1740,0x5ea2352,0x57c1dbf,0x175c1ddd,0x1dbe1740,0x22df234c,0x60d1dde,0x1ddd175d,0x22d51d48,0x175d1ddd,0x258f030d,0x4c81cf0,0x4211a06,0x57922d6,0x22d5057b,0x1ddd1d3d,0x60c056f,0x25421ddf,0x25411887,0x11931155,0x8140bdd,0x17e817f3,0x288d13fa,0x1ed113f9,0x7f11f0b,0x1f0b17cc,0x1de31f0c,0x1d3d1ddd,0x1d3c1de4,0xbb51dde,0xbca1180,0x10fd087e,0x1de608ff,0x1e220610,0x60f22bd,0x97b2377,0x12d32775,0x12d02775,0x175112d3,0x1dd7174f,0x23792378,0x216e1dfa,0x1999199a,0x1dfd061e,0x1dea0613,0x61e1de8,0x237d1dfc,0x22b91e01,0x22bb1779,0x61f237d,0x1dfd1dec,0x270b1e23,0x1e231dfd,0x2395270b,0x1e261e27,0x5261ae9,0x23022269,0x230105a2,0x23882386,0x23911df5,0x237b270e,0x6122391,0x23911e02,0x270d1deb,0x1dfe0621,0x61c2391,0x61a1df7,0x237a1de6,0x1f5f1e21,0x180f0830,0x237c1e24,0x237c1dfb,0x237e1e25,0x1e03237e,0x615237c,0x237c1dfb,0x1dfb1df8,0x238f1df7,0x23900612,0x1de91dfe,0x238f061f,0x1deb270d,0x1de8061d,0x1e021dea,0x1deb0612,0x270e1deb,0x6141e02,0x1deb237b,0x1e022391,0x61a270e,0x1ded1dee,0x13a1138d,0x29a42824,0xbb40bb3,0xbb60bb4,0xbba29a4,0x29a70bb7,0x11730bb1,0x11771174,0xbba0bbc,0xbba0bb9,0xbb729a7,0xbb0117e,0x29a729a5,0xbc10bb7,0x29ae117b,0x1156114f,0xbbb1157,0x29a929a8,0x117829ab,0x29ad0bbb,0x11790bb8,0x856101e,0x24201606,0x260d2422,0x11ff1897,0x260d012a,0x6ba2422,0x260d06bd,0xf7c06ba,0x1b7b0f7a,0xdc70dc8,0x1e141840,0x6281f9d,0x20ab0294,0x1f9f0295,0x1e16190d,0xc3b156b,0x2537156c,0x11bb11c9,0x239a1e1a,0xe32399,0x11bb11b9,0x190f1e19,0xee1fa1,0x11ca0df6,0x1b982598,0x11ca01c9,0xee00f0,0x1fa31910,0x298a1e1b,0x298b2987,0xb980b95,0xb942988,0x1150114f,0xb930b96,0x216d2989,0x52b0413,0x131727b0,0x2a3a27b3,0x20132a08,0xd3f0087,0xdd72066,0x119f2509,0x1f761821,0x1f7a0842,0x1f761ecf,0x5e91db1,0x10f21736,0x16ab10f6,0x18ef0b88,0x1d7f18ff,0x233a1727,0x233c1d80,0xb8b172a,0x19011906,0xb6a0b70,0x1e141906,0x6251f9c,0x5cc1d9a,0xc901d98,0x191c15ea,0x15df15dd,0x23070cb9,0x5df2347,0xe8f15da,0xe900cb2,0x15d91929,0xcad1913,0xe8e0cae,0xcae15d8,0x19140e90,0xcbc1917,0x19200cbb,0xe911917,0x19191919,0xe92191a,0xcb50e92,0xc790cb4,0x15b215ac,0x15da0e93,0x19190cb1,0x19170cb4,0xe7b0e94,0xcb60cc3,0x19180ea5,0x11360cb7,0xcb71134,0xea81134,0x63d1950,0x64e23c7,0x19511940,0x194523d4,0x23e00643,0x23dd23db,0x196c23e2,0x63823de,0x195623d0,0x19d003be,0xcb72151,0xcd215c4,0x3bd2150,0x436197e,0x4371a18,0x467199c,0x4741997,0x1a46214e,0x44a1a23,0x1d6a1a5e,0x1d5b1d50,0x1a240442,0x219c2197,0x1a22043f,0x21ee1a1c,0x4a421e1,0x4a521f1,0x12dc12d7,0x1a7412a5,0x22171a8d,0x212f21f4,0x49d04a8,0x216f19f9,0x4b51a8a,0x22092214,0x4b91a82,0x1a821a7d,0x1a7e1a80,0x1a7a04b4,0x1a8804bb,0x1a881a89,0x220e220d,0x1a8304b8,0x1986220a,0x1a85220e,0x221621fe,0x21131a8b,0x1a872208,0x19eb222a,0x14822163,0xafb141e,0x19db1ab1,0x4e8215d,0x4e41ab8,0x223e03f6,0x3dd19dc,0x1ae52266,0x50404e0,0x1ad5224e,0x22491ac9,0x22882281,0x2232053a,0x1ac404fd,0x54803ce,0x229d229a,0x229b19ad,0x229d229c,0x25dd229b,0x23ff0691,0x78c123f,0x2963078a,0x18d1295c,0x123e123f,0x219a078f,0x21a4044f,0x26a60211,0x58b1c2e,0x58622ef,0x269c269d,0x194d2695,0x194b194e,0x194a064c,0x1775064b,0x22b322b4,0x193c23ba,0x23b223b8,0x63f0640,0x193723b4,0x1937063a,0x23b023b2,0x193e0640,0x6410641,0x19490649,0x63f193d,0x42a0640,0x21800422,0xa821425,0xaa4140b,0x28bf28a9,0x23c21934,0x32923c8,0x25b01d0f,0x6a82605,0x19672604,0x65d1969,0x19671969,0x7a91953,0x7a7178a,0x1b28015a,0x23ce0f28,0x19361935,0xf450f44,0x65d0163,0x19671945,0x23b6195b,0x1964063c,0x644193f,0x1b8b0f90,0x1b4f0f87,0x1b731b72,0x1ea91e9e,0x23da1219,0x66323d4,0xf7b1b64,0xf820f64,0xf8f01a4,0x1bc101e7,0x6650fb9,0x23dc196e,0x196c23de,0xfa6196e,0xfa51bae,0x236505fa,0x1bba2363,0xfb11bb7,0x196f196d,0x1bc70666,0x1bbb0fb4,0xf330f3b,0x1bd101ed,0x1bdb0fcf,0x23d11944,0x1f623d6,0x1bd301f5,0x1ff1be5,0x20201fd,0x1bdd01fb,0x1bef1bee,0x23a90208,0x6510652,0xff50fe7,0xfee1c02,0xff41c00,0xfc70fed,0x21c0fc6,0x1bcc1bcd,0x1c010ff1,0x4fa1bfc,0x4fb2252,0x1bff01ee,0x22d0fca,0x1c061bf7,0x196023b9,0x213195f,0x1bfd1bfe,0x22c0fe4,0x11270ff7,0x19170e91,0x640065b,0x10040641,0x10051c14,0x23d5194c,0x194a065f,0x196a065f,0x23d7194b,0x24023d5,0x1002023c,0x1700167,0x1bb00164,0xfac01cb,0xf9d01b5,0x25d501b6,0x6860687,0x1baa0fad,0x1f2b1bac,0x1f2a0804,0x24c1c32,0x1c2626a2,0x2686268e,0x23e623e8,0x25d025d5,0x68723f2,0x25d20687,0x1c4c0686,0x1c5326c8,0x26a0263,0x1f3d1c4a,0x17f217f1,0x165b1662,0xfee165d,0x2101bfb,0xae81456,0x25d11466,0x25d20684,0x66f0670,0x23ef25c4,0x23ed067c,0x26c526c1,0x23eb26c9,0x23ec25c3,0x23ec23eb,0x1c7423e7,0x20b320b7,0x1b120a6,0x20c3028f,0x1c8620cb,0x2b01c8c,0x1c7c1c89,0x1c8502a6,0x1c9102b3,0x6901c9a,0x25dd0695,0x25de25dd,0xeec0691,0x1c9e1c9c,0x16dc2375,0x2e31d4b,0xedb1ccd,0x25a81d01,0xa31d04,0x29f600a6,0x2588033e,0x3101d29,0x258a2589,0x25a71d02,0x32c25ae,0x32e0327,0x1c50027a,0x25e60272,0x69625e5,0xa030a05,0x23f92822,0x25d925db,0x23fb0689,0x24b325db,0x74924b2,0x25d925da,0x23f925db,0x68825d9,0x69a25ec,0x24052408,0x25e425e8,0x25ed25ee,0x17b225e8,0x1efc1efd,0xdca00bd,0x124d1843,0x12470799,0x15c023e,0x10941c0f,0x16591650,0x7881232,0x24851235,0x719266b,0x247d2667,0x260e266b,0x260b2423,0x6aa2601,0x247d2600,0x266b0719,0x2679248e,0x1452248f,0x27be1453,0x261606c1,0xf0e242a,0xcf00f0d,0x55f2092,0x2440055e,0x24412627,0x16c6056b,0x1d3b22cf,0x56c1d39,0x56c1d3b,0x262916c8,0x243d243c,0x6c52444,0x264a06c7,0x6f32649,0x262f06e2,0x6e506e5,0x6e22633,0x22f71d5b,0x6e30599,0x26372635,0x264d264f,0x22f606f7,0x22f80595,0x8db08e6,0x1d8510dd,0x1d8d232a,0x171505c0,0x5ad1d88,0x1d9b2334,0x5c905ad,0x6f12334,0x263d2458,0x2638263b,0x8ba2639,0x166110a3,0x1dab05da,0x247c05d9,0x26512463,0x243b262a,0x1db2243c,0x22fa1d64,0x5ee05f0,0x5eb2354,0x17441dc6,0x295e0b5d,0x70118d6,0x246c2468,0x26540702,0x2650246b,0x24462462,0x265306fb,0x265106fc,0x24662463,0x70c265c,0x70c246f,0x246f244e,0x238f2390,0x238f0612,0x6121deb,0x6121e02,0x615270e,0x1dee1e03,0x1ded1e03,0x1e251dee,0x1e03237e,0x237c1e24,0x237c1e03,0x1e031e25,0x1e031e24,0x1c951dfb,0x2ae20d9,0x6c2261a,0x6c22619,0x26192617,0x238f2391,0x61a2390,0x61c1e24,0x27101e01,0x7102393,0x2660070f,0x15ad15af,0xc7c1e08,0x15af15ad,0xc7a1e07,0x15a915aa,0x1e060c79,0x1e0b1e0d,0x1e091e06,0xc7915ac,0x15ae0c7e,0xc7d1e09,0xc7e15b0,0x2654247c,0x15a92463,0xc7d15ab,0x261b2626,0x1ed9262f,0x1edc1edd,0x71d071c,0xfd92670,0x1fe0fd7,0x1f70fcc,0x7160fd4,0x2668247f,0x253f00f6,0x256a0dfc,0xe2f1206,0xe271206,0xe2f1202,0x25691206,0x261106bb,0x236d2614,0x606236e,0x260806b6,0x2425240a,0x26112614,0x25fa2407,0x24730699,0x23ec2478,0x71725f2,0x1faf2409,0x1fcc24b0,0x25e925ea,0x21da068f,0x21d41a54,0x290f148b,0x126f290e,0xc6a0c6c,0x1fcb0742,0x24b324b4,0x24b21fbf,0x1fbf24b2,0x249b0738,0x24b324a7,0x74924c5,0x213324c7,0x3df198e,0x74f1fc8,0x1f7024cb,0x1f6a1f6b,0x185a0dda,0x10352511,0x10330869,0x612270d,0x614238f,0x1deb0612,0x18091805,0x26131f54,0x71f2615,0x15e51915,0x120b0cc5,0x120a0107,0x195423bd,0x207a1953,0x32077,0x15591e4b,0xc201e4e,0xc211557,0xc211e41,0x15541526,0x15300c21,0x15191e2a,0x14df1e43,0x14f2159e,0x26862683,0x1106268e,0x15630c4d,0x264a2447,0x15dd264b,0xc960cd3,0x250b1853,0x1847119c,0x18452502,0x7671f7b,0x98d1f8a,0x98c2911,0x188f2563,0x17fa11fb,0x821082a,0x10ce10cf,0x13701687,0x137109e2,0xe300e3c,0x28c50e2e,0xab11441,0x312a11,0xd530030,0x2039005a,0x782047,0xd902a66,0x2a85008e,0x6e2a77,0x20d74,0x1b1fdf,0x2a862a85,0x93008d,0x208d208e,0xd9c2a7c,0xa80d81,0xa70daf,0x52a92,0xdab009a,0x9f000c,0x1efe07db,0x10d017bd,0x8d808d6,0x79007d,0x2a06007c,0x20342a56,0x2a4f2029,0x138d1fe5,0x282509ee,0x236405fc,0xc6205fa,0xc7714f8,0x2330ffd,0x2a630234,0x652a65,0x24d71f94,0x2551075e,0x2570256f,0x4062164,0x9421a0f,0x2736129e,0xd90206f,0xcfc0d8f,0xcf90097,0x73924b6,0x202a1fc3,0x440043,0x1ee71789,0x178c178c,0x1ee61ee7,0xbf629ee,0x81520e3,0x1f3517ee,0xd920d91,0x815008c,0x1f341f35,0x2a5d003a,0x26172017,0x6ba06c2,0x1ce70304,0xf82585,0x18860dfa,0x223a03fd,0x11019a6,0x255b1899,0x4eb223a,0x298b03b7,0x298a1193,0x100915f7,0x3f4086f,0x214419bf,0x144b28e1,0x206627bc,0x2a470d3f,0x1a6504a5,0x115b0498,0x29912992,0x1911062c,0x1b9e1e1b,0xfa90f98,0xf60df9,0x193311cf,0x63c23b1,0x1f8924de,0x5b81f88,0x1d7e05b7,0x1f82075b,0x24d91f81,0x75e1f84,0x75d075e,0x24d024d9,0x7550753,0x75d24d8,0x1f82075e,0x1f811f80,0x75624d1,0x1f891f7e,0x1f9824ee,0x7750762,0x7721f96,0x1f971f88,0x24d3076d,0x75d076c,0x24e924e8,0x18231820,0x24de0842,0x1f9b1f99,0x256418aa,0x18aa11fe,0x25640e25,0x18ab2564,0x44b11fe,0x21a021a1,0x22f30592,0x53f1d60,0x21352104,0x228b03e4,0x16fd1afd,0x230516fe,0x1b09198e,0x1d321b01,0x1d3a22d3,0x13218b8,0x84e0e11,0x1601100c,0x27a61311,0x13101310,0x12e00995,0xdf000df,0x237d11bf,0x1e052394,0x231f05ba,0x237d05af,0x61b2381,0x622270a,0xcec1df8,0xcde0cdd,0xf750f67,0x280f019f,0x281b281c,0x23ca1946,0x23e423c1,0x196f0666,0x141328af,0x264d2790,0x6f82448,0x26712483,0x73b266c,0x1fd924c9,0x244e262f,0x244e2636,0x263606e5,0x26770729,0x2485248e,0x266f0718,0x24cb1fc9,0x6ac24cc,0x25ed2407,0x8b708b6,0x240b08b4,0x240c25fd,0x10a710a9,0x165d1664,0x87a0879,0x166408b4,0xe47109d,0x351035c,0x34c0e61,0x1671036b,0x10b210af,0x97012dc,0x46312d8,0x21cb0461,0x1d02031a,0x296625ae,0x18d52965,0x4f703f7,0xdc0223f,0x183200b3,0x15da15ee,0x1f4c0e93,0x1f4b1f49,0x185e0dde,0x26f20de3,0x26fa26ed,0xf4001ef,0xb260f3f,0x132527c0,0x44521a8,0xaa821ae,0x142b1424,0x117a118b,0x14a50bd8,0x14ac14bc,0x1ca51ca8,0x17f31ca4,0x17f2081c,0x147e28bf,0xf07147f,0xf020f03,0xf030f04,0xce70f0f,0xce10f0d,0x17b407d3,0xf0f1f03,0xf040f05,0xce70cf0,0x18bd0ce6,0x11e0e2e,0x1790f5f,0xe4018b,0x187c0dec,0x16c0060f,0x248c2377,0x6ac2418,0x25420dfe,0x100c2541,0x10131012,0x7030701,0x7040704,0x2640263f,0x26400704,0x7012656,0x26560704,0x168410ce,0x1684087b,0x87b162a,0x128a1289,0x2950925,0x29420ad,0x20ab0294,0x1eb70295,0x12371eb2,0x69d25ef,0x253d2488,0x11ca00f0,0xfd80fda,0x10c30fd6,0x167b08cf,0x1d6d05a7,0x2231704,0xfca1c01,0x1d601e0,0x1c0a0fae,0x2350236,0x4891a5b,0x1bb40488,0x1e10faf,0x1e03061a,0x13c4237e,0x28572858,0x41a0533,0x2a492173,0xd942a6f,0xa12a01,0x1cf82088,0x1cf9258e,0x99927b0,0x1222278a,0x121e1ec2,0xf9e01b5,0x1f360f9d,0x17ea1f33,0x1f330819,0x71f17ef,0x24132615,0x20692067,0x292d0d88,0x290314af,0x1ef917ae,0x277a17ad,0xa8e277b,0x988143b,0x12f928d1,0x27710a82,0x2966294d,0xae018d3,0x278928e5,0x291a0b14,0x26020b12,0x6b2240a,0xf520f6c,0x12b0f53,0x18b70109,0x7961ec4,0xdfe1227,0xdfd2541,0x72a248e,0x267d0729,0x2491267b,0x19eb223a,0xd3a04eb,0x302a12,0x630062,0x20430d5d,0xd780060,0xdb000a5,0x1b208a,0x20cf3,0x20760d82,0x24242a7c,0x261306bb,0x1027160b,0x1c7c1610,0x29f20ca,0x78e1eb6,0x16101ebb,0x160c1609,0x29921163,0x1d541164,0x22ec16eb,0xec502cb,0x18541cba,0x185111a0,0x254f0109,0xe240e12,0x11fb2563,0x1d1e25b3,0x83c1d1d,0x1f6f1f74,0x227c227d,0x25a1049c,0x25981cfc,0x15c915e6,0x3e50c9e,0x214403f4,0xdfa1886,0x16030df9,0x86c1613,0x21bf0469,0x265b21bd,0x6e82477,0x245006e8,0x2588265b,0x1ce2033e,0x3c01aff,0x1e0c1b08,0xc8915b6,0x1d110327,0x1084032e,0x890089a,0x16f0058e,0x22281d58,0x19ec19e7,0x14ce29e3,0x8f920fd,0x8fb10ef,0xa7f28a2,0x2a8b28a3,0x2a450091,0x782122d,0x16080785,0x8591609,0x1eb81eb9,0x1608123a,0x8580859,0x18a20e0e,0x7a518a5,0x8001782,0x3051cee,0x2a7f1ce4,0x2a7d0d9b,0x106d162f,0x18f51634,0xb740b7b,0x1aec052b,0x9742270,0x12ec12eb,0x2a2c0074,0xbbe0073,0x29ab1188,0x2a1e0071,0x289f0074,0xa7d0a7c,0x28a813f6,0x1d13ea,0x20140d15,0x275912c5,0xe262756,0x18ad18b0,0x28c51438,0x13ff28c4,0x289013fe,0xb070b12,0x22771490,0x1a6a04a0,0x10931654,0x12131655,0xe3d18b6,0x257618bc,0x1ebf0e3d,0x1ec31247,0x14f6158c,0x584158b,0x16df0583,0x272b1294,0x1612272e,0x85f1019,0xe6a0e5d,0x12e0372,0x12d2575,0xe2011ee,0x9ce0e1f,0x9cf27f5,0x13601372,0x28171373,0x9f809f9,0x13bd283a,0x1378283b,0x282509fa,0x287713df,0xd4b13de,0xd5d2a62,0x3ab2707,0x1de426eb,0x1de2056d,0xa9b1482,0x1753141e,0x2360235f,0x14872900,0x202f2917,0x20420062,0x148d0b32,0xadf0aeb,0x145a1462,0x616061b,0x2ea1def,0x1cd31cd4,0x1e751572,0x282a0c50,0x282c0b45,0x211d212d,0x14f5211b,0xc540c57,0x1e7f0c6c,0x15320c6e,0x154c1e3e,0x150c1527,0x15390c23,0x15551558,0x11be11bb,0x6c11c0,0x6d002c,0xf750f74,0x12661b6c,0x12670c62,0x14e50c62,0x14e21267,0x1e881266,0x15901591,0x81b0c5e,0x1f3c1f39,0x26182614,0x11f62615,0x18a62551,0xc931148,0x4100e8a,0x3fb03ff,0xc921147,0x191b0c91,0xea60cd0,0x28f509b7,0x15e228f4,0xe8d0e99,0x24020693,0x164125e0,0x1644107d,0x1a4f045b,0xea31a50,0xcce192e,0x59016e6,0x21e51d5b,0x49421e2,0x2447262b,0x42e06f9,0x1a151a16,0x6f4245e,0x24482461,0x6f82461,0x8f416a2,0x1a3b1629,0x4651a3d,0x2233197b,0x22291975,0x4042162,0x2143045c,0x465213f,0x198f2118,0x21ad1a41,0x2a28046e,0x522a54,0x1a301a4e,0x240921cf,0x25f42664,0xcfa2029,0x219f0d43,0x21961a1e,0x21991a21,0xa7a1a1f,0x14061408,0x1a9b04b8,0x16742220,0x10a608be,0x23fc23fe,0x1075068c,0x88b0881,0xa6913f2,0x19613f3,0x1b6a1b75,0x4ba19b3,0x3cb220f,0x21f81a6c,0x22071986,0x197f2202,0x22042200,0x1a882117,0x2223220e,0x4cb03f9,0x58616e1,0x16b822ef,0x903090e,0x70623ed,0x2107246e,0x3e10545,0x1c060ffc,0x107c0231,0x16461647,0x1b48016f,0x16330f4a,0x106e1071,0x223b04e6,0x22481ab7,0x423217d,0x526226c,0x4d5226d,0x21802182,0x52503dd,0x5252266,0x1ae803e6,0x503225b,0x1b011ac7,0x198e211f,0x2274052b,0x27a12272,0x9922797,0x9fb09f4,0x1a421382,0x19aa197d,0x3de22a0,0x164e03d6,0x1089164b,0x114e1152,0xba1160,0x24f3182c,0x102e102f,0x1ede1038,0x7aa1edb,0x8881632,0x212a0886,0x215004ed,0x8850886,0x23741632,0x16dc22e1,0x947273f,0x536092c,0x1af62280,0x1dd11dd0,0x83c1dcd,0x1f72083b,0x12cb096a,0x144c0968,0xaae28df,0x12c50968,0x81112c6,0x17f00818,0x5d105db,0x27a01dae,0x27a8130f,0x131127a8,0x11631310,0x29970ba3,0x57c1d48,0x963058c,0x9652753,0x12ff288e,0x16c9278b,0x1d3c1dde,0x1c9020d5,0x6a802ac,0x240f06a4,0x5821d4f,0x249522eb,0x2499072d,0x1ec81ecb,0x2823079c,0x138a281a,0x6a806ad,0x33d2414,0x1d1b1d1a,0x5b805bb,0x5b405b9,0x1d7e05b9,0x5b805b9,0x1e291d7e,0x1e2a0c05,0x1711231c,0x231b1710,0x17101d7e,0x231b1d7b,0x231c1710,0x231d170f,0x1d7c1711,0x5c01710,0x1d8605c1,0x232605c0,0x11ef1715,0x18a6011a,0x112b15cb,0x232f15cc,0x1d9a05c8,0x16bf1d2c,0x16d722bf,0x58116d6,0x57416cd,0x1d6c0573,0x230c05a7,0x5b0231e,0x5cd05b6,0x5af1d9a,0x17261d7f,0x233f1727,0x234005de,0x5e322fe,0x16d02300,0x57b1de5,0x5701de0,0x1de322d7,0x56e1d3d,0x23461da4,0x17291da3,0x172c172e,0x23492300,0x85c05a0,0x103b1048,0x87e10fa,0x18f110f9,0xb891902,0x259c259a,0x18001cf8,0x82217ff,0x16cb175e,0xbcf1de5,0x29a60bb6,0x22c01d34,0xbeb16c0,0x29cf29d0,0x105429cf,0x104d1052,0x104e104c,0x179307ad,0xbe31794,0xbe129c6,0x29c529c6,0xbe10be1,0x29c30be0,0x29c8104a,0xbe60be1,0xbe429ce,0xbeb0bea,0x17940be1,0x17971796,0x16c116c0,0x1f6b1d34,0x1f6f1f6a,0x1ee3178f,0x25d11ee0,0x2461245e,0x1ee41791,0x17921792,0x17911ee3,0x2440246d,0x181a06d3,0x1ed9083f,0x1b6d0188,0x237a1b5e,0x1e04238b,0x129a0a69,0x17470a6a,0x5fd05fb,0x1c6f20b2,0x1aab20ac,0x4092230,0x24802664,0x4ce2481,0x19d819e6,0xe0c2561,0x250a18a9,0x11991197,0x251b186d,0x1ee11864,0x1ee31ee4,0x80107ff,0x17e417df,0x8061f21,0x134027cb,0x272c27db,0x9371294,0x2277052f,0x2488052e,0x266f2486,0x117c29af,0x29af0bc3,0x117f0bdc,0x16e60589,0x22e81d50,0x1d550585,0x17931ee5,0x17c31ee2,0x7e707e3,0x1ca11cac,0x17c31ca2,0x17c417c6,0xe310108,0x10fc256b,0x9050904,0x12082570,0xf6c1207,0x19c1b1e,0x18ac256b,0x45018b5,0x1a2721ca,0xdf0de1,0x265b11b3,0x244f06e8,0x9760b39,0x23ef14b7,0x240325e0,0x18c70b7c,0x4522954,0x21d31a52,0x254400f8,0xfb90de8,0x1bc301e6,0x10290861,0x1b551610,0x1b630176,0x17d307f5,0x1d5c1f1a,0x1d5522ed,0x58b1d57,0x66816e5,0x23db23de,0x64f23c0,0xcb71952,0xcd00cd2,0xc2d1e50,0x215f1100,0x3f7215e,0x25eb068f,0x21a52406,0x1a131a04,0x3ec1af2,0x19942149,0x4aa04ab,0x21f5212f,0x4bc04a8,0x1a792218,0x1ac804e3,0x19890502,0x198b0418,0x214b1af2,0x229a03b4,0x1b0a229c,0x1b6c0f74,0x5411b6a,0x5421991,0x2a04006b,0x2a312a2a,0xd7e0029,0x16ee16ec,0x21761d49,0x41e2132,0x213221e4,0x1cb821e3,0x2d80ec9,0x1f5f1f60,0xce21f63,0xce40f04,0xef70ce0,0xce00ce2,0xef70cdd,0xf010efa,0xce20f02,0xf030efb,0xefa0efb,0xcde0f02,0xcdf0ef8,0xcdf0cdd,0x23b60ef8,0x63e195c,0xf030f02,0xf430efb,0x1691b47,0x65323ac,0x1e623cc,0x1e81bc0,0xfbd1bc0,0x193a01e8,0x195e065a,0x1370154,0x1e20155,0xfb81b36,0x25680128,0x25571204,0x188b2555,0x16e416e3,0x1641d5c,0xf420f3c,0x1891b54,0x26c40f5a,0x26cc027e,0x2a61c7b,0x20db029e,0x2a920d0,0xec902c6,0x6b71cb8,0x2423260c,0x7160715,0x7262482,0x72e2679,0x7140719,0x118a0718,0x1195118d,0x246d2440,0x22d90707,0x16cf0576,0x22c71d3a,0x245b22c2,0x6f52648,0x14cc13a5,0xba9104b,0x29ae0bc2,0x12b3143f,0x58512fe,0x22ec16df,0x1c931c8e,0x22fd20d6,0x173e05e8,0x2660247c,0x2475265d,0x70d265f,0x70b246f,0x24982471,0x267d2491,0x243a2472,0xfc106cf,0x1ed0fc2,0x26f426fc,0x2006039e,0xd201fe3,0x1a4e045b,0x57221d0,0x57422d8,0x25681204,0x20412569,0xd5d0063,0xd5c0063,0x620d5d,0x632a61,0x632042,0x81d2041,0x7a01784,0x8201f45,0x22e817f4,0x16e10586,0x6600639,0x116623da,0xb9f1165,0x471197d,0x79c214c,0x799079b,0x16021012,0x441013,0xd470043,0x1e4d1514,0x151b152d,0x152d0c2b,0xc191546,0x152a1e3a,0x15170c05,0x1e6b1564,0xc37111a,0x1e5b0c45,0x111b1112,0x138b110e,0xa10138c,0x15731115,0x1e751e74,0x15731572,0x15800c50,0x1171572,0x250511f5,0x11811f5,0x7141196,0x2667247d,0x26a21c32,0x1a591c34,0x48c1a5a,0x80807ff,0x14970801,0x13140b14,0x8151f3e,0x1f371f37,0x1f3e1f3b,0x152e1e42,0xc1414fc,0xc181543,0x1e5a1109,0x155d0c34,0x1e50155c,0x1e5b1111,0xc311e5c,0x15621e5b,0x1e4f0c2c,0xc2c1100,0x1117156e,0x1103155f,0x1577155c,0x155f1103,0x1e5a1569,0x242c110d,0x267c261b,0x1cf20302,0x15b92591,0x112715ba,0x6a7069f,0x14752411,0xaea1474,0x18170834,0x15e21f71,0x15e615c9,0xedf1ccc,0x29241cd3,0x14a10af9,0xbb129b2,0x24490bb2,0x244c244b,0x1fe70d00,0x5f829fc,0x1dcf0603,0xb0d01,0x91fea,0x1fe01fdf,0x30cf5,0x29fb0001,0xcfe0cff,0x40cf4,0xf710cf6,0xf720f6d,0x20270d45,0x20262a4d,0x412a4d,0x16d2175d,0xd4622dd,0x402a4e,0x420d6a,0xd660d46,0x204a0d65,0x1eea1ee9,0xcaa07b4,0xc9c113d,0x201f0004,0x700d39,0x740071,0x25a00fa8,0x20680315,0x242006,0xd7f2a55,0x17ad205d,0x17af17ab,0x20360058,0x10e12071,0x8ec16a5,0x208c00a0,0x208c208e,0x2a9b2a90,0xdb10d9d,0x208f207e,0xdb12090,0x20800d81,0x179c0084,0x7b5179f,0x1cfa2597,0x182c1b9c,0xdbc0dbd,0x9f7283f,0x7a81386,0x7a71ee8,0xdcc24fe,0x1f770dcd,0x1f761f7a,0x230d58,0x1fb5203d,0x74424b8,0x188500f1,0x1a511cb,0xf8d0f89,0x12c112bc,0x94812be,0x1285271c,0x2753095d,0x2884274f,0x13ef0a64,0x1a5121d6,0x180721de,0x8201785,0x8b11099,0x27a11657,0x9922797,0x1608101d,0x16ca1605,0x175d22d5,0x8e308e1,0x122f1694,0x7871233,0x226a2253,0x10210508,0x101e1607,0x111b0c32,0x147c0c40,0xa9c28bb,0x25660e2a,0x18ae18b0,0x256c1201,0x12918b6,0xf2c256c,0x1530f2d,0x12f1215,0x84418bf,0x181d1f75,0x291c2910,0x16fd291d,0x1d5122eb,0x11a200d4,0x26f3185a,0x396039a,0x109f10a0,0x16ef10a1,0x16ed22ec,0xfa2546,0x251c1850,0xdff0ddf,0x1222565,0x10e50124,0x8ee10e6,0x993130b,0x10a7095e,0x16641663,0x18bc2576,0x25772577,0x12d2575,0x135d1355,0x103b09d0,0x8731622,0x16220877,0x8060878,0x8051f2c,0x26570702,0x14932467,0x14940b0c,0x17771767,0xe722aa,0x18770df2,0x7c81f73,0x25707cd,0x1c3326a3,0x3440345,0x9560e3f,0x95512b8,0x277c12f2,0x1b032930,0x19a4211d,0x1b0219a4,0x31d1b03,0x1d0525a0,0xceb0cea,0x1a030f07,0x21792170,0x1a50045b,0x19ff047d,0x4410443,0x78d078c,0x26141242,0x6be2425,0x19c9227b,0x21192148,0x229c1b0a,0x1b02228a,0x22bd053d,0x1d2b0561,0x228d19ae,0x210e2107,0x21031afe,0x5fa174b,0xad0174a,0x28dd28de,0x177222a7,0x143222a5,0x14361419,0x231a05b3,0x1c831d79,0x2aa1c8b,0x17201d76,0x234f1721,0x1db905e8,0x1f9d190c,0x6191e13,0x61c1df7,0x1dce1749,0x23761756,0x16ca1d40,0x1ac61ac3,0x5020500,0x5031ac7,0x1ac21ac4,0x4ff04fe,0x4fd1ac2,0x1ac51ac4,0x224c224c,0x1ac81ac7,0x59622f0,0x45f22f1,0x214f03ed,0x81a1f3b,0x194e0819,0x23d7196b,0x6511932,0x24400650,0x243e2441,0x29aa0bbe,0x6d10bbf,0x6d206d3,0x6d1243a,0x20a506d2,0x20b020b4,0x24132431,0x6cc06cb,0x6cd06ce,0x12a412d4,0x6c82761,0x6af06c7,0x6af06c8,0x2625241d,0x6c32436,0x2681c3d,0x20a41c45,0x1c69209e,0x1da205d1,0x2623233b,0x260d2420,0x6af06c5,0x129106c7,0x12c00931,0x6cd2435,0x71a06ce,0x2484266e,0x261b265d,0x6ed242c,0x6ea2452,0x70f2474,0x6e00710,0x6d82448,0x24592445,0x24792442,0x70f0710,0x24192415,0x7342603,0x24be1fd5,0x6a52415,0x1afd25ff,0x3e419c8,0x796079a,0x12f20794,0x14b014b3,0x1f491f47,0x25c61f4a,0x6dc0675,0x395039b,0x92626f1,0x9270928,0x3500e65,0x3670e58,0xe5e0361,0x7aa178e,0x41edf,0x201c0d39,0x1d831da6,0x763172a,0x1f891f98,0x27ef27f5,0x18c427ee,0xb80297d,0x24ce0768,0x1f7c0769,0x7510765,0x1bc901ee,0x219d1b33,0x1a1a2191,0xc200c1,0xdcf00c3,0xc400c3,0x18341837,0x25011836,0x184400bf,0x24f7183d,0x183824f5,0x182624f1,0x184f250c,0x1198119b,0x185100ca,0x184f2509,0x119c250c,0x119d1850,0x25080dd4,0x119a00cc,0x250a00c9,0x184900c0,0x11b01848,0x252211b1,0x185c2515,0xd62516,0x251511a5,0xde12519,0x11a62520,0xd82518,0xd72517,0x185f00d9,0x251a00d9,0x251a1861,0x18631862,0x18621861,0x18682521,0x11ac11af,0x251800d8,0x11ac0deb,0x32d2523,0x3261d09,0x1f90fd4,0x18930fd3,0xe110e0f,0x10111d7,0x11d7254e,0xe070e09,0x254f0e10,0x11d70e0f,0x100254e,0x254c11d7,0x254c0e05,0xe0511dc,0x10311dc,0x11df0e05,0x1070e0b,0x1050e06,0x11d80102,0x10011d7,0x1090e12,0x11df254f,0x254f0e12,0x2552010a,0xe142554,0xe182553,0xe18010a,0xe132553,0xe1511e0,0x10c0e15,0x11e111e1,0xe170e16,0xe132554,0x91211e1,0x9200935,0x188b00ff,0x188b00fe,0x11e32555,0xe0a188f,0x11d31890,0xfd254b,0x18890e01,0xfc00fc,0xe01254a,0x11d4188a,0x188900fc,0xfe00fd,0x18901896,0x11e20e0a,0x18941895,0x1b531b55,0x11e70f54,0x10e11f9,0x17ab17af,0x9107c9,0xd912070,0x10ee16a6,0x10ee10f0,0x10f010f1,0x6d506c8,0x10e02631,0x16951693,0x15fc1602,0x13115fe,0x120d012c,0x145d098b,0xd9528e6,0x8c0d97,0x134327d2,0xd971342,0x8c0d91,0x2a5a2019,0x1aaa0d2f,0x40b19f0,0x11421132,0x1b971144,0x1de01df,0x114a15d7,0xca6114b,0xe890ca5,0x1931114b,0x5af15c8,0x1d9b05ad,0x65723b3,0x114023cf,0x15ba15b9,0xcc60e7c,0x15e315c5,0xe9e15ca,0xcbf0cc0,0xcb00cb0,0xcc11922,0x19240cb3,0xcb3191c,0xc8b1926,0xea015c6,0x15b9191c,0x1919191a,0x19210cb8,0x15e015e1,0x191e0cd1,0xcca1912,0x223a0cbe,0x19a603b7,0xaf1832,0x191d0db7,0xea715c2,0x69423f6,0xe9823f9,0x15f10c97,0x28930a70,0x7ce1400,0x7cb07cd,0x26bf0279,0x2d20270,0x1cbd1cc7,0x1cc302d3,0x25a20ecb,0x1cff25a5,0xeb50ef3,0xee20eb3,0x2e71cdd,0x31b0320,0xd191cff,0x20380d51,0xed91cd5,0x20c11cd4,0x20c202a5,0x164e08a0,0xead164c,0x1ce002b5,0x15a1b2a,0x15d0144,0x1b2e015b,0x15c1b2b,0x2037015b,0xd501ff6,0x174505e4,0xf441737,0x1b391b3a,0x1b450f50,0xa670f46,0xa6413ef,0x20b71c7a,0x1b4120b8,0x16a0f4d,0x16e016c,0x1b461b42,0x16d0f4c,0x20002001,0x184d1ffe,0x1851184c,0x2a121ff2,0x1ff31ff7,0x2a111ff5,0xd0f2a14,0x2a140018,0x2a130d10,0xd140d16,0x2a0c0020,0x1ff22a10,0x181ff5,0x2a0c0d0f,0x2a0b0016,0x20082007,0x20072a27,0x270d24,0x20082009,0x272a28,0x2a300028,0x1acf1abe,0xd0d1abf,0x2a0d0016,0x2a110d0d,0x2a1c2a0e,0x2a150d10,0x2a1c0d15,0xe7c0d14,0xcba0ea9,0x16c1b3a,0x25b51b39,0x1d1b0337,0x10111049,0x53c161b,0x213b213d,0x3311d0a,0x1cef032a,0x258d1ced,0x10b410b3,0x1ccd08c3,0x2e002e4,0xa42a99,0x1d040daf,0x1d0325a7,0x21d30481,0x1cee0480,0x3011ce4,0x9362729,0x27281293,0x12932729,0x10d008d6,0x6761682,0x23f423f5,0x1931b5a,0x19691b66,0x65d1947,0x9a827bb,0x247e27bc,0x26652663,0x71b2665,0x2483266d,0x24870719,0x26432647,0x263f245d,0x26402645,0x6e62637,0x6fe06e3,0x70106fd,0x7060708,0x24752659,0x2472265a,0x246b0708,0x6d5246e,0x244a2443,0x5972353,0x245205ed,0x6eb06ea,0x6ed06eb,0x6ef06ef,0x245a06ed,0x245c245a,0x1540245e,0x150f153e,0x6e32632,0x2638244b,0x26392635,0x6e32451,0x7042637,0x24560703,0x10cb087b,0x23651686,0x174b05fa,0x46a0469,0x46b21c2,0x469046c,0x46c21a3,0x6a1044d,0x6a2242b,0x242a242b,0x6a206a2,0x6a106a5,0x26722488,0x6f52487,0x264d06f7,0x25ec068a,0x2696068d,0x24f0250,0xf641b79,0x25e1b6b,0x26b41c46,0x25b1c38,0x1c3426ac,0x26a726ad,0x13d00a34,0x2670a3d,0x26526b1,0x1c361c44,0x2611c3d,0x1c3a1c42,0x26b226bc,0x9326b3,0xd9d00a5,0x1c431c3b,0x2570266,0x1c351c37,0x260025b,0x20d526ac,0x2ac1c90,0x27926cb,0x264a1c55,0x264b2445,0x1ec61ec7,0xf8e1ec5,0xf8c01b1,0xf831b83,0xf8c1b7d,0xf8e0f82,0x1f601fe,0x1b831bd8,0x1b8901a6,0x1b840f83,0x1b8d0f8f,0x1aa1b86,0x1b8a0f81,0x1aa1b8d,0x1b8501a9,0x1b851b88,0x1ab01a9,0x1b8c0f89,0x1ab1b87,0x1b901b8c,0x1ad0f8a,0x1b801b91,0x1b9001ae,0x1ad0f8a,0x1a81b8b,0x1750f87,0x1740f55,0x1a71b8e,0xf870f8b,0xf861b82,0xf8e0f8f,0x1ac0f82,0x1b8e1b7f,0xf840f8b,0x1b810f88,0x1b801b82,0xf8a0f89,0x1950f8d,0x1b21b7c,0x1b8601b1,0x1b8a1b8a,0x1b10f8c,0x126256d,0x1b940e29,0x1b911b81,0x179e1ed6,0x1b851eee,0x1aa0f80,0x1b8701a5,0xf7f1b8c,0x1ae1b90,0xf9f0f9d,0x1ba101c5,0x1c602c8,0x1c61ba1,0xfbb1ba3,0x1bbf01e9,0xfaf1bb5,0x1b971bb4,0x1dd01de,0xad728e2,0x1bd31451,0xfd201f5,0x1f30fc9,0x1be601f2,0x1be11bdf,0xfd10fce,0xfc91bd7,0x1f31bd5,0x1bd91bd3,0xfce1bd8,0xfd01bd7,0x1fd1be5,0xfd901f9,0x1fc1bdc,0x1be31be6,0xfda1be4,0xfd80200,0x1bde0202,0x20201fb,0x1bdf1bdd,0x1bdb1bd1,0x1beb1bda,0x2090fdd,0x1cb802dc,0x21102d8,0xff10221,0x1dc31dc5,0x20c1dcc,0xfde1bed,0xa2413bf,0x21d13be,0xfc00fe6,0x1e5a1109,0x1a50c34,0xf800f76,0xfd501f8,0x2170201,0x21c021d,0x786122f,0x20f1232,0xfef0ff0,0x220020f,0xed00ff0,0x2df1cc0,0x21e0fc0,0x21d0fc4,0x1bcd0fc0,0xff51c02,0xfdf0228,0x22a0212,0x23d323bf,0x5a51968,0x5a4230b,0x1f971f89,0x193e1f88,0x63823d0,0x1bb51bbe,0x1b2a1c0b,0x1b291b2d,0x1c171003,0x163a0241,0x16470897,0x18c1b61,0x20bf0f5e,0x29b0297,0x14f0158,0x37b0f1e,0x37926d3,0x382038e,0xfe926db,0xfbf0218,0x23931e23,0x11c2710,0x189e189d,0x1baa0f6a,0x1480fad,0x19c0f6f,0x11880bd3,0xd2c0bcd,0x205c007f,0x12690c64,0x29b71e8b,0x118e1191,0xbcd1184,0xbd31188,0x29b729b6,0x29be0bde,0xbc90bda,0x11821181,0xbc90bc8,0x129929b1,0xa630a64,0x1b16013b,0x1192013d,0x11941182,0x1d4c060b,0xbd12374,0xbd40bd5,0x11850bce,0x29b41186,0x11851186,0xbcf0bcc,0x11750bd9,0xbb51176,0x11930bdd,0xbc729bf,0xbc5117f,0x118c1193,0x118729bd,0x29b329b5,0x2a2a2a20,0xbd40d21,0xbd10bcf,0x118029b5,0x1b2b29b3,0x1570156,0x248e2676,0x10ee2677,0x16a808fc,0x295a0b55,0x3d10b5a,0x198c228b,0x87f106b,0x7c70880,0x7c207c4,0x2552189f,0x1184010a,0x29a929aa,0x7841eae,0x10441eaf,0x10431045,0x17911ee0,0x11cc1ee3,0x253b11cb,0x258f2589,0x90f030b,0x92b2715,0x10e21697,0x11e5169d,0x189211e9,0x10e508e8,0x20a5169a,0x20a10290,0x28982899,0x28990a74,0x28980a78,0x26960251,0x269c024f,0x26950211,0x27b4099d,0x27c0099c,0x27bf09aa,0x9c309a9,0x133f27d8,0x27da09b5,0x890d8d,0x2812008a,0x281e281f,0x6d12472,0x138b243a,0xa0e0a10,0x138b138a,0x13870a0e,0x13a71388,0x13a709f8,0x21651388,0x19ed0407,0x25a825a7,0xa090326,0x139c283d,0x138e2826,0x28222837,0x13980a03,0xa04139b,0x2832139a,0x13841395,0x14e614e8,0xa040c65,0x139e2836,0x22532255,0x9a72231,0x9fc09fb,0x139609fc,0x283909a7,0x283813a0,0x28380a0b,0x24a13a0,0x24b269a,0xa240a2b,0x13bf0a2a,0xa232856,0xa290a28,0x1bc013c2,0x1e501e6,0x2847282d,0xa26282f,0xa252856,0x13c10a2a,0x13c40a2b,0x28580a2d,0xa3413bb,0xa380a33,0xa39285c,0xa38285a,0x28632863,0x285a0a2f,0x13c713cd,0x13c713cc,0x13cc13ca,0xa2d2864,0xa3b13c6,0x28582857,0x28642858,0xa350a3b,0x13d013ce,0x13ce0a3f,0xa2c2869,0x13c513ce,0xa2e13ca,0x28622862,0x13cb0a2f,0x28570a36,0x28692860,0xa3b2860,0xa4313b9,0x13d313d5,0x13d40a21,0x13d8284f,0xa2613d7,0x13c62859,0xa46287a,0x28792872,0x287a2715,0x13d213dd,0xa5113df,0xa4f287d,0x187f0df6,0x1c372539,0x1c3526aa,0xa631409,0x28eb0a64,0x28c30aa7,0x24642628,0x26b72433,0x25f025d,0x26b026a7,0xac50254,0xac328d6,0x234c1db6,0xac71dbe,0x144428da,0xad2276f,0x118c0ace,0x29bd29c0,0xe3c0e2e,0x28ec256a,0xaef0aee,0x14650adc,0x17301457,0x17311700,0x28e928e6,0x132b28e7,0x132d1472,0x1c4226bd,0x25810266,0x25bb02fe,0x26a20214,0xa0b024c,0x28381377,0x29272926,0x26c60b29,0x1c52026f,0x295018cf,0x9ba2952,0x27ec27ed,0x13a114cf,0x14ca0a11,0x283e13a6,0x13a214d4,0x18f00a09,0x29731903,0xb5118fc,0xb8e0b4a,0xb4c18c8,0x29820b4b,0x6892956,0x68a25f1,0x11501163,0x29872991,0x114d116a,0xbe10bf1,0xb97105e,0x298e0bd9,0x4af21f4,0xbd91a79,0x298e29bb,0x20eb29f4,0xbce20fe,0xbb629a4,0x24ee0762,0x29cf0763,0x29d429d0,0x10580be9,0x20fd29d6,0x20e914ce,0x20ef0bfd,0x20e729e7,0x29f229e2,0x104d1061,0x1ddb104e,0x1dc90606,0x15d6114a,0x26bd0e7e,0x26d1c43,0x20ce1c81,0x1ba002a8,0x1c21ba1,0xf8801af,0xf7f1b8b,0x1a81b82,0x1abb19dc,0xf7f223d,0x1b8001ae,0xf810f80,0x1be51b8d,0x1ff01fe,0x1e25061a,0x1be7237c,0x20101f8,0x1e261df9,0xfeb237f,0x2141bf9,0x21c0217,0x1de6021b,0x1e21237a,0x1e03237c,0x1dfb1e24,0x1e031e24,0x2320ffb,0x20b11c08,0x20bc1c78,0xda72a94,0x952083,0x94207a,0x20862a97,0xda12087,0xda00096,0x20790da0,0x26640da1,0x2480247f,0x1bd20204,0x1ba60203,0x1ba801c4,0x116d116c,0x2431173,0x1b420f4e,0xfdd020a,0x4d41be9,0x4d61ab9,0x277528b1,0xeb1097b,0xeb20eed,0x165708ae,0x88408ac,0x1070106f,0x1c5026cd,0xbee027a,0x29cd0be7,0xbea0be9,0x104d29d1,0x104e104c,0xbe429ce,0x29c80be6,0x104b29ca,0x29c9104b,0xbe70be4,0x105229d1,0x2f802f3,0x2a5f02f2,0x2a7d0082,0x10de168e,0x108f10dd,0x8a3108c,0x8110818,0x164d17e9,0x164c08a1,0x1f5c180e,0x180e1f5a,0x1f601f5f,0xb9b298c,0x1efd1151,0x1eff17b9,0x1efd1efc,0x112017b9,0x11211569,0xc4f1e60,0x1e5d157d,0x157d1e60,0x10b9166b,0x8c708bf,0x8d2167e,0x10e408b6,0xe7a10e3,0xc910c8f,0x16b110fa,0x16371091,0x8940881,0x87e1640,0x8dc0893,0x166c166b,0xe8a1138,0x78d1133,0x78b123d,0xc8a0e87,0x1165192a,0x2993298f,0xbaa299f,0x29890bac,0xb9629bc,0xb8918f2,0x118e0b8a,0x29ad29ac,0x29ab29b7,0x22291188,0x1aa32160,0xd4a2031,0xfa1203e,0x1cb502ce,0x16b316b4,0x16b416b5,0x10fd0907,0x12131215,0x7cc0e3d,0x17af07cf,0xd5e2a63,0x2a690d5f,0x20452044,0x2a652045,0x20610048,0x20620086,0x204b203b,0x20252a6a,0xd900d8f,0x2a9b2082,0x20492a90,0x2a7a2046,0xd360da2,0x840d35,0x2a7f009c,0xd770078,0x202f007a,0x622a61,0x20a30294,0x29420ab,0x29101af,0x11f22506,0x25b72507,0x2f72583,0x20b60298,0x28b420a9,0x14270aac,0x208a00aa,0x17f400a9,0x827081f,0x1c731c79,0x29b20af,0x29c1c73,0x146f1333,0x1c8727d0,0x2a520c2,0x2a302a8,0x1c6920ce,0x20ac20ad,0x1c6f20ac,0x12d720a4,0x97012d6,0x1c6b1c70,0x20c01b94,0x2a420cc,0x9a7281b,0x55027b7,0x176a22ab,0x2c81cba,0x103f1cb6,0x10451621,0x101a103e,0xd440855,0x2a832a4c,0x11d22548,0x2642549,0x1c43026d,0x214a03fe,0x252903b9,0x1872252c,0x18690ddd,0xf4f00d7,0x1710f51,0x10800897,0x1eb61083,0x78e1eba,0x67423f5,0x251d25d4,0x1867251e,0x251f0de0,0x2512251e,0x18601866,0x18662513,0x11ae2512,0x251f00db,0xee30ee8,0x10d1cd7,0x189211e4,0x210f1985,0x26b22238,0x1c3f026e,0x27cd27ce,0x259e27dc,0x259b0317,0x9231298,0x1f531287,0x18081f5c,0x9391298,0x8a1296,0x20660d44,0x1b57014c,0x1cf0f56,0x317259b,0x1c6a0290,0xa7520a2,0x289413fe,0x16481646,0x1f39164a,0x81b1f33,0x181c0841,0x2f51f7a,0x1d24033c,0x1d120323,0x3291d08,0x32f1d14,0x77a1e9d,0x1e9d1e9c,0x77d1224,0x12211224,0x11ba077d,0x25262525,0xdf511c8,0xe800e8,0x186f00e1,0x277a1416,0x301277b,0x30c1cf1,0x81017e9,0x122d080f,0x785122a,0x1fdd0d9f,0x17890d9e,0x1ee807a7,0x26d526d7,0x90e037c,0x16b50907,0x243a06cf,0x48a2438,0x21db1a59,0x28a328a2,0x122328a6,0x1eca1ea5,0x276712e5,0x13142769,0x27670998,0x9ae1345,0x1cb41346,0x2c702cf,0x1fe8009d,0x81e29fb,0x7a11ed2,0x17ca07eb,0x1ec007ec,0x1222121e,0xe800e7b,0x9540cc3,0x274b274a,0x22ec16ed,0x164e16eb,0x108e108a,0x81217e9,0x98417f2,0xa6d2888,0x18e718d9,0x26452961,0x26430704,0x1b41b59,0x11ca0191,0x253b00ee,0x26502645,0x9790675,0x97812e9,0x12e90b37,0x255c2931,0x18980103,0x67d0706,0x67c067c,0x2657067a,0x4a11a6a,0x10d10539,0x8df10d2,0x160d0864,0x22e7102b,0x1d5f0592,0x1022102b,0x6e00863,0x6d706d8,0x102c160e,0x1b0e085e,0x1b0d22a1,0x85e0865,0xe47102c,0x3540e3f,0x93c093e,0x5a3129c,0x230816ff,0xb0f27a5,0x17d22799,0x17d107f7,0x1f1a1f19,0x1a3007a2,0x1a4d047b,0x24c81fce,0x1efb1fdb,0x1ecf17b3,0x96e12d9,0x93912d5,0x12971298,0x93b0a6b,0xfa02731,0x1b101ba7,0x27012709,0x92f2706,0x12902726,0x22bd1d2c,0x27262377,0x12901292,0x27281292,0xf901290,0x1b940f86,0x125e1260,0x1cc9126a,0x1cce1cd1,0x24662655,0x12650700,0xc761268,0xc5e15a2,0x58e158d,0x5891d58,0x3480373,0x25370e40,0x187a1880,0xe811b9,0x12211880,0x77d1e9d,0x18821880,0x8382536,0x1f681815,0x79f1f68,0xe5a0838,0x3720e5d,0xd5a00ab,0x24160db2,0x243d2605,0x2579012e,0x25772576,0x2576012e,0x257718bb,0x4ce2576,0x19e62227,0x1f0e1f14,0x13e707ed,0xa590a58,0x26ef26f9,0x286726f8,0x2866286a,0x287113b4,0x13d1284a,0x286213ca,0x9f12830,0x286a137b,0x286613cf,0x13d90a4c,0x287b2875,0xa4a2874,0x281509da,0x27f31366,0x135727e0,0xa23282b,0x287f13a4,0x287e13e5,0x28692864,0x8cd0a3b,0x10c310ba,0x8c610ba,0x1f6110c3,0x1f621810,0x8dd10dd,0x14e168e,0xf1f1b1f,0xbb029b1,0x3a829a2,0x3a303a2,0x270303a8,0x3a326e8,0x3a82703,0x14431442,0x27170ac2,0x273b0910,0xb140971,0x27721499,0xb210980,0x38126f8,0xb33037f,0x132928ef,0xacf28de,0x77144a,0x2a53202b,0x22e61d52,0x24df16e9,0x7601f87,0x18880dfc,0x68c00f8,0x68a23fc,0x130e1312,0x5770b0f,0x16d416da,0x21482149,0x193919cd,0x63e23b6,0x19ce19cf,0xfec19cc,0x21e0fc4,0x19b019b6,0x196619b5,0x19541953,0x3c2210f,0x3e91991,0x19962130,0x115a0ba3,0x3e72997,0x3e919c6,0x19ac19b8,0x3bd19c7,0x197e197d,0x54c22a6,0x1ad51765,0x5171ad4,0x3d719c1,0x12e22132,0x291f12ef,0x14390ab0,0x293e0acf,0xa510a5e,0x27b91467,0x102627b5,0x860085a,0x14a60b27,0x156814a2,0x157c0c4e,0xc1d1538,0xbe31536,0x105f29de,0x19e11aa3,0xc9a1aa5,0x15c10ca9,0x14060a7e,0x8e21408,0x169108e3,0x15d10e76,0x77c0e85,0x1ea2121a,0x15661571,0x7061e70,0x67d246e,0xd1fee,0x24de29f8,0x1f8924dd,0x47f048a,0x4820482,0x48a048b,0x1a5221d3,0x21990480,0x1a1f2198,0x28f62900,0x10441481,0x16261043,0x1a501a55,0x1a211a4f,0x21990446,0x48d1a56,0x21cf21de,0x1a57047c,0x48f1a4b,0x21de1a5c,0x483048b,0x4840479,0x1a3621d8,0x21b7044d,0x121418be,0xe6c120c,0x35f0e5e,0x21660420,0x63d0421,0x19391950,0x4110412,0x26310529,0x263206e3,0x58922ea,0x20251d51,0xd8f29fe,0x7ae07b1,0x11a41ee8,0xdda0ddb,0x1eef1ef7,0x12c907c3,0x12cd12ca,0x1090108e,0x2a58108c,0x520d27,0x10861090,0x3c508a3,0x19ca048c,0x15af0c81,0x21a30c7f,0x21bd1a3e,0x174f174d,0x4481750,0x1a251a1e,0x1a2c2190,0x4900455,0x44f21a8,0x21ee21e1,0x49f04a6,0x1a670530,0x49f049c,0x21ed1a67,0x227b052f,0xe111892,0x49c0e0c,0x49a1a67,0x1a6b21f0,0x21f01a64,0x1a630498,0x1a601a65,0x7dd2101,0x1f0a07e0,0x17de1f24,0x212f079e,0x21f604a9,0x3cb04ab,0x19941a73,0x4a921f7,0x4b21a71,0x240d04b0,0x69f2408,0xd021fed,0x1a8c0d04,0x1a9f2222,0x21f521fe,0x21f604b1,0x21f504b1,0x21fb21f6,0x168c04ad,0x10d208df,0x4b62202,0x22072201,0x1a7f1a84,0x220a2136,0x27a11a83,0xa8328a9,0x162916a2,0x3e0169a,0x220a220f,0x136c1376,0x2113136a,0x22131a87,0x8331f66,0x1ebd1f65,0x12341238,0x1a0d1a93,0x16ea2183,0x58416e9,0x850161c,0x4cd1010,0x4050406,0xa74273e,0x1b5813ff,0x17f0242,0x14260aba,0x40328c1,0x1a9d1a8f,0x4c503f9,0xb4d04cb,0xb5b0b5a,0x2a3e2a71,0x6f82a72,0x244806f7,0x7bc17a9,0x4df07b9,0x1aae0429,0x1f501f64,0xef1800,0xdf8253b,0x1881253a,0x2453253b,0x263e06d4,0x197504e1,0x21752233,0x21212122,0x3f604f6,0x4fb215f,0x4e71ab5,0x13f80a6a,0x24f6288a,0x182d00b6,0x1f711817,0x257b0834,0xe3d18bc,0x5211979,0x4e7225f,0x4fb04fa,0x22592106,0x1ad80514,0x19780517,0x50c2139,0x1ae02257,0x5071acb,0x5091ae1,0x294b1acb,0xb5e2960,0x1aca0511,0x3e60505,0x2264051d,0x82817fe,0x1a3017fb,0x47c1a4d,0x4a504a4,0xd710498,0x2a60006f,0xca30cca,0x85a0caa,0x8580859,0x1025085a,0x7240860,0x72306b1,0x187400e5,0x1af82524,0x1afb053b,0x1af41afc,0x7a71afb,0x7a91789,0x121c121a,0x29621e9c,0x18d92977,0x131427ac,0x211c2767,0x3bf228f,0x27a12767,0x27a1130e,0x27a3130c,0x27a327a1,0x19c527a2,0x19af1b05,0x11cd253f,0x11d80dfb,0x25590101,0x6c22416,0x8752619,0x16261044,0x12181216,0xf7e0779,0x1a201a1,0x7781e9b,0x121a0777,0x1ea11ea0,0xd67205f,0x12240d68,0x1e9c1e9d,0x45d0453,0x28b821ab,0x28ce28b9,0x24ef24f1,0x1ef40db3,0x1eed17a1,0x1eac122d,0x122e122c,0x122c0782,0x1eb31236,0x12361eb4,0x1eb50786,0x20c120ca,0x25f8029f,0x69c266e,0x96b096c,0x19c212cd,0x229e1b0b,0xc0e1529,0x1ee4150d,0x7ae1794,0x1241123e,0x78c1217,0x78d1ebe,0x101e1020,0x7781606,0x12221237,0x184f2545,0x79611ee,0x1ec41227,0x11b900e1,0x187100e3,0xe211be,0xe311ba,0x252711bb,0xe300e1,0x246c2469,0x793246a,0x1ecd0792,0x29310977,0x17800979,0x177f17a3,0x1f341ed4,0x1ed8079e,0x1ed61ed7,0x1ed507a6,0x1ed21781,0x7a21ed0,0x1f191ed1,0x79d07a0,0x1783177e,0x1786177e,0x177f1ece,0x1780178b,0xd5e0d62,0x1edd0047,0x7a907bb,0x13020ab4,0xcbe0ac6,0xeaa0eab,0x1a520483,0x178621d6,0x17c107e7,0x1f0d17c3,0x10a61f11,0x8bb1665,0x1f61180f,0x12eb1f62,0xb4014c8,0x17cb07ef,0x7dc1f0e,0x17bd1efe,0x7ea17c9,0x92917c6,0x27200927,0x1eed17a3,0x1f4217a1,0x81e1ed2,0x242e261f,0x168d2671,0x10d110ae,0x173f05f0,0x8e41dc1,0x169310d8,0x8e608e4,0xb6410db,0x18df18dd,0x1efb1ef0,0x15ff1ecf,0x15fa0849,0x7e117b5,0x17e217bd,0x17e10804,0x21f00536,0x17b21afa,0x7c807cd,0x10ec1698,0xf08f7,0xd111fde,0x17b31ecf,0x140107c9,0xa762894,0x8c408c2,0x7d41671,0x7df17bf,0x1f0407df,0x11307d4,0xdd32506,0x8c91678,0x90408ca,0x9020905,0x18201f78,0x1820181e,0x181e181f,0x3e001a,0x5950d40,0x16e316e4,0x7d517be,0x17b9079f,0x1f0817b6,0xd7d0d4f,0x1d712a57,0x1d701705,0x17d71f1c,0x7e507fb,0x1f0e07e6,0x18a60119,0xb9011a,0x182924f2,0x2ac20d5,0x7ae1c87,0x17971794,0x291d276b,0x1620276d,0x848103c,0x289a12f3,0x17a0277e,0x1eea179c,0x52a19f6,0x1f182271,0x7f71f16,0x7c31ef4,0x7ac07bf,0x7ad1794,0x8ef10ea,0x2e710e8,0xee91cdd,0x132327e0,0x8db2851,0x169408e5,0x1f171f19,0x252007f5,0x252211af,0x80017dd,0x17dc1782,0x1f2217db,0x12d2579,0x27532572,0x274f095e,0x1631087d,0x8160881,0x17ec1ed4,0x17821f23,0x79e079e,0x1f241ed3,0x1f2417de,0x181e0809,0x1815181d,0x94c2741,0x1f68094d,0x79f1ef8,0x1f701f6b,0x6491f74,0x23c3064d,0x1f3117e7,0x80d0810,0x1f320810,0x80b080d,0x80f080f,0x80e080a,0x1f2e080a,0x1f31080e,0x8101f32,0x80c1f30,0xdf917e7,0xf3253a,0x876103c,0x8c91046,0x8cb1678,0x29ec20ea,0x15cb29eb,0x19240c90,0x2421260c,0x94a06b7,0x273d13ff,0x1f3d0814,0x1f3617f3,0x1f3d17ea,0x56816c7,0x1f6b1d3a,0x1f6f1814,0x10e010d5,0x1ba910df,0x2cd1cb8,0x163c1084,0x1f5a089c,0x180e0830,0xae20ae8,0x8bc145e,0x8bd08b8,0x8b908bd,0x10ac08be,0x8bc10a2,0x1f72083c,0x1811083d,0x1f581812,0xecd02cc,0x181202d7,0x1f581f54,0x1f5d1f5e,0x10f8180a,0x904090a,0x8c508c2,0x167310b8,0x8c208c3,0x1f1817da,0x3ea07fd,0x1b0c1b0d,0x1dd71dd3,0x8361751,0x8341f65,0x8fc16a6,0x181710ee,0x1f6d1f6f,0x1d1d1d20,0x245d1d1e,0x2462264a,0x167910c2,0x10c6167c,0x10bc1063,0x83f181b,0x18580843,0x11b011b1,0x10ed16ae,0x181b08f1,0x1f73083d,0x92d1291,0x932092e,0x92e1291,0x1ecf0844,0xcc81ef8,0xe9f0e8d,0x7af1822,0x17bf1ed5,0x18131f00,0x7a807bc,0x80e178a,0x1f251f2e,0x1ef01ed9,0x17db1ef1,0x1f3f17d1,0x7e51f16,0x26701f41,0x71e2613,0x1ea91e9f,0x8451223,0x847100b,0x15f515f6,0x8f4238d,0x10f708f7,0x17de0808,0x17de0801,0x80117df,0x26882692,0x8541c23,0x10491018,0x6ed06ee,0x1d4706ec,0x1d591d57,0x12ff278b,0x22ef0a84,0x16e116ee,0x17901788,0x17981798,0x17881ed9,0x10e616a0,0x236308eb,0x1dd4174d,0x17cd1f10,0x17ce17c2,0x17c51f10,0x1f3c1f3e,0x22a81f39,0x17660555,0x160a0870,0x1600160f,0x1010103d,0x101a103e,0x16000855,0x871084d,0xe320e2c,0x161b2564,0x103e1621,0x176f1768,0x8a222a8,0x108d164e,0x6a906af,0x908241f,0x90a0904,0x1ed31f35,0x10991f34,0x8b208b0,0x8af08ae,0x8b01099,0x8b21095,0x3162597,0x25c91cfa,0x25e30671,0x8a01088,0x80089f,0x7f0085,0x7851eaf,0x2283122a,0x534227f,0x10471624,0x10bc103d,0x167608d0,0x17d207fd,0x1f1817d8,0x17d207f7,0x22b722aa,0x10be22ab,0x87c162a,0x1628162b,0x22ae1642,0x177022a3,0x106c0882,0x17a71630,0x1ef217aa,0x22b7176a,0x17ca1778,0x7ed17c9,0x165808ab,0x22ba109d,0x55022ad,0x10f110ee,0x10ce10f0,0x87b1684,0x1ef81f75,0x16891819,0x168a168b,0x8761621,0x1f51161f,0x1f4d1f4c,0x1315278d,0x10b627af,0x8c308c5,0x17ab07c9,0x1f511ef8,0x1f611f64,0x180f1f61,0x18151f51,0x1f6b1f6a,0x87d088a,0xb341075,0x2883292e,0x553055d,0x17f50551,0x17fc0821,0x16a708fa,0x1b4908f2,0x1b3b0f3d,0x7f91f1b,0x82607f8,0x82717fd,0x8e108e0,0x162810d9,0x1642107c,0x1e1b1910,0x8d323a0,0x167d08cb,0x16c816c6,0x83922cb,0x18141f6f,0xf9c1cfa,0x1f3d1b9c,0x17f3081c,0x106208a4,0x106216b3,0x10881089,0x10901086,0x8a91087,0x8a710ec,0x8a908ab,0x8a91658,0x165808a7,0x108b08a5,0x8b31092,0x10651064,0x109c10ed,0x10ed08b2,0x109508b2,0x12b712b8,0x8b712b5,0x10a008b6,0x109e165f,0x17901661,0x178e07ac,0x167108c1,0x233508c4,0x5b11d9d,0x7c007c1,0x10ad07b8,0x166910ae,0x253a1881,0x8cf1882,0x10bb08c6,0x20f00bfb,0x10bd20f1,0x8cd087c,0x10b91675,0x129310ba,0x27452747,0x10bc10be,0x236d1063,0x236e0607,0x1efc17b2,0x8c707d1,0x168a1682,0x162a1068,0x166f10cc,0x8c010b3,0x10b408c2,0x9551673,0x12b012b3,0x275912c5,0x12c42756,0x27560962,0x14960b07,0x277d290e,0x12aa277b,0x1629162c,0x16a710eb,0x8fa08f2,0x7bb07bc,0x16bc1ef3,0x10fb0900,0x7cd17b1,0x106607d1,0x8f3162c,0x8f316a8,0xb0308fb,0xaeb0b04,0x106508f5,0x16b11066,0x16bb16b6,0x16bb16b1,0x16b61091,0x16bb16b0,0x4681a3c,0x106221cd,0x16b3090e,0x277b0a8e,0x786277d,0x12321231,0x212e03fa,0x94519cb,0x273b273a,0x29b61156,0x21b10b9a,0x21be1a3a,0x29682979,0x12ac18e1,0x12ae2887,0x16b70903,0x277a10fc,0x277b12aa,0x23fe25d0,0x235a245e,0x1dc61dc5,0x234705d7,0x27531da9,0x9612752,0x96812c5,0x137f12cb,0x28212822,0x293114aa,0x12d22933,0x12ce0969,0x25772575,0x2a6b0e3a,0x204e0d69,0xff70fe2,0x13100ff8,0x27a01309,0x25626a2,0x9801c34,0x12ee2772,0x272b1295,0x25610932,0x25601214,0xae128e6,0xa821301,0x140b12f9,0x12e02765,0x295028db,0x295318d4,0x28ac2785,0x862140d,0x85d1613,0x101515f8,0x27c21017,0x27c109ac,0x9b11330,0x133409b4,0x27cb09b9,0x9b927cf,0x9b727d0,0x27cd27cc,0x28002809,0x27c909e7,0x27cc27ca,0x27d109b6,0x27d727c8,0x133a09ab,0x132a27da,0x133e133b,0x9b3132e,0x9be27cd,0x9ac27dc,0x27c109c1,0x132527df,0x27d827bf,0x9c409c3,0x133b27da,0x134f27e4,0x9c609c8,0x27db27e6,0x13411340,0x135027e5,0x231005a8,0x27d71706,0x1352133a,0x134527ef,0x27f027ee,0x13461354,0x13582804,0x9e6280e,0x280827fc,0x103d0871,0x1d6f1600,0x1d6e1d6d,0x5ab1d70,0x13731705,0x280a27f8,0x137427f8,0x9bc280a,0x9bf09c0,0x9e82800,0x281609e7,0x137d1386,0x2821137e,0x137d1389,0x137c09f7,0x13882817,0x13a209f2,0xa09139c,0x139009fb,0x137409f5,0x9e909d5,0x13972841,0x13b10a14,0x282f2835,0xa160a0e,0xa170a0a,0x28350a10,0x13af284d,0x13af0a1f,0xa1f13b5,0xa202846,0xa292845,0xa2d13c6,0x13b513b0,0xa250a17,0x285913c7,0xa2e13be,0xa2b13c8,0xa2e0a2f,0x28550a34,0x13ca0a35,0x13cc0a3e,0xa3213bc,0x13bb0a31,0x285f0a33,0x13c52855,0x13c90a35,0x28662867,0x13c913cf,0x28612866,0xa370a32,0xa3513ce,0xa3813c5,0xa39285c,0x13cf0a32,0xa3c0a37,0x285d0a30,0x28582864,0xa380a2d,0x285b285a,0x13cb13d1,0x28672863,0x28680a33,0x28570a36,0x13ce2860,0xa360a2c,0xa342868,0x28690a3d,0x28600a36,0xa3f1285,0x271e2869,0x13d11286,0x912271d,0x13b6286a,0xa410a42,0xa1a0a42,0xa1b286c,0x286e286f,0x13d713ba,0x13dd0a45,0x287113d8,0x19b119b6,0xa4619b0,0x287213d3,0x13dd13d2,0xa462871,0xa4013d2,0x13db0a41,0xa490a49,0x13d413dc,0x13d2287a,0x28730a46,0x286c0a42,0xa47286e,0xa470a4a,0x13d913d6,0xa442875,0x28742876,0x286d0a43,0x287513d6,0xa4413d9,0x28762877,0xa4813d5,0xa4b13da,0x28790918,0x2872287a,0x5b313dc,0x5b52318,0x271b287b,0x13df091e,0x13dd2878,0x287b0a47,0x13560a4a,0x135909c4,0x13491359,0x27e627f3,0x27e727f7,0xa56287f,0x27e30a53,0x27ff09e0,0x136927eb,0x234027fd,0x2341172f,0x27f7134f,0x1f141361,0x1f04079d,0x27ef27f5,0x13a927ee,0x13981397,0x13c313a4,0x565139f,0x22c016c0,0x5bd05d0,0x11c52322,0x252f2530,0x11c62530,0x1d84252f,0x23281d8c,0x23281d84,0x1d841d8b,0x1d8a1d8b,0xa5d0a88,0x1d8528a8,0x5c31717,0x1eae1232,0x124e1eaf,0x122c122e,0x232c1715,0x5c01719,0x5c11d87,0x1d8a1d84,0x278c1d89,0x288e12ff,0x1d45057b,0x2775057a,0x97b12d3,0x20482a68,0x5c62a69,0x1d98232b,0x5ba171f,0x128805af,0x129712db,0x1d9e1d77,0x1d761723,0x1d9c1721,0x231305bb,0x279b05bc,0x28d72798,0x17231d77,0x1d7d1722,0x1709170c,0x5c51d98,0x1d761d9a,0x231d2319,0x22be22bd,0x5a60561,0x1d6b230c,0x5b41709,0x259f1d7d,0x259e25a2,0x25770132,0x19000e37,0x29710b6b,0x1da205d3,0x5bf05d1,0x1da51dad,0x23391d7f,0x93e1726,0x2733129c,0x1bd901fe,0x15d601ff,0x19301137,0x22eb16e8,0xb7a0582,0xb6f2972,0x28b40a92,0x1418141a,0xa9128b7,0xa9828b1,0x50e0a8f,0x518225b,0x141b1417,0x28b128b1,0xa96141b,0xa980a8f,0xa9a141f,0x28b70a91,0xa8f28b9,0x5a5141f,0x17031d6b,0x143d2791,0x12fc0abb,0xabe277f,0x143f277f,0x9910abe,0xac00ac1,0xabd28d2,0x142a0abc,0xaaa279e,0x27a0130d,0x12af1442,0x14410989,0x29180b0f,0x28c50b10,0x14400ab2,0x5d82342,0x27a9172b,0xac70995,0x130f27a8,0x97e1311,0x29212922,0x12af12fe,0xacc1441,0x28db2765,0x99712e0,0x99528db,0xac727a6,0x994279e,0xacc0acd,0x28dc1448,0x28d90ac8,0xab71445,0x28d90aac,0x27962795,0x291b0ab7,0x149b149c,0x1498148b,0xaca0b01,0x144928dc,0x27ad0996,0x12e40ad3,0xad00ad1,0x14810b0d,0x27860b08,0x293614c6,0x234105df,0x2769172f,0xb1812e1,0x1450144b,0x1a300ad7,0x21cf047c,0x18d018ce,0x40218cf,0x1a0c042b,0x17401742,0x1dbd1738,0x173d173e,0x1458144e,0x144e28e0,0x14581320,0x1bf40f36,0x1ff00f37,0x2a800085,0x291d0a80,0x1b1f291c,0x1520154,0x147e149a,0x1da28ff,0xf5b0fb3,0x286209a,0x20982098,0x209a1c58,0x283209a,0x1efc0286,0x17b207d1,0x22bb0554,0x2f6176b,0x25802589,0x98f0992,0x12390b0b,0x78a123f,0x78b078a,0x6591239,0x23c71950,0x28ea0ae4,0x28e81463,0xae71451,0xadc1465,0xb3b28e9,0x292914a9,0x14b90b3b,0x145f14a9,0xae81466,0x145f145e,0x28ee0ae8,0xaec0aeb,0x2496072e,0x28f52663,0x28f428c3,0x146e28f3,0x5df0ab8,0x16fe172f,0x230716fe,0x28cf05df,0x28ed146d,0x142d28c2,0x134d0af1,0x27f909d8,0x9c81361,0x28f3134f,0x13321334,0x27f9134d,0x28f51363,0x9b809b7,0x28f828f7,0x146914c7,0x28f71474,0x12e6291b,0xb920b18,0x11611158,0x12e22764,0x98d291f,0xb0d1306,0x29132915,0x27a31494,0x279d130c,0xa8027a4,0x2794291c,0xb111405,0x27ab0971,0x12e60b14,0xb182769,0x17b117b5,0xb1507d1,0x14960b13,0x2764276d,0x97e0b09,0xb1e12f0,0xb4012ec,0xafa2938,0xafc12e7,0xb17149d,0xacd0b16,0xaaa0aad,0xb1b12ef,0x27a50b19,0xb0f1312,0x291e2776,0xb090b1b,0x149e2905,0x277212e7,0xb200b21,0x2920149f,0xad80b23,0xaf61434,0x147b1335,0x15721580,0x29290c50,0xb2e2925,0xb730b7b,0x27c00b72,0xb240b26,0x146a147a,0x292c0aec,0x29072908,0x1c181b41,0x128c0f4d,0x275a128d,0x1f621811,0x27621810,0x12881297,0xe100e0b,0x27ac0e14,0x13141313,0x14e71277,0x14b21279,0x148c0b03,0x14aa0b38,0x227614a8,0x532052c,0x1d4b060c,0x19d21d4a,0x19d303d9,0x22e822ed,0x1a331d55,0x1a341a4a,0x292313e3,0x14b713e4,0xb2c292a,0x1ecc0795,0x1fc5079b,0x73a24aa,0x2b61caa,0x278e0eb8,0x14c20aed,0x28dd12e4,0x29350ad2,0x143214c4,0x12c3293c,0x13080966,0x14c00b3e,0x27de27ec,0x1cd27d4,0x1b9a01ce,0xab60ab5,0x973293a,0xab5293b,0x14c7293c,0xa5e28c9,0xa510a54,0xa50293e,0x14c90a4e,0x13990a06,0xbec104a,0x282c29cd,0xa12104a,0x282a0b44,0x29cd2827,0x13a3283e,0x20f209ff,0x14d01394,0x283109fe,0xb462837,0x29460b48,0xa022831,0x13a32943,0xb4813a5,0x28370a0d,0x9ff0b47,0x20f22828,0x1394139d,0x282e14d2,0x29492840,0x13a80a0f,0x2986114d,0x10a02987,0x165c165e,0x27b709cb,0x18c609a6,0xb51294a,0x18c518cb,0x29b62953,0x118e1191,0x294c18c4,0x294a2957,0xb510b4a,0x29451391,0xb5009fd,0x18c60b4e,0xb4f18c7,0x9fe2954,0x294414d0,0x12c30973,0x18d7293b,0x29540b50,0x1902297f,0xb880b87,0x297f1902,0x2979297a,0x29780b7e,0xb7e297a,0x16f0f49,0x18fe0f4a,0x18ff297e,0x18ff0b8d,0x297e297d,0x18ff297d,0xb830b82,0xb8418fb,0xb8218fd,0x18fa297b,0xe800b83,0x15c515c3,0xba41154,0xb560b97,0xb5b18cc,0x18cc0b4d,0xbac2951,0xbae0bab,0x18dc0b63,0x11752965,0x1176299a,0x115d0ba8,0x1dbf0ba0,0x173c1dbd,0x18e518d8,0xbaf0b5e,0xba71174,0xbc40ba9,0x118a299d,0xbba1177,0xb82296d,0x296d296a,0xb8418fd,0x18e00b6a,0x19060b90,0xb850b6a,0xb6f0b7a,0xb8318eb,0x18e4296c,0x18ec18fe,0x15fa0b6d,0x15ff084a,0xb980b93,0xb7a0b95,0x29722970,0x114f0b94,0xb911150,0x29860b9a,0x1156114f,0x11600b9a,0x115f0b9e,0xbba118a,0xc80bb9,0x11f311f2,0xbae2989,0xbac1158,0x299f0bae,0x296318f3,0xbc6295b,0xbc5117c,0xb85297c,0x203c0b6a,0x4c0d57,0x118d29b9,0xbd00bd0,0x118a118d,0xbcf0bcc,0xbcf0bd9,0x118b0bd4,0x118629b2,0x298b0bce,0x298a1193,0xccb0e74,0xbcb1124,0x29862987,0x7c517a7,0x7c517a8,0x7c407c3,0x18ca297d,0x29570b8d,0x297d0b53,0x296918f9,0x18ca18fb,0xb8d18c8,0x11850bb3,0x17c30bb4,0x7ea17c9,0x18001f41,0x29ad0822,0x118e29b7,0x22da16ce,0x7b422d9,0x1eea1ee9,0x1eea179b,0x179a179c,0x1ed6179d,0x7b5179b,0x1eec07b3,0x17a01eea,0xbcd29a8,0x11841184,0xbbf0bbe,0x1d051d00,0xbd325a0,0x11780bbb,0xbdf0bdb,0x108129b8,0x16391080,0x29740b7b,0x29a60b73,0xbcf0bd1,0x7e117b5,0x1de017bd,0x2374060b,0xbf129c3,0x29da0bf0,0xbef0be2,0x20f020f4,0xbe229ea,0xbef29db,0x29ca104b,0x29b629db,0xb9a2986,0x11c611c7,0xbe62530,0x29ce29d8,0x25c925d5,0x182423e8,0x18211f79,0xbf40bf3,0xbed1060,0x10571056,0x29d51057,0x105829d6,0x105a1059,0x29d70bee,0x105f29d8,0x29dc29de,0xbee1060,0x29d30bf0,0x10611060,0x29d30bed,0x29d629d4,0x1057105a,0x1f781820,0x1f451823,0x17fb0827,0xb022748,0xbf712ee,0x29f020fc,0x22c416c0,0x68b16c1,0x25cf23fd,0x10b808c2,0x17931672,0x7aa1ee1,0xbf929f3,0x83e29f4,0x181a083f,0x62b239a,0x8d01fa1,0x8ca1677,0x7940796,0x7e51ecb,0x18051809,0x18121f54,0x6151f64,0x1e031dfb,0x1e03237c,0x25e41dfb,0x25d70694,0xa672886,0x84f13f2,0x8511601,0x11671165,0x11610ba4,0xbab0bae,0x623061e,0x6172394,0x1e282387,0x6220611,0x1def2380,0x1df12389,0x7d807d7,0x7d817bb,0x1f031f02,0x238c1de8,0x8e01dfa,0x10d610d3,0x1dd31dd7,0x168f236c,0x10d210d1,0x17b407d6,0x7851f03,0x1ead077f,0x1431b18,0x22700f19,0x21751aec,0xdbf0dc0,0x183000b4,0xb31832,0x7a91edc,0x8be178c,0x166e10b5,0x118f0bc1,0x216e1190,0x199a2121,0x10e116a4,0x140a10e2,0x28a328a6,0xe3d18bf,0x11fb012f,0x18901891,0x25dc068a,0x20da068c,0x1c8b02aa,0x1d5416e8,0x1d181d53,0x33b1d19,0x5b405b5,0x6481d7e,0x64d23c5,0xcc60ea9,0x15c51927,0x15c30cd3,0x11231928,0xe7415eb,0x15ec0ccb,0x148d148a,0x15bc1326,0x192b1127,0x19291127,0xea915ed,0x15e81927,0x192e0ea3,0x1d880cce,0x2325171c,0x19ac0495,0x222719b7,0x19e619df,0x18da0b58,0x193118d1,0x15c70cd5,0x1a7104b2,0x149f21f3,0xb1f0b20,0x17d11f1c,0x1a7117e4,0x1a7004ae,0x21f904a7,0x4a71a6f,0x21fa04ae,0x1a6f04ac,0x1a6d21f9,0x1a6c21fd,0xc961927,0x1a6e15e8,0x1a6d21fc,0x3bc0419,0x4ac0417,0x21f21a6e,0x1ad92106,0x81b050f,0x1f3f0813,0x10971064,0x1b6408a8,0x1b40191,0x6640669,0xeae196e,0xeac1c9d,0x22ef16ee,0x3631d46,0xe5d0e6a,0x12b3274c,0x95512b5,0x12b012b3,0x8221f4f,0x82217ff,0x1f411f40,0x1f410822,0x19411801,0x23bd1953,0x10411623,0x15850872,0x1e800c6f,0x14860b21,0x16e70afc,0x58716e5,0x178b1edb,0x25e31eda,0x67125c9,0x95b12b6,0x25550958,0x25602561,0x58616e5,0x109e0587,0x165a1069,0x1ce61ce3,0x2ed1d23,0xeee0eec,0x22d1bf6,0x19640233,0x6460644,0x1b351b36,0x1ea80f34,0x121f1220,0x9bf1337,0xfe627dd,0x21e0fec,0x195723b0,0x19430655,0x6421965,0xf480243,0x26861c18,0x1c19268c,0x3b0d30,0x1f142a4a,0x1f1217c9,0x67f23f0,0x26c223f4,0x26e26ba,0x26b80267,0x27326af,0x26e26c2,0x1c3426ae,0x26bf0256,0x2701c46,0x1c4b0273,0x2860274,0x209a2098,0x1f671816,0x6da1f69,0x6e106e0,0x1bb21b62,0x1c6c01d3,0x1c6d0292,0x1dda0607,0x1e640609,0x1e650c3c,0x25e02403,0x24102402,0x260025fc,0xcdb0cdc,0x1ecc0efd,0x7981eca,0x57a16db,0x26491d45,0x26472650,0x6e42633,0x263306e1,0x6e506e2,0x24482461,0x71d06da,0x26102484,0x6ff2657,0x25ed0700,0x6ac25ee,0x264a2462,0x26622447,0x24790711,0x60e16d3,0x5781d43,0x57916d4,0x1d450579,0x1de91d44,0x61f1dec,0xaed28f0,0x26760af8,0x72725f5,0x6aa06a8,0x24c706ad,0x24a624a3,0x1bd1b70,0xf9a0f99,0x1b700f9b,0x1ba31ba7,0x1b7001c6,0x1c001bf,0x260c2608,0x22ea06b5,0x1d5322eb,0x24912678,0x123e267a,0x123f1242,0x29c729dc,0x17c229dd,0x17c407e3,0x8671034,0x25590866,0x11d70101,0x714266b,0x14040718,0x289c0a79,0xf1253c,0x1ddf253a,0x60d1d4a,0x277a097c,0x1e371417,0x15541559,0x12351234,0x1380788,0x1b141b12,0x1d2525ba,0x1541d23,0x1b250f12,0x83e1f79,0xea20841,0xca30c8d,0x25a4031c,0x24950319,0x72d072a,0x1dc405f3,0x288005f2,0x27440a54,0x15460c1a,0xc191518,0xc161518,0xc1b1546,0x1e661516,0x11171e78,0x154f1e2f,0x15451538,0xc160c19,0x15800c3a,0xb4b0c50,0x294e294d,0x150a1536,0x15361538,0x15341533,0x15331534,0xc091501,0x150114ff,0x150b1510,0x1f98153a,0x1f9a0776,0xc121512,0x15120c11,0x1e341513,0x15040c0b,0x153214ff,0xc351e2c,0x14fd1e2c,0xc350c08,0x15321500,0x15000c0d,0x1e2e0c0c,0x1509150b,0x153c1e37,0x151a1e36,0x15300c06,0x15400c13,0x15461541,0xc151516,0x15161514,0xc161544,0xc151518,0x15461518,0x15420c15,0x15391e35,0x205e1ff0,0x15471ffb,0xc051517,0x15391542,0x1540150c,0x153e1e3b,0x1540154a,0x14fd0c13,0xc1c154c,0x111710ff,0xc0d1e78,0x15001e3e,0xc1e1e2d,0x151f1e2e,0xc081e38,0xc090c0a,0xc0b1521,0x15210c0a,0x15330c09,0x110c1551,0x157b1e47,0x15511536,0x1e401533,0x15240c2a,0x152b1e40,0x1c67152c,0x28c20a2,0xc291523,0xc1e152b,0xc0b1e2d,0x2882096,0x22e01c61,0x58016dc,0x151b151c,0x1e3d152d,0xc250c26,0x1e3d1e3e,0x154c0c25,0xc1c1e45,0x1e471e3e,0xc22154c,0xc08151f,0xc221e2c,0x15061e45,0xc0e0c26,0x1e470c0c,0x15060c25,0xc260c25,0x14db0c6b,0x153914d9,0x15351555,0x178d1ed8,0x1e34179a,0x152c0c2a,0x15571513,0xc120c2a,0x152b152c,0x152b1e32,0x14ff0c29,0x1e461e48,0xc271534,0x1534150a,0x1e490c24,0xc210c14,0x1fc21557,0x24c81fd9,0x1e461501,0xc270c24,0x150a0c28,0x111c0c2c,0x110d156e,0xc471e6f,0xc370c45,0x15751e6e,0xc480c36,0xc3f155e,0x1e611e51,0x11131574,0x15740c38,0x1e6d1573,0xc451e5b,0x1e651e68,0x1e6f111d,0x15711e5a,0x1ac01a6,0x155b1b89,0x155a0c49,0xc41157f,0xc4e0c42,0x157c111b,0x111a1578,0x15781e6b,0x111a0c4b,0x1e6a1104,0x111a1576,0x11190c4b,0xc2f1119,0xc4d0c3f,0xc3e1118,0x15790c4d,0x11181118,0xc3d1579,0x15741e74,0x15800c4f,0x1572111d,0x15290c2e,0x156a1e70,0x1e6e0c45,0x15701577,0x155d0c2b,0xc4a156f,0x1e72156f,0xc4a0c44,0x1570156f,0x1e6f1122,0xc331121,0xc481e47,0xc4c1e6a,0x11200c3e,0xc341109,0xc411112,0x1e6a157f,0x15760c3f,0xc3d111f,0x1e731579,0x111f1e69,0x1e771e64,0x15761580,0x11041e52,0xc4c1563,0x1e4f0c30,0x1e501e72,0x11221569,0x1e521121,0xc2f1576,0x15881e8e,0x1895158a,0x255611e2,0x18c818c9,0x14e118ca,0xc5f158f,0xc630c60,0xc630c61,0x15921e8b,0x1e8b1592,0x15921269,0xc630c61,0xc610c60,0x14dd1265,0x14db1e7e,0xc5414dd,0x14d91587,0x12571e7e,0x14d91256,0x125d1257,0xc551589,0x1e7d126b,0x14e81e7a,0xc6514e6,0x15831582,0x15881255,0x158a14e0,0x14dc14df,0x14e70c53,0xc670c66,0x125e1e83,0x1e7d158b,0x159b14dc,0xc521e81,0x125a1588,0x125b1258,0xc6514e8,0x15931597,0x15951e8a,0x14e51e8a,0x15840c62,0x15851e7b,0x1e820c56,0x1e841587,0xc5a1e82,0x126514e3,0x12560c5f,0x14d81257,0x14d80c51,0xc581e7b,0xc5b0c5c,0xc5d0c5e,0xc68158d,0x15960c66,0x1537154b,0x1262150d,0x126c0c69,0x2a262a23,0x14e92a22,0x12720c71,0x14ea14ee,0x14f30c67,0x14f41271,0xc6e0c6f,0x12750c55,0x14f71267,0xc770c78,0x126e15a7,0x14f1126d,0x1e94125a,0x159e159c,0x14f20c53,0x14f40c56,0x15a61e95,0x1e911e99,0x151e1500,0x1e3d1e3e,0xc0d151e,0x159f1589,0xc150c55,0xc310c2b,0xc65127a,0xc6515a8,0x15a81595,0x14d81270,0xc771257,0xc621e8a,0x15a50c5e,0x1e9914e2,0x15920c61,0x1e9914e4,0xc6114f9,0x12680c76,0x15a614e4,0x15830c61,0x159c14f0,0x16031613,0x158b1018,0xc7014f6,0xc750c5f,0x15920c74,0x1e991276,0x15971e79,0x1254127a,0x159a159b,0x12771269,0xcd51276,0xcbc0cbd,0x25042505,0xc600c7,0x184b0134,0x25492504,0x1a3b00c7,0x21af0457,0x8aa1093,0x15121092,0x15431524,0x20940287,0x15ad2099,0xc7c15af,0x1e0d1e0b,0x1e0d15aa,0x15af1e0a,0x15a90c79,0xc8215ab,0x1e0f0c84,0x9422895,0xc822736,0xc801e0f,0x1e110c88,0x185d1e0e,0xdd11ab,0x15b515b6,0x112715b4,0xccb0e76,0xc981133,0x19231138,0xc9d0e80,0x15b00c87,0xe810c7d,0xca215d1,0xca015d0,0x15d715ce,0x114b114a,0xe8915d2,0xca51140,0xca61140,0x15d40ca7,0x15c11143,0xe7a0ca7,0x15d40c91,0x11251147,0xc8f15d4,0x15d11129,0xcab1126,0x11480c95,0x114515b8,0xe8c15c0,0xc991138,0xe8c15c0,0x15cf0c99,0x15eb1123,0xcbb0e7f,0x113f1931,0x1135192d,0x22802283,0xe88227f,0xc8a0e78,0x28902894,0xca00a72,0x192815b7,0xc8e0ca5,0x15d215bc,0xccc15bc,0x15de0cba,0xe8f15dd,0x191615da,0xcbb0cbc,0x19171920,0x191415d9,0xcb40e92,0x19130e91,0x15d80cad,0xea0191f,0x18c115e8,0xcd918c2,0xe9c0cb0,0x15e30cc0,0x15e215e7,0x15e715e2,0xcb015c9,0xe790cc1,0xcc40e9e,0xcb915e3,0xe940e7b,0xcc90e8d,0xcb30e9f,0x1925112b,0x15c50cc6,0xccb15df,0x112715ed,0x11280e8d,0xe8d1926,0xcc90e99,0x113915e2,0xccc0e9d,0x191a0e92,0xcd30c96,0x15ed0cc6,0x19180e90,0xcae15b7,0x15dd15d8,0xcd30ea7,0x12a32741,0x15bd12a2,0x191b1912,0xcb515bc,0x15c80e92,0xcbd0cbb,0x113e0e77,0xccb0ca1,0xe810e82,0xe7e0e98,0x15c70cd4,0x19200cbc,0x15d81928,0x15f40e8e,0x18c10cd6,0xcd90cd8,0x1f2518c2,0x1f2d07fe,0xc9b113a,0x184f15e3,0x11992509,0xc91851,0x184e00ca,0xdd400cc,0x12d50939,0xffd0938,0x22e0ffe,0x9380937,0xd1112ce,0xcf51fde,0x10851648,0x8401644,0x18220841,0x1ed6179e,0x3c179d,0xd3d0091,0xf6f019c,0x16ed0f6e,0x22e716eb,0x1aa40433,0x15e219ea,0xe9b0e9d,0xdf000e5,0xe6252e,0xe52530,0xdb20036,0x2a10061,0x20cb20cf,0x26b26b8,0xd01026c,0xd1a1fea,0x134027cb,0x17fc27db,0x82b0821,0x1f461f4b,0x1f460828,0x82817fb,0x5a21d4f,0x1f6322f2,0x1f581812,0x25b10325,0x16e41d0a,0x1d580589,0x27382729,0xf0f1293,0xf040f05,0xf070f03,0xce10f0f,0xf0d0ce7,0xf0e0efd,0xce50f0a,0xce40f10,0xced0ce2,0xce20ce0,0xf100ce4,0x2043002b,0xf00203f,0xce80cee,0xce80f06,0x19d0f11,0x1b690196,0x128b2722,0x2a6c128c,0xd6a204d,0x1dc01be,0x2a011b96,0xe2a03,0x2a192a1b,0x2a231ffd,0x2a222a26,0x26200a,0xd232a2c,0x2a2b0d1e,0x20002001,0x2a2b1ffe,0x2a250d1d,0xd152a1c,0xd14001d,0xd150d16,0x20082007,0x2b2a27,0x2c002e,0x240025,0x20092006,0x2a282008,0x2a312a35,0x272a32,0x2a300028,0xd3a0021,0x20432014,0x600012,0x2a2f0d8c,0x2a090d8b,0x2040203f,0xd582a19,0xd1e203c,0xd1d203d,0x203c2a23,0x49005e,0xd610066,0x472a64,0xd6b0046,0xd6d2a6e,0x20540d4d,0x2a60004e,0x4d0d74,0x57122da,0x7ef0576,0x7e507e6,0x20460d78,0x780d79,0x2a660d7b,0xd770d7b,0x93c2a79,0x27332734,0xd660d7c,0xd83204a,0x832a03,0x2a780075,0x810d59,0x205e1ffb,0x1f390819,0x206817ee,0xd1f2a24,0x206a2a82,0xcfd200f,0xcf62a17,0x204d205f,0x20232a6c,0x3f0d31,0x16ba090b,0x2a87090d,0x2a4b0cf1,0xd421fe9,0xd2f2a4b,0x20182a5b,0x2a452a8b,0x20180d40,0x380058,0xd99206c,0x890d9a,0xd872a8c,0x20752a7d,0xa10d82,0xd9f0d05,0x29f700a6,0x1b4329f6,0x16f0f50,0x2e80edf,0x20891cdc,0xdab29ff,0x207f201d,0x2a61201e,0x630d4c,0x205a2044,0x760d49,0xd662049,0x2a6d0d70,0x2a082a70,0x6d2a77,0x20162a51,0x540d3b,0x2a052a33,0x139b2852,0x76c2850,0x76b0758,0x2a790d78,0x187e0d77,0x11cc1885,0xaf1827,0x56a0db6,0x16c416c3,0xdb80db7,0xba0db9,0x183a00b9,0x183a24f4,0x24fa00b1,0x24ef0db4,0x24f90dc6,0xbf1837,0xdcd1846,0x24f500bb,0xdcc0dbe,0xdcd00bf,0x18401841,0x184024ff,0xbc0dc7,0x183f0dc9,0x18370dc6,0xdc11835,0xdb600b3,0xdcb1830,0xdc91842,0x18441841,0xdc70dcc,0xbc0dca,0x13532852,0x18481366,0x184700c1,0xc12502,0xdcb0dcf,0x184324fd,0x12882746,0x11212a7,0x11ec0e1d,0xc360c33,0x110a0c35,0x110b1108,0x11061e59,0x11081e58,0x1e581e59,0x1e541104,0x7740c30,0x761075f,0x11051e53,0x155e1564,0x15641e53,0xc321568,0x11121567,0x1e5e110e,0xc321567,0x1e5d1e6b,0x1e5f0c36,0x1e540c30,0x1e511565,0x155e0c2f,0x110b1e73,0x1563110c,0x15650c30,0x1e541e51,0x24da1e52,0x1f841f83,0x75424e1,0x24da1f7d,0x24d9075e,0x76a0756,0x1f8d24d0,0x1f8f24d1,0x24ce076a,0x1f8b24d0,0x7660750,0x1f9324d6,0x24d90771,0x24ea24e9,0x1f7d24e4,0x1f860759,0x24dc1f99,0x1f7e1f8e,0x75c0757,0x770075e,0x7670751,0x14641f7b,0x145d28e6,0x1f111f0d,0x168717c3,0x10681683,0x19f203ff,0x261d03fc,0x7202672,0x6d2248d,0x6d20722,0x722243e,0x7222441,0x2d1243e,0x2d01cbb,0x7391fc3,0x7401fc1,0x7411fcb,0x7441fb9,0x1fb30746,0x1fb01fb6,0x24a01fb0,0x249f249f,0x1fb424b1,0x1fb41fb0,0x1fca1fb3,0x1fc91fc8,0x1fc424ad,0x1fb1073b,0x1fc224aa,0x731249d,0x1fb81fb1,0x24a11fb2,0x24ac1fc4,0x1fbd073b,0x7351fbe,0x7360735,0x1fc10734,0x24a924a8,0x1f710834,0x1fba1818,0x73724a2,0x1fce24aa,0x24b4073a,0x249b1fcb,0x1fb824b7,0x1fb90731,0x7450746,0x1f4517fd,0x8280827,0x8261f46,0x799124d,0x1fca124c,0x74f074e,0x24cd24af,0x1696074e,0x10ea10de,0x110d75,0x20160010,0xd3b003a,0x1d3016c8,0x201922cb,0x20172014,0x93f093d,0xe94129c,0xcc2112f,0xfc188a,0x18921889,0xe0c0e11,0xe0511dc,0xe09254c,0x10211d7,0x11d80102,0x10a254c,0x25530e18,0x255211e1,0x1203010b,0x18b00127,0xc291522,0x7101523,0x70f265c,0xe1a189a,0x7dc11e4,0x7de1f07,0x70c265b,0x11ed265c,0x189d189e,0x17931794,0x11ed1796,0x11ec189d,0x11ec255d,0xe1c0e1d,0x189e0e1b,0x21a1045e,0x789044b,0x1eba123c,0x1f921f80,0x1f9224e7,0x770075c,0x10250860,0x23031612,0x16fc05a2,0x1f0707e0,0x260607e1,0x7242605,0x6c32416,0xd4606c2,0x402a4e,0x208f2081,0x18492078,0xc200c5,0x55e22bc,0x241f055f,0x6ae06a9,0x11b0116,0x1196255e,0x184a0dd1,0xd2d2012,0x972a38,0xcf91fe1,0x29c829db,0xde0105c,0x251e251f,0xdb11ae,0xdde251f,0x185e185d,0x25131866,0x25ea11ad,0x25eb2406,0x11b3186b,0x11b611b5,0xde60de7,0xde5186b,0xde911b4,0xde70de6,0xe011b5,0x11b7186c,0x11b311b5,0x9330961,0x29230964,0xb252924,0x85d1018,0x17f51603,0x1f3f1f48,0x11bb11b9,0x11bd00e3,0xe22529,0x11c900e2,0x11bd00f9,0x188700f9,0xdf800ef,0xe600f2,0x11c52530,0x252311b8,0xea2528,0x25332534,0x19f619f4,0x10e19f5,0x189b18a8,0x255a18a8,0x189b189a,0x189a18a8,0xe08188e,0x11de0e03,0x106188e,0x11b700df,0x21ba11b3,0x47621b9,0x1a31047b,0x16aa047a,0x8fb10ef,0x11b11f7,0x16aa0116,0x10f408f9,0x273f0949,0x1207092a,0x120a1211,0x79c124e,0x1af30799,0x1af2227b,0x189611fb,0x265b0e23,0x6e80677,0x16ad16ac,0x12ca10f4,0x12cc0967,0x257b0e3b,0x12011209,0x1209011f,0x100b1602,0x184b15fb,0x1332503,0xdcb0dc1,0xef20dc9,0xee602eb,0x1aaf2131,0xe2f1974,0x25682569,0x12a256e,0x241c0128,0x26032417,0x24152417,0x1f6b2603,0x1f741f70,0x2161c03,0x1e670237,0x1e641580,0x2727092e,0x12080932,0x18ac256f,0x932272b,0xf142727,0x1511b21,0x1ec91249,0x67e1ec5,0x263a06e7,0x2452067e,0x25cb25cb,0x6ef06eb,0x20990287,0x1ce8209c,0x25b72583,0x1c972094,0xedd20de,0x2ee0ee8,0x29d529d1,0x24d81057,0x24e80771,0x21d21a28,0xb02047e,0x148628c2,0x240e2415,0x240e06a2,0x6a2242b,0x4840479,0x1a9b21d8,0x1a9c221f,0x47f048a,0x1a4b0482,0x48f1a53,0x25231879,0x8530dea,0x10091037,0x6071ddc,0x8ef236d,0x10e916a5,0x4262181,0x21590427,0x21872186,0x45c19c4,0x2141213f,0x3d321bc,0x21e704a4,0x220b04a3,0x1a8604ba,0x220b220a,0x1d2404b8,0x2f502f7,0x1a501a56,0x1a50048e,0x48e1a4f,0x1b271b23,0x6770152,0x70e06e8,0xe030113,0x711254d,0x6780679,0x7110677,0x6790678,0x24652662,0xe281212,0x8210e27,0x17f50829,0x4860488,0xc491a5b,0x15291560,0x2311170d,0x1f1e05ac,0x1f1d17d2,0x1c1259b,0x17d5259c,0x17d717d8,0x615061a,0x25d81dee,0x23f623f7,0x1c040230,0x24151c0a,0x26032419,0x4ea03b7,0x17812129,0x17a31787,0x18091804,0x18ad180a,0x12318af,0x6500636,0x23fc23cd,0x68a068b,0x186b185c,0x248011b5,0x24810716,0x25f72612,0x1f6c06be,0x8391f6d,0x2fd02f4,0x2959258b,0x2958295c,0x295b18d0,0xb580b56,0x294b0b57,0x1d0e1d1f,0x16a025b4,0x169b08eb,0xbaf2998,0xe3e0ba7,0x3440343,0x3750e4c,0x116e0e4b,0x11742998,0xe570e4d,0x3630356,0xe6e0359,0xe46036c,0x3760e65,0xe710e72,0xe720e71,0x3740369,0xe67036f,0x3690e71,0xe480e64,0x34f0370,0xe61034a,0xe6c0e63,0x3720e5a,0x368034e,0x3550e43,0x3760377,0xe4d0362,0x20ff0357,0x197103ae,0x2e902eb,0xe320ee5,0xe2e0e2c,0x1a3b21be,0x268f21af,0x26920247,0x1eeb07bc,0x241d07b7,0x2420241f,0x260a241f,0x25c12420,0x25de23e9,0x16e816e0,0x1bc80582,0x1ec01e4,0xcc00cbf,0x90b113b,0x90708ff,0x8ff16b6,0x145b16b0,0x275e0ae5,0x21c703e9,0x1b532130,0x1d71bb8,0x4182114,0xa901a6e,0xa8f097a,0x106508b3,0x28aa1651,0xa8212e5,0x11d50e0a,0x181b11e3,0x7cd1f73,0x8140812,0x17e817f2,0x8141f25,0x7f207e9,0x15d507f9,0xe7c1149,0x19140cac,0xcad1913,0xcac0cae,0xcb41919,0x19221917,0xcc20e94,0x19270e7c,0xcb10ea9,0xcb60cce,0xcba1136,0x11230ea9,0xcad0e8e,0xcd40e98,0x127415f2,0x15901e87,0xeb40eb9,0x2c91ca6,0x1cb11cb2,0x1ca90ebb,0x1ca61caa,0xeb91c9d,0x257f0302,0x2c02589,0x2bc1cab,0x1caa0ebb,0x5110eb8,0x1ad5224d,0xebb02c2,0x1cb20ebf,0x1cb10ebe,0xeba02c4,0x5051caf,0x224d224e,0xec002c3,0x2c902c2,0x1cb21cb4,0x1cb202c7,0x2c71cb4,0xebe02c6,0x2c401c7,0xec40ec3,0xec202c6,0x2c202c5,0xfa20ebf,0xec40ec3,0xebd0fa1,0x2c902c3,0x1cb50ebd,0x20e10281,0x2ce2095,0xfa11cb5,0x1ba30ec8,0xed702c8,0x2e11ccf,0xed802e3,0x2cd0ede,0xec71cbe,0x3161d01,0x2d50315,0x2cf0ec9,0x17bc17bb,0x1c5c07de,0x1c5e1c9b,0x2e01cd2,0x2ea1ccd,0x1cd31cd4,0x2e70ee2,0xee30edc,0x1cd71ccf,0x1cd702e5,0xee31ccf,0x2e10edd,0x1cce02e6,0x16d41cd1,0x1d4516db,0x1cd202e9,0xee10ee5,0xede0ee4,0x1cd102e6,0x1cd60edd,0x2e21cd0,0xee01cce,0x1cd90ee1,0x1cd41cd5,0x2e30ee5,0x1cbd1cd8,0x1cbc1cc6,0x29620bc,0xeed20b1,0x1ca002b9,0x25a30318,0x1cb725a2,0x2cf02d4,0xeef0eaf,0x20b11ca0,0x1c6d1c6c,0xf000cef,0x1c9e0eff,0xef20eac,0xced0ce2,0xcee0ce0,0xf000cda,0xce50f10,0xf110f11,0xf060ce5,0x2e802e0,0x1b2f1cc8,0xf31015e,0x947091a,0x12810917,0x2719091b,0x23e0fff,0x271b1002,0x127c0911,0x27190911,0xb36091b,0x12e92779,0x12100e34,0xfdb18b8,0x1be90ff6,0xdf81883,0xf200f4,0xef0df7,0x10ca08c7,0x12f4167e,0x277c2779,0x24562457,0x24642454,0x6cf2472,0x1efd1efc,0x17b917b9,0x1efc07e1,0x71d266a,0x1b922670,0x1ac1b89,0x1b3014c,0xbdc0f1c,0xbc329af,0x1b8c01a5,0x1c20f89,0x1ba20fa1,0x1ba91b9f,0x1bae0ec2,0xfa501c8,0x1d50fb1,0x102901d6,0x16080859,0x258f2592,0xfce1cf0,0x1bd60fd0,0x10e31697,0xfd910e4,0xfd701fc,0x21e0fe6,0x16250fc0,0x16231047,0x18aa11fe,0x16252564,0x161d0872,0xfe71bf3,0x1c1a1c02,0x268e2683,0x6e72449,0x1b0006df,0x1aff0544,0x19a619e3,0x1bd0213e,0x1bea0205,0xe320e30,0x1eb10e2e,0x122b0783,0x11be252a,0x11ce11bf,0xde82540,0x464046a,0xb8821c0,0x297f1902,0xb830b82,0x18fa18fb,0xb8c297b,0x210f04ea,0x235c2129,0x173a059d,0x115d0ba8,0x106a115c,0x889087d,0x26901c2b,0x18cf1c29,0x295d18d0,0x420d46,0x17ed206d,0x1f3b1f3a,0x10f210f3,0xfb516ab,0x18901d7,0x13e013a,0x1c1c013b,0x268f0247,0x20d520dd,0x131e02ad,0x132027ba,0x5340497,0x1c320535,0x1c2f024e,0x134527ef,0x27427ee,0x27726c7,0x2761097c,0x161d12a4,0x1620161f,0xaf21470,0x31228f0,0x1cfb25a0,0x1eb7123b,0xc9f1237,0x15c60ea0,0x292a2930,0x27ad14b6,0xad3276f,0x28f20af5,0x27930af7,0x293414c0,0x27f2280e,0xb5b280d,0xb5618d0,0x1380136a,0x14d31376,0xa0f0a09,0x2959294e,0x131f2955,0x139609a7,0x1d191d16,0xb721d18,0x18f40b74,0x18f40b75,0x29750b74,0x18f40b72,0xb722974,0x29740b73,0xb742977,0x11171e78,0x2a0156c,0x20c602a7,0x141014b,0x19050147,0x18c60b50,0x434040b,0x1eaf040c,0x1ead0785,0x12b4277d,0x1b2112f8,0xf210150,0x1f721f65,0x1b221817,0xf251b25,0x278813f9,0xba20984,0x11592992,0xa6d0984,0xba713f9,0xba51167,0xbc50bdb,0x17f1117f,0x81917ea,0x29cb29dd,0x7f29de,0x200e1ff1,0x105f29c6,0x29dd29dc,0x29dc29de,0xbf00bed,0x105d29e0,0x105b0bf0,0x29dc0bf1,0x29d90bf0,0xbee105b,0x6071758,0x1b6f0605,0x1b130f17,0x1b6a1b95,0x1c201b6c,0x1c1f027f,0xf520181,0xf70019c,0xf750f77,0x1b911b80,0xf791b81,0x1931b66,0x186c00de,0x1a411d0,0x1b7d01a6,0xf820f80,0x1b820f81,0xf861b81,0xf871b82,0xf8801a8,0x1b8b0f85,0xf8b0f84,0x1ac01a7,0x1b8e1b7f,0x1a61b83,0x1b8a1b89,0xf8c0f81,0x1aa01a9,0x1ab1b86,0x1b881b87,0x2bb1ca4,0xf8a02ba,0x1b8f0f89,0x1b8d1b86,0x1ac1b8a,0x1b7e01a6,0x1b881b85,0xf821b87,0xf810f8c,0x17c0187,0x2a950f58,0x20840da5,0x1ba50f9f,0x1bab02ca,0xf9c01b9,0x1bf01d1,0x218601d0,0x21580432,0xde0dfe,0x1e011d0,0x1e301eb,0x1bc11bc5,0xf341bc4,0x1b3d0165,0x1b650f77,0x1b3e0f63,0x15e1b3f,0xfd20fce,0xfc90fd1,0x1bd501f4,0x1bd101f7,0x12fc0fd5,0x142c0abe,0x210021f,0x1bfd1bfb,0x2210225,0x2220227,0xff30ff3,0xfc11bf9,0xfeb1bcb,0x1bcc021a,0x21c021b,0x21c1bcd,0xfc4021d,0xfc50fec,0x1bfb1bce,0x26d80fc8,0x37d037c,0x387038b,0x23126dc,0xffc0232,0x1b121b15,0x23ed0ffa,0x25c3070d,0x1401c0c,0x1440fff,0x10000f1b,0xf18015d,0x10010ffa,0x23d023f,0x69f2419,0x15c2602,0x1c0f023d,0x10031c12,0x1bb60241,0x1b360fb8,0x180f1803,0x1ba01f5f,0x1ba71ba6,0x26e70389,0x661038a,0x64c194d,0x1ea0121b,0x1eae121a,0x12291235,0x7fb17d2,0x29791f18,0x18f718e1,0x9751411,0x3b512e8,0x227e1981,0x29ea29e6,0x29de20f4,0xbf20be5,0x29de105f,0x105829dc,0x29dc105b,0xc5614f5,0x1e960c54,0xc560c57,0x17981ed5,0x10781781,0x16351077,0x88b1075,0x25ad1635,0x25a51cff,0x8950891,0x16271643,0x16280895,0x163d1643,0x1eec0891,0x7c607c7,0x23101d6e,0x8061d6f,0x1f280805,0x109b1097,0x109d08a8,0x10aa08b4,0x879165b,0xc66165d,0x12501e90,0x11550ba4,0xed10b97,0x1cba02d3,0x166c10b0,0xe1d166d,0x255d189f,0x16a3169e,0x276216a4,0x12da0950,0x168d08de,0x8161690,0x1f3a0817,0x1cb91cc1,0x31c0ec8,0x31a25a1,0x10c710c8,0x10c908d1,0x10c7167d,0x167f08d3,0x7dc10c6,0x7db07da,0x16090857,0x1615101d,0x102f0866,0x10a41662,0x28a710a7,0xa6513f0,0x1eb6078e,0x2801eba,0x1c212680,0x69625dd,0x6e90692,0x6ea263b,0x2651247c,0x7db247b,0x1f0307d8,0x106608f6,0x17cf16a8,0x7f407fc,0x7f017cf,0x20ab1f1f,0x2951c72,0x27b5136a,0x6f1131f,0x24362434,0x242b06a3,0x1e5a240e,0x110d1e6f,0x1e6c156e,0xc43111c,0x10ff1e72,0x2230ff0,0x10e71bff,0x16a108ef,0x111c1e78,0x1e721e6c,0xc440c43,0x157b110a,0x1160111f,0x2990298d,0x115e0b9c,0x298c0ba1,0xb9c115e,0xb5f18e2,0x2962295f,0xb670b5f,0x296318f3,0xb5318d1,0x297d0b8d,0x11911151,0xa5d1156,0x12de0a89,0x29be1190,0x896117b,0x898107c,0x16420896,0x2095107c,0x20960285,0x876103c,0x24e41046,0x76b076c,0x1c590283,0x1c5c2093,0x20961c5d,0xd26200d,0x1c620d27,0x2890288,0x1ffd001c,0xd250d13,0xd262009,0x1ff22a12,0x2a0c2a10,0x1ff22a10,0x2a0c0016,0x162a0d,0x2a0e0d0d,0xd0d2a11,0x2a141ff3,0x180d0f,0x2a140d10,0x962a15,0x2a8e0da1,0xdad0dae,0xa600a2,0x2a9a0099,0x2a9800a2,0xd4c0dae,0x630d5c,0x2931c6c,0x19521b92,0x23c023a8,0x3e90472,0x4722147,0x214703e9,0x2bb1ce1,0x2990eb6,0x1c7620b4,0x1c6920ad,0x29701af,0x1c6b1c72,0x26ba1c3f,0x29b0262,0x1c81029c,0x29b20bf,0x1c811c81,0x20bf1c8e,0x20c520bc,0x1c7802a2,0x20c51c7e,0x2a120bc,0x1c8520bb,0x20d002a9,0x1c901c93,0x20d41c92,0x2ab02af,0x2ab20d7,0x20dc02af,0x1c941c8a,0x1c3b26a9,0x22ee0258,0x58d058a,0xa6012de,0xee713ec,0x1cdf0ee9,0x75e24ec,0x16e91f84,0x5840583,0x1c940284,0x1c9c2093,0x2b41ca5,0x2bb0eb6,0x2b71ca5,0x2b80eaf,0x1ca10eb1,0x1ca002b9,0x1ca102b9,0xeb40eb5,0xeb20eb3,0x1ca20eb4,0x1ca402bb,0x1cb01ca5,0x2bd02bc,0x8ba1662,0x10b01660,0x166a10b8,0x10b0166c,0x166a166a,0x166810b8,0x1ea41ea6,0x26651ea5,0x6ce266d,0x240a06b4,0xeb52608,0xeac02f0,0x1cb202c7,0x10b51cb4,0x166e166f,0x10fa0893,0x165c1087,0x10ab1667,0x184a2505,0x165c0dd0,0x8b5165e,0xce00d2,0x11a30dd9,0xd0119e,0x1d8f1d85,0x160705c4,0x8581025,0xeea02e5,0x18860ee8,0x25402544,0x1cc502d7,0x3661cc4,0x3460e49,0x186b11b3,0x11b311b4,0x11b700df,0xde11b5,0x28a80de9,0x13e92881,0xde60de8,0xea20dfc,0xc8d1912,0xdfb00f5,0x25b811cd,0x3361d28,0xdfd00f6,0xf611cf,0x18880dfa,0xbbf1184,0x120429aa,0x256e2565,0x11221e6f,0x18a50c47,0x11f1255e,0x11d911d7,0x11d7254c,0x11d911d8,0xfd254b,0x188900ff,0x254b11d3,0xe01254a,0xfc1889,0x1889254a,0x188a00fe,0x188911d4,0xff254b,0x25540e17,0x1cc7010a,0x1cc60eda,0xed31cca,0x15ff1cc9,0x100d1014,0xedd1cc9,0x1501cd1,0xf210f24,0x18940119,0x81211f6,0x17f317e8,0x289b0a78,0x120b0a79,0x120a0107,0x21ca1a27,0x1b170475,0x239023a,0x12111215,0x20b71213,0x20b81c74,0x25ec068f,0x1cdc25eb,0x2ec02e8,0x1c7920b0,0x20bc20af,0x1c7820b2,0x1ce002b7,0xeb21cdf,0xeb30ef3,0x1ccb0ee2,0x207e1cd5,0x20900db1,0x2fd02fe,0x257d2586,0x257e1ceb,0x258002f5,0x2f51ce5,0x2f602f7,0x258302f7,0x2fa2582,0x2f92585,0x25871ce4,0x1cea2581,0x2fa2585,0x2584257f,0x9691ce6,0x12cc12d2,0x7750760,0x3101f87,0x259b030f,0x25930314,0xfa8030d,0x3142593,0x31301d0,0xf3c1cf7,0xf421b32,0x29d20c7,0x1e6620d3,0x156d156e,0x25962594,0x1cfa1cf7,0x1cf52595,0x10bd10c0,0x31808cd,0x1cf901cc,0x1d0325a8,0x25a21d04,0x259a259c,0x1cfc01d0,0x151a25a1,0xc200c18,0x151a1e41,0xc180c20,0xc201525,0x15261e41,0x1d050c06,0x31d25a9,0x1d130336,0x25b225b8,0x25b90336,0x1d0b031f,0x3220323,0x25a6031e,0x25af1d0e,0x25ad1d0d,0x1d0a0325,0x14e40c76,0x1d2914f9,0x33f1cea,0x25b61d11,0x25b5032e,0x1d120334,0x25b625b7,0x25b225b9,0x25b10331,0x25b40332,0x1d14032c,0x1d19033a,0x3350337,0x1da725bb,0x2345233d,0x33a1d1d,0x33d25b3,0x2fb02fc,0xef10eb6,0x4102bb,0x2a4d2026,0xd452026,0x22d82a4d,0x56b16cd,0x7f807fa,0x92517d4,0x12871288,0x1d151d1b,0x7860337,0x12321eb4,0x6a606a0,0x114d243b,0x29991169,0x1020085d,0x86a0862,0x161a0868,0xe2088,0x194400a1,0x6390660,0x12a1094b,0x12a10948,0x948273b,0x167508c1,0x275808cd,0x12c30966,0x30cf5,0x1dcf0001,0x1dd60603,0x1472132f,0x71f1473,0x266d06cd,0xadb1454,0x6cd0ad8,0x266d247e,0x23f12645,0x6fc2656,0x25cc2656,0x23f12656,0x89525cc,0x16280891,0x14540ad9,0x165c13e6,0x10a010aa,0x86c1603,0x25410852,0xdfd11cf,0x937272e,0x78b1294,0x78d078a,0xd6b0d52,0x78e005a,0x1eb61225,0x91b1281,0x9212719,0x9350920,0x12b112b2,0xc630952,0x14ed0c60,0x9f809f2,0x3a71388,0x270403a1,0x21c60459,0x153d044e,0x1e4a152a,0x10b41674,0x10b610b5,0x16741673,0x3520e51,0x3d20e54,0x3d40473,0x1f0a1f04,0x1a4707d4,0x4751a29,0x1f57082c,0x8571f5a,0x8581607,0x1f941f82,0x121d1f92,0x12161ea1,0x7780777,0x65e121c,0x64b064a,0xe530351,0x35a0e41,0x3470349,0x12311eb3,0x78c1236,0x12181e9b,0x1e9a1218,0x78c0790,0x78d1ebe,0x87d0889,0x1452088a,0xad71324,0xe44036e,0x1e8b034d,0x12691596,0x12511250,0x159614e7,0x14e71250,0x14dc14df,0xc6014de,0x126814e4,0x1e820c54,0x12591587,0x158714dd,0x14d70c51,0x14ea1e7b,0x14eb1250,0x1e871590,0xc5e158d,0x158d1590,0x1e7e1259,0x126314db,0xc5f158f,0x125c125d,0x12571e80,0x125614d7,0x14e71596,0x1e8b1269,0xc6314e4,0x12680c60,0x15981265,0x1e8d1e81,0xc681596,0x1e901e90,0x125014eb,0x12531581,0x127414ea,0x15a41e98,0x12740c73,0x126c15a2,0x126315a1,0x14d90c6b,0x1e981256,0x12751e88,0x125514ef,0x158a1e8c,0x15991e8e,0x14e814fa,0x1e8414fb,0x1e821e95,0x15531543,0x1e401524,0x15121553,0x14b814b6,0x126314b7,0xc740c5f,0x2153212d,0xc6503b8,0x1597127a,0x14e115a1,0x12781263,0x14e71269,0x12781279,0x159514e7,0x1597127a,0xc5c1e85,0x162b1273,0x106e1642,0x12a10945,0x2741273d,0x94c094b,0x26220730,0xe722620,0x369036a,0x1c1b26cb,0x242e027d,0x266c2622,0x289c289e,0x18d01408,0xb5618d1,0x146e0ab8,0x36828cf,0xe430366,0x279f2795,0x11ff098e,0x25672564,0x35d0376,0x27490355,0x9241288,0x3e2a1d,0x956001a,0x9570953,0x14d7126d,0xe501257,0xe5f0e5b,0x8570856,0x1686101c,0x87b10ce,0x2890288c,0x26d813fc,0x38026f7,0x19d103b8,0x178d19b0,0x1ee0178f,0x9932796,0x117f0ac9,0xbdb0bdc,0x27af099c,0xb54099d,0x295718cb,0x27cc09b7,0x9b927cd,0x13331334,0x1317099b,0x131d27b0,0x27b1131b,0x99f131b,0x99f27b2,0x9a0099e,0x9bb1337,0x133d1338,0x133f1330,0x27bd27d5,0x62927bb,0x1e18190e,0x27d41344,0x26ea27de,0x26e70390,0x13471326,0x9a41346,0x9a01318,0x9a51318,0x27e61317,0x134027db,0x27dd27ea,0x135109bf,0x134209c9,0x9ca1344,0x38327eb,0x26da0393,0x9ca27ec,0x9c027de,0x27ea27eb,0x9a627e1,0x135f27b8,0x9e5136f,0x280909de,0x136b2808,0x9e81370,0x1371135c,0x282009e2,0x9f7137c,0x136c09ea,0x136d280b,0x9e409d3,0x138b281a,0x2810138a,0x138b138c,0x282409ef,0x136f09ed,0x280609d6,0x13812822,0x13832823,0x137809fa,0x9f41376,0x9e909f5,0x13831375,0x9ee1374,0x9e809ef,0x137f2818,0x9e4136d,0x2811137b,0x9e509ec,0x28162808,0x1380137d,0x137609f4,0xa0313ab,0x13730a05,0x281a2810,0x139813aa,0x144f0a03,0x28e1145b,0x138c138b,0xa010a10,0x28322833,0x28302832,0x13951395,0x13840a00,0x13952832,0x28361384,0x139a0a04,0x139b139a,0x28392836,0x283813a0,0x9fc09a7,0x9fb1396,0x139409a7,0xa07138e,0x28262837,0x2837138e,0x138613a7,0x13901387,0xa07139d,0x9fb139d,0x26871394,0x1c1d1c1c,0x140b1419,0x27cb28b2,0x9b609c6,0xa032822,0xa081398,0xa0513ac,0x9f62813,0x2844281f,0xa0a0a08,0x13af0a0e,0x13b213ae,0x1393282d,0x284f0a18,0x284113ba,0x284813b4,0xa1c0a14,0x28442841,0x13b313b9,0x13af13b5,0xa160a17,0x13ad13b9,0xa1d2845,0x284613b1,0x28450a20,0xa1a2843,0x13aa0a15,0x13a9284c,0x284a0a19,0xa14284f,0x284b284c,0x13b32843,0x284a2849,0x13b42848,0x13b713aa,0x284d0a21,0x13ae0a16,0x13b72842,0x13ac13ab,0x284213b6,0xa2b0a24,0x97f13be,0x278009a1,0xa2a13c1,0x13c413c0,0xa2913c2,0xa262856,0x13bf0a28,0xa232856,0x285a13c1,0xa2c0a2f,0x285513c5,0xa302853,0x13bc285c,0x285d0a31,0x2861285d,0xa2f0a3c,0x13cb2863,0x286213d1,0x286213cb,0x13cb0a2f,0x13c713cd,0x286a13cc,0x9221283,0x28640a3e,0x13bb0a3a,0x13c9285f,0x13ce2869,0x286a0a36,0xa372861,0xa37286a,0x91213cf,0x286a286b,0x284d0a43,0xa3f286d,0x13d00a3d,0xa38286b,0x286b0a39,0xa3c2865,0xa4113b7,0x13b313d4,0x286c13d5,0x285e13bc,0x13d60a32,0x13d92875,0x28770a44,0x286e2876,0xa4a0a47,0x13dd13d8,0x13d32878,0xa400a46,0x13db0a41,0x13d50a49,0x13da0a48,0xa4b2874,0x13da0a48,0x28732879,0xa492879,0xa4c13db,0x12812718,0x13dc287a,0x90f0a49,0x287a127b,0x127d0917,0x13df13df,0x287813de,0x91f2714,0x127b287a,0x287a2714,0x127f2719,0x12840a4c,0x287b1282,0xa4c2877,0xa4c2876,0x13d90a47,0x28a01498,0x283b1499,0x283c2854,0x282b13c0,0xa4e283c,0x287c0a50,0xa522880,0xa570a51,0xa530a58,0x13ee28a5,0x17901409,0x17931796,0x1edc1788,0x19ba178c,0x19d519d1,0x16240871,0x2625103d,0x243606d6,0x87d106a,0xb25088a,0xb260b24,0xa8f28b9,0xa92141f,0xa9a0a91,0x14261417,0xa8d0a93,0x28c00a8c,0x28bc0a8b,0x14131414,0x14210a9d,0x142028ba,0xa940a89,0x28ae1410,0x140f0a94,0xa9928b3,0xa85140e,0x140e0a95,0x140d0a97,0x28b628bb,0x291c148e,0x28bd148f,0xa8328ab,0xa8328bd,0x28aa0aa1,0xaa10aa3,0x1dfc237d,0xa9e061e,0xa9f140c,0x28bf28aa,0x14160aa4,0x142628c0,0x28c01424,0x14150a8c,0x28be0aa2,0xaa01415,0x140f0aa2,0x28b30a95,0xaa01414,0x142328b0,0x14220a8a,0x141c1410,0xa9d141d,0x142028af,0x1412141e,0x18b11411,0xe2b0126,0x25682567,0x19dc18b1,0x1abb223e,0x8871071,0x4581072,0x1a3a21c0,0x275a12c8,0x83e0968,0x1f790841,0x1f770841,0x93b1821,0x129a0a6a,0xdfa253f,0x236a0df9,0x17522368,0x1224121c,0x121c1e9c,0x121f1e9c,0x21db21d9,0x23671a59,0x1750174d,0x263f2640,0x1dd02455,0x23632364,0x130a279c,0x7d51493,0x7d807d6,0x145128e8,0x14600ae7,0xae728e8,0x28ec1468,0xaa70aa9,0xaef28ec,0x143a1469,0x28f528cf,0x28f428c3,0x146d28ed,0x148e27d1,0xb171480,0x1363134d,0x27d31364,0x13390af4,0x136109c8,0x28fc09d8,0x9bb1338,0x27c71474,0xaf209b2,0x28f0146b,0xaf227c4,0x6031471,0x6001dd6,0x9df09ca,0x26ca1369,0x26c81c53,0x14941493,0x29021491,0xb111495,0x290e148b,0x276b0b13,0x149a149b,0x149e0b1c,0x9800b1a,0xb1d2921,0x27730966,0x1606293c,0x101e1020,0x10211020,0x12a9101e,0x12a812b1,0x27e827d2,0x292a1335,0x14a314a8,0x27f11328,0x27f11347,0x13351329,0x147a146a,0x10ac147b,0x166908bc,0x10be1677,0x8cd10c0,0x167b10c3,0x1631106b,0xe371633,0xe390e3a,0x20ec29eb,0x13220ea,0xe370e3a,0x22d716c8,0x66f056f,0x24610684,0x6011751,0x66f235f,0x6da2461,0x134027cf,0x1ab209b9,0x216a040d,0x7ff0800,0x182217e1,0x83e181c,0x71b2482,0x7ae0715,0x179407ad,0x187b2536,0x8cb187a,0x10bf08d3,0xec2536,0x24ff0df9,0x18442501,0x27302742,0x236f094e,0x5f91dd8,0x25990315,0x2a6d0fa8,0x2a70204f,0x27c928f4,0xdeb09b7,0x25282523,0x1f681819,0x14421815,0x14430ac4,0x290d0b02,0xaee2937,0x27c91331,0x293714c5,0x133914c4,0x9ba28fa,0x139c293f,0x2881283d,0x13e913e7,0x134d09b3,0x27ca133e,0x9be09c7,0x13e213e7,0x294013e1,0x14c90b42,0xa0b280c,0x14d213a0,0x14d12947,0x28391377,0x13922838,0x29410b43,0xa1114ce,0x29440a0d,0x9fe1391,0x28402948,0x2947283f,0x13a7283f,0x213f2139,0x14c82143,0x29382939,0x14fb14e6,0x158614fa,0x1e81125b,0xc521599,0x14f714e0,0x15a714e5,0x282d1393,0x14e8282e,0x15971595,0x1e890c62,0x14d81267,0x125614d7,0x15221511,0xc681e31,0x15961250,0x84d0871,0x1f55100f,0x1f5607e5,0x1e981e88,0x19a61591,0x3cf199e,0x1e7b0c6a,0x211214d7,0x3b603b7,0x211203b7,0x19fb03c7,0x41b0419,0x19b403e3,0x212019b3,0x21232122,0x199d2120,0x211d2125,0x19a4212d,0x2109210a,0x3cf1976,0x19a62126,0x26992693,0x19a62694,0x19bc19a7,0xc620c78,0xc120c77,0x153f0c11,0xc0a1504,0xc0a1e2d,0x15081501,0x15081507,0x15071534,0x1538150a,0x15081534,0xc0c1501,0x1500151e,0xc071e38,0xc351e2c,0x154d1532,0xc1a1516,0x15060c1b,0x15051537,0xc151516,0x15181518,0x1e350c15,0x15481542,0x153e1515,0x1e3c1e3b,0xc13154a,0x1537151d,0x1505154b,0x15201507,0x10b11508,0x8c110b7,0xc1f1543,0x1e310c18,0xc111523,0x154e150e,0x14ec1e2f,0x15941e99,0x22c322c7,0xc6822c2,0x12791278,0x159015a3,0x1524158d,0xc1f1557,0xc1b151b,0x1519152d,0x1e431e29,0x15221523,0x153f0c29,0x152c152b,0x1e4c1e3f,0x15111552,0x1e4c1552,0x15281509,0x15211e2e,0xc1e1e48,0xc271550,0xc241e49,0x1e491520,0x15501520,0x1d161e49,0x1d0f1d17,0x15491542,0x15531545,0xc2a152c,0xc241521,0xc0a1e46,0x15211520,0x1e3a1546,0x110a0c1b,0x1e591579,0x11060c4d,0x150b1107,0x1e301510,0x15080c1d,0x15361536,0x15341508,0x15331508,0x15071501,0x15341536,0x15361550,0x15081507,0x15331551,0x15240c18,0x15511525,0x1e491520,0xc1d1520,0xc1d1e49,0x1e491550,0xc1c14fe,0x154d1e45,0x1e47154c,0x151e0c25,0x151c1e3d,0x154a1e4d,0xc1b151c,0xc27152d,0x1556154e,0x1e460c0b,0x15051e48,0xc26154b,0xc240c09,0x1e491e46,0x15510c24,0x109d1664,0x156808b4,0x15670c32,0x15641561,0x11021e53,0x1101155e,0x1e511101,0x19ef1e52,0x4cc19d9,0x110a110c,0x151d110b,0x1e4d152d,0x11071108,0xc481e58,0xc361e5f,0xc501e64,0x20750c3a,0xda52084,0x157b111f,0x15611e69,0x1578111a,0xc3f111e,0x1e711119,0x1e6c1e78,0x1e711e72,0x11020c43,0xc4b1119,0x11071118,0x11090c3d,0x1e55157a,0x15720c38,0x1c620c3c,0x1c64209f,0x157e1568,0x15961e5e,0x159414e7,0x1e8915a7,0x14f714e5,0x1e891267,0x1c601c59,0x15842099,0xc51126f,0xc760c61,0x15a21265,0x1e85158d,0x15a2158d,0x15a315a3,0xc5e15a4,0x15921e99,0x19d41594,0x40519ee,0xc851e12,0x21680c89,0x40a2169,0x19e5216c,0xe8703fc,0xe88113e,0x15ce15cf,0x1e310e81,0xc111523,0x19fb041b,0x19140419,0xcae0cac,0x15c50cb9,0xe7415c3,0x15eb15ec,0x1a021a03,0x15b72174,0x15ec15eb,0x3ae2100,0x41d03af,0x41f19ff,0x3ae03af,0x210020ff,0x197203af,0x19fe041e,0xcd319fc,0x15dd0cba,0x10b010b8,0x21841672,0x1a16218b,0xe320e2e,0x17b70e2c,0x1f091f01,0x5cb1d77,0x129b05ae,0x93c2732,0x21981a1f,0x108921ac,0x108a08a4,0x1a2921b4,0x16261a47,0x8751048,0xf720f71,0x95a0f70,0x95b0958,0x43e0422,0x45f1a35,0x3ed214d,0x199c1a38,0x46703d3,0x1997198f,0x44c0466,0x19d30463,0x3f103e3,0xe23011d,0x252c11fa,0x252a252d,0x82a1f4e,0x240e082b,0x6a506a2,0x96212c4,0x21aa2756,0x1a3521b9,0x21ba21a7,0x1a3921a9,0x4571a2d,0x23731dca,0x4b41ddb,0x1a901a9e,0x2603241c,0x67e2602,0x263a06e7,0x8031f31,0x24521f32,0x25cb06ef,0x23ef0693,0x20b123eb,0x1c6d1c6c,0x219f0449,0x25332196,0x11bc1876,0x219519fd,0x86c1a1d,0x16030852,0x21f721fb,0x3cb1a74,0x1a7321f8,0x4b321f7,0x1a6d1a74,0x1a6c21fd,0x4ac1a6e,0x4a71a75,0x1a6f21f9,0x1a7804aa,0x1a7304b3,0x4ab1a78,0x4ac1a8e,0x1a7304bf,0x1a771a76,0x4ac1a6f,0x19b921f2,0x1a7e1a83,0x1a8019ab,0x3da2209,0x4b52214,0x221721fb,0x4ad1a8c,0x4bd1a8c,0x4b204bf,0x22202218,0x1a9e1a8f,0x4c321ff,0x1a8c1a96,0x4bd04ca,0x22231a8b,0x220b04cb,0x1a9b221e,0x221b04b9,0x27411a9a,0x12a212a3,0x1ef717a8,0x69d07c5,0x2488248a,0x1eba1eb8,0xd020789,0xd040dad,0x4c719ed,0x115c04c9,0x299c2994,0x22220407,0x129e2221,0x9422736,0x1680167f,0x3d08d5,0xd3e206a,0x103d1010,0x222f1047,0x222e03f5,0x273e094b,0xa8812a1,0x28a80a5d,0x45921c6,0x222c046f,0x1aa62154,0xf411b3d,0x1c2c0161,0x1c280248,0x182924f3,0xdb6182b,0xaf0db7,0xdb91827,0x16470db7,0x107c0898,0x4e02250,0x679224f,0x26620711,0x1ac31ac6,0x4ff224b,0x4fd1ac2,0xe730e55,0x1ace0365,0x1acd04f9,0x21fd21f8,0x5081a76,0x4dc2243,0x19872259,0x4f41ade,0x3f7215f,0x1982226b,0x197a0523,0x5210522,0x524225e,0x19961982,0x1adf1aea,0x4fe1adc,0x3e61ac2,0x51d0519,0x5000510,0x22711ac6,0x22730529,0x165708b2,0x22321099,0x4fd04ff,0x4fc1ab5,0x11702245,0xbab2998,0x169608e4,0xdb610e8,0x182700b3,0x18420dc6,0xdca183f,0x1842183f,0xdcc00bf,0x6741844,0x6e70673,0x5f70602,0x253a1dc7,0xdf700ef,0x188200ec,0x19a9253a,0x1af1227a,0x252d252c,0x113a252a,0xcc415e3,0x187211be,0x52f252a,0x19cf2105,0x2148227b,0x27bd03ec,0x9a81321,0x679067a,0x165c06ff,0x166708b5,0xae028e5,0x17de145c,0x8011f26,0x1afa2286,0x21ec1a63,0x1af9049e,0x22841a62,0x10b81af7,0x10b710b0,0x874161d,0x2a501620,0x870d29,0x227d1a66,0x7ab227c,0x178f1791,0x2731093c,0x98a093b,0x28ab0a83,0xb720b7b,0x1f112975,0x17c91f12,0x26780725,0x1810267a,0x1f640832,0x24912678,0x1991267a,0x5421b07,0xbcd29b7,0x277b0bd3,0xa8e1416,0xbdc117f,0x11810bdb,0xbc80bc9,0x119129b7,0x10fd118e,0x10f908ff,0x211e229b,0x10df229c,0x1699169b,0x17e017de,0x15fc17df,0x84f1602,0x1602084e,0x174c1012,0x174d2363,0x128d1290,0x1f35128c,0x1f370815,0x160e102b,0x863160d,0x1022160d,0x865085e,0x10331611,0x86a1035,0x24562628,0x1640246c,0x107b107d,0x16341076,0x17de106f,0x1f260809,0x8ae08b0,0x181108af,0x82d1f58,0xbd50bd4,0x1d5229a6,0x22e622e4,0x275712c7,0x29ec0964,0x29ed2945,0x238d1df6,0x89415f5,0x107e1641,0x26562653,0x253506fb,0xe92532,0x4702147,0x25360472,0x11c90df9,0x10151016,0x1ea815f8,0x121f1ea7,0x1d691701,0x101b2304,0x16051028,0xb640b62,0x16182967,0x10311616,0x862086b,0x8ab1616,0x8ac109b,0x101a161e,0x17d9103f,0x17d51f1e,0x17d617d5,0x108317d9,0x16491084,0x8c408c5,0x88808c3,0x88a0889,0x1077088c,0x10751636,0x10771636,0x8e01693,0x107510d9,0x88d1635,0x8e410d9,0x17521693,0x5ff1749,0x84d0871,0x1662100f,0x8ba10a7,0x277a097c,0x16600a8e,0x165b165a,0x176e054e,0x8de1769,0x16921690,0x95512ad,0x8af12ac,0x165508ad,0x165408ad,0x16551655,0x16561094,0xc8d0ca3,0xdfd15ef,0xdfe0de6,0x22b41763,0x162d054b,0x10af10ad,0x107f0891,0x1072107c,0x10701073,0x16741670,0x7f61673,0x7fb1f18,0x177022a4,0x22a622a3,0x54c22b5,0x22b51767,0x83c055b,0x1f72083b,0x22b822ad,0x177122ac,0x1776054d,0x167d10c9,0x8d410c7,0x10c808d1,0x8d1167e,0x10c708d2,0x10c908d4,0x176522b6,0x10ef22a9,0x10f110f4,0x8e608e4,0x8e410db,0x169310d8,0x269c0255,0x96126a8,0x9640933,0x551055a,0x1816054f,0x1f711818,0x1077088d,0x7c51075,0x17a807c7,0x275012be,0x8c0095b,0x8c21670,0x209222bc,0x256c055e,0x1213257b,0x8b908bd,0x179708be,0x7ae1ee8,0x18011800,0x8291805,0x1f4e082b,0x1ea1121a,0x169d121d,0x1697169f,0x12ba12b8,0x130a095f,0x14930b0b,0x7c407c2,0x244917a4,0x263206de,0x17ad17ab,0x22d307ca,0x22c922ca,0x16a708f1,0x90808fa,0x9050906,0x9050903,0x8a20906,0x164b164c,0x1ef917ae,0x17ad17ad,0x17ae1efa,0x10921651,0x15fa1098,0x15fc15ff,0x1f1507e5,0x7db07ef,0x17bb17bc,0x1f0517bb,0x128807db,0x12891287,0x16ab10f6,0x168516a9,0x8da1689,0x1f0617bc,0x273107da,0x93e093d,0x57716da,0x1d4816d9,0x16d2057f,0x577057f,0x16dd16d2,0x1d4c16dc,0x16d116d7,0x22de16d6,0x22dc1d49,0x16d6057a,0x16db16d1,0x16da16d4,0x16d5057d,0x16de057e,0x1d4a16d8,0x1f501f61,0x11d01f64,0x11c200e0,0x179507b4,0x8f007b1,0x8ef16a1,0x16a010e6,0x1f0316a1,0x7d317be,0x174f1753,0x1efe1dd7,0x1f0507db,0x12931292,0x27382728,0x273a273b,0x94c0948,0x1f55094b,0x180b1806,0x11c300e4,0x180d2529,0x8301803,0x12c212c6,0x3d02755,0x216e1a72,0x1d101bd,0x12d00313,0x12d3275f,0x12be095c,0x25292750,0x252c00e4,0x11f52505,0x86c1196,0x862085d,0x11f40117,0x22fe11f5,0x22ff2300,0x16f90599,0x16f6059a,0x16f716f8,0x230116fc,0x16f505a2,0x16fa16fb,0x1d66059c,0x1d5b1d65,0x59b0599,0x23011d67,0x27b22303,0x99f099e,0x5a905aa,0x9a405a8,0x99e09a0,0x10f610f1,0x16d516a9,0x5751d41,0x9f409fb,0x138309fc,0x2826138e,0x139a0a04,0x28322836,0x28341384,0xb4d294f,0x13ae0b4b,0xa160a22,0x138d2824,0x13b313a1,0x28442843,0xa1a2843,0xa210a15,0x13b713ab,0x20280040,0x13c20041,0x13c313c4,0x1d782314,0x1d7a1d79,0x231b231a,0x1a3f0469,0x2311046b,0x1d7c1d7b,0x1d751d78,0x170e170a,0x5a61d6c,0x23151d6c,0x5ac230d,0x1d6d2311,0x5a82317,0x1d711706,0x5ab05aa,0x1d841716,0x5c02327,0x23242325,0x5c21d85,0x5c01d8e,0x1d8f1d86,0x1404289b,0x17160a79,0x1718171b,0x232f2327,0x2328171b,0x1d941d91,0x5c7232a,0x5c21d92,0x171a05c3,0x233005c4,0x29b1717,0x1c81029c,0x23be0646,0x17151948,0x1d881d96,0x1d9305c1,0x232a1d86,0x1d8d1d90,0x1d941d8b,0x1d891d95,0x232f232e,0x1d951d8a,0x2325232e,0x23241d97,0x5c52324,0x1d8c1d87,0x1d91232d,0x232b1d86,0x1d8d1d8f,0x2329232d,0x5c61d8f,0x5c305c4,0x171a2330,0x89a1083,0x5ce1084,0x5cd05cc,0x17242338,0x5cd05ce,0x1da005cf,0x46a1a44,0x140121c0,0x28980a74,0x6c206bd,0x5ad2436,0x5c9171d,0x1d9f05ad,0x5ca171d,0x170f231d,0x2313231f,0x5b905af,0x17081709,0x171105b0,0x12b105b6,0x12b612b2,0x1d3422cf,0xa7816c1,0xa79289c,0x180d1f59,0x1d2e0830,0x22c422c1,0x22c422cf,0x1d2e22c1,0x1d2d22ce,0x57722dd,0x5681d43,0x1d351d2f,0x1d330568,0x1d321d32,0x22ca16be,0x16be22c9,0x16c20560,0x1d2a0560,0x22ce1d31,0x16c60567,0x1d3422c0,0x1d2b16c2,0x5660566,0x16c30561,0x22c01d30,0x16c422cb,0x22be0561,0x56522c5,0x16c41d30,0x22cc22bf,0x56322c5,0x22c60564,0x5630562,0x22bf16c5,0x2c216bf,0x2c50ebf,0x95712b8,0x1d4e12ba,0x22e216d9,0x1c821c7b,0x1d6420c9,0x59b1d65,0x20c020d3,0x28c002a4,0x14240a8c,0x14160a8e,0xaa01426,0x28b01415,0x14230a8a,0xa850a8b,0x140e0a97,0xa9c0a9e,0xa830a84,0x28ab0a9f,0xaa30aa4,0x142528a9,0x140b0a82,0x14201413,0x141e0a9d,0x14111412,0x141e28b5,0xa941411,0xa87141c,0x5a5230b,0x5a51703,0x1d75170a,0x1d961715,0x17051d88,0x5b105ab,0x231f05b8,0x232805b7,0x1d941d91,0x233005c4,0x5c11717,0x1d861d93,0x232f2327,0x2325171b,0x23241d97,0x1d89232e,0x1d861d8a,0x1d8f232b,0x232a05c7,0x1d811d8e,0x1d8205d2,0x1725233a,0x17251da1,0x1da11728,0x1da21729,0x5d41da3,0x1da21da3,0xeda1cc7,0x5d61cc6,0x5d2233f,0x5d92344,0x5ec2342,0x5ee2354,0x28fe0a9c,0x1da3147c,0x1729172e,0x5d8172d,0x173005dd,0x17311700,0x23072347,0x1dac05a3,0x5d51731,0x173f1dc1,0x1db51dbe,0x1733173b,0x1dac1730,0x5a11daa,0x22f51db1,0x1d62234e,0x230005e6,0x5a02349,0x59805e1,0x5ea16f7,0x1dbf05e9,0x22fe1db4,0x5e322fd,0x173522fd,0x1db322fd,0x1db905e8,0x5e205e8,0x1db205e2,0x5ea05e7,0x1736234a,0x234b05e1,0x23481db5,0x1db71db0,0x23481db6,0x22fa1db7,0x1db805e0,0x1db822f7,0x1db705e0,0x17381dbb,0x89d1642,0x234e16b3,0x234d05e5,0x1db016fb,0x1db016fa,0x1746059d,0x5e91dbd,0x1db81735,0x234f2353,0x234b2351,0x235b2350,0x234d234e,0x235b1dc4,0x2352234d,0x5ea1743,0x1dbf05ea,0x23592352,0x5ea1739,0x1738234c,0x1dc51740,0x1dcc1dc3,0x5f41dca,0x17411dcc,0x5ef1dcb,0x174c1dd2,0x6041dd4,0x5ed1dc8,0x1dc7235d,0x1dd22358,0x1dd01dd1,0x264406ef,0x175225ce,0x23680602,0x236b2369,0x1dcb236a,0x1dce1756,0x17491747,0x12451756,0x1ec91ec5,0x236b1754,0x23711dd6,0x23722370,0x23502351,0x5ea173f,0x23591743,0x22d4175c,0x60d1de4,0x1ddf1de1,0x1d440579,0x16c0057b,0x22c41d2e,0x5dd172b,0x849172d,0x15fa0851,0x147909b1,0xaf609b4,0x133609bb,0x1db105a1,0x147d22f5,0x27c209ad,0x1d6505e2,0x5e7059a,0x59a05e2,0x17361dbf,0x5e505e9,0x5e6234e,0x1db01dbb,0x1bb1746,0x1cb1bb2,0x23561dbc,0x5f105eb,0x17461dc2,0x169a0879,0x1dc21629,0x17401742,0x20c9029e,0x104802a6,0x16220878,0x2a11c86,0x234720cb,0x5df05d7,0xb2c0b3a,0x294f14a7,0xb522955,0xb4c18c9,0x15a818c8,0x127a14fb,0x294d2956,0x18eb0b4b,0x18ea0b6f,0x18ed0b6f,0xb6f18ea,0x29702972,0x18ea18ee,0x255a18ed,0x25591899,0xb720b74,0x29772974,0x29740b74,0x297718f5,0x296c0b76,0x18e42969,0x296c296a,0xb6b296d,0x297118e9,0x18e90b6e,0x18e40b6b,0xb6e2967,0x18e02968,0x18f718e1,0xb7918e1,0xb790b78,0x18ec0b65,0xb6c296f,0x18ec0b6d,0x18f20b6c,0xb712976,0x18e10b65,0x295018e0,0x29522951,0x294f0b55,0x18ca0b52,0x29510b53,0x18c50b57,0xbb30b54,0x29b41186,0x8e310da,0x8741694,0x872161d,0x8771622,0x297d1624,0xb8d18ca,0x1ef607c2,0xb8007c1,0xb4a18fc,0x29541905,0xb8c0b50,0x18fa18c7,0x297b18e4,0x18e90b83,0x1900296e,0x29781904,0x142a0b8f,0x28d00aa6,0xbbc0bc0,0x297b1195,0x19000b6b,0x10a210ac,0x298708bc,0x298b0bd2,0x11940b96,0xbdd0b98,0xb970bcc,0x18c70b8c,0x117a18fa,0xbd80bd7,0xbb729c2,0x7f229c1,0x17c707e9,0x130c279d,0x2624279c,0x6c02615,0x1f5c180e,0x29b01f5a,0xbb1117d,0x9040908,0x1f52090a,0x1f531f57,0x17df17e2,0x17e21f28,0x80107ff,0xb440bf2,0x17bd29e0,0x7db07da,0x105e29c6,0x15e829c5,0x19270c9f,0x8180811,0xbf517f0,0x29e11051,0x1f3b081a,0x17b61f3a,0x17b81f00,0x17c407e9,0x10d707ea,0x8e010d4,0x8281f46,0x8291f48,0x1f4b1f4e,0xbf720e7,0x20e329e5,0x294520e8,0x20e729e2,0x82b29e3,0x1f4b1f4d,0x20e40bf7,0x294520e3,0x20ec20ea,0x29e820ef,0xc0129e7,0x20f80bf6,0xbfc20f1,0x7df0bfb,0x17bf07d4,0xa690a68,0x29f10a6b,0xc0420e6,0x1f1207ed,0xc011f14,0x20f920f8,0x20fa0c03,0x20f329ee,0xbfa29e9,0xc0229ec,0x14880c04,0x28b30a94,0x9080909,0x81c16ba,0x17f11f3d,0x8160817,0x81017ec,0x80f080d,0x80a080f,0x1f31080e,0x80c17e7,0x81517ed,0xdd0816,0xd50de3,0x846086e,0x12215f7,0xe2a2566,0x1f5b1807,0x1eef1f59,0x17a717a6,0x108c164d,0x1226164f,0x1ebc0791,0x8aa08ad,0x6201654,0x238e1e27,0x1df11df2,0x1e282383,0x6172384,0x270f0621,0x61a2392,0x1e24237c,0x237e061a,0x6181e25,0x619270f,0x6142391,0x93e0621,0x2733093c,0x17bb1f03,0x1c561f02,0x24426ca,0x1f4f1f4d,0x20a917ff,0x1b1028e,0x2a88008b,0x4870d93,0x1a5821d7,0x1b91bab,0x1f040f9c,0x7dd1f09,0x1a71216e,0x24652171,0x26510713,0x1ec11ec6,0x2099124a,0x1c651c60,0x1624103d,0x1a671047,0x5310530,0x244b244c,0xba06e6,0x183a00b9,0xfa41bb1,0x8510f95,0x84f15fc,0xc42091,0x62400c5,0x19082396,0x19111910,0x835062c,0x1f661f72,0x11ff012a,0x275e0128,0x12d612cf,0x10ad10b2,0x1f1c10b3,0x17e417d1,0x1322575,0x1101012d,0x1102111e,0x1f551f5e,0x184f180b,0x11992509,0x119d250d,0x119f119c,0x11a300d0,0x251411ad,0xddb00dc,0x251b1864,0xda185d,0xde1185e,0x252011af,0x3780e68,0x11a70e67,0x185c2516,0xde80de6,0x25a30de7,0x1cfe1cfd,0x10aa10a0,0x79208b7,0x1ecd1eca,0xea187d,0xdf9187f,0xf60dfa,0x10161600,0xfe0851,0x254b11d4,0x11dd11de,0xe1a0104,0x11e411e5,0x188f188c,0x21c21891,0x1a460474,0x189d189e,0x11ed11ed,0x189e0e1c,0xe1e11f0,0x10a60115,0x8bb10a8,0x1b780f79,0x18bb1b66,0xe3b18bc,0xdfa1888,0x4e900f8,0x2237222e,0x18ad0125,0x1f450123,0x18071802,0xcac0e74,0x2361913,0x2371c03,0x115b2994,0x115d0b9f,0xb9e2996,0xef21c9e,0xb540eee,0x18cb2953,0xfe11bec,0xb521bee,0x2955294e,0x2978297a,0x18ff18f8,0xb880b8d,0x48e1a55,0x1a521a4f,0x48b0483,0x19a603dc,0x18ed2127,0x29700b6f,0x18e90b6e,0xb650b6b,0x18e018e1,0x2969296c,0x119118e4,0x11561157,0x18ec18ff,0xbc718fe,0x29af117c,0x19411953,0x24761954,0x2471070f,0x265c070f,0xea92471,0xcd315dd,0x23bb1940,0x23ad193f,0x23aa23ab,0x193e0640,0xbbe0641,0xbbf29aa,0x23af23b2,0x193b23ae,0x193c063f,0x64023b2,0x194a063f,0x64c064b,0x194a194c,0xcba064c,0x15de0e96,0x1e6c1e78,0x1bb1e71,0x1ba1b9b,0x23b61939,0x1945063e,0x19470647,0x23bb23c6,0x23c5064e,0x23c623be,0x195423bc,0x194f1941,0x23c423b7,0x19511942,0x19531940,0x23bd0645,0x196a0661,0x211323d5,0x210803d9,0x23cd1956,0x32e0652,0x25b61d11,0x6591950,0x65c195c,0x23d323c9,0x2731c4b,0x195e026e,0x195d065a,0x196023d2,0x19611961,0x23d21962,0x19590655,0x23d20657,0x1959195a,0x195a065b,0x19591962,0x23cf063a,0x23c3065b,0x19351963,0x23b10656,0x11cd00f2,0x19680df7,0x23bf1938,0x23dc066a,0x23dc196c,0x23dd23e3,0x65423b3,0x6660657,0x66723e4,0x6611933,0x636064c,0x23b523d1,0x7e717c1,0x23aa1f0b,0x65223cc,0x193e195a,0x63723b4,0x6541958,0x195f23b8,0x642195d,0x193323cb,0x19b319b4,0x211103e3,0x211e2110,0x214f1998,0x3e3214e,0x19a119b9,0x4a004a1,0x212104a2,0x199d2120,0x21202122,0x21092121,0x1977210a,0x19cf19ce,0x19cd19cd,0x3b52105,0x197d03bd,0x19d5197e,0x19ba03e5,0x19d619d5,0x3ae2156,0x3ad2100,0x1f9a1f98,0x1a071f9b,0x2180217f,0x218d0435,0x288f1a17,0x13fb0a71,0x46121a0,0x21a00463,0x46121a1,0x21bd21a3,0x1a4321bf,0x46e1a41,0x21c719aa,0x19dd1a42,0x1abc04f5,0x26712483,0x47f266c,0x4800481,0x47d045b,0x58a21d1,0x58d16f0,0xf2c0f2b,0x48b0153,0x1a5a21d6,0x21dd048d,0x190821de,0x6241907,0x18990110,0x1943255b,0x23bd1941,0x1a6b1a69,0x1a641a64,0x21eb1a6b,0x21eb21ea,0x21ed0499,0x1a621a66,0x1eb7123b,0x4b71237,0x1a7f2207,0x1a7e19a2,0x21f41a7a,0x4af21fe,0x21fe21f5,0x1a9504a8,0x221a1a99,0x21f621fb,0x4c304a9,0x1a9604c4,0x22201a8f,0x4251a9d,0x1a0903f8,0x19be03f1,0x28a419d4,0x28a3140a,0x215e215b,0x19a61ab3,0x3fd19e3,0x1ac7224c,0x25051ac8,0x11f50117,0x11410ca8,0xede1130,0x2e31cd8,0x1ac51ac4,0x505224c,0x224f2250,0x501224d,0x5091ac9,0x1acb2245,0x4fc1acb,0x1ac10507,0x4fc0507,0x226e1ae0,0x2252225d,0x4fb1ac1,0x1ae1225d,0x5111ae0,0x5121ad9,0x1ae62266,0x1adc1ae5,0x22582259,0x1ade225b,0x50e0518,0x518225b,0x50e0510,0x5101ad7,0x1ad11adb,0x1add2256,0x1ad4050b,0x1ad6050c,0x5252267,0x51d1ae8,0x22642260,0x22651ae3,0x226e225e,0x226d226c,0x526226c,0x527226d,0x226b1aea,0x1ae90526,0x1cde2262,0x2ef0eeb,0x212b2272,0x227a1aec,0x1af12279,0x4a221e9,0x19a92277,0x227a1af0,0x1af90538,0x49a049e,0x4970535,0x1a632286,0x228e21ec,0x211d211c,0x17da1f18,0x187f07f6,0x253900ea,0x11c81875,0x272800e8,0x27250930,0x83b1f74,0x3e7083c,0x19c60549,0x21451b0c,0xdf403e8,0xdf31878,0xe370131,0x25fe120f,0x241606a8,0x1f0c17c2,0x160d07e3,0x10221023,0x25682567,0x12041204,0x25670128,0xcdf0ced,0x4a10ce0,0x5382287,0x17eb1f38,0x1f331f39,0x81b0813,0x1f38081b,0x1a661f39,0x227d1af3,0x18ba2574,0xed218bb,0xece1cbe,0xf331b3e,0x12f80f3e,0x12b4277d,0x17df1f28,0x17df0802,0x80217e0,0x8060802,0x6ba1f28,0x24222432,0x64623be,0x19430644,0x23bd1941,0x23c61948,0x193923c5,0x23b723c4,0x63d23c8,0x24381934,0x72e2439,0x24282615,0x266d2413,0x247e2437,0x19b721e3,0x19602132,0x195f23d2,0x6510650,0xf4c0652,0x16b1b46,0xf501b45,0xf491b43,0xf4b0f4a,0xedc0ed6,0x17ee02e2,0x8191f3b,0x1720138,0x1b181b4d,0x13d017d,0x1811b1b,0x1b1d0180,0x1b1b0181,0xf290f2b,0x1b50014b,0x1b181b4f,0x1b500f19,0x19a1b18,0x1750182,0xf661b74,0x1b7c1b72,0xf7d1b76,0x2562011d,0x1a318bd,0xf8501a8,0x1b8e01a7,0x1a31b7f,0x1a70f84,0x1b830f83,0x1ae1b84,0x1b9101ad,0x1b8b01a8,0x1a50f85,0x1b871b85,0x1c11b99,0xf9f1b9e,0xfa202ca,0xd5b0064,0x1bd82041,0x1fe01ff,0x2a620d5d,0x8840064,0x8851073,0x1fe01f6,0x1fc0fd7,0xfd701f6,0x1bd71be3,0x1be11be4,0x1be21bd6,0x1f21bde,0xfd601fb,0x1be001f1,0x1bde01f1,0x1f31be0,0x1f201fb,0xfd11be4,0x20101fa,0x2001bda,0xfd201fa,0x1be61bdc,0x1be21be1,0x2030fdf,0x1bf3020d,0x1bf50228,0xfde0fe3,0xfca020c,0x1ed0227,0x2c701c3,0x1c0d1ba9,0x1410147,0x23d0239,0x10081c0d,0x2411c12,0x18a01db,0x2350fb6,0x1c051c08,0x1c131005,0x1bb91006,0xf61018e,0x25c225d3,0x25be23ea,0x25d30685,0x25c023ea,0xf9925d3,0x1990198,0x1bb001ca,0x1b9a1baf,0x1cd1b99,0xfa401d2,0x1841bb1,0x1b1c0f71,0x1c202689,0x1c181c1f,0x16a0f48,0xf880f85,0x13a20f84,0x13a50a12,0xf4f0f43,0x1c190166,0x26861c24,0x1c22268d,0x6701c27,0x6860671,0x268e1c22,0x2471c28,0x26871c1c,0x15421549,0x27401548,0x948094b,0x24a1c30,0x1c2e0249,0x1c2b2693,0x26932699,0x2132698,0x26992694,0x269a024a,0x20f024b,0x2481c29,0x2931c74,0x1ed1c71,0x1bcb0fc2,0x20f2695,0x24d0251,0x26a026a1,0x25d1c31,0x252025a,0x2560259,0x25c269d,0x26c9025b,0x26cf26c5,0x26b126a8,0x26b40255,0x26026ac,0x1c4726b6,0x26e0269,0x1c3f0262,0x267026c,0x26a026b,0x1c4926b5,0x26d0266,0x26c26bd,0x26b826b3,0x1c7a1c84,0x1c4b20c7,0x26b21c3f,0x1c4f26c5,0x1cc326c6,0xecb1cc1,0x27a26bf,0x20b60272,0x20a920b5,0x2711c4d,0x1c520278,0x26c41c4e,0x2530258,0x20a726a4,0x20b420b5,0x1c7320ae,0xf901c70,0x20a320ab,0x27c1c1a,0x2460244,0x1c1e027e,0x1c1b1c1a,0x26ca1c55,0x244027b,0x28ad2783,0x2880a85,0x1c5d2096,0x1ca21cac,0x19d41ca3,0x3f319bf,0x1cbe02dd,0x1c960ed2,0x1c942093,0x1c54027a,0x27d027d,0x26cb0279,0x2862097,0xbc51c5b,0x29b80bdb,0x209a1c64,0x1c2c1c58,0x1c261c28,0x1cf90313,0x28a1cee,0x209b028c,0x28d209e,0x1541028b,0x15400c13,0x1c6720a2,0x20d90290,0x20d220d1,0x1c6f20a4,0x20a41c6e,0x1c6e1c6f,0x1b921b93,0x20a30293,0x2910294,0x1c861c7f,0x2b120cc,0x20d920d8,0x6af241c,0x26a02417,0x26aa26a1,0x269f025d,0x29d26a0,0x1c711c74,0x2c61ba9,0x20b41cb8,0x1c7620b9,0x25d1c36,0x29e26aa,0x20b91c76,0x2a31c79,0x20c5029c,0x1c7820bc,0x2a120ba,0x29f20c3,0x20ca1c85,0x2a3029c,0x2a41c81,0x20cc1c7f,0x28970a6e,0x209513fd,0x28520e0,0x2a61c89,0x2ac20c9,0x20cd20ce,0x20d220c8,0x2a920d1,0x2a61c85,0x20ca20d0,0x1c9b1c85,0x20df1c5c,0x20b51c76,0x2af20b9,0x20dc20d4,0x17a707ba,0x20d017a8,0x1c8b20da,0x1cbc1cc7,0x2b01cbd,0x1c981c97,0x25126ab,0x24f024f,0x26ab0250,0x1cb90ed0,0x20d81cc0,0x20d11c8a,0x1c821c8c,0x20a402ab,0x209e028d,0x1ca51c9c,0x2b702b4,0x2b602b8,0x1ca11cac,0xeb91ca2,0x1ca60eb4,0x2761c1e,0x2e11c51,0x1cc40ed7,0x2e30ed8,0xec60edb,0xec202ca,0xecf02cd,0x1cc50ece,0x1cc402de,0x7e41f12,0x1cd8079d,0xee40ede,0x1ccc0edf,0x1cce1cc8,0xee002e6,0x1cd41ccb,0x1cd61cd5,0x2e21cd0,0x1cd91cda,0x1cd91cdb,0x1cdb02ea,0x925274b,0x1d010954,0x1d060315,0xeb302f1,0x1ce20ef3,0x258802ff,0x30f030e,0x3080309,0x309030e,0x258d02ff,0x26c61ced,0x26cf0280,0x30f030e,0xebe0309,0x1cb102c6,0x1cf42592,0x25961cfb,0x1cf61cf7,0x259f259d,0x2fa030e,0x1ce72585,0x279027d,0x25ab26cb,0x1cfe25a3,0x3361d13,0x3380333,0x1d181d16,0x32025a5,0x1d071cff,0x25a925af,0x3201d0a,0x1d1025ad,0x1d1225b5,0x1d0b0321,0x25af031f,0x1d0d1d0c,0x1d0a0331,0x25b525b1,0x1d151d10,0x2b21c92,0x1c5220e2,0x268126cc,0x20a620b3,0x1cea0293,0x25881d29,0x2600240f,0x1f6d06aa,0x8391f6a,0x197103b0,0x242b03ac,0x242a2429,0x267a2493,0x267b267b,0x267f2498,0x260b260e,0x71f25f3,0x261506bf,0x1679167c,0x71f167b,0x2613071e,0x26122425,0x260c06be,0x24232421,0x14ac14ba,0x230314bc,0x2301059f,0x6b506b6,0x6ab2608,0x24122600,0x266b2669,0x26692483,0x26672666,0x7e907f2,0x78b17c7,0x123a1eb9,0x249306c6,0x25ff0730,0x6a206a5,0x267f2493,0x6b70730,0x260c06b5,0x258625bb,0x242002fc,0x242f2430,0x6cb06c0,0x6cc2431,0x24332624,0x27a10a83,0x6c528aa,0x6c706af,0x243d243f,0x262206b0,0x261f242e,0x16c722c3,0x22c322c2,0x22c822c7,0x22c71d31,0x6f622cd,0x246006c4,0x16d416d3,0x6d90578,0x6c42460,0x577057f,0x1ba316d2,0x1ba101c2,0x11820bd6,0x8de1192,0x10d1168d,0x245306ee,0x1d2e06f0,0x22c422c1,0x6f0263e,0x1c302453,0x25326a4,0x23062307,0x230c16ff,0x5a7230d,0x265b244e,0x246b06e4,0x7022659,0x1711231c,0x5b71710,0x5b91d7e,0x5b705b8,0x266205b9,0x7130710,0x264a264e,0x2659264b,0x706246e,0x1c5e1c5d,0x6f20282,0x264906f3,0x26432649,0x171806f2,0x17162326,0x1d911d94,0x171605c8,0x1718171b,0x5c32330,0x23241717,0x1d8705c5,0x232c1715,0x5c61719,0x232b1d8f,0x23351d99,0x23361721,0x5cb1d9d,0x17231722,0x23341d9e,0x171d05c9,0x5cf05cd,0x5cd1da0,0x23381da0,0x233805cd,0x246b05ce,0x265a246d,0x5d92344,0x1da22342,0x233b1729,0x24632466,0x6ec2654,0x6d42623,0x1c5126c2,0x17330276,0x173b05ec,0x6fd2468,0x7002464,0x26580702,0x2351234b,0x1dbc1734,0x23571737,0x20aa20a2,0x173f20ae,0x23512354,0x1dc5235a,0x7021dc6,0x26542467,0x22fe05e3,0x1ce11db4,0xef11cde,0x18870dfa,0x17430df9,0x5ea1739,0x18870df9,0x27600f9,0x26c4027e,0x5ec173b,0x1c5205ee,0x26cc26c4,0x265d070f,0x244e2660,0x265b070c,0x2450265b,0x2450244e,0x6e506e4,0x2468246c,0x12b22469,0x274912a9,0x246e070d,0x246e070a,0x70a246b,0x245006e5,0x26272634,0x261c246b,0x93c129b,0xc832731,0x1e111e0e,0x243506cf,0x6ca2464,0x265d2654,0x25ef266f,0x71c2488,0x71d2484,0x24820715,0x25f9071b,0x241806ac,0x24900724,0x2677072c,0x248b2488,0x1dd105fb,0x1e151dd2,0x190b190c,0x26752490,0x81c0725,0x8181f3a,0x248d0721,0x24880722,0x7212674,0x25fa240b,0x8f825fc,0x90410f3,0x1da3172e,0x299b2346,0xba60bb8,0x2667266b,0x728247d,0x249125ee,0x26782491,0x109c0728,0x8a910ec,0x109a08b1,0x241b1657,0x2675248c,0x109c08b1,0x241b08a9,0x6b10723,0x249a072f,0x266b267e,0x24832487,0x7292496,0x248d2495,0x248f2674,0x247d072f,0x2498249a,0x267a2493,0x72d2497,0x1fb12494,0x1fc224aa,0x16a308ee,0x1fb316a4,0x1fb4249f,0x7350736,0x24a81fbe,0x24a51fc1,0x1fbc0736,0x7340734,0x7351fbb,0x24ae1fc1,0x1fc124ab,0x73924ab,0x73924b6,0x24bd24ab,0x24bf24be,0x24ab24c4,0x74324b5,0x249b24b4,0x24b80744,0x24b824b9,0x24b91fd2,0x24c824ca,0x1fd91fd9,0x74a24c9,0x1fda074a,0x1fdc074b,0x24cb24cc,0x1fcd24c8,0x1fbb1fd1,0x24bd24be,0x24c424ab,0x24bc24b6,0x1fd31fcf,0x24c21fd7,0x1fb824c3,0x1fb224b9,0x1fd60736,0x1fbc24bf,0x1fd524bf,0x209b0289,0x6d81c62,0x262d06e0,0x24c524a6,0x249f24c7,0x1fcf24ba,0x1fd724a3,0x74c24c3,0x1fc61fc5,0x74a24ac,0x86f24c9,0x10331039,0x242068,0x1f140025,0x7ed1f0e,0x1f501f4d,0x1efb1f51,0x7d0083f,0x7cc07d0,0x257d1efb,0x3001d21,0x2a022a84,0x85a2a87,0x85b0858,0x726243a,0x93d072e,0x93a129b,0x24992481,0x35a2497,0xe510353,0x1c0a1c05,0x11b60235,0xdfc0de6,0x25ff06a7,0x1aa32411,0x1aa519e1,0x1e3a1546,0x1dcb151b,0x235e1741,0x1e73110a,0x110c111f,0x1e73157b,0x153c1e37,0x15081e36,0x15341533,0x1e331548,0x154f1e39,0x154e1e2f,0xc200c06,0xc2a1526,0x15241557,0xc201557,0x15251525,0x15571524,0x15201551,0xc2b0c24,0xc191e3a,0x15481549,0x21111558,0x211e2110,0x20d420c6,0x1e5002ab,0x155c155f,0xc15155f,0xc3c1103,0x1e65111d,0xc360c48,0xc2b0c33,0x15700c4a,0x1e720c4a,0x111b156f,0xc400c4e,0x111e0c4b,0x15761119,0x1e6a0c4c,0xc4c0c3e,0x11141e56,0x1e620c4f,0x15791e59,0x15691e56,0xc341120,0xc150c4a,0x14db155f,0x12591e93,0x1e7c0c6b,0x111614d9,0x1e76157f,0x1e7c14db,0x1ce20c6d,0x258802ff,0x12690c66,0xc661596,0x14e71250,0xc610c60,0x12591268,0x15870c54,0x12571e7e,0x1e521e7c,0x15760c4c,0xc6314e4,0x1e931592,0x12590c54,0x14f71e89,0xc621267,0x1e8a0c78,0x121c0777,0x19d51ea7,0x19ba03e5,0x1ee51796,0x7901788,0x12181e9b,0x124e1ecb,0x17510780,0x174f1750,0x177f178b,0x7c71eda,0x17a01eec,0x1edf1edb,0x17a01ede,0x17a91eeb,0x9292720,0x19f80926,0x2170041b,0x1ef507a6,0x14201ef0,0x14301431,0x1efa17ad,0x1f0817ae,0x1f0a17b8,0x17e217e1,0x12b51f2a,0x274e12b7,0x1f3b0816,0x269c1f37,0x26a8025b,0x2721128b,0x1f1d2720,0x1f1c17d1,0x178f1edf,0x7ab1ede,0x1ede178d,0x8ef10ea,0x1f2610e8,0x17df17e0,0x8021f27,0x17e20809,0x17e30805,0x167908ca,0x7241678,0x26062490,0x79e17dd,0x266317de,0x7152499,0x7d407dd,0xaec1f04,0x28b60aeb,0x1f3e0815,0x168e1f35,0x10dd08e7,0x14061408,0x10d7289e,0x10d808e4,0x1390f25,0x1f441b20,0x8281f48,0x1f0c07f1,0x17cc17cc,0x17cd17c2,0x1f0b1ed1,0x12ff07f1,0x288e0985,0x106d1070,0x8bb106c,0x16671665,0x8020806,0x1f3a1f27,0x1f3b17f1,0x7db07d2,0x1f081f03,0x1eff1f07,0x9321291,0x18000931,0x1f641805,0x10261608,0x7ae102a,0x179507b0,0x15371e3d,0xc11154b,0x15121e40,0x1e391548,0xc1a1527,0xc2b0c19,0xc201526,0xc200c21,0x15570c1f,0x15240c1f,0x1e4c1557,0x15281e3f,0x1e3a0c1b,0x1e3a0c2b,0xc2b0c1a,0xc1d0c27,0x1551154f,0x1e490c1d,0x1e421e4e,0x11171559,0x1e4f1e71,0x15791106,0x14d80c4d,0x1e7b126d,0x124a1ecd,0x8ab0793,0x8a908b1,0x2d002d1,0xf050fa2,0xf040ce4,0xce40f03,0xf060ce2,0xce60f05,0xf060ce7,0xf050ce6,0xf040ce4,0x12920935,0x24622726,0x245d2647,0x20e820f7,0x257f0c01,0x25892580,0x20202a42,0xf732021,0x13a013e,0x2025000a,0x18220d42,0x181a083e,0x12cc12ce,0xde80969,0xdfc11b6,0x17a917a0,0x1ab107c7,0x2124197b,0x97c2761,0x92a2778,0x92c092b,0x25926a6,0xa6326a5,0x274328a5,0x27302743,0x755094f,0x75324ce,0x1f801f82,0x75e1f81,0x75d24d7,0x24d624d5,0x1cf824d7,0x30e259d,0x3b603b7,0x24e72112,0x1f911f92,0x24ec0764,0x24e824df,0x1f940771,0x7680766,0x1f980765,0x1f971f9b,0x1f8f24db,0x1f8a24d1,0x24e2076a,0x76d24e6,0x1f92076e,0x1f91076f,0x76c24e4,0x1f8f076b,0x24e50772,0x24d3076b,0x76b0758,0x1f8b24cf,0x1f9124d4,0x1f9a1f81,0x1f9b24de,0x1f8624e5,0x1f8924d2,0x1f881f97,0x1f921f80,0xf0c24e7,0xf0b0cef,0xf0c0f0a,0xcef0efd,0xf0b0eff,0xce30f0e,0x16240f0d,0x10471623,0x29921159,0x12fb115c,0x278212fd,0x127c127f,0x2650271b,0x24622643,0x250025a,0xde81c31,0xf80dfc,0x246f265e,0x24b42471,0x1fcb0741,0x24b31fbf,0x1fcf24a7,0x24bc1fd3,0x1fd724c2,0x24c524c1,0x24c70749,0x1fcd24c8,0x7491fd1,0x24b224b3,0x24c41fc3,0x24c424b6,0x24b51fc3,0x74e074f,0x1fb0074d,0x1fd31fd4,0x74a24c9,0x24a31fda,0x24c224c3,0x1cdb02ea,0x18bc1cd9,0x2576012e,0x1e591e58,0xc301e56,0x1e541e52,0x1e531101,0x1116155e,0x1e630c3b,0x21de048d,0x1e6621d2,0x1116156b,0x1eaa1240,0x13fc1ebb,0x2890288c,0x13f713fa,0x178813f8,0x1ee6178c,0x18862544,0x261d11cd,0x7202672,0x2671261d,0x8fa2672,0x10f616ab,0x2671266c,0x2a32242e,0xd27200d,0xd2b2011,0x2d0d2a,0xd2b0d2c,0xd232a2e,0x26200c,0x200c2a2e,0xd070d0c,0x1ff50d08,0x1ff61ff3,0x2a3a2012,0x182013,0x1ff61ff5,0x20200d38,0x320d37,0x330d32,0x2a400d33,0xd5d201b,0x20420d5b,0x924274a,0x9a274b,0x982a8f,0x9e2a92,0xda92085,0x20852a96,0xa20dad,0x20850dae,0xda90da8,0x7ed17cb,0xb581f0e,0x295b18da,0xc1f1525,0x15481557,0x15581555,0xc1b0c2b,0xdd60c1a,0x11a300d0,0x251d251e,0x256b0de0,0x12000e31,0x1f601811,0x7181f5f,0x7192486,0x6b8260f,0x128260e,0xe2b1204,0xcdb0cda,0xef40cdc,0xcda0ef5,0x6a22415,0x130e25ff,0x27671312,0x25790e3d,0x2b2012f,0x20e20282,0x10281609,0x24b160c,0x1c261c2c,0x1c1a2685,0xbff1c22,0xc002945,0x1b94209f,0x1c6a1c6b,0x20a220aa,0x26a41c30,0x20da0253,0x20db20d0,0x1e66156b,0xc2c156d,0x10ff1117,0x29b1c73,0xed90297,0x2da1ccb,0x20bd029c,0x20b102a3,0x29620bb,0x20c102a5,0x2851c83,0x20e020e1,0xecf0ece,0x22160ed3,0x222304ca,0x20b520a7,0x1dd320b4,0x174f1751,0xbfc20f1,0x20f50bfb,0x20f620ec,0x20e729e2,0xbfe29e3,0x20f520ed,0x20ef29e7,0xbfa29e8,0x20eb20fe,0x20ee29e9,0xc0229e6,0x29ea29f2,0x29e920f3,0x7730bfa,0x24df0775,0x1f980776,0x297d24ee,0x18ff0b88,0x77124e8,0x24e70770,0x1f911f92,0x1f971f89,0x7661f88,0x7680752,0x1f9b24dd,0x11c81f9a,0x1881187f,0x11c80df5,0x2a51881,0x1c8d02aa,0x3ed214f,0x10f6214e,0x16ab08fa,0x219e219d,0x26182191,0x242b242a,0x128f128b,0x2429128c,0x24282618,0x2735129d,0x4740940,0x1a46214e,0xcf00f10,0x7930f0f,0x1ecd0792,0x1193118c,0x7900bd2,0x1ebe1ebc,0x1a111a0a,0x1311a0b,0x120e0e0c,0xcb715c4,0x5e90ea8,0x173605ea,0x1a67049c,0xa021eb,0xda6009f,0x211519fb,0x22190419,0x1a9404c2,0x21f6212f,0x221b21f5,0x1a9704c4,0x221d221e,0x21f7221f,0x4a921fb,0x21f704b3,0x1a7804aa,0x1a771a73,0x1a731a76,0x21fc21f8,0x1a751a6e,0x4a704ae,0x4e51a70,0x223b03ee,0x226a226b,0x226a0527,0x1ae70524,0x5242265,0x2261225e,0x521225f,0x5222261,0x51c1ae4,0x520051b,0x5201ae6,0x22631ae5,0x22680525,0x1ae82260,0x1aea2264,0x1adf051a,0x22522269,0x22152251,0x4b51a7d,0x262b2446,0x2210262e,0x1a872213,0x22102208,0x220c1a87,0x1a812204,0x22042203,0x4b62200,0x22012200,0x4b62202,0x1a842201,0x1a852207,0x220e1a84,0x4bb220d,0x1a7b1a7c,0x1a7a1a7b,0x220604b4,0x22051a83,0x1a6b1af6,0x49a21f0,0x5342283,0x8e21683,0x21451068,0x21460549,0x167508c1,0x176510c1,0x22a91767,0x5540553,0x17740551,0x22b5055b,0x55c1778,0x22b622ba,0x22b822ac,0x5801d4b,0x4da22e0,0x1aaf040e,0x10d2168f,0x165908df,0x8af08b0,0x186911b1,0x16f22522,0x22f01d5e,0x28a70a66,0x5b90a81,0x5b41d7e,0x1aca04ff,0x1d952246,0x1d8b1d8a,0x232d1d8d,0x23382329,0x5cc1724,0x5ce1724,0x1d9d05cc,0x172205cb,0x1da91726,0x5d32343,0x5d11da2,0x23441da8,0x5de2342,0x23451da7,0x5a32343,0x1e5b2309,0xc371111,0x166910ad,0x1730166e,0x23092343,0x17302343,0x5e11dac,0x22f90598,0x234822f9,0x1db21db6,0x1db905e7,0x5e51739,0x2352234a,0x23592358,0x59e1db3,0x5f522fb,0x235c05f4,0x1dc405f3,0x119d05f2,0xcd1850,0xee10eee,0x5ff02ed,0x1dd42366,0x236b2367,0x1df31752,0x23862388,0x235b1dc4,0x234d234d,0x1dc41739,0x23592352,0x276905ea,0x12e512e6,0x8091f27,0x1deb07a3,0x1e02270e,0x270e237b,0x12480614,0x7951ecc,0x24952663,0x1ec52499,0x797124a,0x129f2737,0x19de13f5,0x215e1985,0x109108fe,0x129e090c,0x944129d,0x17d207fd,0x1f1e1f1e,0x7fd1f1d,0x1640163e,0x107d0898,0x163e1640,0x8d908d7,0x193e1688,0x6411949,0x23ab23ad,0x194b23a9,0x194a194c,0x19421951,0x23c423c9,0x19501939,0x1dff1dea,0x23d8061d,0x23d7196a,0x195e23d2,0x195a195f,0x196223d2,0x65723cf,0x23c31958,0x23c2065b,0x6a606b0,0x6b02416,0x26052416,0x23f40685,0x242123f5,0x242306b8,0x71c2482,0x267d2670,0x25ee2491,0x2421260e,0x2414260b,0x26002410,0x241006a4,0x1f4a240f,0x1f511f4c,0x7e317c4,0x267317c3,0x7220721,0x3d200f,0x25ff0d3f,0x6a72411,0x7202673,0x6ab2489,0x24122601,0x26002601,0x71f2412,0x71e071b,0x6bf2613,0x249a2615,0x2667247d,0x266b2669,0x22382483,0x1aa72236,0x267f2667,0x261a2498,0x25fe06a4,0x261e06c9,0x243f2620,0x260606b0,0x242e242d,0x243c261d,0x262a2629,0x6d5242f,0x245506c8,0x24572454,0x26392635,0x24562637,0x246a263f,0x24512638,0x26392637,0x26372638,0x6f2245f,0x27512459,0x27810962,0x6ec06f0,0x24792453,0x713247c,0x6e5244e,0x245a2636,0x245806ec,0x24552643,0xec22457,0xec60ec7,0x24582646,0x7052641,0x246b0707,0x265b070e,0xe3b2474,0xe281209,0x246f2471,0x6ea070b,0x263c263b,0x6de2632,0x109506dd,0x89e08a6,0x246a2456,0x6dd246c,0x262e06de,0x264806f7,0x2629264c,0x262a06d7,0x1a761a77,0x245d04be,0x26432645,0x265e070f,0x1e9c2471,0x1ea4077a,0x2661247a,0x26212478,0x24422445,0x2458245c,0x6fe2646,0x26560704,0x6fc2656,0x70706fe,0x24402627,0x24932490,0x6ae072c,0x6b32602,0x24860719,0x26142485,0x6c12616,0x727248e,0x723072a,0x26752604,0x249f24a0,0x1fc71fb4,0x1fc824af,0x73d1fc2,0x24ac24ad,0x73c1fc4,0x731249d,0x7331fb1,0x1fb71fb5,0x7350734,0x24b01fbd,0x7401faf,0x24be0747,0x24b824bf,0x74524b9,0x74a1fd9,0x24a6074b,0x24c524c6,0xa7a1408,0x1288289c,0x12db2746,0x1601b3c,0xcdf0f3a,0xce00cdd,0xf010efa,0x16480f02,0x1082163e,0xf030f02,0xce20efb,0xef70ce0,0x180a1804,0x14061f54,0x289e289c,0x180f180d,0x10210830,0x85b1024,0xe5f0357,0x113f0362,0x192c112e,0x24da075d,0x76a24d7,0x7691f8a,0x2e91cd2,0x1f9502e4,0x24da24d7,0xdc624fd,0xc87183f,0xc7b0c7d,0x69b06be,0x258925f0,0x258a2582,0xc300c5,0x1d2400c2,0x1d1c0339,0xcef0f0c,0x14030f0b,0x278f289d,0xe362574,0xb12573,0x24f4182c,0x24f31829,0x185600b1,0xdd81852,0x24fd00bd,0xbc0dc8,0x1842183f,0x185711a1,0x186500cf,0x1863251c,0xddb00dc,0x595251b,0x22f816f6,0x254100ed,0x11bd0dfe,0x254200f7,0x189c010d,0x1eec11e4,0x179f07c2,0xef50cdc,0xef60cdb,0xce70ce8,0x17f6082b,0x16780822,0x8cd08ca,0x18b21213,0x1c8f18b6,0x2ae1c91,0x1423142f,0x121f1422,0x1ea21ea8,0x25fb069b,0x112c25f7,0x15bd1141,0x69e25fc,0x12a30699,0x289b289c,0x7b01795,0xa6807b1,0x13f313f4,0xb07147f,0x258c0aa4,0x2ff1ce9,0x7ac1ee5,0x21121ee2,0x22912292,0x26a30257,0x26ce1c33,0x26811c52,0x103f1044,0x26001045,0x26012412,0x260025fd,0x11fd2410,0x188f1891,0x8ed16a1,0x8ef10e6,0x8ed08f0,0x12291eb1,0xa610781,0x140a13f1,0xee402eb,0xe300ee6,0xe2e2567,0x68323fd,0x257e0681,0x257c257d,0x2f52580,0x2ff02f6,0x25881cea,0x4800482,0x258b1a52,0x3052587,0x111e1e53,0x84a0c4b,0x100a15fa,0x2c40eba,0x2f91cb3,0x2582258a,0x30f259f,0xf55030e,0x1820175,0x2f8033d,0x3281d26,0x327032e,0x10161015,0x8971600,0x8991082,0x107f0899,0xf290897,0xf2f0157,0x24042401,0x23f92402,0x25d925db,0x128f2724,0x21f0128c,0x1a6421eb,0x25e525e6,0x24050696,0x25e425e8,0x25f7069b,0x266a06b9,0x71a2668,0x6b92425,0x24922612,0x727072a,0x247f266a,0x26142668,0x261106bb,0x6c706d5,0x1a406c8,0xf8f0f83,0x264a245f,0x263f06f3,0x26432457,0x7042456,0x26490703,0x6f2245d,0x2643245d,0x265506f2,0x26512465,0xd452a18,0x6d92026,0x246006f9,0x24642653,0x70f2652,0x24762471,0x6fa06f7,0x70a262c,0x24700709,0x6f42646,0x265c245c,0x246f244e,0x265306fc,0x7252652,0x24902493,0x72d2497,0x7222494,0x248d2674,0x7212673,0x249a0722,0x267e267d,0x26931c25,0x24b2691,0x269a1c30,0x1c32024c,0x2751c2f,0x26c526c6,0x1c2126ce,0x26ca0280,0x26c81c53,0x26c01c53,0x27726c8,0x26c726c3,0x1c56027c,0x1c1d0244,0x246027e,0x26c01c45,0x1c511c4c,0x2770274,0x8fd16b2,0xb0a10fb,0x28bd0a9f,0x1090e33,0x16790e12,0x167b1677,0x247b2465,0x1bc02651,0x1e601e8,0x8f716ac,0x1ffe10f7,0x592a89,0x944129e,0x28922736,0xa73278c,0x71825ef,0x10af0714,0x8c010ad,0x26fd039f,0x6dc26ee,0x26500675,0x1deb0612,0x270e0614,0x6140612,0x27342733,0x186f093f,0xe100e8,0x1b2a1c12,0xa4e0144,0x293d0b41,0x262b262e,0x273206db,0x93a129b,0x23fd068b,0x129025cd,0x1292128f,0x23f20684,0x93625ce,0x9352729,0x12a30a78,0x6a9289c,0x241906a7,0x95c095b,0x1c2d095a,0x2696024f,0x12e90977,0x12a912e8,0x274912ab,0x99b1317,0xe6f1318,0x35d0e56,0x133c132a,0x1344133b,0x27eb09ca,0x27dd27ea,0x9d809bf,0x27f809d9,0x13681369,0x9d209de,0x27f427f6,0x27f4136e,0x28052805,0x136f27f6,0x9ea1382,0x2818280b,0x137009e8,0x9ec2811,0x13742805,0x9ef09ee,0x138b1379,0x28142810,0x9f62820,0x138f139d,0xa0f09fb,0x13a82840,0x13ac13b6,0x9f70a1e,0x283f1386,0x13ac0a1a,0x13b60a15,0x284213ab,0x284413b9,0x13b913ad,0xa220a16,0x284d13af,0x13b013ae,0xa1713b5,0x13aa284c,0xa1c0a21,0x284b0a14,0xa14284c,0xa1c13a9,0x28412848,0xa18284f,0x284a0a19,0x13b20a19,0x12d912d5,0x1ef4096e,0x7c407c2,0x7c407c6,0x92f07c2,0x12d12725,0x13fc0a70,0x169e13fe,0x8eb08e8,0x2930296,0x26ad1c6c,0x1c391c34,0x28b10a98,0x70d0a96,0x25c323ec,0xa8b28bc,0xa9b1423,0x28b51411,0x141028b5,0x28b3141c,0x140f28ae,0x28b10a93,0xa8e0a8e,0x142628c0,0x14100a94,0x23ed28ae,0x246e067d,0x712265f,0x265f23e7,0x23ec23e7,0x17d817d9,0x20be17d5,0x1c8420c7,0x123f1241,0x24271242,0x6bd06c2,0x240925f4,0x181e247f,0x1f77181f,0xf300f5,0xf31883,0x188300f2,0x29252929,0x1ec80b2e,0x124b1ec9,0x7cf1efa,0x5a807ce,0x170b2317,0x155f1e72,0x9851e50,0x13f90984,0x295c2963,0x18ec295b,0xb6c296f,0xb6e18e2,0xbc218e4,0xbb82995,0x11911157,0xb9629b6,0xb981194,0x117829ab,0x29ad0bbb,0x11790bb8,0x23fa25db,0xbb625da,0xbb20bb4,0xbba0bb7,0x117e0bbc,0x29a00bb7,0x29b51180,0xbc20bc6,0xba00ba8,0x115d0ba8,0x18d92995,0x296118e7,0x9412895,0x1b410942,0x16a0f4d,0x18c6294a,0xb520b4e,0x18c82955,0x29502951,0x29cb0b4d,0x29cd29c3,0x20ef29e8,0x29cb0bfd,0x29de29df,0x1b18017d,0x1721b4f,0xf510138,0x257c1d20,0xf931d21,0xf7b1b7c,0x29cc29de,0xfd329df,0x1bd901ff,0x1bdc01f5,0x1bd50fd2,0x1f31bdd,0xfd61bdb,0x1bdb0fd8,0x1bda0200,0x102a1608,0x6a8085f,0x25fe06a6,0x1cc402d9,0xed90ed7,0x2da1ccb,0xfa10ebd,0x1fd11cb5,0x1fb10732,0x7fd17da,0x1f061f1d,0x7d907d7,0x1f2b17e5,0x108407fe,0x16491085,0x167a167d,0x97a10c7,0x12ed0a90,0x8321f51,0x1b03180f,0x19a4211d,0x8cc08cb,0x17e1167a,0x1f290803,0x1e2d1521,0x157a0c0a,0x11200c34,0x1e501e72,0xca510ff,0xca215d2,0x29b9118d,0x299829ba,0x1167116e,0x2a092a08,0x1ff42a07,0xd0e0017,0x20102a35,0x3a0029,0x20152016,0x20262027,0x27340d45,0x2732129c,0x107f0898,0x9e0899,0x20850da8,0xda90da8,0x258d2085,0x2f202ff,0x9370939,0x12e0272e,0x12df2765,0x17d317d6,0x5cc17d4,0x17242338,0x18bd2562,0x2441011d,0x243e0722,0x243e248d,0x26030722,0x241906a9,0x11ec255d,0x143b0e1d,0x143d143e,0x1cd702e1,0x8380ee3,0x18151814,0x164a0898,0x1f3a1640,0x81617ed,0x16220877,0x10411041,0x10421626,0xe400e6d,0x1f370e42,0x17ed0816,0xb8b1906,0x273c0b70,0x9462739,0x183b182f,0x2090dbc,0x20c020a,0x20082a27,0x5d005d,0x2a27203e,0x264406ef,0x25ce25ce,0x23fe0683,0x68c23fe,0x25dc25dc,0x23fe068e,0x25cb068e,0x6ef23fe,0x23fe25ce,0xae61462,0x2058145b,0x79007c,0x188011b9,0x18802537,0x2537187a,0x11c9187a,0x7f12537,0x1f1917d0,0x1f1717d0,0x1f7a1f19,0x8421821,0x1f791824,0x1f7a0843,0x18240842,0x18241f7a,0x83e0843,0x843181c,0x25d825cd,0x5ec068a,0x17341db5,0x16621663,0x1662109d,0x87a165d,0xdf6187f,0x82a253b,0x1f4b0829,0x8281f4b,0xcfe17fe,0x8001f,0x1b001f,0x7400008,0x24c41fc1,0x24a91fc1,0x24a924c4,0x24c41fd8,0x168808d9,0xd9410ce,0x206e2a88,0x2a84206e,0x2a492a87,0x206e0d94,0xa332868,0xa320a34,0x28610a37,0xd27200d,0x136e2a32,0x9ce135e,0x12251eb6,0x1eab1eab,0x1eb60783,0x1eb00783,0x7890789,0x1eb61eba,0x229819bd,0x106b053c,0x87f1633,0x193d23ba,0x19611961,0x193c1960,0x96712cc,0x9670969,0x12c70965,0x9670969,0x12c7275b,0x967275b,0x3400341,0x3400e4c,0xe4c0e45,0x36a036d,0x36a035e,0x35e0e70,0x35e036d,0x104f0e45,0x105a0be7,0x22c822c3,0x1d311d31,0x60f16c0,0x5a222f2,0x5a222f5,0x22f505a1,0x59616fb,0x596059d,0x59d1d60,0x22f522f2,0x22f21d61,0x1d621d61,0x1d60059d,0x1d6022f4,0x22f422f3,0x22f222f3,0x1a191d62,0x1a2e21ac,0x2751c4f,0x247426be,0x2477265e,0x70f265e,0x24792477,0x2477247b,0x293314bd,0x29330975,0x12e80977,0x29330975,0x276612e8,0x13f628a8,0x27660975,0x13f614bd,0xb3a288b,0x1400288b,0x14bb0b39,0x276614bd,0x14bb14bc,0x288b2766,0xb3a0b39,0x9761400,0x14ba0b39,0x276614bc,0x14ba0b3b,0x13f62766,0x29320b3a,0x27660b3b,0x13f613f6,0x14b92932,0xae71460,0x69a28ea,0x260b25f3,0x1f581f54,0x1f581f64,0x1f641811,0x29022904,0x25950b11,0x3161cfa,0x6df0673,0x6e706e7,0x68e067e,0x25c5068e,0x6740674,0x6e70673,0x23fa25d8,0x183a25db,0x182900b9,0x10b908bf,0x9851675,0x288e2788,0x9842788,0x288e13f9,0x288d13f9,0xa6d0984,0x288d13f9,0x288e0a6f,0x278b288e,0x9b60985,0x9c809c6,0x168a08c7,0x17e3168b,0x8070805,0x1f2b0807,0x10db17e3,0x10dc08e6,0x1e451e2c,0x120e1e47,0x120c0e37,0x1214120c,0x12140131,0x13118a9,0x18c115f4,0x72e0cd9,0x243a2438,0x6d1243a,0x6d10726,0x248d06d2,0x6d10726,0x485248d,0x21d0048e,0x1a4f048e,0x4f921d0,0x1acc2243,0x2421260b,0x98f06b6,0x1492098c,0x2911098c,0x29111492,0x14920afd,0x29151492,0x9752914,0x141112e8,0x12e912e8,0x12e91410,0x28ae12f1,0x14111410,0xd7612e8,0x2a1a1ffa,0x2a1b2a1a,0xdf90071,0x2536187b,0x187a187b,0xe82536,0x18801882,0xdf91882,0x18802536,0xe811b9,0x129913f2,0x1299129a,0x129a129b,0x2240ff1,0x28061c01,0x27fb09d6,0x4f204f4,0x4f2223c,0x223c2240,0x22412240,0x2241223c,0x223c1abc,0x8f0d93,0x8f008b,0x8b2a6f,0x2a860090,0x2a86206f,0x206f008e,0x206f0090,0x11af2a6f,0xde12520,0x1f1207e4,0x1f121f11,0x1f1117c9,0x1ecc1ecd,0x12481248,0x793124a,0x10cf4,0x10da1,0x940095,0xcc515ca,0x108f113c,0x89e08a3,0x109108a3,0x18d6089e,0xb5f295f,0x18d92962,0x18d90b5d,0x29602961,0x18d90b5d,0x18d82960,0x29600b5e,0x18d60b5d,0x18d62962,0x29620b5f,0x1af70537,0x51e2281,0x1acf2261,0x183f24fd,0xa840dc7,0x98428ac,0x15b00c7e,0x251c15b3,0x18610dff,0x11d10dff,0x11d11861,0x185f2517,0x28cc28d3,0x28d51437,0x28d30989,0x9900989,0x28d328d3,0x28d51437,0x175405f6,0x24f51dd6,0x24f624f7,0xdbe182d,0x9f424f5,0x1396131f,0x3c51a59,0x25c198d,0x25e0251,0x26ab0251,0x2641025e,0x263d263e,0x11cd00f3,0x11cd0df7,0xec1886,0xdfa1886,0xdfa00ec,0x188700f6,0xdfa00ec,0xf61887,0x188711cf,0xf91887,0x11c911c9,0xec2536,0x253a00ec,0xdf70df7,0xf300f2,0xec11cd,0x11130df7,0x15731574,0x17a01eeb,0x9521eea,0x12b40958,0x95a0958,0x95a12b4,0x12b4274d,0x277d12b4,0x12aa12aa,0x95212a6,0x258f030b,0x25922592,0x30b2593,0x113a0c9e,0xcc40cc4,0x113c0e9e,0x13f21299,0xa640a64,0x12990a63,0x1f7e24d2,0x165024e3,0x164f1094,0x10931094,0x164f164d,0x164d1094,0x10921093,0x108b108b,0x8a1089f,0x164d08a1,0x164f1093,0x1650089e,0xe240e2c,0xe240e2e,0xe2e011e,0x11d011e,0x18bd18bd,0xe2e0e3c,0x266e25f2,0x266e071a,0x71a2484,0x717071a,0x11ac2409,0xdea2518,0x11aa2518,0xdea0dea,0x11d111aa,0x1f1117c0,0x1f0d1f0d,0x7e81786,0x177e1786,0x7e807e8,0x1f0d07e4,0xf40df8,0x18831883,0xdf800f2,0xdf700f2,0x25570df8,0xe0d2558,0x261a06a0,0x17706a4,0xf6b1b4c,0x100f0871,0x100e100e,0x871103a,0xa6113f1,0x2fa0a62,0x33f25b7,0x1b1d0145,0x1b1b1b1b,0xf1a0f19,0x1430f19,0x11ef0f1a,0x255418a6,0x255118a6,0x25540e18,0xe1818a6,0x16501094,0xa5608a6,0x13ea0a55,0xa5a0a55,0x13ea13ea,0x13e928a8,0xa5d28a8,0xa5d2882,0x288213eb,0xa560a57,0xa5813ea,0x13ea0a57,0x288228a8,0x28a80a5b,0xa5c0a5b,0xa580a59,0x13e913ea,0x13ea0a59,0xa5c28a8,0x178e2881,0x1ee21781,0x17981781,0x17981ee2,0x1ee51788,0xe0e18a2,0xe0e11f0,0x11f02550,0x11a2550,0xeb70e1e,0x1cb01ca8,0x11c70deb,0x11c72530,0x187400e9,0x11c72530,0xe91874,0x18742532,0x252f2530,0x186e0dee,0x252e0deb,0x252e0df0,0x25302530,0xdeb252e,0x26971c31,0x2697269f,0x269f024d,0x11eb11e8,0xdf9255a,0x253a1882,0xf1253a,0xf300f3,0xdf91886,0x929fb,0x9009d,0xda51fe0,0x9009d,0x1fe00da5,0x2a9a29f7,0xda50099,0x25a01fe0,0x31b0317,0x10301615,0x10301031,0x10311617,0x10321617,0x2a801618,0x20510080,0x18ba18bb,0x1ec90e3a,0x12491245,0x79c1249,0x6791ec8,0x6770678,0x6e80677,0x247b2477,0x6792465,0x6770679,0x5fc2477,0x174e2365,0x1751174f,0x5fc0600,0x600174e,0x103c0848,0x1cdf084c,0xef00ee9,0x1cdd0ee9,0x6850ef0,0x23f025c1,0x20190056,0x161c2017,0x1620161d,0x8481620,0x15f815f8,0x161c1017,0x16af16ad,0x107a10f6,0x163d1638,0x163a1638,0x14091645,0x288413ee,0xa6313ee,0x288413ef,0x13ef13ee,0x245b2641,0x672646,0xd630d68,0x22ce1d2d,0x56b056b,0x22c122cf,0xcc5113c,0x15e515e5,0x113b0e75,0x2870289,0x39b1c66,0x26f026f1,0x1ec81246,0x292e0794,0xb030b04,0x1ebc1ebe,0x6620791,0x6390643,0x8e51694,0x77310d9,0x7750774,0x12f40a86,0x1d5f12fa,0x5961d60,0xb9b1151,0x26c70bad,0x27f1c50,0x26cd1c50,0x1c57027f,0x26c71c1e,0x21ec2286,0x19ec1af9,0x4cf0408,0x261c242d,0x246b246b,0x242d2654,0x884088c,0x8841077,0x10770886,0x1c391c41,0x1c3926b5,0x26b526ae,0x26af26ae,0x26af26b2,0x26b326b8,0x26b326af,0x26226b2,0x26ae26b5,0x2621c3f,0x1dd726ae,0x1dd805f9,0x1b170142,0x1b1a0141,0x142013c,0x173a05eb,0x2565059d,0x18ae18b0,0x12718b0,0x1270125,0x1251205,0x11f0125,0x18ae1201,0x25650121,0x12000121,0x1252565,0x18ae1201,0x8d108ce,0x8d408d4,0x10c410c7,0x10c210c4,0x1b9308ce,0xf8f0f8e,0x11d611da,0x11d62506,0x18a30e02,0x250618a3,0x236611d6,0x1dd51dd4,0x174c1dd4,0x165205ff,0x8ad1098,0x109908ad,0x109908ac,0x8ac1657,0x109b08ac,0x109b1652,0x16521097,0x1c9b1c93,0x20df20df,0x20d620e0,0x7f407fc,0x7f417da,0x17da17cf,0xc821e0d,0x1ec50c80,0x1ec71245,0x1c212684,0x1c212686,0x2686268c,0x1c1a2683,0x26840244,0x26832686,0x18810df5,0x253a253a,0xe800ec,0x253600ec,0x253600e8,0xe81880,0x216e2175,0x21712171,0x19f80418,0x217019f8,0x21702171,0x21712172,0x21750416,0x21750532,0x41a2171,0x21750532,0x410041a,0x416040f,0x19f21aed,0x19f119f1,0x4160410,0x21722171,0x2172041a,0x21732174,0x19f11aed,0x19f1052c,0x52c0416,0x52c0532,0x19f90416,0x21742173,0x41a2173,0x4192172,0x19f70417,0x216f0417,0x19f719f7,0x415216f,0x41b19f7,0x21740419,0x19f919fa,0x41519fa,0x249a19f9,0x26662667,0x267f2666,0x267f249a,0x267e2498,0x267d2498,0x1cbc267e,0x2d21cba,0x20560d1c,0x20562a25,0x2a250073,0xb770b7d,0xe850b66,0x11240e84,0x7c2179f,0x7c107c1,0x179f07b8,0x7b607b8,0x1c77179f,0x20c01c7f,0x8b81661,0x10a210a2,0x1660165f,0x109e165f,0x165a165a,0x165f1660,0x10a51660,0x10a508b9,0x8b910a6,0x166108b9,0x16d1660,0xf470f4c,0xf4f0f4c,0x1690169,0xf451b47,0xf4b1b47,0xf450f50,0xf501b47,0x1690f4c,0xf4b0f47,0xf500f4a,0x1b480f4a,0xf500f50,0xf450f46,0x12231ea6,0x12231ea9,0x1ea90792,0x1e9f0792,0x9571ea9,0x12b812ba,0x95512b8,0x11c30956,0x11c200e4,0x187c00e4,0x8f311c2,0x16a808fb,0xaef0aa7,0x23af28f4,0x195723b2,0x63f23b2,0x19571959,0x195923b2,0x193a063f,0x23d2195e,0x63f1959,0x8541019,0x854085f,0x1608101b,0x854085f,0x101b1608,0x16091605,0x16081609,0x1608101b,0x102a1026,0x15101511,0x15101552,0x1e3f153a,0x1e2e153a,0x4281e3f,0x4dc2231,0x224304dc,0x22352235,0x4dc04dd,0x184c2547,0xfb72508,0x1e301e0,0xfb801e2,0x1e101e1,0x1e20fb7,0x198303ef,0x198303ee,0x3ee210b,0x8ce08d1,0x8c808c8,0x8d208c7,0x2a752a04,0x1f12a74,0xfd61be0,0x26f3039d,0x1c150395,0x10040240,0x10051004,0xfea1c15,0x15f0fe9,0xab11437,0x10e21441,0x1697169d,0x169f169d,0x268b1697,0x1c1f1c20,0x2721128c,0x27212724,0x9282720,0x9272720,0x24a0928,0x1c24024b,0x16060867,0x8560856,0x8661611,0x8651611,0x8650866,0x866102d,0x121118bf,0x12110e3d,0x18b618b2,0x64323d4,0x6430663,0x6630662,0x9602752,0x9310931,0x9330934,0x9610933,0xc9d2752,0x112f0cc2,0xdd185d,0xdd11a9,0x11a92522,0x4ce2226,0x4ce2167,0x216719d8,0x215719d8,0x222f222f,0x19d80430,0x21590430,0x21592167,0x21582187,0x19d92158,0x2159215a,0x215a2158,0x19d82167,0x3020430,0x25902591,0x106e10fd,0x106e16b4,0x16b41642,0xc3c1e65,0x17551572,0x23651dd3,0x174f1dd3,0x1c67174e,0x1c66028a,0xd512a5c,0xd510020,0x200d19,0x1c561c53,0x1ea6027c,0x12231ea5,0x1ec21ea5,0x12231eca,0x1eca1ea5,0x20d31c8f,0x20d31c86,0x20cc02a4,0x20cc20d3,0x20cf1c86,0x1c8f1c88,0x20cf20cb,0x18b01c8f,0x1220124,0xe290122,0xe290e2b,0xe2b256d,0x18b10e2b,0x18b10122,0x18b02569,0x12062569,0x12060120,0x1200e27,0x18b00120,0x1872569,0x17b0f58,0xf150f58,0xf151b4d,0x1b4d0138,0x227e1af2,0x1c88049f,0x1c8e1c7e,0x20d61c8e,0x3871c88,0x37a26d2,0xec502c4,0xecb02cb,0xec81cc1,0xee41cd8,0x1440ee6,0xf1b014a,0x149014a,0x1490f1b,0xf1e014d,0xf1e0149,0xf1e014b,0x14b014f,0x147014b,0x1470149,0x1490f1b,0xf240f23,0xf230150,0x14b0150,0x200b0026,0xec32a2e,0x2c01cae,0x12780c68,0x12781e90,0x1e901279,0x18e50b5e,0x1d2618e8,0x2fb033d,0x12c912cd,0x12c912ca,0x12ca2758,0x33225b4,0x4780339,0x1a5b1a5c,0x4870486,0x47821d8,0x1a4a1a5b,0x4861a5b,0x1a4c1a4c,0x1a5b1a4a,0x4790484,0x4861a4c,0x48421d8,0x25dd25de,0x26a10692,0xfe6024d,0x121b077c,0x121b121d,0x1ea0077e,0x1ea0121d,0x121b1ea1,0x121d1ea0,0x1ea7121d,0x11c31ea2,0x252c0ded,0x11b70ded,0x252c252d,0x252d0ded,0xdf11b7,0xdf252e,0x252e186e,0xdf0252e,0x2462252d,0x264e264a,0x262b264e,0x14532446,0x13e60ad9,0x15f20e98,0x1aee1930,0x3b22102,0xb3b14ba,0xe0d2929,0xe0c1892,0x21610402,0x2161042b,0x1a99221a,0x1a931a99,0x1a93042b,0x42b2183,0x14880b30,0x14880b2a,0xb2a2908,0xb312908,0xb31292b,0x292b27c2,0x133a27c1,0x133a14ad,0x14ad09ab,0x27c127c2,0x292b14ad,0x14ad27c2,0x29010af9,0x29012927,0x292714a0,0x14a12927,0x9ab0af9,0xb2f09aa,0x9ab14ad,0x9aa0b2f,0xb2f14a2,0x29270b29,0x14a414a0,0xb300b29,0x14a00b29,0xb2a0b30,0xb3014a4,0x140c12ff,0x140c0985,0x98528ac,0x1a5421da,0x21d421d4,0x21da047f,0x48a047f,0xe8921db,0xccc15d2,0x4552190,0x4550445,0x44521ae,0x21ac1a1f,0x1a1f1a19,0x21901a19,0x2f31d27,0x2f31d28,0x1d281ce2,0xe800c9f,0xe800cc6,0xcc615c5,0x29d60be9,0x27c329d5,0xb321327,0x148d1327,0xb320b32,0x13280b33,0x13290b33,0x23e71328,0x6fb0712,0x25c80675,0x25c82647,0x2647067b,0x25ca067b,0x25ca2647,0x26472645,0x1efc1efd,0x18d317b2,0x18d52966,0x295f18d5,0x295f0b5a,0x18d418d6,0xb5a18d5,0x18d618d3,0xb5c295e,0xb5c18d6,0xb5a18d4,0xb5b295f,0x295f0b5b,0x2751295d,0x27542750,0x27552754,0x1a7a12c2,0x19a21a7c,0x1a891a7c,0x1a822117,0x220904b9,0x1640f27,0x1700170,0xf270f2f,0x1570f2f,0x1c8e0f27,0x20bf1c7e,0x2951c7e,0x1ef620bf,0x17a41ef4,0x7bd17a4,0x10301ef6,0x86d1615,0x102f1615,0x102e086d,0x86d1039,0x2811c9a,0x19512097,0x64e065c,0x1964065c,0x23c6064e,0x1964064e,0x23c623c5,0x19631964,0x64d23c3,0x23c5064d,0x64d1964,0x23d01964,0x6581964,0x23d023d0,0x64d1963,0x195623cd,0x195623d1,0x23d123d0,0x23d60660,0x23d623ca,0x196823d1,0x23d31968,0x23d123c9,0x65823d0,0x23c91968,0x23d123c1,0x19680658,0x19671953,0x64f23d4,0x23d41953,0x196823d6,0x23d623c1,0x23ca23c1,0x64f1952,0x195223d4,0x66023d4,0xf1d0f55,0xf1d0185,0x1851b1e,0xf550186,0x1840185,0x1b5a1b59,0x1850186,0x4ef0184,0x4d604d7,0x275412c8,0x27542722,0x92912bc,0x27200929,0x27542721,0x27210929,0x1c3b0261,0x1c3b0266,0x1c431c3c,0xdc01831,0x267a0db9,0x72c2493,0x2490072c,0x25ee0725,0x267e072f,0x86c0852,0x86c1619,0x10321618,0x41c19a8,0x41f1a00,0x3df2177,0x227f0535,0x1fe42281,0x20282a4f,0x11f50118,0x11f511d5,0x11d511f4,0x11ca1870,0x236b2538,0x23691752,0x174c1752,0x1752174d,0x2369174d,0x1dcf2360,0x1dcf1753,0x17532369,0x235f1753,0x1a492360,0x1a4b21ce,0x131a1319,0x262112f6,0x6cb2442,0x26282442,0x221c06cb,0x1a811a98,0x220c1a98,0x169a1a81,0x10e216a4,0x10e410e2,0x10e21698,0x16a21698,0x168a1689,0x16881688,0x8da08d9,0x79f0838,0x17831783,0x839083a,0x1f6c083a,0x8390839,0x17831814,0x54c1765,0x17691767,0x557176e,0x17b4079f,0xa7207d3,0x288c2890,0xa6c288c,0xa6c0945,0x94513f5,0x273d0945,0x16c4288c,0x22bf22be,0x25a925af,0x24131d07,0x6c02615,0x8e010d3,0x10d410d4,0x10d31692,0x16901692,0x1690168f,0x168f168d,0x10d1168d,0x20aa168f,0x20af1c6a,0x20b01c6a,0xdf420af,0x187811bc,0x18761878,0x18760df4,0xdf42535,0x18792535,0x22940df4,0x19a719bc,0x10341616,0x10341615,0x1615102f,0x22e51d53,0x2382058f,0x237d0616,0x23811e05,0x23812382,0x23821def,0xa1b13b5,0x107a286e,0x162f1627,0x88e162f,0x88e1638,0x16381639,0x1d3e1dde,0x1d3e060d,0x60d1d3f,0x5bf1daf,0x5bf1710,0x231c05dc,0x235405f0,0x24c173f,0x2491c2f,0x24e1c2f,0x24e0249,0x2491c30,0x1c2a0249,0x2702024c,0x270003a9,0x23582359,0x5f905f2,0x17592362,0x23612362,0xbd61759,0x29ba0bd7,0x118229b9,0x1cd60bd6,0xee902e7,0x1cdd02e7,0x10d20ee9,0x10ae10d1,0x19260c8b,0x15cc15cc,0x112a15bb,0xf9b01d0,0x1b350f9a,0x1680162,0x22df1dde,0x11cd1d47,0xdf9253f,0x1a40046d,0x160c0460,0x160b160f,0x45a0458,0xa5f21c8,0x12dd0a60,0x12de0a60,0x250f12dd,0x18692510,0x1dcc2373,0x13ef05f6,0x28860a67,0x28852886,0x288513ef,0x13ef2883,0x28a12883,0x26422884,0x2641245b,0x6f12641,0x26072642,0x241e06b4,0x260806b4,0x6b506b5,0x6b42609,0x1ee31ee0,0x7a907b3,0x178c1789,0x1edc178c,0x5d207a9,0x1da705d6,0x95512b5,0x212612b8,0x2127053e,0x2294053e,0xb182127,0x149d2768,0x1fa0239c,0x1e182398,0x190f2399,0x62b239d,0x1e18062a,0x239b190f,0x239d190f,0x239c239b,0x1e172398,0x62a239d,0x1e18239b,0x629239b,0x1e181e17,0x239c0629,0x6291e17,0x254200f7,0x25422529,0xdec00ed,0x187c00ed,0xdec0dec,0x25422529,0xe22529,0x7d700f9,0x1f0407de,0x7dd07de,0x1f041f04,0x7d717b7,0x1f0117b7,0x1ef107d5,0x17a21ef0,0x7a61ef0,0x17a217a6,0x7be1ef0,0x7bd07a6,0x17a417a4,0x7a617a6,0x1eef17a6,0xb981ef0,0xb930b95,0x266c2666,0x266c267b,0x267b267c,0x267b2493,0x1209267c,0x256c18b6,0x237d1e01,0x1941dec,0xf6b1b67,0x1b4c0f6b,0x1780178,0x1b6d1b6e,0xf681b6e,0x1941b6d,0x1780f6b,0x22012200,0x12ce04b6,0x272d275c,0x272c275c,0x272d272d,0x12ce275d,0x160b1027,0x160b1023,0x1023101f,0x160d1023,0x160d1027,0x1027160e,0x8610856,0x8611611,0x85e1027,0x1611085e,0xe2d0861,0x1281204,0xe2b1204,0x1280128,0xe2d0e32,0xe2e0e32,0xe300e30,0xe2f256a,0xe2f0e30,0x12e20e2d,0x13ed2764,0x12f912f0,0x12f92776,0x27762771,0x276e2771,0x277112ea,0x277612ea,0x13ed12e2,0x2776276c,0x12f012ef,0x12e212ef,0x20a0276c,0x20a820a9,0xe39120f,0xe39120d,0x25732574,0x12122574,0x25740e36,0x25730e36,0xe37120c,0xe39120f,0x120d2573,0xe270e38,0x120c1206,0x120d120f,0xe382573,0x12061206,0x120d0130,0x18e00b90,0x29682968,0xb902979,0x1af0291,0x1af209e,0x209e1c69,0x209f209e,0x209f20a3,0x20a30f90,0xee80ef1,0x163702ba,0x107e0894,0x892107e,0x26791637,0x72b0729,0x2495072b,0x1f272496,0x1f280806,0x1f2d1f2c,0x8070807,0x8060805,0x1f210806,0x1c610807,0x1c620288,0x1c641c62,0x6ab1c61,0x24182412,0x241a2418,0x241a06ab,0x6ab241b,0x1d8105d6,0x173d1714,0x1741173e,0x270e237b,0x86e0612,0x86f15f7,0x100915f7,0x86f086f,0x86d1009,0x270c1dff,0x1e0d1e22,0x15b21e06,0x18b60e3d,0x12091209,0xe3d0e3b,0x296f297e,0x71618e6,0x2482071c,0x2670071c,0x248f2482,0x7292677,0x1f5d180a,0x1af71f58,0x1a610537,0x4a10537,0x1a611a61,0x21e904a1,0x4a204a1,0x1a6121e9,0x49b21ed,0x497049b,0x1a611a61,0x1af70497,0x5350497,0x90b2284,0x8ff16b0,0x16b816b9,0x90b0909,0x16b908ff,0x270e237b,0xc9c0612,0xcc9113d,0xe9f113d,0x8c90cc9,0x167608cb,0x8d01676,0x11ba08c9,0x25312524,0x252f2524,0x252f2531,0x253111c6,0x253211c6,0x25312531,0xe811c8,0xdf511c8,0x252600e8,0x253111ba,0x186f00e8,0x8ce2531,0x10c708d1,0x10c210c4,0x73308ce,0x1fd224a1,0x9400941,0x6a2735,0x100d6f,0xd120010,0xd12006a,0x430072,0xa752896,0x14011401,0x27772898,0xa792898,0xa792777,0x289a1404,0xa7e1404,0x289a289a,0xa792777,0x22252226,0x239b2227,0x1fa02398,0x8491602,0x15fb100b,0x16021013,0x1ec10793,0x1ec11e9f,0x1e9f077b,0x1219077b,0x19261e9f,0x15cc1128,0xcc71128,0xcc7113d,0x113d0cc8,0x124f0798,0x124c124c,0x12471ec3,0x1ecc079b,0x1ecc124c,0x124c0798,0x9ce09e5,0x15ff09cf,0x1014084b,0x15f9100d,0x15ff100b,0x100d1014,0x15fc15fe,0x100d15ff,0x15ff100b,0x2607241e,0x248e06b5,0x248a248b,0xf7c1b76,0x12071b7b,0x12918b5,0x12118b5,0x1290129,0x257b256c,0x1209256c,0x120a257b,0x1292571,0x12072571,0xe330129,0xe3d120b,0x120a120b,0xe3d0129,0xe3318bf,0xe3d257b,0x18c90129,0x29592955,0x29582959,0x28a318c9,0xa6128a4,0x140a0a61,0x140a28a3,0x28a30a81,0xa8128a3,0x278c28a2,0x140c0986,0x28ab0986,0x28d7140c,0x27a01442,0x17b307c9,0x17af07cc,0x7c91efa,0x706067d,0x246e246e,0x25c3070d,0x23eb25c3,0x23eb246e,0x246e23ef,0x67c23ef,0x954067d,0x274a12b2,0x12a912b2,0x12a9274a,0x274912ab,0x20b720b3,0x1c36029a,0x25d025f,0x12418ac,0x12418ae,0x18ae0e26,0x25b81d27,0x25b81d26,0x1d261d1a,0x175019a,0x1750f6d,0x19b0177,0x1750f6d,0x1c2a019b,0x26942692,0x26912692,0x8e02694,0x10d910d6,0x10da10d6,0x10da10d9,0x8e51694,0x1ee41792,0x7ae07ae,0x17921795,0x179b1795,0x179b1792,0x179207b3,0x25680e32,0x13f62567,0x288b13ea,0xa5a13ea,0x15a7288b,0xc781593,0x14fa1593,0x15e815a8,0xe961927,0x112315eb,0x1f280cad,0x80217e2,0x80117e2,0x1f260802,0x8020809,0x25fa0699,0x1bce240b,0xfc701ee,0xf4001ee,0xdc401ef,0x24f300ba,0x240225e1,0x240225e8,0x25e82404,0xa3e2869,0xf40913,0xdf81883,0xf21883,0xdf80df8,0x1885253b,0x11ca253b,0x18851885,0xf411cb,0x11cc11ca,0x17911885,0x179207ae,0x179507ae,0x17951792,0x1792179b,0x7b3179b,0x76f1792,0x24d51f93,0x1f81075b,0x76f1f91,0x75b24d5,0x8e208e3,0x8e21694,0x8db166b,0x8dc166b,0x1a5408db,0x21d921da,0x1a5b21d9,0x1a5b1a54,0x48f1a5c,0x3162596,0x25a125a1,0x3112598,0x1e0a0c80,0x19f51e0d,0x227419f6,0x52b2274,0x52b19f5,0x4162270,0x52b19f5,0x4160413,0x414040f,0x4140416,0x413052b,0x216d052b,0x572a59,0x571ff7,0x1ff71ff2,0x273c2739,0x273c28a4,0xa610a62,0x273c28a4,0x28a40a61,0x2739289f,0x17ca07ec,0x7ed07ed,0x7ee17cb,0x106516a6,0x26108f5,0x2571c3a,0x13fb0a71,0x1d0b288f,0x321031f,0x10e2169d,0x10e2169c,0x8ec10e1,0x10e2169c,0x169c08ec,0x169f10e3,0x20442045,0x9400065,0x93f0941,0x28910941,0x2891093f,0x93f288f,0x93e288f,0x167f093f,0x168010c9,0x8da10c9,0x27eb08d9,0x136909ca,0x968096a,0xf6c275a,0x1820f53,0x27460950,0x12a712a7,0x12a912ab,0x28e1144f,0x156409a8,0x1119111a,0x25426a7,0x1cde1c32,0xee002ed,0x830180e,0x8300831,0x831180f,0x832180f,0x18101810,0x180f1811,0x22d7060b,0xc3716cd,0x156a1111,0x1110156a,0x1110110f,0x110d1569,0x1110110f,0x20d0110d,0x20db02a9,0x1c8902a9,0x202e02b0,0xd4b0039,0xd380039,0xd380d4b,0x612a42,0xd5b0061,0xd5b0d38,0xd4b0064,0x1f1307ec,0x2a8c17c8,0xd872073,0xd862073,0xd860d87,0xd872065,0xd8c2065,0xd870d87,0xd850d8c,0x20610d8c,0x20622062,0xd992064,0xd992062,0xbcf0d85,0xbd9118b,0xbd8118b,0xbd80bd9,0x29bb0bd7,0xbd60bd7,0x29bb29bc,0x29bc0bd7,0x11920bd6,0x10ca29bc,0x10c81681,0x8da1681,0x10c808d4,0x8d41681,0x10c908da,0x6fe08d4,0x6fb246a,0xeeb02ef,0xeeb1c9c,0xeb61ce1,0x2a6f0d6e,0x2a6f0d21,0xd212a1d,0x20520d21,0x299d0d6e,0x29a0117e,0x181e181d,0xf07181f,0xf0f0f09,0xcec0f09,0xcec0f10,0xf100ced,0x21fe04af,0x1a691a8b,0x1af51af6,0x20c302a1,0x1ebf20ba,0x1ec2124f,0x1eca124f,0x8871ec2,0x10741631,0x106a1631,0x10741074,0x8871632,0x8851632,0x8850887,0x8871073,0xea11c8,0x1a2b187f,0x21d30452,0xdcf00c1,0xdf2091,0x186e0de1,0x11ac0de1,0x10c20deb,0x167a10c4,0x10121602,0x680084e,0x23fd25cf,0x23f725cf,0x23fd25cd,0x25cd25cf,0x2d902d6,0x2d90ecc,0x2d402dc,0x2d90ecc,0x2dc02d4,0x2d502d8,0xe9d0e9b,0xc9c0c9c,0xe9a0e99,0x11241125,0x24280e84,0x26212618,0x6cb2621,0x1b402428,0x1b490f3d,0x23622361,0x174b174b,0x174a05fa,0x608174a,0x6082361,0x23611759,0xcfc0da3,0xcfc2083,0x20831fe6,0x2f2a08,0x25762a09,0x1322577,0xe3a2577,0x1320132,0x257618b8,0x12f1210,0x12f2576,0x25760e3d,0x6ef2644,0x6b5245a,0x6b42607,0x1bd20fce,0x1bd10fcd,0x1f10fc9,0x18cb0b54,0x18cb0b53,0xb532952,0x29512952,0xb530b53,0x294c2957,0x2180219,0x2181bf6,0x1bf60fe9,0xfea0fe9,0x1bf61bf8,0xfe6020e,0x1bf2020e,0xfe40fe4,0x2100fe2,0x20f0fe2,0x20e0210,0xfe60fe4,0x1bf80fe9,0x2141bf7,0x1bf51bf3,0x214024e,0xfe91bf5,0x1bf61bf7,0x24e0217,0x1bf51bf5,0x1bf60219,0x2100fe4,0x2170fe5,0x1bf61bf5,0x2170fe6,0xfe41bf6,0x26970fe5,0x21d41a4b,0x1a541a54,0x1a53048f,0x10e108ec,0x10e116a5,0x8f008ee,0x10e116a5,0x8ee08f0,0x8f008ed,0x27ea27e9,0x27ea09dc,0x27fd27eb,0x1f011f09,0x160807d5,0x85f102a,0x1019085f,0x101b0854,0x1028085c,0x854085f,0x8541608,0x1608101b,0x16081029,0xe10101b,0x1020e09,0x1050102,0x1ef60e10,0x1ef51ef7,0x17a71ef7,0x17a617a6,0x1ef11eef,0x17a61ef7,0x134b1ef5,0x136209c5,0x18781876,0x253400ea,0x253111c8,0xea1876,0xcf52534,0x2a170cf6,0xe7f0e7e,0xe7f0ea5,0xea515c7,0x192b15c7,0x192b0ea5,0x19181127,0x192b0ea5,0x11271918,0x191815ed,0xcce0ea5,0xcce0e7e,0xe95192e,0xe7e0cd4,0xcce0e95,0xe7e0e95,0xcd415f2,0xe950e95,0xc971921,0xe9515f2,0x19211930,0x15e00cb8,0xcd10cb8,0x193015e0,0x11370e95,0xe951137,0x19210c97,0x15dc15e0,0xe9715dc,0xe970cc5,0xcc4113a,0xcc40e97,0x19210e9e,0xc9715dc,0xe9e0e97,0xe9715ca,0xcc515ca,0x15f10e79,0x15f115dc,0x15dc0c97,0xe790e9c,0xcc015dc,0x15dc0e9c,0xcc515dc,0x15dc15e5,0xe7515e5,0xcc00cbf,0x14815dc,0xf1d1b1e,0x1b1d0f1d,0x1b1d0148,0x1480145,0x1460f1a,0xf1a1b1c,0x1451b1c,0xdff187e,0xdff00db,0xdb251f,0x186000db,0x18602543,0x25432544,0x187e253e,0x1d5b00db,0x1d66059b,0x29d929da,0x29d90be4,0xbe40be6,0x6ea06eb,0x6ea263c,0x263c263b,0x6ec263c,0x231f06eb,0x232005ba,0x170f2320,0x124805b7,0x124a124b,0x1ec9124b,0x1ec51ec5,0x124b1ec6,0x2543253e,0x254300f1,0xf100f3,0x253c00f1,0x253c253e,0x253e00ee,0x187e11cc,0x11c600ee,0xdf10df3,0x25330df3,0x25330df1,0xdf12534,0x11c82534,0x11c80df1,0x186f00e8,0x252f0df1,0x1c7111c6,0x1c770296,0x20bb0296,0x192220ba,0xc9d0cc2,0xe790c9d,0xaa20cc1,0xaab0aa0,0x142b0aab,0x13c30aa2,0xa2713c4,0x285513c4,0x28550a27,0x285013bb,0x28550a27,0x28512850,0x13bd2852,0x28502852,0x13c013bd,0x13c12854,0x13bd2854,0x13c12853,0x28532854,0x13bb2850,0x13bb13bd,0x13bd13bc,0x9752766,0x1ef61411,0x1ef41ef5,0x17a11ef5,0x5091ef4,0x1ae6051c,0x22631ae6,0xebf0509,0x2c10ebb,0xdfe00ed,0xdfe11d0,0x11d000de,0x6c406d9,0x22f72444,0x5901d5b,0x252f11c5,0x252f0df0,0x11c02524,0x252f11c1,0x5ad11c0,0x23321d73,0xa7e289a,0xa7e277e,0x14b428a1,0x29790b7e,0x29790b8f,0xb8f0b78,0x17d117d2,0x17d117d8,0x17d81f1c,0x147e28ff,0x147e2905,0x290528bf,0xaa528bf,0xaa52905,0x29052909,0x29120b09,0x28ff28c2,0x29102905,0xb092905,0xb092910,0x148f28c2,0x28f628c2,0x148f148f,0xb092910,0x28f6148f,0x148e0b01,0xb05148f,0xb01148f,0xb070b05,0x1490147f,0x1480147f,0x14801490,0x1490148e,0x11b01858,0x11b00dd9,0xdd900d5,0xd300d5,0x16e000d2,0x5910582,0x6a006c2,0x2a532416,0xd600d57,0x2725128d,0x272512d1,0x12d112d8,0x8a61656,0x16591659,0x8af08b0,0x10761634,0x2541088e,0xdf911bb,0x187b11bb,0x27070df9,0x3a52708,0x289c12a3,0xa790a79,0x94b2898,0xa772898,0x94b094b,0x12a32741,0x1043161f,0x19a61045,0x19bc19a7,0x213c19bc,0x9c9213e,0x27fb1365,0x10aa10a9,0x10ab10ab,0x10a910a8,0x10a510a8,0x10a510a7,0x10a710a3,0x8ba10a3,0x103710a7,0x10301617,0x252a11c1,0x747252d,0x24a51fd8,0x24a81fd8,0x24a524a5,0x7470735,0x1fbb0735,0x21fe0747,0x21f404af,0x1a7f2207,0x124504b7,0x12441228,0x1ec11244,0x22101245,0x1a98220c,0x1aaa04d9,0x12fb2230,0xa8c1415,0x12f8277d,0x12f80a8d,0xa8d0a8c,0x14160a8d,0x2605277d,0x6ad2416,0x6a82416,0x228806ad,0x53a1afc,0x1afb1afc,0x8fe053a,0x16ab10f8,0x10f310f8,0x16ab16ab,0x8fe08fa,0x10ed08f2,0x8fa1091,0x109108f2,0xe0218ab,0x182e188d,0xdc524fc,0x26ca027b,0x123526c8,0x7811234,0x256f18b4,0x256f2556,0x18952551,0x1ab504db,0x1ab52185,0x1aad2245,0x1aac1aad,0x1f562185,0x1f551806,0x180b1806,0x180b1f55,0x1f551f5e,0x12cd097a,0x12cd12d0,0x12d0096b,0x7961227,0x7960780,0x780079a,0x160a101f,0x16141614,0x86a0868,0x1036086a,0x10360863,0x863102b,0x10220863,0x1022086a,0x101f1023,0x1614101f,0x3c4086a,0x54903eb,0x229f0549,0x7b903c4,0x1ef21ef3,0x7bb1ef3,0x2a7a1ef2,0x204a0d7c,0x5631d2c,0x1ea10562,0x7791216,0x7770779,0x777121c,0x121c0778,0x123d1eb9,0x123d078e,0x78e0791,0x12261240,0x7911eaa,0x78e1240,0x1eba078e,0x4321eb9,0x4061a0f,0x22240406,0x10752158,0x88a1077,0x8881077,0x7a3088a,0x1f1c07a2,0x1f2c1f25,0x8081f21,0x17de17dd,0x1f2317dd,0x26aa079e,0x269b26a1,0x95e12bd,0x17f812b9,0x1f420824,0x8230824,0x1f421ed0,0x1ed00824,0x1f190823,0x1f421ed0,0x17f8081e,0x1211200,0x121256b,0x12080129,0x18b20129,0x12081208,0x121256f,0x18b4256f,0x81f0121,0x17f917f4,0x1f4317f4,0x10e917f9,0x16a410e1,0x10e210e1,0x1c7e16a4,0x20cf1c88,0x2a220cf,0x253120c5,0x186f1875,0xe81875,0x186f186f,0x25312525,0x25242525,0x252f252f,0x25322530,0xe62530,0xe62532,0x25280deb,0xe92528,0xe900e6,0xe62532,0x18762532,0x25252531,0x2531252f,0x15191547,0x15020c17,0x1539150c,0x15471517,0xc170c17,0x15311502,0x15391502,0x15021535,0x15311535,0x1517152a,0x15171e2b,0x15310c17,0x15311517,0x153b1e2b,0x153d152a,0xc071e2b,0xc07152a,0x152a1e38,0x1e38152a,0x1e36153d,0xc28153c,0xc0f153c,0xc0f0c28,0x1e2f153b,0x150e153d,0x153b153b,0x1e2f150e,0x15381e2f,0xc0f150a,0x150a1e2f,0xafc0afa,0xafc2912,0x291228c2,0x29092912,0x29090afa,0x14250aa5,0x29090afa,0x1c1f0aff,0x268b2689,0x160c1028,0x25411610,0xdec187c,0x25290dec,0x11bd11bd,0x25411887,0x174c1dd0,0x174c1dd1,0x5fd1dd4,0x174c05fb,0x102405fd,0x10181021,0x16121018,0x10471024,0x16251623,0x161d1625,0x147d1047,0x9ac1485,0x148a1485,0x148a09ac,0x1326148d,0x1327148d,0x13271326,0x132627c3,0x9ac09ae,0x9ac148a,0x147d09ad,0x1f0c17cc,0x10817c2,0x25502556,0x11e22556,0x25502550,0x1080e0e,0xe020e0e,0x10661897,0x10641065,0x879087a,0x162c1629,0x10641066,0x87a1064,0x249162c,0x26921c24,0x16271630,0x162b162b,0x8821071,0x10721071,0x17600882,0x22af1761,0x16851681,0x168b168b,0x16811689,0x20cd1c87,0x20cd1c80,0x20c420ce,0x2a320ce,0x6ce20c4,0x246406cc,0x892163f,0x8921644,0x1644107e,0xc8115ad,0xc811e08,0x1e080c83,0x1c060231,0x1ab21c07,0x19741973,0x278212fb,0x27821415,0x14142789,0x278228b0,0x16bb1414,0x90c090d,0x8a31091,0xdef1086,0x25260df1,0x186f0df1,0x186f2526,0x25262527,0xe32526,0x11bb11bb,0x252a00e2,0x187200e2,0x252a252a,0xdef11c1,0x252a11bb,0x11c10def,0xdee0df0,0xdef0dee,0x101b11c1,0x8750854,0x10400854,0x56a0875,0x22d222d3,0x12081207,0x20dc18b2,0x2af1c94,0x20de1c94,0x165b02af,0x1069165a,0x15281e4c,0x1528150b,0x150b1509,0x1e30150b,0x1e301e4c,0xc291e32,0x81e17fe,0x81e07a1,0x7a11ed2,0x1f3f07a1,0x1f3f17fe,0x17f517f7,0x82117f5,0x82a082a,0x1f3f17fe,0xfa11cb9,0x2c502c5,0xec81ba3,0x1644089b,0x1617163e,0x10321037,0x8531037,0xea1032,0x11ca1878,0x11bc1878,0x11ca11ca,0xea253b,0x253a253b,0x253a187d,0xdf51882,0x253a187d,0x18820df5,0xdf500e8,0x11c80df5,0x2d1187d,0xed50eca,0x8f608fc,0x8f616a8,0x106608f5,0x20522050,0xd712a76,0x2a750d70,0xd720d70,0x2a752a75,0xd712050,0x20fa0bf6,0x6d60c03,0x264c06d0,0x243b06d0,0x264c264c,0x6fa243b,0x13fc288c,0xa700a70,0x288b1400,0xa6c288b,0x1817288c,0x1f6e1f6d,0x1f6c1f6d,0x1f6c1f6e,0x1f6e083a,0x18181f6e,0x29ef1f71,0x20e320fb,0x27ae1316,0x27ae09a3,0x9a3099c,0x99a1319,0x99a09a3,0x9a31316,0x131a27b2,0x131a27b1,0x27b11319,0x131b27b1,0x295c27b2,0x29640b60,0x18db0b60,0xb622964,0x18d5295f,0x18d50b62,0x18dc2965,0x18db2964,0xb6218dd,0x18dc2965,0xb6118db,0x296518dd,0xd830b61,0xcf20082,0x1389137e,0x9ed09f9,0x138d09ef,0x182d183d,0xa2000b6,0x13b10a1d,0x13cc13ca,0xa3e13c7,0x127c13d1,0x2130ff2,0x2130222,0x2220214,0x1ee81ee7,0x1ee81ee6,0x179607ae,0x179407ae,0x9bd1796,0x27c627c5,0x17162326,0x18aa1718,0x188d11fe,0x1891188d,0x1b2118aa,0xf220f21,0x14310aae,0x28ba1420,0xaae1434,0xaaf1434,0xa900aae,0x28b828b9,0x141c141d,0x141c1483,0xafe0a94,0xaba0a93,0x6f90ab9,0x262b2460,0x6d92460,0x125262b,0x12318ad,0xe280123,0xe280125,0x18ae1209,0x256c1209,0x18ae18ae,0x1240121,0x18ac0121,0x1240124,0x25660122,0x18ae0e28,0x18ae0125,0x1250124,0x25660124,0x25660125,0x18b10126,0x256918b1,0x25691202,0x12060e2f,0x25691202,0x12061206,0x12020e27,0x18b12566,0x7ae1202,0x7b01797,0x1ee71797,0x7b007b1,0x7b11797,0x287b0a4b,0x1efe1282,0x7cb07d2,0x17ac07d2,0x7cb07cb,0x17b007cd,0x17bd17b0,0x132c07cb,0x27fe27e2,0x9df27fe,0x27fe27ed,0x132c27ed,0x9ba27ed,0xaf2132c,0x28fa132c,0x132c28fa,0x28f109ba,0x28fa146b,0x6d20722,0x6d306d3,0x7222440,0x24412440,0x24882673,0x24890721,0x1a1e0443,0x4420442,0x4442197,0x4410444,0x27a30442,0x130e0b0f,0x1f1b07f9,0x1f1b17ce,0x17cc1f17,0x1f1b17ce,0x1f1717cd,0x17cc17d0,0x1b021b03,0x1446228a,0xac728da,0x279f1311,0x28db0ac8,0x144927aa,0x7110710,0x10d5070e,0x10df10e0,0x7e41f12,0x7e4079d,0x79d07e8,0x8de168d,0x16991699,0x168d1069,0x14311430,0xaae0aae,0x142f28df,0x187f187d,0x18811881,0x253a253b,0x253c253b,0x253a253a,0x18811882,0xe81882,0xe81881,0x25341875,0xea2534,0xe8187d,0x187d2534,0x13e513e1,0xbec0a53,0x28290b43,0x23f30682,0x23f823f8,0x23f723f6,0x25cf23f7,0x14d30682,0xb492949,0x15c90c9e,0xc9b15e7,0xc9e113a,0x1f7a1ecf,0x17a0181c,0x17a817a9,0x1a521a51,0x4520452,0x1a511a28,0x25e26b9,0x25e26b7,0x26b726ab,0x28852883,0x28852785,0x27852888,0xbad0baa,0xba50b9b,0xbaf1170,0x229919b1,0xf691b09,0xf731b6f,0x1b0f1b6f,0x1b0f0f73,0x1b68017d,0x1b73017d,0x1b731b68,0xf661b72,0xf661b73,0x18c61b68,0x18fc0b51,0x29810b8b,0x103518f0,0x102c102d,0x865102d,0x102c102c,0x10350864,0x102b0864,0x156b1036,0xc42156d,0x156e156d,0xc42111c,0x111c156d,0x18db18f3,0x8220b60,0x1f501800,0x179d07b6,0x7b307b2,0x7b607b5,0xbeb29d0,0xbeb29d4,0x10550bec,0x104e1061,0xbe31050,0x29de29cb,0x253c253b,0x253a253a,0x187d1882,0xe81882,0x187d11c8,0x11c81882,0xea187d,0x25392539,0x253b2538,0x11ca2538,0x253b253b,0x187d253a,0x52e210c,0x52e19a1,0x19a11aee,0x8ed08ee,0x8ed16a3,0x16a308ef,0x224019dd,0x2240215c,0x215c04f2,0x29800b63,0x11672984,0xba31166,0xba31167,0xba32998,0x29981164,0x29980bab,0xba1115f,0xbab1161,0xba1115f,0x29980bab,0xba21164,0x16b516b4,0x16b510fd,0x10fd16b9,0x8ff16b9,0x213110f9,0x3ef1983,0x10690879,0x1a608eb,0x1b7e01a4,0x1a301a4,0x15c21b7e,0x15d50ccf,0xcd315d5,0xe290ea7,0x1080e31,0x18970108,0x18970e29,0x256d256e,0xeca1cbe,0x127d0ec6,0x12a00947,0x129d12a0,0x129d127d,0x27182734,0x27322734,0x27322718,0x1281093a,0x27322718,0x93a1281,0x916094d,0x12810916,0x29fc093a,0xd1a1fe7,0x881fe7,0xf8b0022,0x1af0f88,0x1b9201af,0x33f1b8e,0x1d2925b9,0x33625b9,0x3361d29,0x33e1d28,0x17a717a8,0x17a717a5,0x17a517a6,0x17a417a6,0x249507c4,0x2497072d,0x212e03b9,0x11c92165,0x187b187a,0x1fc51fc7,0x1fdb1fdb,0x1fc7074d,0x24cd074d,0x17a01fc7,0x17a817a9,0x17a517a8,0x17a517a0,0x1eec07c7,0x278a27b0,0x12fd12fd,0x99b2780,0x909090b,0x10fe10fe,0x8ff16b6,0x16b80907,0x90b090b,0x8ff10fe,0x14f91276,0x97f14e4,0x12f82780,0x12fb2780,0x12f812f8,0x97f12b4,0x274d12b4,0x274d12f6,0x12f72751,0x12f7274d,0x151412f6,0xc2b152d,0x15701103,0x156f156f,0xc2d0c44,0x1103155c,0xc3c156f,0x15730c38,0xf59018e,0xf590176,0x1761b63,0x1790176,0x179018e,0x1b620f5f,0xf600f5f,0xf621b62,0x18d0f5b,0xf610f5b,0xf61018d,0x179018e,0x1b620179,0x16510f61,0x108b08a5,0x8aa1092,0x8ac1651,0x165308ab,0x109608ab,0x10961653,0x109708a8,0x11ba0def,0x11bb11bb,0xdef00e2,0x187100e2,0xdef252d,0x252d00e2,0x11bd1871,0x11bd252c,0x252c2529,0xe42529,0xe4252c,0x252c11c3,0x252d252c,0x252d1871,0xdee0df0,0x11ff0128,0xcb32564,0x15bb112a,0x2bd1ca7,0x2bd1ca5,0x1ca502b4,0xad80aaf,0xada0adb,0x28e21452,0xadb0aaf,0xc980ada,0x11440c94,0xafe0a94,0xafe141c,0x141c0afb,0x8cb08c9,0x10bf10bf,0x8d01676,0x8ca08d0,0x108410bf,0x1649089c,0x88f089c,0x1649089b,0x89b089c,0x163f088f,0x89b1644,0x16491648,0x2443242f,0x244a244a,0x6c806d5,0x10d2168f,0x168c168c,0x168f10d6,0x2a4e0d43,0x2a4c2a4c,0xd430d44,0x181a083e,0x1eda1822,0x17a3177f,0x178717a3,0x29891eda,0x299f0b93,0xb950b93,0xb95299f,0xbad2988,0x18021f5b,0x1802180c,0x180c17fd,0x1f4717fd,0x1f47180d,0x180d1f4a,0x10d908e1,0x16931693,0x10d610d7,0x8e010d7,0x217810d6,0x1a011a0a,0x218a1a0a,0x218a1a01,0x21790436,0x265d070b,0x20e52476,0xc0420e6,0x11ab00dd,0x5fe0dde,0x6011dd8,0x235f0601,0x17531753,0x6011dd7,0x10e308ea,0x8e908e9,0x10de16a5,0x10ea16a5,0x82d10de,0x18061f58,0x1f5d1f58,0x1f5d1806,0x180b1f5e,0x7410740,0x7d424ae,0x17b81f0a,0x1f0017b8,0x12d517bf,0x938275d,0x272d275d,0x28c70938,0xab30a9a,0x28b70a9a,0xaad0ab3,0x14390ab3,0x28b70ab3,0xaa61439,0xaaa142a,0x14390aad,0x14350ab0,0xaaa0aa6,0xaad0aaa,0x13651435,0x135109c9,0xdd300c6,0xc900c9,0xc61198,0x548229d,0x21b7229e,0x21b321b6,0x46021b6,0x21b3045f,0x45f21b6,0x1a36045e,0x1a3621b8,0x21b321b7,0x1a3621b8,0x21b421b3,0x21b20461,0x21b50461,0x21b521b2,0x21b8045e,0x462045c,0x45c045d,0x21b2045d,0x21b821b5,0x10ee045c,0x10f116a8,0x10f616a8,0x89c10f1,0x88f163c,0x1636163c,0x88d088d,0x16371635,0x8941637,0x163c088f,0x88f088d,0x74824c0,0x7481fbd,0x1fbd1fd6,0x1fbe1fd6,0x10431fbd,0x874161f,0x8720874,0x1f3a1042,0x17f00817,0x16ac16ad,0x16ac16ae,0x16ae10f7,0x10ec10f7,0x1c5d10ed,0x2891c5f,0x19f80419,0xdd11989,0x1196184a,0xdd0184a,0xdd01196,0x11962505,0x29c20bb7,0x29c229a5,0x118a0bd0,0x4781a49,0x26681a4a,0x717247f,0x3052587,0x19f3258b,0x1aed19f2,0x5291aed,0x52919f3,0x19f6052a,0x52919f3,0x19f60411,0x529216c,0x216b216c,0x4110529,0x4120529,0x7f317d4,0x7f307fa,0x7fa07f4,0x17da07fc,0x7be07fa,0x1ef117a2,0x8c010ad,0x8c010af,0x167108c2,0x167208c2,0xd041671,0xdae0dad,0x13ba0a18,0x13b813b8,0x2846284e,0x28472846,0x242513b8,0x26122611,0x24242611,0x10c506b9,0x10c208ce,0x8cf1679,0x1d0710c5,0x1d001d05,0x22881afc,0x38e227f,0x38d26db,0x26df26db,0x26e5038d,0x38c26ee,0x26fd26ee,0x26e5038c,0x26df038c,0x1039102d,0x197c102e,0x4ec04e2,0x11711170,0x17991172,0x1ee807b4,0x7b107b4,0x4db1ee8,0x42f2185,0xbc929b1,0x244c29c1,0x244d244b,0x2451244b,0x2451244d,0x6e92638,0x7e51f15,0x1f161f16,0x7f01f1f,0x1d4b22e1,0x212d2375,0x3f0211b,0x3f2211b,0x3f203f0,0x2154040a,0xb3e14c0,0x14be14be,0x14c114c2,0x293414c1,0xa5014c0,0xa51293e,0x20e120d6,0x297e1c9a,0xb6c18fe,0xcc30e94,0x6a41923,0x240c261a,0x2619261a,0x805240c,0x1f2a1f2c,0x1f2d1f2c,0x1f2a1f2a,0x1f2817e2,0x1230e28,0x1230e27,0x12018af,0x11bd2529,0x11bd2541,0x25411887,0x187c2541,0x170f2529,0x171f2320,0x23e4066d,0x23e423e3,0x66c196f,0x23e423e3,0x20e4066c,0x29f00bf7,0x27426c3,0x131e26bc,0x13211320,0x27bd1321,0x27d627d6,0x27b809c2,0x131e27b8,0x25e127d6,0x23f825d7,0x161f1620,0x161f0876,0x8761621,0x8b208ae,0x167e08b1,0x8d110c8,0x180d1803,0x1f4a1f4a,0x1f4c1f49,0x1f511f4c,0x1f511f4a,0x1803180f,0x18d80b68,0x11942961,0x29880bda,0x2550259,0x7b626b1,0x179f07b5,0x7c2179f,0x7c107c1,0x179f07b8,0x12de0a60,0x12dd12dd,0xa5f0a5e,0x2ba1ca4,0x2ba1c9f,0x1c9f02b5,0xead02b5,0x6cd02b6,0x71f266d,0x2512695,0x2273269e,0x1aed0529,0x1dc6235a,0x108e05eb,0x896089d,0x8930896,0x11fb108e,0x18961890,0x113f0c8c,0xe870e87,0x15ee192a,0x17c617c4,0x17c617c5,0x17c707ea,0x17c607e9,0x7ea17c7,0x17c807eb,0x17c717c8,0x26307ea,0x26bb1c4a,0x7431fcc,0x7431faf,0x1faf0749,0x24c60749,0x12d24a6,0x18b80132,0xe3418b8,0xe34012d,0x12d2572,0x12f1210,0x25722579,0x12d1210,0x256a0e2f,0x12061206,0x12031205,0x1271205,0x12031203,0xe2d1204,0xe2f0e2d,0x29591203,0x18d218d3,0xb5a18d3,0x78718d2,0x1232122f,0xe392574,0xe3a0e3a,0x12100132,0x18b80132,0x12101210,0x257a012f,0x25741212,0x25740e28,0xe3b0e3a,0xe280e3b,0x18b62574,0xe3b1209,0x12131215,0x1213257a,0x257a18b6,0x12100e3a,0x257a257a,0xe3b18b6,0x185e0de3,0xadb11a4,0xad91454,0x1c350257,0x91e269b,0x1295271b,0x127c271b,0x9230923,0x128a127c,0x1286127c,0x128a2724,0x928127c,0x91e1284,0x271b2727,0x12960923,0x271e1286,0x1282128f,0x27271284,0x127c0928,0x9212724,0x27260920,0x9350920,0x271b2726,0x12951296,0x921271e,0x9192726,0x27271282,0x12862724,0x2726128f,0x271e128f,0x1295091e,0x12962727,0x1295272e,0x272b1295,0x27272727,0x1280092c,0x92b092c,0x27270918,0x9191280,0x1cfe1cfd,0x12225a3,0x1260e29,0x25ad0320,0x9991d0a,0x278d1315,0x3430341,0x2340342,0x1c080ffb,0x23162315,0x1d84170e,0x5d005c0,0x232205d0,0x23212321,0x1d841d85,0x16221041,0xe3a0878,0xe282577,0x18bc2577,0xe280e3b,0xe3b2577,0xe270e28,0x25730e36,0x18b90e38,0xe360e28,0x1312573,0x12c120e,0xe3a120e,0x130012c,0x1206120d,0x12c120d,0x12062573,0x2573120d,0xe280e3a,0x25732573,0x120618b9,0x6922401,0x69225e6,0x25e60697,0x1e840c72,0x6f41e86,0x264d2646,0x246106f8,0x6f42644,0x6f8264d,0x6ed06ef,0x6f406ee,0x264406f8,0x6ef2644,0x16f606ee,0x5930595,0xcea0ceb,0x1cf50efa,0x1cf11cf6,0x30c1cf6,0x12961cf1,0x12871289,0x374036f,0x9250e71,0x9231287,0x772a67,0x926007e,0x12bc0929,0x95912bc,0x22340926,0x1ac304e3,0x224b04e3,0x1ac31ac3,0x4232248,0x1cae1c9d,0x1cae0eb9,0xeb91caf,0xeba1caf,0xeba1cad,0x1cad1ca3,0x127c271b,0x127c128a,0x128b1286,0x127c128a,0x271e128b,0x128f0921,0x9350921,0x12861292,0x128f271e,0x271b091e,0x9211295,0x128f1292,0x128b128f,0x271b1286,0x12961289,0x1289128a,0x1296271b,0x271b1295,0x12951284,0x12951282,0x919128e,0x92b128e,0x9190918,0x1280128e,0x12800918,0x1295128e,0x91e1284,0x1d24033c,0x9a302f5,0x131c27b4,0x28222818,0x13ac2821,0xa1a0a15,0x254f11df,0x39a0e0b,0x39926fb,0x1813082e,0x1f691f69,0x83a1f67,0x1783083a,0x17831808,0x1808177e,0x82e1808,0x2450083a,0x67706e8,0x244f0677,0x1d1b2450,0x25b51d1a,0x25b81d1a,0x25b80334,0x3341d13,0x11e32549,0x11e300c7,0x11711f4,0x11e300c7,0x265d0117,0x261e242c,0x84a15fd,0x100a100a,0x10151016,0x8361f65,0x8361f66,0x8350837,0x244f06e1,0x244f06da,0x25c40677,0x244f06da,0x28a725c4,0x13f00a66,0x1d441d45,0x13a10579,0xbf814cf,0x29442945,0x14d014d0,0xbf82946,0x14cf0bf8,0x14ce14ce,0xb460b48,0x20f20b46,0x20f214ce,0x14cd0b47,0x20f22945,0x294514cd,0xbf814d0,0x14ce0bf8,0x15072945,0x154f1538,0x154a151c,0x1e780c13,0x1e4f1e71,0x14f30c6d,0x240714dd,0x241825f9,0x25fa2418,0x27750699,0x28b1097b,0x2474265e,0x2474265c,0x265c265b,0x104f0be8,0x12021059,0x12050125,0x7ef1f13,0x7ef17cf,0x17cf1f15,0x7f01f15,0x17cf17cf,0x1f1307f4,0x7f307f4,0x7f31f13,0x17c807f2,0x17c707f2,0x258217c8,0x258a1ce7,0x1cec1ce7,0x1a450303,0x3d403c3,0x11831189,0x118329b6,0xbcb0bca,0x11800bca,0x11800bd2,0xbd20bc6,0xbc50bc6,0x29b829b8,0xbc6118c,0xbd2118c,0xbcb0bc6,0x118329b6,0x2058007c,0xef9007b,0xf090efb,0xef70efb,0x7bd0f09,0x7a607bf,0x1eef07bf,0x1eef1ef0,0x1ef01ef1,0x27530965,0x2a12757,0x20bc20bb,0x116e116d,0x10a71174,0x10a510a9,0x166610a9,0x10a51665,0x166510a9,0x166010a5,0x252508ba,0x25312532,0x11c82531,0xe800e8,0x2531186f,0xdcc1844,0x109a1841,0x165808a9,0xb860b81,0x53f18e6,0x5401b05,0x7a9178c,0x262007a7,0x73006c9,0x261e06c9,0x261e06c6,0x6c6242c,0x261b242c,0x261b06c6,0x6b02626,0x243f2626,0x6b006b0,0x261b06c6,0x16b21062,0x16b216b7,0x16b70900,0x10fc16bc,0x8d616b7,0x10681683,0x10cc1068,0x8d810cd,0x106808d6,0x91a0947,0x947091c,0x91f091c,0x92c092e,0x92c0918,0x90f0947,0x92c127e,0x27272715,0x92e0932,0x272b272e,0x272b091e,0x91e2727,0x272f0923,0x272f271b,0x271b272e,0x272e271b,0x928091e,0x127c128a,0x923128a,0x127c0911,0x911128a,0x27242726,0x27241286,0x127c0928,0x12920935,0x12920921,0x9212726,0x27260921,0x2724271e,0x1286127c,0x92e2727,0x92c0919,0x914127e,0x91f0947,0x9472714,0x127b2714,0x271e1286,0x127f2726,0x9230911,0x127b0947,0x90f090f,0x92c2715,0x127f271b,0x92c0923,0x9150914,0x91e1284,0x92c2727,0x9180915,0x12841282,0x9192727,0x27271282,0x918092e,0x1b61280,0x1b50136,0xf120136,0xf1201b5,0x1b81b0f,0xf951b0f,0xf9501b8,0x1b801b7,0x163f0892,0x894088f,0x892107e,0x8fb16a8,0x16aa16aa,0x16a810f4,0xbca0bb5,0x8d61183,0x10bb1682,0x10b910bb,0x17511683,0x174d1753,0x174f174e,0x17b41751,0x1ef8079f,0x17ac1ef8,0x17ac17b4,0x1f0307d2,0x177222a5,0x250022b2,0xdca1843,0x18de18dc,0x1ea42958,0x121e077a,0x1221077a,0x17761222,0x176c054d,0x8a2164c,0x8a2164d,0x108f08a3,0x164f108f,0x169608a2,0x10de10dc,0x8bc08bd,0x206710a2,0x20222a34,0x2a462022,0x1cb52067,0x2c902cc,0x1cb702cc,0xdce02c9,0xdcd24fe,0x10061c15,0x272d1c13,0x1294272c,0x16171037,0x28df1030,0xaab142e,0xaa00aab,0xaa028df,0x28df28bc,0x142328bc,0x27af28df,0x99c099d,0x1a8b04bc,0x4cb04cb,0x4bc04c5,0x4c604c5,0x4bc2218,0x221804c5,0x4c904c8,0x4c91a8e,0x4be04c7,0x4c91a8e,0x4c804be,0x4bf1a8e,0x221804bf,0x5a504c6,0x170a05a4,0x16bf16c5,0x1d370562,0x56c1d36,0xc440c43,0x14541e72,0x287c0ad8,0x23232339,0x1d641d82,0x5e21db2,0x15101e30,0x15111511,0x1e301e31,0xc111e31,0xc111e32,0x1e320c12,0x5e1234b,0x16f716f7,0x1db62348,0x1dbd1dbf,0x25fb173c,0x240d25f0,0x240825f0,0x1dbb240d,0x1db6234c,0x1cc61cbc,0x2da02da,0x1cba0ed1,0xb632980,0xb632956,0x29562966,0xb851901,0x18f8297c,0x29842978,0x19042978,0x19012984,0x2980297c,0x18f8297c,0x29812980,0x29800b8b,0x19010b8b,0x19002980,0xb8c1903,0x29811903,0xb8c2982,0x1900297b,0xb8c2982,0x19041903,0xb8e0b8a,0x19042984,0xb8a0b8e,0xb8d0b89,0xb880b89,0xb8d0b8d,0xb8a0b8e,0x29822980,0x28ca2981,0xac628c8,0x296918fb,0x10f2296a,0x10f008f8,0x16a608f8,0x1a8f10f0,0x1a0e0403,0x21640403,0x1a0e1a0e,0x1a911a0d,0xb99115a,0x296e1153,0x19032973,0x17d307f8,0xb5707f5,0x294c0b54,0x18c4294c,0x10d9294b,0x10d708e4,0x29e00b44,0x20fc29df,0xbf820e5,0x4c01a90,0x4c02211,0x2211220d,0x1a5e1a5d,0x10c5044a,0x10c208ce,0x167910c2,0x167b167b,0x10c508cf,0x1f221f36,0x8130813,0x1f33081b,0x1f38081b,0x1f3817ef,0x17ef17eb,0x1e80125d,0xc6f0c6f,0x125d159d,0x1b511b50,0x1b511b72,0x1b720180,0x66d23e3,0x23e423e4,0x66c196f,0x23df196f,0x1bde066c,0x1be00202,0xfda0202,0x2951be0,0x20ad1c7e,0x1c781c7e,0xe5c20ad,0x3590e52,0x207b0cfb,0x980098,0x52a8f,0x1b3f0f31,0x115d0f42,0xba00b9e,0x11590b9e,0x29920ba0,0xba0115b,0x2994115b,0x23c10ba0,0x194223c9,0x195c063e,0x18000659,0x18041805,0x18091805,0x18041804,0x18001f54,0x97f099f,0x97f27b2,0x27b212f6,0x21b00459,0x1ba221c4,0x1c302c7,0x4ad21f6,0x221a04b1,0x4c21a94,0x13f82731,0x13f80a6b,0x288a13f7,0x13f80a6b,0x227b288a,0x19ce052f,0x1af60536,0x1a631a69,0x22821afa,0x5362282,0x8561a69,0x101d101c,0x1b0cf3,0x22830d2e,0x21f021eb,0x1af51af6,0x4cd2283,0x19ee0405,0x48b1a5a,0x10c321de,0x10c1167b,0x1677167b,0x10c010c1,0x10c110bd,0x6ef25cb,0x68c068c,0x68e25dc,0x224a217d,0x5010501,0x4e00504,0x1ab004e0,0x20d00501,0x20ca1c8b,0xfd01bd6,0x16511be3,0x8b31098,0x16521098,0x1cb71097,0x2d40ecc,0x1d211d1d,0x1cbe1d22,0x2cd0ec7,0x78b1239,0x123a123a,0x12391238,0x1ebd1238,0x1ebd1241,0x1217123b,0x12391241,0x111238,0xd080d75,0x6e0d75,0x26a60d0c,0x269826a5,0xfed1bfa,0xfed2697,0x26970fec,0x25901cf5,0x1d0f2591,0x1d0b0330,0x17ca07ec,0x259d07ed,0x1cf8030e,0x1e890c62,0x4f41267,0x215f04f6,0x39026e1,0x71e0391,0x266d071f,0x26142425,0x1a3f06bb,0x46d21c3,0xa740a76,0x2430273e,0x24432623,0x1d4216d7,0x180616d1,0x82e1f56,0x1808082e,0x18081f60,0x1f601f5c,0x82d1f60,0x1d901806,0x232a1d8d,0x1d961d88,0x5ef171c,0x173c1dc0,0x8161ed4,0x124f0815,0x1ecc124c,0x79b124c,0x1f271ecc,0x17e00802,0x244b06e3,0x244b244a,0x26312632,0x5ef173d,0x5ef173c,0x173c2355,0x89f1088,0x8a5108b,0x10651651,0x108b1088,0x106508a5,0x8a51062,0x7740776,0x7610761,0x77624dd,0x24882674,0x248d2677,0x248f2674,0x8ac08ab,0x1b881657,0x1ab0f91,0x20a10f91,0x8de01ab,0x10df1692,0x169b10df,0x16d51699,0x1d4122db,0xdee0def,0x1e71252f,0x1e501e72,0x15391e35,0x15391542,0x1542150c,0x1ac92249,0x22480501,0x22471ac3,0x5001ac3,0x22492247,0x224a0501,0x22472248,0x15432249,0xc1f1524,0x10c3167b,0x10c308cf,0x8cf08c6,0x2c90ebd,0x1cb11cb1,0xebd0ec0,0xae90aee,0x136a1468,0x9c72801,0xaee1331,0xaee136a,0x136a1468,0x17b91eff,0x17b91f08,0x17b617ba,0x10e81695,0x10e710e7,0x10e0169b,0xea815c4,0x25c41149,0x6da066f,0x262d06da,0x6da2634,0x6e82634,0x6da25c4,0x272f06e8,0x12971298,0x96e12d5,0x272f096d,0x96d1297,0x12d51297,0x937096d,0x272f272e,0x272d275d,0x272d096d,0x272f0937,0x1df2238a,0xd001df3,0x2a93000b,0x29fd000b,0x2a930da7,0xda7000b,0x1fe829fd,0x20842a95,0x29fd0da7,0x1f290803,0x260717e1,0x6b3241e,0x6b206b3,0xf052607,0xf060ce6,0x8a9109c,0x775109a,0x1f960774,0x7760774,0x1c24ee,0x1e0d13,0x1a4f1a55,0x21d021d0,0x1a551a4e,0x4851a4e,0xa6f1a55,0xa6e288d,0x13fd0a6e,0x1eca0a6f,0x1ecc0798,0xe620361,0xe620e57,0xe570e58,0x34b0350,0x34b0356,0x3560e4e,0x3560350,0x26d40e58,0x26d626d5,0xce70ce8,0x1b4a0ef6,0xf4e0172,0x16b0172,0xf4e0f4e,0x1b400f39,0xc4f1574,0x20e31e74,0x29e52945,0x20ec2945,0x20ec29e5,0x29e520ed,0x29e729e5,0x29e720f1,0x20f129e8,0x20f229e8,0x20f120f1,0x20eb20f0,0x29e620f0,0x29e620eb,0x20eb20ee,0xbf920eb,0x29e429e4,0x20eb20e9,0x14ce20e9,0x14ce20eb,0x20e529e3,0x20e729e3,0x20e720e5,0x20e520e6,0xbf720e5,0x20e520e3,0x29e520e3,0x20f129e5,0x20eb20eb,0x20e514ce,0x24642472,0x2464247a,0x247a2653,0x6fb2653,0x6fb2661,0x26610712,0x1df42383,0x27371df5,0x27381293,0x273a2738,0x9450945,0x273813f5,0x288913f5,0x16952737,0x10e810d8,0x8e410d8,0x8e410e8,0x169610db,0x10ea1696,0x1c2a10e8,0x2520213,0x7242605,0x72c072c,0x6b006c6,0x16701674,0x167008be,0x8be166f,0x2619260f,0xa922617,0x131028b2,0x130928b2,0x13101310,0xa9212df,0x3ac2278,0x19711971,0x3ad03ae,0x41c03ad,0x263e1971,0x6ec2458,0x74c1fd0,0x74c1fb4,0x1fb41fc6,0x12281246,0x10ad1245,0x166e1669,0x10b5166e,0x10b410b4,0x166e10b3,0x20f120f0,0xcda0bfb,0xef60ef4,0x11610ba1,0xbab0bab,0xba10ba5,0x11670ba5,0xba11164,0x115f0ba5,0x11661167,0x11670ba3,0x11640ba3,0xba5115f,0x108d0ba2,0x108e164e,0x8a4164e,0x12f5089d,0x12fa097d,0x1b5a0186,0x1b5c1b5c,0x1741b4b,0xf550174,0x8390186,0x83b1f6c,0x1f711f6c,0x1817083b,0x83b1f72,0x6df06dc,0x6df0672,0x6720673,0x23ee06dc,0x67225c6,0x6dc23ee,0x25c725c6,0x25c72650,0x26500675,0x25a80326,0x25a80324,0x3241d06,0x25a91d06,0x12f20324,0x12f514b0,0x12aa12a6,0x277a277a,0x12a4097c,0x188600f8,0x18862540,0x25402544,0xde82540,0x265200f8,0x6fe06fd,0xcbb1920,0xcbb0cb6,0xcb60e98,0x191d0e98,0x191d15dc,0xcb915dd,0x191d0cb0,0xcb90e94,0x191d0e94,0x19200cb4,0x191d0cb6,0x15dc0cb0,0x19170e90,0x19171918,0x19180cb4,0x191f191c,0x191f0cb7,0xcb70cba,0x191b0cb7,0x191b191c,0xcb31912,0xcbe1912,0xcb30e8d,0xe8d1912,0xe930cbe,0xe93192f,0xcb815db,0x15e00cb8,0xe93191e,0x192f0cb8,0x191c0cb3,0xcb8191b,0x192f191e,0x192f0cbe,0x192f15e2,0x15e20e97,0x15e415dc,0x15e41921,0x192115e1,0x15dc0e97,0x15e31915,0x19150e97,0xe8d15e2,0x15e30cbe,0xe9715e2,0xe951921,0xe950e98,0xe980cb6,0x19150cb0,0x15dc15dc,0xe981921,0x65b23c2,0x65b1955,0x1955065e,0x23d8065e,0x23d823cb,0x23cb0661,0x196523cb,0x1965195b,0x19541966,0x1965195b,0x23c8195c,0x195523c2,0x23c70659,0x23c723ce,0x23ce23c8,0x194f1954,0x23c41965,0x195c1950,0x23c4194f,0x19551965,0x23c823ce,0x195c23c4,0x19551965,0x23cb065e,0x19550656,0x4d123cb,0x1aa304d0,0x1aa51aa3,0x1aa504d2,0x4d21aa4,0x3081cef,0x308258c,0x3070309,0x308258c,0x3090307,0x3040310,0x3040309,0x1e10306,0x1bc10faf,0x1bbe0faf,0x1bbe0fb9,0x1e601e5,0x1e61bbe,0xfbc0fb9,0xfb70fbb,0xfbc1bc2,0xfbc01e1,0x1e10fb7,0xfb90faf,0x12491bc1,0x7971ec5,0x8371f73,0x278f1efd,0xa7c0a7d,0x9f22816,0x287e1388,0x285213e5,0x13e02851,0x13e0287d,0xa4f13e6,0xa4f13e0,0x287e287d,0x28512852,0x27026bf,0x2a00279,0x20c820be,0x1c8420be,0x299320c8,0xb91298f,0x29860b91,0x26322985,0x6d52631,0x244a06d5,0x94106e3,0x27332891,0x288f2891,0x288f2733,0x2733093e,0x7ce07cf,0x8861efa,0x10731070,0x174505f3,0x1230234e,0x12361eb3,0x1eb51236,0x111c1eb2,0x1e761e78,0x157f1e76,0x157f0c42,0xc420c41,0x140728a2,0x14070a7f,0xa7c0a7b,0x14070a7d,0x27bb0a7c,0x27d927bc,0x144b27bc,0x144b09a9,0x13240ad7,0x27d809a9,0x27d827bc,0x27bc27d9,0x27d927bb,0x190a27d5,0x6280626,0x21e419b7,0x21e41a60,0x1a600491,0x21e321e2,0x4952176,0x21e019b7,0x19b721e0,0x4911a60,0x1a6021e2,0x217621e2,0x1a6003b1,0x3b121e2,0x21931a60,0x21012192,0x21e803b0,0x219a1a21,0xb4c21a4,0x18de2958,0x298418de,0x160f0b4c,0x85c1028,0xcb250e,0xcb00cf,0xcf0dd4,0xcc0dd4,0xcc00cf,0x11a0184d,0xcc00cf,0x53e11a1,0x1b041afe,0xd172002,0xd170022,0x220d18,0x2a230d1b,0x2a222a22,0xd1b2a21,0x2a1e2a21,0x1c0d1b,0x1e0d13,0x2a1a2a1b,0x1c2a19,0x1ffd2a1b,0x231a231b,0x171d7e,0x1ff40d0e,0xd0e1ff4,0xd0e0d0b,0xd0b0d0a,0x2a0a0d0a,0x2a0a0014,0x2a092a07,0xd0c0d09,0xd0c0017,0xd070d09,0xd2d002b,0x1ca5002e,0x1ca70eb7,0x2bd1ca7,0xd8c1ca5,0x2a462a47,0xd3f2a47,0x2a46003d,0xd3e2a47,0xd3e003d,0x205f2a47,0x204b0d68,0x670d68,0x204b204b,0x2a5f203a,0x204c0d69,0x205f2060,0x2a5f204b,0xd69204e,0x20602060,0x204e205f,0xe300e1,0x202f2527,0x2a52004a,0x2a512a52,0x2a51202f,0x202f202e,0xd4b202e,0x28850d4c,0x13f32886,0x13f413f3,0x2a542888,0x500054,0x20350054,0x20350050,0x500055,0x20320050,0x20322a54,0x520d4f,0x20322a54,0xd4f0052,0x522a57,0x512a57,0x2a552a58,0x20340053,0x2a550051,0x2a552033,0x2a562034,0x2a552033,0x512a56,0x2a582033,0x270b1dfd,0x2a5d1e04,0x20382a5e,0xd512038,0xd512a5d,0x2a5d2a5c,0x562a5a,0x562037,0x2a5c2a5d,0x2a5b0058,0x2a5b0d50,0xd502a5a,0x592a59,0x562036,0x20372a5c,0x20362a59,0x20360057,0x570058,0x20372a5a,0x11050d50,0xc4b1e53,0x27622746,0x6f012db,0x2458263e,0x6ed245a,0x6ed06f0,0x6f006ec,0x250700c8,0x25911f2,0x26b10255,0x10cf1684,0x10cd10cd,0x168410cc,0x29d20bec,0x29d20bed,0xbed1056,0x2a752050,0x1428006b,0x14c32748,0x6b0d73,0x10cb2a2a,0x8d51063,0x4f0d4e,0x4f004a,0x4a2a52,0x7b004a,0x7b2057,0x20572058,0x2a790d7b,0x2a792a66,0x2a660d4e,0xd660076,0x4a0d7c,0x762057,0xd4e2a66,0xd4e2047,0x2047004a,0xd7c0076,0x242d2047,0x261c261d,0x720261d,0x720261c,0x26272673,0x24412673,0x16ab2627,0x16a910f3,0x8f810f3,0x224916a9,0x1ad22247,0x9320931,0x9320934,0x934272b,0x85c0870,0x85c103b,0x1048101b,0xd59005f,0x15fb2a78,0x10090845,0x84615f7,0x15fb100c,0x15f71009,0x100c15f7,0x25281013,0xdf200e9,0x253200e9,0xdf200e7,0xe700e9,0x18742532,0xd5400e7,0x20510d6d,0x5f0d6d,0x20512055,0x20550d6d,0x802051,0xd250d54,0xd7e200d,0x20100029,0xf0c205c,0xeff0f0b,0xd4f0d56,0x5c82032,0x5c71d92,0x5a805aa,0x170b170b,0x1d762319,0x5b11d76,0x5ab05ab,0x170b05aa,0x14ae14b4,0x60a12f3,0x1dda0609,0x23720609,0x1dda0607,0x6070609,0x23702372,0x23700605,0x605236e,0x6070605,0x16cf2372,0x22dc0576,0x1c731c70,0x1bb90297,0x1d30fb3,0x1bb30fb3,0xf5401d3,0x1730fb5,0x1d90fb5,0x1bb90173,0x1bb201d3,0x1bb901d9,0x860173,0x20642a81,0xfd901fa,0x20681be6,0xd880d1f,0x2a340d1f,0xd890d88,0x882a82,0xd882068,0x20692069,0x20680d89,0xcab0e7d,0x206b0e83,0xd890d8a,0xc430c44,0xc431100,0x11001e6c,0xc2c1e6c,0x2a831100,0xd462a4c,0x249f24b1,0x7b91fcf,0x1eeb07ba,0x17aa07ba,0x17aa1eeb,0x1eeb17a9,0x7b71eeb,0x7b707b9,0x1ef307bc,0x29fe0d8f,0x321fec,0x902023,0x8d2023,0x8d0090,0x902a86,0x2a720090,0x12402a3d,0x7911ebb,0x78e1ebb,0x78e0791,0x1eb91eba,0x123d1eb9,0x1fff078e,0x2a892a44,0x2a3b2a89,0x2a3b0059,0x592a43,0x1fb024a0,0xe241fd3,0x11fd0e25,0x1f0a17b8,0x15fa1f08,0x85115fc,0x84f15fc,0x8510851,0x100a1016,0x20730d86,0x10c0d98,0x11ef0111,0x2a812064,0x7d50d9a,0x1f0217be,0x28680a33,0x13c92867,0x2867285f,0x285e13cf,0x13cf13c9,0xa320a37,0xa3c2861,0xa39285d,0xa30285c,0x2a1c2a5c,0xa302a15,0xa3c285d,0x2a912a41,0x7d0da4,0xd7a007b,0x4a007b,0x4a0d7a,0xd7a202f,0xb370b36,0xb350b38,0x14b52930,0xb380b36,0x264c14b5,0x264d06f7,0x6f5264d,0x2a7a2648,0x20472046,0xc070c22,0x16911e2b,0x10d608e1,0x9330964,0x272a272a,0x964272c,0x275b272c,0x96412c7,0x12c7272c,0x3f904c5,0x3f90425,0x42519e0,0x4240425,0xf004c6,0x188511cc,0x253c1885,0x12a500ee,0x274512dc,0x97012dc,0x9700930,0x93012d8,0x250100bd,0x11781840,0x118929a3,0x10611de,0x25062506,0x11de0113,0x99a2784,0x99a2781,0x27811319,0x1d410575,0x4810573,0x1a481a49,0xc921129,0x28271146,0x29411392,0x114d2985,0x1e092999,0x15b315ae,0x230f230e,0xc7f1d70,0xc801e0a,0x140e12fa,0x140f140f,0x277928ae,0x12f128ae,0x27792779,0x140f12f4,0x1fc4073c,0x273a1fda,0x948129f,0x1293129f,0x9360936,0x129f0948,0x1705230e,0x17051d77,0x1d7705b1,0x5ae1d77,0x5ae230e,0x230e1d73,0x230e2304,0x5ad05ad,0x1d73230e,0x5af05ad,0x5af2304,0x23042313,0x17091708,0x17091701,0x1702170c,0x170c1702,0x231305a4,0x23041708,0x23041701,0x170c1708,0x170a2318,0x17091701,0x2061702,0x1bef0208,0x2190ff5,0x26481bf5,0x6d62642,0x127315a0,0x93f0c5c,0x129e0943,0x1e181e1a,0x1e19190f,0x62a2397,0x190f1e1a,0x1e191e19,0x62b062a,0x9a4131d,0x1350099e,0x280227e5,0x27e52802,0x1a3d09c7,0x21bc21be,0x1a3a21be,0x1a3a21bc,0x1a380464,0x21bd0464,0x1a380467,0x4670464,0x4661a3e,0x1a381a3c,0x1a3a21bc,0x1a3c1a3e,0x1a391a39,0x1a3e0465,0x4670465,0x8251a3e,0x17f41f43,0x82017f4,0x8200825,0x824081d,0x8200825,0x121b0824,0x1ea3077c,0x77b077c,0x21df1ea3,0x43b2196,0x1a260451,0x183e1a05,0x250024fd,0xbd0dc8,0x1a001843,0x211a041f,0xdce24fe,0x250100be,0xdc800bd,0xbe24fe,0x183e2501,0xb70dcb,0x183400b7,0x183124f9,0xb40dbf,0x18321833,0xdbf00b3,0xae1831,0x24fa00ae,0xdc000b5,0xb300b4,0x18240842,0x9331f79,0x27520961,0x9602752,0x9310931,0x9330934,0x1017161c,0x8500850,0x103d1010,0x161d103d,0xc1161c,0xdce1849,0x20911849,0xdce0dce,0xc11846,0xdcf2502,0x122000c1,0x779121d,0x1216121d,0x7791e9a,0x1218121d,0x12181e9a,0x777121d,0x1220121c,0x22db057d,0x22d016d5,0x22d21d38,0x13eb293d,0x16dd13ec,0x22e10580,0x18d718c3,0x29740b5d,0xb7a0b7b,0x14560ad4,0x16f428e3,0x1d5a16f5,0x59416f5,0x1b831d5a,0x1b01b92,0x1bd30fd3,0xfe80fcc,0x2151bf4,0x1bf00fe0,0x1bf01bf1,0x1bf11bef,0x1bed0fe1,0x1bed020f,0x2110fe3,0xfe80216,0x1bf20215,0xfe0020e,0x216020e,0x20f0215,0xfe10fe2,0x1bf10fe2,0x20e0fe1,0xfe00215,0x20f0211,0x1bf11bed,0xfe01bf2,0x2120fe3,0x2120211,0xfe70fdf,0x20d0fdf,0x20d0fe7,0xfe70218,0x2190218,0x1bf30fe7,0x2130214,0xfe70212,0x2121bf3,0x2131bf3,0x2120211,0x2780213,0x1c4c0271,0x1b042294,0x125403cc,0x14ee159a,0x127914ee,0x14e714e7,0x14ee1251,0x2b91ca1,0x2850eb1,0x20961c5c,0x1c5e1c5c,0x1dc31c5d,0x1dcc2356,0x17452356,0x174505f6,0x5f705f3,0x5f205f3,0x5f71dc7,0x1dc705f3,0x1dcc05f6,0x235d2356,0x1dc01dc7,0x5f21dc7,0x1dc01dc0,0x174805ef,0x1fb224a1,0x160a24b9,0x101f1614,0x8631614,0x863101f,0x101f1022,0x1b8601a9,0x20a020a0,0x1a90f91,0x46c21b7,0x26a6046b,0x2590255,0x2ed1cde,0x1120ee0,0xe1d18a0,0x189f0111,0x106e0e1d,0x1633087e,0x87f087e,0x16331633,0x106e1071,0x16ad16ac,0x16ad10f5,0x10f510f4,0x8fb08f9,0x10f408f4,0x10f508f9,0x258a0310,0x1cec0303,0x3100304,0x222003,0x220d18,0xd182002,0x2a0f0017,0x2a080d09,0x2a3a2013,0x202c0055,0x2a0a202d,0x2a092a07,0x2a382012,0x892a3a,0xd850d87,0x153b1556,0xc0f0c0f,0xc281e4b,0x1e4e1e4b,0xc270c28,0xc0f1556,0x24aa1fce,0xd4c24a4,0xd5d0d4b,0x2a120cb,0x146c02a2,0x28fe0af5,0xa9e28fe,0xa9e146c,0x146c0a9f,0x19a91af0,0x171403b2,0x5d61da6,0x59705ed,0x19701733,0x6670665,0x57716d3,0x6ea16d4,0x6e92452,0x263a2452,0x263a06e9,0x6e906e7,0x1f9524ec,0x1cc524da,0x2d602d9,0xd0d0d50,0x1c3c2a0d,0x2581c3b,0x16c822c5,0x16c822c6,0x22c61d36,0x26c826c9,0x1f7f26c0,0x24e71f80,0x12a3289c,0x12a32743,0x27432741,0x2743289c,0x27411408,0x2743094e,0x274328a5,0x274313ee,0x13ee094f,0x27226c3,0xbc31c50,0x29bf117d,0x294714d1,0x1dd13a7,0x1df01de,0x1e541565,0x1e541e6a,0x1e6a1e51,0xc3f1e51,0x1d201e6a,0x1ce61d23,0x7242605,0x11692606,0xba4116a,0x26e60386,0x821038b,0x17fa17f5,0x17f717f5,0x17f607f7,0x7f717f5,0x29280b2f,0x123e14ab,0x1e9b1217,0x26632665,0x7152499,0x2665071b,0x14ae2903,0x14ae1489,0x148914b4,0x15960c68,0xbf61e8b,0x20f90c02,0x5dc231c,0x5dc170f,0x170f2321,0x23222321,0x124405b7,0x77b1ea3,0x1e391e33,0xb311548,0x147d1485,0x10d710d4,0x10d710d5,0x169510d8,0x10d710e0,0x14591695,0x145c145a,0x157d1e5d,0x15b41e47,0xc841e0f,0x410040f,0x16cc03fb,0x57616d0,0x9250924,0x271f271f,0x9540959,0x21e50492,0x4b10494,0x4bd04ad,0x1a7f04b7,0x4c804c0,0x42404c6,0x25442540,0x22211860,0x19ed04c7,0x197a0526,0x183303cd,0x18361830,0x903090e,0x90316b5,0x16b516b8,0x20400d09,0x27600060,0x275f12d4,0x96b275f,0x19be2760,0x3f119d4,0x7b307b5,0x7b6179b,0x7b2179d,0x7b507b3,0x179d07b6,0x179a1ed6,0x21102104,0x21041988,0x210e1988,0x21042135,0x21042103,0x2103210e,0x3b62103,0x213403b7,0x19af19c5,0x21032135,0x212803b7,0x19af2134,0x213519af,0x21352129,0x212903b7,0x124f1eca,0x76e1ecd,0x1f7f1f90,0x24e41f90,0xb250759,0xa4d0b26,0x4d32239,0x230204d7,0x173505a0,0x234905a0,0x17351735,0x23021732,0x22ae175f,0x262f1773,0x243f2629,0x243d2629,0x1765243f,0x22b31774,0x12371eb2,0x25651eb7,0x18ac0124,0x256b18ac,0xe310e31,0x25650e29,0x1220e29,0x21942565,0x447219b,0x2188042a,0x21882194,0x21940439,0x2a562033,0x2a562a39,0x2a392a06,0x5db05be,0x5db1d7e,0x17101daf,0x284e0a20,0x17372870,0x1dba1dbc,0x5591762,0x1766055a,0x5560555,0xe81875,0x186f186f,0xdf12526,0x11ba2526,0x11ba0df1,0xdf10def,0x252f0df1,0x252f1874,0x18742530,0x25321874,0x25320df1,0xdf11876,0x18781876,0xdf100ea,0x18751876,0x253400ea,0x18751875,0xdf1186f,0x18cd18d4,0x181b18cb,0x7d007cf,0x227c1af2,0x495227d,0x19c721e6,0xcb01915,0x3840cbf,0x26e326ef,0x3e21977,0x3d12272,0x228c19c8,0x54503e1,0x1402297,0xf181b17,0x1421b17,0x1420f18,0xf18013c,0x8471011,0x10141014,0x84c084b,0x84a084b,0x84c15fd,0x15fd084b,0x3b103b0,0x3b12100,0x210019fc,0x2740273,0x180a0277,0x1f581f5d,0x3191cfe,0x6cc25ac,0x243306cd,0x266d06cd,0x266d2433,0x24132615,0x25702551,0x25712571,0x107120a,0x1dfe0618,0x1fc40621,0x74b24ad,0x12870923,0x1df11298,0x1df42389,0xa930aba,0x7f81426,0x1f1b17d3,0x7f517d3,0x23e41f1b,0x1970066d,0x66a066d,0x6691970,0x23e2066b,0x1970066b,0x23df066a,0x23e0196f,0x662196f,0x66b23e0,0x23e2066a,0x23e00668,0x6690662,0x23e123e2,0x6620668,0x23d923d9,0x23e10669,0x11031570,0x8f31562,0x10eb162c,0x8f410eb,0x1cd608f3,0xeea0ee7,0xd3c0043,0x5c005b,0xd7e005d,0xb40db8,0x5880dbf,0x58c1d4d,0x208b2a99,0xe212a9c,0x18a711f1,0x26050724,0x2a1906b1,0x1ffa2a1a,0x1ffa2a19,0x1ffa2a16,0x2a160d12,0x2a160023,0x2a162005,0x20050d12,0xd1d2a25,0xd1d0d1c,0xd1c0023,0x230d1c,0xd292005,0x1f0d28,0x20050d28,0x2005001f,0x1f0d12,0x200f2003,0x200f0d1a,0xd1a0d29,0x220d1a,0xd122003,0x2a040010,0xd12001f,0x112a04,0xd070d08,0x110010,0x110012,0x120d07,0xd1a001f,0x2a1f0d29,0x1b2a20,0x1b2a1f,0x1f001f,0x2a1f2a04,0x120010,0x2a002a,0x2a37002b,0x2c002b,0x102a37,0x2a04002a,0x178e1787,0xdd007aa,0x133184a,0xa8128a6,0x28a328a7,0x28a228a6,0x19901be,0x19901dd,0x1dd0178,0x1730178,0x17301dd,0x1dd1bb2,0x48821d7,0x3ba19c3,0x21e619c7,0x1acd04f9,0x1d331ace,0x5681d32,0x4dc2243,0x4fa0508,0x1ad01ac0,0x1abf1acf,0x1ac11abe,0x225204fb,0x225104fa,0x1ac02252,0x5062244,0x1abf2244,0x1abf0506,0x5061acf,0x17251728,0x1d3f05d4,0x1ddf056f,0x2631c41,0x23c926ad,0x65c23d3,0x248e0729,0x26762676,0x7290727,0x1bf81c07,0xff90ffa,0x1c030fe8,0x2160fe8,0x2301c03,0xffa1c07,0x1c030ff9,0x1c041c04,0xff90230,0x3520e54,0xe660e41,0xe45036d,0xdba0dc3,0xdff0dbb,0x11cc187e,0x11cc0dff,0xdea1884,0x187911d1,0xdff11d1,0xeb253d,0x11d11879,0x18840dff,0xc8a253d,0xe8f0e78,0x925271f,0x1035128a,0x8631036,0x102b1036,0x8630863,0x161a1614,0x8681614,0x1cc5161a,0xed702de,0x1cc302db,0x1cc30ed6,0xed60ed1,0x2da0ed1,0xed31ccb,0x1cca1cc9,0x1ccc1cc8,0x1ccc0ed4,0xed41cc7,0x2dd0ed5,0xed50ed8,0xedb0ed8,0x1cc802e0,0x1cc80ed5,0xed50ed4,0xedb0ed5,0x16d1ccd,0x1b390f44,0x30e030f,0x2c7259f,0x2cf1cb4,0x1cb71cb4,0x211b02cf,0x3f21973,0x1ab21973,0x28ad216a,0x27852783,0x72b072d,0x72b2492,0x72a0729,0x727072a,0x2498072b,0x249a267d,0x8e308e2,0x8e310d6,0x10d610da,0x168c10d6,0x8471067,0x15f9100b,0x2631c4a,0x1d801c41,0x17141d83,0x5bf05dc,0x1d851d80,0x1d822321,0x5dc2321,0x1d821d81,0x1d812321,0x5d005bd,0x5c005c0,0x23231d85,0x1d8005dc,0x5dc1714,0x1d811714,0x5c005bd,0x1d852323,0x23231d82,0xf760f80,0x1a201a2,0x1a401a1,0xf7c01a1,0x1b7601a3,0xf7f01a5,0xf7f1b76,0xf7f0f7c,0xf7c01a3,0xf8001a4,0xf9301a2,0x1b570f92,0xf1c1b57,0xf1c01b2,0x1b201b3,0xf7b1b7c,0xf7b0f93,0x20a11b7c,0xf7d1b7c,0x20a11b94,0x1b941b7c,0x1b7b0f7d,0x1b7b0f90,0xf9001af,0x1b7a20a0,0xf910f7b,0xf7b20a0,0xf900f7d,0x2a011b94,0x2a030d03,0x1b9001ae,0x1d201ad,0x1bad1bb1,0xf161bb1,0x1351bad,0x1bae0f13,0x1bae0135,0x1bb01bad,0x1baf0fac,0xf600fac,0x1b601baf,0xfad0f6a,0xfad1b60,0x26971baf,0x21f0fe5,0x217024e,0x211021b,0x1bfd0213,0xfc60fed,0x21f0fc5,0xfc71bce,0xfc81bfb,0xff01bce,0x1c001bff,0x2200ff0,0xff10223,0x2250221,0x2261bfd,0x21b0225,0x1bcc021c,0xfc3021b,0xfc71bcb,0xfed0fc6,0x21a0feb,0x1bf91bcb,0xfc20feb,0xfee1bfb,0x1c000ff4,0xfee0ff4,0xfc11bf9,0x2200ff3,0x1c011bfc,0xff30222,0x10b50227,0x10b41674,0x10b61674,0x61c08c3,0x6181dfe,0x135409d4,0x222327f0,0x1a8b04cb,0xf200f3,0xf41883,0x11cb0df8,0x253b0df8,0x11cb00ee,0xee0df8,0x11cc00ee,0x26811cb,0x1c3e1c3d,0x28f1146b,0x28f228f2,0x28f0146c,0xaed146c,0x279c28f0,0xb0d1493,0x29490b49,0x22c13a8,0x1bf11bf2,0xfc901f4,0x223e0fce,0x4f02242,0x4f62242,0x223e04f0,0x1abb04f0,0x4f0223c,0x4f204f6,0x223f04f4,0x4f104f8,0x4f11abd,0x1abd223f,0x46121cb,0x186521b4,0x251c0ddf,0x2a9b208c,0x2a9b208e,0xa700a8,0x208d00a7,0x1863208e,0x1861251c,0x11a52515,0xd9185c,0x185f251a,0x251b0ddb,0xddb00dc,0x186411a4,0x11a7185d,0xd700da,0x251700d9,0x18611862,0x11a6185f,0x251811aa,0x251311ad,0x11a42514,0xda185e,0xed702dc,0x251902e1,0xde111ac,0x11af1868,0xdde2521,0x185d11ab,0x186800d6,0xd80de2,0x11ac2518,0x185c2516,0xd611a7,0x11a50ddc,0xda80da9,0x1d0829fa,0x3341d12,0x25af1d0d,0x229c032b,0x548229a,0xef253a,0xef00ec,0xf300f2,0xef00ec,0xf300f3,0xec11cd,0x7f807f9,0x7f817ce,0x17cd1f17,0x7f817ce,0x1f1717cd,0x17cc17d0,0x17d907fd,0xab907fa,0xa960ab8,0xa980ab8,0x18bf0a96,0x12b0e35,0xe3318b7,0xe3618bf,0xe282573,0x7c917ad,0x17b317b3,0x17ad07cc,0x289f0a7f,0xd4828a4,0x700d47,0x2df1cc2,0xe341cc0,0x25720e11,0xe0f0e11,0x12590e35,0xc6d14db,0xe540e51,0xe540e52,0xe520e53,0x354035c,0x3540e56,0xe560e3f,0xe51035a,0x35b035b,0xe520e51,0x3440e3f,0xe56035d,0x35d0e3f,0x3410343,0x3410e4f,0xe4b0e4c,0x3410e4f,0x3560e4b,0xe4d0e4e,0x3580e4e,0x3570357,0xe4e0e4d,0xe4f0343,0x3430355,0x3440355,0x35d0355,0xe500344,0x3580357,0xe50035b,0xe50035a,0x35a0358,0xe550e56,0xe55035c,0x35c0359,0xe520359,0x14f50e53,0x14dd0c54,0x126f0c6c,0x12590c51,0x14f31e93,0x189e11ed,0x13bf189d,0x13c813be,0x12c0095f,0x12c0095d,0x95d2752,0x142e0aab,0x142e27ba,0x145828e0,0x13201458,0x142e27ba,0x27ba1458,0x142b0aa8,0x142b0ade,0x27b90aab,0x142b0ade,0x24c427b9,0x24b61fd8,0x7471fd8,0x7471fc0,0x24c00748,0x74524bb,0x7451fd1,0x1fd124b9,0x1fc01fd8,0x74724b6,0x1fc024c0,0x24b724b9,0x1fd11fd1,0x24bb1fcd,0x7371fcd,0x24c024bb,0x73724bb,0x2529187c,0x252900ed,0xf711bd,0x252900ed,0xf700f7,0xed1887,0x11cf1887,0x11cf00ed,0xdfe0dfd,0x1473132f,0x27a91478,0xac90ac7,0xb102916,0xb100b0e,0x29192918,0xb100b0e,0x15a82919,0x14fb14fa,0x14fb127a,0x14ef14ef,0x1e791e8c,0x14da1e8c,0x1e7914f0,0x15821e8c,0x159814da,0x14da159c,0x14f0159c,0x14ef127a,0x14f21e79,0x159b1e8f,0x126b1e8f,0x126b159b,0x159a1581,0x14ea1581,0x14ea159a,0x159a14ee,0x127914eb,0x14ed14ee,0x14f90c76,0x15a1126c,0x14f50c74,0x1e9514f4,0xc6a126f,0xc7114f1,0x125f1e8e,0x1260125f,0x12601e97,0x14f6126a,0x12601e97,0x126a14f6,0x14f60c70,0xc7315a2,0xc5d0c5d,0x15a41e98,0x12700c6b,0x15a11271,0xc69126c,0xc5a0c69,0xc5a0c72,0x1e951e96,0xc5a0c72,0x1e931e95,0x12710c6d,0x14de126a,0x14de0c70,0x14f21e8f,0x14de159e,0x127214f2,0x159914e9,0x1e8e1599,0xc760c71,0xc7514ed,0x14e314ed,0x14e30c75,0xc741e92,0x1e8d1598,0x1e8d1e94,0x127214e9,0x1261159f,0x126115a0,0x15a00c5b,0xc730c5b,0xc731273,0x1e8515a2,0xc731273,0x15a01e85,0x159f0c59,0x159d0c59,0x1e35159f,0xc2b0c15,0xc6e0c6f,0x125c125c,0x159d159f,0xc6c0c6a,0xc6c1585,0x15850c6e,0x127614ec,0x1e911277,0x127614f9,0x12720c52,0xcd60c71,0xcd818c0,0x114b15d7,0x26b615c8,0x2650269,0x26b0269,0x2b30265,0x1c5a1c5b,0x1a4a1a34,0x19111a4c,0x23a123a0,0x239f062c,0x1fa51fa4,0x23a11911,0x1fa4062c,0x26931fa5,0x1c252691,0x1ead1233,0x1ead0787,0x787077f,0x1eac077f,0x122c122c,0x787122e,0x18b91206,0x18b90e27,0xe360e38,0xb400b3,0x21850db8,0x22311aac,0x16b80906,0x16b816b7,0x16b7090e,0xe3a0132,0xe3a0e37,0xe3918ba,0x1adc0513,0x50d1ac2,0x1ac60510,0x22812287,0xdc32285,0xb20dc5,0xdc30dba,0x17d60dc4,0x7f817d3,0x7fa07f8,0xbd17d6,0x184200bc,0x916094d,0x916093a,0x93a1281,0x127d2718,0x127d0943,0x12a00947,0x27181281,0x93a093d,0x93d1281,0x93f0943,0x93f2718,0x2718093d,0x95d095f,0x95d12b8,0x12b812b7,0x792057,0x8cf0d79,0x8c810bb,0x176c22b9,0x10e90552,0x8f016a3,0x169e16a3,0x1c3310e6,0x269a26a3,0x269b26a3,0x284e0fe6,0xa4413b8,0x14b3292f,0x2803290a,0x135a09cb,0x136727fd,0x9dd27fc,0x136527fb,0x27fd09dc,0x9dd27fc,0x9dc1365,0x135d09ce,0x27f627f5,0x9d409d2,0x9d709d4,0x9d709d6,0x9d627fb,0x13822819,0x1368138f,0x9df1369,0x136209d1,0x13621360,0x136027f8,0x27fe2800,0x280027ff,0x9e027ff,0x9d109cd,0x9d1135c,0x135c1360,0x9e02800,0x9e0136b,0x136b09e1,0x135c09cd,0x9e209e2,0x9e1136b,0x136227f8,0x13641364,0x27f91363,0x9d909d8,0x136427f8,0x9d827f9,0x9d909d5,0x9d91361,0x136109d8,0x27f71361,0x280209d5,0x136c2801,0x136a2801,0x9cc136c,0x27f709d5,0x136c2802,0x9cc09e3,0x135b27f7,0x9e32802,0x1366135b,0x9da27fa,0x9db27fa,0x9d009da,0x135e135d,0x135e09d0,0x9d009d3,0x9da09d3,0x27f509cf,0x27f5135f,0x135f09d2,0x27fd1367,0x27fd09de,0x9de1369,0xde7186d,0xde711ad,0x18661860,0x20941c5f,0x3130287,0x1cf90319,0x1cfd0319,0x1d311cf9,0x22ce22cd,0x22b31764,0x104a22b0,0x105c105d,0x17d907fd,0x29d307fa,0x105329e1,0x105129e1,0x10531053,0x29d31052,0x1061104e,0x10601060,0x104d0bf4,0x135427ee,0x135409d2,0x9d209d4,0x10aa10a4,0x1df210a9,0x2382238a,0x18341835,0x193b00b7,0x195d23b8,0x56916c5,0x1d371d36,0x22cc1d3b,0x1d3616c5,0xf0d1d37,0xf0e0cf0,0xf110cf0,0xf110f0e,0xf0a0cee,0x282e09f8,0x213d13a7,0x19ba2138,0x19bd03e5,0x213b213a,0x3e5213d,0x19ba213d,0x221403e5,0x211303da,0x22211a8d,0x22222222,0x1a8c1a9f,0x1a9d1a9c,0x4ca2220,0x1a8c04bd,0x4c704be,0x22262221,0x19df2167,0x1ab404e2,0x1aa604ee,0x2169040a,0x12d22760,0x12d2096d,0x96d12ce,0x12d412da,0x12d412d9,0x96e2760,0x276212d9,0x276012da,0x96e096d,0x5462297,0x3c819ae,0x53d2289,0x21282134,0x1b000541,0x3c60543,0x19c50540,0x4e31992,0x224c2232,0x2de1ccf,0xf6802df,0x1b5e1b5f,0x1921b67,0x13a01a0,0xf690f17,0x1b100f13,0xfda01c8,0x2011be7,0x15c20ccf,0x64a191d,0x65b065e,0x19b60547,0x19b519b5,0x22992137,0x53c2137,0xfea2299,0x1b301b2f,0x1c3e1c48,0x2a6f1c42,0xd730d6e,0x6b0d6e,0x2a710d73,0x2a742a72,0x2a6f2a72,0x322a73,0xd322a3d,0x2a402a3d,0x2a400d32,0xd722a71,0x2a732a72,0x2a6f2a74,0x2a730d73,0xd722a74,0xd722a71,0xd362020,0xd360d72,0xd722a41,0x201d2a41,0x201e201d,0x201e2a3f,0x2a3f201f,0xd722a40,0xd32201d,0x201d2a40,0x201d0d32,0x20252a3f,0x20242023,0x3f2023,0x20242a4a,0x2a4a2023,0x2a3f0d32,0x2a3f0d30,0xd30201c,0xd32003f,0xd420d30,0x20242025,0x2a43201c,0x3e2a3b,0x2a482a49,0x2a4b2a49,0x2a4b2a48,0xd410d42,0x2a442a3b,0x2a480d30,0x3e0d40,0x2a480d41,0x201c2a4b,0xd302a3b,0x2a4a0d30,0x19a003f,0x1840f6d,0x26841c21,0x209a26cf,0x1c63028b,0x25a325a2,0x25a30325,0x32525aa,0x25ad0325,0x32425a5,0x32d1d0e,0x69525e9,0xed80690,0xee102dd,0x2851c5c,0xcaf20e0,0xccb1929,0xe740ccb,0xe740caf,0xcb10e77,0xe740caf,0xe770cb1,0xcb115ee,0xc8c15ee,0xc8c0cb1,0x15f0112e,0xc8c0cb1,0xea415f0,0x15f00ea3,0xcb10ea3,0x192f15f0,0xcb80cd1,0x15f00cb8,0xccd192d,0x192c15f0,0x192c112e,0x192f15f0,0x192d0cb8,0xccd15f0,0x113a192d,0xc9b0e97,0x192f0e97,0xc9b1135,0x15e70e97,0xe9715e7,0x192d15c9,0x192f1135,0xf000d,0x26010d20,0x24182412,0x1d2d22ce,0x7631d2e,0x7611f89,0x24dd1f89,0x7610761,0x1f87075f,0x7610762,0x75f1f87,0x7601f84,0x1f831f84,0x7601f85,0x1f851f84,0x1f870760,0x7b7075f,0x1ee91eeb,0x188a2549,0x247400fe,0x70c265b,0x230a230b,0x23121702,0x17121d7c,0x172f2341,0x5e405df,0x1dbc1737,0x22d616cb,0xdd2057b,0x11d51196,0x266c2666,0x26750730,0x6ac248c,0x29960b9e,0x2996115f,0xba10b9c,0xf5c0f5d,0x275f0f5b,0x12d012d3,0x3ea1984,0x198403e6,0x197403e6,0x3dd03e6,0x19c81974,0x3e42133,0x19842133,0x19ae199f,0x213303e4,0x3d503c8,0x199f199f,0x213319ae,0x3cd03dd,0x19742131,0x213103dd,0x3c803bf,0x3c81984,0x1984199f,0x211d211b,0x211b211c,0x1973211c,0x3bf211c,0x19741973,0x19841973,0x21311983,0x3be03cd,0x1979210b,0x1983210b,0x1979197a,0x197a210b,0x3bd19aa,0x3bd2130,0x213003c9,0x3be03c9,0x19821982,0x197903be,0x3bf1973,0x19961984,0x3c92130,0x19961982,0xc1603c9,0x1e350c15,0x15441546,0xc131514,0x15141541,0xc7614ed,0xc6b15a6,0x1e7c1270,0x12711270,0x126f1e7c,0x126d0c6a,0x127515a5,0x127514e2,0x14e214f7,0x15a714f7,0x15a714f8,0x14f80c77,0x25881cea,0x127702ff,0x14ec0c68,0x12261eaa,0x12261225,0x1e9a1ebc,0x12161e9a,0x12161225,0x1ea31ea1,0x1ea01ea1,0x1ea01ea3,0x1ea3077e,0x12441ea3,0x12441225,0x12271228,0x12441225,0x12271eab,0x12440780,0x1eac0780,0x1eac1244,0x1eab077f,0x1eac1244,0x12261eab,0x12251e9a,0x1e371559,0x1f721e36,0x8331817,0x1f660833,0xc390835,0x157e1e5e,0x158f1e92,0x158e158e,0x126c1262,0x127914e7,0x1e971277,0x14e0158c,0x24f300b1,0x1143182c,0x15be1142,0x192e0e95,0x11b80ea4,0x11ac0deb,0xdd900ce,0xe000d2,0xded11b7,0x11c30ded,0x8a211c2,0x108a164b,0x1089164b,0x108a108a,0x1087089d,0x8a31090,0x108a08a2,0x10901087,0x18580de4,0x18580dd7,0xce0dd9,0x18580dd7,0xdd700ce,0xde4119f,0x250f2510,0x250f1853,0x119e00d0,0x250f1853,0x1853119e,0x25101852,0xcf1857,0xcf11a1,0x11a21857,0xd111a2,0xd1250e,0xdd81856,0xd1250e,0xd30dd8,0x11a02511,0x18592511,0x11a011a1,0x11a12511,0x185411a0,0x185500d3,0xdd81852,0x1857185a,0xd01859,0xdd611a3,0x1b4e1b5b,0x1b4e0f57,0xf570242,0x1b580242,0x400f57,0x532a4d,0x2a182a4d,0x2a180053,0x530015,0x20340015,0xd550053,0x530040,0x203b203a,0x203b205d,0x205d0d55,0x2a5f205d,0x204b203a,0xd640067,0x206b0d8a,0xd8e2a46,0xd862065,0x11d011c2,0x1f61186c,0x18121f64,0x1aee2102,0x52e052e,0x21022277,0x52d2277,0x3ac03ac,0x1aef2278,0x3ac2277,0x227a2102,0x1aef1af0,0x21021af0,0x227a1aef,0x22791aef,0x25392538,0x29f81878,0xd9e2a8d,0x168810d0,0x11b1168a,0x11a30de4,0xd011a3,0xd7111b1,0x203f2a60,0x2043203f,0x690d5a,0xd710d70,0xd5a203f,0x11d20069,0x188911d3,0x25082548,0x25080e22,0xe22184e,0x18900e0a,0x21c61891,0x472046f,0x254d11db,0xe030e03,0x188e11da,0x11dd188e,0xe080e08,0x188e0104,0x11db0104,0x11d6188e,0x11d50e03,0x188c11d5,0x188d188d,0x11d50e02,0x165508ad,0x120d08af,0xe3c0130,0xe1411ed,0x189d0e10,0x189e11f8,0x11c11f8,0x112189e,0x189d11ec,0x11218a0,0x11218a1,0x18a1189d,0x18a118a0,0xe1e2545,0xe1f011a,0x11ef011a,0x11ee0e1f,0x11ef0e1f,0x254600fa,0xfb18a1,0x18980e00,0xfa0e00,0x1101898,0x1898255b,0xfb255b,0xfa1898,0x189e18a1,0x189e00fa,0x25450e1b,0x11111ee,0x11ef11ee,0xe1b0111,0xfa1898,0x1112545,0x264d18a0,0x6f506f8,0x6f406f8,0x6f406f5,0x6f52646,0x26482642,0x2648245b,0x245b06f5,0x255f18a5,0x18a3255e,0x11f118a5,0x18a411f2,0x18a411f3,0x11f311f1,0x13f00a65,0x13f02887,0x28870a66,0x13f10a66,0x11f72887,0x11f31197,0x1eef07be,0x1eef1ef2,0x1ef217a7,0x7bb1ef2,0x1a6a07be,0x4a104a0,0x49e04a1,0x49e21ef,0x21ef2101,0x1fdf0008,0x29fb1fe0,0x80cfe,0x21fdf,0xcf329f7,0x29f729f6,0x1fec0d02,0x1fec29ff,0x29ff29fe,0xc29fa,0xc000a,0x29fe29ff,0x29fe000c,0x7000a,0xcfd29fa,0xa29fa,0x29fa1fe9,0xcfd1fe9,0x2a020cf1,0xd04,0xcf329f6,0xd040cf1,0x1fe90000,0xcf30cf1,0xcf1,0xcf30cf3,0x1fe90cfd,0xcf60cfd,0xcf60005,0x50cf7,0x60cf7,0xcf80005,0xcf40004,0x70005,0xcf80cfd,0xcfb0cf4,0xcfb0cf8,0x11990005,0xe201197,0x11ee0e20,0x10d2184f,0x1067162d,0x111189f,0x1ab6010b,0x222d222c,0x11e20119,0x1f5c1894,0x1f571f53,0x188400f0,0x250c11cc,0xdd5119e,0xdd60dd5,0xdd6250c,0x2509119f,0xce90f01,0x255a0f07,0x189a11eb,0x10f11eb,0x11e7189a,0x255a1899,0x11e61899,0x1b7a2559,0x1b120a0,0x1b11b7a,0x1b10f7e,0xf7e1b93,0x1b7b01af,0x1b920f7a,0xf7a01af,0x1b9201b0,0x1b920f7e,0xf7e0f7a,0x189900fb,0x1899010e,0x10e11e7,0x189b010e,0xba200fb,0xb9d1159,0x25551896,0x163211fa,0x8881074,0xcb815e0,0x92f15e1,0x27251290,0x2ad20dd,0x20da20da,0x1c9920db,0x12301eb3,0x12301eb4,0x1eb41234,0x12341eb4,0x14140788,0xa8b2789,0x13012789,0x13010a8b,0x14132790,0x14131301,0x1f830a8a,0x24ea24d9,0x24eb24ea,0x24eb1f83,0x1f850764,0x1f2b17e5,0x8cb0807,0x8cc1678,0x10c4167a,0x8cb10c7,0x167d08cc,0x167a08cc,0x1b1d167d,0xf520f1d,0xf550f1d,0xf550f53,0xf530182,0x120e0132,0x120e0e11,0xe110e0c,0xe340e11,0x102018b8,0x8621606,0x8671606,0xd931616,0xd942a88,0x12c120d,0x12c0e39,0xe39120f,0x25740e39,0x25742573,0x25730e28,0x12062573,0x1206120d,0x120d0130,0x1140115,0x1140e20,0xe200e1f,0x11970e20,0xe200116,0x1150116,0x11f018a2,0x11f0255e,0x1160115,0x11f0255e,0x213e0116,0x19e2214a,0x1a8d2221,0x222204be,0x1a8d2217,0x5c51d87,0x19d72331,0x222e2237,0x1c8102a3,0x3ca029c,0x5151995,0x21730531,0x211619f9,0x229f198a,0x18b70e33,0x12e90109,0x12f10b36,0x14b50b36,0x3e312f1,0x19d303f1,0x331032a,0x7511d11,0x7521f7b,0x7531f7b,0x7530752,0x75224ce,0x7500752,0x1f7c0751,0x7500751,0x7541f7d,0x75424cf,0x24cf1f7c,0x7591f7f,0x759075a,0x7581f7d,0x759075a,0x1f8124d3,0x24d41f80,0x1f7f1f80,0x75a24d4,0x1f7f24d4,0x7501f7c,0x24d324cf,0x7580759,0x165408aa,0x16541653,0x165308ad,0x8af08ad,0x8ae08ae,0x8ad1653,0x10971653,0x8aa08aa,0x8b31097,0x250c119e,0x19d1250b,0x19ba19d5,0x7ae1794,0x1ee41ee4,0x7ad1791,0x1baf01ca,0x1f570fad,0x1f591f52,0x2a6e0d53,0x120b0d6c,0xe120e33,0x15c71931,0x15b90cd5,0x192b15bc,0x11261127,0x192a0e76,0xe780c8a,0xe770e78,0x1123192a,0x15ec1928,0xe740ccb,0xeaa15eb,0xe9b15f3,0x113515f3,0xe9b0e9b,0xe9d1135,0x15c91135,0x113515e6,0x113915e6,0xeaa0eab,0xea20e9a,0xcc70cca,0xeab0cca,0xea20e99,0x11280cc7,0xc8d15ef,0xc8d112b,0x15bb0ea2,0xea215bb,0x112c112a,0x192515bd,0x15ef15bd,0x19251925,0x112b15ef,0x15bf1130,0x15bf0c90,0x1924112c,0x112c1924,0xcd01925,0x15ea0ea6,0x11300ea6,0x15c415ea,0x15e90cd2,0xcd00cd2,0x15e915ea,0x15ea0cd2,0xea81134,0xea815c6,0xea115c4,0x15c40ea1,0xea915e9,0xea01136,0x11341136,0xea015c6,0xea915e8,0xea015c6,0x11351136,0xe9d1139,0x11280ea2,0xea81926,0x15c60ea1,0xe9b0eaa,0xeab0e9a,0xe990e9a,0xcc90e99,0xc900cca,0x113015ea,0xc901924,0xcc915bf,0xcca0e9f,0xcc80e9f,0xcc80cca,0xcca0cc7,0x112b15bb,0xea20c8d,0xc8b1926,0x3e319be,0x3e319a1,0x19a119b9,0x19a219b9,0xc9119a1,0x112d0e7a,0xe790cc1,0x15f115f1,0x19231131,0xccf1131,0x19231923,0xcc30ccf,0x15c20ccf,0x15c20cc3,0xe7b0ea7,0xcd30ea7,0xcd30e7b,0xe7b15c3,0xe7b15c2,0x19220cc3,0x15f10cc1,0x19220cc2,0x112f15f1,0x15f10cc2,0x1556154e,0xc980c27,0x11331138,0x13a82840,0xc70a0f,0x25042505,0x11962505,0x11960dd0,0xdd0184a,0x4d80427,0x222a222a,0x21622163,0x1aa22162,0x1aa20433,0x43304d0,0x21810433,0x21812162,0x222a0427,0x17a1b61,0x17a018c,0x18c1b4b,0x1b5c1b4b,0x1b5c0f5e,0xf5e0188,0x1b5f1b5e,0x188018b,0xf5e1b5e,0x18b1b5e,0x1900f5e,0x1b5d1b56,0x17f1b56,0x17f018a,0x18a1b54,0xf5a1b54,0xf5d018a,0xf5c018f,0x190018f,0x1b560f5c,0x1b5d018a,0x288d0a6e,0x288d13fb,0x13fb13fa,0x29510b52,0x29510b55,0xb5518cc,0xb5618cc,0xfb2295a,0x1bb70190,0x18f0190,0x209d1bb7,0x209c1c66,0x25660126,0x25660e29,0xe290e2a,0xe260124,0xe260121,0x256c1201,0xe260121,0xe2a256c,0x12000124,0xe290e31,0x12001200,0xe2a0e29,0x256b1200,0x18be0e31,0x120d120c,0x18bd120d,0x18bd18be,0x12142562,0x25602562,0xb441214,0xbf3104c,0x104d104c,0x104d0bf3,0xbf30bf4,0xd7f2a7e,0x422a55,0x872a50,0x9502746,0x95012db,0x12db12da,0xe3d257b,0x2a5918b6,0x1ffc0019,0xb9e1159,0xb9e0b9d,0xb9d2990,0x298d2990,0xebc114f,0x2be0ec0,0x10a81665,0x11f110ab,0x11b255e,0x32b1d0c,0x293d0322,0xa5b0b41,0x19d519d6,0x3f519d7,0x19d6222f,0x2157222f,0x107119d6,0x8871633,0x9870982,0x987140b,0x28b21309,0x987140b,0x119e28b2,0x2509119f,0x207f201e,0x12f5009b,0x12fa097d,0x12a92749,0x12a912a7,0x12a70950,0xb9f2994,0x29932993,0x29942985,0x115d2996,0x115d0b9c,0xb9b116f,0xb9f115b,0x29942994,0x115b2995,0x115d2995,0x115b0b9e,0x29922995,0x2996115d,0xb9e0b9e,0x29951159,0x12090e3b,0xe280e28,0x18bb2574,0x1d772336,0x178805b1,0x1ee7178c,0x17971ee7,0x14641796,0x28e5145d,0xcca0eab,0x12490caa,0x1ec8079c,0x3640e5c,0x3630363,0xe5c0e5d,0xe5a0e5d,0xe5c0360,0x3600e5d,0x35f0e5a,0x35f0e5b,0xe5f0e5e,0x35f0e5b,0xe5e0e5f,0x3620361,0xe570361,0x3620e59,0xe590361,0x3620e5e,0x4a70e5f,0x4181a6f,0x1f0e07e5,0x28d31f0f,0xabf0ac0,0xac10ac0,0xabf28d4,0x28d40ac0,0x1da7233f,0x17e32345,0x1f290804,0x8030804,0x1f291f29,0x17e61f30,0x7ff0800,0x7ff1f29,0x1f2917e3,0x2a51202e,0x21150d3b,0x19fb0419,0x466044c,0x1a571a3e,0x48721d8,0x48c21dc,0x1a57048d,0x4850487,0x21dc0487,0x48e0485,0x21dc0485,0xcea0f08,0xcea0ce9,0xce90ceb,0xef90ceb,0x1a860f09,0x1a9a04b9,0x202b2a53,0x202b2030,0x20300044,0x4b0d48,0x44004c,0x20300d48,0x17b117b0,0xa7117b5,0x28952891,0x2a500d29,0xecf0d6a,0x2dc1cb8,0x11821192,0x11821194,0x11941181,0xbde1181,0xc0d1194,0x15060c0c,0x1b950146,0x161e0f94,0x101a1604,0xb590b57,0xb590b5c,0xb5c18ce,0x3031cec,0x2f902f9,0x3042585,0x3062585,0x3c70304,0x22912112,0x53e2291,0x1f0a199e,0x7df07d4,0x1f0407df,0x1f041f06,0x1f0917b7,0x1f041f06,0x278c1f09,0x28920a73,0x178d1ede,0x178d178b,0x178b1ed8,0x264f262c,0x264f06fa,0x264c06f7,0x6d2243a,0x6d22439,0x2439248d,0x2580257,0x23520261,0x17432355,0x23582355,0x8281743,0x1f441f46,0x8261f46,0x29b21f44,0xbb40bb2,0x29761904,0x98518f2,0x288e13f9,0x288d13f9,0x1652288e,0x8ab1653,0x8ac1653,0x8ab08ab,0x16521096,0x1097109b,0x1be81652,0x1bcf0205,0x1dff270c,0x1897061d,0xe31256e,0x22fd1735,0x1c29173e,0x1c272690,0x45b1a28,0x16b121d1,0x16b60901,0x10fe16b6,0x1d53090d,0x5831d54,0x20011fff,0x20012a44,0x3c1ff8,0x29be117b,0xbde0bde,0x29a21181,0x15f30cbe,0x11351135,0xe93192d,0x1b990f96,0x1b990f97,0xf971b9a,0xf991b9a,0x15800f97,0x111d1e77,0x1a1e2196,0x1a1e1a1d,0x1a1d0443,0x43b2193,0x43b0441,0x21952196,0x21962195,0x43b1a1d,0x4412195,0x4440441,0x4442193,0x2193043e,0x1a1a043e,0x43e2191,0x43f2191,0x21932192,0x2192043e,0x43f043e,0x4400438,0x4400439,0x4391a1c,0x21921a1c,0x21921a1b,0x1a1b043f,0x21941a1b,0x218f0439,0x2193043b,0x4402193,0x4380438,0x218f043a,0xfa30fa6,0x264301d2,0x24422457,0x24542457,0x24542442,0x24422628,0x24592442,0x6812643,0x6870683,0x25626ae,0x15120259,0xc121e34,0x2724128c,0x12bc2726,0x95912bb,0x12b612bb,0x12b60959,0x95412b2,0xa870a86,0xa872779,0x12e90978,0xa872779,0x1d4612e9,0x57e057d,0x7ef17cb,0x17431f13,0x5f21dc0,0x724267c,0x18a9072c,0x12140131,0x120e0131,0x120e120c,0x120c0e37,0x70b262f,0x2403246f,0x25e12402,0x252d252a,0xdf00df0,0x252f00e5,0x253000e5,0x11be252f,0x2524252a,0xdf0252a,0x2524252f,0x252f252a,0xe211bb,0x252611be,0x11bb00e3,0x25252524,0x11bb2526,0x252411be,0x11fe18aa,0x15a8188d,0x1e8a1595,0x14f41e95,0xb691587,0xb7a2970,0xb7f0b7a,0x186b0b69,0x11a5185c,0x1d22033b,0xd49257d,0xd610049,0x7e0066,0xd5a0d60,0x2a6d204f,0x166b166d,0x8c108bf,0x10af162e,0x8bf10b0,0x8bf1672,0x167208c1,0x287d287e,0x2a980a52,0xdad0dae,0xa300a6,0x2a4e0099,0x29f91fe2,0x9d2a95,0xa50da5,0xdb000a4,0x2a932a94,0x20860da7,0x2a972087,0xdac2087,0x207a2a97,0x950094,0x20790da0,0xda10da1,0x962a8e,0x982a8f,0xda8009a,0x2a922085,0xdaa2a92,0x2a96009e,0xda82085,0x208d00a5,0x186700a7,0x18650ddf,0xdca1843,0x7640dc9,0x76024df,0xc3d1118,0x1e581108,0xc3e1565,0x11081118,0x13101e58,0xa9112df,0x28b20a91,0x13a71310,0x1386283f,0x68f068d,0x23ff23ff,0x25c223ea,0x25c525c2,0x68e068e,0x25c2068d,0x26212618,0x26212615,0x6c006cb,0x23e723ec,0x23e70693,0x69323eb,0x25e00693,0x23ed067d,0x67d0693,0x23ef25e0,0x25e0067c,0x67d067c,0x23ec25c3,0x11490693,0x11340ea8,0xea91136,0x1b961149,0x1b9801b9,0x79b1ecc,0x7950795,0x124a0797,0x1da405d4,0x58a1da3,0x1d4d22ee,0xd320032,0x340034,0x201a2a3c,0x332a3c,0x33201a,0x201a0d31,0x2a3d2a40,0x201b201b,0x2a3e0035,0xd332a3e,0xd33201b,0x201b0d34,0xd382a42,0x20202020,0x2a420d37,0x310030,0x312018,0xd2f2019,0x20180d2f,0x20180031,0x300038,0x2a430038,0x2a430d3a,0xd39201c,0x201f0d39,0x201f0d35,0xd35201e,0xd392a43,0xd360d35,0xd382020,0xd352a43,0xd350039,0x390d36,0x20142017,0x20140039,0x390d3a,0x300d3a,0xd3a0038,0x392a43,0xd380d36,0x390039,0x3a0d3b,0xe9c113b,0x189c0e79,0x10d11e4,0x22d816cf,0x39916ce,0x39e26fb,0x14a20b2f,0x21ce14a6,0x4811a49,0xcf00f11,0x11ae0f0f,0x185b00d4,0xdda00d4,0x1084185b,0x89a1083,0x10801083,0x1080089a,0x163a0897,0xd040dad,0x51f0d02,0x2253225c,0x169810e4,0x169810e2,0x8ee16a2,0x169810e2,0x16a208ee,0x10e5169a,0x8ee10e5,0xf616a2,0xdfd1888,0x25410dfd,0x254100f6,0xdf911bb,0x11c911bb,0x253d0df9,0xeb1870,0x11bc1870,0x231e0df4,0x170b231d,0xafb28b5,0x11fc1482,0x11fd0e25,0x1db805e7,0x23ae234f,0x65523b0,0x262306d4,0x8922432,0x1079163f,0x1085163f,0x742089c,0x24ae24b5,0x1c9f1ca4,0x161602be,0x16181031,0x86c1618,0x24e0086b,0x7541f7c,0x280a1374,0x10f827f8,0x90a08fe,0x951288b,0x9512889,0x28892747,0x13f52889,0x164c288b,0x164b08a1,0x89f08a1,0x8a0164b,0x164b1089,0x1cf1030c,0x25942594,0x30c1cf7,0x18241823,0x181f181f,0x1823181e,0x1cb01cb1,0x15d61ca8,0x15f21930,0x81717f0,0x81717e7,0x1f2f17ec,0x1ed417ec,0x1f2f07a5,0x81717e7,0xf190143,0xcec1b18,0xf100ced,0xf0f0f10,0xf0f0f09,0xf090f07,0xeda1cc6,0xf250ed9,0x1b220f20,0x14e0f20,0x14e1b23,0x1b24014d,0x149014d,0x1b240f26,0xf26014d,0x1b221b23,0x18630f20,0xd41862,0x251a1862,0x251a1869,0x186900d9,0x1b241b27,0x1b240158,0x1580f26,0x1b260f26,0xf290f28,0xf2a0f2b,0x1530f2b,0xf260f2a,0x1580f28,0xf290f28,0x11670158,0x1168116e,0x116d116e,0x299b1168,0x116b0ba6,0x29940ba6,0x1169116b,0x116d1168,0x299b299a,0x299b2999,0x2999116b,0x116d1169,0x299a116c,0x116c2999,0x1b3a1b45,0x2070163,0x1beb0fdd,0x24010692,0x17223eb,0xf4c0f51,0x25a101d0,0x25a10319,0x1d020316,0x25a91d07,0x1d1e031d,0x1d0e25b3,0x1d100330,0x25a40323,0x25ac031f,0x25ae031a,0x1d160321,0x3381d18,0x88e1639,0x88e0890,0x163b1636,0x88e0890,0x1636163b,0x163b163c,0x89a0890,0xef0163a,0xee91cdf,0x1cdd0ee9,0x140a0ef0,0xa6613f1,0x28a70a66,0x12140a81,0x11d18be,0x13018be,0x18be0e3c,0xe2e0e3c,0x25602562,0x11e1214,0xe2e011d,0x2562011d,0xe2c1214,0xe2e0e24,0x11e0e24,0xb310e2e,0x29032908,0x14892903,0x14891485,0x1485148a,0x294a0b4a,0x294a18c3,0x18c30b4e,0xb500b4e,0x1f3618d7,0x1f251f3d,0x202a0d3c,0x202a0055,0x55202c,0x20350055,0x2a512a05,0x20162a52,0x5b2a52,0x20162015,0x20152a52,0xd3c005b,0xd3c2a5e,0x2a5e0055,0x2a050055,0x20042004,0x2a5e2038,0x20040055,0x24122a5e,0x25fa25fc,0x1085089c,0x1085163b,0x163b1084,0x1078163b,0x1078089c,0x89c1635,0x16371635,0x7151079,0x24802481,0x247f2480,0x7160716,0x24802482,0x1b5f018b,0x9860f68,0x13032892,0x14022892,0x1303278e,0x278e2892,0x278f1402,0x14020b3d,0x278e0b3d,0x986098a,0x264b1303,0x264e06f6,0x246006f6,0x6f9264e,0x264e262b,0x18880dfa,0x4320dfd,0x1a112159,0x4302159,0x217a0431,0x1a040434,0x42f0434,0x42f1a13,0x42e2185,0x1a12042e,0x1a12042f,0x42f1a13,0x4321a0f,0x21591a11,0x1a110431,0x1a0e1a0d,0x1a0c1a0f,0x2183042b,0x1a0d2183,0x1a0d1a11,0x1a111a0f,0x1a130434,0x1a0c1a04,0x1a112183,0x4250424,0x1a091a09,0x1a021a0c,0x1a021a09,0x4300424,0x42d217a,0x1a04217a,0x1a06042d,0x1a030424,0x4241a03,0x4201a02,0x1a060421,0x1a142189,0x1a140436,0x4360420,0x4362179,0x4200420,0x21791a06,0x42d0430,0x1a060431,0x21791a03,0x21781a11,0x28d81a0c,0x28d62798,0x13022798,0x130228d6,0x28d60ab4,0x28cd0ab4,0x25f528d6,0x24942497,0x24922494,0x1b7425f5,0x1b69019d,0x1c551c4d,0x27f0279,0x1c201c1f,0x26c26b8,0x1b7926bc,0xf630f77,0x14e014d,0x1b650f1f,0xf781b77,0x1b660192,0xf7b1b78,0xf761b7a,0x20a10f8a,0x17a11b94,0x7bf1eed,0x7c01eed,0x101007bf,0x1015161c,0x1017161c,0x1951015,0xf9401b2,0x1b301b2,0x1b570f94,0x1b40f92,0x46421bd,0x204e046a,0x20052051,0x1bd01c0,0xf990f99,0x1b9d0199,0x1b960199,0x1b9d1b9d,0xf990f9a,0x1c001bf,0xf990f99,0xf9b0f9a,0x68325d0,0x1b9925ce,0x1c10f96,0x1b1b0181,0xfa31b1d,0x1c80fa6,0xfa50fa6,0x1c801c8,0xfa201c7,0xfa201c8,0x1ba80fa3,0xec20fa4,0xfa30fa4,0x1ba81ba5,0x1ba90ec2,0xfa20fa3,0xec202ca,0x1ba50fa4,0x1cc01ce,0x259c0313,0x1cd01cc,0x1ce01cc,0x1cd01cd,0x259b0fa9,0x1cd259c,0xfa9259b,0xfaa01cb,0xfa701cb,0xfa70fa8,0x1bac01ca,0x1981baa,0x1982598,0x25981b71,0x1bac0fa7,0x1b711baa,0x1d10313,0x1d11b71,0xfab01d0,0xfa9259b,0xfab01cf,0x1b710fa9,0x259801d0,0x1cf0faa,0xfa80fa9,0x1cb0faa,0x25981baa,0x1baa01c9,0x1bab01c9,0xfa82597,0xfa70fa7,0x1cfa1baa,0x1bab1baa,0x1d11cfa,0x1bf01c0,0xf970f96,0x45601cc,0x21b921cd,0x26182621,0x242b242b,0x6c406a3,0x6c506a3,0xfae06c4,0x1d501d6,0x18f01d5,0x18f0fae,0x1d40f5d,0x18f0fae,0xf5d01d4,0x1bb30f62,0x18d0f62,0x18d1bb3,0x1bb301d3,0x1d40fae,0x1d41bba,0x1bba01da,0x1bb70fb2,0xfb41bba,0xfb201d8,0x1b531bb8,0x1b530fb6,0xfb61b52,0xfb41b52,0xfb40fb6,0x1db0fb2,0x1bba0fb2,0x1bba01db,0x1db01da,0x1b520fb4,0x1d4017e,0xfb31bb3,0x12b5274c,0x12b5274e,0x274e12b7,0x95d12b7,0x95d274e,0x12bd274f,0x1d121d10,0xe191d08,0x188c188d,0x1bc01bbf,0x1bc001e4,0x1e401e5,0x1bbd01e5,0xfba01e4,0x1d60fb1,0xfba01e4,0xfba1bbf,0x1bbf01d6,0xfb701d6,0x1bc50fbb,0x1e301e2,0x1eb01e3,0x1eb01ea,0x1e91bc8,0x1ec1bc8,0x1ec0fbd,0xfbd01e8,0x1bc51bc6,0x1ea01e3,0x1e31bc6,0x1e901eb,0xfbe01ea,0x1e21b34,0x1bc501e2,0x1e21bc4,0x1e71bc4,0x1bc701ec,0x1bc701e8,0x1bc30fbe,0x1e81bc3,0xfbe1bc7,0x1e701e2,0x1a7004ae,0x25631a71,0x11fc11fb,0x1d801e5,0x1d81bbd,0x1bbd0fb4,0x1bc70fb4,0x135e1bbd,0x9e4136e,0x1bc61bc5,0x17860fbc,0x7e71f0d,0xf321b38,0xfc01b31,0x1ef0fc4,0x1ee1bc9,0x1ee01f0,0x1f00fca,0x1ed0fca,0x1ed1bd2,0x1bd20fbf,0xfce1bd2,0xfce0fca,0xfca0fc9,0x1bd01bcf,0x1bd01bd1,0xfc901f0,0x1bd01bd1,0xfcd0fc9,0x1bd30fcb,0x1bcf0fcb,0xfcc0fcc,0xfcb1bd3,0xfca01f0,0x1ff0fc9,0xfd31bd9,0xfd501f7,0xfd80201,0xfcf1bdb,0x1f201fb,0x1be101f3,0x1bd51bdf,0x1fb01f2,0xfd11bde,0x1be401fa,0x1be21bd6,0xfd01be1,0x1be41bd7,0xfd21bdc,0x1f601f5,0x1fc0fd7,0x1bdc0fd2,0x1be301fa,0x1bd61be2,0x2001bda,0x1bdd0201,0x1bd501f3,0x1be01bde,0x20001f1,0x1bdb1bda,0x2060208,0x2060207,0x2071bea,0x1be80205,0x1be81be7,0x1be71be5,0x2020fda,0x2050207,0xfda1be7,0x1bea0207,0xfdb0fda,0x1be61be9,0xfdd1be9,0xfdd1be6,0x2020207,0x2020fdd,0x2031be6,0xfdb0fdc,0x1be50fd9,0xfdb1be8,0xfd91be6,0x2030204,0xfd90fdb,0x2041be8,0x209020a,0xfeb0fdd,0x24e0214,0x11f0125,0xe260e26,0x18b00124,0xe2a0124,0x120618b0,0x12031202,0x1251202,0x12030127,0x1271202,0xe260125,0x12518b0,0x12718b0,0x12062569,0x12041203,0x25692568,0x1bec1beb,0xff61bee,0x22a022b,0xca70e7a,0x2121143,0x2290fe3,0xff61be9,0xff6020a,0x20a0229,0xfe30229,0x6fa020a,0x6d806d7,0x264f06d8,0x22a262c,0xfdc022b,0xfdb022b,0xabd0fdc,0x143c28d2,0x988143c,0x9880abd,0xabd12fc,0x142c12fc,0x9490abd,0x92b273f,0x128e092b,0x128e2723,0x92d092e,0x128e2723,0x26f7092d,0x37e26f6,0x7fb1f1e,0x22e17d7,0x2160237,0x2bd02b4,0x17ee02bc,0x17ef17ed,0x1f3b17ed,0x1f3b17ef,0x17ef0819,0x4f2a52,0xffe006a,0x2351c09,0x22e0237,0xf350ffe,0xff90fe8,0x1830f57,0x1831b37,0x1b371c0b,0x1bb51c0b,0x1b370fb0,0xff90f35,0xfb01c0b,0x1e51b37,0x1831bbe,0x1c0b1bbe,0x1830183,0x1d81b56,0x1901b56,0x1d80fb2,0x18301e5,0x183a00ba,0x183a183c,0x183c1839,0xba0dbd,0xb2183c,0x24fc0dc5,0xb200b6,0x183b24fc,0xdbd00b6,0x24fc00b6,0x183c0dbd,0xdbd183b,0x183d182d,0xbb00bb,0x182d183c,0x1839183c,0x183c24f8,0x182a24f8,0xac1839,0x24f80dc2,0xae1839,0x182d182a,0xae183c,0x24f81831,0xae0dc2,0xb51839,0xdb324fa,0xb824fa,0xb80db3,0xac0dc2,0xac00b8,0xac00b9,0xb91838,0xb900b8,0x18281828,0xb80db3,0xdc30dc4,0x24fb1828,0x183800b9,0x1c0f0239,0x676023d,0x67525c8,0x23a0239,0x10081c13,0x10070241,0x1c170241,0x5a21007,0x23022301,0x22ff22fe,0x22fc22fc,0x59e1d66,0x22fd059e,0x59822fc,0x22f922f8,0x16f622f8,0x16f822f9,0x59416f6,0x1d630594,0x1d631db0,0x22f10594,0x59622f1,0x16fa16fb,0x22f11d63,0x59e22fb,0x1d661d66,0x22fb059b,0x59b1d64,0x59b22fa,0x22fa0599,0x22f70597,0x22f622f6,0x59822f8,0x15b1b2e,0x15b0fff,0xfff0f30,0xfbf1bd2,0xfbf0203,0x2030218,0xfe01bf0,0xfe00206,0x2061bc9,0x1bc91b33,0x1bc90f36,0x2150fe0,0x2061bea,0x215101f0,0x210b03ee,0x10a31661,0x10a308b9,0x10a610a5,0x1c081c05,0x69c0232,0x25f7069b,0xdfa00f8,0x253f253f,0xf80dfb,0x11ce0dfb,0x11ce00f8,0xdfc0de8,0x11b60de8,0x27060dfc,0x3a52701,0x3a12704,0xf9903a2,0x1ce1b9a,0x1b710f99,0x1b711b70,0x1b700198,0x1980199,0xf6a0f6a,0x1991b60,0x18b1b60,0x1b6e0199,0x1990178,0x17491dce,0x17491748,0x1748235d,0x1b380f32,0x1b381b2c,0x1b2c0f27,0x1560f27,0x15e91b2c,0x191c0ea1,0x1c1f2689,0x1c1b0245,0x26851c1a,0x26892682,0x1c1b0245,0x26822685,0x3131cf7,0x26871cee,0x2461c1d,0x1c201c1e,0x2687268a,0x1c1e0246,0x2688268a,0x268c2687,0x26812680,0x1c1d2681,0x1c1c1c1c,0x26811c19,0x2689268b,0x1e5c1c23,0x156a0c31,0x109f10a1,0x109f08b5,0x8b508dc,0x166808dc,0x166808b5,0x166708bb,0x166808b5,0x275f1667,0x12d312d4,0x276112d4,0x276112d3,0x97b2778,0x11221110,0x9561121,0x95312ad,0x1f8424ec,0x24e075f,0x26a40254,0x131c27b6,0x27b627b4,0x27ba27b4,0x9a527b4,0x27b527ba,0x9a427b9,0x27ba27b9,0x9a409a4,0x9a527ba,0xc9715f1,0x15d615d6,0x15f115d5,0xccf15d5,0x9581131,0x12bb12b6,0x95b12bb,0x1caa0958,0x2b61ca9,0x2b802b6,0x20ae0eb8,0x1c7320af,0x872161f,0xc331042,0x1e69110b,0x1108110b,0x10801e69,0x8971081,0x10831081,0x10830897,0x16481649,0x10821648,0x258b1083,0x1cee0305,0x258e1cee,0x1087258b,0x896089d,0x20d220d1,0x28b920d9,0x141828b8,0x14e70c66,0x28b71269,0x14180a91,0xa9a0a91,0x28b428b4,0x28b2141a,0x14170a93,0x2600a8e,0x25b26ac,0x1c2b2693,0x14251c2e,0xa820aa5,0x27aa1449,0x27aa0acb,0xacb130b,0x142a130b,0x1c420acb,0x2611c3a,0x1c3a1c37,0x1c3a1c3e,0x1c3e1c42,0x1c3d1c3e,0x26b41c36,0x26ac1c40,0x26526b1,0x1c380267,0x26b626ac,0x1c4026ac,0x26b626b6,0x26b10265,0xaa80aa9,0x1c430ade,0x2641c3c,0x26b01c3c,0x26b00264,0x26326ad,0x1c3926ad,0x1c361c41,0x1c441c3d,0x133228f3,0x9af27c8,0x14771476,0x9bd27c5,0x1c4027e2,0x1c4626b4,0x26b51c49,0x292b0262,0x14a30b2d,0x27426c3,0x1c4626bc,0x26bf0270,0x26c026c1,0x26c01c48,0x1c480268,0x26be1c48,0x1c490275,0x1c4e26ba,0x1c4f026f,0x1c4f26bb,0x26d26bd,0x26d1c4f,0x1c4926bb,0x26f1c4e,0x1c49026a,0x1c4a026f,0x26f026a,0x233d1da6,0x26c01da7,0x1c451c4c,0x2751c4f,0x1c4726be,0x26926bf,0x27226bf,0x2720269,0x26b26c3,0x26c26c3,0x1c4d026b,0x1c460270,0x27126b9,0xafe1c4d,0xafb0b30,0x14a00b30,0x15c60afb,0xc9f0ea1,0x15e90ea1,0x168615cb,0x8d708d5,0x168008d5,0x31f08d7,0x31c25a4,0x25d60682,0x75a25d5,0x24e6076d,0x1c3c26b0,0x115226a9,0xb9d1162,0x2cf0ec9,0xb8002d5,0x18c40b4a,0x18c30b4a,0x1d1818c4,0x25bb033b,0x20d702b0,0x22ff20de,0x1d67059f,0x1c1d0246,0x26cd26cc,0x1c1f0245,0x20a020a1,0xa0420a7,0x2850139e,0x139f139e,0x1bf40a27,0xf350fe8,0x11d0187c,0x186c186c,0x11c200e0,0x11c311c2,0x11c30dec,0xdec2529,0x187c0dec,0x20411c2,0xfcb1be8,0x308030e,0x1e401cef,0xc111512,0x257c1d21,0x1d221d22,0x1d1d033a,0x1a012178,0x1cb90415,0xed01cc0,0x22912292,0x15a32112,0x127415a2,0x16bc10fb,0x30b0900,0x30d258f,0x2593030d,0x87e030b,0x10fd106e,0x218a1a18,0x4711a0a,0x46e1a43,0x21c3046e,0x21c30471,0x21c51a3f,0xc4f1e74,0xe871e62,0x113e0ca1,0xe850e81,0x15d615d1,0x1146114a,0xe8b114a,0xe8b1146,0x11460ca6,0xca20ca6,0x11460ca4,0xca40ca6,0x15d10ca2,0x11460ca4,0x15d61147,0xca71147,0x11490ca9,0xc9f15d5,0x15d615d5,0xe801145,0xc9d15d5,0x15cb0c9f,0xe801149,0x15d50c9f,0xca91147,0xca915d6,0x15d6114c,0x15d50c9d,0x15d61145,0x1145114c,0xc9d113b,0xcab0e83,0x113c0c9e,0x11450c9d,0xe830e83,0x113c0cab,0xe820e81,0x15d015d0,0x15cf0ca0,0x15ce15cf,0xf190e81,0x1b501b51,0x33c1d24,0x3d60339,0x213203de,0x19b72132,0x213219c1,0x3d719c1,0x3d6212c,0x198d2132,0x3d82116,0x19a32116,0x19a303d8,0x3d7212c,0x2132212c,0x15d403d7,0xca71143,0x1d021d03,0x1aa50316,0x19e419e1,0x209f028c,0x258c1c62,0x1ce90307,0x11151e75,0x28a0c3a,0x28c1c67,0x28e01b1,0x28e028f,0x209d20a0,0x20a120a0,0x20a1209d,0x1c670290,0x20a1209d,0x20a41c67,0x28d0292,0x28f1b93,0x1c681c68,0x1b92028d,0x292028d,0x2a011b92,0xdac2088,0x13de2878,0x13de13d7,0x13d72877,0xa452877,0x1f3c13d7,0x1f3b1f3e,0x1f3d17f1,0x1f3d1f3c,0x1f3c1f36,0x209f1b94,0x2077028c,0x10095,0x3102589,0x1c79030a,0x20af20bd,0x29c20bd,0x20d91c73,0x20d320d2,0x1c7920bd,0x20c420c4,0x1c801c79,0x2991c79,0x2991c80,0x20c11c76,0x1c7c1c76,0x1c76029f,0x20c1029f,0x1c8020c2,0x20b70299,0x1c7a20b8,0x1c4e26c2,0x1c7726ba,0x20c320ba,0x20b9029e,0x20b91c7b,0x1c7b20b6,0x20b7029a,0x20b702a0,0x2a020be,0x2a0029a,0x1c7d1c7d,0x20b61c7b,0x20b91c76,0x1c77029e,0x20c01c7f,0x2ab20d4,0x20d220c6,0x20c71c84,0x13b00a1b,0x20ce13b1,0x2ac20cd,0x1c8d02aa,0x2a602a5,0x1c8920c9,0x20d120d2,0x1d6c20c8,0x23152316,0x7c007b8,0x7c0179e,0x179e1eed,0x1ed81eed,0x269d1eee,0x25c269e,0x20d920d8,0x92402b1,0x12ab2749,0x12a712ab,0x12021288,0x1200e27,0x18ad0120,0xebb1202,0x2c20ebf,0x25210de2,0x2c411b4,0x1cae1caf,0x2be1ca9,0x15881c9f,0x1e8d14e9,0x1cb61ba4,0x1cb61cb3,0xebf02c8,0x1ba302c8,0x2f00ebf,0x2ec1cdc,0xeec02ef,0x2ed02ed,0x2ef1cde,0xecd1cbf,0xeed02cc,0x1cdd0eef,0x3361d28,0xecb25b8,0x1cc21cc3,0x11ac0de1,0x11c40deb,0xde100df,0x2482071b,0x26132613,0x71b2615,0x5181ade,0x210225b,0x2501c31,0xd1e2a2b,0x15df0d1d,0x15dd0cb9,0xcba15dd,0xcba15de,0x15de0e96,0x2a2d0d23,0x141f0d1e,0xa9028b9,0x1d0f032f,0x2a2625b0,0x200a2a29,0x200c0d23,0x3e92a2e,0x214503e8,0x214503e9,0x3c42146,0x3e92147,0x3c403eb,0x3e903e9,0x3e72146,0x3eb19c6,0x31c03e9,0x31f0321,0xcf40cfb,0xcf42a8e,0x2a8e0096,0xeed0ef3,0x1cdb1cdb,0x2f11cdc,0x2ce02cc,0x2b01cbf,0x1c981c97,0x1c991c98,0x33020db,0x25b01d0b,0x1d1425b3,0x6f4032d,0x6f006ee,0x263e06f0,0x26412641,0x6f42646,0x18ba0e39,0x18ba2573,0x257318bb,0x257718bb,0x18bc18bc,0x18bb0e3b,0xe280e3b,0x257318bb,0x120618b9,0x25730e28,0x257318bb,0x120d1206,0x1301206,0x120d120d,0xe37120c,0xe37120d,0x25910e39,0x25931cf2,0x1cf81cef,0x1cf5030e,0x1cf12594,0x3071ce9,0xeb40306,0xeb50eb3,0x82d1811,0x18061806,0x82e1f56,0x1808082e,0x18080831,0x82c1f53,0x18080831,0x831082c,0x82e1811,0x25a6031b,0x2006031e,0x2a240d1f,0x252a24,0x20102006,0x20112a36,0x292a35,0x262a31,0x200a2a2c,0xd270d26,0xd2c200d,0x1ff12a39,0x2a062a39,0x151ff1,0xf2a18,0x2a2f2a18,0x2a180d20,0xf0d20,0x2a342a2f,0xd200d1f,0xd1f2a2f,0x2a061ff1,0x2a060d06,0x130015,0xd060013,0xf2a06,0x131ffb,0x20060d1f,0xd260d20,0xd220d25,0x2a362a35,0x2d2010,0xd2c2a39,0x2d2011,0x25aa0d2b,0x1cfe25a3,0x258602fd,0x25ae02fe,0x1d0925a7,0x32625a7,0x25b01d09,0x3290321,0x25ae0321,0x25a90329,0x3151d06,0x20982097,0x1d0f0286,0x3301d17,0x3351d17,0x3350330,0x1d101d15,0xd892a82,0x3380d8a,0x33525bb,0x20e202b2,0x12991c92,0x93a094f,0x1d261d27,0x2a9302f8,0x1fe62a94,0x1fe129f8,0xfbe207c,0x1b341bbc,0x1b3b1bbc,0x1b3b1b34,0x1b340168,0x187a2537,0x1a40187b,0x21c3046d,0x17c417c3,0x17c41f10,0x1f1017c5,0x17c21f10,0x1fe717c3,0x881fe6,0xcfc1fe6,0xcfc0088,0xcfa0cf9,0x1fe10cf9,0xcfa1fe2,0x1fe20cf9,0x1fe31fe5,0xcfa0088,0xcfc1fe5,0x29fc1fe7,0x1fea0d00,0xd00000b,0xcfe0cff,0x29f729fb,0xcf30002,0x29fa000c,0x1fec0daa,0x1fed0d02,0xd040d02,0xd011fed,0xb29fd,0xcff0d01,0x33b1fe8,0x33a1d19,0x8771623,0x8771625,0x16251042,0x1c9b1c5e,0xd6b20e2,0x20390d6d,0x1d25033c,0xe451d1f,0xe440340,0x3420340,0xe44034a,0x34d0340,0xe3e0342,0xe3e034c,0x34c0345,0xe470345,0xe410351,0x3530352,0x3510345,0xe41034f,0xe4a0353,0x3470353,0xe490e49,0x3460347,0x3490347,0x3490346,0xe43034b,0x350034b,0xe430e46,0x34e034b,0x34e0e46,0x34a034b,0x340034d,0x34a034c,0x3480342,0x3510e48,0x34f0e48,0x34f0351,0x345034c,0x3480e40,0xe410e41,0x3510348,0xe420e4a,0xe420e41,0xe410e40,0xe430349,0xf30346,0x25442543,0x12660c62,0x36d14f8,0x36a0e66,0x36e0e66,0x36e036a,0x36a0e63,0x36a0369,0x36f0e63,0x36b0e64,0x3690e64,0x36b0e61,0xe610e64,0xe670e68,0xe670370,0x370036f,0xe6a0372,0xe6a0e6b,0xe6b0e60,0x36f0370,0xe6c036b,0x3660372,0xe6c0367,0x3720366,0x3660e6b,0xe620e58,0xe620e65,0x3680367,0xe65036c,0x3680e62,0xe62036c,0xe630369,0x3700e61,0xe680e69,0x3710e69,0x3710e68,0xe600373,0xe6d0373,0xe600e60,0x3710e68,0x3680366,0x82e0367,0x1f601808,0x1f5c1808,0x1f601f60,0x1806082d,0x1f561806,0x1f6f082e,0x1f701f6d,0x18171f6d,0x1817083b,0x83b1f72,0x1f70083b,0x272e1f6d,0x9391296,0x34c036b,0xe69034f,0x3480e48,0x34a034d,0x284b0e63,0xa40284c,0x13d3284c,0xa400a40,0xa1c13d2,0x174c05ff,0x2367174d,0x5ff1752,0x15f80848,0x15f81620,0x161c1017,0x161d161c,0x3861620,0x26da26dc,0x38726dc,0x38726da,0x26da0379,0x26da0383,0x26dd0379,0x26d30385,0x3830385,0x26e126d3,0x26d626e0,0x26dd26e0,0x38826d6,0x26e20389,0x38a0389,0x26d926e2,0x37f0388,0x388037f,0x38226e2,0x38126d9,0x26db26df,0x26db26de,0x3810382,0x26de0384,0x38126db,0x26db0384,0x3790383,0x26dd26d3,0x26d626d3,0x26d726d6,0x26d726e1,0x26e126d8,0x38026d8,0x380038a,0x38a037e,0x38a26d8,0x38a26e1,0x26e2037e,0x1dda1dd9,0x26df2364,0x26e426de,0x27fb2807,0x27d509dd,0x9c227d9,0x9ec1385,0x9cb2811,0x135609a6,0x135727f3,0x13571358,0x135827f2,0x135609cb,0x1356135a,0x135a1359,0x135827f3,0x9f01359,0x1385137a,0x137d137c,0x137d1386,0x13872816,0xa200a1d,0x137913d6,0x282409ed,0x286b0a38,0xca813d1,0xcd20cd0,0x9f51382,0x3581390,0x34b0e4e,0x260f2423,0x6bc06bc,0x242306ba,0x242206ba,0x260a2423,0x241e241f,0x241e260a,0x260a2609,0x24222609,0x6b72609,0x3a62422,0x3aa2705,0x39d039a,0x39d2701,0x3a5039c,0x39d2701,0x39c03a5,0x3a0039b,0x26fa039b,0x3a026fe,0x26fe039b,0x26ed26fa,0x26ed26fe,0x26fe03a6,0x26fd038c,0x26fd26ff,0x3a2039f,0x26fd03a1,0x3a103a2,0x26fd26ff,0x3a0039c,0x39a03a5,0x26ea2701,0x3a203a3,0x26fb039f,0x26ea039a,0x39f03a3,0x26fb26fc,0x3a426ea,0x3a32700,0x3a3039e,0x39e26fc,0x3a426fb,0x89a2700,0x163b0890,0x1ef817ac,0x7ca07ca,0x17ac1ef9,0x17ae1ef9,0x9af17ac,0x147127c4,0xaad0ab3,0xaad1447,0x14470acd,0x9720acd,0x10151447,0x8501016,0x16001016,0xb280850,0x14a40b29,0x290a0b00,0x14b314b3,0xb0012f2,0x23722371,0x1eeb0609,0x17a017a9,0x1eea17a0,0x14321eeb,0x29351429,0x14c31429,0x14c32935,0x29351300,0x14c7143a,0x293c293c,0xb3f2773,0x29382773,0xb3f0b3f,0x143a28ce,0xb300afe,0xb301483,0x148214a0,0x293f0b42,0x2940283d,0x139914c9,0x28f20af7,0x14e828f1,0x14ef1252,0x12701271,0x12571257,0x12711e7e,0x15871e7e,0xc141271,0x151a0c18,0x15131543,0x15131553,0x15531e34,0x25de0691,0x25de23ff,0x25c12400,0x25df2400,0x25df25cc,0x66e23eb,0x23e723eb,0x66e066e,0x25df25cc,0x25c125de,0x25c123e9,0x23f02400,0x23ff23ea,0x25c025de,0x25de23ea,0x23f125cc,0x23f12400,0x240025ca,0x67b25ca,0x67b2400,0x2400067f,0x25c025bf,0x25be25de,0x25de25bf,0x23f0067f,0x25bd2400,0x25de25be,0xc181543,0x15300c14,0x1e41151a,0x24832669,0x201c266c,0x62a3f,0x8931640,0x893163e,0x164a0896,0x893163e,0x896164a,0x1646107c,0x7ec1f13,0xd4907ee,0x48205a,0x2a68205a,0x770048,0x492a67,0xd490049,0xd49202b,0x450048,0xd49202b,0x460045,0x450047,0xd5e0047,0x450045,0x44202a,0x77202b,0x450049,0x202b0044,0x253f11cd,0x1e420df9,0x153c1e4b,0x110f0c37,0x11010c46,0x15761e52,0x215e03f7,0x215b215b,0x215c19da,0x19dd19da,0x19db215c,0x215f19de,0x19dc03f6,0x19dc19db,0x19db215d,0x19de215f,0xc3b215e,0xc410c42,0x11120c41,0x12641e63,0x1e92158f,0xc821e0f,0x15aa15b2,0x15b615b5,0xc841e10,0xc8415b3,0x15b315b2,0xc8715b3,0xc871e10,0xc850c86,0x1e0e0c88,0xc830c83,0xc880c81,0xc800c81,0x151c0c88,0xc13151d,0xe8215d0,0x151615ec,0x151b0c1b,0x151c151b,0x15cd1544,0x19280ca0,0x41b19fb,0xcd52170,0x15d715c7,0x192b15c7,0x15d70e8b,0xe8b15c7,0xc8e192b,0xca615d3,0x192b0e8b,0x41519f7,0x192a1a01,0x19160c8a,0x15b915ba,0x1a0a1919,0x1a112178,0x1cb302cb,0x218602c4,0x21592187,0x1dca1dcc,0x1dca05f4,0x5f4235c,0x2180217f,0x218c1a07,0x1a121a10,0x218c218b,0x218d1a15,0x1a180437,0x438043a,0x438218e,0x21880439,0x438218e,0x21882188,0x218e1a11,0x2190043d,0x2a771a19,0xd0a2a0a,0x1a22219c,0x1a220447,0x219d219e,0x1a220447,0x21a7219d,0x45121a9,0x45021a9,0x1a2a0451,0x45121a7,0x4511a26,0x1a2c0450,0x21ae21a6,0x21a521a6,0x21a8044f,0x44f21a6,0x45521ae,0x21a81a2c,0x21a621ae,0x4501a26,0x1a261a27,0x1a291a27,0x4531a29,0x21ab21ab,0x21b021ad,0x1a291a26,0x21a421ab,0x44e044f,0x21a5044f,0x44e044e,0x45921a5,0x1a2621a5,0x21a521ab,0x21b021ab,0x21b021a5,0x1a200459,0x1a2821a4,0x44e21a4,0x1a281a28,0x45a044e,0x458045a,0x4581a30,0x1a3021b1,0x45721af,0x4570456,0x4561a2d,0x4540456,0x21aa21aa,0x21af1a32,0x1a331a32,0x1a3321af,0x1a311a34,0x1a311a33,0x21af21af,0x21aa0456,0x21af21b1,0x1a311a31,0x21b11a30,0x45b1a30,0x1a28045a,0x1a200452,0x1a2b0452,0x45a1a20,0x1a28045b,0x1a2e1a2f,0x1a2e2198,0x219821ac,0x21981a2f,0x4460446,0x1a2b1a20,0x219f1a25,0x219f044a,0x44a0449,0x1a23044a,0x1a231a25,0x4481a24,0x45c0462,0x1a35045f,0x1a3721b9,0x21ba21b9,0x21b31a37,0x214f045f,0x21b321b8,0x21181990,0x1a3d0465,0x167808cc,0x24c21679,0x24a324c1,0x24bc24c1,0x24bc1fb3,0x1fb31fd4,0x1fb61fd4,0x26751fb3,0x248c2604,0x6a82604,0x24142414,0x26012600,0x24142604,0x241a2601,0x26012604,0x1a43046e,0x46f1a42,0x21c721c4,0x1a4121c4,0x46f21c7,0x21c921c7,0x1a421a41,0x21c621c7,0x472046f,0x1a4421c2,0x1a440473,0x47321c8,0x21c621c8,0x21c80470,0x1a450470,0x4740473,0x1a4621c2,0x1a3f21c5,0x21c21a3f,0x124f1a46,0x1ec31ebf,0x26592658,0x12280706,0x1ec41246,0x4600462,0x79a21ad,0x1ec80794,0x4751a47,0x47521cb,0x21cb21ca,0x21cc21ca,0x21cc21cb,0x21cb0476,0x21cd0476,0x124e0468,0x79c079a,0x21cc0476,0x21cc21ba,0x21ba0450,0x1d47057c,0x20331d59,0x2a362011,0x1a331a48,0x1a321a32,0x1a48043e,0x444043e,0x4441a48,0x4771a2f,0x1a2b1a2f,0x25cc0477,0x6fb066e,0x2640246a,0x25cc23f1,0x246a06fb,0x19c01a58,0x30c19ca,0x1cf71cf6,0x1bfc0ff1,0x1bfc0211,0x20f0220,0x2c10eba,0x2c11cac,0x2bf0eb0,0x2bf02c1,0x28c81cac,0x142d0aa6,0x28c5142d,0x142d0ab1,0x28c80ab1,0x14370ab1,0xab428c8,0x143728c8,0x141a1419,0x141a0ab2,0x28cc28cd,0xab228cc,0xab4141a,0x28cd1437,0x1a231a24,0x1a232197,0x2197042d,0x21a61a04,0x21a6043d,0x43d1a2c,0x1a2f1a2e,0x1a2f043c,0x43c0444,0x21970444,0x42d042d,0x43d1a04,0x43d042d,0x10bb043c,0x10ba08c6,0x218f21df,0x218f1a5d,0x1a5d218e,0x16da1d4e,0x161016d9,0x8611027,0x45a21c8,0x1a26044e,0x1a1321a5,0x21e11a1c,0x20ec21e0,0xbfe20f6,0x21e521e3,0x4940492,0x49121e2,0x15a10c74,0x15a114e1,0x14e11e86,0x26f6037e,0x28970398,0x28921402,0x164a089b,0x164a1648,0x16480899,0x21e704a3,0x21930440,0x21f11a60,0x1a681a60,0x21f121f1,0x44004a3,0x275e096f,0x275e12d7,0x12d712d6,0x274412d7,0x96f0ae3,0xae312d7,0x27902763,0x279028e7,0x28e70ae1,0x28e72763,0x2763145f,0x145e145f,0xae30ae4,0x14612744,0x27440ae4,0x145e2763,0xae20ae2,0x27441461,0x7840785,0x7830783,0x77f1eab,0x2060204d,0x2132204c,0x2176041e,0x19b721e3,0x1d4e2132,0x1d5222e2,0x1d4d22e2,0x4a522ee,0x1a6821f1,0x25440dfb,0x1a6c2540,0x211403cb,0x19ab19b4,0x1a842209,0x220e1a85,0x1a891a88,0x1a7a04bb,0x1a7b04b4,0x1a831a7e,0x22092205,0x1a8604b9,0x1a801a82,0x4b51a7d,0x21ff2215,0x2204197f,0x22082208,0x2210220c,0x22032200,0x4ba1a81,0x220b1a86,0x220d2211,0x2208220e,0x1a812204,0x1a7b1a7c,0x1a7e04bb,0x4b42206,0x22101a87,0x22132212,0x1a8a2212,0x221404b5,0x220a1a8a,0x220504b8,0x220f220a,0x2201220b,0x1986197f,0x12a60952,0x12a612a8,0x95012d4,0x12a612a8,0x12d40950,0x95012da,0x1a7804b3,0x1a9c04be,0x22201a9d,0x221e1a9b,0x221d221f,0x221b1a9a,0x221f221d,0x221a221e,0x4c21a94,0x1a981a95,0x4c41a99,0x4c31a96,0x4c12219,0x4c404c2,0x221b1a97,0x1a8f1a9e,0x1a8f1a90,0x1a901a91,0x1a991a93,0x1a99221c,0x221c1a98,0x221c1a93,0x4c004c0,0x1a911a90,0x4c31a92,0x221204c1,0x1a952210,0x22121a8a,0x221504c2,0x4c11a8a,0x21ff1a82,0x22051a96,0x222004b8,0x16ff2306,0x4cd2307,0x21581aa0,0x4cc1aa0,0x215819d9,0x19d91aa0,0x19af2135,0x21b42295,0x45321b2,0xb4429e0,0x2411104d,0x6a225ff,0x16a21629,0x16a208f4,0x8f71698,0x16a208f4,0x4c408f7,0x19e919e8,0x3f81a09,0x22190400,0x21611a94,0x19e9221f,0x1c920403,0x1c9b20e2,0x1176117c,0xd37299a,0xdb22020,0xd722020,0xd700d70,0xab2a70,0xd702020,0x1aa30db2,0x1aa204d0,0x1a140420,0x1a140408,0x4080401,0x1aa10401,0x4d104cf,0x1aa304d0,0x1aa51aa3,0x1aa504d2,0x4d21aa4,0x19da19dd,0x1aa81aa8,0x217e04d5,0x217b1a07,0x217b19dd,0x19dc215d,0x217e1aa8,0x223c1a07,0x19dd04f5,0x1aa819dd,0x217b1a07,0x19dd19dc,0x1aba19dc,0x4f004f0,0x19dd223c,0x1aa91aa8,0x1aa904d5,0x4d51aa7,0x4d41aa7,0x4d404d5,0x4d504d6,0x4d704d6,0x4d704d8,0x4d804d3,0x222a04d3,0x216904d8,0x222b2168,0x217a2168,0x217a222b,0x222b0430,0x1c630283,0x1c631c60,0x1c601c65,0x22932292,0x1f5b053e,0x180d1802,0x17fd1802,0x17fd180d,0x180d1f47,0x4db1ab5,0x4db2155,0x215504da,0x1aaf04da,0x21552155,0x1ab503ef,0x215203ef,0x215204e7,0x4e604e5,0x4e62152,0x4e62235,0x1aae04e8,0x4e62235,0x4e704dd,0x3ef1ab5,0x1ab404e4,0x4e204e2,0x223204e1,0x223304e1,0x22332232,0x4de1ab1,0x1ab004de,0x1ab02233,0x223304e0,0x4dd1aae,0x223504e6,0x215204e7,0x1aae04df,0x4e304e8,0x4e42234,0x4df2234,0x223304e4,0x223204e0,0x4e804df,0x4e404e4,0x4e304e2,0x1ab603f0,0x1ab62153,0x215304e9,0x223704e9,0x22372153,0x19d119d7,0x22372153,0x4ea19d1,0x223904eb,0x1ab904ef,0x1ab904ea,0x22382236,0x1ab904ea,0x19762238,0x3fa19d2,0x9270928,0x18f60926,0x18dd18df,0x78f123f,0x78f078d,0x78d0790,0x1ebe0790,0x2151078d,0x1ab719d0,0x215019d0,0x1ab71ab7,0x1ab82150,0x4ec04ed,0x223b04ee,0x215103ee,0x223b1ab7,0x21502151,0x1ab804ed,0xc8615b1,0xc8615a9,0x15a90c87,0x17b017bd,0x17b017b5,0x17b517b1,0x1ab404ee,0x1aa904e4,0x19da1aa8,0x4f0223c,0x4f204f6,0x223f04f4,0x4f81abd,0x4f104f1,0x4f7223f,0x4e71abf,0x22502235,0x505224f,0xfc60fed,0x1ad00fc5,0x4fa2251,0x213819ba,0x5012137,0x224d1ac9,0x4fc0507,0x22451ac1,0x5091acb,0x50704fc,0x50a1acb,0x5002247,0x1ad7050e,0x5100510,0x1adb1ad7,0x50b1add,0x50b2256,0x1ad21add,0x22571add,0x22571ad2,0x1ad3050c,0x22582259,0x22591adc,0x225a1ade,0x1da2233b,0x1ad11da3,0x50a1adb,0x5151adb,0x515050a,0x50a0516,0x226d226c,0x512226e,0x1ada1ad9,0x5141ada,0x5131adc,0x1ada0512,0x50f0511,0x1ad41ad9,0x50c1ad3,0x1aeb1ae0,0x1ae1226e,0x225d1ae0,0x520051b,0x1ae8051c,0x22602264,0x22682267,0x22600525,0x51d2264,0x5281aea,0x524051a,0x226a1ae7,0x51e225f,0x1ae31ae2,0x22651ae2,0x210d2139,0x5221ad6,0x22611ae4,0x51d051f,0x51d225c,0x225c0519,0x1adf0519,0x520225c,0x1ae61ae5,0x22680525,0x5222263,0x1ae92262,0x521225f,0x22662261,0x1ae62263,0x225e0524,0x226b2265,0x226a0523,0x19951add,0x50f2139,0x19781ad8,0x1987050e,0x51b03ca,0x3cd225d,0x1982225e,0x1aeb1979,0x5071ae0,0x1acc2265,0x1ae90508,0x22512269,0x51e1ae2,0x22651ace,0x1acd1ae2,0x1ae91ae4,0x226c1ad0,0x22541aeb,0x5130512,0x22582246,0x1ac5225a,0x225b225a,0x28191ac7,0x2826138e,0x21082273,0x19802109,0x52c2108,0x22732108,0xdb6052c,0x183400af,0x5302276,0x5302275,0x2275227e,0x1981227e,0xe6d2275,0xe4a0e42,0xb941152,0xb94298e,0xb971153,0xb991153,0x1154298f,0x11530b97,0x298e0b97,0x11530b94,0x1154298f,0x1152114e,0x1156298e,0x298d114f,0x1151298c,0x298c1156,0x298d1156,0x298d298c,0xb92114e,0x114e298c,0x2989298e,0xb921158,0x298e114e,0x2733093e,0x2733288f,0x9422735,0x2733288f,0x9422891,0x28912895,0x9cd09d1,0x1afa134a,0x1af41af8,0x25f725f8,0x1eae06b9,0x7811229,0x1eb10781,0x5321eae,0x2276041a,0x533041a,0x73d2276,0x24ca073e,0x1fc9073e,0x24ca1fdc,0x1fdc073e,0x24cc1fc9,0x24ca1fdc,0x24ad074b,0x129e2736,0x19a80943,0x41c19a9,0x1aef19a9,0x848041c,0x101715fd,0x101515fd,0x8761017,0x1620103c,0x848103c,0x16201620,0x161c0848,0x1620161d,0x14c3161c,0x12ac2748,0x277f12ac,0x277f14c3,0x14c312fc,0x14c31300,0x130012fc,0x98812fc,0x27870982,0x27862786,0x9881300,0x2791143b,0x27860987,0x9820988,0x143b0988,0x21ce0987,0x21d421d5,0x16270895,0x107a107a,0x1643163d,0x5412296,0x1a620542,0x53421eb,0x228b1afd,0x21c52290,0x214e1a46,0x228d0545,0x1b000546,0x1b081aff,0x22991b01,0x2289053c,0x228a228f,0x2a540054,0x2a542a30,0x2a300027,0x1ae42261,0x23030506,0x1d4f16fc,0x1d681d4f,0x1d682303,0x1d6a1d69,0xe352572,0xe351210,0x12f18bf,0x3c82289,0x10be03bf,0x10bd087c,0x882106c,0x8820883,0x8831072,0x1aa004cc,0x238519ee,0x23871df5,0x6f52646,0x6f506f4,0x6f8264d,0x1b072296,0x116f19a5,0xba8115d,0x11701171,0x11710bab,0xbac0bab,0xba8116f,0xbaa0ba9,0xba9116f,0x1171299e,0xbaa0bac,0x299d0ba9,0xbac299e,0x3c00baa,0x54303c6,0xdc20db5,0x3db00b8,0x54403c2,0x7d5079f,0x26fc1f01,0x26f9039f,0x17901798,0x179007af,0x7af178e,0x1781178e,0x229f1ed5,0x1b0d1b0c,0xe2b18b1,0x275c1204,0x96912ce,0x12cc0969,0x9670967,0x12c70965,0x275b12c7,0x275b0967,0x967275c,0x1a5b0489,0x21d921d9,0x19c103d7,0xd81205e,0xd810d83,0xd830084,0xd83205e,0x840083,0xd832a7f,0xd840083,0x1856205e,0x186a00d1,0x2510186a,0x10861855,0x108e108d,0x17552365,0x1dd31dd3,0x174e174f,0x2784099a,0x82b0983,0x1f4e1f4f,0x1f4d1f4f,0x7d01f4e,0x17af07cf,0x123c1eb9,0x123c123d,0x78b1eb8,0x123a1eb8,0x2543078b,0xf52544,0x188300f5,0xf400f4,0xf511cb,0x253e11cb,0x297d2543,0xb810b86,0xb7f0b81,0xb7f0b80,0x18fc0b7a,0xb7b0b7a,0xb7b18fc,0x19052983,0xb7b18fc,0x29831905,0x19050b7d,0x18f90b7d,0x18f90b7c,0x18fa18fb,0xb8318fb,0x18fa18fa,0x18f90b7c,0x297d0b80,0x18fc0b81,0xb7f0b80,0x502032,0xb2a0d4a,0xb2b14a3,0x480046,0x8512a65,0x100a1016,0x101c101d,0x61b0857,0x1df8270a,0x1df8061b,0x1dfe1df7,0x1deb061f,0x237d061f,0x237d1deb,0x621061b,0x1df7061b,0x6140621,0x237d1deb,0x5930594,0x1d5a1d5a,0x22f122f0,0x11f211f3,0x18a418a4,0x11f311f1,0x17690551,0x54f1768,0x17680551,0x17641763,0x54a1761,0x17611763,0x1768054f,0x54f22a8,0x54d22a8,0x176622a8,0x22a5054d,0x175f054a,0x1761054a,0x22a6175f,0x22a7054b,0x22a722a6,0x175f22a5,0x22a522a6,0x176c054e,0x1766054d,0x54d054e,0x175f22a3,0x54f1761,0x1762054d,0x22a4054d,0x22a31762,0x17601761,0x22a322a4,0x22ad1760,0x176a22ab,0x1aea0528,0x1569226b,0x1e5a0c34,0x176d0553,0x22ab0554,0x22ac22ad,0x22a922ac,0x22a922ab,0x22aa1767,0x165f1069,0xa7710ac,0x94a0a76,0x4091aab,0x177819f0,0x55c22b7,0x22b61774,0x55c055b,0x22b822b7,0x177722b7,0x177722b6,0x22b6055b,0x20ce02a8,0x5581c90,0x177022af,0x22b022af,0x177022ae,0x22ae22af,0x22b322b0,0x22b022b1,0x22b222b1,0x557176f,0x555055a,0x1776176f,0x55a176f,0x22b01776,0x22ae22b2,0x177222b2,0x177222ae,0x17731775,0x17731772,0x177622ae,0x55622b9,0x5561776,0x17710555,0x5591776,0x55a1776,0x5580559,0x17711770,0x22b4054b,0x54a1775,0x22b122b2,0x68825d8,0x7b625d9,0x179e07b8,0x55022ba,0x568176b,0x1d2f16c7,0x54e176c,0x17691769,0x176c0551,0x5540551,0x554176c,0x176c176b,0x550176b,0x176c176a,0x552176b,0x22ca22c9,0x16c716be,0x22c322c2,0x16c622cf,0x16c21d34,0x1d2b1d2a,0x5651d30,0x1d3222c0,0x16be1d33,0x16c316c4,0x22cf0561,0x22c416c1,0x22c916c2,0x22c50560,0x56322c6,0x22cc16c5,0x16c622bf,0x22c022cb,0x16bf16c5,0x5660562,0x5611d2b,0x56922c6,0x22c50562,0x5650564,0x180e0830,0x180e180c,0x180c1f5a,0x22cd22c7,0x22d21d31,0x22d022d1,0x1d39056c,0x17ba1d37,0x1efd17b9,0x16671666,0x57708bb,0x22dd1d43,0x124a0797,0x5761ecd,0x1d4216d0,0x295e0b5c,0x22e20b4f,0x57f16d9,0x22e31d4e,0x1d5716db,0x16d822df,0x1d4916ec,0x58722de,0x16f022ed,0x1d5d16e0,0x22e70592,0x16e21d5f,0x254111bb,0x18871887,0xe200f9,0x10c908da,0x10c810c8,0x10ca167e,0x168510ca,0x115c10c8,0xbb8299c,0xbc20bb8,0xd3d115c,0x3b2a8a,0xd952a8a,0xd30003b,0xd3d2a44,0x1d5f16e2,0x16f316f1,0x16e20595,0x122a1233,0x122a122e,0x122c122d,0x122e122c,0x16f4122a,0x16f21d5a,0x16f116f2,0x16f41d5e,0x5961d5e,0x9a91322,0x13241324,0x132227be,0x230e1d4f,0x16ff2304,0x5a32308,0x1d6a2308,0x23082309,0x1d5016ff,0x230616ff,0x23061d51,0x1d5116fd,0x280d280e,0x280d280c,0x280c1377,0x27b709eb,0x280e2803,0x2804280c,0x280f280c,0x280f2804,0x280309eb,0x138b2810,0x11e9138a,0x10f189a,0x255a189a,0x13b811eb,0xa4513ba,0x9210920,0x136413d1,0x9c51362,0x9db1352,0x9e027fa,0x134e134c,0x1d7f05bd,0x1d7f05b7,0x1d7e1713,0x1d7f05b7,0x17131d7e,0x1d7e05be,0x12df0a91,0x9740974,0x141812ed,0xa9012ed,0x5c81418,0x171a05c2,0xefc0f08,0x171e0efa,0x23331d99,0x23352333,0x1d9c1d9c,0x23331721,0x17201721,0x17222333,0x1d9e1723,0x23361d9e,0x23361722,0x17221d9d,0x5af171f,0x171f1d9a,0x5c81d9a,0x1d762333,0x1d9d05ca,0x5ae2335,0x23332335,0x5ae05ae,0x1d9d05cb,0x23321d9b,0x23321d98,0x1d981d73,0x1d9b05cc,0x5ae1d98,0x5ca2333,0x5ae1d73,0x5ca05ca,0x5c8171f,0x1d9805c8,0x171d1d73,0x23371d9f,0x23322337,0x1d9b1d9b,0x5c92334,0x171d05c9,0x28871d9b,0x9490a62,0x273c0a62,0x9490949,0x28872723,0x91c091f,0x52d13df,0x21e82277,0x60f16be,0x22c722bd,0x56b1d3a,0x233d1da6,0x23051da7,0x172f16fe,0x2340172f,0x23402305,0x230505de,0x234505de,0x2345230f,0x230f233d,0x1da6233d,0x1da5172a,0x1d6f1da8,0x23421da8,0x1da8172b,0x1d6f172b,0x172a233d,0x172a1d70,0x1707233c,0x5de2305,0x172b230f,0x1d6f172d,0x5dd172d,0x5dd1704,0x1704172c,0x172e172c,0x172e05a7,0x5a72346,0x173105d5,0x5d51700,0x230a1700,0x233e2346,0x5a7230c,0x230c2346,0x1d711707,0x1d71172a,0x172a1d70,0x230f1d70,0x233e233d,0x230b05d5,0x230a05d5,0x2310230b,0x170705a9,0x23101d6f,0x2310233c,0x233c1707,0x230b233e,0x233e1703,0x1d6b1703,0x1da5233c,0x233e1d6f,0x230c1d6b,0x1d6f1704,0x2342172d,0x5d805d9,0x5d22339,0x5d22340,0x2340233f,0x17261da9,0x172605d7,0x5d72339,0x23402339,0x5d82341,0x172c05d9,0x1dab05d9,0x1dab172c,0x172c233b,0x17271dac,0x17271daa,0x1daa1726,0x27a71314,0x1da40b15,0x233e05d4,0x172505d4,0x233a233e,0x1dac1727,0x1dac233a,0x233a05d5,0x172505d5,0x233f1da7,0x231005d2,0x5a81706,0x1739234a,0x1dc6234d,0x5f41dc5,0x235c05f4,0xadc05f5,0x144c1457,0x8231f19,0xa70081d,0x289313fc,0x289013fc,0x28932894,0x289413fc,0xa752894,0x176a2893,0x17791778,0x17620559,0xa111760,0x138d13a1,0x2825138d,0x28250a11,0xa0d09fa,0x282609fa,0x28260a0d,0xa0d2837,0x1daa1730,0x1daa2309,0x5a32347,0x19bd03e5,0x3e5213a,0x213b213a,0x19ba2138,0x19ba213d,0x213d03e5,0x19b92136,0xaf603e3,0x147a147b,0x28fb28f9,0x28fb0af6,0x28fc147c,0xaf70af5,0xaf70af4,0xaf428fa,0x147a0af6,0x28fc28f9,0x28fb0af6,0xaf528fe,0x28fe0af4,0x28fd0af4,0x28fe147c,0x73028fd,0x261e2620,0x242c261e,0x242c072c,0x72c261b,0x2606261b,0x27d0072c,0x28f5146f,0x22a22133,0x29161b0e,0x2904290f,0x27992904,0x27992916,0x29160b0f,0x173605e9,0x5e61db1,0x1d611d62,0x1db11d61,0x1db1234a,0x234a1736,0x5e605e5,0x29011d61,0x14340af9,0x28ba1434,0x28ba2901,0x29010a9b,0xb272925,0xb2714a1,0x14a114a2,0x16c30566,0x16c322d0,0x22d0056a,0x22d122d0,0x5660566,0x16c222d1,0x22d322d1,0x2db22c9,0x2e20ed6,0x1cd002e2,0x1cd002db,0x2db02e5,0x1370155,0xf220f22,0xf2d0f21,0xf240f21,0xf2d0153,0x1530f21,0x14f0f24,0xf240f2a,0x1530f2a,0x26da0386,0x26da0392,0x3920393,0x26f226ed,0x38626e6,0x26e60392,0x3bc0417,0x218c03bb,0x42c218b,0x1f1c17d7,0x1f1c17d5,0x1f1a07a2,0x96b096c,0x96b12cd,0x12cd12d0,0x277512d0,0x2370097a,0x604175a,0x6021754,0xa7f236a,0x140728a2,0xa7b1407,0x1bcc0a7c,0x1bca1bcd,0xfc01bcd,0x7091bca,0x246b070a,0x1dce1756,0x11d11dcb,0x11a80ddd,0x175a2371,0x6082370,0x23611759,0x174a0608,0x23642364,0x6081dda,0x6071dda,0x23730608,0x1dca1ddb,0x1dc21dbb,0x57c1740,0x1ddd1d48,0x30a1cf0,0x1cf41cf4,0x1cf0030d,0x19ed2166,0x19ed0421,0x42104c9,0x4c804c9,0x22d60421,0x5791d40,0x570056f,0x2542060c,0x188700f7,0x298a1155,0x13f91193,0x13fa0a6d,0x28880a6d,0x2888288a,0x288a13f4,0x13f7288a,0x13f70a6d,0xa6d13fa,0x7a41ed1,0x17cc1f0b,0x1f0b07f1,0x175c1de3,0x1de41ddd,0x1d3c1de2,0xbbd0bb5,0x10f91180,0x8ff087e,0x106e087e,0x10fd10fd,0x8ff0907,0x1e211de6,0x237a0610,0x611270b,0x1e23270b,0x1e23061c,0x1dfe1de9,0x1dfe1e23,0x1dff061c,0x6111e21,0x237a1e21,0x270b0611,0x611061c,0x1dfb1e24,0x61c1df8,0x6111e24,0x1df81e24,0x6110611,0x23781e00,0x1dff061d,0x61e0611,0x1de71de8,0x1dfa1de8,0x1dfa1de7,0x2378061d,0x23780611,0x2378061d,0x238e1df9,0x6201df9,0x2378238e,0x2379238e,0x1de72379,0x6131dfa,0x61e1de6,0x270c1de6,0x270c061e,0x61e1dea,0x1dfc061e,0x1dfc1dfd,0x237d061e,0x22bb22ba,0x22bb1778,0x22b9055d,0x55a055d,0x176e0557,0x22b90556,0x557055d,0x1779176e,0x22bb1778,0x176e055d,0x1dfd22b9,0x1e231dfc,0x1dfc1dfd,0x6221e23,0x2381270a,0x23941e05,0x1e050623,0x23800623,0x23950623,0x6222380,0x1e052381,0x1e001e26,0x23802380,0x1e050622,0x237f0620,0x237f1e27,0x1e271e26,0x23952380,0x1ae91e26,0x5262262,0x5a12302,0x238705a2,0x23881df5,0x1df41df5,0x23892386,0x23820616,0x23822389,0x2388238a,0x23871e28,0x238a2389,0x238a1df4,0x1df42386,0x6131de6,0x180f237a,0x1f5f1f62,0x180e1f5f,0x237c0830,0x6151e03,0x1ded1e03,0x1ded0615,0x6151dee,0x1deb238f,0x61d0612,0x1de8238c,0x237b1deb,0xbb4270e,0xbb60bb2,0xbbc0bba,0xbb70bb7,0x29a00bbc,0xbc00bbc,0xbc029a0,0x1172117a,0x29a6117a,0x11720baf,0xbaf117a,0xbb20bb6,0xbb21174,0x11740bb1,0x29a029a1,0x29a60bc0,0xbaf0bb6,0xbb60baf,0xbb11174,0x1173117d,0xbc3117d,0xbc31173,0x1173117c,0x29a11172,0xbb70bc0,0x117e29a0,0x29a2117b,0x29a2117e,0x117e0bb0,0xbc4117e,0x29ae117b,0xbc10bc2,0x29ad0bc2,0xbc229ac,0xbc129ac,0xbc4117b,0xb9a29ae,0x11570b91,0x298f0b91,0x298f1157,0x11570b99,0x11500b99,0x11501157,0x1157114f,0xbbe29a9,0xbbe0bbb,0xbbb29ab,0x117929ab,0x29ad1178,0xbb80bc2,0x1607101e,0x24200856,0x2422260a,0xe021897,0xf7c11ff,0xf7a01a1,0x24fe1841,0x24fe1840,0x18400dc8,0x1e171e16,0x1e171f9f,0x1f9f2398,0x1f9f2397,0xc3b2398,0xc391e63,0x156c0c39,0x156c0c3b,0x156e1117,0x156c156b,0x156e156d,0x156c156d,0x187a2537,0x11bb11c9,0xe311ba,0x252611ba,0xee00e3,0xdf6253b,0x1b9d2598,0x19101b98,0x1fa323a1,0x1155298a,0xb942987,0x114f1152,0x40f0416,0x4160414,0x52b0414,0x216d0414,0x52b052b,0x4162270,0x227419f6,0x227419f5,0x19f5052b,0x52b19f5,0x99d0413,0x27b327af,0x131527af,0x131527b3,0x27b30999,0x27b00999,0x2a3a27b3,0x2a08002f,0x206d2a83,0x206d2066,0x20660087,0x119a0dd7,0x18212509,0x1f761f7a,0x17321db1,0x10f205e9,0x10f610f1,0x18f10b88,0xb8b18ef,0x19060b70,0x5cd1d9a,0x15dd05cc,0x15df15de,0x5a32307,0x15da2347,0xe8f1916,0x15ed0e90,0xcae1929,0x19131914,0xcac1913,0xcad0cad,0xcae0e8e,0x15d90e90,0xcbc1914,0xcbb0cbd,0x15b215b3,0x15b215ac,0xc791e06,0x19130cb2,0x19130cb1,0xcaf1914,0x19130cb1,0x19140caf,0xcaf15d9,0xcb60cb1,0xcb615db,0x15db0e95,0xcb215da,0x15db0cb1,0xcb10e93,0xe921919,0x19500cb4,0x63d1939,0x23bb064e,0x23d41940,0x19451967,0x6531956,0x23ab23ab,0x195623ad,0x63823ad,0x3be1956,0x19d003c9,0x19d02150,0x43603bd,0x1a18218a,0x1a38199c,0x4740467,0x214e03d2,0x42d0431,0x42d1a5e,0x1a5e1a23,0x23081d6a,0x4421d50,0x1a240448,0x1a1b219c,0x1a1c043f,0x21ee0440,0x4a304a4,0x12a521f1,0x27442747,0x9512747,0x27442744,0x12a512d7,0x4b31a74,0x21f41a8d,0x212f19a0,0x3ba03bb,0x3ba216f,0x216f04a6,0x49d04a6,0x1a8a216f,0x4b52215,0x1a802209,0x1a7d1a82,0x1a8221ff,0x22061a7e,0x4bb04b4,0x1a882211,0x22111a88,0x4b8220d,0x1a832205,0x21171986,0x21fe220e,0x221604b1,0x4d3222a,0xa9b19eb,0x1482141e,0x28b5141e,0x217b0afb,0x215d217c,0x4de217c,0x4de215d,0x215d1ab1,0x1ab704e8,0x3f61ab8,0x223e2242,0x19c203ce,0x229d0548,0x19ad2140,0x68f23ff,0x6900690,0x23ff25dd,0x78c078f,0x78c123f,0x78a078d,0xb602963,0x211295c,0x26a6269c,0x64c194c,0x64c194b,0x194b194d,0x194c064c,0x22b4194a,0x22b322b1,0x177422b3,0x17741773,0x177322b5,0x17751773,0x193c22b3,0x23b823b9,0x193b23b8,0x193a193a,0x23b8063f,0x23ba063f,0x23b223b8,0x64023b4,0x23b223b4,0x23b21937,0x23b023af,0x23ae23b0,0x23ae1937,0x19370637,0x23b30637,0x6401937,0x193e23b4,0x193e0641,0x193d0649,0x63f23ba,0x1a121a13,0x1a051a10,0x1a101a13,0x1a101a05,0x1a101a08,0x429042c,0x1a101a08,0x21840429,0x2185042e,0x2184042c,0x4290428,0x428042c,0x21852184,0x1a080428,0x217c0423,0x217d0423,0x1a05217c,0x217c1a08,0x217b217c,0x217b1a05,0x4221a07,0x1a050422,0x1a07217b,0x4222180,0x21822180,0x2182042a,0x21810426,0x4332181,0x433042a,0x21881a14,0x433042a,0x1a142188,0x21882189,0x4352189,0x4352188,0x21881a0b,0x1a111a0b,0x21822188,0x42a2181,0xaa51425,0xaa40a82,0x28a928aa,0x19491934,0x32923c2,0x1d0f032f,0x7240723,0x7242604,0x26042605,0x24162605,0x195406a8,0x19531966,0x19691966,0x7a91953,0x178a07bb,0x14a0159,0x14a0f28,0xf28015a,0x195523ce,0xf441935,0xf450f47,0x647065d,0xf901945,0x1b8b01af,0x1b501b4f,0x77b1b72,0x1219077c,0x1e9e077c,0x1b641219,0xf7b0f93,0xf800f82,0x1e701a4,0x1bc11bc4,0x23dd23dc,0x23dd0667,0x6670666,0x6650667,0x196e23dc,0x23de0664,0x23da0664,0x23de23db,0x23db0664,0x66323da,0x66323db,0x23db196d,0x666196d,0x196d23dd,0x23db23dd,0x23dc196c,0xfa6196e,0x1bae1bad,0x174e2365,0x174d174d,0x23652363,0x23642363,0x5fa174a,0x174a2363,0x1bc80fba,0x1bc80fb1,0xfb101eb,0x1bba01eb,0x196d0fb1,0x196f0662,0xfbe1bbc,0xfbe1bbb,0x1bbb1bc7,0xf330f3e,0xf330f3b,0x1ed0fbf,0x23b51944,0x20723d1,0x208020b,0x1bee020b,0x23a90208,0x65223aa,0x2190fe7,0xfee0ff5,0x1c000fef,0x1bfa0fed,0x21c0fc7,0x1bcd021d,0x2240ff1,0x4fa1c01,0x22522251,0x1c0001ee,0x22d1bff,0x1bf71bf6,0x193c23b9,0xfe41960,0x22c1bf2,0x19141917,0x19141127,0xccb0cae,0x19141127,0xcae0ccb,0xccb15ec,0x15ba1127,0x65b0e91,0x6401962,0x1c101004,0x194c1c14,0x23d5194b,0x194c194a,0x194b065f,0x23d7194e,0x1c150240,0x167023c,0x1700171,0xfa71bb0,0x25d501cb,0x68725d6,0x8030804,0x1f2a1f2a,0x1f2b1f2d,0x7fe1f2d,0x1c321f2b,0x24c1c2f,0x25d10687,0x1c4c25d2,0x26c826c0,0x1c410263,0x81c026a,0x17f117f2,0x81417f2,0x17f317f3,0x17f21f3d,0x8ba1662,0x210165b,0xfee020f,0xfef020f,0xadc0fee,0x28e928e3,0x145628e3,0x14561466,0xae81455,0x28e81455,0x14660ae8,0x28e328e9,0x23f225d1,0x6840684,0x25d2066f,0x67125c4,0x6700670,0x66f25d2,0x23eb25c3,0x23eb23ed,0x23ed23ef,0x27526c1,0x1c7426c5,0x20b720b8,0x20a920a6,0x20c301b1,0x20cb02a1,0x20d71c8c,0x1c7c02b0,0x2a6029e,0x2ef0eec,0x23751c9c,0x16dc2374,0x1cd202e3,0x1d011ccd,0x25a81d06,0xa20000,0xa229f6,0x29f600a3,0x1ce2033e,0x1d022588,0x25a71d03,0x322032c,0x25e60327,0x25e50697,0x28232822,0x28230a05,0xa0a138a,0x28230a05,0x138a0a08,0xa0a0a0e,0xa080a0a,0x23f92823,0x25db0689,0x6950696,0x69525f0,0x25ec25e9,0x69525f0,0x25e92408,0x25eb25ea,0x25eb25e9,0x25e625ec,0x25f40696,0x25e7069d,0x25e725f5,0x25f525e6,0x25f00696,0x695069b,0x240825ec,0x68925f1,0x25f423f9,0x25e625f5,0x25f42409,0x25f10696,0x69423f9,0x25e40694,0x25e4069e,0x6992407,0x69925e4,0x25f1069e,0x25f60694,0x69e0694,0x25f225f6,0x6962409,0x25f2069c,0x25f10696,0x25f325f6,0x69c069b,0x25ec0696,0x69a25f1,0x25f325f1,0x2405069a,0x25e80698,0x240425e8,0x240425ee,0x69d25e7,0x240425ef,0x2404069d,0x25ee25ef,0x25e42407,0x25e425ed,0x25ed25e8,0x7c817b2,0xbd1efd,0xdca00bc,0x12431247,0x799124d,0x1247079b,0xf30023e,0x8a6015c,0x16501659,0x16561659,0x12351094,0x7821229,0x1eae1229,0x7821eaf,0x1eaf1229,0x12320782,0x6b81235,0x260e2423,0x24212423,0x2601260b,0x6aa06ab,0x2677248f,0x248e248e,0x26790729,0x24262616,0x2426242a,0x242a240d,0x2429242a,0x242906c1,0x6c12614,0xf110cf0,0xf110f0a,0xf0a0cee,0xf0e0f0a,0x26290cf0,0x243c262a,0x6c42444,0x264a06c5,0x26492462,0x244a06e3,0x22f62635,0x5950590,0x8dd08dc,0x8dd08db,0x8db10dd,0x10dc10dd,0x8e608e6,0x8e508e4,0x10d908e4,0x8e508e5,0x8e608db,0x24582641,0x245806f1,0x263d263e,0x26352639,0x24432443,0x26392623,0x263b2623,0x16612639,0x165a109e,0x165b165a,0x165b1661,0x166108ba,0x1dae05da,0x262a1dab,0x243b06d7,0x5ed05f0,0x174405ee,0x173a05f5,0x5eb173a,0xb5d1744,0x295e18d7,0x7032456,0x703246c,0x246c0701,0x6df2630,0x6df2446,0x244606dc,0x265006dc,0x24662446,0x6ff2467,0x7002467,0x6ff06ff,0x24662651,0x1dfb0615,0x1c951e03,0x20d902b1,0x6a0261a,0x1e0106c2,0x27101de9,0x713247c,0x7132660,0x26600710,0x1e0d1e08,0x1e0d15af,0x15af1e0a,0xc7f1e0a,0x1e0d15af,0x15aa1e08,0x1e071e08,0x1e0615aa,0x15a91e0b,0x1e0c1e0b,0x15a915b1,0x15b11e0b,0x15aa1e0d,0x247c1e0b,0x2654265d,0xc7b15ab,0xc7d0c7d,0x15a90c7e,0x1e090c7e,0x1e0915a9,0x15a90c79,0x17881edc,0x1ed91ed9,0x1edd07bb,0x71c071a,0x71c2668,0x26680716,0xdf900f6,0x253f253f,0xdfc0dfb,0x11ce0dfb,0x11ce0dfc,0xdfc0de8,0xdfd0dfc,0xdfd00f6,0xf611cf,0x5f80606,0x5f8236d,0x23601dcf,0x5f8236d,0x24072360,0x25fa25f9,0x70a070d,0x24782473,0x23e70712,0x70d25c3,0x24782473,0x23ec23e7,0x25c323ec,0x25f22473,0x717266e,0x7401faf,0x21d424b0,0x21da047f,0x48a047f,0x21da21db,0x21db047f,0xb070aa4,0x148b290e,0x29040b01,0x28f60b01,0xaa32904,0x290e0aa4,0x290f2904,0x290f148b,0x290e0aa3,0x7410742,0x24b31fcb,0x1fbf24a7,0x24c624c5,0x198c0749,0x19ae03e4,0x19ae198c,0x3e12107,0x3d5199f,0x19a403d5,0x212d212d,0x3e103b8,0x19b003b8,0x210703d1,0x198c03b8,0x19b119b0,0x19b019b2,0x3d119b2,0x198e19b2,0x3e119c8,0x212d03d5,0x3e12107,0x211f03b8,0x3e519bd,0x214403e5,0x2144211f,0x199b19bf,0x2144211f,0x19bf199b,0x19a919be,0x19bb19be,0x21422142,0x19a903b2,0x214219be,0x211f19a9,0x211a199b,0x211f198e,0x19a9211a,0x19bf19a8,0x199b19a8,0x198c19bf,0x3d103b8,0x213303de,0x213303df,0x198e19c8,0x3d119c8,0x198e19b2,0x3df211a,0x3de2132,0x1fc803df,0x74f1fca,0x8391f6a,0x83b083b,0x1f6a1f70,0xd40dda,0x1035185a,0x869161a,0x1deb270d,0x1f540612,0x18051f64,0x180a1809,0x120b1f54,0x10711df,0x194123bd,0x31954,0x2a971feb,0x20861feb,0x2a972a97,0x3207a,0x1e421e4b,0x1e411559,0xc210c20,0x15271e43,0x15271e2a,0x1e2a1e39,0xc101e39,0xc101e2a,0x152f1503,0xc101e2a,0x1503152f,0xc211526,0x15591554,0x15031e42,0x152f0c21,0x15540c21,0x14fc14fc,0x1e421554,0xc17152a,0xc211519,0x152f14fc,0x152a1e2a,0x159b1519,0x14f214dc,0x14df14dc,0x6f614f2,0x264b2460,0x6f92460,0x6f9264b,0x264b2447,0xcba0ea9,0xcba0c96,0xc9615dd,0x250e00cb,0x250e119d,0x119d0dd8,0x18520dd8,0x1852119d,0x119c1853,0x1852119d,0xc0119c,0xbe1848,0x18471848,0xbe1845,0x18451848,0x7571f8e,0x75724e2,0x24e20755,0x7530755,0x75324e2,0x1f8a1f7b,0x75324e2,0x98d1f8a,0x29110b08,0x18aa2563,0xe190e19,0x2563188f,0x1890188f,0x10ce11fb,0x168708d7,0x168808d7,0x16881687,0x168710d0,0x10cd1687,0x137010cf,0x9e2136b,0x256a0e3c,0x28c50e30,0x144112fe,0x1ff52a11,0xd530031,0x5a0d52,0xd542039,0x20470d53,0x782046,0x206f0d90,0x6e008e,0x20530d75,0xd6f0d75,0xd6f2054,0x2054006a,0x20532054,0x20530d75,0x6e0d74,0x6f0d74,0x6f2a77,0x6d2a76,0x20522a76,0x2a76006c,0x6d006c,0x6d006f,0x2a7c2a77,0xd9c2076,0x208200a8,0x2a920daf,0x50007,0x29ff0dab,0x10cf000c,0x8d810ce,0x168810ce,0x10d008d8,0x8d61682,0x10d01688,0x7d08d8,0x790d7a,0x9ef138d,0x236409ee,0x5fa174a,0x236505fa,0xc6205fc,0x14f81266,0x20e0ffd,0x20e0233,0x2331bf6,0xffb0233,0x2a630234,0x2a640d5f,0xd620d5f,0x652a64,0x2a630d60,0x2a642a63,0x24da2a65,0x75e1f95,0x1f941f95,0x942075e,0x129e2735,0x2a840d8f,0x2a84008b,0x8b206e,0x206f008b,0xcfc0d8f,0x970da3,0xd3c202a,0x20e30043,0x29ee20fb,0x20fa29ee,0x8150bf6,0x17ee17ed,0x20700d91,0x3a0d92,0x2a5d2a5e,0x6bc06ba,0x6bc2617,0x26172427,0x3062585,0x3040304,0x1ce71cec,0x19eb03fd,0x110223a,0x189911e6,0xbd2298b,0x10371193,0x10091038,0x86f1038,0x86f1009,0x15f7086e,0x3f303f4,0x28e119bf,0x144b0ad6,0x20652a47,0x2065008a,0x8a0d8e,0x2066008a,0x29912a47,0x115a1150,0xb991150,0x115a115a,0x2991115b,0x1cd0fa9,0x1cd1b9e,0x1b9e1b99,0x188711cf,0x18870df9,0xdf900f9,0x11c900f9,0x19390df9,0x63d063e,0x1936063e,0x1936063d,0x19341935,0x1936063d,0x6411934,0x19351949,0x19341949,0x64c1935,0x1933064b,0x64a064b,0x64a1933,0x19350641,0x6421943,0x6421941,0x63c1933,0x194123bc,0x23b60642,0x64223b7,0x23bc23b7,0x63c0642,0x64223b6,0x64a1933,0x19331935,0x23b11935,0x24dc1f88,0x24de24de,0x1f8924dd,0x231f05b8,0x24d905b7,0x1f841f83,0x24ce24d0,0x1f820753,0x75c075b,0x24d5075b,0x24d5075c,0x75c24d6,0x75c075e,0x24d824d8,0x24d6075c,0x75524d0,0x7550756,0x7560757,0x1f7e0757,0x1f7e0756,0x24d124d2,0x1f8624d2,0x1f8624db,0x1f8824dc,0x1f8624db,0x24db1f88,0x24d224d1,0x7631f89,0x76224ee,0x7751f87,0x24db0772,0x76d1f88,0x24d3075a,0x24d8075d,0x182424e8,0x18230842,0x1f760842,0x1820181f,0x181f0842,0x8441f76,0x24de181f,0x1f9924dc,0x11ff2564,0x21a018ab,0x44b044c,0x21a2044c,0x21a2044b,0x44b21a3,0x44d21a3,0x53f044b,0x21041b06,0x198c03e4,0x16fd228b,0x16fe2306,0x19b2198e,0x1d321b09,0x22d322ca,0x120e0132,0x120e0e11,0xe110e0c,0xe340e11,0x100e18b8,0x100c100f,0x1601100f,0x1601100c,0x84e084f,0x27a61310,0x9950995,0x12e00997,0x276512e0,0x12df12df,0x12e01310,0x11b70ded,0x11b711bf,0x11bf00df,0x11c400df,0xdf00df0,0x252a11c1,0x252a0df0,0x237d11bf,0x2394061e,0x1e05237d,0xcec2381,0xcdd0ef7,0x1b6c0f67,0x19460f75,0x23ca23a8,0x66723e4,0x27900666,0x28af2763,0x12dd2763,0x28af12de,0xa892763,0xa8912de,0x264d2763,0x2448264f,0x24872483,0x73b2671,0x24c924ac,0x2486266f,0x24852485,0x7180719,0x1fc81fc9,0x6ac24cb,0x240725f9,0x69e25f6,0x69e240c,0x240c240b,0x8b71664,0x8b71666,0x166610a0,0x10a91666,0x8b71664,0x8b41664,0x16631664,0xe47109d,0x35c0354,0x34a0e61,0x12d8034c,0x27282725,0x12902725,0x27282728,0x12dc2745,0x272812d8,0x274512dc,0x12dc12a5,0xb632966,0x3f72965,0x4f7215c,0xb40dc0,0x15ee00b3,0x15da192a,0x1f4617fd,0x1f461f47,0x1f491f4b,0x1f461f47,0x1f4b1f49,0x1f4c1f4d,0x1a5f21a8,0xaa80445,0x28eb0aa9,0x28c028eb,0x28c00aa8,0xaa81424,0x28be1424,0x118b142b,0x117a29a6,0x14bb14a5,0x17f214bc,0x17f30812,0x17e80812,0xb0717f3,0x147f0aa4,0x28bf0aa4,0xf07147f,0xf030f0f,0xcdb0ce1,0xef50ef5,0xce70ef6,0xcf00ce7,0xce10f0d,0xce70ef5,0xcf00f0f,0x25670f05,0xe2e2564,0xe252564,0xe250e2e,0xe2e11fc,0x11e11fc,0x11e0e2e,0x2578011d,0x18bd2578,0x18bd011e,0xe2e0e3c,0xf5e1b61,0xf5e017a,0x179018b,0xf5e017a,0x18b0179,0xf5f1b60,0x252900e4,0x248c0dec,0x2418241a,0xed0dfe,0x100c2542,0x1012084e,0x6fd06fe,0x6fd2656,0x26560701,0x10cf10ce,0x1eb71684,0x1eb21230,0x187011ca,0x253d253d,0xf01884,0x8c610c3,0x5a708cf,0x1d6d230d,0xfb701e0,0xa2c01d6,0x28572855,0x13c42855,0x21732857,0x5330531,0x5300531,0x2a1d0533,0x2a492a6f,0x8f2a6f,0x2a010d94,0xa1000e,0x1cef1cf8,0x1222258e,0x1ec21ec0,0x1b801b5,0x8190f9e,0x1f3317ea,0x24332413,0x26242624,0x2413071f,0x7c917ad,0x1efa1efa,0x17ad17ae,0x140b12f9,0x18d30a82,0x294d294e,0x2956294d,0x27562966,0x12c42759,0x12cb2759,0x96a2784,0xae512cf,0x27842759,0x12cb12c4,0x1462096a,0x12cb2784,0x27840983,0x12c42781,0xae5096a,0x96a0ae6,0x14620ae6,0x12cb0983,0xadf0adf,0x146212cb,0x14590adf,0x278d0983,0x14590983,0x12fd2782,0x2782278a,0x2789278a,0x278d278a,0x13010ae0,0x98b2789,0x27890ae0,0x28e5278a,0x2789098b,0x1459278d,0xb120ae0,0xb051490,0x14990b05,0x14990b12,0xb120b14,0x69f2602,0xf6c240a,0xf52019c,0xe0f012b,0x24980109,0x267d267b,0x267a267b,0xd3a2491,0x2a121ff9,0x2a610062,0x630063,0xd5d0d5c,0x2a620d5d,0x640064,0xd5d0d5b,0x20410d5b,0x20410d5d,0xd5d2042,0x622042,0x20400d5d,0x2a60203f,0x4d2a60,0x4d2040,0x20400d4d,0x4f004e,0x4f0060,0xd780d4e,0x4e0d4d,0x20400060,0x600d4d,0xd78004f,0xd780060,0x610d7a,0x20410d7a,0x610d5b,0xd5b0d7a,0xdb20061,0xdb20d78,0xd780d5a,0x20430d5a,0xa50d78,0xdb000a4,0x20750d82,0x26702076,0x2613071d,0x2424071d,0x6bb2613,0x261306bf,0x1c851c7c,0x1eaa20ca,0x1ebb1225,0x1eb61225,0x16101ebb,0x1609101d,0x29911163,0xec52992,0x2d201c7,0x1cba02d2,0x1cba0ec5,0x2cb1ba4,0x184d11a0,0x18511851,0x185400ca,0x119a00ca,0x185400ce,0xce00ca,0xdd7119a,0xe2400ce,0x25630e25,0x1f781f74,0x181e181e,0x1f741f6b,0x1f6f1f6b,0x1f6f1f74,0x83c1f72,0x21ed049b,0x49b1af3,0x227d1af3,0x49f227c,0x49b049c,0x49c227d,0xc9c0c9e,0x11391139,0xc9e15e6,0x215603e5,0x160303f4,0x1613085d,0x2474265b,0x25882477,0x33e1d29,0x3c21aff,0xc8903c0,0xc860c85,0x15b10c86,0x15b10c89,0xc891e0c,0x3280327,0x8901d11,0x88e1639,0x1078088e,0x10780890,0x890163b,0x1084163b,0x58e0890,0x16f0058d,0x1aa12228,0x20fd19e7,0x29e329f2,0x29e229f2,0x8f929e3,0x10ef10f4,0x20702a8b,0x1eb90091,0x1eb81eba,0x10250858,0x10251608,0x10260860,0x10251608,0x18a51026,0xe0218a3,0xe0e0e02,0x80018a5,0x1f2f17e6,0x7a51f2f,0x2a7f0800,0xd9b009c,0x1627162f,0x16301630,0x162f106d,0x106f106d,0x18f51634,0xb7b2983,0x2272052b,0x9961aec,0x12bf276a,0x12c312bf,0x12c327ad,0x27ad0973,0x99627ad,0x27ad12bf,0x276f0973,0x27700973,0x276f276f,0x12eb2770,0xad10974,0x12e412e4,0x12eb276f,0x12e40974,0x97a12eb,0x277312ed,0x97412ed,0x277312ec,0x12ec12ed,0x12cd12c9,0x12cd0966,0x2773097a,0x9662773,0x7412cd,0x2a2c2a26,0x11840bbe,0x711188,0x2a1e001c,0xa7f289f,0x20140a7c,0x1d0031,0xd100031,0x962001d,0x275612c2,0x12c512c2,0x25662756,0xe2b0126,0xe2d1204,0xe2d1206,0x12060e2f,0xe2b2566,0xe261204,0x18b00124,0x256618b0,0x12061204,0x1200e27,0x12318ad,0x1230e26,0xe260e28,0x1201206,0x18b018ad,0x18ad1204,0x12061204,0x11f18ad,0xe280e26,0x14191438,0xab20ab2,0x143828c5,0x142d28c5,0x289428c4,0x13ff13fe,0x13fc13fe,0x16542890,0x109308aa,0x1e97158c,0x272e14f6,0x12940937,0x272a1294,0x1026272b,0x102a0860,0x16120860,0x102a085f,0x85f0860,0x2577012e,0x9ce2575,0x27f5135d,0x135c1372,0x28171360,0x9f909f3,0x2851283a,0x3aa13bd,0x3922705,0x3930392,0x39303aa,0x3ab26eb,0x39303aa,0x26eb03ab,0x270726ec,0x39426ec,0x27072708,0x270826ec,0x3910394,0x3912706,0x27090390,0x3912706,0x3942709,0x27082706,0x22d41de4,0x141e056d,0x1483141d,0x14821483,0x2917141e,0x279d2919,0x1495279d,0x14952917,0x29172900,0x237d061b,0x1def0616,0x61b2381,0x1cd902ea,0x15721cd4,0x1e751573,0x14cb282a,0x212d0b45,0x211d19a4,0x1e9614f5,0xc6c0c57,0x1e7f1584,0x15001532,0x15271e3e,0x150c1e29,0x1e351539,0x25241558,0x11c011ba,0x11bb11ba,0x11bb11c0,0x11be00e2,0x252a11be,0x252a11c0,0x11c011c1,0x2c2a37,0x2c006c,0x6d002e,0x12671266,0x1e881e88,0x14e21591,0xc5e1591,0x1f3614e2,0x1f3c1f33,0x81b1f33,0x26151f3c,0x261406bf,0x24292614,0x11f62618,0x25511894,0xc951148,0x4100c93,0x3ff19f1,0x11461147,0x191b0c92,0xcd00cb7,0x9b809b7,0x15e228f5,0xe990e9a,0x24010693,0x16412402,0x107b1640,0x163e107d,0x16411644,0x107d107b,0xea40ea3,0x16e6192e,0x59016e4,0x245c245e,0x6f406f4,0x246106f8,0x6da2448,0x16a22461,0x10f51698,0x8f71698,0x10f510f5,0x16a208f4,0x10eb08f4,0x4651629,0x1a3b1a39,0x21be1a3b,0x197b1a3d,0x22331ab1,0x21b01a41,0x2a2821ad,0x2a542007,0x45b1a4e,0x24091a30,0x26640717,0x1fe52029,0x219f0cfa,0x1a1e1a25,0x4451a1f,0x4451a21,0x4901a5f,0x445219a,0x219a0490,0x4451a21,0x220b04b8,0x8be1a9b,0x10a608b9,0x8bb10a6,0x8bb10b6,0x10b61668,0x10b610a6,0x23fe1674,0x23fc23fd,0x87d1075,0xa6a0881,0x13f40a6b,0x288a0a6b,0x13f413f4,0xa6a13f3,0x288613f3,0x288613f2,0x13f20a67,0xa640a67,0xa6913f2,0x13f30a6a,0x19e0196,0x19b31b75,0x4ba19b4,0x4072223,0x23ed03f9,0x706067c,0x228d2107,0xffc0545,0x1c06022d,0x162b1071,0x106e106e,0x1633087e,0x87f087e,0x4e61633,0x223b04e5,0x224a2248,0x226c217d,0x5262269,0x4d804d5,0x5252182,0x3e603dd,0x50d225b,0x1b010503,0x211f2298,0x130a0992,0x130a27a1,0x27a1130c,0x9fb09fc,0x9fb09f4,0x1382138f,0x1a431a42,0x22a0197d,0x3de22a1,0x8a41089,0x164e164e,0x164b164c,0x115f1160,0x115f1162,0x11620ba2,0x11521162,0xba1160,0x182c0dbd,0x16151030,0x16151038,0x1038102f,0x7ac07aa,0x7ac07ab,0x7ab07ad,0x1ede07ab,0x163207aa,0x8881074,0x3c1212a,0x92c04ed,0x273f092a,0x946273f,0x5360947,0x22801af4,0x1dd9060a,0x1dd91dcd,0x1dcd1dd0,0x5fb1dd1,0xaae1dcd,0xad40aaf,0x28e20aaf,0x28e00ad4,0x144d142e,0x28df142e,0xaae144d,0xad50ad4,0x144d144c,0xaae28df,0x144c0ad5,0x12cb0968,0x17f012c5,0x81117e7,0x81017e7,0x5db0811,0x5d305be,0x171305be,0x17131728,0x1da11d7f,0x1da11713,0x1daf1728,0x234405db,0x172805be,0x1dad05d3,0x1daf05bf,0x1dad2344,0x5db1daf,0x5d105d3,0x234405da,0x1dae05db,0x5db05da,0x131027a8,0x131027a0,0x27a01309,0x279b1309,0x115327a0,0x29970b94,0x11630b94,0x11632997,0xba31164,0x9670965,0x12ca12ca,0x9650963,0x1c9220d5,0x6a81c90,0x6a425fe,0x2497072d,0x24992499,0x24952663,0x24962663,0x1ecb2495,0x1ec80794,0x13812823,0x2414281a,0x6aa2600,0x6ad06aa,0x1d1b2414,0x25bb0337,0x33d25bb,0x5bb1d1b,0x5b805bc,0x15421e33,0x15421e29,0x1e29150c,0xc101503,0xc10152f,0x1e2a1e33,0xc061530,0x152e1503,0x15541e37,0x15301554,0x153014fc,0x152f1503,0x14fc1554,0xc10152e,0x152f1e2a,0x1e291e33,0x15191e2a,0xc051547,0x153014fc,0x1e29152f,0xc051519,0x5b6231c,0x231b1711,0x1d7e231a,0x1d7a1d7b,0x1710231b,0x1d7b1d7c,0x5b6231e,0x5b6231d,0x231d231c,0x17121711,0x19251d7c,0x15cb112b,0x15bb112b,0x232f15cc,0x5c8232e,0x57216cd,0x1d6c0574,0x5a7230d,0x2317231e,0x22fe05b0,0x5e31db4,0x175e16d0,0x1da41de5,0x2346233e,0x5e32300,0x103b2349,0x85c0870,0x101b085c,0x8ff1048,0x10f916b6,0x90116b6,0x90110f9,0x10f910fa,0x1cc1cf9,0x1cc1cf8,0x1cf8259a,0x17ff1f50,0x17ff1800,0x8221f4f,0x16cc175e,0xbcf16cb,0xbb60bce,0x7ac07ad,0xbe11793,0x104a29c3,0x29c4104a,0x105129c8,0x104e1050,0x104c104e,0x104c1051,0x10510b44,0xbe50b44,0x29cb29cb,0xb440be3,0xbe10be3,0xbe10b44,0x29c929c8,0x29ca29c8,0x29ca29c9,0x29c90be2,0xbe429c9,0xbe40be7,0xbe729ce,0x29cd29ce,0xbe70be7,0xbe8104f,0xbe90be8,0xbe90be7,0xbe70bea,0x29d10bea,0x29d229d2,0xbea0bec,0xbeb0bec,0xbeb0bea,0x105229cf,0x10531052,0xbeb1051,0xbe11052,0x10511052,0x10510be1,0xbe10b44,0x29c90be1,0xbe70be7,0xbe10bea,0x17931794,0x178f1796,0x1ee31791,0x25d2066f,0x25d22461,0x246125d1,0x23f225d1,0x23f2245e,0x245e25ce,0x264425ce,0x6d3245e,0x265a06d1,0x246d265a,0x1ed906d3,0x181a1798,0x7af1798,0x188181a,0x1b6d0194,0x613237a,0x1747238b,0x5fb1dcd,0x236605fd,0x20ac1747,0x20b220ad,0x1c6e20b2,0x24971c6f,0x248125f5,0x266425f5,0x25612481,0xe0c2555,0xdd3250a,0x18641197,0xde900da,0x186d0de9,0x17921864,0x1ee41ee3,0x1ee01ee3,0x1ee01ee1,0x1ee1178f,0x80217df,0x8020805,0x8050806,0x17e30805,0x17e317df,0x17df07ff,0x17dc17e4,0x17dc1f21,0x1f211f22,0x1f270806,0x27cb17e4,0x134009b9,0x210c052e,0x210c052f,0x52f03b3,0x210503b3,0x1a61052f,0x227721e9,0x1a61052f,0x29af2277,0xbdc0bc3,0x17931796,0x17931ee5,0x1ee207aa,0x2bf1cac,0x256b1ca1,0x10818b4,0x255618b4,0x9050108,0x10fc16b7,0x10fb10fc,0x12070904,0x25702571,0x256f2570,0xf6c1208,0x185019a,0x1b1e0185,0x1b1e0f6c,0x19c0148,0x12118ac,0x18b518b5,0x12081207,0x256f1208,0x256f18b5,0x18b518b4,0x256b18b4,0x45018b5,0x21ca21cc,0x11b411b3,0x25212521,0x11b30de1,0x6e4244f,0x6e8265b,0x244f0677,0x18fa0b7c,0xf818c7,0x25441886,0x10271610,0x8610861,0x1029101d,0x1890f59,0x1891b63,0x1b631b55,0x17d517d6,0x17d517d3,0x17d31f1a,0x1f191f1a,0x1d5c07f5,0x22ed1d56,0x23e10668,0x1e5023de,0xc2d155c,0x19de215f,0x21a5215e,0x1a0421a6,0x227b1af2,0x198903ec,0x41819f8,0x21280541,0x6b1991,0x2a042a75,0x21e32176,0x21e42132,0x213219b7,0x82d1f58,0x82d1f63,0x1f631f60,0xf030ce2,0xefa0f04,0xf010efc,0xef70ce2,0xefb0efb,0xefa0ef9,0xce00cdd,0x23b60cdf,0x195c195b,0x16f0f43,0x23ac1b47,0x65323ab,0x193b193a,0x154065a,0x1371b20,0x1b3401e2,0x1281b36,0x25680e32,0x11d200ff,0x11d2188b,0x188b2557,0x1680165,0x1680f3d,0xf3d1b3b,0x1b400f3d,0x1b401b3d,0xf3a0f39,0x2430f39,0xf391c18,0xf3a1c18,0x1651b3d,0xf410f3d,0x1b401b3d,0x1b3c0f40,0x1b3c1c18,0x1c180f3a,0xf410f3a,0xf3f1b40,0x1c180f40,0xf3b0f3e,0xf3b016f,0x16f0f38,0xf3f0f38,0x1c181c18,0xf38016f,0xf43016f,0x1660166,0x1b3e0167,0x1640167,0x1b3f0f42,0xf420167,0xf270164,0x1641b38,0xf3c1b38,0xf3e1b3e,0x1b3f016f,0x1671b3e,0x16f1b3e,0x1b540166,0x1891b55,0x20c91c7b,0x2a902a6,0x2b01c89,0x20db02b0,0x2c602a9,0xec902c7,0x24810715,0x7260716,0x2679248f,0x247d0719,0x11950714,0x11770bbc,0x118a1177,0x7051195,0x7072627,0x24402627,0x22d90707,0x57622da,0x2642245b,0x13a52648,0x14cc0a12,0xba80ba9,0x12fe0bc2,0x27911305,0x9871305,0x27912791,0x12fe143f,0x12ac277f,0x143f12b0,0x12b0277f,0x12b312b0,0x12b3143f,0x12fe12af,0x247a2475,0x247a265f,0x265f2661,0x70a070d,0x70d0709,0x24700709,0x2470070d,0x24982475,0x2491267a,0x26f526fc,0x200626f4,0x1fe32068,0x18b12569,0x18b11204,0x12040e2b,0x2a620d5d,0x640064,0xd5d0d5b,0x20410d5b,0x20420d5d,0x630062,0x820081d,0x17f41784,0x1f45081f,0x826081f,0x1f450827,0x827081f,0x22e922e8,0x23da0586,0x23d90664,0x63923d9,0x116523da,0xb9f2993,0x115b0b9f,0xba30ba3,0xb9f1166,0x1a43197d,0x79c0471,0x79b0795,0x15411514,0x151b1e4d,0xc2b1e3a,0xc161546,0x152a0c19,0xc051e2a,0x1e6e0c37,0x11150c45,0x15731e75,0xc501e75,0x1171572,0x11f511f4,0x119611f5,0x249a2505,0x2667072f,0x714072f,0x1a592667,0x48b048a,0x1a5a048b,0x1a5a1a59,0x48c21dd,0x17dd07ff,0x14970808,0xb14291a,0x15130c14,0x11091543,0x1e5a1566,0x155f155d,0x1111155c,0x1e5b0c37,0xc151103,0xc151562,0x15620c31,0x1e5c0c31,0x11171e5b,0xc2c1e4f,0x1e501e4f,0x15771100,0x11030c15,0xc341569,0x267c1e5a,0x2620266c,0x2622266c,0x26202620,0x267c261e,0x242c261e,0x261b267c,0x267c2606,0x25890302,0x11271cf2,0x15bc192b,0x15b915bc,0x69f1127,0x6a72419,0x147427c7,0x14741475,0xaea1469,0x1f650834,0x1cd31817,0xeda1cd4,0xed91cd4,0xeda0eda,0x1cd31ccc,0x29b029b2,0x24490bb1,0x244b06de,0x1fe60d00,0xd011fe7,0xb29fd,0x80009,0xcf51fdf,0x31fde,0x1fe829fb,0x40cff,0xcf60cf7,0xcf50cf6,0xcf50cf4,0xcf40001,0xd452026,0x175d2a4d,0x16d21d48,0x2a4c0d46,0xd462a4e,0xd6a0040,0x2a500d6a,0xd660042,0xd652049,0x11450e8c,0xe8c114c,0x1144114c,0xe8c0e8a,0x11421144,0x15d41143,0xe8a1148,0x11441144,0x113f1142,0x15d41142,0x113f0e86,0xe861142,0xcab0c9e,0xcab0caa,0xcaa1148,0x11441148,0xe84113f,0xe810e85,0xe840e86,0xe8415ce,0x15ce0e81,0xca115ce,0xca10e86,0xe860e87,0x113f0e87,0x113f0e86,0x11480caa,0xca30caa,0xca3113d,0x15cb1141,0xca81141,0xca815cb,0x15cb1149,0x15cc15cb,0xca30ca3,0x113d15cc,0xc9e0c9c,0x40caa,0x201f0cf8,0x20560073,0x20562055,0x20552051,0x2a782055,0x2a780073,0x740075,0x700075,0xd470074,0x720043,0x730074,0x702a78,0x710d47,0x720d47,0x710d76,0xd760d47,0x3140fa8,0x17ad25a0,0x17ab07ca,0x2a432071,0x380038,0x20710058,0x10e910e1,0xa016a5,0x208c0da6,0xda6208c,0xd9d2a90,0xdb100aa,0xaa0db1,0xaa208f,0x2a9c00a9,0xaa208f,0xd812a9c,0x20800d9c,0x1eec179c,0xae179f,0xad0db5,0xac0db5,0xad00ad,0xb024f4,0x182c24f4,0xdb80dbc,0xae24f0,0xdb900b0,0xdb900ae,0xae0db8,0x182a182d,0x182a0dbc,0xdbc00b0,0xdbe0dbc,0x24f6182d,0x182f24f7,0x24f6182e,0x24f60dbd,0xdbd182f,0xdbc182f,0xdbc0dbd,0x24f400b0,0xb000ad,0x1ee700ae,0x1ee81789,0x7a71789,0x7a71ee8,0x7a8178a,0x8411f77,0xd581f7a,0x232a16,0x7331fb5,0x253e24b8,0x11cb2543,0xf32543,0xf100f1,0x1885253c,0xf12543,0x1b9011cb,0xf8d0f7f,0x1a50f7f,0x12bc0f8d,0x12c12754,0x9160913,0x94d094d,0x913094c,0x948094c,0x271a0910,0x9360948,0x9350936,0x1283271d,0x9220936,0x922271d,0x9480936,0x91d271a,0x12830936,0x910271a,0x94c0913,0x9102717,0x9480948,0x271c091d,0x27172716,0x12850948,0x9482716,0x14092884,0x21de0a64,0x21d621dd,0x1a5a21dd,0x178421d6,0x17850820,0x1f450820,0x1f451807,0x18071802,0x8b21099,0x99208b1,0x27a1130a,0x130c130a,0x160c27a1,0x10281610,0x101d1610,0x101d1605,0x16080859,0x10281605,0x8e11610,0x8e31691,0x226a0527,0x226a2253,0x5081ae7,0x10241021,0xc401607,0xc321e6b,0x110e0c32,0x147c111b,0x28bb28fb,0x257a1215,0x844012f,0x1f751ef8,0x148f2910,0x16fd291c,0x22eb1d4f,0x186a00d4,0x26f311a2,0x39a039d,0x1d5516ef,0xfa22ec,0x18500e00,0x250d1850,0x250d2546,0x25462545,0x18a12545,0x10e52546,0x8eb08e8,0x10e608eb,0x10e610e5,0x8ee08ed,0x9740ad1,0x12df12df,0xacc2765,0xacc12df,0xacc0ad1,0xad10972,0x12bf095e,0x12bf0994,0x994276a,0x12b92796,0x993095e,0x95e2796,0x9720ad1,0x972276a,0x276a0994,0x9950997,0x27aa27a9,0x27a90997,0x279e0994,0x27aa095e,0x130b27a9,0x99327a9,0x279e130b,0x95e130b,0x166210a7,0x25791663,0x12d2576,0x25772576,0x1355012d,0x135d27ef,0x878103b,0x8781622,0x10421626,0x8771042,0x8060878,0x1f2c1f21,0x26572658,0x26570702,0x24670700,0x55b1767,0x11b81777,0xdf22523,0x18772523,0x18770df2,0xe72535,0xdf32535,0xe700e7,0x11c60df3,0x253011c6,0x253000e7,0xe700e6,0x11b80deb,0x1c330df2,0x2580253,0x2570258,0x3451c33,0x3440e3e,0x27772896,0x277714ae,0x14ae12f3,0x28931400,0x289314b7,0x14b72896,0x97614b7,0x14b61400,0x289614b7,0x14ae2896,0x289614af,0x292d14af,0x289614b6,0x2779292d,0x293014b5,0x14b62930,0x14b612f2,0x2774292d,0x277414b6,0x277c12f2,0x29302779,0x228e1b03,0x31d211d,0x25a00315,0xf080ce9,0xf080f07,0xf070cea,0x21721a03,0x123e2170,0x1242078f,0x78c078f,0x6be1242,0x26162426,0x6c12616,0x6c106be,0x6be2614,0x26122425,0x211906be,0x1b0a03ce,0x54619ae,0x210e228d,0x1afe1b04,0x2361174a,0x2361174b,0x174b2362,0xad10ad0,0x22a728de,0x17721775,0x28c4142c,0x28c2142d,0x14280b02,0x142828c2,0x1428142d,0x142c1429,0x142d142c,0x14191428,0x14361438,0x290d1432,0x142c1419,0x14361429,0x14321429,0x1c831436,0x1c8b20ca,0x173e234f,0x1e1405e8,0x6260625,0x6261e14,0x6261f9d,0x1f9d190a,0x1f9c1e15,0x1e15190b,0x190c190b,0x1e151e13,0x1f9d190c,0x1e13190a,0x270f0619,0x1ac31df7,0x1ac6224b,0x224b1ac6,0x5020502,0x1ac71ac8,0x1ac60503,0x1ac40502,0x1ac204fd,0x224604ff,0x1ac41ac2,0x1ac504fe,0x1ac5224c,0x22f01ac7,0x5961d5e,0x194d194e,0x1932196b,0x65123a9,0x6d306d2,0x6d3243e,0x243e2440,0x29a90bbe,0x20a529aa,0x20b420a7,0x24332431,0x12d42413,0x12a412a6,0x24302420,0x2430241d,0x241d242f,0x6c8242f,0x1c45241d,0x26b70271,0x1c4426b7,0x1c441c45,0x1c451c3d,0x1dae1dab,0x1dae233b,0x233b05d1,0x2432260d,0x26232623,0x24202430,0x6a306c5,0x12c006af,0x1291095f,0x12ba095f,0x12ba1291,0x92d0957,0x9530957,0x92d2723,0x27230957,0x12ae0953,0x12912723,0x92d12ba,0x9600931,0x243512c0,0x6cd2437,0x717071a,0x265d266e,0x261b262f,0x6ef06ed,0x24742452,0x70f265e,0x245f2445,0x24152459,0x241925ff,0x1fbc0734,0x1afd1fd5,0x19c8228c,0x6df06dc,0x6df0672,0x6720673,0x23ee06dc,0x67225c6,0x6dc23ee,0x25c725c6,0x39b0675,0x395039c,0x128a0926,0xe650928,0x3500e46,0xe620367,0x1edb0361,0x1edf1787,0x178e1787,0x1da61edf,0x1d831714,0x24ee0763,0x27f51f98,0x27ef135d,0x295718c4,0x768297d,0x24ce0752,0x24e01f7c,0x1b3c0765,0x1b330f40,0x1ee0f40,0xc11b33,0xc21849,0xc10dcf,0x183700c3,0x183424f9,0xbe2501,0x250d00bf,0x119b119c,0x250b119c,0x250b119b,0x119b250c,0xc91198,0x250900ca,0x184f1199,0x250d119c,0xdd41850,0x2508184e,0x25091199,0x2509250a,0x250a119a,0xca119a,0xc000c9,0x18492091,0x11a52515,0xd6185c,0x11a50ddc,0x11ac2519,0x11a60de1,0x251811aa,0x11a82517,0x185f00d7,0xd92517,0x185f1861,0x1863251a,0x1861251c,0xde22521,0x11ac1868,0xd82519,0x1d14032d,0xfd41d09,0x1f801f7,0x1f901f8,0x1f90fd4,0xfd301fd,0x10211d7,0x1090e09,0x254f0e0f,0xe070e0f,0xe070e10,0xe100e09,0x11d911d7,0x11df254c,0xe0b254f,0xe0511d7,0xe050102,0x1020e06,0x11d911d8,0xe1811d7,0xe142551,0x1072551,0xe140e0b,0xe0b2551,0x2554010a,0xe130e18,0x11e0010b,0xe1711e1,0x25542554,0xe132552,0xe150e13,0x91211e1,0x935271d,0xe0a1896,0xe0a2555,0x255511e3,0xfe11e3,0x188f188b,0xe0a188c,0x11d31889,0xfd00fd,0xfe00ff,0x188a00fe,0xfc00fc,0xfe1889,0x255611e2,0x1751895,0x1770174,0x1b4b0174,0x1b4b0177,0x1b4c017a,0x179017a,0x1b4c0178,0x178017a,0x1760179,0x1760173,0xf541b55,0x1b541b55,0x1b541b53,0x1b52017f,0x1b4e017f,0x1b4e017e,0x1b49017c,0x1b4e017e,0x17c1b49,0x1b4a017b,0x1b4d017b,0x1b4a0172,0x172017b,0x1b491b4a,0x1b4c017c,0x1b4b0177,0x17e017f,0x1731b52,0x1790178,0x1730f54,0x1b540176,0x1b531b52,0x255a11e7,0x7c911f9,0x7cc17b3,0x17af07cc,0x9207c9,0xd912a8a,0xd3d2a8a,0xd3d0d91,0xd910091,0x6c72444,0x6c72631,0x263106c8,0x169310d5,0x169310e0,0x169510d8,0x84f1602,0x120d15fc,0x18a918bd,0x256218bd,0x25622561,0x25612560,0x18a92561,0x18a918bd,0x120d0131,0x28e5098b,0xd92145d,0x8c2a4a,0x3b2a4a,0x3b008c,0x8c0d95,0x133727d2,0xd971343,0xd910092,0x562019,0x1aaa2a5a,0x19f004d9,0x15be1132,0x1b971142,0x1df01ba,0xe8b15d7,0x1140114a,0xe890ca2,0xca60ca2,0xca60e89,0xca515d3,0x15d20ca5,0x114b0e89,0x1931114a,0x5cc1d9b,0x5cc05af,0x5af05ce,0x1937063a,0x193723cf,0x23cf23b3,0xe891140,0x15c515b9,0xe7c15c3,0xcd315c3,0x15e30e7c,0x15ca1915,0x19250cb3,0xcb31924,0x19260e8d,0xccc15b9,0x1912191a,0xcca0ea2,0xdb90db7,0x18320dc0,0xaf1833,0x18341833,0xdb700af,0x18320dc0,0x25d80688,0x25d823f9,0x23f923f6,0x113115f1,0x191d191d,0x15f10e98,0x1efa17ae,0x1efa07cb,0x7cb07ce,0x1c540279,0x2d226bf,0x1cc70ed4,0xed102d3,0x1cff1cc3,0x317031b,0x25a20317,0xef31cff,0xeb502f1,0x1cda0ee2,0x3201cdd,0x31b25a6,0x1ccb1cd5,0x20c10ed9,0x2a51c83,0x108908a0,0x164c164e,0x8a008a1,0x89f08a1,0x1b2908a0,0x1b2a015a,0x14a015a,0x15d0144,0x15b1b2c,0x15a1b28,0x15a1b2d,0x1b2d1b29,0x1b2c015b,0x1b2b1b2b,0x15c1b28,0x1b2d1b28,0x15c015c,0x15b0f30,0x182037,0x5e41ff6,0x17451d62,0x1630f44,0xf501b3a,0x1b451b43,0x20be1c7a,0x1b4320b7,0x1b411b44,0x16a1b41,0x16a1b43,0x1b430f48,0xf4e1b42,0xf48016b,0x16e1b42,0x1b431b45,0x16e016e,0xf481b43,0x16b1b42,0x16b016c,0x16c1b46,0x16b1b46,0x20010f4c,0x20001fff,0xcc184d,0x184c2508,0x18511198,0x2508184d,0x1ff2184c,0x2a122a10,0x1ff61ff3,0x2a141ff5,0xd0f2a13,0x2a152a14,0xd160d10,0xd140d15,0x2a0b2a0c,0x1ff52a10,0x181ff6,0x2a0d2a0c,0x20070016,0x20082a28,0x2a272007,0x20090d24,0x20080d22,0xd240027,0x1abe0028,0x1acf1ace,0x2a0e0d0d,0xd0d0016,0x2a111ff3,0x1d2a1c,0xd150d10,0x2a1c001d,0x15dd0cba,0x15dd0e7c,0xe7c0cd3,0x16e1b3a,0x25b5016c,0x3371d15,0x8471049,0x1d0a1011,0x33125b1,0x258e02f4,0x258e258d,0x258d1cef,0x258c1cef,0x8c31ced,0x10b108c5,0x10b808c5,0x10b110b7,0x10b708c5,0x10b310b1,0x1ccd08c3,0x2e41cd2,0x208b2a91,0x208b0daf,0xdaf2a99,0xdb02a99,0xdaf00a4,0x2a912082,0xda42082,0x1d042a91,0x25a725a8,0x4770481,0x272821d3,0x27291292,0x168708d6,0x67610d0,0x23f525c7,0x1b640191,0x1b641b65,0xf630f64,0x1b641b65,0xf640f63,0xf630f65,0x1b591b5a,0x1b590193,0x1930191,0x1b650191,0x1b5c0193,0x1b661b5a,0x1880194,0x1881b67,0x1b671b5c,0x1921b66,0x1921b5c,0x1b5c1b67,0x19661969,0x19431943,0x19691947,0x6471947,0x266b065d,0x24830719,0x24850719,0x26472487,0x26432645,0x2643263f,0x26372645,0x6e62638,0x246e0708,0x24750706,0x265a2470,0x22f72353,0x1e3c0597,0x1560150d,0x1537150d,0x1e3c0c0e,0x150f1560,0x15061537,0xc0e0c0e,0x150d1560,0x1e3c153e,0x1541150f,0x150f1540,0x26372638,0x24512635,0x6e3244b,0x24572456,0x26432643,0x24560704,0x10ce08d7,0x10ce1686,0x1686087b,0x5f9174b,0x5f91755,0x1755236c,0x23651755,0x21bf174b,0x46c0469,0x21c20469,0x46b1a3f,0x1a3f0469,0x21c11a3f,0x21a3046b,0x46c21bf,0x26720720,0x26722488,0x24872671,0x25f1068a,0x269625ec,0x2501c2d,0x1b760f76,0x1b760f64,0xf641b6b,0xf671b6b,0x19f019f,0x1b6b1b79,0xf651b79,0x25e0f64,0x1c4626b9,0x26a81c38,0x1c34025b,0x26ad1c39,0xa350a34,0x26713d0,0x26b126af,0x25f1c44,0x2611c36,0x1c420266,0x1c4b26bc,0x9a26b2,0x207b0098,0x2a8e207b,0x2a8e207f,0x207f0da1,0x940da1,0x94009b,0x9b207a,0x2a97207a,0x2a970da2,0xa12088,0xa12a97,0xda2208b,0x2a912a97,0xda1207f,0x2a92009b,0x2a90009a,0x207b009a,0x2a900da4,0xda4009a,0xdaa009f,0x2a902a92,0x2a920da6,0x9f0da6,0xda42a92,0x2a902082,0xda4207f,0xa1207b,0x208b0d9f,0x208b2a97,0xd9e2a91,0x207c2a8d,0xd9e0d9f,0xd9e2078,0x97207c,0xda30097,0xda32078,0x9c2083,0x970d9e,0xda22078,0x207a009b,0x9c0da3,0x20832078,0xd9b0da7,0x2083009c,0xda70d9b,0xd9b2084,0xd9f208b,0x9c2078,0x20812080,0x9c2078,0x20802081,0x20810d9c,0x20752076,0xd9c0da5,0x992076,0xda52076,0x990099,0xdad00a3,0x990d9c,0xa3207e,0xdad00a2,0xdab2089,0xdab0099,0x9900a0,0x20890dad,0x207e0099,0x930099,0x2081207e,0xa50d9c,0xd9d208a,0x207e0d9d,0xa00093,0x990093,0x2610266,0x1c3b1c3b,0x1c431c3c,0x1c3a0257,0x25b1c37,0x260025c,0x1c9220d5,0x245f1c90,0x264a2445,0x6f62445,0x1ec5264b,0x12451249,0x1ec71245,0xf8e1ec5,0x1b11b93,0x1b841b83,0xf8c0f83,0xf820f81,0xfd701fe,0x1b8301f6,0x1a61b7d,0x1b8a1b8d,0xf811b86,0x1b8a0f8c,0x1b8601aa,0x1b8801a9,0x1b851b87,0x1b8f01ab,0x1b870f89,0x1ab1b88,0xf8d1b90,0x1b910f8a,0x1b801b81,0xf8d1b90,0x1b8b0f8a,0x1a80f85,0x1820175,0x1b8e0f55,0x1a71b7f,0x1a80f87,0x1ac1b82,0x1b7f1b7e,0x1a70f8b,0x1b810f84,0x1b820f86,0x1b8f0f89,0x1950f8a,0x1b7c1b6b,0x20a001b1,0x256d1b86,0x1260e2b,0x179d1ed6,0x1b85179e,0xf8001a5,0x1b70f9e,0x1c40f95,0x1c21ba0,0x1c201c4,0xf9e01c3,0x1b9f0f95,0x1c40f95,0x1361b9f,0xf9d01b6,0x1c301c4,0xfa01b9f,0x1c50136,0xf9d0136,0xf9d01c5,0xf9f0f9e,0x1b9f0f9e,0x1c50f9f,0xfa01ba1,0x1ea0fbb,0x1bb601e9,0x1bb40fb0,0x1bb50fb0,0x14511bb4,0x28e21455,0xad41455,0x1be628e2,0x1bdf0202,0x1bed0fde,0x1bed0209,0x2091bec,0x1beb1bec,0x20c0209,0x1bed0fe3,0xa2313bf,0x21d0a24,0xfe60217,0x15661109,0x1a51e5a,0xf761b76,0x1f701f8,0x122f0fd5,0x7861eb5,0x1cc502df,0x1cc51cbf,0xecd02d7,0x1cc51cbf,0x1cbf0ecd,0x2df0ed0,0x193f23bf,0x5a523d3,0x230b1703,0x1f981f89,0x193e1f97,0x23d01963,0xfaf1bbe,0x1b2a1bb5,0x1b2d023d,0x107c1647,0x107c1645,0x16450891,0x163a1645,0x20bf1647,0x2971c72,0xf2a0158,0xf33014f,0xfbf015f,0xfe9015f,0x1e230fbf,0x23931dfc,0x11f8011c,0xf6a189d,0x1baa0198,0x1b1c0148,0xbd30f6f,0x118829b7,0x1ff10d2c,0xc64007f,0x12691596,0x29b629b7,0xbd31191,0x29b61189,0x119029be,0x11900bda,0x1191118f,0x11900bda,0x118f1191,0x1191118e,0x11940bda,0xbc90bde,0x11810bc8,0x94f0a63,0x12991299,0xa6413f2,0x139013d,0x139013b,0x1b131b11,0xf161b11,0x1b131b13,0x13b0f17,0x13f1b16,0x1b13013d,0x139013b,0x11811182,0x11811194,0x11940bde,0x29bc1194,0x60b1192,0x1d4c1d46,0x29b20bce,0xbcc1185,0xbcf0bce,0x29a30bb5,0x29a31175,0xbb81178,0x29a31175,0x11780bb8,0xbb81179,0xbbd117c,0xbbd1176,0x11760bb5,0xbdc0bdb,0xbdc29bd,0x119329bf,0xbdc29bd,0x29bf1193,0xbdd29b0,0x29b229b0,0xbdd0bcc,0xbcc29b0,0xbce29b2,0x11930bcc,0x118c0bd2,0x2a302a33,0x200e0028,0xd061ff1,0x282a33,0x2a05200e,0xd062a33,0x200e2a33,0x2a050d06,0x1ff00d06,0xf1ffb,0x1ff00d11,0x20041ffb,0xd111ffb,0x2a052004,0x20041ff0,0x20040d19,0x20040019,0x190d11,0x200d16,0x200021,0x210d19,0xd190021,0x1ff70019,0x1ff92a12,0x211ff9,0xd110019,0x1ffc2a17,0xd110019,0x191ffc,0x1ff91ff7,0x1ffc1ffe,0x1ff82a17,0xd2e2001,0x1ffe2001,0xd2e2a17,0x2a172001,0x1a2a1d,0x1a001b,0xd2e1ff8,0x1a001b,0x2a040d2e,0x2a2a2a37,0xd212a37,0xd212a2a,0x2a202a1d,0x2a1d2a20,0xbd4001b,0xbcf118b,0xbc629b5,0xf281180,0x1571b28,0x1b2b1b28,0x26770157,0x248a248b,0x2676248a,0x3d12677,0x228b2290,0x1633106b,0x7c7087f,0x7c417a5,0x2553010a,0xe140e14,0x10a189f,0x7831eae,0x10430784,0x10441626,0x16211045,0x1ee31043,0x1ee007b3,0x7b207b3,0x1ee01ee0,0x1791178d,0x11ca0df6,0x11ca253b,0x253b11cc,0x187e11cc,0x11cb11cb,0xdf800f4,0xdf811cb,0x2589253b,0x258f1cf0,0x946273f,0x9470947,0x91c091a,0x91c0947,0x91c273f,0x273f091f,0x273f092b,0x915090f,0x92b0918,0x9150914,0x273f092b,0x2714091f,0x2714273f,0x127e127b,0x92b0914,0x127e2715,0x273f092b,0x90f127b,0x10e41697,0xe1a10e2,0x11e511e9,0x11e811e9,0x20a51892,0x2901c6a,0x12a22899,0xa780a78,0x28980a79,0x20f0251,0x99d2696,0x27b409a5,0x132527bf,0x9aa27c0,0x27bf09ab,0x132209a9,0x133f09c3,0x9b51330,0xd9a206c,0xd9a0086,0x862a81,0x20630086,0xd980d8b,0xd8d2074,0x892074,0x206c0d8d,0xd8b0086,0x206c0089,0x206c008a,0x8a0d8b,0xd8e008a,0x28120d8d,0x281f2813,0x265a2472,0x9f806d1,0x13a7282e,0x19d203fa,0x3fa03fc,0x19e503fc,0x3fe19e2,0x3fe19e4,0x19ed2165,0x3fe19ec,0x3fd19ed,0x40419e3,0x19e219e3,0x21632160,0x3fd19eb,0x21620404,0x21602163,0x19e30404,0x21630404,0x216503fd,0x3f903fa,0x19e503fa,0x19e503f9,0x3f803fb,0x19e503f9,0x19e119e0,0x19e22160,0x40003ff,0x3f803f8,0x19e519e0,0x3ff03fb,0x19e403f8,0x19e219e1,0x19ea0401,0x19e719e4,0x19e40401,0x19e419e7,0x216603fe,0x19ec0408,0x19e719ec,0x216503fe,0x40703f9,0x216619ed,0xa0919ec,0x283d13a2,0x28211397,0x28211398,0x13982822,0x2836139b,0xa010a04,0x28322833,0x28302832,0x13951395,0x13840a00,0x28341384,0xa010a01,0x13842832,0x1aad1aac,0x1aad2255,0x22550509,0x4dc0508,0x4dc2253,0x22532231,0x22551aac,0x9a72231,0x9fb1394,0xa0c2839,0x24a13a0,0x269a1c30,0x13be0a2b,0x13bf0a24,0x28560a25,0xa260a28,0x282d0a29,0x28470a18,0xa280a26,0xa2a2856,0x13c113c0,0xa2913c4,0xa380a2d,0x285c285b,0x285b285a,0x28630a38,0xa2f13cb,0x285913cd,0x13c713c7,0x13ca13c8,0x13cd2859,0x13cd13c6,0x13c60a3a,0x28640a3a,0xa3b13c6,0x28572860,0xa2d2858,0xa352864,0x13ce13c5,0x13d00a3f,0xa2c13ce,0x13ce0a36,0x13c813ca,0x28620a2e,0xa2f0a2e,0xa2c0a36,0x13b92857,0xa430a22,0x284c13d3,0x284f0a21,0x13d8284a,0xa250a26,0x28792859,0x2715127e,0xa520a51,0x187f287d,0x253900ea,0x25382539,0x25380df6,0xdf611ca,0x1c361c37,0x140926aa,0xa6328a5,0x28c128c3,0x28c128eb,0x28eb1426,0x28c01426,0x6cc28eb,0x24642433,0x24312433,0x26b72628,0x25d025a,0x26ad26a7,0xac226b0,0xac31443,0xac41443,0xac30ac5,0xac51443,0x234b2350,0x234b1dbe,0x1dbe1db6,0x14331444,0x28d028d0,0x14440ac9,0xac70ac9,0xace1444,0x28c628cb,0xad328c6,0xad30ace,0xace276f,0xbdf118c,0x256a29c0,0xe2e0e2f,0xe2d0e2f,0x25672567,0xe2f0e2e,0xae928ec,0xadc0aee,0x146528e9,0x23091730,0x28e61700,0x28e91465,0xaf1132b,0x26bd1472,0x1c4226be,0x2520214,0xa0b26a2,0x1377280c,0x1c4f26c6,0x18cf026f,0x2950295d,0xb4914d4,0x18f013a2,0x19032981,0xb8d0b8e,0xb4b18c8,0x29820b8c,0x25d8068a,0x25d80689,0x68923fb,0xb941163,0x29871150,0x116a1155,0xbe10be0,0xbe10bf1,0x105e29c5,0xbcc0b97,0x1a790bd9,0x21f304b2,0x1a7221f3,0x1a721a79,0x1a7921f4,0xbf929f4,0xbce20eb,0x29a41186,0x1f960762,0x29d424ee,0x29cf29d3,0x105429d3,0xbe929cf,0x10580be8,0x29f329e4,0x29f320e9,0x20e920fd,0xbfe29e5,0xbfe29e7,0x29e70bfd,0xc0429f2,0xc0420e7,0x20e720e6,0xbf41061,0x1ddb104d,0x60605f8,0xe7f0e7e,0xe7f114a,0x114a1931,0x26626bd,0x1c811c43,0x20ce02a3,0xfa01ba0,0x1be51ba1,0x1fe0fd9,0x23781df9,0x1de61e26,0x237a0613,0x1e25237c,0x1e031e03,0x6151dee,0x1dfb0615,0x20b11e03,0x1c7820b2,0x2a932a94,0x950da7,0x207a2077,0xdac2087,0x20882088,0x20872a97,0x2a8e0da1,0x26640096,0x247f0717,0xfcd0204,0x1ba61bd2,0x1c41ba0,0xf390243,0x20a0f4e,0xfdd0209,0x223604d4,0x28b11ab9,0x27750a8f,0x2b90eb1,0x8ae0eed,0x16571099,0x1076088c,0x10760884,0x106f1634,0x106d106f,0x10761070,0x884106f,0x29ce29cd,0xbee29d7,0xbe7105a,0x29d729cd,0x29d20bee,0xbeb0bec,0x29d00beb,0x29cf29cf,0x10521054,0x10531052,0x10511051,0x104e1050,0x104c104e,0xb440b44,0x29cb29cc,0xbe329cb,0xbe3104b,0x104b0be1,0x29c80be1,0x104b104b,0x29ce0be4,0x29cd29ce,0xbe70be7,0xbe8104f,0xbe90be8,0xbe90be7,0xbe729d1,0x29d229d1,0xbeb0beb,0x29d129cf,0x105229cf,0x105229d1,0x104e1051,0xb44104e,0x104b29cb,0xbe729ce,0x104e1052,0x29cb29cb,0x1052104b,0xbe7104b,0x2f81052,0x2f402fb,0x2fc02fb,0x2fc02f4,0x2fd2586,0x2f402fd,0x2f402fc,0x2f802f2,0x1ce202f2,0x2a5f02f3,0xd7f205d,0x2a7e0d7f,0x2a7e205c,0x205c2a7b,0xd7d2a7b,0x205c205c,0xd7f007f,0x85007f,0xd800d80,0x2a5f0081,0xd840081,0xd802a5f,0xd7f2a5f,0xd80007f,0x204e0d7f,0x2a7d2a5f,0x2a5f0082,0xd810d84,0x2051205e,0xd812a7c,0x2a7c2051,0xd822051,0x204e2051,0x820d82,0x2a7f0d83,0xd822a7d,0x82204e,0x2a7d2a7f,0x8e7168e,0x180e10de,0x1f5c1f60,0xb9c298c,0x1eff0b9b,0x7e11f07,0x1efc07e1,0x1efc1eff,0x1eff1efd,0xc341120,0x1e601569,0xc4f1e62,0x8a708b4,0x8a71698,0x169810ec,0x10e41698,0x10e308b4,0x10a008ea,0x8e708ea,0x8e7109f,0x109f168e,0x8dd168e,0x109f08dc,0x8dc168e,0x8b408b6,0x8ea10e4,0x10a0109f,0x8b610a0,0xe7a10e3,0xc8f112d,0x16351637,0x881088b,0x8941641,0x88b1637,0x16400881,0x8801641,0x87f0880,0x87f1640,0x1640087e,0x10fa087e,0x11380893,0xe8a0e8c,0x78a078b,0x78d078d,0x123d1ebe,0xe880e87,0x11650c8a,0x298f1154,0xbad299f,0x29890baa,0x29bc29bb,0x18f118f2,0x118e0b89,0x29ac118f,0x117929b7,0x222929ab,0x21600404,0xd59005e,0x5f005f,0x203d0d6d,0x2a6e0d6d,0xd53203d,0x205b0d54,0x5f005e,0xd53203d,0x203e205b,0x203c0d57,0xd580d58,0x2a6e203d,0x2a6e0d58,0x2a6e0d57,0x2a630d53,0xd572a63,0x202a2a6e,0x2a630045,0x202a202c,0x203e2a63,0x2031005d,0x5c005d,0x2a630d56,0x202c0d53,0x203e0d53,0x202d0d4a,0xd4a0d53,0x202c202d,0xd560d53,0x5d2031,0x2ce1cb9,0x2ce0fa1,0x1cb502cc,0x16b516b4,0xe3d0907,0x257a2576,0x25792576,0x257a257a,0xe3d1215,0x7d007cc,0x2a6307cf,0xd5e0045,0x20592a69,0x482044,0x20452a68,0x2a692a68,0x20612045,0x862063,0x203a203b,0x2a85204b,0xd90008d,0x2023008d,0x20230d90,0xd902025,0xa82082,0x20492a9b,0x20460d79,0x20800084,0x78009c,0xd770d78,0x2910294,0x29420a3,0x1af20ad,0x29a0298,0xab720b6,0x28ca0aa6,0x28c80aa6,0x28b428ca,0xaac1433,0xab70aac,0x142728ca,0x141a28cd,0x28ca0aac,0x141a1427,0x142728b4,0xd9d00aa,0x827208a,0x17f407a0,0x81d07a0,0x17f40825,0x82507a0,0x823081d,0x8250824,0x17f41f43,0x824081d,0x81f0825,0x82717fb,0x29c1c79,0x29b1c73,0x1c730297,0xaf01333,0x1c87146f,0x20c21c80,0x1c8102a8,0x12d602a3,0x12d112cf,0x275a12cf,0x12d112d1,0x12d60970,0x12dc0970,0x20c012d7,0x20cc1c7f,0x131e27b6,0x27b627b8,0x9a627b8,0x131d27b5,0x131d131f,0x131f131c,0x27b6131c,0x27b609a7,0x27b709a6,0x9eb27b7,0x27b6281b,0x9a727b7,0x9a7131c,0x550131f,0x22ab22ad,0xec81cba,0x103f02c8,0x1621103e,0x103f103e,0x2547101a,0x25492548,0xe222548,0xe2211ea,0x189c189b,0x189a189b,0x189c11e4,0x11e4189b,0x10d11ea,0x189c2558,0xe2211ea,0x11ea2548,0x1342558,0x254700c6,0xdd02504,0x25490134,0x1342504,0x254811d2,0x25492558,0x25470134,0x26bb0264,0x3fe026d,0x214a19e2,0xe21872,0x25292529,0x252c11c3,0x252a252c,0xddd1872,0x186911a6,0xf4c0f4f,0x1710f51,0xf4f0167,0x1660167,0x16490f4f,0x10831648,0x8971648,0x23f51083,0x6740672,0xde0251d,0xde0251e,0x251f11ae,0x185b00db,0x185b1860,0x18602512,0x11ad2513,0x11ae1866,0xdb185b,0x189211e5,0x189211e4,0x10d0e0d,0x25580e0d,0x2238010d,0x215b1aa7,0x1aa91aa7,0x215b215b,0x22381ab3,0x19851ab3,0x26b22238,0x26e1c4b,0x134127dc,0x134127ce,0x27ce27cf,0x25a2259e,0x12980317,0x9231296,0x1461b1c,0x1460184,0xf56014c,0x1460184,0x14c1b59,0x1b570f1c,0x1b590f56,0x16460146,0x8971647,0x16480897,0x16481646,0x164a089b,0x1ce502f5,0x323033c,0x1d121d10,0x1d090329,0x1e9d1d14,0x12241e9c,0x252411ba,0x14162525,0x277a1417,0x81217e8,0x812080f,0x80f17e9,0x81117e9,0x80f0810,0x17e8080e,0x1f25080e,0xd9f17e8,0x1fdd0d05,0x1ee71ee8,0x7a71789,0x1ee8178a,0x26d626d7,0x90e26d5,0x90716b8,0x72e2438,0x2437247e,0x6cf2435,0x247e2438,0x247e06cf,0x6cf2437,0x7921ecd,0x7921eca,0x1eca1223,0x1ea61223,0x1ea51ea5,0x1eca1ec2,0x27ab0998,0x27ab2767,0x276912e1,0x12e62769,0x27ab12e5,0x27672769,0x9ac1345,0x1cb709ae,0x1cb402cf,0xec902cf,0x9d02c7,0x1fe82a95,0x17f71f3f,0x17f517f5,0x1f3f17fc,0x17fe17fc,0x1f3f07a1,0x7a117fc,0x81e17fe,0x7eb07a1,0x17ca07ea,0x1ec21ec0,0xe7b121e,0xe8015c3,0x108d108e,0x164e164e,0x108a1089,0x89d108a,0x17f2108e,0x17e9081a,0x1f3a081a,0x8180818,0x81a17e9,0x27850984,0x18d92888,0x18e72977,0x26562645,0x1b590704,0x1b40f56,0x25c80675,0x25c825ca,0x25ca067b,0x264525ca,0x12e80675,0x9780977,0x9790977,0xb360978,0xb3712e9,0x97912e9,0x255c2931,0x1030e05,0x49e0538,0x21012101,0x53821ef,0x1a6a21ef,0x5380539,0x53921ef,0x4a01a6a,0x4a104a1,0x5392287,0x10d608df,0x8e008e0,0x8df10d1,0x160e0864,0x102b160d,0x1022160d,0x2633262f,0x263306d7,0x6d706e0,0x864160e,0x1b0e102c,0x22a122a2,0x16110865,0xe47085e,0xe3f0345,0x2731093e,0x5a3093c,0x16ff2307,0x1fd724c1,0x1fd70738,0x73824c7,0x74924c7,0x7490738,0x73824b2,0x24c124bc,0x74c074c,0x73a24c1,0x1fd0074c,0x1fdc24bc,0x24ca074d,0x1fdb074d,0x24ca24c8,0x24c8074d,0x24c1073a,0x1fdb0738,0x73a074c,0x1fce073a,0x1efb1fdb,0x17b307cc,0x93812d5,0x9390939,0x12d51297,0x12d91297,0x273112d5,0xa6b13f8,0x13f713f8,0xa6b288a,0x288a13f8,0xf131b10,0xf130136,0x1360135,0xf250135,0xf250136,0x1361b25,0xf121b25,0x1360136,0x1b100fa0,0x26ea2709,0x92f2701,0x2726128f,0xf860f87,0xf860f90,0x1b941b81,0xee11cce,0x2dd02dd,0x1cce1cca,0x1cc91cca,0x26551cce,0x24632651,0x24672466,0x26550700,0x24662463,0x26570700,0x15a22655,0xc5e15a4,0x3710373,0x25370348,0x188011b9,0x77a1221,0xe81e9d,0x18801882,0xec1882,0x8382536,0x18151814,0x204f00ab,0x6b00d5a,0x2605243d,0x243c243d,0x243c2416,0x2416243b,0x6d0243b,0x241606c3,0x6c3243b,0x262506d0,0x12e06c3,0x2579012d,0x257b0e3d,0x257b2576,0x25760e3b,0x18bb0e3b,0x1f142576,0x1f0e1f0f,0xa5313e7,0x37a0a58,0x26f226d2,0x38b26d2,0x38b26f2,0x26f226e6,0x26f026f2,0x26f0037a,0x37b26f1,0x26f0037a,0x26f1037b,0x26d40395,0x26f30395,0x26f326d4,0x26d50396,0x26f326d4,0x26d426d5,0x26f1037b,0x37c037d,0x37c0396,0x39626d5,0x26f40399,0x26f40398,0x39726f5,0x39726f4,0x26f50398,0x26f826f9,0x26f50397,0x37d26f8,0x3990396,0x26f726f6,0x26f70399,0x399037d,0x26f60398,0x26f90399,0x26ef26ee,0x26e526ee,0x26ef26e4,0x26e326ee,0x26e326e4,0x286726ee,0x286a0a3f,0xa1c13b4,0xa1c2871,0x287113d2,0x13d82871,0x2830284a,0x9f12832,0x136d09da,0x27f32815,0x27e01349,0xa24282b,0x28640a23,0x28690a3e,0x1f641f61,0x14e1810,0x1b1f0f20,0x270203a9,0x2702038f,0x38f26e7,0x38e26e9,0x38e2704,0x2704038d,0x3a7038d,0x27032704,0x38f03a9,0x270426e9,0x270303a8,0x26e8038f,0x3a826e9,0x142726e8,0xac228ca,0x98e28ca,0x98e0ac2,0xac21442,0x27322734,0x27322718,0x1281093a,0x93a0916,0x93a0913,0x27422730,0x273b2742,0x273b0910,0x271c2738,0x2738271a,0x27381283,0x9352729,0x271d0935,0x271d2738,0x27380922,0x12830922,0x27382738,0x91d271a,0x916093a,0x93a1281,0x9132742,0x93f129d,0x93f2718,0x27182734,0x12a00947,0x12a0127d,0x127d129d,0x129d127d,0x127d2718,0x9470917,0x27181281,0x27382732,0x271c091d,0x271c273b,0x9101285,0x27420913,0x1285273b,0x273b2716,0x27172716,0x28ee0b33,0xace28ef,0x144a0ad2,0x28dd0ad2,0x144a28de,0x28de0ad2,0x77524df,0xdfc1f87,0x18880dfd,0x16d90577,0x19cf16da,0x19cd2105,0x3b32105,0x3b319cd,0x3b403b5,0x214b03b4,0x21492149,0x214803ec,0x19c92148,0x3b319cd,0x19cd03b4,0x214903b4,0x193919cd,0x23b623b7,0x19cd19cf,0xfec19ce,0xfc40fc5,0x19b019b1,0x19b019b6,0x19b519ba,0x19691966,0x19691953,0x19531967,0x3c603db,0x211903ce,0x1992211e,0x2110211e,0x3db1992,0x19a503ce,0x211903ce,0x198519a5,0x210f03c0,0x3c203c0,0x1992210f,0x211919c5,0x213419c5,0x21342119,0x211919a5,0x21281991,0x2128210f,0x210f2129,0x19a503db,0x19a503c2,0x3c21991,0x3e61996,0x3e603e9,0x3e903ea,0x3e803ea,0xba303e9,0x115a115b,0x3e803e9,0x3e92145,0x21462145,0x214703c4,0x3eb03e9,0x3e903c4,0x214603e9,0x19c603e7,0x3e903eb,0x214e214c,0x19c4214d,0x197e213f,0x1995213f,0x214c212a,0x19c4214d,0x197d197e,0x197d19c4,0x19c4214c,0x3c1197c,0x3c11987,0x3ca212a,0x197e212a,0x1995213f,0x212a03ca,0x3ca03c1,0x197b1987,0x19781975,0x197c1975,0x19852106,0x3c62124,0x197b2124,0x3c603ce,0x198503c0,0x3c603ce,0x19c22124,0x210d03ce,0x197b03ce,0x197c210d,0x21061987,0x21061975,0x210d1978,0x19c22139,0x21432139,0x197b19c2,0x210d1978,0x19c22140,0x19c22118,0x19902143,0x19981990,0x19c21997,0x198f1990,0x19c22118,0x2111198f,0x3cc211e,0x19ad211e,0x3cc19ac,0x19ac211e,0x214019ad,0x3cc19b7,0x19b819ac,0x19971990,0x19ac198f,0x19b719ad,0x21182140,0x213c2141,0x19c719b8,0x213e214a,0x213e19c7,0x19c7213c,0x19cb210a,0x3e2212e,0x210a1977,0x212b199d,0x212b03d0,0x19a003e2,0x212503d0,0x19a0199d,0x212b03d0,0x210a03e2,0x19a0212e,0x212e03e2,0x214a03b9,0x214003ba,0x19c02141,0x3d32141,0x212f03d4,0x212e19a0,0x199c03d3,0x3d303d2,0x3d403d2,0x3d42141,0x3c319c0,0x198a2147,0x3c42147,0x1994198a,0x212e212f,0x2116198a,0x198a198d,0x3c5198d,0x212e1994,0x3cb03b9,0x3b91994,0x198a03c3,0x198a19ca,0x19ca03c5,0x3cb2114,0x198903b9,0x2114198b,0x19892115,0x3d42114,0x19c003c3,0x19ca03c3,0x19c319c0,0x214019c1,0x19b719c1,0x21402140,0x19c319c0,0x21142115,0x211403bc,0x3bc03b9,0x3bb03ba,0x3ba03bc,0x3b903bc,0x3ba19c7,0x3bd214a,0x197d19aa,0x17641765,0x176422a6,0x54b1763,0x22a6054b,0x1ad41764,0x5171ad6,0x1ad80517,0x1ad81ad5,0x511050f,0x1ad81ad5,0x198d0511,0x3d82116,0x19a32116,0x19a303d8,0x3d7212c,0x19a303d8,0x3d603d7,0x213203de,0x3d6212c,0x3d72132,0x2132212c,0x19c119b7,0x28de2132,0xacf0ad1,0x276a0ad1,0x276a0acf,0xacf0ab0,0xa5f293e,0x14670a5e,0x27b90ade,0x16081026,0x1568085a,0xc4e1567,0x154f1538,0xbe30c1d,0x29de29cb,0x21601aa3,0xc9a19e1,0xca9114c,0x140928a5,0x140928a1,0x28a12884,0xa7e28a1,0xa7e1408,0x14061404,0x28a51408,0x168c28a1,0x16911067,0x8e21067,0xe761691,0x15d11126,0x121b077c,0x1571121a,0x15661e5a,0xd032a00,0x1feb2a01,0x1fde0003,0x2a012a00,0x2a001feb,0xd1feb,0x1fde1feb,0x1fe3000d,0x1fe41fe5,0x1fe229f9,0x1fe31fe1,0x29f91fe4,0x2a001fee,0xd000d,0x29f81fe3,0x29f91fe3,0x29f929f8,0x29f81fe1,0x1fdd29f8,0x1fdd0cf2,0x1fef0d05,0xe0d05,0xe1fef,0x1fef2a03,0x1fef1fdd,0xcf20cf2,0x29f81fee,0x1f881f89,0x1f8824de,0x24de24dc,0x4462199,0xaa32198,0x1487290f,0xaa30aa1,0x14811487,0x14872906,0xaa12906,0x14811487,0x29001487,0x29042902,0x290028f6,0x28f62902,0x10451044,0x1a551043,0x1a501a56,0x1a201a21,0x21de0446,0x47e1a51,0x21d2047e,0x21d221de,0x1a5621d1,0x21d221de,0x21d11a56,0x1a56047d,0x1a50047d,0x1a561a56,0x48d048e,0x1a4e0485,0x1a4e1a57,0x1a5721cf,0x4781a5c,0x1a4b1a4b,0x48f1a53,0x1a511a52,0x1a510483,0x48321de,0x1a5721d8,0x47c047c,0x21d81a4d,0x47b1a4d,0x47b21d8,0x21d8047a,0x479047a,0x1a3621d8,0x44d044b,0x3670e6c,0x4200e5e,0x21660408,0x23c7063d,0x52a1950,0x52919f6,0x216c19f6,0x216c0529,0x529216b,0x5291aed,0x19f319f3,0x1aed19f2,0x19f30411,0x5290529,0x412216b,0x244a2631,0x7b106e3,0x7ae1795,0x1eef17a7,0x1eef1ef7,0x7c307bf,0x275812c9,0x108c12ca,0x108d164e,0x108e108d,0x108e108c,0x10901087,0x8a31090,0x2a58108c,0xd272a32,0x1a5903c5,0xc81048c,0x15af0c7c,0x21a221a3,0x174d1a3e,0x174f174e,0x4420448,0x21901a1e,0x1a2c043d,0x1a5f0490,0x21ee21a8,0x49d21e7,0x49621e7,0x496049d,0x1a670499,0x4a6049d,0x4a621ee,0x21e121e6,0x1a670496,0x21e6049d,0x21e10495,0x21e00495,0x21ed21e1,0x52f1a61,0x18931892,0x21ea0e11,0x49a1a64,0x1a6b1a64,0x49a049a,0x49b0497,0x4991a67,0x499049a,0x49a21ea,0x49c049b,0x21f0049a,0x4981a64,0x1a6321ec,0x1a650498,0x1a601a68,0x49821ec,0x21011a65,0x1a65049e,0x21ec049e,0x7dd1a65,0x7e007de,0x8091f24,0x212f17de,0x4a91994,0x199404ab,0x1a7103cb,0x4b221f3,0x2a020d04,0x1fed1fed,0xd021fec,0x22171a8c,0x21fe2222,0x21f504a8,0x4ad21f6,0x21f604b1,0x21fb04a9,0x1691168c,0x220208df,0x4b604b7,0x1a852207,0x21361a84,0x220a03e0,0x27970a83,0x27a127a1,0x28a92767,0x19b303e0,0x1376220f,0x136c280b,0x1eb11eb0,0x12340781,0x1ebd1230,0x1eb71230,0x1eb01ebd,0x1eb80781,0x12340781,0x1eb81238,0x12380781,0x7891eb8,0x1a931eb0,0x1a0d1a91,0x1017161c,0x4cd0850,0x4062224,0x273d0a72,0x273d13ff,0x13ff273e,0x1b4e0242,0x17f017f,0x1b581b56,0x1831b56,0xaba1b58,0x14260a93,0x294f0b4d,0x2a710b5a,0x2a3e0d33,0x6f7264d,0x6f706f8,0x2448264f,0x1ef307bc,0x7b907b9,0x17a907ba,0x17a807ba,0x4df17a9,0x4291a08,0x253a00ef,0x6ec253b,0x245306d4,0x263d06d4,0x4e1263e,0x1975197c,0x224204f6,0x4fb03f6,0x1ab51ac1,0x288a13f7,0x288a13f8,0xa6a0a68,0xa690a68,0x1f650a6a,0x8340833,0x18170833,0x257b0834,0x18bc0e3b,0x197a1979,0x1ae00521,0x1acb1ae1,0x51c1ae1,0x294b0509,0x296018c3,0x5120511,0x17f91aca,0x17fb081e,0x17fe081e,0x49817fb,0x4a41a64,0x21ea1a64,0xd7104a4,0x6f2a76,0xea20cca,0x85a0ca3,0x10250858,0x26050724,0xe506b1,0x186e252e,0xdeb186e,0xdeb00e5,0xe60df2,0xe700e6,0xdeb1874,0xe500e6,0xdf0252d,0xdf011c0,0x11c000e5,0x11c0252d,0x1874252b,0x25252532,0xe600e5,0x25251874,0x18742524,0x11c02524,0x1af800e5,0x53b1af9,0x22801afc,0x1e9c1af4,0x121a121f,0x1ea2121f,0x121a121a,0x121c1ea1,0xb762962,0x211c2977,0x228f228a,0x27a227a1,0x130e130e,0x27671312,0x13131312,0x276727ac,0x27ac1312,0x54019c5,0x25591b05,0x11d81898,0x10011d8,0x261a0101,0x261925fe,0x241625fe,0x8752619,0x10441040,0x1e9a1216,0xf7e1218,0x1a10f7a,0x12180779,0x12180777,0x7771e9b,0x12171e9b,0x205f0778,0xd672a6c,0x77d1224,0x4531e9d,0x45d21b2,0x28c90ab5,0x28f828f8,0x28c61435,0xab01435,0xab528c6,0x28c628f8,0x143928cb,0xab528b7,0x28cb28c6,0xab50ab6,0x28cb28cb,0x28b828b7,0x143a28b9,0x28ce28ce,0x28b80ab6,0x28cb0ab6,0x24f628b8,0xb2182e,0xdbb182e,0xdba00b2,0x1829182b,0xdba0dbb,0xdba00b2,0xdb31829,0xdb30dba,0x18291828,0x24f124f2,0x18290db3,0x182824f1,0xdba00b2,0xae0db4,0xac24f0,0x24f10db5,0x24ef0db5,0x24ef24f1,0xdb30db4,0x24f00db4,0x24f20db3,0x24f11826,0x1ef61ef4,0x122d17a1,0x1eac077f,0x7820787,0x782122e,0x122c122d,0x1c8320ca,0x25f820c1,0x24842610,0x25f2266e,0x25f8069c,0x266e2484,0x214019c2,0xc261b0b,0xc0e154b,0x150d154b,0x150d0c0e,0x15291e3c,0x1e3b1e3c,0x1529150f,0x150f1e3c,0x154a1e3b,0x1e3b1e4d,0x150f1e4d,0x1ee11ee4,0x123e1794,0x1241123f,0x790078c,0x8671ebe,0x16061616,0x86b1616,0x16060862,0x8621616,0x10200862,0x12211606,0x12221224,0x121c1224,0x121c1222,0x12220778,0x12170778,0x12171237,0x1237123b,0x1eb21237,0x1eb21ec0,0x12431eb5,0x12431ec0,0x1eb21ebf,0x1ec01243,0x12221ec0,0x25451237,0x184f119b,0x11be00e2,0x11be11bb,0x11bb252b,0x11c0252b,0x11c011ba,0x11ba2524,0x252611ba,0xe300e3,0x11bb11b9,0x11ba252b,0x252711bb,0xe1186f,0x6fe246a,0x7010701,0x246a2468,0x24692468,0x977246a,0x29312933,0x1ed81780,0x178217a3,0x1ed407a5,0x1ed31f34,0x79e079e,0x1ed41782,0x17a31781,0x7a607a6,0x1ed51ecf,0x1f191ed0,0x7a207a2,0x7a107a3,0x1ed307a3,0x7a107a1,0x7a21ed2,0x178407a0,0x17841ed1,0x7a41785,0x17841ed1,0x178507a4,0x7a41ece,0x1eda177f,0xd62178b,0xd5e0d5f,0x28c80ac6,0x13020ab4,0xac62792,0x1a511a52,0x21d621d6,0x483048b,0x1f0d1786,0x17c307e7,0x1f0d07e7,0x10a510a6,0x12eb1665,0x14c82770,0x7ef07e6,0x7ef1f0e,0x17cb07ee,0x7ed17cb,0x17bd1f0e,0x7dc1f07,0x7db07dc,0x17c31efe,0x17c61f11,0x17c91f11,0x92917c6,0x9270926,0x1ed817a3,0x1f421eed,0x1ed21ed0,0x261d2672,0x261d2671,0x2671242d,0x261f242d,0x5f02671,0x173f2354,0xb620b64,0x1ecf18dd,0x1ef007a6,0x83f1ef0,0x15ff1efb,0x849100d,0x17e317e2,0x5360804,0x21f01af6,0x1a6321f0,0x22821afa,0x1afa0536,0x7d117b2,0xf07cd,0x1fde000d,0xa742894,0xa760a76,0x14010a77,0x28980a77,0x16711401,0x10b310b2,0x8c210b3,0xdd31671,0x11300c6,0x184b00c6,0x1130dd1,0xdd100c6,0x184a184b,0xc80dd1,0x25061197,0xdd31197,0x25062506,0xc82507,0x18231f78,0xd401820,0x1ff82a45,0x1a1ff8,0x5950d40,0x16e40590,0x1eff1f08,0x17b917b9,0x17b617ba,0x5c0d4f,0x1d710d7d,0x170505ab,0x17d117d2,0x17d107fb,0x7fb1f1c,0x2550011a,0x25500119,0x11911e2,0x24fb00b9,0x1c8d24f2,0x1c8702ad,0x20d502ad,0x27681c87,0x97112e1,0x27ab12e1,0x27a40971,0x9712768,0x97127a4,0xa801499,0x28a227a4,0x149927a4,0x149928a2,0x28a228a0,0x131327a7,0x131327a5,0x27a51312,0x27a7279a,0x27a72799,0x279927a5,0x14052799,0x28a01407,0x1407279a,0x2799279a,0x14071407,0x28a028a2,0x28a728a2,0x28a70a80,0x276413ed,0x28a7276d,0x276e2764,0x291b2771,0x12e52771,0x28a7291b,0x291d276d,0x12e612e5,0x291b291b,0x276e276b,0xa80291d,0x276e28a7,0x276d276b,0x8761620,0x12f3103c,0x289a2777,0x1eec17a0,0x2271179c,0x22742272,0x19f62274,0x1f182271,0x1f1607f6,0x7c41ef4,0x7ac07c3,0x17941796,0x16a510ea,0xee708ef,0xee91cd6,0x2e71cd6,0xa0c0ee9,0x13772839,0x280d1377,0x27f227f2,0x27e01357,0x134827e0,0x13231323,0x145327be,0x13e01453,0x28512851,0x1377283a,0xa0c283a,0x13771377,0x285127f2,0x27e027f2,0x13232851,0x28511453,0x18692522,0x18692519,0x251900d8,0x25202519,0x17dd2522,0x80007ff,0x121518bf,0x12150e35,0x2579257a,0x25791215,0x25720e35,0x25790e35,0xe3418b8,0xe34012d,0x12d2572,0x1322575,0x132012d,0x12d18b8,0x9632753,0x12bf12bf,0x2753095e,0x12bd095e,0x106a274f,0x87d1631,0x16411631,0x17de0881,0x1f24079e,0x1f6b1814,0x1f6b1815,0x1815181e,0x93a094d,0x94f094f,0x94d094e,0x2741094e,0x1f68094d,0x1ef81819,0x1f781f74,0x181e181e,0x1f741f6b,0x194923c2,0x6490649,0x64d0648,0x23c223c3,0x17e70649,0x1f31080c,0x80f080d,0x80f0810,0x80a080b,0x17e61f2f,0x17e617e7,0x17e71f30,0x188600f3,0xea900df9,0xfffffff8,0x1046d5ff,0x1011161b,0x84c1011,0x84c1046,0x1046103c,0x15ea15cb,0x19240c90,0x15cb1925,0x242106b6,0x2421260c,0x6b72423,0x94a094b,0x94a273d,0xa740a76,0x94a13ff,0x13ff0a74,0x273d0a72,0x12a1273d,0x814094b,0x1f3d1f25,0x1d320568,0x1d3a1d3a,0x16c722c2,0x10df169b,0x10df10e0,0x10d51692,0x10d41692,0xec710d5,0x2cd0ec1,0x1ba90ec1,0x108402cd,0x163c163b,0x1f591f5a,0xae80830,0xae228e8,0x10a208bc,0x8bd08b8,0x8b908b8,0x165f10ac,0x83510a2,0x1f730837,0x83d1f73,0x83d0835,0x1f741f78,0x83d0835,0x1f741f72,0x83d083c,0x18101811,0x2d71812,0x1cb702d6,0xecc02d6,0x1cb71cb7,0x2d702cc,0x1809180a,0x18091f5e,0x82f07e5,0x18091f5e,0x10f8082f,0x90a08fe,0x8c308c2,0x17da08c5,0x1f1807f6,0x198403ea,0x17511b0d,0x1dd3174f,0x5fe1dd7,0x16a61751,0x8fc08f6,0x1f6c1f6d,0x18171f71,0x1f6f1f72,0x1f711f6d,0x1d201817,0x1d1d1d21,0x6f2245d,0x10c5264a,0x167c08ce,0x10c208ce,0x10bc167c,0x10c610bf,0x8d310bf,0x1f7910c6,0x8431824,0x181b1824,0x18580843,0x11b10de4,0x16a710ed,0x8f108f1,0x16af08fa,0x16ae16af,0x181b08f1,0x83d1824,0x9310932,0x8441291,0x1ecf1f76,0xcc70cc8,0x1ed50e8d,0x8401ecf,0x18220840,0x17b61ed5,0x8360837,0x82e1813,0x82e17bf,0x7e21f56,0x82e17bf,0x1f5607e2,0x7e207e5,0x83617b6,0x1f001813,0x181317b6,0x179907b7,0x178a07a8,0x7bc07bb,0x7b707bc,0x1ef107a8,0x1ed907bb,0x83f1ed9,0x17d11ef0,0x17f707f7,0x1f3f17f7,0x1f3f17d1,0x17db1f22,0x18011805,0x180107e5,0x7e51f41,0x1f401f41,0x71b1f16,0x71e2482,0x26702482,0x1219071e,0x1e9f1ea9,0x1ea61ea9,0x8451223,0x100b15fb,0x16ac10f7,0x8f908f9,0x10f716aa,0x8fb16aa,0x8fb10f7,0x10f708f4,0x26821c23,0x26912691,0x1c232692,0x16190852,0x8530853,0x8521009,0x8451009,0x8521603,0x16031009,0x8470845,0x8471603,0x16031049,0x8551049,0x101a101a,0x10401604,0x8541040,0x8541049,0x10181019,0x16121019,0x10181018,0x10491603,0x101a1049,0x1d471040,0x1d5722df,0x28ab0986,0x28ab278c,0x278c0a84,0xa84278c,0xa8412ff,0x9852788,0x278b0985,0x17520a84,0x236705ff,0x1dd405ff,0x2367174d,0x174d05ff,0x1dd21dd4,0x1dd22363,0x23631dd0,0x17ce1f10,0x1f3917cd,0x1f3e17eb,0x1f3517eb,0x22a81f3e,0x555176f,0x103a103b,0x103a0870,0x160a100e,0x103a0870,0x100e160a,0x1614100c,0x846100c,0x8461614,0x16140868,0x160a1614,0x160a100e,0x160f160b,0x8711600,0x103e103d,0x101a103f,0x1280e32,0x11ff11ff,0xe322564,0xe252564,0xe250e2c,0xe2c0e24,0x10490855,0x1049103e,0x103e161b,0x1046161b,0x17681621,0x176f0557,0x164c08a2,0x108d164e,0x8a21086,0x8a31086,0x6af08a2,0x242b06a3,0x242b06af,0x260a06a1,0x6af2420,0x260a241f,0x6af06af,0x6a906a1,0x16ba090a,0x9080908,0x9040905,0x17eb1f35,0x10991ed3,0x8b008af,0x3152597,0x23f80316,0x25bc23f3,0x25bc23f8,0x25e223e5,0x67825e3,0x23f825e3,0x23e823e6,0x23e625e3,0x240323ef,0x24030679,0x67925e2,0x67a0679,0x67823ef,0x25e20679,0x23e825e3,0x23f825c9,0x23e623e5,0x6780677,0x67125e3,0x25e325c4,0x67725c4,0x8025e3,0x852a80,0x12321233,0x1232122a,0x122a1eaf,0x7841eaf,0x7fd0785,0x17d21f18,0x177722aa,0x10be22b7,0x87b1063,0x1068162a,0x1068087c,0x162e1067,0x1068087c,0x1067162e,0x162e162d,0x87b10be,0x162b162a,0x16281627,0x175f22ae,0x17a822a3,0x17a717aa,0x7ba17aa,0x176a1ef2,0x22b722ab,0x7ea17ca,0x87a17c9,0x8a81064,0x8a8087a,0x16581096,0x8b408a7,0x1096087a,0x1096109d,0x109d08ab,0x8b41658,0x22ba109d,0x22ad055c,0x10cf10ce,0x161f1684,0x16211043,0x10461621,0x8760876,0x161f1620,0x17ff1f4f,0x17ff1f4d,0x1f4d1f50,0x1f511f50,0x27ae1f4d,0x27af0983,0x278d0983,0x10b627af,0x8c51668,0x1ecf1ef8,0x17ab07c9,0x1ef807ca,0x181d181e,0x18151815,0x1f6a1814,0x181e1f6b,0xd4041815,0x14b21df2,0x28a114b4,0x288328a1,0x288314b1,0xb342783,0x12fa2783,0x12fa14b3,0x14b3097d,0x14b0097d,0x14b114b3,0x28a114b2,0x22292e,0xfffffff6,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x3414b352,0xbb1bbc0b,0xbb1b3b1b,0x3b017e1b,0x49017e1b,0x261b3b1b,0xfd1f4608,0xd608e017,0x2808e110,0x7c089116,0xa5191110,0x11062d1f,0x1b062d19,0xa3062d1e,0x1b1e1b1f,0xa01fa31e,0xa11fa323,0xd323a023,0xcb10bf08,0x6b16c608,0x3916c805,0x6f1f6d08,0xab1cfa1f,0x3d0f9c1b,0x1c17f11f,0x8908a408,0xb3106210,0x64109708,0xec10ed10,0x55109c10,0xb5095609,0xb8095612,0xb812b512,0x6110a208,0x5f10a216,0x93166116,0x9007ac17,0xaa07ac17,0xb0178e07,0xc408bf10,0xc108bf08,0xb108c408,0x351d7605,0x9c1d7623,0xad23351d,0xae162d10,0xf500e810,0xf518820d,0x8218810d,0xea0bfb18,0x4520f029,0x93272827,0x37129312,0x37274727,0x47288927,0xa5274727,0xbe274512,0xbc08d010,0xbb08c710,0x6f168210,0xb310b416,0xb308c210,0x5510b410,0xb312b509,0x62275612,0xc212c209,0x56275512,0xc6275527,0xc6275612,0x5612c512,0x120b0727,0xb114960b,0xcd17b017,0x6616a807,0xa08f310,0x970b0029,0x950b000a,0x970a970a,0xeb0a990a,0x97290a0a,0x990aeb0a,0xeb28b60a,0x8a148d0a,0x8a148c14,0x8c148914,0x8d0aeb14,0x40b0314,0xeb290a0b,0x8c148d0a,0xb10b0314,0xb6090116,0x5621cd16,0x561a3c04,0x3c1a2d04,0xb710621a,0x7d090e16,0x8c12f827,0x8e0a8c0a,0x36277d0a,0x86123112,0x88123107,0xfa123207,0x2e216503,0x3d12a121,0x3d273b27,0x3b094527,0x91115627,0xb129b611,0x3a045821,0xad09531a,0xad12ae12,0xae12ac12,0xfb10fc12,0x2090210,0xfc090309,0x61245e10,0x84068424,0x5e23f206,0xd023f224,0xd0245e25,0xfe068325,0x8c23fe23,0xfe06ef06,0x5e06ef23,0xc3235a24,0xd71dc51d,0x4705df05,0x64096123,0x57275709,0x61275327,0x5912cb09,0xc512c527,0x6812c612,0x18137f09,0x33282228,0xa514bd29,0xaa14a514,0x3a293314,0x75120e0e,0x32120e25,0x28257501,0x4e0d6a0d,0x6b0d6a20,0xe2204e2a,0xf70fe40f,0x9b13090f,0xa027a027,0xa8130f27,0x1027a827,0xa227a013,0x56025226,0xac13ed02,0xac12e712,0x72274812,0x7212ac27,0x4812e727,0x7212ee27,0x6c12e727,0x8113ed27,0x7e278709,0x82278709,0x82097e09,0x7e12f909,0xf012f909,0xee097e12,0x80098112,0x81098009,0x2e097e09,0x32128e09,0x95128e09,0x61093212,0x1418a925,0x1279012,0x10ae113,0xe6098b13,0x710a8228,0x5012f927,0xd4295d29,0x84278518,0x6228ac09,0x13086c08,0xad27c216,0xb409ac09,0xb5132b09,0x2d132b09,0xb5132a13,0x2a132b09,0xc709b213,0xb209b327,0x2f09b309,0x2e09b313,0xc5132f13,0xc4132c27,0xc527c627,0xc509af27,0xaf27c427,0x2e132f09,0x2e132d13,0x2d132a13,0xc6133013,0xc609b127,0xb109af27,0x3009b509,0x3409b413,0xb9133313,0x3309b909,0xd027d013,0xcf09b827,0xce09b827,0xcd27cf27,0xb827ce27,0xb709b809,0x927cd09,0x27fe28,0xb727cc28,0xc927c909,0xca133127,0x3227c827,0x3209b613,0xcb133413,0x3209b627,0xd727cb13,0xab27bf27,0xb527da09,0x3e132a09,0x2e133c13,0xcc27cd13,0xac09be27,0xc1134509,0xc227b809,0xc227e109,0xe127d909,0x4809c327,0x48134913,0x4927e013,0x4909c313,0xc409c413,0xd827e109,0xd927e127,0xe327d827,0xbd27e227,0x4d133e09,0x3e09c513,0x3c09c513,0x4b09c513,0xe3133c13,0x3d09bd27,0xe3134c13,0x3c133d27,0x4a134b13,0x3d134c13,0x4e133f13,0x3f134c13,0x3c133b13,0xe4134a13,0xda134e27,0x3f134e27,0x3b27da13,0xe4134a13,0xdb09c627,0xdb134f27,0x4f27e727,0xe727e613,0xe627db27,0x50134027,0x41134013,0x41135013,0xe527dc13,0xbe27dc27,0xe509c709,0xc727dc27,0xa905a809,0x52231005,0xdf135313,0xc1133a27,0xc1135509,0x5527ef09,0xdf135213,0x3a27d727,0x52135513,0xc127ef13,0xee134509,0x46134527,0xf1134713,0x5427f027,0x4627ee13,0xf0134713,0x4134627,0x58135a28,0xdd09e613,0x2427fc09,0x71103d16,0x10103d08,0x6f160010,0x6d17041d,0x711d701d,0x7305ab1d,0xf8136013,0xd927f827,0x137409,0xe8136b28,0x87281609,0x7e138613,0x21137f13,0x86137d28,0x1709f713,0x8809f828,0x3d13a213,0x74139c28,0xd509d913,0x93284109,0xb1139713,0x3513b013,0xae0a0e28,0x170a1613,0x1013af0a,0xae284d0a,0xaf13af13,0xb50a1713,0x4e284613,0x290a2028,0xc60a260a,0x1b13b013,0x2513b50a,0xc713bf0a,0x2b13be13,0x2b0a2e0a,0x2f13c10a,0xbb0a340a,0xca285513,0x3e13d113,0x5f13c90a,0xcf286728,0xc9285e13,0x31286113,0xce0a320a,0x3513d013,0x5b0a380a,0x32285c28,0xcf285e0a,0x650a3c13,0x640a3028,0x580a3b28,0x630a3828,0x67285a28,0x33285f28,0x2c0a360a,0xce28570a,0x2c13c513,0x3328680a,0x850a340a,0x3f271c12,0x1e13b60a,0x420a420a,0x1a0a1e0a,0x1d0a1b0a,0xba286f0a,0xd7284f13,0x7813dd13,0xba13d828,0xb019b519,0xb619b519,0x4619b019,0xd30a400a,0x420a4113,0x7213db0a,0xdc13d328,0xd413d313,0xd413dc13,0x490a4113,0xdf287a0a,0xd513d213,0x6c13da13,0x7313da28,0x73286c28,0x4213db28,0x6f286e0a,0x470a4728,0xd6286f0a,0x70287513,0x6e0a4428,0x6d0a4a28,0x740a4a28,0x74286d28,0x430a4828,0x7013d60a,0x44287528,0x770a450a,0x4313d528,0x4b0a480a,0x1812800a,0x7905b309,0x7b23181d,0x1b0a4c28,0x4c0a4727,0x56287b0a,0xc427e113,0xc4135909,0xe6134909,0xf7135b27,0x55287f27,0xe30a560a,0xe0134c27,0xca27eb09,0xdf136909,0xf17bf07,0xe217bf1f,0xf1f0f07,0xdf1f141f,0x83079d07,0x9d1f0117,0xb71f0107,0xb7079d17,0x41f0417,0x1407df1f,0x5d27f51f,0xa927ef13,0x970a1413,0xc213a413,0x6513c313,0xc01d2c05,0x851d8416,0x661d8c1d,0xa8141227,0x88141228,0x3228a80a,0xae078812,0x801eac1e,0x80122c07,0x2c124e07,0xb5124312,0x4e122e1e,0x2e124312,0x26171512,0x8e232c23,0x730a6f28,0x8c0a730a,0x7b288e27,0x451d4405,0x5a2a681d,0x1f204820,0xba232017,0xd9276205,0xd912db12,0xdb129712,0x98129712,0x87128712,0x97128812,0x805bb12,0x7d231317,0xc05b51d,0x311d9817,0xbd05c523,0xbe1d2c22,0x6c05a622,0x9f230c1d,0xa2259d25,0xbb257725,0xba18ba18,0x370e3918,0xe0e370e,0x32013212,0x2e012d01,0x77012e01,0x77013225,0x3718ba25,0xd405d30e,0xfe1da205,0xd91bd801,0x9715d61b,0x1a11370c,0x9228b214,0x9a0a920a,0x1828b40a,0xb728b814,0x9628b128,0xe0a980a,0x5b050d05,0x93141722,0x9a141b0a,0x910a920a,0x9028b90a,0xa50a8f0a,0x6b05a605,0xc414381d,0xc40abb28,0xbb143f28,0x91143f0a,0xbb0abb27,0xbc143d0a,0x3e143d0a,0xbc28d214,0xd2143d0a,0xb142a28,0x40279e13,0x528d414,0xfe130513,0xfe144012,0x4028c512,0xd9234214,0x4405d805,0x4528da14,0x4628da14,0x450ac814,0xc828da14,0xc828d90a,0x9f279f0a,0xd9279527,0xb7279528,0x8b28d90a,0x98279a14,0x470aca14,0xdc28dc14,0x49144828,0xcb144914,0xdf0aca0a,0x4105d705,0xd6144b23,0xcf14500a,0xcd295218,0xcb295218,0xcd18cd18,0xcf18ce18,0xf11dc218,0xf1173805,0x38174205,0x4d28e017,0xe428e414,0xe0144f28,0x4e144f28,0x4e28e014,0x20132114,0x150f3613,0xf01bf402,0x850d061f,0x581b2700,0x1e0f1e01,0x270f1f0f,0x1f0f1f1b,0x1f01521b,0x541b201b,0x27015201,0x9a0f1f1b,0x7e0b1614,0xb90fb314,0x610f611b,0xb30f5b0f,0x5c0f5b0f,0x5c01da0f,0xda1b5d0f,0xdb1b5d01,0x5401da01,0xbb055d05,0xf702f622,0x39258902,0x3f124112,0x5c065912,0xe4195019,0xea14610a,0x5528e828,0x65145114,0xdc145714,0x6a0aec0a,0x6a28ee14,0xee28ef14,0x7e266328,0x2e072e24,0x96267907,0xc128f524,0xb828c328,0xf00ab90a,0xba0ab90a,0xf0146f0a,0x6f0ab90a,0xc10aba14,0xba28f528,0x6f28f50a,0x6d28f314,0xf0146e14,0xb828f30a,0x6e28cf0a,0xf2146d14,0x7114700a,0xf3147014,0xa614710a,0x7314350a,0xf8143514,0x73147828,0x78143514,0xf728f814,0xf7147828,0x78147428,0x71147614,0x760af314,0xf60af314,0x76147728,0xa628f614,0x7214730a,0x720aa614,0x72142d14,0x2d0af114,0xf6147714,0x7928c228,0xc2147714,0x790af128,0x4d28c214,0xd809b013,0xf028f309,0xf513340a,0xb728f428,0x69143a09,0x6914c714,0xc728f714,0xa1116114,0x5e115e0b,0x610b9211,0xc149411,0x1529150b,0x13149229,0x91291329,0xd1149414,0xb51efc07,0xe11efc17,0x1217b507,0x96291a0b,0x97291a14,0x960b1514,0x15291a14,0x6c0afa0b,0x9a12e727,0x16149b14,0x9c149b0b,0x16149d14,0x9d149b0b,0x12290914,0x120b1929,0x19291f29,0xef291f0b,0x1c0b1912,0x9e276e0b,0x6d276e14,0x6d149e27,0x9e0b0927,0x210b1d14,0x21292029,0x20292229,0x2129200b,0x230b2029,0x7c13e30b,0xaf0ad828,0x2314340a,0xd8287c0b,0xf914340a,0x220b220a,0x340b230b,0x360af614,0x29133513,0x250b2729,0x441b4129,0xd11c181b,0x8d275a12,0xc8275a12,0x8c272212,0x22275a12,0x5f181127,0x871f621f,0x98128812,0x46128812,0x62276227,0x9712d927,0x98129712,0xb128812,0x10254f0e,0x6912770e,0x3814e712,0xaa0b370b,0x75227614,0xd2052c22,0xd9199319,0x481a3303,0xe31a4a1a,0x230b2313,0x97079529,0x9b1ecc07,0xaf1fcb24,0x401fcb1f,0xaf1faf07,0xa724a61f,0xaf249b24,0xa624a71f,0x3824a324,0xb324a307,0x3a073a1f,0xc61fb307,0xb41fb31f,0xc51fc61f,0xc21fc71f,0x3e1fc71f,0xc21fc207,0x3d073e1f,0xa3073807,0xc6073a24,0x3a1fc51f,0xa71fbf07,0x3824a624,0xa61fbf07,0xc21fc524,0xa924aa1f,0xaa02b61c,0xb802b61c,0xbe0eb802,0xc2130314,0x8e130314,0x8e14c227,0xed0af827,0xa0aed0a,0x3c14c20b,0xc3293b29,0x7014c812,0x70293a27,0x3a097327,0xb5097329,0xc9293a0a,0x60b4214,0x4414cb0a,0x44104a0b,0x4329410b,0x440bec0b,0xec0b430b,0xcd29420b,0xca294229,0xcd29cd14,0x4b294329,0x4b104a10,0xcd14cc10,0x4a104b29,0x45104a10,0x4414cb0b,0x4a0bec0b,0x45282c10,0x44104a0b,0x2a14cb0b,0xca29cd28,0xff283e14,0xf20b4709,0x7283720,0xf20b460a,0x9d0b4620,0xd114d213,0x49282e14,0xf14d329,0x85114d0a,0xab298629,0x66166710,0xa110a016,0x5c165e10,0xa010ab16,0x6610ab10,0xcb10a016,0xb7280309,0x4e18c627,0xcb294a0b,0xc50b5418,0xb7118e18,0xb729b629,0xb60bd329,0x890bd329,0x9129b611,0x45294413,0x890b8829,0x7819020b,0x7a18f829,0x880b8d29,0x7e18ff0b,0x7d0b8629,0xfd0b8229,0x7b0b8318,0xfa0b8c29,0x65115418,0x4d0ba411,0xcc0b5b0b,0xde0b6318,0x7518dc18,0x9a299b11,0xc0173c29,0xc01dbf1d,0xea17431d,0xc01dbf05,0xd805ea1d,0xe50b6818,0xae0ba918,0x6d0bc429,0x820b8429,0x6c296d0b,0xf818fd29,0x90297c18,0x6a297c0b,0x830b900b,0x6c18fd0b,0xa15fa29,0x93084a10,0x980b960b,0x520b940b,0x91114f11,0x9a298f0b,0x99298f0b,0x990b9a0b,0x9a11500b,0x4f11500b,0x600b9a11,0x9e299011,0x700c80b,0x8911f225,0xae299f29,0xe818da0b,0xe8295b18,0x5b18f318,0xbd0bc629,0x59117c0b,0x4c005e0d,0x3c005e00,0xb9004c20,0x8d29ba29,0xce0bcc11,0xcf0bcf0b,0xd40bd10b,0x8529b20b,0x8b118611,0x930bd229,0x7a15c111,0xc10c910e,0x920c9115,0x9811380c,0x980c990c,0x990c9a0c,0xc10c9a0c,0xc10c9715,0x7e0c9215,0xc10cd40e,0x290e7e15,0x27112611,0x290c9211,0x29192b11,0x2b112711,0xc7192b19,0xc70c9215,0x920e7f15,0x7e0e7f0c,0xc10c920e,0xf20cd415,0x9915c015,0xc10c9a0c,0x3015f215,0x3015c119,0xc0113719,0x970c9a15,0x3715c10c,0x970c9711,0xc015f10c,0x7915f115,0xc015b80e,0xb815f115,0x9c0e7915,0x9c15b80e,0xb80cc00e,0xc015b815,0x7d0cbf0c,0xc515b80e,0xbf15b80c,0xb80e750c,0xe50e7515,0xe515b815,0x7d0cc515,0xca0cc50e,0xca0e7d15,0x7d0e9e15,0xc40e9e0e,0xc40e7d0c,0x95113a0c,0x350e7d0c,0x3a0e7d11,0x7d0c9b11,0xe70c9b0e,0x330c9415,0x7d0c9311,0xc915e70e,0x930c9415,0x9311320c,0x320c950c,0xc90e7d11,0x35113515,0x95192d11,0xcd192d0c,0x9515be0c,0x32192d0c,0x2d113211,0x8f15be19,0xbe112d0c,0xbe0c8f15,0x2e0c8c15,0x2c15be11,0x8f112519,0xbe0c8c0c,0x8c112e15,0x2c0ccd0c,0x8c15be19,0x2515ee0c,0x7715ee11,0xcb11250e,0x240e760c,0x25112411,0x740e7411,0x7711250e,0xf717a70e,0xc507c51e,0xc31ef707,0x53297d07,0xf918ca0b,0x690b6618,0xb40bb329,0xc3118529,0xc91f1117,0x11f4117,0xad180018,0xb7117929,0xb2179a29,0x9b179d07,0xb5179c17,0x9c1eec07,0xa81eea17,0xcd0bbb29,0xcd0bd30b,0xdb0bbb0b,0xdf29c00b,0x7f10800b,0x7f163910,0x38163d10,0x7a163d16,0x38163810,0x7f163916,0x90163910,0x90108108,0x81089a08,0x75237410,0x751de023,0xe0060c23,0x5d0bf01d,0xc3104a10,0xf10be029,0x4a0bf00b,0xda29c310,0xe229c929,0xe620f40b,0xe220f029,0xdb29ca0b,0x5b29db29,0x5b104b10,0x4b29da10,0xc929da10,0xb6104b29,0x860bcb29,0xf011c529,0xc411c40d,0xc50deb11,0xc70deb11,0xc5253011,0x300deb11,0xe911c725,0xe911c600,0xc6253200,0xd829d911,0xd80be629,0xce29d729,0x8625d529,0x2125c906,0x1f1f7718,0x24181f18,0xf0182118,0x5e0bf10b,0xdc105e10,0xde29de29,0xe00bf229,0xf329e029,0xf329de0b,0xde10600b,0xd3106029,0x57105729,0x60105a10,0xee105a10,0xee10600b,0xd929d80b,0xda29d929,0xda29db29,0xdb0bef29,0x5c29db29,0x5c0bee10,0xf0105d10,0x5e0bf00b,0xee29de10,0xdb29d90b,0xf0105c29,0xf00bee0b,0x6029de0b,0xe10bf510,0xe1106129,0x6129d329,0x5529d410,0xed0bed10,0xd310570b,0x5829d629,0x20105a10,0x78181e18,0xfd17fb1f,0x2180217,0xfb1f4518,0x28274817,0xf70b0214,0xfc20e50b,0xfc068b20,0xfd23fd23,0x80068123,0xcf068006,0xcf23fd25,0x8b23f725,0xcd23f706,0x94068b25,0x931ee117,0xdf1ee117,0xf307aa1e,0xf929e429,0x9d062b0b,0x9d1fa123,0xa1239723,0xf1fa11f,0xf239a19,0x9a239919,0xbe08d023,0x3167710,0xee1ded1e,0x151dee1d,0x7c1e0306,0x3237e23,0xe125d71e,0xe125e425,0xe4240525,0x640a6725,0xf213f20a,0x680a6913,0xf30a680a,0xf313f213,0xf2288613,0x67116613,0x67116511,0xa4116811,0xe7061e0b,0x1706231d,0x871df006,0x161def23,0xda238906,0xbb07d907,0xd707d917,0xd817bb07,0x51f0307,0xdb17bb1f,0xd807da07,0xbb1f0507,0xd81f0317,0xd607d607,0xb407d307,0x191b1817,0xec01431b,0x9d212b1a,0x20199d19,0x75217521,0x70041621,0x9d1aec22,0xc0217519,0xbf18310d,0x3318300d,0xdc183218,0xa91edd1e,0x7408be07,0xc110b516,0x8f29ac0b,0x75216e11,0xa4212121,0xe116a316,0x81140a10,0xfb28a60a,0x9111fd11,0x8d068a18,0xda25dc06,0xaa02ad20,0x1a1d7e02,0xb505b323,0xb41d7d05,0xb31d7e05,0x4805b505,0xc5194806,0xd30ea923,0xc50cc60c,0xd30cc615,0xeb19280c,0xeb15ec15,0xec0e7415,0xac09ae15,0xac148a09,0x7d09ad09,0x85147d14,0x8509ac14,0xac148a14,0xc3132709,0x8d132627,0x26132714,0xae132613,0xbc148a09,0x2715b915,0xcb112711,0xa319290c,0x2e0ea40e,0x961d8819,0x27171c1d,0xdf222522,0xc8193119,0xb20cd515,0x7104b004,0xf00b1f1a,0xf0149f12,0x9f276c12,0xfa276c14,0xfa149f0a,0x9f0aff0a,0xdc17db14,0xdc17d117,0xd117e417,0x2017e417,0x711f1c1f,0xae04b01a,0xfa04a704,0xa721f921,0xae1a7004,0xf204ac04,0x6d1a6f21,0xfd21fc1a,0x960cc621,0x9619270c,0xe80ea90c,0x751a6e15,0x1921fc1a,0xbc211504,0x7504ac03,0xa11a6e1a,0xeb1ed307,0xeb07a117,0x131f3817,0x3f1f2208,0x3807a11f,0x381f3f1f,0x3f081b1f,0x930f921f,0x9301b40f,0xb41b640f,0xd9066901,0x9d066423,0xac1ca61c,0xb51ca60e,0x9e0eac0e,0xb41c9c1c,0xb41c9e02,0x9e0eae02,0xac0eae1c,0x6003630e,0x550e6a0e,0xb312b509,0x180112,0x22082218,0x411f4008,0x5419411f,0x23195319,0x41087716,0x42104110,0x72087210,0x23161d08,0x47161d16,0xdb162310,0x8b1ede1e,0x62067917,0x62240326,0x3246526,0x65240324,0x55265524,0x7a265726,0x7a265506,0xef23ef06,0x55240323,0xe2240326,0xe2067925,0x7825e325,0xf825e306,0xe823e623,0xe625e323,0xf323f823,0xf825bc23,0xe525bc23,0xe825e323,0xf825c923,0xe623e523,0x79067823,0x7125e206,0xe325c406,0x7725c425,0xe325e306,0x78067725,0xbb12b606,0x9e095b12,0x69165f10,0x33016010,0x370f361b,0x610f350f,0x370f3501,0x600f341b,0x370f3601,0x6001610f,0x350f3701,0x610f340f,0x361b3701,0x360f341b,0x621b341b,0x621b3601,0xa81b3501,0x201ea21e,0xbc133712,0xb009bf09,0x5723af23,0x66194319,0x43196519,0x481b4202,0xed1f140f,0xc217c907,0xba1c4e26,0x3926ae26,0xbf1c341c,0x461c4726,0x6e02731c,0xda1c4b02,0xe0244806,0x921c6c06,0xd902921b,0xda060a1d,0x9060a1d,0x91dda06,0x7237206,0x70237206,0x70060723,0x7236e23,0x660c2e06,0x66156015,0x55110915,0x6615601e,0x601e5515,0x2e155b15,0x5a155b0c,0x2e1e6815,0x68155b0c,0x67155a1e,0x671e681e,0x651e641e,0x3a1e641e,0x3a0c3c0c,0x3811150c,0x3a0c3c0c,0x150c380c,0x38111411,0x6211140c,0x3811131e,0x1311140c,0x601e6211,0x601e611e,0x5f1e5d1e,0x601e611e,0x611e5f1e,0x6211131e,0x651e671e,0x101e681e,0xfc25fd24,0xe30ce125,0xe30cdb0c,0xdb0efd0c,0xff0efd0c,0xf000e,0xfd0cdc0f,0xcd1ecc0e,0x491eca1e,0x50246226,0x5d264726,0xe0264924,0xe1263306,0xe5263306,0xe406e406,0xe1244f06,0xf8246106,0xb9244806,0x10242406,0x1d242426,0x2b261007,0x47244626,0x62244624,0x11244724,0x79071007,0x13247924,0x79266207,0x78060e05,0x76060e05,0x781d4323,0xd3060e05,0x5d237616,0x7622dd17,0x4322dd23,0xd405791d,0xf31d4516,0xf814700a,0xf014700a,0x760af828,0xf5069d26,0xf06a825,0xc706aa24,0xa31fd724,0xc01b7024,0x9b01bd01,0x7001bf0f,0x991b701b,0x961b9601,0x701b9d1b,0x9a1b9d1b,0xc71b700f,0x1001c801,0xa61ba71b,0xa60fa11b,0xa21ba81b,0xa91ba81b,0xa802c71b,0xa202c71b,0x1001c71b,0x101ba41b,0xa41ba71b,0xa21ba61b,0xc80fa11b,0xa71ba402,0xc801c61b,0xa71ba702,0xa30fa11b,0xb626081b,0xdc260c06,0xc729c629,0xc517c429,0x101f1017,0xc417c21f,0x16103417,0xf086716,0x711e80e,0x5911e80e,0x70e0725,0xd725590e,0x19071811,0x6b266b07,0x14247d26,0x7a289c07,0x7a14040a,0x414060a,0xc1ddf14,0x171d4a06,0x7828b114,0x7c277827,0x31141709,0x881eb312,0x301eb307,0x30078812,0x88123412,0x15013807,0xba1b120f,0x251d1f25,0x521b231d,0x521b2201,0x22015401,0x2d01551b,0x550f2e0f,0x120f2e01,0x221b250f,0x5401541b,0x12015501,0x431f790f,0x41083e08,0x79182108,0x2924951f,0xf3072a07,0xc4235b05,0x5127441d,0x5113e809,0xe80a5a09,0xe8274413,0x5a288013,0xe80a550a,0x6312dd13,0x630a5e27,0x54274427,0x5e0a540a,0x1a27630a,0x461e3a0c,0x1a0c1915,0x4615180c,0x1b1e3a15,0x761e660c,0x2f1e781e,0x4f154e1e,0x49154515,0x3a0c1915,0x801e640c,0x4f294e15,0x4f0b4b29,0x4b0b4d29,0x500b4d0b,0x5018c729,0xc7295329,0xc5295318,0xc518c718,0xc70b4f18,0x4b18c718,0x360b4d0b,0xa153415,0x33150115,0x90c0915,0xff0c0a0c,0x30151014,0x98150b1e,0x7624ee1f,0x34151207,0x120c121e,0x13154315,0xa14ff15,0xb0c0b0c,0x41e2d0c,0xfd153215,0x381e2c14,0x80c071e,0x2c0c070c,0x350c081e,0xc0c0c,0x2d150415,0x2d15091e,0x91e2e1e,0x3a1e2e15,0x37150b15,0x3c152e1e,0x15151415,0x4215160c,0x35154515,0x801ff01e,0x40205e2a,0x3b154a15,0x3214fd1e,0xd154c15,0x3e1e3d0c,0x35110c1e,0x361e470c,0x510c1d15,0x2c1e4015,0x400c2a15,0x2b15231e,0x901c6715,0x9620a202,0x881c5d20,0x4b22e002,0x3d16dc1d,0x26154b1e,0x47154c0c,0x3e1e451e,0x470c251e,0x450c1c1e,0x450c081e,0x80c221e,0x71e2c0c,0xc0c220c,0x470c350c,0xc15061e,0x6b0c250c,0xdb0c6d0c,0xb21ee014,0xb2178d07,0x8d179a07,0xd7179a17,0x341ed81e,0x2a15131e,0x1415130c,0x1215570c,0x2c1e340c,0x121e3215,0xff152b0c,0x48150414,0x4915341e,0x340c271e,0x24150115,0x300c140c,0xc80c2115,0xb11fd124,0x3b1fc21f,0xc81fd907,0xc21fb124,0xff15011f,0x2c1e4614,0x1c1e6c0c,0x460c4711,0xf110f0c,0x47110d11,0x5b0c450c,0x750c371e,0x361e5f15,0x19155e0c,0x380c3f11,0x7411130c,0x621e6d15,0x6f1e5b15,0x5a110d1e,0x7e01a61e,0x4201ac1b,0x6c111c0c,0x78111c15,0x6c156c1e,0x42157f15,0x400c4e0c,0x40111b0c,0x6b0c4e0c,0x570c4e1e,0x571e6b1e,0x6b15781e,0x4c11041e,0x4b1e6a0c,0x190c2f0c,0x760c2f11,0x3e0c3f15,0x630c4c0c,0x4d156315,0x740c3e0c,0x7415731e,0x77158015,0x55111d1e,0x70157a1e,0x20157a1e,0x70157111,0x71157a1e,0x21112015,0x21157111,0x711e6f11,0x55152915,0x5a1e701e,0x680c4915,0x290c491e,0x1d0c2e15,0x681e7711,0x5a1e771e,0x491e6815,0x680c2e0c,0x220c471e,0x220c4611,0x46156a11,0x31156a0c,0x310c450c,0x6d0c2b0c,0x310c451e,0x2b1e6d0c,0x6d15700c,0x461e6e1e,0x77156a0c,0x700c4a15,0x72155d15,0x22156f1e,0x6f0c4711,0x7b1e691e,0x7b0c3315,0x331e4715,0x7d1e470c,0x7d0c4815,0x610c4f15,0x7d0c481e,0x4f157515,0x6115740c,0x751e611e,0x20157d15,0x9157a11,0x7e157f11,0x7e111215,0x1b157c15,0x7e111211,0x1f111b15,0x3d1e6911,0x7b1e730c,0x641e6915,0x771e671e,0x711e4f1e,0x691e721e,0x22111015,0xe91e8e11,0x95158814,0xe2189418,0x5118ca11,0x520b5229,0xca29550b,0xc9295518,0x8e18ca18,0xe1158f15,0x64158f14,0xdd0c5f12,0x7e158714,0xdb14d91e,0x7f1e7e14,0x551e801e,0x5d1e800c,0x6b0c5512,0x7d1e8f12,0x8612581e,0xda14da15,0x83125514,0x52125515,0x821e7912,0x79125515,0xe812521e,0x52159714,0x79159712,0x5815831e,0x8814da12,0xe00c5215,0x531e7d14,0x5314dc0c,0xdf125e0c,0x83125e14,0x5314df1e,0x67125112,0xe712510c,0x5e0c6714,0x8b126012,0x5f126015,0x8b158c12,0x8c126015,0x8a125f15,0x5f14e015,0x8c14e012,0x53125115,0x53125412,0x54158112,0x7a158112,0x7a12541e,0x9b1e7d1e,0x7a125415,0x81159b1e,0x52125b1e,0x81125b0c,0x5a125a1e,0x58158612,0xe6159512,0x93159314,0x8a14e515,0x7f1e801e,0x7f15851e,0x8515841e,0x51158415,0x871e7b0c,0x560c5415,0x570c560c,0x821e820c,0x5a0c571e,0x620c5a0c,0x621e8412,0xe1158e12,0x621e8414,0xe11e8612,0x621e8614,0x640c5f12,0xe314e312,0x650c6014,0x560c5112,0x8914d812,0x59125d15,0x5915890c,0x5b0c580c,0x5812610c,0x8912610c,0x8d0c5815,0x851e8715,0x5b1e871e,0x5c0c5c0c,0x871e850c,0x5d15911e,0x5d0c5e0c,0x8d1e870c,0x670c6815,0x230c660c,0x262a292a,0x8e14e92a,0x680c711e,0x6712790c,0xee12790c,0xf30c6714,0x710c6d14,0x9d159f12,0x9d0c5515,0x550c6f15,0x8812750c,0x9c12671e,0x5a159815,0x8d125a12,0x9e1e941e,0x6a0c7015,0x53126a12,0x53159e0c,0xf21e8f0c,0x961e9514,0x560c561e,0xf414f50c,0x97127a14,0x700c6515,0xd814f112,0x780c7714,0x5e1e8a0c,0xa515a40c,0xa61e9915,0xe40c6115,0x99159214,0xa60c611e,0xe40c7615,0xa614f914,0x52127215,0x521e940c,0x94125b0c,0x58125b1e,0x58159c12,0x9c158312,0x9c125b15,0x211e9415,0x18085d10,0x13085d10,0x9e101816,0x7014df15,0x8314df0c,0x830c701e,0x70158b1e,0x6915920c,0xd5127612,0xbd15c80c,0xd025050c,0x3b25040d,0x571a391a,0x40151204,0xb15241e,0xd1e061e,0x7f1e0a1e,0xaf15af0c,0x815ad15,0xd1e081e,0x7b15af1e,0xab0c7d0c,0x7e0c7d15,0x7e15ab0c,0xab1e090c,0x791e0915,0x8215ab0c,0x8415b20c,0x4427360c,0x44140309,0x9d273909,0x44140328,0x3289d09,0x36289714,0x95289727,0x88273628,0x1115b40c,0x1115b51e,0xb415b41e,0xb61e1215,0x891e1215,0x2715b60c,0x76112611,0x9411330e,0x230c980c,0x800cc319,0xb30c870e,0x8115b015,0xd10e850e,0xcf0ca015,0xce15ce15,0x820e8115,0xd00e820e,0xd715ce15,0x4a0e8b15,0xd30ca611,0xa50ca515,0x4015d20c,0xa2114011,0xa70ca60c,0xd411470c,0xa915c115,0x910ca70c,0xd40c8f0c,0x86112515,0x2915d40e,0xd10ca411,0x7d0cab15,0xb80c950e,0x450e8315,0x4515c011,0xcf0e8c11,0x2315cd15,0x980e7f11,0x350cbb0e,0xaa15f311,0xaa15f30c,0xaa0caa0e,0x35113f0c,0xf5228311,0x8822801a,0x78113e0e,0x3d0a720e,0x3e273e27,0x720a7427,0x940a740a,0xa00a7228,0xb715d00c,0xd30ca515,0xd20c8e15,0xbc0ca515,0x960cba15,0x8f15de0e,0xda0cb20e,0xbd0cbc15,0x170cbb0c,0xd90e9019,0xb50e9215,0xb40cb40c,0x9119170c,0x190e910e,0x1a191a19,0x910e9219,0x140cae0e,0x1415d819,0xd8191319,0xac191315,0xad0cad0c,0xd80e8e0c,0x1c191f15,0xe30ea019,0xe70c9b15,0xc30cb915,0xdf0e7b15,0xc615de15,0x9615de0c,0x960cc60e,0xc619270e,0x290ccb0c,0xe215ed19,0x3915e615,0xbc0ccc11,0xb70e9215,0xae15ec15,0x1d15dd0c,0xa20ea719,0x4a289912,0x74289909,0x74094a0a,0x4a273e0a,0x4b094a09,0x4b12a209,0xa2274009,0x41274012,0xbd12a227,0x1215ef15,0x8e15bc19,0xc80cb50c,0xbb193115,0xce0ca10c,0xce0e7715,0x7415cf15,0xce0e770e,0xcf0e7415,0x7415eb15,0x780e770e,0x81113e0e,0xcb0ca20e,0x400ca20c,0xcb112711,0x270ca20c,0xba114011,0xcb112715,0x8215ec0c,0xb419200e,0xb415c70c,0x2b0cb50c,0xb415c719,0xb5192b0c,0x2b0c8e0c,0xd515c719,0x280cbc0c,0xd815b719,0xc015f415,0xd80cd618,0xd90cd70c,0xe51f250c,0x4f07fe17,0x9250c18,0x98185125,0x4e00c911,0xcc250818,0x97093900,0x3812d512,0x6d12d509,0xce096d09,0xce093812,0x2c275c12,0xce093727,0x49272c12,0x48108516,0x3f108516,0x40164416,0x41181c08,0xee179e08,0x3d1ed61e,0x3c2a440d,0x45003c00,0x6f00912a,0x6e0f700f,0x800f6e0f,0x81018101,0x6e019c01,0x1404010f,0x1419ea1a,0xea04331a,0xd2043319,0xa41aa404,0xea226f1a,0x6e252e19,0x6e00e518,0xe50deb18,0xe60deb00,0x3600e500,0xb2202100,0xa202a10d,0xb820cf02,0x6b026726,0x1a29fc02,0x1a1fea0d,0x1001f0d,0xff001f0d,0xcb0d010c,0x4009b927,0xfa082113,0x2b082b17,0xfc1f4b08,0x281f4b17,0x2817fc08,0xfc17fe08,0xfc1d4f17,0x6305a216,0x121f621f,0x34032518,0xf25b103,0x50cf00f,0x20f030f,0xe10f070f,0xf50cdb0c,0xf60ef50e,0xe70ce70e,0xd0cf00c,0xf50ce10f,0xfd0ce70e,0xe0ce30e,0x110ce50f,0xe20f100f,0xed0f100c,0x2a002b0c,0xf4204300,0xcda0e,0xdc0cda0f,0xee0f000c,0xe80f110c,0xf40ce80c,0x9d0f000e,0x96019e01,0x21272201,0x68128b27,0x4d2a6b00,0x6a2a6b20,0x6a204d0d,0x6c0d550d,0x3b0d552a,0x6a2a6a20,0x6c0d642a,0x670d642a,0x552a6c0d,0x6c2a6a0d,0xdd01be2a,0x101dc01,0x30d032a,0x1a2a1b2a,0x232a192a,0x262a292a,0xb200a2a,0x23002620,0x1e2a2d0d,0xff20010d,0x2b20001f,0x1d0d1e2a,0x142a1c0d,0x140d150d,0x1600200d,0x2820070d,0x2b20082a,0x2e0d2d00,0x1f200600,0x242a240d,0x600252a,0x22200920,0x3520080d,0x3100292a,0x2400272a,0x4300280d,0x12002a20,0x61206300,0x610d8b20,0x8b0d8c20,0x220d8c0d,0x2f2a2f20,0x8b2a182a,0x412a180d,0x90d8b00,0x3f002f2a,0x162a1920,0x1e0d582a,0x3d005e0d,0x1b2a2320,0x49203c0d,0x662a6700,0x622a6400,0x6b00470d,0x6e0d6c0d,0x530d4d2a,0x60205420,0x74006f2a,0x7a00790d,0x7a0d790d,0x790d780d,0x780d780d,0x78204600,0x7b007a00,0x7a0d7b0d,0x3c0d7700,0x34273209,0xef0d8327,0x812a031f,0xfb001300,0xea08191f,0x391f3317,0xee17eb1f,0x33081917,0xf1f391f,0x82200320,0x8820032a,0xfd2a8200,0x170d2e0c,0x60205f2a,0x23204d20,0x31201a20,0xb016bb0d,0xb0090d16,0xd090b16,0x9090b09,0x916ba09,0xba090809,0xc16ba16,0x2f090d09,0x5b2a5a0d,0x960d402a,0x962a8b0d,0x8b20720d,0x5b20182a,0x6c00582a,0x990d8520,0x7400890d,0x7d2a8c20,0x750d9b2a,0xe00a120,0xa60d0500,0xf72a9a00,0x480f5029,0x6f016f1b,0x431c1801,0x441c181b,0xdf1b431b,0xe81cc80e,0x2208902,0x1d29ff0d,0x7f0da420,0x2f2a6120,0x440d4c20,0x5a205920,0x650d4920,0x76204400,0x490d7900,0x690d7020,0x82a6d00,0x772a072a,0x3628522a,0x6c139b28,0x5824d307,0x4e0d7807,0x7e2a790d,0x8511cb18,0xb7182718,0xc400af0d,0x6a22cc16,0x3b22cc05,0xb7056a1d,0xb818270d,0xc400ba0d,0xf400b90d,0x3a183924,0x3e0dc618,0xbf24f918,0x46184500,0x440dcc18,0xc900bf18,0x3f0dca0d,0xc60dc918,0xc60dc10d,0xc118370d,0x3018360d,0x360db618,0x350db618,0x36183718,0xb3183518,0xb6182700,0xdcb0d,0x41184225,0x4424ff18,0x3f0dc718,0x340dca18,0xf1283628,0x52283609,0x5209f128,0x260a4d28,0xdf13250b,0x52135327,0x250b2628,0x340a0113,0x6609f128,0xf1281513,0x25285209,0x53135313,0x6627fa13,0xf1136613,0x48285209,0xc1184918,0x47250200,0xcb00c118,0xfd183e0d,0xa0011224,0x360e1d18,0x351e5d0c,0xc0c350c,0xc0c3311,0x33110b11,0x59110a0c,0x411081e,0x541e5211,0x7307741e,0x68075f07,0x32110e15,0x68110e0c,0x5e1e5e15,0x120c391e,0x630c3911,0x6411121e,0x6b110515,0x5711051e,0x571e6b1e,0x6b15671e,0x2f1e521e,0x2f1e510c,0x5e1e530c,0xa1e7315,0x58110b11,0x6511061e,0x63110615,0xda156515,0x8324d924,0x8d07561f,0x8d076a1f,0xd107561f,0x69076a24,0x8b24ce07,0x5024cf1f,0xd524d607,0xd91f9324,0xe9075d24,0x8c24e424,0x861f7d1f,0x9924ed1f,0xe31f8e1f,0x511f7e24,0x67076507,0x65146407,0xc328e614,0xd07e317,0xe707e31f,0x681f0d07,0xcd10cc10,0xd6168710,0x68168308,0x8710cd10,0xf103ff16,0x4119f219,0x22267324,0xb51fb907,0xb007441f,0xb4249f1f,0xc7073e1f,0xc71fc91f,0xc9073f1f,0xaf073f1f,0xaf1fc924,0xc91fca24,0x3d1fc21f,0x3d073b07,0x3b24ad07,0xa41fb107,0xb124aa24,0x9e07321f,0x9c249e24,0x9c1fb124,0xb1249d24,0xb507331f,0xb524a11f,0xa11fb91f,0xb71fb924,0xb724a11f,0xa11fb81f,0x3c1fc424,0x3424ac07,0x351fbb07,0xbe073507,0x3607361f,0x341fbc07,0xa51fc107,0x1324a824,0x18083618,0x34083618,0xa5181808,0x391fc124,0x3924a507,0xbd1fc007,0xa207351f,0xa5073524,0x351fc024,0xa21fc007,0x371fc024,0x3724a207,0xba24a407,0xb124a41f,0xb11fba1f,0xb707311f,0xb807311f,0xb71fb71f,0xb11fba1f,0xbb07451f,0xba1fba24,0x451fb71f,0xb91fb707,0xfd07451f,0x45180217,0xf908261f,0x1e081e17,0x2617fe08,0x2817fe08,0x99082608,0x4c079b07,0xc3124c12,0xc312431e,0x4312471e,0x4d124312,0xca124c12,0x4e24af1f,0x3f24af07,0x9624cd07,0xde10dc16,0x15201610,0xc8003a20,0x3022c516,0x3120191d,0xfc201400,0x890e0100,0xd3188918,0xfd00fd11,0x8900ff00,0x8b00ff18,0x8b188918,0x8900fe18,0x8a00fe18,0x92188918,0x11189318,0x311dc0e,0x90e0501,0xd70e070e,0x5254c11,0x501020e,0x20e060e,0x50e0601,0x2010201,0xd811d701,0x4e11d711,0x4e11d825,0xd8010025,0xd911d811,0xa254c11,0x18255401,0xe0010b0e,0xe011e111,0xe10e1511,0xc0e1511,0xe111e101,0x170e1611,0x540e170e,0x5411e125,0xe1255225,0x13255211,0xb0010b0e,0x3256618,0x26256612,0x318b101,0xb1256612,0x5b071018,0xde265c26,0xdc07dd07,0x907dd07,0xd707d71f,0xda07d807,0xd707dd07,0x707da07,0xde07e01f,0xdc07da07,0xed07dd07,0x9e0e1c11,0xed255d18,0x1c11ec11,0x1b255c0e,0xb5045e0e,0x8921a121,0x3c1eb807,0x821f8012,0x921f921f,0x5c1f821f,0x1230307,0xe105a223,0xff17b907,0x81eff1e,0x807e11f,0xe107e01f,0xb0260607,0x46260506,0x4e2a4c0d,0x9020812a,0x49208f20,0xc5209118,0x306a900,0xae06ae26,0x1f241e06,0xd2119624,0x120dd10d,0x2d002e20,0x7c00970d,0xca1fe120,0xdb29c829,0xc429c829,0xe0105c29,0x1f11ae0d,0x5b11ae25,0xde00db18,0x5d11ab0d,0x12186618,0x6b251325,0xb311b418,0xe811b611,0xe70de70d,0xe9186d0d,0xde0de90d,0xde0de600,0x6c0de900,0xb50de918,0xb7186c11,0xb500e011,0x22292311,0x1829240b,0x5d102110,0x441f4808,0x4407a11f,0xa1081e1f,0x42081e07,0x4207a11f,0xa11ed21f,0x3f07a107,0x3f1f481f,0xf517f71f,0xbb00e217,0xf011c911,0xc5252e0d,0x6e252e11,0x6e11c518,0xc50deb18,0xe60deb11,0x2811c500,0xc700e925,0xb811c711,0xf4252811,0xf6216c19,0xf9010e19,0xa818a811,0x5a11f918,0x411da25,0x8e188e0e,0x811dd18,0x40e080e,0x40e0301,0x311db01,0x4d11db0e,0x30e0325,0xda11d60e,0x8e11da11,0xde0e0318,0x8e11dd11,0x30047b18,0xaa1a311a,0xef10f416,0xa711f710,0x2e011b18,0x2a092d09,0x23092d09,0x23092a27,0x2a094927,0xbf121109,0x330e3318,0x11120b0e,0xa120b12,0xa121112,0x7257112,0x4d079912,0x4e124e12,0x9c1ecb12,0xed1af307,0xfb227b21,0x96189011,0xe265b18,0xf4067707,0xac08f910,0xaf16ad16,0xcc10f416,0xcd12d212,0x6012d212,0xcd096c27,0x6c12d212,0xca12cd09,0x212cc12,0xb15fe16,0x1315fb10,0x4b160210,0x3013418,0xb70dc125,0xe60dcb00,0xf20eee0e,0xec0ef20e,0x3102eb02,0xaf215521,0x3025681a,0x300e2f0e,0x2f256a0e,0x2811ff0e,0x28012a01,0x6d0e2b01,0x28256e25,0x74256d01,0x1e1f781f,0x6b181e18,0x671f741f,0x801e771e,0x2c092e15,0x24272709,0x1f18b001,0x2018b001,0xad18ad01,0x28012318,0xad18b00e,0xb4011f18,0xac256b18,0x2418ac18,0xad120901,0x1f0e2818,0x9011f01,0x9012412,0x2918b612,0xb2012901,0x9120818,0xac012912,0xb4256f18,0x2918ac18,0xac120801,0x3a067e18,0xcb245226,0xeb245225,0x98209406,0xdd1c971c,0xe80ee30e,0xd210560e,0xd129d129,0xd50bea29,0x56105729,0xd829d110,0x7124d624,0x250aff07,0x25290c14,0xd141914,0x25290c29,0xb290d14,0xd290c29,0xfc28c229,0x8614860a,0x2290b14,0xd290b0b,0x150b0229,0xe241724,0x7c1a5724,0x7c21d804,0xd81a4d04,0x7b1a4d21,0x7b21d804,0xd8047a04,0x79047a21,0x9b21d804,0x1f221e1a,0x5c048f22,0x5c1a4b1a,0x4b04781a,0x581ddc1a,0x59060717,0x86043221,0x5f19c421,0x41045c04,0xbc1a3d21,0x9604a421,0xb21e704,0xba220f22,0xf220a04,0x24220b22,0xf725b71d,0x241b2302,0x131b271b,0x311d501,0x6207110e,0x77067926,0x11070e06,0x380e2707,0x360e360e,0x2712120e,0x2917fa0e,0x29082108,0xf51f4808,0xd7048817,0x49048621,0x60155b0c,0xbc259b15,0xd801c101,0xf725cd25,0xff241523,0xb7241925,0xea04eb03,0x8e178104,0x36178717,0x50193206,0xe911b506,0xda00da0d,0xb511a700,0x5c11a711,0x8011b518,0x16247f24,0xb9261207,0xd225f706,0x59295c18,0x64295c29,0xce295829,0x580b5918,0x5b0b580b,0x5b18ce29,0x5a295c29,0x5b18ce29,0x5c18d029,0x5a18d229,0x56295a29,0x4b295b0b,0x580b5e29,0x590b580b,0x1f0b570b,0xe25ba1d,0x6908eb1d,0x99169910,0xeb169b16,0xe7169b08,0xe716a010,0xa016a110,0x70299816,0x4c0baf11,0x75035e0e,0x590e4d03,0x630e570e,0x59036403,0x55035903,0x550e6e0e,0x6e03650e,0x680e6e0e,0x6803630e,0x630e600e,0x4e036c03,0x5e0e4603,0x750e7003,0x720e7003,0x7503770e,0x770e7003,0x78037403,0x780e7303,0x650e6e03,0x780e7303,0x74036503,0x6f0e7303,0x7703760e,0x740e7203,0x710e6f03,0x760e6f0e,0x480e7103,0x700e690e,0x5f0e6c03,0x4e0e5a03,0x68036c03,0x59036203,0xe50e4d0e,0xeb1cd80e,0xec02eb02,0x4702e902,0x92268802,0x19269226,0xbc268f1c,0xeb17a907,0xca23f11e,0xca240025,0x67b25,0x23f124,0x7b25cc24,0x67f06,0x5606fb24,0xcc25cc26,0xdf240025,0xf0067f25,0xc0240023,0xde23ea25,0xff23ea25,0xff25de23,0xde069123,0x25de25,0xc125c124,0xf0240025,0xeb25df23,0xeb06fb23,0x5f23ec23,0x5f23eb26,0xbf071226,0xde25c025,0xbf25be25,0xeb25de25,0xfb071223,0xbe25bd06,0xe925de25,0xde25bd23,0xfb25df25,0xe025cc06,0xe816eb16,0xba1bc816,0xc001e40f,0x3b0e9c0c,0x75113b11,0xb0cbf0e,0xff16b009,0xb8090708,0x5e090b16,0x63096f27,0x5b146314,0xe9275e14,0xc721c903,0x18198b21,0x18211404,0x6e21f204,0xed0a901a,0xaa097a12,0xe5276728,0x8c0e0a12,0xce11d518,0xcd07cf07,0x1b07cf07,0x1207cd18,0x1417e808,0xd407f308,0xd407f217,0xf207f917,0xce07f907,0xc517c517,0xf907e917,0x960ea907,0x9611490c,0x490e7c0c,0xd30e7c11,0xac15d50c,0x140cae0c,0x8e0cad19,0x190cae0e,0xb40e9219,0xb019220c,0x7c0e940c,0x270cc60e,0xa30cb119,0x360cce0e,0xba0cb711,0x2811230c,0x900e8e19,0x98159115,0x7312741e,0x901e870c,0x741e9815,0xad0eb912,0xbb0eb41c,0xa90ebc0e,0xb00eb81c,0xc102c10e,0xb80ebb02,0x505110e,0xc2224d05,0xbb0ebc02,0xb302c40e,0x4f0eba1c,0x5224e22,0x4224e05,0xc2224d05,0xa102c502,0xc30fa10f,0xc702c202,0xb20ebe02,0xc501c71c,0xa902c40e,0xc60ec11b,0xc20ec102,0xc202c60e,0xc402ca0e,0xb50fa10e,0x810ebd1c,0xe11c9a02,0xb90fa120,0xce02ce1c,0xb502cc02,0xde0ed71c,0xe31ccf02,0xd80edb02,0xce02cd0e,0xd51cbe0e,0xc902d802,0x717bc0e,0xe007e01f,0xbc07de07,0xd707de17,0xd717bb07,0xbb1f0207,0xdf1c5c17,0xd21c9b20,0xe002e41c,0xd902ea02,0xe31cd41c,0xcf02e10e,0xe002e61c,0xd41cce0e,0xdb16da16,0xe402e916,0xdc1cd202,0xe202e70e,0xd602e702,0xd902e21c,0xd50ee21c,0xd20ee51c,0xbd02e31c,0xc61cc71c,0xbb20bc1c,0xb7029620,0xd40ecc1c,0xf00eaf02,0x6d0eef0e,0xb21c6e1c,0xb120b220,0xef1c6d20,0xcee0c,0x100ce20f,0xee0ced0f,0xe80f110c,0xf40ce80c,0xda0cda0e,0xcdc0c,0xe80cee0f,0x100cda0c,0xe50ce40f,0xe402e00c,0x3102e802,0x2c0f321b,0x5d1b2c1b,0x5d1b3101,0x321b3001,0x5f1b2f1b,0x5f015e01,0x5e0f3301,0x311b3201,0x32015d1b,0x311b301b,0x2f1b300f,0x810f311b,0x1b091612,0x391c0f09,0xf1c1402,0x101c141c,0xc023a1c,0xc1c131c,0x3c0fff1c,0x13023c02,0x3e1c0c1c,0x101c0f02,0x3c10021c,0x3e0fff02,0x21c1002,0x7f271b10,0x11091112,0x19127f09,0xb50b3627,0x34277914,0x1025720e,0x2b0fdb12,0x830ff602,0xf800f218,0x8508c70d,0x7010ca16,0x6a248226,0x16248226,0x4c266a07,0xb30f9401,0x7f0bdc01,0xb129af11,0xd51bb70f,0x59101d01,0x59102908,0x8085a08,0xf4030a16,0xf41cf01c,0xf025921c,0x9f16971c,0x2510e316,0x47161d16,0x4d244c10,0xdf06e724,0x49263006,0x4c244924,0xe306e724,0xa603fd19,0xcf1bd019,0x3002051b,0x3225680e,0xb01eb10e,0xbe07831e,0x29187111,0xbd187125,0x29252911,0xbf00e425,0xed11c311,0x2911bf0d,0xbe11bf25,0xc300e411,0x8811bf11,0x20b890b,0xfd0b8219,0xfa0b8318,0x7b0b8318,0x3804ea29,0x5c210f22,0x9d174623,0x74088805,0x74088910,0x89106a10,0x251c2b08,0xed26901c,0x3a081617,0xf810f31f,0xb810f208,0x5a0fb61b,0x8a0fb60f,0x5a0f5a01,0xb801890f,0x5901891b,0x590fb50f,0xb5018e0f,0xd9018e0f,0xd70fb501,0x891bb801,0x19013e01,0x19013b1b,0x3b1b181b,0x3d1b1801,0x3f013f01,0x18013b01,0x17013b1b,0x1c013a0f,0x4726871c,0xb220dd02,0x9720d502,0x3421eb04,0x541c3205,0xef024e02,0x4509c127,0xc3027413,0x7c26c726,0x61277809,0x72161d27,0x12161f08,0xa001cf03,0xbd123b25,0x9f1eb71e,0xa015e80c,0xa829300e,0xf5292a14,0xf2146c0a,0x6148428,0x629340b,0x3414bf0b,0x9314bf29,0xe293427,0xf2135828,0x5d0b5b27,0xd318d029,0x914d414,0xd3294e0a,0x16295918,0x191d141d,0x740b721d,0x740b7429,0xe718ed29,0x7018ed18,0x7018e729,0xe70b6929,0x7718e718,0x77297429,0x7418f529,0x7d20c60b,0xa002a01c,0xa71c8a02,0x1a014b02,0xb01411b,0x34040e04,0x7a043404,0x7a040c21,0xc216821,0x30040c04,0x30040b22,0xb1aaa22,0x32123304,0x321ead12,0xad1eaf12,0x661f651e,0xf91f721f,0x88098513,0x640ba227,0xa7299211,0x67116e0b,0xb80bdb11,0xf10bc529,0xea1f3d17,0x1a081917,0x1a17f108,0x1c17f208,0x1c081a08,0xdd17f108,0xcb29c729,0x5b200e29,0x80008020,0xe007f00,0xe329c620,0xe1105f0b,0xd429d329,0x5529d429,0xed0bed10,0x5a10570b,0x5b105a10,0x5b0bed10,0xed0bf010,0xdc0bf00b,0xde29de29,0xe029df29,0xf429e029,0x6110610b,0xe10bf510,0xd429e129,0xf00bed29,0xe029de0b,0x6129e029,0xe129e110,0xe00bed29,0xdb105b29,0x5c105c29,0x5b105d10,0x5e0bf110,0xbc29dc10,0x5b30f11f,0x5a105b10,0x6d0bee10,0x51ddc23,0x581ddc06,0x6f060517,0x170f691b,0x461b950f,0x461b6a01,0x6a0f1a01,0x430f1a1b,0x431b6901,0x661b1901,0x681b190f,0x660f661b,0x4301970f,0x169701,0x1b6958f3,0xf1a0196,0x1951b6b,0x1951b6c,0x1b6c1b95,0x1960f1a,0xf671b6a,0x1b6c1b6b,0x1c571c20,0x19d027f,0xf6e1b74,0x1b721b74,0xf6e0f6e,0x1b750f70,0xf720f70,0xf721b77,0xf79019b,0xf720f78,0x19b0f79,0x1a00f6b,0x1a0019b,0x19e1b78,0xf6e019d,0x19e1b75,0x19b0f6e,0xf791b78,0xf8003474,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x788bffff,0x751b770f,0x700f740f,0x9f1b790f,0x9f0f7701,0x770f7501,0x770f700f,0x800f771b,0x9101ae1b,0x801b821b,0x821b811b,0x870f861b,0x840f880f,0x840f850f,0x8b0f880f,0x7e01ac0f,0x831b7f1b,0xa61b7d1b,0x8d1b8a01,0xa90f811b,0xaa1b8501,0x8c01ab01,0xa41b871b,0xbb1ca51c,0x8d0f8a02,0x860f890f,0x8d01aa1b,0x8901ac1b,0x8501a61b,0x8801a91b,0x8e0f821b,0x870f8c0f,0x7c017b01,0x9d2a9501,0x9f0da500,0xa51b9f0f,0xc91bab1b,0xd101b901,0xbf01c001,0x7c11d001,0x7c0dfe18,0xfe254118,0xfd25410d,0xe00dfe0d,0xeb1bba01,0xc21bc501,0x341bc11b,0x651b350f,0x770f7701,0xce1b651b,0xd21bd30f,0xcc01f70f,0x1f1bd10f,0x100fe502,0x261bfd02,0x27022502,0x220ff202,0x220ff302,0xcb1bf902,0xeb0fc21b,0xc31bcc0f,0xcd021b0f,0x1c1bcc1b,0x1e0fc402,0xce0fec02,0xfb021f1b,0xd726d81b,0x8b037c26,0x8726d203,0x151b1203,0x150ffa0f,0xf90f580f,0x150ffa0f,0x580ff90f,0xf91b5b0f,0x571b5b0f,0x180ff90f,0xfa1b150f,0x6e23ed0f,0x5d070d24,0x401b2e01,0xff1b2e01,0x4001400f,0x5d0f1801,0xf80ffa01,0xfa1b301b,0x5d1b300f,0x3b023f01,0x3b1c0d02,0xd1c0e02,0x3d1c0d1c,0x3d023f02,0x11b2a02,0x2d015c10,0x36023d1b,0xb61b371b,0xb01b371b,0xf1bb60f,0x5f1f6218,0xe1f5f1f,0xe180318,0x3083018,0x8f038918,0x6126e703,0x4d196b06,0x7e121b19,0xae1ea007,0x3507881e,0x87097812,0x8712e80a,0xe814110a,0xf2227e12,0xf203b51a,0xb503b41a,0xf029e603,0xde29ea20,0xe529cb29,0xf329e00b,0x6010600b,0x5729d310,0xd6105710,0x58105829,0x5b105a10,0xf0105b10,0xdc29dc0b,0x6029de29,0xdf29de10,0xdf106029,0x6029e029,0x57106010,0x5729dc10,0xdc105810,0xaf1ed529,0x78179807,0x76088e10,0x8c107610,0x77107708,0x35107510,0x76107816,0xad107710,0xff032025,0x2808911c,0xc2089516,0xc6179f07,0xec179f07,0x6e07c61e,0x1017061d,0xaa08b723,0xaa08b410,0x9d10a410,0x5d10a410,0x5d109d16,0x9d087a16,0x960c6610,0xa41e9015,0x55116a0b,0x6a10b011,0xa4166c16,0x9e169a16,0xe8169a16,0x62169e08,0x50274627,0xec081609,0xc1081717,0xb91cc01c,0x19031c1c,0xc825a103,0xc710c910,0x7f10c910,0xd3167d16,0x7f167d08,0x1c101d16,0x57085710,0x9085908,0x16103116,0x16161516,0x15086716,0x66086716,0x66161508,0x2f103408,0xce028010,0x95268026,0xdd069606,0xe5069625,0xe9069225,0x3b263806,0x60247926,0x60247b26,0x7b247c26,0xda07db24,0xa807d807,0xf608fc16,0xf508f608,0xcf106608,0xfc1f1f17,0x6b20ab07,0x1f1c721c,0x6a138013,0x68136a13,0x3627b514,0xf106d624,0x3d06f106,0x3d243426,0x3406d426,0x711e5a24,0x6e1e6f15,0x6c0c2c15,0x6c1e781e,0x6c10ff1e,0xff0c431e,0x200ff010,0xe7022302,0xef10e810,0xc110a08,0x60157b11,0x8d114e11,0x92298c29,0x62115e0b,0x5f29670b,0xe2296729,0xda295f18,0xd118e818,0xf318e818,0x5318d118,0x8d18c80b,0xda11510b,0x5d11910b,0x890a880a,0x9316400a,0x93089808,0x98089608,0x58209608,0x5820951c,0x8120981c,0x97209802,0x81028120,0x58209502,0x1b10461c,0x11101116,0x46084c10,0x3c084c10,0xe4104610,0x6c1f9024,0x84209407,0x841c5902,0x59209302,0x5a20931c,0x5a02831c,0x861c5b1c,0x5a028302,0x9602861c,0x5c028520,0x5e1c5c1c,0xd1c5d1c,0x260d2520,0x1b001c0d,0x251ffd2a,0x90d220d,0xf72a1220,0xc1ff21f,0x102a0b2a,0xb00162a,0x162a0c2a,0xd2a0d00,0xe2a110d,0x140d0d2a,0xf2a132a,0x130d100d,0x962a142a,0xa10da000,0xa300a60d,0x72009900,0xe921c904,0xc9047203,0xe103e921,0xbb0ef11c,0xb0029902,0x3f20b420,0xba026e1c,0xa81c8126,0xbc1c8e02,0xc51c7820,0xa220bc20,0x8502a102,0xa902a61c,0x8e1c9302,0xd41c901c,0xaf20dc20,0x8c20d702,0xdc02ab1c,0x8a20d420,0x3c26a91c,0xeb1c3b1c,0xec0a5d13,0xde0a5d13,0xe013ec12,0xdf0eea1c,0xe70eea1c,0xec1cdf0e,0x5e077024,0xe616e907,0x84058322,0x9420de02,0xb61c9c1c,0xb81ca50e,0xb702b602,0xad02b602,0xb102b70e,0xa11ca20e,0xb01ca11c,0xb01ca00e,0xa002b80e,0xaf02b81c,0xb51ca00e,0xb41ca60e,0xb11ca20e,0xb20eb20e,0xb40eb30e,0xa30eb40e,0xbb1ca21c,0xa402ba02,0x5d165b1c,0x5d166016,0x60166216,0xc410b016,0x6c10b808,0xb0166d16,0x6808c510,0x6810b816,0x6a08dc16,0x6c08dc16,0xa6166a16,0x9e1ea91e,0xa41e9e1e,0xa41ea61e,0xa5121e1e,0xcd266d1e,0xce06ce06,0x65243506,0x37243526,0x65247e24,0x7e243526,0xb206b424,0xb5240a06,0xf002f10e,0xbe02c702,0xb51cb20e,0x6f10b410,0xb5165c16,0x5166708,0x4a119625,0x5400d218,0xa300ce18,0x9e119f11,0x1705c411,0x851d8517,0x8f05c01d,0x2416071d,0xe8102510,0x4000f80d,0xfa00f825,0x3f253f0d,0x860df925,0x3f00f818,0x40188625,0x8600f825,0xd602d918,0xd61cc402,0xc402d702,0x6b03661c,0xb30e490e,0x6b11b511,0xe011b518,0x5a00de00,0x5513ea0a,0xa813ea0a,0xa813e928,0x820a5d28,0xeb0a5d28,0x56288213,0xea0a550a,0x560a5713,0xa813ea0a,0x5b288228,0x5b28a80a,0x580a5c0a,0xea0a570a,0x580a5913,0xa813ea0a,0x810a5c28,0x5913e928,0xcd13ea0a,0xf500f311,0x4400f500,0xb80dfb25,0x281d2725,0x8800f61d,0x40dfd18,0xb0120312,0x27120318,0x6e18b001,0x4256725,0x31120012,0x4256e0e,0x6518b012,0x256525,0x6f256e12,0x2211211e,0x5f18a511,0x4c255e25,0x511dc25,0xd70e050e,0xd7254c11,0xd8010011,0xfe00ff11,0xfe188900,0x8911d400,0xfc11d418,0x52188900,0xa0e1325,0x150e1301,0x15010a0e,0xa11e10e,0x1711e101,0xc7010a0e,0xda1ccc1c,0xd21cca0e,0xff0ed30e,0x14084b15,0xdc1cc910,0x190edd02,0x9411e201,0x1c17f318,0xf217f208,0xf3081217,0xdf120b17,0x15010711,0x1118bf12,0xb320b712,0x8f1c7420,0xec068d06,0x9920b025,0xbc1c7902,0xb220b120,0xaf0ef020,0xaf1cdf0e,0xdf02b70e,0xed0eb21c,0xe20ef30e,0xcb0ed60e,0x8702fe1c,0x7d02fd25,0xeb030025,0xf602f51c,0x82258002,0xf9258325,0xe8258302,0xe802f91c,0xf902fa1c,0x8102fe02,0x81258725,0x7e257d25,0x811ce425,0xea257e25,0x851ce91c,0x1ceb25,0x258403,0x841ce603,0xe51ce325,0xe5257f1c,0x7f25801c,0x7f1ce325,0x601ce625,0x7524df07,0x9e030f07,0x9b259b25,0x1001cf25,0x1201cf03,0x101cf403,0xf401cf03,0xf4030d1c,0xf41cfb1c,0xfb03121c,0xaa1cfb1c,0xaa030d0f,0xd03140f,0x990fa803,0xf7259325,0x9803111c,0xfc259825,0xfc1cf71c,0xf701d01c,0x310f3c1c,0xc71b321b,0x9d1c7a20,0x171e6602,0xf5156e11,0x9425951c,0xab259525,0xab25941b,0x9425961b,0x11259625,0x991cf703,0xf5259725,0xfa25971c,0x181cf51c,0xcc25a203,0xa725a801,0x51d0325,0xa91d071d,0x33033625,0xb21d1303,0x36033325,0xaa032503,0xaa1d0825,0x825ab25,0xac25ab1d,0xac1d0825,0x23031f25,0xac1d0803,0x22032325,0x1e032b03,0x7032b03,0xa6031e1d,0x28032025,0x2a032003,0xa6032803,0x27032825,0x22032703,0xe25a603,0xaf03241d,0x680c7625,0x2914e412,0xea25881d,0x3225b71c,0x1325b603,0x3403331d,0xb2033303,0xb225b125,0x3125b625,0x1125b603,0x3303311d,0x3425b103,0xb6032e03,0xb4033225,0xd1d0e25,0xd25b41d,0x2c1d0c1d,0x32032e03,0xc25b403,0x14032c1d,0x3a25b31d,0x15033703,0x3d03351d,0xfc25bb03,0xe10eb602,0xd80ef11c,0xcd057222,0xc816cd16,0x6b056b16,0xd8057105,0xda057122,0xd816ce22,0xce057122,0xf317d416,0xf307fa07,0xfa07f407,0xda07fc07,0xf407fa17,0xfa07fc07,0xf907f807,0x2517d407,0x88092409,0xb51d1b12,0x361d1525,0x861eb412,0x881eb407,0xa6123207,0x3d06b006,0x3c243d24,0x3c06a624,0xa6243b24,0xd0243b06,0xd006a006,0xc2262506,0xd006a006,0x2506c206,0xc206c326,0x6a114d06,0x88116911,0xe2a0120,0xd6194400,0x75066023,0xcd10ba16,0x7c08cd08,0x7c08c108,0xc1162e08,0xbf12c308,0x58096312,0x6612c927,0x6312c309,0xf5275809,0x31fde0c,0x69236b00,0x691dd623,0xd61dcf23,0x2d132f1d,0x1f147213,0xcd262407,0x3706cd06,0x45247e24,0xf125ca26,0x6e25cc23,0x6e06fc06,0xfc06fb06,0x43089506,0xa1089116,0xa0165e10,0x5c165e10,0x310a016,0x6c161316,0x87254108,0x2a11cf18,0x94272b27,0x2e272b12,0xbe129427,0x8d123d1e,0x8b123d07,0x52078d07,0x6b0d6c0d,0xaa078e0d,0x8112251e,0x1b091612,0xa8095209,0xa912a912,0x5212b212,0x9114ed09,0x910c631e,0x6314ec1e,0x8b14ec0c,0xf20c631e,0xf8281709,0xff03a709,0x5903a126,0xc6046f04,0x55153521,0x550c2315,0x27154815,0x23153515,0x2715020c,0x550c2315,0x17150215,0x1715310c,0x44152a0c,0x1715311e,0x311e440c,0x2153515,0x22151f15,0x22152a0c,0x2a1e440c,0x3d150e15,0x3d1e4a15,0x2a151f15,0x4e155615,0x4a150e15,0xe15561e,0x73167415,0xb610b416,0x7308c310,0x530e5116,0xd2035203,0x73047403,0xdd1f0404,0xe1f0a07,0x5a083118,0x2c08311f,0x571f5a08,0x7085608,0xd71f8216,0x4b1f9424,0x6a194a06,0xd8196a19,0xd8064b23,0x4b065e23,0x5c035106,0x5a0e5303,0x49035803,0x8f078c03,0x8c1e9b07,0xbe079007,0x5312501e,0x7d125112,0xdc14de1e,0x5e14de14,0xdf1e8312,0x8314de14,0x630c601e,0x5414e40c,0x820c570c,0x560c511e,0xea14d712,0x50125314,0x87125912,0x631e7e15,0x8e14e112,0x8f158e15,0x8f126315,0x5f126415,0x5c15890c,0x5c125d12,0x801e7f12,0x691e8b1e,0x9814e412,0x81158615,0x920c741e,0x9212631e,0x63126c1e,0x6f0c5112,0x6f125612,0x56126e12,0x6b126e12,0x9812560c,0x8815911e,0x5214ef1e,0xfa125512,0xe814e614,0x721e8414,0x2d1e950c,0x5303f021,0xa80c6521,0xa1127a15,0xe11e8615,0x77127814,0x95126912,0x7a15a815,0x3a094512,0x3012a127,0x22266c07,0x5526cb26,0x1b1c1b1c,0x7d027a1c,0x5918ce02,0x580b580b,0xce18d10b,0x5c18d118,0xce295a29,0xd018d118,0xd2295c18,0x5a295a18,0xd10b5629,0xb9143a18,0xb928cf28,0xcf141f28,0x98141f28,0x9828cf0a,0xcf0ab80a,0xaf098928,0xaf274c12,0x4c12b312,0x4e274c27,0x4e130227,0x9212b927,0x89099027,0x89130209,0x2274c09,0x92274e13,0xb9130227,0x95279612,0x9512b927,0x92098e27,0x8e12b927,0xf279f09,0xf130d13,0xd27a013,0x5098713,0x9b130713,0x98130927,0x87130927,0x98099109,0x91130927,0x7098709,0x91099113,0x98099009,0xd279f27,0x2098e13,0x90279813,0x6e256709,0x2a012a25,0x6711ff01,0x6f037625,0x49035d0e,0x8812a727,0x492a1d12,0x56003e2a,0x5312ad09,0x70125709,0x6d126d12,0xd71e7b12,0xcb087b14,0x86168610,0xce08d716,0x7d26d810,0xb826f703,0xd1215303,0xae099c19,0xcb27af27,0x57295218,0x51295229,0x5718ca29,0xca295229,0x4c295718,0xce0b5429,0xcd09b827,0xb709b827,0xb927cd09,0x3427cb09,0x18099b13,0x1b131713,0x9f099e13,0x1809a009,0x9b099b13,0xa009a109,0xa209a109,0xa209a009,0xa0099f09,0x3527d209,0x38133613,0xbc27d313,0x3927d309,0xbc27d413,0xd427d309,0xba133927,0xd227d409,0xbb133627,0xd2133709,0xbc09bb27,0x38133709,0xc6133d13,0xd5133027,0xbd27d627,0x9c1fa027,0x971f9f23,0xf239d23,0x9f1fa019,0xe23971f,0x971fa019,0xf239723,0xf190e19,0xe1e1819,0x161e1719,0x1806291e,0x291e171e,0xbc134406,0xe127d409,0x90038a26,0xe7038a03,0xe7039026,0xa4270226,0xea03a403,0xea26e726,0x90270926,0xc3132603,0x18134727,0xa509a413,0xe727e609,0xea27db27,0xdd27e927,0xe809c927,0x42134227,0x51134313,0xdd134313,0x5127e927,0xe9134313,0xde134427,0x8309ca27,0x9326eb03,0xed27ec03,0xea09ca27,0xc009bf27,0x4409c009,0xe127eb13,0xa6135627,0xf6135f09,0xde136f27,0x9136809,0x72135c28,0x20137113,0x7c281428,0xe309ea13,0x6d136c09,0xd309da13,0x10281a09,0x10138b28,0x8c137928,0x8d09ef13,0x6f282413,0xd627f613,0x18282209,0x83138128,0xfa282613,0x8209f509,0x82280b13,0xb09ea13,0x76280b28,0x7509f513,0x1909ea13,0x8209ea28,0xee281913,0x78137409,0xe9137413,0x75137809,0x83281913,0x78138313,0xef09e913,0xa09ed09,0x74280a28,0xe809ef13,0x18137009,0x1509f128,0x15137b28,0x7b136d28,0x6e09e413,0x6e09f013,0xf0137a13,0xf009e409,0xec137b09,0x6e137a09,0xe5136e13,0xe509ec09,0x12136f09,0xe5281128,0x12281209,0x13136f28,0x6136f28,0xe7281328,0x7f09e809,0x7f09e713,0x14137e13,0x6281328,0x7e09e728,0x909f313,0xf309e728,0x6281409,0x7c280728,0xe6281413,0x7281409,0x909e628,0x1709f328,0x17280928,0x7d09f228,0xe6137c13,0x9280809,0x809f228,0x1609f228,0xe6137d28,0x80280809,0xf4131f13,0xaa13ab09,0x180a0313,0x71137028,0x73137213,0x73281a13,0x79280a13,0x73281013,0xa137913,0x7909ed28,0x18138113,0x1a137128,0x72138128,0x71138113,0xaa137213,0x9813a913,0xdd28e413,0xdd14640a,0x6514570a,0xdd146414,0x5114650a,0xea145014,0xd6145028,0xea14630a,0x63145028,0xe728ea14,0xe414510a,0x5c146428,0x5c28e414,0x5b145a14,0xd6146314,0xe4144f0a,0x5b145a28,0xe10ad614,0x5a144f28,0x84145b14,0x1283413,0x320a010a,0x36138428,0x4139e28,0xc28390a,0xfb13a00a,0xa709fc09,0x8f138e09,0xa70a0713,0x86283f13,0x8f0a0713,0x90139013,0x9d09fb13,0x25141913,0xb2140b14,0x19141a28,0xdb27cb14,0x9709c627,0x98282113,0x22282113,0x8139828,0xac0a150a,0x43284413,0xe0a0828,0xaf0a100a,0x1913b213,0x18282d0a,0x4f0a190a,0x1c284128,0x1413b40a,0x1c284b0a,0xad28440a,0xb513b913,0xaf0a1f13,0x220a1613,0x4513b90a,0x1d0a2028,0x4e28460a,0x430a2028,0x1a284928,0x2113aa0a,0x19284c0a,0x4a13b20a,0xa90a1428,0x43284c13,0xb3284428,0xb2284a13,0xaa284813,0xb713ab13,0x22284d13,0x420a160a,0xb713b628,0x1e13ac13,0x2413b60a,0x2b0a2a0a,0xa2097f0a,0xc109a109,0x2a0a2b13,0xc313c40a,0x5613c213,0x260a2528,0x2513bf0a,0xc128560a,0x5a285313,0xbc285328,0x5d0a3013,0x610a3128,0x5a0a2f28,0x62286328,0x2f0a2e28,0x5913cd0a,0x6a13c728,0x830a3f28,0x6b286a12,0x43286128,0x4d0a220a,0xb613b728,0xb30a4113,0xd513b913,0xbb13bc13,0xd6285e13,0x75287013,0x450a4428,0x6e28770a,0x47286f28,0x7113d80a,0xd313dd28,0x46287213,0x420a410a,0xd513db0a,0x480a4313,0x7b28740a,0xda0a4b28,0x790a4b13,0x7a287928,0x4c0a4928,0x1813df0a,0xdf287727,0x990a4c13,0x980b0514,0x10b0514,0x3b14980b,0x5413bd28,0x2a13c028,0x7c282b0a,0x4e13e328,0xe413e30a,0x4e13e213,0xe213e30a,0x4d13e413,0x4d13e20a,0xe128520a,0x4d13e213,0x5213e10a,0xe113e528,0x7c13e613,0x500a5028,0xe60a4f0a,0x88179013,0xba179617,0xd119b019,0xd0262519,0x8806d606,0x8a107408,0x6a107408,0x25088a10,0x2429240b,0x9028b90b,0x170a8f0a,0x26141614,0x230a8b14,0x2228bc14,0x210a8a14,0x130a8a14,0x20142114,0x8928af14,0x880a890a,0x8828ba0a,0x9b14120a,0x8828ba0a,0x940a9b0a,0x10141c0a,0xae0a9414,0x99140f28,0xe0a970a,0x850a9914,0x8528b60a,0xb628ad0a,0xd28ad28,0xd28b614,0xbb28ac14,0x9c28ac28,0x8e28bb0a,0x1c27a414,0x9f28bd29,0xa128ab0a,0xaa0a830a,0xa428aa28,0x7d0aa30a,0xfc1e0123,0x9c0a9e1d,0x9c140c0a,0xc28ac0a,0xab140c14,0xaa0a9f28,0xbf0a8228,0x8d141628,0x2428c00a,0xbe0a8c14,0x150a8c28,0x1528be14,0xa028b014,0xe140f0a,0x140a9514,0xa028bc14,0x8b14230a,0x1d0a8a0a,0x11141e14,0x10141114,0x9d141d14,0xaf14130a,0x9b141e28,0x6814120a,0xb1256925,0x2b18b118,0x2b25670e,0x6701280e,0x33107125,0x68088716,0xc812c609,0x5512c612,0x5512c827,0xc8275427,0x21084112,0x791f7918,0x3e08431f,0x6b093b08,0x6a0a6a0a,0x68060223,0xcf236023,0xcf17501d,0x5023691d,0x67236917,0x43175023,0x55264526,0x40264524,0x3f245526,0x55245626,0xd707d824,0xd507d507,0xd617be07,0x5528e807,0x60145114,0xe80ae214,0x670aa928,0x67146814,0x6827b514,0xe9146814,0xec28ec0a,0xa928eb28,0xeb0aa70a,0xcf28ec28,0x6928ed28,0xea28ed14,0xf514690a,0xc328c128,0x9d0b1728,0x68276814,0x1727a427,0x8e27a40b,0xd30b1714,0xf428fd27,0xb009d80a,0xb009c809,0xd1147509,0xb009c827,0x7527d109,0xed0aea14,0xd128ed28,0xd6147527,0x236a1d,0x52236a06,0x52060017,0xfc174c17,0xd0174c05,0xfc23641d,0x64174c05,0x60060023,0x1dcf23,0x31dcf06,0xfc175206,0xca060005,0xdf27ed09,0x5626ca09,0x911c531c,0x81290614,0xd148114,0xd14910b,0x9114930b,0x290214,0x15149529,0x1327a70b,0x9a27a70b,0x9a0b1327,0x13148b27,0x1028ff0b,0x10149a29,0x9a291d29,0x6b291d14,0x19149a27,0x1a0b1b0b,0x1e0b1b0b,0x1a0b1c29,0x1c0b1b0b,0xb0b1d0b,0xb0b2129,0x21148629,0x800b210b,0x200b1d09,0x21085d10,0xb212a910,0xd212b112,0xe8134227,0xa6292827,0xa614a714,0xa90b2714,0x290b2714,0xa614a929,0xa714a914,0x26292514,0x2614ac29,0xa50b2829,0x2614ac14,0xac14a529,0x250b2e14,0xa7292829,0xa714ab14,0xab0b2c14,0xa514aa14,0xab0b2814,0x2d0b2c14,0x2a0b2c0b,0xaa0b2d29,0x2b0b2814,0xaa14a80b,0xaa14a314,0xa30b2b14,0x2a0b2d14,0x2814a329,0xf1132913,0xef132927,0xef147b28,0x7b146a28,0x35147b14,0x35132913,0xf127e813,0xfb27e827,0xfb27f127,0xf109d727,0x6e08be27,0x6e08bd16,0xbc166916,0x6e08bd08,0x6908bc16,0xac10ae16,0x80106b10,0x41164108,0x6b163116,0x87163110,0xeb163308,0xec20f629,0x7116cc20,0xcc056b05,0x3a056b16,0xcb22d61d,0xca16cc16,0xd51d4016,0xd61d4022,0x6e22d522,0xd51d3d05,0xcc22d622,0xd61d3a16,0xd51d3a22,0xd31d3a22,0x6e22d522,0xd422d505,0x6d1d3c22,0x6d16c905,0xc922d405,0xd322d516,0x6f22d422,0x3e1d3f05,0xc91d3e1d,0xc91d3b16,0x6a22d416,0xc91d3b05,0xd4056a16,0x6a22d322,0xc81d3b05,0xc8056f16,0xd716cd16,0x3e056f22,0xd71d3b1d,0x6f057022,0x51060005,0x51235f17,0x105fe17,0xd805fe06,0x106011d,0x5f175706,0x60235f23,0xcf060023,0x40134127,0xaf1ab213,0x29040d1a,0xe11f301f,0xe61f3017,0xe617e117,0xe1080017,0x1a083e17,0x2207af18,0x1c084018,0xaf083e18,0x1b182207,0x15266d07,0x7e266d07,0x7e071524,0x15266324,0x81071507,0x81248224,0x82071624,0x9107ae24,0x3607ad17,0x7b0df925,0x7610bf18,0xcb08cb16,0xd3167d08,0x4024ff08,0x4e250118,0x42274109,0x40274127,0x6f274227,0x11ddc23,0x6d1ddc06,0x1175723,0x571ddc06,0x60236d17,0x60175723,0x57235f23,0xd8060117,0x15236f1d,0x99259703,0xef28f425,0x1d27c90a,0x151f7518,0x191f7518,0xc5181518,0x37098114,0xee098129,0xee293712,0x370b0212,0x36293529,0x3614c429,0xc514c629,0x3614c414,0x3914c529,0xfa0af413,0x40293f28,0x81139c29,0xe70b4128,0xc709b313,0xe7134d27,0xe20b4113,0x3f294013,0xd20b4229,0x47294814,0x29139229,0xce0b4328,0x1114cf14,0xd229480a,0x47284014,0x3f294829,0x95213928,0x38213f19,0xc80b4029,0x3a14c814,0x39293929,0x380b3f29,0xe814e629,0x8614fb14,0x5b125815,0x8a14e012,0x99159915,0x52158815,0x6714f70c,0xf714e512,0xf283f09,0x9c0a090a,0x9c09f613,0xf6139913,0xf09f709,0xf28200a,0x200a090a,0x2009f628,0x1e0a0928,0x99281f28,0xf6281f13,0x1d139909,0x9f138528,0x1e138513,0x60a0628,0x99281e0a,0x84283413,0x84283613,0x36281d13,0x9e139f28,0x36283613,0x9f281d28,0x85139f13,0xa40a0613,0x3e139f13,0xa30a0628,0x9f283e13,0x3e0a0613,0xa4282b28,0xa60a1313,0x3e13a413,0xa613a428,0x3a0a1313,0x3c283b28,0x2b283c28,0x2b281b28,0x290a1328,0xc13a028,0xc281c0a,0x1c283a0a,0x29282b28,0x3a282828,0x1b283c28,0x3a281c28,0x94281b28,0xff09a713,0x1b09a709,0x2b09ff28,0x1b282828,0x92282928,0x28282813,0x1b09ff28,0x2809fd28,0x92139228,0xfd282713,0xfd139109,0x91282709,0x2a282713,0x9109fe28,0x2c282a13,0xa80a1228,0xa20a1213,0xfe13a813,0x2f282a09,0x2c282a28,0x31282f28,0x2f09fe28,0x4013a828,0x40282c28,0x2c282e28,0xa1282428,0xa1138c13,0x350a0213,0xa1138c28,0x20a1013,0x2f28310a,0xf8282e28,0x2c09f909,0x2d282e28,0x2c282f28,0x35282d28,0xa10a1028,0x35282f13,0x2e0a0228,0x9309f928,0x8909f913,0x89139313,0x93282113,0x97282113,0xe8139313,0x9514e614,0xeb0c6815,0x55125014,0xe5082f1f,0x751e8807,0x261e9812,0xa6212721,0xb719a619,0xb7199e03,0x9e03c703,0x2603cf19,0xd819a621,0xd714f114,0x6a14f114,0xe314d70c,0xb403d903,0xab03d919,0xb319b419,0xe303e019,0x21212003,0x25212221,0x20199921,0x9a199921,0x9a212019,0x20212119,0x1b211d21,0xa212d21,0x9197721,0xb719a621,0xb7199e03,0x9e03c703,0x27212619,0xa619a621,0xcf199e19,0x98269303,0x3c269926,0xbc213e21,0xa6213e19,0x7819bc19,0x621e8a0c,0x12153f0c,0x341e3415,0x3f0c121e,0xff150415,0xa0c0a14,0x114ff0c,0x34150715,0xc150a15,0x1e0c0d0c,0xfe14fd15,0xfe1e2c14,0x2c1e3814,0x2c14fd1e,0x2c154d1e,0x4d0c351e,0x18151615,0x50c1a15,0xc0c0d15,0x60c0c0c,0x35150515,0x4215391e,0x15154215,0x151e3515,0x35151815,0x40154a1e,0x70c1315,0x20155015,0xbf10b015,0xbf10b708,0xb708c108,0x2e08c110,0x2e10b216,0xb210af16,0xb110b210,0x4308c110,0x1f152415,0x221e310c,0x94152315,0x68127815,0xec0c680c,0xc7159414,0xc322c822,0x5e15a322,0x2415900c,0x570c2a15,0x40152c15,0x3f153f1e,0x2b152315,0x281e3f15,0x291e4c15,0x4c15220c,0x1115221e,0x281e4c15,0x2e1e3f15,0x1e1e2e1e,0x1e15090c,0x91e480c,0x46152115,0x501e481e,0x27154f15,0x4815420c,0x2a154915,0x5315240c,0x40155315,0x21152c1e,0x24152015,0x80c0a0c,0x1c152015,0x1b154415,0x4615440c,0xa0c1b15,0x79111f11,0x3a150b15,0x1d151015,0x815200c,0x1d155015,0x815360c,0x51152015,0x430c1815,0x45152415,0x1f0c221e,0xfe151f15,0x471e4514,0x4d1e451e,0x1c1e4515,0x25154d0c,0x1e1e3e0c,0x2d151c15,0x271e4d15,0x4e154f0c,0x1e1e4815,0xb0c0b0c,0x4615210c,0x250c261e,0x2515050c,0x51e3d0c,0x211e4615,0x90c0915,0x2415510c,0xb708b40c,0x64166408,0x9d166316,0xe156810,0x610c3211,0x64110515,0x53110215,0x1155e1e,0x51155e11,0x5a19ef1e,0x4d19d921,0x1d154a1e,0x1c151d15,0x59152d15,0x811071e,0x6110711,0x481e5811,0x5f15750c,0x801e641e,0x750c5015,0x840d9b20,0x4b156120,0x1e111a0c,0x3f157611,0x1e11020c,0x4d111911,0x1811070c,0x79110711,0x380c3d15,0x7215730c,0x7c156815,0x94157e15,0x8b159215,0x961e8b1e,0xa7159415,0x8914f715,0x6c15841e,0x61126f0c,0x7615a60c,0xd203fc0c,0xd2216119,0xe819d319,0xd2216119,0xd319e819,0xe903f119,0xd403f119,0x3040519,0x503f104,0xf319d404,0xf319ee03,0xdf03f403,0x5603f419,0x5619e621,0x5719d621,0x5619e621,0x57215721,0xe619d821,0xfc03ff19,0x2040003,0x61040004,0xfc040021,0xdf216103,0xef216719,0x5a216719,0xf419ef21,0xdf19e603,0xdf03f319,0xf319ef19,0xee19ef03,0xe819e919,0x619d319,0x5216404,0x3216404,0x3040504,0xf119e904,0x101e1203,0xe0c851e,0xd040b04,0xf0040b04,0x9040d19,0x68040c04,0xf0040d21,0xf0216a19,0x6a040919,0x6a040a21,0x68216821,0x9216a21,0xf4216c04,0x8719e519,0x3e0ca10e,0xd00e8211,0xd00e8115,0x810ca015,0xcd0ca00e,0xcd0e8115,0x8115cf15,0x221e310e,0x14152315,0xac191319,0xdf0cb90c,0x7415c515,0xec0ccb0e,0x2815b715,0x15eb19,0xae03ad21,0x3ad03,0x41c21,0xfd19fc21,0xfe19fc19,0x19fd19,0x1c19fd21,0x1c1a0004,0x1d041d04,0xfd041c04,0x1f217719,0x1f19ff04,0x1d1a0004,0x1e19ff04,0x1e217704,0xfe19ff04,0x7619fc19,0xd3041e21,0xba0ea90c,0x6a10b80c,0x8410b016,0x8b042c21,0x221d7721,0x9b05cb17,0x32093a12,0x78162627,0x2a104808,0xbb04511a,0x22045121,0x2a21bb04,0x1a044704,0x9d04471a,0x321a1a21,0x3521aa1a,0xbb1a351a,0x22042221,0x3e042a04,0x1a042a04,0x3e043e1a,0x351a3204,0xa0044c1a,0x63046321,0x6621cb04,0x6821cb04,0xd3046604,0xe303d919,0x1e011d03,0x1e0e2301,0x2311fb01,0x6011fa0e,0xfa256225,0x1d256211,0x2a082901,0x2a1f4e08,0x2b17fa08,0x17241508,0x1706a524,0xa5240e24,0x5421aa06,0xa721b904,0xba1a3721,0x3c1a3921,0xca1a2d1a,0x731dcc1d,0x604b423,0x61a9e22,0x9e220522,0x1926031a,0x2260224,0x1c06b226,0xb306b224,0xe5241c06,0x2e1f2517,0x2e17e51f,0x4080a1f,0x321f2b08,0xe51f2b1f,0x32080b17,0xd1f2b1f,0x291f3008,0x29080c1f,0x3108031f,0x29080c1f,0x31f311f,0x32080408,0xa17e51f,0xb080b08,0x2b080d08,0xe006931f,0x6d23ef25,0xb21c6e1c,0xb120b220,0xdf1c6d20,0x961a5d21,0x491a5d21,0x34219604,0x33187525,0x31187525,0x33187625,0x76187525,0x35187618,0x350df425,0xf4187925,0xea25390d,0xf4253300,0x7611bc0d,0x3811bc18,0x33253925,0x3911bc25,0xa921fb25,0xf721f704,0xb304aa21,0xfc1a6d04,0x6e21fd21,0xac21f21a,0xfa04a704,0xaa21f921,0x7804ab04,0x771a731a,0x8e1a781a,0xac1a751a,0xf81a7304,0x6f1a7621,0xac21f91a,0x3619b904,0xab1a8321,0x8003da19,0x7421fb1a,0xad22171a,0x8c21fb04,0xb004bf1a,0x2004b204,0x8f1a9d22,0x1521ff1a,0x8c04c322,0xca1a9f1a,0x161a8b04,0xb222322,0x1e1a8622,0x8204b922,0xa2221b1a,0x77289912,0x9828990a,0x770a7728,0xa2094b0a,0x41094b12,0xa812a227,0xf717a717,0x890d021e,0x410dad20,0x42094009,0x9e094009,0x63094212,0xd510c610,0x7f10c608,0x3d08d516,0x6a200f00,0x8a206a20,0x470d3e0d,0x1c161d10,0x10161c16,0x2e104710,0x2f222d22,0x2c222d22,0x2b1aa622,0xa6222d22,0x2f222b1a,0x4a222d22,0x4b273e09,0x3d273e09,0xd012a127,0xfffff147,0x21c69dff,0x459044e,0x1ab6222c,0x24f32154,0x182900b1,0x18270db6,0x18270db7,0xdb90db8,0x8991647,0x22500898,0x4e02232,0x6780679,0x1ac60711,0x1ac30500,0x224604ff,0xe551ac2,0xe730e56,0x1abe1ace,0x21f804f9,0x21fd1a6c,0x1acc0508,0x22592243,0x19872106,0x4f604f4,0x226b215f,0x19821996,0x22581adc,0x3e604fe,0x5191996,0x1ad10510,0x22710500,0x529052a,0x8af1099,0x8b208b2,0x1657109c,0x169510e8,0x10d810d8,0x10e808e4,0x10db08e4,0x10e81696,0x10ea1696,0x18300db6,0xdc600b3,0x18420dc9,0xdcd00bf,0x6e70dcc,0x68e067e,0x25c5068e,0x6730674,0x6e706df,0x674068e,0x1dc706e7,0x23681749,0x6022368,0x11be1dc7,0x187200e2,0x6ff2651,0x6ff0679,0x67a2657,0x24650679,0x10ab2651,0x166710aa,0x165c10aa,0x1a621667,0x22840535,0x5371af7,0x5371a62,0x1a6204a1,0x166a10b8,0x161d10b0,0x8740872,0x1ede178d,0x1ede178f,0x178f07ab,0x129b129a,0x129b093b,0x93b093c,0x98628ab,0x98a098a,0xa832797,0x17c01f11,0x7251f12,0x267806ac,0x19a51991,0x29b71b07,0xbcd1188,0x11821181,0x29b70bc9,0x119129b6,0x90710fd,0x229b08ff,0x211e19ad,0x8de1699,0x8de10df,0x16921690,0x8de10df,0x17de1692,0x17e00809,0x15fe15fc,0x84e1602,0x1602084f,0x1dd0174c,0x12902363,0x128d2725,0x17ed1f37,0x17ee17ee,0x1f371f35,0x864102b,0x863160e,0x160d102b,0x102c085e,0x161a0865,0x86a0869,0x10330869,0x246c086a,0x26282469,0x24542628,0x16402456,0x107d163e,0x883106f,0x8831076,0x10760884,0x88c0884,0x8b01076,0x8ae08b2,0x22ee1d52,0x96422e4,0x272a0933,0x272c272a,0x272c0964,0x12c7275b,0x272c0964,0x29ec12c7,0x294520ea,0x6fe2653,0xe92656,0x18772528,0x25232528,0x18771877,0xe92535,0x18762535,0x21472532,0x47003c3,0x84a15fd,0x84a15f8,0x15f8100a,0x1016100a,0x1ea815f8,0x1ea71ea2,0x1d6a1701,0x101b1d69,0x1028085c,0x86c1618,0x8ab1616,0x109b1096,0x1604161e,0x17d9101a,0x1f1e07fd,0x8c410b8,0x8c408c5,0x8c308c2,0x88e1636,0x88e088c,0x88c1076,0x88d1075,0x16931636,0x8e010d4,0x17492368,0x17491752,0x5ff1dd5,0x16641662,0xa8e10a7,0x97c28b1,0x277828b1,0x54e097c,0x176e0556,0x95612ad,0x16550955,0x10941093,0x114115bd,0x114115ef,0x15ef0ca3,0xde60dfc,0xde60dfd,0xdfe00de,0x22b11763,0x106c22b4,0x10700882,0x10720882,0x7fd1070,0x7fb17da,0x7f617da,0x22a407fb,0x17701771,0x177322a6,0x176722b5,0x22b5054c,0x55c22ad,0x177122b8,0x54d22a4,0x167f10c9,0x167e167d,0x8d110c8,0x177422b6,0x10f11765,0x10ef10ee,0x16a810ee,0x25510ef,0x269c26a6,0x55d055a,0x1f710551,0x18161f6c,0x83a1f6c,0x88d1816,0x10771636,0x7c607c5,0x95b07c7,0x12be12bb,0x12c112be,0x166f2750,0x8c01670,0x16731670,0x121108c2,0x12131207,0x18b51207,0x1213256c,0x256c1207,0x12118b5,0x256c256c,0x257b1209,0xe3d257b,0x8bd1213,0x8b908b8,0x1ee71797,0x88291ee8,0xfffff305,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x1d98ffff,0xa2122012,0xa2121d1e,0x5f121a1e,0xb8095d09,0xb7095d12,0xa12b812,0xb099213,0xc11ef40b,0xc117a407,0xa407c207,0xdd06de17,0x32263206,0x4c244b26,0x49244c24,0x8263224,0x6090909,0x2090309,0xa5090509,0x51109208,0xaa109216,0xdb109808,0xbc17bd07,0x24092517,0x24128909,0x89128809,0x8b168512,0xbc168916,0xe01f0717,0x607e007,0x617bc1f,0xda07d91f,0x3d093c07,0x3d273109,0x3e129c09,0xd416da09,0x7f057716,0x7716d905,0x8016dd05,0xd716dc05,0xd11d4216,0xd71d4216,0x4922de16,0xd5057e1d,0x4222dc16,0x4922de1d,0xdc16d51d,0x4516db22,0x7d16d41d,0xd522db05,0xdf16d816,0x4a1d4a22,0xde1d4b1d,0xe01d4b16,0x6116de22,0x501f511f,0xde11d01f,0xb400e000,0x95179b07,0xe608f017,0x316a110,0xbe1f021f,0x50175317,0x3174f17,0x507d21f,0xfe07d21f,0x921f051e,0x93093612,0x561f5512,0xc618061f,0xc212c512,0x9701cc12,0x9703130f,0x1301bd0f,0x6b12d003,0x5a275f09,0x5c095b09,0xbb095b09,0xbb095c12,0x5c12be12,0xc112be09,0x2c275012,0x2b252d25,0x7111be25,0x71252c18,0x2c11bd18,0x2b252c25,0xe411be25,0x2c11c300,0x2911bd25,0x5252c25,0xf5011725,0x3086c11,0x9a085d16,0x9b1d6505,0x99059b05,0x98059a05,0xf722f805,0xf622f816,0xfc16f716,0x1230316,0x941d6323,0xf516f505,0xfb059616,0x6316fa16,0x9e16f51d,0x9c1d6605,0x9b1d6605,0x671d6505,0x1059f1d,0x1b27b223,0xaa099e13,0xa9170705,0xdb16d505,0xfb1d4122,0xf409f509,0x19138309,0x34138e28,0x320a0128,0x95283228,0x4d138413,0xc729500b,0x53295018,0x5318c729,0xc718c529,0x4f18c518,0xc718c70b,0x4d0b4b18,0x4d0b4b0b,0x4e294e29,0x4b294f29,0x4d13ae0b,0xb30a2228,0x43284913,0x49284328,0x210a1a28,0xab13aa0a,0x44202913,0x8a008a0d,0x290d8b00,0x410d8b20,0x4f202800,0x280d8b2a,0x4d004120,0x4000402a,0x282a4e00,0x292a4f20,0xc20d8b20,0xc40a2913,0xe231413,0x781d7817,0x7923181d,0x7a1d791d,0x7a23141d,0x7405b21d,0x7a23141d,0xb21d741d,0x74231105,0xd23111d,0x7a1d7417,0x1a1d791d,0xbf046c23,0x69046921,0x3f21c204,0xc11a3f1a,0x6b046b21,0x69046c04,0xb2231104,0x781d7b05,0x75170e1d,0xa505a61d,0xe1d7505,0x6c231617,0x7505a61d,0x6c170e1d,0x1523161d,0x12231123,0x121d6d23,0x6d1d7223,0xb01d721d,0xb01d6e05,0x6e231705,0x623171d,0x6d1d6e17,0xac230d1d,0x15230d05,0xd231423,0x74231423,0xd05ac1d,0x721d7423,0x6d1d6e1d,0xb23171d,0x7105a817,0xaa17071d,0xc0171605,0x9b1d8405,0x4140628,0x27171614,0x27171b23,0x2f1d8923,0x8c232823,0x2a1d911d,0xc71d8e23,0xc605c405,0x46233005,0xbe064406,0x19171523,0xc11d9617,0x93233105,0x92232a1d,0x8b1d901d,0x9423281d,0x8a1d891d,0x8a232e1d,0x951d8b1d,0x1c23251d,0x241d9717,0xc51d9723,0x291d8c05,0x86232d23,0x2b1d931d,0x901d8d23,0x8f232d1d,0xc6232b1d,0x1705c305,0x83233017,0x9a108110,0x381da008,0xce05ce23,0xa005cd05,0x5821c01d,0x441a4404,0x6a21c21a,0x94140104,0xc20a7428,0x3606c306,0x34243624,0x3406bd24,0xd243224,0x3406bd26,0xca260d24,0x1d1d7605,0xb8231f23,0xb9231305,0x905b405,0x7205b017,0xb617111d,0xb1095812,0x52095812,0xcf12b109,0x3416c622,0x5b1f591d,0x2e180d1f,0xc11d2d1d,0xc122cf22,0x2e22c416,0xce05671d,0xd222dd22,0x68057716,0x2f16c705,0x3505681d,0x321d331d,0xbe1d331d,0xca22c916,0xc216be22,0x6022c916,0xcd1d3105,0xc622ce22,0xc022cb16,0x2a16c222,0x661d2b1d,0x611d2b05,0x651d3005,0xc422c005,0x6116c316,0x6422c505,0xc4056505,0xbf22be16,0xc622c522,0xc6056322,0x62056922,0xcc16c505,0xb822bf22,0x57095612,0xda1d4e09,0x7b16d916,0x821c7d1c,0x9d20d31c,0xc020c002,0x8c0a8d28,0xa20aa00a,0x8a14150a,0x2314220a,0x990a8514,0x9c0a970a,0x8428ac0a,0xab0a840a,0xab0a9e28,0x9e0a9f28,0xbd0a830a,0xa30a9f28,0x830aa10a,0xbf28a90a,0xa30aa428,0xa90a830a,0xa5142528,0x130a820a,0x2028af14,0x9b141e14,0x1c14120a,0x8728b514,0x1128b50a,0x860a8714,0x95140e0a,0x950a860a,0x8628b30a,0x8728b30a,0x9428b30a,0xb0a870a,0xa505a423,0xa405a505,0x15170a05,0x96171917,0x8c23281d,0xc41d911d,0x3005c605,0x3105c123,0x271d9323,0x2f1d8923,0x1c232523,0x2e1d9717,0x89232f23,0x931d861d,0xc7232b1d,0x2a1d9205,0xd61d8123,0x2905d205,0xa2233b17,0xa405d41d,0xc71da31d,0xda1ccc1c,0xa705d60e,0x44233f1d,0xd905da23,0x5105ec05,0x9c235423,0xfe0a9e0a,0x461da328,0x2d172e23,0xd8172b17,0x9173005,0x47170023,0x705df23,0x301dac23,0xb5173117,0x3b05ec1d,0x3205a117,0x4e1db117,0x62174523,0xe323001d,0xea234905,0xe9173605,0x49173505,0xe305e323,0xfd1db405,0xb305e822,0x9c059c1d,0xe805e205,0xe705e205,0xea1db905,0x4a173905,0x34234b23,0xb51db517,0xe117331d,0x97173305,0xe705e105,0xb81db205,0xfa1db21d,0x4c1db822,0x381db623,0xb71db617,0x4217381d,0x9d089616,0xe6234e08,0xfb05e505,0xb0059d16,0xbf1dbd1d,0xb805e91d,0x5322f71d,0x34235123,0x59234b17,0x391dc423,0xf4235c17,0xf41dca05,0xcc1dc505,0x5e17411d,0xd21dcb23,0x4c1dd01d,0x5e174717,0x5e173e23,0x3e174123,0x4f173e17,0x4f174723,0xc8235323,0xed23531d,0xed1dc805,0x405f005,0xc105f006,0xc106041d,0x41dbe1d,0x421dbe06,0x42060417,0x405f117,0x4605f106,0x461dc917,0xc9235c17,0xca235c1d,0xf11dc91d,0x41dc905,0x471dc806,0xc7234f17,0x5805f21d,0x55235823,0x55235d23,0x4805ef23,0x55235d17,0xce174823,0x8c068325,0xfd068306,0xfd068c23,0x8c23fc23,0xef068c06,0x5225ce06,0x2236b17,0x67175206,0x67236a23,0x6a236923,0x5e1dcb23,0x54175623,0x6b060217,0x5a237123,0x5c237017,0xd4056e17,0xd8172b22,0x4905dd05,0x51084f08,0x7709b108,0xf6147914,0xbb28fc0a,0x3205a109,0xe01db117,0x9a1db805,0xe71db805,0xbf059a05,0x3605ea1d,0x4d05e517,0xbb234e23,0xb01db71d,0x621bb21d,0x600f601b,0xb20fac0f,0xcb0fac1b,0xcb1bb201,0xbb0fa901,0x571dbc01,0x79235623,0x9a08e808,0xf11dc216,0x9e174205,0xc91c7b02,0x73162220,0x3b103b08,0x22104810,0xc31c8616,0x4702a120,0xd71da923,0x390b3a05,0x4f0b2c0b,0x55294e29,0xfa15a829,0x6f14fb14,0xed29700b,0x9911e718,0x99255a18,0x5911e618,0xf40b7425,0xed0b7218,0xe7297018,0x69297018,0xe718e70b,0x74297718,0xf5297729,0x740b7418,0xe718ed29,0xe20b6718,0xe20b6618,0x6918e418,0xe20b6629,0x66296918,0x670b770b,0xf50b770b,0x670b7618,0x760b770b,0x6a296c0b,0x6e296929,0xe9296e0b,0xe218e418,0xec296718,0x6f18ef18,0xe618e329,0xe618e518,0xe8296f18,0xf118ef18,0xf118f318,0xf318f218,0xe818e618,0x6f18e518,0xe818ef29,0x6b0b6918,0x6b0b6829,0x6818e329,0xe70b680b,0xe80b6918,0xf318ef18,0x65297618,0x6518f60b,0xf618e00b,0x6a18e018,0x6a18df0b,0xdf0b700b,0xf00b7018,0xf018df18,0x64297318,0x6e29730b,0x6e296729,0x670b6e29,0x64296729,0xe529730b,0xe30b6818,0x6418f018,0xe018df0b,0xf618df18,0xf30b7118,0x7618f218,0x7118f629,0x790b650b,0x5018e10b,0x510b4d29,0x5a0b5529,0x57294f0b,0xc50b5c0b,0xa40bb318,0x74118629,0x1d162008,0x23087716,0x24162416,0x73103a16,0x22087308,0x7d162416,0xca295729,0xc507c618,0xc507c207,0xc21ef707,0xf61ef707,0xf607c21e,0xc11ef41e,0x4b0b8c07,0xe418c70b,0x7b0b6e18,0x760b6529,0x760b8f29,0x8f190429,0xb414330b,0x9a0a9a28,0x3328c70a,0x2a28c714,0xa6143314,0xd00ab70a,0x3328d028,0xba142a14,0x950bd729,0xc00bd711,0x7b11950b,0x6b0b6e29,0x5f10ac0b,0x8710a216,0xd20bcb29,0xbc0b960b,0x8c119429,0xc70b4b0b,0xc0117a18,0xb70bd70b,0xc10bb00b,0x8229c129,0x8229c211,0xc229b911,0x92098f29,0x97279709,0x8098a27,0x4098a13,0x8f130813,0x8279709,0x8098f13,0x8c279313,0x93098f09,0x3d14bf27,0x8c278f0b,0xbf279309,0x8c098d14,0x8c278f09,0x8f14bf09,0x7b278f27,0x7b098d0a,0x514070a,0x50a7b14,0x6279414,0x7b098d13,0x7b13060a,0xc27940a,0x9c130a13,0x6279c27,0x6279d13,0x9d279413,0x1f262427,0xe261507,0x5c1f6018,0xba090a1f,0x8090816,0x4090509,0x81f5309,0x81f5218,0xce177e18,0x81f521e,0xe21ece18,0xdf080117,0xe117e217,0xf207ff17,0x440be50b,0xbc17bd0b,0xc607da17,0x5e29dc29,0xe717f010,0xe7081117,0x11081017,0x500bf508,0xea105110,0xc807eb07,0xc717c817,0xc707ea17,0xea07e917,0xc507e907,0xc417c417,0xea17c317,0x4b082907,0x4b1f481f,0x481f461f,0xf229e81f,0xf120f120,0xe620f020,0xee29e629,0xeb20eb20,0xe40bf920,0xe929e429,0xe920e720,0xe714ce20,0xe314ce20,0xe720e729,0xe520e620,0xf820e620,0xe520e50b,0xe70bf720,0xe30bf720,0xe329e520,0xe5294520,0xec294529,0xe529e520,0xe829e729,0xf129e829,0xe629e620,0xe720eb29,0xe420eb20,0xe520e729,0xe729e829,0xe629e820,0xe320e729,0xe80bf620,0x4f082b20,0x11f4d1f,0xf620e80c,0xf220f10b,0xdf0bfc20,0xd41f0407,0x3b129a07,0x3b0a6909,0x690a6b09,0x8a0a6b0a,0xf10a6828,0xe60bf829,0xc907ed20,0xed1f1217,0xbff29,0xf70c000c,0xf70c0220,0x20c0120,0xf90c010c,0x20c0220,0xee0c030c,0xfb29ee29,0xfb0c0220,0x229ef20,0xf029ef0c,0xfc20fc29,0x429f120,0xf20c040c,0xfd20fd29,0xf429f320,0xfe29f429,0xfa0bfa20,0xf429e90b,0xf429e929,0xf429f420,0xfb29ea20,0xfc0bfb0b,0xfd0bfd0b,0xf60bfe0b,0xeb20f620,0xec29ec29,0x229ed29,0x29ed0c,0xef0c020c,0x220fc29,0x420fc0c,0x40c020c,0xf420fd0c,0xfb20f429,0xfb29ec0b,0xec0bfd0b,0xf60bfd29,0x429ec20,0xec29f40c,0xf429f429,0x9529ec20,0x880b000a,0x70b0014,0x7148829,0x88290829,0xfe148814,0xb30a940a,0x880a9528,0xc16ba14,0xc10fe09,0xfe090d09,0x910fe10,0x1c16ba09,0x3d17f308,0x3a08171f,0x1008161f,0xd1f3208,0xb080f08,0x31080a08,0xe708101f,0xda0de317,0xd500d50d,0xdd11b000,0x2211b000,0x2400dd25,0x2a256501,0x2225650e,0x590e2a01,0x71f521f,0xce1f5218,0x717851e,0x851f5218,0x8c164c17,0x8c164d10,0x4f108f10,0x40122616,0xad079112,0xaa109808,0x85238308,0x851df323,0x841df023,0x851df323,0xf0238423,0x8406171d,0xef1df223,0xf31df11d,0x831df21d,0x881e2823,0x21238423,0xf1df706,0x92061827,0x3e270f23,0x3c273109,0x51f0309,0x8b17bb1f,0x88206e00,0x8604872a,0xab21d704,0xb901c91b,0xb71f0401,0x6e1f0917,0x7121f321,0x6224651a,0xc6071326,0xc11ec71e,0x71103d1e,0x38162408,0xe606e926,0x4d06e906,0x4d06e624,0xe6244c24,0xc400ba06,0xa800b90d,0xa401c41b,0x9501c40f,0x950fa40f,0x6f1b0f0f,0x131b6f1b,0x130f951b,0x950f161b,0xb10f160f,0x510f951b,0xfc15fa08,0xcf209115,0x1000c40d,0x1123a019,0xa1062c19,0x28191023,0x6d0e2b01,0x6e256d25,0x6e012825,0x28012a25,0xe5275e01,0xb212cf0a,0xad10af10,0xdc17db10,0xdc17d117,0xd117e417,0x2017e417,0x5e1f1c1f,0x55082f1f,0xc184f1f,0xd250925,0x9d185025,0x9e119f11,0xad00d011,0x14251311,0xa40ddb25,0x5d186411,0xda11a718,0x210de100,0x6811af25,0x780e6e0e,0xa911a703,0xa3251611,0xfd031825,0x108511c,0x1160016,0x84d16,0xfc11d416,0xfc254b00,0x4b254a00,0x89254a25,0x4b254b18,0x8b00ff25,0xfe188b18,0xdd254b00,0x40e0811,0xdb010401,0x4d254d11,0x40e0325,0xda0e0301,0xda010411,0x4188e11,0xde188e01,0xc5010411,0x461a3f21,0xc21a3f1a,0xa51a4621,0xa610a810,0x6510a810,0xbb08bb16,0xbc257718,0xf6188818,0xe90dfa00,0x2e222d04,0x28012322,0x2801250e,0x25011f0e,0x85180701,0x851f4517,0x45178417,0xa017841f,0xa01f4507,0x45082707,0x770e781f,0x770e8f0e,0xb20e740e,0x770e8f0c,0x740cb20e,0xac15eb0e,0xb219130c,0x540e740c,0x5318c50b,0xed1bec29,0x520fe11b,0x4e294f0b,0x7e297a29,0xff29780b,0x8d297d18,0x8a048b0b,0x8a048004,0x80047f04,0x52048004,0xdc048b1a,0xa619a703,0xea18ed19,0x6e0b6f18,0xe9296e0b,0x790b6518,0x6c18e10b,0x69296a29,0xb6119129,0xff115729,0xec18ef18,0xbd195318,0xa9194123,0xdd0cba0e,0x48064615,0x48064819,0x3e064906,0xad063819,0xad23b523,0xb5063623,0x3e064823,0x3b063819,0x38064606,0x48064606,0xb5063806,0x38194423,0x39194419,0x3823a806,0xbf194419,0x43063923,0x4323c006,0x45194506,0x4323c006,0x45064506,0x4523bd19,0x38063b06,0x3823b506,0xb5063b19,0xc0063923,0xbf23a823,0x46194423,0x44194619,0xbe23a819,0xbb064423,0x3f064423,0x3f23bb19,0x4223bf19,0x4623bf19,0x3f194219,0x40194219,0xac23ab19,0xaa23aa23,0x3223a923,0x36193219,0x3623aa06,0xaa23ad06,0xb4064023,0xbe193e23,0xaa29a90b,0xb023af29,0xae23ae23,0xb3063723,0x3723b323,0x3723ae19,0xae23b219,0xb823b923,0xb8193c23,0x3c193b23,0x3a193b19,0x3f063f19,0x3c23ba06,0xb423b219,0xde064023,0xba15dd15,0x1f0cba0c,0x780e9619,0x6c111c1e,0x960f9c1e,0x961b9c1b,0x9c01ba1b,0x9701ba1b,0xb21bb21b,0xba01bb1b,0x9801bb01,0x9b01bc0f,0xbc01bb1b,0x9e0f9801,0x9801c11b,0xbc01c10f,0x9c1b9b01,0x3901ba1b,0xb623b719,0xbe23c623,0xc523bb23,0xbe194823,0x4f23bc23,0x4f195419,0xb723bc19,0xc9194223,0x53195123,0x45064f19,0xd8066106,0x6a196a23,0xd5065f19,0xd723d523,0x6b196b23,0xd5066119,0xa219a123,0xa1211719,0xc211719,0x86211721,0xb5210c19,0xc03b303,0x86210c21,0x86198119,0x81197f19,0xb5198119,0x8210c03,0x13198021,0x81198021,0x76197f19,0x8210919,0x9303d921,0xda197619,0xd919ab03,0xda211303,0xd903d903,0x8197603,0x7f198021,0x50211319,0xcd065106,0x52065123,0x5223cd06,0x5323cc06,0x56065306,0x50065219,0x5923c719,0x51065c06,0x4b23c919,0x7302741c,0xd2195f02,0xd2195d23,0x5d195e23,0x5f23d219,0x61196019,0x62193d19,0x58065419,0x58065719,0x57065519,0x57065506,0x59195919,0x5723cf19,0x6223d206,0x5b195a19,0x5a196306,0x5a195919,0x5b063a19,0xc323c206,0x55193523,0xf2065619,0xf5188300,0x4400f500,0xcd0dfb25,0xf700ec11,0x3a00ec0d,0xf50df725,0xcd0dfb00,0xf500f211,0xdc11cd00,0xe3066d23,0x3723b323,0x66065406,0xe4196f06,0xcb193323,0x36066123,0xd123cd06,0xe307e723,0xe31f0b07,0xb1f0c07,0xa41f0b1f,0xa417c107,0xc11ece07,0xac23aa17,0x5a23cc23,0x3e196319,0xae063719,0xb8195823,0x5f23b923,0x65064219,0xe323cb19,0xb403d903,0xab03d919,0xb319b419,0xe303e019,0x88211103,0xed211019,0x4e214d03,0xd2214e21,0x9c199c03,0x98199719,0xed214f19,0x9c214e03,0x4e199819,0xa119a221,0xa119b919,0xbe19bb19,0xa103e319,0x9d19be19,0x99212519,0x9a199919,0x9a199d19,0x9d212119,0x23212219,0x9212021,0xa197621,0xcc19ce21,0x4819cf19,0xcd19c921,0xcf19cd19,0x5210519,0xb503b321,0xb403b503,0xb403ec03,0xec214b03,0x49214b03,0xec03ec21,0xb5214803,0xcd214803,0xbd03b519,0x7d19aa03,0x5619d519,0xae03e521,0x3af03,0x971f9921,0x971f9b1f,0x9b1f981f,0x7e1a071f,0x8f217f21,0x71289128,0x421a430a,0xaa1a411a,0xc7213019,0x87248321,0x7f267124,0x8121d504,0xe7058a04,0x8d16f016,0xdd048c04,0xe6011021,0xbd189911,0x47194523,0x43194719,0x6423bd19,0x6904981a,0x6304981a,0xea1a691a,0xeb1a6421,0x6721eb21,0x6204991a,0x6104a11a,0xa204a11a,0xe921e904,0xa11a6121,0xed1a6104,0x671a6221,0x6621eb1a,0x6221eb1a,0x661a661a,0x67049f1a,0xbd123b1a,0xb71eb71e,0x7220204,0xb919a222,0xf41a7e19,0xfe04a821,0xb121f521,0x9521fe04,0x991a981a,0xad21fb1a,0xc321f604,0xc41a9204,0x9e1a8f04,0x2522201a,0xf819e004,0xe303f103,0xa419be03,0xa0a6128,0x3e19a614,0x4c19e321,0xc71ac522,0x1811f51a,0x96119601,0xf5250511,0x3015bf11,0x30114111,0xa80ea611,0xd00ea60c,0xde0ca80c,0xd80ee40e,0xfe1ac41c,0x51ac504,0x501aca05,0x4224d22,0x9050105,0x451aad05,0x451acb22,0xc104fc22,0x722541a,0xeb1ae005,0x52226e1a,0xc1225422,0x1b225d1a,0x111ae105,0xd9050f05,0x6322661a,0xdc1ae622,0x5905141a,0x5a225b22,0xe1ade22,0x5b050d05,0xd051022,0x10050e05,0xdb1ad705,0x1622561a,0xd41add05,0xc1ad31a,0x68226705,0x1d052522,0x60051f05,0xe21ae322,0x6e22651a,0x6c1aeb22,0x69226c22,0x27052622,0xea052805,0x6905261a,0xef1ae922,0xed0eec02,0xde02ed02,0x7202ef1c,0x2b03e222,0x34049a21,0x8e053505,0x1c228a22,0xfd1f1821,0x3917da07,0xbc187825,0xca11bc11,0xca253911,0x390df611,0x7f0df625,0x75253918,0xc8253418,0x90272511,0x28272812,0x30274527,0x701f7409,0x78083b1f,0x3300ea18,0xf3253325,0xf318780d,0xf425350d,0x7725350d,0x79187918,0x350df418,0xbc0df425,0xf187811,0x31012c12,0xe013101,0xed0e3712,0xdf0cde0c,0x9e05380c,0x8704a104,0x38053922,0xed1a6605,0x741af321,0xba0e3925,0xd30ecf18,0xd30ece0e,0xce0ed20e,0x5e1b3e0e,0xba0f3301,0x3606c206,0xc306c224,0x36243606,0xba243424,0x32243406,0x3206ba24,0x22260d24,0x4823be24,0x45064619,0xbd194719,0x43194723,0x4823bd19,0xc623be19,0x50193923,0xc823c419,0x3d23c723,0xcd266d06,0x60243706,0xd2196119,0x5323cc23,0x4325206,0xfffffff0,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x56f6ffff,0x5223cd19,0x5023cd06,0x4c065206,0x46016d0f,0x461b451b,0xd60f500f,0xdc0ee20e,0xed17ee0e,0x381f3b17,0x720f5101,0x4f1b1801,0x51017d1b,0x800f191b,0x1b0f1901,0x1d01801b,0x810f521b,0x7d013d01,0x3d1b0f01,0x391b0f01,0x121b0f01,0x1401390f,0x1201390f,0x2101500f,0x210f2c1b,0x2e0f141b,0x4b1b1a0f,0x4b0f2901,0x2b015001,0x3c1b140f,0x3c017001,0x2f1b1a01,0x380f510f,0x38017101,0x711b1401,0x120f1401,0x700f2e0f,0x14017101,0x700f2f1b,0x21013c01,0x2c0f2e1b,0x2f0f290f,0x501b1a0f,0x2b0f2c01,0x510f190f,0x741b501b,0x6601971b,0x6b1b7c0f,0xa31b761b,0xa80f7f01,0x8b01a701,0x831b8e0f,0x831b7d0f,0x9001ae1b,0xa801ad1b,0x8b0f8701,0x961b991b,0x4101c10f,0x5d006320,0x640d5d0d,0xd8204100,0xff1bd91b,0x86088501,0x84088408,0x73088308,0xd801f610,0xfc01fe1b,0xf601f501,0xd01be301,0xe11bd70f,0xd601f41b,0xd41bde1b,0xd601f21b,0xf10fcf0f,0xd401f101,0xf31bde1b,0xfb1bdd01,0xd71be401,0x10fd11b,0xda0fd502,0xd101fa1b,0xdf0fd20f,0x30fdc0f,0x21bf302,0xe302281c,0xde1bed0f,0xfe0fca0f,0x1702271b,0x4102391b,0xd023901,0x3901411c,0x3d1c0f02,0x1100802,0xdb1c1210,0x8a1b5d01,0x9023501,0x51c081c,0x131c1410,0xd91bb91c,0xd3018e01,0xc225d425,0xbd25be25,0x99068525,0x981b710f,0xa701ca01,0xd21bb00f,0xa40fa301,0x6d01840f,0x710f710f,0x1c0f6f0f,0x8a26891b,0x851c2026,0x881b8b0f,0x613a30f,0x613a50a,0xa5283d0a,0xa2283d13,0x4313a513,0x4f01690f,0x921c190f,0x471c2426,0x1c268f02,0x4515491c,0x48154215,0x42273b09,0x40274227,0x2e094827,0x9326981c,0x94269926,0x13269326,0x941c2a02,0x30024a26,0xe6269a1c,0x2c024d0f,0x97024d1c,0x971c2c26,0x48021026,0x2d021002,0x2d02481c,0x4826961c,0xf269602,0xf024802,0x29269502,0x1126951c,0x111c2902,0x2b1c2e02,0x2b02111c,0x2c1c291c,0x4826971c,0x9a024b02,0x2c0fe626,0xe6024b1c,0xb31c740f,0xcb029320,0xed1bca1b,0x3b1bca01,0x3101ed0f,0x5d269f1c,0xa5025202,0x9d025926,0x5c269e26,0x3826a802,0xb426b11c,0xac1c4026,0x4026b626,0x6e1c471c,0x6226ba02,0xb8026c02,0x6a026726,0xb51c4102,0x43026626,0x6c026d1c,0xb326bc02,0xbe1c8426,0x4b1c7a20,0x3f026e1c,0x7526c51c,0xc31c4f02,0xc11cc21c,0x5426bf1c,0xb6027a1c,0xb520b920,0x6f1c5220,0x541c4e02,0xa426a902,0x5826a926,0xa726a402,0xb520a820,0xaf20ae20,0x901c7320,0xab1c6b0f,0x551c1a20,0x85027c1c,0xfa140e0a,0x8312fa12,0x880a8527,0x961c6102,0xbe19d420,0xdd19bf19,0xbe0eca02,0xb11c961c,0x7d209302,0x791c5402,0x98209702,0xc5028620,0xdb117f0b,0x8b1c640b,0x8a209a02,0x8c1c6702,0x8c20a202,0xd91c6702,0xd120d820,0x921c6d20,0x921c6e02,0x6e20a402,0x921c6d1c,0x921c6e02,0x6e20a402,0xab20a31c,0x7f029420,0x8620c31c,0x9602b11c,0x1c20d81c,0x1d241e24,0x1f241e24,0x1d241d24,0x1c06af24,0xa306af24,0xaf240e06,0x17240e06,0x5d26aa24,0x5d26a002,0xa0269f02,0xa126a026,0xaa26aa26,0xa0025d26,0xb8029d26,0xb41c7420,0xb920b520,0x5f1c3620,0x9e025d02,0x761c7c02,0xc41c791c,0xc502a320,0xbc02a220,0xbb20ba20,0x9f02a120,0x851c7c02,0xc002a41c,0x951c7f20,0xe020e120,0xa91c8920,0xac02a602,0xce1c9002,0x8420c820,0xa920d21c,0x8520d002,0x8b20d01c,0x9b20ca1c,0x5c1c5e1c,0xb41c761c,0xaf20b520,0xd402ab02,0xf207ba20,0xd017a71e,0xda20db20,0xc61cc720,0x981cbc1c,0xdb1c991c,0xb020db20,0xd01c9802,0xb902ce0e,0x9420d81c,0x8c1c8a1c,0xc91c891c,0xc61c8220,0x8c02ab20,0x8220c91c,0x9220a41c,0x9c028d02,0xa50eb61c,0xad02b61c,0xb702b70e,0xb80eaf02,0xbf1cac02,0xb91ca102,0xb41cad0e,0x771c510e,0x771c1e02,0x1e26c702,0xcf02de1c,0xcf1cc41c,0xc402e11c,0xde0ed81c,0xcd02e30e,0xcf1cb802,0x121f140e,0x12079d1f,0xe417c01f,0xe807e407,0xd8079d07,0xde02e31c,0xd11cce0e,0xcb02e61c,0xd40ed91c,0xdc02e21c,0xe702e70e,0xe21cd602,0x24274b02,0x25092509,0x54271f09,0x59271f09,0xf1095409,0xb30eb502,0xf21ce20e,0xff02ff02,0x8d02f202,0xc526cf25,0xc626c626,0x801c5226,0x121cf402,0xfb1cfb03,0x920faa1c,0x140faa25,0x14259203,0x92259303,0xab259525,0xab1cf61b,0xf625961b,0x1125961c,0xf61cf703,0x951cf51c,0x821ce725,0x83258325,0xe71ce825,0xfa1ce81c,0x7d1ce702,0x791c5402,0xaa25ab02,0x1325a325,0x3625b81d,0x17033803,0xa51d161d,0x2025ad25,0x2b1d0703,0xa25af03,0x20032a1d,0x151d1003,0x2125b51d,0xb25b003,0x2b25af1d,0x311d0c03,0xa032a03,0x1225b51d,0x921d101d,0xb220d51c,0x9820b302,0xea20a602,0x29033f1c,0x10240f1d,0x6d260024,0x6a1f6f1f,0x2d03ac1f,0xb003b005,0x7120ff03,0x18242b19,0x1f242926,0xbf261307,0xc3167b06,0xc3167c10,0x7c08c610,0xcf08c616,0x26167c08,0xbe261624,0x25261606,0xc06be24,0x2106b626,0x2e14ba24,0x314ac0b,0x9f1d6723,0xc06b605,0x6906b526,0x6b266726,0x3d078b26,0xc61eb912,0x93072c06,0x906b724,0xbb06b526,0x8602fe25,0xaf06c825,0xaf242f06,0x2f242006,0x24243324,0x24243126,0x3106c026,0xcd06cc24,0x97262406,0x8327a127,0x6727a10a,0xc528aa27,0xaf06a306,0xca261f06,0xca262206,0x2006c906,0xca262226,0xc3262006,0xc71d2f22,0xc222c316,0x3122c722,0xc722c81d,0x4506f622,0xd306c424,0xd4057716,0xd9057f16,0xa3057716,0xc20fa11b,0xe010d101,0xe0169208,0xd510d708,0xe0169210,0xd710d508,0xd5169310,0xde169210,0xee10d108,0x5306ec06,0x2d1d2e24,0x3322c11d,0x53269a1c,0x30269a02,0x702531c,0x616fe23,0x6c230c23,0xe4230d1d,0x4e06e506,0xc244e24,0x8265b07,0x6b265907,0x58265924,0x1c070226,0x1105b623,0x11266217,0x59071007,0x6e070826,0x94028224,0x5f1c5f20,0x821c5d1c,0x2c171802,0x16232623,0x1b232717,0x1a233017,0x2405c317,0xc51d9723,0x26171505,0xc6232c23,0x8f05c405,0x331d991d,0x35233523,0x211d9c23,0x20172117,0x1e171e17,0x211d9917,0x2205cb17,0x9e1d9e17,0xcb23361d,0x371d9f05,0x37171d23,0x1d233223,0x9b233217,0x9b171d1d,0x1d23341d,0x7246b17,0x44246d07,0xd905da23,0xa31da205,0xec17291d,0x23263c06,0xc4027626,0xc21c4e26,0x51027326,0x4e02761c,0x3326c21c,0xec1db517,0x1246805,0x6fd07,0x2246707,0x50234b07,0x70235123,0xae1b941c,0xa21b9420,0x5a20ae20,0xc51dc323,0x5e31d,0xe122fe23,0xde0eeb1c,0xee1cde1c,0xfa0ef102,0x8725410d,0xc4174318,0xf917391d,0xf900e200,0xbb00e20d,0xf9187b11,0x7b00e20d,0x1e027618,0xf027e1c,0x5d247607,0x54092426,0x54274909,0x4912b209,0x3306e027,0x33263426,0x3406e526,0x5262726,0x31246b07,0x6a13f827,0x9a0a6a0a,0x9a273112,0x31129b12,0xb51e1127,0x7a0c7a15,0x111e070c,0x831e071e,0x1c1e110c,0x84071a07,0x23072424,0xd4249007,0xd205fd1d,0xfb05fd1d,0x9e1dd205,0x27190a1f,0x14190906,0x1406261e,0x2606281e,0x25062606,0x9e190906,0xc06271f,0x25190919,0x25190b06,0xb1e1506,0x9e1e1519,0x90190c1f,0x75072324,0xe9081826,0xe9081c17,0x1c081217,0xf2081208,0x21081c17,0x8d267407,0x6208fd24,0xfd106510,0xa6106508,0xfb090416,0xfb08f810,0xa608fd10,0xfb08f816,0xf316a610,0x410f810,0x29172e09,0x9b1da317,0xb8117529,0xa908b10b,0x1b109a08,0x8c241a24,0xad06b124,0xad241b06,0x1b06aa06,0x75241b24,0x6b072326,0x87248526,0x79249624,0x8f072926,0x39267924,0x2e267924,0x39243907,0x8f248d24,0x14072f24,0x98247d07,0x93267f24,0xa41fb124,0xa424aa24,0xe5169a16,0xee10e510,0xb316a408,0x9f1fb01f,0x34073624,0xa8073507,0xc124a924,0xd524be1f,0xbf24bf1f,0x481fd624,0x47074807,0x4724bf07,0xbf24bd07,0x4924b324,0x43074307,0xb524c407,0xb5074324,0x9b074224,0x4324b324,0x42074307,0xb924b407,0x46074524,0x44074607,0x4a24b907,0xd9074b07,0xca074b1f,0x4f1fd924,0xcb074e07,0xcd074e24,0xcd24cb24,0xcb074d24,0xdc074d24,0xc824cb1f,0xcd1fce24,0x341fbb1f,0xd324be07,0xbc1fd41f,0xd024bc24,0xcf1fcf1f,0xd324ba1f,0xc11fd71f,0xb824c224,0xb924b71f,0xbe073624,0xbc1fd61f,0xbf07361f,0x8a028924,0xda209b02,0x2d244806,0xd8244826,0x9f262d06,0xba24a024,0x3c24ac24,0x33074a07,0x6e086910,0x46086908,0x6e086e08,0x33086f08,0x2d103910,0x14103310,0xe1f0f1f,0x4d1f4c1f,0x4d1f511f,0x5017ff1f,0x501f511f,0x221f641f,0x7d1d211d,0x201d2125,0x2503001d,0x5b086010,0x5a086008,0x3a085b08,0x2606d224,0x8d06d207,0x2e072624,0x3a243807,0x3c093d24,0x81129b09,0x99071524,0x47035a24,0xa7035303,0xff241906,0x601aa325,0x1c19e121,0x1b154415,0x46154415,0xcb151b15,0x4105ef1d,0x2e1e3717,0x48153c15,0x33154215,0x38154f1e,0x61e2f15,0x20151a0c,0x5515480c,0x58155815,0x190c2b15,0x490c190c,0x11155815,0x10198821,0xa720c621,0x3c20d402,0x1d15720c,0x7c111b11,0x790c4e15,0x56111815,0x3e11181e,0x141e560c,0x4f1e7411,0x2115690c,0x4a112011,0x150c2b0c,0x6d14db0c,0x161e930c,0x7f0c3911,0xf21ce215,0x6602ff02,0x6914e70c,0x7c14d912,0x7c12571e,0x7e14db1e,0x301e521e,0x930c4c0c,0x5414f51e,0x770c620c,0xa70c780c,0x79121d1e,0x16121d07,0x79077912,0xa7077707,0x5619d51e,0x9003e521,0x9b078f07,0x9612271e,0x96078007,0x801ecb07,0x53175107,0x8b175017,0x7f178017,0x1919f817,0xbd041b04,0xa61ef507,0xf11ef507,0x301ef01e,0x9d142114,0x200a9d0a,0x8143014,0xb817b61f,0x5d12b717,0x5d274e09,0xbd274f09,0x5d274e12,0x4e12bd09,0xb5274c27,0x3a081612,0x9c1f3b1f,0x5b269d26,0x26272002,0x8a128a09,0x20128b12,0x1a07a227,0x1a1f1c1f,0x1c1f1d1f,0xd21f1d1f,0xe117d117,0xdf178f1e,0x8d178f1e,0xab1ede17,0x8d179107,0xa510ea17,0xdf08ef16,0x26080117,0x91f261f,0xe217e008,0x51f2817,0x23072408,0x90249007,0x6072c24,0x817de26,0xdd17dd08,0x9e1f2317,0x97249907,0x15248124,0x6d071b07,0x81249926,0x6d071524,0x15247e26,0x63247e07,0xdd071526,0xd41f0a07,0xbb28b607,0xbb0aec28,0xec28fb28,0xf928fb0a,0xea0aec28,0xe710de08,0xdd10de08,0xdd08e710,0x8e08dd10,0x350f2516,0x391b1101,0x370f1401,0x220f1401,0x2501370f,0x391b110f,0x201b1f01,0x390f250f,0x20013701,0x1f1b201b,0xf10f251b,0xc1f0b07,0xc17cc1f,0xd117c21f,0xb07a41e,0x1c1f3a1f,0xd217f108,0xdb1efe07,0xe01f0807,0x911f0707,0x32092e12,0x501f6409,0x18001f,0x5180118,0xd1e3d18,0x1115370c,0x4015230c,0x521e4c1e,0x271e3f15,0x1d1e490c,0x4b1e4e0c,0x171e421e,0x711e7811,0x5911061e,0xd815791e,0x6d14f114,0xac08ab12,0x508b108,0xe40ce50f,0x40f030c,0x60ce40f,0x50ce50f,0xe80ce70f,0x50f060c,0xe40ce50f,0x5024620c,0x36264726,0x42003700,0x382a422a,0x2020200d,0x210d3720,0x36202120,0x732a4200,0x3e1b680f,0x41182201,0xce083e08,0xcc12d212,0xeb17a012,0x2417a91e,0xb119de21,0xdb19de1a,0x611ab119,0x7c12a427,0x3f092a09,0xa6092b27,0x59025526,0x63094f02,0x4327430a,0x30094e27,0xd0075527,0x5d24ce24,0xd824d707,0x8224d724,0xd824d51f,0xd624d724,0x5b1f8224,0xf824d507,0x9d259c1c,0xec24eb25,0xec076424,0xdf077324,0x951f9424,0x9524e91f,0xeb24ec1f,0x9524e924,0xeb24ea1f,0x9524ea24,0x941f921f,0x931f931f,0x92076f1f,0x9307711f,0x941f941f,0xe824e91f,0x671f8a24,0x67076807,0x68076507,0xe0076507,0xe0076624,0x8b24e124,0x8c24e11f,0x8c1f8b1f,0x6b24e41f,0x8c1f8b07,0x69076b1f,0x681f8a07,0x8b24e007,0x9a07661f,0x981f9b1f,0x991f9b1f,0xdb1f971f,0x8f077224,0x691f8a1f,0x6c076a07,0x6d1f9007,0x6e1f9007,0x6e076d07,0xe624e707,0x9124e724,0xe424e61f,0x6c1f9024,0x97077207,0x9724ed1f,0xed1f991f,0xe524ed24,0xe5077224,0x8f24e324,0x8e24e31f,0x8f1f8d1f,0x8d24e31f,0xe21f8e1f,0xe21f8d24,0x8d076a24,0x6c076b1f,0x6b24d307,0xcf075807,0xe624d424,0x9a1f9124,0xde24dd1f,0xed24e524,0x891f8624,0x971f981f,0x821f801f,0xc1f921f,0xef0cee0f,0xee0f0a0c,0x5d0f0c0c,0x5c0b9e11,0x590b9e11,0x92115c11,0x5c115b29,0x94115b11,0xfb115c29,0xfd278012,0x11127f12,0x43127c09,0x62264926,0x45265024,0x5a264326,0x5026ab02,0xc265e02,0xb4246f07,0x41074224,0xb21fbf07,0xbc24b324,0xcf1fd024,0xba1fcf1f,0xd31fd324,0xbc1fd41f,0xc324c224,0xc51fd724,0x4924c624,0xce24c807,0x4e1fcd1f,0x4d24cd07,0xdc074d07,0xcc24cc1f,0x4d24cb24,0x4f24cb07,0xb0074d07,0xd41fb61f,0xca074b1f,0xca1fda24,0xda24c824,0xd924c81f,0xd91fda1f,0xda24c91f,0x7718bc1f,0x30012e25,0x5615650c,0x5815651e,0x631e561e,0x160c391e,0x6b111611,0xd60c3b15,0xde1a5121,0x7e1a5121,0x7e21de04,0xde21d204,0xd121d221,0xd1048d21,0x8d047d21,0x50047d04,0x50048d1a,0x8d048e1a,0xdd21de04,0xdd21d621,0xd61a5a21,0x6d1e6621,0x40156b15,0xaa122612,0x3113f81e,0x3e093e27,0xf8288f09,0xfb288f13,0xf813fa13,0xfa288f13,0xe5179613,0xe51ee61e,0xe617881e,0xf500f31e,0xf511cd00,0xcd254400,0x2e261d11,0xf4267124,0xf616af10,0xfa16af10,0x3210f608,0xd2a312a,0x2d201120,0x2d0d2b00,0x2c2a3900,0x2d2a2e0d,0x260d232a,0x2e200b00,0x90d0c2a,0xf50d070d,0xf32a111f,0x3820121f,0x182a3a2a,0xf50d0f00,0x4200361f,0x420d372a,0x370d382a,0x3c00340d,0x3c0d322a,0x3200332a,0x3100330d,0x1a201a0d,0x33003220,0x3e003500,0x330d332a,0x400d340d,0x3d2a402a,0x1b201b2a,0x33003520,0x640d5d0d,0x5b0d5b00,0x4220410d,0x62204220,0x63006300,0x420d5d00,0x49274a20,0x9a092427,0x8f207d00,0xaa2a922a,0x85009e0d,0xa8009e20,0xe61f0e0d,0xef07ef07,0xe17cb07,0x2b15581f,0x1a0c1a0c,0x5815150c,0x48151515,0xd6155815,0xd00dd50d,0x67251e00,0x11251d18,0x60082d18,0x6f07181f,0xda248626,0xdb0ef50c,0xf60ef40c,0x130ef50e,0x1227ac13,0x6727ac13,0x67131227,0xe27a127,0xa227a113,0x3d130e27,0x7925760e,0x5160925,0xed102816,0xff294529,0xe829450b,0x330c0020,0x53269a1c,0x30269a02,0xda02531c,0xd01c8b20,0x16156b20,0x501e6611,0xff11001e,0x2c110010,0x7310ff0c,0x9b029c1c,0xbc20b102,0xa520bb20,0xc120c202,0x95028520,0xd320e120,0xce0ed20e,0xbe0ed20e,0x160ece1c,0xca04bd22,0xa820a704,0xd320b520,0x511dd71d,0xf220f117,0xf50bfc20,0xec20ed20,0xe50bfe20,0xeb20ed29,0xfa20ee20,0xf320ee0b,0xe60bfa20,0xe920f429,0xf329e929,0xfb20ee20,0xfd0bfc0b,0xfe0bfd0b,0xfe29eb0b,0xf620f50b,0xfe29eb20,0xeb20f60b,0xed29ec29,0xff29ed29,0xff29eb0b,0xeb0c000b,0xf70c0029,0xf70c0220,0x20c0120,0xf90c010c,0x20c0220,0xee0c030c,0xfb29ee29,0xfb0c0220,0x229ef20,0xf029ef0c,0xfc20fc29,0xf20c0420,0xfd29f229,0xfd20fe20,0xfe29f320,0xf429f320,0xfe20fe29,0xea0bfa20,0xe90bfa29,0xe929ea29,0xea20f429,0xfb29ea29,0xfb29eb0b,0xeb0bfd0b,0xfc29ef29,0xeb29f220,0x20c0029,0xef0c020c,0xf229f229,0xea20fe29,0xeb29ea29,0x730c0229,0x75077407,0x9a077607,0x7e1f981f,0x7d0b8629,0x8d297d29,0xff0b880b,0x7d297e18,0x6f1f9329,0x921f9207,0x9307701f,0xec07701f,0xe824e924,0xe9077024,0xeb24ec24,0xec24ea24,0xe924ea24,0x93077124,0x8907701f,0x971f981f,0x5007661f,0xdd075207,0x9b24de24,0xea11c81f,0xa5187f00,0xaa1c8302,0xd2214e02,0x9c199c03,0x98199719,0x98199c19,0x98214e19,0x4e214f19,0x4d03ed21,0xf6214e21,0xfa16af10,0x29261808,0x15242a24,0x2806bf26,0x2906bf24,0x33242824,0x40273427,0x9d273409,0x74094012,0x4e03d204,0x110f1021,0xcd0cf00f,0x4a1ecc1e,0x93124a12,0x8c1ecd07,0x9329bd11,0x9a079011,0xa1ebc1e,0x1121781a,0xa901311a,0xe90e0c18,0xea1dbf05,0x9b049705,0x9b21eb04,0xeb049c04,0xab00a021,0xfb009f0d,0x15198919,0xc1221921,0x1b04c204,0xc41a9622,0x9a221e04,0xf7221d1a,0xfb1a7421,0x7404b321,0x7821f71a,0x7304ab1a,0x771a761a,0xfc1a731a,0x6e1a6d21,0xfa04ae1a,0xe504a721,0xee215204,0x23226b03,0x6a226a05,0x24052322,0xe7226505,0x6105241a,0x5f051e22,0x21226122,0x1c052205,0x1b1ae105,0x1c1ae605,0x63052005,0x25226622,0x67226005,0xea1ae822,0x1a05281a,0x6c226905,0x15225222,0x7d21ff22,0x4906de1a,0x49262e24,0x2e263024,0x46263026,0x10262e24,0x13221222,0xc220822,0xc221022,0x4220822,0x81220322,0xb622041a,0x220304,0xb7220222,0x8404b604,0x71a7f1a,0x851a8422,0xbb220e1a,0x7c1a8904,0x7c1a7b1a,0x61a7a1a,0x831a7e22,0xf51af61a,0x9a1a6b1a,0x831a6b04,0xb9168322,0x6b166b10,0x8308e216,0x6708e216,0x45106810,0x491b0c21,0xba167505,0xc110c110,0xc110bd10,0x7c10bd08,0xc1162e08,0x2e10bd08,0x4c176516,0x53176705,0x54176d05,0xb6177405,0x78055b22,0x5c22b717,0xa922b605,0x4b22ac22,0x8022e11d,0x2f04da05,0x2f040e04,0xe043404,0xd040e04,0xdf1aaf04,0xd310d608,0x8f10d310,0xaf08df16,0x59165608,0xb208b016,0xb108af08,0x6911b211,0xf116f218,0xf01d5e16,0xf21d5a22,0xa0a8116,0xa0a6614,0xf10a6114,0xa0a6613,0xb913f114,0x7e05b705,0x5004ff1d,0x951aca22,0x8a232e1d,0x901d8d1d,0xcc232d1d,0xa005cd05,0x381da01d,0x9e05cc23,0x2223361d,0x9d233617,0x4317221d,0x271dac23,0x26172717,0xd3234317,0xa205d405,0xad1da81d,0xde23441d,0xa7233f05,0x4723431d,0x5b05a323,0x111e5c1e,0x6f166e11,0xc008c016,0x6e10ad08,0x4b1db616,0x4b22f923,0xf905e123,0xe81db922,0xe822fb05,0xfb1db305,0xb222fb22,0x391db91d,0xe5234d17,0x55235205,0xf5235823,0xf4174405,0x5b05f305,0x4e1dc423,0xcd0dd418,0xcb0dd400,0xcb00cd00,0xcd119d00,0xe60eee00,0xe60ee10e,0xe10ee40e,0xe00ee10e,0xff02ed0e,0x661dd505,0x69236723,0xf3236b23,0x8823841d,0x6712e523,0x67276927,0xab099827,0x67276927,0xab27ab27,0x6912e127,0x24080927,0x2407a31f,0xa31ed31f,0x2007a307,0x201f271f,0x2717e41f,0x141deb1f,0xcc270e06,0x95079b1e,0x49079507,0x49124812,0x48124b12,0x96266312,0xc5249524,0x4a1ec61e,0x45273a12,0x45129f09,0x9f13f509,0x8913f512,0x24273728,0xde198521,0xb3198519,0xc215e1a,0xa16ba09,0xfe090a09,0x35090c08,0x9e129d27,0xa0129d12,0xfd094412,0xd21f1807,0x82089917,0x82089810,0x98163e10,0x7b107d08,0x3e164010,0x49064919,0xaa23ac19,0xaa23ab23,0xab23a923,0x3223a923,0x36063619,0xa923ad06,0x4c194a23,0x4c194b06,0x4b194d06,0x4e194d19,0x51194b19,0x42194019,0xb723c419,0xea193923,0xff270c1d,0xd5065f1d,0xd5196a23,0x6a23d723,0x6b23d719,0x61066119,0xd723d806,0x5d065a23,0x5d195e19,0x5e195f19,0x60195f19,0x61196119,0x5f23d219,0x59195a19,0x5723d219,0x58065406,0x55195819,0x57195706,0x58195919,0xcf195919,0xc3195823,0x5b196323,0xd325d406,0xd323f525,0xf5068525,0x16248223,0xe071c07,0x2106b826,0xf241424,0xa4241024,0x10240c06,0xf1f5124,0x4a180d18,0x4c1f491f,0xd1f511f,0x731f4a18,0x21248926,0x29008707,0x290d3f0d,0x3f200f0d,0x6d071f0d,0x69071b26,0x6b266726,0x66266726,0x6267f26,0x26261b26,0x3f262626,0x2d260624,0x2e261f24,0x3d243c24,0x2f262924,0xd5244324,0x56245506,0x5f245424,0xf2264a24,0x5112f706,0x51278127,0x6212c227,0xc4096209,0x79278112,0x7c266024,0xed245a24,0xc206ec06,0xc70ec10e,0x1107100e,0x11247407,0x74070e07,0xed06ec24,0xed263c06,0x3c06ea06,0x4b263226,0x9506de24,0xa6165910,0x5008a608,0x9e089e16,0x95109108,0xed109110,0xf7109510,0x4806f506,0x2f262926,0x8e06d726,0x7604be1a,0x7804be1a,0x5d1a771a,0x45264724,0x9e1ea426,0xa81ea81e,0xa4121f1e,0x9c121f1e,0x731ea41e,0x78247524,0x7a247524,0x21247824,0x4506c426,0xf4264624,0x5c245c06,0x58245a24,0x6d244024,0x7070724,0x27070507,0x1e06b326,0xae06ae24,0x2241906,0xb2260226,0x1406b306,0x16242526,0x76248e26,0x9f072726,0xb424b124,0xb31fb41f,0xb61fb61f,0xb41fb01f,0xa01fb01f,0xc91fb424,0xc8073e1f,0xc7073e1f,0xc71fc81f,0xaf073f1f,0xca24af24,0xc41fc81f,0xad073b1f,0xc2073b24,0xac24ad1f,0xc4073b24,0x321fb11f,0x9e249e07,0xb1249c24,0x9d249c1f,0xb51fb124,0xb71fb91f,0xb81fb71f,0xb21fb21f,0xb724a11f,0x3324a11f,0xbe1fb707,0xbd07361f,0x3407361f,0xb01fbd07,0xaf1fcc24,0x481fd61f,0x4824bf07,0xbf074707,0xbd074724,0xbe24be24,0xbf1fd524,0x44074624,0x44074507,0x4524b807,0xca074b07,0xc824c824,0x4b1fd924,0xa7128807,0x3c274612,0x601b331b,0xf80cdf01,0xfa0cdd0e,0x10efc0e,0x4416480f,0x6163e16,0x9c289b14,0x1e160728,0x1e085b10,0x5b102110,0x8c113f08,0x5d112e0c,0xda24d907,0xe2076a24,0xd21f8a24,0xe90ee51c,0x941f9502,0xfd24d71f,0xc6183e24,0xfb25f00d,0xbe06be25,0x9b25f706,0xc400c506,0x2400c300,0x39033c1d,0xee0f0c03,0x9f0cef0c,0x9d0a7d28,0x8f0a7d28,0x8f289d27,0x3140227,0xba0e3914,0xba257418,0x7418bb18,0x28257425,0xc0e270e,0x390e3712,0xbe01300e,0xbe0e3918,0x39120c18,0x6a12060e,0x73013025,0x39120625,0x3012060e,0x390e3901,0x7325740e,0x27257425,0xb10e360e,0x2c24f300,0x2b182918,0x5624f318,0x52185518,0xbd18,0xbc24fd25,0x3f0dc700,0x5911a118,0x65185718,0x1c0ddf18,0x1400dc25,0xed0ddb25,0x41254200,0xed254225,0x7c187c00,0x42252918,0xbd252925,0xd254211,0x9c11ea01,0xc71eec18,0xdc07c207,0xf50cda0c,0xf40ef60e,0x160ce80e,0xf61f401f,0x221f4017,0x2217f608,0x2b1f4f08,0xcd10c008,0xcd167708,0x79167b08,0xcd167716,0x7908ca08,0xcd167816,0x11121308,0x2118b212,0x22143014,0x2f143014,0x9b142214,0xfb25f006,0xbf112c25,0x99114115,0xfc25fa06,0xb25fc25,0x78069e24,0x9b12a20a,0xa312a228,0xb1289b12,0x9b07b407,0x95179b17,0x6807b117,0xf4288a0a,0xbf0aa413,0xbf147f28,0x7f147e28,0x7258c14,0x961ce903,0xe507ac17,0xaa07ac1e,0x121ee207,0x9203b621,0x531c3322,0x58025802,0x33025702,0x4010441c,0x103f10,0x1225fc26,0xfc25fd24,0x90260025,0x8f11fb18,0xfd11fb18,0xa1188f11,0xed08ef16,0x2b1eb108,0xeb122912,0xe41cd802,0x680e300e,0xfd256725,0x8323fe23,0xeb030006,0xeb257c1c,0x7c257e1c,0xe5258025,0xff02f51c,0xea1ce902,0x831a521c,0x82048204,0x80047f04,0xfd258b04,0x53258702,0x1e11011e,0xff084a11,0xba15fa15,0xc41caf0e,0x302f902,0x9f258a03,0xf259e25,0x740f5503,0x3d017501,0xf802fb03,0x11032802,0x29032e1d,0x570f280f,0xe7240101,0xf9240425,0xdb068923,0x9725e625,0x525e506,0xe8069824,0x1006b925,0xf825f826,0xb9069c25,0x9b069c06,0x1a06b906,0x1d248407,0x6a071d07,0x25071a26,0xb9242424,0x2d249206,0x6a072a07,0x7f071626,0x4406d524,0xa406c724,0x831b7d01,0x5906f20f,0x5906f324,0xf3245f24,0x56263f06,0x56245724,0x4263f24,0x272a1807,0xd90d4520,0xf906db06,0x5e070f06,0xf7247126,0xfa264c06,0x75247006,0x73247324,0x70070a24,0x58245a24,0x58245c24,0x5c264624,0xfd265224,0xfd06fc06,0xfc06fe06,0x7a072506,0x22249326,0x74072107,0x89267326,0x25072124,0x931c2b1c,0x49024b26,0x4c1c3002,0x3226a202,0x4f02751c,0xce26c61c,0x21268026,0x5626ca1c,0x531c531c,0xc01c4c1c,0x74027726,0x1d26c302,0x7e26cc1c,0x681c4502,0x5126c002,0x7402731c,0x810b0802,0xf628f614,0x80af328,0xf80af30b,0xf30b060a,0x80b060a,0x829110b,0xa10b060b,0xfd29060a,0x110afd0a,0x11148429,0x840b0629,0xa128bd14,0xa0afd0a,0x9f0aed0b,0xfd28bd0a,0x8414840a,0xbd0b0a14,0xb70e3328,0x79010918,0x7708ca16,0xf516ac16,0x5908f710,0xfe1ffc00,0x1ffe1f,0x922a8920,0x8c098628,0xee072f27,0xee071425,0x1425ef25,0xb210b307,0xb208c010,0xc010af10,0x8f061208,0x3f1deb23,0x35129d09,0x33273527,0xe1093f27,0xe311b900,0x2700e300,0x2700e125,0xe1186f25,0x14400,0x1c1110,0x3b1c0e10,0x1c1102,0x12023b10,0x2a10011c,0x1101441b,0x310031c,0x441c1210,0xe20a4e01,0xdb0b4113,0x2e06d906,0x3106d926,0x3106dd26,0xdd263226,0x2e06dd06,0x3206d926,0x9b093c27,0xfc068b12,0x9023fd23,0x8f092f12,0x4425ce12,0x44068426,0x84246126,0xa20a7806,0xa912a312,0xa725ff06,0x50095b06,0x2d095c27,0x4f02501c,0x79097702,0x1712e909,0x9b27b013,0x730e6f09,0x2a0e560e,0x3c132e13,0xde134413,0xea09ca27,0xdd27e927,0x64136227,0x6427f813,0xd8136313,0x6427f809,0x6309d813,0xd827f913,0x6709de09,0xfd27fd13,0xde136927,0x5e27f409,0x5d135d13,0xf427f513,0xd227f527,0x6e27f409,0xf4135e13,0xf4280527,0x7627f627,0xb09f413,0x8209f428,0x18280b13,0xe8137f28,0x7a09ec09,0x6e136e13,0xec280513,0x6f280509,0x11281213,0x12280528,0xed09ef28,0xa280a09,0xef137428,0x8c137909,0x9d138b13,0x8f0a0713,0x3f0a0f13,0xb6284028,0xac284213,0x1e0a1a13,0xb613ac0a,0xab13b713,0xb313b913,0xb9284413,0x1613ad13,0x1f13af0a,0xb0284d0a,0xb50a1b13,0xa9284c13,0x1c13aa13,0x1428410a,0x4b284c0a,0x1c0a1428,0x4813b40a,0xba284f28,0x4a0a1813,0x19284f28,0x9712d50a,0xf412d912,0xc207c11e,0xc507c607,0x8d07c407,0xd1092f12,0x90092f12,0x25272512,0xd112d827,0x7012d812,0xfe12d109,0x930a7513,0x960a7528,0x93289328,0xfe0a7028,0xa008eb13,0xa0169e16,0x9e10e616,0xb11c6c16,0x96029620,0x931c7102,0xa726ad02,0x981c3426,0xb10a8f0a,0x5f070d28,0xbc23ec26,0x8b141428,0x120a9b0a,0xb5141114,0x10141128,0x9428b314,0x9328ae0a,0xb1141b0a,0x260a8e28,0x8e0a9314,0xc00a8c0a,0x1c0a9428,0xd5141014,0xd917d617,0xfd17d917,0xbe17d807,0xc71c7a20,0x39078a20,0x39124212,0x42124112,0xbc06ba12,0xbc06bd06,0xbd242706,0x17242706,0x906c226,0x7f071724,0x80247f24,0x64266424,0x7f25f426,0x1d084424,0x1d1f7718,0x77181e18,0x2729291f,0x4929250b,0x4b079c12,0xc8079c12,0xfa124b1e,0xcf17af1e,0x605a807,0x72231717,0x5f0c4a1e,0x60296315,0xec295c0b,0x6f18ef18,0x6718e229,0xa80b6e29,0xc229950b,0x9c29950b,0x570bb829,0x91115611,0xbc0b9611,0xab119429,0x78117929,0xc229ad11,0xb60bb80b,0xb429a40b,0xa70bb70b,0x7e0bba29,0xb70bb011,0xb311800b,0xa629b529,0xa00bb80b,0xc20bb80b,0xd90ba00b,0xe7297718,0x91289518,0x4a094128,0xc60b5129,0xc818c918,0xc8295518,0x510b5318,0xc80b5229,0x51295118,0x50295229,0xe8104f29,0xe90be90b,0xd229d10b,0xec29d229,0xeb0beb0b,0xd229cf0b,0x5229cf29,0x5229d210,0x51105310,0x50105110,0x4e104e10,0x44104d10,0xcc0b440b,0xcb29cb29,0xc629c729,0xe129c629,0xc329c30b,0xc4104a29,0xc829c429,0x4b104b29,0xe60be410,0xce0be60b,0xcd29cd29,0x4f0be729,0xe9104f10,0x5229d20b,0x4e105110,0x44104e10,0xcb29cb0b,0xc329c629,0xc429c329,0xc429cd29,0xcd104b29,0xe6104b29,0xcd29cd0b,0x4e104f29,0xd2104f10,0xd2104e29,0x4e105229,0xcb104e10,0xfd29cd29,0xe80bfc0b,0xf20bfc29,0xcb29e820,0xdf29cc29,0x3d017d29,0x721b1801,0x381b4d01,0x1d2001,0x93257c03,0x7c01b20f,0xcb29de1b,0xd329cc29,0xff01fd0f,0xfc01f501,0xd51bdc01,0xdd1bdf1b,0xcf1bdb1b,0xdb0fd60f,0xfd81b,0x54101902,0x54085f08,0x8101b08,0x54085f16,0x1b160808,0x8160510,0xa6241616,0xa606a806,0xfe06a006,0xc30ebd25,0xd10fa102,0x3224b71f,0xfa17d907,0xfa1f1d07,0x1d17da07,0x91f061f,0xcb07d71f,0x7d167a08,0xc4167a16,0x7a10c710,0x900a8f09,0x641f510a,0x308321f,0x1d228e1b,0x7808cb21,0xe108cc16,0x3080417,0x1e152108,0x7a1e2d0c,0x34110915,0x4015d20c,0xa20ca211,0xd30ca60c,0xa515d315,0x8d0ca20c,0xb90bd011,0x2f2a0829,0xf42a0900,0x172a0f1f,0x362a3500,0x3a20102a,0x160d3b00,0x4d202720,0x3320262a,0x34129c27,0x3c129c27,0x98273209,0x7f107c08,0xed258d10,0x9502ff1c,0x2e129612,0x39129627,0xdf272e09,0xe0131012,0xa6131012,0xe0099527,0x95131012,0x97099509,0xf912e009,0xf817d407,0xfa17d407,0xf817d607,0xd317d407,0xd907fa17,0xcc17d617,0x3805cd05,0x73244123,0x8d072226,0x3e06d224,0xed255d24,0xe111ec11,0xd71ccf02,0x1d18151c,0x751f7518,0x1518191f,0x68181918,0x6818151f,0x1508381f,0x4a089918,0x4a089816,0x40163e16,0x3b1f3a16,0x617ed1f,0x8b190119,0xa009440b,0xa0273912,0x39094612,0x3f094627,0x3f273c27,0x3c094927,0xb6182f27,0x183b00,}; +#include +#include +inline void uncompress_L515_obj(std::vector& vertex_data, std::vector& normals, std::vector& index_data) +{ + std::vector uncompressed(0x49e1e, 0); + LZ4_uncompress((const char*)L515_obj_data, uncompressed.data(), 0x49e1e); + const int vertex_size = 0x2a9d * sizeof(float3); + const int index_size = 0x6fcb * sizeof(short3); + vertex_data.resize(0x2a9d); + memcpy(vertex_data.data(), uncompressed.data(), vertex_size); + index_data.resize(0x6fcb); + memcpy(index_data.data(), uncompressed.data() + vertex_size, index_size); + //normals.resize(0x2a9d); + //memcpy(normals.data(), uncompressed.data() + vertex_size + index_size, vertex_size); +} diff --git a/common/res/sr300.h b/common/res/sr300.h new file mode 100644 index 00000000000..38b1af6a73f --- /dev/null +++ b/common/res/sr300.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from sr305.obj +static uint32_t sr305_obj_data [] { 0xc8b328f1,0xfae8c282,0x40c1,0xcccdc0e0,0xcccdc274,0xc0ec,0x6ae6c0e0,0xda66c27e,0x411f,0x8b4bc0e0,0x8796c285,0xfec8c0ca,0x99cc0df,0x42a7c276,0xf1001813,0x4f9ca71c,0xb4f19fc2,0xdfffeb40,0x4e6a18c0,0xaf0247c2,0xe0060140,0x4e61eec0,0x5791c5c2,0xe007eec0,0x4ffa1ec0,0xbbef80c2,0x4f10060,0xc251a6f4,0x411fe880,0xc0dffc78,0xc2504498,0x481c0000,0x1b04f100,0x67c25195,0xc11fda,0x9ac0e000,0xb1c27152,0xc0112,0x51000071,0x1eed9fc2,0xe271000c,0x61c25005,0xc1964,0x225a04f1,0xea2bc285,0xfea440c0,0x7ba5c0df,0x77f9c278,0xf10060f6,0x4e60d50c,0x576f8bc2,0xe66afdc0,0x4aee73c0,0x570a3dc2,0xdf214fc0,0x2b131cc0,0x20f1000c,0xc088d31a,0xc20fab2e,0xc021da38,0xc087eb57,0xc2208850,0x40af318c,0xc087eef6,0xc22054f1,0xc05796ff,0xc087eefa,0xc20f0ffe,0xc0f008a,0xea787100,0xf32cc221,0x71000c70,0xc22686dc,0xc6069a5,0x6204f100,0xe5c2276c,0xfa40af43,0xe6c087ee,0xc5c226f0,0x185b53,0x12c4f171,0x92b422c2,0xcf50018,0xc215f137,0x40aeb7ce,0xc08b222d,0xc215b82a,0xc0293159,0xc087ef00,0x24116ec8,0x5af17100,0x6806c221,0x710030b3,0xc20e93e4,0xc89085b,0x3804f100,0xf2c2135f,0x2dc023d1,0x9ec08b22,0xb8c20f8c,0x18951e,0x9f0e771,0x831687c2,0x10f1000c,0xc20b802d,0x4088e927,0xc08b222f,0xc220525a,0xc057712a,0xc08e5563,0xc21155e0,0xc200fb6,0x9572b500,0x13b4c20e,0x55634089,0xf500488e,0x8e556100,0x15dcefc0,0x9a720ac2,0x8e537a40,0x8f10084,0xc08e5561,0xc221ac4e,0x40b6b854,0xc08e5561,0xc221f0e7,0xcceb852,0x357f3500,0x31001826,0xb42686dc,0x55613500,0xb101088e,0xc08e5561,0xc225f756,0x7870f31b,0xe81b6200,0xc9b0c221,0xe784000c,0x1fc221f0,0x30c08b85,0x21643100,0x71000c58,0xc221ac4e,0xc670a42,0x15c0400,0x556100f1,0x34d9c08e,0x3f0dc279,0x66644103,0x440294e6,0x40eccccf,0xcd71000c,0x66c0eccc,0x1f8e666,0xe5d9e31,0x4f10024,0xc27fc69f,0xc11c7ffc,0xc0e66491,0xc273de46,0x30edc806,0x6a0a7100,0x699cc24f,0x71003060,0xc273de46,0x3012b597,0xf69a7100,0x6111c24f,0xf40024bb,0x4e57a908,0xaee5ebc2,0xe66eb340,0x519528c0,0x1fda70c2,0xe6629941,0xc1c102e8,0xc0e66666,0xc27712a8,0x48ee3fc0,0x2a00400,0xe66666b1,0x500967c0,0x19ab9ac2,0x6b710024,0x92c28559,0x54c403,0x86fb4d71,0xe9bdbac2,0x1cf1000c,0xc2858412,0x40cc32cf,0xc0e6672c,0xc28525b7,0x40d52fa5,0xc0e665c7,0xc2868fa0,0x40f4a073,0xc0e664ac,0xc2830dc9,0x30c01935,0xeb9bb100,0xadb8c282,0x664d40d5,0x31033ce6,0x7871789a,0x1d567100,0x82a7c272,0xf1000cf5,0x885c4828,0xcf2e7bc2,0x9a3f3140,0x8865b3c0,0xcf6ba7c2,0xad70a440,0x894dfbc0,0xcd586fc2,0x9a520740,0x88c153c0,0xc5c12bc2,0x9a3d7140,0x885893c0,0xc40000c2,0xfff2000c,0x8860a22c,0xb8528fc2,0x90a1a540,0x88616bc0,0xb840d9c2,0x851efe40,0x885f93c0,0xb82b99c2,0x909620c0,0x888dd4c0,0xb6d73dc2,0x9031f9c0,0x897851c0,0xb5d52cc2,0x88606540,0x887ae2c0,0xb6f3ebc2,0x8433bec0,0x8859d3c0,0xb8f495c2,0x856a01c0,0x837acec0,0x155864c2,0x856fb53f,0x876f6dc0,0x96e148c2,0x84964240,0x808bc7c0,0x2b341ec2,0x8570a43e,0x8668e5c0,0x53e8dec2,0x8570a4be,0x869f71c0,0x95bee0c2,0x855b0c40,0x858bbec0,0x9414ffc2,0x8571c740,0x806304c0,0xb1985dc2,0x8570a6c0,0x87774cc0,0x1d70a4c2,0x8570a43f,0x808bc7c0,0x82147bc2,0x8570a440,0x867b53c0,0x45f14ac2,0x8570433f,0x868bc7c0,0xf5c29c2,0x8570a4bd,0x7e3748c0,0x8214a9c2,0x86c5bf40,0x81a045c0,0xf30835c2,0x85326cbd,0x817a9dc0,0x76f6dc2,0x919f8abe,0x81369bc0,0x90ffd2c2,0x95877dbf,0x81bf98c0,0x9b374cc2,0x90943ebf,0x805c3ec0,0x7df1ac2,0xae2dc9be,0x8011b1c0,0x93932dc2,0xa6384abf,0x80b4cbc0,0x90ffe3c2,0x9e6749bf,0xc722dc0,0x7103f200,0x4ac09a3d,0xe3c2811f,0xa6bf90ff,0xb5c087fd,0x620018a0,0xc08fa1dc,0xcd7c5,0x477357f2,0x5c40c08b,0xd0fc27d,0x7156be2b,0xb127c0a5,0x147bc27c,0xd70abdae,0x6cfbc0a3,0x5c29c280,0x8eb4bdef,0xb4c7c099,0x894cc280,0x679fbde4,0xbcf3c09e,0xb67c280,0xd83fbe08,0x5efec08c,0xad90c287,0x9e5640ab,0x68e5c090,0x2ea1c286,0xa3d740b1,0x8bc7c090,0xae14c286,0xa3d740ab,0x5d6bc090,0x59e20120,0x3c09099,0x29c2875a,0xf0bd0f5c,0xf3002497,0xf5c294a,0x90a3d7bd,0x866876c0,0x536263c2,0x90a3d7be,0x857b80c0,0x85cbbcc2,0x90a466bd,0x838194c0,0x18d595c2,0x90a3773f,0x837cf2c0,0x6dfa44c2,0x90a340bc,0x809663c0,0x2c4695c2,0x910d3f3e,0x813efac0,0xb947aec2,0x90a3d7c0,0x885b98c0,0xcf29bfc2,0x24c3ac0,0xce7dc371,0x94db49c0,0x13f200d8,0xc0cf3333,0xc09a3d73,0xc2885ae5,0xc0cf2c41,0xc0ad6f9a,0xc285623e,0xc0cf3333,0xc0aacb0a,0xc3732,0xac6d8bf2,0x38f5c0a9,0x32eac280,0x52a4c0cf,0x411ec0bb,0x3d1c281,0x45fcc0c4,0xa13dc0bb,0x5ac282,0x4bec0c4,0x83dec0ab,0x42f8c282,0x24d3c0c5,0x1a64c0d4,0x615bc283,0xd717c080,0x5b45c0cb,0x1314c288,0xd6d4c0af,0xbf53c0cb,0x3ccbc286,0xd70ac080,0x907ac0cb,0x2c0ac285,0xd708c0b4,0xca42c0cb,0x92bac284,0xd70ac091,0xac89c0cb,0x2c1bc284,0xd662c091,0xd12c0cb,0x1429c285,0xa742c0b6,0x1f72c0cb,0x9279c283,0xd78ec092,0x806cc0cb,0x13f7c282,0x10f1003c,0xc285147d,0xc063b656,0xc0cbd70a,0xc2855abc,0xc07d52ac,0xc0cbd6e9,0xc286a0b3,0x187ed9e0,0xc204f100,0xecc28871,0x4cc08051,0x2c0cbf0,0x21c28496,0x188287,0x595e00f1,0xd2ac283,0xd775c081,0x5893c0cb,0x35002481,0xcd4cccd,0x3d00f100,0x98c0d70a,0xaac28158,0xd9c0bfc9,0x18d6a2,0xf7f714f1,0xd71bc0ba,0x5887c0cb,0xcc0ac281,0x5688c0cc,0x6979c0cd,0x51ecc27e,0xcccfc0b4,0xe3c1c0cc,0xf2000c7f,0xccc74c03,0x804810c0,0xb44ff2c2,0xca6560c0,0x18fe5dc0,0x6d04f100,0x6ec0ca91,0xac27fe3,0x2dc01bd7,0xdac0ccbe,0xc801f,0xc9982462,0xc4f08c0,0xe5de3100,0xb1006cca,0xc07d70a4,0xc0d4cccd,0x24815895,0xcf0cf100,0x39c0d0cc,0x2bc28356,0xb7c080dd,0x33c0d709,0x2bc286e8,0xa4c05c51,0x42cd70a,0x7d70a4e2,0xd70a3dc0,0x86bfb7c0,0xc04278c2,0xf510f100,0xc0c28689,0x1cc0795e,0x1bc0d70a,0x71c28563,0x65c07d39,0xccc0d709,0xabc2869d,0x307e92,0x88589331,0x3db100fc,0xfcc0d70a,0x3ac28550,0x187874,0x86b614f1,0x503c284,0x9f6c082,0x5893c0d7,0xa372c281,0xd79dc0c2,0x5862c097,0x25b7c281,0xea4bc0be,0x71001891,0xbfe47169,0xcab5c29,0x1110f100,0xfcc0c0e2,0x96c09460,0x90c28158,0xd9bff615,0x28c0ca78,0xd6c2815d,0x28bfa6c4,0xcca30c,0xb9eda4f5,0x8cf6c0bf,0x5887c0c8,0xbf2fc288,0xf23fbfb5,0x5889c0ae,0x621c288,0x8842bf94,0x673ec0a5,0x92cdc288,0xe23bbf18,0x65dbc0b7,0xc7d6c288,0x4185c022,0x6932c0d7,0xdf3bc288,0x9b52c022,0x22e8c0cb,0x880ec289,0x5758c027,0x1c69c0de,0x7315c289,0x1bb2c07a,0x82e0c0de,0x7454c288,0xfa76c07d,0x7ae3c0cb,0x3c0cc288,0xe284c0ad,0x588ac0cb,0xe3dec288,0xfd2ac0cc,0x1300c0cc,0x131dc289,0x63a8c0d9,0x253ac09f,0x604ec283,0xafe4c0bb,0xf231c0d8,0xe799c284,0x8f65c0c3,0xf22dc0e0,0x8f32c284,0x967fc0be,0x2560c0d9,0xe2000c83,0xc2834673,0xc0c40000,0xc0eb8200,0xc274e,0xe7444e71,0x84ef8ac0,0xcf10018,0xc0e750b7,0xc284f040,0xc0cf3331,0xc0e7444e,0xc284f22d,0xc0c2087b,0xccee428,0x9898b100,0x89c0c0cb,0x9ee9c0d6,0x62002483,0xc0eedd20,0xc2804,0xe750b762,0xc4201c0,0x254c7500,0x2560c0eb,0xb1003c83,0xc2832560,0xc0ce4752,0x68dc1e2c,0xe928f101,0x16bfb65f,0xbcc0aec0,0x37c28150,0x11409126,0x96c0d70b,0x2dc28858,0xf840b1a5,0x88c0d50d,0x74c28858,0xf840abfb,0x97c0cb44,0x8ac284ff,0x1e40a7bb,0x3ccc0b,0xa99f7371,0xcbc6c940,0x43f10234,0x3d36c26a,0xc0cba891,0xc2821ed1,0x40abb220,0xc0d6df3d,0xc28225ec,0x40ad479f,0xc0ca5d31,0xc2824637,0x40b15ad1,0xc0d4dc81,0xc2826043,0x40b2d400,0xc0c50236,0xc2828bc7,0x40b3d69f,0xc0c4006b,0xc285f680,0x40abfd26,0xc0d6cfa7,0x43884f8,0x90400df1,0xfdc0ad93,0xbbc28292,0xbb40cf43,0xf8c0acff,0x33c282d4,0x8b40cf33,0x84a9c3,0x1cf1,0x333140c4,0xb125c0ab,0xe651c27c,0x634c40c1,0x2561c0cb,0xba15c280,0x1a4c40c1,0x2560c0cb,0xddd5c280,0xc8e440cd,0x71000ccc,0x40a6ae32,0xccd5c87,0xc704f100,0x28409d9f,0x93c0d5e5,0x6ac28025,0xd7408f42,0x4d4cad1,0xce7dc371,0x94db4640,0xa671000c,0xc140a68b,0xc90c7,0xa3578671,0x91feeb40,0xa471000c,0x9e40a4a7,0xcd862,0x9e088d71,0xd6242040,0xaf620084,0x7540c050,0x71001821,0x40cdfae1,0x24cd1896,0x5fff300,0x40c2b6fa,0xc0c2761f,0xc27cb126,0x40c2c8b8,0xc098a2ff,0xc27eecd4,0x40a41d2c,0xc0918e99,0xc27fc723,0x40b234fa,0xc090a398,0xc280803d,0x40b1bf2b,0xc090a448,0xc27e4ac1,0x404a8f5c,0xc0bd70a4,0xc27cef67,0x3fa1eb85,0xc0ad3426,0xc27eb228,0x3fa1eb3a,0xc091c999,0xc27d146e,0x3fa1eb96,0xc0910c0b,0xc27cf8c4,0x40066bb1,0xc09f425f,0xc27ceb68,0x404f4e1a,0xc09f3209,0xc27e5eae,0x404dd667,0xc09fcd83,0xc27e7bca,0x4050feef,0xc093b48f,0xc27ec286,0x3f88529c,0xc090eafd,0xc27ee858,0x40aa46e1,0xc09171a6,0xc27e8229,0x4082e18f,0xc0d660e1,0xc27e7489,0x4075c259,0xc0d66f4e,0xc27e697a,0x40328f5c,0xc0d5999a,0xc27e6f86,0x402290bc,0xc0d8303c,0xc27e697a,0x4008f5c3,0xc0d5999a,0xc27e8013,0x3f9eb72c,0xc0d6b53b,0xc27fe4ec,0x40887ae3,0xc0cc4318,0xc27ee45a,0x40887ae1,0xc0d66666,0xc7fe45a,0xc0ce4200,0x24fa67,0xcac70071,0x8012c5c0,0xf931000c,0x1e0c9ca,0x887ae162,0x70cccd40,0xd32c7102,0xc28d40c2,0xf50018b4,0xad9e324c,0xca1dc540,0x814ddac0,0x99438dc2,0xb13268bf,0x88632ec0,0x27fcb9c2,0xc7152dbe,0x8863bac0,0x5d63ccc2,0xbfc407bf,0x88637bc0,0x697c3dc2,0xd76ef63e,0x8870dbc0,0x80943ec2,0xcbee0d3e,0x8974acc0,0xa0d28fc2,0xd45c0540,0x808bc7c0,0x97ae14c2,0xb0a3d7bf,0xcde2000c,0xcc0cccc,0xaec27ed2,0x8bff147,0xf201f875,0xf147ae4b,0x90a3d7bf,0x8156dbc0,0x86e319c2,0x91704840,0x8090e6c0,0x9a147dc2,0xa1978140,0x8146a3c0,0xae0e0fc2,0x90aa2e40,0x80c8f6c0,0xb114d3c2,0xcccccf3e,0x80c972c0,0x3eafbcc2,0xcccccf3f,0x8158f9c0,0x8851d2c2,0xcf77e23f,0x815320c0,0x942742c2,0xe4cd8a3e,0xf00200,0x93c0d451,0x1208058,0xcccd0bf2,0xe60bc0d4,0x28f6c27f,0x6d5f404c,0xe558c0ce,0x28f6c27f,0x647c405c,0xc331000c,0xc08f5,0x7fe45aa2,0xf1eb85c2,0xc66663f,0x51ec3100,0xe2000c88,0xc27fd6c9,0x402291c5,0xc0d35d72,0x307352,0x886e1bf2,0xb175c0d7,0xf82fc27c,0xff0d4008,0xd6c5c0d7,0xf04ec27f,0x5da93ff1,0x3097c0d3,0xb7e5c27f,0xe673f9e,0xf14ac0d9,0x7a7101ec,0x5ac0d96c,0x847ee4,0xd6666631,0x6331003c,0x3c5c2b,0xc22014f1,0x2b30c27e,0x9644405c,0xb16dc0d8,0xc433c27c,0x682d4075,0x789cc0d6,0xc190c27f,0x3c154075,0xf100b4d8,0x270a3d1c,0xce647cc0,0x7fe753c0,0x370547c2,0xd023a3c0,0x7fe45ac0,0x60a3d7c2,0xce6666c0,0x7fe5a3c0,0x811ebfc2,0xce6e83c0,0x854400f0,0xf0c099eb,0xeb853100,0xa2003c91,0xc27fe3b8,0xc0aeb61e,0x3cfcdd,0xb451ec31,0x5ae2003c,0x83c27ee4,0x66c099eb,0x3fc0d666,0x31003ccc,0xc0d3e95e,0x5204f500,0x7ac0a6b8,0x74c0d96c,0xa2c27e72,0x5ec0aeb7,0x768d82e,0x66660cf1,0x697ac0d6,0xa3dc27e,0x999ac027,0x70b4c0d5,0x8ddc27e,0x2f7bc037,0x310018d8,0x1850a3d7,0x697a7100,0x3d71c27e,0xf1000c7a,0x7e6f8608,0x60a277c2,0xd8303cc0,0x7e8b9bc0,0x887e82c2,0xa3d72ac0,0xe1550054,0xac0947a,0x8851000c,0x8a3d71c0,0xc3310018,0xc50f5,0x5a8cbcf1,0xbdd3c280,0x3d73c087,0x665cc08a,0xcbc280,0xa0fdc087,0x6c9bc090,0x7d9c280,0xa54ec051,0x7e38c090,0xf245c280,0xa3dbc0b0,0xc801c090,0x7f58c27f,0xa3abc0b1,0xd39bc090,0xe393c27e,0xc344c0a1,0xeeb2c092,0xd760c27e,0x8c95c0a3,0xfa6c091,0x6545c27f,0xdb8ec0ac,0x9d4dc090,0xafcc27e,0x8ac094,0xb901c09f,0x4802c27c,0xe8e4c095,0xf10dc09d,0x200ac27e,0x7a5c0a5,0xee99c091,0x6252c27e,0xeb7fc09c,0xee98c088,0xa505c27e,0xc291c0a0,0xf0adc086,0x1aedc27e,0x9e71c0a5,0xb7b8c085,0xf3e9c27c,0x7024c08d,0xb127c095,0x51ecc27c,0xa3d7c0b4,0xb128c090,0xf7e0c27c,0x555ec0c0,0x7104d494,0xc0be147b,0xa491ed1a,0xd71cf304,0xa4c048a3,0x6fc0bd70,0xd7c27ce4,0x37c048a3,0x76c0bd33,0x38c27d15,0xa7c008a4,0xedc09105,0x6ac27e2e,0xdfc008a3,0x2486f8,0x240811,0xd0b400f1,0xa3d7c27e,0x777fc008,0x7352c091,0x4018c7f,0xd17102a0,0xdc02707,0x27cd7ff,0x370a3d31,0x4a2201e0,0xf10198f1,0xd96c7a0c,0x7fd6c5c0,0x60a177c2,0xd35da9c0,0x7cb16dc0,0x60a234c2,0xd6682dc0,0x71310030,0x307a3d,0x7cb16d75,0x851de7c2,0xb6310018,0x18851e,0x7ef14a71,0x91eb85c2,0x97f2021c,0xc2828bbc,0x40cd5e81,0xc0b9680c,0xc28284f9,0x40b58d74,0xc0d2194a,0xc2800383,0x40941a43,0xc0c06671,0xc2802394,0x40958c39,0xc0c1879a,0xc27ce7ea,0x408d49de,0xc0c94a1b,0xc28000fd,0x408d2b58,0xc0c93240,0xc288c711,0x40c5f948,0xc0ad70a4,0xc28889e7,0x40c46076,0xc0ad70a4,0xc28904d5,0x40d84865,0xc0aaf46f,0xc288e1d4,0x40d6536b,0xc0ad2e00,0xc28903e0,0x40d83ab4,0xc09c9846,0xc284f22d,0x40c2b6bf,0xc0dd70a4,0xc284f22e,0x40c3e888,0xc0e08143,0xc2832560,0x40c3e3c5,0xc91cb,0x11069c02,0x40804dc,0x17f2000c,0xc28350cc,0x40cf339c,0xc0ed51e1,0xc284c9da,0x40c400bd,0xc0ec5289,0xc2871db2,0x40abae14,0xc08f23b5,0xc2412ec,0xc45914f1,0x9d6ec07d,0x1a05425c,0x28f8c0c3,0x6da6c0ec,0xf2a641a2,0x3d73c0bd,0xa91dc0ea,0x8d7e4169,0xf20018c4,0x43249f03,0xbf1c2cc1,0xee147dc0,0x95924ec0,0xc57aec1,0x7a1cf100,0x394000a7,0x66405fd1,0x7fc0ee14,0x24411f48,0x13e1563,0x45c0ee14,0x1641a251,0x7b40ceda,0xdac0ee14,0x33421f28,0xcc926,0x736a3a71,0xc2e5d642,0x1bf20048,0x4285fd8b,0xc0b4e910,0xc0ec146c,0x421f289f,0x40cf8c99,0xc0ec28f6,0xc2252984,0xbfb14752,0xc0ee147b,0x42735c09,0x3ce6e6,0x99d110f1,0xb78fc226,0x147d40ca,0xf2aec0ee,0xe6a3c224,0x147b4078,0x19bec0ee,0xfd78c223,0xf2000c85,0x6a71b4ff,0x15b1c226,0x1442c0c5,0x92a3c0ea,0xa3c24284,0x14a5c094,0x11b6c0ea,0x3576c225,0x148cc095,0x9d12c0ea,0x33bcc21c,0x147bc0a1,0xd0b6c0ea,0x8c764287,0x13f0c0a1,0x72efc0ea,0x8f6c223,0x144bc086,0x5c08c0ea,0xe6cf4273,0x341c40c9,0xa980c0ea,0x2d324287,0x147bc08d,0x2f8bc0ea,0xdd55c205,0x147dc0bf,0x8206c0ea,0x9820411e,0x14fd3e03,0x4ec3c0ea,0x93fbc224,0x3d944043,0xd2fc0ea,0xaa804236,0x93bc4087,0x16fc0d6,0x2cdc423e,0x2681c080,0xd205c0d6,0xdc33c12c,0x2683c0c3,0x2f5dc0d6,0x10e9426f,0x2683c0a4,0x974ac0d6,0x73dec146,0x298d40bc,0x19fcc0d6,0x4116c032,0x27b740bc,0xb6d4c0d6,0x4db84281,0x261ec0bf,0xc424c0d6,0xb363c21e,0x2683c087,0x1141c0d6,0x8cc84281,0x2633c0ae,0x33f8c0d6,0xaca14286,0x2681c082,0xbf94c0d6,0x1c734286,0x2683c084,0x28abc0d6,0x80e5425d,0x268140ce,0x1633c0d6,0x3aefc213,0x2683c007,0x1785c0d6,0x14dd416c,0x2077c0c1,0x4251c0d6,0xde6ac224,0x2681bf97,0xc693c0d6,0x93e2c224,0x2681bfb4,0x5cf1c0d6,0x45b7c223,0x2681bf87,0x91f2c0d6,0x96e8c1f9,0x2683c0c4,0xa75cc0d6,0x98d94165,0x271840b9,0x8d6fc0d6,0x35a4207,0x268f40ba,0xe267c0d6,0xae7f41c2,0xaf0cc091,0xdd38c0d6,0x8394c221,0x26814048,0x92ec0d6,0xd39416b,0x268140cd,0xe61ac0d6,0x34a8c216,0x2683407e,0x72a0c0d6,0xa5bec215,0x26814063,0xf582c0d6,0x7364c214,0x2681bfc7,0x8419c0d6,0xaa04c214,0x1cf10018,0xc1e12495,0xc0c2a110,0xc0d625e3,0xc18591f6,0xc0c41229,0xc0d62683,0xc0dcae4d,0xc0c3b873,0xc0e87ae1,0x4286a61d,0xc833776,0x2e4d7100,0xf354416a,0xf1000cb6,0x88685804,0x51730842,0xe87af0c0,0xa1ff38c0,0xb36fa241,0xa4f50018,0xc216e625,0x40805662,0xc0e87ae1,0xc2216e3d,0xbf97c47e,0xc0e87ae1,0x425c139d,0x40bbd58a,0xc0e87b01,0x426cf85e,0x40b85a59,0xc0e87b09,0x425d5f7d,0x40cca77a,0xc0e87b81,0x426db889,0xc0a5921d,0xc0e87ae1,0x42889b7b,0xc0c10809,0xc0e87ae1,0x4169f884,0x40c10c9c,0xc0e87adf,0xc2140f0a,0xbfcf22af,0xc0e87ae1,0x420789df,0xc0ae6675,0xc0e87ae1,0xc1e44558,0xc0b10dd4,0xc0e87a85,0x42089345,0x40be6f00,0xc0e87adf,0x42889455,0x40cef7e8,0xc0e87adf,0xc1e21bff,0xc0b87c0d,0xc0e87ae1,0xc220daac,0xbfb635d6,0xa4e87ae1,0x7ae13501,0xb101a4e8,0xc0e87ae1,0xc224cc1f,0xcc5be465,0x58a57100,0x4efdc222,0xf1000c45,0xf9e5cc10,0xc1857fc1,0xe87b20c0,0x8d2485c0,0xbfe53bc1,0xe87adf40,0x48f432c0,0xba3886c1,0x2071000c,0xb7c035f1,0xcc06c,0xfffffff9,0xc2db85eb,0xc6b3ee41,0xd73d08bf,0xbae632c0,0xe9a6d7c0,0xd69ea5bf,0xb14cbac0,0xe99b13c0,0xd77bd7bf,0xae9e77c0,0x6cd4b2c0,0xd71bce40,0x735fcfc0,0xd2951041,0x75e69bbf,0x737a2ec0,0xd4748e41,0x848cd4bf,0x70cf70c0,0xb1125e41,0x75e6bcbf,0x6e1d7bc0,0xa5b3c841,0x75e69bbf,0x6d4adcc0,0xa3870e41,0x848cc5bf,0x753b3bc0,0xded52841,0x848ce7bf,0x791128c0,0xf08ede41,0x848ce7bf,0x883340c0,0x1e3c2541,0x75e5d2c0,0x866c97c0,0xb6d841,0x75e69b3f,0x63b632c0,0xf02fb641,0x75e6253e,0x9773c7c0,0x69a7041,0x75e6f3bf,0x67391ac0,0xabbf4841,0x75e69b3f,0x8e10dfc0,0xe2749741,0x75e69b3f,0x83f1b1c0,0xffb2dd41,0x75e697bf,0x6bdbb7c0,0x9ecf0741,0x848d713f,0x6673c6c0,0xa03fd541,0x848d4c3e,0x926f90c0,0x87483d41,0x8e26933f,0x70e7e5c0,0xc3466741,0x8e26813f,0x663818c0,0xa6da8841,0x8e2648be,0x925e99c0,0xae0c2841,0x8e2529bf,0x872a15c0,0xdab9341,0x8e268140,0x947ecac0,0xc3cddd41,0x8e2757be,0x874ee8c0,0xd899441,0x8e27ddc0,0x79a414c0,0xf2c40d41,0x8e2681bf,0x71b78cc0,0xcb7fbf41,0x8e2618bf,0x6fbb5ac0,0xd748cb41,0x8e27fabf,0x8e25efc0,0xed33b941,0x8e26813f,0x657e93c0,0x42248941,0x8f4938bf,0x95df20c0,0x434c1b41,0x958670ba,0x6f4e8ac0,0xd27a4241,0x9207353f,0x8ace24c0,0x51bdf41,0x937b2d40,0x70b5bdc0,0xb9331a41,0xae968b3f,0x901f4ac0,0xd69d5a41,0xa490753f,0x8e3a58c0,0xeae86441,0x96bb8abf,0x8cb337c0,0xdc1e6041,0x92e918bf,0x77233cc0,0xe09bae41,0xac474ebf,0x80d8fbc0,0x5a1dc41,0xaf31fbc0,0x80d612c0,0xfeecc841,0xabf0a2bf,0x8a9bc0c0,0x6b6f641,0x9f1e8ec0,0x900389c0,0xb1858c41,0xa8a3c63f,0x8ead15c0,0xe695a741,0xac75123f,0x746899c0,0xd358c141,0xa43f5dbf,0x76ede4c0,0xfc21c941,0x9af9ba3f,0x87b7a9c0,0xfc910041,0xa34d51bf,0x8d1f73c0,0xd8344c41,0xa2e1a2bf,0x70f5e0c0,0xc3af6c41,0xafc01abf,0x8c07bac0,0xead88841,0xafc01abf,0x92333bc0,0xb0784241,0xafc1c4bf,0x85267ec0,0x1b18941,0xafc28d40,0x6b72f3c0,0x8d8c7e41,0xafd5613f,0x770627c0,0xe819eb41,0xafc01c3f,0x946631c0,0xca2b9d41,0xbaf34d3e,0x8b0f06c0,0xf2c41541,0xbaf34d3f,0x7f81bdc0,0x1d49141,0xbaf34d40,0x8402bcc0,0xf4999541,0xba27e33f,0x6f9b18c0,0x91fab141,0xb9fe2ebf,0x8398bac0,0xf5149041,0xba345dbf,0x916845c0,0x628aa441,0xbaf34dbf,0x732e77c0,0xb2748e41,0xb959b63f,0x6b8bbec0,0x2f65aa41,0xb958863f,0x8e753fc0,0xb1a5ca41,0xb9c0333f,0x6a23e4c0,0x7cbccf41,0xb959b4be,0x90ebecc0,0x7076e241,0xb959b43f,0x8dd7a5c0,0xb443bb41,0xb959b4bf,0x7412d6c0,0xb443bb41,0xb959b43f,0x772f26c0,0xc7675541,0xb959b43f,0x827ee0c0,0xeefba941,0xb06454bf,0x925b00c0,0x5885d41,0xb05eddbf,0x6d3906c0,0x5da5db41,0xb05e03bf,0x864dfdc0,0xeb5ffe41,0xafe853bf,0x83bd1ac0,0xf0550841,0xb05e5f3f,0x772f26c0,0xc7675541,0xb063f13f,0x6e9238c0,0x759f6f41,0xaf97243f,0x7482d5c0,0xb32b9141,0xaf7d5b3f,0x9231f9c0,0xfe883741,0xaf9724be,0x912749c0,0x5854bd41,0xaf2164bf,0x8be0ccc0,0xc9885d41,0xaf6b2dbf,0x6ed091c0,0x7c775741,0xaf9b11bf,0x6cbe2ec0,0x3d2afa41,0xaf9724bf,0x88e950c0,0xdf09e141,0xaf9724bf,0x6b62c0c0,0x490241,0x8f10018,0xc0aeb42d,0x4187eaa9,0x3fe41712,0xc0aeb42d,0x4185f03f,0xceaa162,0xb76f7100,0x3287416c,0x71000c3c,0x417a3b5c,0xcd22121,0x52ae7100,0xbb2c417f,0xf8000ca4,0xffffffff,0x7405c658,0x22539741,0xaeb42dbf,0x862301c0,0xaf44dd41,0xaeb465bf,0x8c976ac0,0x683f7041,0xaecdaf3f,0x85ab77c0,0xa3968d41,0xb47fc9bf,0x8c8310c0,0xc2ba7c41,0xb85b64be,0x8a2bb0c0,0xd9cfdd41,0xbaaa953e,0x84027bc0,0xabbd3841,0xb4beadbd,0x851a9bc0,0x488f4341,0xba2fd93f,0x8c83d5c0,0x2d8d1541,0xb4f84f3f,0x83877bc0,0x81d43941,0xb9e22c3f,0x87a70fc0,0x8e0c7441,0xb6fa833f,0x835b71c0,0x8f012141,0xb8a70f3f,0x850fe3c0,0xf0c7841,0xb526ccbd,0x80b6fac0,0x5c16df41,0xbb13d73f,0x7ddcbdc0,0xbcb25341,0xb9716fbd,0x833f47c0,0x29b06841,0xb4ad713d,0x7abd55c0,0x66191141,0xb688833f,0x768678c0,0x2835ce41,0xb4fa663f,0x747afbc0,0xe34a0241,0xb688833d,0x74e303c0,0xe5117b41,0xb4f67b3e,0x7d51d5c0,0x66cb5341,0xb8a674bf,0x76bbeac0,0x2d948e41,0xb4fac0bf,0x7d2a2ac0,0x8c1c8a41,0xb529ccbf,0x83d355c0,0x522c8841,0xb485c23c,0x90ef6fc0,0xc8f6d741,0xaf2f4fbf,0x84d144c0,0x59d541,0x848d2ec0,0x90651dc0,0xa845aa41,0x848d0b3f,0x82cc5dc0,0x13769241,0x772e493f,0x7ffcc3c0,0xa84ea541,0x772e493e,0x861916c0,0x2073e41,0x772e62bf,0x8147c2c0,0xf23fab41,0x772e273e,0x81fde6c0,0xf282c741,0x789c1bbe,0x8758b7c0,0xc4f6e041,0x772f6f3e,0x7ecebfc0,0x278af441,0x771dd63e,0x85d9fbc0,0xd47c5241,0x7a01d63e,0x83ece6c0,0xf88bfc41,0x7a03a33e,0x86c7b4c0,0xa5ec8141,0x7a029f3e,0x80cf24c0,0x8fe6f741,0x7a03d13e,0x86885ac0,0xa653a841,0x7a01d63e,0x85b9b4c0,0xd33c3e41,0x79ee46be,0x806473c0,0xf23bbc41,0x7a01d63d,0x83f195c0,0xeaf55641,0x7a01d6be,0x821299c0,0xce6b1e41,0x7d28ed3e,0x83ef77c0,0xee3a5c41,0x7d320e3e,0x869197c0,0xa8a3f941,0x7d320e3e,0x572b1bc0,0x15993541,0xb159b43f,0x5f0153c0,0xe3250341,0x915a123f,0x62cae2c0,0x417b141,0x9159a9c0,0x591adec0,0x852ab741,0x9159b43f,0x987c03c0,0xd6164041,0xb2c40dbf,0x910e5bc0,0x28614641,0xb159b4c0,0x8e5480c0,0x3425a741,0x9159b440,0x984fcbc0,0xad211441,0x9158b43e,0x795084c0,0x189ec741,0x9159b4c0,0x5f6f26c0,0xabdc8c41,0x9159b4be,0x8d8b08c0,0x101f8241,0x9159b440,0x82a0cbc0,0x22dcc641,0x9159b4c0,0x5f6c1ac0,0xa8f7fd41,0x9159b43e,0x8adf81c0,0x1a6e0d41,0x9159b4c0,0x934ac9c0,0xd6efa241,0x9159b4bf,0x4d856ec0,0x16a93341,0xd48ce7c0,0x6186afc0,0x282be941,0xd48ce7c0,0xa185c8c0,0xf3ba9941,0xd48ce13f,0x616e8ac0,0x296da441,0xd48ce740,0x78a1f7c0,0x2654fc41,0xd48ce740,0x9d2349c0,0xfe89f41,0xb7bb9940,0x9fd1d4c0,0x3d9cf41,0xb7c02140,0x9e8e93c0,0x1fca8e41,0xc7c01a40,0x9f1d85c0,0x21bf4441,0xc652b940,0x7980a6c0,0x28daba41,0xc107c840,0x4eb660c0,0x1da75441,0xc7befbc0,0x5b3c48c0,0x1fc0b541,0xc7c01ac0,0x9a4729c0,0x28b80f41,0xc107c8c0,0x9a2891c0,0xa04be441,0xc108273f,0x7c764ec0,0x8b38541,0xc107c840,0x6ca556c0,0xbc5b4b41,0xc107c83f,0x566d69c0,0x9e31f941,0xc107c83f,0x802210c0,0xcbe4441,0xc107c8c0,0x6d763ec0,0xc4e9a341,0x97c01cbf,0x7c34edc0,0x1c8c2241,0x97c01a40,0x988947c0,0xf2f87b41,0x97bff73d,0x6233ccc0,0x7a7d5641,0x97c01abf,0x9506f7c0,0x36acfb41,0x97c01a3f,0x9187a7c0,0xbcd7cf41,0x97c01a3f,0x66228ac0,0x48b02941,0x97c01a3f,0x934ac9c0,0xd6efa241,0x97c01abf,0x74cbb9c0,0x106e3f41,0x97c01a40,0x2ba8bac0,0x3a75cdc1,0x88f5c3c0,0xf59ba6bf,0xb0000041,0x88f5c3c0,0xae446dbf,0xf88a9c41,0x88f5c3bf,0xa70c3cbf,0x5f3bd641,0x88f5c3c0,0x9e6039bf,0x919c2441,0x88f5c3c0,0x8ef377bf,0xaeeca041,0x88f5c3c0,0x92604bf,0x8615c6c1,0x40c10048,0xbf88f5c3,0x418ff050,0xcacdf24,0xc9537100,0x4ae041ad,0x87000c06,0x4238cdd3,0xc0b00000,0x1803000c,0x42585100,0xcf170a4,0x9fbe4400,0xcc170,0x9de204f1,0x3600c139,0xf5c33fbc,0x1885bf88,0xa85fc0f8,0x71002489,0xc0d032f0,0xc8615c4,0x99a67100,0x95f6c07c,0xf1005419,0xcef2cb04,0xb46d6a40,0x88f5c3bf,0xa1003fbf,0x61209bc0,0x58710018,0xb3c05a75,0x189e5e,0xe7d6e771,0xbf26af40,0x1671000c,0x64413a96,0x2437e7,0x786c1171,0xb1bc3a41,0x4f1000c,0x412df353,0xbd973861,0xbf88f5c3,0x4130fd59,0x84b35105,0x1804f100,0x9c137c4,0x73bfdcde,0x6bc0823d,0x60c06180,0xccbe8,0x4f27ddc3,0x853d86c0,0x823d73be,0x5300a8c0,0x823d73c0,0x100a8c0,0x10f1000c,0xc12e69e0,0x402c5111,0xc0823d73,0xc13a86d2,0x3fae495e,0xc0823d73,0x419e551b,0x24915ef4,0xd51c7100,0x2cb24191,0x3000cab,0x40c10198,0xc0823d71,0x41a704b8,0x3c63534c,0x71527100,0x8ece41af,0x4003cba,0x73b10150,0xdac0823d,0xf740b429,0x181c75,0xc9527c71,0xad017e40,0xd471000c,0x3f4141ac,0x546353,0x30d39d71,0xba8e2641,0x977100b4,0x4b410650,0xc1c76,0x71710271,0xadbb9741,0x75710024,0xf6412ea9,0x3c6207,0xfebc7571,0x96a7f840,0x3803000c,0xc0101,0x5bed2a71,0x9ce70441,0x7bf20090,0xc11a3e68,0xbfdbdfb9,0xc0c71c43,0xc0b1b952,0xc010bb5e,0xc0c71c43,0xc0a8f649,0xc01f9889,0xc0c71c56,0xc0ae0d7e,0x3fdc0e17,0xc0c71c43,0xc11fb447,0xc01af1bb,0xc0c727b1,0xc0a80ffc,0xbf353b4b,0xc0c71cbb,0xc0a76d6c,0xc00ade5d,0xc0c71ced,0xc11d4a11,0x4001d88c,0xc0c71c43,0xc13a5032,0x40830da6,0xc0d582aa,0xc13a309c,0xc0337e3d,0xc0d582aa,0xc04faaef,0x4089c0f2,0xc0d582aa,0xc13d8450,0xc7239,0xaa6d1bf2,0x9325c0f7,0xb5dd403f,0x7a25c0a8,0xd530c11f,0xb5b53fe6,0xe4efc0a8,0x9325c0ea,0xb5ddc03f,0x739fc0a8,0x9a52c0f7,0x4f1000c,0xc13235a6,0xbfda1d65,0xc0a8b5dd,0xc1370215,0xce4726d,0x88a09700,0x57e2c128,0x3cddbe4c,0x1c433500,0xf8006087,0x871c4351,0x93b26c0,0x353abdc1,0x871c7a40,0x1f3a4c0,0x3c5a3ec1,0x871c43c0,0x25078fc0,0xc19f1bc1,0x871c433e,0x21ed77c0,0x92108cc1,0x871b7e3f,0x9b0798c0,0x422963c0,0x871c433f,0xdf25fcc0,0x2f7e17c0,0x871c4340,0x256ca0c0,0x81c66dc1,0x871daebe,0xee511ec0,0x335affc0,0xf1004840,0x8be91020,0xe6d7cc0,0x1ccd25c1,0x8be91040,0xa20453c0,0xa8bc49c0,0x8be910bf,0xb6c58fc0,0x81351c0,0x89da1dc0,0xf9d6aec0,0xf4003c0,0x4f10024,0xc0daf44b,0xc008e6ff,0xc08be910,0xc0e5efef,0xc0e33ad,0x76bc6200,0x4092c0fc,0xfff2000c,0x94ba21ff,0x34b5c0c2,0xe9103fdb,0xa79ac08b,0xd6aec11b,0xf9723f05,0x146ac0ad,0xdc83c0ef,0x947d400d,0xe10fc0af,0x61e1c0f4,0xab19c00d,0x2dd8c0af,0x7beac0aa,0xf9723eb5,0x8562c0ad,0x3b58c0d0,0xf972c000,0x976ec0ad,0x645ac0cb,0xf972bff5,0x9542c0ad,0x491fc0ba,0xf9723fbb,0xbadcc0ad,0xd4aec0ae,0xf972bf5b,0xf37cc0ad,0xd999c0b0,0x4f763f27,0x62e1c0b2,0x6e65c0af,0x4fd3bf06,0xe085c0ba,0x1c5c0bd,0x4f763fb0,0x576cc0ba,0x1c5c112,0x4f76bfb0,0x79c2c0ba,0x5db3c0bf,0x4f76bec1,0xdeeec0ba,0xa212c108,0x4f763f9e,0x3cf1c0ba,0x12a5c10c,0x4f763f84,0xbe98c0ba,0x31dbc0ce,0x4f76bf97,0xf01dc0ba,0x74fc10e,0x4f763f4a,0x8588c0ba,0x89a4c110,0x4f763f13,0x4176c0ba,0xf4e8c0bd,0xb719be5c,0x9412c0c0,0xe69fc10e,0xb65fbf58,0x827c0c0,0x2ce4c0b0,0xb5f84013,0x9208c0c0,0x696c11a,0xb5dfbf4a,0x21abc0c0,0x7d03c139,0x4f76c003,0x1f61c0aa,0x7d03c139,0x4f76c023,0x30ecc0aa,0x3023c136,0x4f76c02f,0x27b3c0aa,0xe38fc13a,0xe914c01a,0xaa5bc0ab,0xba52c135,0xe910c031,0x3b73c0ab,0x974c137,0xeb81c012,0xb42bc0ab,0x9f5a4159,0xf2b63fb2,0x9178c0b2,0xdcec415e,0x5d51bfd4,0x157dc0b2,0x9e5a4156,0x5990bdc7,0xf9f7c0b1,0xb61c4148,0x59b43f0d,0xe4eac0b1,0xff9b416a,0x59b44020,0x6161c091,0xf5f9418e,0x59b4c033,0xd179c091,0xf13041a3,0xf34dc034,0xfa8dc0b2,0x6b33419e,0xf371c02e,0xcd8fc0b2,0x3b0c41a3,0x6ac6bfb0,0xc91c0b2,0xbc5a419b,0x5de3bfb2,0xcb9cc0b2,0x8db94193,0x59b4c018,0xce0ac0b1,0xaeef4191,0x59b44024,0xeb27c091,0xe0ce4195,0x594f3f9b,0xc5a6c091,0xb744160,0x59b43f3d,0x49b5c091,0xf0524168,0x59b43fce,0x43a7c091,0x25144197,0x59b4bf51,0xd406c091,0x1d264147,0x8ce74036,0xea01c0d4,0xaf9b41a3,0xddf1000c,0x41a1336b,0x40122a1b,0xc0d48db7,0x419f9df6,0x4021339c,0xc0d48bf4,0x41a08dc5,0x401e7a81,0xc0d48be7,0x41a17821,0x3ff8136e,0xc0b3e96c,0x41a2e8fe,0x40121c11,0xc0b3ef6b,0x41a09ebc,0x40253dd9,0xc0b48cf2,0x419dd1ee,0x40210208,0xc0b7c01a,0x419cac2f,0x3f9f8c76,0xc0c7c01a,0x419fe764,0x4021019b,0xc0d0f34d,0x418b14a8,0x4028fb87,0xc0c107c8,0x415b2575,0x401f5a75,0xc0c7c01a,0x414e3f5d,0x401c7e78,0xc0c7bee2,0x415c11ca,0x3fa23eea,0xc0c7bf40,0x4178cbc8,0xc025c93a,0xc0c107c8,0x4199d4b0,0xbfa1dbe4,0xc0c10874,0x419979e3,0x3fada34d,0xc0c107ca,0x418c2c70,0xc0012a17,0xc0c107e8,0x415ccb88,0xbfad07c8,0xc0c107cc,0x41684d50,0xbf8a4e59,0xc097c01a,0x4163c303,0xbb2569b1,0x1403075c,0x1a5ff601,0xbdc097c0,0x7d41877a,0xbe402241,0xf7c097bf,0x24179c1,0x1ac01949,0x26c097c0,0x8c415f6f,0x1abeabdc,0x64c097c0,0xdb418d8c,0x1a401033,0x9ac097c0,0x574163ba,0x1a3f9805,0x40c097c0,0x9d416845,0x1a3fcf0d,0x46c097c0,0x8f41a0bc,0x9cc02d1a,0x98c0b486,0xc1c2885b,0x5540cf29,0xbbc09a3d,0x71c28858,0x9540cf39,0xf2149472,0x9a3d7183,0x8858b7c0,0xb9b978c2,0x90a22740,0x8858bdc0,0xb9a546c2,0x856da240,0x890f2ec0,0xb5ae6ac2,0x7d57b040,0x885f95c0,0xb82bcbc2,0x90991ec0,0x8859b4c0,0xb8f7c2c2,0x856a7dc0,0x808bc7c0,0xa1eb85c2,0x8570a43f,0x867b53c0,0xb0be27c2,0x85703d40,0x7f2fb3c0,0x6da27c2,0x85546740,0x8687b2c0,0xabae8ac2,0x835d8d40,0x837ed9c0,0x3634dbc2,0x85723bbc,0x8581cdc0,0xadb75dc2,0x8570e140,0x818aa8c0,0xb6d003c2,0x5470a4bf,0x66493500,0x2000cb7,0xaf11650,0x7b53c085,0xa348c27e,0xeedc048,0x8a75c086,0x5c5dc280,0x70a6c0af,0x31168085,0xcba6666,0xa024f100,0x88c27fbc,0x11c0b149,0x34c08570,0xfec28081,0xce40b1e0,0xd9c08570,0x7fc2837a,0xb34097df,0xc7c08570,0xa4c2868b,0xa43f1d70,0x60c08570,0x213086a8,0x70a433f2,0xae2ec085,0x6b72c281,0xa19fbdb2,0x3b73c090,0xffdac281,0xdca3bf90,0x1a09c094,0xffe3c281,0x9f9bbf90,0x9bdc09f,0xed85c281,0xe131be07,0x9717c0a2,0x12ac280,0xfb14bf91,0x7e05c0ac,0x8c3121f0,0x9094bd,0xae1464f4,0xd70abf97,0x1079c0a3,0xf517c280,0x4244bde9,0x8934c0a6,0x63b7c286,0xa45d40af,0x473ac090,0x64c7c281,0xadc940ba,0x7443c090,0x9047c283,0xa3d740a9,0x43fbc090,0x15c4c281,0xa51c4086,0x74c1c090,0xc53dc283,0xa3d74098,0x90e5c090,0x147bc280,0xa3d740ae,0xac26c090,0x33b9c285,0xa3d7be53,0xa19fc090,0xf1d8c280,0x29e3bfb7,0x123dc91,0x93b12184,0x8ec28858,0x16c0bfc8,0x1d948626,0xea701cf1,0xbb23c0c9,0xb11cc08b,0xe0f0c27c,0xa37bc0c9,0x4351c08a,0x4582c281,0x6eec0cf,0x94e3c0bb,0x3353c282,0x4eec0cf,0xb50030ad,0xc0cf3331,0xc0c23d73,0xc858bc7,0x8308f100,0x33c282cf,0x3cc0cf33,0x6bc0a9dc,0x93c28008,0xb7c0c400,0x30d616,0x58f5,0x70a6c0c4,0x9373c0ad,0xf011c285,0xb314c0c3,0xf8a8c0c5,0x4dac285,0xe5e4c0bc,0xe9a6c0cb,0x24d9c286,0xd782c05c,0x5882c0cb,0x9008c288,0x75a9bff7,0xc0f7c0ca,0x43ccc286,0xd70ec080,0x165ec0cb,0x69f0c283,0xd70ac08c,0x8908c0cb,0xef4ac286,0xd76fc079,0xe2ec0cb,0x7451c283,0xd70ac08d,0x420c4cb,0xec22000c,0xf121fc51,0x821db104,0xbb82f9c2,0xcbe619c0,0x854e5ac0,0x790614c2,0xe7712190,0x85c2850e,0xc637b,0x33219002,0x90cfc0b4,0x769d7121,0xe349c0b4,0x931d88cc,0xc0b45a14,0xc0ccdd5f,0x62214856,0xc0ccbe85,0x213c01a9,0xca69c262,0xc3a3ec0,0xd9e67700,0x5893c0c9,0x2004880,0xa8020018,0x8105f21b,0xf2831bc2,0xd650f6bf,0x815892c0,0xc743f2c2,0xcc7d44bf,0x2148041b,0xa73957f2,0xa3f6c285,0xa40c0b4,0xfe41c0d7,0x81b4c285,0x35bfc0bb,0xbe4cc0d7,0x3b5ac286,0xa3dc080,0xe0cac0d7,0xd2e1c282,0x54fac0b3,0xff5c0d7,0x6399c283,0xad7c090,0x2947c0d7,0xe1d2c285,0xa61c05c,0x585bc0d7,0x6cc6c285,0xa3dc072,0x25c7c0d7,0xcaac285,0xa3dc07d,0xc0f8c0d7,0x8cdfc284,0x6971000c,0xf7c28508,0x6c5c56,0x589307f2,0x4a12c281,0x60afbfdb,0x5852c0a8,0xe91c288,0x87a5bff9,0x64f401bc,0xbfea5c1c,0xc0ae3ec2,0xc2897562,0xc02654ef,0xc0d463aa,0xc288ea61,0xc0806682,0xc0dc4d12,0xc289511d,0xc080948a,0xc0d31368,0xc28979cc,0xc082ce25,0xc0d48b0b,0xc28979e2,0xc0abb50b,0xc0d48cb7,0xc2894dfb,0xc0cd586f,0xc0ad5c10,0xc288c153,0xc0c5c12b,0xc0ad70a6,0xc2890d15,0xc0d8beaf,0xc0aa7638,0xc2894dfb,0xc0cd586d,0x209a5209,0x2ac0119,0x255d17f2,0xdc77c283,0x47fec0c3,0xf21cc0e0,0x6960c284,0x4a06c0c1,0x2560c0db,0xa275c283,0xcdc2c0c1,0xa440c0db,0x3622118,0x2dc0eeee,0xf2000c72,0xedc0fd03,0x84f06ac0,0xc40000c2,0xe71c26c0,0xc78a6c0,0xdd1e7300,0xf22dc0ee,0x1102b884,0xa4000ce2,0xc0ce4752,0xc0dc1e2c,0x18dd99,0xdec0ea42,0x62000cb3,0xc0ed402f,0xc734f,0x71006004,0xc0cf3331,0x84edc0fd,0x3000200,0xce211,0xf1216c04,0x89312814,0x859b45c2,0xdedaeec0,0x89264cc0,0x83851fc2,0xde7696c0,0x890fbec0,0x819e2cc2,0xdda640c0,0x3f21e9c,0xbe2497b7,0xc0d5dcdd,0xc2885854,0xbe206317,0x21488a0b,0x439aaff2,0x136e3e32,0x8e9ac0d7,0x63d2c285,0xf0c340a3,0x4891c0d6,0x22a7c281,0xad240a1,0xcae7c0d7,0xa958c280,0x9e3409f,0x5890c0d7,0x5a9dc288,0x70d240cd,0xba60c0b9,0x2accc285,0x68140a4,0x2fe6c0cc,0x5858c282,0xedfe40a8,0xabfcc0cb,0x6b38c282,0xd64d40a3,0x5af6c0cb,0x2e06c288,0xd4f63e4f,0x1f5bc0cb,0x1306c283,0x957440a9,0x3a8bc0cc,0x72d8c282,0x64a840b0,0x6042c0c7,0xd3fac282,0x36f40b2,0x8d85c0c5,0x6f48c282,0xf55840a3,0xfd08c0d6,0xaaac284,0xbe2540a8,0xa5e0c0d8,0xfac4c285,0x6bdb40b3,0x6c8bc0d3,0x26c285,0x9cfa40c4,0x6558c0aa,0x24622190,0x77c0aaf1,0xf4000c3a,0xa9b6dd00,0x858bf6c0,0xb3ea70c2,0xc3ef8f40,0x1f12610,0x9a3d7140,0x82a2a2c0,0xc40c43c2,0xab462a40,0x4f10114,0x40c3f81a,0xc0b0d142,0xc2802560,0x40c40000,0x84ab3331,0x2e027103,0x55bb40c2,0x71001893,0x40a4bf90,0xcd87436,0x8702f300,0x9a409fdf,0x93c0c999,0x5c28025,0x1408f43,0x4f1219c,0x40a665f1,0xc0cd507f,0xc27cb128,0x40aaf226,0x7891057b,0x58a56200,0xfe5640a3,0x4f1000c,0x409edea9,0xc087b884,0xc27cb125,0x40c5a030,0x2486cbff,0xf764f300,0xf7409acb,0xa1c08a73,0x4fc27ccd,0xce408d21,0x15c0962a,0xb2c27cb1,0x6340bcbc,0x23c0cbaa,0x21c27cb1,0xa740aa92,0x27c0cc33,0xe1c27cb1,0xa40947a,0xfec0a3d7,0x56c27ee6,0x3640a2e5,0x3ec085bc,0x6cc27ec2,0x6b408215,0x67c091ad,0x7bc27cef,0x26408214,0x4cc0ad34,0x75c27d14,0x22408214,0x6fc0910e,0x5cc27ce4,0x37400a8f,0x21c0bd33,0x400a2af1,0xc0bd70a4,0xc27d5961,0x4004201d,0xc08bde0d,0xc27f4b64,0x400ad3aa,0xc0908290,0xc27ed136,0x40a1bae0,0xc093418d,0xc27cf4e2,0x4094194c,0xc09ef48a,0x47e6979,0x66663520,0x33000cd6,0xcb9999a,0x9401f200,0xb9999a40,0x7e7f29c0,0x8851ecc2,0x24da0c3f,0x51ec7100,0xcccd3f88,0x310024cc,0xc30a3d7,0x2535b100,0x441ac280,0x3357408a,0x31015cb8,0x5c887ae1,0xc8f69301,0x114dc280,0xa0794093,0xf81cf120,0x3409fd5,0xaac0cccd,0x3ac2814e,0xa5409168,0x24c0cccd,0xa9c28159,0x7240b050,0xdec0d5f0,0x22c28158,0x6640bd52,0x4eccb3d,0xc2d38971,0xb4c11a40,0x477101e0,0xde40ad9c,0xcca1e,0x9ee14871,0x9fae1440,0x57f2000c,0xbf44079a,0xc0b23d71,0xc28157e6,0xbf9de8bc,0xc091a576,0xc2814117,0xbf97ff26,0xc0909533,0xc289744d,0xbedda87a,0xc0cc4021,0xc289171d,0xbf2a9069,0xc0d24fe8,0xc2885fc8,0x40a2c014,0xc0d73d08,0xc27cb127,0x3f30a3d7,0xc090a3d7,0xc281468e,0x40ae0ebb,0xc090a984,0xc281576d,0x40ad2090,0x1f89536,0x3100f004,0x147fe45a,0xcd04f101,0xafc0cccc,0x52c28150,0x8a3f4c61,0x7ec0cccc,0x188059,0x20c8a822,0x47ae7301,0xcccdbff1,0xf105dccc,0xcd3f882a,0xf4c0d4cc,0xd2c2802a,0xee3f8851,0x15c0c935,0x36c27fe5,0x71402a90,0xe5c0ce63,0x6ec27fe3,0x5b3f9ec1,0x5ac0d0fa,0x5cc27ee4,0x6640228f,0xbac0d666,0xc7f67,0xd7cf9a31,0xc3350018,0x1808f5,0xeb8501f4,0xcf9a3ff1,0xb16dc0d7,0xeeccc27c,0x1e9c3ff1,0xeb8503f2,0x66663ff1,0x4b6cc0d6,0xb830c27f,0x9b0b3fbe,0x9935213c,0x249ebb,0x328f5c31,0xd6b10048,0x5cc27fd1,0x5d40328f,0x48d37d,0x4c2a9931,0x4f12160,0xc27fcc3f,0x404c28f6,0xc0d3e95e,0xc27fd1d6,0x245c28f6,0xb1757100,0xe27ec27c,0xf1219c82,0x7f9a4e14,0x82e09ec2,0xd752e140,0x802a79c0,0x887ae8c2,0xcb1dcb40,0x7e7f16c0,0x1bd68cc2,0xd6d9d1c0,0xa312184,0x21481bd7,0x7fea47b1,0x3706d5c2,0xd0432dc0,0xcf1210c,0xc099ead5,0xc0d82f7b,0xc27f67ba,0xc099eb85,0xc0d7cf9a,0xc27fd6c5,0x7499ea55,0x5214f11f,0x52c27f73,0x6ec0a6b8,0x75c0d788,0x1cc27cb1,0xdc0a6b7,0xc6c0d7ff,0x70c27fe9,0xc5c0aeb6,0xb4d048,0xaeb78071,0xd6682dc0,0x52440120,0xd0c0aeb8,0x51eca202,0xa3d7c0b4,0x697ac090,0x10f11f98,0xc0d5999a,0xc27e6979,0xc050f5c3,0xc09d70a4,0xc27ee564,0xc0887b35,0xc09179cf,0x187f3646,0xd730f100,0x8dc090a3,0x86c27f2d,0x87c0a8f5,0xbbc090a4,0x67c27ed3,0x74c090fd,0xe5c092c1,0x3ec27e91,0xbbc0aa32,0x28c0918b,0xacc27cb1,0xcdc0a2d2,0xb1c09211,0x5cc27cb8,0x3cc09548,0x3d89de8,0x3dd503f2,0xbe47c0a6,0xf111c090,0x2106c27e,0x768c0a5,0x4f10240,0xc09cbaae,0xc088951a,0xc27cb64e,0xc08e00bf,0x909564cd,0xef04f103,0x2cc08cae,0xc1c0968f,0xd7c27e4a,0xa4c008a3,0x174bd70,0x270a3d71,0xd37d5dc0,0x3d440120,0xecc0370a,0x89a3501,0x3100f037,0xf050a3d7,0xd1d67500,0xa3d7c27f,0x31003050,0x3060a3d7,0xcc3f2200,0x5e31000c,0x120d3e9,0x2231002,0x8671021c,0xbc07a3d,0x6cd89b,0x7a3d7131,0x7571003c,0x8c27cb1,0x1687a3b,0x7fcc3fa2,0x851eb6c2,0x8ce95ec0,0xeb853101,0xf1018c91,0x828bc614,0xc2587bc2,0xb5563440,0x828bc7c0,0xc3a620c2,0xb26f9c40,0x7cf6e9c0,0x9413c0c2,0xc0615d40,0x10f400e4,0x40957d5f,0xc0c17bfe,0xc27cb4d0,0x408ed784,0xc0ca80e9,0xc2801a5a,0x408e07d5,0xe0c9de96,0x401df507,0xc0ad5c0c,0xc28980dc,0x40d02fab,0xc09cb60d,0xc28912e9,0x40d911d5,0xc0a8604e,0xc283256d,0x40bf0d4e,0xc0d98b70,0xc4832560,0x25603320,0x41060c83,0x2724c0e2,0x10f207bc,0xe71c2440,0x84f1f9c0,0xc58870c2,0xcf42ab40,0x84cc94c0,0xcf33d0c2,0xecd1b940,0x249ee9c0,0xdd1e6100,0x734fc0ee,0x406207d4,0xc0eeee01,0xf207ec40,0x444c4034,0x4d4ec0e7,0x27ec283,0x311840c4,0x276c0ec,0xe15dc287,0x144d4096,0x8d72c08e,0xe148c286,0xe114096,0xed7cc081,0x5c29c286,0xa9f1bd0f,0xf1aac08c,0x70a4c286,0xf65c3f1d,0x86a8c08c,0x3a310018,0xc81ca,0x70a477f2,0xca3a3f1d,0xe35cc081,0xf858428b,0x380f4150,0xcb3ac087,0x2daf428b,0x41bc414e,0xf1b8c0c6,0x351cc28b,0x7fd6414e,0xec8bc0c5,0x4993c28b,0xdeec4144,0xcccdc101,0x8d69c28b,0xdccb4135,0xff4ac11a,0xb124c28b,0xffb34109,0xd196c13f,0x6d00c28b,0x83464123,0xeb2bc12e,0x4d2ac28b,0x4e0f4123,0xda0dc12e,0xca0bc28b,0x1edf4123,0xf101c12e,0x8808c28b,0x47ac4150,0xf924c089,0x3333c28b,0x7df3000c,0xc28bfef4,0x414fc6f2,0xc083cc18,0x41be0ebe,0xbf7421e2,0xc13ffeea,0x428bff29,0xc109b77d,0xc13fffaf,0x41d03898,0x3f9e92b4,0xc13ff39a,0x428bf9aa,0x410af481,0xc13fe556,0xc14bfffe,0xc10d0df1,0xc13ff383,0xc28bd3a9,0xc10bfa3d,0xc1400001,0xc1be152f,0xbf839f80,0xc13ff7bb,0xc28bfe81,0xc109e21f,0xc13ffcac,0x41c4ca68,0x3fbfa3c2,0xc1400000,0xc1340000,0xc0ab3331,0xc1400000,0x41bf3b5c,0x3f8c4a41,0xc114000c,0xe0f1000c,0x41c1cccd,0x3fabd1cc,0xc1400000,0xc13cb95e,0xc0ae17d7,0xc1400000,0xc1d1f10a,0xbf741c82,0xc13ffe5d,0xc1d4b25f,0x3e8a8c15,0xc13ff535,0xc1ce4c4d,0x3fae893b,0xc13ffc39,0x428bf1ee,0xc10b5e2f,0xc13fff1a,0xc1c6731b,0x3f9f4520,0xc13b3109,0xc1c09b11,0x3f6149e9,0xc13b4408,0xc1bdcb45,0xbcd60a63,0xc13b0e3a,0xc1c01d72,0xbf48bd55,0xc13b3ee8,0xc1bdfa68,0x3e28e219,0xc109999a,0xc1c50714,0xbf9c54d6,0xc109999a,0xc1cba291,0xbf965b31,0xc109999a,0x41d235f5,0xbc71f14a,0xc13b25c5,0x41d20000,0x0,0xc109999a,0x41cc1312,0xbf937197,0xc109999a,0x41c02743,0xbf4a43bb,0xc109999a,0x41d0ab20,0x3f2ccc79,0xc109999a,0xc28bffe8,0xc145ea97,0xc0f6a7cc,0xc28c0000,0x41180000,0xc904984,0xdb3d7100,0x411d,0x71000c9c,0xc11b504f,0xc955f63,0xdb3d4400,0x18c11d,0x10f1,0x4986c118,0xff3fc090,0x71aac28b,0xf020c13b,0xff2237c0,0x9c01c28b,0x1e8e4119,0x710030c7,0xc1100000,0xc8c0000,0x8410f100,0x9a40a27e,0xb7c0e999,0x32c28bff,0xb1410b3f,0x6fc0cb3f,0xe9c28bff,0xc04100bc,0x24b8a4,0x1b504f71,0xc2a09fc1,0x7cf4000c,0x40c131f2,0xc05fda62,0xc28b98fb,0x4112f4f4,0xc0c5741d,0xc28b94af,0x4102ffd3,0xc0abfffe,0xc28b97fc,0x41187ddc,0xc09786af,0xc2840003,0x4107f4ea,0xc097d5b0,0xc283fe42,0x410fda4d,0xc091d9f3,0xc284022d,0x411a4f40,0xc09b2b6d,0xc283faad,0x411cb838,0xc0b21110,0xc2830d8c,0x410ff88d,0xc0ac350f,0xc28b9742,0xc102d690,0xc0afc9e6,0xc28b94a1,0xc10b34a1,0xc0c4ce3e,0xc28b98fb,0xc116e88c,0x84c22e19,0xc169f100,0xc0928be3,0xc283fafb,0xc11cb9a3,0xc0a6184a,0xc284003c,0xc107f78f,0xc0c02ecd,0xc2830d9e,0xc11008c3,0xc0ac3342,0xc28b98f8,0xc0c287a9,0xc0e1a3ab,0xc28b9af9,0x40c6c572,0xc06ec626,0xc2885e29,0xc0d8d178,0xc0cf4906,0xc2886cb5,0x40bc9b24,0xc1166688,0xc286a09d,0xc0fd95c0,0xbf99999a,0xc287d744,0x40a378cd,0xc1166666,0xc28311b6,0xc91b6e3,0xa09d7100,0x95c2c286,0x71000cfd,0xc280f9e6,0xcd36cb3,0xfc007100,0xc43c282,0xf1000cfe,0x2c6db81c,0x969175c2,0x16663ac0,0x4bc976c1,0xb886c0c2,0x16667c40,0x470cb0c1,0xd91e84c2,0x16663240,0x2dbf4ec1,0xd8b800c2,0x22710030,0x96c22b35,0xccf43,0x29287271,0xb77b65c2,0x4f1000c,0xc2884c3b,0xc0b393a1,0xc0eccccf,0xc2865b38,0xc9177d9,0x5510f100,0xe3c24be9,0xe840b37a,0xc0eccc,0xc28100,0xcfc10000,0x3dc0eccc,0x53c28131,0x24e4a4,0x4f1,0xcccdc248,0xcccd410c,0x3f1ac0ec,0xda6ec248,0x71000c12,0xc248de54,0xc18757f,0x3b04f100,0xa3c2884c,0xcd40b393,0xc4c0eccc,0x2fc280ce,0x481652,0x738a0f71,0xcceeac2,0x1b71000c,0x90c27549,0x54f52f,0xfc7610f1,0xd324c285,0xcccf4090,0xdc1fc0ec,0xfaa0c274,0xcccfbf4b,0x8a0fc0ec,0xa045c270,0x71000ca2,0xc24c79da,0x3c233765,0x313d7100,0x5badc281,0x30030ab,0x18010090,0xa5607100,0x56f7c281,0x710078ee,0xc28109a7,0xcd922ba,0x9a04f100,0xdfc2499e,0xcdc08fe1,0xe3c0eccc,0x85c27788,0xa800ee,0x80f65a71,0x10916cc2,0x10f1000c,0xc27374c5,0xc10c4271,0xc1233333,0xc2738a0f,0xc0f9955d,0xc1233333,0xc27733ba,0xcfc506e,0xde10f100,0x2cc277af,0x3341027d,0xc6c12333,0x51c27374,0x3340faae,0xf3c12333,0x32c272a5,0x180475,0x100e403,0x3682000c,0x76c27349,0x24bfae32,0xc26f5100,0xc4a9857,0x4241f100,0xcec27278,0x33be1355,0x99c12333,0x77c247f3,0x5b40d787,0x2ec0f614,0x114286d3,0x7bc087f2,0xc0f614,0xa9428780,0x7dc10995,0xd5c0f614,0xf74288e5,0x7dc0f605,0xcfc0f614,0x9ec22dda,0x3cc098fc,0xc6c0f614,0x734286c6,0x30410bfb,0x3f100,0x2b54c22c,0x147b40d3,0xc1e2c0f6,0x8a89c22a,0x71000ccb,0xc1640000,0x3cd4f5c3,0x4400,0xc4164,0x84df8271,0x9b666242,0x9f71006c,0x4942869c,0x24afd5,0x22906d71,0xb02f86c2,0x4002000c,0x248f1102,0xa7637100,0x3d64c223,0x71000c9f,0xc1890131,0x9c0ccccd,0xa0737100,0x94cfc170,0x710030fe,0xc222ba25,0x248ddeec,0xac04f100,0x804284e5,0x3ec097f1,0x11c11b0a,0x71428681,0xcb04b,0x22906d71,0x8cded0c2,0x3271000c,0xaac21ede,0xc9170,0x51a904f1,0x7b6e4185,0x6666c10c,0x768fc086,0xa0c1417a,0x4000c06,0x663500b4,0x1ec8666,0x99999aa2,0x84c1e2bf,0x305c52c1,0x8604f100,0x14c16364,0x66c0d5a2,0xc3c08666,0xfb4288ce,0x36cfe3d,0x86f4d262,0x3010e042,0xa104f100,0x4842885a,0x9a4103f8,0x5fbf9999,0x4ac288ec,0xc1e15,0x4f1,0xcccdc28a,0x999ac104,0x800bf99,0x621c27e,0xf1001823,0x805aa104,0x1b2b75c2,0x9999a2c1,0x4b43aabf,0x224f45c2,0x5f71000c,0x4a4288ec,0xc1e15,0x21003c03,0x10041,0x42851af1,0xc12ccccd,0x80000000,0xc28bcccd,0xc13ccccc,0xb58637bd,0x428bfbd3,0xc13bfe61,0x38e27e0f,0x4289d463,0x240f271b,0xd4634400,0xcc289,0x85000044,0xf4003cc2,0x8bff7ba9,0x3b3f6442,0xeae18b41,0x8bd9aa36,0x3cbf7e42,0x2393ee41,0x8bf5bcb9,0x3c132e42,0x637bd41,0x8beaceb6,0x3c78e4c2,0x8c825a41,0x8becc938,0x491ad9c2,0xd22df941,0x8bf875bf,0x4a086fc2,0xf7dd6641,0x8bd7adbf,0x418b33c2,0x5d09641,0x8bccadbf,0x43e6d9c2,0x51ac0441,0x8be85bbf,0x4e670fc2,0x38d45241,0x8bf379c0,0x4e1bf9c2,0x39cb8e41,0x8bf9c2c0,0x4f43cac2,0x5cbb6f41,0x8bcccdc0,0x4e993242,0x37f60e41,0x8bcccdc0,0x485af642,0xbd638841,0x8bd5babf,0x4f985a42,0x4f397141,0x8bdc26c0,0x488a1c42,0xbd2e4141,0x8bf924bf,0xf107ec42,0xe0c129ff,0x8ef2428b,0x47a1414f,0xf101c04c,0xad4b428b,0xe2a04146,0xf924bfa4,0xfffc428b,0xf20f414f,0xf3dac07a,0x740f428b,0x9700411b,0xf7bdc134,0xfb0a428b,0xe8144145,0xeccdc0fa,0xfb89428b,0x408f4139,0xff95c114,0xb8af428b,0x639fc14e,0xee4bc0ac,0x9497428b,0xe65ec14e,0xdeb1c0c2,0xabb9c28b,0xf6eec11b,0xc134,0x8cf2c14c,0xd9ddc142,0xcedfc105,0x459ec28b,0x305bc14e,0x4540c0c6,0x3c14b,0x5c2bc151,0xedf8c080,0xf240c28b,0xc932c14d,0xff26c0c4,0x4536c28b,0x12ffc150,0xf924c086,0x7fc1c28b,0xb062c14d,0xda22c0c4,0x183fc28b,0xe69fc146,0xf924c0fb,0xf2e4c28b,0x9ba6c145,0xecccc0f8,0x3026c28b,0xc16cc13a,0xfd33c113,0x8f22c28b,0x55f8c139,0xdcf9c113,0x603bc28b,0xcb2dc129,0xf305c128,0x1839c28b,0x65c5c129,0xf7eac128,0xf1c4c28b,0x2d4dc141,0xe142bf2b,0xb739c28b,0x7aafc14e,0xf88ec03b,0x681dc28b,0xc57ec14f,0x3634c062,0x417cc13e,0x7065c14f,0xf6c6c046,0x109c4139,0xd89dc14f,0xf1012c41,0x4a633004,0xf90814c1,0x8bfabebf,0x4c714742,0x1cede5c1,0x8f10018,0xc14e2d4f,0xc0392270,0x41400000,0xc1333333,0xc04cdc90,0xc4b2ea6,0xa310f100,0x52c08393,0x4f414bc5,0x80c0d286,0xcdc12a63,0x33c118cc,0xf0c13333,0xddc0de7b,0x240b71,0x9dffda71,0xc209c0,0x9c71000c,0xddc0d199,0x240b71,0xe2002871,0x4b2ea6c0,0xa371000c,0xdcc08393,0xc48c8,0x70000035,0x2875003c,0xf7c0e200,0x3c1f3d,0xec063df4,0x6e06c11b,0xc3fc12e,0x964bc0ca,0x6503c105,0x367cc12e,0x3f4cc0cf,0x7058c10b,0x2531c12e,0x7f43c0a7,0x6666c107,0x7fbdc0e6,0xaaac0ab,0x6664c10d,0x7773c0e6,0xc410c0d9,0x5972410e,0x7c78c12e,0xc0b5c0da,0x304114,0x1880be44,0xf5003041,0x1a402420,0xe6666441,0xd1017cc0,0x250399c0,0x87704c42,0xd582aac0,0xfa5fcac0,0x5faed141,0x5e3886c0,0x24fadcc0,0x59b6fa42,0x5e388640,0x7f20018,0xc0d582aa,0x42033aec,0x40591c7e,0xc0d582aa,0x422d30be,0x3c5d96,0x24f9d071,0x8a294342,0xf6620018,0xf9422d26,0xf5000c3b,0x77ffffff,0xc112e5af,0x3f9fed8d,0xc07e3654,0xc11a4424,0x3fecd25f,0xc07e3886,0xc0a778cb,0xbfb106ff,0xc07e3886,0xc0d61ac5,0x3fefe857,0xc07e3843,0xc12547db,0xbe719546,0xc07e3886,0xc0afa329,0x3d75903a,0xc07e3886,0xc0a14f68,0x3f2f139d,0xc07e3886,0xc11be120,0x3f765615,0xc07e3886,0xc1068787,0xbfee064b,0xc07e3886,0xc10a47d0,0x400b6024,0xc07e3886,0xc10b8671,0xbfd68ab5,0xc07e3886,0xc103885c,0xc02d5b7d,0xc0616b23,0xc0e0b1f2,0x40301a7a,0xc0616bba,0xc0d37cd9,0x400c77de,0xc0616bb5,0xc09ddf78,0x3f2cc943,0xc0616bba,0xc0da1d6d,0x4018a650,0xc0616bba,0xc097ae19,0x3b4d0fe9,0xc0616bba,0xc0a3f2c9,0xbfbd1761,0xc0616adb,0xc11db0e5,0x3fc97a14,0xc0616bba,0xc10c6943,0x400ce0e7,0xc0616bba,0xc0fc89ab,0x4031c7a8,0xc0616bba,0xc104529a,0x401871d2,0xc0616bba,0xc0f8354c,0x3f1d59f7,0xc0616bca,0xc0fa5bc8,0xbee30468,0xc06bdca5,0xc0eeda06,0xbf0c9f95,0xc0686f8f,0xc0e2b8ac,0xbe8623d1,0xc06cf0d8,0xc0df93fd,0x3eaf646b,0xc06ed189,0xc0e707c2,0xbf12c871,0xc06ed307,0xc102c22e,0xbd8af5fd,0xc06edaa1,0xc0ffd6ae,0x3e8623d1,0xc06cf0d8,0xc0e423b5,0xbde055fc,0xc06edc5d,0xc0fe69a3,0xbde23748,0xc06fb59e,0xc0e3ae14,0x39f9096c,0xc06fb59e,0xc1172051,0x3f432420,0xc0871c43,0xc0fa4900,0x4001f53c,0xc0871c43,0xc11206b8,0x3fa885b2,0xc0871a6d,0xc1120f68,0xbfa5d324,0xc0871c43,0xc11ae98a,0xbef7685a,0xc087cf59,0xc0d46f7a,0x3fecb2f2,0xc0871c15,0xc0ce2fff,0x3fe7692b,0xc0871c43,0xc0b53ca9,0x3f799360,0xc0871c43,0xc0e4014b,0x40007c4e,0xc0871c43,0xc101cdde,0x400244d0,0xc0871c43,0xc0a947b0,0x3b24d2b3,0xc08b7247,0xc0abb669,0xbf14753e,0xc08b7247,0xc0d3a952,0x40034d2b,0xc08b6f97,0xc0b3e7c0,0xbf96c7d2,0xc08b6da6,0xc0cb8fd6,0xbff9c4db,0xc08b3d08,0xc101ff10,0x400b0d35,0xc08b7247,0xc0f88b15,0x400f6aca,0xc08b6edf,0xc11cc2a1,0xbb203c4b,0xc08b59ae,0xc11873b0,0x3f8778f7,0xc08b7fb7,0xc114a171,0x3fb5925c,0xc08b7111,0xc113ae00,0xbfbe2225,0xc08b7247,0xc11ca3d6,0xbb24c1ec,0xc0a7930c,0xc0f5e8a3,0xc00fb3bc,0xc0a7930c,0xc11bf0be,0xbee201ac,0xc0a7930c,0xc1131e1d,0x3fbad8c3,0xc0aa812e,0xc11a297a,0x3e923811,0xc0abe910,0xc1144206,0xbf9c5437,0xc0abe910,0xc11590fc,0x3f8c5ebb,0xc0abe910,0xc0bba501,0xbf9714cb,0xc0abe910,0xc0b047f3,0xbe8dc22b,0xc0abe910,0xc0ba63a2,0x3f905ccd,0xc0abe910,0xc0c6a301,0x3fd22446,0xc0abe910,0xc0d6b266,0x3ff1029b,0xc0abe99a,0xc0d66458,0x3ff85e81,0xc0abe910,0xc0eca6b9,0x400fb3c0,0xc0a7930c,0xc0dfd9e6,0xc00876d5,0xc0aabaf3,0xc0a9e810,0x3e97a483,0xc0a7930c,0xc0caf447,0xbfef1f47,0xc0aa4858,0xc0bff5cf,0xbfd1fc8f,0xc0a7952f,0xc0cd5986,0x3ff99379,0xc0a7930c,0xc0f134ea,0xc003332f,0xc0b48ce7,0xc10b95c6,0x3fd63422,0x98b48ce7,0xe700f501,0x41c0b48c,0xb5c0f5ef,0x723fe433,0xb4b40c,0x8ce72cf1,0xd943c0b4,0xc95c0ea,0x206fbfe2,0xef07c0b4,0xcf64c104,0x8ce7bfcc,0x21eec0b4,0x9d45c0be,0x8ce73f45,0xa49ec0b4,0x9c73c0bd,0x8c823fa3,0x9cb0c0b4,0xdd44c108,0xf10024bb,0xc592a110,0x91ee78c0,0xb40c483f,0xe4d6ec0,0x933112c1,0xb48d09bf,0xcdea59c0,0xb1ca53c0,0x2b71003c,0x9c112c4,0x3033a5,0xa25507f6,0xcdd5c0b8,0x8fd0be05,0x939dc0b3,0xe582c0d6,0xe54bfc8,0x2cf1006c,0xc0b38fd0,0xc0c2505b,0xbf7f8d82,0xc0b38fd0,0xc10f6eff,0xbf87fc87,0xc0b38f5c,0xc0cac354,0xbf11b952,0xc0b39190,0xc0f8b279,0x3fa72a9d,0xc0b38fd0,0xc0fe8421,0x30a19d24,0x8ba87100,0x1b7ec0cc,0xf100182a,0xe12e810,0x3c914bc1,0xb1eba9bd,0xd33bc9c0,0x6fd5bbc0,0xb1f636bf,0xffc09ac0,0x9f9ac8c0,0x8fb5000c,0x17c10345,0x363f92f0,0x3cb1f6,0x36c4fff2,0x87c0b1f6,0xd6c10c1a,0x403e5a35,0x20c0adcd,0xffc101d5,0xeabf8ccc,0xd9c0adbc,0xccc109bd,0x40bf1e62,0xffc0adcd,0xc10c26,0x7cbe6da9,0x78c0ad44,0x16c0c96e,0xd4bd4233,0xc5c0ada9,0x5dc0d68f,0xd63f6933,0x41c0ac8d,0xc0e09e,0x923f8f58,0x19c0ac85,0xb6c1034a,0xe73f8566,0x3ac0ac8c,0x7ac0da75,0x78bf908e,0x66c0a900,0x3ac0ed15,0xf3bfae08,0x27c0a902,0x9c0ef4d,0x843fab1a,0x30c0a900,0x90c10d60,0x563eaa32,0x3bc0a900,0x3bc0d8c6,0xacbf7cc7,0x2ec0a900,0x93c0d19c,0xacbf4353,0x1fc0a900,0x10c104e2,0xac3f7cec,0x6ac0a900,0xebc0c9a4,0xe73e1a57,0x3bc0a8ff,0x86c1010c,0x73bf90aa,0xfc0a900,0x21c104d9,0xacbf7d5c,0xd8c0a900,0xc8c10a4d,0x763b2808,0x8ac0b06c,0xdbc0f14b,0x293b7a15,0xfec0ac3c,0x64c0d59b,0x83e4b24,0xe7c0b2e9,0x77c0f3a8,0x6d3e1b10,0xddc0acd6,0xaac0f3db,0x9f3cf52d,0x7c0ac68,0x22c0e818,0xf13f62fd,0x11c0b2d7,0x3ac0f7b9,0x5ebc1457,0xfc0ad2d,0x82c1003e,0xf53f411b,0x45c0b2e9,0x49c0f4b9,0x393f7214,0x11c0b2b8,0x14c0fd90,0x5d3f8be8,0x5ac0ae6b,0xd0c10a24,0x5d3ec345,0x3cc0ae6b,0x45c0f1a3,0x7d3d5380,0x26c0ac4d,0xe9c10037,0xf5bf4160,0xc0b2e9,0x5c0fb83,0xebbf31a8,0x57c0b29c,0x29c0e8be,0xfbf4278,0xa6c0b2c4,0x3fc0e8e0,0x76bf7658,0x37c0b262,0x64c0df26,0xfcbee6cf,0x90c0b254,0x85c0d449,0xd3bf1160,0xe6c0b13d,0x94c0a3ca,0x85401bdb,0x77c0c726,0x10c11aae,0xd4c01541,0xfc0c71c,0x15c0adee,0x71240c74,0xc05bf5be,0xf032e819,0xf310f106,0xfcc0920f,0x9cbef58a,0xd5c0a8b5,0xe3c0bc08,0x43401fc2,0x15c0871c,0x67c0ca3a,0xc2f9a,0xd8897a71,0x39835ec0,0x4f1000c,0xc0ab165f,0xc00330d7,0xc0871c43,0xc11097f2,0xc266252,0xb04f100,0xbdc127b5,0x43bf16ab,0x5cc0871c,0x8bc114e5,0x301b71,0xee67662,0xcbc5ac1,0x6480400,0x1c4314f1,0x873ac087,0xcb9fc098,0x1c433ec4,0xdd90c087,0xeb70c0af,0x1c433ff4,0x58e6c087,0xeb68c119,0xf12340f4,0xee519304,0x333f68c0,0x8be91040,0xfd9468c0,0x3180e9c0,0x4f1000c,0xc107986e,0xc028eb8e,0xc08be910,0xc0f12e0c,0xc33332b,0x361c7100,0x260c11d,0xf1003ccf,0x98326c04,0xdb4b94c0,0x8be910be,0xd35e81c0,0x28eb8ec0,0xdc04003c,0xe910b123,0xb68fc08b,0xdf01c0ab,0x710030e1,0xc0c27566,0xcdac9a7,0x7a837100,0xcbd1c0ba,0x71000cba,0xc0b3d910,0xc96347f,0x640f7200,0xe25dc105,0x61004806,0x1ac0eb8c,0x780f8b,0xf92d0662,0xc5675c0,0xbdaf7100,0x8adbc115,0xf10030a9,0x3b9f204,0x90075c1,0xadf972c0,0xfc76bcc0,0xe4092c0,0x20f5000c,0xc11c883c,0x3e3233df,0xc0adf972,0xc0eed10d,0x400ff04a,0xc0ae0a9c,0xc1140a6d,0x3fbacbd1,0xc0adf972,0xc0cf1d41,0xbffdd495,0xcadf985,0xf9723524,0x10090ad,0x6ff123e8,0xdec0b7a0,0x763f8dac,0x3dc0b24f,0xa6c0c547,0x76bfcd9c,0x37c0b24f,0xa1c0affb,0x89bf184b,0xffc0b24e,0xdc0ae75,0x763eaa8e,0x52c0ba4f,0x1dc0ebe5,0x76c006e6,0xb4c0ba4f,0x90c0ad9d,0x763b1adc,0x7ac0ba4f,0x18c0cdfd,0x763fe6ee,0x1ec0ba4f,0xb5c10093,0x7640038d,0x62c0ba4f,0xdec0ffe5,0x7740043a,0xd4c0b24a,0x90c11a78,0x76bb1adc,0xb6c0ba4f,0x35c11a0f,0x54a82a,0xbbd904f1,0x4c49c106,0x4363bff6,0xe941c0b2,0x979ec117,0xf100904e,0xbc74d04,0xdf5c10c1,0xb2685abf,0xe9557c0,0xce0136c1,0x7262009c,0x30c10a59,0xf1006c9d,0xc7a99310,0x70f67bc0,0xba4ff6bf,0xdce91dc0,0xbc1c8ac0,0xba4f76bf,0xe5e610c0,0xc7e143c0,0xfff5000c,0xd4ffffff,0xc11203bb,0x3e60afe6,0xc0c0b5df,0xc11d5333,0xbf3210bf,0xc0c0b5df,0xc115f2fe,0x4006a87a,0xc0c0b5df,0xc11b693a,0x3f41197a,0xc0c19ef7,0xc1045e46,0xc00e6cce,0xc0c0b685,0xc13b7979,0xc0098f69,0xc0aa4f76,0xc12fb42d,0xc03889ad,0xc0aa4f76,0xc128ec56,0xc01d5ac4,0xc0aa4f76,0xc137dcad,0xbff9b5e1,0xc0aa4f76,0xc1323531,0xbfe6ea31,0xc0aa4f76,0xc13014e7,0xbfe76b3c,0xc0abe914,0xc1327189,0xc0296977,0xc0abf3bf,0x42704654,0xc0c1536b,0xc0d62683,0xc21d491c,0xc0aa0479,0xc0d62683,0xc21ef8b8,0xc0b584e0,0xc0d62683,0xc21d0f67,0xc0975836,0xc0d62683,0x42860b65,0xc0b2b858,0xc0d62683,0x4284b3a9,0xc0981cd4,0xc0d62683,0x4287ad83,0xc0a0f645,0xc0d62683,0x428899e1,0xc04edce8,0xc0d62681,0xc220b728,0xbfc240f2,0xc0d62683,0xc2216e3d,0xbf97c47e,0xc0d62681,0x4279f827,0x40838f9d,0xc0d62681,0xc22498d5,0x40542d8c,0xc0d62681,0x4287937d,0x40629b24,0xc0d625ee,0xc22361ad,0x40454a41,0xc0d62681,0xc222d872,0xbf8512b2,0xc0d62681,0x41a38699,0xc0af49de,0xc0d6269e,0x41e0d147,0xc0ae7879,0xc0d6778e,0xc1f86c3e,0xc0b39a72,0xc0d62624,0x420797ba,0xc0ae7677,0xc0d62683,0xc215f521,0x408c3613,0xc0d62683,0xc1f381c6,0x40b8c73d,0xc0d62667,0xc2132351,0x408245a8,0xc0d62683,0xc1ded225,0x40ba936a,0xc0d626db,0x4234e14e,0x40887753,0xc0d62681,0xc1491007,0xc0b151d4,0xc0d6264a,0xc2251919,0xc0a0ddff,0xc0e87ae1,0xc2236203,0xc0b4c495,0xc0e87ae3,0x41a2d31d,0xc0b0e3c1,0xc0e87ae1,0x4164b797,0x40b954d0,0xc0e87ae1,0x426dac38,0x40b2df87,0xc0e87adf,0xc224a4f2,0xbfe3e73a,0xc0e87ae1,0x4208f1f6,0xc0b63fe8,0xc0e87ae1,0x428100f3,0x40bbca1f,0xc0e87ad5,0xc1f5ae8d,0x40cb6d9c,0xc0e87adf,0xc1e05e56,0x40b83cde,0xc0e87b05,0xc13a6b9e,0xc0c3e3fc,0xc0e87ae1,0x4273536f,0xc0b10f30,0xc0e87b12,0x427005b1,0xc0a93c84,0xc0e87b1a,0xc2244759,0x404d8e65,0xc0e87ae1,0x42851642,0xc0ab6f8f,0xc0e87ae1,0xc030d95e,0x40bd1d24,0xc0e87adf,0x4286ed60,0xc0b04986,0xc0e87ae3,0xc146076a,0x40c01570,0xc0e87adf,0x41998f7e,0xc0255397,0xc0d7929b,0x4173a062,0xbfe2748e,0xc075e69b,0x4180b8ae,0xc00395c4,0xc0848ce7,0x41878869,0x3ec60829,0xc075e69b,0x416da3d1,0x3fa047d4,0xc075e70c,0x418eef4b,0xc0056228,0xc075e311,0x4194c233,0xbfb1204b,0xc075e72e,0x418236cb,0x40011d2a,0xc075e6fb,0x4171a6ad,0x3fb5cab8,0xc0848d0b,0x417fc68d,0x401cfeca,0xc0848ccc,0x418b587c,0x3ff08ee7,0xc0848ce7,0x418ffe25,0x3fbbc9d6,0xc08e2746,0x418e2659,0x3fd5905c,0xc0848c7c,0x418b43ee,0xbff20eae,0xc08e284c,0x41951c63,0x3f39d0ea,0xc08e26b1,0x4179114f,0x40033f5b,0xc08e2681,0x41747b78,0xbfdc53a8,0xc08e254a,0x41847e51,0xc01145d0,0xc08ea5f0,0x4175d38a,0x3ff92e62,0xc0924f25,0x41804612,0xbffd078e,0xc09404ec,0x418e476e,0x3fc894e6,0xc0a07a2f,0x4191eaf5,0xbf879631,0xc0924016,0x417144a0,0xbfdd2b0a,0xc0a0826d,0x41942fbb,0xbe2e8c48,0xc0a9aae5,0x4193f7b4,0x3f7a17f4,0xc0acfcb7,0x41784862,0x3fe40221,0xc0a6f45a,0x4189ac44,0x3ff3cb92,0xc0983958,0x417bd5a9,0xc0095871,0xc0a803cd,0x416d2078,0x3f945815,0xc0965fb9,0x41644f2b,0x3e89e1b1,0xc099be01,0x4189bd2c,0xc007936c,0xc0a738a0,0x419173ce,0xbf90bd34,0xc0a25e53,0x418fb4b2,0xbfda72f3,0xc0afc01c,0x41931cc9,0xbf63cfb3,0xc0afc01a,0x4184b130,0x400207d9,0xc0af37fc,0x418e2dac,0x3fd459da,0xc0af9b5a,0x4176a168,0x3fe635ad,0xc0baf352,0x41928797,0xbf0a1c8a,0xc0baf34d,0x41762fb0,0xbfc5fd7a,0xc0baf34d,0x4169076e,0xbf530026,0xc0baf34d,0x417d8e79,0xbfff20b0,0xc0baf34d,0x418476da,0xbff3c51e,0xc0baf3ba,0x4188416a,0x3fe970f8,0xc0baf34d,0x41858992,0xc005a166,0xc0baf34d,0x41882032,0xc001d48d,0xc0baf34d,0x4191f9dd,0x3f3aa3ad,0xc0baf34d,0x418aa5aa,0x3fda3d4f,0xc0baf34d,0x418eacf3,0x3fac2917,0xc0baf34d,0x4177a1bb,0x3fcdd649,0xc0baf34d,0x4d08f100,0xccc0baf3,0x4f417a76,0xb4bfda3d,0x17c0b959,0xd4416ca1,0xc579d,0x3021cf1,0xcba34193,0x59b4be7b,0xbba2c0b9,0xaa154192,0x59b43ee3,0x8ac3c0b9,0x28354169,0x59b43dfa,0xe1e3c0b9,0x56004186,0x710030eb,0x4188c6ec,0xce32d45,0xe428f100,0xcf416a23,0xf1be7cbc,0x3ec0b063,0xb34170a3,0x6abf9826,0xd6c0b05f,0xbb417412,0xf13fb443,0x31c0b063,0xc4170a5,0x3a3f981e,0x63c0b05c,0x3c416c26,0x183731,0x7a949771,0xd7217941,0xfff2000c,0x767c1c25,0xc1dbcb41,0xafe8123f,0x8150f8c0,0xe8e62141,0xaf11623f,0x6b212ac0,0xdd6a1641,0xaef3363e,0x70e5b1c0,0x953c8241,0xaf97243f,0x868dcec0,0xe944b341,0xaf91a9bf,0x83f4c4c0,0xecccc441,0xaf9724bf,0x929d17c0,0x5f6d3341,0xaeee67be,0x7244ddc0,0xa1d26341,0xaeb42dbf,0x8eb49ec0,0xbf37b941,0xaeb45bbe,0x85badec0,0xb0c53b41,0xaeb3923f,0x8f0503c0,0x86bd9041,0xaee7433e,0x8831d5c0,0xa4e23b41,0xaeb42d3f,0x89c11ec0,0x98341141,0xaeb42d3f,0x8b7701c0,0x84213a41,0xaeb4593f,0x868f86c0,0x8c33b541,0xb83e4fbf,0x87b952c0,0x8d3eee41,0xb7031fbf,0x89ed12c0,0x51ab0841,0xb8b672bf,0x882d3ac0,0x726efc41,0xb91bd4bf,0x897f39c0,0x8f400341,0xb2e4aebf,0x885e35c0,0x21f6cb41,0xb92ded3e,0x8b0c27c0,0x78f1c341,0xb2e4aebf,0x8c6e7fc0,0x10e0fc41,0xb6f96ebf,0x8c5b1ec0,0x4ae94741,0xb2e4aebf,0x879ca3c0,0xb1e57e41,0xb92ded3e,0x8af660c0,0xffaa0441,0xba18c63e,0x8d60b6c0,0x15f7e841,0x9ff10024,0x8941838e,0xe23d150a,0xbc0b474,0x741855d,0x633f7543,0xf9c0b9f0,0x2e418635,0xf33f8a3d,0x39c0b8aa,0x284187bc,0xae3f9d49,0x28c0b2e4,0xcd4183ee,0x103f84cc,0x83c0b984,0x2a418594,0x72bf8b8e,0xb1c0b8b6,0x2418515,0x34bd85bc,0x56c0b53e,0x1c417f95,0x863f6f06,0x18c0b992,0xb6417d9b,0x833f8467,0x77c0b688,0x27417a5b,0xe43f3368,0x9ac0b8ea,0x77417c63,0xb83f6384,0xc7c0b83e,0x474180e6,0x6ebf1dcb,0x40c0b9c1,0x2141772b,0x93ec823,0x49c0b8b5,0x34178d5,0x833f4007,0xe3c0b6fa,0x5741770b,0x844ae9,0x5dfffff2,0x4175de86,0x3e33bff9,0xc0b84ef9,0x417779d9,0xbe4574f7,0xc0b97759,0x418619df,0xc004f5d3,0xc0848ce7,0x416c111a,0xbf95ae0c,0xc0848ce7,0x4191ea46,0xbf9cfd97,0xc0848c84,0x4194d3f3,0x3facdf16,0xc0848f5a,0x41812ec3,0x3ef6ec18,0xc0772e49,0x4188ae4f,0x3c1e6256,0xc0772e49,0x41866444,0xbf0178c4,0xc0772e49,0x418803a4,0xbe997636,0xc0772e49,0x4188735c,0xbe30d4dc,0xc077142b,0x41814f4f,0xbefc89d2,0xc0772e49,0x4182da71,0xbf0db65f,0xc0772e49,0x4182007d,0xbeeef827,0xc078ce96,0x4186c1b0,0x3ef2a8ca,0xc0772368,0x417ece66,0x3e2749f1,0xc0771c4c,0x4187a431,0xbdfcc9eb,0xc07a01d6,0x4187b515,0x3de9e4d6,0xc07a032a,0x41803586,0xbc605469,0xc07d2a49,0x4182fc45,0x3ee2e276,0xc07a01d6,0x4185c58a,0x3ecb9c95,0xc07a01d6,0x4184e2c4,0x3ee30553,0xc07a01d6,0x41807bd2,0x3e3bf0dc,0xc07d2a13,0x41814d2f,0x3ea875d5,0xc07d28ed,0x41873f46,0x3e750fc7,0xc07d2689,0x4186390a,0xbebe512b,0xc07d5892,0x41876a6b,0xbe38661b,0xc07ce6eb,0x415c8847,0x3fc0ddf0,0xc0b159b4,0x414876b1,0xbf1880d8,0xc0b159b4,0x41482cf0,0x3f1a7f3d,0xc0b159b4,0x41562f2d,0xbdc37f7c,0xc09159a3,0x415a8cca,0x3fa71dac,0xc091593c,0x41a23e1f,0xc024b6d0,0xc0b2f388,0x41984ab1,0xbfe2fe82,0xc0b15940,0x419121e2,0xc027ff8b,0xc09159b4,0x419afd20,0xbf927211,0xc09159b4,0x416b0fbb,0xbfe70eb2,0xc09159b4,0x417384c6,0xc00d6d2b,0xc09159b4,0x416233cc,0xbf7a7d56,0xc09159b4,0x41686e41,0x3fd07358,0xc09159b4,0x41963ef0,0xbf90092d,0xc09159b4,0x41814116,0x4021c7a8,0xc09159b4,0x4148ab5b,0x3f0bab86,0xc0d48ce7,0x4148b064,0xbf0dee03,0xc0d48ce7,0x419a5109,0x4025000d,0xc0d48d3b,0x419c1dba,0x400fd5a6,0xc0b39e17,0x41a20f1d,0x400d3ae7,0xc0b48b6e,0x419d89ae,0x402130db,0xc0b48f3f,0x419f24ae,0x4022ead1,0xc0b7c033,0x41a0c162,0xc01c7e74,0xc0c7be47,0x418b7b2c,0x4025c93f,0xc0c107c8,0x41614334,0xc8bca,0x425910f1,0xaf10415c,0xc112bfa3,0x4bf7c0c7,0x1e2e415b,0x7c8c029,0x53e2c0c1,0x40ab418b,0xf7000c27,0xa17ec5ff,0xb9d84184,0x7a9c010,0xb82c0c1,0x611c4196,0x7d13d51,0x9d7c0c1,0xcbb84195,0x7c83f36,0x4e71c0c1,0x8f00416d,0x7ccbfc4,0x467fc0c1,0xdfce418e,0x7e63fec,0x4bebc0c1,0xd6aa4185,0xc01ac022,0x6c1ac097,0xf7fd415f,0xc01a3ea8,0x3609c097,0xfa1a418a,0xc01a4006,0x3be2c097,0x2c06418a,0xc01ac01c,0x7c5bc097,0xd6414193,0xc01a3f91,0x217fc097,0x856a4168,0xc01a3fcd,0xed50c097,0x6801416d,0xc01a3ffc,0x528fc097,0x7e58c0d0,0x147b40c7,0x2f39c0ee,0x39fcc225,0x147bc0a8,0x278c0ee,0xe2ec225,0x147bc094,0xe8bec0ee,0x113ac21c,0x147bc0aa,0x7044c0ee,0x3f814169,0x147b40c8,0x51bac0ee,0x73b041a2,0x147b40c8,0xb83bc0ee,0x96ffc224,0x147bbffc,0x3e45c0ee,0x28a6c225,0x147bbfc5,0x9d34c0ee,0xb39e425c,0x147dc0bc,0x8f3ec0ee,0xb2ba425c,0x147b40c9,0x7cc1c0ee,0xb6a64288,0x147dc0c0,0x2f8bc0ee,0xdd55c205,0x147dc0bf,0x4249c0ee,0xc7a84286,0x147bc07f,0xa87c0ee,0xbb3ac21c,0x147b40cc,0x2b70c0ec,0xf241c1c3,0x147dc0c5,0xbe14c0ec,0xbe5cc1d6,0x12084099,0x4878c0ee,0x4287c1c3,0xb86b40cd,0xae39c0eb,0xeaac195,0x147b40c7,0x5c77c0ee,0x4a2cc143,0x147b40c7,0x15c6c0ee,0x23fbc225,0x147bc0aa,0xee5bc0ea,0x44cac222,0x147dc0b8,0x9408c0ea,0xadfb4006,0x13c23ddd,0x1df7c0ea,0xdc23400a,0x12ef4065,0xbd45c0ea,0x9d844004,0x147b4063,0x7f39c0ea,0x6d3ec201,0x15d14099,0x69cfc0ea,0xb695c201,0x1487c072,0xa4dc0ea,0x54d4c21c,0x147b40c6,0xf20078ea,0x53c0eadd,0x66416970,0x9240c83f,0x5ac0ea30,0xe841696f,0x640cea5,0xe7c0ea3a,0x4a42085b,0x7140cd36,0xa9c0ea3d,0x16c22067,0x27406af6,0x23c0ea3d,0xb5c221b1,0x5abf7fa8,0x15c0ea3d,0x8442440f,0x7d408e47,0xf5c08386,0xe0424490,0xb7409276,0x7bc08099,0xf6424af0,0x4c4061b2,0xf2c08262,0x96424482,0xc409625,0xeac07e5c,0x9042431e,0x7240905a,0x32c07ee0,0x4a4241b5,0x7b408b15,0x59c07e14,0x1a42410d,0x72407f89,0xc8c07ee0,0xd0424403,0xd8bec79a,0x6ac08258,0xde424606,0x13bef65a,0xd4c0821e,0xc142476f,0x72bf1438,0xdfc07ee0,0x4248f8,0x7bbf02e6,0xb7c07e14,0xd5424a36,0x7bbe8b91,0x91c07e14,0xc424ade,0x723da5e8,0xc5c07ee0,0x80424b0c,0xf23f1428,0x12c081b1,0x5d424482,0xf1003c6e,0x7ffffff,0x4167dba1,0xc085302b,0xc07eccb8,0x4284f8c7,0x4057f241,0xc077ae36,0xc17a583f,0xbff76bb1,0xc07e08d9,0x3ee05c46,0x4032ce29,0xc07e147b,0xc199ea64,0xc078872f,0xc07e14db,0x41ec3cae,0x4041521e,0xc07e16d3,0x41eaf00e,0x403959d5,0xc07e147b,0x4282fe66,0x4055ff2e,0xc07e147b,0x4282f8ed,0x40b43bf3,0xc07e29d4,0x4274f552,0x402656bd,0xc07e147b,0x4277f85d,0x3feac5fc,0xc07debcc,0x41ea771a,0x40306912,0xc07e147b,0x41d259b6,0x4029d30b,0xc07dd3a6,0x42735954,0x402c0920,0xc07e8855,0xc013e74f,0x407b7492,0xc07e147b,0xc1deddb0,0x40a25c4f,0xc07ee083,0xbfe19bdc,0x408f5107,0xc07e147b,0xc1918961,0x40b1214f,0xc07e30cb,0xc1e042b6,0x4099d8f5,0xc07e147b,0xc1df0e5e,0x40a236c1,0xc07e147b,0x41c8cf40,0x402d583f,0xc07e147b,0x41f195b1,0xbf29363f,0xc07e619e,0x41ecb354,0xbf27d8cf,0xc07e147b,0x41eb953c,0xbf18ba1f,0xc07e147b,0x421c0a76,0xc08ee350,0xc07e542a,0x3fdf77d9,0xc003805a,0xc07e147b,0xc1dcf508,0x40830503,0xc07e147b,0xbf813565,0x3fd718c2,0xc07e147b,0xc1f104ac,0x4079f1fa,0xc07e147b,0x4277864b,0xbfec7768,0xc07e0ba2,0xc1e6153f,0x401fe6ef,0xc07e147b,0xbffab8e1,0x3ff937eb,0xc07df0ae,0xc05a7b85,0x3f8b4d51,0xc07e5b0c,0x41ead23d,0xbef94ea0,0xc07e147b,0x4283cbaa,0xc097d558,0xc07e147b,0xbfb27379,0xbfbc4d01,0xc07e147b,0x3ee3d9a9,0xc053982d,0xc07e147b,0xc050c986,0xbbec636b,0xc07e4f8b,0x41cf11ca,0xc02c0eae,0xc07e147b,0x41c5eab0,0x4023ba77,0xc07e147b,0xc1f103fc,0x4066a2e4,0xc07e147b,0x3bce24bc,0xc081cfb7,0xc07e0d78,0x41a1421f,0x4037a7e7,0xc07e42bb,0x41c224a1,0x4000c0f4,0xc07e810a,0x41f5016f,0x40a739ed,0xc07e3f1c,0xc0043bbc,0xbfee171a,0xc07e147b,0x426c2ab4,0x3fd7c793,0xc07e147b,0x417e3e89,0xc0926714,0xc07e5155,0xbf1d4cdb,0xc08bc6b9,0xc07e147b,0x418aa1f4,0x40938e67,0xc07e0c46,0xc1f2153e,0x401fcb79,0xc07e147b,0xc1f5c8b7,0x404c0508,0xc07e299e,0x425f0299,0xc099cbd1,0xc07e147b,0x41a8ca34,0x3f275350,0xc07e5c89,0x425d46e8,0xc091cfc8,0xc07e147b,0x425f47af,0xc0a76c33,0xc07e4370,0x41c05cf2,0xbfd09ced,0xc07e147b,0x41a7828c,0xbfa57bf2,0xc07e30b1,0xc15df4fe,0x402a20e6,0xc07e147b,0xc1dc32e5,0xc07b4b6a,0xc07e571d,0x41a3374e,0xc026fa83,0xc07de7b0,0xc1642b6a,0x402d5f35,0xc07e147b,0x425b502b,0xc09eb3d9,0xc07e147b,0x41c5fd77,0xc01e15df,0xc07e6cc6,0x425b47ab,0xc0a71364,0xc07e2192,0xc18a119d,0xe8a3ce3a,0xdb9b6202,0x1ce341c8,0x10f10150,0x418755ed,0xc09518bf,0xc07e0b20,0xc1f571cc,0xc098c7e3,0xc07e147b,0xc17521de,0x30112da5,0xfc04f100,0xeac1f7a2,0x7bbfd87a,0xdcc07e14,0x4c18c7e,0x189c57,0xf51658f2,0xea3e423a,0x1498bdcf,0xdf59c07e,0x3a08415a,0x4899406a,0x65c8c07e,0xe5cd4239,0x147b3de6,0x91bac07e,0x20214238,0x147b3e0f,0xf184c07e,0x9d95c198,0x41af409f,0x122ec07e,0xa42f40dc,0x147b4045,0x3f72c07e,0x415bc19a,0x639540a4,0xaa2ac07e,0xcdb3423b,0x147bbf5d,0xbdbbc07e,0xf30e4237,0xf10048e5,0x41403303,0x3f91af10,0xc07e46dc,0x40fe0cd0,0x8401d5c3,0xff3b7100,0xc64cc190,0x71000ca3,0x423b588c,0xa8879c30,0xbb1cf100,0xa242364e,0x7bbdc2eb,0xb7c07e14,0xdc1996f,0x904087e0,0xc6c07ef6,0x93414394,0xadbfedc5,0x20c07e4e,0xe040fe32,0xf0030e,0x32068d71,0x85c26542,0x4f1003c,0x4024bd94,0x4041d231,0xc07e14e0,0x4231869a,0x248f085d,0xb710f100,0xc6c1f189,0xb940b5a5,0xf5c072aa,0x273e93d7,0xae401ba4,0x97c07147,0x493fdee2,0xc0164,0x13291cf1,0xd1e9c170,0x47aec025,0xf1efc071,0xfd65c198,0xabbc080,0xf313c072,0xed57be84,0x47ae3ff0,0xe438c071,0x4e9c4284,0x71003052,0x41ecba37,0xc423248,0x8d107100,0x44b341eb,0xf1000c3e,0x86c82d04,0xf5b1c842,0x71426c3f,0x834b55c0,0x4dc68242,0x4f10018,0xc199ba53,0xc09e724b,0xc07165cf,0x4282f8f4,0x18b2a887,0x4e627100,0x265bc072,0x71000c08,0xc01d69a1,0xc32991c,0x84187100,0x300e41d7,0xb50078d3,0x3d61fd15,0xbfedc969,0xcc7147ae,0x47aeb103,0x6806c071,0xe6b43ee3,0xf100b421,0xea7e4804,0xc2bead41,0x7147aebe,0xf36c0cc0,0xa38d8b41,0x5c040048,0x47aeb104,0xb6f7c071,0x429641ec,0x71004828,0x41eb7a29,0xc1622d5,0x3f677100,0x395441f1,0x71000c29,0xc1e07bd6,0x78cb5211,0xa8fb500,0x9f41421c,0x2f7bc091,0xb103f071,0xc07147ae,0xbfb2e8b8,0x24dd9557,0x702d7100,0xdd094284,0x7100847d,0x401c872f,0xc3dbe40,0xa104f100,0x3f42779e,0xfbfe0ad,0x1dc07147,0xe0c0f065,0x9088bd,0x83deb171,0x8eb8bd42,0x4f10024,0x4283cbf7,0xc0a85f5d,0xc071ae9f,0x41d65987,0x84fe86d7,0x30ae7100,0x6940c1ef,0x71003029,0xc056948a,0x18914aed,0x77a37100,0xf1c3c013,0x62003c0a,0x419e36ec,0x18cab86,0x4b25e272,0x8139f742,0x22610030,0x168341a4,0x71000c15,0x41c18784,0xc008cfc,0xc3bc7100,0xdcc426c,0xf1000c03,0x1cefae04,0x591ecdc0,0x7158d1c0,0x5330f1c0,0x11547ec1,0xea710018,0x69c128d2,0xc40a9,0xd05a04f1,0x4bbec1db,0x4838c078,0xa667c071,0x3266c1e1,0x71007803,0x426c2e73,0x90cb9b4e,0xee247100,0xfda8c1e8,0x7100182f,0xc10a006a,0x3c840366,0x35e27200,0xa73d425f,0x5200189d,0x35c1642b,0x7101805f,0x426efb28,0x18200b8d,0xaa04f100,0x37c13ceb,0xaebd0189,0x1ec07147,0x30c1ec09,0x18334a,0x5d46e871,0x91cfc842,0x6971000c,0x89425cc2,0xc925c,0x5c46fc71,0x93f6d542,0x9471000c,0x7641c379,0xc1350,0xf1075c04,0x7147ae08,0xdee354c0,0x8d20b0c1,0x71c1e3c0,0x9236bbc0,0x8968d941,0x14040024,0x47ae3504,0xa2040871,0xc07147ae,0x4230ea2e,0x6c41e5,0x45f91a71,0x368f2a42,0x4a7100d8,0xc340f19a,0xcc2cd7,0x990cf3b5,0x9e9179c1,0x71b25b40,0x14f103b4,0xc07147ae,0x423a7eb3,0x3c9f4b1f,0xc07147ae,0x42402c2b,0x3ecb4763,0xc07147ae,0x415a8578,0x3c6be63f,0x5a887100,0x5800c19b,0x4000ca7,0xaeb103fc,0x1c07147,0xbbc18f88,0x189dec,0x42f8e071,0x353e742,0x38040078,0xae14f104,0x3fc07147,0x6d4236f8,0xae3d03a9,0x5ac07147,0xa6c19b09,0xfd40857e,0x8cc07185,0x7fc17c24,0x27c9a87,0x35042c04,0x147147ae,0x47aeb104,0xd68dc071,0xd60a423a,0x7100549c,0xc128b715,0x8448794,0xdc4b6201,0x543bc15d,0x41b501b0,0x68415205,0xb2c0481f,0x444719e,0x7147aeb1,0x3595f4c0,0x7874c942,0xa971003c,0x1f423203,0x3c8894,0x39129471,0xba705442,0xf9710018,0x7c17b45,0xcd728,0xdc4aea71,0x47042540,0x4d710024,0x994162c0,0xc80f2,0x31da5771,0x8bd76942,0x1771000c,0x83423179,0xc8f5b,0x899e10f1,0x8073c189,0x537e40b4,0xf89ec080,0x1d1f4282,0x7a3a40bc,0xf8dec085,0x75534282,0xf20018b7,0x82f9753f,0xbf755e42,0xc0a3f640,0x74d475c0,0xbf4e2b42,0xea3d7140,0x6d4b84c0,0xbc09b742,0xe4161240,0x6f8a88c0,0xbc0edc42,0xe5902540,0x6fe90dc0,0xbc0fb442,0xc0a3d740,0x20d482c0,0xbd7cdb42,0xea3d7140,0xa4dc2ac0,0xcda7d41,0x52667100,0x6cb34163,0x710024ba,0xc0191f15,0x54be1903,0xad887100,0x7588c14c,0x710018b9,0x426d1c06,0xcc26fb3,0x3abf6200,0x46c5425b,0xef71000c,0xb041a4db,0x18c10d,0x4cae7371,0xbfdbeec1,0x9ff2000c,0x4286c678,0x408aabbb,0xc0c648cd,0x4284f9b3,0x408a74de,0xc0c68cbd,0x4284f9a0,0x408d3f6c,0xc0ce8eb6,0x4287b6ec,0x3ff5c2ca,0xc07f615f,0x428763d2,0x3ff5bd06,0xc0849c56,0x42870e5e,0x3ff5b6cc,0xc07f5964,0x4287b591,0xc069208e,0xc07e0681,0x4287d589,0xc025fc01,0xc0c0a3d7,0x425f47c4,0xc0a9d424,0xc0725ed0,0x4280a409,0xc0b22f01,0xc0ea3d73,0x426f97be,0xc0b58ab1,0xc0e5902c,0x426fc6c7,0xc0af23dd,0xc0e41614,0x425f47eb,0xc0af1b58,0xc085f560,0x425f47d6,0xc0abc166,0xc0811b71,0x425b47c4,0x48dd4c,0x47d228f1,0x6dd0425b,0xd445c0ab,0x47fac080,0x2540425b,0xa78dc0af,0x6ffec085,0xf41c1f5,0x5efac0b2,0xe192c084,0xd86d4220,0xa3d7c0af,0xf65ec0c0,0x8bdb41a4,0xf1000cb0,0xcc25c804,0xb3a529c0,0xea3d73c0,0xcc2665c0,0xb18306c0,0x95620018,0x9dc14c79,0x71000cbd,0xc1e56fbe,0x24b5825e,0x48347100,0x796a4207,0x710024b6,0xc12e1245,0xcb8129f,0x45786200,0x1907c139,0x1bf2000c,0xc1ff7fc4,0xc098d363,0xc082eecc,0xc200504b,0x409f2b63,0xc07a100a,0xc200309c,0xc098d44e,0xc08f07d3,0xc191899e,0x234774b,0xe189f271,0xb8e88ec1,0xfff50180,0x3247ffff,0xb9c1f18a,0xc240bc0a,0x2bc0ea3d,0x43c198a7,0xc6408ec8,0x78c071fa,0x87c19a3a,0xd2409426,0xf2c07bab,0xfec19af1,0x9f40981c,0x1dc07d59,0x57c19b4d,0x5a409c6d,0x8ac07ca1,0xf2c1de28,0x334093a3,0x4bc07b35,0x7bc1dd6d,0x8c40893b,0xf2c0754d,0x76c1dc5b,0x97409bb2,0xd6c07d57,0x63c1ddd1,0xf74099a8,0xd6c07b1e,0x69c1dcfd,0x74c09c80,0xddc071ee,0x39c1de09,0x8fc08c8d,0xc9c07436,0x27c1dbaf,0x96c07dd8,0xbdc07207,0x3ec1dd17,0x18c081a6,0xbc07206,0xcfc1dc58,0x50c082a4,0x27c07438,0x8fc19763,0x74c09055,0xc0c07240,0x8ac1980a,0xa7c08fd6,0x59c07421,0x56c19963,0x53c08346,0x80c07441,0x9cc19a68,0x96c09d87,0x3bc07207,0xa6c199ee,0xe2c0890b,0x10c07dc8,0x66c19aaf,0x5bc09485,0xa7c07d60,0xafc19a6a,0x92c09677,0x3bc07bb1,0x3c199bb,0x2c08fdc,0xf1c07d66,0xeec19938,0x5bc0916d,0x9fc07b27,0xd5c1dc55,0xdc089dc,0x68c07e1a,0x48c1db70,0x1bc0973f,0x52c07b4a,0xfcc1f6a4,0x48404f8c,0xd4c071e1,0x5ec1f794,0xa3405a9e,0xb2c0743f,0x8ac1f5f8,0xa8405520,0x81c07437,0x8ec1f384,0x96405490,0x2c07207,0x1c1f4a4,0x50405617,0x81c07438,0x9ec1f36e,0x76405aed,0x63c07454,0x8dc1f263,0x6240659a,0xfcc07448,0xadc1f2fe,0xf54068a1,0x83c079da,0x46c1f9bc,0x96406626,0x26c071b3,0x94c1f1d2,0x4c407d2f,0xaac071ff,0xd7c1f315,0x894084c1,0xa4c07225,0x69c1f8a3,0x4b4083bb,0x8bc071b1,0x12c1f623,0x8406313,0x1cc07d56,0x13c1f395,0xe3407448,0x4cc07d33,0x95c1efc2,0xefc0142b,0x9cc07c8f,0x6c1f572,0xa2bffda0,0x8bc0729b,0x16c1e45c,0xa2c010a7,0x67c0729b,0xf2c1e18e,0xa2bfd35c,0x15c0729b,0x60c1eed9,0xa2c0273b,0x8ec0729b,0x2c1e36d,0xf7bfc74a,0x78c07d3e,0x8fc1e35e,0x953fb2c7,0xe3c07cd3,0x2bc1e557,0x683ff7fa,0xffc07c79,0x43c1f182,0xa24017e6,0xb8c0729b,0xb5c1f1b8,0x3d3f9951,0x43c08f0a,0x90c1ec14,0xc6400467,0xaac08d7a,0xfc1f00d,0xd63fe8b6,0xefc08ee0,0x6ec1ed0e,0x19400a89,0x1bc08a80,0xd8c1ef8f,0xc63ff9d2,0x2bc08d7a,0x16c1e49b,0xb6bfcdde,0x8ac08aab,0xf9c1e552,0xc6bfc349,0x75c08d7a,0xe8c1f233,0x15bff311,0x87c08a80,0x7ec1e710,0xfbfe9fe,0xf0c08eef,0xc5c1ef85,0xc6c0038d,0x5dc08d7a,0x7ac1f0f7,0xc6bff56e,0x64c08d7a,0x70c1f1aa,0xb9bfd694,0x6c08edf,0x90c1e756,0x3dbfb687,0xf6c08f0a,0x24c1e9a4,0x3dbfe90c,0x59c08f0a,0x5cc1f0d9,0x3dbfa6aa,0xccc08f0a,0xc0c1f0c8,0x3d3fa95e,0xa5c08f0a,0x5cc1ec13,0x3d3fe638,0x79c08f0a,0x84c1e745,0x3d3f9981,0x1fc08f0a,0x37c1f0af,0x3dbfba8a,0x9c08f0a,0xd0c1f034,0x3dbfcd0d,0xc2c08f0a,0x21c1ee71,0x3dbfe922,0x21c08f0a,0xecc1f03b,0x3d3fbfbe,0xb1c08f0a,0xc5c1e7e3,0xa4bfcce7,0x789570,0x9570a4b1,0xec0b2dc0,0xf3612cc1,0x81710018,0xa7c1f0c2,0xcb6b2,0x3b2104f1,0xbeecc1f0,0x70a43fbf,0x79dcc095,0xe354c1ee,0x71000cdb,0xc1ead58f,0xce3a01f,0xae597100,0xc960c1e8,0x62000ccf,0xc1e7eac9,0x30e4f7,0x91b04f1,0x9e56c1e9,0x23513ff8,0x13e3c095,0xd2bfc1ec,0x710024f3,0xc1f0f7be,0xcc688c6,0x2e29f100,0xe0c1f33e,0x273ff368,0xac08e4c,0xd8c1f5c6,0xe43fb57f,0x6dc0855c,0x56c1e88c,0x8b400fbb,0x83c08e53,0x5ac1ec14,0xda400b66,0x59c092d6,0x6c1e689,0xc3ff22d,0xe39ff100,0x18dbc1e4,0x89c23fef,0xab7cc08f,0x999ac1e3,0xca5a3fbd,0x83a2c08f,0xa861c1e5,0xc6aa3fb5,0xf4b6c094,0xbe01c1f5,0xaf25bfc5,0x328c082,0x2029c1ef,0xe0724024,0x60b3c07e,0x8017c1e4,0x7c264004,0x173ec081,0x3a69c1f7,0x4f093fcd,0x660dc07e,0x7f4ac1f6,0x99b73fc5,0xacefc080,0x2fa1c1ea,0x8d88c025,0xe00cc081,0x1a1ec1e6,0x1e11c019,0x7b95c082,0xaf53c1e4,0x99b7c00f,0x8b8c080,0xe7e6c1e2,0x9477bfc0,0x7a40c082,0xe51dc1e4,0xd6dabfc6,0xf5a5c092,0x9da1c1ef,0xd6dac009,0x9579c092,0x55dec1f1,0xf50018ff,0xed0ef5ff,0x24fc1f1,0xc6aabfdd,0x48bfc094,0xbf4dc1ea,0xc6aac007,0xa489c094,0xfd8b426d,0x32d3bfb3,0x8fd5c07d,0x87e84272,0x5a47c013,0xbcd6c07c,0x7b7c4274,0x671fc006,0x23ddc07a,0x5a6c426e,0x9ba2c00a,0xfb39c072,0xbaf94271,0x9ba2c023,0x8c43c072,0xf5624273,0x5cbc4014,0x133ac07d,0x33404275,0xe22e4007,0xac7bc07b,0x6eeb4274,0x9ba2401e,0xb7bcc072,0x13b6426c,0x9ba23fd3,0x5d13c072,0x16c64273,0x9ba24027,0xf541c072,0x6294271,0x9ba2402a,0x2bd3c072,0xff9426e,0xccf93fbd,0x99cdc08a,0xc5426e,0x7ac63fc3,0x8154c08d,0x77214272,0xcd574010,0xa634c08a,0x94b44274,0xa6fa3ffe,0xb136c08b,0xa47b4272,0xa3d3ffd,0xe766c08f,0x6a66426e,0xa4423fc0,0xbc15c08e,0x980f4275,0xcfc43fbf,0x534cc08a,0x3e4f4275,0x7ac63fc3,0x2415c08d,0x14a14271,0xa4424004,0xfaaac08e,0x8c2e4271,0x7ac6c004,0xa27dc08d,0xa7f0426f,0xabc1bffc,0x6de4c08a,0x9dae4272,0x9568c000,0x3cf9c08e,0x3bef4270,0x7ac6bffa,0x4382c08d,0xe8f7426e,0x8f39bfc1,0x7094c08a,0x15834270,0xea27bfef,0x8443c08e,0x8ede426f,0x7ac6bfe8,0x37a2c08d,0x4aa14274,0xa442bfe1,0xf671c08e,0x822c426e,0x7ac6bfd1,0xb816c08d,0x1c0d4273,0x7ac6bffa,0xe144c08d,0xa23c4272,0x7ac6c002,0xb5a2c08d,0xb44272,0xa3dbff1,0xe19c08f,0x8294274,0xa3dbfc0,0xac9ac08f,0xf3844273,0xa3dbfcf,0xa8c5c08f,0xa8fc4273,0xa3d3fdc,0xa8dc08f,0xc4934274,0xa3d3fcc,0x9959c08f,0xddf44272,0xa3dbfe3,0x296ac08f,0xd8e44273,0xa3d3fe8,0x952ac08f,0x7fbb4272,0xa3d3ff0,0xfa5bc08f,0x81914271,0x70a4bfe6,0x5b50c095,0xe9534271,0x70a4bfe3,0xb1002495,0xc09570a4,0x4274b12e,0xcbdca10,0xfe04f103,0xbd426f95,0xa2bfcb34,0xc7c09571,0x4142759b,0x318fdd6,0x6eaefc71,0xc24bec42,0xe77102d0,0xd242755a,0x300e51a,0x6f8f8371,0xf308ab42,0x20620018,0xfd42753e,0x71002487,0x4270f21f,0x300faeb0,0x751cf103,0x4f42776d,0x723fd559,0x11c07ee0,0xb5427601,0x594004fc,0x8ac08244,0xee4274a1,0xb7401d3e,0x30c08099,0x544271f5,0x3182dac,0xf4b589f1,0xf627426c,0x4b04bfb4,0xf264c082,0x11884273,0xa4dfc019,0xe16cc081,0x5e03426d,0x928ebffe,0xff5bc081,0xb69e4275,0x9a8bbffc,0x9b41c082,0xc354276,0x99b7bfef,0xe284c080,0xa4db4276,0x9466bfb6,0xf725c083,0x6cc64270,0xd6dac009,0x4769c092,0x984a4276,0x3f68bfc5,0xa01ec08f,0xd851426e,0x7dcabff5,0x5ee2c090,0x464a4275,0xd6dabfd8,0x47eac092,0xdbf54270,0xc6aabff7,0xa88fc094,0x1e1d4272,0x19b9c015,0xf028c08e,0x1be74273,0x3f0c003,0x426eb261,0x3cb5f195,0xfe5b6203,0x637c4272,0x7bf20060,0x424934b1,0x3cd8f0c7,0xc07cb4b3,0x4248afc0,0xbec6a24d,0xc0729ba2,0x424a494a,0x405f1df3,0xc07d6e33,0x424b32cc,0x4068f074,0xc0729b9d,0x4240ec91,0x40690126,0xc0740bfe,0x424775bc,0x4085ecf8,0xc08a801b,0x42458949,0x40826acd,0xc08ea548,0x4246da33,0x40841620,0xc08d7ac6,0x4242f04d,0x406e2742,0xc08d7ac6,0x42437db6,0x4079b2af,0xc08d7ac6,0x4248b240,0x406bbf23,0xc08ea442,0x42450ced,0x3011ff,0x6d90fff2,0xde4249c3,0x2b3f1a1c,0x5fc08aa6,0x1a42450b,0xd8be1ba5,0xb6c08b91,0xa0424511,0xc6bd5cf9,0xeec08d7a,0x12424909,0x623e4b9f,0x5dc08aac,0x624242fb,0x723e404e,0xccc08b61,0x51424906,0x423f1532,0x4fc08ea4,0x5d42437a,0x183e92c5,0xfcc08ea3,0x254246de,0xc6bd5ae9,0x43c08d7a,0x9f424399,0x3d405a55,0x21c08f0a,0x5424727,0x3d4073a3,0xd0c08f0a,0x11424845,0x3d405c57,0xd8c08f0a,0xc1424554,0x3d407770,0xa7c08f0a,0xec424852,0x3d3f298a,0xd1c08f0a,0x1842480b,0x3d3ef994,0x51c08f0a,0x8a4247aa,0x3d3eb9e6,0xdac08f0a,0x14424995,0x61407f08,0x8ec08e16,0x954245f3,0xaa408457,0x13c094c6,0xcd4247e9,0xda408457,0xb1c092d6,0x94424983,0xfc406a85,0x4dc093d1,0x36424303,0xaa406d78,0x8bc094c6,0x1b424a71,0xc7405f9e,0xf1c08dd8,0x4b424557,0xff408cab,0x3bc08f6b,0xe942438d,0xaa4078ba,0x70c094c6,0xb9424a55,0x193f0d50,0xf0c08f55,0x4b41c33e,0xf3bfb722,0x52c07d21,0x941c28d,0xa2bff5c2,0xb1c0729b,0x3a41c48e,0xfbbfef24,0x8cc07bac,0xf441d55c,0xa2bff56b,0x9c0729b,0x8b41c688,0xa2c01aa4,0xa1c0729b,0x7d41c6b5,0x2bc00620,0x40c08033,0x4141d4a2,0x67bfb77d,0x15c07d2c,0xa241d4a8,0x993fbb27,0xb4c07c9c,0x7441cabf,0x6b4017b4,0xa7c07bd6,0xac41c43d,0xa2400e01,0x45c0729b,0xd141d399,0x72000c24,0x41c4fd28,0x5c9ed645,0x4127f104,0x4a0241ca,0xee614002,0xb902c08e,0x74de41cd,0x7ac64006,0xd203c08d,0x244641cb,0x9a2400f,0x401cc08b,0x409a41d1,0x81cf3ffb,0x7814c08b,0x967841c6,0xf10780b8,0xc6706704,0xd3dd4441,0x8ea4423f,0xc7edb9c0,0xe123f641,0xd3710018,0x6b41c870,0x4800d8,0xd1691b71,0xd40f8041,0x4f10024,0x41d2a6a4,0x3fbe3cb0,0xc08d7ac6,0x41c879fe,0x84ff3d8e,0xfbd47100,0x4c9441d1,0xf1000cd6,0xd1016404,0xdca06641,0x8ea39abf,0xc70891c0,0xed907e41,0x3620018,0x6f41d0e1,0xf1000c63,0xc6e7d41c,0xdccbb041,0x8ea548bf,0xc6137dc0,0xba0e1741,0x8eecafbf,0xcdc294c0,0x5230c41,0x8d7ac6c0,0xce5af8c0,0xe12e2741,0x95710864,0x5d41cf51,0x9cd7a7,0xcbf4c171,0xeb833041,0x5f710018,0x1c41cd2a,0x18eb7e,0xcbec4971,0xee165941,0xcf71000c,0x3b41c750,0x24b2ac,0xc887cc62,0x3c884c41,0xc4cd7100,0x9ce941c7,0xf10024c7,0xd096aa04,0xb281c341,0x9570a4bf,0xd01c3dc0,0xc509c841,0x6f71000c,0xcc41c73d,0xcaed4,0x13ea04f1,0x34ca41c8,0x72453fd4,0x6b50c095,0x25441cd,0x710018f6,0x41d16267,0xf8b8c869,0x218e7104,0xdf141c9,0x710018ed,0x41c70830,0x18ce66ba,0x69abf200,0xeb41ce3d,0xeb40181c,0xa6c08e54,0x5e41d339,0x2e3ffb14,0x43c08dab,0x6e41c855,0x254013a4,0xc8c08e4c,0x2641d5b8,0x723ffbfd,0xf9c07ee0,0x6241ca95,0xc1402186,0xdcc08247,0xc741d63f,0xb73fcdbb,0xc6c08099,0x2841c8fc,0x7240280f,0x6fc07ee0,0xbd41c642,0x72401efd,0x9ac07ee0,0x4c41d400,0x59400252,0x53c0825d,0x1d41c5dd,0x81401076,0xb2c08386,0xe541c45c,0xb7400d09,0xec08099,0x2a41cfdc,0xf0c0191b,0x44c08395,0x9341cee4,0x72c026c5,0x24c07ee0,0x1841d14e,0xb7c0195c,0xcc08099,0xe841d3f6,0x72c00f4b,0x4bc07ee0,0x8641c3f5,0x62000c70,0x41c69deb,0x24748e,0xe25b10f1,0x608541d6,0xe072bfcd,0x8e12c07e,0x6cf041ce,0xe72ec002,0xfcc1c094,0xe44b41cd,0x7108280b,0x41d1d5d4,0xe0d4ee7c,0x7f797104,0x452841d1,0x710834f7,0x41cfe05c,0x24059cb7,0x64be7100,0xf33d41c5,0xf20024ba,0xebd1ab4b,0x361d213d,0x7c44e9c0,0xa2e475c0,0xecadacbf,0x7c9b5abf,0xadb585c0,0xcdeb53bf,0x729ba2bf,0xb8fcdc0,0xf7f35c0,0x729ba2c0,0xfe6402c0,0x1f5198bf,0x80814bc0,0x24773c0,0x56877fc0,0x7c04ffc0,0xb76f3c0,0x665fccc0,0x729ba2c0,0x302de0c0,0xc34bd3e,0x42787100,0x11a7bfd7,0x71003c83,0xbf806d16,0x58728bc1,0xe10f102,0x71be7711,0x65c060ab,0x5dc08ad4,0xe5bfdac3,0xbc06664,0xf5c08ad5,0x8be094a,0x243aca,0x9add04f1,0x176ebf68,0xe109c06d,0x2321c08e,0x1d8abfb8,0xf100186b,0x74febd04,0x47e996be,0x8ea442c0,0x801733c0,0x56a512be,0x4f10018,0xbf1f2496,0xc0740618,0xc08a80e9,0xbfcf39f3,0x18624702,0xf0806200,0xe9eabfef,0x4f10054,0xbfe6b1d5,0xc028bd55,0xc08f141a,0xbf473398,0x2470a1cf,0x2d1f7100,0x7f2cbfec,0x71000c2c,0xbf80acd2,0xc032831,0x7747100,0x28d8bfaf,0x71005401,0xbfcf670a,0x18138377,0x2204f100,0x6abe958e,0x75c023a1,0x57c08ee5,0x55bfb85a,0x180aa6,0x27ea1c62,0x486067be,0x4104f100,0x91bf592e,0x3dc05fee,0x7fc08f0a,0x49bfcac1,0xc30f4,0x59833071,0x15bfb1bf,0x4c71000c,0xd5bfa6e0,0xc5c20,0xa7066071,0x199e17bf,0x3e71000c,0x59bf145e,0xc55f9,0x8f1d04f1,0xdf11bed9,0x70a4c030,0x82bfc095,0xc565bf94,0x4000c15,0xa4b10060,0x32c09570,0xf8bec93d,0x182434,0xb1005404,0xc09570a4,0xbef7fcdb,0x184e03a7,0x1e757100,0x2d6bbfbf,0x62020471,0xbf037aa2,0xc1b7a,0xfdee1c71,0x3aebeabf,0x4f10018,0xbfe5f4b2,0xc02457d1,0xc095455f,0xbf3fede9,0x18776313,0x5310f100,0x89c01224,0xa6c03042,0x56c0819a,0x78be9765,0x76c08499,0x29c07ee0,0x5bbf8059,0xc8ab0,0x8d2a04f1,0x69bebfc0,0x4591bfdc,0xa6adc081,0x3e23e1b,0xf10ae010,0x78561d10,0xfca47fbd,0x8099b7bf,0x66cf42c0,0xf207d5be,0x818b37bf,0x407875c0,0xfc8f32bf,0x4f102a0,0xbf94a327,0xbfe4edfe,0xc08e1e1b,0xbff9b1af,0x782ab19e,0xb504f100,0xb4bfd8fc,0xcc0015b,0x8c08e83,0xf9bf80ac,0xaec0486,0x3f6e471,0x48687bf,0x7d620024,0xf7bd6f58,0xf100308e,0xdf93ff28,0x4946843d,0x7c1cd640,0xec3793c0,0x7b2f0abf,0x7c1a7240,0xd877eec0,0x8b5e6cbf,0x729b9d40,0x4c58efc0,0x7d67c7be,0x7bedd540,0x14a759c0,0x61f0a6c0,0xbc710018,0x82c01796,0xc4b73,0x819e0671,0x913678bf,0x1bf2000c,0xc002df55,0x40669570,0xc07c9147,0xbf5ef20f,0x40049cae,0xc07c148c,0xbfdc8deb,0x4014ebc0,0xc07cd38d,0xbd4d8772,0x6182f7b,0x97a27bf2,0xa1663d11,0xc99f4030,0x1f5cc07b,0xe90cbf66,0xa839400d,0x1f97c08a,0xa865bdf8,0xd4654033,0x5276c08a,0x58c5bf81,0xa3d401e,0xaedec08f,0xf3e0bed7,0x80194019,0x282c08a,0x48cbbfb9,0x7ac6401b,0x39d2c08d,0x6916be5f,0xe482404a,0x94b8c08e,0xc144be83,0x7ac6402f,0x4e72c08d,0xae10bff4,0xa46c4033,0x1954c08a,0x1f54bfd0,0x7ac64024,0x4053c08d,0x98d0bec2,0xa548402c,0x3de2c08e,0x58b8bf13,0x98f50048,0xbfe6c5fc,0x404b7ddd,0xc08ea442,0xbfe35ddd,0x4071e42a,0xc08a80eb,0xbf23e2f8,0x40828588,0xc08aa46a,0xbe7a30db,0x40714ab6,0xc08aac69,0xbf818c2a,0x40819f12,0xc08d7ac6,0xbfa286be,0x4083cc32,0xc08b1177,0xbfc92cd8,0x40715769,0xc08ed838,0xbfcba0e0,0x4055720d,0xc08f0a3d,0xbedcdf05,0x4041a6b1,0xc08f0a3d,0xbfa7e5c1,0x406cc83f,0xc08f0a3d,0xbefb7a5f,0x403862ae,0xc08f0a3d,0xbedd0c80,0x40558744,0xc09570a4,0xbefbd231,0x405ec915,0xc09570a4,0xbf956220,0x4070a0f5,0x3c9570a4,0xa408f100,0x21c09570,0xbdbfb7ca,0xa44066ab,0x3c09570,0xc9bf5aed,0xc2677,0xcb958171,0x419175bf,0xb062000c,0x15bf9537,0x71001872,0xbfae8987,0x1824609a,0xbfad7100,0x4580bfa7,0x71000c2a,0xbfb7ab11,0xc305d74,0xeb357100,0x3251bf98,0x4000c77,0x20f100b4,0xc09570a4,0xbf81486f,0x400cdbcb,0xc092d6da,0xbf84311f,0x4001b88d,0xc08e4e62,0xbfbaf399,0x401cce7d,0xc094ea0a,0xbfbffdd6,0x241538eb,0x10f100,0xfcbe4390,0xaa403d8b,0x3ec094c6,0xcdc0045c,0x19402fe6,0x16c08e1e,0xa1bfd9fb,0x241f2b,0xfa7e8471,0x3b415bbf,0x1cf1000c,0xc01b3ce6,0x404b727a,0xc07ee072,0xc0119cd8,0x4040b4d5,0xc0824459,0xbf813e03,0x3ff55116,0xc082392c,0xc00f0f1f,0x241e3290,0xbc497100,0x43f6bf24,0x710690e8,0xc000a6df,0x180b7708,0xd503f200,0x3dbd85cd,0xb7400f27,0x60c08099,0x6c3e5bcb,0x7100305f,0x3eb60d02,0x24343750,0x166a6200,0x2928bfb0,0x10f1003c,0x3e7a17f4,0x4056279e,0xc082cc32,0xbfad800a,0x3ff1dc38,0xc08099b7,0xbfb07a7d,0x30917b5f,0xa1cb7100,0x13733eb5,0xf1000c63,0xb94afd04,0x8bec55bf,0x82ad3c40,0x8edb73c0,0x61c57e3e,0x2171006c,0x9bd8a21,0xc840a,0xc19c04f1,0x1394c00d,0x6f4e4064,0x2df1c082,0xe169c018,0xf1003c62,0xd9534804,0x82bba7bf,0x8e538d40,0x16687fc0,0x7a9ff5bf,0x79710120,0x69bfdf93,0xc66a8,0xb7da3862,0x189069bf,0x2547100,0xab9bfa2,0x71012084,0xbf9da922,0x248000bd,0xa704f100,0x3dc15937,0xa2c01dd1,0x54c0729b,0xcdc17370,0xc1020,0xde3504f1,0x6823c155,0xd66bbffc,0xb22dc07b,0x91f3c169,0xf1001826,0x51221e04,0xcdba23c1,0x767b42bf,0x6412e5c0,0x298156c1,0x28f10018,0xc152cdab,0xbfca29bf,0xc07c9442,0xc1536f44,0x3fc9d10b,0xc07de85c,0xc154cd54,0x400adf44,0xc0729ba2,0xc1594fef,0x400657f3,0xc07c04fb,0xc1594ddc,0x1818a88f,0xdf27f200,0x12c16bb2,0x464001f6,0xb6c08b8b,0xd8c15620,0x863fb7d4,0x6cc08dbd,0xddc16c24,0x3d3fda98,0x88c08f0a,0xefc1558a,0x65bfca71,0x20c08bfe,0x8bc16415,0xf1060052,0x63c35a1c,0x108034c1,0x8b94e4c0,0x6f0fffc0,0xd80779c1,0x8ea442bf,0x5e08e4c0,0xfa39efc1,0x8ef0d6bf,0x60ce33c0,0x38fcdc1,0x1cf106c0,0xc15adf5f,0xbfbdac58,0xc08f0a48,0xc15b1efc,0x3fbd2f34,0xc08f0935,0xc1619a61,0xbfef6aad,0xc08f0a3d,0xc16db2b4,0xca55779,0x5e417100,0x3754c16d,0x71000cb9,0xc16c7644,0x90c111cf,0x5505f100,0xdc15b7b,0xa1bfd16e,0x13c09583,0xedc16c68,0x3cbfcbba,0x6d856103,0xb55ffec1,0x1e71000c,0xcac16d6b,0x918ae89,0xb1003c04,0xc09570a4,0xc16af047,0x18d0fd2a,0xf3ba7100,0x362fc168,0x71000cdd,0xc15ffb9b,0xce36495,0x193b7100,0x1befc15c,0x710048e5,0xc16415e0,0xcffa8b5,0x8704f100,0x85c175ff,0xd43fb994,0x8c08dc4,0xcbc16429,0x1d40c0f,0x68374d71,0x9e84fc1,0x6ff2000c,0xc1757fc1,0xbfa56955,0xc08fca5a,0xc166e8c3,0x401db7f6,0xc082b6db,0xc14ffeae,0x3fc46d0d,0xc08178d1,0xc1544913,0x3ffbf601,0xc083b3c2,0xc1782699,0xbfc12557,0xc08258f9,0xc1530487,0xbffcc083,0xc082448d,0xc1682332,0xc00f3322,0xc092d6da,0xc164149f,0xc0115155,0xc092d6da,0xc152a691,0xbfd5484d,0xc08e18cc,0xc16ae01e,0xc001b457,0xc094c6aa,0xc15d4b5e,0xca4cf,0x8c3528f1,0xaf25422f,0xaeb8409e,0x1bc4c078,0xc1ab422e,0x971c40a4,0x792ac077,0xae62422e,0x4a2c40a8,0x33edc072,0x91b04230,0x3a58409a,0xfdd1c075,0xafea422f,0xf60018a1,0x478a10ff,0x124341f3,0x9c3d4098,0x3e2c075,0x8e0041f8,0x3d7f4042,0x3ea3c08a,0x855e41f4,0xc3e34042,0x880cc082,0x597741f7,0x4abe409c,0x6f7c086,0xd83241f5,0xe7194095,0x28fc084,0xcbab4231,0x4a2cbf85,0x602c072,0xe708422e,0x3d9bbf85,0x382cc08a,0x483841f3,0xc715c072,0xd677c075,0x308c41f2,0xcb0cbf29,0x102ac074,0x15df41f5,0x2d21bf29,0x8ac5c086,0xdf5b41f6,0x5c14c08d,0xe676c07e,0xdb5741f3,0x1398c085,0xe387c07f,0x632441f6,0xa0e2c080,0xe59dc08c,0x61ae41f3,0x44fac06d,0xf93c08a,0x8d394231,0xc5a0408e,0x98e8c07f,0x25f4422d,0xdf4040a9,0x318dc080,0x5a1b41f9,0x4edd40a9,0x49f1c080,0xee1841f2,0x66904094,0x6e69c080,0x5c6e41f5,0x759f40a5,0xac9ac080,0x8be541f3,0x834140a2,0x2435c07e,0x48e241f8,0x6fcc4090,0xe052c08d,0x2a6d422d,0x6fca4091,0x25c08d,0x94cd421e,0x70a44091,0x24a8c08d,0x1f3a420a,0x6c724073,0x7f20018,0xc0870a3d,0x41f8415a,0x4090be03,0xc0870a8d,0x420a0026,0x186708,0x126d6ff2,0x48474230,0x17b34095,0xb3bc08a,0xe048422f,0x9e4540a2,0xaa6bc086,0x1340422f,0xa014409f,0xcd8dc086,0x715a422e,0x56e7409f,0xb66cc08a,0x9d5241f3,0x9f324099,0xdabfc086,0x29ef41f7,0xaecd409c,0x2594c08c,0x14b41f3,0xa27f4094,0x4eabc086,0x73da40e4,0xc8cb401f,0xa8d4c080,0x7b7c40cf,0x94424030,0x4b4fc07c,0x685140f5,0x9ba24014,0x1e7ec072,0x3f14404c,0x4f10018,0x4033d91b,0x402b6373,0xc07d5aea,0x400eb2ee,0xf02602f7,0x991cf103,0xb63ff083,0xa23ffe14,0x47c0729b,0x684037cb,0x3e403476,0xf4c0767b,0xff4026df,0x28c02704,0x20c07bf3,0x4640360b,0x45c3e7e,0x56fffff5,0x40ea8a55,0xc0133b10,0xc08256a6,0x40f29683,0xbfef35fc,0xc07cfc1e,0x40ed3131,0xbfefe8a3,0xc08c263e,0x40ed7c6e,0x3fe9f23d,0xc08b8082,0x40da7985,0x40244739,0xc08a08c0,0x40e82a99,0x3fec1c3f,0xc08ea442,0x40e5860e,0x3fe943e1,0xc08f0a3d,0x40d8e5ae,0x3fbcb9aa,0xc08f0a3d,0x40e08bd2,0x3f3b3e03,0xc08f0a2d,0x40e2dcf9,0x3f196b66,0xc08f0a3d,0x40b9f0a4,0x3ff678ea,0xc08f0a3d,0x40b84426,0x3fe641e5,0xc08f0a3d,0x40e0637c,0xbf3f91e6,0xc08f0a3d,0x40d72882,0xbfb63287,0xc08f0a3d,0x40d8d752,0xbfc665ae,0xc08f0a3d,0x40d108df,0xc00902c9,0xc08f0a3d,0x40c449d4,0xc00c6562,0xc08f0a3d,0x40a0fd2f,0xbfad906d,0xc08f0a3d,0x40baf039,0xbfaffbf0,0xc08f0a3d,0x40b7d185,0xbfd7f002,0xc08f0a3d,0x402b0e91,0x3f38e78a,0xc08f0a3d,0x40a40d04,0xbfe96b23,0xc08f0a3d,0x40b8654d,0xbfe953df,0xc08f0a3d,0x40266449,0x3f208f21,0xc08f0a3d,0x40ba141d,0xbff98705,0xc08f0a3d,0x40c03c12,0xc0090c67,0xc08f0a3d,0x40982f4b,0xc00c7e9e,0xc08f0a3d,0x408304b8,0xbfd82c6f,0xc08f0a3d,0x408f7d09,0xc00c8394,0xc08f0a3d,0x40264ca9,0xbf25fb83,0xc08f0a3d,0x402aadd1,0xbf3f548f,0xc08f0a3d,0x4020c971,0xbfec990f,0xc08f0a3d,0x402c8230,0xc00a8c97,0xc08f0a3d,0x4093d654,0xc00da633,0xc08f0a3d,0x40e7b1d1,0xc00fdd12,0xc08bae5e,0x40e47840,0xc0085bea,0xc08ea368,0x40e84c90,0xbfeec094,0xc08ea442,0x402518e3,0xc011fa22,0xc08d7ac6,0x4030a44c,0xc01ad0ab,0xc08d7ac6,0x40114edb,0xbffde0df,0xc08ac28d,0x40242be9,0xc0098783,0xc08eaada,0x401c3bc5,0xc00673c5,0xc08d7ac6,0x4012a60d,0xbff43559,0xc08ba678,0x401b805a,0xbfef716d,0xc08ea442,0x4024c5ef,0x400ffc98,0xc08d7ac6,0x401662e5,0x3fee01bd,0xc08d7ac6,0x40a49e52,0xbfd805f7,0xc09570a4,0x409b192f,0xbf9887d3,0xc09570a4,0x402f11fd,0xbf48fcd6,0xc09570a4,0x40e1ca60,0xbf345447,0xc09570a4,0x40dec0a9,0xbf470b6b,0xc89570a4,0xa400f501,0xcfc09570,0xb640d8d9,0xa4bfe92e,0x1c89570,0x9570a4b1,0xc8a31ec0,0xd87fd40,0xd2710bdc,0xd740b862,0x24c68a,0xb1019804,0xc09570a4,0x40a26087,0x18f9a227,0x1980400,0x9570a435,0xa4350198,0x1809570,0x9570a4b1,0x263240c0,0x21dd6e40,0xce710030,0xd84035e0,0x6011b8,0xf1016804,0x9570a408,0xe9b11cc0,0x1df2c340,0x8ed77ec0,0xd7f6c9c0,0x26d9c240,0xff20b88,0x40f2c891,0xbff1ba6f,0xc08f8167,0x40da6569,0x402e2c38,0xc08f2baa,0x40df5773,0x91835f0,0xead3d471,0x84a5140,0x18710618,0x7640e735,0x7f80419,0xe9eda071,0xee01cd40,0x10f11488,0x403e772d,0x403870ce,0xc082b67c,0x40e8f3f7,0x402ac4f4,0xc0815024,0x40cfdd83,0x543fd278,0xec10f10c,0x7540cfdc,0x3c03bac,0x3fc0826e,0xc4030e3,0xfc03793,0x58c0829c,0xe240351a,0xc904204,0xfab4371,0x250b3540,0x4f108b8,0x4034abe7,0x40401073,0xc07ee072,0x4025be40,0x780f04d1,0x14947100,0x1b2e403e,0x71000c1d,0x4009391d,0xa8f9483d,0x5928f106,0xd401d6b,0xaac005c4,0xa6c094c6,0xb6c10976,0xd0408003,0x76c0725e,0x1ac1341f,0x113f7d18,0xaec07d1b,0x61c05ebc,0xd03f874f,0x5fc0725e,0x2ec07979,0x240400,0x5d4f28f1,0xeaeec0d1,0x8bf24066,0x213ec090,0xcfe6c0b3,0x246c4056,0x17ecc07d,0x74acc0f0,0x8db54076,0x2f45c07d,0x7100c085,0x204f3ff9,0x8cc7c07d,0x4ab6c119,0x71003c65,0xc1275bb0,0xc3acfd9,0x399ff200,0xac12446,0x3f402e81,0x5dc07c19,0xfac0d0f9,0x4bc07261,0xb6c07d20,0x93c12da9,0x40bffa1c,0xc6c0804e,0xe4c10951,0xd0c081ce,0x3c0725e,0x60c13266,0x4d3f7420,0xefc08f76,0xd5c08eb7,0xe73fdc5c,0x2bc09554,0x87c0f05e,0xf14060e1,0xd8c0950e,0xa5c10731,0x82405e4f,0x8cc093f0,0x40c06fdb,0xbbbd05c1,0x7c09009,0x62c11480,0xf1404265,0x67c0950e,0xaec087c3,0xa33feed5,0x3ec08f40,0x5ac1152d,0x82404712,0x8dc093f0,0x7dc0c2a5,0x8c404ecf,0xb9c09565,0x1cc1212d,0x82402226,0x7fc093f0,0xb9c0b65a,0x71002454,0xc0d38c67,0x3456edcc,0xd9176202,0x2cfec094,0x7c720858,0x92c0a5a7,0xbf413ca,0xc0bb8b61,0xc354e55,0xab04f100,0xd1c12ceb,0xa4bcf9e9,0x22c09570,0x42c08a45,0x87054b2,0x5bab071,0x4dc7ebc1,0xf7710048,0xc0c0f05b,0x30517b,0x86a42b71,0xbd7f52c0,0x3710030,0x65c11d6a,0x241739,0x5d7de71,0x4a39d2c1,0x35f10024,0xc12ed2c2,0xbf726f61,0xc0950ef1,0xc0e0d0bb,0xc0679874,0xc0949e11,0xc12a5151,0xbfebe1c1,0xc093f082,0xc0d0ee44,0xc06afc54,0xc08f40a3,0xc12c6868,0xbff4c93a,0xc08f6d9e,0xc09e200e,0xc02594f2,0x3f100f0,0x87c09ae3,0x8dc02c50,0xaec08f9c,0xd2c08bb7,0x3ceafb,0x3500d804,0xd89bd70a,0xd70a3500,0xf100d89b,0x9bd70ac8,0xd3c96bc0,0x539fa9c0,0x9bd70a40,0xa216e6c0,0x1dabc9c0,0x9bd70ac0,0xefdab2c0,0x784ca5c0,0x95547a40,0xcf350bc0,0x6f1b69c0,0x959ccb40,0x356895c0,0x7ca3d7c1,0x911bd63f,0x6c8db0c0,0x7d1d15c0,0x92ebc83f,0x6420d1c0,0x16366dc0,0x92cc49bd,0x20cf0ec0,0x20ac4bc1,0x9b3d8440,0x29ee05c0,0xe2084ac1,0x9b3d843f,0x33a885c0,0x55ca7c1,0x99b56cbf,0xb15ec0,0x6b323cc1,0x9ab450c0,0x241509c0,0x33728fc1,0x955406c0,0x5ef62bc0,0xef9b99c0,0x842c47bc,0x67b0ffc0,0x81dea4c0,0x8425423f,0x56e1f4c0,0xb5b707c0,0x80537ebc,0x860d76c0,0x2adc90c0,0x7e582a40,0xf063bfc0,0x83f113c0,0x80537e40,0x7a9d5ac0,0x3572ec0,0x10f1000c,0xc11a25f7,0x40696d55,0xc07e5821,0xc080ded0,0x3ffeb6fa,0xc084577b,0xc0927143,0x243a4d05,0xda28f100,0xdac0e1ad,0xf140871a,0x44c07e65,0xec13a85,0x7ebd00d9,0xac08053,0x3dc0cdba,0x7ec08118,0xa8c08053,0x9bc0de9b,0xe9c08810,0x76c07e64,0x92c0adb6,0x186795,0x27051f71,0x3dbbd8c1,0x8862000c,0x65c0923b,0xf1000c50,0x592e5865,0x536b3c41,0x77ef7840,0x546a53c0,0x4d654d41,0x72566940,0x94deecc0,0x6b366541,0x846ef640,0x9bda75c0,0x40286b41,0x849f1740,0x9755c5c0,0x6e100a41,0x75ec6340,0x41a2bec0,0x95e68a41,0x7256693f,0xa75952c0,0xd8b1dd41,0x77bed73b,0x450290c0,0xb3653d41,0x77ef783f,0x7e4f35c0,0x90225341,0x72566940,0x3f2df7c0,0xa65cf641,0xf10030bb,0x4183f00f,0x408793a5,0xc0849f19,0x417e8319,0x408d14cd,0xc075690a,0x41a1415a,0x18081872,0x62847100,0x6dd24175,0x62001889,0x419d9d32,0x9cdaf5,0x596204f1,0x4f34176,0x533f4083,0x924c084,0xe758419a,0xf100b466,0x559e291c,0x497ec341,0x75690ec0,0x9bea60c0,0x3f611c41,0x84c25fc0,0xa37092c0,0x111e2641,0x725669c0,0x7e7872c0,0x902d2e41,0x7662000c,0x534188b9,0xf1000c22,0x95d68510,0x77d9cf41,0x74c904c0,0x8f6676c0,0x8572ae41,0x77d2fac0,0x8cbdfec0,0x82d25041,0xfff10048,0xa49beaa4,0x8c6ee341,0x84eb38bf,0xa49ee7c0,0x8bbc9941,0x84eb353f,0x9eed44c0,0xfac9fb41,0x8a03d53f,0x939dccc0,0x57b0ab41,0x8a01d840,0x687faac0,0x570dd841,0x8a5b0a40,0x51d234c0,0xf6f66a41,0x8a5b0c3f,0x4968d0c0,0x8ee6b841,0x89e07abb,0x51f66dc0,0xf8d57341,0x8a43d4bf,0x840d44c0,0x794a7741,0x8a2633c0,0x8c233fc0,0x7036b941,0x8a5b0ac0,0x93ad35c0,0x5768cb41,0x8a01d8c0,0x98978bc0,0x24d9a941,0x970903c0,0x9819a3c0,0x20ecab41,0x983b38c0,0x50e09ec0,0x6cdb6a41,0x983b38bf,0x93077cc0,0x4fcf5341,0x93e580c0,0x9fab6ec0,0x7de2ef41,0x98a3d73b,0x9df284c0,0xeff25641,0x940bacbf,0xa020d2c0,0x709eaa41,0x970903bf,0xa0f97bc0,0x76d16c41,0x93f4b4bf,0x83f8e1c0,0x6964f141,0x970903c0,0x840e2ac0,0x702a2c41,0x940ab7c0,0x91d4dac0,0x3ffedf41,0x98a3d7c0,0x5d7e56c0,0x280b9141,0x95258340,0x72b24ac0,0x52409a41,0x989a0d40,0xa0ef22c0,0x79270b41,0x940ba03f,0x9f70c1c0,0x6cdb6a41,0x983b383f,0x9b1105c0,0x39f2c41,0x98aaeb40,0x57d17bc0,0xdd694441,0x98a3d73f,0x9df4d0c0,0xf0f3f541,0x93ce983f,0x988bbdc0,0x25381941,0x97090340,0x5550b1c0,0xe8f14e41,0x9709033f,0x9925c5c0,0x29adb041,0x9428e540,0x4f807bc0,0x709eaa41,0x9709033f,0x927f9dc0,0x4a417d41,0x97090340,0x92fdfac0,0x4fcba741,0x940ab740,0x83e862c0,0x63d61341,0x983b3840,0xcce82fc0,0x4039f100,0xc0970903,0x415a1fa0,0x3fd2ca8a,0xc098a3d7,0x418acd07,0xc04bf13d,0xc098a3d7,0x419d7298,0xbf59bcfd,0xc098a3d7,0x41531445,0xbb71b25f,0xc098a3d7,0x4183e8fb,0x4053332b,0xc098a3d7,0x4154e4c1,0x245b8fde,0x1d307100,0x5c04191,0xf1001837,0x688bbb17,0x2bfa0941,0x98a720c0,0x9ad140c0,0xd2ca8241,0x9f0a3dbf,0x96a0c8c0,0x152c8841,0x9f0a3dc0,0x48f815c0,0xc0100,0x7a454071,0x4c108441,0xbb71000c,0xcc415a2e,0x30d39b,0xdcef04f1,0xbd0e4154,0xa3d3f59,0x6eb0c09f,0x8fef419d,0x71000c5b,0x416c33e8,0x30403e53,0xf8777100,0xd72c4183,0x4000c5d,0x3db101d4,0x27c09f0a,0xbe415253,0x48669f,0xb101a404,0xc09f0a3d,0x419bf853,0x18dd693c,0x91d27100,0xb08a4197,0xf1003c1c,0xa2f76c1c,0xbc85c241,0x999cbf3c,0x9cf553c0,0xe7b5bf41,0x9e65d83f,0x524332c0,0xf9e88141,0x999d673f,0x500452c0,0x6e6bf841,0x28f10018,0x4183e843,0x40674324,0xc09e65d8,0x41840106,0x4077ce7d,0xc099ea2b,0x4198673f,0xc023582a,0xc09e65d8,0x418c2589,0xc06f5cc0,0xc0999e64,0x416b06ff,0x1848687f,0xfa507100,0x72f74178,0xf2000c5f,0x83f85103,0x75c70d41,0x9b58e0c0,0x8b73e2c0,0x1850b541,0xfffff100,0x4f590fca,0x19fe841,0x8e2bc5c0,0x59d011c0,0x38b62c41,0x8e137bc0,0x500f07c0,0xe36541,0x8f5c01c0,0x67ad45c0,0x5f706941,0x8f4edfc0,0x77118bc0,0x7c142f41,0x8e0e75c0,0x83f9bfc0,0x80d53941,0x8f769dc0,0x8e0c41c0,0x7c709341,0x8d9e3dc0,0x981094c0,0x4e697341,0x8e2d06c0,0x9abc4fc0,0x361f9f41,0x8f65a3c0,0xa478f8c0,0x96b8741,0x8e001bbf,0xa023a5c0,0x2ff2241,0x8e1698c0,0xa27a43c0,0xc0b51c41,0x8e38fe3f,0x98e0ecc0,0x4c274641,0x8dcacd40,0x8bd71cc0,0x803ad641,0x8d8fd240,0x8c3ccec0,0x791d5041,0x8f5ba140,0x83ec44c0,0x8286e041,0x8e011940,0x676e22c0,0x5f752541,0x8eea7440,0x9c8f74c0,0x45683041,0x89852540,0xa023fdc0,0x2d841f41,0x86311040,0x7e8349c0,0x8d11f741,0x86311040,0xa4cb17c0,0xda6c8741,0x8631103f,0x40b997c0,0xa2d2fe41,0x863110bb,0x9edad4c0,0x259ad441,0x8c07fd40,0xa64b4cc0,0x93f16341,0x8631103f,0x487414c0,0xf05acd41,0x894f8d3f,0x558262c0,0x49079241,0x86311040,0x90e606c0,0x7b142f41,0x8c07fd40,0x5ca055c0,0x61feca41,0x863110c0,0x4cfe8bc0,0x2320ab41,0x85b6a0c0,0x8cffc6c0,0x86a40141,0x898525c0,0x83fa81c0,0x8b6e9541,0x898525c0,0x8868c2c0,0x86a36441,0x8c07fdc0,0x758a37c0,0x89802241,0x863110c0,0x91e309c0,0x86432641,0x806254c0,0x9e03f1c0,0x50240b41,0x7e8883c0,0x9db191c0,0x4d320141,0x8060e3c0,0xa84a3ec0,0xa643cc41,0x8066ba3b,0x3f3559c0,0x5616f841,0x80727cbc,0xa3702ac0,0x111c3241,0x806256c0,0xa5fcacc0,0xe0ef0341,0x7e8883bf,0x44ca96c0,0xdf032a41,0x807529bf,0xa7f624c0,0x18459941,0x806ce5bf,0xa0c06bc0,0x31467841,0x80625840,0x6bfb92c0,0x86458041,0x8066b840,0x636048c0,0x7b587541,0x806ce540,0x957228c0,0x811ce041,0x7edf1140,0x41b247c0,0x96d44e41,0x80727e3f,0x3e57b5c0,0x14f61641,0x7ee9e63e,0xe013f9c0,0x950568c1,0x7e9b8d40,0xdff3f2c0,0x90b51ac1,0x7e943640,0xdf8845c0,0x8c8436c1,0x7e934b40,0xdebbf8c0,0x880037c1,0x7e563640,0xdde297c0,0x860ed2c1,0x7eb83040,0xddf323c0,0x961d9fc1,0x84d16c40,0xdc8592c0,0x91f7d3c1,0x8570a440,0xdc8991c0,0x888d5cc1,0x82f96240,0xdd8008c0,0x9a5825c1,0x84d4b240,0x995b3ec0,0x93aa1dc1,0x82ff7c40,0x983f9bc0,0x955b38c1,0x7eb4a240,0x997efac0,0xa194f5c1,0x7ea40140,0x9a483ac0,0x9e6fb7c1,0xe0f1003c,0xc1dbc64d,0xc09f430f,0xc07e61a2,0xc1ddd898,0xc08ff89a,0xc0830043,0xc1dd3a13,0xc0963a3d,0xc08301d8,0xc19a23e3,0xc09f7f4e,0xc07e1c15,0xc19a58a0,0xc09e7395,0xc07f0f5e,0xc1df28b2,0xc089fc9c,0xc07e6139,0xc1f9d734,0x4068f323,0xc07e5209,0xc1f8361c,0x40535ecc,0xc07e8777,0xc1f9d3f6,0x40702fa5,0xc07eb478,0xc1f43d20,0x404ea911,0xc07e6302,0xc1f5841b,0x404e5a1d,0xc07f0f5a,0xc1f53f79,0x4080d0ce,0xc084d4d6,0xc1f7b44b,0x40721c2a,0xc084d5b9,0xc1f4698a,0x4065a6df,0xc085e406,0xc1f3f4f2,0x4059bf27,0xc082f962,0xc282c8b3,0x40c1faec,0xc0e00169,0xc27fc76b,0x411c7a82,0xc0e001bf,0xc274cccd,0x40eccccf,0xc0e00000,0xc27fa710,0xc11d266c,0xc0dffe20,0xc273de46,0x40edc806,0xce00000,0x46ff200,0xc0edc8,0x18c0e000,0x79c27e59,0xc11fe8,0x13c0e000,0x3bc27849,0x410ed8,0x56c0e000,0xaac2721d,0x40f582,0x5ac0e000,0x56c28522,0x61c0d545,0x22c0dffe,0xac282ed,0xd2c0d5bd,0xa2c0dffe,0xac2826d,0x13c0ca9d,0xfc0dffe,0x3ac24e6a,0x140af02,0x12c0e005,0x1dc24e62,0x44c05792,0x9ac0e009,0xb1c27152,0x410112,0xe9c0e000,0x7ac251a6,0x411fe8,0x31001800,0x6c0886e9,0x7ba57100,0x5d9ec278,0x7100840e,0xc275ce19,0xc135a0f,0x34d97100,0x3f0dc279,0x93000c03,0xc280324e,0xc0fadd09,0x3100a89d,0xc0f582bc,0x480300,0x62002401,0xc2724121,0x48fb7a,0x168410f1,0x8180c285,0xff3dc0c0,0x1685c0df,0xae06c285,0xfe7240d5,0x1404c0df,0x581c283,0xf100d8c0,0x82da721c,0xd53346c2,0xdfffbd40,0x8047efc0,0xf98319c2,0xe000b640,0x827a59c0,0xcc3c73c2,0xe0001f40,0x829802c0,0xc57e28c2,0x30f50030,0xc24e60db,0xc0576f9c,0xc0e66be8,0xc2110de3,0xc0219bf6,0xc087f05a,0xc221e81c,0x40bb9824,0xc087ec16,0xc225f755,0x40bbacc7,0xc087f0d2,0xc221f0e7,0x40ceb852,0xc087eefa,0xc25f0e7,0x4e00f500,0x42c221ac,0xfac0670a,0x7fc087ee,0xc2635,0x215af171,0x6069a5c2,0xc2910018,0xfc20a1a,0xdac0059c,0x20510048,0x5b53cac2,0xab930018,0xf5c20f57,0xc6408c3e,0x5431003c,0x60b6b8,0x2686dc71,0xb36806c2,0xe671000c,0x18c226f0,0xcb0dd,0xe1bb28f1,0x8430c215,0x556dc030,0x7fdfc08e,0xf966c215,0x5563c027,0xc4f1c08e,0x1dec212,0x5561c01f,0xa43fc08e,0x4eecc20f,0x55e3c01e,0xf305c08e,0xff0dc20e,0x7100180d,0xc20e93e3,0x300baa4c,0x780cf100,0xb0c20f4a,0x63408c71,0xaec08e55,0x2bc2117f,0xa34092cc,0xe7c08e56,0x6c20f0,0x55610ff2,0xf9f0c08e,0xb5a2c227,0x4cb240ae,0x7836c08e,0xb852c230,0xeb0340ae,0x46aac08f,0xbe71000c,0x73c09620,0x182b02,0x341103f2,0xee73c08f,0xb854c24a,0x214f40ae,0xddc9c0df,0x4731000c,0x144e582,0x70f33071,0x8e592ec0,0x1f310138,0x908b85,0x1012004,0xff1006c,0xeac282c1,0x6440c24d,0xfc0e666,0x38c286fd,0x66c0e92f,0xb4c0e666,0xe5c282c8,0xcc1fa,0x3402e804,0xe8e66666,0x6441c102,0xf0c0e666,0xdac27249,0x3cf41d,0x596804f1,0xebf4c285,0x6441c0d3,0x7533c0e6,0x573c285,0xf1003cc7,0x82bda110,0xd45cc8c2,0xe666bac0,0x8048d6c0,0xf979afc2,0xe665cfc0,0x4f6a0ac0,0xb36804c2,0x71003c,0x16c24f00,0xcb0dd,0x579004f1,0xe5cfc24e,0x6d8140ae,0x5e2c0e6,0x6461c250,0x3006c19,0xc1c10354,0xc0e66666,0xc2794add,0xc02481b,0xa6f6b500,0xe880c251,0x6317c11f,0xb102c4e6,0xc0e66666,0xc2510000,0x241eed9f,0xdc04f100,0xbc25066,0x1ac11cee,0x4c0e199,0x7fc28314,0x9cc005,0x1c71fff1,0xccc28866,0xa440cf6e,0x82c0ad70,0xa9c28858,0xa940c117,0x93c09278,0xc3c28858,0x4640ce7d,0x8ec094db,0xdac28858,0xb840c6e4,0x95c08890,0x7c28877,0x2e40b70b,0x3c09082,0x5ac28922,0x8ec0b529,0xa7c07c58,0xacc28970,0xd6c0b5ca,0x62c08847,0x89c27e39,0x5a3fa1ea,0x2fc086bb,0x59c281ad,0xac3e09a4,0xdcc08570,0x1ac281b4,0x18bf96dc,0xa8c0854c,0x3ec285ac,0xa4be5292,0xabc08570,0x20c281b0,0xa4bfaf9c,0x4cc08570,0x29c28777,0xa4bd0f5c,0xc7c08570,0xd7c2808b,0xa4c008a3,0x49c08570,0xebc28079,0xa6c0b0ef,0xcfc08570,0x4cc2837e,0x9140aad5,0x2bc08570,0x7cc27cb1,0x6ec0a461,0xfac085a4,0xaec27fbc,0x2840b202,0x2ec08570,0x89c27cb1,0x3540a48c,0x60c085a8,0xa4c286a8,0xa43f1d70,0x33c08570,0x9c28689,0xa4be1a8b,0xa0c08570,0xa5c27f3a,0x41404e13,0x21c0853c,0xc0c28577,0x8fbd7b41,0xdbc08571,0x62c281b5,0xec3deba0,0x9cc090a3,0x15c2812a,0x5dbe07ff,0x73c097c1,0x3fc28146,0x15be07fd,0x83c0942c,0xccc28179,0x83bf910a,0x1ac091a6,0x42c27d71,0xc0bf8e23,0x16c0a4b4,0xc5c27d43,0xbdbf8bc7,0x76c0af0a,0x24c27d4e,0x89be2e0d,0x26c0af0a,0xbcc2809a,0x1bbf97ae,0x2dc09d92,0x7bc28072,0xd7bdae14,0xc90a3,0xae1407f4,0xa3d7bf97,0xb127c090,0x147bc27c,0xcccdbdae,0x8bc7c0cc,0xb0150024,0x14f1000c,0xc0cccccd,0xc28150cf,0xbd8f4cf5,0xc0b11dd6,0xc2814843,0xbda03cd1,0xc090af86,0xc281ae72,0x48b05586,0x153f200,0xd0c2818a,0xe2bfb6b6,0xf1c090a3,0x8ec2875e,0x1740abad,0x40c0909e,0x48c2875a,0x204096e1,0xd5c09099,0x11c28692,0xcb4094b8,0xfc090a2,0x57c28395,0xd74096fa,0x6fc090a3,0xdec28390,0xd740ab84,0xe5c090a3,0x7bc28090,0xd7408614,0x25c090a3,0x6dc28682,0xec3f428f,0xc7c090a2,0xf101508b,0x90a3d718,0x868802c0,0x20489dc2,0x90a3d7be,0x86683fc0,0x53810fc2,0x90a19dbe,0x7cb128c0,0xbad8cdc2,0x90bbb2c0,0xfff2024c,0xbce27a14,0x90f796c0,0x88588fc0,0xc26944c2,0x94726fc0,0x85879cc0,0xcf3333c2,0xadd53dc0,0x885b54c0,0xcf24bec2,0xad70a6c0,0x7cf91bc0,0xcf3381c2,0xd65337c0,0x7ff269c0,0xcf33b7c2,0xd6eca7c0,0x80455ac0,0xc3ff61c2,0xba9f4bc0,0x857a7dc0,0xc401e0c2,0xab6881c0,0x885883c0,0xc20451c2,0xc99891c0,0x7cf4cdc0,0xc400b6c2,0xd697a9c0,0x7cb125c0,0xc345d2c2,0x942c6dc0,0x828bc2c0,0xce7ffcc2,0xc96113c0,0x8281d8c0,0xc3d563c2,0xc63029c0,0x858ba6c0,0xcd57bfc2,0xcb3b6bc0,0x859498c0,0xc52633c2,0xd43da7c0,0x848adac0,0x85d599c2,0xcbd70ac0,0x85ca39c0,0xb61d91c2,0xcbd745c0,0x84a5c7c0,0x935324c2,0xcbd70ac0,0x8329dac0,0x908f19c2,0xcbd773c0,0x8515f9c0,0x5a55fcc2,0xcbd6edc0,0x8537d2c0,0x5bbc34c2,0xcbd662c0,0x8311eec0,0xb6cbadc2,0xcbcc38c0,0x855980c0,0x726927c2,0xcbd70ac0,0x8521fdc0,0x7d2fecc2,0xcbd70ac0,0x84be4cc0,0xc9dc3c2,0xe210f100,0xf9c28485,0xcdc0814e,0x5ec0cbd6,0x45c284c2,0xac08072,0x75c0cbd7,0xabc284d5,0xc8d4c,0x84cfdd62,0xc2ee0c2,0xd8807100,0x4f61c284,0xf100188f,0x8158c02c,0xc212cfc2,0xc90ba6c0,0x805933c0,0x1bd70ac2,0xccc87ec0,0x84b40dc0,0x931778c2,0xd70a09c0,0x885847c0,0xc0a8a6c2,0xd65f3bc0,0x85165ec0,0x654096c2,0xd70a3dc0,0xf10060,0xc08ec8bf,0xc0d70976,0xc284d7f9,0x188f880b,0x93d4f500,0xc8c28158,0x77c0c2b1,0x68c0c290,0x89c28158,0xd5c0be26,0x92c091ea,0x99c28158,0x10bfeb2b,0x94c0afbf,0x79c28858,0xfebfcb3e,0x92c0a4df,0x5c28858,0xcbbfc3fd,0x60c0cae4,0xfec28979,0xbbc07ab9,0x95c0d489,0xeec2889f,0xc08051,0x4c0ccb9,0xc288ec,0x31c08070,0x27c0dc5c,0x4ec2898a,0x23c08562,0xadc0d522,0xf5c2894e,0x63c08081,0x2c0d2fd,0x30c2890e,0xc8c0abb8,0x8bc0ddd3,0xfcc2885a,0xe0c0af18,0xe6c0d713,0xdc288d6,0x7ec0d5b7,0xa3c0ad54,0x90c288c4,0xa6c0c5da,0xe7c0ad70,0x76c28889,0xa6c0c460,0x51c0ad70,0x5ac2897f,0x5cc0d01b,0x5bc0ab1c,0xc5c288c3,0x73c0c5d9,0xa2c09a3d,0x2ec28984,0x31c0d064,0x2dc09d33,0x2ac2885d,0x75c0cf2a,0x3c9a3f,0x3d7363f2,0x616c09a,0x5a5cc289,0xd628c0d8,0xe1d3c09c,0x5367c288,0x8015c0d6,0xf221c09a,0x7729c284,0xad36c0bb,0x22c0c0d8,0xe9f0c285,0xb63fc0b4,0x1531c0d7,0x5191c282,0x2f8ac0bc,0xf231c0d7,0xdf85c284,0x732cc0c3,0x1dd9c0e0,0xc895c283,0x4756c0c3,0xf22ec0de,0xf3b4c284,0x2de4c0c1,0xb9aac0dc,0xc284,0xf909c0c4,0xdd99c0ec,0x10f1000c,0xc0ea3d73,0xc284ef5c,0xc0cf3331,0xc0e771ac,0xc284f22d,0xc0c763d8,0xc0d1febb,0x18832724,0x1c267500,0x2560c0e7,0xf3001883,0x8158931e,0xf2cc92c2,0xcccccdbe,0x8862f7c0,0xde4021c2,0xcea5b9be,0x8150e2c0,0x4af124c2,0xd70aaa3f,0x814e97c0,0x93c1cec2,0x657c503e,0x4ac303f2,0x9e33f3d,0xc8bdc0d7,0xe741c280,0xa0f4092,0x93f2000c,0x3eae7408,0xc0d70a0b,0xc28858ab,0x40c48a0b,0xc0b0bc92,0xc285e9e2,0x40aff425,0xc0c85804,0xc2885a80,0x3e4d9019,0xc0cbd4a8,0xc2815893,0x3d6121ee,0xc0cbc9e4,0xc2831914,0x40a7c765,0xc0d8c628,0xc2858cf4,0x40c38a26,0xc0b398fa,0xc2858f5b,0x40ce4891,0xc0b79b52,0xc2802560,0x40cf3333,0xc0ab3331,0xc2815896,0x40cf564b,0xc0ab4d66,0xc280255f,0x40c15cc6,0xc0d7d4aa,0xc2802560,0x409dccaf,0xc0d5fa78,0xc2802560,0x40a397ec,0xc0cc5930,0xc27cb127,0x40a342d7,0xc2c54,0x9ddf3b71,0xd6125c40,0x10f30528,0x40947ae1,0xc0b9999a,0xc27ec083,0x408d4d94,0xc095b4e3,0xc27ef542,0x40a609ee,0x3490c756,0xd4821105,0xb914f104,0x7bc27e55,0x95408214,0x6fc0ad71,0x5cc27ce4,0x37404a8f,0xb9c0bd33,0x85c27e55,0x953fa1eb,0x30ad71,0xeb859df4,0xa3d73fa1,0xa1b5c090,0xe92dc27e,0xe0b74003,0x5e91c091,0xf00bc27e,0x3e104007,0x8ef0c0a0,0xf40ac27d,0xb7ce4050,0x541bc08a,0x7ae3c27e,0xac0e4088,0x336ac0a2,0x743fc27f,0x774b404d,0x6979c090,0x51ecc27e,0x70a43f88,0xf27ac09d,0x7c54c27e,0x73e94088,0xcb70c091,0x5001c27e,0xc00c4094,0xb7b8c09e,0x6265c27c,0xda404095,0xa6d9c09d,0x7942c27e,0xd6214094,0xcfdfc0a3,0x7ae1c27e,0xd70a4088,0x697ac0a3,0x28f6c27e,0x999a405c,0x6f86c0d5,0x2a56c27e,0x303c404c,0x697ac0d8,0xb852c27e,0x183fbe,0xee4e00f1,0x303c3ff1,0x6979c0d8,0xa3d7c27e,0x3100c030,0x9c7fe4db,0xdd18f100,0x35c0cc44,0x61c28026,0xa340a7e3,0xa2c0ca3d,0x58c2803f,0xc040abe7,0x9dc0cca4,0x64c28153,0xb840a1af,0x1d4cccc,0xc2ca3a71,0xc1a3bc40,0x4f1000c,0x40c29e86,0xc097d5d4,0xc281597e,0x40bf178b,0x18925001,0x47ae7100,0xae144095,0xf5000c9f,0x9d3d434c,0xc9e983bd,0x89799dc0,0x4ad2edc2,0xc028f6bf,0x8911d0c0,0x7f4928c2,0xc686b8bf,0x8910acc0,0x9e5343c2,0xddd4ed3e,0x8976d1c0,0x9c3ed9c2,0xd3a7763e,0x886834c0,0xa297a2c2,0xcba9ce40,0x8922acc0,0xa03c29c2,0xde553b40,0x7cb127c0,0x97ae14c2,0xcccccdbf,0x140407f8,0x47ae7107,0xcccdbff1,0xf200e4cc,0x1bd70a8b,0xcccccdc0,0x7febb0c0,0x8851ecc2,0xcb91c93f,0x805970c0,0x887ac2c2,0xcc5df040,0x7fe558c0,0x82e14ac2,0xce647c40,0x7fe60bc0,0x75c28fc2,0xce6d5f40,0x7fe45ac0,0x4c28f6c2,0xce666640,0x7fe5a0c0,0x2a8f50c2,0xce6e9c40,0x7fe60bc0,0xf1eb85c2,0xce6d5f3f,0x7fe558c0,0xbeb852c2,0xce647c3f,0x7cb16dc0,0x229100c2,0xd6682d40,0x7fcc3fc0,0x228f5cc2,0xd3e95e40,0x7ef14ac0,0x8f5c3c2,0xd96c7a40,0x7fd1d6c0,0x8f5c3c2,0xd37d5d40,0x48cc3fc0,0x62e80400,0xbeb852a2,0xd666663f,0x54d1d6c0,0x5d00f100,0x75c0d37d,0x2bc27cb1,0xd3fbebd,0xcd7ff,0x91c907f2,0xff0d4032,0x7352c0d7,0x8f5cc27f,0x886e4032,0x67bac0d7,0xf100a8,0xc0d7cf9a,0xc27fd6c5,0x404c2b56,0x24d35da9,0x28f63100,0x8400245c,0xc27fe60b,0xc060a3d7,0x3f200b4,0xc050a3d7,0xc0ce647c,0xc27fe59c,0xc0811eb8,0xf06c85,0x99eb8364,0xd86666c0,0x24a61100,0x5a08f300,0x52c27ee4,0x66c0a6b8,0x6dc0d666,0xb3c27cb1,0x2dc099ea,0x258d668,0x9ac0a653,0xb4d599,0x5dc0a651,0x90d37d,0xb85200f1,0xcf9ac0ae,0xe45ac0d7,0x51ecc27e,0x71003cb4,0xc27e697a,0x3091eb85,0xd277f200,0x48c28062,0x73c052e1,0xddc08a3d,0xd7c27eb5,0xfcc048a3,0x98c091a8,0x7bc27eee,0x4c09259,0xb0c0918e,0xc3c27ecc,0x62c0951b,0x2cc0a1bd,0xd6c27ecb,0xf2c08ce5,0xf0c0965b,0x2cc27cf9,0xf6c09410,0x27c09efb,0xb9c27cb1,0xd5c0c2c5,0x26c09896,0x4ec27cb1,0x28c0bfef,0x8fc0c99b,0x2fc2814d,0xfac0bb86,0xdbc090e1,0x27c27d34,0xdc048a4,0x59c08ea8,0x8dc27ec2,0x42c02708,0x52c0d896,0x22010873,0x15c886e,0xa16a04f1,0xff0dc050,0x3097c0d7,0x1ed4c27f,0xe67c085,0x3100c0d9,0xc091eb83,0xd1d63100,0x400c07f,0x51310198,0x3091ea,0x589308f1,0x7dc3c281,0x3f3a40ce,0x5893c0b5,0x69d1c281,0x437640cc,0xf2000cba,0xc91b9b8b,0xbe924540,0x7cb7b8c0,0x956fdfc2,0xc1717140,0x7cb3dac0,0x8ee51bc2,0xca8b8b40,0x8984cdc0,0xd06641c2,0xaa739b40,0x89135ac0,0xd91829c2,0x9f6bf840,0x88dfabc0,0xd63483c2,0x9a77f540,0x84f225c0,0xbe20e6c2,0xd923db40,0x84f22ec0,0xc3e120c2,0xe069ad40,0x832560c0,0xc3eacdc2,0xe0ac2e40,0x832597c0,0xc6bd30c2,0xcff0cc40,0x84f22dc0,0xcf3333c2,0xe23d7140,0x871db2c0,0xf5c29c2,0x8f23b5bd,0x86f04ac0,0xf5c29c2,0x8cd6f1bd,0x90ef1ec0,0xec03f209,0xb0c08cd0,0xa4c2872d,0x853f1d70,0xb2c07e5c,0xf2000c1d,0x23b568ff,0x2111c08f,0xc4dbc25a,0x6d48411d,0x63f2c0d6,0xcea9c25a,0x678cc11d,0x617c0d6,0xc0a6c259,0x6666c11b,0x8a72c0d6,0x3910c258,0x6682c115,0x373dc0d6,0xb429c259,0x68d9c012,0xe53cc0d6,0xc18bc258,0x6666c010,0xaed8c0d6,0x4239c258,0x6666c00d,0x8fbbc0d6,0xfbdbc258,0x6666c008,0xe94cc0d6,0x1a8c257,0x48883f6b,0x85e5c038,0x16abc258,0x403540df,0x81cc0ba,0xfd4fc258,0x9f58c119,0x55ddc084,0x8063c258,0x6666c01e,0x4766c0b6,0xca2c272,0xa64e40dc,0xd0b6c0b7,0x986ec272,0xc61940dd,0x5f7c0d3,0xf60ac273,0xbf03bfd5,0x1db3c0d3,0xa323c275,0x7377bfa9,0x3c09c0d3,0x4a94c272,0xda9f410d,0x1c28c0d3,0xf16ac274,0x97984112,0x80f5c0d3,0xb484c271,0xf5364102,0xb87ec0d3,0xe9f0c27d,0x406c411d,0xc281c0d2,0x1bfdc277,0x14ea410f,0x6ca8c0d3,0x795dc278,0xfa31410b,0x1c28c0d2,0x5068c274,0x9822c0ed,0x3c48c0d3,0xbf83c26d,0x8d43c112,0xddccc0d4,0xc66ec27e,0x16ff411b,0x4838c0d2,0x8344c27f,0x81c4119,0x75d5c0d2,0x3b0ac27f,0x3414117,0x8325c0d2,0x9df3c27f,0xffe540ff,0x9b95c0d1,0xcb51c278,0xf77340fc,0x81b2c0d2,0x70c3c27b,0x8f28c0d1,0xaa4ec0d2,0x6506c27b,0x895d40d4,0xabf20084,0xc0f4fb39,0xc0d314fd,0xc272e39f,0xc11015c5,0xc0d3c32d,0xc27bca5b,0xc0d47a53,0xc0d284f5,0xc27c1885,0xc0d5a04b,0xc0d27a09,0xc278a336,0xc0ff8506,0xc0d2f5d1,0xc282bea0,0x40d5af9d,0xc0d12a3b,0xc2743180,0xc112bdd8,0xc0d3947b,0xc26ca8db,0xc1151b2c,0xc0d4a236,0xc26f3cae,0xbe755a7d,0xc0d445ce,0xc272ca89,0x3fd0b735,0xc0d3c6bd,0xc2803804,0xc0f3f5ed,0xc0d1ded7,0xc26e96ec,0xbf451eb8,0xc0d45cd9,0xc26ec555,0xbf8ac5a0,0xc0d453d0,0xc27f82f2,0xc0ff6f41,0xc0d1ffed,0xc278b645,0xc1084e32,0xc0d2f300,0xc278d1e0,0xc104cccd,0x84ef24,0xaf9b30f1,0x2a3dc0d5,0x1e53c0d1,0xb0b3c278,0x827c10d,0x8f5ac0d3,0x54fac275,0x63bfc113,0xa55dc0d3,0xe137c26f,0x36fcbfb4,0x2a79c0d4,0x3cb2c274,0x999cc114,0x5ff4c099,0x19cac272,0x71000c10,0xc2713460,0xc04cccd,0x32073500,0x71000c79,0xc2790f2c,0x1808efb5,0x33336200,0xc81ac275,0x9d84003c,0x42c27732,0x24c0edeb,0xa9e53100,0x71002400,0xc271bd68,0x18f99e4b,0x5ff47100,0xffa0c272,0x71000cf2,0xc2753333,0xce9a2ff,0x790cf500,0x5fc2712a,0x9a3e477e,0xfec09999,0x8bc275a8,0x9abe8a88,0x68c09999,0xc6ebd,0x760f2c93,0x2f039c2,0x309abf,0xde0e8431,0x10f5000c,0xc2750672,0xbd82773e,0xc099999a,0xc274329d,0x3dc2a023,0xc099999a,0xc26e573a,0x2483a69c,0xf73c3100,0x71000cbc,0xc275a8fe,0xca27c8d,0x3bed3500,0x71004873,0xc2723333,0x846a5871,0x34602200,0x90020180,0x7803f200,0xcca73c2,0x99999a41,0x7333cac0,0xedeb42c2,0x51006040,0xa9e5c271,0x3001800,0xc01012c,0x1080300,0x71002401,0xc278a8fe,0xcf99e4b,0x1140300,0x3002401,0x180100fc,0x48d2a200,0x9251c271,0x8cfa40db,0xb5310024,0x2408ef,0xb181ff2,0x69e7c27c,0x90edc11f,0xeff9c099,0xf250c271,0x6332c0d6,0xb906c099,0x8705c278,0x440dc0d6,0x556ec099,0xca04c276,0x33df3f2e,0xfff100c0,0xffffffff,0xffffffff,0xa0556eff,0x976c3f88,0x3c6c096,0x4c1fc274,0x76623f88,0x24c8c094,0xce21c277,0xb0e03f1f,0x9e52c094,0x8abc278,0x1a7a3cb7,0xceb2c099,0x645ac278,0xb6133dbb,0x73ddc094,0x8156c279,0xdad3bf46,0x5605c097,0x1adac279,0x976cbea9,0x5cbdc096,0x2b45c26d,0x3be63f0b,0x810bc099,0x2c34c26b,0x50abbe06,0x63fdc098,0x11dcc26c,0xcc2d3e6e,0x47e8c098,0x7b74c26d,0x9a613f21,0xca94c094,0xc205c270,0xaf213f7e,0xef7ec098,0x6384c270,0xd641c020,0x35efc098,0xa8a8c26f,0x50d3c016,0x2f89c099,0x9186c273,0xaaedc027,0x9886c096,0x69ecc279,0xad69bf7f,0x664c094,0xeaac26e,0x976cc012,0x5d12c096,0xa099c26d,0x449ec008,0x4d08c097,0x2e0ac26c,0x5f85bfe4,0x403dc099,0x6c51c26d,0xb9b6c00a,0x9a05c094,0x18cac26c,0x8a52c000,0x8d11c094,0xdf37c26b,0xa59cbfd0,0x2253c094,0xd95ac26b,0x6584bf9a,0x7267c097,0x6e59c279,0x3e94bf7d,0x13c1c097,0xcf9ac279,0x36cabf9b,0x8a98c099,0x80e9c277,0x733dbffa,0xf6e9c098,0x6f1ec273,0x58efc022,0x2f7ec097,0xcf1cc27a,0xaf86bf37,0x310c037,0xcf35c279,0xaecdbfe1,0xf9f3c037,0x1de2c26c,0xae21c010,0xb05bc037,0x31f4c276,0xae60c019,0x4eb6c037,0x7810c26b,0xae14bfda,0x5e6cc037,0x5dd9c26a,0xae14bf60,0xfdb7c037,0xfc9cc271,0xaeef3f9c,0xf734c037,0xdad7c26a,0xae19bbfb,0xdfaec037,0xa93bc26c,0xaea33f37,0xb1bdc037,0x738ac278,0xae3a3eb4,0x996bc037,0xafd7c27f,0xae4bc11a,0x6741c037,0xb0f2c27d,0x9670c11f,0xbac8c037,0x9eec258,0xa4e8bfc0,0xb488c037,0xb0f2c26e,0xae4f40e5,0xc20dc037,0x432c25d,0xae32c005,0x6274c037,0x81b3c258,0xae47c11a,0xc8d0c037,0xf5bcc25d,0xae10c108,0x4410c037,0x9ebac271,0xac8ac084,0x33d3c037,0xbbf1c26d,0xae14c11d,0xd557c037,0xd93ec26c,0xae14c11e,0x73efc037,0x4613c267,0xae143fa9,0x54b3c037,0xc64ac26d,0xae10411c,0x9c59c037,0x55c5c267,0xae104108,0xc9ccc037,0xe470c26c,0xae19411e,0xe397c037,0xe62ac268,0xae19c04c,0xf8ddc037,0x8751c275,0xae04c09d,0xfd75c037,0xb615c274,0xaf36c0c9,0x5e72c037,0x9eec276,0xae08c09a,0x158dc037,0x225c267,0xae14c02a,0xd343c037,0x3f18c265,0xae1dc006,0xc5a7c037,0xe82fc25d,0xae584108,0x7673c037,0x4c01c265,0xae10c002,0x64f9c037,0xa738c258,0xae19411a,0x316fc037,0x8a61c276,0xae1d4021,0xce04c037,0x9054c26d,0xaeefc0f1,0x32ffc037,0x51c6c273,0xae14c09f,0x8736c037,0x1e45c271,0xae10c0a2,0x1e53c037,0xe564c270,0xadb44025,0xccbbc037,0x2c91c26c,0xae25c0b4,0xb58dc037,0xa711c270,0xae4bc0d5,0x4e80c037,0x475ec264,0xae14bf82,0x256bc037,0x412dc265,0xb0533e36,0xc804c037,0x1e00c25d,0xae1d3e91,0x39b9c037,0x8a48c269,0x6fc1c0ca,0x4ed5c089,0xf3dc275,0x801dc097,0x6709c089,0x3496c26b,0x9fc3c0b3,0xde0cc089,0x67c7c266,0x953840fd,0x597bc089,0x6b48c26f,0x70b54030,0x36eec089,0xaae0c267,0xfee1c107,0xc34dc086,0x8c15c271,0x88f2c09f,0xc7e0c083,0x9ac8c270,0x5588c0a1,0x7fe9c085,0xfb7fc26f,0x88f2c0a5,0x6cdec083,0x20f7c26e,0xf638c0aa,0xa053c084,0xccdec26c,0xfbccc0b3,0x258ac084,0xf384c26a,0xaa78c0c7,0xdc75c084,0xd246c267,0x976cc0ec,0x73b5c086,0xe267c267,0x49b4c0ec,0x2cc2c089,0x663ac269,0x2c84c0d2,0xa690c087,0xb73dc26a,0x15ffc0c1,0x5c14c087,0x3856c26c,0x262dc0b4,0xa339c087,0xe823c26c,0xb61cc0af,0x7313c088,0x1b2cc26f,0x976cc0a5,0x6576c086,0x2d47c26f,0xd7a8c0a4,0x84c2c087,0xd593c271,0x7eb9c09a,0xdeecc089,0x4d16c272,0xcc2dc09a,0x1decc088,0xe871c275,0x5f48c09a,0xc50cc086,0xf553c275,0x5ac4c09a,0xafb2c084,0xec78c275,0x3403c099,0x9211c087,0x23adc275,0x5252c096,0x7ae8c089,0xebd9c275,0x3891c087,0xcf89c089,0xe00c275,0x626dc089,0x4334c088,0xdc83c275,0x3882c084,0x9fa7c087,0x7b57c267,0x88f2c03c,0x9be9c083,0xd9ecc269,0x4902c05c,0xfc3cc084,0xd36bc26e,0x41adc083,0x900fc085,0x8798c271,0x5c77402b,0xf33ec086,0x9d3dc26b,0xcc2dc07b,0x4e63c088,0xa8f4c267,0xcc2dc040,0x9bcdc088,0x3dd9c265,0x6dd2c00c,0xd396c086,0xc39cc266,0x976cc02e,0x158cc086,0xc4a8c26a,0xa05c064,0xb429c087,0x1d54c271,0xd7a8c088,0xce52c087,0xffcec26a,0x656bc074,0x6f00c089,0x5040c26f,0x4400c088,0x4faac089,0xa459c268,0x976cc04b,0x25ffc086,0x503c26d,0x976cc07f,0xf41c086,0x3051c274,0xd7a8c087,0x7fc6c087,0xc1cac267,0xf31dc03b,0x1a0ac085,0x7608c26d,0xd7a8c080,0xf80dc087,0xfbf8c267,0x656bc050,0x9d7cc089,0x3a26c265,0xecd9c00c,0x781cc084,0x62aac265,0xe792c008,0x35f1c084,0xef46c265,0x77e0c006,0x33acc085,0x110ec265,0x1b9bc00e,0x6d49c089,0xf1b7c25e,0x5269c011,0x1d40c089,0x520cc25e,0x80d8c107,0x2e1c087,0xa16ec25e,0x4a4b3fbd,0x734fc086,0xd866c267,0x7f263fb6,0x8238c087,0x28e2c267,0x1e44101,0xb750c085,0x31a5c267,0xfc5740f5,0x458dc084,0x42f9c267,0x9d304105,0xc204c0a3,0x6093c26b,0x3e1240b9,0x30a0c085,0x1980c267,0x73364105,0xed67c0a5,0x88c7c266,0xe2c14101,0x42f8c0a7,0x6afec25e,0xeb874100,0x2ddcc0a8,0xceb5c267,0x8aa44100,0xbeb1c0a3,0xe9b4c266,0x47bd40fe,0xfb72c0a3,0xb72ec266,0x722240fd,0x3583c089,0xa8c8c267,0x920440fe,0x7404c088,0x108ac26e,0xcd3640a9,0x648ec086,0xfa85c26b,0x261440b7,0xdbb4c089,0x8866c263,0x890dbf5b,0x880fc0a7,0x9f5ac25e,0x134dbf5a,0x2762c0a8,0xcf31c25e,0xffbdbf46,0x7462c0a5,0xafa3c264,0xce3e3e00,0x91e8c0a3,0x7058c264,0x5c553d7f,0x310bc0a4,0x415fc264,0x999e3e0a,0x7126c0a7,0x419c264,0x78c43d56,0x215c0a6,0x195fc280,0x47ebc102,0x8a30c083,0xcdb3c27e,0x187ec11f,0xaf90c084,0xdc21c27c,0x48edc11f,0x9afbc093,0x78bfc26d,0x6be8c11f,0xa30ac096,0xc72cc26d,0xb3c6c11e,0xaabec093,0xdfebc26d,0x54b7c11e,0xd374c095,0xc090c26d,0x6519c11d,0xc95c096,0x5678c26e,0x391dc11f,0x69d5c099,0xb9e2c273,0xb702c0cf,0x25d4c094,0xbf59c275,0x3372c0cd,0xe4d0c095,0xbe8ec277,0xc265c0d1,0x14cac094,0x5b62c27a,0x5ffcc0dc,0x5a5fc095,0xf8c8c27b,0xbc17c0e7,0xd0c2c094,0x2631c27b,0xb04dc0ee,0x2cb3c094,0x95b1c27c,0xa557c0f4,0x10fcc094,0x11c5c27a,0x30c6c0de,0x9f34c097,0x714c27b,0xeaeac0f1,0x327ac098,0x7ba4c27b,0x571fc0e8,0x2c64c097,0xaf0ac27c,0xcecfc0f9,0x3a12c097,0xa34c27c,0xcd12c102,0x6b8fc098,0x6e6c27c,0xada3c102,0x8eaac097,0x5095c27c,0xca19c101,0x49fcc095,0x6625c26e,0x4e0c0fa,0xe76ec099,0x41a4c26d,0x976cc101,0x2253c096,0x8744c26e,0x658ac0fb,0x82bcc097,0xc4e5c273,0xcc2dc0d2,0x6573c098,0xc7fec274,0x68c0c0d0,0x73cc098,0x781c276,0x656bc0d3,0xd20bc099,0xb389c258,0xeabac11e,0x9b1cc081,0xb198c27c,0xc36e411f,0x9cdec096,0xf799c26d,0x20f3411e,0xd463c094,0xcaf8c26d,0x7215411d,0xfab1c096,0xb73fc276,0xbfa740cf,0xb1d9c094,0xc77cc274,0x8e5240cd,0xf6e8c095,0x5db5c26d,0xbf9440fb,0x8418c094,0x1e84c273,0x7eb940d2,0xc80ac098,0x411cc274,0xd82e40d1,0x84dfc098,0x5489c270,0xcc2b40df,0x1d9bc098,0xdb0c26f,0x656940f0,0x304bc099,0x3620c26e,0x71a240f7,0x74a3c097,0xff69c26e,0x40db40fb,0x8f85c099,0xe722c27c,0x826d4101,0x1ea5c096,0xa592c27c,0x78f940fb,0x7e43c098,0x6172c27b,0x5a1840ee,0x6b45c098,0xa872c27a,0x528940e1,0x7c53c098,0x693cc277,0x44f240d3,0xf950c099,0x6bfac27f,0x60544119,0x303cc083,0xf3a7c27f,0xeec4411e,0xff7fc083,0xfa98c282,0x4a9fc0cf,0xffacc084,0x7a3c282,0x5f1140d0,0x30e9c084,0x2674c27c,0x5cf040cd,0x6107c084,0x18a2c27c,0x17a940d1,0x46b1c087,0x7925c26c,0x594bc114,0x596dc0bb,0x5fc4c26d,0x6666c0cd,0x3ac0b6,0xca51c26d,0x6666c0ce,0x99b9c0b6,0x9989c258,0x6666c020,0xac6bc0b6,0xb318c272,0xe94f40da,0x9bc8c0b9,0x330dc258,0xf4b03fd2,0xf968c0b7,0xf1bc258,0x860cc017,0x7092c0b9,0xdafdc258,0x8d61c013,0xbb6c0b8,0xb978c259,0x3d8ec015,0x7956c0bb,0xb0f2c258,0x6666c01f,0x13f5c0b6,0x8fd6c278,0xc722c0ce,0xe184c0b7,0x1ac3c277,0x1cb2c0d2,0xd9b3c0ba,0x1f7c26c,0x118ec113,0xfc46c0b8,0xca8c274,0xeb12c10e,0x6d9c0aa,0x1b0ac273,0xbf2c108,0x15b9c0e1,0x4e22c277,0x7273c10f,0xf828c0a7,0x12cfc272,0xc083c102,0x12c0c0df,0x1d65c276,0xc850c111,0x3986c0a6,0xe42ac277,0x47c3c0f4,0x353ec0c0,0x636bc277,0x98d7c100,0xf1dac0c4,0xb8e8c271,0xb209c106,0x60d7c0da,0xb3c9c274,0x4083c111,0x708dc0a5,0xbd7bc277,0x1a7ec102,0xeebec0c4,0x4ac7c277,0x7fe7c0fc,0x77b0c0c0,0xeea7c277,0x48ebc106,0x4f1ec0c3,0x84f5c278,0x197c101,0x6667c0c0,0xf30c1878,0x800083ff,0x70b9c0bf,0x781c272,0xc891c0fb,0x9c01c0d9,0x16e9c276,0x14d3c10c,0x59fc0c2,0xa990c273,0xaf49c101,0x5059c0a7,0x797ec277,0x50c10e,0x506fc0be,0xff3ac275,0xfc09c10d,0xef76c0c0,0x8b4cc273,0x378bc0f9,0xa062c09a,0x438bc276,0x7ea2c110,0x13fcc0bd,0x2980c277,0xff0dc0f4,0x8118c0d6,0x8a94c275,0xda0cc111,0x5e3ac0bc,0x35cac275,0x6c8dc0f7,0xc366c0a5,0x6d5c273,0x9d9bc10c,0xe487c0c0,0x89e3c274,0x8d3fc111,0x8417c0bc,0x8fd7c277,0xb3b7c105,0x33edc0da,0x5964c274,0xbccc0f0,0x5c6ec0a0,0x73bac273,0x845ec0fe,0x5527c0f5,0xddec272,0x1d5ac0fc,0x5cec0f0,0xd3efc277,0x1c24c0fd,0xe8c9c0a4,0xcccdc272,0x199ac104,0x1cfdc0be,0x9541c276,0x640c10d,0x1188c0d8,0x28d4c274,0x26fec0f1,0x32bc0ef,0x2899c272,0x1f45c106,0xde66c0ba,0xdbf2c277,0xe18fc10b,0xc79ac0d4,0xdf44c275,0xdc4dc0f7,0x4f8ac0f2,0x7cadc277,0x69a7c10e,0x7c6cc0d4,0x4e5cc277,0xc663c105,0x9100c0a2,0xa3c6c275,0x3cbac0ef,0xb08c0ee,0x8acfc272,0x913cc102,0xa062c0b9,0x438bc276,0xe508c110,0x387c0d3,0x70c6c277,0x86adc10a,0x12c0c0a1,0x1d65c276,0x951cc111,0x6a00c0d3,0x74a2c274,0xae4dc10d,0x1495c0d6,0x2b2ac277,0x6760c0f4,0x43c3c0ed,0x3c5ac275,0xec0bc0f7,0x888c0bb,0xa5fbf201,0x16c0d2f3,0x4dc27828,0x87c0fe93,0xc1c0ec34,0xa3c27772,0x18c106a3,0x6ec0f0c1,0xe1c27666,0x5ac10c9a,0x3ac0a046,0xb0c275c6,0x4cc10db7,0x94c09fc4,0x26c27689,0x41c0fab5,0x8c0bad6,0x55c272f4,0x2dc10744,0x56c0d507,0xd4c27871,0xd6c1078d,0x96c0eb7e,0x55c27602,0x25c0f059,0x50c0b5cb,0x33c2750e,0x47c10df2,0xd8c09f30,0xc5c276ad,0xacc10bf8,0xecc0ef73,0x3ec2723e,0x8bc109d5,0x8fc0d10a,0x8cc2747b,0x67c11197,0x59c099d3,0xc27780,0x94c1030b,0x54c0b997,0x98c272f5,0xbfc102ea,0x45c0d41d,0x1ac27411,0x1ec10cea,0xaec09eff,0x18c272ff,0xc0c10817,0x52c09dde,0x29c27212,0x30c1021c,0xa1c0cfe8,0x14c27271,0x43c0fb86,0x40c0cea0,0xf9c27714,0xc10a24,0x28c0b847,0x6ac27409,0x7dc0f0ec,0xd8c0cd78,0x19c27613,0x23c10d65,0x23c0b72f,0x2cc273df,0xf0c10c3d,0xf201206c,0x3c4f7cff,0x5256c0f7,0x16d0c0d2,0x38fdc278,0x947fc10b,0xdd63c0b2,0xf49fc273,0xee1cc110,0xe8f0c0e7,0xd19ec276,0xfa98c0fc,0x2c5c0d0,0xbac5c273,0x3f10c107,0x7b01c0ec,0xd213c276,0x975bc110,0x77d1c0b1,0x8ae7c274,0xbd4bc10d,0x452ac0b5,0x9b54c272,0xbf55c10a,0x26fc0e6,0x19cec272,0xe302c106,0x110fc0e6,0x2e51c273,0x240bc101,0x1d70c0ea,0xf07ac272,0x1bd4c100,0x469bc0e6,0x8beac274,0x6903c111,0x5befc0b0,0x5cabc273,0xb569c10a,0x3b1cc0b4,0xee54c278,0xc233c0ff,0x7eddc0ca,0x372dc277,0x9a5dc105,0xef30c0cf,0xdb84c276,0x55efc10a,0x701fc0ce,0x127ec278,0xa210c107,0xf143c0c9,0xb9e6c271,0xe721c106,0x4c4ac0ad,0x703bc276,0xd56bc0f9,0x33c2c0e7,0x763ec272,0x504ec0ff,0x76c4c0ad,0x1d36c273,0x4263c10b,0x7dc6c0cb,0x42bac277,0xf9fbc105,0xc7b1c0e5,0xdf74c275,0xa907c0f7,0x63c8c0af,0xfc13c275,0xd1adc0ef,0xc756c0ab,0xe220c276,0x7180c0fb,0x812bc0af,0x1c79c278,0x2d23c106,0x88c7c0e0,0x6524c272,0x8e5ec10c,0xae56c0c5,0x1a73c276,0x7b31c10c,0x2e08c0e4,0x841dc277,0xd12bc0f4,0xb83fc0a9,0xfba2c273,0x7981c0fa,0x15a3c0c8,0xc8cfc277,0xb595c10f,0x508fc0de,0x9ac5c278,0x9cd6c101,0x7dd1c0a9,0xce11c274,0xa374c10d,0x6667c0e2,0xfff210b0,0xffffffff,0xa9199a08,0x7777a6c0,0x6d972c2,0xace4b0c1,0x769f33c0,0xc0cabc2,0xabb580c1,0x7531d1c0,0xf760e3c2,0xc73c10c0,0x75fb58c0,0xd69e5c2,0xab1b97c1,0x7635ebc0,0xd05d6c2,0xa1823dc1,0x7a096cc0,0x15907fc2,0x99999cc1,0x705611c0,0xe71ee0c2,0x9999b5c0,0x6efe58c0,0xc89e7c2,0x999a5dc1,0x773febc0,0xd7fef1c2,0x998a69c0,0x7acae0c0,0xee92c5c2,0x999965c0,0x71205bc0,0x18e4c0c2,0x99a229c1,0x77b363c0,0x2c60ec2,0x999646c1,0x753920c0,0x1f1b5ac2,0x999c32c1,0x7b91e1c0,0x1fb2ac2,0x9999a2c1,0x7b956dc0,0x6a054c2,0x99999cc1,0x77be3cc0,0x8c920c2,0x99996ec1,0x7a9583c0,0x12a3f2c2,0x99999cc1,0x77b1a5c0,0x1c9202c2,0x76f998c1,0x7b89b8c0,0x13e8ac2,0x800000c1,0x7af527c0,0xf33eb4c2,0x78f8c2c0,0x7b0f10c0,0x1012e6c2,0x80090fc1,0x76a4cac0,0xe1e1e7c2,0x625d20c0,0x778779c0,0x193f61c2,0x669cdcc1,0x76bf34c0,0x1bef03c2,0x6c850ac1,0x7b71e5c0,0x5cdafc2,0x739292c1,0x769af1c0,0xe3025ac2,0x60ac97c0,0x795009c0,0x1697fac2,0x6b22f2c1,0x7890dec0,0x1022acc2,0x600000c1,0x7b4b75c0,0xfce41dc2,0x75782dc0,0x74681ec0,0xd729e3c2,0x742175c0,0x797123c0,0xf4337dc2,0x6169f0c0,0x79ea79c0,0x112d41c2,0x66b90fc1,0x7a40bfc0,0x13e86ec2,0x760310c1,0x75467ec0,0x19ea10c2,0x63280bc1,0x76a6c8c0,0x1a81cec2,0x669cdcc1,0x6fe4a7c0,0x6049ac2,0x626b76c1,0x72d6a6c0,0x1c66dec2,0x750460c1,0x6ee5b3c0,0x1ac8dc2,0x749c20c1,0x718da6c0,0xec5584c2,0x626f93c0,0x716167c0,0xd898dc2,0x600000c1,0x713beec0,0xe9c5b0c2,0x669cd8c0,0x702faac0,0x102eadc2,0x67a48bc1,0x7187bdc0,0x13571ec2,0x626f97c1,0x710de8c0,0x17a7fac2,0x706a62c1,0x7201e9c0,0x1753d2c2,0x669ef9c1,0x7303f8c0,0x171ae1c2,0x61825ac1,0x74ccd1c0,0xdcc61bc2,0x669cd8c0,0x771b8bc0,0x4cd8cc2,0x5fffebc1,0x756cf0c0,0xf179bc2,0x600447c1,0x72d86ec0,0xff405bc2,0x6000bdc0,0x778b6bc0,0x948acc2,0x5ffed2c1,0x74cffac0,0xf62772c2,0x600000c0,0x75329bc0,0xf49e28c2,0x5ffbb5c0,0x734fe3c0,0x4d2ccc2,0x5fffa4c1,0x72d559c0,0x9a26bc2,0x6001e2c1,0x735143c0,0xb0781c2,0x600000c1,0x72e452c0,0xfe9ce7c2,0x8332d5c0,0x7621d4c0,0xfcb7b3c2,0x833331c0,0x7449dbc0,0xfc4ed9c2,0x833359c0,0x74ef17c0,0xf559fbc2,0x833333c0,0x752fd2c0,0xf3648c2,0x833333c1,0x762624c0,0xb53fac2,0x8332e1c1,0x744fb6c0,0xbb410c2,0x8332b3c1,0x757753c0,0xeec98c2,0x833333c1,0x75a18ec0,0xe493bc2,0x833333c1,0x753695c0,0xf4c6a4c2,0x833333c0,0x7611e7c0,0x111e2dc2,0x9a2cb8c1,0x76b10cc0,0x101ffbc2,0xbc2941c1,0x75c8acc0,0xda95dc2,0xa128edc1,0x769251c0,0xc251ac2,0xc3715ac1,0x76b10cc0,0x101ffbc2,0xd28fa8c1,0x763484c0,0xd089dc2,0xc31b7ac1,0x751a0ac0,0xdff6dc2,0xc22bf7c1,0x764048c0,0xf9515fc2,0xf3daa9c0,0x76936ac0,0xc21afc2,0xd9d6c3c1,0x720bb6c0,0x71a8dc2,0xb8d571c1,0x751a0bc0,0xdff6dc2,0xd8925ec1,0x731a81c0,0x87cc8c2,0xc03c4bc1,0x72cb37c0,0xdcadfc2,0xf24925c1,0x72e929c0,0x4d8efc2,0xbf7b57c1,0x735362c0,0xa11b7c2,0xd6fdd6c1,0x731a84c0,0x87ce6c2,0xd6a2a9c1,0x750724c0,0xeff970c2,0xaa9618c0,0x71fee0c0,0x54668c2,0xe55d64c1,0x75c3b5c0,0xf064d8c2,0xaa34c8c0,0x720dd1c0,0x26a9ac2,0xe4fa35c1,0x72f572c0,0x2befdc2,0xd57f22c1,0x7281bec0,0xfbc609c2,0xe45042c0,0x7587f1c0,0xf77781c2,0xb143e5c0,0x786667c0,0x4cccdc2,0xa7b337c1,0x781812c0,0xfeac97c2,0xbee538c0,0x7856d4c0,0x225d3c2,0xbe7eaec1,0x777121c0,0x6d792c2,0xae518dc1,0x76b10cc0,0x101ffbc2,0xa5c2dbc1,0x762e24c0,0x10fbf2c2,0xa570a2c1,0x77ae8fc0,0xce7cbc2,0xbce471c1,0x772a06c0,0xee78bc2,0xbc7d1ec1,0x76928bc0,0xc2455c2,0xad0b31c1,0x775c25c0,0x8cf72c2,0xf9a301c1,0x72cdc5c0,0xbb89c2,0xf87918c1,0x74ef54c0,0xf54b0ec2,0xf64dafc0,0x750da8c0,0xf73d6cc2,0xf999cac0,0x7731d3c0,0xff486bc2,0xf99f04c0,0x7405a4c0,0xf9c6bfc2,0xf5a433c0,0x72e0a5c0,0x6f6aec2,0xf8091ec1,0x7338c3c0,0x997c4641,0x73898b3f,0x17db23c0,0xcb0a3d41,0x7147ae40,0x73aa46c0,0x9ddd2b41,0x188041bf,0xc308f500,0xaec0c4f5,0xdcc07147,0xd2416c79,0x89bf0152,0x91c07143,0x30bbed,0x24e55af3,0xf624189,0xeea23fd3,0x1c6fc073,0xfd824190,0xfd223f67,0x548ec073,0xea18416d,0xfe3b3f1c,0xbcb7c073,0x87404185,0x826bbfdf,0xa870c073,0xd042418e,0x89dbbf91,0x59adc073,0xcce24191,0x8512bf0b,0xf88cc073,0xddd74191,0x87ba3dfc,0xd176c073,0xf0954182,0x87ec3fe0,0x777cc073,0x8030417b,0x90633fca,0xa3d7500,0xc28f40cb,0x35009c75,0x9075c28f,0x8f08f100,0xbec075c2,0x29c1709f,0xc3c0eb5c,0x5bbf88f5,0x48c11ba4,0xc6d6a,0x28ff28f1,0xa2f9c137,0xf5c3bfe7,0xe17abf88,0x386141b0,0xf5c33d97,0xd348bf88,0x3201c13d,0xf5c3beac,0x76bbbf88,0x20ae419c,0xf5c34097,0x863bbf88,0x67b241a6,0x44000c64,0x4258cdd3,0x91710054,0xca4183ed,0x18b3fb,0xd82f6671,0x88c389c0,0x63710060,0xfc416648,0x18a76e,0x2d0cfa71,0x342d51c1,0xf971000c,0x64c11527,0xc7d95,0xb5b67871,0x4525ee40,0x4f10084,0x40b14561,0x3eca0924,0xbf88f5c3,0xc04e0c7c,0x90864e48,0x1104f100,0x1ac05c37,0xc33fa9a5,0x2dbf88f5,0x78c080af,0x3c207e,0xc20e9771,0x96a7f040,0x80710018,0x4fc0a474,0x1865e5,0xd8f42a71,0xbf26af40,0x12710018,0xc4414bbd,0x908588,0x5e636a71,0x9f1aeb41,0x4f1000c,0x410219e3,0xbf85edfa,0xbf88f5c3,0x41316b93,0xcc02c13,0x1bca7100,0x74a34108,0x7100fc49,0x41069c91,0x48148b22,0x78907100,0x17e40f7,0x71000cad,0x413967a5,0x6c2fb802,0xd1c77100,0xb63414a,0x3000c84,0x9f10084,0x823d73c0,0x3d5bc0c0,0xe93e1dc1,0x823d73be,0x85ab34c0,0x2c5101c0,0x8030018,0xc0101,0x1527f971,0x7d955fc1,0x10f1000c,0xc11f053c,0x4065e558,0xc0823d73,0xc059cf9a,0x3fa4f556,0xc0823d73,0xc083d912,0x1827ab11,0x417100,0x209fc0a1,0x3000c61,0xc010168,0x26047100,0x15c6c109,0x4000c86,0x73b101ec,0xc9c0823d,0x6141b0be,0x849650,0xf59ba671,0xb0000041,0x5371006c,0xe041adc9,0xc064a,0x101d403,0x9271000c,0x294183ed,0xcb3b0,0x99e48e71,0x9ce70641,0xec040054,0x3d73d101,0xcdd3c082,0x4238,0xc7140b0,0x42585100,0xcf170a4,0x9fbe4400,0xcc170,0x489012,0x3001801,0xbfc101a4,0xc0823d73,0x40b0a596,0x90b1802c,0x1a40300,0x71001801,0x415bed28,0x789ce702,0x1680300,0xf1001801,0x812bd04,0xb1800a41,0x823d733e,0x3a9616c0,0x37e76441,0xdb710090,0xd2414902,0xc800a,0x3cf410f1,0x9347419e,0x66664044,0xf296bfa6,0x7aa241a4,0x66663fe5,0x97bbbfa6,0xdd2f41a7,0xf1000c1c,0x9a61fa10,0x614d0a41,0xa6662c40,0x533c5ebf,0x44934741,0xa66666c0,0x86627dbf,0x8faa1141,0x971000c,0xf6417935,0xc8cfc,0x9fda8671,0x35c0db41,0xad71000c,0xa5419aa5,0xc5f67,0xab551271,0x7b641f41,0x6071000c,0xc8412414,0x606e95,0x76f8ac71,0xc6c06a41,0xee710084,0x2441b37f,0x24052b,0x9dac04f1,0x13b641b5,0x6666bf87,0x65cdbfa6,0xd53f415f,0x710024b8,0x4186c103,0x24c94869,0x1a203500,0x71000c81,0x413684dc,0x246e7f63,0x3a287100,0xb31a4152,0x710024aa,0x4149021b,0xc9d9e04,0x90f17100,0x8d8041a7,0x7100248e,0x419ebe0f,0xcaab31a,0xaa04f100,0x5f41b57a,0x66bf9708,0x83c00666,0x1841b3d4,0xcfbb5,0x34110f1,0x92b04167,0x6666c0be,0xb0f2c006,0xf7554156,0x666640af,0x4811c006,0x410d4161,0xf4000cba,0x49638eff,0xd53041b4,0x66663fe2,0xec57c006,0x8ce73fc5,0xb115c0aa,0x8299c1a4,0xffff4001,0xd21cc150,0x6df8c1a2,0xffff3f1c,0x58a0c150,0xd62cc1a6,0xffffbfbe,0xc2f0c150,0xa948c1a4,0x33f4bfb8,0x548ac08b,0xd7fec19c,0xfffa413c,0xbc1c150,0x2032c15f,0xfddc3f97,0x64cac150,0xde2dc152,0x40d5,0xeef6c151,0x3333c0ab,0xc0d3,0xc151,0x2fecc0c0,0xfe3f3f9f,0x807dc150,0x1d7cc196,0xf75e4148,0xffccc150,0x9fe8c081,0xfeafbea8,0x7673c150,0x681bc198,0xfddcbff0,0xd646c150,0x9783c158,0xfb154104,0x8033c150,0xc537c105,0xf7f4c03e,0x411dc150,0x9f7dc187,0xf8a0c12c,0x881cc150,0x7777c0f5,0xfc37c148,0x47a4c150,0x564fc086,0x31dc133,0x685ec151,0xc0a0,0xf8abc110,0x6676c150,0x8f9ac107,0xffffc134,0x77a3c150,0x923ec165,0xfe3fc037,0x3f71c150,0x614cc16e,0xffffc146,0x865bc150,0x61b7c14e,0xffffc13f,0x7b00c150,0xbafec15b,0xfe39401b,0xefe0c150,0xf0e9c18e,0xfe7f401e,0xf967c150,0x8531c162,0x3112c121,0x735ac13c,0x454ac0c5,0x2c5dc11c,0x3e7dc13c,0x2cd6c0da,0x2762c0fd,0xe69dc13c,0x76c0c0c8,0x1c41c112,0xde96c13c,0x8e0fc09c,0x3333c103,0x1c20c133,0xcccdc0a7,0x3333c118,0x8412c133,0x71f1c0a1,0x3333c11c,0x1c20c133,0xc0a7,0x3333c134,0xccd1c133,0xc04c,0xc4134,0x8e2300f1,0x33334114,0xffdac133,0x8e0fc09d,0x71000c03,0xc0d8e3e3,0xc48cccd,0x3100,0xb100e490,0xc1333333,0xc0e33333,0x183e6666,0xf25a7100,0x6229c057,0xf1000c39,0x4fa29004,0xfdffd8c0,0x33333340,0xc91c45c1,0x42b534c0,0x34840018,0x34c0652b,0xcc142b5,0x175d3100,0x35000c48,0x78853bb0,0x282cf100,0xcdc0e200,0x9ac148cc,0x19c0d199,0x7cc12bfd,0x9a4148c5,0x9ac0d199,0x52c14199,0x5fc13cc1,0x5fc0aac4,0xaec15ecb,0x31c14605,0xa5c0ab33,0x6ac14f87,0x31c138c1,0x248b33,0x38c16a44,0x71000c41,0x4148c57c,0x18ab3331,0x4afff400,0x4102952c,0xc1509b9f,0xc06ec45d,0xc141ff91,0xc1503d01,0xc061414e,0x41205527,0xc13c2e14,0xc0b228d8,0x4118d0d0,0xc13c288d,0xc0a0ac1f,0x4100c051,0xc13c2c5d,0xc0d2ff82,0x41099a6e,0xc13c314a,0xc0e112de,0x4112ba8b,0xc13c314a,0xc0e30a16,0x411d1f3f,0xc13c2c5d,0xc0d88a91,0xc022ba6f,0xc148bcf6,0xc17aa4e6,0xc0002cd8,0xc148fb8f,0xc18ce7f7,0xbf6d8330,0xc148fb90,0xc1933020,0x3fce7f99,0xc148fb8f,0xc1900598,0x400d7c28,0xc148ffff,0xc18a35f7,0x4022f0cc,0xc148db7d,0xc1827b28,0x40182a80,0xc1491851,0xc16ff830,0x3fc3cf89,0xc14917e7,0xc15eea9f,0x3f2922c9,0xc148ffff,0xc1588c6b,0xbfccf87b,0xc14917e6,0xc15fcb8b,0xc00d7c28,0xc148ffff,0xc16b9413,0x4023badc,0xc0bb999a,0xc182b1c5,0xbf2922c9,0xc0bb999a,0xc1588c6a,0xc0235f70,0xc0bb999a,0xc1800000,0xc017ab75,0xc0bb999a,0xc187da5e,0xbfce872b,0xc0bb999a,0xc190062d,0xc258c435,0x40e05c8e,0xc0d669ad,0xc258bb52,0x411a0b13,0xc0d666a5,0xc2593420,0xc012a8ce,0xc0d66666,0xc2593333,0xbfbeb852,0xc0d66666,0xc2588b88,0xbfc08db9,0x3f20018,0x3f63d70a,0xc0d66666,0xc258c48a,0x3fc65508,0x246a46,0x6781e931,0xfff20018,0x590c0b10,0x1f6fe6c2,0x833c7741,0x5863ffc0,0xc4e536c2,0xb99e9b3f,0x5855ddc0,0xd963a6c2,0xb6666640,0x585766c0,0x137ae4c2,0xb74850c1,0x58677ec0,0xdc5912c2,0xb740ba40,0x5899b9c0,0xd85713c2,0xb6666440,0x77d662c0,0x136d87c2,0xd31243c0,0x75e677c0,0x239607c2,0xd35847bf,0x7860b2c0,0x197efec2,0xd2fee7c0,0x6d6c28c0,0xd5a3a9c2,0xd4864dc0,0x7676ebc0,0x127ee5c2,0xd3438b41,0x786ca2c0,0xb7960c2,0xd2fd4141,0x733c6ac0,0xf086c8c2,0xd3b72e40,0x723c09c0,0xf89e0cc2,0xd3da88c0,0x7e4fd5c0,0x1d3ab9c2,0xd22ace41,0x7180f5c0,0x6e519c2,0xd3f5b2c1,0x760643c0,0xecbaaec2,0xd3539140,0x7844d0c0,0xd2c993c2,0xd30284c0,0x7676ecc0,0xee356cc2,0xd3438bc0,0x7f75d8c0,0x173b16c2,0xd201bf41,0x78bc4dc0,0x7f5b0c2,0xd2f22441,0x80146bc0,0xf51685c2,0xd1e8bc40,0x6d0b96c0,0x143023c2,0xd49412c1,0x78a33bc0,0xff8527c2,0x34f41bc0,0x50653120,0xf62034f2,0x6ca8e4ae,0x151b02c2,0xd49eb8c1,0x758d3ec0,0x135ba6c2,0xd3640dc1,0x711c7cc0,0xe810a5c2,0xd403643d,0x6eb287c0,0xd0dbfc2,0xd458ffbf,0x7fa16ac0,0xfc3c58c2,0xd1fbadc0,0x6ec558c0,0x8ac54cc2,0xd456a3bf,0x7f82edc0,0xff6ed9c2,0xd2033ac0,0x741089c0,0xd3177c2,0xd399a83d,0x82bea0c0,0xf25063c2,0xd12a3dc0,0x7d7c13c0,0x1ded7fc2,0xd24862c1,0x76e60bc0,0x11a252c2,0xd333c8c1,0x7f743dc0,0x176771c2,0xd201f7c1,0x7ecffec0,0x1c63a3c2,0xd2190dc1,0x713135c0,0xd1fd3fc2,0xd3ffbfbf,0x71bd68c0,0xcca73c2,0x99999cc1,0x71573ac0,0x8efb5c2,0x1f2c9cc1,0x8c9cc121,0xc277511f,0xc12a3f9,0x3bed3500,0x71206476,0xc2763bed,0xf8eab9d0,0x672351f,0x3201078,0x18011f2c,0x2a793500,0x35002474,0xf86e573a,0x5ff4351f,0x351fec6f,0xd46f5ff4,0xbd68391f,0x41fd46e,0x9d71204c,0xbbc27432,0x1fecd148,0x75a5d5a2,0x13a5a0c2,0x2c58efc0,0x69c6311f,0x710018e2,0xc2763207,0xc451eb8,0xf629a500,0x69c6c27b,0x987e411f,0xa40120ac,0xc292a51f,0x17e2c276,0x9a894114,0x180120d0,0x1f13f500,0x50c271ba,0x15410d6b,0xf4c0999a,0x36c273b9,0xfe4113c8,0xfc09999,0xe9c26e4b,0xcb411f69,0x26213c8f,0xd89a41,0xf5003c01,0xa236ffff,0xf6c27c0b,0xcbc11f69,0x57c0998e,0xd4c271d1,0x80c0d770,0x25c09972,0x66c2731d,0xc93f8533,0x3fc09730,0xe1c273f2,0x643f8027,0xf2c0974a,0xcc2737a,0xcc3f7740,0xdfc098d2,0x64c27651,0xe33f313d,0x63c09927,0x9bc274ce,0x6c3f72af,0xe5c09697,0x19c2759d,0x693f5758,0x28c09749,0xf3c2766e,0xbb3f4354,0x84c094c2,0xeac277b3,0x6c3ee596,0x85c09697,0x5bc2784b,0xea3e3825,0x84c09895,0x9c277cb,0x633eec6e,0x8ac094a8,0xdac27946,0xfdbf2257,0x9ec09941,0x71c27900,0x84bdf6e3,0x64c09765,0xc2c26b62,0xb0bf0651,0x5c09964,0xeac27970,0x58bf0aea,0xe0c09749,0xfec26b16,0xeabf0fd1,0xfac0985b,0xffc26ac8,0xb9bf7477,0xddc095a7,0x80c27998,0xf3bf0bb8,0xf4c094b8,0x7c26d6d,0x5b3f0fb5,0x4cc0995c,0xe2c26b10,0x2fbe5c57,0x97c095fd,0xecc26c32,0xaa3e8813,0x80c09744,0x4fc26c12,0xe03e93ea,0x2dc094ca,0x68c270cd,0x583f811f,0x7ec09849,0x35c26e01,0x993f4525,0xd4c094ae,0xd4c26ec8,0x6c3f5b5f,0x21c09697,0xd2c26ec3,0xfb3f621b,0x98c094a3,0x87c26f90,0x393f78fb,0x3cc094b6,0xdc27307,0x6b3f6f72,0xa8c09965,0x6cc2714b,0x173f8a25,0xc094aa,0xf4c27075,0x19c0226c,0x56c09764,0xd9c26ed5,0x64c015af,0x1dc098cf,0xb0c26f9f,0x4ec022c5,0xeec094e4,0x31c26f9b,0xe1c01e96,0xd4c09729,0x4dc26ec8,0x6cc01967,0x93c09697,0xbdc26c30,0x2bfde39,0xc4c0997f,0x39c26c26,0x6cbfe829,0x71c09697,0x87c26bc1,0xe8bfcf8a,0x49c09758,0x53c26b5e,0xe9bfb577,0x6cc09729,0xa9c26b1a,0x20bf7b4a,0x6ac0986e,0xdcc27901,0xfebfa59d,0xfbc0991b,0x3cc27907,0x64bfb46c,0x5cc09749,0x70c2796e,0xbf9bec,0x48c094c6,0xc8c278ad,0x6cbfce61,0x34c09735,0x51c278d7,0x63bfd166,0x4ac094a8,0x7ec27836,0xafbfe6c5,0xbfc0974d,0xa1c276e7,0x9ac00ebc,0xa8c0957c,0x9cc2770f,0x63c0086f,0x2c09735,0x21307660,0x759625b1,0x1884f9c2,0x975721c0,0xdf620108,0x6bc01e6b,0xf5021c65,0x1f3b4308,0x96976cc0,0x7327fac0,0x22aad6c2,0x986347c0,0x715f2ac0,0x8cf50024,0xc2739d02,0xc02d5d1c,0xc037ae4f,0xc2702665,0xc02b6241,0xc037ae10,0xc26aa456,0xbfa5ef85,0xc037ae14,0xc2762c5a,0x3f6ef8f0,0xc037ae9f,0xc27ebf82,0x411e4927,0xc037ae71,0xc2650bad,0x3e7c193b,0xc037af53,0xc2762b4b,0xc081d83c,0xc037ae53,0xc2713956,0x40d31a33,0xc037ae8e,0xc2764021,0x409c97f6,0xc037aeb0,0xc26c8a25,0x40b71c52,0xc037afa3,0xc2801945,0xc0f846b9,0xc037adb4,0xc27fb098,0x41193b00,0xc037ae29,0xc26a5c09,0x3ffd45ae,0x6037ae2e,0xae14b106,0xee24c037,0x6c44c27c,0xf1009cfd,0x5998ee2a,0x1ea430c2,0x37ae36c1,0x7d08efc0,0x1ef7f7c2,0x37ae1041,0x7bb180c0,0xe5ac21c2,0x37ae47c0,0x698d0ac0,0xd398b9c2,0x37ae3640,0x67c072c0,0xad25bbc2,0xd8193f,0xc26d02f1,0x40f8c190,0xc037ae14,0xc2683d47,0xced4b86,0x5703f200,0xfc26d5a,0x19c11c75,0x57c037ae,0x99c26d57,0xf7210cac,0xffffffff,0xffffffff,0x6c5e8305,0x738dcec2,0x37aee2c0,0x64b9c1c0,0x9dd399c2,0x37af3a3e,0x6d21efc0,0x1e0fb7c2,0x37ae1441,0x792cb5c0,0xd318bdc2,0x37aeabc0,0x678af2c0,0x900d8c2,0x37ae25c1,0x673d2ec0,0x97b50c2,0x37ae1441,0x65d2c1c0,0x637fcc2,0x37ae1dc0,0x59a190c0,0x1eac0cc2,0x37adf741,0x5dcde2c0,0x7ebc0ec2,0x37ae47bf,0x79b0cdc0,0xd5a733c2,0x37ae4b40,0x7caf1fc0,0xf2ec16c2,0x37af4740,0x801ef6c0,0xf7ef3bc2,0x37ad2a40,0x7568d6c0,0xc9b61cc2,0x37af3240,0x692f76c0,0xd86b40c2,0x37adfbc0,0x64b629c0,0x68eb14c2,0x37ae14bf,0x652661c0,0x365cb3c2,0x37afde3e,0x71401cc0,0xa2271ec2,0x37ae1940,0x5dbcd2c0,0xaf5af3c2,0x37ae3a3f,0x66b4d9c0,0x5efa8c2,0x8982fdc1,0x5e8663c0,0x54259c2,0x898b0bc1,0x75542ac0,0x971807c2,0x8978afc0,0x70631dc0,0x8adcafc2,0x896914c0,0x5e1000c0,0xfe876cc2,0x886f5b40,0x70287ec0,0xa1b9a1c2,0x880adf40,0x66ea5fc0,0x59a83c2,0x895b08c1,0x70b051c0,0xa1e564c2,0x854c23c0,0x686ba8c0,0xe15b8cc2,0x859ecfc0,0x67a199c0,0xf7489bc2,0x853a9bc0,0x67661cc0,0xfc5a25c2,0x8774c3c0,0x674f9cc0,0xf5e24ec2,0x88cc2dc0,0x67766cc0,0xece4e2c2,0x8931b3c0,0x68322ac0,0xe27d37c2,0x87756ac0,0x67f486c0,0xe2c645c2,0x88cc2dc0,0x6901bec0,0xd0dbfbc2,0x88cc2dc0,0x6b44a3c0,0xb7511ec2,0x88f395c0,0x6d57e0c0,0xaeb075c2,0x86976cc0,0x6f541cc0,0xa2fe0dc2,0x88cc2dc0,0x6edcd6c0,0xa292f3c2,0x898796c0,0x71cde9c0,0x9d239ec2,0x88218cc0,0x7578b6c0,0x98738cc2,0x88e16bc0,0x751268c0,0x9b045cc2,0x863a58c0,0x7601c2c0,0x980bdfc2,0x86aea1c0,0x75e773c0,0x84f058c2,0x861848c0,0x75bc2cc0,0x85e81bc2,0x874294c0,0x758e9ec0,0x87ae58c2,0x88f935c0,0x75775dc0,0x876095c2,0x893615c0,0x7587dcc0,0x84f1ebc2,0x870a39c0,0x6c2226c0,0x76231cc2,0x84dcf4c0,0x724640c0,0x8687f0c2,0x84dfb1c0,0x644960c0,0x41dc40c2,0xa2e708bf,0x6bb1f9c0,0x7e1d2ac2,0x898b0dc0,0x676e94c0,0x3f013bc2,0x87d7a8c0,0x71b2adc0,0x896a9ac2,0x88cc2dc0,0x6617cdc0,0x1fefbfc2,0x87d7a8c0,0x6f5cb4c0,0x85d9b4c2,0x87d7a8c0,0x69e875c0,0x67dd2bc2,0x88cc2dc0,0x659d39c0,0xc3687c2,0x84ef9ac0,0x651fb1c0,0x9e1dac2,0x87be1bc0,0x6534b7c0,0xea915c2,0x893be4c0,0x657129c0,0xb307bc2,0x8751afc0,0x5e8b2bc0,0xd378bc2,0x88e623c0,0x5e2113c0,0x9cb60c2,0x86d8e6c0,0x5e4fd1c0,0x150939c2,0xa6c48d3e,0x5e78a9c0,0xb894b4c2,0x8896d93f,0x6d0021c0,0x1b69b6c2,0x85e63f40,0x6a55f9c0,0x623eac2,0x87ba3f40,0x759f73c0,0x2764d0c2,0x87b43b40,0x760645c0,0x2e290bc2,0x86eaff40,0x75d7d9c0,0x996e5dc2,0x87e63440,0x6781e1c0,0x12605c2,0x85090d41,0x674829c0,0x1ec09c2,0xa3e53041,0x674553c0,0x544c6c2,0xa3a15741,0x684d1fc0,0xe2100ac2,0x863f9840,0x69f000c0,0xca99d4c2,0x85cb7940,0x66dbd2c0,0x6cb49c2,0xa7293741,0x6728b4c0,0x637b6c2,0xa3f96e41,0x5e3c6fc0,0x692e9c2,0xa8c8cb41,0x669a4ec0,0xff1e17c2,0xa5336840,0x676589c0,0x2dc1c2,0x87043441,0x6826e3c0,0xd7fc18c2,0x899ad640,0x677b7ec0,0xf8560ac2,0x87618440,0x66ed6bc0,0x307dc2,0xa569b141,0x5e9725c0,0xdfd827c2,0xa8b3223d,0x647f92c0,0x4e703bc2,0xa62570bc,0x643bf8c0,0x440011c2,0xa4a97ebf,0x642224c0,0x3b7500c2,0xa6b376bf,0x82c7b1c0,0xf45d66c2,0x38dd2340,0x82cb02c0,0xf45cf6c2,0x38da0ac0,0x801808c0,0xff9bfac2,0x833333c0,0x7fc557c0,0x1c44f2c2,0x825966c1,0x59cd84c0,0x1ff8e2c2,0x834979c1,0x6d1566c0,0x1ff066c2,0x858627c1,0x6daa02c0,0x1f6eebc2,0x96dd90c1,0x6dbcd5c0,0x1dd8a4c2,0x94b396c1,0x6dee45c0,0x1de645c2,0x97946ec1,0x6e30e4c0,0x1f641dc2,0x997352c1,0x6dccedc0,0x1367ac2,0x94a094c1,0x6df808c0,0xfb4283c2,0x94c5e7c0,0x6e9b59c0,0xeddc25c2,0x94c947c0,0x71000ac0,0xd8575ac2,0x94a359c0,0x71c106c0,0xd4bda7c2,0x94b61cc0,0x7c6f2bc0,0xfb4ebcc2,0x94b700c0,0x7615fdc0,0xcf3b6dc2,0x96976cc0,0x76ea88c0,0xd0e1dfc2,0x97496bc0,0x76e6bac0,0xd30c1ec2,0x995611c0,0x77ce63c0,0xd29fcfc2,0x96976cc0,0x7891adc0,0xd5e42ac2,0x9758efc0,0x79415ec0,0xdaa0f9c2,0x987cb3c0,0x7bd904c0,0xf4555cc2,0x9906d5c0,0x7ab384c0,0xe29c54c2,0x96976cc0,0x7c06b2c0,0xf504adc2,0x974db1c0,0x6e2aa3c0,0xfb9c34c2,0x985fe1c0,0x6ec2a4c0,0xee68d5c2,0x97657cc0,0x6f5017c0,0xe95fb5c2,0x987afac0,0x6fdab6c0,0xe386cfc2,0x985812c0,0x6fa3e7c0,0xe1f547c2,0x95da4fc0,0x711773c0,0xdaed50c2,0x9876f9c0,0x710664c0,0xd9361cc2,0x96976cc0,0x737a7fc0,0xd0d6efc2,0x973563c0,0x7c752fc0,0x1f763cc2,0x97bae0c1,0x6dac0bc0,0x1f7c5fc2,0x96dca341,0x6db1ebc0,0x1e7214c2,0x94c78441,0x7b52f4c0,0xe7aa56c2,0x94c25740,0x7a220dc0,0xdce02fc2,0x949f4140,0x796862c0,0xd8654dc2,0x94b67a40,0x78a562c0,0xd4bdadc2,0x94b61540,0x724b7ac0,0xd63442c2,0x98dba540,0x75246ec0,0xcf2735c2,0x97240140,0x722d86c0,0xd360b1c2,0x96164640,0x7123dbc0,0xdabbb4c2,0x98878140,0x6fe7a4c0,0xdf49fdc2,0x95bf9a40,0x6f46e0c0,0xe996d7c2,0x98699840,0x7c153ac0,0x190c3c2,0x9950fc41,0x6de76ec0,0x141a4c2,0x96976a41,0x7c081cc0,0xf4df63c2,0x9729dc40,0x7a6fd8c0,0xe1750ec2,0x97fcc240,0x7c2eb3c0,0xf4978fc2,0x95c53b40,0x7b357fc0,0xe85762c2,0x9722d340,0x786385c0,0xd5f26bc2,0x98985040,0x795358c0,0xd9695ec2,0x97355f40,0x76f208c0,0xd0f2b4c2,0x9744a640,0x752265c0,0xd10687c2,0x99875740,0x7615fdc0,0xcf3b6dc2,0x96976a40,0x800387c0,0x1b467c2,0x83455f41,0x7c7daec0,0xd01cb7c2,0x848e13c0,0x7c2054c0,0xcee719c2,0x866007c0,0x77fb40c0,0x1ac1ecc2,0xb7e1a8c0,0x729768c0,0xe13461c2,0xb7c7003f,0x7264f4c0,0xd3adb0c2,0xba1c323f,0x58bfb3c0,0x147521c2,0xbab958c0,0x590b46c0,0x15b6a2c2,0xbb3fffc0,0x7777c9c0,0x15c77ac2,0xbb539cc0,0x6d3a0dc0,0xd43fb8c2,0xba43a0c0,0x6cfd51c0,0xd36176c2,0xb747e3c0,0x6c7e8ac0,0x145c1ac2,0xbb36acc1,0x6cbb1ac0,0x13fc40c2,0xbba2b6c1,0x6fbea3c0,0x87af8141,0xcccccdc0,0x6b2bcfbd,0x84141441,0xa6666640,0x4a567abf,0x15a3e441,0xa6666640,0x96a20ebf,0x7612a141,0xa6666640,0xa72ccfbf,0x6a619e41,0xa66666bf,0xa5d972bf,0xc0e40041,0xa66666bf,0x62722abf,0x7612a141,0xa66666c0,0x2fa22cbf,0x43091441,0xa66666c0,0x937c39bf,0xbfe71241,0xa6666640,0x26fedbbf,0xdf3d7d41,0xa66666bf,0x247aeebf,0x8713b641,0xa66666bf,0x230a25bf,0x14bd3441,0xa677683e,0x9ebe0fbf,0xaab31a41,0xa66666c0,0x6bf373bf,0xc1b88f41,0xa6666640,0x2fa22cbf,0x43091441,0xa6666640,0x3cb1fdbf,0x8655e041,0xc1138c40,0xa66666c0,0x6a13b4bf,0xc0aea341,0xad71000c,0x84415e31,0xcb7ba,0x36f4b871,0x70ff0041,0xda71000c,0xa5415c1e,0x1320b5a2,0x3d04dc71,0x87053241,0x10f1000c,0x41240c6a,0xbf69a2f9,0xc0066666,0x41230bf6,0xbe15058e,0xc0066666,0x413cb1fd,0x388655e0,0xf3737113,0xb88f416b,0x35000cc1,0xc0768821,0xd91cf13f,0x8dc27934,0x41065a,0xb2c0e000,0xccc286e9,0x6fc0edc5,0x76c0dfff,0xe2c28653,0xfcc0f5d7,0x9ac0e000,0xaec282d9,0x3f24c164,0x9cad04f1,0xc843c24f,0x15c063,0xde46c0e0,0xb597c273,0x4003c12,0xc043cc0,0x53c13100,0x300305b,0x24013f48,0x9677100,0xab9ac250,0x71000c19,0xc2510000,0xc1eed9f,0x480300,0xc1b2,0x5a05c0e0,0x5428c276,0x1cf14050,0xc2519522,0xc11fda6c,0xc0dffd2c,0xc2858b4b,0x40cba7f0,0xc0dffe3b,0xc286ceed,0x40f1d7f3,0xc0dffece,0xc2830dc9,0x6cc01933,0xf69a7100,0x5bb8c24f,0x71000c70,0xc27249f0,0xcf41dd8,0x640cf100,0x61c24e60,0x39c0576e,0xc9c0e66e,0x3dc24add,0x47c0570a,0x73c0e582,0xc2b02,0x341113f2,0xf9a0c08f,0x73ac227,0x4f48c057,0xe81bc08e,0x9807c221,0xeefa40bb,0xf756c087,0xacc1c225,0x4f1000c,0xc21219dc,0xc01d5810,0xc087eefa,0xc212c4f1,0xc1f01de,0x9bc5b500,0xe83ac215,0xeefe4096,0x113e6487,0x15000cfa,0x71000c21,0xc225f9b3,0x3070c997,0x6c627100,0x2164c227,0x71000c58,0xc20e9571,0xc0bc0fd,0x5fda7100,0x1eb8c213,0xf3007895,0x15f0f106,0x5701dac2,0x8b222bc0,0xf5fa1c0,0x8ccfabc2,0x84af40,0x91df3b31,0xde350024,0x3010d3,0x21ac4e71,0xb6b854c2,0x12f30018,0xc214f82c,0xc02414cb,0xc08e5563,0xc20a252f,0xc0042dc3,0xc08e566d,0xc209f0e7,0x40831687,0x313f9c61,0xc8a32ba,0x88c2b100,0xaf3cc20f,0x55634090,0x3100d88e,0x1892b422,0x574d7100,0x67f9c215,0x71000c96,0xc22054f4,0xcaefeb5,0xea787100,0xacc7c221,0x4000cbb,0x61a2408c,0xb3c08e55,0x1c225f9,0x71001898,0xc226f0e6,0x24b0dd18,0x1c08f500,0x52c22b13,0x1a40aeb8,0x1cc088d3,0xe6c221e8,0xa0c070c9,0x40b08e52,0xd3003004,0xc05b53c5,0xc08e5561,0xc220f0e7,0xf1000cca,0x765a051c,0xed542ac2,0xe6666440,0x86a36ac0,0xf3b4ddc2,0xe667bac0,0x7fa959c0,0x1d1d39c2,0xe667cf41,0x4fbb68c0,0x670a3dc2,0x10f13ed0,0xc27e6ae6,0xc11fda66,0xc0e66666,0xc275ce19,0x41135a0f,0xc0e66664,0xc24f0000,0x245b53c1,0xbb683100,0xf5012c4f,0xe666640c,0x827e54c0,0xc90ac2c2,0xe666aac0,0x4e583bc0,0xaee680c2,0xe66b6840,0x64b1426c,0x1bc0e666,0x67c25195,0x481fda,0x2202d004,0x246664,0x886e931,0x6fb40018,0xabc25068,0xf9411cf4,0x3f78e4cc,0x3001801,0x90010324,0xa6e96200,0xe87ac251,0x4803009c,0x180100,0x50449871,0x1c0000c2,0x28f1000c,0xc28525b7,0xc0c0ffe1,0xc0e665e2,0xc2850397,0x40c03faf,0xc0e666f3,0xc28031b7,0x40faeb85,0xc0e665d8,0xc282735a,0x40cb79cc,0xc0e665d6,0xc2784913,0x20f582bf,0xbec8f501,0x87422502,0xaac05ef8,0x48c0d582,0xccc27716,0x61c10f4d,0x24c0a76f,0x62c27525,0x48c10e42,0xb0c0f962,0xccc27288,0xe4c10c64,0x54c0dbf3,0xccc274cc,0xb4c0eedf,0x86c0c1e6,0xe6c2738f,0xb8c10b77,0x93c0aa05,0x4ac27850,0x75c1019b,0xc7c0c003,0xabc27482,0x96c0f792,0x32c0de22,0xd3c272f8,0xc6c10725,0xc3c0a8d2,0x11c2728d,0x6cc10cab,0xa6c0a3be,0x72c27777,0x10c106d9,0x72c0c34b,0xe6c2785e,0x97c106b7,0x75c0bf38,0x96c27712,0x73c10a13,0x70c0c29c,0x80c2769d,0x41c10c12,0x22c0c21d,0xa2c274cd,0x81c0eedd,0xa3c0d84c,0xcfc271e8,0xb1c1034c,0x66c0a278,0xf3c277de,0x29c10bdb,0x98c0be7b,0xc3c276bd,0xedc0fb56,0x21b4dc53,0xfe39fff5,0x7fc0c181,0xbfc2774f,0x27c10e7c,0x7ac0be03,0x63c2754f,0xb3c10dff,0x41c0c0f9,0x99c273d3,0xc8c0fad6,0x60c0a6b2,0x33c275a1,0x6dc0f71a,0xd3c099e6,0xc9c27377,0xddc10b10,0xfcc0f86f,0xa7c272fb,0x4c0f632,0xc0a1ac,0xa2c2746a,0xe7c10d74,0x2fc0c047,0x83c273cf,0xe9c110cd,0xacc0bae0,0xb3c2783a,0x66c0ff95,0x29c0d5eb,0x2fc27331,0x3dc10936,0x80c0beff,0x1ec27270,0x13c10bad,0xeec0ba0b,0xf3c27867,0xa5c10782,0xa5c0d4bf,0x2ac276a3,0x6c0f1d5,0xa3c09f3a,0x90c274a6,0xa8c0f7af,0x75c0f3b7,0x95c27712,0xd1c10a13,0x2fc0d902,0x70c2761a,0xf6c10d90,0x6dc0d7fb,0xbbc27240,0xbdc109e2,0xd9c0baac,0x9ac27552,0x93c0f74c,0xe9c0f335,0x31c2731c,0xccc100ef,0x73c0bdf1,0x8fc27203,0x21c10632,0x7ac0ba20,0x30c2780c,0xe4c0fcf0,0x62c09e30,0x78c27750,0x9fc10e79,0x1dc0d466,0xf5c27720,0x16c0feda,0xbcc0f24d,0xb8c27425,0x8ac0f93b,0x6c0bcc9,0x78c2726e,0x86c0fba9,0x6fc0b84b,0xb8c2787a,0xdec10733,0x18c09cf7,0x94c27581,0x70c1118a,0x24e4d340,0x4efffff5,0xc0b71219,0xc2739efa,0xc10b80a7,0xc0d5eff2,0xc2740536,0xc1111489,0xc0d1bafe,0xc275c717,0xc10db6b7,0xc09fc183,0xc272ed61,0xc1071644,0xc0d4f0d8,0xc272b735,0xc10ce3fe,0xc0d18a4a,0xc276a249,0xc11040a0,0xc09be538,0xc277bfbb,0xc0f8a42b,0xc0b4c960,0xc2758198,0xc1118ac1,0xc09b3e5e,0xc2720c7d,0xc10706db,0xc0d09fef,0xc273b27c,0xc0fb0cd0,0xc0d3adde,0xc277433f,0xc10eee41,0xc0ea3932,0xc275122c,0xc10e0999,0xc0ee38bd,0xc2786f78,0xc1036465,0xc0b42a04,0xc2728a86,0xc10cb731,0xc09980cb,0xc2761d1e,0xc11154e8,0xc0e91659,0xc2727223,0xc1017702,0xc0999e43,0xc27357ea,0xc0fdc218,0xc09c568c,0xc2760295,0xc0f05953,0xc0cc318c,0xc272e8d3,0xc104c388,0xc0eae80e,0xc2775960,0xc0f60534,0xc0cbb995,0xc2731114,0xc1012df0,0xc0ea26d0,0xc2721d75,0xc100f04a,0xc0e61863,0xc273c84b,0xc0fb1605,0xc0e946c3,0xc2728d51,0xc10c77b5,0xc0af13fb,0xc272a7d3,0xc0fa132d,0xc0e58d8b,0xc272e5cc,0xc103d7f7,0xc0b35f05,0xc274a74f,0xc0f78534,0xc0e93dea,0xc2739c8c,0xc0f28047,0xc0e40b0d,0xc275681a,0xc10e1225,0xc0cd01cf,0xc27716d8,0xc10fd3d7,0xc0c86892,0xc273cf66,0xc0fa9eaa,0xc0b20540,0xc27350c8,0xc0f40781,0xc0ac2746,0xc27585e5,0xc0ef9c41,0xc0e32971,0xc2772f84,0xc1004505,0xc0e6d6e2,0xc2770643,0xc0f3c5d2,0xc0e2195b,0xc274df15,0xc0f776de,0xc0b0553d,0xc277e223,0xc0fa8d11,0xc0e15ff8,0xc2745150,0xc0f0e371,0xc0ac6729,0xc27449ea,0xc1118e36,0xc0c6c66b,0xc2756404,0xc0effc28,0xc0abd1ce,0xc272e816,0xc10450d8,0xc0c9ec4e,0xc2761190,0xc0f0f621,0xc0ab6d26,0xc277353e,0xc100636b,0xc0ae3270,0xc271f21b,0xc106bfbb,0xc0c44f29,0xc277708e,0xc102bd9f,0xc0adb416,0xc277ed98,0xc0fc3cb0,0xc0aa1dd2,0xc2726f8b,0xc0fb11c3,0xc0c35c92,0xc27777af,0xc106eeb6,0xc0ace284,0xc2784f19,0xc101844c,0xc0a99af6,0xc2785e72,0xc106b7ea,0xfca8d22f,0xfffff203,0xac360549,0x769c02c0,0xc16dfc2,0xabae68c1,0x7837bac0,0x91f68c2,0xa875dac1,0x77de35c0,0xbddc2c2,0xa81403c1,0x76adb4c0,0xfb0115c2,0xc5f7bac0,0x744be5c0,0x119225c2,0xdd3615c1,0x755690c0,0xdf227c2,0xa0c7fcc1,0x775f32c0,0xe8130c2,0x9ac1a9c1,0x78d9e9c0,0x19ef92c2,0x999a24c1,0x6eea20c0,0xfea6e9c2,0x9998f6c0,0x737440c0,0xd7cf59c2,0x99969cc0,0x7b058bc0,0xf6f44c2,0x99999cc1,0x7b9511c0,0x6b416c2,0x800000c1,0x74a9d5c0,0x1e7890c2,0x7abe12c1,0x798616c0,0x17b77dc2,0x7fe532c1,0x7b0bb5c0,0x10361ec2,0x80b697c1,0x7ad404c0,0x1e5bdc2,0x65b13ec1,0x77f32ac0,0x15be79c2,0x619a35c1,0x773151c0,0xdf9505c2,0x669cd8c0,0x7865cec0,0xdd5a0cc2,0x77c69bc0,0x767408c0,0xd86aabc2,0x701ba4c0,0x7b20f1c0,0x17952c2,0x6c850ac1,0x754333c0,0xdf5d16c2,0x63188bc0,0x78d8c0c0,0x136ed8c2,0x626f97c1,0x78e933c0,0x11b506c2,0x611727c1,0x7904fcc0,0xf81febc2,0x600000c0,0x79a882c0,0x169ec7c2,0x75b2abc1,0x78dea9c0,0xec84f7c2,0x626f93c0,0x797d6bc0,0xe53737c2,0x702179c0,0x7a9c8bc0,0xacb5dc2,0x6657f3c1,0x7a1c7dc0,0x90694c2,0x6170dfc1,0x784f1dc0,0xe3f36bc2,0x66b913c0,0x7b18d7c0,0xda2fbc2,0x756c8bc1,0x75f16cc0,0x1da516c2,0x73e39bc1,0x7b5afac0,0xa2c99c2,0x759c5ec1,0x726f7fc0,0xe27683c2,0x666851c0,0x74662ec0,0x192bb3c2,0x624fc2c1,0x71eae7c0,0xde2e7dc2,0x73ee1cc0,0x726059c0,0xee9ab3c2,0x600000c0,0x734a7ac0,0x19fc40c2,0x669670c1,0x6ef7abc0,0x95c2cc2,0x740c67c1,0x74ad48c0,0x1b2c26c2,0x669cdcc1,0x7478e5c0,0x1c9b48c2,0x6c9fbec1,0x710211c0,0xec11cc2,0x60d43dc1,0x7066a3c0,0xe874aec2,0x744fb1c0,0x6fcea0c0,0xf5f6c9c2,0x6956d6c0,0x6f8c3cc0,0x10b05fc2,0x78448dc1,0x70db25c0,0xf52c9fc2,0x6187fdc0,0x73425fc0,0x177ae3c2,0x613adac1,0x74c4d8c0,0xe493bc2,0x600000c1,0x74ef18c0,0xcec9ec2,0x8f1cf100,0x48c27653,0x47c10b0c,0xdbc06001,0x58c275d4,0xc10cb1,0xeec06000,0x9cc2756c,0x2ec10f17,0x4bc06004,0xadc2772d,0x180af5,0x329d7df1,0x9e26c275,0x6eec0f4,0x440bc060,0xc044c274,0x20cc0fc,0x946dc060,0x1199c275,0x7ac0f6,0x22e2c060,0x84f7c276,0x32c0fc,0x63c4c060,0xee83c277,0x50c0fd,0x3ea6c060,0x4ef9c274,0x186c10b,0x85ebc060,0x2cb2c277,0x3368c0ff,0x8af1c083,0x1864c277,0x3283c10a,0x114bc083,0x9511c277,0x32ddc104,0x5659c083,0xd1bbc273,0x32cfc104,0xe1b3c083,0x29e5c272,0x3368c10a,0x8e30c083,0xcaf7c275,0x25d4c0f5,0x762e1ff5,0x10fbf2c2,0xbbd708c1,0x777121c0,0x6d792c2,0xc4b7f4c1,0x771996c0,0xa0075c2,0xc403cdc1,0x77af85c0,0xce2cec2,0xd34c9fc1,0xcf5258c,0xc0acb511,0xc2759347,0xc111831b,0xc0bb7f2e,0xc2772a06,0xc10ee78b,0x54d2e384,0x6f00f500,0x72c0d23d,0x6dc27719,0x92c10a01,0x30da69,0x972dfff5,0xc9c0d1e5,0x64c275c4,0x4c10dad,0xf7c0c2bd,0xfc274eb,0x85c0f581,0xdac0f635,0x7fc2767a,0xc0f603,0x12c0f5f3,0xf4c27787,0x23c0fc7c,0x2fc0f575,0x3fc2783b,0x78c107d4,0x77c0f453,0xfbc272af,0x5fc10d22,0xcbc0d016,0x62c275c4,0x6ac10dad,0xbcc0d923,0x53c275a2,0xf6c111b3,0xb3c0f318,0xb3c27201,0x1bc10381,0xf9c0b854,0xd4c273fa,0x5c10cb0,0xb6c0d7b5,0x8bc2720b,0xd8c1071a,0xb3c0cf3b,0xb4c27201,0x84c10381,0x28c0ceba,0xf2c272e9,0xc3c104d8,0x1bc0d5e1,0xcfc271fd,0xd1c10743,0x4ac0f1bd,0x55c27239,0x37c1001a,0x18c0e499,0xc6c27510,0x6ec0f74e,0x71c0b193,0xf9c272f5,0x5ec102be,0x12c0ebe4,0x99c27818,0xd2c0feac,0xd4c0a87e,0xd2c27856,0x4ac10225,0x34c0a818,0xfbc2734e,0x98c0ff21,0x5cc0eb30,0xa5c276a4,0x4dc11039,0x13c09a87,0x61c27842,0x90c108dd,0xfbc0a711,0xe0c2777b,0x30c103cb,0xbdc0aee5,0x1ec277ae,0xc1c10ce6,0x67c0a67d,0xcdc27866,0x9ec104cc,0xa9c0be19,0x2dc27840,0x77c108f0,0x30bd85,0xc54b9631,0x28f501a4,0xc10a0074,0xc0ad9d69,0xc273e4a2,0xc0f79408,0xc0f71724,0xc2743e84,0xc0f8e4de,0xc0f99a65,0xc275e071,0xc0f806c0,0xc0f99a0d,0x42250399,0xc087704e,0xa85e3886,0x8607f296,0xefc05e38,0x1e41fa4d,0x864089ce,0xbec05e38,0x96422d30,0x7100245d,0x422d26f6,0x188a3bf7,0xf9d06200,0x29414224,0xdf62000c,0x5420339,0xf1b3b8dc,0x1061d61c,0x1a8117c1,0x7e3886c0,0xf003ec0,0xbff8a9c1,0x7e3886bf,0xfe0bec0,0xb97cddc1,0x7e38863f,0x165df8c0,0x6b7d20c1,0x27710018,0xd2c0d9ea,0x301871,0xb1f210f1,0x1a7ac0e0,0x38864030,0x3ea2c07e,0xa05ec103,0x3837c02c,0xdf78c07e,0xc943c09d,0x71003c2c,0xc09a7bec,0xc31ebc8,0x8bd27100,0xa04dc0a4,0x71000c38,0xc11da28c,0xc476b2b,0x7d04f100,0xe7c115f5,0xda3f74c2,0x45c07e37,0x67c106ad,0x600f27,0x6c1bd71,0xf0731c1,0xee710060,0xc4c11be4,0x3096d2,0xabb09cb5,0x8043d4c0,0x616bba3f,0xbab10060,0x68c0616b,0x9dc0a14f,0x182f13,0xc47804f1,0xf51fc0ab,0x6badbf83,0x5892c061,0xbdbac0a7,0xf1001848,0x5619710,0x1314a9c1,0x616bba40,0x1cddcc0,0x997e35c1,0x616bba3e,0x1c8ecdc0,0x5cf7bac1,0x58710024,0xe6c11f08,0xc3740,0x14c0fff2,0xdec10266,0x6abe6b74,0x5bc0616c,0xb8c0f8a3,0x6a3f1c23,0xc0616c,0x77c0fd7e,0x203ec2f5,0x4c067d2,0x89c10144,0x20ba1dcf,0xf2c067d2,0x24c1001a,0x20be8a47,0xacc067d2,0xc3c0e10e,0xd83e0bb8,0x7bc06cf0,0xfcc0e2bd,0xd83e86a8,0x30c06cf0,0x59c0f0c9,0x13f2134,0x3cc06edc,0x92c0e725,0xa13f0cca,0xe1c06edb,0xfcc0ffd1,0xd8be86a8,0x14c06cf0,0x6cc0e3ae,0x5d39f909,0xcac06edc,0x9ac0f143,0x5dbed999,0xa7c06edc,0xfcc0fe6b,0x5d3de055,0xd5c06edc,0xb1c0f7cd,0x5dbec430,0x79c06edc,0x57c0e582,0x5d3e5a05,0xebc06edc,0x2cc118c2,0x433ed466,0x33c0871c,0x29c11973,0x243dc697,0x3cc0871c,0x98c10174,0x43bffcbf,0xd1c0871c,0x76c0fa23,0x43c001ff,0xbdc0871c,0x62c116b5,0x43bf519e,0xc6c0871c,0x22c10b95,0x433fd634,0x59c0871c,0xddc114a5,0x43bf8896,0x51c0871c,0x67c10fe4,0x433fb999,0xffc0871c,0xa7c115c9,0x243f75ad,0xbfc0871b,0xbbc11c45,0x793d08d4,0xc088dc,0x49c0c7f0,0x433fcbbb,0xd4c0871c,0x90c11a78,0x43bb1adc,0x46c0871c,0x66c0b025,0x433f12a0,0xafc0871c,0x9dc0ae41,0x433e949d,0x2fc0871c,0x8bc0e824,0x43400616,0x9dc0871c,0xabc0bcbe,0x43bfaa92,0x93c0871c,0x9cc0e327,0x47c00d33,0xb9c08b72,0xc0c0eca6,0x47400fb3,0x86c08b72,0x79c0cd59,0x473ff993,0x14c08b72,0xadc0b3da,0xcebf9669,0xbec08b6c,0xacc11bf0,0x47bee201,0xc3c08b72,0x39c11bf4,0x473edf7b,0xec08b72,0x26c11abe,0x473f388a,0xc2c08b72,0x18c10aac,0xf1003c41,0xf611be95,0xfae5cc0,0xa7930c40,0x1caf35c0,0xb3892fc1,0xa791453c,0x13ae00c0,0xbe2225c1,0xa7930cbf,0xf5d276c0,0x705d1c0,0xabe910c0,0xf5f916c0,0x7008ac0,0xabe91040,0x188182c0,0x35d81fc1,0xabe910bf,0xfb45ac0,0xc602ebc1,0xabe910bf,0x1887fec0,0x34b44ac1,0xabe9103f,0xc30a5fc0,0xc5993dc0,0xabe910bf,0xac4ed1c0,0x22acdac0,0xa9a071bf,0x1730fcc0,0x4022ddc1,0xabe9103f,0xdf82c1c0,0xfc9718c0,0xabe910bf,0x10061fc0,0xb868b2c1,0xabe9103f,0xb1112ac0,0xd6b229c0,0xf1000c3e,0xc0b43b03,0x3f413a1d,0xc0abe910,0xc0ba0b50,0xc9c543f,0xe15f6200,0xf545c0bf,0x10f10030,0xc112770a,0xbfa2161e,0xc0abe910,0xc0c7e883,0x3fd0f27c,0xc0ac1881,0xc0ce2fff,0x30e7692b,0xa738f500,0x64c0ba03,0x24bfb905,0xb3c0a78c,0x29c1195d,0xe73e0cea,0xbac0b48c,0x6bc11836,0xe7bf0e27,0x98c0b48c,0x9c112d9,0xf4bf9e32,0xfac0b48c,0xccc11495,0x58bea929,0x3cc0b40e,0x38c1150a,0xe7bb01f5,0xb4b48c,0x8ce70cf5,0xf9c2c0b4,0xc1a4c0ff,0xe58bfdb,0x31c6c0b4,0x57dec0b4,0x8ce73f41,0xf10204b4,0xb48ce708,0xd14d7fc0,0xe58088c0,0xb48cf63f,0xdb6189c0,0xf758eac0,0x8f50024,0xc0cdd0f2,0xbfb17942,0xc0b38fd0,0xc0c262aa,0x3f803233,0x6cb38fd0,0xd014f100,0x1fc0b38f,0xc4c10eac,0xcebf90b3,0xf4c0b3ec,0x66c0d08a,0x18bf5c32,0xdcc0b350,0x61c0f673,0x3ca8a9,0x694904f1,0xfbecc0c9,0x8fd03ee8,0x77dec0b3,0x4cdbc10a,0xf5001839,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x90feffff,0xb4c0ed88,0x36bfa91d,0xcdc0b1f6,0x6ec1057a,0xe3bf874e,0x21c0b1ee,0xb0c0cb91,0xf7bf1c38,0x4dc0b1f3,0x4fc0c823,0x8abdf85a,0xcec0b00e,0xe7c0c6dd,0xf53d7151,0xf8c0b1e6,0x42c0d4b7,0x6b3f7b98,0x30c0b1fd,0x67c0f4ae,0x40bf9d7e,0x5ec0adcd,0xa2c10c4d,0xfbe6542,0x14c0adf2,0xe4c0c9e8,0x40bdd99f,0x41c0adcd,0xc0e09e,0x403f8f58,0x91c0adcd,0x28c0cc28,0x403ed8ee,0x49c0adcd,0x90c0ef4a,0xc6bf9e11,0xaec0ac7d,0x6ac0cd71,0x92bf054b,0x68c0ac85,0xb2c10c63,0xa03d449c,0xa3c0ac8a,0xcac0f82f,0x923f9ba5,0xd9c0ac85,0xccc109bd,0x92bf1e62,0xdcc0ac85,0xddc10360,0xc03f8508,0xc7c0ac87,0x1ec106a0,0x923f5f4f,0xbac0ac85,0xb9c10ade,0x803eefab,0x1c0ad0e,0xdac10d78,0x71be9aac,0x19c0a900,0x32c101ab,0x82bf9b58,0x19c0a900,0x31c0f6e8,0x783fa97d,0xeac0a900,0x59c10bb3,0x713f1af8,0x89c0a900,0xd0c10d6a,0x543ea5d2,0xac0a900,0x40c0cd1d,0x73bf0686,0xbc0a900,0xedc10396,0x8d3e27f0,0x52c0b238,0xec0db9a,0x2d3e284a,0x9dc0b231,0xedc0df1b,0xd33f67f0,0x61c0b13d,0x60c0eb7d,0x763f7b1d,0x47c0b262,0x13c0f946,0x743f8b63,0x5bc0aff9,0x67c0e922,0x63bf902c,0x33c0aee0,0x5dc1039e,0x8abe21c2,0x72c0b23a,0x53c101b0,0xfcbee775,0xa6c0b254,0xb7c0ffb4,0xfcbf110b,0x37c0b254,0xd5c106b7,0x76bef0b3,0x6dc0b262,0xa5c0ebb8,0x9bed4f4,0xc1c0af7d,0x6c10852,0x5dbf1e10,0xd4c0ae6b,0xe9c0ef0f,0xd2bd51f3,0xdfc0ac6e,0xedc101b9,0xd3bf67f0,0x61c0b13d,0xbfc0e38c,0xfbf2e65,0x26c0b2c4,0x4dc0f0f0,0x5cbd4b12,0x13c0ac4c,0x78c11aae,0x84bf47d1,0x2cc0c71b,0x97c11d15,0x43bf373b,0x12c0c71c,0xdc11e64,0x62401dfd,0xac0c721,0x19c11a34,0x71401420,0x8ec0c71c,0x80c115f4,0x4340069a,0x32c0c71c,0xa6c13a50,0xdd40830d,0x10c0c0b5,0xb6c05c74,0xaa408358,0x5fc0d582,0x10c04946,0x43408cf5,0x9bc0cf1c,0x17c0a3ae,0xdfbfe59e,0xa1c0a8b5,0x71c138fe,0xddbff0ab,0xc5c0a8b5,0x88c10875,0x20403613,0x5bc0a8b6,0x51c12167,0xdfbfcb4b,0x60c0a8b5,0x95c135a8,0xdfc038f0,0x7ac0a8b5,0x5ec0d889,0xdd403983,0xf5c0a8b5,0xaac0e769,0x43403f2c,0xf7c0871c,0xcec0a52e,0x433fea1a,0x67c0871c,0x4fc115d1,0x43c01874,0xcec0871c,0xcbc0cd7d,0x43c02448,0x8bc0871c,0x9bc117a9,0x674001e6,0x3c0871c,0x43c0d0db,0xd14027e2,0x2c08be7,0xf5c0e892,0x1400f2d,0x9ec08be9,0xc11c86,0x10be3756,0xd2c08be9,0x52c0dd52,0x1c00a9a,0x40c08be9,0xaec119ea,0x103f5bd4,0xf7c08be9,0x63c10b7b,0x103ff564,0x89c08be9,0x98c10dc4,0x10bfe92f,0x40c08be9,0xcac11211,0x10bfcbdf,0x19c08be9,0x1ac0ce48,0x33ffc19,0xadc08be9,0x31c118b2,0x10bf8309,0x4fc08be9,0x7cc1052c,0xdf400728,0x3dc0adfd,0x37c11703,0xae3f9ae3,0xa2c0ae01,0xbfc108f2,0x72c00060,0x29c0adf9,0xaec0ab40,0x72bf05d6,0x82c0adf9,0xb0c0dcbc,0x91c00a20,0xf7c0adfe,0xdec0c484,0xcbbfe1e6,0x7bc0ae01,0x61c0dc4c,0x76c000a8,0x28c0b24f,0xd0c0b78c,0x76bf8d28,0xbac0b24f,0x52c0d774,0x763ffa2b,0xa1c0b24f,0x88c0e93c,0x76c0069f,0xaec0ba4f,0xebc11a0c,0x76beaa8d,0xbc0b24f,0x1dc0f6aa,0x764006e6,0xc8c0b24f,0xb0c1198b,0x763efb8e,0x3bc0b24f,0x1ec116cd,0x763f7536,0x6ac0b24f,0xc7c11408,0x763f9ed7,0x72c0b24f,0x30c10a59,0x763fe69d,0xaac0b24f,0x25c11217,0xadbe623f,0x3ec0ba4f,0x24c11080,0x76bf1464,0x8bc0ba4f,0x8cc0c240,0x763f22f4,0x16c0ba4f,0x81c0ed24,0xdbbfce79,0x13c0c0b5,0x10c10e9d,0x4e3f56cf,0xdec0c0b6,0xa5c0adf4,0xdfbfdb13,0x53c0c0b5,0xf5c136fd,0x76c034bb,0xc2c0aa4f,0x2dc128ed,0x76c0097a,0xefc0aa4f,0x61c129e3,0x76c00038,0x10c0aa4f,0x58c12b6b,0x76bff08c,0x70c0aa4f,0x2ac137d9,0x76c02a1c,0x5c0aa4f,0xa5c1382e,0xcbff72c,0x56c0abe9,0x41c12e58,0x10c03046,0xecc0abe9,0x53c129fd,0xec01904,0xfbc0abe9,0xa0c12ece,0x10c005dd,0xeec0abe9,0x34426cdf,0x83c0c15b,0xe5c0d626,0xb1c1312d,0xc8c0a699,0x1ec0d626,0x41c12d14,0xccc0af63,0x75c0d626,0xac425c0e,0x52c0ae74,0x19c0d626,0xa5c18b5e,0x5740b8db,0xeec0d626,0xa4c221f8,0x83c000c6,0x55c0d626,0x5c4166a0,0x65c0afe8,0x5c0d626,0x6fc216eb,0x83bffb80,0x7c0d626,0x84427038,0x8140ceac,0x44c0d626,0x554272c2,0x8140ceb2,0x37c0d626,0xe41a118,0x89c0b7ce,0x38c0d626,0x6cc223dd,0x8140487a,0xa5c0d626,0xfdc22258,0x8140454e,0xe9c0d626,0x36c22253,0x81bf873c,0x17c0d626,0xea422058,0x8140ba40,0x6c0d626,0x68c22122,0x8140543d,0x67c0d626,0xddc220d5,0x83406e61,0xc1c0d626,0x16c2156c,0x81bfc96e,0x7ac0d626,0x524208a0,0x83c0b2f0,0xf2c0d626,0x53421fcf,0x83c0b030,0xb4c0d626,0x7ac1f61a,0x6a40c98d,0xfec0d626,0x8a42093a,0x7c40cd76,0xd5c0d626,0xcc21455,0x81408dcb,0xfec0d626,0x75423427,0x81408adb,0x57c0d626,0x14c1846c,0xeec0b316,0xa8c0d625,0x65c138eb,0xd9c0aa0f,0xc4c0d625,0xb8c22284,0xe1408284,0x5cc0e87a,0xc04168e8,0xe1c0b3a3,0xb9c0e87a,0xab41a15c,0xe1c0b6c0,0xd7c0e87a,0xc441673f,0xe1c0b119,0xfec0e87a,0x99c220c9,0xe1406bbb,0x6c0e87a,0x68c22122,0xe140543d,0xd0c0e87a,0x4dc215e1,0xe1406684,0x45c0e87a,0x56c22173,0xe1404d9b,0xbdc0e87a,0xc94164cf,0xe3c0af3c,0x4dc0e87a,0xc34284e7,0xe1c08dbc,0xc1c0e87a,0x16c2156c,0xe1bfc96e,0x5ec0e87a,0x3f425c34,0xd5c0af1b,0x73c0e87a,0x5b426e21,0xe1c0a435,0x5fc0e87a,0xaf4287b1,0xe1c0a106,0x58c0e87a,0xa8c214fb,0xe14062ac,0x3ac0e87a,0x90c2147e,0xe1bfc965,0x3bc0e87a,0xa7426e15,0xdf40b184,0x82c0e87a,0xab426ef6,0xdf40b186,0xa4c0e87a,0x5f421eb5,0xa4c0c199,0x7c0e87a,0x84427038,0xdf40ceac,0xd8c0e87a,0x6942078a,0xe140b9f0,0xcac0e87a,0x1e421f58,0xdf40bea3,0x9c0e87a,0xb9425d5d,0x35c0bf35,0x92c0e87b,0x9c4272d0,0xe1c0c14d,0x90c0e87a,0x8ec22493,0xe1bfa522,0xd5c0e87a,0x8cc22498,0xe140542d,0x38c0e87a,0x94c221dd,0xe1404883,0x59c0e87a,0xe2416100,0xd7c026af,0xe3c0d7a0,0x82417265,0xbfc01c,0xe8c0848d,0x40416d47,0xb5bfa385,0x81c0848c,0x19417646,0xe7c00fac,0xfcc0848c,0x44419245,0x8ebf9fc4,0x8fc075e6,0xab418557,0x9b3f1096,0x41c075e6,0xeb419447,0x3abe61ad,0xbbc075e6,0x5f419792,0x603f01d1,0x83c075e6,0xc9418615,0x9bbf0756,0x49c075e6,0x4e4194bb,0x973fb1b6,0x59c075e6,0x9417e72,0x9b3d2952,0x82c075e6,0xbc418289,0x9bbf1096,0xc2c075e6,0x72416192,0xe73ef9dc,0x62c0848c,0x85416981,0xb13f7478,0x62c08e25,0xc4418728,0xe7400395,0xcbc0848c,0xaa41870f,0x814003bb,0x5fc08e26,0x6b41867c,0xb34005d6,0x34c0848c,0x10418278,0x594006ae,0xd2c08e26,0x841937f,0xdf3f4d56,0x7bc0848c,0x53418ce7,0x813fe293,0x64c08e26,0x5d4195e9,0xf93abf1a,0x32c08e13,0x8d418820,0x81c001d4,0xaac08e26,0x5b4184df,0x50c00feb,0xfac08e26,0x2d417e92,0x40c00b5a,0x93c08e25,0x4d4177b2,0x65c000da,0x35c08e26,0x314171f0,0x1bfe4cf,0x41c08e26,0x58419166,0x813fbf38,0xe0c08e26,0x6c4170f5,0x81bfc3af,0x79c08e26,0x79416d59,0x81bfc2ad,0x48c08e26,0x1b417b5a,0x93c0079d,0xc3c08f8d,0xb641902a,0xc23fd7da,0xb5c09413,0xb84188c9,0xf1400aae,0x95c09354,0xa34177d2,0x4f3fe23f,0x71c0af9e,0x8b41862e,0xacc00dc0,0x79c09772,0xd44191fb,0x7f3f84f1,0x1c0a0d9,0x3041699a,0xb63f65b9,0x1ac0afca,0x1741698b,0x683f3947,0x48c0ae91,0xb4416723,0x33eeb91,0x91c0afb4,0x7c418981,0xd33ff4b8,0x58c0a015,0x8e416aa5,0x93bf8975,0x2cc0af7c,0x6e41773f,0xffbff718,0x13c0afbf,0x714165e3,0x323f43e2,0x24c0a202,0x39416957,0x77bf31d2,0xb0c09d1f,0xeb4186c6,0xacc00156,0xdcc09b62,0xc54185f4,0x2d400e01,0x34c0abb4,0x4c4195a0,0x1e3ea716,0x58c09d6d,0x34416cf9,0xf63fbe85,0x35c0aa9b,0x3e416ecd,0x2a3fa75b,0xf1c0a683,0x1141854c,0xc5400ffd,0x56c09bbc,0x3841691f,0xb7bf37f3,0x97c0a52a,0x8b4181da,0xe1c00189,0x88c0a3b5,0x6f419401,0x11bebcb7,0xc0c0a1c4,0x9e419554,0x2abf3040,0xdbc0aef4,0x7d419491,0x1abe853f,0xa9c0afc0,0xfd418241,0x50400585,0xaac0baf3,0xc541676a,0xed3f1273,0xf3c0baf2,0x7641665b,0x4dbb196b,0xe0c0baf3,0x6c4170f5,0x4dbfc3af,0xdbc0baf3,0x7d419491,0x4dbe853f,0x2fc0baf3,0x2b4183ec,0x4d3ff333,0x17c0baf3,0xd4416ca1,0x4dbf579d,0x14c0baf3,0xd4179a4,0x4dbff2c4,0xedc0baf3,0x2741676b,0x4dbf05f5,0xbdc0baf3,0x94416bc7,0x4d3f39a2,0x3cc0baf3,0xa8419118,0x4d3f73ab,0xf5c0baf3,0x3418f60,0x4dbfa026,0x72c0baf3,0xd418df9,0xb4bfb6ab,0xbbc0b959,0x6b417e23,0xb4bfe661,0x60c0b959,0x644182f6,0xb4bff2b2,0x1ac0b959,0x9418589,0xb4bff219,0x3cc0b959,0xa8419118,0xb43f73ab,0x8cc0b959,0xb54192e3,0xb43e336e,0x13c0b959,0xc6416b34,0xc5bf0ea5,0x4ec0b959,0xb1418748,0xbc3fea30,0x96c0b959,0xfd4191ca,0xb43f382e,0x6dc0b959,0x8d418f3a,0xb4bf9e0a,0x97c0b959,0x79417a94,0xb43fd721,0xacc0b959,0x54178cb,0x79bfcea7,0x81c0af1f,0x2d41852a,0x5ebfeeed,0xf5c0b002,0x2f418669,0x113fecdb,0x1cc0b064,0xe4189d2,0x243fd94d,0x83c0af97,0xc0418b9d,0x243fca76,0xc4c0af97,0xc44183f4,0x2dbfeccc,0x54c0aeb4,0x484192bd,0x2d3b0787,0x91c0aeb4,0x55416f1b,0xdbbf8112,0xfdc0aefb,0xb24180a2,0xb63fe72d,0xa7c0aee7,0x2d4175da,0x2dbf5207,0xf3c0aeb4,0x641820d,0xc43fb080,0xedc0aeb3,0xee418098,0xb8bfaced,0x8ec0aebf,0xb94189c6,0x2dbf97fe,0x92c0aeb4,0xcc418a66,0x21be6eed,0x84c0ba90,0xae418913,0x83bf8467,0xd8c0b688,0xad4183f7,0x5e3b6831,0xf0c0b484,0xdc4184e1,0xc33db0b9,0x90c0b52b,0xbe418d6f,0x77bee511,0x19c0b4f6,0xe741865c,0xed3efac8,0xacc0b92d,0x9c4187c5,0x6e3f03a2,0x47c0b9df,0x32418a7e,0x833f6691,0x5fc0b688,0x4f4186d1,0x953f843f,0x95c0b8f3,0xed41868d,0xfb3f9cb9,0x43c0b503,0x544185dd,0xae3fa5c4,0x96c0b2e4,0x72418346,0xd9bf754d,0x40c0ba30,0x1b417f73,0xa93f8163,0xb8c0b850,0x6f418310,0x60bd4481,0xe1c0b4f8,0xbd4178e0,0x633e87ff,0x4ac0b9f0,0x11417881,0x513f06a8,0x1fc0b8f7,0xb9417852,0x833f3b8c,0xd1c0b688,0xd44179a9,0xae3f78f1,0x87c0b2e4,0xb74176b8,0x223ec4f0,0x24c0b851,0x20417853,0xd7bbf4b6,0x10c0ba3d,0x344175da,0x1b3e324b,0x13c0b84c,0x5241739a,0xae3eb7d6,0xd8c0b2e4,0xb24176cf,0x72be9c0d,0x56c0b8b6,0x794172e5,0xaebdfbe8,0xa3c0b2e4,0xd041827f,0x633f7528,0xdac0b9f0,0x84418400,0xd0c00629,0x29c0848c,0x5941978c,0xd63f0185,0xa0c0848c,0xc418eb1,0xa24004cc,0xf3c0848c,0x9f418f6d,0xd3fb23a,0x74c0848d,0xe0418547,0x60bf10db,0xd8c07723,0x61418014,0x49beb071,0x36c0772e,0x3041815d,0x883ef4d5,0xaec0772e,0x23418816,0xc7bd2b2f,0x2fc07910,0x11418205,0xd63ed436,0x5c07a01,0xeb4180cc,0x8e3e8ec7,0xe6c07a04,0x1c418118,0x82bea5d1,0x86c07a02,0x7341821b,0xd6becb9c,0x76c07a01,0x124181a4,0xfdbec6f9,0x8ec07d2f,0xb84187aa,0xed3a0893,0x45c07d28,0xb41872b,0xedbe6e0b,0x25c07d28,0x8418281,0xd43edd05,0x32c07d99,0x3e415f58,0x11403505,0x66c0b239,0x3d414829,0xb43fb02c,0xe6c0b159,0x96415adc,0xc0bfb623,0x70c0b1ed,0x834157de,0xb4bf474f,0x94c09159,0x41416288,0xaec002bc,0xffc0b159,0x6e415f6c,0x4dc03568,0xdc0b2f3,0x2141a3f7,0xe7c0361d,0x5fc0d48c,0xcb41a304,0xddc0160f,0xadc0b3fa,0x96419683,0xabc003cb,0xebc09159,0xe84198d9,0xb4bfd54f,0xe4c09159,0x57419c30,0xb4bf2995,0x25c09159,0x6b41a3c7,0xc33fb160,0x3ec0b255,0xee419812,0xb4bedae9,0x60c09159,0xea41662e,0xb2bfb922,0x98c09159,0xa74163f3,0xb43f9b5c,0x83c09159,0xfd41a3c4,0x4d403582,0x54c0b2f3,0xa74147de,0xe73f1874,0x84c0d48c,0xc414fec,0xe7c02040,0xd2c0d48c,0x7b4147e3,0xe7bf1abe,0xcbc0d48c,0xd417986,0xe7c029aa,0x15c0d48c,0xfc418b90,0xe7c02654,0xc4c0d48c,0xe7419a5c,0xe7c022ff,0xbbc0d48c,0xd41a222,0x42402572,0xc5c0b3c0,0x9b419f13,0x63fff91,0x61c0b48d,0xd241a1c2,0x1a401ae4,0x7fc0b7c0,0xb541a154,0x354019c6,0x47c0b7c2,0x90419ffb,0xc04022bd,0xe0c0b7c0,0xef419cb1,0x1abf9ea9,0x63c0c7c0,0x824199b0,0x873fa53a,0xcdc0c7bf,0xf415b33,0xc84028b8,0x2c0c107,0xe2415c30,0x8340101d,0xd0c0c7c0,0x83417998,0xc8c028fb,0x5cc0c107,0xf0419caa,0xc8bf9e31,0x88c0c107,0xcb415b20,0xcc3f9f12,0xd1c0c107,0x104163f7,0xc83e21cc,0x2fc0c107,0x6d417473,0xc8bff274,0x5ec0c107,0xe415bd4,0xcabfa2dd,0x49c0c107,0x65419614,0x3ebe5f8c,0x41c097c0,0x81419452,0x1abf6eb1,0x66c097c0,0xe04181fe,0x1a400f48,0xe9c097c0,0xa416869,0x1abfd512,0x7ec097c0,0x64164b1,0x1a3ef39e,0x6c097c0,0x134168bf,0x1a3f9148,0x5ac097c0,0x2a4170f3,0xf0400874,0x24c097bf,0x85c0cfe1,0xf8c0c54e,0x9fc0ec28,0x2cc14324,0x73c0bf1c,0xc8c0ea3d,0x14c19591,0x7dc0c5be,0xcc0ec14,0x7a4009ac,0x7b4065c5,0x28c0ee14,0xf1c21f0f,0x7dc0b83b,0x5ac0ee14,0xe841696f,0x7b40cea5,0xd3c0ee14,0x6b42085b,0x7b40cf58,0x2bc0ee14,0xebc221f9,0x7bc007fc,0x29c0ee14,0x37c21ef8,0x7bc08542,0x46c0ee14,0x524284d0,0x7bc0aa7c,0xf0c0ee14,0x904287d5,0x7bc09494,0x67c0ee14,0xf742873d,0x7bc08610,0x22c0ee14,0x9dc1d6bf,0x51c0724a,0x4dc0ee15,0x28c2016c,0xc2409a27,0x61c0ee15,0x92c1435d,0x7b40cdb0,0x6dc0ee14,0x9f40031e,0x7b3e0dab,0x75c0ee14,0xfc21e7b,0x7dc0b6fd,0x71c0ea14,0xcc428894,0x3240ca27,0x31c0ea76,0xa2c226d1,0xa33f8298,0xc0ea15,0x1e400a1e,0x9e4065dc,0xbec0ea16,0x15411d5a,0x64406652,0x98c0ea13,0x4a411eb5,0x7b4063ce,0x9ec0ea14,0x38c1d6ba,0xd9c072d7,0x55c0ea15,0xe8c1d6ec,0xc8409a77,0xafc0ea17,0x10c195ae,0x7b40cd75,0x8fc0ea14,0x58c0d052,0x7b40c77e,0x10c0ea14,0xc740001f,0xb3e717f,0x11c0ea18,0xa8411fe3,0x7f3e858e,0xe4c0ea14,0xc411fcd,0x7b405d78,0x54c0ea14,0x64416970,0x3040c83f,0xdac0ea2f,0x33421f28,0x7140c926,0xffc0ea3d,0x6f427369,0x73c0bc7f,0xd0c0ea3d,0x3cc22550,0xa54062d8,0x38c0ea3c,0x9ac2204a,0x60bfc1b0,0x7c0ea3d,0x4d41722f,0xfbc00513,0x64c075e7,0x604172cf,0xe7bffeb1,0x5cc0848c,0x5741737a,0xd4bfd479,0x42c0848c,0xab4172a3,0x9bbfc3b4,0xc3c075e6,0x32416c26,0x9bbfa2aa,0xd2c075e6,0xdd416660,0xe2bfadcd,0x61c075e8,0x32419125,0x103f9eae,0x29c075e6,0x10418e31,0x9b3fd295,0xb2c075e6,0x68417232,0x8e4005ce,0x45c075e5,0x174184bf,0x9bbf1511,0xd9c075e6,0x74183a8,0x9bbf16f0,0x89c075e6,0xe418124,0x474006d9,0xf3c0848d,0x3441913c,0xca3fa386,0x68c0848c,0x914190d7,0x813fab29,0x7ec08e26,0x94418f42,0xe73fc5bf,0x6ac0848c,0x24418c49,0x813fff29,0xdec08e26,0xb441698f,0xa93f9dac,0x3bc091d0,0xc5416ae9,0xe53f6a39,0x68c0aeb5,0xf4179ab,0xe53fec44,0x66c09efc,0x83416cbf,0x823f9431,0x48c09e67,0x8841673f,0x13dead6,0xb6c09d97,0xb84185e8,0xc5c00140,0x29c0ab62,0xb7418af6,0x2bbfea7a,0xcc0ab07,0xf3418f93,0x2abfb720,0xfcc0aab6,0xc3417d41,0x28bff6d6,0x4ec09c0e,0x87417fca,0xa1c00b35,0x5cc09fe9,0xc8419279,0x24bf7526,0x83c09a35,0x7841892f,0x8b3ff729,0xc7c0a7ec,0x3a41943e,0x4f3e0693,0xb3c09976,0x47416ac4,0xbcbfa593,0x6cc0a8dd,0x204168aa,0xa8bf96f0,0x20c098e2,0xbb417652,0x8dbfdb99,0x1fc09437,0xda418daf,0x16bff270,0x7fc0afb1,0x7941902b,0x1abfb759,0x34c0afc0,0x4f418aac,0xe23fec3f,0x3c0afb0,0x864190cc,0x1a3fac04,0xa1c0afc0,0x9417f2c,0xb63ffd4e,0x40c0af69,0xc4418276,0x1a4005af,0xbbc0afc0,0x8241856a,0x504005ae,0x51c0baf3,0x724181f0,0x4d3ff115,0x68c0baf3,0x72419324,0x4d3d83bf,0xa9c0baf3,0x704180fd,0x4dbfee94,0x45c0baf3,0xaa4180d1,0x4dc003bb,0xfbc0baf3,0xed418c65,0x4dbfca0f,0xa5c0baf3,0x404172ec,0x4d3fb086,0x5dc0baf3,0x33419194,0x4dbf56a4,0x3dc0baf3,0xe14190aa,0xb4bf86ee,0xf0c0b959,0x6d416996,0xb4be411c,0x44c0b959,0xc74174c0,0xdcbfbd0d,0xbc0b958,0x14177a1,0x9f3fccfb,0x61c0b9e3,0xd94192b3,0xf5bec3ed,0x66c0b959,0xed4184e7,0xb43fef80,0x65c0b959,0x2c416a96,0xb43ed3bc,0xc5c0b959,0x71418a96,0xb4bfd721,0xb3c0b959,0xd416de1,0xb43f6f89,0x7dc0b959,0x4d418c49,0xb4bfc767,0x5c0b959,0x41418150,0xfbbfec7e,0x95c0b065,0x85417275,0x1c3fa943,0x5cc0b042,0x21417a3b,0x243fd221,0xd1c0af97,0x5a4181f0,0x24bfeaa1,0x76c0af97,0x424171a3,0x12bf9cb2,0x55c0af94,0x90416a63,0x2fbe38a0,0xc0c0aeb4,0x2416b62,0x2dbf0049,0xf9c0aeb4,0x37419231,0x2dbefe88,0x50c0aeb4,0xf9418d44,0x2d3fb7da,0x83c0aeb4,0xc0418b9d,0x2d3fca76,0xd0c0aeb4,0xd4417389,0x91bf17f2,0xb9c0aeb6,0xdc4183f3,0x2dbfb262,0xcdc0aeb4,0xd4171a5,0x2d3ddcc2,0x7cc0aeb4,0x7418cf7,0x2dbf5162,0x6fc0aeb4,0x3d4185bd,0x83bf9927,0x45c0b688,0xc5418b4e,0xd4bcd53a,0x9dc0bad1,0xc24184ce,0xf13d43db,0xfac0b4f6,0x18418a1c,0x59bf33b1,0xe0c0b977,0xe5418ae4,0x6bbf3d42,0xe4c0b846,0xd84184a7,0x33da3d2,0x8dc0b4f7,0x7b4187a1,0xad3f0d30,0x89c0ba17,0x6c418376,0xd43d005f,0xebc0b47f,0x9d418cb4,0x3c3e652c,0xfcc0b8a2,0xa8418ae9,0x633edee2,0x94c0b9f0,0xa7418434,0xe5bd9cae,0x5ec0b4a8,0xac418a6c,0x2c3f2b1b,0x99c0b99f,0x4d418a81,0x983f4a2e,0xddc0b851,0x6f4183ee,0x253f3a9e,0xb2c0ba02,0x634183f1,0x2abf025f,0x7dc0b8aa,0x81418544,0xd9bf76b1,0x1ac0ba8a,0xec418307,0x953f8abd,0xeec0b90c,0xbf4183ed,0xfa3f919a,0x35c0b846,0x9a418069,0x833f9140,0xd4c0b688,0x344181a4,0x743ec72f,0xaec0b816,0x3417cc3,0xae3f8f40,0x6bc0b2e4,0x5a417b7f,0x5d3f809d,0xd0c0b4f9,0x2f4177fe,0x7c3ef469,0xffc0b96f,0xc24173e2,0xf13e6251,0x73c0b4f3,0x8e417d1b,0x6fbf1a59,0xa3c0bae3,0x764177ff,0x72befdc0,0x38c0b8b6,0xd541766d,0x22bf01cd,0x60c0b6fa,0x6241739d,0xaebeb949,0x97c0b2e4,0x3241810b,0x173f8421,0xf9c0b8f5,0xae4160a1,0xcabf01bb,0xfac0848c,0x3c41663b,0x9bfb0a4,0xc9c0848d,0x6b418832,0xbbc01929,0x76c0848c,0xa7418e0f,0xe33fe078,0xb3c0848c,0xc141886f,0x493e3ae0,0xf7c0772e,0x44418786,0xb7bec74e,0x3c07645,0x4841843b,0x49bf171b,0xf2c0772e,0x134187b1,0x49bea582,0x8ac0772e,0x66417eff,0xc3be12bb,0x97c0772e,0xb34183e7,0xba3f1325,0xa3c0772e,0xba418471,0xd6bef310,0xfcc07a01,0xb1418023,0xd63d7ddd,0x7bc07a01,0x774183ef,0xd63eeaf5,0xb4c07a01,0x58418219,0xd63ecb59,0x5ec07a01,0xd941879c,0xd63a067a,0x7cc07a01,0xe24184dd,0xa3eec06,0x52c07d2c,0x9741878a,0xedbdf5e3,0x66c07d28,0x22418555,0x4bbee6c7,0xbfc07d23,0x174181a9,0x8dbebe80,0x25c07d63,0x7c41807b,0xf9be3863,0xbbc07d64,0xad41855e,0xbc3edd6e,0xa1c07d79,0xa8c10f70,0xbac01801,0xe0c0616b,0x64c11c86,0xbabf5e40,0xe5c0616b,0x14c11db0,0x863fc97a,0xcc07e38,0x4c0af79,0x15bff576,0x24c07e38,0x95c0c59a,0x86401380,0x35c07e38,0x85c0db0a,0x86c02d97,0x2dc07e38,0xcfc0db3f,0x86c01ebc,0x17a07e38,0x7e3886b1,0xe8465cc0,0x1f53cc0,0x84b51b48,0xfcc11745,0x863f3d39,0x1ae87e38,0x7e3886b1,0xab56b6c0,0x89776cc0,0xa2710018,0xcdc0ba63,0xc905c,0x91601cf1,0xd5e9c103,0x6bbac01e,0x598cc061,0xffc9c109,0x6badc00a,0x7823c061,0x7193c09a,0x6bbabf28,0x7eaac061,0x40e6c0a4,0x71000c37,0xc0a74a43,0xc476b2b,0x8508f500,0x33c102f5,0x873d9a89,0x32c0616c,0xa1c0dc3d,0x143dbfd7,0xa86176,0x616bba35,0xbab11c44,0xdec0616b,0x8dc124b3,0x3c2ab6,0x515b70f9,0x3d60c116,0x6bba4006,0x42dfc061,0x6656c0f1,0xf0d8bf06,0x69f5c06c,0x4862c0e5,0xf0d83ebe,0xc763c06c,0x5433c0f5,0xdc0ebf1d,0xb84bc06e,0x4ef4c102,0xdb66bda5,0xa3dc06e,0xe0e7c101,0xf0d8ba19,0x7e95c06c,0x2d99c0e5,0xdc5dbe59,0xd08bc06e,0x1f4bc0f4,0xdc5d3ed2,0xa711c06e,0xb1b8c0e7,0xdc5dbe99,0xa961c06e,0xb717c0e7,0x20923e99,0x7783c06f,0x534cc0ea,0xf10030bc,0x6fb59e20,0x7c33ec0,0xe8d899c1,0x871c433f,0xe5c203c0,0xc49a1c0,0x88c7b0c0,0xc1e8ec0,0xdd4ac3c1,0x871c43bf,0x144206c0,0x9c5437c1,0x5cf5000c,0xc0d6abf7,0xbff9775c,0xc0871c11,0xc119c5a5,0x3edb14ec,0xc0871c43,0xc0b9b635,0xbfb781f1,0xc08b719b,0xc0b0bda3,0x3f7f55de,0xc08b7247,0xc11c7f0f,0xbe4c68a9,0xc08b6a89,0xc11c22bf,0x3ec7735c,0xc0a78b56,0xc11c2f21,0xbebc28d4,0xc0a794cd,0xc10fc27f,0x3fc5993d,0xc0abe910,0xc0c14984,0xbfb2e337,0xc8abe910,0xe910b119,0x21f7c0ab,0xc0fc0cf,0x41a04e0,0x8f11bfc,0xc0abe910,0xc0d6db70,0xbff9d27c,0xc0abe932,0xc0d713e2,0x24f08f2a,0x39857100,0x7dbbc114,0xf11a1c8e,0xafaa5404,0xad972dc0,0xabe9103d,0xb411e4c0,0x3e51f4c0,0x14f50018,0xc0df8f0f,0x40010410,0xc0ac2aaa,0xc0e1f334,0xc00ad2e5,0xc0aa3079,0xc0d5a709,0xc004fa1a,0xcca7930c,0xc20f100,0xd9c0a793,0x80c0b450,0x4abf9965,0x56c0a795,0x7dc0c583,0xc3fe4ae,0xa6c0a793,0x8bc111b9,0xcabfaac0,0x71c0b48c,0xb5c10b86,0x1a70d68a,0xa8f304f1,0xf352c114,0xfc9cbe9d,0xb3e3c0b3,0x8f60c0e4,0xf11a1cdd,0xbeb1db04,0x60903fc0,0xb48b5fbf,0xb45cb5c0,0x443ab8c0,0x28040018,0x8ce7b11a,0xef03c0b4,0xb8d0c10b,0x710048a6,0xc0c16322,0x24b350f4,0x16597100,0x322bc110,0x71001880,0xc112aed8,0xc365a9b,0xd604f100,0x8ac0b9e3,0xd0bec93c,0xe0c0b38f,0x10c0b8ba,0x1a3441cc,0x4ef0771,0xcccf64c1,0xa7711a34,0x39c112b3,0xc367c,0xc5f804f1,0x59a7c0d1,0x901bbf64,0x8c3fc0b3,0xa1b2c0ee,0xf20018a9,0x278dffff,0x13c10de0,0x163d0bba,0x2ec0b1ee,0xb6c0cfa9,0xc5bf4fd6,0x60c0b1fe,0xe1c0ef80,0x233faa61,0x79c0b1f9,0x9dc0f8b2,0x363fa72a,0xe0c0b1f6,0xb1c0d0e6,0x683f62fb,0x81c0b223,0x2ac109c3,0x403f1dc6,0xc8c0adcd,0xfbc10698,0x40bf5fce,0xa1c0adcd,0x9ac0f220,0x933f9e22,0xc1c0ad0c,0xb5c0ccd4,0xd4bef6c0,0x55c0adc7,0x14c0dd7b,0x40bf88d0,0x49c0adcd,0x7c0e8d9,0x98bf9a78,0xcac0adcc,0xbec0ca0a,0x683e2915,0x68c0adcb,0x96c0e33c,0xa2bf955c,0x61c0ac7f,0x7ac0e852,0xbf3f9a1c,0x87c0ac8d,0xd6c10c1a,0x923e5a35,0xc3c0ac85,0x92c10af7,0xe83eefe6,0x4bc0ac84,0x5ac0d006,0xe5bf5a9b,0x77c0a900,0x6dc109bb,0x78bf4d71,0x29c0a900,0xf2c0c66c,0x82bd579a,0xb5c0a900,0x46c0dcc2,0xb43f965e,0x2ac0a900,0xec0f9fd,0xd43f9c10,0x31c0a900,0x89c10c2c,0xe73e8841,0x99c0a900,0x72c10879,0xac3f4353,0xabc0a900,0x4dc0c9a1,0xe7be1782,0x24c0a8ff,0x29c0cd01,0xa4be27eb,0x54c0af98,0x21c0ee38,0xf3bc0c93,0xffc0ac71,0x3bc0e1c1,0x5c3a9aaa,0x85c0b02b,0xe3c0d923,0xaf3ef36f,0xadc0b2e9,0x1bc0f2a3,0xc53e3d9b,0x2fc0ad1c,0xcec0f7eb,0x193f2e88,0x2c0b22f,0xfbc0fc9e,0xd33f8122,0xd7c0b13d,0xa6c10284,0x5d3f7aee,0x43c0ae6b,0x10c104c0,0xd33f4158,0xd9c0b13d,0xcec0dbcf,0x5dbe2355,0x6fc0b228,0x2ac103ee,0xfcbe25ca,0xdec0b254,0xaec104b5,0x88bef39e,0x5fc0b2e9,0x3bc10008,0x97bf35c6,0x61c0b28d,0xa4c104b0,0x76bf2772,0xb1c0b262,0x19c1071d,0xd3bf11e5,0x51c0b13d,0xc0c0eb4e,0x52be95ce,0xfbc0aeac,0x50c0f711,0x76bf7b1d,0x47c0b262,0x6c0eb59,0xb3bd0a4a,0x6fc0ad0c,0x87c0d7e2,0xfbf21a5,0xb1c0b22a,0xeac0d709,0x5dbf5177,0x98c0ae6b,0x4ec11cb7,0x433f3bf2,0x8cc0c71c,0x34c12097,0x524010a2,0xb7c0c71c,0x74c115df,0x43c006eb,0x6dc0c71c,0xe9c11d68,0x43bf2bed,0xecc0c71c,0xcfc121bd,0x93402165,0x8fc0c0d1,0x48c0912a,0xcabe98fe,0xc4c0a8b5,0x9fc09668,0xdd3f77ad,0xf7c0a8b5,0xcec0a52e,0xdd3fea1a,0x2ec0a8b5,0x8bc0920d,0x11bef538,0x79c0871c,0xdac0c9ba,0x43402f1a,0x1cc0871c,0x25c0917e,0x433e4c58,0x60c0871c,0x2ec0e7f8,0x711a583d,0xc09f9811,0x8ccaad15,0xa010f104,0xe2c12888,0x43be4c57,0x9fc0871c,0x52c0f773,0x43c03f9a,0x1dc0871c,0xec1216d,0x24cb68,0xabb68f71,0xe1df01c0,0xc671000c,0xc0c2a3,0x241902,0x1d361c71,0xcf0260c1,0x81710018,0x8ec0d35e,0x6028eb,0x46a314f5,0xa051c125,0xea68beaf,0xd625c08b,0xcbd1c122,0xe910bf70,0x79c4c08b,0xeeccc0e2,0xe910c030,0xf500488b,0x8be9100c,0xcd8abfc0,0xfa7d56c0,0x8be903bf,0xdd9f45c0,0xacf03c0,0x8be903c0,0x8f11a40,0xc08be910,0xc0b3ee98,0x3f96c101,0xc08be910,0xc0ba9542,0xcbb491f,0xde08f500,0xc4c0f054,0xde400bd0,0x6dc0b01d,0xadc0fc9f,0x72400e33,0x1ad0adf9,0xf97200f5,0xbdafc0ad,0x8adbc115,0xf972bfa9,0xb11af4ad,0xc0adf972,0xc0db1b7a,0x30090075,0x3541fa00,0x72c0a936,0xaabd8fc3,0xc9c0adfe,0xcec0e064,0x72c00bfb,0x14c0adf9,0x67c0aaaf,0x923eea98,0xd1c0adf4,0x60c0c44a,0x22bfe104,0xb4c0ae0a,0x90c0ad9d,0x763b1adc,0x7bc0b24f,0x17c0b506,0x763f764a,0x79c0b24f,0x30c0cddc,0xa0bfe69d,0xba22f71a,0xf8fa92c0,0x692d1c0,0xb2476b40,0x194e7fc0,0xe2531c1,0xb2510d3f,0x58d50c0,0xfa2b49c1,0xba4f76bf,0x18d3ebc0,0x26b303c1,0xba4f763f,0xba911aac,0x717cec0,0xa93259c1,0x4f10024,0xc100e55e,0x3fc46c01,0xc0ba4fc6,0xc0c28b5b,0x18283ff7,0x287bf200,0x71c11222,0x763e1559,0x1ec0ba4f,0x78c0c540,0x73f5c7f,0xc0c0c0b6,0x81c0a750,0x15400b7b,0xcfc0c0b6,0x3ec11d21,0xd40033d,0xa6c0c0b6,0x65c13235,0x76bfda1d,0xa1c0aa4f,0x71c138fe,0x76bff0ab,0x9ec0aa4f,0x66c13a84,0x76c0004b,0x5ec0aa4f,0xfec12c8c,0x76bff99b,0xdc0aa4f,0xb6c13023,0x76bfe913,0x48c0aa4f,0xffc12a79,0x76c00b23,0x6ec0aa4f,0x2bc12b46,0x76c0036d,0x2dc0aa4f,0x2ec13447,0x400241d,0x14f10018,0xc0abe910,0xc12dbeac,0xc00c0de9,0xc0abe92f,0xc226c8f7,0xc0c4f708,0xc0d62683,0xc0dcae4d,0xcc3b873,0x1710f100,0xf9427429,0xabc0add8,0xc0c0d626,0xec144f6,0x8140cc16,0x2cc0d626,0x96428501,0x24aaa3,0xe19b1cf1,0xf3624287,0x2650c04b,0x7c09c0d6,0xe7214287,0x2681c03e,0xcebfc0d6,0xbc17415f,0x85f7c03d,0x6186c0d6,0xe9814274,0x71003cba,0xc2244759,0xc4d8e65,0x93907100,0x228ec224,0x711a64a5,0xc224cc1f,0x185be465,0x8f10f100,0xa841bb23,0xf1408229,0xb4c0d663,0x22c22490,0x8340776e,0x59c0d626,0x58420836,0x78b066,0xf80626b5,0xae5e7041,0xd6a162c0,0x81b119f8,0xc0c0d626,0x3d421f14,0x24b60d,0x13662f71,0xe431e8c2,0x45710060,0x420893,0x60be6f,0x8e48471,0xc1c00942,0x571000c,0x33c12cd2,0x19ecc3dc,0xace04f1,0xb6acc0d8,0x7afdc0b2,0x781dc0e8,0x7009c224,0x41a5879,0xe1b10120,0x54c0e87a,0x44c21641,0x186b16,0xf58210f1,0x735cc214,0x7ae1bfc7,0x6c77c0e8,0x320e416b,0x7aa740cc,0x41d5c0e8,0x3f4441a1,0x7119ecc1,0x426f02ba,0x60a43359,0x97e37100,0x9972c223,0x62000c88,0xc213b5a9,0x4821ee,0xb100a804,0xc0e87ae1,0xc2213d78,0x54ef879c,0xf00400,0x7ae108f1,0x8475c0e8,0x6f44c1f4,0x7b2d40ba,0xc2ebc0e8,0x1922421f,0xf10060bc,0x85b4d504,0xc3d08fc1,0xe87bb7c0,0x206e6dc0,0xae3d9f42,0xa1710060,0x8ec18509,0xcb811,0x84672371,0xb4c083c1,0x6262000c,0x6dc1ded9,0xf2003c37,0x6cfea90f,0xab100642,0xe87aa7c0,0x4709bcc0,0xb2f679c1,0xe87aa4c0,0x8c818dc0,0x2495a7c1,0xb3c17100,0x4a234284,0x71003c9d,0xc14b6e1f,0xfcb845d2,0x1ea27100,0x7a78c213,0xf1001801,0x525fd504,0x877e4e42,0xd7c01abf,0xb17f4ec0,0x6cd04ec0,0x10f1015c,0x4171d38b,0xc0057caa,0xc0848ce7,0x4173a336,0xbfe078e2,0xc0848ce3,0x4180608a,0x18119ecf,0xd0fff600,0x4181c637,0xc004574f,0xc0848d9b,0x417354b7,0x3fcd16a0,0xc075e68a,0x417f0f4a,0x3e5f30a5,0xc075e69b,0x418e8f6f,0x3fc3b4ab,0xc075e69b,0x41863e67,0xc004a516,0xc075e729,0x417f6d1e,0x401db92c,0xc075e60c,0x418ed038,0x40058a01,0xc075e80c,0x4160ff8c,0xbf0f7165,0xc075e421,0x4188708d,0xbe39906d,0xc075e69b,0x4182a5f7,0xc001afb4,0xc075e69b,0x416737a0,0x3fabf4d3,0xc0848ce7,0x4175644c,0x3fdfdc83,0xc08e2683,0x418e23e2,0x3fd47968,0xc0848cd4,0x4166ee57,0x3f74c1ca,0xc08e2598,0x417cb740,0xbffd21ee,0xc08e268d,0x416ce7f6,0x3fbebd01,0xc08e2681,0x4192bdea,0x3fa3de0d,0xc08e2681,0x416b98ed,0xbf8ff0b3,0xc08e2681,0x416d514f,0xbfc26584,0xc09004b2,0x417371d1,0xbfed1be7,0xc08fbbcd,0x41952e6d,0x3f382ba6,0xc0947f76,0x4196294f,0x3dc026cc,0xc0a5757b,0x41681d7c,0x3f2b4f1e,0xc0afc029,0x4167a109,0x3e698e54,0xc0ae4094,0x4185ca09,0x400e7443,0xc0a3c2c2,0x4183e373,0x40022c1f,0xc09faf0a,0x418ccf12,0xbfdaedcc,0xc09ad988,0x4181cca1,0x40018876,0xc0a7623b,0x417c063d,0x4006c038,0xc0ab14ab,0x4191eff0,0x3f863bcd,0xc098d6a8,0x4167e37b,0x3ee12a73,0xc0a5d3da,0x4182865a,0x40029596,0xc097527c,0x417660d9,0x3fdc258d,0xc096da7b,0x4166d0b0,0xbef73beb,0xc0afac32,0x4187e3f4,0xc004987c,0xc0af2440,0x41859bf9,0x40058a33,0xc0afc01a,0x4172af69,0x3fcfc137,0xc0afc01a,0x418f1583,0x3fc89c34,0xc0baf350,0x4167928f,0x3f1dd1d4,0xc0baf2e5,0x41929c95,0x3f045b3a,0x1968e1b7,0xf34dd4f1,0xe7e9c0ba,0xd3244182,0xf34dc005,0x8ac3c0ba,0x28354169,0xf34d3dfa,0xad77c0ba,0xffc5418a,0xf34dbfd9,0xfcfbc0ba,0x4431418f,0xf34d3f94,0xe652c0ba,0x43424169,0x34f2bebf,0x5309c0ba,0x85624191,0x59b4bf67,0x7a89c0b9,0x83174192,0x59b4bf0f,0x72c5c0b9,0x50f84185,0x59b4bff2,0x268ec0b9,0xd4f14193,0x59b43d83,0x3ea1c0b9,0x89a04184,0x58d63ff4,0xee58c0b9,0x545c4177,0x59b43fcf,0x7ee8c0b9,0x6b5d417d,0x59b4bfe1,0xeff6c0b9,0x77ea4184,0x59b4bfef,0x6bc2c0b9,0x1d1d4190,0x59b4bf85,0x666bc0b9,0xd1354191,0x59b4bf53,0x8455c0b9,0xe6b0418d,0x57e4bfb8,0xae0fc0b0,0xb5634190,0x62a8bf7d,0xf9aac0b0,0x80e54182,0x63f1bfef,0xe1e3c0b0,0x56004186,0xf1000ceb,0x90530828,0x858eb041,0xaf2f4d3f,0x76a1a6c0,0xc4a66e41,0xb06edf3f,0x83ec4cc0,0xecccc441,0xaf97243f,0x6b1d25c0,0xdad90641,0xaef0113e,0x6cb76fc0,0x3c328741,0x44f50018,0x416a6f7f,0xbe551761,0xc0af9c28,0x418fb8fe,0xbf8f992d,0xc0af93a3,0x418ec469,0xbfa16f5d,0xc0af9724,0x41929aba,0xbe6fa1a1,0xc0aef400,0x416cbe2e,0xbf3d2afa,0xc0aeb42d,0x41867961,0xbfe9a438,0xc0aeb42f,0x416f0d2a,0xbf817729,0x78aeb337,0x2d08f100,0x80c0aeb4,0xea417def,0x2d3fdf09,0xc3c0aeb4,0x9c4173a6,0xcace1,0xd41e1cf1,0x21294178,0xb459bf84,0xe2ac0ae,0xc187418f,0xb42dbddc,0x58e4c0ae,0x36ac4172,0xb45b3ebf,0xd327c0ae,0x62174175,0xf1003051,0x7ffffff,0x4184bf35,0x3d2b1811,0xc0b4e8c2,0x418ac1cd,0xbf27e1fc,0xc0b96b2b,0x4189669a,0xbf7c69c6,0xc0b70f39,0x418a8265,0xbf661901,0xc0b68883,0x418c8ede,0xbec11e64,0xc0b845b5,0x4188b093,0x3eb53ae7,0xc0b9a1ec,0x41856990,0x3f5c1adf,0xc0ba39a1,0x418cb346,0x3e62f230,0xc0b8a674,0x4184727b,0xbe213c25,0xc0b55971,0x41889a72,0x3f71a1fd,0xc0b8b672,0x4186fc20,0x3f78d6a1,0xc0b9799c,0x41893a6c,0x3f80a4ec,0xc0b6f9d9,0x4183edbe,0x3f9c1659,0xc0b67acc,0x41865e57,0xbefa7009,0xc0b92ded,0x417f64a5,0x3f8182cb,0xc0b84316,0x4181e3d0,0x3f964b88,0xc0b6fcca,0x41833ac8,0x3cc6e6da,0xc0b4b758,0x417681dc,0x3e24b274,0xc0b9835a,0x417e3b47,0xbe5769a9,0xc0b98e9b,0x41834314,0xbd97470f,0xc0b4e93c,0x4176e520,0x3f10e13f,0xc0b6f96a,0x4178bdc2,0x3f58a0a1,0xc0b4f022,0x417598d4,0xbcd1efb7,0xc0b83cbe,0x41741d65,0xbd48f96e,0xc0b61225,0x417724da,0xbedcc272,0xc0b87990,0x41753bfe,0xbe98c826,0xc0b6fa83,0x4181800c,0xbf1d34f0,0xc0b9d480,0x41750598,0xbef0891a,0xc0b4f53a,0x417a892f,0xbf5de9c0,0xc0b6fa20,0x41801837,0xbf842de0,0xc0b851f6,0x4181de8f,0xbf9675e6,0xc0b6f6a3,0x417f1cd0,0x3f56de33,0xc0ba7c5d,0x418eae1f,0x3fc01c93,0xc0848d00,0x41882a91,0x401f17fc,0xc0848c99,0x41859d4b,0x3f0dcbcd,0xc0772e49,0x41844531,0x3f16eb70,0xc0772e49,0x418547c8,0xbf10d823,0xc077245b,0x417fcca7,0x3e87546d,0xc0772e49,0x418869cf,0x3e057c91,0xc0772ef5,0x4186757a,0x3f0039ac,0xc07710a5,0x4184424e,0x3f03af32,0xc0792e41,0x4185f795,0xbed26f61,0xc07a01c1,0x41871ded,0x3e6b69db,0xc07a01d6,0x41877c9d,0xbdf23b36,0xc07a01d6,0x41821d23,0x3ecd7343,0xc07a297c,0x4180c216,0x3e6a8113,0xc07a01d6,0x41877c12,0x3df4434e,0xc07a01d6,0x4182f895,0x3ee64f33,0xc07d28ed,0x4158a1e7,0x3fb1550d,0xc0b15975,0x415ae43a,0x3fb7dbcb,0xc0b159b4,0x414825d2,0x3fb048cf,0xc0b2f34d,0x4172ff5f,0x4033f5f9,0xc09159b4,0x41723688,0x40349c06,0xc0b1588a,0x41660d67,0x40111a0d,0xc09159b4,0x4165a4a5,0x400f8eda,0xc0b159b4,0x4159d261,0xbf9344fe,0xc09159b4,0x4173b67f,0xc03542ea,0xc0b159b4,0x418e12c6,0xc03514a9,0xc0b159b4,0x41983443,0xc03506fb,0xc0b26aba,0x419d4f76,0xc02800e2,0xc0b40ec5,0x419af780,0xbf935400,0xc0b159b4,0x41985470,0x3fe4269a,0xc0915a18,0x4194cff9,0x40116762,0xc09159b4,0x41934317,0x3fd77c0b,0xc09159b4,0x41854beb,0xc022d6aa,0xc09159b4,0x4194ea0a,0x78b508e6,0xf104f100,0x6f415b1f,0xe7c02366,0xc4c0d48c,0xc44178b9,0xc2677,0xec5f10f1,0x3dc9419e,0x8ce74020,0x8f4dc0d4,0x6c5141a0,0x8bdd401e,0x6e89c0d4,0x891a4179,0x71001829,0x41616ec5,0xc263a71,0x2d63f200,0x67419ea6,0x1a400165,0x13c0b7c0,0x6c419f59,0xbf402322,0x7ec0b7e5,0x5441a0ba,0x2d401fe0,0x53c0b7c1,0xb41a0d2,0xd7400743,0xdc0c7bd,0x9e4199b5,0x85bfa47c,0x84c0c7be,0x8141a244,0x1a3fe692,0xdfc0c7c0,0x1f419e56,0x2e401e9f,0x15c0c7bb,0x32419a3b,0xc840291e,0x9cc0c107,0x11419733,0xc84025e4,0x14c0c107,0x9c4178b4,0xf1000ca6,0x63f9491c,0x26eefa41,0xc107c8be,0x93c548c0,0x94c9e241,0xc107adbf,0x66228ac0,0x48b02941,0xc107c83f,0x9187a7c0,0xbcd7cf41,0x8f5000c,0x4164b5df,0xbef621fb,0xc097c01a,0x41802210,0xc00cbe44,0xc497c01a,0x1a0cf51a,0x16c097c0,0xa8418141,0x1a4021c7,0x5fc097c0,0x9a4160b7,0x1a3f395b,0x13897c0,0xc01a20f1,0x9d34c097,0xb39e425c,0x3d73c0bc,0x6a04c0ea,0x74514208,0x147dc0bd,0x6e1bc0ee,0x590e41a2,0x28f8c0c4,0xa81cc0ec,0x26d54169,0xf10024be,0x95924e04,0xbf57aec1,0xea147dc0,0x2317c8c0,0xb7e4dac2,0x4f10030,0x411e96a7,0x40642d0a,0xc0ee147b,0x411fc219,0xc5e19a4,0x3e2b7100,0x688c411d,0x71000c66,0xc223665e,0xa0862d80,0x69ff711a,0x7f6f4273,0xf1003cbc,0x204a2910,0xc84641c2,0xee147bbf,0x5c8f03c0,0xd0192042,0xec28f640,0x86fea5c0,0xb24dea42,0x4f10024,0x4287b77a,0xc0a556da,0xc0ee147b,0xc224754e,0x54456c1a,0x441d6200,0x28d0c225,0x6b710078,0x19428894,0x18ca2b,0x5bcc10f1,0x4e3c4273,0x28f840d0,0x6dcdc0ec,0x4528c201,0x150cc073,0xe655c0ee,0x666bc220,0xf500247c,0x84e47f38,0xac210142,0xea1451c0,0x887511c0,0xc03beb42,0xea1416c0,0x26ccdfc0,0x2f6845c2,0xea28f6c0,0x865c72c0,0x7ef96e42,0xea1640c0,0x1e32edc0,0x8732a2c2,0xea16c8c0,0x1d5ab4c0,0x66521e41,0xea14b440,0x8f11b24,0xc0ea3d71,0xc1435c77,0x40c74a2c,0xc0ea3d71,0x41a25145,0xcceda16,0x3a48f500,0xd642736a,0x73c0c2e5,0x72c0ea3d,0x8c2217f,0xad4041ab,0x59c0ea3d,0xa8c22200,0xb64084d7,0xebc0ea3d,0x30c22448,0x92c00329,0xf9c0ea3d,0x5cc2254a,0x8bfc7ca,0x24c0ea3d,0x1dc22436,0xa3bf8001,0xccc0ea3d,0xb3417e25,0xbbfd542,0x91c073d0,0x5664bbed,0x799508f5,0x7be1418a,0x8933bfc7,0xde1ec073,0x2cba416b,0xb91bbea6,0xf1002475,0x75c28f14,0x1f2cc6c0,0xb8e24cc1,0x7e3886bf,0x187abac0,0xff48fec1,0x616bbabf,0x1b6f5dc0,0x93243ac1,0x88040018,0x3886b12c,0xca1dc07e,0xae5c0ce,0x7130480c,0xc0ab431a,0x2488d741,0x190ff200,0xe9c097ae,0x863b4d0f,0xeac07e38,0x2fc0f134,0x86c00333,0xcac07e38,0x72c1043c,0x7130e48c,0xc1056197,0x3c1314a9,0x529a7100,0x71d2c104,0x71000c18,0xc0fa4900,0xc01f53c,0x2d04f100,0x11c11420,0x863f8fdf,0xbec07e38,0x13c10d48,0x180fee,0xf5004804,0x616bba0c,0xc61066c0,0x122a35c0,0x616bba40,0xdb7dacc0,0x2d5f29c0,0x616b2340,0xf53114,0xc0616bba,0xc1000a9d,0x3ee8ffb9,0x20616be8,0x6bbab131,0x9831c061,0x30fdc10f,0xf1003c1a,0xf5c37c04,0x544bbc0,0x67d2203f,0xf9ec20c0,0xeee350c0,0x27f23084,0xc0ecf332,0x3f01dbfd,0xc06cf0d8,0xc0dd8488,0x3e4697af,0xc06eccee,0xc100c058,0xbe0bb880,0xc06cf0d8,0xc0fe6968,0xbde0d2c4,0xc06f2179,0xc0edc656,0x15183f8a,0xe84b1cf1,0xb1d9c0fa,0xb59e3e99,0xe148c06f,0x96cc0fe,0xb59eb9f9,0xce3c06f,0x557c0fd,0xb59ebe5a,0xc906c06f,0x3f8ac0f4,0xf1000cd2,0xe57b4c10,0x6a875dc0,0x6fb46cbe,0xf2adbac0,0xaac97c0,0x6e1c083a,0x192126c0,0x90151ac1,0x4f11074,0xc1141bf5,0x3f8fc8da,0xc0871c43,0xc11a26d7,0x18949d9d,0x104f100,0xcbc0bba5,0x43bf9714,0xe3c0871c,0x85c0c7d2,0xccb5c,0xca32a071,0xdcf178c0,0x33f2000c,0xc0d7b1db,0xc006a451,0xc08b6f1c,0xc0c1bf25,0xbfd85144,0xc08b7247,0xc11c7a2d,0xbe64afd5,0xc08b72d2,0xc0f5e8a3,0xc00fb3bc,0xc08b7247,0xc11ca615,0x3da7f130,0xc08b73ae,0xc11058a0,0x30bdec,0x681c04f1,0x514cc110,0x72473fd8,0xe8dcc08b,0x55dec118,0xf100487f,0x6742a1c,0x4fa1ec1,0x8b724740,0x1ff10c0,0xb0d35c1,0xa7930c40,0x1c7ec6c0,0x5a0cf2c1,0xa7925abe,0xaacc2c0,0xf94118c1,0x6fb514c4,0x2bc11ab7,0xcbf39c2,0xcca793,0xe91008f1,0xe860c0ab,0x92b4c112,0xe9103faa,0x8221c0ab,0x4b2bc0ef,0x4302403,0x8f200cc,0xc0abe910,0xc0b01ad4,0xbf117625,0xc0abe910,0xc0ae3c68,0x3c9237ef,0x11f8a500,0xa93661c1,0xabe8fd3f,0x10351074,0x3120abe9,0xe91008f1,0x6f24c0ab,0x5183c0b7,0xe9403f7d,0x3ca9c0ab,0x9360c0b5,0xb5006c79,0xc0bd067d,0x3faccfaf,0xe8abe970,0xe910b102,0xcff2c0ab,0x552ac0d0,0xf10024e4,0xa947b028,0x24d2b3c0,0xa7930c3b,0xcbeae6c0,0xf68859c0,0xa79bf6bf,0x151b37c0,0x85543bc1,0xb48cb0bf,0x12b33bc0,0xa1fe3bc1,0xb48cc33f,0xbb05afc0,0x66c09c0,0x10f11548,0xc0b629aa,0x3f6a3044,0xc0b48d09,0xc11177a4,0xbf63dee8,0xc0b4100c,0xc0bd4730,0xc383d9b,0x761d7115,0x9564c0f5,0x71000ce2,0xc10bfaec,0xc4a66067,0x930a712f,0xfbecc10c,0x71156ce8,0xc10d892b,0xc6d594f,0xe99a7100,0xf905c108,0x71002459,0xc0cf683e,0xc4d1aca,0x91377100,0x2f77c10a,0xf6004837,0xb54ffff,0xa7c1033b,0x36bf9320,0x7c0b1f6,0x4fc0c77d,0x363e6d59,0x77c0b1f6,0xb0c0dde7,0xd93f9739,0x5ec0b1fa,0x3bc1084c,0x46bf4152,0x5dc0adcd,0xe1c0cadd,0x6bbeaaf0,0x66c0adc7,0x5ac0ec2e,0xfb3f9cd9,0xbdc0adca,0x6bc0d0e1,0x40bf350d,0x61c0adcd,0x93c0dfa8,0x13f8da8,0xcac0adce,0xfbc0d55d,0x403f5fce,0x5bc0adcd,0xc3c0ce24,0xc53f10a0,0x8ac0adc8,0x32c0ca02,0x813e218e,0xfcc0ac84,0x5dc0cc7e,0xe53ee94e,0x2fc0ac8b,0x67c0ede1,0x923f9d7e,0xaec0ac85,0xc4c103f4,0x92bf8197,0xe3c0ac85,0x8ec10aec,0x53ef278,0xd0c0ac8a,0x65c0d129,0x8dbf4bc2,0xdac0aa09,0xeec0c89b,0x6bbed7cd,0xb4c0a900,0x93c0c775,0x713e8efe,0x2fc0a900,0x3ac0cabe,0x73bea47a,0x66c0a900,0xa1c0ec91,0xc93f9fbe,0x9ac0a900,0xe7c0f152,0x333f98ab,0x7ec0acb3,0x70c100f0,0x333f897a,0x8ec0acb3,0xcfc10089,0x883af2be,0x7ec0b03b,0xaac1067b,0x83e4929,0xdc0b2e9,0xb0c10b40,0x333e8739,0xb0c0acb3,0x5fc0f162,0xa6bb650c,0xdbc0ac37,0xfdc0edc2,0x4d3e00f7,0x4fc0ace6,0xafc0df59,0x2c3ee95a,0x6bc0b265,0xbbc0e22d,0x103f4243,0x9dc0b2e7,0xb4c0d92e,0x763f2772,0xbc0b262,0x59c0db98,0x6d3f7185,0xcfc0aeba,0xeec0fa4b,0xf33f46ed,0xc4c0b31c,0x42c0e1cd,0x743f80ea,0xf6c0aff9,0x7c0f150,0xf3f81d0,0x76c0b22a,0xfcc10029,0x763f6135,0x38c0b262,0x90c104ba,0x883ef2c1,0xeac0b2e9,0xac1058a,0x393f0165,0x1cc0b2b8,0x45c0f2b7,0x963d6982,0xac0ac25,0x90c0d973,0x33bf6e83,0x61c0acb3,0x67c0d598,0x8be4929,0xafc0b2e9,0x64c10679,0x8be4b24,0x80c0b2e9,0xcbc10008,0xbbbf0ddb,0x9fc0b18d,0x37c10b3d,0x33be888e,0x8bc0acb3,0xcc102f3,0x6bbf2c79,0x83c0b2d7,0xf3c1069a,0x74bf3293,0x3cc0aff9,0x24c0faad,0x9cbf579b,0x15c0b2e9,0x24c0ee10,0x44bf62f1,0x1bc0b2e9,0x8414006,0x663e9d3b,0x9bfa666,0xf6417935,0x66408cfc,0xa8bfa666,0x9e41415c,0x663f6a61,0x23bfa666,0x6041879d,0x66408f69,0x40c15910,0xbfa66666,0x415a6aec,0xc5f67a5,0x3c04f100,0x14419245,0x66c08414,0x7abfa666,0xe4414a56,0xc15a3,0xc1004803,0xa66666bf,0x8178a5bf,0x8faa1141,0xa3710018,0x81416fbe,0xc87af,0x6b2bcf35,0x5403003c,0x180100,0x48e05f7,0xaaef4123,0x66663dc7,0xfedbbfa6,0x3d7d4126,0x45843fdf,0xf1007801,0xb63fac04,0xb4dc6641,0xa666663e,0x49021bbf,0x9d9e0441,0x3b710018,0x2441b156,0xc2ef1,0x1bd84b71,0x779874c1,0x657106e4,0xa9c11d9b,0xc48bd,0x1c9b8d71,0xa3bcedc1,0xe4710678,0x86c0a859,0xcad58,0x55fa04f1,0x3190c0c3,0x3865c01a,0x4209c07e,0x5a14c0cf,0x40018e0,0x8f1057c,0xc07e3886,0xc0dcabf5,0x402a47a1,0xc07e38a8,0xc0d4c91d,0xfc0e1c82,0x17c87106,0x646c0b2,0x7107200d,0xc0fc56cd,0x1831d46b,0x743c7100,0xbf98c101,0x40018fc,0x24f53624,0xc07e3886,0xc1035616,0x402c898f,0xc0616c5d,0xc0f11cbf,0xbf2db4bb,0xc061826b,0xc12425a1,0x3f284b90,0xc0616bba,0xc0eedd85,0x3f251ada,0xd4616c87,0x6bba3537,0xb1006061,0xc0616bba,0xc0e5632a,0xa8bddb98,0x7ae18106,0xe0e7c0e0,0x37383a19,0xf14c1ff5,0x66666c0,0x6cf0d83f,0xffa08cc0,0xe54d62c0,0x6edba1be,0x25696c0,0x2bb7fac1,0x6edc4dbe,0xea5dc0,0xd6043ac1,0x6ebde43e,0xd80806c0,0x5d09f806,0x3fc06edc,0x8ec0ea7e,0x5d3ebc91,0xb9c06edc,0x48c0e425,0x503de237,0x9e18f537,0xcac06fb5,0xccc0fae2,0x9ebe9a09,0xec06fb5,0x60c0e484,0x923e1f91,0x46c06fca,0x51c11973,0x433da433,0x150871c,0x1c4314f1,0xad5ac087,0x82cfc0b2,0x1bed3f24,0xf916c087,0x8ac0f5,0x1c434007,0x47f3c087,0xc22bc0b0,0x406f08d,0x43b10600,0x44c0871c,0xcdc10627,0x714f820,0xc2e5e71,0xdcf178c1,0x10f1000c,0xc0c06970,0xbfb3a9b9,0xc086bbe4,0xc0d2440b,0xbfe7d9dc,0xc0871c3f,0xc1168cf0,0xb4a04591,0x6840406,0x724700f5,0x58a0c08b,0xbdecc110,0x930cbfd8,0xf536e4a7,0xa7930c00,0x1bb168c0,0xb299fac1,0xaa781f3e,0x14f106e4,0xc0a7930c,0xc103c230,0xbffb9e0e,0xc0ac2d82,0xc11a78d4,0xbb1adc90,0xc0abe910,0xc101cdde,0xb40244d0,0x1cd40406,0xf1069c01,0xc1143003,0x3f8f024f,0xc0abe8f1,0xc0ba30bc,0x548efbe3,0x35c40406,0xabe910b1,0xec7d9ec0,0xfae5cc0,0x20f51c08,0xc0fa23d1,0xc001ff76,0xc0b48ce7,0xc111e495,0x3fa9c8fc,0xc0b48cfe,0xc0ead474,0xbfe2172b,0xc0b4206f,0xc10620ce,0x3fc92dfd,0x30b40961,0x8ce7b106,0x9ce4c0b4,0x1440c10f,0x711ba886,0xc0d4ef5b,0x84c4e347,0x7a2f7106,0x7fbc0e0,0x710618d9,0xc0cdea59,0x30b1ca53,0x637c7106,0x810ac10f,0x71001888,0xc10f881f,0x1886d795,0x9cb07100,0xdd44c108,0x710018bb,0xc0da1e11,0xc8ea02c,0x22a17100,0xbedbc0e4,0xf1000ca1,0xc973110,0xe78ee3c1,0xb38fd03e,0xf31ec0,0x9d496bc1,0xb36ddf3f,0xce16cac0,0x3f4c3cc0,0x8f50048,0xc10ce209,0xbda515cf,0xc0ae52fe,0xc0df4c51,0xbf9ae6c9,0xd8b1c3fc,0xf636b106,0xa133c0b1,0x5f29c107,0xf106a870,0xc960fa04,0xe78ec1c0,0xb1f636be,0xc778cfc0,0x6a5bd9c0,0xd8b5000c,0xabc0c6d5,0x363ac23f,0x36a8b1f6,0xf63608f1,0xb8b0c0b1,0x7bfec0d0,0x64b43f48,0x7ecc0af,0x7343c10b,0x41c2c29,0xf5009c,0xc0b1f636,0xc0fce970,0xbf974278,0xadc192,0xcd403536,0xf60684ad,0xadcd403b,0xb3364c0,0xd8ee07c1,0xadcd40be,0xc97a16c0,0x59d777c0,0xacfda4bc,0xe7181ac0,0x98bd3cc0,0xadcd403f,0xdc0e28c0,0x857404c0,0xadcafb3f,0xedcaa7c0,0x9d7681c0,0xadcd40bf,0xca5e3cc0,0x5cfe9bc0,0xcccd403e,0x9238f236,0xa1c0ac85,0x57c10b82,0x1cbebf04,0x99c0ac8a,0xf3c10861,0x7dbf3f92,0xdcc0ac85,0x94c1088b,0x3b3f3c33,0x8ec0ac8a,0xf7c100f8,0x92bf8f57,0x5ec0ac85,0x5cc10ae8,0x723ef3c8,0x42c0ac87,0x3cc0fb77,0x72098bd,0x6899ef2,0x82408ec1,0xa90056bf,0xc62b56c0,0x7b80aac0,0xa9028a3d,0xfff925c0,0xa0ead1c0,0xa900823f,0x7c178c0,0x728912c1,0xa900803f,0xcfafa5c0,0x53966cc0,0xa900783f,0xb179ac0,0x2ebc73c1,0xa900863f,0x6ef68c0,0x63babac1,0xa90323bf,0xc9511c0,0xb69553c1,0xa90073ba,0xf15317c0,0x9f89cec0,0xa900733f,0x76a7c0,0xab0c89c1,0xb030063a,0xed27adc0,0x8051cac0,0xaca2fb3b,0xd061dac0,0x5ea2c0,0xaff8a53f,0xec264ac0,0x34c112c0,0xb254fc3f,0xe8cc40c0,0x429f27c0,0xb2c40f3f,0xf675ffc0,0x18a97ac0,0xac04f100,0x5bc0ed2b,0x5d3f935e,0xd6c0ae6b,0xfbc105c2,0xc5177,0xfffffff3,0x7802ffff,0x2ec0f155,0xc73c443b,0xbcc0ac39,0x54c0f7bc,0x2fbf9253,0x60c0aec0,0x68c0e0ae,0x33bf897a,0x2cc0acb3,0x1ec0ef53,0x46bf326f,0x61c0b141,0xf8c0f1c1,0x38bdd5e0,0x36c0ac59,0x3dc108c8,0xd3beb565,0xd9c0b13d,0x5c10a20,0x5dbec486,0x10c0ae6b,0x1ec1078c,0x33bf3ea5,0x17c0acb3,0xc0c103c5,0x74bf5fd0,0x1cc0aff9,0x27c0f9c3,0xfbf429f,0x75c0b2c4,0xcc0f13d,0x74bf8f02,0xedc0aff9,0x6ec0d91a,0x88bef2c1,0x92c0b2e9,0x4ec0d1de,0x5dbf1d80,0xb0c0ae6b,0x13c11d28,0x43c00581,0x3fc0c0b7,0x89c0a7b6,0x7c400d96,0x1cc0c71c,0xc8c11a4e,0x433fdb45,0x34c0c71c,0x9ac0ad8f,0xc3bf4742,0x9cc0c71b,0x3dc13a30,0xddc0337e,0x41c0c0b5,0xf8c120f0,0x25c0246f,0xbec0c0ca,0x19c05bf5,0xddc032e8,0x5ec0c0b5,0x81c13f1e,0x43408ca4,0xac0cf1c,0xedc13efc,0x43c046b6,0xec0cf1c,0xcfc048bd,0xddc04615,0x52c0a8b5,0xabc0a3ba,0x11bfe578,0x7cc0a8b6,0x7bc0cc71,0xddc0314d,0xb2c0a8b5,0xc9c107a3,0x24403776,0x20c0a8b6,0x78c1261c,0xdd3f760d,0xf2c0a8b5,0x52c11097,0xddc02662,0xbac0a8b5,0xf7c12d63,0xddc034b0,0x2ac0a8b5,0x95c11f84,0xdbbfe4f2,0x2dc0a8b5,0xadc12fb4,0xddc03889,0xefc0a8b5,0x61c129e3,0xddc00038,0xb3c0a8b5,0xf4c11cca,0x43bffe34,0x6cc0871c,0x24c1288a,0x433e457e,0x42c0871c,0x89c1208f,0x243fda62,0xc4c0871c,0x67c09af9,0x43bf409e,0xcc0871c,0x2bc0f12e,0x43c03333,0x6ec0871c,0x8ec10798,0x43c028eb,0x4c0871c,0xf8c10e57,0x43c01cfe,0xb7c0871c,0x3ec114df,0x43c00b22,0xeac0871c,0x25c12064,0x43bfa53e,0xbcc0871c,0xdec0e52d,0x4340318e,0xc9c0871c,0x18c10035,0xa7c030cd,0x7bc08982,0x3ac0b631,0x144007b2,0xa9c08be8,0x7bc0c825,0x10401f33,0x3ac08be9,0x9fc09887,0x103ec4cb,0x98c08be9,0x63c09b07,0x103f4229,0x89c08be9,0x3ec11b50,0x10bf1d23,0x6c08be9,0x59c0f956,0x3400f4d,0x67c08be9,0xb1c0cdb9,0xabffade,0x29c08be9,0xaec0ab40,0x10bf05d6,0x38c08be9,0x9fc0a940,0x10bdd01d,0xcbc08be9,0x16c11ba2,0x72bf0717,0x6ec0adf9,0x15c1128e,0xaebfc81c,0xefc0ae01,0xadc0e5ef,0x72c00e33,0x4bc0adf9,0xffc0daf4,0x72c008e6,0x6cc0adf9,0x12c0e34e,0x264004a0,0x7cc0b236,0x99c0b0f3,0x763f27d9,0x33c0ba4f,0xbc1059f,0x763ff9f0,0xfac0ba4f,0x9c11a79,0xcdbda2ff,0x71c0b24c,0xf0c11a43,0x633e7fa2,0x4bc0b243,0xc3c10080,0x76c0039f,0xa5c0b24f,0x2fc118ad,0xc93f2f4f,0xe5c0b249,0xc1c11691,0xc93f7d56,0x6cc0b249,0xc5c11257,0x76bfb001,0xbcc0b24f,0x15c10f8f,0xab3fc7ac,0xfc0ba4f,0xa6c10ea4,0x763fcd9c,0x62c0b24f,0x47c100f4,0x76bfc1e8,0x7ec0ba4f,0x9ac0d2ba,0x7a3fa925,0x6fc0ba51,0xffc0c5c7,0x763f5803,0x1ac0ba4f,0x11c0be79,0x763e571c,0x2bc0ba4f,0x48c0eef8,0x763fccdf,0x43c0ba4f,0xe0c11145,0xdd3edf4d,0x3ec0c0b5,0x9fc0ae14,0xdf3fdbad,0x6bc0c0b5,0xb4c11a93,0x39c014b0,0x70c0c0b5,0x84c0a741,0x44c00bf0,0xc5c0c0b5,0xafc0aaff,0x13bf3f96,0x8cc0c0b5,0x73c11d6e,0xdf3f2a9d,0xdc0c0b5,0xfcc13b78,0x76c01d6f,0xbfc0aa4f,0xfdc138fa,0x76c02ea3,0x30c0aa4f,0xc7c129e1,0x76c0269e,0x7cc0aa4f,0xa2c12fb9,0x76bfdcb5,0xe8c0aa4f,0xf0c12a32,0x76c0136b,0x93c0aa4f,0x8fc132e8,0xdbffdc4,0x85c0abef,0xc2428bdb,0x6415119,0xb6c07a49,0x2c428bd2,0x410bfb,0x73c14000,0x36c28bdd,0xc1410be0,0xc13fff,0x55c28bfb,0x5d4122d2,0x5bc12dd7,0x74c28bfe,0x81413410,0x16c11b2a,0xdcc28bf2,0xc14136fd,0xc1181b,0xd7c28bfb,0xab413699,0x1cc117e9,0xe9414a76,0xc0c68e,0x56c14000,0xd941bb4c,0xbb3e8a99,0x28c13ff7,0xd4c28bed,0x18c10b64,0x32c14000,0xa3c14b8f,0xc0d12d,0xc14000,0x66c1c800,0x3fc666,0xffc14000,0x44c146d4,0xc0bcdc,0xcdc14000,0xccc1c1cc,0x3fabd1,0xf5c14000,0x7bc1d235,0xc53c71f5,0x36c13b25,0xa6c1cff2,0x4a3f4663,0xdcc13b2d,0xc5c1cbb9,0xb3f95cb,0xadc13b21,0x7fc1c578,0xc5bf9e4b,0x44c13b25,0xa1c1cbfc,0xbbf9413,0x20c13b21,0x79c1d0ab,0x9abf2ccc,0xc10999,0xc1d200,0x9a000000,0x6bc10999,0xa9c1d0cd,0x9a3f22a0,0x55c10999,0x7cc1c5b0,0x9a3f9f2a,0xadc10999,0x8841c578,0x483f9e4b,0x4126f200,0x3f9413a9,0xc13b210b,0x41c6731b,0xbf9f4517,0xc13b3109,0x41c09b11,0xbf6149d8,0xc13b4408,0x41bdfa68,0xbe28e1d6,0xc109999a,0x41bf3296,0x3f22a099,0x4ff2006c,0xc28c,0xb67cc118,0xffbdc0c7,0x2246c28b,0x1f12c139,0xff5ec113,0xb9dac28b,0x44ebc0df,0xffb6c087,0x5019c28b,0x2e904108,0xff46c08f,0x7512c28b,0x8ca4c13b,0x3738,0x746fc28c,0xb7c1c11f,0xff7cc0a3,0x10a5c28b,0xa2c0c0df,0xff9fc0d1,0x5a49c28b,0x672540e0,0x60c0bb,0x40cc0ef1,0xc068cdd9,0xc28c0000,0xc0c131f0,0xc0e812cf,0xc28bffe5,0xc109cfde,0x188e1f2a,0x5300,0x24ddc0cc,0x9a28f400,0xcd40b599,0xd3c05ccc,0x7cc28b9a,0xc0411d0f,0xd8c0ac92,0x2dc28b9a,0xcc41079d,0x70c0c0a8,0xe3c283fe,0xc4411015,0x97c0c626,0x62c28b99,0x3fc11a48,0x249c48,0x36c156f3,0x8c09757,0xddc28400,0x50c1180a,0x6bc097d5,0x71c283fe,0xcac10fea,0x70c0c626,0x91c28402,0x7dc11a60,0x9bc0bcad,0xf2c28b97,0xf1c0d9f8,0x28c0cc92,0x33c28b98,0x8940dadc,0x49c08f52,0x13c28866,0x1840c053,0x6ec06b7a,0x1ec28867,0x73c0c5dd,0x66c06e4b,0xc28866,0x9a40d000,0xcbf9999,0xcc01600,0xc00af100,0xeccccfc0,0x85f893c0,0xff6599c2,0x166666c0,0x874bd6c1,0xf5a9f6c2,0xab71000c,0xc9c286b0,0xc9313,0x88472a71,0xafbfeac2,0xf71000c,0xc6c28155,0xce8a4,0x8311b671,0xfe491fc2,0x3884000c,0xdbc2865b,0x24409177,0x5b3a3100,0x71000ca7,0xc2818f24,0xcec8746,0x5910f100,0x11c24bb1,0xcdc07ba8,0x7fc11666,0xb6c247c5,0x1cc09858,0x79c11666,0x31c2293e,0x4873b3,0xae0f28f1,0x14c4c249,0x664d40d0,0xdaafc116,0xff3bc24b,0xcce2c069,0xb22dc0ec,0x2b4ec270,0xcccfbe75,0x8a0fc0ec,0x955fc273,0xcccd40f9,0x1a73c0ec,0x4bac283,0xf100ccff,0x4dff2510,0x240000c2,0xeccccd41,0x4a577ac0,0xcbca12c2,0xeccd3140,0x4c79dac0,0x233765c2,0x4f10018,0xc2877e1f,0x409c31cd,0xc0eccccf,0xc281a560,0x3ca1a909,0x11b67100,0xb6e1c283,0x3000c91,0xc1810048,0xc0eccccf,0xd8830b2f,0xcccfb100,0xdfac0ec,0xeaacc24b,0x71001820,0xc2734936,0x903761cc,0x4f100,0xd5c24800,0xcdc096da,0xa1c0eccc,0x75c2805a,0x6c1b2b,0xa5f35af3,0x2467c272,0x3333c105,0x7842c123,0x9071c275,0x3333c0f5,0xfdf0c123,0x44a6c275,0x333340f5,0x7841c123,0xd161c275,0x3333410e,0xb22dc123,0x7946c270,0x3333bfa6,0x8a0fc123,0xf9adc270,0x3333be89,0xf40ac123,0x8356c247,0x141ac097,0xc0f6,0xcccdc248,0x147dc10c,0xc0f6,0x999c4289,0xc7b40e9,0x9a0cf100,0x7dc0e999,0xfc0f614,0x4442881f,0x7b4105c5,0x1cc0f614,0xcd428899,0xc00cc,0x3e7910f1,0xd9a1c229,0x147b40b9,0x768fc0f6,0xa0c1417a,0x147dc106,0xeb53c0f6,0x3b3a4182,0xf1000c0b,0x87954804,0x9b946c42,0x1b0a3ec0,0x854b0fc1,0x8b2c0a42,0xf271000c,0xb9c21e64,0xca145,0x2098cb71,0x89d1e9c2,0x8f4000c,0x416cecd8,0xc0f7a56c,0xc0866666,0xc174369b,0xc102e088,0xa8866666,0x4102f300,0xbf99999a,0x4289efeb,0xc10c69d9,0xbf99999a,0x94010264,0x72307102,0xbf32c286,0x7100242b,0xc289a450,0x24142e75,0x7100,0xc281,0xf1001800,0x88291004,0x242fc1c2,0x9999a2c1,0x4887ddbf,0x165074c2,0x3b710018,0x3dc27dbc,0x18235e,0x80f65a71,0x10916cc2,0x3071003c,0x32428672,0x182bbf,0x1004803,0x1cf10018,0xc289d463,0x410f271b,0x0,0xc28bd8e9,0xc13cc8a6,0xba18915c,0xc2864b4a,0xc12b6fe1,0x80000000,0x428a0000,0xc04cccd,0xcccd7100,0xcccc428b,0x7100303c,0x4286d149,0xc2a6399,0x7100,0xcccd4285,0xf1000c2c,0x8bdb270f,0x3cb58442,0x3126f41,0x8bf58f39,0x3c157e42,0x8637bd41,0x8be7d6b6,0xc83e142,0x73fff400,0x8bfe8b35,0x3b8242c2,0xf3450741,0x8bffc437,0x4dfcccc2,0x4a2eba41,0x8bf075c0,0x4e2d52c2,0x39270f41,0x8bcccdc0,0x5076cd42,0x6a6bc241,0x8bd5b4c0,0x4cab8342,0x156c4c41,0x8be978c0,0x490abc42,0xc98ea841,0x8bd520bf,0x41502542,0xfa6d8b41,0x8bf7ccbe,0x4db74d42,0x346f3741,0x8bd8bcc0,0x45438d42,0x80827341,0x8bda1fbf,0x4e903c42,0x38650641,0x8be04dc0,0x4e2ebb42,0xc5068e41,0x8bf56ec0,0x4db1d642,0xc4ba1d41,0x8be83dc0,0x236ad042,0x2e696fc1,0x8bea58c1,0x44402442,0x1ed22c1,0x8be668c1,0x50f5c642,0x8350eec1,0x4c000ac0,0x280f4241,0x2a7938c1,0x4c0000c1,0x33333341,0x1de16ac1,0x4b5a78c1,0x51201441,0x82894cc1,0x8bf0e9c0,0x509300c2,0x8903b8c1,0x8bfb56c0,0x5035a9c2,0x8667b8c1,0x8be24ac0,0x46a1f1c2,0xf8cf09c1,0x8bfd33c0,0x45b0dec2,0xf86682c1,0x8becc8c0,0x3a3249c2,0x13be69c1,0x8bdceac1,0x295f83c2,0x28cc06c1,0x8bff32c1,0x1a51d7c2,0x346087c1,0x8bfde4c1,0x45ea42c2,0xa402dac1,0x8bde8fbf,0x43b8ce42,0x4cc4cec1,0x8bd77fbf,0x41c11642,0xc370dc1,0x8bff70bf,0x4e1d2442,0x4a196ec1,0x8bef65c0,0x44fca742,0x82bef0c1,0x8bf678bf,0x4f753c42,0x5d8312c1,0x44f877c0,0x33333341,0x5c1e26c1,0xf500c0c0,0x90000010,0x1f3df7c0,0x333333c1,0xd1999cc1,0x1f3df7c0,0x33333341,0xae6666c1,0xc209c0,0x9a310018,0xc2199,0xc0000071,0x44f877c0,0x2684000c,0xcdc05c1e,0x18c0fccc,0xd800f100,0x3340fdff,0xbdc13333,0x2fc0b6e3,0x243a36,0x456b08f1,0xcafdc043,0x5cd9c14b,0x6380c0d3,0x86e9c12a,0xabfcc147,0x71000cbe,0xc13ba68b,0xcacab0d,0x72506200,0xea14413b,0xff71000c,0x444146d4,0x18bcdc,0x266800f1,0x616dc116,0xe45c12e,0x3283c0d7,0xf3000c0c,0xd9001536,0x2e385c0,0x2e5972c1,0xbb876ec1,0x1519f1c0,0x2e5ac7c1,0xa84ec8c1,0x1c4706c0,0x2e4268c1,0xb63cdec1,0x5e0b8c0,0x2e5ac841,0xcffcaac1,0x198b16c0,0x2e616d41,0xd1d923c1,0x1d1c7cc0,0x3c7341,0xbba000f1,0x66644104,0x29bc0e6,0xc2f5c0cd,0xf5000c0d,0xda41e100,0x5d6c4bc0,0xbfa1cd42,0xd62720c0,0x67f22340,0xc0d62681,0x428515a7,0xc089f402,0xc0d62683,0x426d0924,0x40b688e1,0xc0d626c2,0x426cd1a0,0x40cea4bc,0xc0d62681,0xc215dbd6,0xbfcf332b,0xc0d62681,0x4274fd91,0x40838438,0xc0d6eb1c,0x42731de4,0x40c05719,0xc0d6266a,0x41a0d464,0xc0c2c148,0xc0d62683,0xc223d85e,0xbf8daee6,0xc0d62681,0x42814c09,0x40bf46d8,0xc0d62681,0xc221d85e,0x189c95,0x88945562,0x60f7e842,0x41547100,0x1644c216,0x62006c6b,0xc2140f0a,0x6c22af,0x13af8571,0xd8469dc2,0x84040078,0x2681b124,0x58cac0d6,0xa31e421f,0x710030be,0x421f074e,0xcc1f2b2,0x6404f100,0xffc1303c,0xe1c0a816,0x61c0e87a,0x8cc13535,0xca659,0xf0ba04f1,0x98d4c139,0x7aabc0ad,0xd745c0e8,0x8eac226,0xf124cccb,0x6b86b504,0xc2678841,0xe87b01c0,0xa3f11dc0,0xb988b741,0x4f1246c,0x41a41013,0xc0aef10b,0xc0e87ae3,0xc215d9d5,0x188cb478,0xdf04f100,0x894273c4,0xd740bc4e,0x5cc0e87a,0xa1c21efa,0x608778,0xb1260404,0xc0e87ae1,0x421f65ff,0x18b2bc34,0x10827200,0xce14c21d,0xf1000c95,0x42094103,0x40cce575,0xc0e87aa7,0xc1e2bef7,0x18b52c79,0x107c7100,0xa9bdc214,0xf2000c1b,0x168f0404,0xe388fdc2,0xe87ae1bf,0x22d872c0,0x8512b2c2,0x1bf1000c,0x70c18de5,0x7840cb6a,0xc1c0e87a,0xe7c03b52,0xff40cbe0,0x1ec0e87a,0x43423e5a,0x39407be5,0x83c0d745,0xbfc119b6,0x1087fb8,0xbb1b6f62,0xcfd93c0,0xc10f100,0x8ac0b182,0x31408001,0x29c0d76e,0x4f423df8,0xf1408306,0x1cc0d663,0x2fc22511,0x1f8a2bf,0x3fed70f2,0x8694426d,0x2637c0a7,0x2c8c0d6,0xc817c18e,0x265d40c8,0xf27cc0d6,0x5a5c4272,0x268bc0b6,0x35d0c0d6,0xda904270,0x26c2c0ac,0x5a1cc0d6,0x40cc4252,0xaf0a407c,0xd7dfc0d6,0x2503c224,0x2681bfc5,0x5c96c0d6,0x79e64287,0x2683c034,0x1285c0d6,0x62674270,0x266e40b8,0xc6b5c0d6,0x1a8f4280,0x268140bb,0xddb7c0d6,0x2c52c224,0x26814064,0x95efc0d6,0xbca14288,0x6102646a,0x8d42206b,0x90ae50,0x22ace071,0x82ae99c2,0x3712784,0x8bc21415,0xd8668c,0x136c8971,0x711a33c2,0x6f62000c,0x1fc131e0,0x401e0bc,0x8f10054,0xc0e87ae1,0x41a09e81,0xc0c24cc9,0xc0e87aa4,0x4285a869,0x5c84216e,0xe4cd7101,0xefb141a1,0x7101f8bd,0x41a2b90f,0xcbb65b4,0x84197100,0xaa04c214,0x7101e063,0x426e85e2,0x18b10f06,0x780400,0xe87ae1b1,0x2330d3c0,0x35d46c2,0x18040048,0xdf08f103,0x29c0e87a,0xb4427002,0xc040b690,0x11c0e87a,0xb420948,0x24cc1b4,0x14342e71,0x8d5be4c2,0x86710054,0xecc2131e,0xc8124,0x76d408f5,0xf7884287,0x7a94405d,0xafbec0e8,0xfe694281,0x7b8140cc,0xf102c4e8,0xe87adf08,0x888d3cc0,0x6bcde642,0xe87b1240,0x1d6358c0,0xab70e1c2,0x54710078,0x6b427046,0xcc153,0x23dd3862,0x887a6cc2,0xfffff141,0x8f4d07ff,0x63ec1dd,0x7b7840cb,0xdaacc0e8,0xb69ac182,0x7aeec0b0,0x509ec0e8,0x26594281,0x7ad3c0b0,0x8afac0e8,0xa190c144,0x7aa240cb,0xf827c0e8,0x8f9d4279,0x1c434083,0x4e74c0d7,0x829dc120,0x1fbe406c,0x9f3dc0d7,0x97d74246,0x58da4091,0x93a3c082,0x1455424b,0xcfe407b,0x4725c07e,0x2e864243,0x99b7408e,0xf392c080,0x38bf4249,0xe0724089,0x731ec07e,0xef0b4240,0x15384078,0x69d7c07e,0xe9f94247,0xe0724094,0xfbccc07e,0xd9a14240,0xbe8c4060,0xf2e8c082,0x71734245,0xe0724096,0x5f3cc07e,0xe6024245,0x157f4098,0x2c2bc07e,0x47634240,0x147b3ecb,0xdba3c07e,0xbb024241,0x4effbb9a,0xdfffc081,0x8ea84240,0x80733f11,0xec2dc081,0xb7844247,0x5452bec7,0xba7cc082,0xc89b4241,0x147bbe8c,0x557c07e,0x135e424a,0x44593c52,0xf8e0c082,0x53e74242,0x147bbf03,0xf91ac07e,0x8f2a4245,0x147bbf36,0xdfd2c07e,0x2707bf1f,0x147b4094,0xa33cc07e,0xc62cbf81,0x147b4095,0x15e9c07e,0x8156417e,0x147b4093,0x4aeac07e,0x42540dc,0x147bc047,0xc6c4c07e,0x38de4286,0x3a584074,0x84a2c07e,0x7f4e41f1,0x71c54042,0xb219c07e,0x9faec197,0xad21c082,0xc807c07e,0xb1c04286,0x11a53ff5,0x4ee4c07e,0xb0214283,0x147b404d,0x1329c07e,0xd1e9c170,0x147bc025,0x949dc07e,0xc9de4277,0xfed3ff7,0x23d5c07e,0xebab4283,0x147b404f,0xfe7fc07e,0xe17641d6,0x363b3feb,0x9a9bc07e,0xf9a5c109,0x5deac083,0x6c7dc07e,0x9b784285,0x147bc06b,0x16dbc07e,0xc9cfc0f0,0x4cecc088,0x1587c07e,0x4abc086,0x5482402b,0xe4b8c07e,0xa8c64284,0x147bc072,0x85a1c07e,0x79ffc0ac,0x5dc84069,0x7af7c07e,0xd6f141ea,0x147bbec1,0xcbdac07e,0x7497c013,0x147b401b,0x69a1c07e,0x991cc01d,0x147b4032,0xfd15c07e,0xc9693d61,0x147bbfed,0xb6ccc07e,0x45e13e73,0x860ac00d,0xa8fc07e,0xa2ee421c,0x147bc091,0xa76c07e,0xe7e2421c,0x50cac08e,0x5cccc07e,0xd17cc1df,0x6e0d4089,0x2110c07e,0x3090bf1e,0x147bbfbc,0x16cec07e,0x3a674284,0x147bc086,0xc109c07e,0xe12abfc6,0x1b543fe3,0x86a7c07e,0xc6b5c1f5,0x147b408a,0x1b37c07e,0x5f5b41d7,0x1501bfe8,0xcbf0c07e,0xe5064283,0x3ee6c0a6,0xfb27c07e,0xf0174274,0x147bc01f,0xd1bec07e,0x6f9c4270,0x10f5c02c,0x6afc07e,0x5bb441d4,0x860ac010,0xee02c07e,0x2e77c1fd,0x2c6f409f,0x15b4c07e,0xb5c4c1ec,0x147b402c,0xb235c07e,0xa8653d6b,0x147bc07e,0x1041c07e,0x737141a0,0x15984042,0x8784c07e,0x8cfc41c1,0x147b4000,0x9729c07e,0x907541f5,0x130640aa,0x3854c07e,0xe74bc1f2,0xf2003c55,0x8b21ffff,0x90c074c1,0xcc00883,0x29c07e5b,0xc5c01d08,0x7bc0221b,0xa2c07e14,0xd5418ac5,0x65409387,0xbbc07dff,0xc1c1f2c4,0x5e401dfd,0x9dc07e0f,0x7641a8c4,0x563f26a4,0x93c07e7f,0x52c1f878,0x73405347,0xacc07e12,0x3bc08ed5,0x7bc04418,0x1dc07e14,0x3d425eb1,0x7bc0967c,0x6ac07e14,0xfbc1f678,0x7b3ff93b,0xcc07e14,0x58c1f71b,0xf63fcb1b,0xe8c07e5d,0x3ec00414,0x7bc07ecf,0xf5c07e14,0xe425f3d,0x7bc09e74,0x5fc07e14,0xd5bfb209,0x7bc08bcd,0x69c07e14,0x89425cc2,0x7bc0925c,0xe4c07e14,0xa0c1e38d,0x7bc01718,0xabc07e14,0xf741c190,0x7bbffee5,0xfcc07e14,0xd5425c46,0x7bc093f6,0xafc07e14,0xf4c14cf7,0x7b3fcca4,0xd3c07e14,0x6741a33a,0xd9c026d6,0x60c07dee,0xc6c18989,0x5f40b118,0xc0c07e27,0x3c109bd,0xb1408214,0x24c07e6e,0xa8c1e8ee,0x7bc02ffd,0x13c07e14,0x7f425b40,0xa2c0a3e8,0xa2c07ded,0x45418fe8,0x3bc08f8e,0x81c07dfd,0x6042311a,0xf409b64,0x7ec07e0f,0xebc1702a,0x7b402074,0x2ec07e14,0x1e41f6b0,0x18c08e53,0x8ac07e22,0xc7c1f570,0xc7c0aa64,0x80c07e2f,0x76c1fdcf,0xcfc098d1,0x1c07e30,0x50c18b88,0x7b409df1,0x5ec07e14,0x274230e8,0x7bc0914f,0xdac07e14,0x43c18d87,0x7b409bca,0x35c07e14,0xc423bc7,0x7bbf12b1,0xd7c07e14,0x2f415ecc,0x29407534,0xa1c07eae,0xb9c19b6d,0x9e40a637,0x3fc07e61,0x6d4236f8,0x7b3d03a9,0xb0c07e14,0xecc14ce8,0x7bbfd6bd,0x8c07e14,0x10423a2d,0x7bbfad22,0xbec07e14,0xb0c132bd,0xe0c00b04,0xecc07e4b,0xa6c18e90,0x7b409c54,0x33c07e14,0x60c19a38,0x7b40852e,0x3ac07e14,0x294156d3,0xb1c0603f,0x92c07e14,0x153f2b7a,0x7d404fc4,0x46c07ccc,0x58423144,0xfbbf85c9,0x1cc07e3c,0x6e423206,0x7bc08830,0x51c07e14,0xfc423804,0x7bbfbd8e,0x57c07e14,0x694231da,0xf30198d7,0xf18a5f46,0xbeb3d5c1,0x8374ba40,0xf189e3c0,0xb7f410c1,0x8392da40,0x918a5dc0,0xbdeaa7c1,0x7f5e7440,0x918992c0,0xb3ce9ec1,0x725ed040,0x86c6ccc0,0x70dd6e42,0x7147ae40,0x96f137c0,0x92e44bc1,0x7147aec0,0xf1efe2c0,0x42801741,0x71e3ce40,0x43804c0,0x714257b1,0x84b185c0,0x4ded6742,0x4f10030,0xc199c8b0,0xc09de386,0xc0717781,0x4282fced,0x1856a0d7,0xd567100,0x18c2c08f,0x71000c41,0xc01d77d9,0xc644a90,0xf79b7100,0xcebc1dc,0x71000ca7,0xc1df0e5e,0xca236c1,0xca927100,0x3c8a41ea,0x71000c37,0xc0ab930e,0xc6cc472,0xaf08f500,0xd9428702,0xcac06926,0x6c071a5,0xad4277c2,0xae3fd831,0x42c7147,0x7147aec1,0xdf77d9c0,0x3805a3f,0x6100c0c0,0x4c1f23a,0x3c8554,0x1f0b9e71,0xddb1c8bf,0xb9710030,0xc8c0ccc6,0x188417,0x56bd4971,0x8b9d77c0,0xd3b50018,0xa54010db,0xd6c038d9,0x450713a,0x47ae84f5,0xc3e3c071,0xb3fabf80,0x47aebfb5,0x407bc071,0xb062c1f7,0x3144408a,0x485ac071,0x56b4c04d,0x47aebcb4,0xd23dc071,0x4ea041ea,0x47aebef9,0x3e60c071,0xabcdc1f0,0x47c7402a,0xcbf6c071,0x1a204283,0x9bccc0a8,0x401dc071,0x8c72417e,0x47aec093,0x986fc071,0xc02424b,0x46914076,0xaa7bc071,0xe7f7c1f7,0x47ae3fca,0x5c29c071,0xf1bfc013,0x47aec06a,0x4edfc071,0xe48ac0ab,0x47aec06f,0x7aafc071,0xbad2c0cc,0x47aec085,0xf1037871,0x7147ae08,0xf7210fc0,0xabfffc41,0x71473440,0x88c102c0,0x938c7241,0x4f100d8,0xc1dbd22b,0xc07cac69,0xc0719cd8,0x41a8d0dd,0xe41cb274,0x46fc6200,0xf241425e,0x48040084,0xae08f106,0x87c07147,0x1041a8a8,0x41bf59e7,0x4c07148,0xfabf8056,0x1448d6c,0x6a615d71,0x2a12b2c1,0x97620054,0x8fc189ab,0x7101b0aa,0x425bdd09,0x249682b6,0x8bca7100,0xd3bf425b,0xf1000c99,0x5b4a5004,0x9f744d42,0x71280fc0,0x3048f6c0,0xa40a7042,0x6571003c,0x56c1dbd9,0x24a063,0x44655271,0x9787d142,0xfc710018,0xeac1f7a2,0x15cd87a,0xf4865a71,0x173f75c1,0x74710024,0x2f4240c1,0x248122,0x2e949671,0xabe4c542,0x9004000c,0xae08f103,0x73c07147,0x4bc19af4,0x2440a4f2,0xc4c071b5,0xe414767,0x241483,0x3ba9b071,0xe7952d42,0x8404018c,0x47aeb103,0xaa28c071,0x9529c133,0xb500600b,0x42421617,0xbec80fdc,0x847141b7,0x47aeb103,0xaa2ac071,0xcdb3423b,0xb500905d,0x4154d04c,0xc05b5847,0xc0714a56,0x47aeb103,0xcbeac071,0x1f1940f1,0x7100482e,0x42316cf3,0x3085c7de,0x3504f100,0x424176c7,0x3e4091cc,0xfdc0713c,0x6e416b7b,0x248989,0xf203a371,0x188e473f,0x3f2009c,0xc18989fa,0x40b9006b,0xc084c4f4,0xc1898992,0x378d7c7,0xd49203f2,0x1af64274,0xa3d740bc,0x1c40c0c0,0x94a426d,0xf971000c,0x61425b3a,0x18bbe0,0x20d49562,0xc5ab842,0xdc647100,0xa74c41a4,0x710018ba,0xc0191ca4,0xcb9d4bd,0xfe1cf100,0xbbc14cad,0x7140bca8,0x2dc0ea3d,0x73c1898a,0x9d40bc80,0xe1c0ea3d,0xa54282f8,0xd040b6cc,0x5fc0725e,0xbf42809d,0x30c29d,0x74d45762,0xc815c42,0xd45b7100,0xc11e4220,0x710018c1,0x4163517c,0xcc0d31a,0xd663f200,0xbf4284f9,0xff408429,0xf4c0783f,0x4284f9,0x16407f8f,0x94c0815f,0x7b4286c6,0x894085f6,0xa3c0cb19,0x404286c6,0x3e408120,0x36c08384,0x4a428715,0xd03ff5b7,0x8ac0725e,0xeb4287a2,0xcbc025fd,0xcc0ea3d,0xc14283cc,0x32c0ad53,0x2dc07591,0x3a4283cc,0x86c0b482,0x32c081aa,0xc6425f48,0x6ec0b525,0xe7c08278,0x3425f47,0xf20024b0,0x74e1c90f,0xb57e9342,0xc0a3d7c0,0x74e1adc0,0xb24b6242,0xea3d73c0,0x6d2978c0,0x18903f42,0xf6446200,0x89d7426f,0xfa71000c,0xcc4280a3,0x30aefb,0x74e18f71,0xaf182f42,0x3f2000c,0x426d87c3,0xc0af2900,0xc0e59023,0x426d293d,0x1829d8,0x6ff60a62,0xc237042,0xe1b07100,0xba04220,0xf10060b3,0x5b481404,0xb285f942,0xea3d9fc0,0x747fac0,0xb0130342,0x5a620048,0x6f416386,0xf1000cc6,0x2f08f304,0xb1acc5c1,0xe51ebac0,0x2e1330c0,0xb1ac36c1,0xaf710024,0xffc1816f,0x48b620,0x6fba04f1,0x94adc1f5,0x3d8ec0b5,0x6ff8c0ea,0x4f2bc1e5,0x710024b2,0x4220e1cd,0xcb63ed1,0x87447100,0x2cd84163,0xf1000cb7,0x2f457804,0xb8134fc1,0xe4a3d7c0,0x384fb6c0,0xb81878c1,0x87710060,0x22c1816f,0x24b843,0x4c78aa62,0xc2401c1,0x821cf100,0xaac20051,0x1c098d4,0xbdc079e0,0xfc2007f,0x79409f2b,0x33c08f06,0xe2c1918a,0x9040bc77,0x67c0c0a3,0xf4c1e18a,0x1c8bf4e,0xc93763f2,0x960ec1dc,0x7964085,0x4dd9c072,0xd1a0c1de,0x9e7c40a1,0xe459c072,0x76cfc1de,0x3077409a,0x3963c074,0xb670c198,0x604a4092,0xd8b5c072,0x3203c199,0x54d2408d,0xdbe2c074,0x9978c19a,0x38504089,0xe255c074,0x8ef3c199,0x69a9409d,0x8659c074,0xc6f6c19b,0x79640a4,0xdd90c072,0xfbdc19a,0x385040a1,0x8424c074,0xe0bdc19b,0xabf2006c,0xc19bcab3,0x408ee2f6,0xc07d605b,0xc1dd8195,0x4095bfd5,0xc07d5582,0xc1dd5e4c,0x40924181,0xc07d57de,0xc1dc55cd,0x409e3654,0xc07b1ef7,0xc1deb413,0xc08c21a9,0xc07220a3,0xc1ddcdeb,0xc0984261,0xc0721184,0xc1ddc5c0,0xc093b832,0xc0744c4d,0xc1dc1041,0xc09d902a,0xc0720dbb,0xc1db852e,0xc09b7490,0xc0743850,0xc1dd5993,0xc0862130,0xc0744157,0xc197bc05,0xc0949781,0xc0725d85,0xc198bd10,0xc0963652,0xc07454d2,0xc199c03f,0xc099cee1,0xc0743850,0xc1987baf,0xc0815675,0xc0720514,0xc1985603,0xc088b0ba,0xc07459b8,0xc19a913c,0x542a3d,0x64d8fff2,0xd6c19a5f,0x36c0961e,0x84c07be6,0xc8c1dc8d,0xedc09433,0xc07b0e,0x60c1db6a,0x21c09758,0x47c07b3d,0x1bc1f986,0x4406c2b,0xf2c07200,0x43c1f477,0x20404eff,0x6ac07299,0xf0c1f88e,0x7a406b8a,0xbec076aa,0x42c1f12b,0x7c4073cf,0x79c0719c,0x95c1f706,0x36408639,0xa8c072e5,0x41c1f4d4,0xfb407d2a,0xffc07d58,0x87c1f5b4,0xd6407e35,0x5fc07d58,0x23c1f3ab,0x6d406e15,0x1ec07e39,0xd2c1f3ff,0xb3407756,0x4fc07d60,0x10c1f6f7,0x344060eb,0x2dc07b0e,0x94c1f4ac,0x9c405e6a,0xf4c07b1a,0xa0c1f41e,0x7e4067c6,0x38c07d55,0x71c1f4b0,0x90bfc73a,0x17c07d10,0xfdc1f689,0xa2bfd3bc,0xc9c0729b,0x28c1eb25,0xcac01af4,0xe5c07b54,0x8ac1f177,0xa2c01e93,0xa4c0729b,0x61c1ebe4,0xbd401432,0xcfc07be4,0x17c1eee4,0xa240209a,0x6bc0729b,0x1ac1f690,0xa23fc634,0xbcc0729b,0xf8c1e945,0xa24020a6,0x61c0729b,0x5bc1ec15,0xa2402396,0xe2c0729b,0x64c1f383,0x553fbf5c,0x4fc08adb,0x24c1ea77,0x6b3ff845,0x8ac08ef1,0xe8c1eceb,0xa43ffea3,0xecc08e9b,0xe0c1ea46,0xc6400285,0xe2c08d7a,0xb2c1e898,0xc63ff9f2,0x2ac08d7a,0x8fc1e4ea,0xd13fc1c4,0x85c08c3b,0xdfc1e817,0x2b3fe96c,0xe7c08ea1,0x93c1f0ff,0xc63fe818,0x55c08d7a,0x89c1e632,0x5c3fb35d,0xe6c08ef2,0x48c1edd7,0xc6c0091a,0x14c08d7a,0x92c1eef0,0xebc00d08,0xbdc08a80,0xac1ec0a,0x42c005f7,0x57c08ea4,0x64c1e760,0x63c00475,0xebc08ad4,0x6cc1e71e,0xc6bff541,0xfec08d7a,0x53c1f187,0x42bfd95a,0xedc08ea4,0xbc1e937,0x3dbff4d2,0x5ac08f0a,0xac1ea3d,0xf1005412,0xead58f10,0xe3a01fc1,0x8f0a3d3f,0xec0b2dc0,0xf3612cc1,0x8f0a3dbf,0xee79dcc0,0xdbe354c1,0x10f10018,0xc1eacd30,0xbff0bd90,0xc09570a4,0xc1f0df12,0x3f995593,0xc09570a4,0xc1e75c52,0xca98a09,0x96f87100,0xe14cc1e6,0xf10024bd,0xeb364d04,0x49353c1,0x9553dd40,0xe69d87c0,0xb0ea6cc1,0x10f10024,0xc1f3d46c,0x3fc8bb6f,0xc09260d2,0xc1ea0d3a,0x40094828,0xc092d6da,0xc1e8292d,0xc030939,0xb804f100,0xa1c1f1f4,0xaa3fcfa3,0xdcc094c6,0xfc1f0e0,0xce629,0xefff3f71,0x2f749c1,0xfff20024,0xe4812290,0xba0193c1,0x92d6da3f,0xf6bcc6c0,0xa6c554c1,0x8099b7bf,0xe19749c0,0xda841fc1,0x7f36653f,0xe84136c0,0x182a28c1,0x826f2240,0xf414f0c0,0xca67ac1,0x7ee07240,0xeffe23c0,0x1f88dbc1,0x819f30c0,0xe91baac0,0x2ab491c1,0x7ee072c0,0xf40aa3c0,0x135f85c1,0x7ee072c0,0xe2c961c0,0xfbebd1c1,0x8099b7bf,0xe78596c0,0x13ea9ec1,0x8e0c4ac0,0xf0d864c0,0xf37dd8c1,0x94c6aabf,0xe81f92c0,0x98bb5c1,0x92d6dac0,0x6cbb66c0,0xc6dd6142,0x729ba2bf,0x7362f0c0,0x20beb642,0x729ba2c0,0x76ae40c0,0xf06a5542,0x729ba2bf,0x6f43ffc0,0x1823bc42,0x729ba2c0,0x763ebdc0,0xc5955f42,0x7cae36bf,0x708382c0,0x1071f842,0x7bacf7c0,0x709367c0,0x20cb9242,0x729ba2c0,0x7163cac0,0x1a28e942,0x7be70840,0x6ee526c0,0x46a5d42,0x80857740,0x6d4239c0,0xfd00b442,0x729ba23f,0x6e7e8ec0,0x99d4a642,0x8d7ac6bf,0x6ee5cfc0,0xf2448d42,0x8aabcb3f,0x71f5d0c0,0xad75e42,0x8d7ac640,0x72dc7bc0,0x8f5ae42,0x8d7ac640,0x7090fcc0,0xc109542,0x8b7a5340,0x746c37c0,0xf5253e42,0x8d7ac63f,0x6f382ec0,0xd8dee342,0x8ea4423f,0x708c7fc0,0xf488d742,0x8f0a3d3f,0x71f4c1c0,0xb238142,0x8b1177c0,0x7113fec0,0x2aa7a42,0x8d7ac6c0,0x7556acc0,0xb66a5d42,0x8d7ac6bf,0x6fbcfcc0,0xe173a842,0x8ea442bf,0x6e9d2ec0,0x18a7f042,0x48187100,0x40fb4274,0x710240ba,0x4271fa5b,0x58e68191,0x9b8b7102,0x3e08426f,0x710018b6,0x42745d35,0xca66120,0xa8627100,0xaa93426f,0x710024ad,0x426fe5ed,0xcc02e34,0x60117100,0x9ecf4274,0x71025899,0x42744b4f,0xcad8024,0x99597100,0xddf44272,0x71000ce3,0x4270c710,0xcdc4285,0x9eb17100,0xd2d0426f,0x71000ca9,0x426f9068,0x7ca63537,0xa52a7102,0x168b426f,0x71000cba,0x4273a8c5,0xcdca8fc,0xab10f100,0x75427448,0xca3fbdc8,0xd6c0956f,0x964271f5,0xaa400978,0x54c094c6,0xf64272f9,0x2700fb7,0x74bb4571,0xff0ca242,0x95710270,0x3c426f05,0x294dc83,0x4a4403f2,0xa62f4276,0x51693fbd,0xe70fc090,0xb9134274,0xfff20018,0xf58a51ff,0x23d54271,0x978b401a,0x4e61c08f,0x6c334271,0xa39e4022,0xd767c083,0x686a4273,0x95ec401d,0xf547c083,0xa7614271,0x99b74028,0xeff7c080,0x2f014276,0x870e3fc5,0xb0b1c082,0x6a05426d,0x54dc4001,0xf5dac081,0x3aeb4275,0xe0724013,0x13eac07e,0xe7e6426f,0x9e5c4017,0xc99ec081,0x98744274,0xe0724021,0x7f52c07e,0xf545426c,0xe0723fd4,0x5378c07e,0x152f4271,0xd5cbc01d,0xe0d9c082,0xeae4276,0xe072bff4,0x26dcc07e,0x4d40426f,0xe072c01b,0x7128c07e,0x5ee54277,0xe072bfc8,0xfb49c07e,0x61244271,0xe072c027,0xfacac07e,0x8af84271,0xd6dac00b,0x417dc092,0xb58d4275,0xc6aabfb5,0xeae4c094,0xecdd4274,0xc6aabfcf,0xbfb7c094,0x43894274,0xd6dabff2,0xd920c092,0x9e674273,0xcea5bff6,0x445bc094,0xcbc94241,0x9ba23dda,0x74c5c072,0x2f0a4242,0xfaf03de1,0xcf64c07c,0xb464249,0x9ba2be30,0xabf8c072,0x2d9d424a,0x9ba23de0,0x41b7c072,0x69234243,0x9ba2bec7,0xf8f1c072,0x11884245,0x9ba2bf12,0x1b7cc072,0xd3b54247,0x4836408a,0x7043c080,0xb3d34245,0xb741408e,0xbd35c077,0x345d4242,0xf9a04087,0x5815c075,0x575e4243,0xb6674084,0x3624c080,0xa61e4242,0x7d2a405d,0x2ce5c08b,0x5e424242,0x85473f17,0x5b8c08a,0x1a824249,0xac6d4078,0x27cfc08a,0x18244246,0xfb6c4082,0xf388c08e,0x6f94245,0x7ac64085,0xb00ec08d,0x5c144248,0xe73e406d,0xb9cdc08e,0x2974249,0xcfc4405f,0xfddc08a,0x85884244,0xf29d4079,0xf7c1c08e,0x42dd4248,0x7ac6406e,0x5104c08d,0xd5bf4249,0x7ac64060,0x727fc08d,0xb0794249,0x7ac63f49,0xdb8ac08d,0x6b2b4248,0xee1c3f03,0x5464c08e,0x5924249,0x7ac63f10,0xf84bc08d,0x48bb4245,0xa442bba1,0x8e79c08e,0x6e64244,0xa3d3e33,0x6e34c08f,0x5af74248,0x7ac63e30,0x9ae5c08d,0x8a6e4242,0x7ac63f0f,0x2b2ec08d,0x2794247,0xa3d3e89,0x9711c08f,0x79924246,0xa3d3e54,0xf813c08f,0x5caf4245,0xa3d3e3f,0x5908c08f,0x1e9b4245,0x1a710018,0x274243a6,0x33c2185,0xe3a504f1,0xfbca4243,0xa3d3ef8,0xc4c8c08f,0xaaa84244,0xf1000c88,0x44c0bb04,0x73980b42,0x8f0a3d40,0x444198c0,0x6d7b8942,0x8f5000c,0x42481de1,0x3ee1c497,0xc0956f41,0x42453575,0x3e34f334,0x489570a4,0x70a4b100,0x9c69c095,0x34ad4243,0xf1032429,0x438e2004,0x52512f42,0x9570a440,0x43a2e2c0,0x5c41d942,0x1971000c,0xd74243e0,0xc6585,0x35006004,0x789570a4,0x70a4b100,0x54d8c095,0x70c14245,0x71002477,0x4245f3d7,0xc78c28f,0x27216200,0xa3054247,0x45620024,0xe1424808,0x71004898,0x42484f81,0x245a6b27,0xaee67100,0x1b9b4248,0x71000c5e,0x42433d04,0x901a72fc,0x1500400,0x9570a4b1,0x453890c0,0x7e021d42,0x10f10024,0x4242557d,0x407917ca,0xc09083b6,0x42479f2f,0x408b3444,0xc08e19b5,0x4242acb4,0xd8605c8e,0xfe097103,0x4ed74243,0xf103d884,0x498d5795,0xabaf9642,0x8e4c2d3d,0x42a982c0,0xc47a1842,0x9171803d,0x48e940c0,0x9b389342,0x94f78c3e,0x47aecdc0,0x87ad2a42,0x8e538bbe,0x430722c0,0xb929cc42,0x94c6aa3e,0xc176d7c0,0xcbdf0141,0x729ba2bf,0xcf8c32c0,0x128ca441,0x79d628c0,0xc447c5c0,0xcdb3c41,0x729ba2c0,0xc926d9c0,0x234c6241,0x729ba2c0,0xc67ebac0,0x928e941,0x7c5a4240,0xc91b1fc0,0x24891641,0x729ba240,0xd2fe2ec0,0xf8387e41,0x7c5a423f,0xcf56f9c0,0x12b89141,0x7c159840,0xc16f83c0,0xce121741,0x5200603f,0xf641ceba,0xf1003095,0xcbea8d28,0x27855941,0x729ba240,0xc99a48c0,0x255b41,0x8ea75b40,0xcd8995c0,0xffa14541,0x8ef2d83f,0xc5ced7c0,0xbb68c741,0x8ea4423f,0xcf16e4c0,0xf91dac41,0x4f1000c,0x41d0d879,0x3ff0239e,0xc08d7ac6,0x41c70007,0xceff690,0x3504f100,0xf541d383,0x323fb963,0x1dc08aae,0xec41d1f4,0x18d916,0x229411f1,0x9c4141d2,0xabbbbfe9,0x1201c08a,0x29741cb,0xa83bc00d,0xad64c08a,0x6bfd41d2,0x8d0bfbb,0xd10933f1,0xdd904341,0x8efc03bf,0xcf030dc0,0x8875541,0x8a80e9c0,0xc8ca26c0,0xf68a8341,0x8ea442bf,0xc64124c0,0xc7afe241,0x8f031dbf,0xcd98d5c0,0x4a4141,0x8ea442c0,0xd01c3dc0,0xc509c841,0x227105e8,0xcd41c737,0x2d0b13c,0xc9861262,0x94c15141,0xcbe56208,0x2fd341c7,0x2c710024,0x2441c98e,0x30e144,0xc88f7671,0xd5143c41,0x4f1000c,0x41ce5af8,0xbfe12e27,0xc09570a4,0x41cbf4c1,0xceb8330,0x3c0400,0x9570a4b1,0xc720dcc0,0xa1338f41,0xf6710240,0x4f41d168,0x24b603,0xbf5c04f1,0xb31441ca,0xe5de4008,0x5e04c094,0x4a4d41c5,0xf205dcbd,0xd47fda03,0xc249d441,0x905bbe3f,0xd27c4cc0,0x18865d41,0x2710f100,0xc241d5b0,0xdd3fbf31,0xe6c083fa,0xa941c692,0xb7401aa5,0xfec08099,0x7941c3ea,0x8641095,0x1f4d28f1,0xa36e41c2,0xe0723ffb,0xaa7ec07e,0xa0f541c2,0x99b73ff6,0xd015c080,0x1cd241cf,0x49e0401c,0xe994c082,0x6d6141c0,0x53fc3fd6,0x99e1c07e,0x5d4641c1,0x710024cd,0x41cbea6c,0x482b2b84,0x1d28f100,0xed41d5d5,0xbcbfbdb8,0x15c082da,0x8f41c106,0x72bfcdc4,0x85c07ee0,0xc841ceba,0xb7c021ec,0x48c08099,0x1e41ccec,0xa3c02ee1,0xbdc07e20,0xeb41c466,0x180be2,0x6f56ff2,0x5fc441d4,0xa7a6c000,0x3548c082,0xad1541d3,0xe4f1bff8,0x8c4dc08d,0x82d41ca,0x7701c016,0x7917c08f,0x5f4241c6,0x538dc009,0x3355c08e,0xd85a41ca,0xc6aac003,0x8306c094,0xb72c41d2,0xc6aabfba,0xa49c094,0xaea341c8,0xd6dac005,0x12e0c092,0x245341c6,0xc6aabfd5,0xd0ddc094,0xc11e3eb4,0x9ba2c03a,0xa034c072,0x542a3e2e,0x9ba2c00f,0x270fc072,0xf2d4c017,0xfff50018,0x81b2a65,0x31d756c0,0x7b41f2c0,0x5280e0c0,0x86644ebf,0x744142c0,0xfb46bbc0,0x785a04bf,0x729ba2c0,0x87ce10c0,0x7000c9be,0x7c7a46c0,0xd2c344c0,0x754cbebf,0x7c66cbc0,0x9d55a4c0,0x513e423e,0x729ba2c0,0xaa0019c0,0x54fda8bb,0x802385c0,0x9d4289c0,0x70aa11bf,0x8d7ac6c0,0x90a6b1c0,0x788816bf,0x8aa46cc0,0x20bf5dc0,0x433a11bd,0x8a8017c0,0x806ff8c0,0x6d86cfbf,0x8ea442c0,0xfbd391c0,0x42084abf,0x8aa83bc0,0xc822cdc0,0x5eb967bf,0x8ea442c0,0x117f20c0,0x6b0d9dbf,0x8d7ac6c0,0x3769ecc0,0x6a697bbf,0x8ea696c0,0x521c26c0,0x667fedbf,0x8f0a3dc0,0x24213ac0,0x1b0e88be,0x8ada73c0,0x4cdb6ac0,0x9e36dbf,0x8ea442c0,0x8e2481c0,0x87ff1bf,0x8eaa0fc0,0xe11412c0,0x1f0ee0bf,0x8d7ac6c0,0x9bcc08c0,0x1ffad3be,0x8ecf4cc0,0x26df83c0,0x13ae36bf,0x8f0a3dc0,0x9d801bc0,0x51223bf,0x8d7ac6c0,0x980bd4c0,0xf3405bf,0x8f0a3dc0,0x34270fc0,0x5c15dbbf,0x8f0a3dc0,0x347326c0,0x19931dbf,0x8f0a3dc0,0xd98f1dc0,0x30df11be,0x8f0a3dc0,0x94584fc0,0x5ff441bf,0x8f0a3dc0,0xb6cbb0c0,0x5608e1bf,0x8f0a3dc0,0xb6eac0c0,0x1fba99bf,0x8f0a3dc0,0x80a2ecc0,0x147393bf,0x9570a4c0,0x8f10018,0xc09570a4,0xbfdaf41f,0xc03ae6e6,0xc09570a4,0xbfcab620,0xc44d4e1,0xa6d27100,0xa661bf80,0x4000c0d,0xa4a20054,0xa2c09570,0xa9bed961,0x710024bf,0xbf145e3e,0x2455f959,0x1628f100,0x8bbf8069,0xdac0798a,0x2ec092d6,0x72bde1c9,0xb9c06852,0xebc08e19,0xc43dffa7,0xb7c02feb,0x3ec08e19,0x94bfd9b0,0x8bc0744b,0xb9c08e53,0x21bf9c8d,0x24c6f57,0x3c953a71,0x48da5ebe,0x7671000c,0x71be1f37,0xc3aca,0x1f306271,0x5a22bcbe,0x4f10054,0xbf3499f2,0xc080f45c,0xc08e5543,0xbe89971c,0x2455f606,0x1bb57100,0x3ab4bfd9,0x71002467,0xbfde9507,0x185610f1,0x2510f100,0x81bfee90,0xabc03092,0x97c094dc,0x2dbf22fd,0x76c08922,0xdfc07ee0,0xb0bb448a,0xc7aca,0x372e62,0xcef4ec0,0x5f04f100,0xb4bfe3d3,0xeac07bb0,0xd1c08240,0x6cbfdae6,0x2484a6,0xb98a8771,0x522f063e,0x10f1000c,0x3eddf3b6,0xc038b6d8,0xc07e6cc6,0x3e80e022,0xc04548cb,0xc082b40f,0x3e9258f7,0x5424a0d7,0x8a5d7103,0x8948bbab,0xf10384f5,0x80b0d110,0xf852cebf,0x92d6dabf,0xf69cbc0,0xee41a2bf,0x8de4f3bf,0xed33d3c0,0x1b9136bf,0xe27100b4,0x41becf3d,0xb41465,0xbf5c9671,0x49878bf,0xc1710018,0xdcbf9cc9,0x180664,0xf7e43ff2,0x40c2bf88,0xf25a4089,0x1e04c07c,0x34b9bfb8,0x729f4087,0x6c66c07b,0x749fbffc,0x9b9d4084,0xae8ec072,0x488bf1a,0xc40d4087,0x3b0cc07c,0x247dbfb4,0x57694008,0xe6a3c07b,0x68ec00b,0x9ba24020,0x32d7c072,0x31983e29,0x4171000c,0x173e99d8,0x3c3528,0x3a9b10f1,0x5793bf81,0x9ba23fe9,0x4c77c072,0xda94bf81,0x7ac64013,0x21eac08d,0xbc49bf9e,0xf1000c15,0xbfc91d04,0x1566b2bf,0x8adc2740,0x1045fec0,0x4b9c4ebe,0x7710018,0x94be2e61,0xc3d31,0xb04f10f1,0xe3c9bfaf,0xe9cd401d,0xa0aec08e,0xc4fcbe59,0xe5ef404e,0x48f9c08e,0x35dbbeca,0xf1002424,0xfc373704,0x5490b0bf,0x8aa83940,0xe1d399c0,0x2fa5adbf,0x5a620018,0x87bf48f2,0xf1006cc4,0x4e2a2c04,0x1a9d52bf,0x8ea44240,0xe1f373c0,0x675775bf,0x31710024,0x6cbf1db1,0x187776,0xcafd3371,0x72f96abe,0x6b620018,0xdfbfd046,0x71000ce2,0xbfb939b0,0x187bc001,0xe5267100,0x5f3be2e,0x71000c5a,0xbf9e5f74,0xc80aa19,0xed037100,0x77c9bf5a,0x7108e826,0xbf165b21,0xc66bb45,0x41e17100,0xa6a4bf5b,0x71000c70,0xbfa7bfad,0xc2a4580,0x62206200,0xa0f5bf95,0x30040018,0x70a43500,0xf1003095,0x9570a408,0xcba0e0c0,0x55720dbf,0x9570a440,0x81565cc0,0x2525fabf,0x5f71000c,0xaebefb7a,0xc3862,0x35e5d271,0x2a507fbf,0x671000c,0xfdbfa1bd,0x8640ef9,0xc95810f1,0x5d96be57,0x4e644016,0x95f2c08e,0x25ff3cc0,0x97ad4035,0x6590c090,0x9e4dbd01,0xf100244b,0xdbea4f04,0x11e7b0bf,0x8de3e040,0xa2ab69c0,0x1f44febe,0x4f10018,0xc006a75d,0x405492a3,0xc090267f,0xbf053954,0x18154adc,0xac9b6200,0x347bf41,0x8a710c9c,0x4bc01820,0x6303405,0x9ae2da71,0xfa66cbbe,0x4f10678,0xc0010cae,0x401a4b77,0xc082c1c2,0xbc20d34a,0x240b9baa,0xc3c27100,0x7304bfd6,0xf106b401,0x5c350510,0x3642c03e,0x821e7140,0x5a073ec0,0x8d674dbf,0x83b3c040,0x14aba4c0,0x7662743e,0x7d710024,0x88c000cb,0x3c85be,0xfb8f03f2,0x8a16bff6,0x815c4071,0x3737c090,0xf5ebf42,0x32710948,0x77bf8190,0x9c851e,0xeb0710f1,0x3465bf93,0xe4f3408a,0x8ccec08d,0x7fa6bf12,0x974e4086,0x764fc08f,0xed1cbea3,0x71002477,0xbe274a77,0xc6af430,0xc104f100,0x1cbfce55,0xaa4071eb,0xf7c094c6,0xefbfc03b,0x1880e6,0x85a25171,0x5bd75ebd,0xff2000c,0xc1791230,0xbfd26a1a,0xc0729ba2,0xc16ebc75,0xc00c7564,0xc07c3971,0xc14f1ccf,0x180a0f,0x3e4d28f1,0xe768c152,0x94423f9a,0x6de3c07c,0x4018c166,0xc6f84013,0x3077c07d,0x8dd6c151,0x7b423fc3,0x20f0c076,0xc975c16f,0xd4c74007,0xf6e2c079,0x73f3c176,0x710318f1,0xc17920d7,0xcc786fd,0x8b7b7100,0x5065c15e,0x71096021,0xc16f7173,0x949aa490,0xcf04f108,0x3bc15ee5,0x640033a,0x30c08dbc,0xadc17062,0x954b4dd,0x6f1f1071,0xcd522ac1,0xce81000c,0xd6c167af,0x78c00870,0x6415520f,0xa04d98c1,0x2e28f111,0x70c15ab4,0x25c0037c,0xd4c08af7,0x68c15857,0xc0bfc077,0x68c08eec,0xf7c172b0,0x89bfce05,0x40c08b60,0x84c15a13,0xb7bfe50d,0x11c08e9a,0xa8c1718b,0x960c234,0x7054de71,0xbf98bfc1,0x61710948,0x3dc15d4d,0x8f4db80,0x5f49ee71,0xe7b941c1,0x9971000c,0xbcc16d91,0xa8aab1,0x64165c71,0xf20e49c1,0x1a710018,0xaac16a38,0x18d6f3,0x6c681371,0xcbbaedc1,0x1cf10018,0xc1669287,0xbfef760c,0xc09570a4,0xc15add1c,0x3fb23bbc,0xc0956ff6,0xc16427c8,0x3ff525a2,0xc09570a4,0xc16f0fb6,0xcb20b5f,0xf104f100,0x74c172c2,0x2e3ff446,0x25c08dab,0x28c17349,0xf0cbb0f,0x15fffff2,0xc1758b32,0x3f9a969a,0xc08fca5a,0xc15b919b,0x400b1c00,0xc08fbfd1,0xc161e261,0x4015e436,0xc08e1e1b,0xc1558619,0x3ff39f3c,0xc08de4f3,0xc16b275e,0x400ecbbc,0xc08fa9ce,0xc16f3cbc,0x3ff34d2f,0xc092d6da,0xc16af24a,0x3ff8c68b,0xc094c6aa,0xc17629a7,0xbfc3f690,0xc08d0f0a,0xc16087f2,0x401da869,0xc08236dd,0xc16a0652,0x4024c99b,0xc07ee072,0xc1709409,0x400e0c0f,0xc08247c1,0xc16f7b00,0x401bb830,0xc07ee072,0xc17429e2,0x400d4fec,0xc07ee072,0xc177c144,0x3ff51855,0xc07ee072,0xc157dc0d,0x4011e721,0xc080918a,0xc177af58,0xbffff51f,0xc07ee072,0xc179f3b3,0xbfd44fb1,0xc07ee072,0xc15d18bb,0xc01f626b,0xc08223fd,0xc15e3756,0xc02a0b24,0xc07ee072,0xc15413c5,0xc0129175,0xc07ee072,0xc1741548,0xc012b617,0xc07ee072,0xc1580103,0xc01279f6,0xc08395f0,0xc1507c64,0xbfff9b67,0xc07ee072,0xc17444a6,0xc004599f,0xc0824d51,0xc1551dd9,0xbfd5d827,0xc0933cb2,0xc17170d8,0xc000171e,0xc090b012,0xc158c11f,0xc00c2b80,0xc08de3e0,0xc16db0cb,0xbff22af5,0xc094c6aa,0xc15c3f27,0xc008e243,0xc092d6da,0xc1733b61,0xbfc5d780,0xc092d6da,0xc1713662,0xbfc17e56,0xc094c6aa,0xc160065b,0xc00f29d8,0xc092d6da,0xc1609181,0xc00715db,0xc094c6aa,0x422f4a39,0x40a5fbd2,0xc0724a2c,0x4230de7e,0x40958ebb,0xc0724a2c,0x41f70b61,0x40a3f06f,0xc0777dfa,0x41f56f34,0x404288b9,0xc0869ab7,0x41f4e944,0x404285f5,0xc08cce7f,0x41f18789,0x4042b78d,0xc07e7c4a,0x41f2fcb9,0x40428280,0xc086b8f1,0x422f7d9d,0xbf85da0e,0xc0858727,0x422fe67c,0xbf85d66b,0xc08bd578,0x421c0a63,0xc08cbb49,0xc0805137,0x421c0a62,0xc08cb631,0xc0724a2c,0x41f68f39,0xc08678ff,0xc0794edf,0x41f72106,0x181455,0x8efffff1,0x41f303f3,0xc07ef72b,0xc0724a2c,0x41f44dd4,0xbf291b82,0xc08bd027,0x41f1f435,0xc063e658,0xc07fc5a0,0x41f72934,0xc08bf8d7,0xc080667b,0x41f566fc,0xc08a6163,0xc07f3a32,0x41f58d3b,0xc088fcca,0xc080e0aa,0x41f1d7d4,0xc0766f9c,0xc07e2ae0,0x41f2c43d,0xc07fc7d2,0xc07f35c6,0x41f852cc,0xc069214f,0xc08d7002,0x41f8357a,0xc068384c,0xc0870c09,0x42300f54,0x40a2e9cd,0xc07f5497,0x422e788e,0x40aa3c9f,0xc07e9f7b,0x4230d8f7,0x40957a96,0xc0807881,0x42307b18,0x409bdc31,0xc080e0a4,0x41f6eb60,0x40aa0f6f,0xc07e8341,0x41f71213,0x40a81b91,0xc0806796,0x41f3c937,0x40a2174a,0xc07f4d51,0x41f52cbb,0x4095baa1,0xc08cb5c6,0x422deefb,0x4090b5ce,0xc0870a09,0x422e3d7e,0x409f1750,0xc08bd5bd,0x422f147c,0x409735eb,0xc08cb03a,0x422e5798,0x40a523c6,0xc086a2e0,0x422d9906,0x40a5d48f,0xc086b8f1,0x41f5e75f,0x40a2677f,0xc0869f77,0x40f1eb5f,0x3ffcea9e,0xc07cdb83,0x40d9d139,0x4034be77,0xc0767b3e,0x40f9a53c,0x3ffeed91,0xc0729ba2,0x4013a772,0x401431d3,0xc07c4abe,0x4000e9a7,0x401400d6,0xc0729ba2,0x400655c9,0x3feadb40,0xc07c99fe,0x40359eae,0x403c8a65,0xc0729b9d,0x40da3603,0xc02c0bbf,0xc080d708,0x40f9c9e0,0xc000b4f2,0xc0729ba2,0x40db1b6d,0xc03e34fc,0xc0729ba2,0x40dd98a0,0x4019260f,0xc08d7ac6,0x40cfaa82,0x4024ba49,0xc08ba678,0x40d76955,0x4022b4b7,0xc08ba678,0x40d6e078,0x401eb296,0xc08d7ac6,0x4040294a,0x4025cfd1,0xc08a2dda,0x40c033c0,0xbf9db3fa,0xc08f0a3d,0x40be6857,0x3f9bd841,0xc08f0a3d,0x40c01514,0x40078c61,0xc08f0a3d,0x40ceabe0,0xbf9644a6,0xc08f0a57,0x40d72d51,0xbff965ba,0xc08f0a3d,0x403e4990,0x401749c7,0xc08ef990,0x40c8a31e,0xc00d87fd,0xc08f0a3d,0x40a40a87,0xbfc6a21a,0xc08f0a3d,0x409c3c15,0xc00920ff,0xc08f0a3d,0x408a3da3,0xbf9ba9e3,0xc08f0a3d,0x40839883,0xbfe99043,0xc08f0a3d,0x4040670a,0xc0262379,0xc08b7ba6,0x404c7f56,0xc0223ede,0xc08d7ac6,0x40d98eb9,0xc025efb3,0xc08a9d3b,0x40d70e13,0xc0201883,0xc08d7ac6,0x40332589,0xc0167725,0xc08ea442,0x4016a78f,0x64f20d56,0xc827f205,0xa5403f5f,0x42c01b83,0x31c08ea4,0xed40105b,0x783fd129,0x8c08ba6,0xed4020c7,0x8e401463,0x92c08bca,0x32402d5a,0xf040111e,0x67c08ea6,0xec403db9,0x7101146d,0x4089b210,0x4c9f18a0,0x96057105,0xc7434083,0x71000cc6,0x40c2875b,0xc96528b,0xfd547100,0x8751402f,0x71054c41,0x40bd5a88,0xc9f1277,0x4d04f100,0x2640d586,0xa440148f,0xe3c09570,0xfb40d0e1,0xc0795,0xccd42271,0xaeef640,0x6771000c,0xbb40d0d4,0x30959d,0xde61c671,0x42527a40,0xa472000c,0xdd40b846,0xcc378,0x40b9f061,0xcf678ea,0x6b1c7100,0xc98a40d9,0x710078d7,0x40250735,0x18fe6959,0x93037100,0x6b6e402a,0x71000c37,0x4026357a,0xc1e085b,0xf3cb7100,0xd5a64087,0x710be803,0x4028b93d,0x3c3786b1,0x1210f100,0xb540e75b,0xaac0056c,0xdcc094c6,0x1a40ea0f,0xaabff0a2,0xa8c094c6,0xb40e601,0xac81698,0xeafb0162,0x4996b40,0xba47117,0xaf6840e3,0x71003010,0x40df8532,0x2420922e,0xe07c7100,0xc5c540d6,0x7100181e,0x40e5d6c3,0xd415433d,0x804f107,0xeb40ece3,0x2e4015c7,0x44c08dab,0xa640d6b3,0x8041d5f,0xfffffff5,0xf0c2ce3b,0x1ca0dc40,0x81599dc0,0xdaedd9c0,0x3ce24340,0x8099b7c0,0xac76dc0,0x1d24c040,0x816150c0,0x37773ec0,0x39293540,0x826e03c0,0x215ce6c0,0x32a6f840,0x8099b740,0xfb803dc0,0x15d3073f,0x7ee07240,0xf61273c0,0xeff76a3f,0x8155b03f,0x35f9dbc0,0x3b37ac40,0x8099b740,0x15df8bc0,0x7eed440,0x92d6da40,0x44d2bc0,0xee81aa40,0x8d96723f,0x35d380c0,0x2cd0f240,0x8fd7fb40,0x30fc05c0,0x17aa1d40,0x94c6aa40,0x69863c0,0xd1245340,0x8fca5a3f,0xfa099c0,0xf19ce040,0x92d6da3f,0x12e575c0,0x11f28840,0x908642c0,0x2610a5c0,0x1101d240,0x94c6aac0,0x17fa48c0,0xf156fc40,0x94c6aabf,0xf063edc0,0x8499bfc0,0x725ed040,0x70eff2c0,0x81fd26c0,0x7d1f8e3f,0x559097c0,0xb586cbc0,0x725ed0bc,0x36486cc0,0x855758c1,0x7d1be3bc,0x2c5d1fc0,0xee4285c1,0x8f78143f,0x91fa1ec0,0x3b3bd6c0,0x725ed040,0x3ad99bc0,0xf12cc1,0x725ed0bd,0x36edc8c0,0x901ef7c1,0x737974bf,0xcd8e34c0,0x81bb1fc0,0x725ed0c0,0x2cb716c0,0x2386e4c1,0x73703fc0,0x3364d3c0,0x815433c1,0x829088bf,0x7a121c0,0x6af1e5c1,0x8f9c47c0,0xad61f6c0,0x68b988c0,0x725ed0c0,0x91c422c0,0x3e3eabc0,0x725ed0c0,0x16e3cec0,0x5bf5a1c1,0x79ec35c0,0x16415ac0,0x52ee39c1,0x8f6fdbc0,0xf05e29c0,0x6f94e6c0,0x8fa29f40,0x347528c0,0xd9dfdbc1,0x8f9ac3bc,0x803a3bc0,0x6a51e3c0,0x93f0823f,0x82d5fac0,0x64b418c0,0x950ef13f,0xb4456dc0,0x4fd677c0,0x8f6f7640,0x777dfec0,0x761416c0,0x8f74d33f,0x8bd8e0c0,0xe5041dc0,0x93f0823f,0x801c1c0,0x667a7dc1,0x8fe28040,0xa03769c0,0x1eb0eec0,0x950ef140,0x165c34c0,0x4f5ef2c1,0x8f3c6040,0x293648c0,0xdeb9d4c1,0x950ef13f,0xd30a26c0,0x5939b0c0,0x950ef140,0x30c51cc0,0xfc1df3c1,0x950ef1bc,0x321edec0,0xfce315c1,0x93f082bc,0x2b2301c0,0x52df61c1,0x9570a43f,0x25e050c0,0xcf5bb4c1,0x9570a43f,0xf01e2cc0,0x5e842bc0,0x9570a4c0,0xd4cbc5c0,0x4da8a4c0,0x9570a4c0,0xf01f8ac0,0x54ea96c0,0x9570a4c0,0x2d6c79c0,0x6c6877c1,0x9570a4bf,0x2b1b2fc0,0x626d8bc1,0x9570a4bf,0x127831c0,0x38bd27c1,0x9570a4c0,0x253fffc0,0xc67c7c1,0x954715c0,0x8a357ec0,0x609aaac0,0x9570a4bf,0x8792a1c0,0xb36f54c0,0x956788bf,0xb8ef35c0,0x40cfb7c0,0x9570a4c0,0x211642c0,0x25f2cbc1,0x93f082c0,0x151080c0,0x4ac38bc1,0x93f082c0,0x6b8adc0,0x5ca887c1,0x950ef1c0,0x711cbc0,0x61e0d2c1,0x93f082c0,0x871703c0,0x8eb79c0,0x9bd70abf,0xf05bf7c0,0x517bc0c0,0x9bd70a40,0x2d0b35c0,0xcf4d59c1,0x9bd70a3e,0x3fbec0,0x5404e6c1,0x9bd70ac0,0x2f5211c0,0xfb4a23c1,0x9bd70abc,0xa2438fc0,0x1a964ac0,0x9bd70a40,0x6778dc0,0x537efac1,0x9bd70a40,0xfff100f0,0x9bd70a1d,0x7a9279c0,0xbad18dc0,0x9b3d84bc,0x8afaa2c0,0xea0c6bc0,0x9a840c3f,0x2e9169c0,0xf2095fc1,0x9556713f,0x368f35c0,0x808f3bc1,0x8302003f,0x8004ac0,0x7075f7c1,0x94f8ec40,0x70f17c0,0x5c4b16c1,0x9b3d8440,0x9f0be7c0,0x21094ec0,0x9b3d8440,0xb6dff8c0,0x458527c0,0x9b3d8440,0x3192f5c0,0x6e58f7c1,0x9a09613f,0x828696c0,0x849dc0,0x912789c0,0x6ef890c0,0x87780cc0,0x94f8a1bf,0x7f9d0c0,0x75b329c1,0x93227fc0,0x8099a2c0,0x1ff54c0,0x842e21c0,0xd25d53c0,0x5fb9edc0,0x9b3d84c0,0x2e17c7c0,0x85d7c1,0x94f814c0,0xb0d70cc0,0x599ae5c0,0x94f86ac0,0x9edd66c0,0x241b1ec0,0x9b3d84c0,0x973c6fc0,0x30d5d4c0,0x959e5ec0,0x887647c0,0xee2bfac0,0x99eda4bf,0xcf02b6c0,0x76fdfcc0,0x84581b40,0x185617c0,0x5d25ffc1,0x8457b240,0xadf842c0,0x6472b9c0,0x80537e40,0x25b919c0,0x343426c1,0x8405ea40,0xde792dc0,0x873418c0,0x7e5df240,0xce036fc0,0x7ee8fbc0,0xfff20024,0xb1ba09ff,0x171c13b,0x6ab1bf1c,0x9f2fc07e,0xa198c108,0x2d3ac07a,0xe1d6c084,0xa00cc0ef,0x2a69c081,0x4c084,0xcb6fc0cd,0x6eb5c083,0xd48dc07e,0xa7d6c0ac,0x4218c06d,0xa24c07e,0x4c23c11a,0x4d05c06d,0x419fc07e,0xe18fc119,0x537ec067,0x515dc080,0x4263c07a,0x537ec006,0x11fcc080,0x7ec8419d,0x690a4049,0x2f2dc075,0xbe6c418f,0xd2894085,0x81c2c077,0x2afa41a5,0x56693fdf,0xd98dc072,0x96ab41a4,0xef313fca,0xd56cc078,0x88d341a5,0x9f1b3c19,0xbb6c084,0x4ee44141,0xc5b039e9,0x7580c077,0xad214163,0x5669407b,0xd356c072,0x965f4159,0xfbb5c055,0xefbdc077,0xe8bc4194,0x6ef4c06a,0x221fc084,0x64bd416c,0x5669c086,0xc110c072,0x5f3941a1,0x51dbc014,0x8cb6c079,0x8f5041a5,0xeaa7bfa5,0xfbd4c078,0x89db41a7,0x5669bf16,0x6a71c072,0xc92a414d,0xf130c01d,0x2c6dc077,0x9514414d,0x9f1bc007,0xafd8c084,0xe758415b,0x5669c066,0x5cadc072,0x33764146,0x9f1b3f8b,0xe3ccc084,0x82454199,0x43d44030,0xbed7c08a,0x2fc24177,0x3d54071,0xc03ec08a,0xa23c415b,0x5b0cc02f,0xbcf7c08a,0xc700414b,0x2631bf82,0xb46bc08a,0x8a874168,0xe07ac058,0xf254c089,0xa9ac4199,0x78dfc02f,0x891fc08a,0xa2a1414f,0x903bf72,0xd23fc097,0xbde0418b,0xab7c067,0xbc33c094,0xc7824194,0x93c0c037,0xdffbc098,0x96f2415d,0x7642c026,0x4a9dc096,0x850a416a,0x42ccc04d,0x1d26c096,0x879441a1,0x9033b85,0xd726c097,0x82514178,0x903c061,0xf89cc097,0xe4754183,0x8716c061,0x9914c098,0x165d414f,0x96a23f0b,0xb329c098,0xcf534169,0xe580404f,0x3421c093,0x32e4178,0xf4ae4068,0xc71cc093,0x3e574191,0xa3d74040,0xc452c098,0x38614153,0xe57e3fef,0xb668c093,0x26e5418b,0x80f50024,0x4178b6e6,0x40615fc4,0xc0970903,0x41628091,0x40152c88,0xc098a3d7,0x419e56ed,0x3b71b25f,0xc098a3d7,0x41912a45,0xc036c954,0xc098a3d7,0x419ad140,0xbfd2ca82,0xc098a3d7,0x415a2ebb,0xbfd39bcc,0xc098a3d7,0x419ac9b3,0x3fd39bd4,0xc098a3d7,0x419e3a37,0xbf020e30,0xc09f0a3d,0x418acd07,0xc04bf13d,0xc09f0a3d,0x416d87c0,0xc03705c0,0xc09f0a3d,0x416295ee,0xc01581f9,0xc09f0a3d,0x4152fdbe,0xbeb83276,0x849f0a3d,0x3d08f100,0x12c09f0a,0x3d417a28,0x3d404bf1,0x33c09f0a,0x7d418b16,0xc5658,0xcae4fff2,0x82415c50,0x14402fc5,0x41c09a20,0x9341690d,0xb40576e,0xa2c0999c,0x2a415ef3,0xd8402358,0x26c09e65,0xee4177f6,0x1c406f7c,0x9fc099ea,0x38419fda,0xd83f706b,0x58c09e65,0xbd414d42,0xb6bef8a9,0xe8c09df3,0xf7418b63,0xd8405f72,0xfec09e65,0x2e418c12,0x12406eca,0x56c09a21,0x341a1a6,0x63bf555b,0x10c09c8b,0x2a41525a,0x8cbff98c,0x41c099e9,0x57415c40,0x9ac02fee,0x43c099ea,0xc0414f52,0x29c0013c,0x55c08e32,0xb24159a9,0xc7c037bb,0xe9c08e2b,0x45415a4c,0x1c03649,0xa4c08f5c,0xf9416754,0x75c06215,0x73c08e0e,0xd3419087,0xb4c074f6,0xdac08daa,0xb419417,0xf2c05f41,0xcdc08f43,0x7441a4ef,0x16bee299,0x9dc08d7a,0x3241a42d,0xd93b2b71,0x3bc08f4e,0x3541a311,0x3bf857e,0x51c08f5c,0x9c41a208,0x403fcf89,0xe6c08e20,0x33419ab5,0xa7403654,0xdfc08f6c,0xdf419407,0xf2405f8a,0x7bc08f43,0xe3417d46,0xb140807a,0xbc08ea4,0xb2414fdd,0xc840010f,0x55c08ed1,0x8141a30e,0xa13f8622,0x23c08f5b,0xe441496c,0xc33f8415,0xbec08ee7,0xbb416cfa,0xd5408050,0x9c08a77,0xaa415c80,0x1040619b,0x7ac08631,0xb7419d11,0x1040497a,0xb8c08631,0xb9419555,0x254071a8,0x5cc08985,0x1f4194e2,0xfd406b66,0xf9c08c07,0x7941a2ba,0x10400e95,0x61c08631,0x8a41a37f,0xf33ff7ac,0x5bc08992,0xf24183e6,0x10408e4e,0x42c08631,0x37414303,0xdb3f1288,0x2ec08ab3,0x2241a6cc,0x253b9f8c,0xd1c08985,0xec4183e6,0xfd4087d1,0x61c08c07,0x4a41a599,0xfd3f0f07,0x40c08c07,0xc441913e,0x254080e0,0xe2c08985,0x5d4198a3,0xfdc05752,0x2fc08c07,0xf7415e99,0xf2000cb0,0xffffffff,0x6d228d53,0x80395041,0x8a93f0c0,0x8d2f9ec0,0x896b1041,0x863110c0,0x844d94c0,0x8f7bd741,0x85953ac0,0xa6410fc0,0x91091841,0x87f8ecbf,0xa68123c0,0x105c4641,0x898525bf,0xa59eb2c0,0x8fbfa541,0x898525bf,0x7edb4cc0,0x8a426c41,0x898525c0,0x841e13c0,0x83425741,0x8de11ac0,0xa03062c0,0x2d02eb41,0x863110c0,0xa3530ec0,0xcf57e641,0x8c07fdbf,0x9ee6a7c0,0x251f8641,0x8c07fdc0,0x962289c0,0x7e4b7b41,0x802e51c0,0x8d5249c0,0x8c69ee41,0x80727cc0,0x5b18a5c0,0x69fd5d41,0x7e8883c0,0x638446c0,0x7babde41,0x806ce5c0,0xa13034c0,0x3321ab41,0x7e8883c0,0x714934c0,0x8be74341,0x7f265fc0,0x3e64e2c0,0x2b91b441,0x7ec3a03e,0x40bd51c0,0x992d2341,0x7e8883bf,0xa7818cc0,0xa64b0241,0x7e1a65bf,0x481e81c0,0x13a0ae41,0x7e8883c0,0x8d835ac0,0x8e477e41,0x7e8883c0,0x9c86f4c0,0x59cf2541,0x7f333340,0x6ab731c0,0x85cb0e41,0x808ffe40,0x96525dc0,0x7f5e8941,0x7e888340,0x9610fdc0,0x7bd24641,0x807b9840,0x54737ec0,0x4d40a341,0x80752940,0x49bd82c0,0x23bf1641,0x7e064b40,0x4e4930c0,0x31719b41,0x80614340,0xa7f364c0,0x1ad92741,0x806ce53f,0x48f7aec0,0x1180f541,0x80727c40,0x83e5fec0,0x9357ac41,0x7e888340,0xa703e5c0,0x970c1c41,0x807b9c3f,0x44c0ddc0,0xdeb65241,0x806ce53f,0x83d5c8c0,0x91576f41,0x80727c40,0xa3ecddc0,0x13ac4b41,0x7e405340,0x7e3383c0,0x900b7441,0x806ce540,0xdef348c0,0x936651c1,0x83017e40,0xdc8bc7c0,0x9d4383c1,0x84d5e540,0xddbd7ac0,0x9f59eac1,0x82f8f040,0xdec926c0,0x999bbfc1,0x82fd7840,0x99bedcc0,0x9a7e54c1,0x83a27d40,0x9b78c0c0,0x893f12c1,0x83168140,0x9a89a1c0,0x91d8e6c1,0x84d48440,0x9a688ac0,0x978d41c1,0x84dcc240,0x9a6bb0c0,0x864604c1,0x7ea0a140,0x98e229c0,0x8cdd5dc1,0x7f0f5a40,0x980a5ac0,0x9a4f8bc1,0x7e225b40,0x9b6976c0,0x845a77c1,0x7e463d40,0x9b9ad4c0,0x9d6378c1,0x84d8f140,0xddb5a0c0,0x9a9d9bc1,0x7ea401c0,0xdcdf25c0,0x8ea1f1c1,0x84d43bc0,0xdb69eec0,0x917086c1,0x8570a4c0,0xdbb55fc0,0x9a9019c1,0x8307c0c0,0xdbeef7c0,0x87e1d6c1,0x851d02c0,0xdced00c0,0x85462ac1,0x82f962c0,0xddad03c0,0x89c8ebc1,0x82fda4c0,0x984299c0,0x8c6775c1,0x830863c0,0x97ae9bc0,0x969837c1,0x7ea490c0,0x9956afc0,0x9d1581c1,0x7ec2e3c0,0x973f6fc0,0x936838c1,0x7e5711c0,0x9a23b3c0,0x9f7de9c1,0x7e1cefc0,0xdbcaa6c0,0x7ad8d8c1,0x7e4d4dc0,0xdf1986c0,0x89a96bc1,0x7ed1ccc0,0x9aeaaac0,0x859ba2c1,0x84d2d2c0,0x9a6ad9c0,0x81c3a8c1,0x82fe69c0,0xf9d95bc0,0x68f3dcc1,0x7e496640,0xf2d8b7c0,0x54926cc1,0x7e8da040,0xf1068ac0,0x716274c1,0x7f3fcd40,0xf364d3c0,0x87250dc1,0x7eab7540,0xf938c2c0,0x81b89dc1,0x7fcc0c40,0xf4f5c0c0,0x77fa76c1,0x85743c40,0xf461c1c0,0x844089c1,0x82fd6b40,0xf284b8c0,0x79a648c1,0x8308df40,0xf34283c0,0x81499fc1,0x82f96240,0xf745a6c0,0x7b05a7c1,0x84d33940,0xf252a1c0,0x6cec9ec1,0x82fffa40,0xf359e3c0,0x744d83c1,0x84d3bd40,0xf2ee36c0,0x6084e4c1,0x82f9ba40,0xf88af8c0,0x67037dc1,0x82fef440,0xf38174c0,0x694064c1,0x84d4a240,0xf7889ac0,0x6934b5c1,0x84d49540,0xf56442c0,0x5eb9d0c1,0x84e08740,0x9122d9c0,0xab0b7abe,0xa66cb2c0,0xe611a9c1,0xab840ebf,0xa3cbd2c0,0xb145fac1,0x8b34ca3f,0x9c860fc0,0x3cab7dc1,0xaab9c341,0x5ed678c0,0xdad513c1,0x50fb1540,0xe4e688c1,0xd33333c0,0x51000040,0xc00000c1,0xd5de2dc0,0x510000c0,0xabeef6c1,0x4744e9c0,0x50f69e40,0x80d5cec1,0xccfbb9c1,0x50fee3be,0x4f5804c1,0x2c2d6bc1,0x51058f41,0x8a2b41c1,0x30d120c0,0x9fff500,0xc0d3e098,0x413637c8,0xc150fde3,0xc0b40362,0x413292f5,0xc150f84d,0xc0e4e3da,0xc0e8d317,0xc150fc1a,0xc0f72ce4,0x41483086,0xc15100df,0xc1496e12,0xbfe82f9d,0xc150fd60,0xc193dda6,0x411ed9b4,0xc150fd7b,0xc103da26,0xc13676fd,0xc150fe62,0xc0c841e5,0xc148cccd,0xc150ffff,0xc1400001,0xc12559be,0xc150b551,0xc07f21e6,0xc0e79214,0xc1510a69,0xc08a31b6,0x40e2b982,0xc1510400,0xc09111fb,0xc10f8f35,0xc13c4203,0xc0e3ed87,0xc10516b2,0xc13c2e00,0xc0dbf872,0xc0ff55ae,0xc13c2e14,0xc0b228df,0xc1072f31,0xc13c288d,0xc0a0ac1d,0xc10b40db,0xc15061ca,0xc0674b49,0xc11b0ee5,0xc13c2be8,0xc0a44645,0xc12087fe,0xc13c2fb6,0xc0b32d10,0xc10b71dd,0xc1333333,0xc09dffda,0xc1100000,0xc1333333,0xc09ccccf,0xc11f3df7,0xc1333333,0xc0ae6666,0xc148cccd,0xc1333333,0xc121113f,0xc11c71f1,0xc1333333,0x18d8e3e3,0x4f100,0xcdc09000,0x334118cc,0x12c13333,0xc0a184,0xc1000,0x9ccccf71,0x73333c0,0xf084000c,0x33c0de7b,0xcc10733,0xcccd3100,0x71001848,0xc121113f,0xc460369,0x66666200,0x175dc076,0xb0710018,0x29c0853b,0x303962,0x4fa29071,0x3e6666c0,0x5a71000c,0xf1c057f2,0x301c71,0xd8e3e371,0x38e0fc0,0x8f1000c,0xc0a71c20,0xc148cccd,0xc1290405,0xc12bfd19,0xc148c57c,0x9cd1999a,0xcccd84a2,0x999a4148,0x18c0d1,0xab333131,0x19f40018,0xc133dad2,0xc08b2bc1,0xc1511ec4,0x4133faf4,0xc08b2aac,0xc150e7b0,0x414605ae,0xc0ab3331,0xc14f87a5,0x4148cccd,0x31f40054,0x413c9478,0xc14fac01,0xc051b0ab,0x41190832,0xc1507b25,0xc06be371,0xc137cd77,0xc14f8676,0xc04dc287,0x41219eb1,0xc13c3d80,0xc0c40317,0x410d8941,0xc13c1c41,0xc09cde96,0x4104f11c,0xfff10180,0xa43ffff,0x2c40fd02,0x3dc13c2a,0x57c0b7d7,0xffc01dce,0x16c148ff,0xd7c18549,0x8f3ecaa1,0x13c148fb,0x2bc19454,0xeabebe13,0x87c148da,0x7ac15746,0x9a4017ab,0x47c0bb99,0x2bc1704b,0x9a3fce87,0xa5c0bb99,0x2ec15ff3,0x9a3ecaa9,0x5fc0bb99,0x76c15756,0x9abfc232,0xdec0bb99,0x3fc15ec4,0x9ac0168d,0xc0c0bb99,0x2ec16f5b,0x9abecaa9,0xd1c0bb99,0xc6c19454,0x9a3f6d8b,0xd3c0bb99,0x83c19330,0x9a400031,0x6fc0bb99,0xbec18ce8,0x87422502,0x86c05ef8,0xdfc05e38,0x3420339,0x864089dc,0xefc05e38,0x1e41fa4d,0xaa4089ce,0xdcc0d582,0xfa4224fa,0xaa4059b6,0x99c0d582,0xd1c11d7e,0xbabfb1af,0x52c0616b,0x6cc11b9c,0xbabf8977,0x71c0616b,0xedc11d58,0x86bf4999,0xa6c07e38,0x97c123b9,0x86bf2a3c,0xd3c07e38,0x3cc0dbb3,0x86c027f4,0x26c07e38,0x1ac11921,0x86be9015,0xc1c07e38,0xbac0a971,0x86bf5cf7,0x2ac07e38,0x29c0b111,0x863ed6b2,0x92c07e38,0xbac0a758,0x863f48bd,0x9bc07e38,0x74c0a981,0x863f5e40,0xebc07e38,0x2cc118c2,0x863ed466,0x3dc07e38,0x61c10fb3,0x864019ff,0x8bc07e38,0xbac1054c,0xbac01331,0x4fc0616b,0xbcc0c2bb,0x6ec018b1,0xbec0616b,0x1fc0d0bc,0xbec00b0e,0x20c0616b,0x15c11be1,0xba3f7656,0x2dc0616b,0xa9c0d7cc,0xbac01314,0x23c0616b,0xc8c100f8,0x20be0f79,0xb9c067d2,0xc3c0e08b,0x683e4b9d,0xe8c067ec,0x11c0ece9,0xd8bf01c8,0x1ec06cf0,0x2fc0e8dd,0xd8bee8a3,0x2ec06cf0,0x7ec0e10c,0xd8be0a8f,0x2fc06cf0,0xbdc0f005,0x6e3f2370,0xc9c06eda,0xebc0ddaa,0x9cbe2800,0x96c06edb,0x7ec100c1,0xd83e0a8f,0x15c06cf0,0x13c1003d,0x33edf9b,0x3ec06ed0,0x2fc0f9b2,0xd83ee8a3,0x26c06cf0,0x8dc0ec52,0xf6becc63,0x53c06fb4,0xaec0ed69,0x6fbc8b45,0x3c06e48,0x7cc100c6,0x4f4000ef,0xeac086dd,0x2fc0f134,0x43c00333,0x3ec0871c,0xa9c10f00,0x43bfbff8,0x22c0871c,0xf4c0c163,0x433fb350,0x1c0871c,0x46c0c6a3,0x433fd224,0x10c0871c,0x8dc0ba6c,0x433f9046,0x76c0871c,0xd1c0f5d2,0x43c00705,0xd6c0871c,0xf7c0db35,0x2040003f,0xddc0871c,0x50c1082b,0x43bff073,0x54c0871c,0xb3c0afaa,0x433dad97,0xa5c0871c,0x9fc0b52d,0x43bf7a8f,0x60c0871c,0xb4c112e8,0x433faa92,0xfcc0871c,0xbbc11590,0x433f8c5e,0x9ec0871c,0x5cc0ec7d,0x47c00fae,0xddc08b72,0xa2c0bc5e,0x913fc20b,0x60c08981,0xdcc0cef2,0xefbffd48,0xbec08b71,0x5cc0f611,0x47400fae,0xe5c08b72,0xd2c105e9,0x1cc00773,0xdcc0a799,0x79c100dd,0xc8400c59,0x5ec0a795,0x78c10c2e,0x103fdcf1,0xe6c0abe9,0xd5c0ecbc,0x10400705,0xc3c0abe9,0xfbc0adc4,0x10be1158,0xeac0abe9,0x2fc0f134,0x10c00333,0xcdc0abe9,0x4c0afa0,0x103d943d,0x11c0abe9,0x8ec1161b,0x51bf6fe7,0x5fc0ac22,0x38c0e396,0x3c0487,0xe4014b71,0x7c4ec0,0x14f5000c,0xc0dcb934,0xc00a0e0b,0xc0a79366,0xc0ab1221,0x3f00df37,0xc0a79127,0xc0fe21e8,0x400315a9,0x50b48bca,0xfffff101,0x8ce76bff,0x3ea7c0b4,0x8f2c0e0,0x19ddbfdc,0x8471c0b4,0xc472c0d6,0x8cb73ff0,0xef5bc0b4,0xe347c0d4,0x8fd03fc4,0x9616c0b3,0x3e3ac114,0x8fd0beaa,0x9d79c0b3,0x2bd4c112,0x8fd0bf39,0xf4cdc0b3,0x3b7ec0e9,0x8fd03fa7,0xdcc2c0b3,0x3fabc10d,0x8fd0bac2,0x7f84c0b3,0x7332c0cc,0x8fd0bf29,0x78cfc0b3,0x5bd9c0c7,0x8fd0be6a,0x7d07c0b3,0x594fc0c7,0x8fd03e6d,0x5fb3c0b3,0xb63c0d4,0x8fd03f79,0x738ac0b3,0x8994c105,0xf3863f87,0xe1e9c0b1,0x874dc0e4,0xf3863fa2,0x2b0bc0b1,0x6ce3c10a,0xc8b23f12,0x60d0c0ad,0x4ca5c10c,0xc9cdbe0a,0x85bcc0ad,0x4120c0d4,0xcbd1bf59,0xd7f3c0ad,0x1c4cc0cf,0x7d7e3f29,0xc3cac0ac,0xa5a4c0d3,0x8d8fbf52,0xa984c0ac,0xf716c0e9,0x7ab53f9b,0x185fc0ac,0xf944c0cb,0x8592bea2,0x86c8c0ac,0xcf0bc0f3,0x8b6b3f9d,0x52a8c0ac,0x41afc10c,0x8592bddf,0xeb0c0ac,0xd007c10c,0x5abf0f,0xc888c0a9,0x78c0c0cd,0x2cfbf46,0xad1bc0a9,0x32c0ca,0x883f14,0xca08c0a9,0xa70c0d4,0x783f7f,0xc6edc0a9,0x87f0c0e7,0x6723fab,0x288bc0a9,0x10dcc0d5,0x17ebf67,0xdfb7c0a9,0x6990c0d8,0xac3f7d,0x9e70c0a9,0x1427c103,0x35313e12,0xea0ac0b2,0xebb3c0ee,0x19febcde,0x11b6c0ac,0xe5c5c0f0,0xc7433e18,0x2cc5c0ac,0x7b53c0f4,0xe30f3e11,0x3d3c0ac,0x3cd5c0e6,0x3dd33f81,0x4d7dc0b1,0x5deec0f9,0x64993f77,0xb494c0b2,0xcf85c101,0x54fc3ee6,0xcb72c0b2,0x3dabc108,0x3dd33eb4,0xe6a7c0b1,0xa051c100,0xb333bf89,0xa16ec0ac,0xccafc0db,0x3359be3b,0xea62c0b2,0x13f5c0fc,0xf256bf2e,0xbcc4c0b1,0x1f79c107,0xc92cbe57,0xedfc0b2,0x25eac102,0x6276bf4e,0x71fac0b2,0x2314c0f4,0xe892bf63,0x7bdcc0b2,0x48e4c102,0x6b5dbf7b,0x2833c0ae,0x6dd2c0e9,0xb357bd09,0x35f4c0ad,0xdb12c0d8,0x55f1bf49,0x85adc0b0,0xeea6c0dd,0x6b5dbf7a,0xd1ec0ae,0x9e7cc0d1,0xf974bef7,0x5f45c0af,0x1666c11a,0x1c433f4d,0x8425c0c7,0xd2d4c0d9,0x1c43c00f,0xa642c0c7,0x9a7cc0b6,0x1c43c006,0xd6cac0c7,0x2236c104,0x1e19c00b,0xb163c0c7,0xa5d3c11a,0x1c37bf47,0xc3d9c0c7,0x881ac09f,0xdfca4023,0x7410c0c0,0x58b6c05c,0xb5dd4083,0x40dac0c0,0x99afc130,0xbc84c01a,0xfc0ac0c0,0xb6edc13e,0xb5ddc046,0xc0fbc0a8,0x316ec0b6,0xb5ddc018,0x6986c0a8,0x262dc13c,0xb5dfc015,0x7195c0a8,0xbe2bc114,0xb5df401c,0xf3a4c0a8,0x5a3ec101,0xb5ddc03c,0x994ec0a8,0x6a1ac128,0xb5ddc013,0xb50bc0a8,0xabbdc127,0xb5ddbf16,0xb1a1c0a8,0xc101c134,0xb5ddbfdc,0x2fe6c0a8,0x2b63c0c1,0x1c43c026,0x2546c087,0xabcdc093,0x1c433f16,0xc0fbc087,0x316ec0b6,0x1c43c018,0x68c4c087,0xad9fc096,0x1c433f77,0x1c20c087,0xd78c126,0x1c433f76,0x93fdc087,0xc44cc125,0x1c43bf87,0x9468c087,0x80e9c0fd,0x1c434031,0xd91fc087,0x5cd1c0b5,0x1c43c006,0x794c087,0x5c92c0d7,0x1b74c02c,0x2346c087,0x2778c09f,0xf1003c8f,0xd16e5204,0x27a2bec0,0x871c3940,0x22d625c0,0x70cbd1c1,0x2cf50480,0xc0f16150,0x4033332f,0xc0871c43,0xc0ed760a,0x40334d77,0xc089fe78,0xc105ff10,0x402b40d1,0xc08be910,0xc12064ea,0xbfa53e25,0xc08be910,0xc0d0c94b,0xc0273544,0x608be910,0x105bf200,0x90c08be9,0x70c0afdd,0x103ff4eb,0x3cc08be9,0xdfc11c88,0x103e3233,0x4dc08be9,0x92c0f6d9,0x72c00f91,0x9ec0adf9,0xc11c86,0x72be3756,0x5dc0adf9,0x53c10502,0x73400775,0x97c0adf5,0x17c11add,0x72bf329b,0xfec0adf9,0x29c115b5,0x9dbfadcc,0xa0c0ae04,0x92c0e618,0x72400e40,0xfcc0adf9,0x1ac0eb8c,0xf500488b,0x6cd3ddff,0x7989c0ce,0xf987bffc,0xefe1c0ad,0x7154c0e8,0x5977c006,0x3dc0c0b2,0xa655c0d5,0x4719bff6,0xe085c0b2,0x1c5c0bd,0x4f763fb0,0x41f4c0b2,0x3006c0e6,0x79144006,0xafb4c0b2,0xd213c0ea,0x4f8b4006,0x78d4c0ba,0xdc90c11a,0x4f76bb1a,0x1579c0b2,0xe27ac107,0x4411bff5,0xcd3bc0b2,0x361ec116,0x4f763f75,0xe687c0ba,0xafdec10d,0x49dabfd2,0x777dc0b2,0xacd6c115,0x4f76bf8d,0xc471c0b2,0x4a06c116,0x4f76bf76,0xd4fc0b2,0x3440c10d,0x4f76bf77,0xb20c0ba,0x2b17c0e3,0xb6e33fca,0x5ee5c0c0,0x83c3c0cf,0xb58bbf9e,0x3ec8c0c0,0x5b3ac112,0xb5dfbd80,0xe912c0c0,0x603dc104,0xb5693fb8,0xe149c0c0,0xdd7fc115,0xb5dfc006,0x55c0c0c0,0x860ec11a,0xb5df3f4e,0xc565c0c0,0x1c1c0d8,0xb695c00b,0x215c0c0,0x726dc137,0x4f76bfe4,0x687bc0aa,0x5c70c12d,0x4f76bfe4,0x34e3c0aa,0x740cc12e,0x4f76bfef,0x30ecc0aa,0x26fac12e,0x4f76c02f,0x7819c0aa,0xb47cc12a,0x4f76c01b,0x1ea2c0aa,0x5b92c130,0x4f76c032,0x32e7c0aa,0x7e3dc13a,0x4f76c013,0x42c1c0aa,0x604ec134,0x4f76c032,0x36f0c0aa,0x5358c223,0x2683c0b5,0x6d09c0d6,0x1607c0d9,0x265fc0b4,0xd092c0d6,0x4d9c4272,0x2683c0c1,0x16dc0d6,0x4717427a,0x6988c07f,0x9411c0d6,0x7bc4425c,0x261840bd,0xc50fc0d6,0x666dc223,0x2683c089,0x89a6c0d6,0x54264287,0x2683c08e,0x2163c0d6,0xe6f3c215,0x2683c01f,0x788c0d6,0xb136c215,0x5f37c093,0xdd24c0d6,0x357ac222,0x26814044,0x16ec0d6,0x83e424e,0x88cec080,0x7345c0d6,0x9b56c221,0x2681404d,0x654fc0d6,0x23e641a0,0x26f240ca,0xf24398d6,0xd626811f,0x1ebf42c0,0xc17f5642,0xd6267fc0,0x951aac0,0xc1ccbe42,0xd626f2c0,0x147e3ac0,0xc96590c2,0xd62681bf,0x82952c0,0x54e32042,0xb4a4f542,0x3bc143e9,0x52c0c20c,0x11c0d626,0x6a424dfe,0x62bf87a6,0x73c0d6a1,0xa0c1f767,0xecc0b1ee,0x32c0e87a,0x2c428786,0xe1c08e74,0xd6c0e87a,0x22c215db,0xe1bfcf33,0xbcc0e87a,0xb241670b,0xdf40bb2f,0xb3c0e87a,0x3041a093,0xff40ccf6,0xf2c0e87a,0x53421fcf,0xe1c0b030,0xbac0e87a,0x3bc21680,0xe1c0138c,0x84c0e87a,0x94208e4,0xdf40c1c0,0x56c0e87a,0xfc1e15f,0x33c0c39a,0xe6c0e87a,0xec422069,0xe140ba24,0x3dc0e87a,0x9e421eb0,0xff40cda9,0xeec0e87a,0x34426cdf,0xe1c0c15b,0xadc0e87a,0x41c22361,0xe140454a,0x120e87a,0xe87ae1b1,0x2253e9c0,0x873c36c2,0x5e710090,0x95c221d8,0xc8d9c,0x36e303f2,0x8876c1de,0x7adf40bf,0x9b7cc0e8,0x28134281,0x4f10048,0x4285f949,0xc0b29286,0xc0e87ae3,0xc1474c68,0x24bcc467,0xd8fff200,0x4165cd4a,0xc024e5e2,0xc0d6fa4e,0x4160ff80,0xc020e0f0,0xc0d6674d,0x4170e63a,0xbfb23a97,0xc0848d0d,0x416ef7e8,0xbfa845aa,0xc0848d0b,0x417fe8a1,0xc01cabef,0xc0848cdf,0x417f64cd,0xbea61f19,0xc076363f,0x41815afc,0x3f03674d,0xc075d36b,0x4181371f,0xc0084435,0xc075e71d,0x41864974,0x40053f57,0xc075e6a7,0x4188a98d,0xbd0f8940,0xc075e69b,0x41842b50,0x3f171c97,0xc075e69b,0x4171cff5,0x400698c4,0xc0848ce7,0x4194900d,0x3ea14e3c,0xc0848da8,0x417aa79e,0x3ff6a9ef,0xc08e2689,0x418e2314,0x3fd4a212,0xc0848cda,0x418d4373,0x3fded530,0xc0848ce7,0x419163dd,0xbfa5efd0,0xc08e2401,0x4163cfe3,0x3ea77a4e,0xc08fd8ed,0x4182e7e9,0xc005d324,0xc08e2681,0x416a8da7,0xbfa70b4a,0xc08e2681,0x4181971b,0x40114b6a,0xc092e500,0x4194582a,0xbc6bdd33,0xc0917979,0x417b78fb,0xc0067bf6,0xc0980c84,0x41715f2b,0x3fc0955b,0xc0afc01a,0x41684452,0x3eeb54a0,0xc0ae6599,0x4167bf27,0xbebe50e7,0xc0ad622a,0x41715ad0,0xbfd53576,0xc0afbfd5,0x4165f8e9,0xbf423183,0xc0a136bd,0x416aaf0e,0x3fa4c5d2,0xc09a5afb,0x4191d24f,0xbf96956c,0xc0afc01a,0x4179a414,0xbff2c40d,0xc0afc01a,0x41667732,0x3e4523f6,0xc0afad80,0x4168f988,0xbf26b50b,0xc09533ea,0x4188c645,0x3ff7f67f,0xc0afabb6,0x41686ea4,0x3f0e7d67,0xc0ad6c94,0x4193670a,0x3f2318fc,0xc0a91555,0x417071fc,0x3fc11477,0xc0afbe90,0x4192149a,0x3f8ff0b3,0xc0baf34d,0x41889b20,0x4000f1a6,0xc0baf34d,0x416fb685,0x3fbb4962,0xc0baf352,0x416b8ea6,0x246f2a,0xfa6e28f1,0xd7bf417f,0xf34d3fea,0xe84ec0ba,0x5cd14192,0xa67cbf03,0xce34c0ba,0xc6474193,0xf328bf32,0x76ccc0ba,0x3d4f417a,0xf34dbfda,0xe820c0ba,0x279a4185,0xf10030f1,0x92c5ef04,0xd8adac41,0xbaf34d3e,0x6a326bc0,0xd68fd241,0xb871000c,0x6f41885f,0x30e8f3,0x6d88f671,0x72baae41,0xd7710030,0x99418e3b,0x18d3d9,0x91d41d71,0x96a91541,0x10f1000c,0x4180fda9,0xbfee9470,0xc0b959b4,0x4169fc81,0xbeca94dd,0xc0ba7940,0x41885f17,0x18e8d289,0x65fb7100,0xfed418c,0xf1000cca,0x8bf76d10,0xce212141,0xb959c93f,0x6fbd94c0,0x93d5cb41,0xb959b43f,0x82f11ac0,0xef77ea41,0x4f1000c,0x41926c93,0x3ef980b2,0xc0b959b4,0x4186671b,0x3ced0ed4,0x34487100,0x2d4d417e,0xf60024e3,0x7d5c3443,0xe10b9e41,0xb05ec2bf,0x83f4d3c0,0xeffff841,0xb063f1bf,0x8b4f61c0,0xd403de41,0xb0419a3f,0x6de1b3c0,0x6f890d41,0xb063f13f,0x85f03fc0,0xeaa16241,0xaf97243f,0x9272cec0,0xda42d041,0xaf4cdb3e,0x85aa22c0,0xec080741,0xf421e6bf,0xfffff168,0xffffffff,0x29ffffff,0xc0aeb42d,0x4170e5b1,0x3f953c82,0xc0aeb42d,0x4179bd11,0x3f8b2147,0xc0aeb465,0x418b7577,0x3d80b4e1,0xc0baea0a,0x4183f834,0x3b684274,0xc0b48457,0x418d4f87,0xbea9eb42,0xc0b68883,0x418c9dd5,0xbf28359c,0xc0b4fa68,0x418b7810,0x3f17d902,0xc0b8bc79,0x418d43f4,0x3e980304,0xc0b6f96c,0x4183e994,0x3fa79d0a,0xc0b3586f,0x41826b1c,0x3f2cae97,0xc0b9b5f0,0x41882114,0x3f83d0c8,0xc0b8a8d2,0x418b07b3,0x3f0cd6d4,0xc0b97759,0x418cab2f,0x3f01a9b9,0xc0b6f9d7,0x418bc525,0x3f32ff3b,0xc0b6fa83,0x418d5e06,0x3f16a4a9,0xc0b2e4ae,0x418b601e,0x3f5cf2bf,0xc0b4f823,0x4189fae0,0x3f8286ad,0xc0b4f415,0x4183f32c,0xbf93a398,0xc0b7fea6,0x4187ff47,0xbeec345d,0xc0b9d480,0x417f263e,0x3f2d1c6d,0xc0baa132,0x417cdce8,0xbd2875d5,0xc0b9de12,0x417a1c00,0x3f3f1a09,0xc0b85163,0x418343a2,0xbd9762d8,0xc0b4e94f,0x4177373d,0x3dcf2841,0xc0b97864,0x417f5119,0xbed28c37,0xc0b9d27e,0x417db1b3,0xbf4f6f4c,0xc0ba218c,0x4172e439,0x3df5e84f,0xc0b2e4ae,0x41771167,0xbee13cac,0xc0b8519a,0x4173f63c,0xbe7a411c,0xc0b4f60c,0x417836e8,0xbf32e760,0xc0b6fa22,0x417dd5e8,0xbf554ae4,0xc0b97759,0x4182518b,0xbf8b9d1b,0xc0b8b672,0x41810819,0x3f8339fc,0xc0b90d86,0x41662963,0xbeb27419,0xc0848d69,0x41948667,0xbe9d2ded,0xc0848e26,0x418eed9a,0xc007ca4b,0xc0848d33,0x418e2f64,0xbfcfaed5,0xc0848e43,0x4187cc36,0x3eb0722a,0xc0772e49,0x417e6f47,0x3ceb228e,0xc0772e49,0x4182cfa1,0xbf1338d6,0xc0772e49,0x4188738b,0xbe309a24,0xc07711cb,0x41803099,0xbea60b70,0xc0772e49,0x4185605b,0x3f126ce3,0xc077d7cf,0x418709fa,0xbe817050,0xc07a20f3,0x4180c323,0xbe6b69db,0xc07a01d6,0x418419ee,0xbc257a78,0xc0769d67,0x41846edd,0xbeed51f8,0xc07d9357,0x41814df8,0x3ea843a2,0xc07d320e,0x418766f8,0x3e38f606,0xc07d3982,0x415eca25,0x3fd6172b,0xc0b2bf4b,0x4161c002,0x3ffdc819,0xc09159b4,0x415d125b,0x3fc92d34,0xc09159ae,0x41572840,0x3f14aa54,0xc09159b4,0x4148391b,0xc03582fd,0xc0b2f34d,0x419d15ed,0xbd78f68c,0xc0b1599f,0x41822b5e,0xc02371a8,0xc091598a,0x41877af0,0x4021b446,0xc0915981,0x4160da6b,0x3f409ba6,0xc09159b4,0x418f4acb,0xc007982d,0xc09159b4,0x416b7461,0x3fecf6f1,0xc0915923,0x41746421,0x400f8f8a,0xc09159d5,0x419829ba,0x403563aa,0xc0b26ac0,0x418b1daa,0x4029aa0d,0xc0d48ce7,0x414d6fea,0x4016238e,0xc0d48ce7,0x414fd5a0,0x401fbfe8,0xc0d48ce7,0x419729bd,0xc027d406,0xc0d48ce7,0x415b0899,0x4022ffeb,0xc0d48ce7,0x419fc678,0x4026aeea,0xc0b7c01a,0x419f858d,0x40003f25,0xc0b7c01a,0x41a17794,0x4008ac79,0xc0b7bd29,0x419ece49,0x4004bbae,0xc0b7c021,0x419ffb98,0x4022bd27,0xc0b7c0b8,0x41a0b7b7,0x401ff72b,0xc0b7c133,0x419db782,0x4019e74f,0xc0b7c1d1,0x419e1208,0x400775a7,0xc0c7c2d2,0x419a42ec,0x401fc0ba,0xc0c7c01a,0x419dd5da,0x401955c5,0xc0c7bb88,0x419e590c,0x401eb3a7,0xc0c7bb4f,0x415669c2,0xbf9f8c6d,0xc0c7c01a,0x419ca4af,0x3f9f1434,0xc0c107c8,0x4164b5df,0xbef621fb,0xc0c107c8,0x41849988,0x4010f124,0xc0c107c0,0x415c58e0,0x3fa696ff,0xc0c107ca,0x41684d50,0xbf8a4e59,0xc0c107c8,0x418c956e,0xbffc9df9,0xc097c01a,0x417c7461,0x4008ca86,0xc097c01a,0x4186a1f4,0x400ebfa5,0xc097c01a,0x4182f8b1,0xc023f099,0xc097c02b,0x4196942d,0x3f857293,0xc097c01a,0x4194e38e,0x3fb5a42f,0xc097c01a,0x41934317,0x3fd77c0b,0xc097c01a,0x41674721,0x3fcb696e,0xc097bfb1,0x41704616,0x3fd971eb,0xc097c01a,0x417541f2,0x3ff6dfb5,0xc097c01a,0x417494c3,0x401007d1,0xc097c04d,0x421f36fc,0xc0c20cef,0xc0eac9e2,0x42086a04,0xc0bd7451,0xc0ea3d73,0x421f36d0,0xc0bd4023,0xc0ee147d,0x42086a3e,0xc0c3daba,0xc0ec28f8,0x4169a81c,0xc0be26d5,0xc0ee147d,0x41a26da6,0xc0bdf2a6,0xc0ee147d,0xc0cfe2e1,0xc0bee7fd,0xc0ea3d73,0xc0cfe2e1,0xc0bee7fd,0xc0ee147d,0xc14323a5,0xc0c58293,0xc0ec28f8,0xc0d05465,0x40cde4bf,0xc0ee147b,0xc226a6e4,0xc0c35d23,0xc0ee147d,0x42085c0e,0x40c8f204,0xc0ee147b,0x42849a0b,0xc092e766,0xc0ee147b,0xc21d0ee0,0xc0920fd8,0xc0ee147b,0x4285324e,0xc085b394,0xc0ec4d60,0xc224088d,0xbf79695e,0xc0ee147b,0xc2252f00,0x405a38e7,0xc0ee147b,0xc221ad09,0x404004d1,0xc0ee147b,0xc2218cb2,0xbf8273de,0xc0ee147b,0x42882dcf,0x40d090c3,0xc0ec147d,0xc2052f50,0xc0c643bb,0xc0ec147d,0xc21c0a4d,0x40c654d4,0xc0ee147b,0xc22075e1,0x405f2dc7,0xc0ee147b,0xc1c32be5,0xc0bf8bdd,0xc0ec147d,0xc1c34818,0x40c6dc77,0xc0ec4d62,0xc195aeaf,0x40cd7510,0xc0ee147b,0x42871783,0xc0b16796,0xc0ea1475,0xc2268a73,0x40ca3cb8,0xc0ea15c2,0xc0d05276,0x40c77e48,0xc0ea27a0,0xc0d05465,0x40cde4bf,0xc0ea17e3,0x40001301,0x405d876a,0xc0ea147b,0x41a251ba,0x40c873b0,0xc0ea3d71,0x425c8f3e,0x40c9b2ba,0xc0ea3d71,0xc2247668,0x40817673,0xc0ea3d8a,0xc221cc58,0xc006d2e9,0xc0ea3c4d,0x424b920e,0x407ad917,0xc07e11a5,0x424b6b2d,0x4069e33f,0xc07ee072,0x4249fdff,0x408204da,0xc0825d5d,0x4248c756,0x40906784,0xc07ee072,0x4248f30a,0x4092c6aa,0xc07e147b,0x4241db1b,0x4082304d,0xc081a410,0x4240286c,0x406b1a61,0xc07e147b,0x42407d0a,0x4069b136,0xc07ee072,0x424870c0,0x408c8e47,0xc0821e0e,0x4248cd00,0xbedfe62e,0xc07ee072,0x42432494,0xbee0b567,0xc07ee072,0x424bc37e,0x3eccefed,0xc07e147b,0x3fe5df65,0x400fe892,0xc07e14c6,0x4284e72e,0x4052ca53,0xc07e147b,0x3e623af3,0x401ccade,0xc07e86d3,0x4286c7f1,0x3ff5b1c0,0xc07e11a1,0x4284b692,0x404e1c93,0xc07e147b,0xbe84f313,0x3ff0ed57,0xc07e147b,0x427789bc,0x3ff80000,0xc07e07f6,0x4286f360,0xc0692763,0xc07e5244,0x41d1eaaf,0x4023d5ed,0xc07e147b,0xc164123e,0xc032a0be,0xc07e147b,0xc198258f,0xc09b4218,0xc07e147b,0x41d73512,0x3ff22060,0xc07e0d63,0xc1026e5e,0xc0881724,0xc07e5a71,0x41f2840b,0x409d2e60,0xc07e476b,0x4270679a,0x402fd90e,0xc07e147b,0x41cbea3a,0x4030a4c2,0xc07e147b,0xc0ac8dc5,0x4069ae32,0xc07e4dd3,0xc1f18961,0x40b0ea5d,0xc07e3a58,0xc1918961,0x40b12be7,0xc07e366d,0xc1f1881d,0x409f3ca5,0xc07e147b,0x41ecc2a9,0xbf285ae6,0xc07e147b,0xc1e03f75,0x408f1aa8,0xc07e11d8,0x4284702d,0xc07ddd09,0xc07e147b,0xc05a522f,0x3f8a0115,0xc07e4f16,0xc0de59c5,0x4086669b,0xc07e729b,0xbfb352d2,0x40941feb,0xc07e147b,0x4283deb1,0xc08eb8bd,0xc07e147b,0xc1f0d4c5,0x406ee51d,0xc07e6538,0x4008a0f9,0xc02e825a,0xc07e147b,0xc1e07bd6,0x3fcb5211,0xc07e147b,0x41d0c9d4,0xc0296a40,0xc07e1a26,0x41f3816e,0xc0877063,0xc07e147b,0x4033b131,0xc0474ec6,0xc07e147b,0x41c10b30,0x4000c2df,0xc07dea6c,0x426db77a,0x4016f402,0xc07e147b,0x419680ea,0x4080f299,0xc07e147b,0x41f50012,0x40a7402f,0xc07e3926,0xc0519970,0xbf1552a0,0xc07e5e9a,0xc1f3c182,0x404e543b,0xc07f1c00,0x417e508a,0xc09279ba,0xc07e46e1,0xc1fa06a6,0x4079dd59,0xc07e147b,0xc04b96d5,0xbfa3ff04,0xc07c5133,0x418b1a5c,0x40933b30,0xc07dafcd,0x41f6d3ac,0x40ab6fac,0xc07e147b,0x41a8aa02,0x3f0b645a,0xc07f0457,0x425e46fc,0xc093f241,0xc07e147b,0x426dbcc4,0xc010cfa7,0xc07e147b,0xbfa7c821,0xc08d16fd,0xc07e107b,0xc12e7fc5,0x4020518f,0xc07eb381,0x425f47ae,0xc0a75dbe,0xc07e3a58,0xc1e07457,0xbfd810cf,0xc07e147b,0xc139b3a7,0x3f871cf3,0xc07e6be8,0x41a30141,0xc0238d54,0xc07df65e,0x425bdd09,0x549682b6,0x46d4044b,0x7e147b31,0xcf14a94,0x40b1153a,0xc07e257d,0xc109bfb1,0x40822bd8,0xc07e5cab,0xc1899a5e,0xca8ae6a,0x615d7103,0x12b2c16a,0xf1000c2a,0x2f590a04,0xa7a9a842,0x7ef92740,0x9a9e54c0,0x6be63a41,0x1c710054,0x31c18ab4,0x24a07d,0x9236bb71,0x8968d941,0x10f10018,0x41f6b012,0xc08e515b,0xc07e238e,0x418752d0,0xc0951cae,0xc07e09e5,0xc1ef2453,0x24300be1,0xf96a6200,0x87a3c1dc,0x4a714b78,0xc340f19a,0x482cd7,0x9175f562,0x846ea2c1,0x54a97100,0x68d9416b,0xf1001889,0x983a4204,0x98f8afc1,0x7e498c40,0x3ad68dc0,0x9cd60a42,0x436200fc,0xb8c1905c,0xf1008476,0x983bea10,0x91b505c1,0x7e514040,0x3e6371c0,0xdff79d41,0x7eb0963d,0x8f8801c0,0x9decbbc1,0x28f10048,0xc13305b8,0xc00908c0,0xc07e4fa0,0x414096b1,0xbf998056,0xc07e55c1,0xc198c1ce,0x408b5bff,0xc07e24ee,0xc155248b,0xc020ab69,0xc07e0add,0x41432ca4,0x6ce46339,0xe7827100,0x6e5d414c,0x6200c035,0x40f1cbea,0x2881f19,0x35c20271,0x88a66542,0xf1710024,0xd13d4610,0x6c87c0,0x3565e6a6,0xe5a33c42,0x241538be,0xae5cf203,0x91c07147,0xd8c1918c,0x9040ad3a,0x46c07130,0x293ee05c,0xae4032ce,0x76c07147,0xcdc19745,0x3bc093a2,0xcbc071e5,0x70c15bc0,0x73c03098,0x3ac07147,0x44c11a74,0xaec07033,0x15c07147,0x44c0f5f0,0x1bc08a6f,0x24c07149,0xe7c020b6,0xae404b70,0x52c07147,0xbd4274f5,0xae402656,0xcbc07147,0xfd41ea73,0x4800304b,0x42772861,0x60033d5c,0x8104f100,0x8ebff2e9,0xe1408d84,0xf6c07140,0x6b42831f,0x18504a,0xf1757771,0x95ea8941,0x571000c,0x6cc1e042,0xc9031,0xdcf50871,0x830503c1,0x7d71000c,0x7842856c,0x846b9b,0xcf056f71,0x2d667341,0x9a710018,0xe427067,0xc2fd9,0x84e4b871,0x72a8c642,0x3f710024,0xefc1e615,0x181fe6,0x3cbc04f1,0xb66bbfe1,0x47ae3ff0,0xcc21c071,0xbe833efd,0xf100243a,0xeca9bc04,0x27be2341,0x7147aebf,0x1c0a80c0,0x90095542,0x8c710018,0xa1c1f6bb,0x3c8a22,0xc5c603f2,0x31334277,0x47aebfcb,0x881cc071,0x2eeac1fd,0xaa710144,0x584283cb,0x3097d5,0xf17ae971,0x5da2bac1,0x35710030,0x653d6bb2,0x187ea8,0x7388df71,0x298dda42,0xca71000c,0xfc41f24b,0xc8125,0xfa06a671,0x79dd59c1,0xca710030,0xae41cf11,0x182c0e,0xc5eab071,0x23ba7741,0x40b50018,0xba41a388,0xf64022a0,0x4207146,0x47ae08f1,0x8ff1c071,0x40d1426c,0x41d94000,0x4f16c071,0x3afbc1f4,0xf100304c,0x842dd804,0x2f4663c0,0x714a94c0,0x47806ac0,0x978eed42,0xee710018,0x34c1f490,0xc1084,0xf514b971,0x8c435b41,0x4f1006c,0x424ce94a,0x3f238d71,0xc07113e4,0xc1f8d06b,0x2455d834,0x904f100,0x94c01918,0xc8c06386,0x5bc0713f,0x90bfe05d,0x308705,0x1e9410f1,0x988d4187,0x36114096,0xa687c071,0xd667c150,0x40814008,0xbdd7c071,0x9dfec133,0xf1003c07,0x6c042d10,0xc540c442,0x7147a6bf,0xdbd4cac0,0x7860f2c1,0x71483dc0,0x5df4fec0,0x2a20e6c1,0x51710024,0xb8c11a96,0xc6c75,0x5eb11d71,0x967c3d42,0x99710060,0xd1425f02,0xc99cb,0xdeb02671,0x850f4dc1,0x4f1000c,0xc189842a,0x40ade721,0xc07133c2,0x41a7e1fc,0x8c99680e,0x5cf27101,0x9ced41c0,0xf1000cd0,0x5f493c04,0xa339f342,0x712c6fc0,0x8a119dc0,0xa3ce3ac1,0xdb620060,0x29c18b00,0x7101b03f,0x41a17a45,0x5434e747,0xf65b7100,0x8c5d41c5,0x71000c22,0x425b58c7,0xc9db014,0x71cc7100,0xc7e3c1f5,0x71000c98,0x42478697,0x60295d1c,0x70a77100,0xc7e0c1f5,0x710018a8,0xc1deaed0,0xc97b5f2,0x71cc6200,0xd109c1fd,0x3a710030,0xf0423145,0x78966b,0x88d61c71,0x93815641,0x1d710024,0x9bc19885,0x189eaa,0x9165ce71,0xa7a1b8c1,0x2871000c,0x16413ffe,0x2949968,0xdc122e71,0x45a42f40,0x74040018,0x47aeb104,0xc5d7c071,0xca2e423b,0xf1008428,0x42e12504,0xca3e842,0x715671bf,0x9883c7c0,0x8c03f7c1,0x4f10030,0x423891ba,0x3e0f2021,0xc07147ae,0x423b588c,0x30879c30,0x4380400,0x3023401,0xaeb10414,0x33c07147,0xc7401c1b,0x3c3bbb,0x6e2004f1,0xbbba4235,0x47aebee6,0x9abc071,0xd5954237,0x71003cb0,0x3edfea81,0x24647fa2,0x4128f100,0x50c17bb9,0xe5bfd2c6,0x50c07147,0x1c1898a,0x2c40bea7,0x7cc08000,0x5642809d,0xd740bc37,0x6ec0c0a3,0x8c42809d,0x7140bf6a,0xd3c0ea3d,0xa5425b3a,0xcc024,0x3ae004f1,0x546b4207,0x3d9840be,0x3afdc0ea,0x20214207,0x710030bb,0x41635218,0x24bc8ed8,0x8f1bfc00,0x824282f8,0xaa40c20c,0x6dc080ef,0xe5426e82,0x7140c272,0x6c0e83d,0xb3426d1c,0xd740c26f,0xd2c0e0a3,0x1b426fe8,0x91000c76,0x3ac2c0c0,0x86874207,0x710054c1,0xc019204b,0xcc03b23,0xd8fff200,0x4286c691,0x4085aac9,0xc07b5065,0x4284f9d0,0x40832396,0xc0c66bca,0x4286c5d0,0x40b20660,0xc0cbd588,0x4284f8fd,0x40b1ff1b,0xc0cbda25,0x4287615b,0xc069237d,0xc0838177,0x4287a2be,0xc0692104,0xc0c0a3cd,0x42879fc2,0x3ff5c137,0xc0ea3d9f,0x42876f22,0xc025ffa8,0xc0c0a3d7,0x4283cc02,0xc0ab0866,0xc080d447,0x4283cc13,0xc0aea939,0xc085820e,0x4280a418,0xc0b56233,0xc0c0a3d7,0x4283cc23,0xc0b2208c,0xc0c0a3a3,0x426d58bb,0xc0b58fd4,0xc0e4160b,0x425f4814,0xc0b27cd0,0xc0c0a429,0x425b4824,0xc0b4ac86,0xc080002e,0x41a4f685,0xc0b2adfd,0xc0ea3d73,0x42074821,0xc0b45747,0xc0ea3d73,0x416386f6,0xc0b50ab5,0xc0ea3d73,0xc138132e,0xc0b1b1f0,0xc0e4a3d9,0xc1394662,0xc0b1b2a0,0xc0c0a3d7,0xc1816ffc,0xc0b1dcbc,0xc0c0a3d7,0xc14c7947,0xc0b3dfc0,0xc0ea3d73,0x41a4f6d3,0xc0b6f241,0xc0c0a3d7,0xc0cc2490,0xc0b7e96c,0xc0c0a3d7,0xc1e56f83,0xc0b8b591,0xc0c0a3d7,0xc1f56f8f,0xc0b81e60,0xc080e10f,0xc1f5705c,0xc0acec01,0xc0725ed0,0xc1ffa265,0x409f2c7c,0xc082c2bb,0xc19189df,0x40b8bf66,0xc084bea9,0xc1e18a2b,0x40bc1f3c,0xc0ea3dec,0xc1df2318,0x409338a2,0xc074468d,0xc1dfbc3b,0x4093120a,0xc0721184,0xc1dd1afb,0x40a43f4f,0xc0720e3d,0xc1dca2b1,0x40a21ee6,0xc0743850,0xc1df41b0,0x409d2724,0xc07235ad,0xc1ddd7b2,0x409fb183,0xc0745747,0xc1989e0c,0x408e1a3b,0xc071d43d,0xc1992664,0x409391cb,0xc07421a3,0xc1995210,0x409ebfc0,0xc0725b9f,0xc199490c,0x4098d7ed,0xc0743850,0xc19baebf,0x54693c,0x15fffff2,0xc19bace0,0x40883e1d,0xc0743850,0xc19b7811,0x408d0d6d,0xc07b9c80,0xc19ad6df,0x40938c56,0xc07d6602,0xc1dc903d,0x408ec426,0xc07d64ed,0xc1dd37da,0x409c9ab9,0xc07b1e0c,0xc1dc115b,0xc09d93cb,0xc07209ab,0xc1dcb8a6,0xc0991294,0xc07455b4,0xc1db870d,0xc0814971,0xc0743850,0xc198ef43,0xc08014e2,0xc071ade2,0xc19a931b,0xc080ff20,0xc0743850,0xc1db3e7a,0xc094f436,0xc07d5d9e,0xc1f8739e,0x4062adb4,0xc0743850,0xc1f8ae3e,0x405c4491,0xc0720c4e,0xc1f63ab4,0x404f236c,0xc071cc14,0xc1f8ecb9,0x406c95b8,0xc07420b8,0xc1f261fd,0x405c0f49,0xc0720a4e,0xc1f1808d,0x406c0de9,0xc071f6c7,0xc1f22177,0x40740868,0xc07434ca,0xc1f2d583,0x40806f1c,0xc07442d0,0xc1f47d79,0x40879459,0xc0720796,0xc1f61e4c,0x4082b9c5,0xc07a5932,0xc1f5f2b8,0x40882096,0xc0720dd4,0xc1f5fd77,0x4085ace2,0xc07437d2,0xc1f79c24,0x4082c949,0xc0745471,0xc1f932f2,0x407d4aa9,0xc0720dd4,0xc1f8a742,0x407ae57e,0xc0744862,0xc1f41617,0x407f7a46,0xc07b2ad0,0xc1f694d4,0x407b8ae3,0xc07d568f,0xc1f7deaa,0x406dbf48,0xc07b285b,0xc1f7ba92,0x40771e0c,0xc07b35fc,0xc1f730e9,0x4073668c,0xc07d8976,0xc1f5ce74,0x405d867f,0xc07b3c71,0xc1f70646,0x4068ba7c,0xc07d5f57,0xc1f793b5,0x4066e6b8,0xc07b1ef7,0xc1f50237,0x4062b873,0xc07d61bb,0xc1e8c3c8,0xc0132c95,0xc0802474,0xc1e53b62,0xc000eb89,0xc07cd76f,0xc1e69bd2,0xc01e7aaf,0xc0729ba2,0xc1f3b829,0xc010ca3a,0xc0729ba2,0xc1f2e235,0xbffaaf1d,0xc0803329,0xc1ec0971,0xc02a2ac7,0xc0729ba2,0xc1e8af23,0x400e49b2,0xc07d2485,0xc1e195bb,0x3fc69425,0xc0729ba2,0xc1ef9532,0x400f43b7,0xc07b72a4,0xc1f3c247,0x400a12ae,0xc0729ba2,0xc1e466a9,0xc35d2,0x75587f2,0x6862c1f2,0xfb2f4001,0x7b70c07c,0x2118c1f5,0x9ba23ff0,0x9766c072,0xfbd7c1f4,0x27bf3fc3,0x9acfc07d,0x870c1f3,0xb7dcbfbf,0x2c6c08a,0xb442c1f3,0x7ac6bfa6,0xcc48c08d,0x2129c1f2,0x7ac63fb6,0x24cfc08d,0x8bacc1e8,0xc3784001,0xc4bdc08b,0x22e2c1f0,0xf7273ffb,0x3117c08a,0x8acac1f2,0xa4423fb3,0x1ab7c08e,0x1c1c1f2,0x7ac63fd1,0x3ea4c08d,0x22afc1ef,0xa4423ff1,0xe178c08e,0x7d9ec1ed,0x7ac64002,0x1653c08d,0x7486c1e5,0x10f10060,0xc1eb0689,0xc00fe6fb,0xc08b7222,0xc1e5edbb,0xbfc0b39a,0xc08ea442,0xc1e6041a,0x84de2a91,0x2f03f200,0xaac1e6ed,0x60bfdd2d,0x1c08f00,0xc8c1f213,0xf1001861,0xe88fb604,0x37dd4c1,0x8d7ac6c0,0xf2c587c0,0xc3878bc1,0xb1710030,0xc5c1e7e3,0x3990cce7,0xae5904f1,0xc960c1e8,0xa3d3fcf,0xad0fc08f,0xf948c1e9,0xf1000cdb,0xe7a6ac04,0xb8ed24c1,0x8f092b3f,0xed51a2c0,0xe394c0c1,0x10f10018,0xc1e74e98,0xbfb552d2,0xc0956f54,0xc1ee71c2,0xbfe92221,0xc09570a4,0xc1f03409,0xccd0dd0,0x8e04f100,0xf0c1f0b5,0xa43fad36,0x22c09570,0x50c1ef78,0xccfaa,0xec13a571,0xe6385cc1,0x4f1000c,0xc1ec0aef,0xc0007dcc,0xc09570a4,0xc1f1814b,0x3cbe1345,0x3710f100,0xc8c1ec14,0xaa400308,0xeac094c6,0x51c1f2a1,0xaa3fb56c,0xefc094c6,0x52c1ee4a,0x3ccc1461,0xe631c471,0xcfd977c1,0xa5710018,0xe2c1ee1b,0x33d8093e,0x64ff63f2,0xe1fc1f4,0x8629bfc8,0xe163c091,0xc38bc1eb,0x916401f,0xfcf0c081,0x1de7c1ef,0x40ea4018,0x523dc082,0x830ec1e2,0x900c3fb9,0xe0a1c084,0xc572c1f5,0xe0723ff3,0x5570c07e,0xc2f8c1f5,0x99b73fee,0x1eecc080,0xa2cfc1f4,0xcc1f3ffb,0xf9d9c082,0xa28cc1f6,0xe072bfd5,0x259fc07e,0xdd87c1f4,0x4e55c004,0x9e2c082,0x3ae7c1e4,0x3f24bb4,0xc1e412f4,0xc00421d5,0xc083697f,0xc1e11d93,0x303e81,0xec0a4f71,0x11fac6c1,0xfff5348c,0x5a9102ff,0x4513c1ee,0x9918c01a,0x8388c08e,0x7226c1e3,0x38a4bfd7,0x593ac08f,0x6c8fc1e3,0xca5abfa6,0x353ec08f,0x69a1c1f3,0x4c23c000,0x7ce8c08e,0x9529c1e5,0xc6aabfc2,0x2a1ac094,0xcc79c1e6,0xc6aabfdc,0x8075c094,0x2325c1e6,0xd6dabfff,0x32dc092,0xd34ac1ea,0xd6dac00f,0x46a3c092,0xc06a426d,0x9ba2bff0,0x5b59c072,0xeaf7426e,0xf5d3bff1,0x38bec07a,0x7d564277,0x9ba2bfc6,0x613fc072,0x3e92426f,0xd3bbc003,0x47c7c080,0x32ec4276,0x98d43fce,0xa9d6c07c,0x56c94276,0x9ba23ffd,0x3514c072,0x73c14277,0x9ba23fd3,0x308bc072,0x40d5426f,0x10c74018,0x1ecec075,0x827b426e,0x9ba24010,0xcc9dc072,0xa5a04275,0x9ba24010,0xa6eac072,0xd267426d,0x93293fce,0xf296c07c,0xe15d426e,0x7ac63fdd,0x8b6cc08d,0x1f4b4273,0xa4423ffe,0x7ffec08e,0xf82f426f,0x7ac63ff4,0xfa09c08d,0x188b4274,0x7ac63fde,0x3864c08d,0x593a4270,0x7ac64003,0xb488c08d,0x111f4274,0xa4423fd9,0xea56c08e,0xac364274,0xeaa13fbf,0x9731c08e,0x67c34270,0xf9813ffd,0xc488c08e,0x1c0d4275,0xc118bfb0,0x74c8c08a,0x94ea4275,0x7ac6bf99,0xcf63c08d,0x94964274,0xf962bfbf,0xbcc5c08e,0xdfb54274,0x8277bff0,0xc01fc08b,0x7a0b4271,0xdccfc001,0xb84cc08e,0x48844274,0xa442bfcc,0xeabac08e,0xc07426e,0xa442bfb4,0x54efc08e,0xa7b94274,0xa3dbfa9,0x5b50c08f,0xe9534271,0xa3dbfe3,0x5720c08f,0x745c4271,0xa3d3ff0,0xc303c08f,0xc2f04270,0xa3d3fe8,0xc710c08f,0x42854270,0xa3dbfdc,0x47b5c08f,0x12944270,0xa3dbfd0,0x43e0c08f,0x89ec4270,0xa3d3fdc,0xe261c08f,0x9e88426f,0xa3d3fcc,0xe19c08f,0x8294274,0x70a4bfc0,0xac9ac095,0xf3844273,0x70a4bfcf,0xa2003c95,0xc09570a4,0x426fe5ed,0x242e34,0x35003c04,0x549570a4,0x70a43500,0x35008495,0x9c9570a4,0x70a4b100,0x8412c095,0x6862426f,0xf10354d3,0x6e762110,0xfc19d242,0x901bbd3f,0x6da99dc0,0xc3354c42,0x903fcf3f,0x73c35ec0,0x16895942,0x5b623fe4,0x74273eb,0xf2033079,0x7027d603,0x1678cd42,0x8de3e340,0x700052c0,0x18671742,0x361cf100,0x62426d9e,0xc3bfb4a1,0xe9c08fba,0x8e427336,0xe1402ce7,0x14c07e7c,0xb7426cfe,0x923fc345,0x6dc082be,0xd7427357,0x36fc25c3,0xc8e4fff2,0xe0427751,0xb7bf9983,0x5c08099,0xf0426c83,0x72bfc8c2,0xc07ee0,0x194275fb,0x72c00ccb,0x1bc07ee0,0x1b426faf,0xb0c01511,0x1bc08255,0xa5427788,0x5bbfcbda,0x5ac07e42,0x2f427084,0x72c02452,0x8fc07ee0,0x86427723,0xb7bfc5c8,0x13c08099,0xfb427049,0x25c01090,0xa4c08e4c,0x624271fa,0xaac0032d,0xabc094c6,0x174274cf,0xebc00665,0x6ac08de3,0xb4426f09,0xaabfd022,0x92c094c6,0x7f4272db,0xaac0014f,0x45c094c6,0x994246a6,0xf6bea97e,0x3c07b7d,0x85424493,0x6dbe8d22,0xcdc07c1a,0xd342417f,0x833f162e,0xa8c07a52,0x8a424760,0xa2bf0620,0x95c0729b,0x92424221,0xa2be323d,0x73c0729b,0x5b42479c,0x70be4cee,0x47c080dc,0x30424a4b,0xf33eefd6,0x76c07c1c,0x40424b36,0xa23edfbf,0x1ec0729b,0xfc424491,0xa2bf0653,0xc9c0729b,0xb342497c,0x47407dd3,0x55c07c5a,0x1a4249ca,0x9d4087ee,0x27c0729b,0x2f4247fe,0x20408ee0,0x9dc0749a,0xb74241d4,0x18406779,0x46c0807a,0x142427c,0xc63f4931,0xedc08d7a,0x104242dc,0xbf4077cf,0x1ec08aab,0xc64242e5,0x42405f6b,0xd6c08ea4,0x24244e8,0x73408762,0xefc08ada,0x36424869,0xc64079c9,0x1cc08d7a,0xe7424436,0xc6408147,0x2dc08d7a,0xed4248b2,0x3d3f1ad6,0xb1c08f0a,0x242443a,0xc63d0628,0x7c08d7a,0xc5424783,0x35bdd1c5,0x5ac08aa8,0x2b424835,0x423e6914,0x29c08ea4,0xc4242f4,0xc63eb3ac,0xcec08d7a,0x3a4247b5,0xc63d0a23,0x5ac08d7a,0xa84246b3,0x3d3dd6c7,0x45c08f0a,0xe1424808,0x3d406598,0x6dc08f0a,0x48424445,0x3d3eb96a,0xd7c08f0a,0x8f4245f3,0x3d4078c2,0x19c08f0a,0xd74243e0,0xf1002485,0x41a78310,0x60c93f42,0x90434840,0x432d66c0,0x86132142,0x8e1ce340,0x46f70cc0,0x87774442,0x72710594,0xe542485a,0x5d078d0,0x48e4c771,0x6d932142,0xd762000c,0xa14244ef,0xf2002472,0x9b289cff,0x2dc34241,0xb2a73f0f,0x190c08f,0x1c3b4245,0xd7fbbe0d,0xd5d9c093,0xd4d04244,0xc48beab,0x70cbc08e,0x45994247,0xe054bca8,0xb011c094,0xf7234242,0xc6aa3f10,0x7b70c094,0xc7ac41ca,0x7bb7c015,0x14b5c07c,0xf08d41d3,0x148cbff4,0x7187c07c,0x7ef641d6,0x9ba2bfcb,0x6a33c072,0x722241d6,0x9ba23fce,0x7cefc072,0xd54141c6,0x9ba2401b,0x5e04c072,0xea7441c3,0x7daf3fcc,0x5a3dc07c,0x1ab541c4,0x93a9bfb6,0xebd9c08a,0x519c41cb,0xa4424003,0x1e76c08e,0x6c9c41ca,0x7ac64006,0xa743c08d,0x243a41c4,0x9db03fc9,0xebabc08b,0x568f41cb,0x7ac64008,0x2ffdc08d,0x647c41c7,0xd4674001,0x6707c08a,0x86841d0,0xa4423fe9,0x7e15c08e,0x3dab41d3,0xe4a1bfb6,0xe99bc08a,0x968941d2,0x7ac6bf9e,0x2808c08d,0x2b4941ca,0x7ac6c005,0xf55fc08d,0xcfe41cb,0x7ac6c007,0x6930c08d,0x85e441c6,0x9bc5bff8,0x1233c08a,0xd5a641d2,0xa442bfb8,0xecedc08e,0x83cb41c5,0x7ac6bfd6,0x7038c08d,0x1dac41cf,0x7ac6bfff,0x3a67c08d,0xa98f41c5,0x7ac6bfbb,0x1525c08d,0xc2f441d0,0xa3d3fc7,0x52dfc08f,0xd74541ce,0xa3d3fe3,0x903cc08f,0x3f5b41d0,0xa3d3fb5,0x2695c08f,0xcc6041c7,0xa3dbf9e,0xae4cc08f,0x72b441ca,0xa3d3feb,0xa9e8c08f,0xa99b41d0,0xa3dbfae,0x593ec08f,0xf52341cf,0x70a4bfd4,0x8e2cc095,0x442441c9,0x70a4bfe1,0xc325c095,0x130141cc,0x4f10474,0x41cfd741,0x3fcecdd1,0xc09570dc,0x41d0a39d,0x80b167ec,0x2c93f204,0xd141c493,0xb93ff806,0x57c08e19,0x3441c34e,0x163fba9c,0xac0903d,0x2c41cfa9,0xd74002bb,0x3dc094bf,0x3341c699,0x33ff58a,0xf5c09419,0xb041d6da,0x723fd057,0xbfc07ee0,0x1b41d3eb,0x724010ba,0x47c07ee0,0xa441d193,0x72401f17,0x4ac07ee0,0x8f41ced8,0x7240281c,0x44c07ee0,0xc441c24c,0x6d3fd1ec,0x88c083d8,0xa441caa5,0xdac02036,0x9bc08258,0x2d41d19e,0x72c01db4,0xf4c07ee0,0xaf41c23c,0x3dbfd221,0xbdc08290,0x4d41d5c1,0x72bff910,0xc3c07ee0,0x1041c64d,0xf10024ce,0xc5d63d04,0xf062541,0x837becc0,0xc908c0c0,0x26d2fe41,0x9e7104a4,0xf441cbf6,0xc29e1,0xcbf55371,0x5ae3641,0x87f23c3c,0x41cbf59f,0xc00e0bc8,0xc092d6da,0x41d4924e,0xbfb7f4e4,0xc09040fd,0x41d2bdd0,0xbfdd47e9,0xc092d6da,0x41c36597,0xbfcc6855,0xc08fa1d1,0x41cf4d90,0xc013583f,0xc08e19b9,0x41c66a75,0xbff777e2,0xc092d6da,0x3e9ceebf,0xc02445ae,0xc0729ba2,0xbf38b913,0xbfee0978,0xc08009ad,0xbfdf83d8,0xc0050a78,0xc07c4c0e,0xbdf4b48d,0xc00f4c66,0xc07c3b47,0xbffb8d04,0xbffafa2f,0xc0729ba2,0xbf1d115a,0xbfd7ebd1,0xc07522ea,0xc01437a8,0x4875b4,0xbea51cf1,0xf2cbbf80,0x9ba2bfc7,0x2accc072,0x6e44c014,0x9ba2c051,0x3327c072,0x5e03bf7e,0x398ac080,0x5582c080,0x6595bfad,0x71001887,0xbe276641,0x144934c6,0xcb75710a,0x307bbec6,0xf1000c62,0xc08ec510,0x6242abbf,0x8ee588c0,0xe33850c0,0x5ea4e8be,0x8ea442c0,0xe0f438c0,0x56c0a9bf,0xa4620024,0x8fbfec1c,0xf1003c53,0xec046c10,0x1a8d43bf,0x8ad50bc0,0x411362c0,0xfdb18ebf,0x8b4287bf,0x11ed7cc0,0xa9668bf,0x4f10030,0xbeef212d,0xc01687b1,0xc08ee979,0xbec77fae,0x18136cf0,0x610f7100,0x901dbfd8,0x71006021,0xbe8096bc,0x181ef349,0x6a10f100,0x78bfa667,0x64c00bd0,0xbcc08ee8,0xf3bfcd59,0x3dc03ae4,0xfbc08f0a,0x5fbf8076,0xc6140,0x149c6f71,0x1fab11bf,0xce71000c,0x41bef854,0xc279d,0xb14a8804,0xc08f0a3d,0xbfc304b4,0x184e16ad,0x61a27100,0xbfa9bed9,0x71000c44,0xbecf00ac,0x743aceff,0x3c040a,0x9570a435,0xa4b10054,0x26c09570,0x1dbf3473,0x241993,0xa7066062,0xc9e17bf,0xc17f7100,0xf449bfca,0x4001830,0xa435009c,0x9c9570,0x9570a435,0x8f10078,0xc09570a4,0xbfa514ec,0xc00a1594,0xc0954654,0xbea4cea3,0x3c46806f,0xd28f100,0x2dbfebe2,0x7ec03808,0x68c09548,0x32bfa525,0x8dc07f72,0x30c08f97,0x493d88f4,0xa6c04964,0x9ec09064,0x44c00442,0xf1c056a4,0xe4c08de4,0x57be9f2d,0x27c6721,0xed0ff971,0x5a41ccbf,0x2371000c,0xfbbff99f,0xc4b24,0x48a03c71,0x6f4f16bf,0x1cf102ac,0xc00b8616,0xc05a1e75,0xc0825d5b,0xc017b0d9,0xc052610f,0xc07ee076,0xbf95a14d,0xc085e022,0xc0824d4f,0xc00e9f73,0x186833c6,0x1b0ff200,0xc9bf0466,0x97c082f4,0x65c0828b,0x55bcb337,0x2bc06ebf,0x26c08286,0xea3e62c6,0x71002406,0x3ed20232,0x303ac012,0x37097100,0x28e3bfaf,0x71000c89,0x3e6127f6,0x300d802c,0x1f4f7103,0x52e33eb9,0xf2000c23,0x1ec63733,0x1c82d43e,0x83867fc0,0x24c6ec0,0x8a461c0,0x81561bc0,0x569c34c0,0xd11926bf,0x815307bf,0x7953ac0,0x26c359c0,0x8e0c46c0,0x4f00fc0,0xe919fbe,0x8f7933c0,0xd94e6ec0,0x6c929bbf,0x4f6e7103,0x7226be20,0x7100e41b,0xbfcd7660,0xe4147b39,0x22f27100,0xa1bebfa1,0xf10378fc,0xb1535804,0x4ba5373e,0x729b9d40,0x27a52bc0,0x7712303e,0xe671000c,0x56bfae94,0xc8fb8,0xaadb1f71,0x8b6ad9be,0x7c62000c,0xc6bf2947,0xf10018be,0x7c7c904,0x46e836c0,0x7ca91140,0x149a7cc0,0x34f812c0,0x1cf10024,0xbe974730,0x40148b65,0xc07c4ba1,0xbf288777,0x3fef501a,0xc0729ba2,0xbea982cb,0x40005be2,0xc0729ba2,0xbffc261c,0xc0e0c52,0x7603f200,0x50c003a8,0xfb403038,0xd9c07bac,0x7bfd821,0x62002443,0xbfae34e3,0x3c3659,0x2b99c5f1,0xbc84bd43,0xa46a4053,0x5b9fc08a,0x2742bf8e,0xaa0f4019,0xe760c08e,0xfed2be76,0xb654035,0x8c08f,0xa251bfb4,0xa442401f,0x1472c08e,0x5f96bfe2,0xf3b2403b,0xfbfcc08e,0x12cbbfec,0x7ac6403d,0xcfe1c08d,0x7c70bff0,0x7ac6404b,0x6d6ec08d,0xae38bf49,0x7ac64080,0xc80c08d,0xe729bfed,0x7ac64059,0x8950c08d,0x3932bf81,0xa442407e,0x7732c08e,0x93b4bfd5,0xe1414067,0xac3fc08e,0xcfeebf13,0x7ac6407b,0x141fc08d,0x730cbe84,0x7ac64067,0x807c08d,0xb342bfa8,0xa218407a,0xeb35c08e,0x3251bf98,0xa3d4077,0xe5d2c08f,0x507fbf35,0xa3d402a,0x9581c08f,0x9175bfcb,0xa3d4041,0xc80c08f,0x8744bedd,0x4e184055,0x953703f1,0x267215bf,0x8f0a3d40,0xc3e415c0,0x384fa9bf,0x2171000c,0xbdbfb7ca,0xc66ab,0x161d0071,0x306d01bf,0xd7b5000c,0x81bf8cdf,0xda408020,0x309555,0x70a414f1,0x8cc1c095,0x95d13de9,0x538b4055,0x4d40c08e,0x395cbf81,0xc6aa4015,0x14a1c094,0x7054be8d,0x71000c30,0xbfce29d0,0xc2517a4,0xb806200,0x2d9dbed2,0x5271000c,0x89bfedef,0x8702c24,0xee125171,0x4b7cd4bf,0x10f10024,0xbf2e4cb6,0x4018cd03,0xc094c2e3,0xbf060e95,0x40003598,0xc08251bb,0xbffa368f,0xbc0f04a3,0xc632710a,0x32fdbfdb,0xf10684fa,0x85a0be04,0x1aa32bbc,0x837bea40,0x163305c0,0x20e0a83e,0xad710024,0x443ece84,0x4a884ba6,0xad7104f1,0xbcc7bfbe,0xb3c04001,0x1febc083,0xf2aabfdc,0x7100188c,0xbc4575c0,0xc85d0d9,0xf9f47100,0x4d8cbca8,0x7157787c,0xc00f2907,0x1878b94e,0xcb10f100,0x6cbef5f2,0x30408ba5,0xb7c08139,0xd5c000d2,0x2b407d5c,0x1fc08296,0x8dbf81a0,0x249309,0xcac7da71,0x7871c9bd,0xb671429c,0xc5be4410,0xcc59aa,0x52ac10f1,0x5acdc175,0x43c4bfc6,0x5541c07d,0x98bfc166,0x9d6fc018,0xe53bc07d,0x4d23c176,0xf10600fc,0x5d3dd710,0x14a637c1,0x7c1598c0,0x5e7408c0,0x268512c1,0x729ba2c0,0x54b919c0,0xffda4c1,0xc671000c,0xec15146,0x30fbf7,0x32dc1bf2,0x188fc152,0x9442bfa5,0xb685c07c,0x3882c153,0x6504bfbf,0x33c6c082,0x77d5c161,0x40854014,0x586ec07b,0xca10c151,0x77624aac,0x8c14f2b,0x714aace7,0xc169c99f,0x214389,0x9a04f103,0xc4c17543,0xe73fc55d,0xc3c07cc5,0xcdc1642a,0x18243f,0x5ce763f2,0xf2a6c173,0x7b163fb2,0x10ffc08a,0x9e90c172,0x7ac63f9a,0xed9ac08d,0xb817c16f,0x33943fe0,0x44b0c08d,0x4d27c158,0x94ff3fe7,0x1e03c08b,0xa4c166,0xca974008,0x6a42c08c,0x6c37c16d,0x80ebc004,0xbe1c08a,0xe454c16b,0x7ac6c002,0xeebcc08d,0x1b97c16d,0x7ac6bff4,0x3dd8c08d,0xee89c15a,0x7ac6bff3,0x1f6fc08d,0xd467c15d,0x7f60024,0xc16d78b7,0xbfe7d7aa,0xc08ef78c,0xc1633a1b,0x3fea50f8,0x4a7c091c,0x8f0a3da2,0x6ae0f3c0,0xd09f56c1,0x9a61714a,0x6aadc161,0x41080ef,0xa4b10018,0x46c09570,0x9bc166a3,0x8dce4e7,0x69cdcc71,0xe8fc16c1,0x4f1000c,0xc15ea9c5,0x3ffef2c7,0xc094c9e6,0xc1601a76,0x7c09f199,0x43d77102,0xbf34c171,0xf10a98b6,0x71b96928,0xd94ff0c1,0x92d6da3f,0x57794bc0,0xd349bfc1,0x94d8ef3f,0x5247c2c0,0xb3a87ac1,0x8e57ac3f,0x77c93bc0,0xcbcfbcc1,0x82783e3f,0x7a027fc0,0xc9688cc1,0x49710288,0x2c15e4f,0x21024d7,0x8efffff1,0xc164d44c,0xc025a42f,0xc08115b8,0xc16bf52e,0xc01eed89,0xc081a0e2,0xc14fcf7c,0xbfc3c0ec,0xc0815c6e,0xc16aed20,0xc0160243,0xc08e538b,0xc1619379,0xc01b609e,0xc08de4f3,0x42305e41,0x4092dbbe,0xc077ac15,0x41f70afa,0x40a839c7,0xc0724a2c,0x41f5693f,0x40a58379,0xc0724a2c,0x41f33e60,0x404282e8,0xc0782c06,0x41f20a73,0x40428056,0xc0805139,0x422f6567,0x40939312,0xc0863b30,0x422e8c1e,0x409dec33,0xc084c7d8,0x421c0a0f,0xc0833ac7,0xc08c519a,0x421c0988,0xc069ab4b,0xc08a3d7f,0x421c09f9,0xc080a9e9,0xc085b8eb,0x41f4a078,0xc082f1aa,0xc0753a58,0x41f80d4a,0xbf28fb01,0xc08a3d9b,0x41f8d44a,0xc08cea3e,0xc0805b18,0x41f1d838,0xc0766c1a,0xc07e2d06,0x41f25238,0xc0717ca6,0xc0804d3c,0x41f72df6,0xc088820e,0xc086d695,0x41f561ba,0xc072e2fc,0xc0860147,0x41f7651e,0xc0814b62,0xc0852663,0x422e763b,0x40a884ea,0xc0807714,0x4231156f,0x409859b6,0xc07e2774,0x41f40325,0x40a1335b,0xc0804a5a,0x41f1b4e4,0x409609ad,0xc07e2956,0x420a0026,0x40916708,0xc08d70a4,0x422e79c5,0x40955c87,0xc08d7360,0x421dc9d3,0x40724b73,0xc08d708f,0x421dde99,0x4073e9d1,0xc0870a11,0x420a3bae,0x4071bbf5,0xc0870b0b,0x422e1700,0x409fa45d,0xc08bce4a,0x41f4a9d8,0x409e9931,0xc086a014,0x41f75239,0x40a4b761,0xc0869fac,0x41f66459,0x409efcbf,0xc08a56e2,0x41f796db,0x40a0ed1a,0xc08a57a8,0x40e86702,0x4027977d,0xc0755465,0x40dae536,0x403cd3ae,0xc0729b9d,0x40d64715,0x402be864,0xc080ae99,0x4020ad2a,0x4033d691,0xc0729b9d,0x400785ba,0xbff61cde,0xc07d4480,0x400f1284,0xc0280d20,0xc0729ba2,0x402114a1,0xc035d66b,0xc0729ba2,0x403fe94f,0xc03034e3,0xc07cd15b,0x3ff1162b,0xc0012160,0xc0729ba2,0x40013eea,0xc01612e8,0xc0729ba2,0x40de9099,0xc036bdd3,0xc074bd0a,0x40eedbff,0xc01a17ec,0xc0761cd6,0x40e35e55,0x40104f8b,0xc08d7ac6,0x40e8651d,0x400e71b4,0xc08aabc1,0x40e7cce4,0x4004c932,0xc08d7ac6,0x40d63ae0,0x4019d90e,0xc08ea442,0x40d5864d,0x40148f26,0xc08f0a3d,0x404c21de,0x40247de1,0xc08ba678,0x40c4408b,0x4096f8be,0x33c27114,0xdd2b409c,0x71000c9d,0x40d45d5d,0xe8024103,0x5cdf7105,0xe6f340cc,0x71000c0b,0x40d8b8a8,0x40e6670e,0x21e07114,0xe9ff40c4,0x7100180a,0x40cd82b2,0x18934cec,0x46a47100,0x78dd40b8,0x71000cc3,0x40ddb327,0x54488c50,0xb8a07100,0x398f40e2,0x71000c27,0x40e5a79c,0xcebee3d,0xd9cf7100,0x2eb640d8,0x71000ce9,0x40b862d2,0xcc68ad7,0x6f3f7100,0xe1f44030,0x71004841,0x40a49e52,0x18d805f7,0x60877100,0xa22740a2,0x71000cf9,0x409fb60b,0x1403c80c,0xc096620a,0xb76f40bc,0x9371000c,0x1f403019,0x244964,0x83960562,0x54c74340,0xf3cb6200,0xd5a64087,0x3710024,0x34409826,0x24972b,0xc4a204f1,0x844d40dd,0x7ac6c01a,0x82c5c08d,0x2c3840dc,0x620ad416,0x40d66719,0x49d43fb8,0x75751cf1,0x28524026,0x55a6c01c,0x979ac08a,0x3c684010,0xa678bfd5,0x573fc08b,0x6f15400f,0x681f3fea,0x48edc08a,0xeff24020,0xf207f801,0x304c491c,0x18d9b640,0x8d7ac640,0x1b3c6dc0,0xeb6b6640,0x8ea4423f,0xa40a87c0,0xc6a21a40,0x9570a4bf,0xa25bb8c0,0xb66ef440,0x461000c,0x2c6f4083,0x4000cd8,0xa4b10180,0xd7c09570,0x3540d709,0x4b0f69a,0x1018004,0x3f10018,0x9440c87a,0xa4400c11,0x23c09570,0x640d8bb,0x24c39e,0xb1019804,0xc09570a4,0x40e18e28,0x1830dc55,0xd1a67100,0x331240e2,0x62000c1b,0x40b84426,0x4841e5,0xc0151472,0x78c6140,0xe8610048,0xcc9240e2,0x7100841e,0x40d1ac8c,0xc9d91de,0xd7526200,0x65ae40d8,0xbc0400b4,0x70a4b101,0x2d51c095,0x65ba40d7,0xf10024f9,0xd5b0ff04,0x15f6a140,0x9570a4c0,0xc449d4c0,0xc656240,0x5062000c,0xd240ba0f,0x7100e453,0x40b7d185,0x30d7f002,0xd046200,0x6b2340a4,0xbc041674,0x70a43501,0xb101d495,0xc09570a4,0x409c3c15,0x480920ff,0x2f4b6200,0x7e9e4098,0x83620054,0x43408398,0xf1003c90,0x7ffffff,0x40d6042e,0xc03044a2,0xc08fcbd3,0x40f22c47,0x3fe98adb,0xc090628b,0x40f7be53,0x40059e73,0xc080cb8a,0x40d73157,0x4039df83,0xc0818d6f,0x40ddf11d,0xc0385037,0xc0819942,0x40f8c580,0xbfef8738,0xc0815482,0x40db94d3,0xc041bb0a,0xc07ee076,0x404c86ad,0xc03be8e2,0xc0826e03,0x404c87db,0xc0400ee0,0xc08099b7,0x401f4274,0xc038fff3,0xc07ee076,0x40366588,0xc03d2b56,0xc08099b7,0x3ff694d5,0xbff20818,0xc081a71e,0x401b71ce,0x40280a4a,0xc083a39e,0x40056e09,0x401011dc,0xc082409a,0x400c1da8,0x402896c8,0xc07ee072,0x401ca8eb,0x40372718,0xc07e8249,0x4011e98e,0x4014bb6b,0xc08e1e1b,0x402ccb29,0x401ee796,0xc092d6da,0x4017b5d4,0x3fed4cec,0xc094c6aa,0x403e6f05,0xc01f0a3d,0xc094c6aa,0x403a9000,0xc02e68ad,0xc0907e33,0x40209907,0xc02545d4,0xc08de3e0,0x400fe64f,0xbff5b02d,0xc092d6da,0xc12dd1c9,0x3ff40903,0xc07e301a,0xc069b76b,0xbd05974e,0xc07f4574,0xc116ea3c,0x4055eadd,0xc07dc237,0xc0ada416,0x40659714,0xc0725ed0,0xc0cdd7f5,0x40801778,0xc0725ed0,0xc131f27f,0x40037bea,0xc0725ed0,0xc122ca9d,0x40290cd4,0xc08f713f,0xc098ba0a,0xc032b021,0xc07c9dc7,0xc06dcaf3,0xbf8025af,0xc079e8b8,0xc107bff4,0xc072a277,0xc07c9fe4,0xc0f01792,0xc086512b,0xc0725ed0,0xc0b2ab56,0xc05957c5,0xc07dc86d,0xc123802f,0xc030d1ee,0xc080dc0e,0xc0792d06,0xc006eabc,0xc0725ed0,0xc0f05ef0,0x4066488c,0xc093f082,0xc07de293,0xbcbb4b30,0xc0950ef1,0xc0787b89,0xbcba860e,0xc093f082,0xc09e4efd,0x402283f9,0xc093f082,0xc0b74c7f,0x40406a12,0xc0954b38,0xc09b14ad,0x40294446,0xc08f9c58,0xc12a61e9,0x3fe41e2e,0xc093f082,0xc130293a,0x3f685101,0xc093f082,0xc11abeb9,0xc0362ad0,0xc0954ee8,0xc087650a,0xbfb2dd0e,0xc0956f87,0xc094bae0,0xbfd63958,0xc09570a4,0xc112925a,0x403511ed,0xc09570a4,0xc0a57cc4,0xc016e3f3,0xc09570a4,0xc11d7f5f,0x40137521,0xc09570a4,0xc0bb56cb,0xc03880bf,0xc09570a4,0xc0771359,0xbf7f45d0,0xc08f4116,0xc08788ff,0xbff3dcbe,0xc08f6dfe,0xc13020a4,0xbf780d2c,0xc093f082,0xc0efee6e,0xc07316b1,0xc08f7c72,0xc0b48402,0xc0515ade,0xc091e4f7,0xc0a00994,0xc021c415,0xc0950ef1,0xc122c784,0xc02c8162,0xc08f74cf,0xc080290d,0xbf760c4a,0xc093f082,0xc08a4522,0x3f54b242,0xc09bd70a,0xc10b5e7a,0x4044aaf8,0xc09bd70a,0xc121969a,0x400397ab,0xc09bd70a,0xc0f01e2c,0xc05e842b,0xc09bd70a,0xc0b925ea,0x403da00e,0xc09bd70a,0xc090b19a,0x3cd9cb58,0x2f1cf100,0x8bc12b1b,0xabf626d,0x31c09bd7,0x27c11278,0xac038bd,0x5ec09bd7,0xc081d7,0xabcbc1f,0x3c09bd7,0x65c11d6a,0x181739,0x85923671,0x6a805ac0,0x4d710030,0x7dc09d4e,0x180706,0x1f324eb5,0x1a3cf7c1,0x9bd70a40,0xab10108,0xbfc09bd7,0x8dc127f4,0x6cd8f0,0xfffffff5,0x237c80ff,0xaa43c137,0x2494bd68,0x378bc093,0x7afc075,0x87513ef3,0xb7b9c09a,0x13d3c0b1,0x9a764056,0xe728c095,0x5550c12f,0x59323ffd,0x7338c084,0x9891c116,0xeb76404b,0x3f9ac099,0xd0eac083,0x24e33ff9,0x6076c093,0xa3a1c098,0xf7124030,0x692fc094,0x746c124,0x6148402f,0xb56ec095,0x44aac117,0xec39405a,0x9cdac090,0x6d22c0d2,0x3d84405c,0x9922c09b,0x9796c131,0x3d84bcfc,0x4beac09b,0xcae2c0ef,0x240ec07d,0x9f81c093,0xe109c12f,0x3d84bf75,0xdd93c09b,0xc9c5c129,0x3d84bfe9,0x9b3bc09b,0x7f8dc0ce,0x5532c072,0xfa48c095,0x6330c134,0xced3bf88,0xa703c092,0xb235c0b6,0x3d84c048,0xcdc4c09b,0xf3fec114,0x3d84c048,0x2b7ac09b,0xe4cdc081,0x3d84bf73,0x7d1ac09b,0xca04c0f0,0x2e79407f,0x271c084,0xa002c060,0x537e3f86,0x60bbc080,0xc1a9c109,0x537e407e,0xf63cc080,0xa2dbc083,0x6c404024,0x6285c07e,0x26c0c119,0x537e4064,0x6e78c080,0xd7e0c095,0x2d804034,0xb05ac084,0xb930c13b,0x6ca4bf15,0x42a1c07e,0x7a03c136,0x57b8bf89,0x3d25c084,0x7dafc138,0x537ebf8d,0x17c4c080,0xa87cc0f0,0x537ec085,0x966ac080,0xc5fcc131,0x537ec006,0xae8ec080,0xa040c09c,0x58dec059,0x3713c07e,0x5ca3c128,0x5b0cc041,0xb44ec07e,0x7547c0af,0x577ec060,0x8627c084,0x487cc125,0x2d54c038,0xb4ec084,0x47a1c11a,0x4d38c06d,0x3c09c07e,0x2be9c109,0x537ec081,0xca75c080,0x653419e,0x7c354036,0x3afbc078,0x58824164,0x690a4076,0x4ef1c075,0x7ca4418d,0x5669408c,0xd80dc072,0xb6394157,0x6ef6403f,0xe0fbc084,0x1e264148,0x56694011,0x4003c072,0x5f5b414c,0x51ce4014,0xa4d7c079,0x2d2e4188,0x56694090,0xf91dc072,0x1dac41a7,0x56693f19,0x17a3c072,0xae534184,0x9082408d,0xc0cac077,0x48e041a0,0x56694031,0x5e0c072,0x5a644144,0x6ef4bb9b,0x2a0cc084,0xd4244167,0xf052c078,0x8cbc078,0xceb84158,0xc261c03f,0x4ef4c084,0xde22419d,0xbec2c047,0xbe9bc074,0x2afa4144,0x5669bfdf,0x534ec072,0x75ff4185,0xf04ec08c,0x408dc078,0x48dc414e,0x5669c031,0xf016c072,0x24814183,0x777c087,0x1fbac085,0x77cd4166,0xde3cc06a,0x9c00c084,0xe1fc4146,0x774bf8b,0x5d9bc085,0xc869414d,0x24554006,0xce2c085,0x62aa41a2,0x26333f80,0x714c08a,0x241c418c,0x3d54071,0xf33fc08a,0xfb1a4183,0x43d44078,0xe7acc08a,0xe1eb419e,0x262fbff9,0x1b1ac08a,0xfb6a41a2,0x3d3bf7f,0x8e11c08a,0xfeb54192,0x903c049,0x34f7c097,0x2f404192,0x3b38c045,0x87d4c098,0x8794414d,0x903bb85,0x6980c097,0x1dde4154,0x7dbbbfef,0xdd20c095,0xae474156,0x88f6bfe1,0xcb93c098,0x64c3414b,0xf4b0b9aa,0x299bc093,0x67884199,0x4151c029,0x38b8c094,0xf145419d,0x903bfe8,0x74f9c097,0xe3c5419f,0x3b38bf6a,0x6b4ac098,0x59e241a0,0x3b383b82,0x33e8c098,0x3e53416c,0xa3d7c040,0x32d4c098,0x23854179,0x3b38c05c,0x5763c098,0x1c5418b,0x3b38c05c,0x859dc098,0x5fc4418b,0x903c061,0x27a4c097,0xc198414f,0x85233ef0,0xa5fcc098,0xfeb9416a,0x9034049,0xd4e3c097,0x96d54173,0xa7f44054,0x8edac098,0xecab415f,0x3b384020,0x1c81c098,0xa2a141a0,0x9033f72,0x305fc097,0xd89d419d,0x9033fe9,0x9670c097,0x46fa419c,0x3b383fe4,0x84f4c098,0x652c4156,0x3b383fe3,0x26dbc098,0x70724192,0x3b384045,0xef4bc098,0x6024414d,0x28e13f78,0xe7f5c094,0xd7904183,0x4151406f,0xf815c094,0x332b4183,0xa3d7c053,0x6eb0c098,0x8fef419d,0xa3d73f5b,0xdcefc098,0xbcfd4154,0xa3d73f59,0x2812c098,0xf13d417a,0xa3d7404b,0xa0c8c098,0x2c884196,0xa3d7c015,0xbe70c098,0x1084418a,0xa3d7404c,0x9619c098,0x81fe4196,0xa3d74015,0x4540c098,0x1084417a,0xa3d7c04c,0x6d96c098,0xc954416d,0xa3d4036,0xe8fbc09f,0x332b4183,0xa3d4053,0xf1003c9f,0x9f0a3d08,0x911d30c0,0x3705c041,0x9f0a3d40,0x969619c0,0x1581fe41,0x3c04000c,0xa3db14b,0x186dc09f,0xfedf416c,0x7100183f,0x41797714,0xc5637a4,0x869a7100,0xa4e4197,0xf1000c1d,0x6aea5910,0x48265b41,0x9e65d840,0x9eb2cbc0,0xf9ae8a41,0x99e9753f,0x985b8dc0,0x23b5bb41,0x3f20018,0x4199ac94,0x4030270b,0xc09a1f90,0x41925d91,0x306883,0xfffffff1,0xc62ffff,0x27414939,0xf5bba383,0x6cc097e6,0xc4414b76,0xbbbf8426,0x3fc097df,0x514199f5,0x9bc02dda,0xdac09a21,0x8b419387,0x75c05318,0x7ac09b84,0xb74155d7,0xd8bfe7b5,0x98c09e65,0x89419cfd,0xd8bfe6d0,0x5c09e65,0xe3419ee6,0x9cbff3fe,0x70c099ea,0x8c4177f9,0xa6c06ea2,0xd8c09a51,0xf541470a,0x26baee49,0x85c08e62,0x4b417748,0xa3c0791d,0x9ec08f5b,0x27418c4e,0xa3c078f7,0x91c08f5b,0x75419b0f,0x2ec0383b,0xdec08e01,0x8c41a042,0x9bffe9f,0xe5c08e6d,0x70419fd8,0x3c000ec,0xacc08f5c,0x844148e5,0x75bf879c,0xfbc08e0e,0x404149a6,0xa5bf85bf,0x7c08f65,0x7141a20c,0xc33fc991,0x27c08e90,0xe4419b0a,0xe74037dc,0x4fc08e29,0x60419fd4,0xa5400104,0xb2c08f65,0x8b41643b,0x10407653,0xe4c08631,0x10417562,0x1040896b,0xffc08631,0xd0414320,0x103f92b6,0x9ec08631,0x1441a34b,0xfd3fd077,0xf5c08c07,0x22418d1b,0x10408980,0x89c08631,0x641a67e,0x253f12d5,0x6ac08985,0x6c418873,0x25408a42,0xd1c08985,0x141a4ee,0x9fbeb468,0x82c08db0,0xa6418cec,0x254086b8,0x96c08985,0xf84195b1,0x104076a4,0x51c08631,0x3c419197,0x10c0836a,0xadc08631,0x3b419150,0x25c080c2,0x2fc08985,0x6a4194f3,0xfdc06b18,0x8ac08c07,0xed4143ce,0x56bf9049,0xeac08970,0xdc41a59b,0xfdbf0c9e,0x5ec08c07,0x3441a18e,0xb7c01883,0xe3c08898,0x1441492a,0xfdbfd077,0x56c08c07,0x5341a4bf,0xfdbf8c06,0xdfc08c07,0x92419d1f,0x10c04907,0xf4c08631,0xf441645e,0x10c076a4,0x9bc08631,0x3d41768d,0xefc0837c,0xbbc08bf2,0x2c4148eb,0x7ac0112e,0xdc08072,0x454153d8,0x83c0509b,0x9ec07e88,0x39419664,0x83c07f0a,0x9bc07e88,0x42419a59,0x9fc0685f,0xe9c07fac,0x80415ba2,0xe3c066ba,0x48c08060,0x7a4168ff,0x13c085a6,0xabc07ed5,0x2d416c06,0x7ac0863e,0x2dc08072,0x8b41a0c8,0x9ac030a4,0x10c0807b,0x8a417e42,0x43c0901d,0x12c08061,0xac4183fb,0x83c09357,0x33c07e88,0xb74141ad,0xb8bf9728,0x93c08066,0x2d41a583,0x9abfddcf,0x62c0807b,0xcf41a782,0x94bfa583,0x92c07e30,0x954183ea,0x7cc09157,0xfec08072,0x4541a70c,0xe3bf9668,0x81c08060,0x5f419d98,0x96404db5,0x3fc0807b,0x4d416b9c,0x83408810,0x7ac07e88,0x1a415aef,0x8d406a8a,0x66c07e2a,0x415b79,0x7c40661b,0x78c08072,0x904191ff,0x83408830,0x37c07e88,0x8a4147d1,0x344012e4,0x7bc07e48,0xcc41408d,0xdb3f9896,0x90c07e51,0x8041a479,0xf0400864,0x6cc07f35,0x7e4174bb,0x83408e47,0x6bc07e88,0xa341a360,0x9e401193,0x92c0807b,0x73c1dcda,0xcd408447,0x9dc07e94,0x60c1de8f,0x62408ebb,0x7cc082f9,0x82c1ddbd,0xaf408aba,0x5ac082f8,0x8ac1dc8b,0x6240a185,0xedc082f9,0x42c19b8a,0x55408d7a,0x2ec084dc,0x41c199f5,0x70408d7e,0x9cc082f9,0xddc1997d,0x1408915,0x3cc07ea4,0x21c199fa,0xfc40a412,0xcac07ec6,0x17c1ddb3,0x7a40a50f,0xc2c07e72,0x88c1dff8,0x7d4099f7,0xa2c07ecb,0x10c19987,0xd24099e7,0x9ac082fe,0x33c19b78,0xe540a187,0x3c082fe,0x23c1de61,0x7cc097a0,0x8c07e62,0x57c1dcc7,0x66c09d6a,0x47c07ea2,0x64c1dbed,0xc8c095be,0x98c084eb,0xd8c1dbd4,0x5fc0874a,0xdc08518,0xa1c1dbbc,0xdcc0822f,0x36c08300,0x50c19a89,0x10c08bc6,0x39c0857a,0x48c19984,0xbec08fd1,0x93c08592,0xdec19aa8,0x62c09a90,0x45c082f9,0xe4c1997d,0x7c09879,0x21c082f9,0x27c19870,0x16c092bf,0x5dc08307,0xbac19861,0x7c09a57,0xddc07e9a,0xaac199ee,0x9dc09ec4,0xc9c07e4c,0x8bc1971d,0xb3c08751,0xedc07eea,0x66c19a5b,0x3ac07aa1,0x3ec07e95,0xb6c1dcc8,0xa5c07ea2,0xa9c07ea0,0x4cc198de,0xf2c08625,0x3fc082f8,0xfdc1f89b,0xcb4056f5,0xd9c07e83,0x55c1f271,0x8b408467,0x6fc07e8d,0x84c1f470,0x824088d6,0xdbc07eae,0x7cc1f6c4,0x34408799,0xbac080b0,0x21c1f430,0xd407e5c,0x1bc084d3,0x44c1f2a1,0xe34074db,0x5ec08454,0x57c1f64c,0x8740805d,0xcc084d2,0x9dc1f6cd,0x6b4061f3,0xd1c084d4,0xadc1f6ad,0xf54057f7,0x1fc082f4,0xf6c1f7c8,0x62405dec,0xe4c082f9,0x68c1f525,0xd34056ae,0x93c08305,0x40c1f42f,0x12406233,0x27c084ce,0x40c0c8cc,0x86c00dc1,0x73c07e38,0x5ac09a10,0x86bf2e9f,0xb2c07e38,0xa8c0e605,0x86c031c7,0x1ec07e38,0x63c0d54f,0x86400f44,0x1cc07e38,0x4c0aacd,0x86bf7656,0x21c07e38,0x2bc0ef82,0x8640034b,0x8bc07e38,0xbac1054c,0x86c01331,0xafc07e38,0x8ac12354,0x863f25c7,0x5c07e38,0x85c109c1,0x86c00b77,0x95c07e38,0xc4c1033c,0xd2402aaf,0x3ec07e38,0x99c107c3,0x483fe8d8,0xa603f100,0xd749c11b,0x38863f88,0xf8f5c07e,0x1716c11e,0xf1000cb7,0xa7a56c10,0xaf6191c0,0x616bba3f,0xdb6e98c0,0x1ee469c0,0x616bba40,0x1e289bc0,0xb606d1c1,0x41f80018,0xc103719f,0xbaa2ca9b,0xc06182a5,0xc0e6ca79,0x3eff353b,0xc0631798,0xc0f14c9d,0x3f0a02da,0xc067d220,0xc1001d69,0x3e89be6e,0xc067d220,0xc0de990d,0x3e849364,0xc06edb0a,0xc0edbed1,0xbed21f4b,0xc06edc5d,0xc0f14b92,0x3ed9999a,0x2cf1000c,0xc06fb59e,0xc0f8111d,0xbebc918e,0xc06fb59e,0xc0ec02a3,0x3ec9c3ce,0xc06fc715,0xc0f29c2a,0x3a0a697b,0xc06e1bfc,0xc106e368,0xbfeca9bd,0xc0871c43,0xc116a959,0xc799360,0x17c87100,0x646c0b2,0xf5000c0d,0xab360fbc,0x5611cc0,0x8b783a3f,0xb95b8cc0,0xb5a4f8c0,0x8b6c42bf,0xc612e6c0,0xe8faa4c0,0x8b8323bf,0x1cd5a2c0,0xca4441c1,0x8b5f9a3d,0x42c79c0,0x868d7c1,0x8b7247c0,0x886bcc0,0x13882c1,0x8b7247c0,0x1850b6c0,0x897532c1,0xa796d33f,0xf7d58dc0,0xf8a7ac0,0xa7926840,0x1d1a90c0,0xf6c26ac1,0xa76723bc,0x10681cc0,0xd8514cc1,0xa7930c3f,0x18e8dcc0,0x7f55dec1,0xa7930cbf,0x1a4505c0,0x8fb1c0c1,0xabe9443e,0x19f975c0,0xcae44bc1,0xabe896be,0x62744c0,0xf820cdc1,0xabe9103f,0x1156ffc0,0xb8f53cc1,0xabe910bf,0x321b1c0,0xfb388bc1,0xabe9923f,0xb17594c0,0x405565c0,0xabea7bbf,0x8f100d8,0xc0abe910,0xc112a919,0xbfa037df,0xc0abe910,0xc11836ba,0xc0e276b,0xfffff700,0x6912ffff,0xdcc0da36,0xc400868,0x4dc0a793,0xc6c0ab91,0x7cbf2635,0xb0c0a78e,0xdcc0cac7,0xd7bff3d7,0xc0a7c2,0xbdc0bc81,0x1f3fc454,0x9fc0a794,0x5c0b9af,0x4dbfb74f,0x9ac0a795,0x88c0b55e,0xcbf9fbc,0xb0c0a793,0x5bc11735,0xe73f4040,0xc2c0b48c,0xe5c11951,0xe7be4c98,0xaac0b48c,0x1fc1165c,0xe7bf5f4b,0x55c0b48c,0xd5c0b8a2,0xe7be05cd,0xb3c0b48c,0xa4c0b8d0,0xe73e59c5,0xd1c0b48c,0xe2c1002f,0x3dbfdb75,0xc3c0b40f,0xfbc1123d,0xe73f44b2,0x58c0b48c,0x84c10f8c,0xe73f86f0,0x75c0b48c,0x87c0baa0,0xe73f91a3,0x74c0b48c,0x53c0dc96,0xe73fd396,0x9cc0b48c,0x5dc11423,0xc03ef632,0x3c0b3fb,0xd0c10bef,0xd0bfa6b8,0xd8c0b38f,0xabc0c6d5,0xd03ac23f,0x22c0b38f,0x1ec101ad,0xc9bf9afa,0x67c0b391,0x99c0f356,0xd3bfa9ba,0x59c0b1f7,0x51c0fac4,0x86bfa5a2,0x34c0b1f3,0xa0c0c848,0xeebe006e,0xd2c0afbd,0x58c0f153,0x363fa9c7,0xfac0b1f6,0x32c0cfb6,0x983f5055,0x42c0b1f9,0x3cc0fb77,0x40bf98bd,0x2dc0adcd,0x3dc10839,0x353f42d4,0x36c0adc5,0x95c1020a,0xbabf8bef,0xb9c0adce,0xdec10851,0x71bf40e7,0x8bc0add8,0x35c0ccf9,0x98befc0b,0xb7c0add1,0x98c0d0ee,0x403f35a1,0x64c0adcd,0x52c0d8f3,0xdcbf797f,0xcac0ac7e,0x91c0d308,0x923f4b7e,0xfc0ac85,0x72c0d1d1,0xa0bf40e1,0xe1c0ac8c,0xe9c0dbee,0x243f8543,0x91c0ac7e,0x74c0fed6,0x923f947c,0xe0c0ac85,0xaac0cdcc,0xebf4662,0x6cc0a904,0x37c0c74b,0x6dbe88fa,0xcdc0a900,0xf1c0c8ad,0x993d8c63,0x8dc0aa2e,0xa0c1076d,0x783f7754,0x69c0a900,0xa6c0e61b,0x953fa528,0x93c0a900,0xf5c10116,0x733f9083,0x37c0a900,0xf5c0e062,0x73bf9083,0x28c0a900,0x40c10ab9,0x733f0686,0x18c0a900,0xf0c0cac4,0x733ea5da,0x56c0a900,0xbbc10ab4,0x73bf072b,0x2dc0a900,0x52c10ce8,0x633d1381,0x91c0a8ff,0x3ec0f9d0,0x333f94ce,0x3cc0acb3,0x43c10af1,0xae3d1ee2,0x90c0af71,0x54c10910,0xa33d5356,0x7fc0b203,0x2ac0dab2,0xfc3e25ca,0x6c0b254,0x55c0e184,0x493f3318,0x24c0b311,0x10c0efb4,0xf33e3f24,0xe5c0ad1e,0xe2c0d271,0x283e87e7,0x9fc0b262,0xeac0de71,0x763f4e25,0x52c0b262,0x26c0f3e5,0xac3e0dac,0x61c0acd8,0x67c0f78a,0x7a3b5445,0x3c0ad1b,0x97c0ffbf,0xfc3f10c9,0x51c0b254,0x19c0e513,0x5d3f8c04,0xdfc0ae6b,0x7ac1034a,0x383f1e6d,0x62c0b2ea,0xb6c104cf,0xb53f25b9,0x61c0b260,0x3cc0f09b,0x233dbd88,0xecc0ac76,0x78c0d25a,0x52be8361,0x9ac0b263,0x6c0cedf,0x33bf042d,0xf3c0acb3,0x1fc0f29b,0x2bbd36bc,0x4ac0ac5e,0xe3c10035,0xa5bf418c,0xecc0b2e9,0xc4c0e4a6,0xa4bf1a7b,0x24c0b19a,0x71c109d3,0x33bf04ca,0x9fc0acb3,0x7cc10485,0x33bf6ef0,0x24c0acb3,0x66c0ee0d,0x92bf6314,0x89c0b2e8,0xd5c0fc8b,0xd3bf813c,0x3ec0b13d,0x71c0e213,0xf5bf411b,0xbc0b2e9,0x91c0df0b,0xd3bf679d,0x79c0b13d,0x8ac0d0f8,0xd3beb43d,0xaec0b13d,0x38c0d81c,0xe7c00768,0x1fc0c71c,0x9fc11d65,0x433f2daf,0x3ec0c71c,0xd1c11d7f,0x19c0051e,0xccc0c71c,0x91c0a21a,0x5c016b9,0x46c0c722,0x3ec04f25,0xaac03fb1,0xe6c0d582,0xb1c13d62,0xaac0404e,0xec0d582,0xcfc048bd,0x43c04615,0x5fc0cf1c,0xec04946,0xdd408cf5,0x5ec0a8b5,0x7fc13f1e,0xdd408ca4,0x35c0a8b5,0xfec0a5c3,0xf6bff047,0xebc0a8b5,0xcac0988b,0xddbf928d,0x1cc0a8b5,0x25c0917e,0xdd3e4c58,0xb6c0a8b5,0xb8c12a61,0xdfc02a3e,0x56c0a8b5,0x6fc1259a,0xdfbf87d7,0x2cf10030,0xc0871c43,0xc0a37bfa,0xbfe42691,0xc0871c5a,0xc0e4faf4,0xc03180e9,0xc0871c43,0xc0a60924,0x3fc34ba5,0xc0871c43,0xc0c825a9,0x401f337b,0xc0871c43,0xc12349e2,0x585df8a1,0xa204f105,0xe9c12570,0xaabb4d0f,0x50c08982,0x2fc0f161,0x47103333,0x7a6362,0xaca1d7c1,0x8404f1b0,0xcec116e2,0x794004c7,0x7ac08be9,0xe9c0bb98,0x240fb6,0xb1006c04,0xc08be910,0xc0d6c244,0x182b5f46,0x8410f100,0x28c0d902,0x10c02c80,0xdcc08be9,0x2fc11b4b,0x3bf1e8a,0x7ac08be9,0x75c0db1b,0x240900,0x140a6d71,0xbacbd1c1,0xfff7474c,0xaa80b035,0xdd6cd7c0,0x8be8ff3e,0xc99052c0,0xf1e248c0,0x8be9033f,0x1c9aa9c0,0x64f55c1,0xadf3f73e,0xf7025ec0,0xf8b1ec0,0xadf97240,0x1a75cbc0,0x4fc87ec1,0xae1705bf,0x175b26c0,0x96347fc1,0xadf9723f,0xdc489c0,0xe92f98c1,0xadf972bf,0xa947b0c0,0x24d2b3c0,0xadf9723b,0xaeca9fc0,0x5d0529c0,0xadf9723f,0xc27566c0,0xdac9a7c0,0xadf972bf,0xcbba8ec0,0xf5ba77c0,0xadf9723f,0xe5fb94c0,0xc2fa5c0,0xaf541b40,0xe90659c0,0x6767dc0,0xb256d6c0,0xae75ffc0,0xaa8e0dc0,0xb24f763e,0xd52791c0,0xf672b0c0,0xb24a79bf,0xcddc79c0,0xe69d30c0,0xb24f76bf,0xcdfd7ac0,0xe6ee18c0,0xb24f763f,0xe18ec5c0,0x39fc7c0,0xb24f7640,0xdc4c7bc0,0xa861c0,0xba4f76c0,0xd49d86c0,0xf56766c0,0xba4f76bf,0xd774bac0,0xfa2b52c0,0xba4f763f,0xb78c28c0,0x8d28d0c0,0xba4f76bf,0xb66dcac0,0x8657f3c0,0xba4f763f,0x18cdf0c0,0x27d988c1,0xba4f76bf,0x17da0fc0,0x59ba0ac1,0xb26ee1bf,0x931ec0,0x38db5c1,0xb24f7640,0xf68373c0,0x6ec31c0,0xba4f76c0,0xfff1000c,0xc0b284ff,0xc0f6aa0b,0x4006e61d,0xc0ba4f76,0xc1056abe,0xbffd21a3,0xc0ba4e0c,0xc10702d1,0xbff79a9e,0xc0b27007,0xc114ae4e,0x3f982e7f,0xc0b24a9b,0xc1163f27,0xbf83b6cc,0xc0ba4f8b,0xc0e531d1,0x3fc737b0,0xc0ba4f76,0xc0be1a5b,0xbdae989a,0xc0ba4f76,0xc1119519,0x3ebac908,0xc0ba4f76,0xc104ba15,0xbfb7aa7a,0xc0c0b5d9,0xc11a96fd,0x4014cb96,0xc0c0b637,0xc0b2a8e5,0xc00f3351,0xc0c0b5bd,0xc11d1bb4,0x3f35edf2,0xc0c0b5df,0xc134b1a1,0xbfdcc101,0xc0aa4f76,0xc13a81df,0xc026b1cd,0xc0aa4f76,0xc12d63ba,0xc034b0f7,0xc0aa4f76,0xc128994e,0xc0136a1a,0xc0aa4f76,0xc13634e2,0xbfef865d,0xc0aa4f76,0xc12c8922,0xc02a0f39,0xc0aa4f76,0xc12b4424,0xc0236d26,0xc0aa4f76,0xc132309c,0xc0337514,0xc0aa4f76,0xc139edb6,0xc00b35b1,0xc0aa4f76,0xc12d5f7c,0xc0176274,0xc0abe9c2,0xc11f01c4,0xbf38a03c,0xc0616bba,0xc116515b,0x40063d60,0xc07e3886,0xc0cb7156,0x400d17f4,0xc07e3886,0xc0d2282a,0x400cc8d2,0xc07e3886,0xc0c14984,0xbfb2e337,0xc07e3886,0xc0cfe74d,0xbfe3b40b,0xc07e3886,0xc0d80670,0x4013511a,0xc07e3886,0xc0e4014b,0x40007c4e,0xc07e3886,0xc0a43a43,0xbf338df8,0xc07e3886,0xc0fa23d1,0xc001ff76,0xc07e3886,0xc0fc89ab,0x4031c7a8,0xc07e3886,0xc0aadec6,0x3f779885,0xc07e3886,0xc124d431,0x3eebfc44,0xc07e3886,0xc1143987,0x3f8e7daa,0xc07e3886,0xc0e157d4,0xbea445ed,0xc0633886,0xc11ba621,0x3f88d749,0xc0616bba,0xc0dbbc12,0xc0273865,0xc0616bba,0xc0db0a35,0xc02d9785,0xc0616bba,0xc102ae24,0xbe1f2453,0xc0616bba,0xc10859f5,0x400c9357,0xc0616bba,0xc0fff076,0xbeeb1290,0xc0616c05,0xc100f96a,0x3e0e48a6,0xc067d220,0xc0e8e571,0x3ee8f020,0xc06cf0d8,0xc0e4222f,0xbf04c60d,0xc06ebed7,0xc0ffabef,0x3eeaada3,0xc06ec893,0xc0fd2c34,0x3ebddb98,0xc06cf0d8,0xc0f5a572,0x3f01c811,0xc06cf0d8,0xc0fd0ce3,0xbe5a0557,0xc06edc5d,0xc0f143ca,0xbed9999a,0xc06fb59e,0xc0ed1974,0x3c8ab92c,0xc06e51fc,0xc11401db,0x3f91265b,0xc0871c43,0xc0ec9646,0xc007008a,0xc0871c43,0xc0bfe15f,0x80b8f545,0xd229b504,0xab69c100,0xcd9cc001,0xf1519c86,0x871c4314,0xae3c68c0,0x9237efc0,0x871c43be,0xf4753c0,0xd93283c1,0x8884773f,0xfc27fc0,0xc5993dc1,0xfe71003c,0x4ac11887,0xc34b4,0xdf82c171,0xfc9718c0,0x4f104bc,0xc0e37078,0xc0047775,0xc0871c43,0xc0ff3f62,0xf00d43af,0xc114f509,0x16c0f7ef,0x3b400f86,0x99c0a78e,0xddc11478,0x813fb725,0xf0c0a794,0x91c1168c,0xcbfa045,0xa68a793,0xe91008f1,0x242fc0ab,0x168bc0e8,0xe9104006,0xbe9dc0ab,0x92abc0bc,0x710984aa,0xc0c7d2e3,0xccb5c85,0xf5717100,0xbc8c0b5,0xf1000c61,0xdefb9c10,0x28d15c0,0xabe914c0,0xb95c6c0,0xd63422c1,0xabe9103f,0xb02546c0,0x12a066c0,0x4f1000c,0xc0b625f0,0x3f6cfc61,0xc0abe979,0xc10b8671,0x3cd68ab5,0x3e7100,0xf8a9c10f,0x71000cbf,0xc0c16322,0x30b350f4,0x7804f100,0xebc0d0ef,0xf13fe4a8,0xe5c0abe8,0x85c11630,0x246507,0x35d41bf2,0x3ffbc0db,0xe9344000,0xe3b2c0ab,0x8adbc0ea,0x8f0f400f,0x743cc0a7,0xbf98c101,0x8ce7bffc,0x1d9c0b4,0x2674c114,0x10f10984,0xc11490ed,0xbeaa1f08,0xc0b48ce7,0xc0b849b0,0xbf8dfe2a,0xc0b48d1b,0xc0cdd0f2,0x30b17942,0x21f77100,0xc0fc0cf,0x71000ce0,0xc0e07a2f,0xcd907fb,0x761d7100,0x9564c0f5,0xf1000ce2,0xb1112a28,0xd6b229c0,0xb48ce73e,0xb675a9c0,0x6e3d0cc0,0xb48cf23f,0xc7af94c0,0x9ab8a6c0,0xb48ce73f,0xe4b3e3c0,0xdd8f60c0,0xb38fd03f,0xc79978c0,0x9a595cc0,0x240450c4,0xd014f100,0xb6c0b38f,0x67c11177,0x94bf63d1,0xbdc0b414,0xf2c10da6,0xd03e4a5d,0xecc0b38f,0x43c10b07,0x3c2973,0xe41410f1,0xdd61c105,0x900a3f84,0xb3dec0b3,0x8ddec108,0x335f3f61,0xeffdc0b3,0xfcebc103,0x7100548f,0xc1072f83,0xc77afc9,0x37fa7100,0xb54ec0da,0xf5003c8e,0xfc0a7044,0x9d5875c0,0xaf3caebf,0xdf4b3ac0,0x9ae71dc0,0xb1c82cbf,0xd8f93ec0,0x8b2ef9c0,0xb1f6363f,0xd8b46c0,0x6a5c1cc1,0xb1f6363e,0xb3743c0,0xd79a28c1,0xadcd403e,0xa08b8c0,0x167f5fc1,0xadcaea3f,0x82cd4c0,0x43d0d0c1,0xadd1fa3f,0xd4f109d8,0xc0adcd40,0xc0f82fa3,0x3f9ba5ca,0xc0adcd40,0xc0f30ba0,0x3f9e0a9e,0xc0adc5a6,0xc0c9c12d,0x3d80064b,0xc0add79f,0xc0caf430,0xbeb2934b,0xc0ade64d,0xc0d99a7c,0xbf7d798e,0xc0add1fa,0xc0d638ce,0x3f672075,0xc0adcebc,0xc0cfe690,0xbf29aec5,0xc0ac7f95,0xc10698c8,0xbf5fcefb,0xc0ac8592,0xc10892c5,0x3f3b9ad0,0xc0ac8256,0xc0f4ae30,0xbf9d7e67,0xc0ac8592,0xc10e08b2,0xbb6d5f14,0xc0a90082,0xc10424b0,0x3f901911,0xc0a90078,0xc0d986e2,0x3f8f7176,0xc0a900f3,0xc0f141af,0xbfa257b0,0xc0a903e6,0xc0d1af5a,0x3f4412ae,0xc0a900ac,0xc10aab63,0xbf13ed74,0xc0a90210,0xc0e076e6,0x3f90aa8f,0xc0a90073,0xc0e8d413,0x3f94e1b5,0xc0acb333,0xc1048e29,0xc6e8390,0xf0fff200,0xc0e1c1ff,0xb8c9539c,0xc0b02b5c,0xc0df2e7b,0x3ee77553,0xc0b254fc,0xc0f48217,0x3f62ed24,0xc0b2e955,0xc0f43f21,0xbd6ab368,0xc0ac544e,0xc0f5262b,0x3f87fd72,0xc0b13dd3,0xc0ff02fb,0x3f2e65bf,0xc0b2c40f,0xc0f578c4,0x3f9354da,0xc0ae6b5d,0xc1021235,0x3f7124c0,0xc0b056e4,0xc102c572,0x3f4acd5b,0xc0b22a0f,0xc106a0e4,0x3f321405,0xc0aff974,0xc1073a7d,0x3ed01a7a,0xc0b26499,0xc10722e6,0x3f116085,0xc0b13dd3,0xc0d3699f,0xbf3e1c7a,0xc0acb333,0xc0fa5b2d,0xbf42d46f,0xc0b2b70f,0xc10822cb,0xbe85c8da,0xc0b2574b,0xc10a1039,0xbe7fd2e9,0xc0aff974,0xc0ecd994,0xbed99c5a,0xc0aee482,0xc104b957,0xbf41c6c1,0xc0b13dd3,0xc105bb56,0xbf51efe9,0xc0ae6b5d,0xc10060cc,0xbf80ea42,0xc0aff974,0xc0eff0b9,0xbf7f2053,0xc0b26276,0xc0e2d059,0xbf10c997,0xc0b254fc,0xc0f512b6,0xbf880631,0xc0b13dd3,0xc0e5f15a,0xbf8122fb,0xc0b13dd3,0xc0e1bb58,0xbf80c6bd,0xc0aff974,0xc0dc5958,0xbf40c88a,0xc0b26276,0xc0db60b9,0xc012f495,0xc0c71c43,0xc0b321d1,0x400edefc,0xc0c71c9b,0xc11d6a6d,0x400aa0ec,0xc0c71c37,0xc0ae482a,0xc0136a51,0xc0c71bda,0xc1310dc7,0xc0098b05,0xc0c0cb51,0xc09fe354,0xc02261c3,0xc0c0d352,0xc134ee5c,0xc016cce2,0xc0c0d374,0xc0932546,0x3f16abcd,0xc0a8b5dd,0xc115d167,0xc018744f,0xc0a8b5dd,0xc128ec56,0xc01d5ac4,0xc0a8b5dd,0xc11baea2,0xc00393c0,0xc0a8b5eb,0xc0bc08d5,0x401fc2e3,0xc0a8b5dd,0xc128edc2,0xc0097a2d,0xc0a8b5dd,0xc124216e,0xbfa81449,0xc0a8b607,0xc12d687b,0xbfe45c70,0xc0a8b5dd,0xc0af434c,0x400ba822,0xc0871c43,0xc0cc717c,0xa2c4d7b,0xa59d1771,0xefb5b7c0,0x4f10558,0xc1086adf,0x4036c59c,0xc0871c80,0xc1222eb0,0x18c05f18,0xeda7100,0x6b61c09f,0x4000c8e,0x43b109e4,0xe6c0871c,0x68c11958,0x18f4eb,0xd5b96b71,0x2ab7d0c0,0x11710a68,0x9fc12504,0x5dcc4cb,0x212903b5,0x9fc4a8c1,0x8be8293f,0x8f10018,0xc08be910,0xc122a6ca,0xbf8088f8,0xc08be87f,0xc0cd7dce,0x382448cb,0x2dbc710a,0x8edec0e5,0x710a2c31,0xc0a6a1bc,0x2cc6ec07,0x531cf10a,0x2cc11b3e,0x3abf242c,0xf4c08be9,0xb8c0f31a,0x6e401120,0x17c08be9,0xf6c0c13c,0x3ebfd85e,0x62c08be9,0x58c0d085,0x48003b,0x7b5d04f1,0x71bdc0aa,0xe9103eda,0xb9f2c08b,0x75c103,0x4001809,0xa8f70a14,0xc08be910,0xc0bb1457,0x3fbde197,0xc08be918,0xc0fae951,0xc00fc9da,0xc0ae1bbb,0xc0fd1e0c,0x400fc5a4,0xc0ade630,0xc1100cfb,0x3fdac9b0,0xc0adf972,0xc0ac4d46,0xbe741c3f,0xc0b0c2d5,0xc0c37bfa,0xbfded8b2,0xc0adf0b7,0xc0b3ee98,0x3f96c101,0xc0adf972,0xc0ba7a83,0xbfbacbd1,0xc0adf972,0xc0d0aa15,0x400060bf,0xc0adf972,0xc0ec0be9,0x4006ec31,0xc0b24f76,0xc0aea459,0x3ec56345,0xc0b23854,0xc0b3fe3b,0x3f6ca6b9,0xc0b23e38,0xc0bdc760,0xbfaf8c00,0xc0b24f76,0xc0b2bcdc,0xbf4e978d,0xc0b24f76,0xc0e427bb,0xc004d6aa,0x48ba4f7d,0xc0bad700,0xc0ade22c,0xbe918d8b,0x80ba4e51,0x3cba170a,0x54ba1700,0xba7ff100,0xc5473dc0,0xcd9ca6c0,0xba4f76bf,0xb65476c0,0x85c326c0,0xba4fa23f,0x59f33c0,0xf9f00bc1,0xb24f763f,0x175ffc0,0x2d0f2c1,0xb2404640,0x804bc0,0x39fc3c1,0xba4f76c0,0x19d352c0,0xda4f01c1,0xb2541e3e,0x177df5c0,0x604902c1,0xba4fa23f,0x15825fc0,0x91c811c1,0xb2784b3f,0xa48f1c0,0xe6ee18c1,0xba4f76bf,0xe9557c0,0xce0136c1,0xba4f76bf,0xf84e7bc0,0xcb2535c0,0xba4f76bf,0xeedb4fc0,0xccb368c0,0x6100a8bf,0xc8c10ee8,0x904ad3,0xd49db471,0xa9efe1c0,0x1bf2000c,0xc111a001,0xbeb619b9,0xc0c0b5df,0xc11a3ec6,0xbf555443,0xc0c0b5df,0xc0b6cccf,0x4006dd7f,0xc0c0b5df,0xc13bcc80,0xa388013,0xac5304f1,0x8f5cc134,0x4f76c038,0x3028c0aa,0xdb7bc132,0x71000c39,0xc12b672d,0xc2e9475,0xec877100,0xc62ac139,0x71000c1b,0xc12c8c5e,0x68f99bfe,0x8e1cf107,0x12c1ddae,0x8140cb89,0x58c0d626,0xbf424df8,0x64407c2c,0x18c0d6a1,0x7ac22449,0x83bff736,0x81c0d626,0x1ac03a41,0x24cc6c,0x9b7b04f1,0x8094288,0x2683c0c1,0x41fc0d6,0x76d94287,0xf1000caf,0x85d09804,0x837fc142,0xd62681c0,0x6ed201c0,0xb0b64e42,0x4f10030,0x427571e4,0x409a7f04,0xc0d6b9f5,0x42753632,0x189e335f,0x5fff500,0x42747441,0x40a56491,0xc0d6d0a4,0x4281a105,0x40cdf6ea,0xc0d627a6,0x41c2e130,0xc08100b4,0xc0d6a164,0x416a8188,0x40c219fc,0xc0d6264c,0x41a308d3,0x40ba3446,0xc0d6265b,0x4208f1f6,0xc0b63fe8,0xc0d62683,0xc214fb58,0x4062aca8,0xc0d62681,0x421f65ff,0xc0b2bc34,0xc0d62683,0xc213b5a9,0x406b21ee,0xc0d62681,0xc1e3bab4,0xc0b1e08d,0xc0d6260b,0x421ea9b3,0x40cd1ad8,0xc0d626e9,0xc13a6b9e,0xc0c3e3fc,0xc0d62683,0xc12d6fd6,0xc0ad89be,0xc0e87b18,0xc224d7df,0xbfc524fb,0xc0e87ae1,0x42876f5d,0xc03d88d7,0xc0e87aea,0xc21f1e98,0xc0b5dd53,0xc0e87ae3,0xc21572a0,0x4063a5be,0xc0e87ae1,0x4168b386,0x40bdbb92,0xc0e87adf,0x426e9212,0xc0a3bdb8,0xc0e87ae1,0xc213af85,0xbfd8469d,0xc0e87ae1,0xc2136c89,0x40711a33,0xc0e87ae1,0x42729c36,0x40cc690a,0xc0e87b40,0x4208a07a,0xc0b2f052,0xe0e87ae1,0xdf14f152,0x89c0e87a,0xe4c144bd,0xe1c0c3e9,0x5ec0e87a,0xe6c223d8,0xe1bf8dae,0xf1c0e87a,0xb7c2235c,0xc8745,0xfffffff1,0x8b16e043,0xb8b4dfc1,0xe87adb40,0x2498b7c0,0xb8f901c0,0xe87aa240,0x34017ec0,0x8b0ca842,0xd6c01a40,0x3e5fd6c0,0x88356142,0xd752e1bf,0x3e016fc0,0x802cdc42,0xd71c43c0,0x95f5f6c0,0x20d7bf41,0xd74431c0,0x985bc0c0,0x24a96541,0xd7715cc0,0x5fcb99c0,0xdc36541,0xd6babdc0,0x9bf5b6c0,0x2506ff41,0xd6c1c6c0,0x1e81d5c0,0x6c807cc1,0xd6268140,0x737c7ac0,0xd4b1bc41,0x848cd2bf,0x6a4713c0,0xa3467841,0x848cc8bf,0x7c2918c0,0xfb858341,0x848cedbf,0x7b037ac0,0x177f7c41,0x848ce7c0,0x882a43c0,0x1e470b41,0x75e61040,0x7f524ec0,0x1ed79d41,0x75e5ebc0,0x946e90c0,0xa17c3d41,0x75e6713e,0x8e336ec0,0xc57df241,0x75e69bbf,0x681091c0,0x9efb6e41,0x75e575bd,0x8879f7c0,0x39c6b041,0x75e5b43e,0x73b0cdc0,0xd7c76041,0x848c263f,0x8b0f06c0,0xf2c41541,0x8e26813f,0x94698fc0,0xeb6a6241,0x8e26fa3e,0x8b4a25c0,0x4b21841,0x8e359cc0,0x81ae19c0,0x104d7741,0x8e269e40,0x80d145c0,0x3bbaa41,0x8e2681c0,0x748e6ec0,0xdcbcf941,0x8e24eabf,0x6e1350c0,0xab299141,0x8e2681bf,0x6ad9a6c0,0xaa548b41,0x902917bf,0x93de68c0,0xc44dcb41,0xa15e6e3e,0x85e00dc0,0x1c79b41,0x936604c0,0x93a59ac0,0x86834d41,0x963570bf,0x6d1642c0,0x93e5b041,0xacd524bf,0x766c1dc0,0xfe7a5b41,0xa2fe6d3f,0x6fc44bc0,0xb1c9cd41,0x9cac1fbf,0x92b9c6c0,0x55884c41,0xaa2147bf,0x95e349c0,0x2925ff41,0xae0c8d3b,0x943419c0,0x7ec5b041,0x9e29dcbf,0x9100a0c0,0xca4c9d41,0x9c88893f,0x8d7a54c0,0xd3c73741,0x98151c3f,0x6373eac0,0x7b3fa741,0xa9ace43d,0x67785bc0,0x98d0ee41,0x95aa673e,0x91ede1c0,0xb4ca1541,0xa679c4bf,0x6e5e68c0,0xa047e541,0x94a83dbf,0x93d93cc0,0x86ba2841,0xafc01abf,0x870c70c0,0x44b6f41,0xafbe6640,0x93d254c0,0x3296a241,0xafb3ca3f,0x8b0be0c0,0xf2dbad41,0xafc01a3f,0x9208ccc0,0x9117df41,0xafc01a3f,0x93df9dc0,0x264d4d41,0xbaf34d3f,0x870985c0,0x4a59441,0xbaf35640,0x727bdec0,0xce6e0141,0xbaf34d3f,0x6ca8c3c0,0x9db62441,0xbaf356bf,0x7e23bbc0,0xe6616b41,0xbaf34dbf,0x8c07bac0,0xead88841,0xbaf34dbf,0x6fbd94c0,0x93d5cb41,0xbaf34d3f,0x8df972c0,0xb6ab0d41,0xbaf34dbf,0x902b7fc0,0xb7597941,0xbaf34dbf,0x8fc475c0,0x99220841,0xbaf34dbf,0x7c36d6c0,0xe0955b41,0xbaf34d3f,0x8fa7dbc0,0x9b50e341,0xb959b4bf,0x8aad77c0,0xd9ffc541,0xb959b4bf,0x886ca0c0,0xe8a01241,0xb959b43f,0x91f9ddc0,0x3aa3ad41,0xb959b43f,0x7ffa6ec0,0xead7bf41,0xb959b43f,0x7c36d6c0,0xe0955b41,0xb959b43f,0x80ff2dc0,0xeb560841,0xb959b43f,0x810798c0,0xeb70ce41,0xb959b4bf,0x82f9aac0,0xef80e541,0xb959b4bf,0x69df2bc0,0x72dc2b41,0xb959b43d,0x7088e4c0,0x971e2a41,0x20f5003c,0x4192e4a1,0xbe34aa11,0xc0b06d0d,0x4188c6ec,0xbfe32d45,0xc0b063f1,0x4182d018,0x3fed6391,0xc0af20ea,0x416aa9a5,0x3ede1976,0x6cb06150,0x63f13500,0xf152b0b0,0xb063f120,0x92bd54c0,0x7874841,0xaf97243b,0x6a588ec0,0xfe553b41,0xaf97243d,0x87eaa9c0,0xe4171241,0xaf97243f,0x73a6c3c0,0xace19c41,0x8071000c,0xea417def,0xcdf09,0xf0d108f5,0xa15a4181,0xb42dbfea,0xd568c0ae,0x972d418c,0xb42fbfbd,0xf40048ae,0xffffffff,0xffffffff,0xb42ddaff,0xc84bc0ae,0x4e444176,0xb42d3fc1,0x108dc0ae,0x6517417b,0xb7bb3f94,0xa6cdc0ae,0x1d714171,0xb42dbde3,0xbe92c0ae,0x6464188,0x9002be39,0x866dc0b9,0x33724188,0x2ded3d5c,0x8c4bc0b9,0x9c9d4189,0x58bcbf65,0x3943c0b8,0x63dc4188,0x1d7abf71,0x8cd3c0b9,0x9caa4188,0xf91ebf90,0xd768c0b4,0xc209418b,0x4c1bbf11,0xb801c0b8,0x8cb9418b,0x8883bf3b,0x9e34c0b6,0xd83c4188,0x1d173efa,0xc327c0ba,0x268d4189,0xaa9fbec7,0x9edec0ba,0xdddb418c,0x15fdbd83,0xfd44c0b9,0x719f4183,0x83713961,0xf03cc0b4,0xa6a84183,0x10b43e04,0x7eabc0b5,0x23e2418d,0xfa83be12,0xe9ac0b6,0xf49d418c,0x68833e8e,0x8abcc0b9,0x5443418d,0xfa1e3da1,0x5cdcc0b6,0xcd57418c,0x3d163ee3,0x2f5bc0b8,0x8a264189,0xf0633f38,0x825dc0b9,0xf6f418a,0x51f43f4a,0x5ef8c0b8,0x6d94418d,0xf2c33ef0,0xc21dc0b4,0xe9644188,0x11e03f67,0xf227c0b9,0x63564183,0xee26bf35,0xdc28c0b9,0x79314183,0xeef03f83,0x664fc0b9,0x519c4187,0xcc3c3f8b,0x29aec0b7,0xb0f24186,0x6e113f8c,0x7a19c0b8,0x72cd4189,0xe4ae3f8f,0xb7f5c0b2,0x37a04185,0x88833f99,0xfd43c0b6,0xc76d4182,0x3d4dbf78,0xc50ec0ba,0x27fe4184,0x729bd9f,0xebe2c0b5,0x76104185,0xf7babf88,0xbcf0c0b8,0x7d14185,0xbf2fbf03,0xd712c0b8,0x51e7417c,0x7b6c3f6d,0xfa70c0b8,0x4814177,0xf4c93efd,0x9c32c0b8,0x65b6417e,0xf7ff3f90,0x6e8bc0b4,0x9d624176,0x88833f0a,0x837fc0b6,0x318c4175,0xfa833eb8,0xb4c0b6,0xf7e84175,0xe4ae3f15,0xd623c0b2,0x14d74181,0xdcffbef0,0xac11c0b8,0x2c54174,0xf96abd9f,0x729ac0b6,0x8deb417b,0xf063bf16,0x536bc0b9,0x18ca417a,0x100abf2f,0x7383c0b9,0x3d084176,0x8883bf0b,0x614c0b6,0xa4984175,0xe4aebf16,0xd198c0b2,0x91324183,0x85623c52,0x4c8dc0b4,0x8e2a4182,0xb6723f8b,0xe8c6c0b8,0xf21f4181,0x61003e06,0xf66dc0b6,0xcaa4180,0x576d3f0b,0x68a8c0b9,0xa62b418a,0x8d52bff8,0x3d24c084,0xbf8c4171,0x8ce7bfc5,0x239dc084,0xba344168,0x8da8ba83,0xdb34c084,0xb0964194,0x8d3bbfb0,0x8f84c084,0x22ff4197,0x8ce7bf00,0xbed5c084,0xc4004183,0x8ba83ffd,0xc1fbc084,0x99d94186,0x245b3ef2,0xe702c077,0xb5b4183,0x2f0a3f13,0x3294c077,0x4f3c4180,0x2c1bdfc,0xfe4cc07a,0x5324182,0x1d6bee3,0x58b6c07a,0x53874181,0x1d6bea6,0x573ac07a,0xf4804181,0x1d63ea5,0x70a5c07a,0x24034180,0x15093e3a,0xfaeec07c,0x2dc74182,0x320ebee6,0x2dfec07d,0x378f415f,0x593a3fe3,0x1f2fc0b1,0xf1304148,0xf34d4034,0x1920c0b2,0x25a24173,0x59b4c034,0xee1ec091,0xaf9b4147,0x8ce7c036,0x6f2dc0d4,0x5a21415f,0x59b6c035,0x9cedc0b1,0xdde84199,0x59b4bfc0,0xad8ec0b1,0xc943419c,0x59433f08,0x10e4c091,0x6003419a,0xf7323fb8,0xba92c0b1,0x86b1418f,0x55b44033,0x7bc5c0b1,0x440b4188,0x59b4c01f,0x60eec091,0x89504174,0x59b4400f,0xc105c091,0xfeef417b,0x59b4401b,0x1dbec091,0xa3624197,0x8ce74027,0x842ec0d4,0x77c4418b,0x8ce74026,0x29ccc0d4,0x8916418b,0x8ce7c029,0x153cc0d4,0x354c41a1,0x8a674019,0xb61fc0d4,0x248d41a0,0x8c1ec01c,0xddd2c0d4,0x60fe419d,0xf3b83ff4,0xf855c0b2,0x2ac3419d,0x8c003ff8,0xf177c0b4,0x14be41a0,0xc01a4023,0x89e6c0b7,0x2192419e,0xc01a4025,0x49b0c0b7,0xc137419e,0xc0ff401f,0x4e56c0b7,0x5a71419a,0xc01ac01f,0x337fc0c7,0x17444197,0x7c84029,0x42fac0c1,0xbefd4161,0x7c84028,0x5e61c0c1,0xa9ef4156,0xc01a3f9e,0xcdbbc0c7,0x64bf415a,0x7c8bf9f,0x78c2c0c1,0x14344156,0x7c8bf9f,0xc7eac0c1,0xcc0c415c,0x7c83fae,0x4616c0c1,0x71eb4170,0x7c83fd9,0x5e84c0c1,0xf8df4193,0x7c83f94,0x4741c0c1,0xe50c418e,0x7d53fec,0x3609c0c1,0xfa1a418a,0x7c84006,0xc5cac0c1,0x6bfd4185,0xc01ac00f,0xc26cc097,0x3dee4192,0xc01abfa4,0x84c6c097,0x6d2b4173,0xc01ac00d,0xb6c0c097,0xd5784188,0xc01ac01e,0xb63cc097,0xddd3418f,0xc01a3fd9,0x4acbc097,0x982d418f,0xc01ac007,0xa556c097,0x5b4b416c,0xc01a3fbc,0x3ef0c097,0x92d4196,0xc01abf90,0xcccdc097,0xc28b,0x47ac4151,0xe0b7c089,0xf956428b,0xb7e4150,0xcccdc088,0x18fac28b,0x3fe44150,0xf0a5c0ac,0x2123c28b,0x410b,0xfc97c140,0x34e4c28b,0x53c4410b,0xeb27c13f,0x48bbc28b,0x51b24123,0xdac2c12e,0x8ed2c28b,0x567a4150,0xe94ec068,0xc814c28b,0x9f0c4150,0x22cec086,0x3d1941c5,0xfbebbfc5,0xc13f,0xffff414c,0xc10b,0xb241c140,0x8aa441d4,0xf4fbbe8a,0xc760c13f,0xf785413d,0xc0ae,0xabb1c140,0xa35c1c9,0xf768bfcb,0x4c70c13f,0x8d0941ce,0xfcc4bfae,0xfe80c13f,0xe148c28b,0xfd52c109,0xc13f,0x33314134,0xc0ab,0xc140,0x666641c8,0x3fc6,0xca68c140,0xa3c2c1c4,0x3fbf,0xb597c140,0xc493c1bb,0xfbe33ed2,0x19a1c13f,0xc4e3c1d0,0x3ee9bf3f,0x3296c13b,0xa088c1bf,0x999abf22,0x1312c109,0x719fc1cc,0x999a3f93,0x2743c109,0x43ccc1c0,0x999a3f4a,0xcb45c109,0xc7c41bd,0xe3a3cd6,0x1d72c13b,0xbd7741c0,0x3ee83f48,0x19a1c13b,0xc4f441d0,0x3ee93f3f,0xf236c13b,0x639541cf,0x2d4abf46,0xb9dcc13b,0xcbbc41cb,0x210bbf95,0xcd6bc13b,0xa0a941d0,0x999abf22,0xb055c109,0x2a7c41c5,0x999abf9f,0x714c109,0x54de41c5,0x999a3f9c,0xa291c109,0x5b3a41cb,0x999a3f96,0xffcac109,0xc28b,0x830ac110,0xff81c0cc,0x69c3c28b,0xfffe4120,0xff6fc0ab,0xbce9c28b,0x5b42c100,0xff70c09f,0x1000c28b,0x5d9640df,0xff33c086,0x7676c28b,0x539cc13b,0x3749,0x31f2c28c,0xda62c0c1,0xc05f,0x241fc28c,0x1724c114,0xffeac08d,0xf72c28b,0x9fa54101,0xc09f,0xc28c,0xc120,0xff0ec0ac,0xb8bcc28b,0x60b5c102,0xffd7c0c0,0x3244c28b,0x2bc940b7,0xc0e5,0x746fc28c,0x4841c11f,0xc0b4,0xc28c,0x4110,0xc08c,0xc28c,0x9913c0cc,0x982dc0e3,0x1ef3c28b,0xfe26411a,0x9ab1c0bb,0xc341c28b,0x298d4105,0x98fbc09c,0xb0cc28b,0x8be1410d,0xfb03c092,0x4631c283,0x19c44103,0x6dc0a6,0x646c284,0x327d4118,0x270c0c0,0x9f84c284,0xada54105,0x983ac0bc,0x1a33c28b,0x7330c11d,0xfe43c0af,0x25d9c283,0xd9f9c110,0x223c091,0xb084c284,0x2c15c105,0xfaa7c09b,0x4852c283,0xf859c103,0x9aefc0b1,0xa9a0c28b,0x9dfc0da,0x98e4c08f,0xb7acc28b,0xf851c0cd,0x996ec079,0xde9ac28b,0x90e6c0bc,0x9658c06a,0x2807c28b,0x802a40b1,0x9b77c0e1,0xf44fc28b,0x3a2340d9,0x55e4c0b9,0xc587c288,0x6233c0da,0x665cc08e,0x9414c288,0x3c0ec0c0,0x667fc0e2,0x7afac288,0xf62b40b2,0x5876c0e0,0x851fc288,0x9eb640da,0x5d6ac0b7,0xc5b5c288,0x9ed440d8,0x6666c088,0xc288,0xcccd40c0,0x35c1c0ec,0x5977c288,0x97eec0e2,0x5240bf99,0x578ac288,0x6656c0dd,0xf9e6c116,0x934dc280,0x6666c0bc,0x8f24c116,0x78bac281,0x6666c0a3,0xb2fc116,0x77d9c283,0x6666c091,0x367dc116,0x42f8c288,0x668740e2,0xd744c116,0x78cbc287,0xcccfc0a3,0x491bc0ec,0x1d1c275,0xcccd410f,0x7c8dc0ec,0x14a0c277,0xcccd410a,0x74c5c0ec,0x4271c273,0xcccd410c,0xa5f3c0ec,0xa509c26f,0xcccfbf3f,0xa5f3c0ec,0x2467c272,0xcccd4105,0xc0ec,0xdad7c248,0xcccd40d6,0xdfac0ec,0xeaacc24b,0xcccd4120,0xc0ec,0xc281,0xcccd4100,0x3185c0ec,0x2bf3c283,0xcccd40ff,0x88e3c0ec,0xab17c277,0xcccfc108,0x1a7dc0ec,0x8e99c276,0xcccfc10e,0x800c0ec,0x621c27e,0xcccfc123,0x7c8ec0ec,0x9f4c277,0xcccfc0ff,0x9a7c0ec,0xdd46c281,0xcccfc0b6,0x1a7ec0ec,0x9db6c273,0xcccfbfb0,0x74c6c0ec,0xae4fc273,0xcccfc0fa,0xa5f3c0ec,0x7532c272,0xcccfc104,0xde54c0ec,0x757fc248,0xcccfc118,0xe624c0ec,0x5014c24a,0xcccdc085,0x1a7ec0ec,0x1603c276,0xcccd40f6,0xbc3bc0ec,0x5e3dc27d,0xcccd4123,0xafdec0ec,0x1c6ec277,0x3333c107,0xfdf0c123,0xf747c275,0x3333c10e,0x33bac123,0x7163c277,0x3333410b,0xafdec123,0x18bdc274,0x3333bf6a,0x33bac123,0xaa93c274,0x3333beb5,0xc123,0xcccdc248,0x147b410c,0x9548c0f6,0xcbcf4287,0x147bc099,0x75cfc0f6,0xf7f94285,0x147bc087,0x1f0fc0f6,0xc5444288,0x147dc105,0xc0f6,0xcccd4286,0x147dc10c,0xc6c6c0f6,0xfb734286,0x147dc10b,0xc0f6,0x484286,0x88991c71,0xcccd42,0x19f40030,0x4288e5d5,0x40f605f9,0xc0f6147b,0x42854b0f,0xc0aa3435,0xc0f6147b,0xc22df20a,0x40d90683,0xc0f6145b,0x41890131,0xa3710054,0xc0c21fb6,0x248aea,0xdee004f1,0x3196c21f,0x147dc0b2,0x4e72c0f6,0x8939c21e,0x710018a0,0xc2292871,0xc6ef6c2,0xeb537100,0x3b3ac182,0x71006c0b,0x4170a073,0x30fe94cf,0xa004f100,0xf642869c,0x3ec0858a,0x4dc11b0a,0xaa428522,0xca7c6,0x22676b71,0xb08ef7c2,0x8f31000c,0x5423b1,0x1b0a3eb1,0x1fb6a3c1,0xb22396c2,0x10f10018,0x4288f65a,0x40f2bc73,0xbf99999a,0x4286de1d,0x410c2b0a,0xbf99999a,0xc289d463,0xc0f271b,0x9304f100,0x99c285f8,0x9a40ff65,0xc4bf9999,0x2fc280ce,0x181652,0x86b15571,0x2b2c5a42,0x262000c,0xb34289ea,0xf1003c9d,0x860b3f04,0x2c10cbc2,0x9999a2c1,0x89116fbf,0x1c92de42,0xe710024,0x3fc24b98,0xc22d8,0x7caa04f1,0xc80ec248,0x999ac115,0xbf99,0xcccdc28a,0xf1001804,0x8835141c,0xe19579c2,0x9998a640,0x850000bf,0x2ccccdc2,0x41,0x87098900,0x29a934c2,0x8637bd41,0x88891935,0x211593c2,0x29f70018,0x428bd456,0xc13cd066,0xb8a7c5ac,0x42870989,0xc129a934,0xb6c9539c,0x428bfb02,0xc13c063e,0x38f776c5,0x42888919,0xc1211593,0x80000000,0xc28be9ef,0xc13c734b,0x18010048,0xefeb7100,0x69dc4289,0xf200540c,0xec5facff,0x154a4288,0x539c411e,0xd41d3649,0xd006c28b,0x509c413c,0xea9eb888,0x7b1cc28b,0xf020413c,0xff053840,0x7748c28b,0x7e0f413b,0xf0c037e2,0x1706c28b,0xaec04142,0xe986bf26,0x5654c28b,0xd3f64149,0xf924bfd5,0xffacc28b,0xf3284149,0xe0d2bff7,0x2fddc28b,0x12494149,0xd371bfd2,0x489fc28b,0xf68c4144,0xe96abf5c,0xfb19c28b,0xf6a14142,0xd0eebf3b,0x98d2c28b,0xaccd4149,0xda43bfd5,0xf1cc28b,0xdf0d414d,0xf1a2c01c,0xbde2c28b,0xdde3414f,0xd571c061,0x8651428b,0xc9e64149,0xdcc7bfd7,0xf633428b,0x6699414b,0xf201c00b,0x280d428b,0xc5a04142,0xf044bf2a,0x6b39428b,0xe73414d,0xf101c02a,0x6595428b,0x1373414d,0xd8bcc02a,0x42a7428b,0x70fc4145,0xde8ebf80,0xfb19428b,0x33594144,0xd5c6bf7a,0xc757428b,0x84384150,0xf87dc07a,0xa68f428b,0x6d9414d,0xe238c035,0xc2ba428b,0xc61e4146,0xe894bf9e,0xcae4428b,0xa6fc4146,0xe666bfa2,0xb5b9428b,0xf898414e,0xe813c03e,0x9ce2428b,0x7432414f,0xfe68c052,0xb74e428b,0xfe43414d,0xc041,0xd624c14c,0x6380c127,0xc12a,0x3333c14c,0xe16ac133,0x9c11d,0xf3bc14c,0xd1f2c14e,0xd7d1c0ca,0xfe91c28b,0x3e29c150,0xc07d,0x864f414c,0x8049c142,0xf924c106,0x9406c28b,0x51f9c10b,0xfd33c13f,0x39d4c28b,0x95eec14d,0xf306c0c4,0x33c2c28b,0xceffc146,0xd8d5c0f8,0x66a5c28b,0xf339c13a,0xf924c113,0xca84c28b,0x7d31c139,0x75f4000c,0xc128e6fc,0xc1283445,0xc28beffd,0xc11b9ec4,0xc13487d0,0xc28bd70c,0xc14a32a7,0xbfe33248,0xc28be0dd,0xc145b9d0,0xbf876d65,0xc28bf841,0xc14d954e,0xc0319920,0xc28bfe69,0xc14dbf42,0xc04259f7,0x4144a5af,0xc15001f2,0xc05a2142,0x428bfab8,0xc14c75a7,0xc01d334c,0x428be960,0xc14302af,0xbf3ce9a3,0x41340000,0xc1333333,0xc0400000,0x413a362f,0xc1333333,0xc043456b,0xc1340000,0x8040018,0x1203f270,0x13c0a184,0x33412100,0x45c13333,0x9ac0c91c,0x71000c99,0xc0c00000,0xf0148e23,0x28716f,0x13c0e2,0x31000c21,0x44c91c45,0x480201,0xfc09051,0x18038e,0xd8e3e371,0x73333c0,0x12840048,0xd8c0a184,0x54c0fdff,0x3c0400,0xb6e3bd82,0xfccccdc0,0x15003c40,0x710024c0,0xc0b6e3bd,0x3c00c209,0x66667100,0xc209c0ae,0x35005400,0xd4ae6666,0x7bf07170,0xc0de,0x35001840,0x9c4cdc90,0xda10f100,0x57c09dff,0x64c102ef,0x4ac0e666,0x33c0c0e0,0x66c114a0,0xa5c0e666,0x5c0a705,0x181cb2,0xb9325571,0x198f0cc0,0x1971000c,0xccc0d31e,0xc05f4,0x2e5a1df4,0xef73c0d0,0x712c4102,0xa410c12e,0xa7f5c0c0,0x3e9b4107,0x4b04c12e,0xd2aac0ab,0x6664411c,0x3ceac0e6,0x5fcec0bd,0x54410b,0x34dfc31,0xfff80018,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xb9325534,0xb9097cc0,0x5a18601a,0x5e0f600f,0x8223810f,0x8f05f514,0x9007611a,0x420d351a,0x730ff40d,0x22182324,0x6154e18,0x791e071e,0xa7167716,0xcd1c6a23,0x2c07571e,0x6a22691c,0x18128822,0x4214c224,0x6824da15,0x46244106,0x2a05e024,0x2b1bf722,0x97088f22,0x1a07111e,0x2016cc23,0x21230523,0x5c230612,0x5b0bd303,0x325fc03,0x5917be05,0x56005700,0xe21fe100,0x8f1fe41f,0xaa04a704,0xf723ad04,0xee23ab15,0xed19981f,0xbc00b91f,0x9d0bf300,0x9f078d09,0x1f0aaa09,0x771f1a1f,0xe2248324,0x191dce14,0x9012e515,0xf080d1f,0x1a03b008,0xe603ac0c,0x7915e915,0xd701c816,0x461da814,0xe5000f00,0xca0c2f10,0xfa033103,0x2f03ca00,0x1301140c,0x1c03a601,0xab221822,0x5700590a,0xbd032d00,0x1a034b0b,0x3301e401,0xc014fe13,0xbe055111,0x490c4511,0x4403b503,0xf403b50c,0x11014f00,0x45014e04,0x3c0b470b,0x1011f700,0x7a144312,0x9f00ba0c,0x2c0fe600,0x7b102b10,0xdf00820c,0xdf0c7b03,0x7b03de03,0xb503de0c,0xf3098100,0x351abd20,0x221c3f1c,0xff0c331c,0x550bad00,0x624c006,0x3219de02,0x9408b120,0x7c0a960a,0x110d6018,0x590d5110,0x49115811,0x41f7a0e,0x24080208,0x470d8a0d,0xaa112e10,0x27113211,0x110b051c,0x790dbe0b,0x180dbf10,0x1b23da16,0x600b2716,0x430b281c,0x3113591e,0x1a1e0c25,0x8506871e,0x831f8b1f,0x26021c1f,0xcb131202,0x42223c0a,0x25234722,0x3f246217,0x3705a912,0x1208181d,0xa81f8308,0x5f1fa91f,0x7c1a3f19,0x6c1a4220,0x40a2921,0x808010a,0x21193b08,0xda161b1d,0x990d9a23,0x3010570d,0xc0027025,0xc91e2206,0x1d139912,0x1a0df311,0x4f04f711,0x47172a04,0x48044404,0xcd02c604,0xf21d5202,0x731e6506,0x25231013,0xda23eb1d,0xe411db11,0x501b9a15,0x8a0a640a,0xf5181e12,0xf2124e17,0x7f1d4a02,0x4f1eda22,0x761ff31c,0x11199908,0xd070c07,0x151b6a07,0x7d0a160a,0x801a4420,0x88131820,0x1f067f06,0xab195d08,0xe1b0d1f,0xea1b0a1b,0xe619931f,0xca0cb61f,0xf70f780c,0x35071808,0xac23dd1a,0x46122516,0x7124416,0xfa038424,0xb200c30b,0xac1ae409,0xa61c6f09,0x801c7b22,0x131d4314,0x80247224,0x9201ad24,0xac029302,0xbd00810e,0x310bb70b,0x4b25241e,0xd319d113,0xf9202c19,0x2d063114,0xd401ee06,0xd5063a12,0xdb12d612,0xd5063a12,0xa312db12,0x1a00e103,0xde01f70c,0x101dcc12,0xf812e415,0x490a0701,0xba217a1b,0xc722f123,0x4b020823,0x4b1dd606,0xb3020806,0xb301f713,0xd712de13,0xe213a01d,0xd71dcd12,0xe312e21d,0xb7056122,0x721b7423,0x190a3e1b,0xb61d7e17,0x120b0714,0x311c111c,0x23153a15,0x68066402,0x5724da06,0x6b117411,0x9c039d11,0xe60c1203,0xa7054915,0xdf236223,0x7814aa05,0x75257904,0x3b194025,0xb4080819,0xb7015900,0x6b100,0x8602ff03,0xf913e606,0xab1d2424,0xb5145616,0xb40ec80e,0x7011350e,0xb10e6e0e,0xdc19db08,0x651db119,0x6a183424,0xbd23cc05,0xe725f023,0x9f25ef25,0x7150513,0xaf151a15,0x4713a513,0x7064902,0xfa1afb02,0x241af81a,0x5516a512,0x1c068114,0x49067013,0x9b139502,0x151dbd13,0xc6063025,0x98133512,0x2113fa13,0xe71dba1e,0xda1b2809,0xdb235f09,0x72235905,0x2e0d710d,0xac02f910,0x781e2c06,0xf906ac15,0x701a3402,0x21a3720,0x60252303,0x17172002,0xfd238024,0xf8241a05,0x30252f02,0x3006be25,0x8313e513,0x72027306,0x92158b02,0xb1e4015,0x48027303,0xc02721e,0x8b031303,0xd00ecf15,0xf00ece0e,0xef17ae04,0xe31c0904,0x540ae60a,0xf31f3521,0x89241f09,0x5d234214,0xf21d4a24,0x3d0e1e02,0x2c113b11,0x9d1e2006,0x4b14fa24,0xe01dbb02,0x2c069f01,0x6912c306,0xc801e015,0x23ba23,0x23026012,0xdc06b225,0xb1151512,0x680bb124,0x87007600,0x880bd200,0x85038900,0xc6038803,0x70084d1f,0x3193f18,0x9e193c08,0x370f381c,0x92081b0f,0x41079007,0xfb10000d,0x1301140f,0x490c1b01,0xe403e503,0x1c1ed603,0xba22880b,0xbb01170b,0xde0c7b0b,0x610bf103,0xa6014c00,0x201f9b0b,0x28081f08,0x2a123d23,0xfd068323,0x5a1dfe1d,0x571a9909,0x1c241e09,0xa3125d24,0xa70fa40f,0x190b1a0f,0x141ec50b,0x12014e04,0x67168d04,0xcf056305,0xce139a12,0x9609df12,0x1607301e,0x1219ba20,0xe4023b20,0xdd13df13,0x6003770b,0xb3009a03,0xa0be500,0xe50af61c,0xa400430a,0x710b5810,0x580cd50f,0x280dd40f,0x3310ff11,0x6b0c6801,0xac20af03,0x53093320,0x520d610d,0x3a11390d,0x270e1911,0xe3167f14,0x66117e11,0xf6117d0e,0xef15f015,0x6b111d11,0x7211ab0e,0x6e09441a,0x2b23f11a,0x6a16a91d,0xd424d806,0xde1d2224,0x4c162023,0x4a0e2911,0xb218e211,0x62192d18,0x41041c01,0xf20e0001,0xfb10f810,0x9f03c900,0xff13f20b,0x481e1c14,0x9232116,0x4a254b24,0x31044525,0x5e255f17,0xe0146025,0x99122423,0xd002d714,0xc70eaf05,0x550eb00e,0x79047f17,0x7f047c25,0x59047b04,0x85048617,0x86257c04,0xab175804,0x691d7314,0x3c172223,0x36238123,0x6a1c2c1c,0xec17a722,0xe125eb25,0xe304eb25,0x71002625,0xea10ba0b,0xeb25da04,0xf314ff04,0xf4139413,0xf204ef04,0xf017b004,0xf817a404,0xd3140e1c,0xf025e615,0xad25eb04,0x4825ed17,0xad04f125,0xd604ef17,0xc70a861b,0x3915511b,0xc7155002,0x6421c621,0x1401e20a,0xc81e1d25,0xfd0fc70f,0x26010c,0xe904df26,0xd30aaa1b,0xd217c518,0x1817c425,0xff051905,0xf018a604,0xf31e9a07,0xf4203c19,0x17228419,0xff22860b,0xf81a0219,0x2c212d19,0x5b1e9221,0x2c23ef14,0x5f206416,0x4a205c20,0x730e4b0e,0x7405e311,0x68237523,0x2e1d2914,0xff184a16,0xd6074206,0x5517d517,0x7e23c404,0x1a121905,0x9a1cec14,0xd1167023,0x4e22d022,0x3209dc21,0xde16761b,0xf6054411,0xd9054d1c,0xd923a922,0x54d22,0xb057012,0x8e1ece1d,0xe7228f22,0xb9120122,0xa1b1c23,0x481b1b1f,0x4610a600,0x371d2b00,0x79059512,0x7b217a21,0xa41a7021,0xce092e20,0xa7202a19,0xa608a908,0x1c08a508,0x7e1d8117,0x1305b31d,0x38233924,0x6a040401,0x3924f50c,0x24155202,0x5c22631c,0x27163b22,0x42163c23,0x41232d16,0x280ddc16,0x3e110111,0xda12461d,0xa70d9f16,0xe910660d,0xaa25df04,0x3324ee17,0x2613d602,0xa3186c07,0x7912461e,0x1b147b14,0x241e101e,0xe7250d13,0x3f155613,0x74164016,0xc61d2a14,0x36123216,0x3709c721,0x8613e621,0x48155606,0xb823801d,0xc2054102,0xa8239611,0xe0244114,0x171e4d05,0x62253a03,0x4d031713,0x1416031e,0xe022ec1d,0xdf0ec00e,0xf012130e,0x10121222,0xd114e506,0xe425ee14,0x5f25f304,0x281a5b1a,0x4f186f09,0xea074a08,0x4d11ae10,0x981a9511,0xff1a961a,0xfd184b20,0xc40fc320,0x3d0f870f,0x7805db24,0x79154912,0x90067806,0x8e0efd1c,0x2d157d1c,0xe3157c1e,0x64146523,0xfe156f14,0x1f06a613,0x1e00e20c,0xc724ce0c,0xc5130c13,0xea0e860d,0x101efd10,0x5d1a4709,0xee215e21,0x3d023e09,0x84023c02,0xc80cc10f,0x2719cc0c,0x9c19cd20,0x5a0b3122,0x89026c07,0x1606c615,0x6015621e,0xad1d1e15,0x4230716,0x5b024225,0xe81be915,0x500aaa1b,0x511b9a0a,0x35131a0a,0xef1e1102,0xdd24f124,0x27059113,0x2b230f16,0x2a1f6c19,0xbe069819,0xc6249d1d,0x98156b12,0xc1203e13,0x9019fd08,0x910d8f0d,0xdb15c50d,0xe4018b06,0xc722c61c,0x2f11cf11,0xc915d105,0xa30f311c,0xfd0ff91c,0x6b0d3a0f,0xa4244223,0xd705d814,0xa5243805,0xdd0f890c,0x7002e50c,0xbc170e23,0x3623ce23,0x9e193614,0xff07fb07,0x3907fe07,0x193e19,0x35076408,0x361c6e0b,0x141f830b,0x52081508,0xbd185c18,0x8c199219,0xc198f19,0xb081308,0x2008e708,0xea1a0e1a,0xbd1d2923,0x710e5616,0x160e5511,0xe71c0d1c,0xdb20580a,0xa51a1d08,0x350c6800,0xcd202901,0xf8202719,0xed012803,0x1e211d03,0x691adb21,0x6d14a212,0x2f1a2f1d,0xab072b07,0xe0236814,0x69231305,0x46059814,0x76014501,0xbd212b0c,0x1a1af709,0x131a4909,0x73207009,0xe71a3a20,0xa519e619,0xb8016e08,0x2f042c03,0x9f209e09,0xf025e620,0xc317b204,0x4c033d0b,0x4d0d4e03,0xec10080d,0xe308b319,0x801a7b19,0x4d20b318,0x331b2c21,0xed22f21b,0x261d0c22,0x29122e1d,0x540dbd16,0x4b107a0f,0x80164512,0x640da714,0x58106310,0x5f174004,0xdc1ec425,0xbd1b2a09,0xdd24c124,0x7304871d,0x28174f04,0x750a160a,0x2a0a0421,0xb4216b0a,0xb50fb30f,0xae00130f,0xf310b710,0x9908761f,0x3e24ed19,0x22023c02,0x6a1c5f0b,0xe00e7622,0xc711050d,0xcd24ce13,0x6a1c5224,0x28226922,0xb303da04,0xf023a203,0xd05471c,0xe00aa322,0x1407121b,0x4d1ac107,0x951c5a18,0x63099622,0x3b099807,0x30153115,0x9e20df15,0xc4095c1a,0x1017b817,0xf00ded05,0xdc11160d,0xce261317,0xc411c217,0xe0239622,0xe40af40a,0xf316c80a,0x25059723,0xe1162016,0x701e2623,0xa913f715,0xe30a9807,0x66105a1b,0x80da210,0xda124624,0x4c0b8b16,0xff0b4d0b,0x100c50b,0xf322df0c,0x1e057422,0x7b0e7d0e,0xbc0fbe0e,0x320fbf0f,0x390c380c,0x5d118c0c,0x4411830e,0xb50c450c,0x3d20bb03,0x77093c09,0x7601510c,0xa104df0c,0xdf260117,0x5d00ab0b,0x4c07d703,0x591e901f,0x5c14891d,0xee0be712,0xf200920b,0x7a1ff41f,0x760d8108,0xff0f730f,0xfc0d010c,0x10d000c,0x360cff0d,0x4b1b840a,0xb31b950a,0x921bb11b,0x1d0916,0x57116012,0x66115e0e,0xb21fa319,0x1d951f,0xfa01ac06,0xac0cf60c,0x3a0ff90f,0xa00ff30d,0x7910ec11,0x4d0d4c0e,0x4c100a0d,0x4d0d4b0d,0x80d4e0d,0xb0d3610,0x51100f10,0xc100b0d,0x8f100f10,0xc21ac909,0xc149b1a,0x5e14a617,0x15125124,0xab200724,0xa19b019,0xe60de111,0x1817d00d,0x641ca60f,0x650d580d,0x67101c0d,0xe2101a0d,0xe924e324,0xba13fa24,0x1e1e241d,0x68101d10,0x7a0d7b0d,0x1b0fe90d,0x7a0e7911,0x2c0d700e,0x2b0d6e10,0x70102c10,0x750d740d,0xa80d380d,0xd125cc04,0x320d7104,0xcb102e10,0xcd094d20,0x32102e20,0xd7410,0xfe163224,0x59160f23,0x8a120505,0x96209b20,0x7505d720,0x9b05ea23,0x69a06,0x2703ee15,0x803e701,0x5923e723,0xeb105814,0xdc0d930c,0x1e122523,0xed104716,0x910d9a0c,0xe770e,0xbd0db711,0x140ca10d,0xba201220,0x3f147b19,0xa0240b1d,0x990c980c,0xe00af40c,0x810ae50a,0xf1138213,0xf30e2d06,0x470deb0d,0x4021a10a,0xf90dff0a,0x4911500d,0xed25e504,0x68070a04,0x1618b407,0xb1127817,0xc70f7c14,0x2a0f740c,0x8f139006,0x32043a13,0xf8005f03,0xf621f521,0x571d0721,0x7a168305,0x5b1c5818,0x1100ce1c,0x2300d30c,0x410e7d0e,0x2311a811,0x2611450e,0x4511a80e,0xa811a911,0x8d0e2611,0x9f1f1407,0x48231e09,0xc916db16,0xc50e870d,0x370e7b0d,0x74113d11,0x9f0de30e,0x9f111411,0x740de911,0xc11060e,0x740de311,0x83110c0e,0xcb0dc60e,0x830dcd0d,0x840dcb0e,0xcd0e830e,0xb00e880d,0x8910f911,0xd20e880e,0x3210120d,0x8d0d790d,0xd50e6c11,0x131e140d,0x215611e,0x111a20e,0x9c0dfb0e,0xa1111c11,0xfb119c11,0xa111200d,0x900dfb11,0xe4110711,0x9011930d,0xd50de611,0xfc0e890d,0x6f119410,0xd70dea0e,0xd5118d0d,0x7e11a50d,0x5d0e110e,0xfd216021,0x80113309,0x7c11300e,0xf0e0e0e,0xdd11090e,0x8d0e900d,0x9011090e,0x9110d0e,0xe50e8d11,0x8d110d0d,0x1011aa0e,0x2e11a70e,0xaa0e1011,0xdb110a11,0xe111950d,0x95110a0d,0xe10e7311,0xf211950d,0x1f22191b,0xe10e7522,0xed119d0d,0x750de10d,0xed11a00e,0x180e750d,0xa00ded11,0x180e7911,0x9b11a011,0x99099709,0xb022a709,0x211c7c22,0x7f0dfe11,0xb10dca0e,0xca0dcc11,0x4e0dc70d,0xca11b111,0x8f114e0d,0x8e0dcc11,0xcc10f511,0x71118f0d,0x81081407,0xfb11971f,0xd30e7010,0x9710fb0d,0xd30e7111,0x211970d,0x710dd311,0x20dd90e,0x760e7111,0xd911050e,0xbe09400d,0x441a8520,0x2911ad11,0x1d0e1f0e,0xf30e810e,0xf5118f10,0xe2054310,0xc115e115,0x910e2c0d,0xfc151911,0xbb065012,0x422f523,0x3c1f3b12,0xaa18fc1f,0x2608251f,0x7009308,0x820c060c,0x11194a1f,0x580d9408,0xfc0d9310,0x39080907,0xe5044919,0x617ac25,0x43148124,0x7b0f7c1d,0x790f930f,0xb122a71c,0xfe0a8b22,0xc71ec121,0xc522801e,0x5d09fd1e,0xb7216021,0x71cb61c,0x3523ff0f,0x71232d16,0x7506a915,0xe2080115,0x81193e1e,0x69186f1c,0x4c0e5018,0xec0e5f0e,0x4d25e404,0xc9141525,0xfc1ce611,0x7050825,0xa01ff905,0xdf199919,0x19211a1a,0xe2193e21,0x3a1f791e,0x8f15d005,0xdc0d0823,0xef0cdd0c,0xc31bc221,0x9416ac1b,0x98162105,0x9f20de1a,0xb40cbc1a,0xfe0c990d,0x5050825,0xfd0d3a05,0x5d0ffc0f,0x8d0f8b0f,0xb919820f,0x3c1fbe1f,0x1a133d13,0xac1e2c25,0xcd251e06,0x870bd20b,0x390ac800,0x811bf922,0x941f1c18,0x11162607,0x8a231323,0x1308161f,0xe042808,0xa503b301,0xaa19d208,0x5805c008,0x78149112,0x25167a16,0x3d103f14,0x910d8610,0x8d0d8c0d,0xa60faa0d,0xc30fac0f,0xd6178925,0x410ffd04,0x4c0ffc0d,0x4d10090d,0x80d4e0d,0x4a0ff510,0x4b10080d,0xb0029c0d,0xc0ebc02,0xe100d10,0x5f101010,0xd30d5a0d,0xd40ad10a,0x5810190a,0x1c0d650d,0x1a101b10,0x980b2c10,0x701c6022,0x28102c0d,0x61105f10,0x6e106210,0x2c00eb01,0xc61b0804,0xfe1b0609,0xf211f51c,0xe7202311,0x9119c918,0xc0e8a11,0x3c09f90e,0xf11b361b,0xf117b304,0x35103625,0x950d7910,0x9404be04,0x1b13ff04,0x4606a825,0xc323c214,0x870d8523,0x580d830d,0x930f9310,0x420450d,0x4308c61a,0xc409db21,0xc20a791e,0x1221df1b,0x5913bb02,0x961acd06,0xc0099809,0x7c107b0d,0x1a0b7d10,0x77003000,0x1d1ea51b,0x11110b07,0x8d110a11,0x8e11b40e,0xaa1b790e,0xb0a4621,0xc0ae41c,0xc710ef1c,0x590dca0d,0x7310780f,0x370b3d10,0x9c0b3e07,0x6220418,0x34124c22,0x7923331d,0x47164614,0xa60ea816,0x7a029402,0x55117111,0x9b01e80e,0xfe12d013,0xaf020401,0x9609df24,0x31ead1e,0x300b040b,0xb81eb01c,0x2307341e,0x92209409,0x62078b20,0xf0198d08,0x38113310,0x40d4611,0xea0d4510,0xb518bc1e,0xa8114818,0xa9114511,0x4811a811,0x3c203b11,0x7408bb20,0x9f110f0e,0x74110f11,0xef110c0e,0xcb0e8310,0x830e840d,0xfa10ef0e,0xf6056311,0x880e8915,0x2a10fc0e,0x510f4a0d,0x7e14b20f,0x1c02f023,0x19119c11,0x90119311,0xd7111111,0xd5118d0d,0x7e11a50d,0x52112d0e,0xb70a4c0a,0x9119821,0xd0e9011,0x98110911,0xd0de511,0xaa119811,0xa7112c11,0x2c112e11,0x5a11aa11,0xbe1a4321,0xa110b18,0x73119511,0x95110b0e,0x54245511,0x7514b124,0x9d110b0e,0xb0ded11,0xb10e7511,0x6419681f,0x2017e019,0xca17dd26,0xf311b10d,0x74227510,0xc41c2022,0xe921f31b,0xfb10fd21,0x71119710,0x9710fd0e,0xfd110211,0x440e7110,0x4711ad11,0x3b11a611,0x3b113611,0x1d0e8111,0x81113b0e,0x830e1d0e,0xd80f770f,0x4411ad0c,0xb20e1f11,0x85114711,0x47114a0e,0x7111b211,0x991ff108,0xce1cda19,0x4b15cc15,0x4a0ced10,0xb11fc10,0x9512001d,0x221c5f22,0x2105440b,0xec167614,0x13231123,0x700dd023,0x7510fb0e,0xfe0afd22,0xe1119d0a,0xd60e730d,0xd5095920,0x46244120,0x4c05e024,0x230d250d,0x1d067f0d,0x3d131e13,0x35232a16,0x2e232516,0xd5147223,0x2e147216,0x46124623,0xa3147916,0xc91cca1c,0x7e24101c,0xe240e14,0x913a015,0xaf180f02,0xd5019e12,0x3805d805,0x4051224,0xd517c926,0x4c124716,0x77087012,0x5d087508,0xf2124d24,0x5022fa02,0x18058414,0x141e161e,0xb518b11e,0xf318b018,0x1f24f524,0xef13ee13,0x63156013,0xa021c90a,0xd304c81b,0x9104c004,0x422030a,0x78137722,0x3815b413,0x3726180f,0x280c1f0f,0x8f00e203,0xdf16b605,0x3c154423,0xb4067015,0x3820b520,0xf6067909,0x601e0d24,0x5e1e1715,0xf1155515,0x56068c13,0x1b023a15,0x1601e01e,0xb9062c25,0xe723b823,0x6a138d22,0x7515b31e,0xda170d12,0x1814b205,0x9e237e17,0x530db90c,0xf310f90f,0xac10f510,0xe10c1a03,0xe3155400,0xe4154f13,0x76067724,0xc6089f06,0x8b19c719,0x17122105,0xc41e7c12,0x2115ba15,0xfb24f913,0x111dfe24,0x2413dc1e,0xe1e1b13,0x5821d81e,0x9821c10a,0x9913f813,0x211ced13,0x22141f14,0xe5142314,0x6a0e4915,0xfe115911,0xeb056811,0x20102c22,0xdc10260d,0x1e16ac23,0x32023016,0x5424e602,0xcf198008,0xe305b61f,0x14241516,0x1509ed1b,0x8151b1b,0xbf1dd602,0xc51ac61a,0xe31dcd1a,0x3f150f12,0x37147e1d,0x72119a23,0xb511990e,0x3a232f05,0x3a16c223,0x62123b12,0x3b1a8118,0x7f147009,0xd5146f14,0x4c147d16,0xe914ae12,0xda14b005,0xfe078207,0xaa23621e,0xb902e514,0x9004cd25,0xae0dc317,0xd9114d11,0x3f1b2309,0x11e0821,0xb824f31e,0xc1179025,0xf6151925,0x6112fc12,0x9f1b9d0a,0x5c22931b,0xe20b251c,0x1b0aa01b,0x6f119322,0x830e160e,0x57055d16,0x931f9005,0xcb08171f,0xa20e9515,0xca0e960e,0xef0e9a15,0xa315e41c,0xb5065323,0xf6020c13,0xed054d1c,0xed23a915,0xa3054d15,0x77127614,0x8e16ec12,0x2705be14,0x37124023,0x8d019a1d,0xac137f13,0x3d163f05,0x7120e916,0x4420ed09,0x46164712,0xaa009d16,0xa1008d00,0x1050917,0x79067726,0x66154906,0x34083519,0xe925e708,0xe125f225,0x1201e701,0x5004fc25,0x2a25f404,0xe823e71d,0x70037c23,0xdb00aa03,0x1c0f1b17,0xa7150d0f,0x4b12f124,0x6b0e400e,0x691d6d11,0x9214a212,0x90086d19,0xf21b5619,0x491b3709,0x9f170d24,0x52046014,0xe7046104,0xe825e204,0x3a02dc04,0xae170024,0xe604f017,0x8b230625,0xa4058f05,0xb004e517,0xf017b217,0xad17b004,0x4025ed17,0x441b2804,0xc109da21,0x825fc17,0x2164105,0x8a163d24,0x1e17f612,0x79037b18,0xed0bed03,0xe413e313,0x18260f13,0xfe04ff05,0x10ddc10,0xf160811,0x2e160616,0x8d0b2107,0xf1172922,0x9017af25,0x8b027215,0xd3129815,0x2a17ef14,0xa61f291f,0xdd075107,0xb8184b1e,0xb90d040f,0x7f1abb0f,0x361ab909,0x35193419,0xcf07fe19,0x351f1818,0x361f7719,0xf80d7819,0x760d390f,0xe7127523,0x7d194505,0x83080c1f,0x1519461f,0x88202508,0xe1f0807,0xc509c21b,0xb325c209,0x92178725,0xe415fd16,0x9f21a322,0x321a021,0x3c076b08,0x4b1f9319,0x6e1f8f19,0x6f1a3918,0x9d1e4e20,0xd2031d15,0x361d3516,0x6213061d,0xb6021c06,0xb419601f,0xb118241f,0xf6247512,0x7a0e790d,0xdc19880e,0xf21fde1f,0xf91a3208,0x201d2008,0x1223de16,0xc110ee0e,0xe7211e0d,0xe009a61a,0xa71aa920,0x9b21091a,0xe8099909,0xd508e708,0xbf09be08,0x8e1afc09,0x72086519,0x8e1b2608,0x261b2818,0x291b281b,0xf809f91b,0x8b215c09,0x18091920,0x5f1b5e09,0xa01b601b,0x411b7321,0x97081a0a,0x2d194f1f,0x4c0d4b0d,0xae0deb0d,0xda0e8611,0xc9153524,0x1024813,0xa14f815,0x28079f1f,0x3a19fb1f,0xd91e8518,0xd51d7002,0xdc1df305,0xc813ca24,0xb00c600,0xac1a710c,0x5d20af20,0xec155e15,0x2b1cbd13,0x130f2e0f,0x9d1b4d0a,0xd4039721,0x26039100,0xad230e12,0xdb205616,0x4508da08,0x44141f05,0x77087505,0xec1ff008,0xd40c5303,0x791d3e03,0x7a124614,0x6b257304,0x6100304,0x67100510,0x1f15a213,0x7402e303,0x6005df1d,0xdf1aa409,0xc6021720,0xad130024,0xde1b2a1e,0x3b02da09,0x3902db24,0x201e0502,0x5e094813,0xea095f09,0x4f13e324,0xca0fb315,0xf50d0c0f,0xf311f315,0xb00cf015,0x3f0d100f,0x24068a02,0xe01ecd13,0x2a1f2a1e,0x6d1f6c19,0x4f0e511f,0xb811790e,0xaf16bc16,0xc9038b16,0x71038c00,0x7b1d7c23,0xe61eea1d,0x7e09491e,0x4c164b14,0x4e1d5016,0x4e12591d,0xc6197b08,0x4193e1f,0x93080708,0x94089508,0xd01ef408,0x6d20ce20,0x47030a02,0xc30a7e13,0xec21f21b,0xe71a2008,0x1184808,0x7a1e8607,0x7d124c14,0x57005814,0xf40b9e00,0xe120c22,0x6220ba12,0x131a7f18,0xd608d51a,0x3a093f08,0xe120bd09,0xdc19e219,0x9920d419,0x7109571a,0xc1d731d,0x8b1abc17,0xf61e8e1e,0xe321e021,0xb513ad21,0xd31dd524,0xcf15df11,0x2d0a2e22,0xb521940a,0xb01b8b18,0x5224418,0x4c0ac51c,0x4d225022,0x820b1222,0xc30b1322,0xf6009900,0x5e132f0b,0x7a1e1715,0xab0a461b,0xd20b3021,0x791c691e,0xe912761d,0x46116d05,0xa40e570e,0xb422b81e,0x49127522,0x35170d24,0xe623b714,0xaf11f122,0xc1055823,0x2b16b616,0x891c7f16,0x101c871c,0x2a0e110e,0xe016a511,0x9c16a423,0xd11acf09,0x1b22141a,0x61a0b1f,0x8e143912,0x961b4316,0xa91b5b21,0x1a0aad0a,0xff164022,0x42240223,0x4232c16,0x58216224,0xb521601b,0x3a232f05,0x6193b23,0x53193c08,0x520e540e,0xa22e60e,0x1b14351d,0x169e12,0x6915f123,0x56166616,0x3d115511,0xc117920e,0x3704d004,0x4c240a16,0x9015f112,0xdd15f223,0x31144222,0x23013614,0xcd042504,0x711bd15,0xaa17ab14,0x6525df17,0x66256304,0x1b164404,0x601d4423,0x1713f015,0xfe0d061e,0x770fbd0c,0x4b164514,0xa3025712,0x2106a706,0x5058f12,0x161e3b23,0x781e3a03,0x4421a81b,0xfa06730a,0xea068524,0x5b105c0f,0x8614bd10,0xa417261d,0xb017a717,0xe013e917,0xeb131524,0xb004f025,0xd624cc17,0x7b1df224,0x8f018e1e,0x2f059801,0xd71d301d,0xd820d620,0x26230f20,0xc23111d,0xa08cb1a,0x9a13671a,0x61254015,0x5d0f920f,0xeb11e20f,0x6022d715,0xd920db09,0x820fd720,0xd810460d,0x4124ae1d,0x21051506,0x55052226,0xc19111f,0x2917ad19,0x97044117,0x94137701,0x6d127401,0xe61d7c1d,0xe7145923,0x20189023,0xfe1b1f1b,0x2056811,0x6f246e12,0x20246d24,0x1702bd17,0x68014324,0xdc042401,0xdb08b119,0x8120b719,0x2b20ba1a,0x2a071e0b,0x901da70b,0xb31d9412,0x8f1e9719,0x38045b08,0x5c173717,0x131e9f18,0xd0244120,0x3e05d105,0x3f1c950f,0x5d02b70f,0x4d16e224,0x170123,0x4e05f317,0x73148512,0xdf237512,0x4b170d02,0x36127224,0xc4158e25,0x67019306,0x5206d71e,0x8010b0c,0x2318eb01,0x181f2f1f,0xcc003300,0x46115410,0xcf116f0e,0xf0c1100,0xfd17e90c,0x3d248417,0x1a1e2713,0xb3138d25,0xa4018e15,0x9f0aa20a,0x5806bf0a,0xf1030e13,0x3b146423,0x6c05ea12,0xa005d712,0xd3062601,0x94180401,0xa601a71d,0x6a237514,0x761a771d,0x4b20ad1a,0x6f0cc80f,0xe016a40f,0x62145f23,0x60145f14,0x52173a14,0x17255304,0xa51ca405,0x4104f81c,0x2017b404,0xa111a211,0xfd151e11,0x421de412,0xbe1c8d0b,0xf3222522,0xa0aa91b,0x441e1825,0xb8241602,0x8f02be14,0xf5139013,0x29145e14,0x1e05961d,0x312271d,0x7a171523,0xbf24571d,0x40135906,0xe11d081e,0xd322e222,0x6c14a105,0xf712a21d,0xc517f617,0xdb06da15,0xee054806,0xa616731c,0x6d00a300,0x80081103,0xd61f811f,0x1703a000,0xf525f00c,0x6e25e904,0x66127012,0xc5205523,0x3e08c808,0x3f0a3d0a,0x820cd40a,0xfb0cf60f,0xb10cfd0c,0xf31de00f,0xfd064a12,0xfe1c210a,0x1307160a,0xe00b2707,0xe825e425,0x6b027a04,0x66159b13,0x35083619,0x190d5908,0xd6110,0x8b15fb16,0x5c122516,0x5a059314,0xc313b006,0x34222824,0x5222722,0xa7129018,0x9d14e61d,0x8f061212,0xa412a612,0x4c24ba12,0xda24b806,0x8b0d8c0f,0xe71cf00d,0x64167b15,0x9d162c14,0x6d048305,0xf047225,0xe723b81d,0xcb060622,0x6c14e401,0x2512b424,0x9912a318,0x9b181b12,0x6222ce23,0xae082a16,0x1108281f,0x8e21ba1f,0x7a21ac07,0x9b21ad1b,0x65229c22,0x12227c1c,0x951c3a0b,0x650c0800,0x8f11fb03,0xa315ff16,0x2219661f,0xe804f208,0x7804f525,0x5c157715,0xe00d9e02,0xef0fe30f,0xb4097a20,0x2f15f61a,0xfe11fa14,0x4020301,0x301d2902,0xc3162e12,0xaa03bc03,0x12153d0b,0x32022613,0xc40c350c,0xf5010103,0x2f03cb00,0xaf02fb1e,0xe8171106,0x3605e905,0xcb0c380c,0x7f125003,0x1b241623,0x9e01130c,0x4a011303,0xb303e20c,0x92145b16,0x71127405,0xd514ac23,0xd6150612,0xc224a212,0x2b12cf1d,0x2603f401,0x2503ef01,0xf803ed01,0xf703ed03,0x32010303,0xfe013101,0x400c4103,0xea00a90c,0x83036f0b,0x7906e313,0x54014f13,0xda0c7501,0x82190607,0xdf0f6c07,0x3b0f710c,0x76b19,0x5f225d08,0x910afa22,0x33143416,0x51c1814,0xd11c270b,0xcb1a0a08,0xe708ec08,0xd508e808,0xcc03500b,0x6d20650b,0xda08fa20,0xa400dd00,0x25212603,0x2d1aed21,0x2b082c08,0x50c0108,0xa403880c,0xaa00dc03,0xdc03d803,0x4500de00,0x5e252013,0xba17ca02,0xf325f817,0xb8020b12,0x7014ab24,0xe71d7312,0xdd167b15,0xd21eb911,0xea21ec1b,0x810a8021,0xba001e0a,0x320b7110,0x79017d03,0xab161d00,0xae16ac16,0xd404d525,0x22059104,0x7b16b012,0x7a0cc60f,0x6f106e0f,0xe106010,0xe21dcd15,0xde066a12,0xff24d824,0xcf051904,0xcb210117,0x241ab31a,0x4610ed0e,0x1a113111,0xd50e180e,0xe205e08,0x81019e1a,0xe814e024,0xb919df19,0xfb25f808,0x6317bb04,0x2a231914,0x800a2416,0x621b5621,0x680e4411,0x9d13fc11,0x9e133506,0x9f136415,0xdf1e1115,0x7313e313,0x2317fa24,0x8219fa18,0x44203a1e,0x5b11610e,0x25075511,0x411c4c0b,0xad147412,0x8a0ca905,0x490f900f,0x43236b24,0xa3095624,0xc020de1a,0x11027006,0x19066703,0x29130a02,0x27022402,0x8f15c302,0x4e15b701,0x4f1f3107,0x52010c07,0x3603ec0c,0x280b061c,0x7014a61c,0x9d236612,0xb70a521b,0x440b0121,0xf91c451c,0xf50dcc10,0x240c2510,0xe303b70c,0x64162c23,0xc2146414,0x9f123b16,0xf101d201,0x2a232514,0x63232423,0xb9145d14,0xf250616,0xf913251e,0x63168d11,0x90fc505,0xef0fc70d,0x3211fa11,0x36054014,0x2e15d905,0xf4142b14,0xba01a815,0xa717f901,0x4c074e07,0x3213d207,0xf0023002,0xa16bb23,0x7e048623,0x81048525,0x67257004,0x84048625,0x87175804,0x74174f04,0x611aa425,0x8b1aa209,0xf022db16,0xdc1bc815,0xa50a961b,0x6f1c6e22,0x911ebc1c,0xb522020a,0x831c8022,0x2916bd1c,0x723161d,0xd202e417,0xa8202d05,0xd208a508,0x27130c24,0xb3241002,0xa316df05,0xa10e9f0e,0x8b01ad0e,0x7601a024,0xde244323,0x75026b02,0xa7135202,0xea00a300,0x2b0d710b,0x870d7010,0x841f851f,0x1c1eff1f,0xea09d31b,0xe8086c1f,0x1915641f,0xc924fc1e,0xca094a20,0xb819e820,0xbd08b708,0x8705fc14,0x581fa31d,0x141fa219,0x53040f04,0x57085801,0xd81fd508,0xd919d319,0x59032e19,0x11032d00,0x78121b1d,0x240b0005,0x151c231c,0xc6001d00,0x8b035810,0xa2035500,0x1180101,0x1f06b906,0x55254603,0x3910210d,0x3505990d,0x7016b512,0x66127312,0x2b145c23,0x94230c16,0x5610550f,0x581e4010,0xd06bf13,0xd8064015,0xeb13701d,0xff018406,0x591c210a,0x3801f522,0x8c063b06,0xd415df23,0x24251811,0xcc133b1e,0x63141222,0x68006716,0x90034000,0xb30e8c0e,0xff16d111,0x1a23fc23,0x9c19c220,0x923d108,0xdd143d12,0x211cb317,0x6e062c05,0x561e2015,0x3133f02,0x4e081214,0x20081019,0xa006ba03,0xef15ee15,0xc715f011,0x2c135506,0xd71dce25,0x94150f1d,0xb1137701,0xd111cf15,0xd22c315,0xba079721,0xa3019621,0x79138c15,0xf006d81e,0x53121406,0x33144f14,0xa10ba203,0x19162a0b,0xb3059c23,0xb220ea1a,0x5a16271a,0xa716b014,0x831e7115,0x4b127201,0x7d236e24,0x7106d713,0xe23b313,0xb2140f14,0xaf22b022,0xbd17bc22,0x5825fa17,0x72160f05,0x20102c05,0x5b0d6c0d,0xf01d7f24,0x80125905,0x2e172412,0x43172f17,0x3424f504,0x7813e202,0x54047404,0xa904a417,0x7c25aa25,0xb725aa17,0x59198204,0xb21fd108,0xce1dd724,0xf411b01d,0xb110f910,0xb20db30d,0x8219a40d,0xd8089a08,0x9d14c414,0x3817e801,0x6d060818,0xa700a303,0x541a1b00,0x591a1d20,0x210fe310,0x7708440d,0xf1197619,0xad04f404,0x8b01a017,0x87062624,0xee1d9f24,0xcc1f4714,0x3918f807,0x3407fe19,0x100cf019,0xe70fcc0d,0xdf237002,0x970b2b05,0x2a071e22,0x291e9e0b,0xfa0a1a0b,0x1a0a1b09,0xdc210521,0x551fa01a,0x5a1fa119,0x100d530d,0x91089b10,0x7319ba08,0x2f072b18,0xfb08f81a,0xcf1a2f08,0x26146e16,0x6d21c423,0xe71bad0a,0xec086a1f,0x4304441f,0xc2254904,0x8f20fe1a,0xf20df109,0x750df70d,0x6f244312,0xc050d1d,0xf8260905,0xd110f110,0x520a1e0d,0x130a1d1b,0x1f227e0b,0x4c09130b,0x8a1a4f1a,0xcc1a0b07,0x3b1b1b08,0xa11b1c21,0x41075121,0xac051e0a,0x9c17db1c,0x1c251224,0x5b064f1e,0x3d1de106,0xd10acd22,0x1e16dc0a,0xf1124823,0xe90aea0a,0x310b0b0a,0x4822961c,0x4922821c,0xb61c861c,0xca22b922,0xd126141c,0x67168d17,0x9811fd05,0xd90edb02,0xf507f40e,0xc81f7307,0xb205151c,0x1e16ad1c,0x3705891d,0xf11d2b12,0x71047823,0x91047404,0x540b560b,0x4925760b,0x87257717,0xd81e1a06,0x5e082413,0xb0082319,0xaa0cef0f,0x9e089b0f,0x82089c08,0x76174604,0x50175704,0xc6256917,0x2a149405,0x75127324,0x141d7223,0x471d8424,0x80154b1d,0x24154e06,0x2305a623,0xaa151323,0xd712ea13,0xf1dcd1d,0x32123915,0x4a1d2a12,0x971dbb02,0x5014fa06,0x98024b02,0xf8133513,0x78164613,0x78124414,0x5d031a02,0xdf1d9913,0x1a1da514,0xa401ad06,0xd503711d,0x610c1200,0x60136d1e,0x3a0f0b1e,0x221ccb0f,0x2711260e,0x4f1f4d0e,0x2a07d91f,0xcb05c624,0x411c8705,0x901c820b,0x8f1db524,0x8d1f9124,0x5d1f921f,0xa5082019,0x2e15301f,0x7e021715,0x4f1fc918,0x891fdb08,0x741fdd19,0x71086f08,0xff199f08,0x4419a51f,0x6b034303,0x160e1700,0xce11350e,0xd019801f,0x414411f,0xd2161016,0xa0210e1a,0x970f3307,0x930f341c,0x241a5820,0x2a139109,0x3f01d806,0x721e2613,0x7c0a1e15,0x251b4e21,0x2d0ac022,0x10143a22,0x1b144116,0x8c1a5209,0x1b208a20,0x18091709,0x15208809,0xa404eb09,0xdf04f017,0xa21aa420,0xb1b091a,0xa51b0c1b,0x5e195c1f,0x42235819,0xf902dc24,0x31249e14,0x9a1dc206,0xa812cf13,0xd71b231e,0xcb204c09,0x66204f08,0x9d1c691c,0x38063b22,0xda1dc906,0x37053522,0x310d6c05,0x7d102f10,0x7c080c1f,0xe123091f,0x5a1d2023,0x5d07351c,0xbd1d291c,0x99122c16,0x8169416,0xee151112,0xc212e412,0x8520a820,0xee12e41a,0x6824b012,0x67115a11,0xf8063d11,0xcf12e401,0x9f057b23,0x7c121716,0xd145205,0xd2260405,0x5a057525,0x3511f605,0xb523e512,0x51161316,0xc1058614,0x2b059316,0x3216c616,0xf1123912,0x9d146423,0x3d16e205,0x4f02b723,0xd722c905,0x2c242e15,0x93234e24,0x6b219221,0x751d9d1b,0x1b424,0x9021713,0xc4099313,0xd909941a,0xf5130d24,0x2402271d,0x6d24d202,0x1d153e06,0x9b038302,0x6f039a03,0x9822c616,0xe3152923,0x4613b71d,0x8815a225,0x8e0a8815,0x2421fd0a,0x880d890d,0x3912110d,0x2d22f714,0xe6063106,0xd913d801,0x624e413,0x80154e1e,0xb81dda06,0xad24bb24,0x120fab0f,0xa20a380d,0x41219e21,0xec1e1502,0x18024513,0x5f15631e,0x5a0d560d,0xf625ee0d,0xb204f304,0xb122220a,0xf71dbc0a,0xe114f814,0xe712ca01,0xce1dbd01,0x7251512,0x92069125,0x1c01ea06,0xc401e71e,0x1d01e212,0xfd06321e,0xb2139a14,0xef25ec17,0xf6249d25,0xbf069813,0x6a024a1d,0x17024d15,0x20024a25,0x6d024f1e,0xb4019f15,0x9b01d21d,0x9e259717,0x4d0b1c04,0x3e1c4c1c,0x4080219,0x68235308,0x6002dc12,0x66126723,0x7a237212,0xa9237123,0xd719d808,0xb31d8119,0x9b02ea14,0x9a0a990a,0xd30c400a,0x30016e03,0xe252f25,0x10253103,0x2a1e3e03,0x97253525,0xa30ead15,0xa7028c02,0x6f08fd1e,0xbc083d20,0x19761f,0x82032603,0x16250a15,0x2f1e181e,0xf911fa14,0x9903b511,0x8e00530b,0x5721c01b,0xe18d40a,0xbb18cb1f,0xbd125a05,0xe0019e05,0x5062314,0xc801bb06,0xcb02c314,0x1f148d02,0xe6129d06,0xe4128e14,0x38182714,0x81d9018,0xf902cd06,0xcf16fa16,0x9202d705,0xb066f14,0x9713cb13,0x4126914,0xd81d6417,0x8005c802,0xbd21ea0a,0xdc011b1b,0x50c4603,0x49100610,0x2e17ec0d,0x57061e18,0x83257c17,0xc0094104,0xd91a8520,0x621d6905,0xa1243d12,0xa1126514,0xaa1ad709,0xef02e909,0x3f14b402,0x3a0e430e,0xc11d910e,0xfa01bf01,0x5c1dea12,0x4f13bf06,0x81020f06,0x5c0e6411,0x3c23810e,0x47148223,0x3b1d841d,0x1314a323,0x90127717,0xd81f4c1e,0xbe007d07,0x8900570b,0x16078707,0x2705f922,0x591d8917,0x60246112,0xf4242224,0x1a242116,0x4d05fd24,0x8b05fd1d,0x81d4d23,0xaf19ac20,0xfa252219,0xda134602,0xdb1cec11,0xd003ee11,0x97012703,0x4b1dbb06,0x20249d02,0xfa13f61e,0x4b06a014,0x331d2c02,0x5b16be12,0x4b0e3f11,0x1106c00e,0x2253203,0xcd010901,0x76257803,0xd0047b25,0xc51df624,0xe2222013,0x521bea1b,0x5608d720,0x710cda20,0xe70f850f,0xe204ea04,0x7515bc25,0x441e6713,0x6c0bb403,0x660be100,0xc70be203,0x4d197c1f,0x4c197908,0x4e1fcc08,0x76041101,0xc50c010c,0x330c0400,0x691f7019,0xa518a71f,0x2076018,0xd41f4919,0xdb009007,0x8f03730b,0xd039003,0xed1be20c,0x3b0a9e1b,0x4d040f03,0x53015601,0x8040f01,0x8c009e0c,0x8c00a000,0x9a009e00,0x1507f01e,0x24192507,0xba07f119,0x8418c118,0xd80c1a1f,0xa803a300,0xde03a903,0x490b9900,0x4e007803,0x93194a19,0x4f1f981f,0xbd081919,0xbb0b3e22,0x10ad222,0x950ad11c,0x9419641f,0xed00f51f,0x1e00ee00,0x63159903,0x4107fc13,0x92080919,0x18079807,0x10c351f,0x550c2901,0xd31fd408,0x121ad61f,0x551ae021,0x181c1722,0xca20461c,0xed08c908,0x771ab020,0x5a087209,0x971fdb08,0xc0063213,0x7008781d,0x9b086e08,0xf0122f05,0x5709f723,0xfe18be21,0x6f08ff08,0x9f201b20,0x24202008,0xa119d420,0x871a8808,0xb120c31a,0x251b0c09,0x33203121,0xe819dd20,0xb808b919,0xf508c008,0x8d183a06,0x63056716,0xfd204105,0x8006fc06,0x69040b0c,0x380e1901,0x60113211,0xb218b307,0xc616fd18,0x62149705,0xe4205b20,0x67210108,0x5a096809,0xf10c7b01,0xb700b40b,0x100bf100,0xbc0bba01,0x9e12dd0b,0xa01f613,0x19183006,0x6b0c8518,0xb60c8401,0xf5055e23,0x1c091f11,0x44091d09,0x41f0120,0xab1eec1a,0x9e09cc18,0x1122120a,0x7c20a922,0x291a6f1a,0x25042a04,0x2c0ab60c,0xb7223e22,0xf21ab11a,0xd70a7520,0x271baf21,0x5b132a13,0x42093e15,0xbd1a8309,0x3f1a8420,0x89096109,0x291a8a1a,0x45233123,0x1f1df012,0x2130515,0x305611d,0xf320371d,0x1808b419,0x4415431e,0xe11cff02,0xf71cfd22,0xa30fa10c,0x71254b0f,0xc5047425,0xd2053d11,0xc80fb215,0x7e0cfb0f,0x3e033f01,0x48100504,0xb20d460d,0xe60ce70c,0x2421800c,0x831b570a,0x4f148614,0x8421f512,0x3a21f30a,0x6b0e350e,0xd81c0d11,0x90ada0a,0x830a270a,0xe014ab21,0xf8244d05,0xcc05c316,0x57225a05,0x121c1622,0xee0df111,0xaa02000d,0x2601ff13,0x4026225,0xf80c5703,0x7d0c5b03,0xe9167916,0xb30fb515,0xff0cff0f,0xd020c,0x9e095c0d,0xb620da1a,0x8e088d19,0x6d1e2308,0x1406a115,0x9923f223,0xf41d1205,0x27057111,0x280d7010,0x33066010,0xb024d215,0xb100690b,0x29230e0b,0x6f16b81d,0xd0170612,0x7724e605,0x24154906,0x520601a,0x701e4509,0x131e4102,0x611030e,0xe91b2911,0x671b2609,0x1c182724,0x8201c506,0x1617f124,0xed12e715,0xe81dd012,0xb113a312,0xf304f617,0x3d1d3404,0xd116d91d,0x9120a23,0x3602e212,0x8a05d024,0x96198719,0xfe08c207,0xa61a0019,0xa71ca21c,0x51091c1c,0xaa208d1a,0xa91cad1c,0x740a491c,0xd1b5e1b,0xfe13e31e,0xfc098d1d,0xdc20fe20,0xa120df20,0x6300271a,0x5610b10b,0x571c1622,0x561c5922,0xa61c571c,0x1526171c,0xf604fe26,0xe425f725,0xe5142f11,0xef15f611,0x1915f811,0x18066802,0x2925f102,0xe117b317,0x9f03a300,0x6b16cb03,0x66163614,0x2d10c70b,0xc2053a00,0x17239222,0x9e201a20,0x8f053a08,0xe722c223,0x6422bf1c,0x48100416,0xa70d3e0d,0xe615ea23,0xe725eb15,0xe725e625,0xe617ae25,0x4e044225,0x55254d25,0x1f217c21,0x5f08240a,0xfe1fa819,0x21c910e,0xaa200a0f,0x64088919,0x41032102,0x64174325,0x51174225,0x65256125,0x261af404,0x1b1af321,0xd916b216,0x301b2f23,0xd21481b,0x161be022,0x81159c22,0x3b028202,0x81c9d0f,0xd31ccc0f,0xc80f3b1c,0x5a055e23,0xff0efd05,0x761c8e0e,0x49256e25,0x49257717,0x45257317,0xeb214d21,0x78047f09,0x55047b25,0x7f257a17,0x1ce104,0x23ae1d,0xe724e81e,0x5a048224,0x59175917,0x86175a17,0x1bd004,0xd421fe22,0xd51d6a05,0x6c05d305,0x6c14a01d,0x7324501d,0x81177123,0x7425a417,0x6a05dd1d,0x7914a123,0x9b245012,0x4e10d810,0xaf04a20b,0x7f25a004,0xb50cb90f,0xa817850c,0xb7178604,0xcd179125,0x4106f804,0x7b06f618,0x7c0b7d0b,0xf414310b,0x971d0522,0xf214e712,0xe313d717,0x36023b24,0xa301a118,0x9e221201,0x2a22210a,0x2c11910e,0xf3111d0e,0x7f0df40d,0x7d0d7c0d,0xa30cf70d,0x20fa70f,0xfa050105,0xb610cd25,0xf80b6910,0x991e2213,0x33001813,0xba003200,0x36069c1d,0xd17fb13,0x58061906,0x8f1e3f13,0xe709e915,0xf21b3009,0x4a23a41c,0x4d031f05,0x16027f13,0x65024513,0xf106d815,0xbb06f006,0x7806e015,0x13255013,0x4e173005,0xc8197a08,0x305ae1f,0x25240524,0xa506a61e,0xef166c06,0xdb15d815,0x1b261a17,0xd325100f,0x1a063612,0x6d0e2d11,0xa505aa0e,0x305b105,0x4906b203,0x4a07d413,0xf519021f,0xcf1f3d18,0x4818a907,0x8d19001f,0xbb22bd1c,0xf21fee22,0x9a19981f,0x9b07f01e,0x6423581e,0xbe235b23,0x270abb0a,0x80080e22,0x1408101f,0x821f8308,0x8011f,0x6b193e08,0x6c1fe808,0xf201f608,0x6712dc01,0x1a101d0d,0x901a5710,0x99092020,0x74087619,0xac059408,0x2c16ab16,0xf9251f1e,0x9c0cf102,0x2b0f980f,0xf1c341c,0xed110b0b,0x8611160d,0x51161305,0xf1112f14,0xf110ee10,0x29206708,0x120731a,0x821a3a09,0x7e090a20,0xe4206220,0x8708e508,0x881c8b1c,0x93091f1c,0xe11a5920,0x1d08e308,0x4e1a4d1a,0xf609121a,0x83098420,0x1b160d09,0x81143f12,0x3b20bb1a,0x5820d709,0xd41a9b09,0xe1dcd1d,0x970f9515,0x560faf0f,0x96095a09,0xf2124e1a,0xb3124d02,0x9a1bee0a,0xd41a950a,0xf71a9620,0x881d0111,0xe6239516,0x2711e711,0x281af121,0xfc212b21,0xe61af61a,0x6819931f,0x2a09de08,0x681b2b1b,0xa3177617,0x86070004,0xb07011e,0x300a0e0a,0x941b8f0a,0xbb21c11b,0xc1196d1f,0x8421e91f,0xcf21f80a,0x311ed21e,0xc100f0b,0x80100d10,0x9318f207,0xae11ac07,0xd60deb11,0xdb220c1b,0x5d0b0a1b,0x8b1c331c,0x861eb022,0x82227f22,0xd61c4822,0xb705271c,0x761e9311,0xcb22ad1c,0x3422a41e,0x912c00b,0x7a24a515,0xe123a416,0x7f1bbe11,0x4e21ec0a,0x4227f18,0x10d4207,0xf00d4110,0xba21241a,0x29162f09,0x50231716,0x7305e624,0x60125923,0x95128024,0xbd05bc14,0x9910d105,0xbb0b8410,0x5122416,0xc924df23,0x3022d13,0x2f11fa1d,0x16161714,0xca23d01d,0x7723bf23,0x50225505,0x76224b22,0x75244323,0x17238012,0x6c02b824,0x6b047a04,0x36042304,0xe1016701,0xd40b4910,0xee206410,0xce1a2c08,0x6222cb22,0xb15db16,0x3e238e14,0x2f140a05,0xa011d905,0x2d054423,0xff05ab23,0x45166e23,0x19054405,0x8706791e,0x7d14c906,0xe2181524,0x7e22d711,0x1b17e516,0x2601c006,0xde1f221f,0x9f0e9718,0xf00e980e,0x3122dd11,0xd8167b14,0x1142722,0xf122dc1d,0x4e1c1315,0x861c0e22,0xfb15fc16,0x2e0abc11,0x8f222f22,0xea169216,0x1c111822,0x24111911,0x58021415,0x2807f706,0xe41f6619,0x7011f522,0x6f243405,0x823581d,0xb71dd602,0x67056324,0x77169105,0x3c135602,0x405731e,0x4b057412,0x83000000,0xfc05570b,0x12168615,0xbe05711d,0x9016b523,0xf23e605,0xd013cf13,0xa6004613,0x16000f10,0x8523cf12,0xb716be05,0xdf1d2416,0x1e13f401,0x16062c1e,0x991e2025,0xc6133506,0x3025612,0x76025814,0x320d740d,0x2151810,0xd41dd102,0x48057923,0x56059214,0x2523e214,0x71e3703,0xc2130d03,0xea130713,0xae23e923,0x6711fd16,0xac169105,0x5c162116,0x1f075b14,0x1a227e0b,0x871e191e,0x73207a06,0x5b207020,0x5922f205,0x1e1d2c05,0x75146723,0xb243b23,0xd0106317,0x5a0d170f,0x140d630d,0x371fa910,0xda196b08,0xab08ae19,0xdd01ef08,0x8812d901,0x5c1ff019,0x181c9b08,0x901ca50f,0x11ac809,0x59045f21,0x11046025,0x42241224,0xc21a8812,0xda1a8720,0x7c124616,0xae059614,0x77145e16,0x70147f14,0xe817a914,0x6d25f025,0xf020e909,0xea168f20,0x491d0a22,0xd5124712,0x6702d016,0xa717031d,0xd9043403,0x7406a700,0xb9025715,0xed212609,0x5a184d1a,0xf21c5d1c,0x4914231c,0x4d235305,0x58170123,0xa41d6f23,0xda126114,0xdd1d6f05,0xf001d901,0x62235a01,0xdf02e023,0xc924da24,0xf815fe13,0x48143315,0x6811620e,0x831d5011,0xc2172323,0x8b1d4d14,0x88241823,0xce172812,0xcf03d303,0xe1249c03,0xef251201,0xf117b304,0x9b0dfa04,0x1e119e11,0x1f261c05,0x7f117c05,0x6d117a11,0x92159402,0x92026d15,0x95030b15,0x960ecb02,0x781d7902,0xf705eb12,0x3207f807,0xc118f219,0x99188907,0xc70f331c,0xb50ebf1c,0xb802b402,0xb502ae0e,0x25246c02,0xd212b318,0xc6060e14,0x5213fb01,0xf9025102,0xf41df11d,0xf613901d,0x64249614,0xa4126823,0x91b0714,0x8c09c51b,0x910ddd0e,0x1d103b0e,0x94103c0d,0xa4251124,0x3f1b2224,0x731b2321,0x66237512,0x730d7623,0x31102f0d,0x6603c60c,0x5e0ccb00,0x5d0f600f,0x9f14ad23,0x1f03e914,0xa103eb01,0x6c245014,0xdd14ae1d,0x70171102,0x7221d40a,0xe1df50a,0x3024d913,0x3b022415,0xfc079e15,0x9f193907,0xe9110f11,0xb714ea0d,0xa014e801,0x361f2b0a,0xf61e0d1b,0x55155424,0x9f0ca20f,0x3f0d300c,0x250d3e0d,0xe250613,0xf407f525,0x8f1f6f07,0xe61b8d1b,0xe123de18,0x7a162023,0xa6071e19,0x2916221e,0x9916bd1d,0xcf1d5d14,0xd20dd005,0xee10f50d,0xf024eb24,0xd619d324,0x1e202c19,0xa118931f,0x3312d107,0x961dc406,0xdd21451e,0xc01db809,0xa5251112,0x78054a23,0xd6241016,0xe0147e16,0x9f156901,0x9f062c06,0x991e2006,0xc6156b06,0x6b139812,0x6913f815,0x9f13fb15,0x6b024c06,0x23069915,0xfa112611,0x9e1e240d,0x18133b06,0xfd06a325,0x77157813,0xb6025c15,0x6d006e0b,0x9a092a00,0x401a5d20,0x8d0b3f0b,0x1312fd1c,0x421de402,0x430bb003,0xc7179703,0xe517a625,0xef1e7206,0xd415bf06,0xb506e606,0x96018c15,0x78019701,0x76137713,0x70007100,0x8915b800,0xbb137601,0xe01e6815,0xf204e506,0xaa17b004,0x8b200a19,0xf201508,0x2c19bd20,0x30212f21,0x50081a21,0x3a18dd19,0xf51e8220,0x10015706,0xca041604,0x48188b1e,0xd9039f07,0x6003ab00,0xa718a807,0x591d0118,0x98168505,0x2218de07,0xf11f3a1f,0xfe07c118,0xf607c918,0xd3109c18,0x3f003d10,0x461f3e1f,0x4007cb1f,0xd018ff1f,0xf707ca07,0xc518fd18,0xc918f307,0xc60c0600,0x81164400,0x4b059e14,0x4a25e504,0x9107e104,0x57074418,0x52041201,0xf907cd01,0x5b07d118,0x8c0f8f0f,0xe307e20f,0x1507e107,0xea191c19,0x151f5807,0x5907ea19,0x1d19161f,0x5f1f6119,0xe9191d1f,0x60191b07,0xe07db1f,0xf11f5219,0x251f6507,0xe81f5d19,0x35192107,0x85094009,0xe2105f1a,0xd40f920c,0xd1223d0a,0x6f192c0a,0x7107a51f,0x4d117411,0xdc1cf40e,0x3623a611,0x411f7719,0x17118f19,0x6a11350e,0x850a281b,0x3715081b,0x14150c06,0x15040f04,0x5320d304,0x9020d509,0xc9144616,0x7a07fd23,0x2207641f,0x3605a423,0x9b107716,0xf710760c,0x2a24d91d,0xc080d02,0x7f080b08,0x7d05b414,0x41243f14,0xa705e024,0xa40e0b11,0x9325bb11,0x1004c817,0xaf07b21b,0x4e081807,0x8c081219,0x8519491f,0x1501561f,0x3f040f04,0xcd022615,0x1c03a613,0x5d01140c,0x20081f19,0xa001ed08,0x2b1dc124,0x63196108,0x49139519,0x25133402,0x950e730e,0xe000de11,0x7f016c00,0x24218021,0x5302510a,0x20069f02,0x1d0a210a,0x26021c0a,0xc0022502,0x191ec21e,0x6412721f,0xfc14a423,0x2f0c3000,0x911fda0c,0x53079607,0x801fcf08,0x6e08fe19,0xa7206f18,0x1d03aa03,0x321a770c,0x591a7609,0xd9198308,0x5a08651f,0x81087208,0xc51ebd22,0x4b1ec01e,0x6720ff18,0x8b085f08,0xe0aee19,0x1b0ae21c,0x4d155713,0x9b089115,0x201808,0xad19a720,0x30083119,0x20196d08,0xb10c210c,0xea0da003,0x8d0fed0f,0xb2200708,0x95089719,0x91089308,0xb20ce70f,0xea036b0c,0xf00c5103,0xb408cd1e,0xcb19cd18,0x9e19cc19,0x130cf10f,0x2c1cc00d,0xc10f2d0f,0xfc25f417,0xf5128b25,0xe3247b17,0x70237505,0xc006f512,0x62203a08,0x5e08e520,0x88175220,0xbd258104,0xbf08ba08,0x91114b08,0xbd0e2c11,0x7209001e,0xa808a520,0xd2202a08,0xa1a0908,0x4b18d21a,0x5120c809,0x960f4a0f,0x4225040c,0x2b250302,0x2f08f807,0x541a1d1a,0x7808e020,0xff07fd1f,0xf11a3207,0x9e08f508,0x8d0b8e10,0xfa08f30b,0x2a08f508,0x75074607,0x230c6920,0x1a042504,0x7c14b617,0x5c20d812,0xba20da09,0x3b1a8120,0xe9096d09,0xa020ed20,0xcf1ceb23,0x91a5622,0x23208009,0x670c6904,0x46207f01,0x81090d1a,0x85090b20,0xe11a1e07,0x1208db08,0xd21a151a,0x8e1a5908,0xcb091f20,0xcc21f91b,0x481d731b,0x90127024,0x9806df01,0x4c1a4f01,0xcb09091a,0x81a0d08,0x1c0df11a,0x7911390e,0x581e5002,0x1d091f1e,0x201a5909,0x581a5c09,0x390c321a,0x8b0c350c,0x9803270c,0xaa1a800b,0x9e1a6e20,0xec12dd13,0xe822e501,0x9022e922,0x80209220,0x6013ee20,0x30069115,0x30146e23,0x81198316,0xe91fd919,0xe80eea0e,0xf51ab10e,0x6220f220,0x28153906,0x4e1a9402,0x331a8d09,0xa11ecf0b,0xf1f0422,0x770a9b22,0x76047b25,0x2b012525,0xd6012601,0xcc130a24,0xd608a924,0xef202c19,0x950cf00c,0xce204a0f,0x58204d08,0x1b058a14,0x980f9d1d,0x710f9c0f,0xb61a7a18,0x96086e20,0xa7087819,0xa80fa90f,0x7b0c950f,0x50007a00,0x52105110,0xee1ab710,0xbc1ab520,0x760c9b0d,0xc21fc410,0x408471f,0x30fb70d,0xf510fc0d,0x4810f610,0x470d9b10,0xa41adb10,0xce09a809,0x87258825,0x7009025,0x2100930c,0xe00fe30d,0xc6028c0f,0x210ea50e,0x5c092409,0x309a51a,0xaa210521,0xab10670d,0x90ffa0d,0xe40d3b10,0x371b2e09,0x27082821,0xa01fab08,0x131ad209,0x63101321,0xef10180d,0x5a16f616,0x640d591d,0x610d610d,0x5e0d530d,0x7c0cad0d,0xdc0f6710,0x1a21191a,0xaa09b621,0xd0211c09,0x5f21ce21,0x9a1e230a,0x18150006,0x161ade21,0xb211ef21,0xeb22e023,0xd90da90f,0x401e840f,0x5184518,0x71af51b,0xfc13f41b,0x24069314,0x3821391b,0x7d048021,0xa4175725,0x72244314,0xf1102512,0x1a0fd10f,0x42213a1b,0x2409ba21,0x2f212321,0xd411270e,0x461fc60d,0x59084708,0x4e095809,0xcb0b7a09,0x76001a10,0x77071b07,0x2109d707,0xb209d61b,0x1b08ac08,0xa3106120,0xa20da10d,0xa710660d,0x1f14610d,0x74122816,0x2a1b2718,0xfb22e61b,0x5315ff11,0xac22911c,0xc409dc1e,0xdc09db1e,0x2a1b2b09,0xb40c991b,0x940f540d,0x960dec11,0x2e09d211,0x4409e11b,0xf056d14,0x4f214e12,0x7d1b3321,0x791ab609,0xee1b3509,0xa4215109,0x880cde0c,0x6721890f,0x62218721,0x3924d806,0xac060315,0xff17e412,0xac1d3823,0x3c215c05,0x4209f91b,0xfb1d351d,0x861f8823,0x5a08161f,0x42241f12,0xb20ce523,0x5e0ce60c,0x69235723,0xa10a3b12,0x4d0a4121,0x891b8c0a,0x380a3a1b,0xaa1b6e0a,0xae1b7f21,0x751a7321,0x6c1a711a,0x29218f21,0x5c09210a,0x4609201a,0x901b5b1b,0x8909ff21,0xc31b6121,0xf0123816,0x1f0b7823,0x6410bd00,0x621ba10a,0x9e23d40a,0x561d1816,0x45104410,0xa7004710,0x4e004a10,0x4d0b8b0b,0x7b04320b,0xbc0c9001,0xd50a911e,0xb922001b,0x8b0a8d1e,0xd40a900a,0x2308251b,0x92195b08,0x931bd90a,0x7d0bc10a,0x58043a01,0x93220518,0xd812610a,0x50235d02,0x800b181c,0x4b1c4822,0x59189f1c,0x901e8c18,0x5f09fb1e,0x3309fd21,0x340ac322,0xb6171b22,0xca02ef14,0xcd223a0a,0xb60ec10a,0xd80eae02,0xdc11080d,0xb31bb10d,0xff1bb21b,0xfe0b010a,0x270b040a,0x20b051c,0x681c2a0b,0x56209422,0x6720921a,0xc0021f06,0xc9095813,0xb520cf20,0x5a015900,0x8b1c3d01,0x77228622,0x7609321a,0x18221e1a,0x7f221c22,0x4228222,0x82070407,0xba1c4922,0xc722f123,0x3a163523,0x2324041d,0xef230b1d,0xf50e8323,0x560dc60d,0x3b0e4111,0xb20be10e,0xf036600,0xf2055916,0x9a071322,0x6d1c6222,0xcb22a41c,0xd5210e1e,0x9807a018,0xa2075218,0x5a229c22,0x671c6507,0x681eec07,0xd067b07,0xdf06881e,0xde08601f,0x281f671f,0xb51f6a19,0xc61c000a,0xed24ec0a,0xba13da24,0x841ef818,0x2f19db1f,0x8108ad20,0xb618691c,0xc2201a22,0x89089c19,0x870b411c,0x2500211c,0xc9002800,0x650b6e10,0xfe0d0a0b,0xb80fa50c,0xb71c8822,0x8e0b4f22,0x95109e0b,0x93000b0b,0x580b920b,0x610b560b,0x430b830b,0xe70b600b,0x890b6110,0x4c00030b,0x9800370b,0x5e001010,0xac0bc800,0x8c03130b,0x1f159115,0xc80f340f,0x3b1b1a1c,0x5a1b1b21,0x56005900,0xc160b00,0xbb144216,0xc0222d0a,0x7f0e680a,0x420e6511,0x5821801b,0x99008e1b,0x3000c300,0x981d281d,0x720e3005,0xa3117811,0x24054b23,0xdf03a814,0x6900de00,0x6d14a212,0x250c881d,0xf10c870c,0xe717ae25,0x3500f525,0x9d0c280c,0xdb011103,0x1303a600,0xe9039e01,0x2917b125,0xae03af17,0x520b9a03,0x3f010b0c,0x5703f80c,0x1f03f70c,0x330d7e10,0x7b015a10,0xc100b50c,0xf908bb08,0xe6021319,0xc41dee1d,0x3300ff03,0x890c8a0c,0x5d042e0c,0x6514ad23,0xb70cb323,0x710720c,0xbe0fbc0d,0xa80ce40f,0x7f0ce30c,0x501fca18,0x9d25a608,0x5e259a25,0xd20cd10f,0x580f890c,0xcb0cd70f,0x790f600c,0x630e5c0f,0xab11820e,0x8f0ea702,0xee0cf202,0x4b0f9c0c,0xf240a12,0x941aab24,0x64099009,0x823b505,0x380b371d,0xf11c760b,0xf021ed21,0x48214c21,0xf009ec21,0x830a8221,0x9610520a,0xd710510d,0xa001d601,0x4209f201,0x4c21621b,0x4b0ced10,0xe520d610,0x3320e220,0xeb13d802,0xcf085224,0x408531f,0x9715f71d,0x20d4416,0xbe100310,0x7510740c,0x6e1bab10,0xa41bac0a,0xa51cf423,0xe917b123,0x8b17af25,0xd202a802,0xdc1ef90e,0xf619861f,0x170d620f,0x6b154210,0xd1022106,0xff147316,0x2017d123,0x6261626,0xd417c726,0x7090625,0x74207609,0x750db910,0x780dba10,0x20107710,0x6a0ff210,0x771c750d,0xf51e931c,0xbb00ed00,0xe50e7203,0x2711980d,0x73102f10,0x4904410d,0xf217ad25,0xe725f125,0x61e1125,0x5f068d25,0x231d5024,0xb804fa17,0xdb04fb17,0x7303740b,0x351c3f03,0x660b1b1c,0x651b5f21,0x77112321,0x280e060e,0x1d14041e,0x2c056225,0x4a142d14,0x480ced10,0x9a0d9b10,0x500ced0d,0xec1b3221,0x341f3809,0x4320c51f,0x51105410,0x760e7810,0xfe11430e,0xf40d060c,0x461e480c,0x1402721e,0x5e0d6110,0x1908da0d,0x5308dd1a,0x55105410,0x310b0910,0x630b0d1c,0x61106210,0x6f0da010,0xc106d10,0x41183f07,0x231cc418,0x770f240f,0x3807fb1f,0xd423a819,0x411cf522,0x731fc008,0x82250f19,0x86068d06,0x3e0d850d,0x8715fa10,0x8011fb16,0x3a0f750d,0xef24b210,0xdb151612,0xd91a9f20,0xbc01cc20,0xeb062412,0x510df30d,0x3c193f11,0x97194019,0x990f960f,0xac114c0f,0x1a114911,0x6d13ca02,0x8d1b6406,0x1b0a4921,0x22022302,0xb6020702,0xc224ad24,0xca25be04,0x2909c004,0x6b1aee21,0x3a0e4011,0xe502e00e,0x3b236702,0x2e0d2d0d,0xd808590d,0x19831f,0xff11250e,0x21e260d,0xed133f14,0xdf17aa04,0xa817a925,0xaf17af17,0xb225e617,0x38113217,0xdd113311,0x31141d1c,0x3e1afc05,0x6b1eb907,0x97071e1c,0x6b192722,0x771f691f,0xd20d6f0d,0x3143f0f,0x9120016,0xfc1d071d,0x4f22f911,0x20144e14,0x5a16a81d,0x9c177914,0x204db17,0x3088920,0x3210520,0x92210621,0x24123105,0x6514641d,0x61059d14,0xb023b105,0x590e6823,0x950e650e,0x1e081c1f,0xb90a5108,0xf30a5221,0x4a12f212,0x23119e06,0x8f0dfa11,0x90092020,0x8b1f8320,0xf2194b1f,0xa904e504,0x34111517,0x1b11100e,0x8c1d5924,0xcf204c14,0x9f204e08,0xfe0fa50f,0x19050c0c,0xa217d226,0x9c22fe16,0x1916ab16,0xe0161a16,0xc110f0d,0xb6222c11,0x921bf10a,0x4c1f7c1f,0x69046519,0x90256004,0xe60de411,0x3d0e7b0d,0x1113f11,0x50a26,0x49244326,0xa7244b24,0xb017b217,0x90119817,0xe11b30e,0x780de011,0xcc118e0e,0xa711b10d,0xb112a11,0xad0e290e,0x2e0e8511,0x2b155d13,0x40025a13,0xc71e2813,0x9b0e9515,0xcb09ca0e,0xe31b0f09,0x6156113,0xb4252325,0x41134a06,0x45115f0e,0x3a14650e,0x5a059d12,0x4f023515,0xbc1bbf15,0x651eb91e,0x99229818,0xb4003122,0x4f10b610,0x7511a011,0xdc12d80e,0xb301f212,0xb20cb40d,0x2f19db0d,0xaf08ad20,0xe50aae0a,0xce1bc51b,0xfe1bc61b,0x3805ac23,0x6609641d,0xe720d409,0xe91fe31e,0xcf20281e,0xa319de19,0xb80ca20c,0xd018b80d,0x8e20ce20,0x8f0f001c,0xef1c0f1c,0x4522490a,0x72084408,0x5308de19,0x871a1d20,0x970d860d,0xf713a00d,0x16020901,0x34130802,0xb71c8515,0xce1c8322,0xef0e840d,0x97211910,0xae09a309,0x640caf0d,0x4a172b0f,0xd1044725,0xb13f013,0x900e8d25,0x1811b30e,0x5424f613,0x9615ca15,0xbb0e940e,0xdd02b10e,0x3f045f0e,0xb1045e17,0xda0ed90e,0xc300230e,0x4f002910,0xd61a1320,0x58175608,0xe8048417,0xbf16681c,0x4a172b22,0xc9254c25,0xb00b6e10,0x901c9110,0x211cc11c,0xc2002800,0x5b173810,0x62045c04,0x9d243923,0x8620bf14,0x2d09431a,0x120f130f,0x801fe60f,0xc9087f08,0x111cbb1c,0x92145626,0x36122b05,0xb3051a0f,0xe50f611c,0xfb0ce80c,0xc916fa16,0xc804fa05,0xa517b817,0xb426101c,0x25145c1c,0x1816ac12,0xe011cf14,0x221ca41c,0x54260d0f,0x6d22721c,0xbc13bd22,0xcc12ff13,0x3c0f061c,0x681e4c0f,0x3c027913,0xcc1cd40f,0xb12351c,0xc416b523,0xe81ac31a,0x71257520,0x79047804,0x76256e04,0x48258025,0x92175117,0x6b1b6c21,0xae0e861b,0x1b0dc311,0x2111430e,0x8f25ad0e,0x325bd17,0x80e0c0e,0x42241f0e,0x71125a23,0x320d730d,0xc065710,0xd4151d02,0xd819d719,0x8f119b19,0xa10e8b0e,0x1b114011,0x1f17da0e,0x8d261b05,0x9309511a,0x9b258c1a,0x9259e04,0xf406721e,0x6d243324,0x9017091d,0x911fe619,0x7d1e8119,0xf1183d1e,0xee0f9c0c,0xba05970c,0xe816b116,0x1d211e1a,0xc0197721,0x4a19761f,0x910080d,0x7810bc10,0xe510c40b,0x74244002,0x771fc01d,0xe31fc419,0xb323e223,0xe3056916,0xaf23b722,0x2070622,0xbe05941b,0xa5123316,0xdc0cdd0c,0x1722860c,0xbb1c410b,0x3b0b3e22,0x9a0a510b,0x6121c81b,0xb830b,0xb9059800,0xab122d16,0x4e05e014,0x1517da24,0x1261726,0xbf13b813,0x2a154024,0x69067102,0x7709301a,0x3f24411a,0xb5243524,0x8e0e8d11,0x6b24490e,0xd6236523,0xea064b1d,0x73170c12,0xff12701d,0x10f20d,0x9b06150e,0xaa248c01,0x5c0ce10c,0xed180f0f,0x8f01c214,0xa612ab12,0x52152812,0x91130206,0x4c1f921f,0x3d251919,0x133c13,0x5100a504,0x760dbc0c,0x320dba10,0xa21c640b,0x25232e22,0xe2163823,0x8b1ef11f,0x520db907,0xd10f4f0f,0x3905a616,0x7f1c8416,0x371c871c,0xdc18a31f,0xfe19391e,0xa7079e07,0xa41fa81f,0xf916d41f,0xc2147623,0xc61fc71f,0x921461f,0x86070a07,0x2f1a721a,0x90201009,0xc5089208,0x1d19cf19,0x16110720,0xec0e150e,0xc03d403,0xa70d0f01,0xb00fa40f,0x9212009,0x3319db1b,0xe1203120,0xe021121a,0x371a331a,0xc4073c1a,0xc509931a,0xad22ab1a,0xfa1c7622,0x2e08fb08,0x34206d1a,0x261a311a,0xad145e12,0x87016f16,0x6e04290c,0x8020bb1a,0x3f093a1a,0xee094109,0xf525ea25,0x15205004,0x691a121a,0x3009291a,0x9116a809,0xbb16b105,0xba10730d,0x5c0cea0d,0x40ce10f,0xc11b011b,0x461f8209,0x1b1f8319,0x5308d91a,0xe10caa20,0x840cab0c,0xc80f6f0f,0x5310100c,0x450fe10d,0x5e252013,0xd905aa02,0xfd124416,0xb10fb30c,0x924bd0f,0x81151c02,0x401c861c,0x7e1b7b0b,0x9c1b811b,0xb51cc31c,0x4615951c,0x602721e,0xf40d070d,0x2b0dc60c,0xb0114e0e,0x950ecc0e,0xdc236802,0xda05e005,0xd724e313,0x541b4e13,0xbd0a1e1b,0x8720f81a,0x8c20fb09,0xea1ac009,0x1ac820,0x3a0d1a21,0xf00fe50d,0x110d1e0f,0xd006640d,0x21824,0x51036b04,0xc019a20c,0x1e1ffc19,0x5d06ac25,0x74197302,0x3197019,0x40d4810,0xe051c10,0xf517cb26,0x490d4a0f,0xb40dc00d,0xa5107b0d,0x6410630d,0x51100b10,0x1310110d,0x11210f21,0x290d6621,0xcf0d650d,0xd21bee0a,0xf70d6a0a,0x1a10200f,0x6415651e,0x9204715,0x2708ca1a,0x5d1a1f1a,0x6b0d1e20,0xaf0fdc0d,0xa91ae209,0x291aec09,0xe91af821,0xe425de04,0x70102725,0x290d6e0d,0xb91aec21,0x280e0009,0x5e112711,0xf200b803,0xc711d40b,0x6122c611,0x2916bd14,0xfe0d0616,0x4f0fbd0c,0x8e0d8d10,0xc609900d,0x511ac71a,0x98105010,0x561fd20d,0xb1fd108,0x6c0b0e0b,0x9c0fd822,0xe30d190d,0x9e10590f,0x7d19a90d,0x3c19a808,0x241b2521,0x861bc71b,0xae21fa0a,0xb00caf0d,0x7610770c,0xce0dba10,0x38223c0a,0x720db222,0xbd107110,0xb0d0a0f,0xfb1eaa0d,0x9c1a3008,0xbb0c9d0c,0x780dba0d,0xc00dbc10,0x7a10790d,0x3e216010,0x521b411b,0x7505ea24,0x19089d23,0xed200b20,0x4004f425,0x751c7404,0x422ac1c,0x2a0a290a,0x218b0a,0xa41b620a,0xa110600d,0xe11e010d,0x9c1e0813,0x511a921a,0x8d1b8909,0x7f1b901b,0xb50f680f,0x6408020c,0x9e1f7a07,0xc61b9c1b,0xa021ca21,0xd621c91b,0x9f0b5010,0xa61c7210,0x3a1c7322,0x980b4a00,0x62196110,0xd71fac19,0xea237505,0x4d208a05,0xe01a501a,0xe425e325,0xda13b225,0x7a151d1d,0x5c127b12,0x3216cc24,0x1b240016,0x1d20541a,0x80161c1a,0x8058c05,0x3b22411c,0x92058d22,0xff059505,0x210afe0a,0x7a1c401c,0xdd227722,0xde0de20d,0x7e080c0d,0xdd080d1f,0xdb20d920,0xa70fa920,0x180d110f,0xa60f050f,0x9307561c,0xac1ed322,0x2e025f06,0xa60e811e,0x850df811,0x8121b41b,0x120de51b,0x1d0dee11,0x791c3a1c,0x9016b522,0xf423e605,0x4e18b81e,0xab05950a,0xc058d16,0x46208309,0xd411281a,0x3a11270d,0x53155602,0x35113415,0x490e1611,0x1c03e503,0xb51ddb01,0x60151b13,0x6d0e4f11,0x5d0e3111,0x39115e11,0x5b1c5807,0x3924f91c,0xb3132002,0xf1172917,0x1c1a5104,0x7c091f09,0x7b14a21d,0x1a101d1d,0x3e101b10,0x710dd911,0x270e090e,0xc511260e,0xc30e860d,0x590bf10d,0x4015a01,0xcd099621,0xb80d011a,0xa80fb90f,0xf80cf60f,0xe11460c,0x3c114311,0x3b0d4b0d,0x630d5c0d,0x1210180d,0xc0dc10e,0xe411900e,0x9f11110d,0xe90de311,0xf90e880d,0x370dd210,0x39133a13,0xe50e7213,0x850e8d0d,0xad11470e,0xed104811,0x9010470c,0x92104f0d,0x930d940d,0x230d920d,0x2a146316,0x68106c16,0x48105c10,0x851f8b19,0x550cec1f,0xcc105610,0x12239711,0xb81cc614,0x621cb91c,0x2908ec20,0xb722b41a,0x461c8322,0xa31cef05,0x390e3d23,0xda11580e,0xb10eb20e,0xb60d000e,0xbb0fb20f,0x10144323,0x615f412,0x64142e1d,0x5b007f00,0x2c056200,0xc4142d14,0x7719761f,0x7715e619,0xb823a716,0x28136c06,0x13121f25,0x53144f12,0x4f121f14,0x29145e14,0x7b12271d,0x1723d005,0x1a121416,0x84161916,0x31d1e05,0x1722fc23,0xa423d016,0x20058e16,0x2023e112,0x3d12291d,0x2e0ffa0d,0x2a23060d,0xa9230512,0x5f08261f,0x420d9819,0x8c0d9610,0x411c821c,0xc30a5c0b,0xc60a5d21,0x870a811b,0x3105920a,0xc1122b12,0x2b230c16,0x950b9616,0x9a10e30b,0x62231005,0xf2231414,0xde123423,0x24262217,0x2c19d005,0x1c19d620,0x1f163623,0x57027923,0x2a253b1e,0x35123d23,0x2c1a7216,0x43209e09,0xd5232816,0x5021c316,0xee1b960a,0xa316731c,0x7f090b23,0xe6090a20,0xe71d4d16,0x691d7116,0x56236823,0xd1085908,0xbc050a1f,0xf325f717,0xdf142e15,0xc916f622,0xc0148f02,0x40233f02,0x4d235323,0x8a126023,0x8d209320,0x9f1d6f20,0x79170d14,0x7712781d,0x5014a112,0x5e126a24,0x76226422,0x70170b22,0x2c02df12,0xe6061f18,0xae001314,0xcb10b710,0x40fa40f,0x9912c10d,0x5138f24,0x30d4810,0x3f0e1d10,0x5a113b11,0x9220941a,0x28024020,0xeb155b13,0xdd24ef24,0xe9068a13,0x89250213,0x4c187418,0x94201318,0xe3201508,0xe413df13,0xb2164513,0x2240f05,0x7a1f7908,0x41cca1f,0xe21c930f,0xe244405,0xaf08b117,0xe0202f08,0x16156901,0xfb156925,0x4b251613,0x37156c02,0xf106d813,0xb138a06,0xf112d615,0xec254e01,0x50254d04,0xb100c0d,0xc9021f10,0x6a022113,0x72239d16,0xe7068a16,0xed250013,0x2922d615,0xdf211914,0x1309a71a,0x7e227f0b,0x8f119a22,0x6f119b0e,0x4a156a15,0x10220e02,0x320aa622,0xf811ef14,0x6144115,0xcd15f41d,0xf3152c24,0x3021451d,0x8109de07,0x88144e05,0x8c148705,0x5148a14,0x919b720,0xd01c0020,0x980ace0a,0x2516b905,0xf2239116,0x5c239015,0x93162b14,0x2b16be05,0x5a1d2b12,0x7b008201,0xa616d10c,0x4523fb05,0xa6232316,0x4232d05,0xff240524,0xd216d123,0x37124c16,0x8c146f16,0x57241b14,0xc724ce1d,0x3c153213,0xce022215,0xc7170513,0x5405c805,0x5824221d,0x2f1f7112,0xee192b19,0xae1aaf20,0xc116721a,0x70239d22,0xdf127312,0xac0fad02,0xe0fab0f,0xe5244417,0x770e5102,0xaf117611,0x1f161f16,0x7e0a251d,0x461b5521,0x920d9510,0x3a21540d,0x7920c51b,0x7a0dbe10,0x1f152910,0x413b715,0x1f065613,0x34143215,0xbb11f814,0x9c10760d,0x2113c80c,0x2c066b02,0x38153702,0xbc050b15,0x2a050a17,0xa716d123,0xed02c505,0xb5242416,0xe503b203,0x9202d600,0x62242814,0xaa05df23,0x86250d14,0x9d068906,0x67150413,0x371e2515,0xfd133913,0xb6055e15,0x100de723,0x990ddf11,0x9e1b9c1b,0x9616281b,0x7616bd05,0x78068706,0xc031306,0xe030d03,0x1e1ddd15,0xb4259115,0x2e259304,0xbc161f12,0xfb04fe16,0x6817be25,0xff0d630d,0xaa16a50f,0xa916a416,0xbe1d2b16,0xc023e416,0x9c162c16,0x31231905,0x56115b16,0x50e590e,0x4164224,0x3916cd24,0xa414721d,0xdc00dd03,0x9416ac00,0xe7230d05,0xe925f025,0x4f02ce25,0x5d02d423,0x2a16fc12,0x1112d924,0xc524a525,0xbf098a1a,0xb1e0a1a,0xdb06751e,0x25193518,0x1e23041f,0x22058f16,0xa8059112,0xb816bd16,0xe21d2916,0x1c16a923,0xe916bd1d,0x64162223,0xc223e314,0xb01ebb16,0xbe22b122,0xa916b716,0xe423e316,0xef16c223,0xb211e411,0x2017dd23,0xd70f2526,0x551fd61f,0x14011508,0xf0c4c01,0x3c23fa24,0x3505af1d,0x4b05a51d,0x7e058014,0xf2239005,0x29168815,0x5d1ddf15,0x560cec06,0xf4104510,0x2c22291b,0x48242222,0xd502c723,0x6a1d7005,0x7c047a1d,0xb257704,0xc02d917,0x141d7917,0x1805eb17,0xa517cd0f,0x250e731c,0x60119d0e,0x52255904,0x4e174104,0x61256004,0x54255125,0xa21d7c25,0x7f1d7b14,0x79047e04,0x59048125,0x41048517,0x421b1a21,0x11162621,0x65059723,0x97259017,0xac1f2804,0xc70aab0a,0xa525d925,0xe425e017,0x7b25de25,0x5a048425,0xac0fab17,0xa0cf60f,0x6193f08,0x6a17bf08,0x61174704,0x430e4811,0x791a3c0e,0x1a207820,0x210f2905,0xcc08a305,0x2218df19,0x23262305,0x24262105,0xda262326,0xa0259c04,0xbc049104,0xa004c504,0xda179d04,0x85169f04,0x5323cf05,0x55245424,0x1c1ca924,0x20f1b0f,0x40240124,0x8d1e0d16,0x5d155406,0xb31c5a1c,0x97103f1e,0x6910400d,0x42116511,0xd7161d0e,0xaf161923,0xb21c7422,0x2b0e2422,0x1e10ed0e,0x8f16b416,0x101d6b05,0x2805d917,0x3714c606,0xc71a0518,0xae08c508,0x781d7914,0x96089a12,0xaa201608,0x690da90d,0x35215210,0x7321511b,0x89042d01,0x6d18b80c,0xc618bd07,0x421f4307,0x607da1f,0x2118c519,0x710f711,0x2f192b0e,0x28192919,0x661f6719,0xec18ea1f,0x2907bd18,0x2b192a19,0x7a07fd19,0x2d1f791f,0x33153215,0x341f1815,0x1307fe19,0x4b240e24,0xda051e12,0x9c0f1a17,0x4306d115,0xa51f3025,0xe607f307,0xe5068313,0x11194413,0x11081008,0x46194408,0xf522f119,0x87055a11,0x8819471f,0x891f881f,0xef1f8a1f,0x60156213,0x12132615,0x11132c1e,0x4e194a08,0x74207519,0x8a206e20,0x7916a705,0xbb120405,0x2a121023,0x3808b320,0x901fe620,0x82086d19,0xf0138913,0x1d19ce06,0x6b19cf20,0xf6022006,0xea19e31d,0x8f19eb19,0x8a185d0a,0xe819e00a,0x9d19e919,0x9e099f09,0xe119e909,0xb419e019,0x8f230616,0xa10f1905,0xe81ca91c,0x190dee0d,0xdd00de0e,0x9e03a800,0xe30d1f0d,0x331a310f,0xfb1a301a,0x2f1a3008,0xf601d81a,0x7a062a14,0x7720ed09,0x79090509,0x22090620,0x29187007,0x261af40b,0xf21af321,0x9b119a0d,0x3a0af811,0x9222791c,0x221f9907,0x6230a1f,0x1058f23,0x3a074309,0x4131e1a,0x8d13201e,0xe1a5120,0xc21b0e09,0x9609c509,0x57095a1a,0xb90aba09,0x671be50a,0xa236012,0xa09c617,0x9f1b0d1b,0xd920dd1a,0x89208b20,0xec091920,0x370f690f,0x3d0e7b10,0xde0e1e11,0xd8235802,0x2a1b2c02,0x291b2b1b,0x2c16bd1d,0x500df412,0xbb0df911,0x7b0b3e22,0x3509f118,0x609f51b,0xad200520,0x211b5219,0xf30a1d0a,0xf21aec1a,0x7f0e691a,0x350e6811,0x420ad822,0x2208a222,0x8a1f0b20,0xfe0a8b18,0xad0a6d21,0x8b21c41b,0xd41bd30a,0xd90a921b,0x8a1bd81b,0x1e1ebd22,0x1815350b,0x8d021902,0x801c4618,0xac1f9422,0xde19511f,0xbe0ebd0e,0x10aff0e,0x6822610b,0x25226722,0x6d15331c,0xec066c06,0x6c236005,0xdb243812,0x40243b02,0x7a1c441c,0x471c5022,0x4b1c461c,0x87228b1c,0x961c5e22,0x650b2122,0xd7008c03,0x931dc70b,0x92133106,0x5c1c5922,0x3420ae1c,0x7220a809,0x731c711c,0x5a1ecf1c,0x950b3107,0xaf0f970f,0x6c1c670f,0x6a1c641c,0x691ed71c,0xa722b01c,0x3e073f22,0x7b07370b,0x231a5b18,0x52209209,0x32075007,0x3e08c10b,0xc308bb20,0xc219c119,0x1a0f1919,0x351cac26,0x160f200f,0xc20fc305,0x670fc10f,0x4c1d5f1d,0x9d0f3a23,0x2d0f3b1c,0x3609021a,0x2d112c1a,0x38112a11,0xba051b0f,0xc1cc71c,0xab260b26,0x191ca71c,0x1a1ca70f,0x351ca60f,0x2505160f,0x140f170f,0x3b1caf05,0xcc0f080f,0xfb1c421c,0x7b0afc0a,0xd154c06,0x8500891e,0xaf035500,0xae17b317,0xeb17a717,0x617b025,0x3220422,0x3d0d8422,0xb70d1c10,0xeb1bf10a,0x8420821b,0x86090a20,0xb011fb16,0x120a9823,0x5c0a9722,0xd51a9b09,0xb4161e20,0x6058f16,0x8f230423,0x2816b905,0xbd16231d,0x29059616,0x3514781d,0x461d3316,0xb1124416,0x22228e05,0x750b230b,0xd7237823,0x33232305,0x601d3423,0x78126c23,0xe30be11d,0x6303670b,0xd105ce1d,0xf924dc02,0x6913ca1d,0x3502fe02,0x8c121d1e,0x34161c05,0x66093509,0xbf083b1a,0x70196d1f,0x72127312,0xa812df1d,0x7d063c24,0xf1245912,0xff15fa05,0x2222e615,0x5d091d09,0x251f181a,0x2919341f,0xdf1de315,0xd21df11d,0x4f066124,0x361e5613,0x81d1b1e,0x16058a23,0x97092609,0xe0e0620,0x150e090e,0x7910c600,0x191e140b,0x4602431e,0xec24ed02,0x4609dd24,0xe01b2c21,0x25156901,0x5510211e,0xbf0d2f0d,0x25024a1d,0x7c08131e,0x7c1f7f1f,0xfd1e3715,0xf9039b02,0xfa0bf70b,0x86128505,0xc60cc323,0x6b0f730c,0x6a1f681f,0x3822aa1f,0x130b340b,0xfe1f181f,0xde205707,0x1208df08,0xec14af17,0xdb205805,0x801a1d08,0xb7026502,0x7c1a3f06,0x561a4220,0x57078419,0x6d102919,0x130fde0d,0x8f088c20,0x6c106b1e,0x37105e10,0x251c221c,0x7907901c,0x5d081c07,0x5e0fea10,0x7713d510,0x15023206,0x9a231023,0xf11fe205,0xda1f051e,0x961f121f,0x2f1fb307,0xdb082a08,0x3d22460a,0x66126722,0x82236012,0x6218611a,0xd31ad418,0xdb18e11a,0x31203319,0x29246c20,0x1112b418,0x1005d917,0x98209117,0x69209920,0x2246a24,0x5720d406,0xfa1a9609,0xfb168715,0xb6187d11,0xce20101e,0xd019801f,0x14057d1f,0x8e161316,0xbc1aba1e,0x5c06ac1a,0x3206b002,0xc31bfa22,0x2521220a,0x741af421,0x3e1b721b,0x250e270a,0x1b0e220e,0x57101610,0x750e520d,0xb00e5311,0xeb20ed1a,0x4b1a8920,0x9520c609,0x651fae1f,0x130d5619,0xcb101810,0x7d0b7a10,0x931fea0b,0x9f1fe619,0x10099d09,0x7e1d3f1f,0x5233714,0x951bd822,0x5821621e,0xf01b411b,0x800dc410,0x881c4e0e,0x400b1e18,0x33223222,0xd0223522,0xa522290a,0x5320e41a,0x72159509,0x68159002,0x66226722,0x53144722,0xdb144f14,0x321b3109,0x9416ac1b,0x59162105,0x831fd808,0x2117e419,0xc5246b18,0x1922801e,0x480d470b,0x230ffa0d,0xe71d2a16,0x6a075223,0x560b321c,0xf5215a21,0x1015111e,0x9f24ab15,0x62229a22,0x18078f1c,0x7807fe1f,0x760b381c,0xb31eaf1c,0xac22bb22,0x51cfc23,0x3c17371d,0x1b255a17,0xc124d102,0x5f055213,0x8d11f805,0xfa22e016,0x15144711,0x57121e12,0x1c08dc20,0xda23db1a,0x2b1d2123,0x28025b1e,0x29230e1e,0xde23071d,0x44164616,0xce23fb12,0x5605a716,0xcd035703,0x4b12470b,0xbb16de12,0xba05fa14,0xa9236114,0x8243e14,0x3e236117,0x441a8624,0x6d1a7209,0xa914a512,0x5f171414,0xe714a323,0xea13d824,0xce124924,0xee147f16,0x5402ed02,0x2904f324,0xb117b117,0xac259204,0x4e1a1104,0x9108cf20,0x6315fe16,0x53091e05,0xb09161a,0xc123c016,0xeb021023,0x921de51d,0xe316b305,0x201d1d23,0xe4122612,0xc216c023,0xab04ed16,0x817aa17,0x9016931d,0xa505af16,0x305a805,0xfd11240e,0xe40ca60d,0xa30f8e0c,0x7a111b11,0xe915070e,0x76150301,0x3f207720,0xf71bd71a,0xeb220921,0xea086c1f,0xb9122d1f,0xd41d2216,0x21acc1a,0xa21d7c21,0x1d1d7b14,0x59092209,0xb0b951a,0x3c10e100,0x2d231612,0x2b07411d,0x7c1af721,0x670cbc10,0x2809da0f,0x37188e1b,0xb11b710a,0x61056621,0xd222e605,0x271df924,0xbd120502,0x75160523,0x4b1d761d,0x33101224,0xdb0fef0d,0xfb055222,0x6f163815,0x37163714,0x4a251713,0xea1dc602,0x7c12cb01,0x1713d406,0xc618ef13,0x7d1be618,0x8021af1b,0x1b1eb51b,0xb81c580b,0x1101dc1d,0xe7095a25,0xbd20e120,0xea23e916,0x2d1e3623,0xf3134f1e,0x8e11b110,0xe817a911,0x1804f225,0x9155f1e,0x74185125,0x2a22b21c,0x6820651a,0xf90e8820,0x4310fc10,0xf7055914,0x7f1ab911,0x7f186009,0x60185f09,0x180dd118,0x700e1a0e,0xf000ea01,0xdb211700,0x1e09a61a,0x1a1d1c12,0x351b3816,0x6f07621f,0x2046d04,0x48014926,0x3b0c7301,0xbb203c20,0xcb121208,0x8c161523,0x2d030a15,0x41126f25,0xda05e024,0xd9075c1e,0x3122471e,0x4d223222,0xd91c4f1c,0xce22131e,0x700a9f18,0x44208207,0x4407721a,0xe4207d1a,0xaf03ad00,0x46007303,0x67007203,0x27128e24,0xb81a7d18,0xf418801e,0xa1199e1f,0x2d0a9f19,0x531be31f,0xc102c212,0xfc203902,0xe5204319,0xdc0c4403,0xda03db03,0x1a03dc00,0x1c0c4601,0xd403fe0c,0x490c5303,0xd014a01,0xe3007304,0x71011903,0x51005201,0x58237e00,0x12127d24,0xcb066f13,0x7c084d13,0x49073619,0xb31e3513,0x6a16c606,0xf2231a14,0x1a16c623,0x820eea23,0x720ee810,0x73236c1d,0xed254812,0x2a04f325,0x2b06c325,0xb2034025,0xd0006a0b,0xdb14c301,0xf4125014,0xcf237f05,0xa1231d16,0x1418d005,0xc31be922,0x14053811,0x30ad514,0x4e0acb1c,0x910d8c10,0x901e640d,0xfd15ba01,0x67168e11,0x2d231005,0x411d2516,0xeb234223,0x88128616,0x89128723,0x71e8b1e,0x2d07a907,0xda1f2c1f,0x4f1ed91e,0x1200111c,0x73000700,0xf5087008,0xad00121f,0xb7001310,0xac1ef918,0xa6123e18,0xc6164505,0xc7079d19,0xff06fe19,0x93184a06,0x4c0a5407,0x54078e0a,0xb81f150a,0xb70fb60f,0xa918520f,0xd218ac18,0x2190307,0xa013fd19,0x9313fa06,0x9204cf17,0x1f08d317,0x1908e81a,0x54208809,0x8d1e391a,0xbd030a15,0xa252a06,0x5a030b03,0xd6252d13,0x39150612,0x4c114a06,0xf1114711,0x10056f22,0xe09c61d,0xd109b71b,0x7a1d0e23,0xa2013705,0xec013800,0x4516eb16,0xd012e723,0x13a31d,0xaa12ea02,0x8e207f13,0x65092220,0x6b24da06,0xe813ad06,0x1324ac12,0xab064215,0xcc24d524,0x5f1def24,0x5d215e21,0x3b0a3c21,0xd70a410a,0xb099e1a,0x5013fa21,0x6a1e2102,0x20240014,0x8e159823,0xbf026f15,0x7210380c,0x88092b0f,0xc1209c20,0x5305b902,0x801ff612,0xc1086908,0x5305b902,0x3f02c012,0x82234023,0x3920b818,0xa3033709,0x34032e0b,0x39188207,0xd424cf09,0x2c066224,0x3705951d,0x6e135e12,0x14253602,0xc3252b03,0x26134806,0x106b103,0xff03850c,0x4b07d20b,0x6607d31f,0x861e5502,0xc1f0015,0x8f19431f,0x921fe919,0xc9153519,0x4022113,0x620c5a01,0x4a04490c,0x4925e504,0xe50c4503,0x8099703,0x3b099921,0x411c0822,0x5b209a22,0x331a5d1a,0x3207520b,0xe211aa0b,0x8311320d,0x7098409,0x93098f07,0x301aca09,0x29235624,0x5d024124,0x81155e15,0x3d183b1e,0x3d1e8118,0x8e1e8018,0xce18b81a,0x4c071420,0x8098818,0xdc166114,0xd718021c,0x15129e14,0xa182d18,0x65028006,0x4306b702,0x321b3121,0xf124621b,0xe9234716,0x1a128c14,0xe168918,0x1b23b314,0xda051d26,0xce18e517,0x1e21081a,0x1d260a0f,0xcc260c0f,0x240f2117,0x260f230f,0xb71cb60f,0xef0f211c,0xd612d701,0x8e165812,0x100ee710,0xb41cb326,0xa425cf1c,0x1a25da17,0x1726160f,0xd1261726,0xb3261517,0xb41cae1c,0x2017cd1c,0x7826100f,0x7a047f25,0x8c25bc25,0xc104c117,0xb6178d04,0x10224a25,0xbf224b1c,0xbe04c104,0xbb04c004,0xa904c825,0xcc129401,0xaa02a914,0xab0ed302,0xeb129401,0xb060c17,0x9601ab06,0xc1d9612,0xb4158806,0xd3030806,0x98129814,0x9817ed1d,0x8901b01d,0xad183324,0x15135f1d,0x6a135e03,0x6c10cf0b,0x30d450b,0x51100410,0x7a21791b,0x3407fc21,0x66193619,0x1f136713,0xab18e303,0x861f2b07,0x451f0d07,0x7521a21a,0xf41edb1b,0x5c144111,0x7e154a05,0xad067c06,0xae00e203,0x9322af03,0x931c751e,0x7522ad1e,0x1402b81c,0x521d4724,0xa0109d0b,0x33059410,0x3016bf12,0x8f22c205,0x93166723,0x311c223,0x5a243917,0xc815d623,0x36239622,0xc911ca05,0xe5238d22,0x1b15d91c,0x1c213b1b,0x261cf51b,0x6c15ec14,0xd9238d16,0xd811d515,0xa8141911,0xea182001,0x7f1eca17,0x9d197d19,0x73110b11,0x340ac40e,0xc90ac322,0xe01b0f09,0x22e718,0xeb120116,0x4319ea19,0x590d9f20,0xc10da710,0x3f234102,0xb7178b23,0x4204c725,0xc3234323,0x43125702,0x421d5123,0x5a02c323,0xc9125612,0x7716ef02,0x8d258e17,0x541d5525,0xc702c91d,0x54234802,0xf305741d,0x4b160422,0x6b0e400e,0xe406ee11,0x6a1e6f06,0x480e4911,0x4605de0e,0xbf244124,0x10130124,0x8d1b6402,0x6b0a4921,0x7417091d,0x80134e12,0xbe06b702,0x3806c006,0xc9022d1e,0xa024db13,0xcd0ec502,0x8814c10e,0x8a14c212,0xc3148c14,0x761e6605,0x1815ad13,0xce01aa18,0x9a247514,0x4901b412,0xc6189307,0xd3129a1e,0xcd17e714,0xaa14ce14,0xed129501,0xee01b017,0x7d05e902,0xc060b23,0x951d9606,0x96060c12,0xf1181d12,0x9414d517,0xb01ab12,0x48125806,0xf4242223,0x58242016,0x53241e12,0x1c241d1d,0x47241d24,0xf1181c23,0xf1247717,0xf01d5216,0x4e02c516,0xd516eb1d,0x622041e,0x3823ce22,0x21143b14,0x14011f01,0x9113ec0c,0x67024106,0x6f0ba100,0x46135d00,0xf81e451e,0x1f14da17,0x6406cb18,0x1806c613,0x60027c03,0xd1054313,0x39167111,0x381e4b25,0x99027b25,0x62253915,0x63159b13,0x9b253a13,0x971e4d15,0xcc159c15,0x3b159806,0xc406c425,0x7a253b06,0x98027902,0x1a027415,0x97159c03,0x68243a15,0xa202dc1d,0x4a189b18,0xa218a318,0x8075d18,0xa61ebb07,0x7d0a221e,0x440a1f21,0x5f189407,0xa3189107,0x911ecb22,0x341ecb18,0xf70dfa0b,0x50df20d,0x6110c11,0x4f187e11,0xda0b3b08,0xa24a612,0xa21fb015,0x2a08291f,0x22071e0b,0xd1039607,0x9300d000,0x95039403,0x950c0e03,0x39039103,0x431cd20f,0x72102d0f,0x7b0ff70d,0x39043301,0xc300f504,0x310c2903,0x30082208,0xaa0f8c08,0xe60f5b0c,0xa15ff22,0xa025c41d,0xce04dd17,0x3f1ebb1f,0xca1ba207,0x111ba321,0x6c072120,0x89199618,0xf0085b19,0xc119ef19,0x4012e08,0x4f03f701,0x42174325,0xb91bf517,0x540abe0a,0x17205320,0xcf03231a,0xf1254306,0x6708f208,0x3109ca20,0x361b1021,0x8e043304,0x7c04380c,0x36043701,0x33043904,0x5b18ec04,0x4007bd21,0x440d430d,0xf60d5b0d,0xa210170f,0xa90a701b,0x1f09b81b,0x4309b721,0xfb134413,0x28212e02,0x3209be21,0x2f1b311b,0xf21af81b,0xc71aec1a,0x6d13ca13,0x94108706,0xcf109310,0xb238e15,0x4220c314,0xdb20a609,0x621aa220,0xa1029709,0xcc0ec402,0x88183301,0xdf21da24,0x791bbd21,0x7821df0a,0xb406b90a,0x5a134d06,0x42241f12,0xa21d7c23,0x7b1d7b14,0xb50a7a0a,0x8618bc1b,0x5421b91b,0x1507930a,0x800a4c1f,0xca079307,0xcb1b8e18,0xa20aa418,0x230a9f0a,0xac16ab12,0x5a1c5d16,0x4d18781c,0x5a187818,0xce22951c,0xe1184d1e,0xb813011d,0x1118e313,0x320a9822,0x84166905,0xe307a916,0xe30a9818,0xa918ee1b,0x1e205f07,0x1620561a,0x13071707,0x120b6207,0xdf0b5000,0x9e166115,0xa014f323,0xa617e31d,0xa300a400,0xb10bf900,0x8f0bf700,0x9900b100,0x990bf600,0xb600b100,0x5d255017,0xc40c2a04,0xef0c3503,0x57012503,0x4009340c,0x291a7809,0x5d0c5e01,0x6a00a10c,0x73036903,0x49014a0c,0x440c7f01,0x82016401,0x8101380c,0x3704350c,0xc4017c04,0x2921441e,0xb0d251b,0x330fcf10,0x1d07b71f,0x1d1f3322,0x25221b22,0x2723101d,0x4118421d,0xda06f618,0xe70be60b,0x120c480b,0x8c00bd01,0xa40ea502,0x55174f0e,0x6e257425,0xcb181724,0x8000c214,0xb00bf503,0x3710380d,0xa1b1c10,0xab1b1b1f,0x4e05e014,0x8d1d1c24,0x61161a05,0xf816f324,0x1f232105,0x27163623,0x4f10ec0e,0x621fe411,0xf4085a08,0xe215e11c,0xba0bf015,0xf10c7a00,0xaf12eb12,0x3d0a3f24,0x64219f0a,0x300c660c,0xb40f6a01,0x370c990d,0xc809c721,0xa00f1309,0x250f121c,0x818c720,0x1226141f,0x2517d026,0x1217cd0f,0x10051626,0xb517cd26,0xb31cb41c,0xb81cb91c,0x1e0f1d1c,0x260f240f,0x271cb00f,0x771cb90f,0x511c741c,0xf411af18,0xc711b010,0x501ec91e,0xbd083e1c,0xc708421f,0x801c501e,0xad14a022,0xb4235d14,0x8c11b311,0x5508d90e,0xf208c820,0x2716f516,0xdb029b24,0xfb02980e,0x96108a0e,0x34172a10,0x34172b17,0x58045417,0x58045825,0x64045425,0x67252002,0x56045602,0x31045525,0x30044c17,0xd323f817,0x8016cc16,0x50023606,0x460f4515,0x941cce0f,0xd8062a24,0x5c05c701,0x1c05c81d,0x67181406,0x4f076d24,0xc20a4e0a,0x851f0721,0x8a078707,0x94077507,0x691ce023,0xc511c416,0x6915d211,0xc31ce016,0xc1140f22,0x91140d11,0xbf239023,0xc3166a22,0x6b15d411,0xc515d416,0xc1cde22,0xe166a14,0xf23c716,0x311ce412,0xdf239805,0xdc11c01c,0x9911cb1c,0xc422ca23,0xc2239622,0x62239911,0x62052e16,0x922cb16,0x62052e14,0x4d140916,0xdf054b05,0x38241311,0xa316e023,0x7a0df611,0xb906510e,0xfd01fc13,0x360ac61b,0x3a163d22,0x8d16d116,0x1c1a5220,0x4e0d8b09,0x8b0d8f10,0x51042e0c,0x971c6500,0xe10b2e22,0xa012e212,0xa2128a13,0xe617f612,0xe414a902,0xe102d905,0xc7170c02,0xbd140722,0x1ac711,0x3a1ac821,0x231dfa15,0x3a162c02,0xe7059d12,0x1807eb07,0x77219d19,0x5b1b6921,0xa5195c19,0x1f01641f,0x8f0c7e04,0x91104e0d,0xdd11dc0d,0xe615e311,0x35166b11,0x67218605,0x34216521,0x3315f814,0x6a096914,0x6f097209,0x6e097009,0x74049209,0x2d049917,0x4c10090d,0x23097f0d,0xfa186007,0xf907491a,0xa610641a,0xd10da50d,0x9c247614,0xd41d9c12,0x74247414,0x9b247624,0x9f185c12,0xab07211e,0x7209691a,0xf4180a09,0xd6180b14,0xf317f214,0x460b8417,0xd60b8a00,0xd717f414,0x7914d714,0xa9129e24,0xa1088419,0x1a061519,0x56019c18,0xa021a307,0x150a1621,0xd0a170a,0x710a0b0a,0x100a0d21,0x100a0e0a,0x7421730a,0x11217321,0x1121740a,0x80a120a,0x9d199f0a,0x91ff319,0xa1b4a0a,0x6721650a,0x1809fe21,0x4d21770a,0x6909ff1b,0x710a0021,0x4a216f21,0xf60ef51b,0xa90ee40e,0xcd060901,0xca1b8e14,0x7a1b9218,0x891b7b1b,0xdb11041e,0x5e11070d,0x5624c906,0x921b9306,0x3318ca1b,0x950a080a,0xb818bc21,0x8018b521,0x860a4c07,0x1210ab1b,0xcf0b5000,0xaf21d121,0xaa1ba91b,0x90a691b,0x3a1e3b03,0x450b481e,0x6800010b,0x3510cc0b,0x9f000600,0xa4000710,0x4e109b10,0x9d00090b,0xcb10a010,0xbf1b8e18,0xae03af21,0x370b9a03,0x78043604,0xde0af101,0xf40ae90a,0xe40af30a,0x5502c90a,0xa02c71d,0xe80ade1c,0x48224e0a,0x4f1c0e22,0x51224e22,0xf31d0622,0x5a142e15,0xf31c0c22,0xf31c0c0a,0xec225a0a,0xba059723,0x93259116,0x325a525,0x2622680b,0x9c22b41c,0x7407201e,0xa822a91c,0x4d0f4c22,0xc20c9d0f,0x8e06f415,0xc80c9a13,0xa0cc10c,0xd208d01a,0x1a22d008,0x1a11cc14,0x9c253c03,0x2203e915,0xd90c5301,0xc000f303,0x1143403,0x38160012,0xf010fa11,0xa50da610,0x5e10640d,0x83055705,0x7111ff16,0x2f169705,0x291d2e16,0x4a0e8a16,0xad11b211,0x6f106d0d,0xd715d510,0x5211ca15,0xf316f11d,0xfa131716,0xf224dd1d,0xb004f004,0x4c172c17,0xd8254b25,0x751d6a05,0x9a1dc023,0xa249e13,0x1f24f31e,0x84158513,0x3b252515,0x3a0f480f,0x33260c0f,0x4917cc0f,0x39027b1e,0xc306f325,0x515b715,0x42155b25,0x6155002,0x4b15511e,0x1c1dff15,0xac1b7913,0xfe075e21,0x6009fd09,0xf71db921,0x39249914,0x1b133a13,0x71025525,0x52025315,0x5106a602,0x18227b02,0x2122730b,0x1f054414,0xcf0e7f14,0x9311210d,0x8c1d0816,0x5e23ed16,0x36162414,0x341b690a,0xe204eb0a,0xde04ea25,0xd22c11c,0x87241b14,0x4216eb14,0x1b148823,0xb6006e24,0xa70bb80b,0x4402e514,0x46239a24,0x7a167305,0x220b0122,0x6919591c,0x361fb519,0x37113d11,0x6b06bb11,0xb006bc02,0xbe12aa1d,0xa912ad01,0x2f247f12,0x9621830a,0x7f14dd21,0xb012b124,0xbd01cf1d,0x2414dd12,0x8912b218,0x61dae24,0xcf180618,0xb21daf01,0xc5182612,0x26248201,0x8214e218,0xe3248324,0xbe029f14,0xdf029e0e,0xfc022d24,0xce12bb1d,0xe12bc01,0x270d260d,0xea1da90d,0xca14e814,0xea14eb01,0xcc183314,0xa8062401,0xaa12a912,0x42148812,0xf5148923,0xb401d217,0x71db11d,0xb101d118,0xec14ef1d,0xd3183714,0xb4062801,0x2601d31d,0xab061a06,0xa4248b12,0xbc061912,0x23248001,0xba1da418,0xa501bc01,0xdf14de12,0xc401c414,0x80182201,0x191da424,0xba12a606,0xf9182001,0x14e517,0xfb248518,0xfa182317,0xa6248617,0xc814e51d,0x8614e701,0x2f01c824,0x1d12b818,0xff180006,0x2f180217,0x1d1da818,0x2a12b506,0xaf061b18,0xaf01c212,0x81182512,0xe714e924,0x811daa14,0xe012b424,0x2701c314,0x8212b006,0xb905fb23,0x71f0d14,0x651b931f,0x92146414,0x88155405,0x6f131806,0x8d026e02,0x9d1e4e15,0x9031d15,0x8d030a03,0x54134715,0x9252c13,0x6e158d03,0x12141302,0xcc239714,0xca24cb24,0x6b252124,0x6b135202,0x75031602,0x3913ff02,0x26251b13,0xb1030003,0x7e1e6d06,0xc815b413,0xca053411,0xc1140f22,0xc415d322,0xd211c511,0xc115d315,0x9e166a22,0xa2259d25,0x8d11bf04,0xd8166c23,0xbf052e15,0xd811cb11,0x2522ca15,0xbc1b0c21,0x91d1309,0x23c016,0x3411f816,0x160aee14,0x3322561c,0x67120314,0x2f15f805,0x2e11f914,0x5422721c,0x261a421c,0x5420611a,0x78175517,0x35024604,0xf155a02,0xe408e51a,0x27152608,0xc1021115,0xbf14be14,0x881c4a14,0x790b1918,0x5314a323,0xaa1be924,0x41f1a0a,0xf18ce1f,0x7b0ceb22,0x790f7a0f,0x7b04a617,0xa304a817,0xa8177925,0xab177d04,0x7b04a804,0x6125a217,0x89049f17,0x8a25b325,0x87178917,0x8925b317,0xc104bf17,0xad04be04,0x8704b925,0x8d25bc17,0x3804c117,0x811eb707,0xb6178d18,0x5f04c125,0x6004d817,0x4506d217,0xda1e5725,0xaa25db25,0xdd17aa17,0x3f17a004,0xac13a706,0x18051924,0xca260f05,0x7051217,0x1117c926,0x8260805,0x12260726,0x19261905,0x1217d205,0x817c905,0x60148b26,0xba234d1d,0xf51cb417,0xb40f2025,0x251cb31c,0x1617cd0f,0x15261405,0x1617d026,0xd1261526,0x81172217,0xea1d8323,0xe611930d,0x7900b20d,0xc037a03,0x4c24b902,0x4820c506,0xc094509,0xf412d215,0x2d226901,0x520b231c,0x2e115811,0xed1cee0e,0xbc05451c,0xbb01cc12,0xbb01ce12,0x1f01cd12,0x7c01cd18,0xaa1db024,0xb001be12,0xbd01cf1d,0xcf180612,0x891daf01,0x61dae24,0x89183318,0xff248824,0xfe18cf07,0x94230d07,0xb616bf05,0xc225af25,0x1c079404,0xe607961f,0xa7142215,0xbc21bd23,0x1e21c221,0x6008ea1a,0x341a7920,0x8c093907,0x881f851f,0xc01a881f,0xcd1a8720,0x411cd01c,0x9c06ca0f,0x3d031a15,0x6620bd09,0x67199218,0x2f198b08,0xa819c41f,0xa916d107,0x8b232705,0x841fce18,0x1009ca18,0x2b1b0f1b,0xa301ef06,0xa2202524,0x67078808,0x5710160d,0x6121660d,0xf9216821,0xf019f119,0xd3246819,0xed180801,0x601a2408,0xa1cbb20,0xd3261126,0xd6121d23,0x70206623,0xd1206d20,0x8b008a0b,0x851a3700,0x40073c18,0xb305b21d,0x35254205,0x4d25441e,0x70187908,0x7e20b618,0x9f07281a,0xa01a5f20,0x6c1e9120,0x101e9820,0x2c0f130f,0x471c3c0f,0x2d0b161c,0x1513ec13,0xcc077c1e,0x31a9120,0x4a06fe07,0xe7123218,0x481d2a23,0xb01b660a,0x3a1b1b21,0x561b1a21,0x3b0e4111,0xb4070f0e,0xbf1ee818,0xc0075f07,0x5518c807,0x4e1fa019,0x65031c1e,0xe616a713,0x4d059023,0x18120a14,0x6f1b7112,0xaf1b701b,0x651ba71b,0xa51bb60a,0xc41ba41b,0xc3065a24,0xdf1bb924,0x790a7921,0xde0a7a0a,0x85055921,0x781d0116,0xdf0a790a,0xe71bbb21,0x9b21f921,0x9d049e17,0x1c113c04,0x950e200e,0xce228e22,0x7721d91e,0x4d21d30a,0x5a1eb318,0xb00a481c,0xc61b7d21,0xe60aab18,0xf1f0f1b,0xde1f0422,0xea0ae90a,0x410abf0a,0xbf1c0422,0xd71c040a,0xa0af60a,0x9c0ae81c,0x190ca00d,0x130aee0d,0x701c0e1c,0xa422ae1c,0x96113422,0x2f111911,0x76116f0e,0x21cc211,0x2f1c910f,0x901cc10f,0xf806fa1c,0xfb06f906,0xfa1e8306,0x2b11ba06,0x9311bb05,0xc2239223,0xd0166522,0xb2238e15,0xfa056023,0xe0166911,0x7522c31c,0xe6245112,0xd169805,0x5016901d,0xf05ee24,0x9010de17,0x1110df0b,0x400b8e00,0x3d0b8e00,0x390b8d00,0x86003c00,0x8500380b,0xd80b830b,0x8c004310,0xec14ab0b,0x97245b02,0x4b10e50b,0x3e10dc00,0x80004100,0xae25a617,0x1405f604,0xc71d4924,0xb9238202,0xed111314,0xbd0def10,0xb3178704,0x1e0af925,0x890af81c,0xb304bd17,0x8804bb25,0xae25ae17,0xbb25b225,0xae04ba04,0x76178825,0x4e01510c,0x4e015201,0x6d0c7801,0x6e060824,0xd9139224,0xa01d801,0x130cf30d,0xd622d90d,0xeb142922,0xb309b41a,0x25122009,0xb316241d,0xeb09b209,0xe4198c1a,0x2e198f1f,0x6c238d05,0xec182e16,0x6e247017,0x601e6113,0x2006121e,0x3814e606,0x17079407,0x1e1f5a1f,0x4f191f19,0x1920881a,0x60abb09,0x7a22441c,0xa1b1b07,0x3b0acd1f,0x45223a22,0x5a115f0e,0x31102611,0x50102f10,0xd0d4f0d,0x2c1cf910,0x9122da14,0x6a1e941e,0x18213820,0xb6213d1b,0xd19b819,0xac0cd207,0xa20f5e0c,0xcb0e9b0e,0x7c20d115,0x1e1a9107,0xa01f2320,0x917c308,0x8c256d05,0x83118111,0x7e072811,0xb920b71a,0x611a8220,0xec205e18,0x7e206208,0x70037103,0x5013e003,0xff13e115,0x4b1ea220,0x261a5518,0x2209709,0x113b813,0x97088f13,0x74200c1e,0x6f1fdb08,0xfa01eb08,0x34063e01,0xdc19e120,0x3b133c19,0x1024e13,0x1ed81b,0xd81b001b,0xc01e921e,0xa2189407,0xe2214a07,0xd209e409,0xa111d222,0x34187123,0x97093807,0x2f218221,0x830a2f0a,0x11219621,0x417c905,0xdc19e526,0x5119e219,0x86122214,0x4d026305,0x6a134b13,0x3120a71a,0x2a0a2709,0x951b5b0a,0x33219b21,0x33219a0a,0x9a219b0a,0x990a3221,0xd9154a21,0x2f24e813,0x6c083908,0x8b076d19,0xb90a4f1b,0xc221de1b,0x880a4e1b,0x8b18c21b,0xb818b51b,0xb521b921,0x8618bc18,0x8018bc1b,0x6d1b8b07,0xc718b007,0x5007471e,0x9c1f2b1c,0x6e22110a,0xe80f9210,0x450d310c,0x4e104410,0x6a008003,0x441c0600,0x5b0abc22,0x78087708,0xe0224008,0x922470a,0x99099b21,0xb8134f09,0xe31e2d06,0xec224d0a,0x3816400a,0xb605ab1d,0x5c16ac16,0x42094314,0xba093e09,0x9201da1d,0x3f1e4113,0xfd02711e,0xfc010203,0xf71d3203,0x9923f323,0xe5150113,0x1911d801,0x1b239e14,0xe169612,0xe2142c16,0x621cff22,0xc81d5c1d,0xf51cfe05,0x311f211,0x6922e312,0xc116b605,0xd623df16,0xde13db13,0x18027c13,0x2c136403,0x9321920a,0xeb02c621,0xb16ed16,0x70170c17,0x480d4712,0xd10d3c0d,0x9c247614,0x74247612,0x6b14d424,0x1514c924,0x17246e18,0xba14cb18,0xa4128f01,0xb4248112,0xc214e012,0xaf12b301,0x251db212,0xaf1db306,0x81182512,0x1d180024,0xa5248506,0xbc12a412,0xc8182f01,0x221da801,0xdf01c418,0xb401d314,0xf506281d,0xb401d217,0xb114ef1d,0xeb01d11d,0x301ca14,0x740bfb18,0xad0bec03,0x730bef00,0xae0ed803,0x6002b60e,0xf0156215,0x4d126013,0xa3242b23,0x2144c16,0x62101023,0x5a0d5a0d,0x5b045104,0x5a135904,0xf21e4013,0x941e1c13,0xdc069406,0x55249501,0x32045125,0xd80b4e17,0xaf0b8b10,0xba25b025,0xae04bb04,0x2425b225,0xda151d15,0x1f125a1d,0xca234224,0x1a159c06,0x8000503,0xe60b4b00,0x7c087f1f,0xbf11ec08,0x2e11eb11,0x60155f13,0x5a0bfe15,0x1f008603,0xb1e0513,0xca13b61e,0x1b1dde24,0x6e022202,0xdd126406,0xde14a302,0xd91ceb11,0x3020411,0x26064702,0x11230f16,0x70192d23,0xec192e1f,0xed245705,0x681fde05,0x34086b08,0x4f03241e,0x201b5213,0x820a1d0a,0x8915aa13,0x5015a013,0x5313681e,0x8106d11e,0x551e5402,0x2302821e,0x4306cf03,0x66149325,0x511d5e1d,0x2006cf1e,0xe104dc03,0x54179504,0xd102821e,0x960b0906,0xb01c3122,0x719b219,0x87144920,0x71161605,0x2b07b01f,0x5c245319,0xe11d7723,0xbf13011d,0xd60bd724,0xe703550b,0x1902b916,0x2b012924,0x340c5d01,0x68041d01,0x2316c00c,0x5b230b1d,0xa80b970b,0xd221bd10,0xd621d321,0xcc16f802,0x5c230d05,0xc016ac14,0x3d08421f,0x10219908,0xf921740a,0x5105ca16,0x721d7523,0xda14a412,0xcf25d025,0x414f225,0x5b01a718,0x9c1b980a,0xde11d71b,0x2622d215,0x6b0b250b,0xb50b0e22,0xb61c581e,0x69190418,0xf51d4607,0xe5148205,0xe2170e02,0xc524d005,0x2c1dee13,0xc7136025,0x3f0c7106,0xa200a101,0x5a0fe00d,0xe403b210,0xce00e300,0xd0147216,0xcf21e716,0x1421e521,0x3b19be20,0x2e032f07,0xdd00fa0c,0x161a1a08,0xa3201a1a,0x41ffd19,0xfe152413,0xd401af12,0x7247101,0xb6064a02,0x49020724,0xaf13b006,0x6151a13,0xe601fc02,0xcf1dd312,0xe61dd31d,0x6064912,0xcf13b002,0x512e51d,0x3e23d102,0xac120914,0x1d23dd16,0x57162416,0x7d1d2514,0x7f05f012,0x6b25d61d,0x64050925,0xdc05dd23,0xb70d0302,0xb00d010f,0xe10a9d0a,0x5b09f81b,0x51215c21,0x48224f22,0x950f3f22,0x550f151c,0x50225322,0x56108d22,0xd00ee716,0x1417d117,0x8d108e26,0x890ee710,0x530ee910,0xe90eea16,0x4e10890e,0x65031c1e,0xed108113,0x5d0eee0e,0xee108116,0x9a0bf80e,0x5f039903,0x5d0ee316,0x19079316,0x5f1f151f,0xe20ee116,0xe10ee40e,0xe60ef50e,0xf00ef10e,0x1e23010e,0x85121512,0x9906e901,0x4a02b701,0x58245d1d,0xd820d709,0x5e0c7c20,0x34033801,0xca239b05,0xbe152222,0xf61dea13,0x8b238a02,0xac17101d,0xfa05e814,0x300c2f00,0xb30a440c,0x7321b221,0x75237412,0x30135323,0x7206ad1e,0x8b06bd02,0x831ff615,0x68088008,0x6601911e,0x3a18411e,0x3c06f618,0x3a24a806,0x6c0a7a06,0x181bb50a,0x65066402,0x2a206606,0xe09081a,0x930c0d0c,0xb5001803,0xf5003310,0xc100c00b,0x5b015f00,0x9041901,0x71013f04,0x950c920c,0xe20c930c,0x34101f0f,0x50166c0d,0x4d052d05,0x4b0bc503,0x1235303,0x85235b17,0x7b228122,0x4d011c22,0x7b034b03,0xc8007c00,0x4f0bbf0b,0x48008203,0x77007903,0x801ce400,0xe11cdf16,0xca150201,0x9e181212,0xa2062301,0xfe22fd16,0xfa11f922,0x49168d11,0x1602751e,0x15139a03,0x2212ce25,0x1c0e200e,0xee16650e,0x5a168111,0x790dbf0f,0x271d8910,0x37128717,0xd824de15,0xf408b424,0xbc203519,0x914ce12,0xfa065c06,0x81152512,0x61030315,0xc216ea02,0xe9234002,0xbf220321,0xc116e91b,0x2302c202,0x25091509,0x3e173709,0xba173d17,0xa0028506,0x38043515,0x1b0c9004,0xb5020c15,0xbe249113,0x961db612,0xd000e0b,0x3120600,0x5a056912,0xb10a30b,0x5b0a8c00,0x45072418,0xec148e23,0x2e141e16,0xf8053f05,0x8416f105,0x59058a23,0xeb16a714,0x8e1d2523,0x5508dc05,0x1308d920,0xe314f318,0xe31ddf17,0xed12f81d,0x1406571d,0xba1de702,0xe824c213,0xc424c31d,0xe724c324,0x5424c21d,0xe5152006,0x5113b91d,0xbe13b806,0xf12fa24,0x2212f602,0xd1dea15,0x4d24c502,0xc1ddb06,0x1d065302,0x58152415,0xe324bb06,0xfe06561d,0x561dda12,0xf913b506,0xdb12f412,0xb51de21d,0xc113bb13,0xdd1ddc24,0xe624c11d,0xbf12fb1d,0xc0065124,0x231de524,0xc424c215,0x2324c324,0xc013ba15,0x2013b924,0xbf152115,0x5113b824,0x57020c06,0xfb065306,0xe1064f12,0xf912f41d,0x4d13b612,0x5924c506,0x7508fd06,0xc91a3820,0x5a1b8a21,0xf108f30a,0x731a2908,0x7b15be1e,0xd0211013,0x84210b1a,0x8a00460b,0xe722d60b,0xd722d515,0x880b8d10,0xcd17600b,0x9404d825,0xe100440b,0xf60ef510,0x990ee40e,0x10054e23,0x4423fd14,0x44163412,0x471e8718,0x2d125f18,0xbf235224,0xa143523,0xbf22ec1d,0xe522ea23,0x73138506,0x111d0b1e,0xd16031d,0x8706791e,0xa901f906,0x3824a913,0x6a022c15,0x6f192c06,0xe41f6e1f,0xb802be16,0x2014ec14,0x79061406,0xf9157715,0x30145e02,0x681d2912,0xc524321d,0x63096d05,0x6220e209,0x8b176317,0x9125bf04,0xd225c017,0xce02d402,0xb03ce02,0x9010c01,0x8010a01,0x74026f01,0x7b159802,0x39159902,0x9801b025,0xa12aa1d,0x7b080508,0x400e021f,0x4d11a211,0x4605e024,0xd2244124,0x7905de05,0xb11d7923,0x6505d314,0x5714a112,0x5324c806,0x19135c06,0x55136103,0x4516eb12,0x35134923,0x6a06b31e,0x88134902,0xb906b415,0x4b158806,0xb4030813,0x66158506,0x7c158602,0xb81e2d15,0x661e3306,0x7c026202,0xfd252815,0x28157a02,0x7a252925,0xba252915,0xfd157a06,0xae252802,0xaf037900,0xb5025e00,0x20134e06,0x67158725,0x6026802,0x441e2f03,0x6506b713,0x8a136002,0xb031815,0xba051b26,0x6506af17,0x20026802,0xb6026425,0xb6025e06,0x4e06b506,0x6906b513,0x7a15af13,0x4706dd1e,0x28114911,0xa917eb0e,0x1801cc01,0x93089720,0x790bf008,0x6300b40c,0xb50ccf0f,0xbf0fc10c,0x140d0b0f,0x17111311,0x10011611,0x210bb601,0x67026403,0x1d040102,0xb40c6804,0x1d26101c,0x561c5605,0x6b1ecc07,0x860c8501,0xf014c70c,0x1e060314,0xbf0b7200,0x4c23fd10,0x5e240a12,0xfd22e405,0xd4067c15,0x66131713,0xe2037a03,0xda00b30b,0x110be40b,0x2b18e322,0x4a114d1f,0xd70e2a11,0xf7054f15,0xe810971c,0x16001010,0xb1237917,0x18155f14,0xb4250a1e,0xb5006b0b,0xe900e60b,0x7803b900,0x6f102a0d,0xbd08c20d,0xfa08bf08,0x3c113a10,0x6a254411,0x61028402,0xdc238c16,0x5303291c,0x5a004f00,0x59005500,0x59032c00,0x74005500,0x1b06a815,0x12027825,0x8b1e4a03,0xc515c601,0xb614e815,0x761da901,0xb8019113,0x4f104d15,0xf6104610,0xf325ee04,0x741f7125,0x4019261f,0x36239f05,0x3101e605,0xcb249e06,0x781ab31a,0xf130e09,0x3f13d013,0x3d20771a,0x491d821a,0xf614841d,0xf7128402,0xa1171702,0x76243d14,0x7310320d,0x1814860d,0xc7125224,0x78180301,0x7b171524,0xb91d6e1d,0xd6151b24,0xb9064c1d,0xb113b124,0xd624b913,0xde151c1d,0xb5020a12,0x1b13b413,0xde020a15,0x1c13b312,0xcc020915,0xb313b41d,0xde020813,0x5b22f622,0xde09a605,0x5021181a,0x84008303,0xcb005a00,0x5203510b,0xcc0bcb03,0xe615d40b,0xca22c51c,0x71239f11,0xd123a616,0xc915e122,0x9e04de25,0x460fd717,0x1b0d8e10,0x140c1c0c,0xe205b701,0xa0171f16,0x2023d616,0x1a1d191d,0xd6161916,0x1c121d23,0x1d1d2016,0x86161c12,0x8c122205,0x1e161a05,0x1d1d1c12,0x19161516,0xa6230116,0xa323d816,0xdd230216,0x95137523,0x8d15ac01,0x900a581b,0x4505811b,0x1c144e14,0xd61d2016,0x4e081723,0xde194919,0xf311f322,0x74045315,0x91174f25,0xf070a1e,0x2151107,0xa212ee02,0x740f530c,0x921c5710,0xc2228f22,0x2f251312,0xcc1fcd06,0x7e084c1f,0x5e00bf03,0xc10bf503,0x1c00ac00,0x91058c16,0xf109f205,0xb109f509,0xf6038200,0xaf15120b,0x6b13a924,0x1514c924,0x431f8a18,0xd3194519,0xec008e0b,0x8603560b,0xdc035a00,0xdb261c17,0x54058e17,0x1116a414,0x501a0f1a,0x58118720,0x7411890e,0xec0bd903,0x5f0daf0b,0x1a0cae0f,0xf9115011,0x9e19bf0d,0xf3089b08,0xc824a601,0x311dc71d,0x1514f813,0x711040e,0x321a7711,0xfb1a7609,0x8f15fc11,0x90039416,0xde039503,0xa10a210,0x8f0f8c00,0xb00f900f,0x8b19aa19,0xd140e08,0xd915d314,0xe425d825,0x9a0bda04,0x640be500,0x62036003,0xdf01fa03,0xfc01f912,0xae1ce11c,0xe925ea23,0xe904f525,0xf504f225,0x9b039a04,0xfb038103,0xb103990b,0xae134200,0xe02fc06,0xd41a131a,0x183108,0x9e05ff06,0x791f9b1f,0xa1202407,0x1908a208,0x1a00d80c,0xda010f0c,0x4103dc00,0x3f234023,0x22209523,0x89209309,0xb01e7401,0xef08be15,0xa219ee19,0xd703ac03,0xce022200,0x3a066e13,0x810f7610,0x3d11c50d,0x4b15d205,0x80058614,0x45170e05,0xa2244f24,0x781a6620,0x2200e71a,0x2400e90c,0xea03b60c,0xfa23b700,0xdc22e615,0xa00b5310,0xdb022d10,0x10154124,0xaa01f815,0x3c23ca13,0xc4120814,0x2b03c603,0x1c01e70c,0x4625121e,0x510060d,0xa524b410,0xbb13a613,0xf503cb03,0xcb03cc00,0xfc0c3703,0xad06bc02,0x5605ea06,0xe605ec24,0x34231423,0x8324f312,0xdf132006,0xde00b903,0xbc011003,0xc403dd0b,0x9702990e,0xdd011002,0xca00b903,0xcb02960e,0x311020e,0xe00dda11,0xe10c1303,0xdd129a03,0xee01b414,0xc302cb16,0xf01d002,0x5b01ac06,0x481d541d,0x6d170823,0x66170712,0x5e14981d,0xd9170b1d,0x6a170c02,0x7402e723,0xf71d301d,0xd416cc23,0xc712d312,0x201ec81d,0xd51b1f1b,0xa31dc712,0xd101f224,0xf2063412,0xd1139e01,0x9f01ec12,0xdc139e24,0xe5034d03,0xa51dc803,0x7150924,0x301e915,0x9e12d115,0x1c249f13,0x4d03e501,0x76237303,0xc502de23,0x1b034d0b,0xd9224301,0x2a0ad30a,0x19059816,0xbc172123,0x3416e502,0xb2083008,0xd12161f,0x3405761d,0xf513cf15,0x881d8a1d,0xef12861d,0xf1010603,0x250c5d03,0xf203f101,0xf40c3d03,0x590c6003,0x310c5f0c,0xf8024813,0xe612ca14,0xf701e701,0x2d010403,0x741e3901,0x1a158d02,0xe020581a,0xf90c3a08,0xfa012f03,0x23012e03,0x3003fb01,0x640c6601,0x2e0c3b0c,0x3d1e2701,0x2f06a313,0x3a013001,0xba17de0c,0x6d051b1c,0xa600a703,0xea00a700,0x9d00a50b,0x9e00580b,0x3b013c0b,0x3013701,0x3b040204,0x6b0c6f01,0x390c6c0c,0x90c7001,0x3e0c7004,0x80040901,0xa51e5f01,0x9d009e15,0xd036800,0x100c7504,0x12041304,0x53014e04,0x4f015501,0xa118e101,0xfd074b07,0x4507c818,0x907da1f,0xde190619,0xdc07b91e,0xf04111e,0x46041404,0x110c7601,0x53082504,0x741f9c19,0x4b03380c,0x2c242e01,0x75234e24,0xf6055a05,0xea011911,0x1a0c5003,0x610c7d04,0x7d016201,0xfb01400c,0x19a71f,0xd7079b20,0xf51ebe18,0xf819a41f,0x719ac1f,0x7f088620,0xf3037d03,0x1b01340b,0x1b016304,0x63014104,0x68041e01,0x22041d0c,0x53010d01,0x6707810c,0x28077d18,0x330ac522,0xa901f422,0xc513ab13,0xc8204408,0x2608e608,0x5808eb1a,0xa8041401,0x1204170b,0xa9041304,0xdb03a803,0xdb00da03,0x6700dd03,0x790a680a,0xb30c210a,0xfc0c8403,0xef1af11a,0xb30c841a,0x43010e03,0x8603d90c,0x3107f70c,0x7b07fa19,0x67118611,0x1d16ab0e,0xb6161916,0xef00f103,0xd60f4c00,0x500d160f,0x4e0fd60f,0x4b1f830f,0xf2081819,0xf124f524,0x72005224,0x28032901,0x720c1903,0x74042d01,0x6005001,0xc421281b,0xd217209,0x7821980a,0x11160305,0x8110b51d,0x5b00330b,0x61046025,0x301f7404,0x5d07f919,0x58145914,0xf00b0514,0x9b1c280a,0x9709591a,0x63096b1a,0xb31aac09,0xb0029e02,0xed213502,0xac1b1509,0xae114d11,0xf20cf311,0x620f9c0c,0x77036003,0x35226e03,0xe51c371c,0x9700af0b,0x430b1a00,0x4a22851c,0x850b1a1c,0xe8009122,0x3d008f0b,0x8c228907,0xcd001922,0xfc0b6910,0xd01bc021,0xcd0b821b,0xcc003610,0x350b8010,0x3610cf00,0x2b10ce00,0x2f10ca00,0x340b7a00,0xc510ae00,0xc6002610,0xce10cf10,0xc9003410,0x2e10c710,0xc510bf00,0x2710c410,0x740b7500,0x2e002b0b,0x85002c00,0x2411ad0e,0x2c002011,0x7610be00,0x2810c20b,0x7710c300,0xc20b780b,0xc40b7310,0x3b0b5710,0xc20b4600,0x3a0bc10b,0x5f043a04,0x7d0bc200,0x79007701,0xae008000,0x9303330b,0x92033f0c,0xab043e0c,0x3f043f0b,0x3e017e04,0x7a0c9504,0x3e0bc700,0x930bab03,0x3803ba0c,0x4b03c20c,0x4a0c4d0c,0xe601e30c,0x71150201,0x6e084b19,0xe6096519,0x13096b20,0xcf1cfa14,0x89228c15,0xc1c3e22,0x6b1ed30b,0xac200822,0x1019af19,0xbf135903,0xc3064a06,0xaa065a24,0x10151313,0xce1bc615,0x7b21fb1b,0x8e138d1e,0xd6151b01,0xf024b91d,0xf8143215,0x69168d11,0x46168e05,0xad12e806,0x5205c213,0xf002d523,0x3064712,0xdc166702,0x3a22cd15,0x52046117,0x74182a04,0x73061d24,0x4a116e11,0x6901bb0e,0xda01c324,0xd0181b14,0x4c1fd514,0xa41fc508,0x760a4221,0x8403531b,0xd3008500,0xcf08541f,0xbc186d1f,0x55201419,0x4b225022,0xd01d9a22,0x26181b14,0x2207ee1f,0x2e0abc19,0x2f222f22,0xf0122a12,0xe60aeb23,0x1e1c150a,0x1714cb06,0x89049718,0xa8176125,0xa2177b04,0xa304a825,0x9d177925,0x97049e04,0x75259725,0x98177317,0xad259225,0x79180204,0x251dab24,0xe31a221a,0x7d080d08,0x5f19441f,0xeb231014,0xcc15cd23,0xbb11bd15,0x271cd911,0x9e19c305,0x4919bf08,0x6b244b24,0xd0070323,0x107581e,0x2900ed01,0x69177a0c,0x78048d17,0xae14a312,0x4e12f814,0xc413b706,0xc3065a24,0xc224c024,0x8d24c324,0xfe1d6214,0xf214d516,0xb701a714,0xb1de313,0x4e021102,0xfb065a06,0xe1064f12,0x603241d,0xa006ce03,0x5d00810b,0xa103d500,0xad03d603,0x660c310b,0x70013d00,0xf304050c,0x7015b706,0x90f431e,0xf20f110f,0xf11f6507,0x7d014007,0xc903ff0c,0xbb0cb60c,0xe91a1e0c,0x7608ea08,0x8c043001,0xeb00940c,0x6e0bdc0b,0x8f10f50e,0x131a0e11,0xf708d41a,0x1c0e220d,0x2c10af0e,0x2510c700,0x2915e814,0x670bed14,0x8037c03,0xdc10ff11,0xa802030d,0x8412f013,0xfa039903,0x8704290b,0x910c250c,0xe80bef00,0x6022a00b,0x90b281c,0xfd0fc60d,0x160f4c0c,0x520f4d0d,0x7505ea24,0x141df523,0xc4153402,0x5105c102,0xcb02c31d,0x84125b02,0x3b1d481d,0xdf062e23,0xec1e1e01,0x271a1f08,0x1025321a,0x5106c003,0xe100f0d,0x4d027f10,0x80026313,0x8115ab13,0x461b7913,0x4321ad0a,0x1712ee06,0x5e096015,0xd1a8909,0x19144d16,0xcc063312,0xf5156812,0xc41dc313,0x1013ca1d,0x83066d13,0x24125923,0x94000c17,0xae0b590b,0x79134206,0xbd23e915,0x4b162816,0x1401130c,0xea1ce801,0x7d16681c,0xfd157c15,0xe817aa02,0xf804e904,0x112810,0x490e3d0e,0xf0116a0e,0x44020112,0x4820d206,0x3e095f09,0x23213f21,0xf81bf01b,0xd21bf71b,0x521a9620,0xab1ae309,0x1109a709,0xcf09d01b,0x891b9709,0x6b1b901b,0x750a2821,0xf124f421,0xf2023724,0xb50a7a21,0x7510b81b,0x610b760b,0x6f235d12,0x350f0a1d,0xf41c920f,0x423ab11,0xaa166c1d,0x9b239923,0x62059a05,0x7c10ac14,0x9810ad0b,0xba122d05,0x3312cd16,0x6512d106,0x47116611,0xa306dc0e,0xa6017f15,0x760a4321,0x1512a01b,0xa4248c06,0xde0ddd11,0xb621210d,0xeb211c09,0xab151512,0x66126c13,0x94149c12,0x5909551a,0xbd125a09,0x9205bc05,0x8417e912,0x43232a24,0x99163416,0xf712c606,0x2b0c2c13,0xd903c50c,0xdd127605,0x5c174d02,0x80256a17,0x69175704,0x9a25a725,0x52259b25,0x4c125312,0x8912861d,0x741d8a23,0x361a6c1a,0x9401a909,0xfe14cc12,0xb3026102,0x49237606,0x70244324,0xa409301a,0xa134720,0xd1030103,0xd015e322,0xf2142322,0x5e23a11c,0x8115a61e,0x7c1c7901,0xa622a71c,0x601e9a18,0x5d0a8f07,0x79185b18,0x78043101,0x9a073a01,0xa7188307,0x300c1d03,0xf718ff04,0xb307cb18,0x681f6a18,0x190c741f,0xcb015b04,0xa724ac1d,0x2218c713,0x41078b20,0x42240416,0xd50bf416,0xd2037100,0x951aa320,0xbe0fbc1a,0x780fbb0f,0x540e5211,0xfb22db0e,0xf1168a15,0x78086e1f,0x2f08ad08,0xa308ac20,0xe713a213,0x7064a12,0xcf13b002,0xe61dd31d,0x6064912,0x6213b002,0x680e4411,0x870b5211,0x3300020b,0x86228407,0x2d0e8022,0x3f113011,0x381f7b19,0x5d22e419,0xd111f505,0x923c123,0x441c0612,0x3d0abc22,0x8502bb23,0x8d0b2414,0xfe1c5422,0xb80c4003,0x4e000c03,0x5b004400,0x33008000,0x2d0a2e03,0x4f1b710a,0xf0c7501,0xce0cbb04,0xfe0cc90c,0xeb0c4003,0xa812e900,0xc901fe13,0x9f033103,0x530cec0b,0xd105510,0x920e050e,0x65055611,0x59168116,0x140d610d,0xe014b10,0x4c0c7404,0x4a040f01,0x2a0fd201,0x350fdb10,0xdd240c23,0x89238816,0x3512871d,0xa1061618,0xee145c12,0x8c162b23,0xc1018813,0xdd0d1f15,0xd20d200f,0xde25d325,0x12021804,0x44021902,0x29124312,0xb10bb223,0x7d00690b,0xd7019313,0x80137006,0xd406eb13,0xf5142822,0x1c103c1c,0xfd0d830d,0x2b15f71c,0x8239e14,0x9e166014,0x61141923,0x1915df16,0xe911d314,0x9b11d21c,0x6f238c23,0xde141d16,0x40239f15,0x9023da05,0x551d2105,0x3f132815,0xbe172702,0xa4128714,0x72170d14,0x36124b12,0x4b16de23,0xe0164512,0x3616de16,0xcc147e23,0x7204908,0x2d15911a,0x4b135a25,0x3816e012,0xec151623,0xcc24b212,0xf702091d,0xad150d01,0x44064024,0xd080f19,0xe2251308,0x46062f01,0x1523c314,0xdd153b1d,0x411dfa24,0xd324db15,0x7f1a8124,0x9a1a7e1a,0x13f706,0x69254415,0x1d1e3502,0x4e06cb03,0x5c1e5b1e,0x5f1e5a1e,0x5e15a61e,0x7c15ae1e,0xe8138e1e,0xa8137106,0xe715a815,0xa406e806,0x5d1e5b15,0x6620a31e,0xd920a21a,0x65137306,0x5e06d91e,0x8a06d81e,0x8706dd01,0x5f1e6501,0x8706d91e,0x6515a401,0xdc018c1e,0xdd06dd06,0x871e5c06,0x5f1e5d01,0x8115a41e,0x7c136d01,0x7057713,0x5a23bf16,0x7f06dc1e,0xde035d01,0xc200bf0b,0xc31ec01e,0xb310c51e,0xe310b910,0xd023a215,0x7c054d22,0x77167f16,0xa7167616,0x8604bc23,0x5104c417,0x8422fa14,0x5905c405,0xd402d01d,0x617c525,0x2d022e26,0xf8131302,0xf0121222,0xf11e6322,0x85137206,0xbe15bf13,0xe9019915,0xa7018106,0xef15bf15,0x6e136f06,0xe215a713,0x831e7106,0x761e6313,0xf21e771e,0x5b1e7906,0x7415b91e,0x7901891e,0xd806d91e,0xb915b406,0x8a06de15,0x8b018701,0x1e121513,0xb9121412,0xde018815,0xdc138c06,0xed15ad06,0xd201eb01,0xb7123312,0xc16be16,0x11210d21,0xa2179a1f,0xbd25c917,0x8215a915,0x8e1e6c13,0xea06f413,0xbd15ab06,0x8815aa15,0x87138913,0x78018413,0x84137a1e,0xb606ec13,0xed06ec15,0xea137006,0xd606eb06,0x92019506,0xbb241f01,0xd5242305,0xd6054215,0x92239315,0x3322c223,0x69242f24,0xa5054a12,0x8211d723,0x9e1d1805,0x18230016,0xa623d41d,0xd823e216,0xe23ed23,0x8b162423,0xd2008800,0x1b148c0b,0xf01d5724,0xbf02cd16,0x22260d05,0xc617d80f,0x1e1cc41c,0xe714830f,0x53148616,0x68046c17,0x224f025,0x5c06721e,0xf21eef18,0xfc1d091e,0x8f1d0715,0x8d049004,0xae240304,0xe0231c05,0x5a170802,0x8d053f23,0xb5140923,0x11b411,0xc00cdb11,0xc30f6f0c,0xa10a5c21,0x6f0c6b1b,0x804070c,0x100ddf11,0x8c228a11,0x590b2022,0x5a10e20b,0x118310b,0xfe180106,0xe11d9217,0x80175e14,0x2b258125,0xd208aa20,0x71037019,0xd800a903,0xa922d622,0xb4064723,0x53020424,0xc225f904,0xfb0fee17,0x490d400f,0x42254e04,0x38111504,0x860e340e,0x9e01ae24,0x79182f1d,0xf117f424,0xd514e317,0x9101c114,0x1101a61d,0xfc01bd06,0xdc14d317,0x9f17ef14,0x2b17fc12,0xe061818,0xd61d8d18,0xe115e211,0x141be915,0xc10a9d22,0x89070c07,0xed069518,0x961e1d01,0xdf037800,0x3a18d10b,0xe31eb607,0x6124f613,0x9d1a6015,0xb209c20,0x4908c31a,0xd306b820,0x62252806,0x191f9819,0x201fa508,0x841f9a08,0xb321b11b,0xbb083721,0xe7083c1f,0xe619f019,0x81e0119,0x1802371e,0x91089320,0xff1ff908,0xb319a01f,0xb119b219,0x6e01e019,0xd6062c15,0x7022d111,0x57204a16,0xc205920,0xbc1b0b1b,0x1508d809,0xfa08d71a,0xfb1a3108,0x38206f08,0x2d08fe1a,0x931b470a,0x3e207c21,0xfd207a1a,0x8e11fa11,0x930dea16,0xb7111111,0x7e134406,0xab1aa615,0xb31aaa1a,0xd13b413,0x34217702,0xc21b690a,0x8720c020,0x541a9c1a,0x23095b09,0x4906b425,0xaf21ae13,0x4b1b7d21,0xfb074907,0xe409701a,0xe0096e20,0xe30a6e21,0x29093021,0xd11a6109,0x9d1dc312,0x70a2e13,0xf80a2d0a,0x181eaa08,0x4324b007,0x4a24b106,0x7f1fcc07,0xef1af619,0x7a1af01a,0x541fd019,0xc11b0308,0x671aff09,0x81048225,0x3418ab04,0xff09cc21,0xfc045125,0x581b5004,0x581b3b21,0x3b215b21,0xe219e91b,0x119e119,0x6c218f0a,0x7c0a2121,0x200a1d21,0xa111a211,0xa704a111,0xb9259b25,0x3119df08,0x1823ef20,0xc4123a23,0xc521d921,0x9121d521,0x8021be1b,0x810a870a,0xa30a700a,0x3321d41b,0xf91f7519,0xcd1bb407,0x551bad21,0x260b2507,0x870a600b,0x330a531b,0x350e4d0e,0x260ac00e,0x130ac222,0x4e22511c,0xcd223b22,0xd5223d0a,0xe0ae20a,0xf919f21c,0x5b08bb19,0xe90af122,0x30e890a,0xa20e880e,0x431b7621,0xd226c0a,0x4b1c320b,0x491c481c,0x92053c1c,0x3f22cd23,0x8322b60b,0x3d0f441c,0x9b0f3e0f,0x980f091c,0x1208141c,0xf31f8108,0xb104f625,0x880ece17,0xcc0ea702,0xcd039300,0xf5241c00,0xbc16f216,0x2911b711,0x6d239605,0xc8054116,0x6d054222,0xdb1cda16,0x2915ce1c,0x6c022702,0xe3167c06,0x68167f11,0xce032202,0x61046306,0xf7173a04,0xca143c22,0x53045123,0x1b044504,0xa90f190f,0xd7142a1c,0xf054f15,0xc0f170f,0x95144a0f,0xb7143e16,0x3410ad10,0xba20b700,0x67071d20,0x62256104,0x3d1c9525,0x7e0f140f,0x821b7d1b,0x7e1a801b,0x2a20b61a,0x1d10c600,0xae16ad00,0x3d1d1e16,0x9f1b730a,0x2101a421,0x8001b918,0x70256904,0x9322c425,0xeb055623,0x4116ea16,0x371cf923,0x6811be05,0x5b0e4411,0x8325710e,0xef174d25,0xeb11bf15,0x4d170111,0xad242b23,0x7605e614,0x1214af23,0x36245217,0x351fba08,0x2e002b08,0xb9002c00,0x19233e02,0xca002b24,0xc5002f10,0xc6002610,0xad003010,0x750b7d10,0xc210c40b,0xce0b8210,0xcd10cf10,0x350b8210,0xd825ca00,0x3325d925,0x310b8100,0x85103e00,0x610d840d,0x6c229a1c,0xb81d8e1c,0x9c14d901,0x9b12b51d,0xb618161d,0xbc182912,0x6b083d1f,0x51f7b19,0xb8080408,0xe717f212,0x820b6814,0xd00b6a0b,0xe70b8310,0xec057710,0xb1d1422,0xb21d2323,0x2123e516,0x9816b51d,0x290b2a22,0x2218e0b,0xa91b640a,0xa312ad12,0xad12b11d,0xb1247f12,0xdd12b212,0xb2182614,0x26182412,0xc5248218,0x82248301,0x8614e224,0xe51da624,0x6520e614,0x96209,0xa614e518,0xa6232f1d,0xab232605,0xd91d8e12,0xcf001614,0xda002610,0x9212bf01,0x87091113,0xae1a4a20,0x8c17e212,0x611a2312,0x441a2620,0x331e481e,0xef203825,0xc119e719,0x2817e601,0x2f083818,0x211fb308,0xda161b1d,0xd6248623,0xf001c814,0xf609bd1a,0x5225271a,0x511e321e,0xcf253e1e,0x8d14f106,0x5e019f12,0xe519161f,0x10183407,0x9a180718,0xc314db1d,0xd1181014,0x70180701,0xf315c21e,0xa00fa206,0x1f0cf50f,0xce14ce18,0xbc019301,0xae1e6715,0xcf12951d,0x22172601,0x2502c724,0xb3060206,0x206271d,0x96246a06,0xc2053923,0xdd17e111,0xde052117,0x180f2917,0x5318ad26,0x3a076a18,0x3824f902,0x1c191302,0xd407e419,0x9d18e81e,0x241e2718,0xeb251a1e,0xaf070b1e,0x8d076618,0xc418ad1e,0xfc1f3b07,0x140e0a18,0x18112b0e,0xce01aa18,0xcd14ce14,0xf1060914,0x2614241c,0x9817ed14,0xc401b01d,0xef234302,0x751d9d16,0x2201b424,0x7923a714,0xb517f016,0x561d9d01,0x611f621f,0xd3129a1f,0x917e714,0xcc01a906,0xe9075814,0x48075318,0x7c233412,0xca249114,0xa812be14,0x581fa61f,0x401fb419,0x291fb608,0x2c082b08,0xba083408,0xfe083b1f,0x7624e524,0xcd076506,0x8720cc20,0xc81bdc0a,0xc81bcd1b,0xa22091b,0x360f370f,0x1208980f,0x93089220,0xe210e00b,0xbd088c10,0xb200f19,0x90089220,0xbb0ca108,0xfc0d160d,0x8f169211,0xab08a116,0xc3202108,0x7808491f,0x94139219,0xe101d824,0xe31a2508,0xfb08f808,0x3d1eaa08,0x3e20731a,0x431ef51a,0xc41a4b1a,0x1b1a0308,0xa21c6c1f,0xfc0b3322,0x3808fe08,0x410e451a,0xad115f0e,0xab1a6f20,0x97231120,0xae16b105,0x7309641a,0xac020109,0x1c064413,0x9415091e,0x5d101706,0xf70d620d,0x7e1e7f06,0x7307251e,0x5a18c307,0x72215921,0xe109e407,0xe51b2e09,0xe6214709,0x4c1b3009,0x3409ea21,0x19027725,0x7012c03,0x4b03ee01,0x110a081b,0xb0a0d0a,0x1021710a,0x720a0d0a,0x6f217121,0xc91b4a21,0x570bbe0b,0xdf0ae500,0xb11c0a0a,0xb01f3007,0x63216407,0xa9217821,0x6c1a7020,0x3a12361a,0xb123b12,0xd612db15,0x451fcb12,0xf51fca08,0x7139f01,0xc6139f15,0x3b15051d,0xab1e9718,0x15150c1e,0x9f12dc15,0xc624b313,0x1702021d,0xf412ee15,0xca12d201,0xb012eb1d,0x2d151524,0x4b172c17,0x3f1dd025,0xec24ac06,0xf6054d15,0xa1bca1c,0xea220322,0x13151412,0x54032b15,0xb4005500,0x4812f124,0x4c064106,0xad020006,0xae1dcb13,0xae064113,0x1424b824,0xec01f715,0xe012eb12,0x624b012,0x96062b15,0x9c02af24,0xd20eb902,0xca063e12,0x161dd01d,0x212ef15,0xd113a202,0x461dd51d,0xa413ad06,0xfd064413,0xa513a401,0xe9064713,0xdf01f912,0xf81dd812,0x45150d01,0xa621a80a,0xab12ed21,0xa8064224,0xf0020113,0xc7059912,0x7a123516,0xee056b05,0xa1dcc22,0x461dd902,0xa2095d09,0xca24c51a,0xeb24cb24,0x28250313,0x1c058513,0x6423cd12,0xe3059214,0x620e4823,0x35116811,0xe523ef12,0x24122623,0x44162216,0x5f10e60b,0x61076c0b,0xd81fe308,0xd91f4d07,0xf8239507,0xca15d31c,0xcb1df224,0xcb130a24,0x141df224,0x16130402,0x27065d02,0x4713c115,0x96075318,0xea065c18,0xf13061d,0x6065c02,0x13065f13,0x1313c302,0xc51dee02,0x1624c913,0xef130402,0xc2020e1d,0x15065f13,0x1513be02,0xbe1dea02,0x71ded13,0x2c24c813,0x124cd15,0xcd021013,0x5e1df124,0xf0130506,0xd614971d,0xeb170405,0x611df11d,0xc6130006,0xc7021713,0xc4066124,0xc41dec13,0xec13c613,0xbe07b71b,0x85172207,0xf1233c14,0xb716e302,0x8316e414,0xf91d461d,0x851d5305,0xf602f823,0xd902f702,0xf7022b24,0x8814c11d,0xcf14c212,0xa111d822,0x671b5c23,0xd921b01b,0xd1df724,0x4222dd13,0xf6143114,0x20066b1d,0x63130b02,0x6713cb06,0xc924db06,0x27021d13,0xdb24d202,0xd524d624,0xd24d324,0x2b1df713,0x40e240e,0x10066d0e,0xa7153e13,0x191ca81c,0x2919cd0f,0x908a820,0x3f22ce14,0x1615d205,0x2222c014,0x8005f217,0xa71c7b1d,0xef1c7c22,0xd901dd01,0x5a095b12,0xd51a9d09,0x220d6b0f,0xf4142e10,0x90055c11,0x40068f06,0x21023902,0x70068513,0x3f22f105,0xf318f014,0x4a1f3509,0xa91b770a,0x4132d21,0x2b13ec25,0xed1c291c,0x5b15580a,0x3a156615,0x25213921,0x3111141b,0x1e119f11,0xdb164823,0xe9171016,0x7d127605,0x101eb618,0xa2126720,0xfe05d614,0x96085e1e,0x6213f007,0xea250b15,0x3f068c13,0xed149002,0xe4242416,0x4a13d924,0x8a13e915,0x6d13ea06,0xe71fe908,0x641e141f,0x431e1915,0x641e1902,0x17132f15,0x913f01e,0x251a5609,0x46132909,0x2924e015,0x90155c13,0xbb21f906,0x5321e71b,0x5613e515,0x16024515,0x85154313,0x22132106,0x1a01fc13,0x5813a415,0x1d1a1920,0x9c14ff1a,0x9a1e1c24,0x3014fd13,0x3a046406,0x20173b17,0xf60dfb11,0x1406950d,0x45251325,0x5f255e17,0x5e255c25,0x83173f04,0x87258625,0x84175b25,0x7b048925,0x7e19a308,0x701cb08,0xb301be06,0xb4259304,0xda0b4b04,0x150b8810,0x30139a25,0x97249906,0x6a1db924,0xbf12c315,0xbb1dbf1d,0xac024a1d,0x630cd30c,0xa80a6b0f,0x361bb71b,0x24024e13,0x50024b1e,0x17156c02,0x6a156925,0x6c024b15,0x6d024d15,0x981e2315,0x161e2006,0x22024f25,0x9d13f81e,0x3513f806,0x4c069d13,0x99133502,0x23069a06,0xfb13f91e,0x39133713,0xe908ea13,0x30090508,0x16231512,0xad13a623,0x5c24b424,0x89148812,0x460e3114,0xf111540e,0x4824af12,0x424af06,0xa5064802,0xaa03a403,0xe1236f03,0x9e02e605,0xdc1d6814,0x531d6802,0xff02dc23,0xb20d000c,0xfc111f0f,0x690e6b0d,0x7e0e660e,0x551a9711,0x281a9309,0xbf03cc0c,0x15245703,0xee05ed17,0x16171705,0x2a102917,0xce103010,0xb0260e17,0x6025f1c,0x87134f03,0xfe252015,0xbb06ae02,0x5e02fc06,0xb506b602,0x621aa106,0x391aa209,0xa03091e,0x54134703,0x64252c13,0xfc1d8724,0x831d4605,0x5205f51d,0x501a4d1a,0x1d17251a,0x7b05f924,0x6f22a81c,0x5306bc1c,0xcf06ad13,0x3803c203,0x871d880c,0x3e128623,0x4422781c,0xeb03d41c,0x50016e00,0x4c030f13,0xb023b713,0x7411fb23,0x57025415,0x70031102,0x3f1e4402,0x8f1e411e,0x8f027015,0x591e4115,0x5a1e4313,0x3f027113,0x3e1e401e,0x4206c11e,0x4702701e,0xd61e441e,0x530c4103,0x13158b0c,0x61159003,0x5c031213,0x37136213,0xc5031725,0x1c136506,0xb0036103,0xb4009800,0xef1d7f14,0x761da605,0xab180024,0x9416b716,0x8706d005,0x7e026915,0x2906ba02,0x241d5625,0x9d16ed24,0x1e159915,0x82159c03,0x2e254302,0xc2253425,0x41157d06,0xad251e13,0xb20eb602,0xb0f390e,0xcb1ccb0f,0x8f094f20,0xb2142f1a,0x3011fa23,0x24230e12,0x8702a916,0xcf0ecf02,0xac02900e,0xe50b5d02,0x9f000f10,0xa619581f,0xb223e51f,0xaf23db16,0x9617ed1d,0x96060b12,0xcd1dae1d,0xcd01aa14,0x3601a101,0xa61db218,0x9c181a1d,0xa101c312,0x2f1db201,0xb817f318,0xec181712,0x47061e17,0xec09e021,0x7314df09,0xe7182224,0x9a12ad17,0x1503e212,0x810c4c01,0xc0a0f21,0x6128e0a,0x914e406,0x24c613,0xa20fa513,0xef0cf50f,0xc416f716,0xbb148b02,0xcc241f05,0xc11d5102,0x54148f05,0xfc05c01d,0x8f15fd15,0xe10c4816,0x7d0c4903,0xf300b903,0x4f025d0b,0x8d06b813,0xbd02d114,0x6105c005,0x5b02d21d,0xc01d611d,0x911d5b05,0x9016fd14,0xf902ca14,0x581d5616,0xbe14931d,0xd7149205,0xd01d5702,0x5c05c402,0x4c05c512,0xfc125d23,0x5c242a16,0x591d5f12,0xf8148c1d,0x4b234916,0x2902ca23,0x931d5624,0xbf125e14,0xfb16fa05,0xfb125d16,0xcb16fc16,0x8d02d302,0x6002d114,0x5905bd1d,0xd01d5f1d,0xc4148c02,0xcc05c305,0x5c05c202,0x8e14921d,0xf8242814,0x49242816,0xce1d5a23,0x6102cf02,0x971d651d,0x9902d714,0x2149314,0xc405c317,0xc5011a05,0xcb0c460b,0x6905d605,0xcb1d6512,0xc9126905,0x66149c05,0x5105c912,0xda243823,0xca02db02,0x30235605,0x3b02d924,0x3a18ae19,0x36243019,0x702d924,0xd605d217,0x9e243202,0xcd149d14,0x1235805,0xc7235817,0xc702d805,0xd805c805,0x65235902,0xab235212,0x4e05e014,0x4149624,0x67126217,0x39149d1d,0xd205cf24,0x105d105,0x5302dc17,0xd302d523,0x6c1d6405,0xd302d81d,0x41d6d05,0x41126917,0xd105d024,0xac196305,0x3819681f,0x9c126c24,0x42127214,0x6a14a424,0x42236423,0x9e1ed724,0x11229d18,0xdd127617,0xe71d7402,0x9f237002,0x49237614,0x4e244d24,0x1105e024,0x7605e917,0x2e005d12,0xe2032f0c,0xa905e405,0x6a236e14,0x60127223,0x8d036403,0x81172200,0xee05f523,0x51234316,0x7305f11d,0x63236c12,0xb80bf203,0x1d0c1500,0x1d012001,0x1e0c1601,0xf302f201,0x6d245c05,0x6805a114,0x624c314,0x1624c002,0x1e03e80c,0xe4065f01,0x9102131d,0x1e125814,0x1e16ca24,0xfc16dc23,0x1a065401,0x7f241615,0x2314b823,0xc71deb15,0xbd127f24,0x5f172002,0x79127723,0x990e8f23,0x2111b511,0x1f03eb01,0xb70a8501,0xf521dd1b,0x80172402,0x8c02f512,0xc002f71d,0xbf02c202,0x8c128002,0x6102f51d,0x601d8c24,0x88246224,0x82238723,0x8114be12,0x9158d12,0x26030a03,0xbd05fb17,0xbe238514,0x84172714,0x88238723,0x8223861d,0x611d8523,0x891d8a24,0x8805f823,0x831d8a1d,0xbc1d8712,0xbc128214,0xf914bf14,0x25238805,0xfa1d8517,0x5f238605,0x8b246324,0x8a245f1d,0xc105f723,0x7519721f,0x63238319,0x8c172324,0xf723891d,0xf4246302,0x8b02f602,0xf624631d,0x4e052d02,0x41141005,0x6924db15,0x6b154206,0x6224da06,0x3924d806,0xe4141015,0x361ce411,0x69154015,0xa012c806,0xf914fa06,0x78157702,0x1e1e2c15,0xe7134125,0x89250d13,0xef012806,0xf003ed03,0xef010503,0xb2026003,0xbe158106,0x2803c303,0xf20c5c0c,0x2f012903,0x2e152615,0x3d012a15,0x370c5c0c,0xfd157a1e,0x3c03f402,0x2d0c5f0c,0x6303f001,0xfa13450c,0x49252202,0x35139b02,0xc81e2106,0x8f1dba12,0x58253015,0xd911de13,0x63054411,0xf801280c,0x73135b03,0x8b031302,0x73031315,0x73253302,0x9606c102,0xbd252a15,0x76135206,0x3b158902,0x1603151e,0xbc14c103,0x3246414,0x203fc01,0xbe033501,0x810ba30b,0xca159c02,0x40203f06,0xf5203918,0x71b0b1a,0xc713ba1b,0xa71dec24,0x49167923,0x68027e05,0x5715a013,0x251e591e,0x8306ce03,0xcd032402,0x21159e06,0x25254503,0x84136b03,0x4f254002,0x9f03211e,0x59254115,0x7e1e501e,0x4f06d002,0x78253f1e,0xd91d3614,0x6b028316,0x69032413,0x1d027d13,0x300c5503,0xd7012401,0xd50c1703,0x7a1e5703,0x9253b02,0xa0c5401,0x80fc501,0xc50fc40d,0x65253806,0xa003d613,0x4f0c4203,0xb806d213,0xbc152706,0x3f13bd13,0x241c0122,0x53032922,0x9a032700,0x9900530b,0x270b9a0b,0x55005303,0x2c0b9c00,0x55032e03,0x40005900,0x670ba003,0xa7136f00,0x7b018315,0xe615bf13,0x75018d06,0x7006e11e,0x50c6f0c,0x7b15c304,0x6c018f1e,0x6d0bb600,0xbc007500,0x740bba0b,0x7c15c413,0xa1006f1e,0x710bb20b,0x690bb200,0xb2006a00,0x570ba10b,0x5b0bd803,0x881a6503,0x4f20a11a,0xcc197908,0xd01451f,0x510c7704,0x78041801,0x7415b10c,0xac01941e,0xbe00c000,0xd31f4800,0xaf190007,0xe720e11a,0xb1035f20,0xf9009900,0xf60bf80b,0xfa07f90b,0xfb193107,0xfa00c30b,0x7500980b,0xcc035f03,0xc7039100,0x92039100,0xc800c703,0xf0c0b00,0x9300ce0c,0xb0c0600,0x9200c70c,0xc7038c03,0xe0038b00,0xc600d30b,0x8c0c1100,0x7600c903,0xe0009503,0xf407cf0b,0xf818f518,0x4707d118,0x860c031f,0xd1038903,0xd0204e08,0xc7038f08,0x95039000,0xd0038d03,0xcb038d00,0x90038e00,0xd0c0c03,0x41e8c0c,0x5307d719,0x4e117611,0xd607d50e,0xb807d707,0x21065213,0x5c008e15,0x670bdb03,0xe1009603,0xe60bda0b,0x170be70b,0xa61adb21,0x490c1309,0xa103e10c,0x581fa21f,0xbb1f3719,0x2a18a307,0xf307b019,0x3707b907,0x9c1edc1f,0x12012003,0x6d07f30c,0x7a192a1f,0x7818cf1f,0xfa1edf1f,0xb118c11e,0x14114e11,0x1900d80e,0xd703a20c,0xe103ac00,0x4b24ee00,0x241dfd15,0x2303b60c,0xb90c260c,0x580c2503,0xa81fa419,0x2a0c251f,0x2b042b04,0x250c2604,0x3703be0c,0xbe03bb0c,0x3703bf03,0xb100e60c,0x7f03c003,0xa8088308,0x290ba919,0x4a03c30c,0x1e0b1d1c,0x1e22890b,0x3c0b1d0b,0xbd0ba903,0xe925dd03,0x4425df04,0xc707c81f,0xf6033c07,0x320ba900,0x69083e08,0x2900f519,0xcf00ed0c,0xd201d414,0x6f083814,0x971fd719,0x2b144016,0x271ae914,0x311b0621,0xff0bad0c,0x43090000,0x5c188507,0x7c015d01,0x3703cc0c,0x703bf0c,0x8305571d,0xd10c3416,0x40010603,0xcf03c10c,0x1a041b03,0xd016104,0x90200b20,0x981ff208,0xa91fee19,0xe7221a0a,0xfd087a1b,0x82087b1f,0x131cfc16,0x8e200e14,0x3e19b208,0xd203e60c,0xe503e403,0xfd034d03,0x3e203a19,0x2e1fb820,0x7e083308,0x1e01650c,0xf6206904,0xfa08f408,0x8723b115,0x5203e916,0x6503e70c,0x35042101,0x44041f01,0x32042101,0xd3163116,0xd1012716,0x3003e703,0x3122a10b,0x3219cf0b,0x6619de20,0xfb03fa0c,0x5503fd03,0x820c540c,0x950d940d,0x6e013b0d,0x40c6c0c,0x6a013b04,0x3601690c,0x6042501,0x3d013e04,0x70040701,0x6404090c,0x6b14a312,0x66014212,0x190c7f01,0x9e133c25,0x160c7506,0x6f041004,0x9f235d1d,0x10041714,0x83041604,0x6a04020c,0x77041801,0x9a04100c,0x9e20da1a,0x6400a81a,0xba036303,0x9f0bf000,0x1c014000,0x9d016204,0x9b18d707,0xb903de07,0xd5037d00,0xd20e890d,0xa4202c0d,0xf108a608,0xf508f308,0x341a3108,0xe31a331a,0x1f09af1a,0x89085b21,0xf3085e19,0xfa206508,0x1a041b08,0x63016104,0x1d014201,0x36207104,0x2109021a,0x1f042004,0x3c1a3604,0x2120781a,0x67014304,0x6c133a01,0x13fd15,0x330c7d04,0x2e162701,0x9c162912,0x1f1f1b07,0x6411f,0x7401ff02,0x751ab809,0xb30c8409,0x2803da03,0xb6072d07,0x260c2320,0x2601700c,0x6f042b0c,0xe8245301,0x63245405,0x6520a21a,0xec0b9b1a,0x2f0b9a00,0xc309c221,0xad03ca09,0xa903310b,0xf1146416,0x1d0c8c23,0x6203ab0c,0x8411830e,0xde00ab11,0xbe035d0b,0x9119ba19,0x306b308,0xb9134903,0xc20cc40c,0xc40f680c,0xb80f700c,0xbf0f6e0c,0x7d167a0c,0x9215e816,0xdd037700,0x841a830b,0xe2093e1a,0xe3037b0b,0xdf0ad60b,0x7422400a,0x720a3c1b,0xc40ba71b,0xa1034a0b,0xd8141923,0xb720eb11,0x181ab81a,0x35071007,0xf122201a,0x3b0ab61b,0x5f005c04,0xc0017d00,0x4900790b,0x581ed018,0xea00a707,0x51036b0b,0x111c1322,0x91007c1c,0x7c043c0c,0x91007b00,0x9c139b0c,0x3d139d13,0xc70c9504,0x621e160b,0x721e1715,0xa4236412,0x6b111d14,0xbc11ab0e,0xb713b424,0x70042924,0xdf016f01,0x5d08e608,0xbe0f5920,0x3d0f620d,0xf721581b,0x1dec09,0xc424c213,0xb81bf20a,0x27016b0a,0xd8042804,0x740a7221,0x421fc00a,0xcf083d08,0xfc0a7d1b,0x7710bb21,0x3210c30b,0xce152d15,0x3e1fb524,0x82083f08,0x5a0e6111,0xea225b0e,0xdd0ae90a,0x4301f612,0xf226b06,0xd71c340b,0x1923cb23,0xfe0c411d,0x310c5303,0x320b0b1c,0xe31c041c,0xd91c090a,0x1e213f09,0x9a18981b,0x96071322,0xd200ca03,0x1d039f00,0xad03aa0c,0xaf03ae03,0x8f017a03,0x6801790c,0x96137e1e,0x811a8001,0xc51a7e1a,0xda15c415,0x6d0ce006,0xb20cc00f,0xd916a616,0x6b1ba823,0x2f1ba60a,0x3223f51d,0x3305951d,0x21059412,0xe211e014,0xe407a711,0x3007a818,0x3c162e16,0x9e146612,0xa2059f05,0xc4123805,0xf51d2e16,0x2f16c823,0x2e231d16,0x561d851d,0xf414ba12,0x9b231b23,0x1b059a05,0x62059e23,0x5c1d6b12,0xf00dcf23,0xf810f710,0xfb160011,0x71102715,0xa70d700d,0x99129812,0x29114e12,0xb9112b11,0xf724971d,0xf512c114,0xf8139014,0x2b14f714,0xc30ccc06,0xde0cc40c,0x97062b01,0x9114f624,0xd01dd13,0xe001f815,0x401df712,0x51153615,0xfb251602,0xfb13ac13,0x49064401,0xc525381e,0xa224ab06,0xf813a113,0x8b160011,0xc5064d16,0x2c13c024,0xf3130b15,0xc124bd1d,0xbc1ddd24,0x5a064e13,0x5a12ff06,0xc224c306,0xc312ff24,0x1f09d624,0x2213d1b,0x88058123,0x24142605,0x7b15ec14,0xd815e716,0xf0a1522,0xe21810a,0x29123023,0x9206171d,0x38180e1d,0x5111150e,0xf71dd311,0x5c12fb12,0x88258717,0xd311c725,0x6b141111,0xc2019a1e,0x59008915,0x840bd003,0x7806eb01,0x2b145c1e,0xf016b616,0xc622f922,0xf105e323,0x1b245905,0x78144812,0x2916ba05,0x7516b112,0x12245223,0x5f05db17,0x62127823,0x54256125,0x25230425,0xdc161e12,0xcb19cc18,0xad04b919,0x7c25bd25,0x9e159f02,0xc817a315,0x10179525,0xc817b805,0x2d0df417,0x7a0e6d0e,0xec0e790e,0x46147910,0x6d240716,0x6f19291f,0x2418a71f,0xbb192519,0xb409791a,0xf4180c1a,0x101d714,0x1056512,0x9a133816,0x150006,0xff14d418,0xad009817,0x16008f00,0xc0239414,0x5a105922,0x160d9e10,0x1906921e,0x2707291e,0x5073107,0x4f190107,0x4f070518,0x7f1e8a18,0xb105b214,0xeb199b05,0xbb087d1f,0x2305c505,0x1d1e8924,0x81186107,0x6d1eb718,0xb070c18,0xfe070d07,0x9c169922,0xbc129316,0xc060d01,0x811e9707,0x6622dc1e,0xb315f116,0x7501b401,0x68196324,0x71fb119,0x5f069125,0x341eaa15,0x81a371a,0xe8162323,0xfc1d0923,0x411d0715,0xbd0b420b,0x441a8622,0xd91a7209,0x5e20dd20,0xa90f0e09,0x61ca11c,0x6e1b650a,0x9f22a221,0xdc229e22,0x851d0122,0x7e1c4f16,0x19227f22,0xcb05831d,0x1226123,0x71c450b,0x210e040e,0x8b091811,0x85091920,0x840e6211,0x1524b111,0x8f24b015,0x3f218c21,0x760e4e0a,0xaf117711,0xb325f117,0x251cd617,0xc611b605,0x3311ce11,0xd111ca05,0xcd15d511,0xcc1cda15,0xaf0b6615,0x3310c710,0xc4053b05,0x6111d411,0x1815df16,0x4b057d12,0xbf103914,0x2a0f6e0c,0x44044617,0x2d0b6704,0x2410c800,0xec054b14,0x741f0415,0xb918cd07,0xf517ba17,0xa50f0f25,0x371ca41c,0x5b045a17,0x5a046404,0x5c173c25,0x39173825,0xcd121c17,0x9d1d1623,0xa11d1a16,0x64046216,0x4c173d04,0x43255e04,0xbd1cbe17,0x3b0f2a1c,0x53173a17,0x1e058b25,0x4f058f16,0x54256225,0x5f256525,0x66174025,0x69256025,0x281d1f04,0xd9161f12,0x4916d516,0x66174412,0x60046625,0x62122f14,0xce23fb14,0xcf232e16,0xd00f411c,0x9017641c,0x93176525,0x940c0c03,0x75047403,0x79175404,0x6e047504,0x83175025,0x81047204,0x70048004,0x7f047d25,0xd3047c04,0xda11020d,0xed1b2d0d,0x7b09eb09,0x6f257225,0x6d046e25,0xd4175604,0xce02cf02,0x7b048402,0x69175625,0xc606f41e,0x82048115,0x4e175904,0xea16e91d,0x86048416,0x7e175a04,0x7d048625,0x7f047e25,0x7d047d04,0x7c048625,0x74175b25,0xf0174c25,0x1c125d16,0x77048824,0x80174e04,0x7f258425,0xcb001325,0x5b0b7b10,0xdd236423,0xb1171405,0xec127814,0x42132d13,0xe3244002,0xda1d7402,0xba13b21d,0x6c14a024,0xd023731d,0x96038e00,0xa204b003,0x77259d04,0x741d6b1d,0x7a1bb912,0x711bc30a,0x6923631d,0x50243c23,0x82245124,0x8502c823,0x9125a81d,0xc0259225,0x85238614,0xb204b112,0x7c178204,0xaa04a417,0xa904b625,0x84178325,0x70259417,0xb9178e17,0x8e25bd04,0xac04c317,0xc925c025,0xcf04c604,0x8c178d04,0x57095217,0x4c1a9909,0xe805b91d,0x9c04b816,0xaf259604,0xfd11b011,0xb204bb0d,0xba04d425,0xd525b004,0x7710eb04,0x40119e0e,0x7f0b7e00,0x7c0b7e0b,0x120b7f0b,0x50091e09,0x9b21b61a,0x150a5e1b,0xa20a9f22,0xdd17aa0a,0x2304e925,0xac16ab12,0x50100a16,0xa6100b0d,0xa5140106,0x9812ce06,0x1d156824,0x85129b06,0xed128924,0xee180f14,0x70182e17,0x3614c524,0xcd01a318,0x7c181401,0x2c181d24,0xf2248318,0x9e1fea1f,0x1139919,0xd501e515,0xd601ef12,0x9c150812,0xf201e813,0xd8139c01,0xd912da12,0x4524a512,0x50095209,0xdc23af09,0xf1168522,0x23ae11,0x23af1d,0xfb16841d,0xee05541c,0x4f11f211,0x83055605,0x4f1cf716,0xae055505,0xfe11f023,0x5416811c,0x81055405,0xac11ee16,0xfa11ee23,0xf7142a1c,0xb016861c,0x2a11e923,0xaa23b114,0xb211e923,0xe4142f23,0x80142f11,0x1011e416,0x1111c714,0xda142c14,0xfd1cf922,0xf823ab1c,0xfd11e71c,0xf31cf81c,0x8915f215,0xb0063d16,0xf312e024,0xf215f111,0xaa1d0315,0xb21d0223,0x3054e23,0x2e23b41d,0xee23b314,0xef168015,0xfd1cff11,0x2d11e61c,0xea055114,0x5012c811,0x2e14fa02,0xe718e91f,0xfe0e1a18,0xf90dd110,0xfa09fb09,0xb4147709,0x2147f05,0x1050a26,0xaf25ef26,0xf817b217,0xb517b404,0x97210517,0xcd1adc09,0xb6003110,0x1d08a310,0xf5202720,0x8220f620,0xec1dc909,0xe712dd01,0xa3180517,0xee18301d,0xe2181917,0x891dac17,0xe7152312,0xc524c01d,0x22181114,0x6c061b06,0x8812b324,0xae088608,0x9701bf19,0x9f1d9112,0x7a06211d,0x2a230524,0x1216bb12,0xc013bb02,0x5b23e513,0x8c16b214,0xdd06dc01,0xdd1e5c06,0xd806dc06,0x5e1e5f06,0xd913731e,0x5c018606,0x871e651e,0xe5137b01,0xe61e7306,0xe5018306,0x8206d406,0x8206e601,0x83136f01,0xd506d601,0xb41e6406,0x9d12b201,0x8b15b31d,0xea06db01,0xa114eb14,0x51242612,0x605c11d,0x8901ab18,0x7206d824,0xed06f113,0xb6137906,0x981e6e15,0x1f06df01,0x1814d018,0x9812aa18,0x1212a812,0xca260705,0xf051817,0x19260926,0xd2051926,0xf51cb317,0xd017ba25,0x140f2517,0xd7051326,0xd5173017,0xf417d617,0xd7255225,0x2217d617,0xb117cc05,0x5917d41c,0x1f17d504,0x1d17d926,0xad17dc05,0x1f26131c,0x1c261b26,0x6b0f7c26,0xe60f740f,0xa15ff22,0x2417e11d,0xd1262205,0x351dc412,0x90048e06,0xad259904,0x98179904,0x2b07ab25,0x7c22111f,0x4a240b14,0x6c04bc16,0x6f178517,0x6b25a317,0x96073917,0x54072e22,0x9907af07,0xe1f5218,0x511f5319,0x941f9519,0x8c1c4e1f,0x760b2022,0xb005e912,0xc71f0b14,0xef19c619,0xf208751f,0x451e841f,0x74184318,0x7705e812,0xc205061d,0x9f25fe17,0x20203008,0xc3223220,0xac22330a,0x1b201c08,0xf208b620,0x74203719,0x46207520,0xa7207507,0x9e07461e,0xc0139724,0x141a091d,0x1408ca1a,0xd81a151a,0x41204008,0x7e19ff20,0xd080f1f,0xde1a1b08,0x1e08dc08,0x1d0a200a,0x2d20780a,0x6e1a361a,0xfc207b20,0x3e184308,0x9c1e8418,0x4249f13,0xd8189a15,0xec1b041e,0x2022d01c,0x7a097714,0xc4097609,0xc625c004,0x7e257504,0x6e175304,0xbf20c11a,0x77207b20,0x2c090420,0x2f1c630b,0xb0e770b,0xf70e060e,0xf6215809,0x3007f909,0x507f519,0xa0ade1c,0xf321541c,0x5f1b3709,0x81097f18,0x510e4f09,0xfd116d0e,0x461a0106,0xba098218,0xff20f21a,0xf90dfc0d,0xe1096c0d,0xcd1aaf20,0xae0daf0f,0x1721160d,0x18211821,0xa6211b21,0x991f9609,0x8607921f,0xea11ae0e,0xe8185e10,0x5207731e,0x571a9609,0x3809d809,0x24214021,0x391b251b,0x29162f21,0xec162816,0x4f1b2d09,0xd915e021,0x3f1ce515,0xac0ba403,0x350ba50b,0x56033703,0x3a033b01,0x4109fc03,0x301b3e1b,0x2d23ed12,0x3f09fc1d,0x711b401b,0x9e0a391b,0xf224821,0x7022431c,0x1b6221,0x631b460a,0xc41b5b21,0xee162b16,0x79054c23,0xf123a716,0x641fe11e,0x61086308,0x8a1ee708,0x8e1b4521,0x561e0321,0x97131515,0xa820e41a,0xa004d71a,0x9125c417,0xbe1b941b,0x5e1b9821,0xa21b9b0a,0xa0211509,0x60209e09,0xfa20991a,0xf9184206,0xce0a6f06,0xd221db21,0xd022001b,0xd80a941b,0x730a921b,0x6720e309,0xe00a6909,0x1a1bb621,0xe70aaa22,0x8e19b81b,0x15200e08,0x600d5b10,0x60085f0d,0x10086108,0xb40ab522,0x2e222f0a,0x610ac122,0x62226322,0x4b0e4a22,0x2411730e,0xa523e012,0x15200f16,0x70089520,0x661c2a22,0x2a226622,0xe722681c,0xa90ddf0d,0x2e059111,0x18230f12,0x731c3c0b,0x7214de22,0x5301b124,0x54228d1c,0x6d15331c,0x7f066c06,0x820b1322,0xa809a522,0xed09a409,0x45141f1c,0xc1253305,0x22253206,0xa7167614,0x22134523,0x31157f25,0x2b23f112,0xdf167c1d,0x3a22d311,0xcb0f470f,0x571d1d1c,0x6b122614,0x3208f920,0xdd16ac1a,0x1f122323,0x2216b01d,0x1616bd12,0x54231723,0x42234312,0xc116b423,0xde16c316,0x71244705,0x28241a12,0x7802f817,0xed245723,0x55041505,0x50014f01,0xe6170f24,0x4a12f805,0xc1065a06,0x1c1cea11,0x18141714,0xc1239414,0xd141b11,0xa0b9014,0xda10a100,0xec167411,0x7b1d7e1c,0x1e171c23,0x69153602,0x90000806,0x9410a10b,0xcb05c614,0x87000905,0x8a00020b,0xb2114a0e,0xde24ca11,0xc9020e1d,0x451a1608,0x30121020,0x3715f514,0x8236124,0xfa07f917,0x47193107,0x71236f24,0xd808a912,0xfc19d719,0x8514c005,0xc224c612,0x9a130024,0x570b8c10,0x4920860b,0x25091a1a,0xf0042b0c,0x3703be00,0x2200ee0c,0x43016704,0x2610e901,0x2c052805,0x2a11b905,0xd81cd705,0x4611b81c,0x4910d40b,0x28153d0b,0xe113cd02,0x49000b10,0x311ce40b,0x73239805,0x6f1ee807,0x8d052e07,0x83052d23,0xc3077707,0x781eff18,0x83077607,0xff1f0107,0xff1f0a1e,0x1a1f011e,0x1b1f1f1f,0x23079d1f,0x5b18d81f,0x3000f0b,0x27153e00,0x8e021d02,0xdb053a23,0xcb032e15,0x1103510b,0x341ce914,0x39166705,0x5315dc05,0x21132215,0xcd11c413,0xe11c511,0xa9004d00,0xe81ce710,0x1c22bf1c,0x1e081f08,0x660e3208,0x43115d11,0x7022d105,0x4f195516,0x561fa119,0x6f046d17,0x6e23a004,0x45054416,0x9a166e05,0xd504d123,0xa04ce04,0x9200520,0x6a220,0x4906a114,0xa7167605,0xba181123,0xa1062212,0xf24781d,0xe1149a06,0x8d149b02,0x1001d112,0xe8055218,0x8315ee11,0x4f055716,0x4e1d0305,0x87055005,0x2a11e916,0x2a055714,0xfe054f14,0x5305561c,0xae055505,0x8711f023,0xfb168616,0x47172c11,0x8f254b04,0x9215fd16,0xbe1d1216,0xbe144123,0x41057323,0xde11f314,0xf9055b22,0xfa23b211,0xf622ed11,0xdb23bb22,0x3d171705,0xa910d324,0x2004d10,0xe913b813,0xcc02091d,0xbe151c1d,0xe5020524,0xf416df12,0x6916d623,0x6622e305,0xac23fc05,0xb5163f05,0xfd15f723,0x75120f1c,0xf144405,0xd056d12,0xc056d16,0xd23c416,0xc4056d16,0x3e160b23,0xb056c14,0x3e23c016,0x923c014,0x9120916,0x3d160912,0xbc143814,0x2057323,0xc322ef12,0x93169023,0x9323c216,0xc3120216,0xb9056823,0x123c623,0xf0160112,0x37160122,0x6722f014,0x39120305,0x3b120714,0x623be14,0x3c056912,0x3d1d0c14,0x67160914,0x91143705,0x3e120916,0x6823c014,0xef23c605,0xee23bd22,0x122ed22,0xb923c612,0xc3169323,0x423c223,0x3623bc12,0x9011ff14,0xe71d0d16,0x4c0b5e10,0x83055e00,0x8311f516,0xf511f216,0x5d055711,0xbb15fc05,0xc11dee13,0x640e5d24,0xe90e5c0e,0x2a22c911,0xa60da814,0x110da70d,0x6e24d713,0x2b1df706,0x4a24d302,0x7d161314,0xd1161305,0xcc22fb23,0x4923cd23,0xd0057614,0x76057b23,0xd0169805,0x7f144623,0x46057c05,0x4c1d1514,0xfb057a14,0xc923d122,0x17057c23,0x8322f912,0xf8144e05,0x1223cb22,0x1122f812,0xf7121512,0x122fd22,0x82121923,0xcb169e05,0x12058323,0xfd23ca12,0xca22f722,0xfe169c23,0xc5069622,0x19133212,0x3d140325,0x5d15fd13,0x49055e05,0x50161614,0x74237514,0xf245223,0x1222f01d,0x26157b12,0x32030a25,0xe6231412,0x1c1e2823,0x1206a325,0x1508d71a,0xb0122e1a,0x23161f16,0x201e3303,0x671df203,0xf130a06,0x421d3424,0x6609801d,0xa2071f18,0xb9158815,0x88028406,0x3815a215,0xa205a312,0xc9059d05,0xf2231c16,0xa0231a23,0xa016c705,0xf1146c05,0xcb146b23,0xcb123716,0x9d231e16,0xf1146b05,0xa3146723,0xa516c405,0x860cdc0c,0x4614780f,0xd8163516,0xde124b16,0xae146b16,0x9163605,0xe8110d11,0x5404160d,0x4a015501,0x5a24c306,0xfd185106,0x331b021a,0xad231a16,0x7d175305,0xf6047a04,0xf91a2d08,0x42231b08,0x3716d712,0xd424d815,0x1e233424,0x3316db23,0xa0147516,0xfd156c05,0xa7025413,0xa819d508,0x5230a08,0x35058f23,0x2a23ff16,0x4a1d4123,0x30240d12,0x9f123c23,0x6c19be05,0x6e186b18,0x3a1d4514,0x53195623,0xa91f9a19,0xe804e617,0xca05a225,0x48233516,0x1709e721,0x6505561b,0x73168116,0xf105f012,0xbe148305,0xbe233c02,0x3c148202,0x4a124e23,0x5e02b71d,0xad0da010,0x481d470d,0x1402b81d,0xb902b824,0x5202c002,0xe916e612,0x7d14b505,0x7b237123,0x73127a12,0x74245912,0x58245923,0x52237424,0x18245824,0x7d245717,0xeb02e81d,0xed14b102,0x1602ea02,0xcb02eb17,0x15121123,0x7b236e12,0x5a171923,0x71127b24,0x1c244923,0xb0237b17,0xee237d14,0xed1d7902,0x5b14b102,0xab05f024,0x1b05e414,0xe237c17,0xe2171b17,0xec244e05,0xe6245b02,0xe9237c02,0x551e5402,0x6f02821e,0xef14b423,0x1a237005,0x23127c17,0xd80ddf0e,0x230ad20d,0xa91c0122,0x106a506,0x1c261d14,0xcd261e05,0x5216f002,0x3020331d,0xd419dd20,0x35173317,0xd8052017,0x9e17d917,0x8c258d25,0x66177225,0xa9176717,0x6a049004,0xb20e2917,0xc9114a11,0xc016c216,0x5416f916,0x2c05ca23,0x4f242e24,0xd5235123,0x58243805,0x1126823,0x53126817,0xce170123,0x6105c705,0x5405ca12,0x3005d423,0x9b170624,0xd005cf14,0x99149905,0x30170614,0x6105ce24,0xd8235812,0xc7126102,0xd405ca05,0xff05d505,0xfc1d3823,0x61235823,0xc1d6f12,0xdc170617,0xb918f005,0xe209f418,0x69236302,0x771d7923,0xe9171312,0x2022e13,0x7e02ea25,0xf01d8112,0xab244805,0xe5127f14,0xb705b816,0x1e02ba14,0xf1241517,0x84245e02,0x82171f14,0xe30aec1d,0x63224d0a,0x23245f24,0x15170a17,0x1514a217,0xa21d7b17,0xf5172414,0x61128402,0x601d8c24,0x88246224,0x82238723,0x8114be12,0xfb172612,0x8214bd05,0xc0238623,0xfb238214,0xf814b905,0x8a1d8805,0x2705f91d,0x831d8917,0xbc1d8712,0x8a02f314,0x4b128523,0xb6233e1d,0xf5128405,0x4f02f702,0xb61d4b12,0x50256905,0x42174817,0xd903d80c,0x2e07f603,0xbb1f7019,0xc0203e08,0xc9125608,0x7916ef02,0xb1245423,0x7d136414,0xa4159f02,0xc2029902,0xe605660e,0xf0143522,0xa925ef25,0x6d0c7217,0xa50c830c,0xa6029402,0xa60ec302,0xc502a00e,0x860ea60e,0x1e1e0402,0xc9131d13,0xca0eb70e,0xfc00fe0e,0xd100fd00,0x89028a0e,0x890ed002,0xba028802,0xdc02b20e,0x9102ac0e,0xbf0ed502,0xb50eb80e,0x22123002,0xb1162416,0xd902980e,0xbb029b0e,0xbb0edd0e,0xb10ebd0e,0x8d0ed502,0xb802a902,0xae0eb60e,0x930ecd02,0xd60ed702,0xd40eab0e,0x920ed70e,0xf20ed602,0x9e14d617,0xf414d61d,0xd814d717,0x7b128b14,0x9b17ff24,0x912b51d,0x66181318,0xd1248524,0x3214e514,0xfe1d8f18,0x12183205,0x91062318,0xb6248412,0x9914de12,0xe91da51d,0xfd14cb17,0xe601c017,0xb917e517,0xe816e605,0xa901b316,0xfa14d312,0xb701ae17,0x4107c212,0x7a07c31f,0xa217f724,0xca01b612,0xeb1da901,0xa1183514,0xa7180412,0xb11d941d,0x1414ec1d,0xdc01b206,0xbe01bd14,0xb017ed01,0x9406241d,0x4183312,0xb01da206,0x6a12b012,0x78060424,0xb601ca24,0x8a19c001,0x5b19ae08,0x9112581d,0xc30a5c14,0xc50a5d21,0x1b121923,0x950be012,0x91009400,0x8d094d1a,0xa001ad1a,0x92249101,0xd8139113,0x13088c01,0xc7200f20,0xd302d105,0x1c064d02,0x4b020a15,0x17227c1c,0xd712ec0b,0xc924b21d,0xa206381d,0xaa01ff24,0x201f813,0x31b580a,0xe724ab0a,0xe913a212,0x1201fe12,0xac24b215,0xef12ef13,0x113ac12,0x19213e02,0x221b1e07,0xc80acc22,0xff08090a,0x4193907,0x4824b402,0x381df606,0xfa066615,0x281f6b07,0xaf0be119,0xac037900,0xaa1dce13,0xa2064624,0xfd13a313,0xfb064401,0x1024ab01,0x4151315,0x5612fe13,0x9c159706,0x35253d15,0xef09f11b,0xd715d509,0xfa11ca15,0xf065c12,0xea00a502,0x710c5103,0xea011703,0xed170a03,0xee171505,0xc502181d,0xc9130413,0x130824,0x1713c613,0x11de902,0x2a24cd13,0xef13c215,0xeb06601d,0x215281d,0x2d24ce13,0xce1de915,0x8130224,0x4021613,0x2e130913,0xeb13bd15,0x6106601d,0xc41dec06,0xbf13c613,0xb066313,0x88258813,0x98175c04,0x600b2722,0x9d02e31c,0xfc243a14,0x715fc11,0xce02231d,0xd5022213,0x13153624,0x3213ca13,0xca13c715,0xf313c713,0x1e1df71d,0x35130d02,0xc9066715,0x50125613,0xcb05f71d,0x6f153f13,0x9b1b9c06,0x5d0a601b,0xf31c1b22,0x9e01f20a,0x73249f13,0x2a067106,0x851e5702,0xa06d302,0x1f13e11e,0xe511f813,0xf0160022,0xb13ef13,0xcd147825,0x97124416,0x71113e11,0xe324f60e,0x2e155413,0x2d07a519,0x11132519,0x4125061e,0x3a144014,0x11250c14,0x4113251e,0x15155e02,0xf110f21e,0xba10f810,0xb7071d20,0xe113f020,0x29132f24,0xfc154613,0x1820521d,0x5920511a,0xf41b3921,0x17153009,0x2b13c602,0x311d241d,0x800e6612,0x2c117d11,0xf50c6001,0x111db703,0x9412bf25,0x9512c006,0xbf249424,0x1251112,0xf81dbc15,0x2c0c6114,0xf403f501,0x10069313,0x9b069625,0x32139513,0xd01dc113,0xf7068612,0xfb250d24,0x961dc314,0xf60c3c13,0xf50c6103,0xc4063513,0xf301061d,0xc9012a03,0xba069c12,0x1c0d651d,0x9a0d6610,0xf9069b06,0xfb024d13,0x4b024a13,0x6c06a002,0x98069b15,0x20156d06,0x4f069f1e,0x6b13f802,0xa0069d15,0xfa1e2106,0x3223f713,0x17163c1d,0x39024d25,0x26157013,0x7502561e,0x133e15,0x7b20ed14,0x3b20f009,0x27251a13,0xd31fd81e,0xfe1fcf1f,0x1157613,0xf91e2614,0x7f133813,0x80252115,0x2d1fb015,0x971fb208,0x9d1a921a,0x281de51a,0xfc1deb15,0xfd013203,0xf7012303,0x5903ed03,0x5a159113,0x731e4213,0x3e031302,0x5b06c11e,0x5b159113,0x1f031313,0x4d030803,0x25134f13,0x53030703,0x502631e,0x291e5903,0xa21e3725,0x4606b915,0x9d13fc25,0x82156b06,0xd1253c02,0x98253b06,0xc2027915,0x6402d505,0x4506d31d,0xd21e5725,0x45136b06,0x29028525,0x7e252825,0x50028502,0x1906671e,0xd1130a02,0x8106ca06,0x8254602,0x81031f03,0x6606c902,0xf613d813,0x3724ea24,0x6b0c6c01,0x580b9c0c,0x82032c00,0x62136e01,0x5915571e,0x82156615,0x6106d401,0xe601831e,0x5f018206,0xa41e651e,0x611c4515,0xa3226222,0x7a019615,0xee06e11e,0xbf1e6f06,0xd41e7615,0xbe06ef06,0xbf138515,0x6e15a715,0xd915c013,0xc01e7906,0x86137315,0x65138b01,0x8c06f21e,0x961e7a01,0x9a1e6a01,0xd515b201,0xe7019206,0x78097306,0x851aae09,0x88019901,0xb4007213,0x970bb50b,0x7815bb01,0x71013913,0x51013a0c,0x390ba603,0x9e005903,0x3a00570b,0x40163d16,0xdd1ce212,0x9f11c615,0xd0f0e1c,0xf922300f,0xea22391b,0x6f036e0b,0x6b00a403,0xf700a203,0x7f08ba06,0xf6183c1e,0x5006f506,0xdd195519,0xc8195518,0xeb18dd18,0xb81ab720,0xbf07021a,0x4606f708,0x4819fe18,0xff06fc18,0xc2204119,0xfe184808,0x7200aa19,0xbe00a803,0xbf038000,0xcc075600,0x5522921e,0x92075607,0x420e2622,0xc5114411,0xc707461e,0xa030d1e,0x8c252d03,0x8a1e8d1e,0xd5189a1e,0xd8189c1b,0x21214009,0xd124e11b,0xc013cd13,0xc207411e,0x3e0a8d1e,0x131ec007,0x151e9a07,0x9a071607,0xcd07171e,0x501ecf1e,0xa2106307,0x570da70d,0xcf1ed107,0x6608651e,0x1b1fe508,0xce003400,0x860bfc10,0x5008300,0xc50c040c,0x8700c500,0x880bfc03,0x830c0503,0x831e8800,0xa3188618,0xbe18051d,0x5f0bc201,0xe1006000,0x64198b1f,0xc81f2608,0xd61efa18,0xf001ef12,0xde0a7b01,0x650a7a21,0xc0077c07,0x7b18c218,0x45077c07,0x7f252213,0xe01e2015,0x91e2501,0x211f9d1f,0xc0076508,0xd7077018,0x4a04e225,0x4b237b17,0x81d7624,0xf107881f,0xbf02c11e,0x6902c202,0xad076607,0x18a918,0xa9070519,0x66070518,0xf1168207,0x5f11f011,0xf7238a24,0xa01f1d05,0xa0079507,0xa11f1e07,0x911f1707,0x2c1f1607,0xa907a41f,0x941f1707,0xf3079607,0x8a05f702,0x6307b623,0xde18aa07,0xa122151b,0xf81edf0a,0x1218ba1e,0x44233924,0x1317ce1d,0x4d260f26,0xd404e404,0xec07b725,0xfd07bd18,0xbd18d41e,0x4518d607,0xff1f1d07,0x870bfc0b,0x2a075703,0xc107a61f,0xc307c207,0xc07c107,0xc71ec007,0x4207c607,0x4118f21f,0xf11f3a1f,0xcd18fa18,0x1918fb07,0xf4076c1f,0xc61f4318,0xfc1f4107,0x3f18fd18,0xf618fe1f,0x2403b918,0x8c0c250c,0x6918a91e,0x661e8a07,0x49070507,0xd319011f,0x56076a07,0x921eeb18,0xcf039803,0x3190100,0xa3184f19,0x261efb1e,0xd9190507,0x821f4f07,0xfb186b07,0x5119071e,0xc1f501f,0x8190d19,0xe307e119,0x4e189107,0x4f19051f,0xdd19121f,0x21191107,0xd81ebf1f,0x5507de18,0x1c19081f,0x3b18811f,0xd81ebe07,0xd11ebf18,0xac07a61e,0x141f5607,0xe107e219,0xe0074407,0x5b191807,0x5e07e31f,0x5707e51f,0x20191b1f,0x211f6019,0xec1f5b19,0x20191907,0x241f5c19,0x9107481f,0x6f07ed18,0xef189218,0xed1f6307,0xdd190d07,0x6f191207,0xee1f6318,0xed192207,0x64189207,0xa719241f,0xcd1ee018,0x5907151e,0xde1f3607,0x321ed01e,0x9b07581f,0xd007b418,0xb218991e,0x4f075907,0x5407ae07,0xe4074c07,0x6f07a718,0xa507f31f,0x600afc07,0x320b1622,0xd0f280f,0x1801520f,0x1f015704,0xdd0da20d,0x808050f,0x93080708,0xdc249513,0xd40bd001,0xc70bcf0b,0x441f4207,0xa71f021f,0x951f030a,0xc220b1e,0x61014d22,0x89033b00,0xf7075e09,0x39014c20,0x270ba603,0x1e1f9508,0x4f224908,0x4b0aef22,0x4c033901,0x4e084601,0x1d084908,0x1a0d6610,0xd524d310,0x621def24,0xac195119,0x56174b1f,0x7c257b17,0x7e1fc919,0xa401fc18,0xb101fd13,0xb0093720,0x6300f720,0x6a0c2a00,0x361fb919,0xca084f08,0x4008501f,0xb6196e08,0xc80c2c1f,0x8a00f803,0x48104a0d,0xbc00bd10,0xa103dd00,0xa2202208,0x851efe08,0x44085e19,0xc21fc708,0x4605ba1f,0x86148c23,0xdc077f19,0x8707961f,0x5d085d19,0x961fda08,0x51085207,0xa6198108,0x7116d105,0x9019b914,0x54201008,0xc81fd408,0x561fd51f,0xd51fd208,0xcd197d1f,0x1a23f91f,0xd4147523,0x6e03b803,0x4300f301,0x4803da0c,0xe040c01,0x94086a04,0x351fe519,0xbf034f03,0x9108670b,0xf3086819,0x9908761f,0x84088a19,0x6919af08,0x5c0e3e11,0xde1fed11,0xe0086b1f,0x1100bd03,0xb119b701,0x72200919,0x9a087608,0x2e1e1f19,0xd41e1e06,0xf612f51d,0x82199c12,0xf81ff508,0xf91ffe1f,0x2105c01f,0x6a242724,0x850a281b,0xb408861b,0xf819ae19,0xed1f6607,0xae08951e,0x7119b419,0xa820e509,0xfc07031a,0x9906fd06,0xc2201808,0x9919c119,0xa619c208,0xf90fa80f,0xb207aa0c,0x21192d18,0x9f08ae20,0xa4202408,0x3c19d008,0xf6203d20,0x60171519,0xb11d7a23,0x28202a08,0xde1acd20,0x2721021a,0x2919ce20,0xb309ae20,0x2609b409,0x590c5f01,0x50c620c,0xc3012d01,0x4819741f,0x3419e208,0xe619e120,0xb619f119,0x4019fa08,0x851e8218,0xfb08ba1e,0x80042419,0x5604220c,0xcd035703,0x3016a0b,0xde042604,0x1121121a,0x171a0421,0x6a20441a,0x6b0c6c0c,0x6316010c,0xd169105,0xce099921,0x7002d91a,0x4d05d51d,0x4a08c320,0x8f1f8d20,0x881f8e1f,0x5c256a04,0x81040b17,0x4801690c,0x8a077520,0x8f074907,0x171af918,0x1617cb0f,0x1804130f,0x40041704,0x30f150f,0xf1021d0f,0xa91df41d,0xde00e003,0xc91a1400,0xab08ca08,0x85177d04,0x71040717,0x45013a0c,0x41a1a20,0x4a08c51a,0x1d08c320,0x1e16ad1d,0x3c04261d,0x1d0c8201,0x5808e01a,0x83242220,0x3516f412,0x36016701,0x63205b01,0xef08e220,0x1b237c02,0x5c1b6217,0xa81b5d1b,0x2009d71e,0x9c17941b,0x2c25b104,0x2b08f21a,0x4f03361a,0x60034f0c,0x19015d01,0xf21a2d04,0x6508f908,0x6d206620,0x1b040120,0xf5016304,0xb508b719,0x200c7e08,0xb8041e04,0xf120eb1a,0x3c08fc20,0x3c1a3b1a,0x609071a,0x901ac809,0x261ac709,0x82040404,0x6901690c,0x6904250c,0x69013801,0xe1a460c,0x711a5109,0xa71a751a,0xca1a8e20,0x4b076e20,0x101a491a,0xaf1fad09,0x4a1fae1f,0x171a4e1a,0xe091409,0x4c1a4a09,0x91a491a,0x5a220509,0x94185818,0x96063924,0x4e091e24,0x86091a1a,0x4e091a20,0x4818ca1a,0x9a078c1a,0xb6076309,0x2000e507,0x8e03b40c,0xd207f20,0x861a4509,0x7b078c07,0x7f187e18,0x2c016d18,0xa017004,0x21207f09,0xb71eab09,0x2319b519,0x2600ef0c,0xf20c220c,0xe800f100,0x1f1ae51a,0x961a6721,0xa1209b20,0x651a6320,0x7301741a,0x8a042f01,0x8b01750c,0x3420ab0c,0xd420ae09,0xf6151e1d,0x73042f12,0xb00c8901,0x7c1a6f20,0x310c8d1a,0x8b017604,0x86073322,0xb821f522,0x7b21e01b,0x36043901,0xbf093d04,0x371a8420,0xbe20bc09,0xbd1a8420,0xbc093d20,0x41093a20,0x760a7509,0x7c0a770a,0xde036703,0x2b09310b,0xa5209c09,0x691a6220,0xc20f2f1a,0x4c1cc11c,0x46095d09,0x31f7609,0x71193808,0x97198908,0x3d1fb719,0x7b1fbd08,0xe30be403,0x69036e0b,0xcb036803,0x54095220,0x901f3809,0x5407611a,0x890bd103,0x54094d00,0x30095109,0x78034803,0x890cdd00,0xeb0fbb0f,0xdc00910b,0x7903300b,0x6d034800,0x912741d,0xde20d217,0x4d1aa320,0xe004e404,0x14099c04,0x4c09a121,0x9a20c909,0x9e0cf11a,0xb40f9c0f,0xb10cfb0f,0xa20bc90f,0xa2034e0b,0x4e007e0b,0xac007c03,0x730bc80b,0xd925cb17,0xf51ab204,0x941ab120,0x7e0ba40c,0x3e0bc601,0x3d0bc703,0x950c9104,0xbb09790c,0x3c097d1a,0x3d0f140f,0xbe0d080f,0xb80fc00f,0xeb09741a,0x34124420,0xbe16d516,0x8620ea1a,0xe5167709,0xa911de15,0x6d05e114,0xc2098d12,0xfe1ab61a,0x8f098a20,0x8a1abf09,0xe820fd09,0x5f00980b,0x280fe603,0xfe80d,0xfb20fd21,0xfb20ea20,0x6d098620,0xe920e509,0x8f1ac520,0xd0098a09,0x2a067313,0x260d0e02,0xcf0fe70d,0xd0fc90f,0x3d034a0d,0xd60ba703,0x7111d111,0xa91aab16,0xdf09691a,0xe404e925,0xd099925,0xd11ad121,0x2510240f,0x24212310,0x7e1aef21,0x5e02fa15,0x11210202,0x57210f21,0x9020921a,0x5b0d6020,0x4f10110d,0x150d5d0d,0xa09a110,0xd7099c21,0x1409a11a,0x170d5b21,0xbb0d5410,0x3d20bf20,0x60250709,0x341e1715,0xe90d7b0d,0x5515860f,0xf71e541e,0x716831c,0x3219de1d,0xe908b120,0xaa09a91a,0xbd077e09,0xdf09f707,0x22052317,0x2b0d2826,0xef102d10,0x35215309,0xf81af21b,0x809bd1a,0x301aff1b,0x809c121,0x2f09c41b,0x71b0521,0xf4142e1b,0xd1d0611,0xb6185507,0xc1212e19,0x7a09c409,0xe90d320d,0x809c40f,0xff1b061b,0x30212c1a,0x5018ab21,0x671b1418,0xab185007,0xcd1b1318,0xc81b1209,0x3709cf09,0x2c16c921,0x7a16c016,0x63189407,0x94104d18,0x7a0d930d,0x1c186307,0x39213807,0x34213a21,0xcc09d021,0x690e5909,0x6b117e0e,0x6e106d10,0xd309d510,0x77214109,0xc3072507,0x68076718,0x1d070907,0xd507191b,0x78071a09,0x66071907,0x1324d406,0xed1b1302,0xe21b2d09,0x2c192e18,0xa6199f19,0x40199d19,0x211b1f21,0x49214b1b,0x47214a21,0xa7109900,0x27064e10,0xc5065d15,0x341cc81c,0x9222090f,0xd71bd70a,0xf8131124,0xb20cb31d,0xaf0cb40d,0xa913ab24,0x78229113,0xb01eac18,0x710db20d,0xb30cba10,0x800db10d,0x750cc20d,0x4f10750f,0xe80cbe0f,0xc4214309,0xe509e01e,0x3009cd09,0xea1b2f1b,0xe81b3109,0xfb09ea09,0x5a212a1a,0x2a0a2b07,0x2321910a,0x803ed01,0xf9168c01,0x78056215,0x770f4b10,0x7a047910,0x4a175425,0x7e24e815,0x65082a06,0x7e1fae19,0x391b3721,0x7e21551b,0xf61b3921,0x7c1b4e09,0xe11cff21,0x251cfd22,0x7252803,0xee09fc03,0xcd215309,0xbb20cc20,0x5009f818,0x5e1b3b1b,0x3409fb21,0x5821601b,0x6b1b481b,0x6e244b23,0xfa09f823,0x830a1a09,0x91b4a21,0x761b590a,0x6a1b5a21,0xa1c5d22,0x3221980b,0x580a310a,0x5b0af122,0x95219b22,0x40219c21,0x7f0a3b0a,0x75042e1b,0x620c8a01,0xe3149d23,0x430a4402,0x7e21a50a,0xae21ab1b,0x3a090021,0xa609011a,0xca08a408,0x190a3419,0x160a370a,0xb618d11f,0x19219c1e,0x7f0a120a,0x4021aa1b,0xf424200a,0x91128216,0x2b0a0521,0x3712120a,0x64121114,0x8d0a031b,0x49219521,0x960a2e1b,0x2f216f21,0xce0a5f0a,0x7b0a6f21,0xbc1c8a18,0xe309e622,0x77214b09,0x76043101,0x5219001,0x891b460a,0x4d0a5a1b,0xde1bc30a,0x9821f221,0xc521c41b,0x2f131421,0x22250b02,0xb20b7300,0x1e002210,0xbd10bf00,0x78002910,0x630b740b,0xb300270b,0x2a10c510,0xb010c800,0x700b6710,0xac0a720a,0xdb10a21b,0x710b5210,0xd60a730a,0xdd095e21,0xc01aa020,0x2a1afe09,0x7721cc21,0x821d90a,0x3f10d700,0x8610aa00,0x55004e0b,0x4210e00b,0x5110dd00,0xe30b530b,0x96000e10,0xa600490b,0x5b004810,0xe40b8a0b,0x6b1f6810,0x31f691f,0x8a0b8900,0x3a00370b,0x4a109800,0x410d50b,0x691ba400,0x6f1bb60a,0x1d053116,0x29052714,0xf111b705,0xd01bd221,0xa310e21b,0xc70b5a10,0xd61bd71b,0xf320681b,0x91a2908,0xdd24bd02,0x840d831d,0xd40d850d,0xd1185d1b,0x8e0a8f1b,0xcf22010a,0xd40a8b1b,0x1b253f1b,0xc06c803,0xe0110511,0x811fd90d,0xc1085119,0x7d0bc00b,0xd6220501,0xd01bd71b,0xdf1f0318,0x1a1be91b,0x9118d01f,0xd522040a,0x6b21e11b,0xe31bb70a,0xe11bab21,0xcd21cf21,0xad21e521,0xb40a6d1b,0x306b31b,0xa5134903,0x161bdd0a,0xb0034122,0x1103420b,0x9c1f2b22,0x1f05220a,0xa01cb20f,0xd3058216,0x300c3a23,0xed010301,0xf0097b20,0x31153b20,0x7153015,0x121c140b,0x2622521c,0x9b22681c,0x9e1ecd1e,0x5c173922,0x6d173404,0x6e05d61d,0x3a0ac91d,0xbd0aca22,0xf422290a,0x2a1f721b,0x3c1f7319,0xfc0ad022,0xd01bfc1b,0x8322290a,0x56175804,0xcc1ce317,0x211d011,0xd40ad31c,0x4922430a,0xf90ad922,0x300ac91b,0xc8021f22,0xd7021813,0x60add0a,0x361c021c,0x60ac722,0x440ade1c,0xb224722,0x460adc1c,0x4c224b22,0xe10ada22,0x451c0d0a,0xdb224b22,0x4a0ad90a,0xb224522,0xdc1c0c1c,0xe31c080a,0x922410a,0x40ad71c,0x3c22381c,0x3b0acb22,0xbb203c20,0x56226508,0x28225722,0x140af01c,0x6e00a11c,0x4601460c,0x3c23811d,0xfb112023,0x3f111b0d,0x5601240c,0x5822630c,0xff225c22,0x122630a,0x37226c0b,0x30b021c,0x271c260b,0x2a0b001c,0xba0b021c,0xa30fa40f,0xeb235f0f,0x4d127805,0x1008ce20,0x8f1e991a,0x5f1bd10a,0x6a0b0a1c,0x8723d522,0xfb144905,0x3b227d0a,0xfe0e7b1c,0x38113710,0x74102e0d,0x490b120d,0x1522821c,0x1923cb16,0x63082b1d,0x7c196619,0x12228222,0x422840b,0x451c4907,0x62244424,0xea1f3323,0x72221d18,0x21229618,0x6822520b,0x961c2a22,0x950f970f,0x1314800f,0x2a16e024,0x72147323,0x9c1c6814,0xa9229d22,0xac1c7422,0xe41ce422,0x6f11e511,0x46204707,0x271c6320,0x607130b,0x6d216e0a,0x1f079f21,0x840aad1f,0x7f22b41c,0x7310b11c,0xa500270b,0xb619e608,0x71001e08,0xba0b720b,0x26001610,0xc0002400,0x2510c110,0xc1002400,0xb810c010,0x6d0b7610,0xc30b770b,0xb3001d10,0xc8002a10,0x670b6510,0x2e10c90b,0x660b6e00,0xc70b640b,0x2c0b6410,0x2a10c700,0x9a092d09,0x30001a20,0xab0b7a00,0xd90b8e10,0x3d0b8e10,0x8f0b8d00,0x7f0b7e0b,0x7b0b7d0b,0x6e10cb0b,0xbe00200b,0x650b6410,0xb710be0b,0x1310cb10,0x6c001900,0xb6001b0b,0x69001810,0x690b6a0b,0xb30b680b,0x16001510,0x21001700,0xb810bc00,0x21002410,0x170b6300,0x2310b100,0x5521810a,0x3410ae1b,0x210b700,0x4410d200,0x8010cd0b,0xd510b60b,0xf324a61d,0x4a0b5f01,0x4f10a700,0x8e0b8f0b,0x170def0b,0x9a111311,0xd1109910,0x930b4910,0x95000b0b,0xb000d0b,0xa0003e00,0x55109d10,0x540b910b,0x4c0b5c0b,0xb0b5e00,0xe0e0f0e,0xe70b610e,0x4b0b8310,0x830b4300,0x150e140b,0x9b0e170e,0x850b9710,0x3010ca0b,0x47001a00,0x3c0b880b,0x3710e800,0x7d001000,0x4e0ba200,0xad111e03,0x5e0e1f11,0xc8007d00,0xab0c940b,0x4400620b,0xda18a121,0x37115509,0x550e380e,0x510e3811,0x69034211,0x3d0bb000,0x35124312,0x6a0ba316,0x500ba100,0x840c0203,0x890e5b00,0x170e5811,0x5d07961f,0x60118b08,0x820e5f0e,0xf60bf803,0x5b11880b,0xfd11800e,0x3880b,0xce03560c,0xfc035a0b,0x20bce0b,0x417c00c,0xa25fd05,0x1100c60c,0xb0c090c,0xd90c0a0c,0x21113e0d,0xb10bfb0e,0xca037500,0xd20c1000,0xf7039a00,0x7903990b,0x8e043101,0x5a0bfe0c,0x480bce03,0x79154a15,0xcb00ee06,0xf500f503,0x35010100,0x1b00db0c,0x18039e0c,0x19155f1e,0xef0c5b1e,0xf40c5703,0xf20c5e03,0x5f0c5803,0x630c590c,0xf80c5b0c,0x2e0c6503,0x660c5601,0xfb0c650c,0xf70c5603,0x700c5703,0x50c6f0c,0xa8036404,0x22009c00,0x23042504,0xb700b404,0x6700b500,0x6901670c,0x80c6e0c,0x55040604,0x2f0d2b0d,0x880c260d,0x83016f0c,0xc6204607,0x74042d08,0x370b9801,0x36017b04,0xe60be704,0xb30bee0b,0xda009a00,0x65033f0b,0xaf007c00,0x5f0cae0c,0x970c980f,0xbb0c990c,0x730cbc0c,0x650cab0f,0x8b0cb00f,0x9b119e0e,0xa20f4911,0x5d0ca30c,0x8b0ce20f,0xe907530f,0x361f2e18,0x7022a50b,0x7e0cb51c,0x9a0f7f0f,0xc9136615,0xdd09a306,0xb71adf1a,0x2408321f,0xb90fba08,0x140d050f,0x4f015304,0x99105701,0x4c0cec0d,0x4e11720e,0xaf0f980e,0xca0f970f,0xc90cfd0f,0x491a8b0f,0xa0094c09,0xb307ab0a,0xa800df07,0x21010f03,0xbf059416,0xd60e0a16,0x4611040d,0x7b233216,0xb150a14,0x3601f115,0x490d4a0d,0x53024f0d,0x1406a202,0x160d5710,0xda1b1010,0xd31b0f18,0xce05c702,0x8f00c705,0x8f039103,0x910c0e03,0x600ce03,0x18038b0c,0x1a0d690d,0x430d350d,0x1e10020d,0x6b10200d,0x730dba0d,0xd6107810,0xc522330a,0xfb05020a,0x41050025,0x2c0fdf10,0x330d790d,0x290d7e10,0x2421fd07,0x120e7207,0x270de511,0x2f0d6c10,0x40031b10,0xf8159a25,0x770d780f,0x8c0bd60d,0xdd00a000,0x1d238c1c,0xbe0f6214,0x630dbf0d,0x57101b0d,0x2410230d,0x5d0d2b10,0x560d5c0d,0x1c1d9d0d,0xf401b518,0x93180a14,0xfd1d0424,0xe815f71c,0x510d2a0f,0x3311780f,0x590e300e,0x831fd808,0xb801da19,0xa21db71d,0x8b202208,0xd5021e07,0xd11def24,0x960ccb0c,0x4410540d,0x93105610,0xd31dc706,0x8a0b3b12,0x6d22bc1c,0x41054216,0x3922cd05,0xcd054105,0x3915dc22,0x1711d005,0x3b15dd14,0x3d11ce05,0x3d141705,0xea15dd05,0x1c15da1c,0x6023a014,0xbd1cdb16,0xbb234d05,0x38141405,0x72167205,0x1c141b16,0x6315db14,0xee140b16,0xb1127805,0x24114014,0xe911460e,0x6c11bf11,0x4a217116,0xac21821b,0xfa11ee23,0xe515ee1c,0xe511ef11,0xed11e411,0xe423b211,0xfb11ec11,0xee16811c,0xeb23b111,0xaa11e911,0xab10670d,0x6a105b0d,0x52106910,0x96209b1a,0xbb0d0620,0x940f9f0f,0x93249513,0x710cc513,0x230cb810,0x5b195908,0xf1df519,0xd4130e13,0xd31a1008,0xe4063508,0x69139601,0xf40d680d,0xef063f0f,0x33020112,0x1f0d7b10,0x130a1810,0x1a0a170a,0xe169612,0xe017c712,0x4e260604,0xc60dcb11,0xa90daf0d,0xc80f5f0c,0xc210ec0d,0xee0dc90d,0x1610f210,0xea119411,0x650be90d,0x510bd703,0xda1a1820,0x1313e308,0xe41e111e,0x4d25e325,0x95069625,0xb12c713,0xd080f08,0x830cc808,0xd0f840f,0xc194c08,0xd9035c08,0xfd03740b,0xf51de412,0x5924bd12,0x2813bb06,0x7a06ba25,0x15067115,0x40154013,0x71022b15,0x2a022b06,0xcf067102,0xd0067413,0xd4022313,0x29067013,0x17023002,0xd2153e13,0xcd023013,0x2f24e113,0xe124de02,0x6a13cc24,0xd3154506,0x46022c13,0x6f154515,0x43131406,0x7313d015,0x6e022a06,0x44067006,0x2f131215,0xb131402,0x16154313,0x171dfa13,0xe013d413,0xcd076c18,0xc422ff18,0x36169523,0x13154015,0x20dfe13,0x720e010e,0x71102b0d,0x270e000d,0x74112511,0x57133a15,0x3e0e1b02,0xe113411,0xf051005,0x1b131a05,0x1a154713,0x3711360e,0xa925ec11,0x4e25ef17,0xec17ac25,0x360e3204,0x730e3b0e,0x390b351c,0x8d14090b,0xd515d823,0xd6142922,0xf5163c22,0x5a16cf23,0x3d13e315,0x5f025c02,0xd806ac02,0x10054e15,0x2b1cf814,0xb123b314,0xe915ef23,0xef1d0311,0x301d0215,0xf7144314,0xe81e1111,0x9013dc13,0x92086719,0x3f160d19,0x6d120f14,0xc4120c05,0xb120c23,0x823c412,0x9143d16,0x3e120b16,0x8169514,0x6b160616,0xbc160405,0x7120423,0x3a143b12,0xee160614,0xc3056b22,0x2169323,0x2056912,0x2143c16,0x8143516,0x3c120812,0xf0160214,0xe1022f13,0x1522f824,0x4f144712,0x1222f914,0x1b169e12,0x19121912,0x8223d312,0x4d23d305,0xff144b14,0x7d144a22,0xd0057605,0xcc1d1623,0x39146a16,0x9e058212,0xff121916,0x4d144b22,0x22164614,0x86163523,0x7d144b05,0xd523cd05,0xe8144923,0x26214309,0xee0ffc1b,0x580fe50f,0x5d16b914,0x2e16b014,0xe9162712,0xaf161f23,0x64059216,0x9d123114,0x1c123a05,0x6c123a23,0x28231c14,0xd5147223,0x600e6716,0x8a118b0e,0x620e6311,0x5f118a0e,0x200e5e0e,0x28130215,0x6d103115,0x9b10290d,0xf20dfa11,0x720cb80d,0x9a0cb710,0x101d2705,0xd0d4e23,0x100d5010,0x810ff11,0xbe212e11,0x12188709,0xf023c612,0xd239c22,0x7e141b14,0xe223a716,0xf80e1f11,0x31111e0d,0xfb072f1a,0x7f145208,0xef16a305,0xf50dc60d,0x9b03820d,0x7f038303,0x48174c25,0xab0dfc17,0x3b0e6b11,0xf1146b12,0xc9123b23,0xf0231c16,0x1611960d,0xa1146d11,0xda16c505,0xd711920d,0xfb19380d,0xa3080307,0x1b0dfe11,0x1d115111,0xa711ab11,0x2a112c11,0x4f119d11,0xc50e7511,0x8e179625,0x2e229b04,0xe50b2d0b,0xed04ee25,0xbb262104,0x8e26161c,0xd80eac02,0x4612450e,0x47124416,0x861a491a,0xd8035620,0xe003570b,0x7600c60b,0x75103a03,0xe90f760f,0x14110e0d,0x97229911,0x72186522,0x4e115311,0x40e020e,0x4c0e240e,0x48044425,0x84228304,0x4a1eb022,0xe214a924,0x12066305,0x9913cb13,0x980e7211,0x9b254511,0x41027a15,0xbb22bd0b,0x1a061522,0xbc019c18,0x7b22bb22,0xe111318,0x62114611,0x131c631c,0xe0188c07,0x8c07e107,0x7604340c,0x380c9001,0x330c8d04,0x371a341a,0xf130e1a,0x8413d013,0x8719471f,0x891ef81f,0xba1f881f,0xdb0ce00f,0xfb098c0c,0xa20fd20,0x9099b21,0xb01b0921,0x16212009,0xa11b171b,0xb0196618,0x55082c1f,0x2302661e,0xd60e0703,0x9f0e0a0d,0xbb0a561b,0x3f1ccf21,0xcf0f400f,0xd11bd41b,0x6f1bb51b,0xb421db0a,0xef1bfe0a,0x40f051b,0xc11c940f,0x9a12c51d,0xa90e2824,0xf114811,0x7c0e7e0e,0x490e820e,0x6311ac11,0x570d670d,0x230d390d,0x480d5510,0xc0007903,0x37051a0b,0xe40f290f,0x4b034d03,0x68196703,0xa31fb119,0xcb15c80e,0x75256815,0xc5175325,0xc60ea50e,0x9a02a20e,0xdf0eb302,0xb3029f0e,0xbe02b402,0xfc0ebf0e,0x7011f511,0x6d002305,0x2a10c30b,0x2511b605,0x2f0b6e05,0x9d0b6f00,0x9c1cde23,0x8a0c0b23,0xeb00c703,0xa811e015,0xc8247d23,0xc801bb14,0xb038c00,0x6b11e70c,0xc911e616,0x600c800,0xe410800c,0x500ef60e,0x85108016,0xef107e10,0x51165e0e,0xf2165e16,0x7f165b0e,0xeb108b10,0x4d165a0e,0x54108616,0x90165516,0x84165410,0x590ef310,0x8f0ef416,0xf3108310,0x4e108a0e,0xf20eec16,0x51107f0e,0xf40ee516,0x5a16590e,0x4d165516,0x4f0eeb16,0xf7165b16,0xf80eed0e,0x6621880e,0x9f216821,0xe1caa1c,0x3817390f,0x34045c17,0xc51c970f,0x721c541c,0x4e226d22,0x881d1a14,0xe9203605,0x2519ea19,0x31252425,0x1d1cb91e,0x171cb00f,0xbd122c23,0x40256616,0x11174117,0xc91cc826,0xbc1cbe1c,0x4c1cc31c,0x216a114,0x360f2023,0xa71cb30f,0x441b7721,0x9816b90a,0x791d2805,0x75175404,0xf22f004,0x3712011d,0x91160114,0x961d1016,0x961d1116,0xd120f16,0xc056d16,0x2160d12,0xc3120d12,0xf056823,0x4120d1d,0x38143b16,0xe1d0c14,0xc416091d,0xc160d23,0xe160912,0xc312091d,0xcb242602,0x5d258102,0xbc175e17,0xb322bb22,0x21001722,0xaf10bc00,0xbe10b010,0x190b6c10,0x6a0b6a00,0x680b690b,0x13001a0b,0x6f10b700,0x941b711b,0x83055e21,0xae11f216,0x7f25a104,0x9f178317,0x5a04a525,0x530d5e0d,0xe725da0d,0xd617aa04,0xdf17a125,0xe604e404,0xa917a404,0xe617a417,0xdf04de04,0xdf25d204,0x7025d704,0xd504e104,0xa204e025,0xe304df17,0xb4244c04,0xe9236f14,0x7c05e402,0xea221923,0xad1be41b,0x27145e16,0x8e1d9712,0x1b019c24,0x77159a03,0x760d7502,0xbe10300d,0x1524cf13,0x5f24cf02,0x313c306,0xf1130213,0x27152f1d,0xbf1ddf15,0x8b049604,0x3523ff17,0xa8164116,0xda211b09,0x7808041a,0x4108091f,0x45006d03,0x230e0903,0x5f0e0611,0xa6082619,0x7e04d91f,0x9f25a517,0xee06161d,0xd8051c14,0x21261e17,0x24262026,0x96258f26,0x9f25ce17,0x8a048c04,0x8e1f7f04,0xbc1f8a1f,0x3c08ba08,0xf4185720,0x38206a08,0xff23fc1d,0x22145123,0xbb058612,0x2305c505,0xdc191024,0x6f1f5407,0x6e1f6c1f,0xa2087a1f,0x201ffc19,0x3130215,0x7b118613,0x7e0e6011,0x80117d11,0xa608a911,0xc808a508,0xb40eb30e,0x5718c40e,0x60194619,0xce1cdc16,0x511b3415,0x6709ee21,0x5c1b661b,0xcd051d1b,0x8a261217,0xbb0a631b,0xed12ec21,0xd3064212,0x371c020a,0x601c2022,0xbc1c2122,0x8c1c8a22,0x9a16741c,0xe31cec23,0xe2059223,0x6c1c6123,0x3c0b2d1c,0x8202be23,0x2402f414,0xcb128417,0x621d5c02,0x3f1d371d,0x6523fe16,0xc614941d,0x2a23df05,0x8d122112,0x18247e1d,0xa7243906,0xc243714,0xb924b702,0xa6177b24,0x2d04db04,0xf903c70c,0x7b0f7400,0xf40f7c0f,0xf71bc921,0xe709a621,0x2509ad1a,0x351cca0f,0xa922ab0f,0xec22ac22,0x11230f23,0xd305bd23,0xb7149502,0x7c177004,0xe411c817,0x11ce411,0xb81de913,0x70170c13,0x9d14a612,0xe3149e14,0x9e05dd02,0xe002dc14,0xa514a902,0xe305f114,0x74244805,0x5905e323,0xe1170c24,0xdf1d7302,0xd8237502,0x4300f305,0x5010e0c,0xc01afd1b,0x380c9009,0x3017704,0xff100110,0x811e540f,0x501e5302,0x5802851e,0xd31e581e,0x571e5706,0x5914881d,0x900e8c1d,0x7a0ddd0e,0xcd0cc30f,0x8a02a80c,0x8a02a702,0x60097c0a,0x37246818,0x8a14c618,0x8d14ef24,0x9f064512,0x1301f513,0x2c182b06,0x7f247518,0xd01b324,0x8e019c18,0x6e1d7324,0x1105dc12,0x131d2f23,0x440e1f23,0xff114211,0xc3065a12,0xc81de224,0x8e152a24,0x5b250406,0x6c02de15,0x6c23731d,0xaf1a701a,0x4f1e2e20,0x2e030713,0x4f025f1e,0xd9064d13,0xb1020a1d,0x680bb20b,0x3ff00,0x6e0c5104,0x9c036803,0x9620a200,0x7020a320,0xec0f6610,0x1d1ec60f,0x4907451f,0x119031f,0x1c103c19,0xdf103d0d,0xde1f5107,0x50073b07,0x1e07df1f,0xeb191819,0xec1f5a07,0xe61f5b07,0xe71f5f07,0xee07ef07,0x11192307,0xc1f5419,0x6418aa19,0x5d080007,0xab196019,0x38082e1f,0xa61fb308,0x9f1f9c1f,0xdc01f01f,0xd150901,0xb6070e07,0x511fd219,0xbb197d08,0xc90cce0c,0x981fed0c,0xa41ff019,0xa71fa31f,0x9a09281f,0x7e1a6420,0x9c088108,0xa600db19,0xad039e03,0x1f19c807,0xf4050720,0x3825fc25,0xee19ed20,0x650da919,0x440f8a10,0xff203f18,0x401a0119,0x49204220,0x7204f20,0x3801691a,0xb2013601,0xe423e516,0x70103923,0xb60d800f,0xb51ee407,0xad1a7707,0x3720ae20,0xb020ab09,0x801a6d20,0x4d20b51a,0xde214521,0x2620a409,0x2e092e09,0x5e092609,0x921c571a,0x11074d22,0xc623c316,0x94037723,0x64036200,0x5f0caf0f,0xc40cd00f,0x8f0cb90c,0x8e0ca60f,0x9513930f,0xea12c024,0xe10cab0c,0xc40cd00c,0xdb0f680c,0xc10cc00c,0x9910570c,0x980f940d,0x310a3221,0x681aa60a,0x1b20e309,0x3c022202,0xb60d0515,0x5e0fb90f,0xc80bc900,0xa80cf80b,0x3f0fa60f,0x3e043f03,0xab043c04,0xb4033f0b,0xbb20f81a,0x8d11f91a,0x9011fd16,0x5024006,0xa4105f25,0xc10da30d,0xc40fc60f,0xf209750f,0x7e097e20,0x7520f809,0xc10fc909,0x20d0d0f,0x481b450a,0xef16f61b,0xdf02c916,0xcc260c17,0xe81a0017,0xc319f619,0x3f1a8720,0x41115a09,0x3511670e,0x4210010d,0x3316910d,0x23056714,0x170a200a,0xa0d500a,0xa00d4e10,0xd21ad009,0x9709a31a,0xde210a09,0x74055c22,0xb009ad05,0x1e09b109,0xe709b021,0xb209ae1a,0x6209b309,0xe51d7423,0xe909b602,0x2709aa1a,0x6623101d,0xd80d9c14,0x90103b0f,0x911a5720,0x26102720,0x79102f10,0x45085019,0xb600f008,0x7c00ef03,0xce0fe20d,0x7c0d330f,0xa0fce0d,0xd21301b,0x961c311b,0x74229422,0xa20db810,0x3925170c,0xa1025213,0x610fd00d,0x3311f910,0xf715f814,0xa1b1b1e,0x7e10361f,0x7610340d,0xef097a09,0x2c104220,0x9410430d,0x800d990f,0x6e0da40f,0xb8106010,0xba18a207,0xa407ba07,0xb07bf18,0xd7211521,0xaf0cee1a,0x870f970f,0x730ceb0d,0x7423720f,0x14235e12,0x4f041504,0x420ff901,0x800ffe0d,0x300e110e,0x47217a11,0x680a071b,0x6b106c10,0x3413e210,0x9023c02,0xec230f23,0x4c0ced23,0x460d8f10,0x501b1421,0x9e0a4418,0x3921a221,0x800cc210,0x6410700d,0xa30cb10f,0xbe10740c,0xf924f80c,0xc132124,0xd070c20,0xf6164807,0x5a16cb23,0xad0dc00f,0xf521520c,0x521b3509,0x181b541b,0x211ae60a,0x9211c21,0xc1f7e1f,0x5021791f,0xf50a1a1b,0x9f0fa20c,0x5121790f,0x7e1b501b,0x55217d21,0x9118d11b,0x60079907,0x68235812,0x78216412,0x800a2721,0xb610b40b,0x8b0c8a10,0x9700500c,0xba059805,0x9e1b7016,0x510a3921,0x4d1ece07,0xa01b7307,0xd0219f21,0x9a161723,0xc8065316,0xa8020e24,0xa51b7821,0x750a3a21,0x5d0a381b,0x6d0b241c,0x87137c22,0x8306e913,0x7721b31b,0x8709851b,0x8c097e09,0x3f218b21,0x4a1b830a,0xab21b40a,0xae21aa21,0x1218b21,0x9b0a000a,0x9a217321,0xf0a3521,0xf0a150a,0xc1b670a,0x5c0a0c0a,0x5d21701b,0x6121691b,0xe41aad1b,0x691aa520,0x6109ff21,0x100a301b,0x630a320a,0x5b1b4321,0xe7108e1b,0xf116570e,0x560ee60e,0x810eed16,0x8a108210,0x7e165c10,0xeb164d10,0xe510880e,0x590ef40e,0x8c165116,0x5c107f10,0x7e165216,0x6e219310,0xe40a2c21,0xfb1bbc21,0xc21bb921,0x5d21df1b,0x44216a1b,0x1e0af91b,0xa31c1d1c,0x11186c1e,0xb816c520,0x8f16bd16,0x5821c11b,0x915310a,0x9e153013,0x620a641b,0x6d11500a,0x230e870e,0xc310bb00,0x6e002010,0xb70b6f0b,0x1310cb10,0x7e10d900,0x480b7f0b,0x10b450b,0x45000100,0x500b430b,0x9f0b4f0b,0xdd18a010,0xd521ad1e,0x710a7321,0xb00a720a,0xf31bac1b,0xf40d690f,0xd90b4f0f,0xda0b8e10,0x6a0a6d21,0xb321d50a,0xda1b911b,0x780a6621,0x9510a50a,0xd0000d0b,0xdc1ba521,0xa510e121,0xd70b4910,0xcc0a7721,0xd9052921,0x9210e91c,0x5800430b,0xab10d60b,0x140b5010,0x5a0d5e10,0xe60a830d,0xb621e821,0xf31bb81b,0x79207821,0xb81a4020,0x26052811,0x95220605,0x8022080a,0x880a8e0a,0x121ee0a,0x9d0a8e22,0x3e10d510,0xf40a8500,0xe81bc721,0xdf11c011,0xe221fb1c,0x51bbc21,0x6a126517,0x8b188a12,0x8c21fe0a,0x240a8a0a,0x8a220007,0x621fe18,0xf516101d,0xec1eb915,0x51bbf21,0x930a9222,0xd11bbb0a,0x621e721,0xb01de702,0xa7073f13,0xac1c7222,0xae0aad0a,0xb120b30a,0x6a20b020,0x16cc14,0xbd228524,0x5b22811e,0x7f227e07,0x99081d22,0xdd19511f,0x3108b019,0x3e06cf20,0xd806cc25,0x420ae20a,0xd6110422,0x710fa0d,0xe11c0c1c,0x1f225f0a,0x6f0afa1c,0xa909321a,0x240b0120,0xd40b001c,0x6a126e05,0x4922841d,0x7227c1c,0xe4110a11,0xc120b0d,0xb522f412,0xa13ae24,0x7321d615,0x2621c00a,0x5b22880b,0xb404f307,0xf5044017,0xef0df80d,0x63145d0d,0xa162a14,0x711290e,0xbd241f0e,0xa305bb05,0x35240c05,0x20e0423,0x511210e,0xc0e120e,0x6210d60e,0x340b500b,0x7d0d7f10,0x120e130d,0x3c0e0d0e,0x66056914,0x3e113405,0xbc113511,0x3b22bb22,0x4611400b,0xc7114311,0x201a0508,0xa1ce71f,0x72053e14,0x2a192b1f,0x76257b19,0x8a257204,0x610e5a11,0xbfe0e,0x650c030c,0x7c117f0e,0x9c1f9f11,0x2f08211f,0xee192619,0x7211991e,0x890e8d0e,0x880d9a0d,0x270e0e0d,0xe80e090e,0xe60bee0b,0xaa028f0b,0x1402ab02,0x36111711,0x91ddc11,0xa71dd902,0xcb12df13,0xbd0dbb1d,0xe910730d,0xa510620c,0xc80cfc0d,0xc60cfb0f,0xe21ce111,0x7010f61c,0x1e10fb0e,0x1a0af91c,0x1505811c,0x33144e1d,0x1e0fce0d,0x180d660d,0x210d290d,0xd71b201b,0x3c0ddb09,0xce0e2011,0xcd0e840d,0x7e0e0f0d,0x280e7c0e,0x2611a90e,0xce0f160e,0xa31caa17,0xf60dfe11,0x3106720d,0xac153402,0xad106c0d,0x1116c80d,0xc31d2623,0x38167211,0x6111d505,0x8d140816,0x63216a21,0x6114961b,0xed14971d,0xf011f811,0xff22ea15,0x7168f15,0xf516831d,0x53208911,0xbc091a1a,0x3a073120,0x1416c609,0x68123223,0x67085f08,0xe80af608,0xfe22590a,0x6823b811,0x9a107805,0xe0dbc0c,0xd120c12,0xe160816,0xa16091d,0xc0120b12,0xa120923,0xbc23c012,0x50217,0xf169605,0xf3120e12,0x5b143011,0x4f0b9a05,0x55005300,0x25234912,0x15120d24,0x1823c31d,0x7d161312,0x131d1505,0x144c12,0x1a121b23,0x18059912,0xf8123523,0x14121522,0xfb057a12,0x7023d122,0xb10cb010,0x19120e0c,0xae121a12,0xa01cbc1c,0xa3144c1c,0x17057f16,0xd0161712,0xfa10f723,0x190dd610,0x53122316,0xa4121c14,0xe0122016,0x780e760d,0x551d160e,0x1716a514,0x55122116,0x1d161614,0x451d1e1d,0x76007403,0xb323d800,0x9058d16,0x20122923,0x7400171d,0xf0b750b,0x91230923,0x6090505,0xeb090709,0x11bcf21,0xa16c122,0x2b230c23,0x2b123112,0x9214641d,0xd4123605,0x971ba321,0x8914571b,0xe5145405,0x5b23ef23,0x3623ef14,0x18145b12,0x6c05a023,0xd311db14,0x3b11da22,0x1c123a12,0x231d2223,0xdd230816,0x4a1d3f16,0x45072d12,0xf184e0a,0x5c226b0b,0x5303511c,0x5033a03,0xf614441d,0x8b20f611,0x9309821e,0xd31a921a,0xd605a220,0xee23f416,0x9e1ef31e,0xb7124d1f,0x8c124e02,0x1b234614,0x95121824,0xa1120a16,0x34134f15,0x42125a1e,0x8b02c323,0x4d242b14,0x8b05bb23,0x2b234d14,0xfe05bd24,0xcb125b16,0x261d6202,0x5c05c224,0x5d1d581d,0xbf14931d,0xfb16fa05,0xfe125b16,0x5c05bd16,0x591d5f12,0x2824251d,0x83149224,0x8408151f,0x3018e81f,0x3118e11f,0x58126124,0x5235023,0x64126117,0x512651d,0x65156417,0x56024515,0x63243023,0x6243012,0xdc126317,0x6126305,0xc8159e17,0x6b027c06,0xdb127812,0xb6122505,0x74161e16,0xa920b21a,0x561c5520,0x7918971c,0x7814b11d,0x73126a12,0x7914a023,0x1317141d,0xea14b117,0xf205ee02,0x5c05f302,0x770bc124,0xb7017d00,0x5d124d02,0x77126b24,0xa9127812,0x4414a714,0x801d8c24,0xbb246012,0xba05fa14,0x5208d714,0x8308d820,0xf4128423,0x63238302,0x4a172324,0xb0020706,0xef17af13,0x2217a925,0x801da418,0xa6182324,0x191da412,0xa612a406,0x9d17f812,0xa2061f12,0xb901a51d,0xd61d6d01,0xc214a205,0x9a249e1d,0xcc249f13,0x81063312,0x7b090b20,0xd312d407,0xd71dc712,0xd901ef12,0xd2065a12,0x5a1de81d,0xc313b006,0xef22f924,0x4523c622,0x49148a23,0x740a3b23,0x600a491b,0x31deb06,0x441d5813,0x39234a23,0xbe19fa20,0x35028408,0x27026a1e,0x29153e02,0xdb24d502,0x9d24d624,0x39236214,0x140d6324,0xb8101810,0xe088e19,0x9b1f0b20,0x5e079a07,0x36255804,0x6c083a17,0x5085919,0x42250325,0x73197402,0x90084619,0x40132806,0x78084b02,0x4e1fd419,0x4b204c20,0x93104020,0xc40f730f,0xd80bd900,0xe41dc30b,0x91139601,0x1112bf13,0x33249825,0x1b156813,0x19056e12,0x38069a12,0x3813f913,0x4f13f613,0xfb133702,0x16024a13,0x4f025325,0x781d1702,0x38169605,0x2133e13,0x7c252814,0x8706b815,0x2702fe15,0x4a134925,0xcd158813,0xce181f01,0x681e2f01,0x2e1e3402,0x2d06b81e,0x3502fe1e,0x4325271e,0x5a252d1e,0x90159113,0x3b031315,0x79159825,0x51b4602,0x24216b0a,0x8315a103,0x4206cd02,0x42253f25,0x3f1e4f25,0x9f032125,0xa1254115,0x83136a15,0x12ff02,0x2713bd13,0x8706cd25,0x6b06bb15,0x4806bc02,0xe514fc02,0x211e3201,0x8b026403,0x6a15b301,0xd41e771e,0xee138606,0xb302ea05,0xbb121014,0xd822f623,0x79138a06,0xa913811e,0x55138215,0x380e3711,0x4a25d60e,0x33050917,0xd2022715,0xe601e924,0xc3249e01,0xb01dd224,0x1913c013,0xf2021202,0xcb13c01d,0xfd111e24,0x311240d,0xd318d01a,0x89198718,0xf41fdb19,0xf913ca1d,0x6502201d,0xca066b06,0xf3021a13,0xd105cd1d,0x5505ce02,0xe7250215,0x78124413,0x34163414,0x78033003,0x2718b300,0xfc18b219,0xf5225d0a,0x9f12d10a,0xd6063324,0x8a178904,0x414fb17,0xc3139615,0x9d15671d,0x9b024913,0xed139d13,0x96129517,0x3c054112,0xce22cd05,0x3b053d11,0xea15da05,0xe51ce61c,0xe0141e1c,0xa305eb15,0xe002dd14,0x6f05dc05,0x420b3d12,0xa91c7e0b,0xaa02aa0e,0xa722b10e,0xb91c7222,0x820b3f22,0x4011ff1c,0xf7169714,0x3011f311,0x3f057814,0xa7121b14,0xce202908,0x53144e19,0xcb058814,0x19121e23,0x2205861d,0x1d16a812,0x5405871d,0xa4121c14,0x88145416,0xdd122305,0x88230223,0xa823dd05,0x5a16b016,0xe30a9814,0x471f2c1b,0x731c3c1c,0x581d2222,0x921d1b14,0xb323e205,0x63059816,0x3d16b914,0x860d8510,0xe423ef0d,0x8223e523,0x44208020,0x2e15411a,0xd3022d02,0x15067124,0x18123413,0x9a123523,0x10162d05,0xaf202f23,0xfb19c508,0xd116d023,0x23163916,0xf7147023,0x3123f823,0xd016d116,0x6516d216,0x7c0e590e,0x261f9711,0x951f221f,0xbd148b14,0x1a231805,0xbd146c23,0x9502d105,0x16081314,0x221efa08,0x25065f15,0x911d6115,0x2416fd14,0x5e149324,0x951cf81d,0xbe23ad23,0x581d5d05,0xf914981d,0x531d5e16,0xee15cf05,0x95170111,0xaf05cd14,0x651ba71b,0x9a1d660a,0x66149b14,0x9a14991d,0x99149a14,0x305d014,0x37243917,0xa5243724,0x26170814,0x4208ef1a,0xab15a91a,0x4137215,0x3207709,0xa1d7a09,0x13236017,0x7602dd17,0xb0020712,0x861dd213,0x66154d06,0x8a22b315,0xd622bc1c,0xa4150612,0x641b1824,0x64213d18,0x3d1ec818,0x4a114d21,0x54114b11,0x20152106,0x2212f615,0xb152515,0x1f13b702,0x213b815,0xe8152013,0x5a02111d,0xac106c06,0xdf105c0d,0x5d15271d,0xa1026806,0x3d1e3415,0x26022515,0x6d0a3802,0x151b6e1b,0xcf152502,0x67066824,0xe913c906,0xf24ed24,0xbd050b25,0x1017bc17,0x517c605,0xd61ad826,0x5a1ae41a,0xa2106610,0x93176e0d,0x5804b804,0x5d132e15,0x413f515,0x761dc415,0x59157315,0x7025d602,0x1b050904,0x3a157325,0x141b5413,0x821770a,0x6c1ef11f,0x5506a507,0x41025302,0x1211f414,0x28157c1d,0x2002fd25,0x4f156e1e,0x1b025902,0x1f06a825,0xdd122312,0x44031123,0x8515901e,0x581e5702,0x6515f61e,0xd511f805,0xca0bcb0b,0xb51b8a0b,0x4b0a5a21,0xd61fd408,0x6725461f,0x57254013,0x4f142a05,0x211eb05,0x8215ef1d,0xfb18401e,0x35160706,0x323bf14,0xba120016,0xe160d23,0xc0120f16,0xa120923,0xeb169316,0xc323c322,0xc6056823,0xc22f423,0x25056d12,0xc1e0413,0x12120625,0xa22f716,0xc4144d16,0x4c230223,0x7c23d714,0xfc145205,0xa115de22,0x1522d223,0x4c230216,0x44164714,0x30163412,0xed162412,0xbc171e23,0x24172102,0xa516aa12,0x1a16ab16,0x2d058d16,0x30162e16,0xc716c012,0xc516c916,0xb8162916,0x2d059f16,0xb3059e16,0x11233905,0x5325f924,0x5173204,0x42232d24,0x3f103d16,0x3d104010,0x3e080219,0xff163519,0x271d3923,0xcb18da1f,0xa316dc09,0xeb23f605,0xe725ef25,0x6b23ad25,0xa411e616,0xdb20df1a,0x800ef520,0x510ee110,0xf2165e16,0x5a164f0e,0xf4164d16,0xe516590e,0xe3165f0e,0x57165d0e,0xf3165816,0x7e0eec0e,0xfb164e10,0x301a3108,0x371cf91a,0xaf11be05,0x8522dc23,0x1168816,0x3a15f11d,0x2c21521b,0xc914651f,0x4a059d16,0x49234523,0xef22eb23,0x6b23c322,0x691e6c1e,0x816021e,0xc169412,0xc4169516,0xf23c523,0xc5160d12,0xf056f23,0x3e160b12,0xee169514,0x5160622,0xf2242016,0x5f16f416,0xf9142f05,0x9422f711,0xe6169916,0xd068613,0x2f16bd25,0x97162916,0xb6110,0xd0057600,0xf9169a23,0x9d144f22,0x951e1f16,0x9d249b06,0xa1145316,0xcf169f16,0xa1169a23,0x223dd16,0x53161d23,0x85161914,0xa416a505,0x9f16a516,0xae169a16,0xb8230e16,0xd916b216,0xa923db23,0xab16b716,0x54227216,0xc31c511c,0xa122a16,0xf2077d23,0xe8077f1e,0x2a162a23,0x2f22721d,0xfe1c381c,0x5416811c,0xc7123405,0xf3123516,0xf2168815,0xaa23b115,0xf311e923,0xb504f725,0x2e159417,0xab06c225,0xac25df17,0x88166617,0xc715f116,0xf09ca09,0x3f0e7d1b,0xc5114111,0xc024cb24,0xe4233c13,0x5b1d4616,0xfd24271d,0x2a16f516,0x90149424,0xff16f914,0x11056e16,0xc9056f1d,0xff16fa05,0x36045716,0x58045817,0x36045825,0x55170117,0x55235823,0x58243123,0xc9243823,0xd516ff05,0x5405ca05,0x3a243223,0xdc149d24,0x602d905,0x3002d917,0x79170624,0xef097b09,0x11213220,0x6009c81b,0x65255125,0x6d244704,0xb9243e12,0x23162a16,0x42046716,0xff256417,0xe224fd24,0x9170424,0xb0126217,0xeb1d7914,0x68236c05,0x4f236d23,0xeb16ed1d,0xfb156a16,0x62156913,0x60045f04,0x7f103404,0x340d7d0d,0xdb23f623,0xb51db616,0xf324901d,0x9d0fa00c,0x1314a30f,0x39171417,0xf10dee11,0xb61b870d,0x5a0a4e21,0x53173b04,0x43174425,0xc5255e17,0x91176d04,0x71258204,0x89047325,0x5b048704,0x320d7617,0x8a0d7310,0x8b176325,0x8c176225,0x9e258e25,0x9d259704,0x9c177304,0xb2049d04,0xb3259504,0xda210304,0xa921161a,0xb5259f25,0xac178104,0x9625a404,0x92049304,0xae04ba04,0x21178825,0x4207441f,0xb404cb07,0x1a04c325,0x2315641e,0xc2178f13,0x9104ca04,0xcc04c917,0xb825bf04,0xcf25c125,0x9225bc04,0xc104d317,0xb604c004,0x9404a504,0xdf04de25,0xa425d204,0xa804e417,0xa425cf17,0xd725da17,0xd125d004,0xd304dc25,0x8f25d525,0x8e04ca17,0x7b048217,0x75175a25,0xcb259717,0xb216b325,0xe9123616,0xaf172925,0xe70c5817,0x11012503,0x3c24d713,0xfa17bf15,0x55046a25,0xc225f925,0x8b098917,0xd11ac009,0x311b1009,0x81175121,0xc2258025,0x9504d425,0x11260917,0x50260726,0xf417d304,0xa051e25,0xda1cab26,0x1f051e17,0x38193f05,0x24193719,0xde052105,0x21052217,0xaa262326,0x8f176a04,0x7e04ad04,0x8425c617,0x8b258a25,0x8d04a325,0x9f176804,0x72049a17,0x98258e17,0x9a176404,0xa0179d04,0xba049604,0x92178b25,0x6b176f04,0xf408b517,0x5619f519,0x551c5c1c,0x7f258007,0x25174825,0x5c07550b,0x821c481c,0xe7228322,0xb801c814,0xa812a912,0x3314dc12,0x9e22a20b,0xe3068d22,0x6a155413,0x7b107c0f,0x78087510,0xa4087708,0xa200a500,0xc50dc100,0xd20e2c0d,0xa111d811,0xf91e2623,0x69069b13,0x331f751f,0xa61bb319,0xf91bb21b,0x8a098820,0x1a131b09,0xf8068213,0x28110110,0xf1181d11,0x1814d517,0xdb23da16,0x1011a723,0x1c112a0e,0x7717f118,0x431cd124,0x821cd20f,0xbd0f6c0f,0xc818c40c,0x151f9d18,0xef23c31d,0xe307a422,0x3d07a918,0x2e0d3c0d,0x401c8c0d,0xd01c820b,0x7513cf13,0x4d170106,0x371d6023,0xba07b81f,0xc71a0607,0x73079c08,0x6a0f6b0f,0x8e1f140f,0x491f1507,0x4a1fc808,0x161cca08,0x971cc926,0xe11ce323,0x9318201c,0xd517ea12,0xeb11d911,0x3d06cf1c,0xff254325,0xab232d23,0x781eff05,0x251ef607,0xc145c12,0x48078723,0xd91a0820,0xd81ebf18,0x4185218,0x907d719,0x6190719,0x26186b19,0x121efb07,0xd190a19,0xa190b19,0x9b190f19,0xeb07bb18,0x27192818,0x2c1f6719,0xe2192919,0x2c192918,0xb01f6f19,0xf809751a,0x3e193a20,0xd6080119,0x6d0cbd0c,0x808050f,0x41080708,0x7b194219,0x8f1f8e1f,0x7d1f8c1f,0xab1e971e,0x471f881e,0x921f8919,0x4c080c1f,0x16186519,0xbd0b2707,0x1e0b1d1e,0xac09330b,0xdd1a6d20,0xc8195518,0x2309ba18,0xe01af421,0x617c504,0x7f02ec26,0xb9245b1d,0x60185f1a,0x68098118,0xf3185f18,0xbb098120,0xc6031c1a,0xdc027606,0x52047725,0x75157117,0xb7024f15,0xd908b808,0xfb022019,0x29022c1d,0xe909e71b,0x4e154809,0xa0154b15,0xfd0a891e,0x98104221,0xdb0d970d,0xea25da25,0x551a5404,0xca1a501a,0xa01ba221,0x4219fe1b,0xcc1a0020,0xce10f40d,0x711a720d,0x6a20a71a,0x571e9120,0x3d171718,0xb605db24,0xb416c116,0xb60f0716,0x980f261c,0x9a25d717,0x3b080317,0x95193c19,0xd5211007,0xaa14601a,0xe1122416,0x131cfc1c,0xf71a2e14,0xc908f508,0x4818cc18,0xe250f1a,0x1b250125,0x17091409,0x8d091c09,0x201a5220,0x571a5809,0x4817ad1a,0x9a044125,0x5d1a5b20,0x6d20b41a,0x8220b51a,0x580d810d,0x77194210,0x4a19381f,0xb818b109,0x1b17de18,0xe5260b05,0xe416c023,0x9c1a9d23,0x3a095b1a,0x2c21521b,0x3010311f,0x430d7610,0x640e490e,0xc80dc411,0x4a0dc20d,0x5b116e0e,0xbd098111,0x3318681a,0x70093609,0xfa1ac01a,0x8918a020,0xc0098b09,0x441a861a,0x41a7209,0x6307bc21,0x5b16b307,0xc5059214,0x1f19c419,0x861abe20,0x6a20f709,0x661fe508,0x9e0a6708,0x3e21c71b,0x421a8609,0xc9201e09,0x5207a319,0x3509f521,0xce09d01b,0x8e1b1209,0x8c1f911f,0x781e9d1f,0x19071907,0x641ef71b,0x1b1ef618,0x42077707,0x49254704,0x431b2625,0x641b2721,0x3d189018,0xdd185021,0x33213509,0x4e1b2b1b,0xdd09eb21,0xc1b2c09,0x10210d21,0xfb05541f,0x3411f61c,0x5e09ee1b,0x781b4321,0x97216421,0x73087019,0x730a1008,0x30217421,0x970a260a,0x86092f21,0x551a721a,0x23217d1b,0x501b4f0a,0xe51b511b,0xe237002,0x12126c17,0x6205ec17,0xd413c306,0x9a0a3324,0x62219921,0x8b21891b,0x2f0a2621,0x6a21970a,0x69009f03,0xea199303,0x8d1fe81f,0x6011fa16,0x9418bf05,0xb186318,0xa207881f,0x92220508,0x971bd80a,0x990f960f,0x7721d70f,0x771bae0a,0xae21d90a,0xd4185d1b,0xbb1bd31b,0xa71ba81b,0x5b1c5e1b,0x6b22961c,0xa201390c,0xc9223000,0x270abf0a,0xf60abb22,0x3417cc1b,0x331cb10f,0xf6222722,0xc9223a1b,0x222390a,0x3722361c,0x77080a22,0x3e19381f,0xca24a906,0x611c211d,0x11c2022,0x221c240b,0x2622681c,0x2222671c,0x251c2a1c,0x2a1c251c,0xf922681c,0xe01ee91e,0x4310a41f,0xff003900,0xe324f624,0x41255713,0x6a174017,0x5f1c5222,0xd41ed71c,0x79189d1e,0x3b1e5702,0x8920c825,0x5a1a8c1a,0x951c5f1c,0x241c2222,0x521c231c,0x5f22951c,0xec221d1c,0x4b0aa81b,0x8b22861c,0x5e1c5122,0x4d0b211c,0x4f0b1f1c,0x531c541c,0x7e1c511c,0x1f1c4f22,0xa31be00b,0x970ab10a,0x52229518,0x351f2c1c,0xdf1b3a1f,0x8918d01b,0x63205a07,0x55206420,0x5c229207,0xa30b351c,0x391c7a22,0xcc0ac822,0x700e5c0a,0xb2116011,0x511c7c22,0x891c4e18,0x80228c22,0x750f700d,0x219ea0f,0x9419f71a,0x9d1ff319,0xb71c8419,0x731c8522,0x7a0b351c,0x331d391c,0x2c16351d,0x8f0f010f,0x160f0c1c,0xf91c9f0f,0xfe0fff0f,0x1b10110f,0x160fcf0d,0xbb0f1a26,0xa1cbb1c,0x1e261126,0x1d260a0f,0x17260d0f,0x1b1ca40f,0xb1cc705,0x411c9626,0x80f030f,0xcc0f060f,0xc31cae1c,0x451cbc1c,0xd10f420f,0xce0f3e1c,0x460f441c,0x471ccb0f,0x3d0f3c0f,0xab1cd50f,0xcb0a6e1b,0x930ea221,0xa10ea10e,0xa30e970e,0x7c0ff00e,0xd40fce0d,0xcd0ea40e,0xe413d80e,0x5a13e424,0x5910a50b,0xd715d50b,0xf011ca15,0xa616751c,0xdb11da23,0x76054711,0x2d240214,0x9e12cd23,0x9c01ec13,0x72141b23,0x13169d16,0xef058312,0x1813ee13,0x6205c81e,0x91d5c1d,0xa161412,0xd70dda16,0x1a10fd0d,0x1d16191d,0x1a16a116,0x25161d1d,0x201d2216,0x28122e16,0x23162916,0xe81d2a16,0x1e19c923,0xf2201b20,0xf31af41a,0xa1146d1a,0x29231705,0x2918e21f,0xb405b219,0xf0164505,0xb6097b20,0x3c1c7d1a,0x351c8a0b,0x221d3e16,0xe1240623,0xcd123c16,0x91039500,0x10050e03,0x85260505,0x81048004,0xf6143004,0x5b055b22,0xbd02d112,0x631d6205,0x66125b1d,0xd9149a1d,0xce126102,0x4a1d6305,0x7f1fcc07,0xd91d7119,0xad149a02,0x751d7614,0xcb00d21d,0x4000d100,0x4a0b1907,0xa0177f1c,0xae04af25,0xeb14b014,0x85258205,0xa3258625,0x1405eb14,0xeb14ae17,0x9a14a305,0x71236314,0xcd0f091d,0xd01c961c,0xf1da101,0x9000cc06,0x4a0c0d03,0x3184918,0x9325b507,0x68049404,0x3500320b,0xb420b200,0xec093920,0x181be61b,0x70adc22,0xf91bf71c,0x2702291d,0x2f153f02,0x7b131402,0x7c22a71c,0x4515371c,0xf913d315,0x3013d21d,0xdf00de02,0xe800e000,0xdc13da13,0xb51ab213,0x5f20ec1a,0x630a610a,0x351e110a,0xfb154f02,0x5313e624,0xc31e2515,0x41dbf12,0x9601e415,0x21074413,0x2007e01f,0x4f1e251e,0x25133702,0x17024a1e,0x39133725,0xfd025013,0xfb156c13,0x39024d13,0xe61cfd13,0x381cff11,0x830b8500,0x39003c0b,0x62003800,0x8f0b8e0b,0x2143c0b,0x7b143516,0xed037903,0x28027e0b,0x52136c25,0x9e253f1e,0x3a159b15,0x36027a25,0x371e591e,0x6222a01e,0x391c631c,0xcc24d815,0xa260713,0xd8261126,0xb6190407,0xfe1a3b18,0x5b08fc08,0x9d095a09,0x341ea91a,0x10187107,0xf17c605,0xd71ed405,0xd1ed21e,0xf023b912,0x6a115922,0x5c116c11,0x85085b08,0x1824f619,0x4613d813,0xeb05ba23,0xcd18d216,0x691f1918,0xf71d3214,0x512fb23,0xfa12f702,0xf81f001e,0x841efc1e,0x141ef307,0x191f151f,0x1079f1f,0x831f201f,0x771ef607,0x981f1807,0xba1f2207,0xdf1f501e,0x811f1c07,0x6e1eba18,0x8f10f50e,0xcd1ee011,0x2d1e9b1e,0x701f6919,0x980e8e1f,0x3911b411,0x52068502,0xc3074915,0xba1af91e,0x5621b521,0xa21f980a,0x80194f1f,0xb505f21d,0x591fd714,0xdf083908,0xac04e925,0xab17aa17,0x8046b17,0x21ef01a,0x8e23eb1f,0x5216a405,0x1d079819,0x9a198e08,0x981ff319,0x1d1f9907,0x31ff708,0xb51ff620,0xd200619,0x11ffb20,0xfa1ffa20,0xf720021f,0xc200211f,0x860b6d10,0xf81f841f,0x4615961e,0xbe031a1e,0x861ebf1e,0x9b07791e,0xc2081c1f,0xc40e7c0d,0xd914f60d,0xfb01dd01,0xfc025c02,0xc922c502,0xfe053511,0x32252702,0xfb09861e,0x85098b20,0x3f183a1e,0xe1150e18,0x8b12f512,0x531a5420,0xf145a1a,0x74162623,0x1311310e,0xc705750e,0xe322f123,0x718e51e,0x6c1c6121,0xde0b2d1c,0xe225dd25,0xda185825,0x121bdb1b,0xef0ff010,0x66115d0f,0x78116911,0x271b5921,0x1222fe0a,0x1b169c16,0x169e12,0xa71a9f23,0x761aa61a,0x320d740d,0x71127410,0xe614ac23,0x820a8321,0xd41a990a,0xb41a9d20,0x221aeb09,0x651a8f21,0x41ee107,0x391acc21,0x516421f,0xab240324,0x35185018,0x191b2221,0x3f1b1e07,0x3522771c,0x50214e1c,0xaf214f21,0x8b22be1e,0xbd22bb1c,0xeb1eaf22,0x9e11d81c,0x58216023,0xe61b481b,0x86068313,0x15154106,0x8524e013,0xb01b811b,0x1f059621,0xb116af16,0xcb1bb21b,0xb021cb21,0xdc1bb11b,0xd021ce21,0xd921c421,0x9221c521,0x711e4515,0xf516cf02,0x8c231d23,0xff0a8f0a,0xf317b421,0xf117b504,0x2809be1a,0x960a9421,0xb222070a,0xdc0a961e,0x131bde1b,0x91221522,0xac1eb322,0xa722161e,0x3d1bdd0a,0x20228c07,0x3c0b3a0b,0x911c8a0b,0x222040a,0x290abd22,0x211bf422,0xa4232223,0xd0223c05,0x2f22350a,0xbf223022,0x2422700a,0x621c231c,0x701c2422,0x64226522,0x7b225e22,0x431c4522,0x5314a31c,0xe5245524,0xef142f11,0xd8211111,0x6d1ad91a,0xaa1a731a,0x681c6520,0xb1c6b1c,0x72127017,0x3c05d31d,0x19243424,0xc518880b,0x89228a1e,0x35228c22,0x3922a30b,0x1506690b,0xf4154113,0xe904f204,0xbd22be25,0xd01c8d22,0xdd141711,0x2f054e15,0x111e414,0x9115fe16,0xe8168d16,0x6f22e522,0x96160e05,0xb120a16,0x4523c016,0x561e5725,0xf014371e,0xf422e922,0xdf22f315,0x6c23aa22,0x9c11e916,0x7723ca16,0x1822ff05,0xc9057d12,0xfc057c23,0x3801f522,0xc1063b06,0x93230a16,0x17122105,0x1022fc16,0x25231223,0xa607a51d,0x3b1f2a07,0x1f231c12,0x9e231523,0x6e059f05,0xbd174b04,0x2a016f17,0x9a042904,0xa41ffe08,0x3e05a619,0xaf23fb12,0x2707ae07,0x351d421f,0xd423fb1d,0xec10700f,0xa152b0f,0xdb021913,0x7b25a204,0xdc10dd17,0x4810db10,0x9e1d1714,0xeb234416,0x78234516,0x34123d14,0x2c148f16,0x2b234f24,0xbd05bc24,0x581d5d05,0xbb234a1d,0x4d05bc05,0x29242423,0x5b234b24,0xc0234e1d,0x30055605,0xd8055305,0xc8235002,0x62234f05,0x9a1d6912,0x99243014,0x691d6514,0xd6235712,0x65170405,0x61235a1d,0xda170823,0x5d170505,0x8126d23,0x77243e17,0x74237523,0x631d7123,0xe7149a12,0x50126a05,0x15237a24,0xad02e817,0x65244914,0x67236123,0x9414a923,0x661fe519,0x6b236508,0x6b14a423,0xa4127223,0x69236d14,0x6614ab23,0x73236c23,0xd805da12,0x72235d02,0x4b236b12,0x5714b224,0x7b237724,0x7a237112,0xe9237c23,0x96244a02,0x1000d203,0xa01090c,0xca0c3f01,0x8d038e00,0x5038803,0x8e0c020c,0x4000060b,0xe61cff00,0xad22da11,0xf823ab23,0xc723c51c,0x3c120f23,0x3d188507,0xcb121207,0xc423d723,0x4d23d223,0xd2057d14,0xa2161323,0x9004110,0xfb04fa00,0x7b17b704,0xa5145505,0xb9021016,0x5324bf13,0xb5020e06,0xa923e313,0x3323e216,0x3516461d,0x3723f616,0x4f16cb12,0x5824251d,0xbd234d1d,0x4e242b05,0xfd242723,0xe1065116,0x8913b81d,0x42148814,0xd205cf23,0x74243505,0x45244f1d,0x25186a24,0x34071b07,0xd305c824,0x571d6b05,0x3f235e23,0x35243624,0xf40cf224,0x2a0d070c,0xe212f915,0xdc170c1d,0x471d7305,0x4c244a24,0xee02ed24,0x7c127e02,0x4f170e12,0x61244424,0xfa14a723,0xba1d8505,0xf702f314,0x8a238a05,0xf824611d,0x84238705,0xf9246223,0x25238805,0x8514be17,0xbc128123,0x83128214,0x831abc12,0x681e8909,0x85098718,0x7064a09,0x7813b002,0x7d154b06,0x6c144a06,0x7143e05,0x1110d600,0xab22ae00,0xff22ad22,0xca16f916,0xa1dc805,0x6501f115,0x22071e18,0xa1188e07,0x5309da18,0xbc1de206,0xe91d7724,0x205eb05,0xce24cd13,0xf01d8224,0x70237e02,0x710a391b,0xb03921b,0xb00c090c,0xfa0cef0f,0x5b23480c,0x7505c01d,0x8524fa06,0x700e5d06,0xf90e4211,0x32255525,0xfc00fd17,0xd60c2c00,0x80058223,0xe4244705,0xff244c05,0x4110010f,0x88161d0d,0x871d1a05,0x89145405,0x66158505,0x26158602,0x8916ad12,0x6b04e205,0x225d725,0x6a185709,0x29146118,0xad122e16,0x7230e16,0xc624c423,0xd91ddf24,0x1112bf01,0x220ac225,0x340ac822,0x57172a17,0x54173425,0xbf255804,0xd4138615,0x9e049d06,0x73259704,0x97049d17,0xa6177925,0xc0177b04,0xc825bb04,0xbd178704,0x8c25b104,0xc1178d17,0xa704e604,0xa317a417,0xd404e117,0xde25e125,0xe725e225,0x501d6c05,0x120f1024,0x50f130f,0x940f040f,0x1050b1c,0x1217bc05,0x7260805,0xf00da26,0x5b00dd01,0xa90caa0f,0x960ca90c,0x960ca70c,0x490f4a0c,0x960ca70f,0x490ca60c,0xa80ca30f,0x4f0cbe0c,0x4f0cbd0f,0x4e0f500f,0x4e0f4f0f,0x4e0cbd0f,0xbd0f6d0f,0x6c0cbd0c,0xbe0cbe0f,0x710f6c0c,0xbe0ca30f,0xbe0cb40c,0x580f710c,0xbe0cb40f,0x5b0f580c,0xa70ca90f,0x960ca60c,0xa80ca80c,0x490c960c,0xa80f5d0f,0x5d0ca30c,0x610ca30f,0xa30f610f,0xb20cb40c,0xb40f610c,0x650cb10c,0xba0cb20f,0x660f690c,0xb10f660f,0xb10cb40c,0xb40cb20c,0x660cba0c,0xb50cb40f,0x620cb70c,0xb30cb70f,0xa40f620c,0x570f770c,0xa40ca50f,0x580f570c,0x570ca50f,0x570f580f,0x630f590f,0x620cb50f,0x630cac0f,0xb40f620f,0x590f580c,0x590cb40f,0x590cb30f,0xb30f620f,0xbb0f670c,0xad0cb60c,0xb60f670c,0xb60cad0c,0x5a0f600c,0x600cad0f,0xac0f5e0f,0xac0f5a0c,0x5a0f620c,0x4f1a8f0f,0x5d076109,0x490d4f0d,0x4e0d4f0d,0x490d360d,0x360d4f0d,0x5d0d5c0d,0x5d10060d,0x60d490d,0x670d6810,0x630d630d,0x370d5c0d,0x60d5c0d,0x370d3710,0x350d460d,0x680ff40d,0x680d350d,0x350d630d,0xf30ff90d,0xf30d420f,0x420ff40f,0x370d630d,0x60d350d,0x71e011e,0x21e071e,0x2154e1e,0x4e24f01e,0xee24f015,0xee154e24,0x4e154b24,0xd41ed115,0x6a1ed71e,0xcd07521c,0x1507521e,0xd11ecd07,0x6a1ed71e,0xd107571c,0xc91c6a1e,0x6824df13,0x4224df06,0x2b066815,0xf40abd22,0x2a1bf41b,0xcc222b22,0x20240016,0xad232023,0xe1231a05,0xe21ef11f,0x8d1fe21f,0x8f1fe419,0xa7176904,0xff23ad04,0xff22e11c,0xe122e21c,0xb522e122,0xb523ad23,0xad15f723,0x415f723,0xed23ab1d,0xee086b1f,0x6c086b1f,0x9d1fee08,0x8d210c09,0x1c182607,0x77247718,0x83181d24,0x2614e224,0xe5247718,0xaa1dcf12,0xe61dcf24,0xaa01fb12,0xfb1dcf24,0xce24aa01,0x1012e51d,0xf194d08,0x90194d08,0xc8080f1f,0xd714d601,0xe6221814,0xab0aab1b,0x1c0aac0a,0xae0aac22,0xe4221c0a,0x3313f501,0x5111ea13,0x5111c005,0xbe1cf905,0x38003c11,0x380b4500,0x4510d000,0x9710d00b,0xf70b4510,0x1015f511,0x200fe612,0xbd102c0d,0x8509871a,0xf4098509,0xf41abd20,0xbd098120,0x7a1c401a,0x7a1c3f22,0x3f1c2222,0x371c221c,0x61c351c,0x55151a02,0x54151a06,0xb1065506,0x28202a08,0xde202820,0xd908b119,0x940a921b,0xdc0a960a,0xdc187c1b,0x7c18761b,0x941bd918,0x55187c0a,0x590e3911,0x2e0e3911,0x2e11590e,0x5911580e,0x64115811,0x890e4911,0x470d240d,0xe40d2410,0x470d8a0f,0x480d8a10,0x33113210,0x33112e11,0x2e113011,0x60b0511,0x6226f0b,0x6f1c360b,0x71226f22,0x710b0522,0x111c3822,0x2f1c300b,0x710b081c,0x50b1122,0x300b110b,0x301c271c,0x670b081c,0x301c2722,0x822671c,0x670b0d0b,0x26226722,0xd91c271c,0x1b16a223,0x1816a216,0x43161b16,0x59135a1e,0xd5067613,0xd5068713,0x871e0c13,0xfc223c06,0xfc22421b,0xd80abd1b,0xfc22420a,0xbd0ad81b,0xda222b0a,0xda0abd0a,0xd50ad80a,0x420acb0a,0x3e1d3722,0x3f123f16,0xa9232712,0x4005a905,0xa81d3712,0xa71fa41f,0xa91fa71f,0xa91fa81f,0x5f08261f,0x411a3f19,0x21207c1a,0x1b16b21d,0x1f0df916,0x1f111a11,0x1a111d11,0x2b044611,0x47044717,0x44172e04,0x46044804,0xc6044704,0xcd149002,0x2011db02,0x2015e414,0xe411dd14,0xef15e415,0xe416741c,0xda167415,0xc821c611,0xc80a6421,0x641b9a21,0xf3124e0a,0xf302f205,0x76199a1f,0x97071108,0xd070c1e,0x1119b807,0x351b6a07,0x800a150a,0x7d090920,0x4b090920,0x7d1a431a,0x43090920,0x1b15471a,0x1b068813,0x88067f13,0x1e067f06,0xab131813,0x1e08271f,0x1f081e08,0xc31fab08,0xd1b0e09,0xc61b0e1b,0xea1b0a09,0x931fe81f,0x600f7919,0x600f780f,0x780cb60f,0xf808f70f,0xad071808,0xac09b109,0xb209b109,0x7b09ac09,0x6f22a81c,0x6e1c6f1c,0xb522a61c,0x801d4305,0x391d4314,0xc4241323,0x72248001,0xa4248024,0xaa01ad1d,0x8d028f0e,0xab029102,0xa902920e,0x8d0eaa0e,0x91028d02,0x93029202,0x96029502,0xae029602,0xae02930e,0x930eac0e,0xa9028e02,0xac028d0e,0x8d028e0e,0x92028d02,0xdf0eac02,0x4f008203,0x4f034f03,0x4f01180c,0x1801600c,0x19011801,0x190bb801,0xb703e301,0xdf0bb80b,0xb8034f03,0x18034f0b,0xb7011901,0xe30bb80b,0xb70c3e03,0xfa01000b,0x3e0c2e00,0x2e01000c,0x3e0bb70c,0x8100810c,0xbd034b00,0x810c2e0b,0x4b0c3e00,0x8306b413,0x31158315,0x2c134b1e,0xd108a620,0xd208a619,0xd219d119,0xd108aa19,0x2d08aa19,0xd119d520,0xd508aa19,0x81b4919,0x8217a0a,0x7a0a120a,0x180a1921,0x121b540a,0x7a0a190a,0x47216d21,0x470a1b1b,0x7a0a071b,0x470a1b21,0x19217a1b,0x7a1b540a,0xc823ba21,0x7422f123,0x720a3c1b,0xed1c111b,0x291c290a,0x110b071c,0x4d11571c,0xbb11740e,0xd5011200,0x13011200,0xd50c120c,0x12011200,0x9d0c130c,0xe60c1203,0x49167915,0xe3236205,0x7805df02,0x79175504,0x3c194025,0xb4193b19,0x590c7900,0x26030101,0xff134803,0x48030102,0x60158213,0x158102,0x81158203,0x4802ff15,0x6b113,0xff158103,0x92145602,0x241d2405,0xab16b71d,0xc90eb516,0x350ec80e,0x70119711,0x141db10e,0x6a246506,0xcc143605,0xa6024723,0xa6064913,0xaf13a513,0xa6064913,0xa513af13,0x1a13a413,0xf91afa15,0xf91af81a,0xbd1af71a,0xf91af809,0xf809bd1a,0xfb21291a,0x2114551a,0x5230512,0x55122423,0x44131c14,0x70067015,0x8113d406,0x7e13d406,0x7e068106,0x811e0006,0xa109da06,0x171b1718,0xda09e71b,0x64235909,0x64235f12,0x5f14a312,0x6d1a3423,0xce207020,0xa902ab0e,0xa80ecf02,0xcf02a702,0xd102a70e,0xa90ece0e,0xcf0ecf02,0xd00ed10e,0x190ae60e,0x191c091c,0xe9225b1c,0xde0ae90a,0x190add0a,0xdd0ae91c,0x191c090a,0x540add1c,0x351b3a21,0x1d113b1f,0x1d0e1e0e,0x1e11410e,0x9212000e,0x9223b616,0xb615fd16,0xc823b623,0xb5120023,0x47006b0b,0x43006b03,0x47034703,0xb5007203,0x7400760b,0x740bb000,0xb0007500,0x7600670b,0xb1006800,0xb000760b,0x4700750b,0x75034303,0xb0034300,0x8603890b,0x70038503,0xc6072218,0x4e07221f,0xc61fc608,0x4d1fc71f,0x38193f08,0x9e080319,0x381c9a1c,0x1c07900f,0x1b081b08,0x921f9608,0x1100007,0x43100210,0xfb0d400d,0x210000f,0x20ffb10,0xfb0d4310,0x410ffc0f,0xd60ffb0d,0x1c1ed31e,0x1f22880b,0x1f1ed60b,0xd61c4f0b,0x160bba1e,0x9b011701,0x201f9e1f,0x43232808,0xfe123d16,0xe1e111d,0x301e0e1e,0x301dfe13,0xfe068313,0x27125d1d,0x27241e24,0x1e242124,0x801ec524,0x800b1a22,0x1a0b1822,0x4f04140b,0x8d014e01,0x67120316,0xcd12cc05,0xcd12ce12,0xce12cf12,0x9b201612,0xfe19ba08,0xda13dc1d,0xd713da13,0xd71dfe13,0xfe023b13,0x3b1dfe1d,0x3b13df02,0xe413d602,0xe81c0a13,0xd90af60a,0x710cd50c,0xd70cd50f,0x680f580c,0x67041e0c,0x20041e0c,0x670c6704,0x6b0c690c,0x380c6903,0x6b00a201,0xa20c6903,0x1a013300,0x68040104,0x6b0c670c,0x1013303,0x6b0c6804,0x33040003,0x7520af01,0x2620ac1a,0x520d220d,0x530d220d,0x390d520d,0x3a113c11,0xf815f611,0x1d15f011,0x6b111f11,0xaa1a6e0e,0xaa1a7220,0x711a7320,0xaa1a721a,0xd41a7120,0x6a066624,0x38066606,0x22066a15,0xde1d1b1d,0x4d114a23,0x4c114c11,0x29114911,0x1b01410e,0x1b0c7d04,0x7d016104,0x620c7d0c,0x48014101,0x21231f16,0x56173123,0x60255f04,0xe0145f14,0xd105cf23,0xd102d705,0xd705d005,0x3605d002,0xaf149924,0xc702a50e,0xa226a0e,0xa1c360b,0x361c330b,0x6d1c331c,0x6d226f22,0x6f227122,0x36226f22,0x261c331c,0x710b7200,0xf214ff0b,0xf813f313,0xe23b31c,0xa1bd614,0x530a8622,0x84023915,0x52023906,0x84155015,0x51023906,0x1f155215,0x1f155013,0x5013e113,0x5313e615,0x51068415,0x84068315,0x9e21c706,0x6421c61b,0xc71ba10a,0xc80cfb21,0xc80cfd0f,0xc70fc50f,0x90fc70f,0xaa0cfd0d,0xd31f1f0a,0xd018d318,0xa61be918,0xf01f6418,0xf219f307,0xf208bb19,0xbb19f919,0x3c08bb08,0x3c19f320,0xf419f620,0x7c228419,0xf80b1722,0x40204219,0xff204020,0x9219f819,0x2d18541e,0x2185421,0x2212d1b,0x2d1b051b,0xff212c21,0x2c1b001a,0x921b0021,0x9214641e,0x92162c05,0x2c145b05,0xe9206416,0x75205f08,0xe3127023,0x48127005,0x6805e324,0x2916bd14,0x1e861d,0x6ff07,0xff1ebf07,0x44074206,0x44184a07,0x4a18a207,0x421ebf18,0xff06ff07,0x8606fe06,0x5917d51e,0x55045504,0xd6255604,0x52255617,0x1917d625,0xc4160d12,0x6c23c423,0x4e057e05,0xdc1b2b21,0xcc229209,0xcc228f1e,0x8f07511e,0xce075122,0x1c228f1e,0xa1eff1b,0x9205951f,0x921d2b05,0x2b123105,0x54217b1d,0x4f1b4f1b,0x7b1b511b,0x791b5121,0x6b217b21,0x7509311a,0xa709311a,0x701a7520,0x301a771a,0x661a7709,0xa51a671a,0x671a7720,0xa51a771a,0x2e1a6920,0x751a6b09,0x691a771a,0x2e09301a,0x701a7509,0x301a701a,0xce20a409,0x2a202819,0xa6202c20,0xa608a908,0xa519d208,0xb3171c08,0x391d8114,0x11241223,0xb3241124,0x6b233905,0x6a00a20c,0x3800a20c,0x380c6a01,0x40c8201,0x2024f504,0x5c023913,0x241c1922,0xeb1c191c,0x241c230a,0x231c191c,0x3c163e1c,0x3c123f16,0x3b16cf16,0x3c123f16,0xdc232716,0x2810ff0d,0x916da11,0x91d3e24,0x3e05a424,0x2205a41d,0xef1d3e23,0xd613dd24,0xf013dd13,0xf013d624,0xd624ee24,0x6b072613,0x1b186c18,0x1013271e,0x250d1e,0x7413e725,0xfe124114,0x3f23fe23,0x2a147416,0xc61d301d,0x31213616,0x8609c721,0x56156606,0x55156615,0x55155615,0x5613e715,0x53155615,0x4113e615,0xc2053905,0x7305e011,0x7302e21d,0xe202e11d,0xa802e202,0xe005e014,0xc00ec10e,0xd12130e,0x1022f012,0xe501c606,0x981a5f14,0x4a1a5b20,0x6f189207,0xb1186f18,0x3a0b3a1e,0x6f084f0b,0xcc084f18,0x95074a1f,0x981aa31a,0xdd184b1a,0xdd20fd1e,0xfd20fa1e,0x8c20fa20,0xfd20fd09,0xff098a20,0xc20d0820,0xc20f870f,0x870fc30f,0xc60fc40f,0xc60f870f,0x870d090f,0x7912780f,0x79243d12,0x3d14a112,0x11c8f24,0x11c8e0f,0x8e1c900f,0x1e157d1c,0xe31e2d25,0x651d2323,0x6a156914,0x6f156f15,0xa4157315,0xa4156f06,0x6e13fe06,0xa5156915,0x6f156906,0x5306a615,0x6e024f02,0x5306a515,0x69156e02,0xa506a615,0xad00e206,0x1e0c1e03,0x1f03b00c,0xac03b00c,0xc0c1f03,0x6024d213,0x6124d206,0x60066006,0xc152d06,0xce152d13,0xc5130c24,0x860e870d,0x871a4a0e,0x871a4720,0x4718d420,0xfd18d41a,0xfc1a471e,0xee1b3e09,0x5d1b3e09,0x8409ee21,0xc10cdb0f,0xa319cc0c,0x9c202708,0x310b3022,0x1806c60b,0x18026c03,0x6c158a03,0x3122802,0x3230723,0x71d1e23,0x9d1be923,0xe81be80a,0xaa1be71b,0x520a510a,0x520a500a,0x501b960a,0xb005910a,0x2b162716,0x6c192f19,0xbb203e1f,0xed08c108,0x900d8f0c,0x4e0d8f0d,0xe40d9110,0xc623981c,0x3e11cf22,0xc9052f05,0x311cc81c,0xfe0ff90f,0x6b0ffd0f,0x42236a23,0xdb243824,0xdb05d802,0xdf02da02,0xdb05d802,0xda02df02,0xdf170b02,0x580ca502,0xe50f890f,0x701d7402,0xce143823,0xce23bc23,0x3623cc23,0x6e1c7314,0x6e0b351c,0x3622a51c,0xb070d0b,0xb185507,0x55185607,0x53185618,0x55088c18,0x8c185618,0xb6088c08,0x8d185519,0x521e8a1e,0x4f1e8a18,0x53185218,0x521e8d18,0x52088c18,0x6719bd18,0xbd19bb18,0x671e9f19,0x8c19bd18,0x52185308,0xd7185218,0x521e9007,0x591e9018,0x9f185c18,0x5219bd1e,0x5c185918,0x8b199218,0x20198c19,0xe205e1a,0xf205e1a,0xe204b1a,0x4b205e1a,0xd41a0e20,0xd408e708,0xe808d308,0xd408e708,0xea08e808,0x29123023,0x530e551d,0x560e560e,0x71116e0e,0xee1c1611,0xee1c0d0a,0xd0ae20a,0xe11c0d1c,0xe70ae70a,0x16225a0a,0xdd20581c,0xa208db08,0x3600a500,0xa501,0x33013304,0x34041a01,0x3300a501,0x360c6801,0xa2013801,0x65041e00,0x650c6801,0x68013501,0x3601350c,0x3300a501,0x68013401,0xd609ac0c,0xd61ae11a,0xe11ad81a,0xa61ae11a,0xac09ad09,0xad1ae109,0xdb09a609,0xdb211e1a,0xe509a81a,0xdb211d1a,0xa81ae51a,0xe31adf09,0xdd1adf1a,0xe31ae21a,0xe21adf1a,0xe309a81a,0xa809ab1a,0xe509ab09,0xad1ae71a,0x1e09a609,0xa61ae721,0xd6126909,0xe014a205,0xab244e05,0x6d14ab14,0x2f236823,0x1314691d,0x19146923,0x2b059823,0xbd1af621,0x1a3a09,0x207009,0x701a3709,0xb708b520,0xb708b008,0xb0202e08,0xa908b008,0xb108b508,0x3619dc08,0x3608b120,0x3519e420,0xa908b520,0xe408b108,0xb119e319,0x2a19e308,0xb319e320,0xb4202a08,0xa9203508,0xa908b408,0x2a08a508,0x3808b320,0xb4203720,0xb608a508,0xa5203708,0x38202a08,0xe619e720,0xa508b619,0xe7202a08,0x6808a519,0x421a881a,0x86094209,0x8620a01a,0x9f092f1a,0x8620a020,0x2f209f1a,0x2c1a7209,0xa71a7209,0x2c209d20,0x9d1a7209,0x421a6820,0x6420a009,0x68092d1a,0x6420a01a,0x2f1a681a,0x9e092c09,0xa0d4e20,0xe30d4d10,0xec19eb19,0xed19ec19,0x7b08b319,0x801a7d1a,0xeb214d18,0xc1b2c09,0xf16091d,0x72160916,0xf160f05,0xc22f216,0xf1d261d,0xbd122e23,0x540ca10d,0xc00f540f,0x7a107a0d,0x730dbe10,0xbd107310,0x7e107a0d,0x7a1d3f14,0x7b1d3f14,0x79147a14,0x7a164614,0x79147b14,0xb3147a14,0x4b240e05,0x7e240e12,0x4b147a14,0x7a240e12,0x13148014,0x13124b24,0x4b05b324,0x2f164512,0x5f148023,0x58045625,0x54045804,0xbd174004,0xc113bb24,0x82048724,0x28047325,0x161b6a0a,0xb10fb40a,0x130fb30f,0xae10ad00,0x9a1ff310,0xed087619,0x3e024624,0x34023c02,0x3424ed02,0xed13da02,0x780e7624,0xcd0de00e,0xf3152c24,0xc71df31d,0x6924cd13,0x971c2d22,0x52189718,0x2822691c,0xda042704,0x7515e303,0x471cf016,0x2011db05,0xe323a214,0x471cf015,0xa2142005,0x5d071223,0x14071418,0xf9098807,0xfc1ac120,0x14071220,0xc120f907,0x3a153b1a,0xdf153115,0xa11aa220,0x9e1aa11a,0x9e20df1a,0x5c20da1a,0xe051009,0xe260605,0x617c705,0xc5260626,0x1017c417,0xc4260605,0xe10dec17,0xe111160d,0x160ded0d,0xe17ce11,0x1c051c26,0xce17dc05,0xe50ae017,0x190af40a,0xf3059823,0x97059823,0x9723f305,0xc8231105,0x923e116,0x9162623,0x26230f23,0x25162616,0x4c23e116,0x70069902,0xf7069915,0xf7157013,0xf9069a13,0x2613f913,0x5a13f71e,0x660d9f10,0x916da10,0x9240824,0x805a424,0x2205a424,0x8b240823,0x4c0b890b,0x870bff0b,0x7400c503,0xde22f505,0xdf22de22,0x1e057422,0x7d11410e,0xbf0fbd0e,0xbf0fbc0f,0xbe0fc00f,0x6a118c0f,0x3c0e5d0e,0xbb093b09,0x82093d20,0xdf093c1a,0xab03780b,0xd607d700,0x591f4c07,0x8914881d,0xeb1ff214,0xeb1ff41f,0xf4199e1f,0x7508791f,0x75087b08,0x7a1ff208,0x75087b08,0xfb087a08,0xfc0fb10c,0xb40fb10c,0xb40cfc0f,0xfc0fb50f,0xff0fb50c,0x360cfc0c,0x8421b10a,0x911b951b,0xb11bb31b,0x951bb01b,0xd81bb01b,0x8f1b9521,0x921d0916,0xfc1d0916,0x5c120011,0x5e0e3e11,0x600e3e11,0x66115e11,0xa31fa719,0xa71d951f,0x941d9401,0xa212901d,0xa21d9401,0x95060101,0x11d941d,0x11d9506,0x5ff06,0xac14c306,0xff1d9501,0xa0060005,0xec114f11,0xc91aca10,0xc9098f1a,0xc209911a,0xd41d6a1a,0xd414a605,0xa6149b05,0xf4245e14,0x7125105,0xab200820,0xea0dec19,0xea0de10d,0xe10de60d,0xe40de60d,0xa6110a0d,0xd026151c,0x1217d017,0x290f1826,0x650d270d,0x260d270d,0x650d640d,0x640d270d,0x520d260d,0x520d640d,0x640d610d,0x590d640d,0x360d580d,0xba1e2413,0x181e241d,0x1813fa25,0xfa13fd25,0x18111b13,0xa80e7911,0xcc25a204,0xcc1a9125,0xcc094d20,0x4d20cd20,0x4f20cd09,0xd320cb09,0x3723f816,0x2b23f81d,0x2b1d3723,0x37163e23,0xfe1d371d,0xfe16d323,0x124123,0xfe16d324,0xf163223,0x59055816,0x95092a05,0x951a6320,0x63209320,0x50208a1a,0x501a611a,0x611a551a,0x6309271a,0x8a20931a,0x291a6120,0x29208a09,0x961a6209,0x93092720,0x62208a20,0x96209b1a,0x8a209320,0xd805d720,0x237505,0x9b1dbe15,0x981dbe06,0xe7069b06,0xee0c5903,0x600c5903,0x803ee0c,0xe7162323,0xdd23dc23,0x91122523,0x7711a40e,0xbe19ba0e,0x14201419,0x1219bc20,0x4a240b20,0x4a147b16,0x7b147c16,0x46147c14,0xf4147b12,0xe00ae40a,0xf1138a0a,0xf1138206,0x801e7706,0xbf138613,0xf1136e15,0x81138006,0x861e7713,0x801e7813,0xeb1e7713,0x79018006,0x88138a1e,0x8a15a613,0x8015a613,0x89138a01,0x8a138813,0x6e138613,0x601e6013,0x8613871e,0x78138713,0x7813861e,0x7706eb1e,0x8913821e,0xaa138a13,0x401b7921,0x7c1b790a,0x7c0a401b,0x400a471b,0x9070a0a,0x16076807,0x78171717,0xce0f7c12,0x2a0cc70c,0x9014f606,0x32017d13,0x32043a03,0x5f043b03,0xca21f600,0xf821f81b,0xf50a8421,0xfc1d0721,0x7a055715,0x580b1b18,0xe000d31c,0xe000ce0b,0xce00930b,0xf00ce00,0x8d0c110c,0x14078e07,0x1f231e1f,0x79164823,0x1210350d,0xef101210,0xd0d320f,0x4b1dfd1e,0x78154b15,0x781e0d06,0xd068706,0x1a06871e,0x1a24f61e,0x611e141e,0x1a24f615,0x1415611e,0x1306921e,0x1206921e,0x121e131e,0x1313261e,0xe13261e,0x131e111e,0x1113261e,0xe31e131e,0xf6156113,0x871e0d24,0x6c0dd506,0xd70e890e,0x8d11920d,0x5f09fd11,0x5d215d21,0x601b3e21,0x1e221f21,0x1e1bf222,0xb80aaf22,0xb90aaf0a,0xf20ab80a,0x191bf01b,0xb8221e22,0x9b1bf20a,0x97210a09,0xb122a709,0x7122b022,0xdf1eed07,0x1518ba1e,0x71081408,0xba1edf07,0x801f8118,0x711efc1f,0x1418ba07,0xfc1f8108,0x4007711e,0xbe093409,0x8e10f320,0x43118f11,0xe215de05,0xbe065015,0xe512e524,0x50151912,0xf522f606,0xf523bb22,0x4057422,0x231faa12,0x25082508,0x261fa608,0xb51d4308,0xb5240605,0xe11d4505,0xb5240616,0x4016e105,0x79105010,0x5210500f,0xcb0cd110,0xd110500c,0x5310520c,0x530cd210,0xd20f9410,0xd210520c,0x500cd10c,0x790ccb10,0x93104d0f,0x930cd00d,0x7a0f930d,0x930cd00f,0x490ccc0d,0xcf104c10,0x4d104c0c,0x7f0f7e10,0xd0104d0f,0x7d0ccf0c,0x7e10490f,0x4c0ccf0f,0x7f104d10,0x400f7e0f,0x780f7910,0x7810400f,0xcc0cca0f,0xcd0d930c,0x930ccd0c,0x400f7a0d,0xc90cca10,0xc910400c,0x930cce0c,0xce10400f,0xce0f930c,0x7b0f7c0c,0x930f7a0f,0x21fe0f,0x1ec122,0xc10a8d22,0xd41ea11e,0xa10a8b1b,0xc10a8b1e,0x5d215f1e,0x5d09fd21,0x601b3e21,0x2d240421,0x2d163523,0xff240223,0x40240223,0x4023ff16,0xfc163f16,0x4023ff23,0x7123fc16,0xa9025515,0x3b080106,0x811ee219,0xb10b3c1c,0x9c186f1e,0x8118691e,0x6f1eb11c,0x5c117018,0x5a11820e,0x4c0e5e0e,0x5f0e5e0e,0x700e4c0e,0x5a118211,0x790e4c0e,0x790e5a11,0x5a117011,0x750e500e,0x5f0e4c11,0x500e600e,0xc922c70e,0xc9141511,0xe622c511,0xbe25fc1c,0xfc25fb17,0x525fb25,0xfc25ff05,0xfc050704,0x8050525,0xff050805,0xef050725,0x9e1feb1f,0x9e1fef19,0xf11ff419,0x7e08751f,0xef087508,0x7b087a1f,0x7a087508,0x991ff308,0x9919a019,0xf81ff119,0x991ff91f,0xf71ff819,0xec1ff61f,0xf71ffa1f,0xef1fec1f,0x7a1ff41f,0xec1ffa08,0xfb086a1f,0x6a1ffa1f,0x7b087508,0x9d087e08,0x6a1ffb19,0x9d199f08,0x9d1ff319,0xf3086a19,0x7e1ff11f,0xf1199c08,0xf5199c1f,0x9f19a01f,0xf11ff319,0xf81ff51f,0xa81adf1f,0xee211a09,0xd90cf20c,0x70cf20c,0xd90f890d,0xd50cf20c,0x80d070c,0x80cdd0d,0x860fc50d,0xc50f860f,0xc50cde0f,0x880fc80f,0xfc0fc80f,0x880cd80c,0xd80fc80f,0x10cfc0c,0x10f830d,0x840cdb0d,0x840d010f,0xde0f830f,0x880fc50c,0x850cda0f,0xd90cee0f,0xee0cda0c,0x830cfc0c,0xd50cd80f,0xd70cf20c,0xf20cd70c,0x80f890c,0xdc0f860d,0x890cdd0c,0xc30d070f,0xef21eb1b,0xbd21ef21,0xac1bc21b,0x9416ab16,0xde1aa305,0xde1a9820,0x9f1aa020,0x7b0cbc1a,0x50db410,0xfd25fb05,0x425fb25,0xfd25fd05,0x525fe25,0xa80ce305,0xa80f8d0c,0x8d0f5d0c,0x591fbe0f,0x82198208,0xba085819,0xbf08581f,0xba1fba1f,0x821fb91f,0x6c083a19,0xb91fbe19,0xbe083a1f,0xc20ac11f,0xc21bf90a,0xf90ac80a,0x2505981b,0x25231316,0x13162616,0x27042823,0xc0010e04,0x581d5405,0x77167812,0x7711e116,0xe1167916,0xdc142511,0x78167811,0x7a11e116,0x4f0d8d16,0x900d9010,0x8d0d910d,0xbd25c30d,0x4d178904,0x80d4b0d,0x3c0d4b10,0x4a10070d,0x70d4b0d,0xaf029c10,0xd302b002,0xd1223d0a,0xe70d290a,0xe70d650f,0x190d260f,0xe70d6510,0x2610190f,0x190d520d,0x610d5210,0x1910190d,0x580d5910,0x990b2c0d,0x5f229822,0x610da310,0xa1b0810,0xfe09c61b,0xf5055a1c,0x1f19c811,0xe718e720,0xc91f2318,0xc8202319,0x8a18e719,0x811b20e,0xc0e080e,0xc0e8a0e,0x910dc10e,0x3409f011,0x341b361b,0x3609f91b,0xf225f11b,0xf204f125,0xad25ed25,0xf204f117,0xbf17ad25,0x9504be04,0xb504be04,0xa8049425,0xff025906,0x76025913,0x7613ff15,0xff06a415,0x4522ef13,0x4523c314,0xc3144614,0xc61f0123,0xc61a0408,0xc9204608,0xc6204508,0x7908c908,0xc221de0a,0xc506591b,0xc5152b24,0x2b24cb24,0x12152b15,0x9a065902,0x98210309,0xcd210309,0x7d09981a,0x1a10cb0b,0x7b1e8900,0x7b071d1b,0x1d21a91b,0x7721a907,0xea071d1b,0xb11110d,0xe4111111,0x8d110a0d,0xb411b30e,0xe01c0b11,0xf40ae40a,0xf30dce10,0xef0dce10,0xef0dca10,0xc70dcb10,0xf30dca0d,0x590dce10,0x780f570f,0xd5189c10,0x622041b,0x9c220822,0x23233318,0x45164523,0x3316e016,0x3816e023,0x38233323,0x33233623,0xde233623,0xde233316,0x4c124516,0xd5124c12,0xd51d3416,0x34232e16,0x4c16de1d,0x47233312,0x4c124c16,0x4b124c16,0x4c164c12,0x47164b16,0x49164b16,0x49164716,0x47147916,0xc30ea816,0x5502a60e,0x7a0e530e,0x6e117a11,0xd0117111,0xa01dc112,0xe824a024,0x512d001,0x40b060b,0x360b060b,0x4226f1c,0x6f0b060b,0x71226f22,0x710b0422,0x111c3822,0x2f1c300b,0x2f0b031c,0x30b081c,0x1122710b,0x110b040b,0x41c300b,0xd0b080b,0x870b030b,0xc91c5022,0xc71ec91e,0xc71ec81e,0xc81ea81e,0x641ec81e,0xb0186318,0xc922871e,0xc81ec91e,0x6318631e,0xc9074418,0x9107441e,0xcb1ec918,0xae22a41e,0xc91eb022,0xc91eb81e,0xae18911e,0xcb189122,0xae22ae1e,0x9322ad22,0x921e931e,0x92220b1e,0x81ed81e,0x92220b22,0x9a22081e,0x2188718,0xbc188722,0xae22021e,0x951e9322,0x9a1ed81e,0x9a1ed518,0xd5220218,0xae1ec91e,0x931eb822,0x95220b1e,0xd51ed81e,0x8322081e,0x341eb022,0xda1edb07,0x4e227f1e,0x481edb18,0x7f1edb1c,0x341c4822,0x83184e07,0x48184e22,0xb222831c,0xae1bdc1e,0x891bdc1e,0xb21eae0a,0x271eae1e,0xa01eae07,0x8509851e,0xf41ea009,0x8d1ec120,0xc01ec00a,0x4b1eb41e,0x4d1eb418,0xa1184b18,0xc01ec11e,0x4b1ec01e,0xa21ea218,0x8820ff1e,0x881ea209,0xa120f909,0xa21ec01e,0xa11e991e,0xa120f91e,0xf91ea21e,0x9921ff20,0x99098e1e,0xc120f91e,0xc11e991a,0x9920fc1a,0x8e20fc1e,0xff1ea009,0xff185f21,0x7c098e21,0x7c21ff09,0xff186009,0x5f186021,0x5f1ea018,0xa0098118,0xf409811e,0x1f098520,0xae072707,0x2709851e,0x271eb207,0x7073107,0x771eb222,0x311eb218,0xd8187707,0x8022071b,0x77220718,0x720b118,0xb320b122,0xb3220720,0x95188020,0xb81bd81e,0x801bd81e,0xb81eb818,0xb81a7d1e,0xb81eb820,0xae093920,0xb81e9522,0x391eb81e,0x23073409,0x94092509,0xda079120,0x9119841f,0x62198407,0xe2198d08,0x8b078b1f,0x62079107,0x350d4408,0x460d460d,0x40d480d,0x440d4510,0x6d0d460d,0xca18b807,0x4a20ca20,0xea1ee609,0xc609471e,0xca076d20,0xea1ee620,0xd220c61e,0xe6076d18,0xe618b01e,0xb01eea1e,0xd21eea18,0xd218bc18,0xbc078018,0xb018b518,0x3b1eea18,0x3c08bc20,0x63168d20,0x6311fa05,0xf615fe05,0x7d245a15,0x7d02f01d,0xf014b21d,0x920dd702,0x86118d11,0x520a4c1b,0x540a4c0a,0x4b21b70a,0xbe09101a,0xfd091018,0xfd18be1e,0xbe07bd1e,0x5618be18,0x5a215a21,0x7218b921,0x7018b907,0x72077207,0x5a1a4307,0x4b1a4321,0xb118be1a,0x17171614,0x55171717,0xac14b124,0x6819641f,0x65196419,0xe01fb119,0x20262417,0x150b1626,0x151c420b,0x421c410b,0x7d1c411c,0x410afb22,0x420afb1c,0x1422741c,0x141c200b,0x200b160b,0x611c201c,0x61227522,0x391c4522,0x6122751c,0x161c3922,0x201c420b,0x8421f31c,0xe921e90a,0xc40a7f21,0xbe0a7f1b,0x3b1bc41b,0x8111a611,0xa6113b0e,0x830e8111,0x770cc80f,0x7419990f,0x71087108,0xf1199708,0x7011fc1f,0x981d0b05,0x1316ba05,0xec16ba23,0xd0231323,0x700e6e0d,0x10afe0e,0x451c450b,0xfe1c391c,0x751c390a,0xd60afe22,0x591a9b20,0x63236909,0x6305e023,0xe0244123,0xa0d4c05,0x7f0d2510,0x1d131b06,0x8124613,0xa3164624,0xca0f041c,0xdf05b31c,0xdf240e16,0xe241016,0xe2150e24,0xc213a012,0xf12af01,0x8112af18,0x6a019e24,0xd505d81d,0xd705d805,0x12243805,0x417bb05,0x78087026,0xfa087708,0x50144922,0x14069214,0x141e161e,0x6302431e,0x141e1815,0xb115631e,0x8b094918,0xc609471a,0x4718d220,0xbc18d209,0x8018d218,0x8b18bc07,0xb509471a,0xbc094718,0x6d18b518,0xb118b807,0x8b18b118,0xb018b51a,0xb1076d18,0x824f318,0xf524f11e,0x1f155224,0xf124f313,0x6024f524,0x2c155e15,0x41155e13,0x2c132c02,0x6013ee13,0x5f1ba015,0x5f0a630a,0x630a610a,0x9304c80a,0x9104d317,0x31bbf0a,0x6806e022,0x6815b41e,0xb4018c1e,0x8c15b415,0x8c1e6d01,0x6d15b501,0xde15b41e,0xde137706,0xb0018906,0xb006de15,0x7815b115,0xb406e013,0xb106de15,0xba137715,0x3826181c,0x2926180f,0x1f0f370f,0x2803a20c,0x1e058f03,0x1116b616,0x44153c13,0xce153c15,0x7a067013,0xb509381a,0x79093820,0x8320b41a,0x4d155106,0x6155115,0x4d154c1e,0x4c155115,0x481e0615,0x48154c15,0xd067915,0x48154c1e,0x791e0d15,0xf61e1906,0x5f1e1924,0xf6155915,0x611e1924,0x2e155f15,0x2e155913,0x59155813,0x66155815,0x59155915,0x19156115,0xe715551e,0xe713f113,0xf1155613,0xe5155613,0xf1133013,0x8c13eb13,0x30155606,0x8c13f113,0x55068a06,0x6823b915,0x6f23b805,0xd05da1d,0x5d05da17,0x5d127523,0x7514a023,0xe714a012,0x4a127505,0x9f0d2a0f,0x9e0d2a0c,0x550f530c,0x530d2a0f,0x500c9e0f,0x500f520f,0x520f4f0f,0x490c9f0f,0x550f4a0f,0x2a0c9f0f,0x520c9e0d,0xf90db90f,0xf310f410,0xe41e1a10,0xe4068713,0x7624e413,0xe4068706,0xe4067613,0x77131924,0x21202206,0x2119c720,0xc7089f20,0x17122119,0x17121716,0x8b145212,0xa3145205,0x8b23dc16,0xdc145205,0xdd16a323,0xc523dc23,0xba137f15,0x9215ba15,0x95019501,0x7c15bc01,0xc515c41e,0x9515ba15,0xba1e7c01,0x3155315,0x324fb1e,0xfb13221e,0x21132224,0x1b24fb13,0x3015561e,0xe5155613,0x30133013,0x1b1e0e13,0x261e0e1e,0x27132713,0xe1e1013,0x241e101e,0xc11e0e13,0x951b9421,0x7421d81b,0xc10a580a,0xd81b9521,0xa31ced21,0x22142123,0x231cf214,0xde15e514,0xde142211,0x22167611,0x9322eb14,0x8c168c16,0xeb11fe16,0xde0d2022,0xde10260f,0x260d6d0f,0x27102610,0x28102810,0x26102c10,0xdd23dc10,0x7a16ac23,0x7c154a06,0x17067c06,0x17067a13,0xe6023013,0x17067a24,0x5424e613,0x801fd008,0xb802b919,0xbd241702,0x3e05b802,0xe505b823,0xb902bc16,0xbd241702,0x8302be02,0x83241614,0x16124f14,0xb9233e24,0xb802bd02,0x3e02bc05,0xba02bc23,0xba05b602,0xb616e302,0x51241505,0x3e125012,0xb602bc23,0x16125005,0x15124f24,0x4f125024,0x4f241512,0x1405b612,0xed09dd1b,0xb4151b09,0xbf020813,0xc620fd1a,0xe3150e1a,0xe31dcd12,0xf1dd412,0xd233715,0x4a124a24,0x371d3f12,0x12119a23,0x3a0e7211,0xb51d4523,0x8005b505,0xc2232f14,0x3a23ef16,0x82093c12,0x82093b1a,0x3b18621a,0xba186209,0xae1a8120,0xe9171114,0xfe1efb05,0xfe07821e,0xda07961e,0x1c079607,0xb907da1f,0xcd25b725,0xd709d904,0xb81b2309,0x9025b925,0xd4151917,0x9f12f61d,0x6121bb1b,0x6321bb0a,0x610a610a,0x9d0a5d0a,0x9222931b,0x251c5c22,0x931ed30b,0x1d221b22,0x1d1bea22,0xea0aa822,0xe40aa81b,0xea1bea1b,0x1b1be21b,0x34119622,0x34119411,0x6f0e1611,0x3411940e,0x160e6f11,0x9311900e,0xf5168311,0x90055d11,0x93194d1f,0xc815cb1f,0x530e9515,0xb51de206,0xdd14a313,0x58127602,0xbe1d4f1d,0xec1d4f05,0x3705be16,0x3f163e1d,0x27123f12,0x8d1d3723,0x7f1e7513,0xc2137f13,0x72019a15,0xc9096a09,0x6b096a1a,0xe81ac909,0xc9097220,0xc909911a,0xed096b1a,0xe920f020,0x9120f020,0xf11aac09,0x6c20eb20,0xed20eb09,0x6e097020,0x7020eb09,0xae1aaf09,0x6c20f11a,0xf11aaf09,0x6b099120,0xad1aac09,0xeb096c1a,0xad096e20,0xf020eb1a,0x6d1aac20,0x6d20f009,0x7120e909,0xed097009,0x8d009b20,0x8d00aa00,0x9c036400,0x9d009c00,0xa1008d00,0x925d617,0x76067705,0x6b067906,0xa91fb719,0x591fb71f,0x5a195a19,0xb71fa919,0xaf19631f,0xaf082f1f,0xb31fad1f,0xaf082f1f,0xad1fb31f,0x3319601f,0x331fad08,0x37082e08,0xa9196b08,0x2e1fad1f,0x371fb308,0xa71fa908,0x3708311f,0x631fa708,0x6a082f19,0xa7083119,0xa708301f,0x3019661f,0x6a196308,0x66083619,0x36196319,0x30083408,0x66196608,0x35083619,0x5104fc08,0x77045004,0xb30bee03,0xaf0bee00,0xb300b300,0xaa037b00,0xed037b00,0xaa037c0b,0x7c037b00,0xef037303,0x770beb0b,0xaa00b303,0xeb037300,0xeb0c070b,0x7603770b,0xeb0c0703,0xc603760b,0x70c0600,0xae00ab0c,0xab00ac00,0xbe00ac00,0x7e00be00,0x7e00ab03,0x7c037003,0x72037003,0xaa00aa03,0x77009d00,0x9e009d03,0x770c0800,0x8009d03,0x760c080c,0x76037703,0x700c603,0x7c037e0c,0xad00ab03,0x1c17dc1c,0xdb17dc0f,0xd0f1c17,0xa712e015,0x73117424,0x73116b11,0x6b0e4b11,0x69243311,0x691d6d12,0xa205d612,0xe9199214,0x56086d1f,0xf21b421b,0x243209,0x243a17,0x68170117,0x2dc12,0x6126817,0x8b122123,0x291b2805,0xfc21441b,0xfb17be25,0xfb25fc25,0xff17c025,0xc104fc25,0xc025fc17,0x8050817,0xc125ff05,0x42164117,0x2240216,0x3d164024,0x38164016,0x38163d1d,0x3d05ac1d,0x35163d16,0x7b164116,0x79037a03,0x1113ed03,0xff13e31e,0xf25f604,0xfd25f626,0xfd260f04,0xf25f504,0xd810fe26,0x80ddc0d,0x72160916,0xf057205,0xf160816,0x6120516,0x96072e16,0x980b2122,0xd31d9812,0xe01f2a14,0x4d1f291e,0x4b1ece18,0x511ece18,0xb8184b07,0x40fb70f,0x7c1ab90d,0x7c097d09,0x8d098e09,0x7c097d09,0x7d098d09,0xb91abb09,0x6b10221a,0x2010200d,0x300ff710,0x380ff710,0x3810300d,0x300d750d,0x220d3910,0x220d7810,0x78102010,0x2310240d,0xf80d3910,0x3910250f,0x2410250d,0x200d3910,0x78103010,0xe624500d,0xe605e705,0xe7237605,0xc31b0e05,0x8709c209,0xc2178817,0xbb178825,0xc204d404,0xd4178825,0x57004,0x22e412,0xe4169212,0x3a21a322,0x3219f0a,0x6b07fb08,0x3b076b07,0x8f193c19,0x171f911f,0x93081708,0x931f8f1f,0x4b194a1f,0x48194b19,0x481f8f19,0x8f194919,0x8c19491f,0x4e1f8f1f,0x9d1e4b1e,0x391d3615,0x3916d21d,0xd223ff1d,0xd016d216,0x361d3516,0xaf1d351d,0xf066305,0xf021c02,0x1c130602,0x15130602,0xb6066202,0x6008331f,0xb5247519,0xb5182401,0x24181c01,0x26181c18,0xf6182418,0x7911180d,0xdc19860e,0xdc19881f,0xde1fe01f,0xf108f21f,0x201a3208,0x20145a1d,0x2f0e1216,0xa610ee11,0x1e1adb09,0xa81adb21,0x1d1ae509,0xe51adb21,0xa709a81a,0xac1ae509,0xa61ad609,0xac09ad09,0xdb09a609,0x1e211d1a,0xad1ae721,0xe009a609,0xa9096520,0xd109991a,0xd121091a,0x91acf1a,0xd5205e21,0xd51a2008,0xe808d408,0xd51a2008,0xd408e708,0xe808d308,0x66198e08,0x72086508,0x8e199a08,0x8a218819,0x5e1b5e21,0x8521861b,0x851b5e21,0x601b5f21,0x5e21881b,0x19081d1b,0x19195208,0x97194f08,0x1919521f,0x4f1f9708,0x1a195019,0x230d4c08,0x2d0d2d0d,0x4b0d3b0d,0x870e860d,0x870e2d0e,0x2d0e6d0e,0xeb0e2d0e,0xda0e860d,0x35066424,0xe5024815,0x9f150101,0x280aac07,0xbf1f281f,0xbf1f0a18,0xa1ef718,0xc019fb1f,0xd9183a08,0x70170b02,0xb1df31d,0x624dc13,0xc800c60c,0xa00c600,0x730c0b0c,0x7120ac1a,0x3320ac1a,0x5e20af09,0xec1e1515,0x413ec13,0x58155825,0xec155d15,0x2f0f3013,0x2f0f2b0f,0x2b0f2e0f,0xbf0f2e0f,0x9d1cbd1c,0x13218421,0x5a21840a,0x5a0a131b,0x1321761b,0x9200d40a,0x91039103,0x97039503,0xd0039503,0x26039700,0xe162412,0xda08dd23,0xda08db08,0x561a1808,0x521a1820,0x98205620,0xf01ff219,0x751ff21f,0xec1ff008,0x5303e903,0x77047a0c,0x3257325,0x60d3710,0x40136710,0xdf15a225,0x601a9f20,0xd91a9f09,0x17096020,0xc6152e02,0x4509de24,0x451ead21,0xad09df21,0xb02da1e,0x48243b17,0x5e1a8c09,0xfd023509,0xfd154f24,0x4f24ea24,0xf624ea15,0x213e324,0xc0cff0d,0xb30cff0d,0xf50d0c0f,0xf3143015,0xef0cf011,0x8a0fb00c,0x24250206,0xe7250213,0xe7132413,0x1b155613,0x1013241e,0x10023f1e,0x5c13281e,0x10023f15,0xe7155c1e,0x241e1b13,0xea023f13,0x4c068a13,0x7911770e,0x51117711,0xb811790e,0xbc162916,0x2e162916,0xbc16bc12,0xaf161f16,0xae16af16,0x8b16b816,0xc90c0603,0xe8171500,0xe81d7b02,0x7b237102,0x471a8b1d,0xe61eea09,0x49094a1e,0x8b094909,0x3f1eea1a,0x49240b1d,0x46240b16,0x49147912,0x79240b16,0x7e240e14,0x7e164c14,0x4b1d3f14,0xb3233816,0xb3124b05,0x4c240e05,0x4b164c16,0x3f05b312,0x4b16491d,0x561d5016,0x4e234312,0x5202c61d,0xf31d521d,0xf31d4e16,0x4e125916,0x431d501d,0x71d4e23,0x3e080808,0x1080819,0x95193e08,0x94201508,0xbb089408,0xbb089319,0x93201119,0x561e3c08,0x56134713,0x47252e13,0x55252c13,0xb1e3c13,0xa252d03,0xb026d03,0x47030a03,0x3c252c13,0x6d252e1e,0xc1134702,0xc021ed1b,0x7d1bc01b,0x7d1bc10a,0xf20a7e0a,0xeb0a7e21,0xf21bc321,0x7d1bc121,0x4606fe0a,0x461e8618,0x86184818,0x4b147d1e,0x7a147a12,0x4c16d514,0x9c005812,0xf00570b,0xe144412,0xf4144412,0xd4120e22,0x1308d508,0xcf08d51a,0x7108d608,0x7323691d,0xfa21e11d,0xfa21e321,0xe321f621,0xf521f621,0xf521e021,0xb821f321,0xf521e01b,0xad1bb821,0xb513ae13,0xde22cf24,0xde1ce915,0xe9239b15,0xa016601c,0xdf22cf23,0xcf166115,0x8166122,0x822cf14,0xcf166014,0xe922cf22,0x2d11d31c,0x9421930a,0x37219421,0x9c219c0a,0x94219521,0x2e219521,0xb521940a,0x8b21b818,0xf80bf61b,0xf800c30b,0xc303840b,0x15132f00,0x7b155e1e,0xab1b7a1b,0xac1b7a21,0x460a4621,0xab21aa0a,0x9c229d21,0x9c1c6922,0x690b3022,0x310b301c,0xd21ed20b,0x691ed71e,0x771d791c,0x6f127612,0x6d0e4611,0x5e0e4611,0x750e5711,0x49237612,0x8523af24,0x59055916,0xaf055805,0xdd055823,0xdd11f122,0xf111f022,0xb416c111,0x7f16b616,0x891c7e1c,0x2e0e101c,0x30113011,0x100e1111,0xf0e110e,0x9c112a0e,0xcf210a09,0x9210a1a,0xd1acf21,0xd1210c21,0x9c210c1a,0x31ad109,0x1b1a0b1a,0x891a0b1f,0xb1bdf07,0x141bdf1a,0x1b1f1a22,0xe91be91f,0x141f1b1b,0x8e056722,0x8e143916,0x6056916,0xa1b4312,0xa921960a,0xad1be50a,0x3b23270a,0x3b232416,0xa6232616,0x3b232405,0x2405a616,0xac232a23,0xff232a05,0xff05ac23,0x2c163523,0x4163523,0x2c232c24,0x2d164223,0x2c23ff23,0x2c240223,0x2232d23,0x24232724,0x3f124023,0xac124016,0x4005ac05,0x40232412,0xff1d3816,0xac1d3823,0x6023ff05,0x3f1b4121,0x401b411b,0x3f1b3f1b,0x6021621b,0x45233a21,0xb505b51d,0x2f148005,0x8193b23,0x53080608,0x540e550e,0x19121b0e,0xf1169e12,0x6922dc15,0x6c116a16,0x6c0e3d11,0x3d115611,0x3711560e,0x5511550e,0x3d0e3911,0xbc17920e,0xf104c125,0x90166615,0x1322dd23,0x6514421d,0x63256104,0x81164425,0x811d3114,0x31240614,0x1b1d311d,0x1b164423,0x4416d723,0xbb0fbc1d,0xbb0fbd0f,0xbd0d060f,0x47124b0f,0x47147712,0x7f124912,0x47147714,0x21147f12,0x8f058b12,0x4521a805,0x450a440a,0x4421a70a,0xa50a440a,0x731b7821,0xfa067406,0x75067424,0x2224fa06,0x85067113,0x73067106,0x1f068506,0xb155213,0x8515521e,0xb24fa06,0xfa15521e,0xeb106924,0xeb105b0f,0x5b0fea0f,0x8714bd10,0x151d861d,0xe9250213,0x2913e913,0x9824e013,0x2f231305,0x9b20d71d,0x920d61a,0xa08cd1a,0xc08cd1a,0xc1a0a1a,0xcb1a0d1a,0x920ce808,0x920f610f,0x5d0ce20f,0xa409600f,0xd720db1a,0x820d150f,0xff06410d,0xd81dd801,0xae06401d,0xb2052224,0x1505151c,0x21261105,0x47254926,0xad17ad25,0x2904f117,0xb4172917,0x41044117,0xad254904,0x9127417,0x901d6d17,0x201ea818,0x3d1b1f1b,0x93189021,0x2168c16,0xfe168c12,0x43120211,0x68040b01,0x7e20b701,0x2a1a811a,0x2b22990b,0x2e22990b,0x2e0b2b0b,0x2b22970b,0xb719b30b,0x8f1e9719,0xb6088c1e,0xd19b619,0x56070b07,0x8f185318,0x8c18531e,0xb620131e,0x8f070b19,0x56070b1e,0x531e8f18,0x8f201318,0x5c1e8c1e,0x9f201318,0x1318671e,0xbb186720,0x32201319,0x5c524,0x4d05c517,0xd170023,0x4b244917,0x6e253624,0xa8158e02,0x2e18e407,0x2e07a81f,0x2e1f2f1f,0x2f18e91f,0x1f19c81f,0x2f1f2f20,0x3218e91f,0xc820231f,0x231f2f19,0x2f19c91f,0x2319c91f,0xeb1f2f20,0x2307ba18,0x321f2f1f,0xb407b41f,0x2f18eb07,0x9800cf1f,0x9f0c1103,0xa41be30a,0xe1be30a,0x580aa422,0xe253013,0xf030e03,0xf06bf03,0x57135003,0xf06bf13,0x50135703,0x571e3813,0x10135713,0xea06bf03,0x6c05ec05,0x7014a612,0xc0237512,0x4c0f6d0c,0x4e0f6d0f,0x4c0f4c0f,0x4b0c9d0f,0x9c0c9d0f,0x4b0f4b0c,0x9b0c9c0f,0xc00f6f0c,0x4b0f4c0c,0x770f570f,0x770f4b0f,0x6f0cc80f,0x4b0f4c0f,0xeb145f0f,0xeb16a423,0xa4058e23,0xb41ca516,0x1705171c,0xa40f2205,0x111201c,0x2211a20e,0xe412f615,0x1e12f61d,0x1e1de415,0xfd1ddd15,0xe61ddd12,0x8b12fd1d,0xbe1c891c,0x421c8922,0x4222be0b,0x8d22bd0b,0xb00aa91c,0xb022250a,0x261be10a,0xb0222522,0xe122260a,0x220ab11b,0x221be122,0x44222622,0xa250b02,0x62250b25,0xad250a15,0x1e122716,0x2812271d,0xaf230312,0x78245614,0x5724561d,0x781d7a24,0x7a24561d,0xe824571d,0xf9171502,0xe2168c15,0x8168c22,0x4822e21d,0xed142105,0x1f14211c,0xef1ced14,0xf116741c,0xef05461c,0x481cf11c,0xee1ced05,0x4616731c,0x46054805,0x481cf105,0x9c0c1505,0x9c039e03,0x9e039d03,0xe2039e03,0xe2039f03,0xe100d703,0xe2039f00,0x1600e103,0x150c180c,0x160c140c,0x150c150c,0x14039e0c,0xdc03aa0c,0xdc03a000,0xa003d800,0x9f039e03,0x9f0c1403,0xd603aa03,0x9f0c1400,0xaa00d603,0xd603a003,0xa103a000,0xf00c1703,0xf525e825,0x75236604,0x6a1d6a23,0x66126e1d,0x720a3e23,0xe00a3d1b,0xba0cdb0c,0x10cdb0f,0xe00fba0d,0xa10fba0c,0xa30fba0f,0xa10fa10f,0x810cf70f,0xf80cf70f,0x810cd60c,0xa10ce00f,0xd60cf70f,0xf80f810c,0x820cf60c,0xfa0cf60f,0xfa0cd40c,0xdf0faf0c,0xfa0cd40c,0xaf0cdf0c,0x850cee0f,0x850faf0f,0xf80cdf0f,0xd60f820c,0xe81dd20c,0xe8064a1d,0x4a1de01d,0xf81de006,0xe212f312,0xe825e125,0xe025e104,0x4504e825,0x7a136b25,0x83136b02,0x63159b02,0x6a196719,0x6a196319,0x30083619,0x66082208,0x30083419,0x66196608,0x36196319,0x34083508,0x93196608,0x8f230a05,0x1e058f05,0x1e059316,0x93122516,0x4a065a05,0xbb13b006,0x280abc0a,0x33222822,0x27223422,0x280abb22,0xb224ba22,0x8b064c13,0x8a104b0d,0xe40d8a0d,0xe40d8b0f,0x8b0fda0f,0x491cf30d,0x4911e105,0xe1167905,0xf111df11,0xf1167c1c,0x7c05471c,0xe11cf316,0xf3167a11,0x25167a1c,0x7c11e314,0x27054716,0x4711e314,0xf31cf005,0xf014251c,0xd514251c,0x47142722,0x47167b05,0x7b1cf005,0xd51cf016,0xe715e722,0xf120122,0x681d0f1d,0xa323b805,0x9912a712,0xcb166212,0xcb239b11,0x9b22ca11,0x971f1123,0x9721ba07,0xba1b8c07,0x5521ba21,0x9b078e0a,0x9c1c6622,0x130b1222,0x131c3a0b,0x7922760b,0x131c3a22,0x3a22790b,0x7c1c3b1c,0x76009522,0x220c0803,0xa31fa708,0xb21fa31f,0x7719661f,0x5c134215,0xfc134202,0x5c025c02,0x7806ac02,0x5a0d9e15,0xb40fe010,0xef09791a,0x77097a20,0xf61ab409,0x2f11ef15,0x3303c414,0x330c320c,0x3203ca0c,0xfa0c,0xca0c3401,0x3400fa03,0xca0c320c,0x2f0c3403,0xfb025c1e,0x10171102,0x3605e817,0x390c280c,0x350c280c,0x390c390c,0x360c380c,0x10c380c,0x4d03cb01,0x4a03e20c,0x9e03e20c,0xb3011303,0x5b16b216,0x7c127414,0xd523711d,0x624a312,0xec12cd15,0xec12cf01,0xcf24a201,0x3824a212,0x2b1dc206,0xf403f201,0xf103ef03,0x3012503,0x320c5501,0x84138301,0x4f06e313,0x54015501,0xdf0cd401,0xdf0f6c0c,0x710f850c,0x1b1c1e0f,0x1b0afa1c,0xfa225d1c,0x6714330a,0x91169105,0x34160116,0x541c2614,0x541c2722,0x271c1822,0x6319611c,0x63082b19,0x2b082d19,0x40c0108,0x450c050c,0x20157f13,0xbb25f825,0xbb17ca17,0xca051217,0xb12f817,0xb12f302,0xb824bb02,0x7314ab24,0x7b127012,0xdd142716,0xdc11dd11,0xdc15e711,0xd5142511,0xd511dc22,0x1d15e722,0xab161916,0xb204d416,0xae25ae25,0xd504ba25,0x740f7b04,0x6e0cc60f,0x6f106d10,0xc261910,0xc17cf05,0xcf04ff05,0x781ab317,0x1210109,0xcb1ac821,0x13112f1a,0x130e180e,0x1811310e,0x4b1a0f0e,0x4b205e20,0x5e1a0e20,0xd41a0e20,0xb708d508,0xf804fb17,0xb804fb25,0x6317bb17,0x19059814,0x251b5623,0x25217f0a,0x7f21810a,0x24217f21,0x4c1b560a,0x35157002,0xfc157013,0x9e133513,0x64027c15,0xfe1e1113,0x4413df1d,0x6111620e,0x33147511,0x33240116,0x7405ad16,0x33240114,0xad147416,0x41232005,0x232012,0xa9124124,0x9d0daf0c,0xcd0daf0d,0x9d0fd90f,0xd90daf0d,0x960f510f,0x9610590c,0x900ca90c,0xe80d210f,0x590f510f,0x510d2110,0x9d0ca90f,0x900f8a0d,0x9610590f,0x9f1aa00c,0x9f20de1a,0xde09561a,0xa7074e20,0xc1f3107,0x52010b01,0x2c0b070c,0x2c1c281c,0x281c361c,0x50b061c,0x661c280b,0x6a237523,0xa61d6a1d,0xb7236614,0x9d1b9f21,0x961b9d1b,0xf90a521b,0xcc10f410,0x6e03b70d,0x6d016d01,0xb7042901,0x25042903,0xe303b70c,0x2c23e423,0x72232516,0x6232a14,0xf156125,0x6505631e,0xf811f805,0x63055f11,0xf9055f05,0xc5056311,0x90f870f,0xb211ef0d,0xa11fa23,0xf016c323,0x2f23f023,0xa416bb12,0x6109601a,0xf815f009,0x8b168b11,0xdb15fb16,0x940a9622,0x922090a,0x961bc822,0xa81c6f0a,0xa822aa22,0xaa22a922,0xab22a922,0xaa22aa22,0x6f1c7022,0xa51c701c,0x6d1c6f22,0x702e412,0xde02e417,0xa705d205,0xa8202a08,0xa5202a08,0xa508a808,0x2d08aa08,0x7e241020,0xa305b314,0x9e15cb0e,0x9e0ea30e,0x920e990e,0xa10e9a0e,0x920ea00e,0xa30ea10e,0x980e990e,0xa00e9f0e,0xa30ea10e,0x9f0e980e,0x1a01ad0e,0x87248b06,0x851f881f,0x3b1b1c1f,0x3b09d321,0xd31b1a21,0xd409d309,0x78077809,0xd31eff07,0xc24fe09,0xc24fc1e,0xfc15651e,0x64156524,0xca24fc15,0xcf1a8e20,0xce1a8e20,0xcf094e20,0x4e1a8e20,0xc920cf09,0xbd20ca20,0xfc05fb14,0xa41fa305,0xa219581f,0xa31fb21f,0xc51fd51f,0x5808581f,0x57198208,0x3119d908,0xdd19dd20,0xd919da19,0xd819da19,0xd819d919,0xd319d719,0x961d1119,0xa2121b16,0x117fe01,0x4d06b918,0xb5031f13,0x9923e616,0x1423e605,0x94059923,0x5510530f,0x3f1e4010,0x6013581e,0x210af222,0x590af21c,0x591c2122,0xff225822,0x701f50a,0x8c063815,0xdf166123,0xcc22cc15,0x3f141211,0xfc124016,0xa9124023,0xfc16d105,0xd1124023,0xc1201a16,0x6b19c219,0x3d057a05,0xd1057a14,0x20143d23,0xdd1cb30f,0x1a1cb317,0x56052105,0x3f1e2602,0x93194e13,0x4d194d1f,0x4e081019,0x11081019,0x11081208,0x121f8108,0x33032008,0xf006ba1e,0xe822db15,0xee11e811,0xf15f015,0xce1dd415,0x191dd41d,0xce1dce15,0x9718e51a,0x8c079707,0xba21ba1b,0x8e0a5521,0x8d078e07,0x8d21ba07,0xba210c07,0xce210d21,0xc07971a,0xba210d21,0x7a019621,0x3c15a31e,0x3d0ba703,0x5f006003,0x5f006400,0x64005c00,0x3c006300,0x63033d03,0x2f033d00,0x60033d03,0x63005b00,0xad032f00,0x660bad0b,0x2f006300,0x310b9f03,0xad033103,0x5c032f0b,0x32043b00,0x34033003,0x340b9b03,0x9b03bd03,0x32005c0b,0x32032b03,0x2b033003,0x30032b03,0x2f0b9b03,0x5b033d03,0x5d0ba000,0x5b032f00,0x64006000,0x2f0ba000,0x2b005b03,0x620ba403,0x62032b00,0x67005c00,0x330ba000,0x3e0bab03,0x5c006403,0x64006200,0xab006200,0xa100640b,0x3300670b,0x5b0ba003,0x5e033300,0xa20ba300,0xa10ba30b,0x330ba20b,0xa20bae03,0xcb1ab30b,0x2720ea1a,0x5a230f16,0xf815d314,0xf8140f1c,0xf23b31c,0x7c22b214,0xfa22b01c,0x50225,0xbc050005,0x7225fa17,0xdd1d1305,0x5822dd22,0x20057205,0x6c0fde0d,0x6d0fde0d,0x6c0d6c0d,0x6e10270d,0x2c0d6e0d,0x3c0d6c10,0xe2023802,0x20023813,0x2013e213,0xe224f513,0xf124f513,0xf1023424,0x3413dd24,0xeb13dd02,0x59023424,0xd11fd908,0x561fd11f,0x56198208,0x82085708,0xc119a319,0x1a201a19,0x81201720,0x9a201708,0x9a088208,0xfe201908,0x9d20191f,0xfe1fff08,0xff20191f,0x87089d1f,0x8719a608,0xa6200408,0xa519a619,0x17089d19,0x81088220,0x9a19a408,0x811ffe08,0x1a19a308,0xa5089d20,0xd81fff19,0xc401b814,0x531a1b14,0x76205420,0x44197219,0xc2084408,0xf119771f,0xf404ef04,0x9b0fcc04,0x9b0cf00f,0x990f9a0f,0x9b0cf00f,0x700f990f,0xaa170e23,0xe5170e14,0xaa14aa02,0x7005df14,0x7405df23,0xfa02e71d,0x1b0a1c09,0x7a0a1b0a,0x79217921,0x1b0a1a21,0xa5211a0a,0xa1210509,0xa01f9f1f,0x9d1f9f1f,0xf81fa01f,0xfb1a2e08,0x2f233a08,0x2f146e23,0x6e232623,0x3b232614,0xcf16cf16,0xd71baf21,0xc421cc21,0xc41bad21,0x6d1b9921,0x670a5b0a,0x5b0a660a,0x6a0a660a,0xd721cf0a,0xd721cd21,0xcd21cc21,0x5b1b9921,0x990a6a0a,0x6d0a6a1b,0xcd1bad0a,0x6d21cc21,0xec1fe908,0xe71fe91f,0xe71fec1f,0x6a1fe51f,0x41254908,0x41044404,0xf904f804,0x41044404,0x4404f904,0x43172e04,0x42044304,0xf1254904,0xf211120d,0x6b24430d,0x6b1d6f23,0x6f14a423,0x3c1d6f1d,0x3c127524,0x75245124,0x917d212,0x9050c26,0xd260726,0x8260705,0xfe050d26,0xd1110110,0xf811010d,0x1e0dd110,0x521b540a,0x880b1f1b,0x88227622,0x760b1c22,0xc0b1c22,0x7622760b,0x1f0b1322,0x4909130b,0xa11a4c1a,0x510a4721,0xcc075107,0xab0a411e,0x1e1cac1c,0x1a1cac05,0x4f17db26,0x5b13bf06,0xc16dc06,0xa305a324,0xdc231e05,0x34231e16,0x96124823,0xb1c5b22,0x581c5b0b,0xb0b0e1c,0xe1c5b0b,0x811c860b,0x8d22b61c,0x67120316,0x920b9105,0xd80b560b,0x7624e413,0x1924e406,0xd8067713,0x87067613,0x76067706,0x5e24e406,0x5b195c19,0x23195b19,0x23195e08,0x241faa08,0x261faa08,0xac082408,0xaa0fae0f,0xb00fae0f,0x9c0faa0f,0x1819c208,0x9b201820,0x4b089c08,0x80067815,0x34232306,0x3423251d,0x25232e1d,0x24232523,0x2a232323,0x2a059c16,0x39059c1d,0xb1d2a12,0x3a1c9d0f,0x220e220f,0x2f112611,0xcb16fd24,0x2a16fd05,0x8205cb24,0x8422b71c,0x8522b71c,0x841c841c,0x821c871c,0x3115301c,0x9f152e15,0xff19a019,0x4203441f,0x17034303,0x160e150e,0x531fce0e,0x41198008,0x423be14,0xd307a016,0xd31ad21a,0xd2210f1a,0xd01ad21a,0x33210e1a,0x971c990f,0x241a5c1c,0x241a5809,0x93092209,0x59092220,0x9120931a,0x2a14f613,0x157206,0x3e133e14,0x72140213,0x3f140215,0x1e157213,0x7c0a1d0a,0xbe222d21,0xbe1bf30a,0xf30aba0a,0x251bf31b,0x3a222d22,0x10160414,0x17091b16,0x181a5209,0x88091909,0x4717ad20,0x4725e325,0xe3254d25,0xad04ef25,0xeb25e317,0xa425da04,0xe304ef17,0xe304f025,0xf004eb25,0x71b0904,0x601b0b1b,0x5e195d19,0xa5195d19,0xa4195e1f,0x58244214,0x64244223,0x4f02dc23,0x4c08d620,0xd1204c20,0xcb08cb08,0x4f1a0708,0x68229d20,0x651c651c,0x9d229b1c,0x66229b22,0xda229d1c,0x3511e622,0x6d0d6c05,0x7f10310d,0x431f8a1f,0x891f8a19,0x4319431f,0x7c1f7d19,0x431f7f1f,0x5a1f7c19,0x35184d1c,0x24073507,0x281c5d0b,0x2c122712,0x29122712,0x8122c1d,0x7723bf12,0x99057705,0x40120816,0xa81a8509,0xc01a8520,0x3d20c220,0xf812e006,0xa260001,0xa04ff05,0xff25f705,0xc04ff04,0x4df05,0xdf04ff26,0xdf25d204,0xd050d04,0xc04df05,0xc417b805,0xc417bb17,0xbb25d217,0xd217bb17,0x75260425,0x5a22f105,0x7d058605,0x13161305,0x5122fb16,0x2a054f14,0xfd22c914,0x4e1d6516,0x2e1d6523,0x6b234e24,0x931b6f1b,0x941b6f21,0x9d219321,0x7501b51d,0x901ac324,0x901ac409,0xc4099409,0xc909921a,0x941aca1a,0xca099209,0x931aca1a,0x88099409,0x46030815,0x1f030825,0x8e254603,0xfd0a8c0a,0x8921fd21,0x890a880a,0x880a870a,0x3110450a,0x310d880d,0x880d240d,0x3914370d,0x39121114,0xf7120614,0xe713d822,0xda13d924,0xb824ba1d,0x120cf924,0x120fab0d,0xae0d100d,0x120fad0f,0x100fae0d,0xae0fb00d,0x750a380f,0x6221a21b,0x5f0d560d,0x180d560d,0xb10d5a10,0xb20aa30a,0x9a0aa30a,0x9a0ab20a,0xb21bee0a,0x991dbc0a,0x9114f724,0x92068e06,0x16069206,0x6015601e,0x92250715,0xcb01e606,0xcb01e712,0xe701ea12,0xa717b201,0x6d25ec17,0xf6069815,0x2013f613,0x9f156d1e,0xb4062801,0xcb179b1d,0x6b259725,0x4c0b0c22,0x1c0b0c1c,0x1c1c4c0b,0x4d22880b,0x251c4c1c,0x71226b0b,0x7414ac23,0x72127412,0xa9237123,0xd808b008,0xd0aa319,0xd0a9a22,0x9a0a9b22,0xb7016e0a,0xd30c4003,0x6e03d403,0xa40ead01,0xf402a302,0x94206a08,0x911e941e,0x94070f1e,0x69070f1e,0x5e070f20,0x69206918,0x9408f420,0x6909021e,0x2185e20,0x1b072509,0x25185e07,0x9d090207,0x3e07191e,0x1b090221,0x1b213e07,0x3e1e9d07,0x2207121,0x3e213e09,0xa71ea821,0xc71ea81e,0xff07461e,0x3e207108,0x461ea821,0xa71ea707,0xfd20751e,0xff206f08,0xff1ea708,0xa7213e08,0xbf196d1e,0xc11fc11f,0x3c19751f,0x76197508,0x3c083c19,0xbc197608,0xc319701f,0xc3083f1f,0x4019711f,0xc3083f08,0x7608401f,0x3d197019,0x6d1fbb08,0x3c1fc119,0xc11fbb08,0x3f19701f,0x70083e08,0xbd083e19,0xbd19701f,0xa083d1f,0x16156225,0x9421be1e,0x590a591b,0xbe21bf0a,0x8e21bf21,0x8e0a571b,0xc01b921b,0xbe0a5721,0xe521bf21,0xcb18d41e,0x8718d418,0x111f0e20,0xe1a4809,0xe40a591f,0xbf1ee51e,0xe50a5921,0x1120871e,0xe1f0e09,0xcb18ca1f,0xbf18cb18,0xbb1ee521,0x5a241f05,0x5a05bd12,0x5a148d12,0x8d02c312,0x9002cd14,0x9716f914,0x691d6514,0xd31d6412,0xef02d805,0xbd21ee21,0x8021ee1b,0x491bbd0a,0x70d4a0d,0x48100710,0x480d490d,0x4910050d,0x7d17570d,0xbe257c25,0x8520bc20,0x4120bc1a,0x621a8509,0xd91d6b12,0xdd05d905,0x651d6902,0x3d235912,0xdb235924,0xa2243d05,0xe609ae09,0xe609a21a,0xa9211c1a,0xdd1ae209,0xa909aa1a,0xa909a109,0xa11add09,0xa21ad709,0xd7211c09,0xaa211c1a,0x400e3a09,0x400e3f0e,0x3f0e4b0e,0x6a11810e,0x4c0e640e,0xd81f4d1f,0xb607d807,0xb61e9018,0x901eef18,0x591eef1e,0x571e9018,0x7b0b9c00,0xc8007b00,0x7d007d0b,0xbe034e00,0xbf0bbe0b,0xbf00560b,0x5600820b,0xca008200,0x560bcb0b,0xbe005700,0x7b00570b,0x82007d00,0x560bcb00,0x4078700,0x870aa71f,0xa50aa707,0xdf22160a,0x8707891b,0x160aa507,0x8505f922,0xf4172723,0x1e242016,0x54242124,0xf402c71d,0x21241e16,0xc7242124,0x88242202,0xac19af08,0xaa19af19,0xaa200819,0x819ab19,0x703ee20,0x2b03d001,0xbe12371d,0x2c123716,0x4b16be1d,0x5b0e4a0e,0x6e0e4a11,0x6e115b11,0x5b0e5611,0x79257811,0xea257604,0x201beb1b,0x17222022,0x521be222,0xd708d820,0xd90cda08,0xe70f710c,0xea25da04,0xb30bb404,0x6c006c0b,0x44006d00,0x42006d03,0xc7034403,0x7c1fcb1f,0xf6193319,0xe21f7007,0xed22171b,0x56033b1b,0x99040f01,0x4903b50b,0x4a034903,0x780bc403,0x99034800,0x2a03480b,0x490b9903,0x780bc403,0x3d22bd00,0x10b3e0b,0xd4223f1c,0xcd0ad10a,0xcd0ad20a,0xd20acf0a,0xd41c010a,0x630ad10a,0x6a159b13,0x83159b13,0x6a136a02,0x63031e13,0x3607fc13,0x92194119,0x981f9907,0xa61ae007,0xd61ad609,0x121ad81a,0x541c1821,0x54225522,0x55225322,0x47204622,0xed08ca20,0xb020eb20,0xfd13971a,0x9b063214,0x2f146205,0x3d07bd12,0x5709f71b,0xbe215621,0xbd18be18,0xfe09f707,0xff207108,0xd0202408,0xc319d419,0x881a8320,0x421a831a,0x201a8809,0xc51ae821,0xb81ae809,0xb809c509,0xc609b709,0x909c509,0x921201b,0xb01b0c1b,0x9212009,0xf409b01b,0xea21231a,0x211aea1a,0x211af421,0xf409b521,0xc609b81a,0x2509c509,0xb31af421,0xb51af409,0xf409b409,0xb309b41a,0xb3212509,0xb109b209,0xc09b009,0xb221251b,0x8d09b109,0x67120316,0x25016905,0x800c8004,0xb01680c,0x3a0e1904,0x60113811,0xb31edf07,0xed1edf18,0xe018b31e,0xb218a81e,0x6018a818,0x9718b207,0xfd1d6114,0x9416fd16,0xab05c614,0xe809721a,0x9020e820,0x901aab09,0x68210109,0x901aab09,0x11aaa09,0x67097821,0xec097809,0xec097320,0xae20ee20,0xf120ee1a,0xae1aae20,0xec09731a,0x901aaa20,0x78096809,0x67097309,0x7d03de09,0x7d0bf103,0xf100b603,0x6300b60b,0x630bf103,0xf1036403,0x9f03640b,0x9f0bf100,0xf10bf000,0xb40bf00b,0x100bf100,0xba011601,0xec12dd0b,0xa139e01,0x30182d06,0x5a11f518,0xf122f105,0xf523c822,0xb623c811,0x4411f523,0x11a0620,0x1109cc1f,0x3321331b,0xcc077421,0xec077409,0x1109cc1e,0x9e0a9c22,0xa00a9c0a,0x9e1be20a,0xe20a9c0a,0xb220a91b,0x3e1a7c20,0xb51c0022,0xb60ab50a,0xf2223e0a,0xb8097520,0xb71ab81a,0xaf20f21a,0xd60a651b,0x710a6521,0xd621d60a,0xaf0a7521,0x2c132a1b,0x5b024213,0x27132815,0x10132813,0x2a13271e,0x5b024213,0x44124515,0x44232912,0x29124312,0x4130823,0x1f151f13,0x5152915,0x81df013,0xb1151f13,0x2056123,0x6005611d,0x371d0305,0xf319f220,0x451e1819,0xe2154302,0xff22e122,0xb522e11c,0x6a1cfd23,0x49174e25,0x73174e17,0x4d174925,0x6e256a17,0x49256a25,0x45256e17,0x71047304,0x4d257125,0x4d047417,0x75256e17,0x75174d04,0x4b047404,0x71044525,0x2d172f25,0x2d047117,0x74254b17,0x43044204,0x43047104,0x71172f04,0x4a044b04,0x4a046c04,0x68044204,0x6c256825,0x71044a04,0x42256804,0x74172d04,0xc5047104,0x3d11cd11,0xa4017e05,0x24033f0b,0x57217f0a,0x481b571b,0x4821801b,0x801b581b,0x35115221,0x350e3a0e,0x6b11570e,0x640a0911,0xab0a2721,0xe01d7314,0x1a225a05,0x7d22571c,0x7911e116,0x62095c16,0x8e1a9e09,0xb619b808,0x8c19b619,0x8c088d08,0x8d19b408,0xb2088d08,0xa1088e19,0x231e2606,0xf91e261e,0xd21e2313,0x60066124,0x2d066006,0xd0153315,0x6f244105,0xdc126f12,0x4a170605,0x49067a15,0xe6067a15,0x60154924,0x508ea20,0x2808ea09,0x2809051a,0x51a401a,0x76090509,0x761a2420,0x251a3f20,0x761a241a,0x3f1a2520,0x2508ef1a,0xd0e131a,0xf111030e,0xc517f017,0x9d17f001,0x9d01c51d,0xc512b21d,0xac1dd001,0xd112e824,0xa121823,0x6305d012,0xe202e223,0x3602e102,0x941ca624,0x131ca21c,0xaa1cad26,0x1c1cad1c,0xfd1ca90f,0xfe1e0d1d,0xf61e0d1d,0xe313e324,0xfe1e1113,0xfc098e1d,0xfc098d20,0xfe1ac120,0xa11aa220,0xa120df1a,0xdc1a9e1a,0xda1a9e20,0xda20dc20,0xdc20d820,0xd620d820,0xfe20dc20,0x317be04,0xfd050305,0xfd04fe04,0xfe25f604,0xff25f604,0xf725f704,0xfe17bc25,0x17bc04,0x6704fe05,0x19066806,0x64066802,0x36021806,0xcb240916,0x48240916,0x9c16cb16,0x1a089e08,0xbf089e20,0xbf201719,0x17089619,0x9a089620,0x47201708,0x480d3e0d,0x3f0d3e0d,0x3f10040d,0x440d400d,0x450d440d,0x450d3f0d,0x3f10040d,0xf621550d,0xa8217c09,0x241fa71f,0x26082408,0xfe195f08,0x910efd0e,0x8b200a1c,0x4119aa08,0xb5136925,0xb606b506,0xb6254106,0x41026406,0x68174325,0xf4256404,0x2621251a,0xec214821,0xec1b2f09,0x2f214f09,0x9d1be01b,0x1422140a,0xe01bdf22,0x161bdf1b,0x161be022,0xd1bdd22,0xca159c22,0xcc028106,0xd31cd41c,0xf1055a1c,0xc823c822,0x5e23b623,0xfe0efd05,0xed0eff0e,0xeb09dd09,0x4509dd09,0xff09eb21,0x33131c1d,0x81131c02,0x1e0006,0xe8067e1e,0x131c24,0x3324e71e,0xff24ee02,0xd924e81d,0xe724e713,0x1c023324,0x8b21fe13,0xfc21fc0a,0xfe1bd021,0xd8235d21,0xd814a002,0xa005d302,0xb2177114,0xe3178104,0x7405dd02,0x6405dd1d,0x9b236a23,0xd80b8510,0x8004a210,0x7f04af17,0xb90cd00f,0x7d17850c,0xf604a817,0xf9183c06,0xf806f906,0x7b06f606,0x7d10cb0b,0x4214310b,0x9722f414,0xe71daa12,0xed0a9e14,0x2122211b,0x12221022,0x97221022,0x2a22120a,0x910e8a0e,0xf90df411,0x1f111f0d,0xf4111d11,0x7e0d7f0d,0xa70d7c0d,0xf70fa80f,0xf80fa80c,0x300cf70c,0xe909ea1b,0xe809ea09,0xf209e909,0xa414221c,0xc156523,0xc13d21e,0x3213d51e,0xc13d202,0xd202321e,0x65131613,0xb9255015,0x4e051317,0x7a072208,0x4240519,0x3a1d3a24,0x505ae1d,0x391e2524,0x2506a413,0xfe06a41e,0x4f025313,0x4f06a502,0xa51e2502,0xfe1e2506,0x6c06a613,0xef11e916,0x93251015,0x1a12d306,0x2d0df311,0x4405b10e,0x4405aa12,0xaa16cd12,0xa805aa05,0xd405a505,0x4a1f4b07,0xbc22bb1f,0xbc22ba22,0xba1c8c22,0x8d22ba22,0xee22bb1c,0xf21feb1f,0xa423581f,0x34236414,0x271bf522,0xbe1bf522,0xbe22270a,0xbb222d0a,0xf08100a,0xe080e08,0xfc1f0608,0x111f801e,0xe081008,0x801efc08,0x8108111f,0x811f821f,0x8208141f,0x3b08011f,0x6b080019,0xe8086808,0x9e01f61f,0x6701f213,0x1d0d680d,0xd059410,0x4116ac23,0x2c251f13,0x79251f1e,0x9a02f915,0x980f9b0f,0xf10f9b0f,0xf0f980c,0x291c2d0b,0x691c2d1c,0x290b0722,0x71c2d1c,0x2c22690b,0x290b071c,0xf1c2b1c,0x160df00b,0x160ded11,0xb0dea11,0x13057d11,0x13058616,0x5122fb16,0x18112f14,0x8810f10e,0x871c841c,0x891c871c,0x1d1c8b1c,0xe11a191a,0x181a1908,0x181a1e1a,0x5f20521a,0xd8205220,0x5f205c08,0x5c205220,0x5008d720,0x5008e220,0xe21a0f20,0xd708d808,0x5d205c08,0x1c08d320,0x5d08e61a,0xd71a1c20,0x5a08e208,0x1c08e620,0x1c1a211a,0x231a1b1a,0x1c1a211a,0xd71a231a,0x5c205a08,0x231a2220,0x181a1b1a,0x1e205f1a,0x1b1a221a,0x1b08e31a,0xe31a1d1a,0x1e1a1908,0x8308e11a,0xf61abc09,0x821abc20,0xd20f609,0x1b121916,0xf1dd412,0xaf1dcd15,0xef0cfa0f,0x950cef0c,0x570faf0f,0x5a1a9609,0x951a9609,0x9509561a,0x561aa31a,0xf3124e09,0x9a02f205,0xb30a990a,0xa10a990a,0xb322230a,0x230a990a,0x240aa122,0xf3222322,0x8815f515,0xf715f516,0x95168811,0xe6053523,0x91086811,0x931fe619,0x681fe819,0x8c176808,0x1177604,0x1e8807,0x861e8807,0xbe070018,0x1ebf1e,0xbe188607,0x3007001e,0xb21970a,0x2f21970a,0x2f0a0b0a,0xb216f0a,0xbc08430a,0x43083c1f,0xbb083c08,0x751fc11f,0x6d084319,0xc11fbf19,0xbb08431f,0xd1fc11f,0x510d4f10,0x150d4f0d,0x600d6010,0x4f0d510d,0xf0d510d,0xcd100d10,0xfb076c18,0xf218fb18,0xf218cd18,0xd518d618,0xf218cd18,0xd518d218,0xf21f1418,0x151f1418,0x1518f21f,0xf207931f,0xf218d218,0xeb078018,0xac0de70d,0x820de711,0xdb11ac0e,0xa0a951b,0xd6220a22,0x8b1bdb1b,0xb0228722,0xb61cd61e,0xb911b911,0x2711ba11,0xbb11ba05,0xb8052711,0xb7052611,0xd6052611,0xd611b71c,0x2711b91c,0xd711b705,0xa511b81c,0xc0251124,0x9412c012,0x7a150906,0xa4142516,0xdc142523,0xa423a411,0xe1142223,0x79142211,0x7f11e116,0xec1bbf0a,0xd221ec21,0xf021f01b,0xec1bbe21,0x50228721,0x4707471c,0xd61ec707,0xa81ec709,0xa809d61e,0xd609d71e,0x1c09d609,0x63186307,0x47074418,0x91074407,0x91074718,0x370b3418,0x930b370b,0x3718581e,0x9318580b,0x3718910a,0x7c07470b,0xb1187618,0x77187620,0xd920b118,0x7b187c1b,0xb1187c1a,0x7c20b320,0x7b20b318,0xd90a931a,0xd918821b,0x7d1a7b1b,0xd607471a,0x33186309,0x47228707,0x7d1bd907,0x3318821a,0x34074707,0x37074707,0x407340b,0x34073307,0x930b3707,0x7d18820a,0x8220b81a,0x55075618,0x5c0b2607,0x26075607,0x26075c0b,0xdb075b0b,0x5b075c1e,0x5b1edb07,0x4e227f07,0x7f1edb18,0x820b3722,0x34073418,0x4184e07,0x100107,0x410d4110,0xfe0ffd0d,0x420ffe0f,0xf00d410d,0x241aef1a,0xbb09ba21,0xbb1af009,0xf01af209,0x4d14951a,0xbb05bc23,0x24146016,0x601d0312,0xca11fa05,0xbf143c23,0x4c225023,0x4b224b22,0x551c1022,0x171c1022,0x2c22551c,0x641a401a,0x281a4020,0x2820641a,0xe908ea1a,0x6408e908,0xff1a2820,0x42163523,0x4163516,0x42164224,0xff232d16,0x76067923,0x87068706,0x191e1a06,0x641e1a1e,0xde1e1915,0x97195218,0x1a1f971f,0x1a18de08,0xde18dd08,0x2618dd18,0x9318de1f,0x960e950e,0x940e950e,0xc90e960e,0xc80e9b15,0xc90e9c15,0x9315c815,0x9a0e960e,0x9a0e930e,0x9c0e920e,0x9d15c80e,0x9715c80e,0x9d0e9e0e,0x9e15c80e,0x920e930e,0x930ea00e,0x9f0ea00e,0x9e0e990e,0x970e970e,0x9f0e930e,0x990e980e,0x50e970e,0x3105551d,0xf0055514,0x1143111,0xdc16851d,0xbb0abc22,0xf0222e0a,0x190ded0d,0x180ded11,0xf7111911,0x2807fa07,0x3c243419,0xd61d6f24,0xb913b11d,0xb724b924,0xb71dd624,0x813b424,0x551e3c02,0xc706c713,0x3c027706,0x5d004b1e,0xb500000b,0x901d2116,0xce23cd05,0xce058523,0x85121623,0x750d7605,0x460d740d,0xd124b306,0x4524b31d,0x451dd106,0xd1151806,0x5903251d,0x71e371e,0xf51ded13,0xd1df51d,0xaf130713,0xe916ae16,0xad16ae23,0xad23ea16,0xea122616,0x24122623,0x9123ea16,0xfd160116,0x34160111,0x5b11fd14,0x1f228807,0x641e1a0b,0x7a1e1915,0x731a3e20,0xf6055b20,0x2c22f222,0x1e12371d,0x70170b23,0x75237512,0x3b171223,0x61106324,0x180fd010,0x5a0d6310,0x570d630d,0x5910140d,0xb7195a19,0xa9195a1f,0xb71fb71f,0x6b1fa91f,0xa71fa919,0xa708371f,0x3108221f,0xa7083708,0xda08311f,0xae19dd19,0xdd01de08,0xdd01ef01,0xd9139101,0xed198812,0x9b1ff01f,0x181c981c,0xc709900f,0x5f1ac81a,0x59045704,0xb316df25,0xb3124205,0x42241105,0xae16af12,0xae059616,0x5e16ad16,0xeb096f14,0x76097620,0xe920f009,0x9120f020,0x6d1aac09,0xac20f009,0xc909911a,0xc9096b1a,0x6b09921a,0x94099209,0x72097209,0x92096a09,0x6b096a09,0x71099209,0x76096f09,0x7120e909,0x91097609,0xac096b09,0x351d0a1a,0xb723b714,0xa168f23,0x217031d,0xd005c417,0x671d5f02,0xc417031d,0x4c02d005,0xa301140c,0x1c011403,0x1c03a30c,0xa500da0c,0xa400da03,0xd803a503,0xa30c4c00,0xa50c1c03,0xa503a303,0xd903a703,0x8f03a700,0xd904340c,0xa503a300,0xee1aed03,0xb909b91a,0x261aec09,0x221c5d21,0x9522950b,0x5d184d22,0xde15e51c,0xde054911,0x49167611,0xf41cf305,0xf323a51c,0x4a23a51c,0xe5142305,0x49054915,0xf21cf305,0x4a1cf31c,0xd91cf205,0xf0251101,0xef01f001,0xef01dd01,0xdd01de01,0x39235a01,0xdf236224,0xda154224,0xf615fe24,0x6815f815,0x48116711,0x610e480e,0xc2116211,0x4d241814,0xae04ef1d,0x1e17b317,0x1c17db05,0x80117e26,0x80115b11,0x5b0e4411,0x7a115b11,0x7a117f11,0x600e5311,0x750e530e,0x600e5011,0x500e530e,0x7b0e600e,0x7b117a11,0x7a117c11,0x7e117f11,0x95115b11,0xcb0ecc02,0xb11d790e,0x66127814,0xf707f81f,0x7407f807,0xc219321f,0x8918d61e,0xf218d618,0x38188918,0xc71c9a0f,0x991c9a1c,0xd1cc71c,0xe17fb06,0xc617fb06,0xc6060e01,0xd2061001,0x3913fb14,0xf9025213,0xf124d21d,0xf7062b1d,0xf7249614,0x96249714,0xc1249724,0xc1249612,0x96139012,0x9414f624,0xdc249624,0x64126802,0x58126823,0xc514a423,0x2f09c209,0x7212f21,0x3b09c51b,0x1d0fd810,0xa424a50d,0xa4251124,0x96150624,0xa4249424,0x23249624,0x221ea81b,0x1e1b221b,0xcb213f1b,0x5e0cd10c,0xa314ae0f,0xb002dd14,0x7221cb1b,0x7021cb0a,0x9e0a720a,0xfc193607,0xa114ea07,0x3c01b712,0x3607b31b,0x3307b31b,0x330aa01f,0xa0221b1f,0x9c0aa00a,0x2b1f2b0a,0x3618e31f,0xa418e31b,0x3609f007,0xf018e31b,0xa007b309,0x3e1b360a,0x300d3d0d,0x2e0d3d0d,0x6d0d300d,0xf41f6f1f,0x2c1f6f07,0x2c07f519,0xf507f619,0x971b8c07,0x971b8d07,0x8d18e507,0xb518e61b,0xb51b8f07,0x941ee407,0xb51b8f1b,0xe51b9407,0x8d18e618,0x591ee41b,0xde1b940a,0xe11d2023,0xd01ebb23,0xd01ea61f,0xa6197a1f,0x22197a1e,0x22071e07,0x29123016,0x5d14931d,0x5d14991d,0xcf14921d,0xfb0dd005,0xd50dd510,0xd00dd20d,0xf90dd20d,0x3310f510,0xee24eb02,0xdd24eb24,0xd324f013,0xd619d719,0x931ec619,0x931f1e18,0xa1074b18,0x4609dd07,0x961e9621,0x4509df1e,0xf2054a21,0x7816781c,0xa51cf416,0xd616df23,0xd6241016,0x7e233716,0x260e0914,0x26112311,0xfa112211,0xa31e270d,0xa3251806,0xfd025706,0x42157713,0x42025c13,0x5c02fc13,0xac025c02,0xb9157806,0x400b3f22,0xb70b3f0b,0xb91c8b22,0x860b4022,0x8822b71c,0x8b1c8b1c,0x8d22be1c,0xba1c8d1c,0x8c1c8c22,0x8d0b401c,0x3f1c8d1c,0xc71c8b0b,0xa617a525,0xcf17a617,0xcf179725,0x9725d025,0x8919aa17,0xbd200a08,0x1519bb19,0x9419bb20,0x2c201508,0x2f212d21,0x18015721,0x9f041004,0xd903a303,0xf71d0100,0xc1055911,0x3a18f207,0xfa1f3a1f,0xd618f118,0x3d109f10,0x9c109f00,0x6003d10,0x81059f24,0x9e059f14,0x9e148105,0xd7231b05,0x4416d716,0x44059e1d,0x9e16441d,0xee044b05,0x5725e504,0x12041601,0xa70f5b04,0x150f8f0c,0x1c07e419,0x14191319,0x14191c19,0x1c1f5619,0x1a1f6119,0x1a1f6019,0x6007e919,0x581f571f,0x581f5e1f,0x5e07ea1f,0x1c07ea1f,0x561f5619,0x1d1f611f,0x601f6119,0x2019201f,0x21191919,0x5d191919,0x6119211f,0x2119201f,0x1f07ec19,0x61191e19,0xec19211f,0x1e07ec07,0x6107eb19,0xeb07ec1f,0xea1f5e07,0xe61f5607,0x5f1f5907,0x1d1f591f,0x1d1f5f19,0x561f5e19,0xeb1f611f,0x851f5f07,0x3520c01a,0x34093509,0x5f094009,0xe20ce910,0xa60ce90c,0x8b0f8b0d,0x8d0da60f,0xa80da60f,0xa80ce30d,0xe40f900d,0xa80ce30c,0xa30ce40d,0x92105f0d,0xa40dad0f,0xa40ce80d,0x920da30d,0xa40ce80f,0x650f920d,0xe60dac10,0xad0dac0c,0xea0ce50d,0x650f8a0c,0xea0f9110,0xac10650c,0xe60ce50d,0xad0ce50c,0xe90ce80d,0xe20f8b0c,0xe30da60c,0xe70f8d0c,0x650f910c,0xe70ce610,0xd410650c,0x3d0ad30a,0x540e4d22,0x710e550e,0x74117311,0x550e4d11,0xf411710e,0xdc16781c,0x6e113511,0x8f118f0e,0x17118e11,0x850a4b0e,0x850a361b,0x3521b01b,0x6621b00a,0xb01b681b,0x351b6821,0x3621840a,0x281b5a0a,0x850a360a,0x5a0a281b,0x850a361b,0x6a0a351b,0xdc150c1b,0xdc150812,0x812d812,0x9d20d315,0x9009531a,0x4623c216,0x3a05ae14,0x3a16361d,0x3623221d,0x905a416,0x77163624,0x9b0f4b10,0x40022a0c,0x401df715,0xf7153615,0x4505b41d,0x4b124b16,0xb4147d12,0xd5147d05,0x7f146f16,0x6f147d14,0x46244114,0xe005e024,0xe11d7305,0x3f02e102,0xa405e024,0xa70dde11,0xaa0dde11,0xbb11a711,0x9304d225,0x3107ae17,0x311b101f,0x1018df1f,0xdc18df1b,0xdc09cb18,0xcb18e018,0xf18e009,0x1009cb1b,0xb209d11b,0xed09d107,0xdf07b218,0x1009cb18,0xae07af1b,0x251b1007,0x3f022602,0x28022615,0xa613cd02,0x1c00db03,0xc4249a0c,0xc41dc112,0xc11e1d12,0xed1e1d1d,0x631dc101,0x2b196619,0x2c196608,0x67082b08,0x3414fb15,0x9514fb13,0x95133413,0x200ddb11,0x250e200e,0x7f11950e,0x801b5821,0x9f024f21,0x9f025306,0x5113fb06,0x230a2002,0xcb0a210a,0x25066313,0x1c066302,0xd6022502,0xc21f1918,0xf21f191e,0xf21ec018,0xc007c118,0x6a12721e,0x31236423,0x2f03c903,0xfc03c90c,0xfe0c2f00,0x6e207108,0xa503a718,0x7703aa03,0x321a701a,0xe4086509,0xc5085a1f,0x8122801e,0x18228022,0x1422810b,0x90185d07,0x8d188a0a,0x881ec00a,0x90071409,0x8a0a900a,0xc01ec018,0x4b1eb41e,0x4d1eb418,0x88184b18,0xff0a9009,0xc00a9020,0xee20ff1e,0xe1c130a,0x4d15661c,0x4d155715,0x1b154c15,0x7b154c13,0x1b131b06,0x46131a13,0x57024602,0xad131b15,0x88919,0xaa088920,0x1200219,0x2088920,0xaf19aa20,0xaf088319,0xa8088419,0xa819af19,0x87088319,0xa719ad08,0x1088919,0x19200020,0x85089d20,0x87089d08,0x8519a608,0xa5089d08,0x9a201719,0x9a088508,0x85201908,0x1a088508,0xa5201720,0x851fff19,0xa519a608,0xaa089d19,0x3088319,0x319aa20,0xa7200220,0x8719a619,0x3b083408,0x3b083008,0x30196d08,0xbb196d08,0x2108311f,0xe30c840c,0x6b0c8400,0xe300e301,0x2100e400,0xb100e40c,0xf20c2103,0x2000e800,0xf203b10c,0xed0c2000,0xa00da10f,0x6f0da10d,0xa00da010,0xea105e0d,0x86088d0f,0xb2200708,0x910f650c,0xea0f650f,0x6b0f910c,0xea0bea03,0xd1ef003,0xcd1a0c1a,0x6f204708,0xc1ef007,0xec08cd1a,0xf007741e,0x6818b41e,0x681ef007,0xf01eec07,0xe8076f1e,0xe808cd1e,0xcd18b41e,0x9b0cf108,0xcc0fcc0f,0xf10d130f,0xf30d130c,0xbf0f9e0c,0x2d0f2e1c,0xc00f2e0f,0xc10f2d1c,0xf404fc17,0x8a128b25,0x7017f512,0xe3244812,0x7405e305,0x81237523,0x52256c25,0x77175217,0x4b048804,0x910e8a11,0x53187211,0xb31eac1c,0xb4184d1e,0xb31eac1e,0xb31ead1e,0xad1eb41e,0x2a1eb41e,0x961ead1b,0x9821461e,0x9121461e,0xad1e981e,0x981e961e,0x351e981e,0x7207181a,0x181eac18,0xad1eac07,0x9407181e,0xaa187222,0x981ead1e,0x7207181e,0xaa071818,0x941eb51e,0x8a1eaa22,0x371eb522,0xaa1eb51a,0x461a371e,0x721ec507,0xbd1ec520,0xbd20721e,0x37228a1e,0x371ebd1a,0x7409001a,0x72074620,0xaa08a520,0x2d202d08,0xa508a820,0xa708a808,0xd2202a08,0x4b20c618,0x40250309,0x40250102,0x1068f02,0x68f25,0x1250125,0x3250425,0x7a1f7825,0xfd07fd1f,0xff07fe07,0x510d707,0x50b8d00,0x8d109e00,0x19171a0b,0xd814b617,0x5c20d720,0x3c093b09,0x821a8209,0x3b20b91a,0xba20b909,0x91093b20,0x6b1ac909,0x921ac909,0x92096b09,0x72099409,0x69097209,0x72096a09,0x92096a09,0x6b096a09,0xed099209,0x6d20f020,0x9120f009,0x6d1aac09,0xac20f009,0xeb096f1a,0xe920ed20,0xed097120,0x6f097120,0x9120ed09,0xac096b09,0xd923a01a,0x371ceb11,0xdb193519,0x2418db18,0x621f621f,0xc607e01f,0xd907e018,0x281f2318,0xbf07e01f,0xd818d918,0x231f2318,0xe007ba1f,0xbf07ba07,0xbf07e007,0xe007c007,0x6218db07,0xe018ae1f,0xc61f2807,0x6218ae18,0xae18c61f,0xdb193718,0xaa07b618,0x5918ae18,0xae1ee40a,0xb61ee418,0xa218ae07,0xe018bf07,0xe007a207,0xbf07c007,0xae0a5921,0xbf18cb18,0xbf18d421,0xd418ae21,0xac1f2818,0x280aab0a,0xc60aab1f,0x8718d418,0xae18cc20,0xd418c618,0xd418cb18,0xca18cc18,0xcc18cb18,0xf18c918,0xca208509,0xc918cc18,0xca1b9318,0xc918c918,0x93208518,0x4520851b,0xc21b931a,0x451b9321,0x4521c21a,0x7c20831a,0xc018c207,0x8518c218,0xc0090b07,0xb18c218,0xc2078509,0xc2090c21,0xc208321,0x84090b09,0x8518c020,0x81090c07,0x231a2220,0x231a1b1a,0xde08df1a,0x1b08de08,0x1b1a231a,0xe31a1d1a,0xdb1a1d08,0xe308e108,0xe11a1d08,0x5608db08,0x561a1e20,0x5c08d720,0x56205f20,0xd7205c20,0x5a205008,0xf205020,0x5a08e21a,0xe2205020,0x2208e308,0xd71a1b1a,0x5c205a08,0x5f205620,0xd01a1e20,0xd21a1108,0x121a1108,0x5908d21a,0x8e09221a,0xcd1bce20,0xcd1bcc1b,0xcc1bcb1b,0xf71bcb1b,0xf721f921,0xf91bc921,0xab1d7321,0x90244814,0xdf1e6401,0x708cc06,0x720481a,0x4808cb1a,0xcb204820,0xf11a0808,0x1c0df70d,0x3b1e570e,0x3b1e5825,0x58027925,0x2f01741e,0x2f0b9804,0x980c8a04,0x8b0c8a0b,0x9e0b980c,0xdd01f613,0xb922e912,0xb9160023,0x22e723,0xe5160016,0x9222e922,0x801a5620,0x7e208020,0x7e209020,0x90208f20,0x91024120,0x91155e06,0xee024306,0x91155e13,0x43156006,0x18156302,0xef13ee1e,0x43156013,0xee1e1802,0x3c163013,0x30233012,0x4516e123,0x6e1d451d,0x6e233014,0x30146d14,0xd8198316,0xe919811f,0xea10890e,0x2602280e,0x1c021c02,0x28066202,0x9e0b3302,0x9b1ecf22,0xdd220d0a,0xa71bdd1b,0xa70a9b0a,0x9b1f040a,0x7c25770a,0x59047b04,0x2603e70c,0x2503e701,0x25012601,0x2b0c5d01,0x6724d601,0xa9130a06,0xd619d708,0x59204a19,0x5808ce20,0x8a145914,0xa40a4505,0xa41ea921,0xa9184e21,0xa507281e,0xa721a71e,0xa90a4521,0x3818711e,0xa71a7a09,0x281ea921,0x711ea907,0xb620b618,0xa9072820,0x97086e1e,0x95199619,0x7b0c910c,0x9a0dbc00,0xc40c9b0c,0xc219771f,0x20d031f,0xc0d0c0d,0x30d0e0d,0x40d0e0d,0xfb0d030d,0xf60dd510,0xfc0dd510,0xfc10f610,0xf510f910,0x4a104810,0x4a104910,0x49104b10,0x4c104b10,0x49104910,0x480d9b10,0x9a0d9b10,0xdb10470d,0xa41ada1a,0x8f258709,0xce25ce25,0x88175f25,0x73009025,0xe00c0703,0x200fdd0f,0xde0fdd0d,0x200d200f,0xe00d210d,0xa3028c0f,0xab0ec602,0x68106a0d,0x65106810,0x650dab10,0xab0daa10,0x1609d20d,0x161b2e1b,0x2e21361b,0x3721361b,0x371b2e21,0xe409cf21,0xd009cf09,0xd009e509,0xe51b1209,0xcd1b1209,0xe609e509,0xe4214b09,0x4a214b09,0xcf09e421,0xe609e509,0xe609cf09,0x2809e409,0x271fae08,0xc916ef08,0xad16f602,0x7c0dc00c,0x670a6810,0xc721c70a,0x681ba121,0x5c1ba10a,0x680a6c0a,0x6c1ba10a,0xa91ba20a,0xa20a691b,0xa40a691b,0xa21ba01b,0xa01ba41b,0xa51ba41b,0x6c0a6f1b,0x6f0a5c0a,0x5f0a5c0a,0xa51ba00a,0xce21d01b,0x5f0a6f21,0xa00a5f0a,0x21d01b,0x231dbe15,0x981dbe1e,0xfa1e2306,0xb222e011,0xf822e023,0xef15f011,0xf022e011,0xa9106915,0xa90feb0d,0xd90d9d0d,0xc01b050f,0xf41af509,0xfc01df13,0xd8213814,0xd81b2409,0x2409d909,0x1d09d91b,0x1d1b241b,0x24213c1b,0x7e04801b,0xa4257d25,0x4302de14,0xf8102524,0x230ff10f,0xba1af421,0xbb1af409,0x3609ba09,0x340e320e,0x310e320e,0x3410ff0e,0xff0e320e,0x540e3110,0x5410ff11,0xd40e2f11,0x530e2f0d,0x53112711,0x270e3011,0x330e3011,0x3311250e,0xfc0e350e,0x3311250d,0x350dfc0e,0xfc11510e,0xd411540d,0x3710ff0d,0x340e360e,0x380e340e,0x300e370e,0x2711250e,0xc2084711,0xc61fc61f,0x46197b1f,0x73084608,0x4e084719,0x591a9409,0x9b095909,0x5809581a,0x4e20cf09,0x7d0b7a09,0x7610cb0b,0x1b071a07,0x20201b07,0x30203020,0x1b08b220,0x2c122820,0x61146112,0x1f122e14,0xfa22e616,0xea11fb15,0x940dec0d,0x160dec11,0x44119611,0x6d22f414,0x8d097d05,0x351ab609,0xee21531b,0xd80f8809,0x770f770c,0x880ca40f,0xff21890f,0x62216709,0xd824d406,0xf0060324,0x3f12ac14,0xac124016,0xa9124005,0xd116d105,0xac23ff16,0xab23ff05,0x401d3805,0xac16d112,0x3c164505,0x3c05a61d,0xa623fa1d,0x4223fa05,0x4223fb1d,0x3516371d,0x371d351d,0x3705af16,0xfd124c16,0x3605a823,0x3705af1d,0xa823fd16,0xa8163705,0xfb05af05,0xfa05a623,0xd01d3523,0x8823fb16,0x861f871f,0x8a08161f,0xe51f881f,0xb20f610c,0xd612690c,0xa214a205,0x69235e14,0xb50a4d12,0xba21ba21,0x4d1b8c21,0x8d1b8c0a,0x731b891b,0x7520ac1a,0x7e208f1a,0x7e092020,0x20090a20,0x21090a09,0xc3092009,0x3816c116,0x9b123812,0xd423f005,0x9e144823,0x88104516,0x5710570d,0x450f9410,0x560f9410,0x35104510,0x7b0c9004,0x7a0c9001,0x7a043201,0x32017901,0xa5195b04,0x9a1f9a1f,0x5b19531f,0x25195319,0x5d195b08,0x61236523,0xa4236512,0xa4126114,0x61235814,0x471c5012,0x590b181c,0x8c185c18,0xd71e8c1e,0xfd1e9007,0xfb0a1c09,0xfa0a1c09,0x1b09fb09,0xb6127c17,0xe00ec114,0xb202b60e,0xb11bac1b,0xb01bac1b,0x41bb11b,0x270b030b,0x2520941c,0x191a5609,0x1f13c002,0xf213c002,0xf206671d,0x6724d61d,0x9a095806,0xb520c91a,0x5900b700,0x701a7701,0x1e09321a,0x18221f22,0xc823ba22,0x3522f123,0x3a232216,0x35230b1d,0xef23ef12,0x2316c223,0xe316c21d,0x831d2323,0xf50dfd0e,0x360e3b0d,0x3611560e,0x560e370e,0x6c115611,0x410e4111,0x3b0e450e,0x790be10e,0xf00b203,0x59055816,0x9f1ad505,0xd51f1409,0x1d18d618,0x141ad51f,0x1421101f,0x1018d51f,0x1d18d521,0xe07a01f,0xd5211021,0xab076718,0xd1eec18,0x8815541e,0x4f155406,0x88068815,0x1b154706,0x7b131b13,0xde068806,0xdf1fe01f,0xe31fdf1f,0x6a08601f,0xed18b31f,0x661f671e,0x6a19281f,0x671eed1f,0x6b19281f,0xc61f6a1f,0xb41bfd0a,0xb50ab40a,0xda0ac60a,0xec13d713,0x3b13d724,0x3b24ec02,0xec24fd02,0x3524fd24,0xdb24ec02,0x2f08b119,0xc1201a20,0xb819c219,0x881c8b22,0xc03131c,0xc8158c03,0x1f1cb21c,0xb10f1f0f,0xc0f341c,0xf4056d16,0x4222f422,0x42160c14,0xc01d1314,0x42160b23,0xc223c014,0xc00ac10a,0x2e0ac10a,0x2e0ac022,0xc00abb22,0x621b580a,0x421b4221,0x801b561b,0x2a1d3021,0xe41d281d,0x2711dd15,0x2715e414,0xe011e314,0xd4142111,0xa3142122,0xe422d423,0x7c11e315,0x7c15e416,0x2811df16,0xa322d414,0x28142623,0xa323a314,0x4b15e423,0xdf15e405,0x24054b11,0xa3142614,0xd6126923,0x8814a205,0x250c260c,0xb325f10c,0xdb17ae17,0x9d039e00,0x13039d03,0x9801110c,0x2803270b,0x9a032703,0x2803ae0b,0xe2032703,0xec0b9a00,0xec00e400,0xe403b100,0xaf00e400,0xae0b9a03,0x2700e203,0xe612fd03,0xe602131d,0xee24c11d,0x2f0c8a1d,0xbe0c8904,0x80fc00f,0x70d080d,0x7f0fbe0d,0xca1fc918,0x7908501f,0x79187f19,0x7f1fcc19,0xb025a618,0x5c259d04,0x630e640e,0xce02ab0e,0x370ea70e,0xa1d4216,0xf1d4224,0xf240a24,0x4b164524,0x721aab12,0x90099409,0xaa096809,0xab1aaa1a,0xf709901a,0x6423b515,0xe123b505,0x761d0822,0x371e931c,0x340b370b,0xf10b380b,0xed1bc021,0x30214c21,0xc421481b,0x831bbe1b,0xf01bbe0a,0xf00a8321,0x8221ed21,0x6801a00a,0x68180c24,0xc14c624,0x9f14c618,0xd7180c01,0xd614f401,0x9314f401,0x9301d624,0xd6183924,0xc01a001,0x6201d718,0x531b3f21,0xfc1b3f21,0x53215309,0x6209f221,0x6520e621,0x6520df09,0xdf20e009,0xdc20df20,0xd620e620,0xe520d520,0x5320d520,0xa820e409,0xe420d51a,0xa820d520,0x6320e51a,0xdc20e609,0x6320e220,0x6320d609,0xd620dc09,0xe7023320,0x5313d824,0x521fce08,0x7e1fce08,0x7e085219,0x52085119,0x6415f708,0x97169705,0xf4057116,0x411f411,0x4416971d,0x20d430d,0xaa0a6e10,0xaa1bac1b,0xac1ba91b,0x701ba91b,0xb21bac0a,0x6b1ba61b,0x6b1bb20a,0xac1bab0a,0xab1bb21b,0xdc23a41b,0xa423a611,0xf423a623,0x4a23a51c,0xb223a405,0xd2029d02,0x8b029d0e,0xfe0ed202,0x811efb1e,0xf2077d07,0xfe1ef91e,0x8607811e,0x7d078119,0x861ef907,0xf9078119,0x560ff61e,0xc90d620d,0x2124df13,0x4224df02,0x42022115,0x6b1dfb15,0x20261406,0x2017d126,0x16262126,0x76090426,0x76090720,0x61a4020,0x791a4009,0x75090620,0x7722ac1c,0x4725491c,0xad17ad25,0x41044017,0xb4044004,0x82044117,0x11131a06,0xe325061e,0x82068d13,0x8d1e1106,0xf7245f06,0xdb1d5005,0x74035c0b,0x580b0e03,0x581c351c,0x350b1b1c,0x200b1b1c,0x201c3f0b,0x3f1c3e0b,0x5f1b601c,0x5f21661b,0x6521851b,0x9e112321,0x1d0e7711,0x281e2925,0xaa1e291e,0xaa1e2806,0x2806ab06,0xf905621e,0x50142c15,0x32214e21,0x311b321b,0x31214c1b,0x4c09ea1b,0xec214c21,0xec1b3209,0x50214f09,0xc420c521,0x381f3820,0x341f351f,0xc71f341f,0x7620c520,0x210dd90e,0x430e210e,0x430e7611,0x78110e11,0xa50fa20e,0xa50cf40f,0xf40cfe0f,0x471e480c,0x5a1e461e,0x5e10180d,0x1410180d,0xda0d5e10,0x191a1808,0x5210531a,0x52105410,0x54105110,0x56105410,0x31105510,0xd1c321c,0x80b0d0b,0x80b090b,0x91c2e0b,0xfb1e830b,0x841e8406,0x8318431e,0x4e18431e,0x4e1e8307,0x83074f07,0x4f1e831e,0xfa075407,0x441e8306,0x541e8321,0x99214407,0x44075918,0xa1075921,0x54214418,0x44189907,0xfa06f821,0xfa1ec406,0xc4214406,0x2a1ec41e,0x411eb41b,0xc406f818,0xc01eb41e,0xc4070c1e,0xc1eb41e,0x801e8107,0x41183f1e,0xc1ec418,0x81070c07,0x77183f1e,0xfb19361f,0xe023a807,0xc422d411,0xc008471f,0x7308471f,0x731fc019,0x41197419,0x48197408,0x48084108,0x411fc308,0x14103a08,0x140d800d,0x800fd30d,0x390fd30d,0xcc0d8010,0xbc12bb01,0x51111d12,0x510df311,0xeb111511,0xe711150d,0x990deb0d,0x970f9a0f,0x980f9a0f,0x1d0f970f,0x6d1df402,0x1a1df406,0x5c066d02,0x491b661b,0x481b660a,0x491b800a,0x801b660a,0x5e0a491b,0x49218a1b,0x8e218a0a,0x63218d21,0x630a491b,0x491b5c1b,0x8e0a490a,0xb61b6421,0xad12f224,0xae12f224,0xad064024,0x4012f224,0xa624ad06,0xa6020713,0x7024713,0xb404c202,0x2925be25,0xee09b921,0xbc1aee1a,0xbc09c009,0xc01af509,0x6202e009,0x5902e523,0xd81fd708,0x381e261f,0xaf140213,0xe617ae17,0x871ebc25,0x871eb918,0xb91afc18,0x2b1afc1e,0x3e073e21,0xb90a8d07,0xa61c6b1e,0x27071e1e,0x6b192819,0xf10fd21f,0xf10d770f,0x770ff80f,0x11143f0d,0xdb16031d,0x7904a604,0x9c177917,0xa7179c25,0x419a619,0x87200420,0xad19ad08,0x4088919,0xaa088920,0x4200319,0x1088920,0xaf19aa20,0xaf088319,0xa8088419,0xa819af19,0x1088319,0x2088920,0xa7200020,0x1200419,0x4200020,0x8319aa20,0x9a200308,0x3210609,0x95210621,0x95210509,0x1c081b1f,0x530a5108,0x531b8b0a,0x8b0a4f0a,0xb81b8b1b,0xb80a5121,0x5121b921,0x8621b90a,0xf30a521b,0xae24b812,0xf224ae24,0xf212f312,0x4a24b612,0x4a194b06,0x821f8219,0x4b1f831f,0x88241b19,0x4c1d5914,0xcf08d620,0x60cfe08,0x9f0f9f0d,0xa50fa20f,0x18169b0f,0x18169c16,0x9c16a216,0x1c161a16,0x1c14561d,0x5623d81d,0xe223d814,0x56145623,0x1a16ab14,0x5110c16,0xe00de011,0xf0de90d,0xb71bf111,0x2a222a0a,0xf1222c22,0x8d1f921b,0x8d1f7c1f,0x7c1f7f1f,0xc1f7c1f,0x65194c08,0x69046604,0x6e244b04,0x72127223,0x4b244312,0x2c155d24,0x2c132b13,0x26132a13,0x2c132b13,0x2a132613,0x26132713,0x8132b13,0x8132e25,0x5f250925,0x8132e15,0x40155f25,0x281e2a13,0x1c1e2a1e,0x281e2825,0x6025b1e,0x28025a14,0xc714061e,0x950e9415,0xc80e950e,0xca0e9b15,0xcb1b1009,0xb2134909,0xb2134a06,0x4a252306,0x83252313,0x6506b415,0x3a23ef14,0x911bbf12,0x311ebc0a,0xb40b8100,0xb119db10,0xaf202f08,0x1c221e0a,0xae221c22,0xae0aaf0a,0xe50aad0a,0xcd1bc51b,0x741bce1b,0x38124114,0xfe12411d,0xfe1d3823,0xac163f23,0x401d3805,0x95147416,0xe31aa31a,0xde1aa320,0xde20e320,0xa720db20,0xdf20db1a,0xa720e020,0xe020db1a,0x9520d420,0x5309641a,0xa51a9d09,0xd41a9d1a,0xe120e720,0xe71a9d20,0xa520e120,0xde1a9d1a,0xa61aa720,0xa620de1a,0x6620e31a,0xd420e709,0xe31a9520,0x69096420,0xf9076a07,0xeb076a1e,0xf91ee91e,0xe9076a1e,0x6c18af1e,0x6c1ee707,0xe71ef107,0x691ef21e,0xeb1ef907,0xe918af1e,0x611ee71e,0xaf1fe308,0xe91ee718,0xdf1fe31e,0x281ee91f,0xcf19ce20,0x7c18b819,0x8e20d007,0xeff1c,0x481c0f0f,0x4e224e22,0xf225122,0xef22511c,0xef1c0f0a,0x101c170a,0x100aef1c,0x4522491c,0x441fcb08,0xdc08de08,0xd908d908,0xde205308,0x54205308,0x971a1d20,0x870d960d,0x850d870d,0xa00d860d,0xf71dd713,0xf81df001,0xf813081d,0x815341d,0x14153413,0x83021602,0x851c801c,0xb41c801c,0xce1c8522,0x8411af0d,0xdc21190e,0xb09971a,0xd1024425,0x43024413,0x5f13d115,0x3f255d04,0x4d204f17,0x911a1320,0x900efd1c,0xbb0b771c,0xbb10c210,0xc2002110,0x4002e310,0x40149d24,0x9d236224,0x84093e14,0x8409431a,0x4320bf1a,0xc120bf09,0x2d1a8620,0x130f2c0f,0x7d087c0f,0x7d1fea08,0xea1feb08,0xe61fea1f,0xe6087c1f,0x80086d1f,0xec086d08,0x801ff61f,0xf6086d08,0x7c087f1f,0x941fe608,0x2b16ab05,0x5616ab12,0xc9122b14,0xfb05c605,0x2a05c616,0xfb16fc24,0xfc05c616,0xc604fa16,0xc317c817,0xcf1ce022,0x941ce011,0x6d141823,0x5d1c3322,0x541c5d1c,0x51226d1c,0x4c13681e,0x5013681e,0x3c02791e,0xd41cd50f,0x901ac31c,0xe820e809,0xca1ac920,0x931aca1a,0x9320e809,0xe81ac409,0x400e1b20,0x3114311,0xc0e050e,0x270d710e,0x1d0d7310,0x14065815,0x57021402,0xd8151d06,0xab19da19,0xd408ab08,0x1b19d819,0xa1119c0e,0xa211a111,0x94114011,0x931a8d1a,0x4d1a8d1a,0x93095109,0x9209511a,0x66258c1a,0x9049b17,0x7202311e,0x6b170906,0x6212621d,0x9243312,0x6d199017,0x9a1fe608,0xee0f9b0f,0xf10f9b0c,0xe80cee0c,0x1e21201a,0xc4197721,0x4d1fc01f,0x810090d,0xfa100910,0x4a10070f,0x710090d,0x1c10c410,0xbc10bc00,0x78001f10,0x6202e50b,0xc0244023,0x7719761f,0x3523b719,0x2160214,0xb7056916,0x931e9223,0x9318541e,0x5422af1e,0xb022af18,0x6070822,0xfd1afe07,0x822af1a,0x6070607,0x21afd07,0x541b021b,0x9422af18,0xbe122b05,0x3b227c16,0x3b0b171c,0x17227d1c,0x151c410b,0x7d1c3d0b,0x171c4122,0x861c3d0b,0xc81c4122,0x530a6021,0x510a530a,0xab21c80a,0xe01d7314,0xd017da05,0x71261517,0x6b20af1a,0x7020af1a,0x6b20a41a,0x2e20af1a,0x771a7009,0x7709301a,0x6720a81a,0x771a691a,0xa820a51a,0xa220c220,0xa620c220,0xa220a120,0x6520c220,0x6420a61a,0xa6092d1a,0xa1092d20,0xa7093120,0x6b1a7120,0x7109311a,0x6520a11a,0x2e20c21a,0xa420af09,0xa220a820,0x3020a320,0x7020a409,0xa320a81a,0x671a6720,0x7720a51a,0xd224351a,0xd2244105,0x4105de05,0x9911b524,0xea0e8d11,0xb1020012,0x4c020013,0xb313b106,0xea151413,0xb3064b12,0xea12ea13,0xd613b112,0xc90dff1d,0x9010f20d,0x4c08171f,0x91081719,0xa2194c1f,0x32075222,0x6a0b320b,0x641c641c,0xa21c6c1c,0xd1147322,0xd1232516,0x25163916,0x39232523,0x38163816,0x2e146f16,0xd5146f23,0x25232e16,0x73147223,0x1147514,0x123f924,0xf9147624,0x3147623,0x4616d424,0x9185021,0x12089207,0x121eb720,0xb719bc20,0x101eb71e,0xc5089220,0xcf08af19,0x90110719,0xf0e1611,0xa70d110d,0xb709b80f,0xe1b0e09,0xb809c51b,0x909c509,0xb821201b,0xe809c509,0xc1b091a,0xc09b01b,0xb121251b,0xeb212509,0xeb09b11a,0xb109b21a,0xe8212009,0xc09c51a,0xb009b11b,0xb219db09,0xe1203308,0x121ad81a,0xa61ae021,0xc61ae109,0xc51ac31a,0xc41ac31a,0x381ac51a,0x7622aa0b,0xab22aa1c,0x261c7622,0x5e162412,0x88016f14,0xf50c870c,0xe425e804,0xe625e804,0xe404e404,0xf525ee04,0x111a1204,0x5020501a,0x1508d720,0x621a691a,0x2909291a,0xb11d2012,0xa81d2016,0xea16b116,0x5c0f650c,0xff1b000f,0xff1b011a,0x109c11a,0x2e09c11b,0x821b0421,0x4608111f,0xdc1a1b19,0x8408d908,0x6f0cdb0f,0x220d530f,0xe10fe10d,0x540d1b0f,0x100d540d,0x450fe110,0x20157f13,0xa805aa25,0xa816d905,0xd916d505,0xd816d916,0x4416de16,0xaa16cd12,0xde16d905,0xbd124416,0x91ddd24,0x8c0b4002,0x8a1c8a1c,0x400b3c1c,0x810b3c0b,0x4a0b401c,0x8121a90a,0x7b21a91b,0xb71b811b,0x210f071c,0x9c0f070f,0x211cb51c,0xb50f070f,0xc21c9c1c,0xc20f2b1c,0x2b0f301c,0xbe0f2b0f,0x9c1cc31c,0xc30f2b1c,0x4715951c,0xc61e461e,0x2b10ed0d,0xc70eb00e,0x680ecc0e,0xc127023,0xdc170c17,0xdc236805,0xe0126f05,0xe913da05,0x4e24e324,0x541b4f1b,0xcb20ea1b,0x1a1ac81a,0x3a0d690d,0xf0d110d,0xf0ff00d,0xf00fef0d,0xce0ff00f,0x640d1e0f,0xd01df606,0x8419a124,0x8a088a08,0xa119c008,0xc119c019,0xa11ffc19,0xa219c019,0xa319c119,0xc11ffd19,0xfc1ffd19,0x5f06ac1f,0x5d025d02,0x7d157c02,0x1e157d15,0xc4025d25,0x7008471f,0x73084719,0xcb197019,0x1c1caf17,0x141caf05,0x1c17d805,0xd81caf05,0x80ff517,0xc00d4a10,0xb40f540d,0x620da50d,0x13106310,0xf1ad221,0xcc0acf21,0xb20ab20a,0xcf1bee0a,0xb31bee0a,0x1a0ad20a,0x651e0c1e,0xcd204715,0xe61a0908,0x5d08eb08,0x2708eb20,0xe4205d1a,0xac04ec25,0xe917ac17,0xf225e404,0x7f00b60b,0x5e037f03,0xc60bf203,0xd4166f22,0xdf11d411,0x2911c715,0x61122e16,0x2c146114,0xbc16bd12,0xbd0d070f,0x60d070f,0x900fbd0d,0xc61ac309,0x9710501a,0x980d980d,0x4310420d,0x51104310,0xe0d9810,0x6e1c350b,0x37226e22,0x370b0e1c,0xe226c1c,0x32226c0b,0x9b0b0b1c,0xa9087d19,0x7c087d19,0xca19a808,0x8621f61b,0xfa21f60a,0xfa0a8621,0xc70a8521,0x3622381b,0xc60ac622,0x380ace0a,0xbf0d0b22,0xbd0fbd0f,0xa0cfe0f,0x341a310d,0x341a301a,0x301eaa1a,0xaf24521a,0x9805ea14,0x19200b08,0x6200b20,0x9d088720,0x87200b08,0xad25ed08,0x7404f417,0x7522af1c,0xa30da11c,0x600da40d,0xa1106f10,0x61e010d,0x9c13e11e,0x921a9d1a,0xd00f7f1a,0x20f680c,0x64193e08,0xa622a707,0xa61c7222,0x731c6e22,0x2b19611c,0xd7196208,0x7505d805,0x17208a23,0xe01a4d09,0xe325e125,0xba13b225,0x5a1dda24,0x7b02f024,0x5c02f012,0x5c127b24,0x7a1d8024,0x531a1b12,0xd6205420,0x1c058023,0x86058016,0x41058c05,0xbf1c0422,0x300abf0a,0x30224122,0x41223b22,0x3d223b22,0x3d224622,0x461bff22,0x46223b22,0x8d1c0822,0x9216b305,0x7d080c05,0xde1f7e1f,0xdb1aa020,0xdd1aa020,0x1120db20,0xa90d120d,0xf90d120f,0x980fa90c,0x180f051c,0x940f050f,0xd61ca61c,0xd91c4f1e,0x5c1ed91e,0x5c1ed607,0xd3075607,0x5c1ed61e,0x561ed307,0x93229207,0x2d1e2e22,0x1e251e1e,0x2e06ac25,0x3611a61e,0x17111711,0xa60df811,0x1f0df811,0xb40e810e,0x810a4a21,0x821b811b,0xb021b01b,0x811b8521,0xe80dee1b,0xe80de50d,0xe5110d0d,0x6422790d,0x1d1c1c22,0x3a1c1f1c,0x1c22791c,0xb51c1d1c,0x901d2116,0x6518c005,0xc020cc07,0x9120cc18,0x7b07851a,0x7b1b8807,0xd118c007,0x7b1b8820,0xf41ef407,0xd1077b1e,0x9118c020,0xd120d11a,0xf420d020,0xce1ef41e,0xb818b820,0x4e076d18,0x880a4e0a,0x951ef41b,0xab059405,0x45208316,0x451a461a,0x4620851a,0xe20851a,0x461a4609,0xc207f1a,0x81207f09,0x53090c20,0x3a24fb15,0xf924fb02,0x1b023a24,0xdb24b915,0xc24b91d,0x6d1ddb02,0x600e5711,0x3e116011,0x420e420e,0x600e4f0e,0x510e4f11,0x39116d0e,0x580b1b07,0x2124f91c,0x8e023913,0x1f090d20,0x46090d09,0x46091f1a,0x1f1a511a,0x6d1d7c09,0xc514a21d,0x860e870d,0xb70bf10e,0xcd015900,0x421021a,0xcc210221,0x1821041a,0x5c0d5a10,0x620d5a0d,0x5c0d560d,0x560d5a0d,0xb916230d,0x6a146316,0x68105b10,0x5c105b10,0x5c106810,0x6c105d10,0x491f8510,0x48194819,0x8b194b19,0x320f271f,0x321cb90f,0xb91cc60f,0x671a291c,0x67206220,0x631a2c20,0x67206220,0xee206320,0x63206408,0x681a2a20,0x6808f020,0xec1a2920,0x6808f008,0xec08ec20,0xf01a2708,0xee1a2c08,0x83206308,0xb41c801c,0xb822b422,0x3922b722,0x580e2e0e,0x64115811,0x490e4911,0x580e3d0e,0xad0eda11,0xbb0eb202,0x43120523,0xc6006414,0x62007f0b,0x2c15f905,0x701fc414,0xe6197619,0x77167915,0xd206b816,0x1f136c06,0x13144c12,0x12121312,0x19144f12,0x14145316,0x1e121412,0x1f161a12,0x314511d,0x84145123,0x84230305,0x1e145005,0xfa0d3e1d,0xfa0d3d0f,0x2e0d3b0f,0xa71fa80d,0xa7195f1f,0x5f1fa91f,0x43104219,0x430d9610,0x96105110,0x970d960d,0x8c0d980d,0x820b401c,0x610a5d1c,0x5f0a5f0a,0x5d0a5c0a,0xc80a870a,0xc81bc61b,0xc61bc51b,0xd0b961b,0xde0b9500,0x2217df17,0xd419d726,0xd419d619,0xd619d019,0xae231c19,0x79163605,0x571e5002,0xa61a641e,0x42094220,0xa01a8609,0x721a8620,0x9f209e1a,0x9e1a8620,0xa71a7220,0x72209d20,0x2c209d1a,0x6420a009,0x9f09421a,0x8620a020,0x5d1b9d1a,0x5d1b960a,0x9621c30a,0x4616731b,0xa323a305,0xee1ced23,0x81090b1c,0x19207f20,0xe716e824,0xe616e816,0xe616e716,0x4d241a16,0x181d4d1d,0x6816e724,0x6e127023,0x71126e12,0x5623681d,0x82085708,0x59198219,0x59085608,0xd11fd908,0xdf15f41f,0xdf142e22,0xf322de22,0xdf15f311,0xc011f322,0x3f05b902,0x1c091f23,0x1c209309,0x93208d09,0x8c208d20,0x8c208a20,0x8a091b20,0x76227920,0x76226422,0x5e1c3422,0x2b1c3422,0x2c225e1c,0x1f182b18,0xad001306,0xb910ae10,0x50d040f,0xe0d040d,0x50fcb0d,0xa40d040d,0xf0fcb0f,0x8f0fa40d,0xc114f513,0x9712c112,0x41249924,0x1d113f11,0x3d113f0e,0x5a113b11,0x9409251a,0x581e9320,0x581c7818,0x78185a18,0x3418911c,0x8c1c780b,0x4a07e118,0x9107e118,0x1c7818,0x861ebf07,0x8c1ebf1e,0x8606fe18,0xfe1ebf1e,0x7807e106,0xa222871c,0xe1184a18,0xfe184a07,0xa4188c06,0xe118a218,0x76187c07,0x7620b118,0xb1187718,0x7c1bd920,0x7c188018,0xb320b118,0xb3187c20,0xd8188020,0x821bd91b,0x801bd918,0x5a188218,0x821bd818,0x80188218,0x7d1a7d18,0x8220b81a,0xa4075f18,0x7807e118,0x82185a1c,0x5f189418,0x9007e107,0x63186418,0x94186318,0xe107e118,0x90228707,0x821c7818,0x90228718,0xe1186318,0x22186e07,0x221a391b,0x391ea81b,0x901ea81a,0x39188d18,0x8d1ea81a,0x38207518,0x381a391a,0x4e187109,0xa9187118,0x4e184e1e,0x9f1edb18,0xda1edb18,0x9f189f1e,0x7f1eda18,0x381a7922,0x7f184e09,0x9f1c4822,0x4b189f18,0x79184e1c,0x871c4b1a,0x4e1a7922,0x391c4b18,0x871a7909,0x75207422,0x741a3920,0xc51a3920,0x3918821e,0x73228709,0x301a2f18,0xf808f71a,0x73072b08,0x331a3018,0x461c501a,0x87188d1c,0x8d1c5022,0x87189018,0x39188d22,0xc5188d1a,0x7420721e,0x721ec520,0x881ec520,0x72090018,0x188820,0x85188809,0x4e188818,0x8518851c,0x3c1c4e18,0x7a1c4e07,0x3c073c18,0x33187a07,0x5e187a1a,0x511a331c,0xac1c531c,0x5e1a331e,0x5e18731c,0x2b1c511c,0x5e187307,0x51072b1c,0x2b1eac1c,0x4d187807,0x4d187418,0x4c184b18,0x4d187418,0x2b184c18,0x981eac07,0x781eac1e,0x98187418,0x741eac1e,0x351e9818,0xf708f71a,0x98072b08,0x9121461e,0x741e981e,0x2c1b2a18,0x461b2c1b,0x2c1e9821,0x741e981b,0x8820ff18,0x4c184c09,0xd3071418,0x5d07141b,0x4b1bd318,0x4c20ff18,0xa1075918,0x99188e18,0x8e075918,0x99075418,0x43188e18,0x3e074e18,0x4f074e18,0x4f183e07,0x8e075407,0x8e074f18,0xfb183e18,0x3e1e8406,0x8e183e18,0x8e06fa18,0xfa1b2618,0xfb06fa06,0xc183e06,0x421e8107,0xfa184218,0x421b2606,0x271b2618,0x891ec21b,0x89074118,0x74070c18,0x41073e18,0x8a188907,0x890a8d18,0x3e0a8d18,0xc188907,0x27184207,0x27070c1b,0xd318741b,0x89188a1b,0xd3184c18,0x1318891b,0x9419bb20,0xf201508,0x2201320,0x79193e08,0x921c931f,0x350f351c,0x931cca0f,0xa905e21c,0xb1244414,0xaf203208,0x4a133708,0x97069702,0x37024b06,0xd0d5013,0x21100c10,0x1f13c802,0x67021f02,0x6a13c906,0x9d140c16,0x29155c23,0x29250013,0x8a13e913,0x2068a06,0x2913e725,0x68a13,0x8f250025,0x29155c06,0xed15e814,0x7d15e815,0x7d15ed16,0xed15e916,0xe615e915,0xe615ed15,0xed15ea15,0x7e15ea15,0x7e15ed16,0xed22d716,0xeb22d715,0xeb15ed15,0xed23a815,0xf623a815,0xed15ed1c,0xd623a915,0xa809a722,0x1a211a09,0xa7211921,0x37024a09,0x37157313,0x73133a13,0x6f157315,0xa6024a15,0xe0aa40a,0x97220e22,0xf322100a,0xcd021a1d,0xf4021a24,0xf424cd1d,0xcd1df11d,0x3009df24,0x30214507,0xde1b2a07,0x1b148709,0x5148c24,0xb719b520,0xc60ace19,0x1c000a,0xd0223e1c,0x8923910a,0x5a15f216,0x820bca01,0x70146f00,0x70124b14,0x4b147714,0x45147712,0x4b124b16,0x6f124c12,0x61170514,0x5405c712,0x2202c71d,0x261f7124,0x68192f19,0x67099009,0x78099009,0x78096709,0x7320ec09,0xee20ec09,0x731aae20,0xae20ec09,0xeb20ee1a,0xeb1aaf20,0xad096f20,0xad20eb1a,0x73096c1a,0x78096709,0x6c20eb09,0x6a1aaf09,0x7222c116,0xc22c116,0xad239d14,0xac0fae0f,0x6f11760f,0x6f0e5111,0x51116d11,0x31d1f0e,0x316af23,0xaf1d1e23,0xae1d1e16,0x2516af16,0x7e1b560a,0x920d9421,0x920d950d,0x8e104f0d,0x9210460d,0xcd0d8e0d,0xce18d218,0xc818d218,0xee20c720,0x2c18d218,0xee18d21f,0xd218ce18,0x2c20c718,0x741f041f,0xce18cd07,0xcd1f0418,0xc520c718,0xc41b3a20,0xf01a9020,0x611a9018,0xee18f007,0x9f1be318,0xa91f2c0a,0x3a18ee07,0xc71f2c1b,0x9f18ee20,0xbb18ce0a,0x9120cc18,0x7c1a911a,0x7c18bb07,0xbb18c007,0x7018c018,0x7018bb07,0xf018b907,0xf318f018,0xf320c409,0xc4215409,0xf0077020,0xbb18bb18,0x6118f018,0x5420c407,0xbb20c521,0x760dba0d,0x9b107610,0x2a0c9c0c,0xd123ff23,0xca242416,0xca02c502,0xc5149002,0xc6149002,0x5302c502,0x72032900,0x19017201,0x1900530c,0xad0c1e0c,0xad0c1903,0xb5005303,0xb2005303,0xe600e703,0xe603b400,0xb403b500,0xad005303,0xb203b203,0xe5042803,0xb3042800,0xe500e503,0xb503b400,0xcf02d603,0x62149205,0xdf02e323,0x150de705,0x99111011,0x9c1b981b,0x7715491b,0x77067806,0x78067606,0x43030d06,0x4303131e,0x131e421e,0x9150e03,0x911ddd02,0xb4178225,0x4fe04,0xf625fb05,0x49100e0f,0x4e100e0d,0x490ff50d,0xf5100e0d,0xf610130f,0xf610060f,0x60d490f,0x1b101d10,0x1b0d6810,0x680d6310,0x130d630d,0x130d3710,0x37100610,0x30d370d,0x30d6310,0x630fff10,0xf40ff30d,0xf40fff0f,0xff0d680f,0xf90fff0f,0x190ff30f,0x3123f723,0x6a163116,0x39123914,0x31059c12,0x50117516,0x500e530e,0x530e600e,0x7b0e600e,0x7b0e5611,0x56117c11,0x7e0e590e,0x7e115b11,0x5b118011,0x44118011,0x60115b0e,0x530e560e,0x59117c0e,0xa80e560e,0x7205aa05,0xcd05aa14,0xcd147216,0x35147816,0xff1d3916,0xcd147223,0x39163516,0xd514721d,0xac05a816,0x9416ab16,0xfd242a05,0x27242716,0x2a125d24,0x9112d924,0x37251113,0xa1e0802,0x1f1e0a1e,0xb1e0b13,0x7524fa1e,0x31067506,0x311e0a02,0x371e0902,0x311e0a02,0x35023702,0x25193419,0x181f251f,0x221f221f,0x251f241f,0xdb1f241f,0xa91f2518,0x1a16ab16,0x1916ab16,0x1a161a16,0xa91d1c16,0xd81d1c16,0xb123e223,0xbb188422,0x81ebb1e,0xef22b007,0xe4168011,0x25261411,0x2526200f,0xdd05160f,0x20051617,0x5517dd0f,0xd71fd308,0xd81fd31f,0x151fd71f,0x140c4b01,0x42240f01,0x3c23fa1d,0xf16451d,0x82058024,0x19121905,0x80057e12,0x4a057e05,0x4a144b14,0x4b057d14,0x45104414,0x45105610,0x570d8810,0x450cec10,0x29105710,0x2c0ad022,0x3e0ad022,0x2c222c22,0xf4222a22,0x7d047a1b,0x12047c04,0x1817cd26,0x1017cd0f,0x7c1ca526,0xa21d6d1d,0xd3214114,0x981b1a09,0x97162505,0x26162505,0x96059716,0x981f991f,0x18079807,0x181f961f,0x961f131f,0xfe1f131f,0x1307fd07,0x7907fd1f,0x96081b1f,0x1b1f131f,0x1c1f1308,0x791f1308,0xee081c1f,0x2f07791e,0x1c077919,0x791f7908,0x2f1f7907,0x79192f19,0x791f391f,0x631ee21f,0x791f3907,0x6c07631f,0x30192f1f,0x2f1f301f,0xaa1ad419,0x6e192d07,0xe01f291f,0xac07aa1e,0x6c07a607,0x2907a61f,0xac1f6c1f,0x301f6c07,0xe107a11f,0xe107a018,0xd41f3018,0xe107a01a,0x291ad318,0x6e07aa1f,0x6e1f291f,0xd31f6c1f,0xd418e11a,0xcc1f391a,0x2f1ad41a,0xd41f3919,0x98099a1a,0xe3076309,0x609951e,0x63099a21,0xe31ee207,0x9a21061e,0xe518e609,0xb51ee318,0xe318e607,0x9a1ee31e,0xe31ee209,0xe41ee21e,0x31ee21e,0xe41ee408,0xe307b51e,0xe41ee51e,0xd408031e,0x31ee518,0x351f7608,0xef18db19,0xab18d418,0x318d40a,0xab1f2808,0x2818d40a,0x7608031f,0xdb18db1f,0x621f2418,0xe01f621f,0xe01f2807,0x231f2107,0xe01f281f,0x2118bf07,0x2318d81f,0xba1f231f,0xba07e007,0xe007bf07,0xc007bf07,0xdb07e007,0x31f6218,0x62080308,0xa21f281f,0xe018bf07,0xa207c007,0xab07e007,0xef1be60a,0xca25c718,0xf625d925,0xa90fa80c,0xf90fa90f,0xf90cf60c,0xf60fab0c,0x3f19380c,0x3f080a19,0x6193c19,0x5b0e3f08,0x5b0e4311,0x43116111,0x61a3c0e,0xdf207909,0xa307a818,0xc407a808,0xa3201d19,0x1d07a808,0xc519c420,0xda201d19,0x9c179c04,0x1147625,0x1240224,0x40147424,0x911eb316,0x911c5d22,0x541c5322,0x911c5d1c,0x3f1c5422,0x970d8610,0x500d970d,0x3e104010,0x42115c0e,0x69115c0e,0x1d0e4211,0x223dd16,0xd7230223,0xd7161d23,0x191d1923,0xb6161e16,0x6b16b416,0x1012741d,0x9f062817,0x614c601,0xc720441a,0xc5204408,0xc508c708,0x308c308,0xc41a031a,0xc408c508,0xc51a0508,0xb014ae08,0x161d7914,0x9a089820,0x19089808,0x6a089a20,0x690dab10,0x670dab10,0x67106910,0x690daa10,0xf01b3410,0xf0215109,0x5107a409,0x2c07a421,0x2c21511f,0x5121521f,0x74017321,0xc2042d01,0xbd077c18,0xb8077c18,0x2118bd18,0xf70dcf11,0xef18d410,0xef07bd18,0xec1be618,0xef07bd1b,0xec18ea18,0xea221d1b,0xec18ef18,0xea18ea1b,0xec1f3318,0xb31f3318,0x2d18ec07,0x3224ce15,0x7e240e15,0x7e16de14,0x321d3f14,0x7e16de23,0x4b233214,0x1316e012,0x4b16de24,0x17240e12,0xda0f1a26,0xa0f1a17,0x9c051e26,0xd1253c15,0x8413e606,0xf1068306,0xf5057022,0xb13ef11,0x12156225,0x5d06921e,0x16069215,0x5d155d1e,0x12132c15,0x2a132c1e,0x2a132613,0x26132713,0x4d1f9313,0x4d194e19,0x4e081019,0x11081019,0x74194e08,0x6e090120,0x73090120,0x6e206e20,0x3808fc20,0x751a381a,0x9c206e20,0x9b057716,0x14057716,0x14169b1d,0x7905781d,0x48057805,0x79057914,0x1b23d405,0x1823d41d,0xda1d1b1d,0x9b161823,0xda16a716,0x9b169b23,0x791d1416,0xa01d1805,0x1b23de16,0xde1d181d,0x2016a023,0x9b23de1d,0xa7057916,0x79058a16,0x101d1b05,0x4161012,0x4161012,0xe6120416,0xd508b619,0xdc08b119,0xb1203619,0xe4203608,0xd519e619,0xd519e719,0x38202a19,0xd519e720,0xb1203819,0xe319e408,0xe308b119,0xe3202a19,0x2a08b319,0x911fe620,0x60199019,0x7613871e,0x7813871e,0x781e761e,0x7706eb1e,0x781e761e,0xbf1e771e,0x76136e15,0x60136e1e,0xf11e761e,0xea1e7706,0x7706ea06,0xf006eb1e,0x8206f106,0x79018013,0x8806f01e,0xf015a613,0x8015a606,0x8906f001,0xf0138813,0xbd06ea06,0xf106f115,0x8215bd06,0x2719ce13,0xf6201d20,0x6b06641d,0xda066406,0xe3066b24,0xea19e419,0xd10a8f19,0x8a185d1b,0x8f0a8c0a,0xdf19e00a,0x9c19e819,0x9e210c09,0x9d210c09,0xb4099e09,0x6122a16,0xa80f1923,0x191ca11c,0xe811320e,0xe211320d,0xde0de80d,0xdd00dc00,0x5a0d9e00,0xd80d1f10,0xf601d901,0xef097a14,0x520ed20,0x791a4009,0x161e9c20,0x9c0b2707,0x200b271e,0x280b2707,0x7007200b,0x29072c18,0x20072c0b,0x290b2907,0x220b2a0b,0x28072007,0xf40b290b,0x2621251a,0x120df221,0xf8119a11,0x3a1c1f0a,0x6422791c,0xf70af722,0x790af80a,0x52081d22,0x521f2219,0x2218de19,0x181f221f,0x1d07921f,0x991f2208,0x2a230a1f,0x74230612,0x1074320,0x74309,0x611a3a09,0x2324f615,0x19132313,0x1915611e,0x6125081e,0x2b250815,0x2b1e0f13,0xf132613,0x2713261e,0x271e0413,0x41e1b13,0x3a1e1b1e,0x3a1e0402,0x424f902,0xf513201e,0xf5131e24,0x1e24f224,0x2024f913,0xf1e0413,0x815611e,0xde24f225,0xde131e13,0x1e131813,0xf1e0413,0xe13261e,0x8c091409,0x8d208c20,0xe090e20,0xc209c31b,0x981a9609,0xaf095a1a,0xb91be50a,0xa91be50a,0xa90aba0a,0xba1bf30a,0xd614a20a,0xd6170a05,0xa126705,0xc31b0d17,0xc309c609,0xc509c209,0xc309c609,0x9f09c509,0xdd1aa01a,0x53208b20,0xec20891a,0x690f660f,0xa402de0f,0x28235814,0x2c230712,0x29230712,0xf4122c1d,0x500e6d0d,0xef09f111,0xa1b3509,0x5088920,0xad088920,0xad200519,0x6088719,0x231b5220,0xf30a210a,0xec21261a,0x7e0e691a,0x42117f11,0xcb0ad522,0x3c0acb0a,0x3c224222,0x42223522,0xbd223522,0xbd0ad80a,0xda222b0a,0xda0abd0a,0x8a0ad80a,0x8b1bd318,0xaf21cf0a,0xae21d71b,0xad21c41b,0x9921c41b,0x9e0a6d1b,0x6721c71b,0x671b9e0a,0xcf0a660a,0xcd21d721,0xae21d721,0x9921cd1b,0x661b9e1b,0x661b990a,0xad0a6a0a,0xae21cd1b,0x6a1b991b,0x190a6d0a,0x35066702,0x64153515,0x46021806,0x800b1a1c,0x190b1a22,0x8022800b,0x8d1ec522,0x641f9418,0xde1fac19,0xbd02b10e,0x3215330e,0xec066d15,0x6005ed05,0x6c243b23,0x6c243812,0x38149c12,0x8036524,0xc7008c0c,0x9312d31d,0xa8094006,0xa8093420,0xae1a7720,0xad1a7720,0xa720ae20,0x721c7122,0x6e1c711c,0xaf1c731c,0xef0faa0f,0x950cef0c,0x690faf0f,0x641c661c,0x671c661c,0x641c641c,0x691c6a1c,0x7c22b01c,0x9222a71c,0x5b209020,0x2020901a,0x201a5b09,0x5b1a5809,0x5d1a581a,0xc11a5b1a,0x3e19fd08,0xc2089920,0xc219c119,0xc3089c19,0x9e089c19,0xc219c308,0xc10d080f,0xc00d080f,0xc10fc10f,0xc30fc40f,0x3205c50f,0x32234c24,0x4c1d6724,0xf61a2d23,0x2c090208,0x30112e11,0x2d113011,0x2d112c11,0x2a0e0f11,0xac0f1911,0xab1cab1c,0xa7260a1c,0x1a260a1c,0x1a1ca70f,0xa626170f,0x5f0afb1c,0xfc0afc22,0x4222600a,0x2022601c,0x891c421c,0xcf0bd000,0x5800850b,0x55035503,0x540bd603,0xa00bd603,0x89035400,0x850bcf00,0x54035500,0x3008903,0x6220a22,0x95220a22,0x2022060a,0xf11beb22,0x191beb1b,0xb71bf022,0xf01beb0a,0x7020821b,0x8418c007,0xa090b20,0xc0208209,0xe208418,0x971be322,0x981be30a,0x980a970a,0x1222110a,0x9b20d722,0x9b095c1a,0xd509591a,0xb6161e20,0x616b416,0x4122123,0x95228e23,0x780b2222,0x6005ed23,0x6c236023,0x6c237812,0x7805d712,0xd805d723,0x6c237505,0x7805d712,0xd805d71d,0x78171205,0x1205d71d,0x7505d817,0x78171223,0x601d7a1d,0x96036723,0xe10be100,0xe30be20b,0x8702690b,0xfe02fe15,0x3506b302,0x86121d1e,0x66058c05,0xae1a771a,0x3420ae20,0x3b1a6609,0xbf1fba08,0xcb13ae1f,0xcb063c1d,0x3c12df1d,0x58127d06,0xfa245924,0xff11fb15,0x581a5d15,0x5c1a5c1a,0x5d09241a,0x2209241a,0x221a5d09,0x1b23081d,0x5923081d,0x63058a14,0x5d092a1a,0x8b09161a,0x8b1a5e20,0x2b091820,0x5b092309,0x2320981a,0x99209809,0x5d1a6320,0x27091d1a,0x1d1a6309,0x23091809,0x231a6009,0x60209909,0x2720961a,0x9b091d09,0x52209620,0x1d20961a,0x181a5209,0x9c1a6009,0x9c091820,0x62092b20,0x52209b1a,0x2b208b1a,0x291a5e09,0x521a6209,0x291a611a,0x161a5209,0x261a5e09,0x61209709,0x6109161a,0x161a521a,0xb0e0609,0x2b0e0e0e,0x79002000,0x1500200b,0x2f0b7900,0x210fd50d,0x220fd510,0x22102110,0x210d3910,0xc081310,0x7f1f7c08,0x131f8a1f,0x7157c08,0x9b1e3703,0xf9038303,0xf305fa0b,0xc6128502,0x730f740c,0x760f730f,0x750f750f,0x730cc30f,0x7022a40f,0x700b341c,0x3422aa1c,0x5908ce0b,0x5908df20,0xdf205720,0xdc205708,0xdf08de08,0xce1a1008,0xaf245208,0xaf171214,0xec245614,0xdd205805,0x8008db08,0x65032202,0x411a3f02,0x56207c1a,0x841ef319,0xdb0fde07,0xdb10290f,0x29102a0f,0x5e105d10,0x5e106c10,0x6b0da010,0x6d0da010,0x25106b10,0xd22671c,0x6c0b0d0b,0x6c1c2522,0x251c3722,0x5c105d1c,0x760fea10,0xd5067706,0xe6067713,0x15023224,0x10231223,0x2a196723,0x2a082f08,0xb3082808,0xab08281f,0xab082e1f,0x3319601f,0xab082e08,0x2f08331f,0x67196a08,0x2e082819,0xcd1fb308,0x46223d0a,0xd3223d22,0xdb22450a,0x45223d0a,0xc70ad322,0xc722430a,0x322360a,0xc722431c,0x361c030a,0x3223822,0xcb22381c,0xc91c030a,0x80aca0a,0xcd0aca1c,0x822460a,0x460aca1c,0xbf224122,0x80ac90a,0xc922411c,0xd922430a,0xd30ad30a,0x450ad90a,0x6e236022,0x6e12671d,0x6705d61d,0x1d186112,0x1d186207,0x7f1ea507,0x1d18621a,0xa51a7f07,0x7f07281e,0x7e07281a,0xd31a7f1a,0xe107a01a,0xa107a018,0xe118e107,0xd407b118,0xcc07b11a,0xdb1ad41a,0x3308b219,0x16246c20,0x11182918,0xd902dd17,0x5e092b05,0x5e208b1a,0x541a551a,0x5e208b1a,0x911a541a,0x5f1a5720,0x951a571a,0x28209a20,0x9a1a5709,0x2a209520,0x8b209a09,0x9c091820,0x8b092b20,0x57209c20,0x5f09281a,0x9c1a601a,0x91091820,0x981a5f20,0x60209920,0x6020911a,0x9109181a,0xe617e520,0x9101a617,0x1324661d,0xa617e518,0x6c1d9101,0xe817e524,0x9117e517,0x9117e31d,0xe318131d,0xa017e317,0x971d971d,0x8c019c1d,0x1a019c12,0x8c128c18,0xf17e212,0x8917e218,0xe5180f12,0xe817e317,0x9717e317,0x8c128c1d,0xe3180f12,0x9e180f17,0xe317e801,0xe8180f17,0x91129217,0x9117e912,0xe9181612,0x6c181617,0x16246f24,0xe9246f18,0xcb246e17,0xcb246f14,0x6f17e914,0x6d17e824,0x12246f24,0x1105fe18,0x8f05fe18,0x6c18111d,0x6f17e824,0x12019e24,0xe814c518,0xc5019e17,0x381d9014,0x3817ec18,0xc517e818,0x3817ec14,0x17060a18,0xec060818,0x90060817,0xee17ec1d,0xec247017,0x11181217,0x1914c518,0xa17ee18,0xec17ee06,0x6b060a17,0xe4181524,0xa181517,0x38183806,0xa314c518,0x1517e401,0x38183818,0xe401a318,0xa101a317,0xa1060301,0x2246901,0x5246906,0x5060406,0x9314c806,0x506041d,0xc81d9306,0xa514c914,0xa414c901,0x301a501,0xa317e406,0xa514c801,0xc71d9301,0xa1060314,0xc7060201,0x6901a114,0x6a060424,0x3a1eb624,0x3a201007,0x101e8807,0x321e8820,0x32201007,0x1019b907,0xb7201020,0xce187d1e,0x8008531f,0x4b057d19,0x4b161414,0x14144d14,0xd1161416,0x2f161323,0x5c06b01e,0x2d06b002,0xac251e1e,0x1e06b006,0x330ac325,0xfb1bfb22,0xc322321b,0x231af40a,0xea1aea21,0xf421211a,0xb521211a,0xb5212209,0x2209b409,0xeb212221,0x2121251a,0xf4212221,0x3c1b741a,0x271b720a,0x25114f0e,0x1c101b0e,0x52101610,0x750e4c0e,0x771ab011,0xc620ed09,0x8a094720,0x8b09471a,0x8a09461a,0x4609471a,0x891a8a09,0x6520c61a,0x95196419,0x271f951f,0x561fae08,0x130ff60d,0x1a10cb10,0xea0b7a00,0x931fe81f,0x9718e519,0x971f1007,0x101f1107,0x8e1f111f,0x8e1f1007,0x101f1407,0x9f1f141f,0x371f1009,0x4a240d23,0x3f124a12,0x4023371d,0x411b3f1b,0x621b3f1b,0x7e1b4121,0xc411a50e,0x8011a50d,0x800dc40e,0xf011330e,0xc5223310,0xc50ad60a,0xd61c050a,0x3122470a,0x33223222,0x400ad622,0x47224022,0x90223222,0x951e4415,0x471e4415,0xdb15951e,0x31214309,0xdc1b321b,0xac09db09,0x9416ab16,0xd7085905,0xe41fd81f,0x2112ac17,0xfa100718,0xfa0d480f,0x470d3e0f,0x2a16230d,0xbd1d2a16,0xf71b3d07,0xbd1efd09,0xb909f707,0xf5077018,0xfd1ef51e,0xfd21571e,0x5709f71e,0xb9215a21,0xf51ef518,0x5621571e,0xa124ab21,0x11151113,0x1012e415,0x931c7615,0x781c781e,0x380b341c,0xfa23ac0b,0xfc1cfc1c,0x505551c,0xfb1d051d,0x3723ac1c,0x3c173d17,0x2f13c117,0x2f021b15,0x31152e15,0x2f021b15,0x31022315,0x2f022315,0xe5168d15,0xdc22e022,0x1c1a1b08,0xd31a1c1a,0xd308ce08,0xce1a1008,0x5908ce08,0x591a1c20,0x1c205720,0x3e06ab1a,0x3e1e2813,0x281e2b13,0xce123e1e,0xce23fb16,0xaf05a516,0xa705af05,0xa716ce05,0xfb16d105,0x58008823,0x58008403,0x84008503,0x83008400,0x88008700,0x87008400,0x86008300,0x860bcd00,0xcd035600,0xcd00830b,0xde00870b,0x47124516,0x31124512,0x31124723,0x47124c23,0xf314bb12,0x8605fa02,0x4420c11a,0x4714a909,0x47126d24,0x6d02e424,0x78171412,0xeb235f12,0xea023324,0xe7023324,0xd824ea24,0xea24e513,0xfe24e524,0xea24fc24,0xfc24e524,0xd5124924,0x5416ce16,0x7d05e824,0xb505e823,0xed237d14,0x5414b102,0x7d245424,0xb102ee23,0x9225a804,0xd01a1125,0x53204e08,0x16208b1a,0x52091609,0x521a4d1a,0x4d09171a,0x121a4d1a,0x12091609,0x16091e09,0x923c009,0xc123c112,0xc23c423,0xb160c16,0xed23c116,0xab04ee04,0xff169017,0xff056411,0x64169711,0x8056405,0x7816901d,0xcd163514,0xff163516,0x2a232a23,0xcd05a723,0xaf05a716,0x3505a805,0xcd232a16,0xaa05a816,0xaa05a705,0xa716cd05,0x80e0305,0xa611240e,0xe40ca80c,0x381dc20c,0x38150306,0x3150706,0x4207615,0xf4207709,0xd721f721,0xcb21f71b,0xeb22091b,0x6c1fee1f,0x201d2208,0x20122d16,0xba23e116,0x20122d16,0x216ba16,0xd4210f21,0xd3210f1a,0x7c1ad41a,0xa21d6d1d,0x30123c14,0x2d231616,0x31059a1d,0x1b059a1d,0x311d3123,0x2d123c1d,0xc6188f1d,0x4507451e,0x8f1ec207,0x411ec218,0x8f1af707,0xf71ec218,0x3e07411a,0xf7212b07,0x8f1af91a,0x7b107c18,0xb10cbc10,0x370a3621,0x940a370a,0xe31b7121,0x66056122,0xfa056105,0x522e615,0xbd23bb12,0x6a23bb23,0xbd23bd05,0x522ee23,0x6160516,0x4b120516,0x72236e24,0x75127212,0x12244b1d,0x330d7d10,0x4316370d,0x43163816,0x38163d16,0xd1163d16,0xd1163816,0x38163916,0x701e916,0x712cb15,0xcb150515,0xc6150512,0xc612cb1d,0xea01f31d,0xc801f301,0xf315091d,0xea150901,0x7e067c01,0xef13d406,0xc618d418,0xb01b8018,0xb01b7d21,0x7d1b8221,0x56095a1b,0x5a096609,0xe7096609,0x9d095320,0x9d1aa51a,0xe1095a1a,0xa520e120,0x371a9d1a,0x3602fd1e,0x7c02fd1e,0x7c1e3615,0x361e2d15,0x2e1e2d1e,0x8134f1e,0x91e1925,0x431e1925,0x9156302,0x631e1925,0x18156315,0x2a25091e,0x6520661a,0x5144320,0xd1055912,0x1810f10d,0x70016f0e,0x7000f001,0xeb042c01,0xf0016f00,0xeb042b00,0x7000ea00,0x1809a601,0x17211721,0xdb1ada21,0x19161a1a,0x19144716,0x47145316,0x1e144714,0x38161a12,0x3509f31b,0xf407621f,0x761b3809,0x6a174604,0x47174604,0x6a046a17,0x7225fa04,0xfa257225,0xfa256f25,0x6f050125,0xb050125,0x6f046e05,0x4b050125,0x2050b17,0x2046d26,0x6f17c326,0x917c304,0x9256d05,0x6d047005,0x6d17c325,0x70046f25,0x5217aa04,0x51256c17,0x51047017,0x70047217,0x52047004,0x1256c17,0x4b046e05,0xb046e17,0x72046d05,0x6a047625,0x72047004,0x49256d04,0x48014701,0xbc203b01,0x15203c08,0x15144c16,0x111d151d,0x11161516,0x15121216,0xc158c16,0xda030a03,0x5c1edb1e,0xfb223207,0xfb22471b,0x400ad61b,0x401bfb22,0xd9224722,0x4d075c1e,0x56075c1c,0x4d1c4c07,0x4c075c1c,0x5507561c,0x131c4c07,0xce220f22,0x70077218,0x7d1a4407,0x721a4320,0xb200e407,0x4603ad03,0xb3006c03,0x4700720b,0x46007303,0x720bb303,0xa9199b00,0xa9199e19,0x9e19a119,0xa219a119,0x531ff419,0xc202bf12,0x2204302,0x2203f1a,0x3f19ff1a,0x39203f20,0xe5204320,0x440c4503,0xda0c440c,0xda03dc03,0xdc03db03,0x1c00da03,0x1c0c460c,0xbc0c470c,0xdd0c470b,0xbc0bbc03,0x1a0bbd0b,0xdc0c4601,0xbc00da03,0x1c011a0b,0x45040d0c,0x47014701,0xd014901,0xb9007304,0x1903e60b,0x460c5001,0x4e0c5003,0x7303460c,0xe303e600,0x46011903,0x2e007303,0x510c8904,0x2d0c8900,0x2d005104,0x51017104,0x18237e00,0x7c245817,0x36187e19,0x70073607,0x49084d18,0x35026a13,0x3916c61e,0xea146a12,0x820eed0e,0x701d7210,0xe9236c12,0xee25ea25,0xb504f325,0xe917b417,0xf225ee25,0xf325ee25,0xed25f204,0xf325f225,0x4817b404,0x2a04f325,0xc3159725,0x68034006,0xd00bb200,0xc301ac01,0x51125014,0x6d05f412,0xa1146e14,0xcf146e05,0xd005a116,0x141bdf18,0xd415da22,0xd4141415,0x1411c315,0x8b104e14,0x750d8c0d,0x7f018d1e,0x64018d13,0x7f137f1e,0xba1e6413,0x54234115,0x86234212,0x88238712,0x8e1e8923,0x8b1e8b1e,0x709841e,0xe307a907,0x111f2d1b,0x1210ac00,0x7b087900,0x79087e08,0x9c087e08,0x75087019,0xf8087908,0x731ff91f,0x9c087908,0x9c087019,0x701ff519,0xf81ff508,0x1208731f,0xad10ac00,0x6618a910,0x6618ac07,0xac18ad07,0x6a18ad18,0x6a18ac07,0xac18b707,0xdc18b718,0xf91ef91f,0xac1ef21e,0xef1ef218,0xef18ac1e,0xac18b61e,0x418b618,0x4518ac19,0x3e147716,0x7f147712,0x7f123e14,0x3e16ce14,0xa019c612,0x93079d08,0x541f1507,0x55078e0a,0xa540a,0x30d020d,0x30d000d,0x30fb60d,0xb60fb70d,0xb60fb90f,0x520fb80f,0xa9184f18,0xa91f4818,0x48184f18,0x3184f1f,0x4a190219,0xd207d21f,0x31f4807,0x6c13fd19,0x9306a015,0xcf04d217,0xce04d204,0xd004cf04,0x9204d304,0x9304d317,0xd3179217,0x1f205d08,0x891a531a,0x891a5420,0x54091920,0x2b252a1a,0xa1e3925,0x8b030c03,0x8b030a15,0x2a06bd15,0xa1e3925,0x40030b03,0x39135a1e,0xda24a506,0xd712da12,0xd7063912,0x3912d612,0x4c114d06,0x4c114a11,0x47114911,0x7522f111,0x75056f05,0x6f120f05,0x701d0b05,0x701d1005,0x1022f105,0xe12091d,0xe23d11d,0x7a056b1d,0x6b013705,0x3800a20c,0x370c8201,0x3c0c8201,0xec013701,0xeb1d4f16,0x24092216,0x24207f09,0x7f092109,0x64066520,0xd524da06,0xcc24d624,0xfb215f24,0x41215e09,0x3c1b730a,0x721b730a,0xd70a3c1b,0x9e21141a,0xad232009,0xad146a05,0x6a231a05,0xc4159814,0xbf158e06,0x380fd30c,0x5a092510,0x5a1a601a,0x5b1a571a,0x581a571a,0x5b1a5d1a,0x5a20981a,0x9920981a,0x571a5a20,0x5b1a5d1a,0x1520881a,0x15209c09,0x60092509,0x15209c1a,0x551a6009,0x5e1a541a,0x881a541a,0x2b092b20,0x541a5e09,0x991a5a1a,0xc11a6020,0xb9233f02,0xe6086905,0x6d086d1f,0x95199408,0xfa199519,0x951ff71f,0xf61ff719,0x6d08691f,0x6d1ff608,0xf6199508,0x7f08801f,0xc1086908,0xb9233f02,0xb902c005,0x51233f05,0x61033a03,0x61035100,0x2b0ba600,0xa4032e03,0x51032e0b,0xa4033903,0x5e032e0b,0x5e0ba300,0x37032e00,0x39032e03,0xa6035103,0x6203390b,0xcf021506,0xc324cf24,0x2c24d413,0x9512331d,0x3d135e05,0x14026e1e,0x2b1e3903,0x880c0125,0xd2038503,0x4b1f4a07,0x2302661f,0xc1e5503,0x431f7d1f,0x89194319,0x8f1f001f,0xe91fe719,0x6b02211f,0x6b066406,0x64066506,0x35066406,0x4022115,0x5a010501,0x4204490c,0x5044a04,0x97099521,0x7099509,0x7099721,0x97210821,0xce210809,0x3d09991a,0x461bff22,0x46223d22,0x46223b22,0x3b1c0822,0x3b0ac922,0x41224122,0xc90abf22,0x28209a0a,0xcf1a5b09,0x5022a11e,0x3322a107,0x3307500b,0x5222a20b,0x500b3207,0xaa0b3307,0xe20dde11,0xc5098f0d,0x5609931a,0x4b235423,0x5e242923,0x5e243012,0x30149312,0x4b235624,0x93242923,0x30149914,0x2c024124,0x8e155d13,0xb820ca1a,0xa8180218,0x1514d71d,0x2d247d18,0x22028018,0x32026503,0x2709dc1b,0x2a09dc1b,0x271b271b,0x3221431b,0x8424621b,0xe916f123,0x8c12ae14,0x91168912,0x1b140e23,0x1d261f26,0x110f1e05,0x1e260a26,0xcc0f210f,0xb50f2117,0xc260b1c,0xb0f2126,0xb31cb526,0xb5051a1c,0x29051a1c,0x1105150f,0xb20f1e26,0x1e05151c,0x291cb50f,0xb526180f,0xba26181c,0xb20f1f1c,0xb10f1e1c,0x1e0f1f1c,0xba1cb50f,0xb5051b1c,0xb051b1c,0xb117cc26,0x210f1e1c,0xb60f1e0f,0x240f1e1c,0x241cb60f,0xb60f260f,0xd901ef1c,0x5812d712,0x8e108f16,0x20261010,0xcf1cb30f,0xa417a625,0xbb0f1a17,0x1726161c,0xd1261626,0xb51cb317,0xcd1cae1c,0x20051617,0x8c04c10f,0x4a178d17,0x10224922,0xc004bf1c,0xc004c104,0xbb04c704,0xeb01a925,0xb5129417,0xe002ae02,0xc902ae0e,0xae0eca0e,0xe00eca02,0xde02b30e,0xca02b40e,0xb60ecb0e,0xca0ee002,0xb302b60e,0xdf02b402,0xb502b40e,0xcb0edf02,0xd70ecc0e,0xb50edf0e,0xd40ee002,0xd20ecd0e,0xa80ed20e,0xd20ecf02,0xd40ecf0e,0xac0ecf0e,0xcb0ed402,0xb60ed70e,0xac0ed402,0xd80ed502,0xd702b60e,0xd70ed80e,0xd60ed60e,0xd50ed40e,0xab02a90e,0xd602aa02,0xa90ed50e,0xd80ed302,0xd802a90e,0xa90ed60e,0xb01ab02,0xc129406,0xb1d9606,0x95129606,0x881d9612,0xb4134a15,0xef14d306,0xed129817,0x98060717,0x8824891d,0x5e183324,0x5f253a13,0x17253a13,0x15135f03,0x5e1e3d03,0x820b6a13,0x4510cf0b,0x30d440d,0x54217a10,0x4f1b4f1b,0x7a1b511b,0x3907fc21,0x1f193419,0x66027f03,0x53027f13,0x6602811e,0x81027f13,0xa418e302,0xd07ab07,0x85090f1f,0x831a4520,0xd078620,0x4520851f,0x5c21a31a,0x5c1b7507,0x751edb07,0x4e1edb1b,0x4e21a218,0xa221a418,0x1211f421,0xb814411d,0x1402b902,0x510b5324,0x510b520b,0x5200080b,0xa100080b,0xa10b5210,0x52000a10,0xa2000a0b,0x520b5210,0x9d00020b,0x5310a010,0xd00b520b,0xcf238e15,0x93053015,0xd0239223,0x3015cf15,0xd0238f05,0x30053015,0xc2239205,0x93239222,0x93166723,0xc222c423,0x8235a11,0x2170217,0x5a170317,0xc4239623,0xd715d722,0x9615d615,0x6c22c923,0x6c053616,0x3615d916,0x281cf505,0xd5142614,0xd81ceb11,0xf901a811,0x7f182017,0x7d1fcd19,0x51197d19,0x511eca08,0x8b197e08,0x511eca18,0xfa188b08,0xc41bf81b,0xf50ac40a,0xc322341b,0xc41bfa0a,0xf819ea0a,0x21a0219,0xea20431a,0xfc204319,0xfc19ec19,0xed08be19,0xc108be19,0xed19ee08,0xee08be19,0xf908c119,0xc119ef19,0xee19ef08,0xec204319,0xec19eb19,0xed19fc19,0x5402c119,0x8b234112,0xb725ba17,0xc925ba25,0xc025b704,0x8b04bf04,0xc725b817,0xc725b904,0x8b04c004,0xc725b917,0x5725b704,0x4302c312,0x4316ef23,0x56125623,0xc902c812,0x78177702,0xc9258e17,0x5502c802,0xc71d551d,0x411d5402,0xf3143a14,0x4143a22,0x422f316,0x74120416,0x73117405,0x73116b11,0x6b0e4b11,0x480e4311,0x480e490e,0x6a11670e,0x6c116711,0xde116a11,0x46127105,0x800a4824,0x801b661b,0x660a491b,0x5e0a491b,0x49218a1b,0x8e218a0a,0x5c1b6321,0x5c0a491b,0x491b661b,0x63218d0a,0x490a491b,0x64218e0a,0x69134e1b,0x2028013,0x82026003,0x26158215,0x1030103,0x31134c03,0xf134c1e,0x4c030e03,0x2f030e13,0x4c1e3125,0x2252513,0x1158203,0x23158303,0x31030225,0x115831e,0x2158303,0x25030103,0x2f134c25,0x261e3825,0x10252525,0x38135703,0x3006be1e,0xc006c025,0x38031006,0x251e381e,0x2506be25,0xbe252f25,0x1324d506,0x1324db13,0xdb022d13,0xc90ec824,0xc902ad0e,0xad02ae0e,0xc802a202,0xa202ad0e,0xda02ad02,0xa202a10e,0xa10eda02,0xd90eda02,0xa10ec40e,0xc40ed902,0xc20ed90e,0xdb0ed90e,0xc20ec20e,0xdc0edb0e,0xdd0edb0e,0xa402af0e,0xdc0ec202,0xaf0edb0e,0xb10edc02,0xb30ede02,0xb10edd02,0xb102b002,0xb002b302,0xb00edd02,0xa302af02,0xcd02a402,0xdc02a40e,0xa402b20e,0xcd02b202,0xd202b20e,0xd70ecd0e,0xc70ecc0e,0xc70ed70e,0xc602a50e,0xcd02a30e,0xa50ed70e,0xd702a602,0xc302a60e,0xc60ec50e,0xd70ecd0e,0xcd0ec30e,0xa00ec30e,0xc10ecd02,0x88246414,0xf805c312,0xf8148a16,0x8a234916,0xde018914,0xad018806,0x68018c15,0x8801891e,0x88137601,0x7615ad01,0x6815ad13,0x181e661e,0xaa181418,0xb3247501,0x49129a01,0x93074b07,0xb3129a18,0xcd14d301,0xce060914,0x96129514,0xee17ed12,0xe91d7902,0xab060b05,0x95060c01,0xc1d9612,0x77181d06,0x9417f124,0xab17eb12,0x58241e01,0x58242012,0xf4242212,0x1c241d16,0x1e241e24,0x53242024,0xf016f11d,0xf0234716,0x47241c16,0xf0181c23,0xf117f117,0x5216f316,0xc602c51d,0xeb1d4e02,0xc516ed16,0x21ed502,0x6220422,0xd5220822,0x1612071e,0x16143b12,0x3b23ce12,0xd700d614,0xd7012103,0x21010d03,0xe8011f01,0xd60c1403,0x14012100,0x413ec0c,0x6f069125,0x76007100,0x67007600,0x92006f00,0x45159415,0xc215941e,0x12135c06,0x5c159403,0x3406c213,0x34135c25,0x5c159325,0x12159413,0x461e4503,0x451e471e,0x5d03121e,0x11e4513,0xa717fe18,0xa718011d,0x3118041d,0x4180118,0xe314f218,0xe31da114,0xe6248314,0xe614e314,0x831da114,0xe6182c24,0x2014e614,0x2001c706,0x314ec06,0xef14ec18,0xef180314,0xeb248a14,0xef180314,0xa114eb14,0xc714e61d,0xf2180401,0x8a1da114,0x3514f124,0x3062018,0xf101c718,0x1e01d214,0x1e14f118,0x3117f618,0xd0180418,0xf614f101,0xf614ee17,0xee17f717,0x2117f714,0xf7248706,0xee248717,0xf1183514,0x3514ee14,0x8a14eb18,0xd01da124,0xd0180401,0x7e14db01,0x31247e24,0xf801d018,0x2b061f17,0x2b17f818,0x1817fc18,0xdb247e06,0xfc17f814,0xfc12a317,0xa701bd17,0xfc12a312,0xbd12a717,0xa714dc01,0xa814dc12,0x1712a712,0xdb061806,0xe1182714,0xe1061c14,0x1c061714,0xdb061706,0xdb061c14,0x7c17f814,0x1c247c24,0x1f14db06,0xf8247c18,0xa317f817,0x1814da12,0x6406c603,0x1c06c613,0x1c06cb03,0xcb1e4e03,0x64031806,0x43027c13,0xd1167005,0x9f167111,0x9f054323,0x4315de23,0x99253905,0x7b1e4b15,0x99136302,0x7b136315,0x62136202,0x9b1e4d13,0x7a253a15,0x3e159b02,0xcc06c325,0x9706c306,0x9806cc15,0x3b027915,0x3a027a25,0x3a06c425,0xc4135e25,0x36135e06,0x7406c425,0x4c031402,0xc303141e,0x4c253e06,0x3e03141e,0x791e4c25,0x35027402,0x97159625,0x1a159615,0x3a159703,0x68243224,0xa1075d1d,0xa11ede18,0xde075918,0x9b18a31e,0x5d18a218,0xdc1ede07,0xa31edc1e,0x1f075d18,0x530a210a,0x230a211b,0x531b530a,0x1f0a221b,0xa218a40a,0x44074418,0x94186307,0xa4075f18,0xfa074418,0xf711220d,0xd911030d,0xd911060d,0x611050d,0x3e0b3b11,0x3d07370b,0x3618750b,0x70187507,0x37073618,0x360b3d07,0x3a084f07,0x3b0b3b0b,0x7e07370b,0x36073718,0xd6187e07,0xb12d712,0xda12d715,0xda150a12,0xa61dc812,0xb150a24,0x2912d715,0xb0082c08,0xb21fb01f,0xd21fa21f,0x9600d100,0x9700d103,0xe00d003,0x9503930c,0x460f3903,0x6a1cd20f,0xf70ff20d,0x280ff20f,0x280ff70d,0xf7102d0d,0x32017b0f,0xf5043304,0xc30c2800,0xe10f8c03,0xdd0caa0c,0xd804e204,0x9804e204,0xd804d817,0xdd25cd04,0xc425cd04,0x9104dd25,0xa3074818,0x8b074822,0x8b0b3918,0xce197e18,0xd01fce1f,0xbb1ebb1f,0xb007081e,0xb01ebb22,0x48073f22,0xa30b3907,0xce188b22,0x39073f1f,0x3f188b0b,0xa01ba207,0xec21ca1b,0x4319f719,0xfc204320,0xfc19ec19,0xed08be19,0xfc19ec19,0xbe19ed19,0xee08c108,0xbb08c119,0xf019f008,0xf108bb19,0x3c08bb19,0x3c19f320,0xf419f620,0x3c19f319,0xbb19f420,0xf219f308,0xf208bb19,0xee19f119,0xbe19ed19,0xee19ef08,0x2e08c119,0x40c3b01,0x4c254f01,0xf5174304,0xb80ac41b,0xb90ab80a,0xb91bf50a,0xbe0aba0a,0xd125430a,0xd11e5506,0x551e5406,0x231e551e,0xca254303,0x3109c709,0x37043821,0x370c8d04,0x8e043604,0x370c8d0c,0xec0c8e04,0x5c07b318,0x3c07b321,0x5c215c1b,0xec215b21,0x3d215b18,0x5b07bd1b,0xf610150d,0xe809b80f,0x7e211f1a,0x43134415,0xaf134413,0x2e02fb06,0x2809c421,0x2f09ea21,0x2f1b311b,0x32214f1b,0x4e214f1b,0x6d1b3221,0xc131006,0x3e131013,0xc130c15,0x6d13c713,0x88108706,0xb109410,0xcf166314,0x12166315,0xcf141314,0x13166315,0x8720c214,0x8720a61a,0xa620c31a,0x8320c320,0xdb09421a,0xa21aa420,0x9a02971a,0xcc02a102,0x33062401,0xcc1bce18,0xcc21e51b,0xe50a7c1b,0xe70a7c21,0xe521e521,0xe41bb421,0xce21fb21,0xe421e41b,0xe51bce21,0xbc21ea21,0xe221e21b,0xb421e421,0x7821da1b,0xe221df0a,0xda1bb421,0xea1bbd21,0xea21da21,0xda21e221,0xc221df21,0x791bbd1b,0xdf1bb90a,0x8806b921,0x4a134a15,0xb906b413,0x4b06b406,0x7c134d13,0xa21d6d1d,0xba1bb514,0xc11bc11b,0xb521f21b,0x7b21f21b,0xbc1bb50a,0x86078018,0x4c0a541b,0x4c07930a,0x801b860a,0x9218ca07,0x9f1b8e1b,0xa41be30a,0xe1be30a,0x230aa422,0xab161912,0x91187816,0x911c5d22,0x541c5322,0x911c5d1c,0x5b1c5422,0xe1130106,0xe913011d,0xdc13b81d,0x69168422,0x168416,0x5321d,0x321ce11d,0xd508cf05,0xcf205e08,0xe5205e08,0x1108d708,0x1108e21a,0xe408cf1a,0x11205b08,0xdb08e41a,0x1e205608,0xd720561a,0x5f205c08,0x5c205620,0xdf1a2320,0x2208de08,0xde1a231a,0xe508cf08,0x2208e408,0x1d08de1a,0x2208e31a,0x111a1d1a,0xe2205b1a,0x1d08e308,0x1d08e11a,0xe108db1a,0xe208d708,0xd7205a08,0x5c205a08,0xe11a1e20,0x6208db08,0x1210ac0b,0xd2239e00,0xd215df11,0xdf11d311,0x8d14f315,0xa61da024,0xa4036c00,0xf60bf900,0x8f00b10b,0xb100ad00,0xb917b600,0x35255017,0x2a0c290c,0xf60c290c,0x2a00f700,0xf70c290c,0xf103ef00,0x40012503,0x781a8509,0xc01a851a,0x7820c220,0xc21a851a,0x771a7820,0xae20ae1a,0x78093420,0xf201291a,0xa10c5e03,0x58040a00,0xa3036901,0xa300a200,0xa200a400,0x5800a100,0x69036a01,0xa100a203,0x4b0c7300,0x7f014a01,0x4401660c,0x720c8101,0x72016a0c,0x6a0c830c,0x26016a01,0x260c8104,0x810c8204,0xe91b290c,0xe91ec409,0xc409e809,0xa0d251e,0xed100b10,0x27162423,0x2516241d,0x811d271d,0x3f1e801e,0x81184218,0x3c183f1e,0xf606f918,0x4206f906,0x4206f618,0x41183f18,0xe50bda18,0x480be60b,0x120c490c,0x960eae01,0xae0eb702,0xc10eb70e,0xb50eb70e,0xc10eb60e,0xb80eb70e,0xc00ebf0e,0xc00eb80e,0xb80ec10e,0xb70eb80e,0xb50eb60e,0xb60eb40e,0xb30eb40e,0xb60eb20e,0xb20eb40e,0x9a0eb30e,0xb20eb102,0xb10eb30e,0x97029a0e,0x970eb102,0x98029902,0x970eb102,0x99029802,0xba0ead02,0x9902980e,0xb90eb902,0xba02990e,0x98029b0e,0xbc0eb902,0xbb0ebd0e,0xbb0ebc0e,0xbb029c0e,0x9c029b0e,0x9b029c02,0x9d0eb902,0xad0eba02,0xad029d0e,0xad0ea40e,0xa4028c0e,0x950eb00e,0xab029302,0x9002910e,0x8d028702,0x8d0ea702,0xa7028f02,0x900eab0e,0xaf028702,0x930eb00e,0xaf029402,0xa402930e,0x9d0eab0e,0x870eab02,0x87029d02,0x880ea702,0x93029402,0x930ea802,0xa80ea402,0x8802870e,0x87028902,0x8a028902,0xa80ea602,0x860ea40e,0xa40ea602,0x8a02870e,0x87028b02,0x9d028b02,0x860ea502,0x4f0ea402,0x55047317,0x45047325,0x55255504,0x7417c225,0x8246e25,0xc2181706,0x8000bf00,0xc50db003,0x370f720c,0xb10f6910,0xba0f690d,0xb00db10c,0x380f720d,0xb1103710,0x1c0db00d,0xa1eff1b,0x7314ab1f,0x1c05e01d,0x8d23d81d,0x59246105,0xae16f312,0x361d3a05,0x211d3a16,0x27163623,0xec0dc20e,0x62198d10,0x621fe408,0x5a198408,0xd715e208,0xd71cf411,0xf423a511,0xa61cf41c,0xf115e123,0xeb24a712,0x3a219f12,0x3a1b6c0a,0x6c1b6e0a,0x6b1b6e1b,0x6c1b6c1b,0x9f0a3f1b,0x2f013021,0x2f0c3b01,0x3b03f901,0x640c3b0c,0x6a01300c,0xb4107b0f,0x100f130d,0x251ca00f,0xc708a220,0x25261418,0x2526120f,0xcd05160f,0x20051617,0xb526100f,0xb41cae1c,0xb60f261c,0xb60f1e1c,0x1e1cb71c,0x211cb70f,0xb90f1e0f,0xb00f1d1c,0x281cb01c,0x770f270f,0x7422ac1c,0xce11af1c,0xc010f40d,0x4208411f,0xc3084108,0x42083f1f,0x3e084108,0x711fc308,0xc3084019,0x3f08401f,0x41083e08,0xbd083f08,0x42083d1f,0x7314a008,0x4414ad23,0xc81a1720,0x531a1708,0x5308c820,0xc808d920,0x5b242708,0x4823481d,0x2716f223,0xdd029b24,0xfb0edb0e,0x8a0eef0e,0x57172a10,0x34173425,0x54255717,0x36045804,0x55255817,0x56045704,0x36045704,0x36045617,0x56045817,0x57044e04,0x2a172a25,0x4d044f17,0x5d044d04,0x5d255104,0x54255004,0x54045d25,0x50255125,0x4c173025,0x50254f04,0x4e044c25,0x51172a04,0x4d172a25,0x50255104,0x54254f25,0x52173025,0x52173125,0x31255625,0x56255617,0x32173104,0xd316cc16,0xf716cc16,0xf723f823,0xf8232b23,0xe2023623,0x83068313,0x36155106,0x50155102,0x50023615,0x8013e115,0x613e106,0x4806801e,0x461cd30f,0xd41cd30f,0xd40f461c,0x461cd51c,0x441cd50f,0xce1cce0f,0x451ccf1c,0xd01ccf0f,0x450f451c,0xd21cd10f,0x461cd21c,0x460f450f,0x480f470f,0xce1cd50f,0x940f461c,0x2a14f624,0xd305c706,0x1c1d5c02,0x14247c06,0x741ef018,0x74077507,0x751f0407,0x89078707,0x89078a07,0x8a1a0b07,0x871f0407,0x8077507,0x751a0d1a,0xf01a0d07,0x6907751e,0x94053216,0xd2053223,0xd2239415,0x9422c015,0x3215d223,0x32053305,0x331ce105,0xc4053305,0xd115d211,0xc3166615,0x69166622,0xf22c316,0xc1140e14,0x66239011,0x66140a16,0x2f15d116,0xa052f05,0xa166614,0xbf166414,0xc1166822,0xa140e11,0x9022bf14,0x6822bf23,0x68239116,0x91140e16,0x9515d423,0x95166a23,0x6a15d323,0x3511c916,0x6b166b05,0xd4239516,0xc922c515,0x6a166b11,0xde15d316,0xf15d31c,0xf1cde14,0xde140d14,0x96160e1c,0xe423c716,0x311cdf1c,0x35053705,0x3522c705,0xc711c905,0xbd22c722,0xbd053711,0xbe15cc11,0x3711be11,0xcc11bd05,0xbe15ce15,0xdd1cdc11,0xdd1cdf1c,0xdf05311c,0xdc15ce1c,0xc011c01c,0xce11be11,0x99166215,0x9911cb23,0xca141023,0x6c238d22,0x6c052e16,0x2e239916,0xec054d05,0x13054b15,0x3805b324,0x2113b923,0xfc01fc15,0x511dd301,0xfb1dd306,0x2065112,0x3f0ad41c,0xfe223f22,0xfe1c021b,0x361bfd1b,0xfe1c0222,0x8c22361b,0x8d1a5220,0x1d1a5220,0x8f091c09,0x8b104c0d,0x4b104c0d,0x8b0d8b10,0x2e01750c,0x5a1c6504,0xa0229707,0xe1020913,0xe12e112,0xe612e215,0xa905e102,0x3602d914,0xc702e124,0x7141522,0xc61ac714,0x3a21001a,0xfa153b15,0xef162c1d,0xe7123a23,0xeb1f5f07,0x4d219d07,0x6421771b,0x1f014401,0x4d0d9104,0x4c104c10,0x910d8f10,0xa616750d,0xdd11dc23,0xa2142011,0x7515e323,0xdd11dc16,0xe323a211,0x85216515,0x86218621,0x67218721,0x32143421,0x6f15f814,0x70097109,0xad096e09,0x92096f1a,0x74176e04,0x230d4c17,0x2d0d2d0d,0x90d3b0d,0xfb1afa10,0xd107491a,0x76129b14,0x9b1d9c24,0x7414d41d,0x7614d424,0xb6088c24,0xe070e19,0xb070d07,0x53185607,0x53070e18,0xe1e8c18,0xb070e07,0xbd185607,0xe088c19,0x11072107,0xbd19bb20,0x8c070e19,0xbb07211e,0xa319bd19,0x21186c1e,0xa3186707,0x2107211e,0x5c19bd07,0x5c1e8c18,0x9f19bd18,0x2118671e,0x93180a07,0xd614f424,0xf21d9e14,0x470b8417,0xd6004600,0xf417f314,0xf414d717,0xa9247917,0x8419a819,0xa0061508,0x41181a12,0xa01ecc0a,0x561ecc21,0x5621a007,0xa3075c07,0x130a1721,0x7621760a,0x17217521,0x1621750a,0xd0a170a,0xb0a0e0a,0x720a0d0a,0x100a1021,0x7321720a,0x4b217321,0x110a111b,0x121b4b0a,0x951ffa0a,0x94199419,0xfb086a19,0xf3086a1f,0xf3199d1f,0xa019991f,0x73199919,0xa01ff908,0xf9199919,0x9f19a01f,0xfb1ff319,0x941ffa1f,0xfb199d19,0x4a086a1f,0xa216f1b,0x430a0a0a,0x430a091b,0x921641b,0xfd09fe0a,0x60216009,0xfe216121,0x65216109,0x1809fe21,0x140a190a,0x140a180a,0x4d21770a,0x180a131b,0x6a1b440a,0x217021,0xfe0a010a,0x701b4409,0x690a0021,0x1b4421,0xfe0a000a,0xfe09ff09,0xff216709,0xb217109,0xa9216f0a,0x914cc01,0xcb1b8e06,0x418ca18,0xdb10fa11,0x424c90d,0x56065613,0x5e1de306,0x291de306,0x33065e15,0x80a110a,0xb918bc0a,0x8021b821,0x4c079307,0xac10ab0a,0x3a001210,0x5106bb1e,0x6e030913,0x91e3d02,0x3b1e3d03,0x511e3a1e,0x48030913,0x450b470b,0x180b680b,0x1210cc00,0x70b7e00,0x60b7e00,0x6000700,0x9f109e00,0x110a410,0x53109b00,0x90b510b,0x80b5100,0x8000900,0x910a100,0xa10a100,0xa000900,0x910a200,0x2000900,0xa0109d00,0x90b5310,0x4f005000,0x4f032800,0xae0b9a00,0x4f032803,0x9a00e200,0xe400ec0b,0xb100ec00,0xe400e403,0x9a03af00,0xe203ae0b,0x33004f00,0x36017804,0x77017804,0x77043701,0x37043801,0xe80af104,0xc70ade0a,0xc9234802,0xc802c902,0x4f1d5502,0x4e224822,0xf51d0622,0x5a15f315,0xe10ae722,0xe41c0c0a,0x5a0af30a,0xc0ae122,0xe41c0c1c,0x5a0af30a,0xe10ae722,0xc0ae10a,0xec225a1c,0x97231123,0xac25a405,0xac04aa04,0xaa259804,0x99259804,0x9804a925,0xaa04a925,0xaa25a404,0x7104a704,0x7c25a417,0xa725a417,0xa7177c04,0x7c177a04,0x9f177617,0x9f259004,0x90049704,0x7604a325,0x76049817,0x98259017,0xa3177a04,0xa3177804,0x78049804,0x77177817,0x7704a417,0xa4259f17,0x78177a04,0x7c04a417,0xa4177a17,0x71259504,0x71049917,0x70177c17,0x70177117,0x70049917,0x99259417,0xa5259404,0xa5176f04,0x6f25a004,0xa125a017,0xa1176f25,0x6f25a325,0x6f259417,0x74049917,0x9c259617,0x99259504,0x99177304,0x73177404,0x95259317,0x74177325,0x73049c17,0xa5177317,0xa5259325,0x92177e25,0xa5259125,0x7e259225,0x9204ad17,0x20b0325,0x8022680b,0x9c22b51c,0x6922b51e,0x2c1e9c18,0x75187007,0x7e187518,0x7e072c1c,0x2c1c7f1c,0x8022b407,0x201e9c1c,0x7f072c07,0xb41c7f1c,0xa8072022,0xb21c7b22,0x7c1c7b22,0xb222b21c,0xa81c7422,0x7c138e22,0x8e15bc1e,0xed15bc13,0x9315bc06,0xe706ed01,0x90019206,0xba019201,0x98019015,0x9306ed01,0xec06ed01,0xec138e06,0x8e15c206,0x8406ec13,0xee06e413,0x7506e106,0xe406ec1e,0xe806ee06,0x9006e706,0xec15c201,0xec06f306,0xf306ee06,0x8d1e7506,0x751e7b13,0xc31e7b1e,0x7506ee15,0xf315c31e,0xc306ee06,0x9006e815,0x90137d01,0x7d019801,0x7f15c213,0x7f06f413,0xc615c513,0xc6137f15,0x9306f415,0x98137d01,0x6d0cc001,0x6d0f4c0f,0x4c0f4e0f,0x9d0f4c0f,0x9d0c9a0c,0x9a0c9c0c,0x9c0c9a0c,0xc10c9b0c,0x4c0cc00c,0x570c9a0f,0x9a0f770f,0xc80f770c,0x4c0cc10c,0xa0c9a0f,0xd008d11a,0xa0166e08,0xa0141523,0x151cdb23,0xda1cdb14,0xcd15cd1c,0x15140715,0xe6141514,0xe6166e1c,0x6e1cea1c,0xe71ce816,0xe711cf1c,0xcf053e1c,0xe81cea11,0xdb166e1c,0x1515cd1c,0x1811cf14,0x18239a14,0x1a11d014,0xcf1ce814,0x9a239a11,0xe8166e23,0x1a14181c,0xd0239a14,0x1a11cc11,0xcc11cc14,0x3a15db22,0x70053c05,0x42053c16,0x7011d105,0xd1053c16,0xdb11cc11,0xcc053a15,0xd0053a11,0x3a22d022,0x1a167005,0x3c06ca03,0xeb03e925,0xd9012203,0xf30c4303,0x1143400,0x38120116,0xfa113a11,0xe90da610,0x5e0da50c,0x57055d05,0x2a0e8a05,0x60114a0e,0x6f0da410,0xad0da410,0xd6106f0d,0xd515d715,0xc915d715,0x5211ca22,0xf116f01d,0xd4131716,0xf21dfa13,0xf004ef04,0x2f172c04,0x2f254c17,0x4c172e17,0x4a254c25,0xc0254b25,0x9a06321d,0x81e0a13,0x2524f31e,0x85252625,0x4252615,0x3b158503,0x481cd30f,0xc7260c0f,0x490f331c,0x7b25371e,0x40250502,0x50155b02,0x613e115,0x7e1e001e,0x7d154a06,0x1c154b06,0xee154b13,0x1dff24,0x7d154a1e,0x81131c06,0x81067d06,0x7d1e0006,0x461b7906,0xac21ac0a,0x891b7a21,0x51075e1e,0x470a4707,0x5e1b7c0a,0x791b7c07,0xac075e1b,0x5e1e8921,0x61216007,0x6109fe21,0xfe216521,0x67216509,0x5209fe21,0xa4133902,0xa4025206,0x5513fe06,0x51025302,0x5506a502,0x52025102,0xa613fe02,0xa506a606,0x7b025106,0x180b1a22,0xc80e7f0b,0xed0dcf0d,0x5e123023,0x840a3614,0x36219d21,0x69219d0a,0x370a341b,0xeb0a360a,0xe225e104,0xc1cde25,0xeb22c114,0x1b234216,0x45148724,0xb816eb23,0x6e0bb70b,0x740bb700,0xa7006e00,0xe5236214,0xef239a02,0x7a05461c,0x11c4422,0x5e19600b,0x5e1fb419,0xb5195919,0x5e1fb41f,0x591fb519,0x321fb719,0x32195908,0x36196908,0x3d113b11,0x3a06bb11,0xb0026b1e,0xaa12bd1d,0xa312ad12,0x2f12a91d,0x8321820a,0xad14dd21,0xb0247f12,0xcf1daf1d,0xb114dd01,0x89182412,0xae1dad24,0xae18061d,0xb201cf1d,0x26182412,0xc5248218,0x82182601,0x8314e224,0xc0029f24,0xbe0ebf0e,0x9e0ebd0e,0xbc0ebd02,0x9f029e0e,0xbe0ebf02,0x2e022d0e,0xfc1dfc02,0x4215461d,0xfb154615,0x4215421d,0xfc24df15,0xcd12bb1d,0x2701ce01,0xcb0d290d,0xe0fcb0f,0xa90d270d,0xea01ca1d,0x301ca14,0x3314eb18,0xcc248818,0xdc12a801,0xf512a914,0xd2181e17,0x341db101,0xb1180718,0xef01d11d,0x8183714,0xb401d318,0xd306281d,0xb814d901,0xb8247b01,0x7b14d801,0xf5247b24,0xf514d917,0xd91db417,0xb414d914,0xa406261d,0x1a12a61d,0xab12a606,0xab061a12,0x8b14d912,0x8b062624,0xa414d924,0x1912a612,0x22248006,0xba182318,0xbc12a401,0xa514de01,0xc414df1d,0x2214df01,0x231da418,0xba061918,0x2012a501,0xa614e518,0x8618001d,0xb714e524,0xc614e512,0xfb12b701,0x23061917,0xfb01c618,0xb717fa17,0xfa01c612,0xe7248617,0xc81da614,0xe712b801,0xa801c814,0x1d182f1d,0x248506,0xab180218,0x1d182f1d,0xb517ff06,0xb3061b12,0xaf12af12,0x2512b312,0xc2061b18,0xc201bf01,0xae14ed01,0xac14ed12,0xed12b91d,0xae12b914,0x1b01c012,0xc201bf06,0xbf12ae01,0x2801c101,0xbf01c018,0xc001c101,0xa614e901,0xae14e71d,0xbf14e912,0xbf1daa01,0x8114e901,0xb4182524,0x2514f012,0x22183606,0x3212ba06,0x3614f018,0x3612ac18,0xac062218,0x32062212,0x23062318,0x2214e006,0xb414e006,0x2917fd12,0x8412b618,0xfd14e024,0xb4062217,0xfd182912,0x2212ac17,0x21247d06,0x7d12ac18,0xfd062224,0x29247d17,0xfd248418,0x2e061e17,0x2e182d18,0x2d01c918,0x1e17fd18,0xb9247d06,0x7d182101,0x3001c924,0xa2182d18,0xbb01b91d,0x2d061e01,0x7d247d18,0xb901bb24,0xc301bb01,0xa212b001,0xb001bb1d,0xb301c312,0x8206271d,0xfb14c023,0xca1b9205,0xca1b9318,0xd1f0e18,0xca1b931f,0xe1f0d18,0xd1a481f,0xf1a481f,0xd1f0d09,0x707861f,0x8507861f,0x71f0707,0x9321c21f,0x5b05921b,0x5b146514,0x6523ef14,0x4f155414,0x6f068815,0x6e158e02,0x4b1e4e02,0x47159d1e,0x54252113,0xe11ce213,0xe11ce31c,0x9714131c,0xe11ce323,0xcc23971c,0xcb130a24,0x53252124,0x53026b13,0x6b06bc13,0x54158a02,0x54026c13,0x6c252113,0x89135202,0x89252115,0x21026c15,0x3a026b25,0xff03161e,0x3906a413,0x6211cb13,0x6211bf16,0xbf052e16,0xc811bf11,0xc811cb11,0x111ce411,0xc71ce414,0xca141111,0xc811cb22,0x1111c811,0xf053414,0xc1140d14,0x3215d222,0x32053305,0x331ce105,0xc4053305,0xa315d211,0x7925a125,0xa125a117,0xa0177904,0x9a259c04,0x79259c25,0x9b04a117,0xa1259c25,0x72049b04,0x9c049a17,0x9a259b25,0x9b259e25,0x9b259d04,0x9d049a04,0xa0049a25,0x9f259a04,0x9e177725,0x9a049a25,0xa5259d25,0xa0259f04,0x9e259f25,0xa204a225,0x9f25a004,0x2e11bf25,0xd8238d05,0x2e166215,0xd8166205,0xd811cb15,0xca141015,0xb1b0c22,0xbc09bc1b,0x251aee09,0xed1aee21,0x1321251a,0x905721d,0x8b160016,0x5611f816,0xee0aed22,0x110aed0a,0xee1c131c,0x130aed0a,0x8d14331c,0xf8120316,0x2f11ef15,0x8d1c5414,0x8d1c2e22,0x90b2122,0x8d1c2e0b,0x600b0922,0x4008ea20,0x2808ea1a,0x761a401a,0x251a3f20,0x421a3f1a,0x4220611a,0x2609081a,0x2a09081a,0xeb1a271a,0x27090808,0xf01a2a1a,0x611a2708,0x3f1a2520,0xed1a251a,0xed207608,0x40206008,0xeb09081a,0xed1a2608,0x761a4008,0x7a175420,0x5a175525,0xe3154f15,0x6113e313,0x61155a15,0x5a155915,0x57155915,0x57155a15,0x5a024615,0x1a024615,0x5b023513,0xf08e220,0x5e1a0f1a,0xe408e520,0xf205b08,0x11064e1a,0x11152702,0x2624c402,0xc624c415,0xc1152624,0xbe128714,0x1e1c4a14,0x5f18880b,0x7914a323,0xdd14a323,0x7e245302,0xed0ccf0f,0x900ced0c,0x900f7e0d,0xd00d920d,0x930d920c,0x930cd00d,0x7a0ceb0d,0x930cd00f,0x870ccc0d,0xc90cca0d,0xc90d870c,0x900cce0c,0x7f0cd00d,0x7e0f7f0f,0xeb0d900f,0xce0d870c,0xce0ceb0c,0xcc0f7c0c,0xcd0d930c,0x930ccd0c,0xeb0f7a0d,0x7b0f7c0c,0xab04a80f,0xa825a304,0x7b177904,0x97176117,0x89049f04,0xb104bd17,0x8725b125,0xbf178917,0xc104c004,0xc325ac04,0x88178804,0xac178717,0xb1178725,0xac25ad25,0xb9178725,0xc225b104,0xbc25ad04,0x8d178c25,0x7d073817,0x5f1eb718,0xd825cd17,0x501e5704,0x50136c1e,0x6c027e1e,0xd2136c13,0xa01e5706,0xaa25d117,0xda25d117,0x3f17aa25,0xa713a806,0x9260f13,0xd217d226,0xf051917,0xcf261926,0x8b051917,0x6005bd14,0xb317ba1d,0x201cb41c,0xb426100f,0x120f251c,0x1417cd26,0x1517d126,0x17261626,0x1d261526,0x8305f217,0x2205f21d,0xea1d8317,0x930e6f0d,0x1d13b211,0x1d064c15,0x4c020c15,0x90095006,0x9009451a,0x4520c41a,0xc520c409,0xc094520,0xd2063715,0x101c2d12,0x1022900b,0x901c550b,0x23229022,0x231c2d0b,0x690b220b,0x6a0b2222,0x52226922,0x580e3a11,0x9a054511,0x9a1cee23,0xee167323,0x2412bc1c,0xce01cc06,0xbb12bc01,0xce181f12,0xb001cd01,0xaa12bd1d,0xaf1db012,0x601cf1d,0xcf1dae18,0xad248901,0x331dae1d,0x891dad18,0x7807ff24,0xbf18cf1f,0xd23ee16,0x5c23ee23,0x88230d14,0xaf04c317,0xb404c325,0xc225af25,0xb625b104,0xab25b125,0xc125b525,0xbe25b104,0xc225b404,0xb125af04,0xb604c125,0xb825ab25,0xb525b504,0xb104be25,0x7915e625,0xbc142216,0x9221c021,0x931b921b,0x9321bc1b,0xbc21c21b,0x8521c221,0x8521bd07,0xbd1b8807,0xb61b8821,0x2421bd21,0x6008e11a,0x1e08e120,0x7920601a,0x3409381a,0x8a1f8807,0x8e1f8e1f,0x881f8c1f,0x351a881f,0xcd20c009,0xd00f451c,0x27093a1c,0x2720bd07,0xbd186607,0x61186620,0x61093d18,0x3d1a8218,0x1f1f2f09,0x2719c420,0x71163b23,0xd1147114,0x84232716,0x8b22b118,0x7a22b118,0x7a188b1c,0x4822a31c,0x9122a307,0x48074818,0x7a188b07,0x7e188b1c,0xce1fce19,0xbb1fd01f,0xbb1fce1e,0x2b18841e,0xef01de06,0x1c0d6701,0x66101610,0x61216521,0xf219f921,0xf019f119,0xf919ef19,0xa0246819,0xed01d301,0x241a2508,0x1a1cbb1a,0xa0260a0f,0xd3058216,0x4b23d323,0xd6121d14,0xd316a023,0x7a206623,0x5a207020,0x500bfe03,0x30bfe03,0x5b03500c,0x5a0bd303,0x5b0bd203,0x5a035a03,0xd2035003,0xd503500b,0xd2008b0b,0x8b03500b,0xd40bd500,0xd40bd10b,0xd103590b,0xd70be90b,0xd7008a0b,0x8a008b0b,0xd10bd500,0x37008b0b,0x8509001a,0x2f164518,0x80148023,0xb2241314,0xb3241305,0xb305b205,0x40147e05,0x3f147e1d,0x4005b01d,0xb0147e1d,0x7b1d3f05,0x7b05b014,0xb0147914,0x80164505,0x4205b214,0x35252725,0x98209f1e,0x911a5f20,0x6b206a1e,0x35206c20,0x911e981a,0x6c206b1e,0x8f0f2c20,0x8f0f101c,0x100f001c,0x501c470f,0x8722871c,0x3d228b22,0x151c3d1c,0x140b160b,0x3c22740b,0x7322741c,0x3d1c3c22,0x870b161c,0x140b1622,0x471c3c0b,0x1622871c,0x2f1e150b,0xe124e113,0x1513d324,0x4513d31e,0x451e1515,0x15132d15,0x65077c1e,0x3220cc07,0xe723e612,0x191b1b23,0x3b213a1b,0x560e360e,0x370e3611,0x5611560e,0x41116c11,0x450e410e,0xf0e3b0e,0xb4070a07,0xa407bf18,0x38075f18,0x651e4b25,0x4e1e4b13,0xa713651e,0xe6145916,0xc4144d23,0x6f120a23,0x6e1b6b1b,0x6d1b6e1b,0x6d1b6f1b,0x6f1b701b,0x391b701b,0xaf1b710a,0xa721d11b,0xdc1bb61b,0xc41ba521,0x5a021124,0xf31d0106,0x5b055b11,0x1055905,0xdd1bc91d,0xe71bbb21,0xf90a7c21,0xcc0a7c21,0xc921f91b,0xf91bbb1b,0x94049c21,0x94049d17,0x9d179b17,0x39113c04,0xd30e1c11,0xd921d221,0x5e21d221,0x5e21d90a,0xd921c50a,0x7d1b8221,0x7d21b01b,0x4821af1b,0x8021af0a,0xf10a481b,0xea0ae80a,0xde0ae80a,0xf60aea0a,0xa0ae50a,0x980d9c1c,0xe0ca00c,0xee0ae21c,0x4e1c130a,0x701c0e22,0xae22aa1c,0x1b119c22,0x1b11190e,0x1911340e,0x540e2f11,0xc2116f11,0x21c9c1c,0x11c900f,0x10f2f0f,0x2e1cc00f,0x2f0f2e0f,0xba0f010f,0x2b052c11,0x65238f05,0x6522c216,0xc2239316,0xcf238e22,0x65166515,0xd0238f16,0x323b215,0xd105601d,0xc3166615,0x69166622,0x5022c316,0x51170f24,0xe6170f24,0xe6245105,0x75237605,0xc9169012,0x98169823,0xd057616,0x7924501d,0x7f05ee12,0x4010ac0b,0x1110ac00,0x11004000,0x8e10d600,0xd60b8e0b,0x39003d10,0x3c003800,0x39003800,0x8c0b8500,0x8b10d10b,0x8410d10b,0x8b0b890b,0x8910d10b,0x8a0b840b,0xd40b890b,0x91003b10,0x8c003b0b,0xd80b920b,0x430b8510,0x390b8500,0x8c004300,0xd80b8b0b,0xe0004210,0x9110d410,0xd400420b,0x92003b10,0x430b910b,0x8c0b9200,0x4d14ab0b,0xe402ec24,0x460b8a10,0x4610e400,0x8310e500,0x4b0b850b,0x970b8500,0x97004b0b,0xe510e40b,0x9010df10,0x9000410b,0x41003f0b,0xda003f00,0xda004110,0x4110dd10,0xdc10dd00,0x3e004110,0x410b8700,0xb0178000,0xa625a604,0xae25a725,0x7f04ae04,0x7f178017,0x8004af17,0x8405f617,0xc724141d,0x821d5502,0x46111323,0xbd10ed11,0x8725b104,0x65226417,0x650af722,0xf70af922,0xfa1c1e0a,0xfa0af80a,0xf81c1f0a,0xf90af70a,0x880af80a,0xb025af17,0xba25b025,0x12178804,0x52014e04,0x51014e01,0x6d0c7801,0x817e824,0xbf139206,0xa01d912,0xf30fa50d,0xe814290c,0xe822d915,0xd9167d15,0xe9167d22,0xe922d915,0xd9054c15,0xea054c22,0xea22d915,0xd9167e15,0xd7167e22,0xd722d922,0xd915eb22,0xa815eb22,0xa822d923,0xd91cf623,0xa922d922,0xeb22d623,0xb421221a,0x26162409,0x20122012,0x25058e12,0xe41fe11d,0xe4198c1f,0x8f08651f,0x6c15d919,0x6c238d16,0x2e239916,0x62239905,0x6e052e16,0x61018213,0x1406121e,0x38062006,0x94188107,0x171f5a07,0x89191e19,0x19091320,0x4f091309,0x4f09191a,0x8809151a,0xfb0ad620,0x3322331b,0x51bf622,0xbb1bf61c,0x522440a,0x441bf61c,0x2e0abb22,0x2e1c0622,0x60ac122,0xf90ac11c,0x3022301b,0xc10abf22,0xd70abf0a,0xd70ac10a,0xc11c060a,0x330ad60a,0x211c0522,0x9d18d81f,0xc907a307,0x21202319,0xa3079d1f,0xe01f6207,0xe018c607,0xa31f2107,0xe018c607,0x98077a07,0x9e1f2207,0x241f2207,0x98079e1f,0x18079e07,0x621f241f,0x6b07fb1f,0xc61f6207,0x2307a318,0x2307ad20,0xad19c820,0xa807ad07,0xa81f2e07,0x2e18e407,0xad07a31f,0xb407b407,0x3207ad07,0xfe079e1f,0xad1f1807,0xe91f2e07,0xe907ad18,0xfb1f3218,0x24079e07,0x18aa1f,0x6b076b08,0x6207fb07,0xeb07b41f,0xeb07a318,0xa307ba18,0xaa07b607,0xe5076b18,0x6b1ee41e,0xb61ee407,0xa3076b07,0xe007ba07,0xbf07ba07,0xd407e007,0x6b1ee518,0xab0aac07,0xc618c60a,0x6b18d418,0xc007bf07,0xc007e007,0xe007a207,0xe0077a07,0xa07a207,0xac079f1f,0xc60aac0a,0x7a1f0a18,0x1b1b1907,0x7a18c61b,0xcd1f0a07,0x3b223d0a,0x3c116622,0x3c115a0e,0x5a0e450e,0x6d102611,0x5010310d,0x4f0d4e0d,0x511cf90d,0x2d142d05,0xf9142c14,0xff142c1c,0x1f22da1c,0x3d21401b,0x38214021,0xd2213d21,0xac0f800c,0xa10ea20c,0xa115ca0e,0xca0e9a0e,0x9e0e9d15,0x9c15cb0e,0xcb0e9d0e,0xca0ea215,0xa20e9415,0xc70e940e,0x9c15c915,0xa215cb0e,0x9b15c70e,0xc90e9b0e,0xd115cb15,0x7c20d020,0xc9201e07,0x6c1f2319,0x4a175125,0x72175117,0x6d174a04,0xc3046f25,0x3046f17,0x7217c326,0x4a256d04,0x5217aa17,0x52174a17,0x4a256c17,0x4a050917,0x8c256d17,0x810e6a11,0x20205e11,0x7e08ec1a,0x710bf403,0xef24f103,0xe013de24,0x50155113,0xde24f115,0xde1e0813,0x813e013,0x813e11e,0x5513e01e,0x261a5e1a,0x61209709,0x21a551a,0xb8152013,0x76087413,0x761fdb08,0xdb087208,0xdd1fdb1f,0xeb086f1f,0xfa24a101,0xfc069d01,0x9d025813,0x19025806,0x22069c25,0x22024e1e,0x4e069d1e,0x36024e02,0x3b069c13,0x4e1e2413,0x19069d02,0x19024e25,0x4e133c25,0x41b0102,0xc01ed81b,0x94075f07,0x49214a18,0xd209e221,0xd215de22,0x26219711,0x2f21820a,0x8321820a,0xd260421,0xd051105,0x11260805,0x3619e505,0x5119dc20,0x221d1f14,0x24134b12,0x24026325,0x5158425,0x24026303,0x84030525,0x86158515,0x86158415,0x6a030515,0xa7209d1a,0x5a1b5920,0x2a0a281b,0x900a2b0a,0x961b5b21,0x960a2721,0x27218321,0x900a2a0a,0x591b5b21,0x270a281b,0x2a0a280a,0x950a270a,0x9b219c21,0x99219a21,0x9a0a3321,0x320a3121,0x7e24e80a,0x7c067c06,0xe8154a06,0x6a083a24,0x6a196c19,0x6c082f19,0xb0076d19,0xb91b8b18,0xde0a791b,0x6d18bd21,0x880a4e07,0xc207851b,0x4e18bd18,0x8b18c20a,0xb518b01b,0xb821b918,0x8618b521,0xbc21b91b,0x4f1b8b18,0x91076d0a,0x650cea0f,0x8a0cea10,0x6510650f,0xe6106810,0x650f910c,0x680ce710,0xe5106b10,0x6e106b0c,0x6e0ce810,0x92105f10,0x62105f0f,0x920ce210,0xe2105f0f,0xa510620c,0xa50ce20d,0x8b0da60d,0xa50ce20f,0xa60f8b0d,0xe30da80d,0x900da80c,0xe30ce40f,0xe40da80c,0x650ce70c,0x6b0ce610,0xe50ce810,0xe30da60c,0xa60f8d0c,0x8b0f8d0d,0xe60ce50f,0x4410680c,0x31105410,0x4310540d,0x310d2c10,0x2c10540d,0xc70bc60d,0x7a007a0b,0x9c007b00,0x9c007a0b,0xc60bc10b,0xc1007a0b,0xc10bc60b,0x7f0bc20b,0xc30bc600,0xc20bc60b,0xc30bc30b,0x4b034c0b,0x7e034e03,0x80008000,0xaf007f00,0xc3007f0b,0xaf034b0b,0x81007f0b,0x81034b00,0xaf007f00,0x8003400b,0x6a034000,0xbe008000,0x6a034e0b,0xbf222f00,0x2f0ad70a,0x60ad722,0xc522441c,0x2f0abc0a,0xbc1c0622,0x9608780a,0x5b085b19,0x77085c08,0xf0085c08,0x4008771f,0xe00adf22,0xd109990a,0xd121091a,0x91acf1a,0xb01e2d21,0xb0134f06,0x61e2f06,0xb0134f03,0x4d030606,0xec225022,0x5322500a,0xec0aec22,0xe31c150a,0xe61c150a,0xab0ae30a,0x2232d05,0x40240224,0xb605ab16,0xac161e16,0x86094316,0x9809421a,0xe5139913,0xdf14fc01,0x98062e01,0xfc01e513,0x9812c614,0xfc14fc13,0x9b062e14,0x2f12c224,0xfc01e206,0xc6249b14,0xc2249b12,0x13f712,0xc412c215,0xc613f712,0x249b12,0xc213f715,0xe212c212,0x12c401,0xbe12c415,0xc5249a1d,0xbe12c712,0x9a12c41d,0xbe249d24,0x9a249a1d,0x9512c724,0x95249a13,0x95249d13,0x2c14fb13,0xfb062c06,0x2c01e014,0x95249d06,0xe012c313,0xc314fb01,0x9614fb12,0xc31dbf13,0xc31dbd12,0xbd139612,0xfe01e41d,0x96249814,0xbd01e413,0xbf1dbb1d,0x3006301d,0xbd1dbf06,0x9801e41d,0x301dbd24,0x9714fd06,0x97063013,0x2d14f913,0xe101e306,0xf9063001,0xf91dbb14,0xbb062d14,0x2d14fa1d,0xfa249c06,0x2d1dbb14,0xfa12c806,0x2d249c14,0x9c01e106,0xff249c24,0xff139314,0x93139414,0x93249c13,0xba01db13,0x9c12c81d,0xc9150124,0xc901d812,0x921dba12,0xc901d813,0x8f139212,0xbc249913,0x11dbc1d,0xba01d815,0xdb249c1d,0xdb1dba01,0x8f01da01,0x2a1dbc13,0xbc062a06,0x4101d81d,0x3f158f1e,0x5403fd1e,0xf701020c,0xf3231923,0xc823f323,0xc81d3216,0x3223f516,0xc913991d,0xd150112,0xe121916,0x1b121916,0x2c160e12,0xe215f914,0x5005c822,0x501d6223,0x62243123,0xfe24311d,0xfe1d6216,0xf5055a1c,0x8d120311,0xb622e316,0xc1162b16,0xe413ed16,0x1a1e1a13,0xed15641e,0x43156413,0x4313ed02,0xed156302,0x18156313,0xee13ed1e,0xed132c13,0xeb132c13,0x1813e813,0xed13ee1e,0xe8132c13,0xeb13ed13,0xe813f113,0x3013f113,0xd713e813,0xdb13da13,0xd7023b13,0xdb13db13,0x8313e813,0x3013e806,0x83068313,0xdb155106,0xe0155113,0xd613db13,0xdb023b13,0xef13de13,0xe013d624,0xdb13de13,0x60027c13,0x2c031813,0x921b650a,0x4e02c621,0x716eb1d,0x480d3c10,0x3e0d3c0d,0xd10d470d,0x76129b14,0x9b247624,0x6b247412,0xc901a424,0x8246e14,0xba181706,0x8f01a801,0x25248112,0xc212b418,0xb3061b01,0xc31db312,0xb21db201,0x2518361d,0xb312af06,0x182512,0x1d17ff18,0xba12a506,0x2f12a401,0xc812b818,0x80182201,0xd301c424,0xb4062601,0x1e17f51d,0xef01d218,0xb114ec14,0xea14eb1d,0xfb01ca14,0x7403730b,0xfb037303,0xfb00ad0b,0xad00b10b,0xb000ad00,0xd80bef00,0xae0eac0e,0xfe242b0e,0x31243116,0x2b126024,0x7f16a324,0x10144c05,0x620d5f10,0x5725590d,0x59045504,0x59045525,0x59045204,0x59173525,0x35045925,0x52255317,0x52045004,0x33173504,0x50173317,0x50045204,0x53045104,0x45045125,0x45172b04,0x2b254a04,0x2b045117,0x2b045b17,0x5c173417,0x5c172b04,0x53045b04,0x5a045125,0x95069404,0x9513f224,0xf213f324,0x45255513,0xae045104,0xba178825,0xaf178804,0xbb04ba25,0xae178804,0x58152425,0xaa151d06,0xa9000c10,0x9f109c10,0x9f000510,0x5109e10,0xa910aa00,0xa90b4810,0x48109c10,0x480b470b,0x8109c0b,0x4b0b5100,0x470b4b0b,0x500050b,0x9c0b4700,0xea1feb10,0xea087d1f,0x7c1fe61f,0x691fe608,0x7c087f08,0xea087d08,0xc811ec1f,0x5e11bf11,0x60155d15,0x2e155d15,0xfc156013,0x8603850b,0x86038500,0x86008603,0x860bfe03,0xf3131f00,0xb61e0524,0xca152a13,0xd124d724,0xd1066e24,0x6e021b24,0x69126406,0xde02dd1d,0xeb15e511,0x5605ec1c,0xde245724,0x6808601f,0xa11e3408,0x82032415,0xaa15a913,0x8515a015,0x531e5002,0xd11e541e,0x55028206,0x5525431e,0x4303231e,0x99149325,0xcf1d6614,0x20032306,0xa0032003,0xa01e5115,0x51136815,0xd504dc1e,0x904e125,0x960b210b,0xb119b022,0x7119b219,0xb019261f,0xdd245307,0xe1235c02,0x1065b1d,0x8b035513,0xd70bd700,0xd6008c0b,0xbb16e70b,0x2902b902,0x2b03f201,0x63013401,0xb041d01,0xc0123523,0x6516c016,0x5b1d2314,0x9710e40b,0xbc0a760b,0xbc21d321,0xd321bd21,0x2802d621,0x3d16f824,0x761fbc08,0x431fbc19,0x43197608,0x76197508,0xc0197619,0x11083d1f,0x990a330a,0x32219921,0x740a100a,0x990a1121,0xfa05c921,0xfa235116,0x5116f916,0x6f14a423,0x6f1d751d,0x75235d1d,0xad235d1d,0xda1d7514,0xd025d125,0x9e1b9c25,0x5b0a5b1b,0x981b990a,0xe211d71b,0x6b15de15,0x260b0c22,0x1c0b0c0b,0x690b260b,0xef1ef207,0xb61eef1e,0x82076918,0xe402be14,0x4616e416,0xa914821d,0xe2236714,0xe5236705,0xee05e202,0xd002121d,0x18021224,0x2c24d002,0x60135425,0x3a00a213,0x3a00a101,0xa10c7101,0xdd0da200,0xd00fe00f,0x3e16d116,0xa616d112,0x3e123e05,0xd016ce12,0xd516ce16,0xff147216,0x7216d223,0xd016d214,0xe7147216,0xcf21d121,0x6c19be21,0x6b186b18,0xbe073b18,0x81073b19,0x1419bc18,0xbc073b20,0xb7188119,0xfa19bc1e,0xfb0c2d00,0xf90c2d00,0xfb00fb00,0xfa0b9f00,0x2f0b9f00,0xdd00fa03,0x1a205808,0xff08851a,0x851ffe1f,0xa41ffe08,0xc119c019,0xc11ffc19,0xfd201a19,0xc11ffc1f,0x841ffd19,0xa1088a08,0xc0088a19,0x1a19a119,0xa4088520,0xa4201a19,0xa2088219,0xc019a119,0xa21ffc19,0x1a19c019,0x81088220,0x81201a08,0x419a308,0x24021413,0xb0020715,0xcf064a13,0xd302051d,0xaf06491d,0xd1020613,0x3e144a23,0x57122614,0x57162414,0x25058e14,0xf1127d1d,0x5f005,0x30d020d,0xb80fb70d,0xd010f,0x10d030d,0xe80ab00d,0xf80a9d1b,0x5b1b3b09,0xe224821,0x131c131c,0x4822511c,0xf1108d22,0xd016560e,0xd1261517,0xf00ee617,0xf016530e,0x5310890e,0xe80eea16,0x650ee90e,0x4b253813,0x4e1e4b1e,0x8113651e,0xed108210,0xe3165d0e,0xf810810e,0x9a03830b,0xe2165f03,0x930ee30e,0x19078007,0xf5165f1f,0xe60ee10e,0xf116560e,0x7c01850e,0xda06e913,0xd81a9a20,0x581a9a20,0x7c20d809,0x5e015d0c,0xe9053401,0x22239b1c,0xbe065f15,0x8502f613,0x10238a12,0xac127417,0xc400ff14,0xc400fe03,0xfe0c2b03,0xf80c2b00,0xf800fe00,0x3003c800,0xf800fe0c,0xc80c3000,0x300c2d03,0xfa0c2d0c,0x440c3000,0xb31b770a,0x21135321,0x721e3025,0xbd1e4602,0x31ff606,0x3f088320,0x41183a18,0xf5183a18,0xa806f606,0xa101fa24,0xee24a124,0xee24a801,0xa8063a01,0xdb063a24,0x7a063c12,0x6c0a680a,0xc51df60a,0xc5066513,0x65021813,0x42090806,0x42207a1a,0x7a207c1a,0x66207a20,0xe090820,0xd038f0c,0x800bf50c,0x5f00c003,0x5b015c01,0x3e040901,0x92013f01,0x950c910c,0x7e0fe20c,0x6c101f0d,0x5011e916,0x58170105,0x5b235b23,0x53149e23,0x68149e23,0x1823531d,0x8122730b,0x7b227322,0x7b228122,0x851c4322,0x4c034b22,0x4c011c03,0x1c034a03,0x49034a01,0xc1011c03,0x770b9c0b,0x540b9c00,0x54007700,0x77032a00,0x48032a00,0xe4007703,0xe4168011,0xee16801c,0xe11cdf15,0x201e301,0x116a215,0x4922fd23,0x7606c51e,0x15031602,0x5f135f03,0x37031713,0x761e4925,0x16027502,0x37135f03,0x49253725,0x2203161e,0x200e250e,0xcf16650e,0x5a11ee15,0xbf0f620f,0xf308b40d,0xcc19f419,0xbc062414,0xce12bc12,0x914ce01,0xbc14cc06,0xb2158112,0x61030306,0x81158002,0xe916ea15,0xbf02c216,0xe90a7f1b,0xf821e921,0xe9220321,0xc1125416,0x18092302,0x37091509,0x3e173817,0x2806ba17,0x35028525,0x38017c04,0xb9151b04,0x6020c24,0x3143912,0xe000d12,0xe000b00,0xb10a900,0xc10a900,0xc000b00,0xb0b5900,0x5a0b5900,0xa3000b0b,0xb0b4910,0x49234500,0x8d148e23,0x1e052e23,0x9052e14,0xf8053f14,0xf116f305,0x5708dc16,0xb205520,0xe312f802,0xe012f81d,0xe01ddf1d,0xdf1de81d,0xc41de81d,0xe71ddf24,0xba24c01d,0x551de513,0x54065406,0x20152106,0xf7064f15,0xf7020f12,0xf24be12,0x5024be02,0xfa12fa06,0xea065012,0xfc06501d,0xfc1dea12,0xea12f612,0xde020d1d,0x1d24c51d,0x241dda15,0xb24bb15,0x241de302,0xfe1dda15,0xbb1dda12,0xb5065624,0xf91de213,0x531ddb12,0xc11de206,0xdc1ddd24,0x4d1ddc1d,0x4d13bb06,0xbb065906,0xe112fb13,0xc024bf1d,0xe5065524,0xb813b91d,0xfb152013,0x4f12f712,0xd1dde06,0xd13b602,0xb612f402,0xfe1a3813,0x6f206f08,0x3808fd20,0x970a5a1a,0x9721ca1b,0xca1ba31b,0xc921ca21,0x730a5a21,0xbe13851e,0xd5099f15,0xd5210b1a,0xb21101a,0xe211021,0xb1ad021,0x9f099e21,0x470b8409,0xd6004600,0xe722d822,0x4d10d315,0x4d0b8600,0x4e004400,0x86004e00,0x86004d0b,0xd3003c0b,0x3d0b8d10,0x3d0b8800,0x3c10d300,0x3d0b8800,0xda003c00,0x88003f10,0xd7003f0b,0x600b8810,0xcd175f17,0x9510e325,0xe110e10b,0xe010d410,0xe010e110,0x4510e210,0xe110e300,0x4d004410,0x4d10e100,0xe1004500,0xe210e110,0x990b9410,0x4e23aa23,0x78163405,0x331d3314,0x341d391d,0x361d3916,0x3616341d,0x3405a81d,0xfd05a816,0x47163423,0x44184318,0x45184318,0x44184418,0x8706fc18,0xcf125f1e,0xbf242d02,0x35120823,0xa23bf14,0xea22ea1d,0xec169222,0x169222,0x22ec12,0xec160312,0xef06e522,0x3138506,0xb120016,0x101d0b1d,0x1e1d111d,0x80023613,0x78068006,0x78067b06,0xd067906,0x78067b1e,0x791e0d06,0x87067606,0x19068706,0x19068d1e,0x8d06921e,0x8e069206,0x8e250f06,0xf068b06,0x89068b25,0x89250f06,0xe2068606,0x89250f13,0x8613e206,0xe2068306,0x1e067f13,0x7b068013,0x7f131b06,0x7f067b06,0x92068006,0x8d250f06,0xd068d06,0xf906871e,0xa9151201,0x2e192d13,0x2e1f6e19,0x6e192c19,0x4215791f,0x4d157713,0xc5235323,0x68235305,0x6d05c51d,0x631aac09,0x9025c109,0x9025bf17,0x9104cd17,0x9025bf17,0x91179117,0xc004cc17,0x9602d225,0xc02d414,0xd303d401,0xce03d303,0x8010c03,0xce010b01,0xcd03ce03,0xcd010803,0x8010903,0x8d026f01,0x7b027415,0x99136302,0xbd12aa15,0xbd01b012,0xb001cf12,0x9501cf01,0xa01b012,0x5080608,0x411f7b08,0x2080a19,0x400e240e,0x71244611,0x6f236f12,0x46244d23,0xd1244124,0x7905d205,0x79127723,0xed06571d,0x5c24c81d,0x19159313,0x4f125503,0x4916eb1d,0x35026a13,0x4915881e,0xb406b413,0xb9030806,0x4d134b06,0x85030813,0x66030415,0x62030402,0x62026602,0xba157a02,0x621e3306,0x7c06ba02,0x2806b815,0x7800ab25,0x78037903,0x790bed03,0xb00bef03,0xb000af00,0xaf00ae00,0xab00ae00,0xaf037900,0xef0bee00,0x7e06b70b,0x7e134e15,0x4e025e15,0xfe252013,0x44158702,0xb7157e13,0x54136006,0x1a158a13,0xba1cb305,0xca17ba17,0xca260b17,0xcc260717,0xca260b17,0x7260c17,0x15261126,0x15260705,0x291cb205,0xba051a0f,0x29261817,0x717ba0f,0x1f1cb226,0x1f26070f,0xba1cb10f,0xba26181c,0xba051b17,0x717ba1c,0xcc1cb126,0xc17cc17,0x6817ca26,0xaf1e2f02,0x4406af06,0x5e026513,0xb6252002,0x480e2806,0x48114411,0x42114511,0x48114411,0x44114211,0x28114711,0x8801cc0e,0x8817eb24,0xeb248924,0xab248917,0xf017eb01,0x790c7a0b,0xcf0f7d0c,0xcf0f630c,0xb50f7e0c,0xd0d0b0c,0xc10fc10d,0xbf0fc00f,0xe11140f,0xdf111311,0xb60bb803,0x46006c0b,0x100c4e03,0xb603df01,0x6c0bb60b,0x6c011600,0x160c4e00,0x170c4e01,0x87011601,0x6706cd15,0x2106cd02,0x1026703,0x1d016304,0x1d17cd04,0x1d261005,0xb417d905,0x1717d91c,0xcc1cb405,0x9707511e,0xce075118,0xce18971e,0x9722951e,0x551c5618,0x97075607,0xcc1c5618,0xd90c861e,0xd9016b03,0xde03d803,0xd9016c00,0x6c00de03,0xd9016b01,0x2514c703,0x4b14f006,0xa240712,0x44240724,0x44240a12,0xa23fd12,0xf5055e24,0x7c22e411,0xd4067e06,0xb2036613,0x2a037a00,0xc30e2c0e,0xc50e2c0d,0xc30dc30d,0x2a114d0d,0xc9142a0e,0xc91cf722,0xf715d722,0xd010971c,0x1610e810,0x79171717,0x62250a23,0x62155f15,0x5f156015,0x440bb415,0xe6006b03,0xe900e700,0x770d6f00,0x780d780d,0x2a10300d,0x8c210,0x4408bd1a,0x6a1e3525,0x510c8b02,0x51004f00,0x4f005200,0x29005200,0x5a004f03,0x55032b00,0x9d032c00,0x7400590b,0xa806a715,0x5d027806,0x8b031213,0xc61e6901,0xb714e815,0x7601b601,0x911e6613,0x940d9501,0x9410460d,0x46104d0d,0x91104d10,0x910d8d0d,0x8d0d8c0d,0x4f0d8d0d,0x4f104d10,0x460d8e10,0x721f7110,0x3019301f,0x711f7419,0xf81f741f,0x78192607,0xcb099009,0xc709901a,0xcb1ac81a,0xc809901a,0x2a13d01a,0x2a130e02,0xe24d902,0x3e1a3d13,0x3e1a411a,0x41207c1a,0x3f1a411a,0x821a3d1a,0x4905f61d,0xf402f61d,0x17128402,0xa1127917,0xe6241a14,0x4c125216,0x4b16e81d,0x1916e81d,0x181d4b24,0x52241a24,0xe7148612,0x4c241816,0x521d4b1d,0x861d4b12,0x7b125214,0x6e1d7c1d,0x6d1d7c1d,0x6e1d6e1d,0x1523601d,0x7a236017,0x1c17151d,0xde1dcc15,0xf413b512,0xde13b412,0xf622f522,0xe009a622,0x5a1ade1a,0xcb005600,0x8403500b,0x840bcc00,0xcc035200,0x5103520b,0xd40bcb03,0xe615da15,0x3611ca1c,0xa6239f05,0xd1167523,0xa225c922,0xe304e317,0xc904de04,0xd304de25,0x8c179e25,0x8d0fda0d,0xd70fda0d,0x8d0d8e0f,0x8e0fda0d,0xdb0c1b0d,0xb70c1c00,0xe2233d05,0x1e1d1916,0x20161a12,0x1d16a01d,0xdd161d12,0x2230223,0x1d161523,0x19161516,0x1c16191d,0xd8121e1d,0x1121e23,0x123d823,0xd916a223,0xd9230123,0x7516a623,0x9515bc13,0x8f1b8d01,0x810a581b,0x45144c05,0x46144c14,0x45144514,0x4e22f914,0x93081714,0x4e194e1f,0x4b081819,0x48194b19,0x48194e19,0x4e194919,0x8c194919,0x8c08171f,0x171f911f,0x2e15f308,0x5c055c14,0xf322de05,0x45047315,0x53045304,0x7417c204,0x73174f25,0x91045304,0xa21461e,0xa1151107,0x55020213,0xa20f530f,0xb90f530c,0x8f10740d,0x23228e22,0x23228f0b,0x5722900b,0x921c591c,0x90228f22,0x551c5522,0x8f1c571c,0x9512c222,0xcd251306,0xcc197f1f,0x7f035e1f,0x7f0bf403,0xbb0bf303,0xbc0bf300,0xbc00bb00,0x1200bd00,0xbc00bb01,0xbb011200,0x7f0bf400,0x7e0bf403,0x7e035e03,0xbf00be03,0x6100ae00,0x6100ac03,0xac00c203,0xf500c200,0x8c00ac0b,0x91122205,0x9059105,0x9161c23,0x1c1d2023,0x541b3a16,0x5409f521,0xf509f221,0x5309f209,0x5309f121,0xf109ef21,0x8100b109,0x12038203,0xaf01fe15,0xa4246b24,0x8f14c901,0x451f8e1f,0x8a1f8e19,0x8a19451f,0x431f891f,0x7d194319,0x4519451f,0x8f1f9219,0x911f921f,0xfb1f8f1f,0x8e0bec0b,0xc40bec00,0xc40bd300,0xd3035600,0x5a03560b,0xdc0bd303,0x1c261d17,0x57058e26,0x87145414,0x58118511,0x6d111a0e,0x9b11500e,0xbf201608,0x96201619,0x2b19bf08,0xf824a306,0xc724a314,0x1514f81d,0x40e0a0e,0x701a7711,0x9409321a,0x900c0c03,0xdf10de03,0x8e10a210,0x900ce40f,0xea0f8a0f,0x8a0ce10c,0x8c0ce10f,0x8e0f8f0f,0x8a0f900f,0x900f8c0f,0xab19b00f,0xc119aa19,0xe140d11,0xc1140d14,0xd815d322,0xe417a325,0xa404e404,0xa425d917,0xa517a617,0xa517a417,0x6425d917,0x60008d03,0xa801fa03,0xfc12df24,0xe114131c,0x9900b11c,0x99038103,0x81039a03,0xfa0bfb03,0xe03990b,0x1308d61a,0x7e18311a,0xfc060024,0x5707841e,0x571efc19,0xed195619,0x5607711e,0xfc077119,0x7919561e,0x9e1eee07,0xed1eee1f,0x9e19561e,0x561eee1f,0x2508a219,0x25202420,0x261f0820,0xca202620,0x25202419,0x24202620,0x1e03b020,0x1e0c1a0c,0x1a0c190c,0xe0c440c,0xe03dc01,0xdc010f01,0xea234103,0x95234016,0x201a5720,0x5c092009,0x5c20951a,0x9509241a,0x22092420,0x22209509,0x931a5909,0xfc204320,0xfc19ec19,0xee08be19,0xfc19ec19,0xbe19ed19,0xef08c108,0xf908c119,0xf719ef19,0xec204319,0xfc19ed19,0xa219ee19,0xac0c1f03,0x150d8103,0x140d140d,0x81103a0d,0xcd11c50d,0x4b053d11,0x86057d14,0x44170e05,0x88244524,0x2d1a681a,0x2d1a8809,0x7820a109,0xa220c21a,0x8820c220,0x6520a11a,0xa120c21a,0x771a6620,0x651a781a,0xc220a21a,0xb400e720,0x200c2003,0xe700e80c,0x2200e800,0x2200e70c,0xe903b60c,0x2403b600,0xeb00e90c,0xea03b700,0x2403b700,0xb700ea0c,0xfa056123,0xdd10dc15,0x2d0b5310,0xdb13c902,0x7723bf24,0x77120805,0x823ca05,0x630c2a12,0x6303c400,0xc4006600,0xc6006603,0xc603c403,0x2b03c503,0x370d460c,0xb410060d,0xa5064724,0x3703bb13,0xcc03cb0c,0xcb0c3603,0xbb02fc03,0xea06bc06,0x5614af05,0xb5123524,0xb5123416,0x3423e616,0xfd1e0612,0x8306831d,0xe613e506,0xf913e613,0xf9068324,0x83132024,0x5132006,0xf324f31e,0x61e0124,0x831e061e,0xdf24f306,0xb9011003,0xc20ec400,0xca02990e,0x960eb70e,0xd9110202,0xe011030d,0x13011103,0xad129a0c,0xee14dd12,0xcb02cc16,0xc01d5b02,0x81d5405,0x6d14a517,0xda170b12,0x6a02d902,0xe705e523,0x1a16cc02,0x3016c623,0xf71d2f1d,0x321d2f23,0xcc23f71d,0x3016c616,0xee12d41d,0xc812d301,0x201ea81e,0x3d1b1f1b,0xd51ec821,0xc7063a12,0xd4063a1d,0xe81dc712,0x34150801,0xd8150806,0xd8063412,0x3401f212,0xcd01ec06,0xdc249f12,0x4d011b03,0xda1dc803,0xc224a512,0x306381d,0x7063815,0x73150315,0x7605e623,0x460adb23,0xff1bff22,0x45223d1b,0xd3223d22,0xd322450a,0x4322370a,0x36223722,0x36224322,0x3223822,0xcb22381c,0xdb1c030a,0x451bff0a,0x3223622,0xd922431c,0xd322450a,0x2d1fb20a,0x2d083408,0x36196308,0x67196308,0x63196a19,0x36196a19,0xb21fa308,0x2d08301f,0x35083608,0xa7082208,0x301fa31f,0xa3082208,0x35082d1f,0x16083408,0xd120712,0x503ef1d,0xf1010601,0x5c010603,0x2a01060c,0x5c0c5c01,0xf101290c,0x5d012903,0x5f03f10c,0xf50c3c0c,0x610c3c03,0xf503f50c,0x5f0c6003,0x9313310c,0xca024806,0xe6150212,0x62010401,0x2d012d0c,0xf70c6301,0xf80c6303,0x3903f703,0x7403141e,0x5408e002,0x171a1720,0xe01a1a1a,0x3b0c3a08,0xfa03f90c,0x2e0c6403,0x2403fb01,0xde013001,0xba261817,0xa6036c1c,0xa600a500,0xa500a700,0x2c0b9d00,0x3c005803,0x3b040301,0x6e0c6c01,0x6e013d0c,0x3d04060c,0x5013d01,0x50c6c04,0x6c0c6f04,0x6903680c,0xe9009f03,0x54008a0b,0x9f036803,0x9f009e00,0x9e0be900,0x9c009d00,0x54036800,0xe900a003,0x9e00a00b,0x510be900,0x4e0c7801,0x130c7801,0x53014e04,0x55015601,0x95074b01,0x9518e118,0xe1189d18,0xe8189d18,0xfd18e118,0xc818f318,0x361ede07,0x1107b91f,0xf015004,0x58041404,0x58041101,0x11040a01,0x5c015b04,0x5c0c7401,0x740c7c01,0x380c7c0c,0x380c7403,0x4b033703,0x2f16fd01,0x2f234e24,0x4e242e24,0xf1057523,0x19055a22,0xea011801,0x33041a03,0xfb0c7d01,0xa7199d1f,0x861ebe19,0x86079b18,0x9b188318,0x9a188307,0xf5079b07,0xa408821f,0x819ac19,0x7f200720,0x7d00b603,0x42041d03,0x42016401,0x640c7f01,0x7e016401,0x7e041d0c,0x1d041e0c,0x21012204,0xa3010d01,0x8118671e,0x9f186707,0x28077d1e,0xc50abc22,0xc15150a,0xc13ab15,0xab01f415,0xa901f413,0xe613a924,0x261a2108,0x1604121a,0xa80ba804,0x58033a0b,0x53033a01,0x59015903,0xd5035301,0x8503530b,0x850bd500,0xd40bcf00,0x850bd50b,0xd50bd400,0x5a0bca0b,0x59015a01,0x590bd501,0x580c7901,0x7a0c7901,0x79036a0c,0x58036a0c,0x12041401,0x590ba804,0x3a015801,0x16041703,0xa8041204,0xdb00dd03,0xda03db03,0xda03a903,0xa9042703,0xe0042703,0x6803a900,0x790a7a0a,0x780a790a,0x660a660a,0x790a670a,0xe50c210a,0xfc03b300,0xf109bf1a,0x860c431a,0x86010e0c,0xe0c850c,0x840c8501,0xf7010e0c,0x31193207,0x650e6719,0x65117b0e,0x7b117c0e,0xac16ab11,0xb6161d16,0xf10c2203,0x4e0f4c00,0x500fd60f,0xd60c9e0f,0x8b1f830f,0xef194b1f,0xf113de24,0xf213de24,0x5224f124,0x72017100,0x72032801,0x72005001,0x50017101,0x2d017100,0x6005004,0x2821271b,0x31219821,0x3121720a,0x72219a0a,0x73219a21,0x78217221,0x31d1405,0xb410b516,0x5b0b8110,0x60046225,0x73193004,0xf507f51f,0x3007f907,0x3107f919,0x74193219,0x3207f91f,0xe6145d19,0x5145923,0xf01c180b,0x5c1a970a,0x5c1a9b09,0x9b20d709,0xe6096b1a,0x9f096320,0xb3029e02,0xbc029e02,0x3502b00e,0xed09dd21,0x4c11ac09,0x9c114d11,0xf30f9e0f,0xa00cf30c,0xe50cf20f,0xaf00b30b,0x7b0b1a00,0x4a1c4322,0x1a0b191c,0x980be80b,0x8f008f00,0x8e009900,0xdb008e00,0xdb008f0b,0x8f00900b,0x91009000,0x3d008f00,0x890b1e07,0x36001922,0x7d10cd00,0xfc1bc00a,0xf11bc021,0x821bd021,0xcd00350b,0x3310cc10,0x330b8000,0x800b8100,0xcd0b800b,0xcf003510,0x360b8210,0x79002b00,0x7a10ca0b,0x3400300b,0xad10ae00,0xad0b7a10,0x7a0b7d10,0x7210c50b,0x3400260b,0x26003000,0xca003000,0xc60b7910,0x79003010,0x2610c60b,0x26003000,0x3410cf00,0xc810c900,0xc810c710,0xc7002d10,0x2c10c710,0xc4002e00,0xbf0b7310,0x220b7310,0xbf10bf00,0xc50b7210,0x73002710,0x2b0b750b,0x2e002f00,0x8112400,0x80e850e,0x8511b20e,0x2b00200e,0x25002c00,0x2810c100,0xc010c100,0x760b7610,0xc20b750b,0x7610c110,0x7700280b,0x7810c20b,0xc410c20b,0x780b7810,0xc300290b,0x7510c210,0x570b730b,0x3b0b8c0b,0x7e008000,0x930bae00,0x3f0bab0c,0x3f043e03,0x3f0bab03,0x7e0c9404,0x950c9301,0xc70bc70c,0x93033e0b,0x103ba0c,0x4b0c3801,0x4d01150c,0x2d01e30c,0x4b01e606,0xb81fd608,0xd71fd61f,0x6f196f1f,0xb8083819,0x6f1fd61f,0x711fb819,0x4b1fc319,0x40196e08,0xb8197108,0x4b196e1f,0x6a096b08,0x6a096509,0x65096909,0xa9096909,0xfc09651a,0x131cfa1c,0xee1cfa14,0x1d15cf11,0x7822850b,0x43228522,0x7822781c,0x891c3e22,0x780b1d22,0x3e228922,0x8c0b201c,0xd30b1c22,0xd30b0c1e,0x6b0b251e,0x8819ac22,0xaf19af08,0x819aa19,0xab19aa20,0x10200819,0x59253103,0xb0064a13,0xfb24c313,0x811bbc21,0xea1bbc0a,0x810a8121,0xfb1bc60a,0xef15f021,0x8d143211,0x6922e316,0xa3064605,0xc212e813,0x52125f05,0x4412f023,0x2a064706,0x741d9c18,0x71117324,0xbb116e11,0x69060501,0xa314da24,0xd5181b12,0x4c1fcd1f,0x4521a408,0x450a420a,0x4221a80a,0x430a420a,0x531b760a,0x84035203,0x6c19be00,0x6d186d18,0xbc1eb718,0xbe201419,0x50186d19,0x4b224c22,0x10224b22,0x1022551c,0x551c171c,0xf3248d22,0x13181314,0x66180918,0x91246624,0x9712971d,0x9e17f212,0x9e12971d,0x1301ae1d,0x97246618,0xa01d9712,0x13248d1d,0xd129718,0xae129718,0xd019b01,0x9b129718,0x8f249001,0x8f129324,0x8f1db524,0xbe1db512,0xca14ca12,0xd601a014,0x93183901,0xb180a24,0xc14f418,0x9f180c18,0x9f180b01,0x39128d01,0x9f180b18,0x8d180a01,0x14181012,0x65181006,0xa061424,0x39019f18,0x14128d18,0x14247806,0x78061206,0x78128d24,0x1212a124,0x13129d06,0x9a129d06,0xc3129f1d,0x8d060014,0x8d14c31d,0x39180e1d,0xa1128d18,0xc31d9a12,0xc3181414,0x14180e14,0xa21d9218,0xa2128e01,0x8e129001,0x90128e12,0x9d060612,0x13129f12,0xa1183906,0xd6061612,0x8a183901,0x39128a12,0x9012a218,0x617e712,0xd317e706,0xd3060714,0x71d9814,0x6060706,0x8f17e706,0xa8128f24,0xca1db501,0xae128f14,0xcf247301,0x97248e14,0xe248d1d,0x671d9218,0x8e1d9224,0xd246712,0x8d248e18,0x15019b24,0xa0019c06,0x9b248c12,0x1a129c01,0x1012a018,0x9c14d106,0xd214cf12,0xaf061014,0xd247101,0xcf247106,0xd249014,0x90247106,0xd4060e24,0xd01af01,0xaf060e06,0x1014cf01,0x1012a006,0xa0129c06,0xea01a812,0x93129317,0x90060d12,0x9c019b24,0xcf180d01,0x9b12a014,0x9301a801,0x9d248f12,0x8b14c401,0x8e14c412,0x8a128b1d,0x8e128b12,0x8e128a1d,0x8e01d61d,0xd6128f1d,0x7a1d9f01,0x1612a224,0xa21d9f06,0xb701b612,0x1612a101,0x3912a206,0xb6247818,0x9512a101,0xf01ac1d,0x12247806,0x95060f06,0xa7060f1d,0xf01a701,0x1d14d506,0x1214d518,0xd5061206,0x13060f14,0x12181d06,0x9b14cf06,0xd01ae01,0x13248d18,0x67180e18,0x14181424,0x9a181818,0x7314cf1d,0x98249024,0xb217ef12,0x98129901,0x9901b212,0x1101b212,0x99181b06,0x1b061112,0x9a061118,0x9f06111d,0x8f1d9a12,0xd614ca12,0x181d9a01,0x2614d018,0xee1efa1f,0xbb0abc07,0x2f222e0a,0x2a16bb12,0x530aec12,0x53225222,0x52225422,0xeb225222,0xeb1c150a,0xe61c190a,0xec1c150a,0x1e22520a,0xcb17fd06,0x9f049714,0xa8258904,0x7b177904,0xab04a817,0x9725a304,0x9c177325,0x9d049c04,0x98259704,0x9204ac25,0x9e180225,0x25247912,0x2220611a,0xc080d1a,0x5f1f7d08,0x10146214,0x2b11bb23,0x961cd905,0xbf089a08,0xc3089a19,0x319bf19,0xd0184a07,0x9b184a1e,0x531ed018,0x58184707,0x87184707,0x8707581e,0x5807031e,0xba010107,0x7a00ed03,0x6904a717,0x6b127817,0xb714a312,0xf8020b13,0x5a12f812,0xc4064e06,0x5a021124,0xba24c006,0xfe24c213,0x8d05bd16,0xcb148d14,0xd51d6202,0xf214e314,0xf712fb14,0x4f064f12,0x24030613,0x68030603,0xa006ce02,0x810baf0b,0x1703d500,0x3d03a10c,0x70013e01,0x390f110c,0x430f430f,0x90f420f,0x6419240f,0x6407f11f,0xf118a61f,0xf218a607,0xc907f107,0xb60cca0c,0x5f1a1e0c,0x7608e920,0x30043101,0x77009404,0x6e0beb03,0xf510f60e,0xd61a0e10,0xf71a1308,0x2211220d,0xbe10af0e,0x25002c10,0xe8167a14,0x960bed15,0x3036700,0xa801fe02,0xf8038413,0x9103990b,0xef0beb00,0x6322a00b,0x521c601c,0xea14af24,0xed1df505,0xc402141d,0xc116f702,0x5a05bd05,0x5a125b12,0x5b02c312,0x801d8412,0xec1d4823,0x1f08e808,0x3e25321a,0xc03101e,0xf100e10,0xf6100e10,0x6010150f,0x15100e0d,0x510d6010,0x80100e0d,0xab137013,0xad21ac15,0xad0a4621,0x790a4721,0x7c0a471b,0x891b791b,0x6009611a,0xd9096009,0x5e095e20,0x891a8c09,0xc4160d1a,0xcc144d23,0x6812ce12,0x33156815,0x33063313,0xc413f513,0x3306331d,0xca1dc413,0x1024dc13,0x50238313,0xc12591d,0x94004400,0x9251f0b,0x9157903,0x79135103,0xae135115,0x28157906,0xbc162916,0x2e162916,0xbc16bc12,0x2823e916,0x4a0c4b16,0x7a01130c,0xfd157b15,0x7d157b02,0xaa02fd15,0xe804e717,0x4520d204,0x23094809,0x3e1ea81b,0x1e213e21,0x2a213f1b,0xf00ab722,0xf21bf01b,0xf71bf81b,0xf0222a1b,0x9520d21b,0xdf1a961a,0xe21add1a,0xe21adf1a,0xe209a71a,0xa71ae31a,0xe509ab09,0x1109a71a,0xd009cc1b,0x581b9009,0x740a740a,0x901b970a,0x2a216b1b,0x20a280a,0xdd24f01e,0x824f113,0x202371e,0xf113dd1e,0x9023724,0xf424f41e,0xf11e0224,0xc11bba24,0xc11bb51b,0xb521f21b,0xde21f21b,0xb80a7a21,0x75001710,0xd812610b,0xa235d02,0x350f360f,0xb411f40f,0x6c23ab23,0xaa11e916,0x7c0b7f23,0x7c10ac0b,0xad0b7d0b,0xcc12cd10,0x69063312,0x65116611,0x5a116611,0xa60e4711,0x4321a521,0x9111a40a,0x6c0ddd0e,0x66236012,0x931a9412,0xbc09551a,0x1f05bb05,0x5a241f24,0x3405bc12,0x2a123d16,0x3d232a23,0x2c164316,0x2b00f80c,0x1005d90c,0x4d127617,0x5c258317,0xa625a717,0x52259a25,0x5302bf12,0xf7128612,0x74238902,0x6c20a91a,0xeb01a91a,0xfe129417,0x61158002,0xaf1a7502,0xaf1a6b20,0xa41a7020,0xaf1a6b20,0x70092e20,0x301a771a,0x661a7709,0xa51a671a,0x671a7720,0xa51a771a,0x311a6920,0x7520a709,0x311a6b1a,0x771a7509,0x301a691a,0xaf092e09,0x5020a420,0xa134c13,0x1134c03,0x1030a03,0x4702ff03,0x7522d113,0xa115e316,0x2311d823,0xeb11d814,0xeb14231c,0x2315e51c,0x511c7914,0x9c1c7c18,0x9a1edf1e,0x601edf1e,0xa51e9a07,0xa607f218,0xa618a518,0x8f076018,0x5d1bd10a,0x8c185b18,0x330a8f0a,0x78043204,0x79043201,0x3a017801,0x9a079907,0x31043007,0x310c8f04,0x8f017904,0xa70c8f0c,0xff043003,0xf707d018,0x2d1f6818,0xb218b219,0x6818b318,0x600c741f,0xcb041901,0xac13ad1d,0xa218c724,0x22202208,0x9a19c720,0x9d19c707,0x9d079a07,0x9a079b07,0x99079a07,0x99202207,0x22079107,0xf1078b20,0xf118c71e,0xc71f081e,0x8b079118,0x41202207,0x4163516,0xbb0bf424,0x7800d500,0x52117211,0x2d05620e,0x2d168a14,0x8a22db14,0x971ff116,0xb2086e19,0xac19db08,0xad19db08,0x4a08ac08,0x724b606,0x51dcf02,0x491dd302,0x613af06,0xdb0b5202,0x330b8710,0x84070407,0xa50e8022,0x3f112d11,0x5194019,0x7b080508,0x7b193f1f,0x3819421f,0xfd22e419,0xd1055d15,0xc123d223,0xbf222f23,0x2f0ad70a,0x60ad722,0xc522441c,0x2f0abc0a,0xbc1c0622,0x8405b70a,0x491d4914,0xbb24141d,0xb9241402,0xbb02bb02,0x85148302,0x3c148314,0x85148523,0x3d124e14,0xb7124e23,0xb7233d02,0xbb1d4905,0xb7233d02,0x2402bb05,0x8d072e0b,0xb70c4022,0xb803b803,0xfe03d403,0xaa000c03,0x5b004e10,0x80007f00,0x9c0a3700,0x9c1b7121,0x71219521,0x2e21951b,0xb11b710a,0x370a3621,0x6b21920a,0x6b21931b,0x931b711b,0x930a2d21,0xb11b7121,0x710a3721,0x50040f1b,0xf041101,0x4f041104,0xd0c7501,0xbb040f04,0xce0cc70c,0xb70c400c,0xeb00eb03,0xfe03d400,0xa712e903,0x6c13a813,0x5118d0e,0x92118d0e,0x920e0511,0xd110311,0x9305560e,0x14166523,0x59101610,0x1c10160d,0x590d5810,0x5810160d,0x4b014a0d,0x4c014c01,0xf014d01,0xd040f04,0xd2014a04,0x2a0d6f0f,0xdc240c10,0xdc164a16,0x4a124816,0xb164a16,0xb240c24,0xc16dd24,0x351d4124,0x3516dd23,0x1614ee18,0xad138c06,0xde018815,0xdd0d200f,0x210d200f,0x210d1f0d,0x1f0fe30d,0xd525d20d,0x4c25d325,0x31124512,0x44124523,0x31232912,0x29124523,0x680bb223,0x3c0bb100,0x1c0d1d10,0xa01cdb0d,0xa0166023,0x60239e23,0x61239e16,0x61140816,0xdf141916,0xd2141915,0xd311d311,0xe911d211,0xde11d21c,0x8c239b15,0x6f11d423,0x1e15e016,0x1e054014,0x9b053f14,0x1e054023,0x3f239b14,0x9b22ce05,0xde239b23,0xda054015,0x9016a723,0xea023f05,0x8a068a13,0x3f155506,0x5b155502,0x28132815,0x3f155c13,0x6f14a402,0x4b170d1d,0x36233812,0x38233623,0xb305b323,0x36240e05,0x7e240e23,0x7e233614,0x321d3f14,0xde233223,0xcc147e16,0x491a0b08,0x8c159120,0x16252d15,0xec12ed15,0xb4150d12,0x4424ad24,0xf081019,0x14251308,0x4601e225,0xc323c214,0x24153b23,0x8124dd02,0x7f20ba1a,0xd025441a,0x1d026906,0xcb027d03,0xa41e5b06,0x5f1e5c15,0xa601801e,0x7415ae15,0xe81e7c13,0x71137d06,0xd515a813,0xa306e706,0x661a6720,0x8606d91a,0xd9137301,0x5e1e5f06,0xaf018a1e,0x6506dd15,0x5f15a41e,0x5c01871e,0x8c15a41e,0xdc15ad01,0xdc06dd06,0x5d1e5c06,0x5f15a51e,0x7c1e611e,0x7c136d13,0x81018513,0x5e018501,0x7701811e,0x7161205,0x5c1e5a16,0x9b06dc1e,0xb8036300,0x5e00b800,0x5e0bde03,0xde00bf03,0xc200bf0b,0xc2035d00,0x5d036100,0x98036103,0x98009700,0x970be800,0xe60be800,0xe600970b,0x970be50b,0x9b008d00,0x9b036000,0xde00b800,0x9b0bda0b,0xdd0be400,0xda03600b,0x920be70b,0x920bda00,0xda0bdd00,0x9b03600b,0xe10bda00,0xdf00960b,0x9703610b,0xe40be100,0x67009b0b,0xe3036703,0x670be40b,0xde009b03,0xe103610b,0xe1035d0b,0x5d0bdf0b,0xf91af703,0xc31ec31a,0x4507491e,0xc6074907,0x2b07451e,0xc31af721,0x3e1ec01e,0x3e1ec307,0xc3212b07,0x451ec31e,0x1c1ec207,0xb910c400,0xc510c410,0x4d10b910,0x7c11df05,0xc904c616,0xc625ba04,0xc525ba04,0xb804c704,0xb8178625,0x8604c425,0xc604c417,0xbc04c504,0x86178504,0xc504c417,0x5104bc04,0xfa22fb14,0x8c05c422,0xd41d5914,0xc525d225,0x15154017,0x15131313,0x13022e13,0x3722f013,0x3722f814,0xf8121114,0x771e6322,0x8506f11e,0xbf06ef13,0x8706e915,0x601e6013,0xe9136d1e,0x81136d06,0x8106e901,0x9915a601,0x8815a601,0xa7019913,0xbf136e15,0x62136f15,0xa7136e1e,0x8306ef15,0x7206ef13,0x7213831e,0x8406e41e,0xed138313,0xed1e6e06,0x6e019806,0x841e721e,0x71138313,0x8315a71e,0xe21e6e13,0x63138306,0x7606d41e,0x801e791e,0x801e5b01,0x5b15a501,0x5d15a51e,0x5b1e5b1e,0x8b1e5a1e,0x7f1e5a13,0x8b15a301,0x7a15a313,0xa31e5a1e,0x7a138b15,0x8a15af1e,0xf2138b01,0xf21e5b06,0x7915c006,0x8a1e7a1e,0x7e138b01,0x9715bb13,0x97137e01,0x9715b901,0xb9019401,0xc1138c15,0xc115b815,0x8915b915,0x96019101,0xb8138c01,0x8c019115,0x9415b913,0x891e7401,0xc115b801,0x7e15b415,0xb915b913,0x8815c115,0xa3138c01,0x3606dc15,0xa112d306,0xee12d324,0xa124a101,0x3601eb24,0x3712d206,0x3724a006,0xe8150806,0x3724a001,0xc501e806,0xeb06361d,0xa012d201,0xed01ed24,0xeb1dc501,0x94123301,0xd16b705,0x971ace21,0xe51ace07,0x97079718,0xd1f1107,0x8e1f1121,0x8d078d07,0x11210c07,0xd7179a1f,0xbd17a225,0xa915ab15,0xae1e6c15,0xea138e15,0xab137006,0x8515aa15,0x87138801,0x84137c13,0xe3137a01,0xb6138406,0xec137a15,0xac06d606,0x5c019515,0x23148912,0x1f148924,0xd5242324,0x4211d115,0x65238f05,0x6522c216,0xc2239316,0x62243322,0x2e242e12,0x33242f24,0xcb242f24,0xd7126905,0x4a22d211,0xa122d205,0xa1054a23,0x4a1cf223,0xa0058205,0xd41d1816,0x144823,0x9e230023,0xa61d1816,0xe216b316,0x3023ed23,0x8b230e12,0x88035800,0x46148c00,0xf0241b23,0xcd1d5216,0xd9051702,0xd90f2217,0x2217d817,0x1417d80f,0x24260d05,0xc40f1e0f,0x1d0f1e1c,0x1d1cc60f,0xc61cb80f,0xbb14831c,0x5316e702,0x6c047a17,0x7224f404,0x721e0206,0xf0154406,0x1c154424,0xff1dff13,0x4424ee1d,0xf024ee15,0x7d154424,0x5c1e9f07,0x59185c18,0xf21eef18,0x5c077d1e,0x8f1d0918,0x6a15fc16,0x8f049017,0x8e049004,0x8e048a04,0x8a258f04,0x8c048a04,0x68176804,0x8a048d17,0x69048d04,0x8d048f17,0x8a049004,0x6c231c04,0x6c240314,0x316d414,0xa502e024,0x3f170814,0x8d141e05,0x8f0e8b23,0xb511b50e,0xb40e8e11,0x8c11b411,0x910e910e,0xb411000e,0xeb110011,0xeb11b510,0xb50e8b10,0xe00cdb11,0xa10cc00c,0x500a641b,0xc30a500a,0x71ba121,0xa2013a04,0x6b00a200,0x804070c,0xdf0dd811,0xb50b1b0d,0xb50b201e,0x20228a1e,0x940b590b,0x3110e20b,0x105ff18,0xa217fe06,0x2b1d9201,0xaa202d20,0x7200a808,0x7200a903,0xa9037003,0x7f054d00,0x7f23a916,0xa9142716,0xd8142723,0x4023a922,0x300d3f0d,0xee0d300d,0x860d400f,0xae12b724,0xab182f01,0xf124791d,0xe3248217,0xb2061114,0xd301bd01,0xdc12a914,0x11129f14,0x1817fc06,0xe061706,0xde11d618,0xc115e215,0xc07c307,0xc5069507,0x9601ed1d,0x780bed00,0x9918d103,0x2c073a07,0x60209d09,0x6a209d1a,0xb209c1a,0xc31a031a,0xd306d208,0xd306b806,0x28028506,0x29196225,0xb11f9808,0xb321b221,0x8321b321,0x831b841b,0x4b21b41b,0x831b840a,0xb40a4b1b,0x4b1b8521,0x3108370a,0xe71fbb08,0xf019ef19,0x9023719,0x91e071e,0x724f41e,0x224f41e,0x71e071e,0x371e011e,0xfe1ff902,0xb31fff1f,0xb2200e19,0x6901e019,0xd6156e15,0xd115e111,0x55204a22,0xbc205720,0x251aee09,0xed1aee21,0x2521251a,0xbc1b0c21,0x6d08fa09,0x6f1a3120,0x381a3920,0x70a2d1a,0xfd1b470a,0x32143411,0xfa143214,0xfa11fd11,0x8e168d11,0x6f0dea16,0xb711930e,0x44026506,0xa71aa613,0xf41aab1a,0xb4020d12,0x4d020d13,0x4d13b306,0xb3020a06,0x14217713,0x9c0a340a,0x5409511a,0xb2134909,0x23252306,0xb4158325,0x7f21ae06,0x2a21af1b,0x81afe21,0x61afe07,0x8070807,0x6b1ea607,0x8212a1c,0x6b1c6b07,0x2a189e1c,0x95189e21,0x951afb18,0xfb074b18,0xfb189e1a,0x70212a1a,0xe41aa809,0xaa21e020,0x970a6e1b,0x6120a420,0x3020a41a,0x9d1a6109,0xd1139c13,0xc412d112,0x2e1dc31d,0x71b490a,0xee24b00a,0x7f064312,0x481eca19,0x92074807,0x92197f18,0x7f074a18,0xfc1af619,0x671aef1a,0x82174625,0x3225ff04,0x50045117,0x581b4e1b,0xe519e921,0x119e219,0x8f218c0a,0x1f0a2121,0x20217c0a,0xa20e0111,0xae04a111,0x3425a704,0xdb19dc20,0xb0203119,0xb008b808,0xb8202e08,0xb7202e08,0xb808b808,0x3108b908,0xdb203420,0xe0203119,0x3419e119,0xe019df20,0x34203419,0xdf203120,0x3523ef19,0xc4231812,0xd91bae21,0x5721be21,0x5721d50a,0xd50a730a,0x880a8021,0x700a870a,0xa31ba20a,0xf607f51b,0xf607f907,0xf9193307,0xe51bb407,0x6021cd21,0x871b9b0a,0x4d0e541b,0x4d0e330e,0x3511570e,0x250ac00e,0x3b222622,0xcd223a22,0x31c0e0a,0xd50ad51c,0xe222420a,0x3c08bb0a,0x3c19f320,0xf4203d20,0x3c19f319,0x3d19f420,0xf419f620,0xf219f319,0x8908bb19,0x50e6c0e,0x30e050e,0x30e890e,0x8811b00e,0xa421a20e,0x3a1b7621,0x3c239205,0x67239205,0x3f22cd16,0xb622b90b,0x6922b622,0x691c8318,0x8322b518,0xb71c831c,0x440b3f22,0x3d1cd50f,0xf080f,0xff0eff0f,0x60efe0e,0x20efe0f,0x20f140f,0xa1c9c0f,0x71c9c0f,0x71c9a0f,0x991c970f,0x990f071c,0x61c9a1c,0xff0f080f,0x60f140e,0x9c0efe0f,0x9e1c9a1c,0x9e1c9c1c,0x950f0a1c,0x20f141c,0x931c920f,0x930f031c,0x960f051c,0xa0f021c,0xa0f150f,0x151c920f,0x920f150f,0x150f031c,0x21c950f,0x961c930f,0x960f031c,0x980f051c,0x110f0f1c,0x111c9b0f,0x9b0f090f,0x960f091c,0x141c981c,0x121f8308,0xaf17b108,0xaf25f317,0xe417a817,0xaf25f304,0xce04e417,0x880ed00e,0xd00cc02,0x1c03930c,0xf5125d24,0xd711bc16,0x9611b71c,0x6d22c823,0xd622c816,0x6d054215,0x6c153e06,0x29153e06,0x68066c02,0x22026502,0x5b046303,0xf7046125,0x3c120622,0x32045114,0x1b045317,0x19261a0f,0xc9142a0f,0xf15d722,0x171ca40f,0xff144a0f,0xb7169522,0xad001310,0x1d186110,0x1d20b907,0xb71ea507,0x1d20b920,0xa520ba07,0xb707281e,0x63046720,0x95256125,0x3d0f3e1c,0x811b820f,0x7e1b7e1b,0x7d21ae1b,0xb51a7a1b,0xb520b620,0xb61a8020,0xc5002a20,0x3d10c610,0x731b720a,0xa501b91b,0xa401a401,0x21246b01,0x4f055618,0x4f22c405,0xc415d705,0x4e16eb22,0xf916ea1d,0x3722da1c,0x84118505,0x63118311,0x5a0e4711,0x83118511,0x5b116311,0x680e580e,0x850e5811,0x68116311,0x630e5811,0x800e4411,0x5a0e5b11,0x63116811,0x82257111,0xef258325,0xbf15d815,0xfe242b11,0xfe235516,0x55243116,0x1235523,0xad242b17,0xe6237314,0x7814af05,0x3617121d,0xba1fb908,0x2f002b1f,0x2b002e00,0xca0b7900,0x7210c510,0x3000260b,0xad003400,0x730b7510,0x8210c40b,0xce00360b,0x3610cd10,0xca0b8200,0xd825c825,0x3510cd25,0x35003100,0x31003200,0x33003200,0x84003100,0xdf0d1c0d,0x3e0fdf0f,0x610d8410,0x620b2f1c,0x9a1c621c,0x9a1c6122,0x6c22a222,0xc41d8e1c,0x9c01b814,0xb5182a1d,0x91181612,0x6b12b612,0xbc083719,0x3c08371f,0x71fbc08,0x5080408,0x9080408,0x91f7b08,0x7b194108,0xf312b81f,0x6817f217,0x8200350b,0x4a00470b,0x4a004900,0x4c10e600,0x4a004900,0xe6004c00,0x3710d210,0x8710d200,0x87003a0b,0xd5003e0b,0xd50b8710,0xd2003a10,0x37003a10,0x46004800,0x49004700,0x47004800,0x3710e600,0xe610e800,0xe710e810,0xd010e810,0xd010e710,0x83003810,0x4c10e70b,0x7710e600,0xec23bf05,0xe31d2322,0xb316b323,0x2316b216,0x2116b21d,0x21230b1d,0xb16b51d,0xb223e523,0x291d2116,0x980b280b,0x600b2822,0x9822981c,0x2a229922,0x45218e0b,0xa90a021b,0xad247f12,0xdd12b112,0xb112ad14,0xb2182412,0xc5182612,0x2612b201,0x8214e218,0xe3248324,0x86248214,0xa614e724,0x6609641d,0x9f095609,0xa720db1a,0x6220db1a,0xa71aa909,0xa920db1a,0x5320d51a,0xd520e409,0xa820e420,0x6420e31a,0xa6095609,0x9f20e31a,0x5620e31a,0xd51a9f09,0xe51aa820,0xe520d520,0xe5095c20,0x5c20e220,0xa61aa709,0x5c1a9f1a,0x6320e209,0x5c096209,0x62096309,0xe6096309,0xa9096520,0x9621a,0xe5248518,0x45232f14,0xab05a616,0x8e128f12,0x6c00161d,0xda10cf0b,0xbf1db701,0xe1a4a12,0xe1a4809,0xf208509,0xe1a4809,0x48090f09,0x4a09111a,0xb912ae1a,0x2617e212,0x231a211a,0x221a231a,0x4420611a,0x481e471e,0xee20381e,0xc119ef19,0xe601a601,0x39083817,0x21082f08,0x1b16b21d,0x9e248616,0xf014d61d,0xbd1af21a,0x42252709,0x511e5225,0x3e1e4c1e,0x8a14f125,0x5e128d24,0x16191d1f,0x65183419,0x9a181024,0xdb17f81d,0x6b1e7014,0xa215c21e,0xa00cf20f,0x18181f0f,0xae14ce18,0x951d961d,0xb902c712,0x26172614,0x221d8617,0xc7062524,0x27060214,0x21db306,0x41239606,0xe1053905,0xdd17e017,0x2117de17,0xad0f2905,0x531e8d18,0x8a068c18,0x8a023c06,0xe7250206,0x5613e713,0x56023c15,0x38023a15,0x56023c02,0x8a023815,0x3c13e706,0x8b023c02,0xf9068c06,0x38132024,0xac1ed402,0x3618e807,0x1a069c13,0x22069c25,0x9d069d1e,0x5813fc06,0x9d069c02,0x36133c06,0x24251a13,0x181e271e,0x1a1e2425,0x3c069c25,0x58069d13,0x9d251902,0x3c251906,0x561eeb13,0x66070b18,0x8d1e8a07,0x1418181e,0xce01aa18,0xcd01aa14,0xe022d414,0x21142111,0xd4054814,0xf1054822,0x2814261c,0x26054814,0xdf1cf114,0xf1054b11,0x24054b1c,0xd4142814,0xed054822,0x98060717,0x5102c41d,0x9d23431d,0x7501b51d,0x1c17f024,0x5601b518,0x6207e01f,0xb3129a1f,0x914d301,0xa914cd06,0x32075801,0xdb18e91f,0x9164816,0xda240924,0xda16db16,0x34147c16,0xda16db23,0x7c233416,0x48164a14,0x5f1fa812,0xb41fa619,0x40083f1f,0x62082908,0x34082b19,0xba083508,0x1924e41f,0x1924e513,0xe5067713,0xd5067624,0xd524fe13,0xfe1e0c13,0x76067724,0xe524e506,0xe413d824,0x4f076524,0x8720cd09,0xdc0a890a,0xcb22091b,0xcd1bcd1b,0xc81bc51b,0x9e0f0a1b,0x980f371c,0x12201608,0x440b9420,0x440b9300,0x93004d00,0x45004d0b,0x450b9300,0x9310e300,0x9510e30b,0x930b930b,0xe010d40b,0x9410e210,0xb0b930b,0x92089820,0x9d0dbb08,0x160f4d0c,0xa10d190d,0xa00d190c,0xa00ca10c,0x540c990c,0x540ca00f,0xbb0ca10f,0x160f4d0d,0x11fc0d,0xa1169212,0xab19d408,0x78084a08,0x78084919,0xc3084b19,0x481fc31f,0x92084908,0x9412bf13,0x2408e124,0xf81a251a,0xfb1a2e08,0x6e1a3d08,0xf5207320,0x7d07701e,0x44077020,0x10207d1a,0x4b1efd09,0xf51efd1a,0xf51a4b1e,0x43207d1e,0x6722a11a,0x670b331c,0x331c6c1c,0xae20ab0b,0xad20ad20,0x6f1a7620,0xf05911a,0xf16b123,0xb1231123,0x661aae16,0x1c096409,0x901ea1e,0x5b101715,0x5b0d5d0d,0x5d10150d,0x560d5d0d,0x880d620d,0x207011e,0x48070107,0x7f070218,0x7e183d1e,0x21e881e,0x21e7e07,0x7e06f707,0x5e07251e,0x7e077318,0x56215707,0x56077e21,0x561a4b21,0x43215a21,0x5a1a431a,0xfd077221,0x7e07bd1e,0x101a4b07,0x10077e09,0x7e1efd09,0x4b1a4307,0x6521561a,0x62077007,0x72077007,0x62215907,0x59077007,0x4f076121,0x35076509,0x621f381f,0x611f3807,0x59076207,0x6209f421,0x65076107,0xe4076207,0xe109e209,0xe009e509,0x19214709,0x34159303,0x56253425,0x2c027713,0x703f601,0x121b4b01,0xd0a080a,0xb0a0e0a,0xe0a100a,0x710a0d0a,0x6f0a0b21,0xca008221,0x2d0bcb0b,0xbe005703,0x9c00570b,0x82007b0b,0x2d0bcb00,0xbf0bbe03,0xbf032d0b,0x2d00820b,0x4e0bc903,0x7b0bbe03,0xc90bc800,0x7b00570b,0xe50bc900,0xdf0ae00a,0xfe078f0a,0x6407fd07,0x6318aa07,0xfd078f07,0x92076407,0x8f1f1807,0x791eee07,0x7907b007,0x64079007,0x7907b007,0x90076407,0x8f079207,0x64078f07,0x64079007,0xbc076307,0xcc07bc07,0x6407b11a,0xb107bc07,0x2607b007,0x301eee19,0xb007f31f,0xe107b107,0x641f3018,0xb007b107,0x43216407,0xa921631b,0x70093220,0x64123b1a,0x36123614,0x3a23ef12,0x50084512,0xca1fca08,0xcb1fc91f,0x7c1fc91f,0x7e1fcb19,0x3b183d1e,0x81183b18,0xab1e971e,0x3b07321e,0x88073218,0x3b1e7e1e,0x7e073218,0x45139f1e,0x224b306,0x17151802,0x2f172d15,0xa8172c17,0xf61cf523,0xec1cf51c,0x31cf615,0xca21f822,0x861bca1b,0x2b220a0a,0x54032a03,0xd24b400,0x4112f115,0x4c24b806,0xb3151406,0xeb01f713,0xe024a712,0xa3150612,0xba062b24,0xb90edc0e,0xaf0edc0e,0xd20eb902,0x3e01eb12,0xe71dd006,0x2151612,0xa213a102,0xb31dd513,0xa4064624,0x44064713,0x1212e906,0xd801f915,0xf801ff1d,0xa41b7601,0xa421a621,0xa60a4521,0x7821a821,0xa821a51b,0xa621a521,0xe712ed21,0xa824ab12,0x1063f13,0xf2059902,0xbd16c723,0xee23cc23,0x7a23cc22,0xcc22ee05,0xa12de1d,0x91dd902,0x5d1dcc02,0xa21aa109,0x611aa21a,0x8a1a8a09,0xa209461a,0xde24c51a,0xeb24ca1d,0x42132c13,0x40250302,0xeb132802,0x3024213,0x8c023f25,0x8c132806,0x2813eb06,0x5c132813,0x68023f15,0x48116711,0x610e480e,0x22116211,0xae23e916,0xaf23e916,0xae16ae16,0x2216ad16,0x2616ad16,0x44162212,0xe610d20b,0x6a18b710,0xaf1eeb07,0xe3076c18,0xf1076c1f,0x6308631e,0x641ef108,0xeb18b708,0xe018af1e,0xb71fdc1f,0xe01fdf18,0x6c18b71f,0x61086307,0xb71fdf08,0xe318af18,0xaf1fdf1f,0x4e190518,0x4e07d91f,0xd907d51f,0xd807d507,0x9507d907,0xf811e723,0xcc24ca1c,0x51df224,0x5d152913,0x2f152706,0xc113c115,0x5d130513,0x43074e06,0x43074c18,0x96184718,0x43074c18,0xc9189618,0x16130824,0xcc1def02,0xcc020e24,0xe24ca24,0xc8020e02,0xe130724,0xc2130702,0xc3065f13,0x15021513,0xea130602,0x5b13011d,0x5b152c06,0x2c13bf06,0xeb1df115,0x1002101d,0xcd130102,0x81df024,0x5e24c913,0x5152906,0xc91df013,0x97065e24,0xd605c614,0xec130005,0xc713c61d,0x611deb24,0xc71dec06,0xec13c424,0xb70aa81b,0x1d0aa807,0xbe07b722,0xe618c607,0xe607be1b,0x221bec1b,0x8505f317,0x1502f114,0xe416e324,0x8314b816,0x1d05f91d,0x281d5324,0xfc128817,0x64128805,0xfc05fc24,0x28128505,0x8602f717,0x8605fd12,0x8b128712,0x8605fd23,0x87238b12,0xc214c112,0xc2128714,0xf8238b14,0x85172802,0x8502f812,0xfd02f612,0xf702f805,0x2a24d902,0xc1022b02,0x88246414,0xeb22cf12,0x8d11d81c,0x491b6321,0x5c1b630a,0x640a491b,0x49218d1b,0x64218e0a,0x490a491b,0xb01b5c0a,0x89218b21,0x890a3f21,0x3f218721,0x8b218c0a,0x2b0a3f21,0x910a2a0a,0x290a2a21,0x9121920a,0x920a2a21,0x65219221,0x2921911b,0x6c218f0a,0x921b6c1b,0x3e0a2921,0x870a3f0a,0x6c0a3f21,0x8c218f1b,0x8f0a3f21,0x491b8021,0x4921b00a,0x8a1b740a,0x74218a21,0x4b21881b,0xb11b850a,0xb01b8521,0xb10a3521,0x4b1b8421,0x7121940a,0x710a371b,0x3721b11b,0xb10a370a,0x340a3421,0x6921b10a,0xb11b691b,0x9d219d21,0x8421b121,0xb1218421,0x741b8521,0x850a3e1b,0x870a3e21,0x3e218621,0x8521860a,0x5a0a2821,0x2821841b,0x8521840a,0x851b741b,0x6a1b5f21,0x850a281b,0x6a0a351b,0x741b851b,0x601b5f1b,0x601b741b,0x6821881b,0xb00a351b,0x8a0a4921,0x67218e21,0xb01b681b,0x1322dd21,0xf614421d,0x6b13c81d,0xd6066706,0x424db24,0x2b11290e,0x4e11290e,0xa70e2b11,0xa81ca21c,0x2d08a81c,0x2d19cd20,0xcd202b20,0xcb202b19,0x919cd19,0xce22cb14,0x3d15d222,0x5c141605,0x8005f324,0x2205f31d,0x7b1d8017,0xa71c711c,0xdd01de22,0xdd01ef01,0xd9139101,0x99095b12,0xd5095a1a,0x6b0fdc0f,0xb4142e0d,0x9011f423,0x8f155c06,0xf057506,0xf22f112,0xf1143f12,0x143f22,0x35057012,0xf01f381f,0xc41f3818,0xf01ee120,0xe11f3818,0x9020c41e,0xe11ee11a,0xf007651e,0x70076518,0xf018b907,0xb9076518,0x830a4a18,0x2d1b771b,0x4024213,0x560aed25,0x561c2b22,0x2b225e22,0x5b25041c,0x5b155815,0x66155515,0xd5213c15,0xd51b2509,0x25214109,0x4221411b,0x421b2521,0x25213a21,0x3611141b,0x1e113111,0x4816cb23,0xe8171016,0xb605e905,0x10073a1e,0x88073a20,0x8820101e,0x1007321e,0xb9073220,0x10201019,0x7d1eb720,0x60126718,0xda14a223,0xfe18c507,0xfb18c51e,0xfe1efe1e,0x5e19851e,0x1c079608,0x5e07da1f,0x96198a08,0xfe07da07,0xea07961e,0x8c068a13,0xc6149006,0x4a16ed02,0x19067a15,0xe6067a13,0xe6131924,0x19067724,0xe4131913,0xea154a24,0x29023f13,0x5c023f13,0x29132915,0xea13e913,0x941fe513,0x941fe719,0xe7086d19,0x1a1e141f,0x2515641e,0x9091509,0x4f091509,0x2909091a,0x46069013,0xcc0a7c15,0xf921f91b,0xbb1bc921,0xdd1bc91b,0xe71bbb21,0xf90a7c21,0xe6155321,0x1d13e513,0x5808e01a,0xdd205820,0x641a1908,0x3a046304,0x1c0dfb17,0x1c0df611,0xf6111811,0xfe0df60d,0xfe11200d,0x200e010d,0x1d069511,0x4525141e,0x5e174417,0x39255c25,0x83045e17,0x86258225,0x7f175b25,0x7b258425,0xa31ffd08,0x601cb19,0xb3060706,0x93259504,0x510b4b25,0x6a10da0b,0xc3156915,0xd30f8012,0xd30cac0c,0x630f7d0c,0x1625170f,0x6a156925,0x17024a15,0x4a024d25,0x97069702,0x4d024b06,0x3f090302,0x3f08ed1a,0x2508ef1a,0x3f08ed1a,0x401a251a,0xe909051a,0x3090508,0xee206009,0x641a2c08,0x401a2c20,0xe920641a,0x40206408,0x6009051a,0x308ea20,0x6008ed09,0x29231620,0x3012301d,0x15231212,0x59125c23,0x3114881d,0x46115e0e,0x71236f0e,0xb405e112,0xb20fb50f,0xff0fb50f,0x970fb20c,0x5509591a,0x360c2809,0x5703cc0c,0x1502e824,0x7905ee17,0x17171712,0xae1cb405,0xb01cae1c,0xb0260e1c,0xad0f1d1c,0xa0f1d1c,0x1d1cab26,0xac1cab0f,0x170f221c,0xd1cae05,0xae0f2226,0xac0f1d1c,0x1d261a1c,0x1b261a0f,0xd05140f,0xaf1cae26,0xae05141c,0x1b0f1d1c,0x1d0f1c0f,0xad0f1c0f,0xaf17cb1c,0xe1cae1c,0xae17cb26,0xad1cb01c,0xb026131c,0xce26131c,0x2f025f17,0x8703061e,0x20026715,0x5106ae25,0x5e06bb13,0xb6252002,0x9e1aa106,0x3909621a,0x9158d1e,0x21134703,0x64135425,0x8714bc24,0x171a521d,0x251a4d09,0x1d234717,0x711c6e24,0x711c6f1c,0x6f1c7b1c,0x2703cf1c,0x4503c20c,0x781c441c,0x401c4422,0x401c3e1c,0x3e1c3f1c,0x8f11fb1c,0xb723b716,0xb0056123,0x39251b23,0x54025413,0x5713fd02,0x1b157402,0x3f025425,0x4102711e,0x3113591e,0x431e4325,0x4225311e,0x3e25311e,0x701e421e,0x471e4502,0x4203d61e,0x420c410c,0x4103d90c,0xc003d90c,0xc00c4103,0x4103c103,0xd0c530c,0xd03d501,0xd503d701,0xd603d503,0x610c5303,0x121e4a13,0x7b136203,0x61253702,0xb000ae03,0xef14b400,0xa61d7f02,0x76129c1d,0xcd06d024,0x7e158706,0xba15a002,0x4f16ed06,0x4f1d561d,0x561d581d,0x4b159d1d,0x2e15991e,0x34135625,0x7b157d25,0xad134115,0xb602ae02,0x110f390e,0x900f0b0f,0x8f09501a,0xcb09501a,0x251a8f20,0x2423121d,0x30231216,0xa9162412,0x87028d02,0x870ecf02,0x5d029002,0xe5004b0b,0xa11f9f10,0x2119581f,0xdb16b51d,0xe516b523,0xc23db23,0xaf180606,0xb01daf1d,0x9617ed1d,0xaf060c12,0xad1dae1d,0xad060b1d,0xb18331d,0x94183306,0xcd060b12,0xcd12bb01,0xcc12bb14,0xcc14cd01,0xcd01a901,0xe91da614,0xc3181a14,0xa1246901,0xf4182f01,0xe217f317,0x47214909,0xe3214921,0x17214709,0xe109d21b,0x17214809,0x2d09e11b,0xe009ec1b,0x4809ec09,0xcd09e221,0xe01b1309,0x2d1b1309,0xec09e01b,0x4709e209,0xe1214821,0xdf09e209,0x731d9914,0xa317e724,0xe212ad1d,0x150c4d03,0x170a2301,0x230a150a,0x810a150a,0xf0a1521,0x7f21810a,0x48218121,0x571b481b,0xc217f1b,0x8121700a,0x48217021,0x921811b,0xc6152e13,0xf30fa024,0xf30cf50c,0xf50fa50c,0x5a16ef0c,0x1f16f71d,0x8b125a24,0xbd125a14,0xcc148b05,0x5116ee02,0xc9148f1d,0xfc1d5402,0xfd055d15,0xe00c4815,0xb803e103,0x5d157c06,0x5f025d02,0x8d134f02,0xd102d314,0xf602ce02,0xf602d216,0xd2148f16,0xc0148f02,0x5b02d205,0x6116fd1d,0x9302d71d,0x581d5814,0xd705be1d,0x8c05c402,0x571d5714,0xd01d591d,0x23125c02,0xfd05c524,0x94149116,0x5d149114,0x94242a12,0x2a149114,0x4c125c24,0x8c1d5f23,0xf805c314,0xca16f916,0xca234b02,0x29242402,0x24242924,0x24125e24,0x5e1d5624,0xcd05bf12,0x5d16fa02,0xfb05bf12,0x5c02cb16,0x5c02d31d,0xcc02cb1d,0xc102cc02,0xbe05c205,0x92148e05,0x49148e14,0x5f242823,0xc105c212,0xf705c105,0xf7125f16,0xcf1d5a16,0xf61d5a02,0xcf02ce16,0xf7125f02,0xfd1d6116,0x21d6516,0xc305cc17,0xc5034b05,0xc5011a0b,0x46011b0b,0xc605cb0c,0xd605d605,0x6705c605,0xc905c612,0x67126605,0x6605c612,0x3805c912,0x38149c24,0xdb235124,0xca235102,0xca02db05,0xda235405,0x56235402,0x5602da23,0xda02d923,0x3c193b02,0xae18ae19,0x3a18aa18,0x1193a19,0x30193b08,0x36149924,0xcf05d224,0xd602d605,0x705cc02,0x205cc17,0x7170817,0x805cc17,0x68243217,0xcd149e1d,0x5805ce05,0xce235823,0x6505c705,0x5202d512,0x2d235223,0x2d235924,0x6402d424,0x2d235912,0xd4126424,0x641d6902,0x6914ab12,0x6905e023,0x9602d41d,0x97149614,0x62170414,0x961d6912,0x3243914,0x671d6717,0x9d24321d,0x58170114,0xd502dc23,0xd3126502,0xde1d6c05,0x4102d802,0xd0236324,0x61196305,0x381fac19,0x6c05d724,0x6a127212,0x9e244223,0x681c6b18,0x69229d1c,0x9e1ed71c,0x9d1c6818,0xad149f22,0x5d237614,0x2e008100,0xe5236e0c,0x60236a05,0x64036203,0x1d1d8303,0x1d05f517,0xf505f217,0x2205f205,0xee05f517,0x4302c316,0x6d236c23,0x6d05f023,0xf014ab23,0x5b14ab05,0xf005f024,0x6c05f105,0xb6036323,0x150bf200,0x1d0c180c,0x18011d01,0x2f0c160c,0xa1146816,0x2e146805,0x2e146d16,0x6d163016,0xb024c314,0x16020613,0xe80c140c,0x22065f03,0x1e1de415,0x5d241c24,0x91125d12,0x1e241e14,0x48233423,0xc16dc12,0xc16ca24,0xca233524,0x48231e16,0xfc16dc12,0x54152101,0xe5152306,0x7f1deb1d,0xbd05b812,0xa3235f02,0x8f127714,0x99119a0e,0x22012111,0xdd03eb01,0x851bc921,0xfa0a850a,0xfa1bb721,0xb721e121,0xbb1bb71b,0xf521dd1b,0x24128402,0x4002c017,0x8002c223,0x8c246012,0x8924611d,0x621d8c23,0x88172524,0xbf128223,0x8d14be14,0x9026e15,0xb9172603,0x8505fb14,0xbe128123,0x62238414,0x86238724,0x8214c023,0xf8246123,0xf81d8a05,0x88238405,0x8612831d,0x821d871d,0xbc128312,0x8905f914,0x8523881d,0xfa14ba1d,0x23245f05,0x5f246317,0x8a1d8b24,0xbf1fc123,0xbf1fc51f,0xc508581f,0x721fc51f,0x721fc119,0x75197619,0xf4238319,0x2d246302,0x4e055005,0xfb154205,0x62066b1d,0xd824d406,0x4e141024,0xc811e405,0xa01e2112,0x8a068c06,0x8a068906,0xe7250206,0x8a068913,0xe713e706,0xd155613,0x8b068925,0x28068c06,0xef03f001,0xbf0c2803,0xbe03be03,0xc303bc03,0x3d0c5c03,0x2f03f20c,0x26152715,0xc6152615,0x2a152e24,0x3d03f301,0x291e370c,0xf4157a25,0x3c0c3d03,0x5012d0c,0x6703f001,0x35133415,0x49133406,0x8f063502,0x30027015,0xf00c6325,0x5b012803,0x7306c113,0x48253302,0x9602731e,0x2a253515,0x75135225,0x3b027602,0x151e3d1e,0xbf14c103,0x314bc14,0xfc013101,0xbf033503,0x810bbe0b,0x9c028202,0x45203f15,0xf5184018,0xb09bc1a,0xc213001b,0xba13ba24,0xc7152313,0x1dec24,0x7e13ba13,0x681e5002,0x581e5713,0xce1e591e,0x83136a06,0x3f06cd02,0x57159e25,0x4503251e,0x24032525,0x4f136b03,0x8425441e,0xa2028402,0x21254015,0x9f159e03,0x581e5915,0x3f1e501e,0xd006cd25,0x4406d006,0xf1e4f25,0x3d05b224,0x4005b21d,0x401d3d1d,0x3d05b01d,0x7905b01d,0x791d3d14,0x781d3e14,0x351d3e14,0x78147816,0x361d3314,0x391d331d,0x351d361d,0xa51d341d,0xd91d3405,0x3605a516,0xa505af1d,0x791d3d05,0xa5147814,0x3616d905,0x3d16d91d,0x6a14781d,0x1e06ce13,0x2206ce03,0x22031e03,0x9d028003,0x69028015,0x69031d13,0x7d254113,0x9f254102,0x9d027d15,0x22031e15,0x1d028003,0x55159d03,0x3001030c,0xd603d701,0x570c1700,0x7a25451e,0x2010902,0x80c5401,0xc40fc20d,0xc30fc20f,0xc40fc40f,0xc50fc60f,0x90fc60f,0xc70fc50d,0x90fc50f,0xa103d60d,0x4f03a003,0xd2032413,0x4e152706,0x2313bc06,0x1222422,0xef22241c,0xef223f1b,0x3f1bfe1b,0x510c8b22,0x51032700,0x27005200,0x29005203,0x99032703,0x2b032a0b,0x9b032b03,0x9b0b990b,0x990b9a0b,0x5400550b,0x2e0b9c00,0x55032b03,0xaf034000,0x7b0ba00b,0xbf15be13,0x390c7015,0xb70c6f01,0x740bbd0b,0xbc0bbd00,0xba00750b,0xb90bbb0b,0x7400750b,0xb90bbd00,0x4700730b,0x470bb903,0x470bba03,0xba007503,0xda13740b,0x6915c406,0x6d034200,0x6e006d00,0x45034500,0x69007003,0x71007000,0x71006900,0xb2006f00,0x6d00690b,0xd9034500,0xd8035b0b,0xd2035b0b,0xd203570b,0x570bcd0b,0xa21a6503,0xa2093520,0x351a6620,0x88093509,0x881a651a,0x2d1a681a,0x2d1a8809,0x4f20a109,0x79085008,0x760c7719,0xd01450c,0x77041004,0x7701510c,0xb104180c,0x7415b015,0xc100ac1e,0x4800c000,0xd307d21f,0xae096607,0xae20e71a,0xe71aaf1a,0x75035f20,0xf900b103,0xf803830b,0x7507f90b,0xfb07fa1f,0xc3008e0b,0xb0009800,0xcc037500,0x9100cd00,0x920c0b03,0xcf00cf03,0xb0c0f00,0xce0c0f0c,0xce00c800,0xc80c0600,0x8a038c00,0xc900c703,0xd300c600,0x1100d300,0x1100c90c,0x8c03980c,0xd4039803,0xd4038a00,0x8a039700,0x8a039803,0x97038c03,0xcb00d103,0xcb039700,0xcf038a00,0xf407ce07,0xcd18f818,0x307d107,0x860bfe0c,0x4c08d103,0x95204e20,0x8d039003,0xc7039003,0xc7038d00,0x8d038a00,0xcb038a03,0xcb038d00,0x8e00ca00,0x691e8c03,0x53190407,0x760e2f11,0x407d711,0xd507d519,0xd61f4e07,0xe5065207,0xe506541d,0x5406551d,0x21065406,0x21065215,0xb813b915,0xd3008e13,0xe2035c0b,0xe10be30b,0x670be30b,0xda0be103,0xe60be50b,0x1809a60b,0x17211721,0xdb1ada21,0x120c131a,0xa10c4901,0xa2194f1f,0x2b192a1f,0x9c07b019,0x200c1503,0x3d1f7a01,0xfa18cf19,0xc11f001e,0x891f0018,0x4718c11f,0xc11f8419,0x471f8918,0xba18c119,0xc11edf18,0x14112b18,0x14114e0e,0xb10e170e,0x8e0e1711,0x1911b111,0xa203280c,0xd703a203,0xd700d800,0xd803e200,0x4c03e200,0x600d80c,0x71e011e,0x21e071e,0x21e061e,0xfd24f01e,0x21e061d,0xf01dfd1e,0xfd24ee24,0xb703b81d,0xb70c2303,0x230c2403,0xef0c260c,0xbb03b900,0xbc00ed03,0xbe03bc03,0xc003bb03,0xf400f303,0xb500f400,0xe600e603,0xf103b900,0xef03b900,0xf100f100,0xe600f200,0xb100f200,0xb100e603,0xba00ec03,0xbd00ec03,0xbd03ba03,0xba0baa03,0xbc0baa03,0xba00ed03,0xc103c203,0x2703c203,0xaa03c10c,0xba00ed0b,0xba03b103,0xc003c003,0xe600f403,0xc003c100,0xa803ba03,0x7f087c19,0x80087f08,0xa9088308,0x2900f60b,0x851c4a0c,0x340b1d22,0xbd0ba703,0x3c0ba703,0xa903bd03,0xaa03c30b,0xaa0ba90b,0xdf03bd0b,0xdd25dc25,0xdb25dc25,0x4425dd25,0xc81f451f,0xf7033c07,0x3200f600,0x3e1fbd08,0x7114cf08,0xd401d424,0xd2060e01,0x591fd714,0x59083908,0x6c1fbe08,0x59083919,0x39196c08,0xd7083808,0xf414411f,0xf4144015,0x40142b15,0xf7142b14,0xf7169715,0x97056415,0x2109b616,0xea1aea21,0xb621231a,0x27212309,0x609b621,0xb709c61b,0x1f09b709,0x609af21,0xaf09b71b,0xaf1b0609,0xe91ae909,0x2709b61a,0xfd00fe21,0xfd00ff00,0xff0c3100,0x5f015c00,0x7015d01,0x5715fc1d,0x3e010005,0x3e0c340c,0x3403d20c,0xd003d10c,0x38010703,0xce0c320c,0x340c3203,0xce01040c,0x40c3203,0xcf03ce01,0x20c3803,0xce03cd01,0x30c3a03,0x303ce01,0xce010201,0x3b010403,0x60c3a0c,0x4010501,0x3d0c3c01,0xd101060c,0x3c010703,0xd20c340c,0x603d103,0x34010401,0x3a01040c,0xd103ce0c,0x60c3c03,0x410c4001,0xc103c10c,0xcf0c2703,0xd303cf03,0x1b0c4003,0x1a013404,0x6200d04,0x6c200b20,0xee1fea08,0xf21fea1f,0xe81fee1f,0xe70ab01b,0xa90ab01b,0x7a1be70a,0xfd1ffc08,0xe114131f,0xe116821c,0x821d001c,0xe30c3e16,0xfa03e603,0xfd203a19,0xc0203a19,0xb6203e08,0x33196e1f,0xb8196e08,0x7e08331f,0x65041f0c,0x2206901,0xfa08f609,0xb1056115,0xec03e923,0x650c5203,0x21041f01,0x163204,0x6a146a24,0x32163114,0xf8163116,0x2716d323,0xd103d001,0x66229c03,0x660b301c,0x301c671c,0xa11c670b,0xa10b3022,0x311ecf22,0xaf19cf0b,0x66203208,0xfa0c640c,0x3203fd03,0x950c5501,0x8210460d,0x580d820d,0x3b0d9410,0x6e040201,0x304040c,0x6013b04,0x3e040804,0x5905db01,0x59126b23,0x6b126423,0x44014212,0x9d016601,0x5813fc06,0x58069d02,0x9c251902,0x9e1e2206,0x9d1e2206,0x24069e06,0x9c13361e,0x3b133c06,0x9e069e13,0x9c1e2406,0x19069d06,0x75069e25,0x1601540c,0x611d6f04,0x61235d12,0x5d170512,0x18041723,0x83041004,0x20c6d0c,0xa11a9e04,0x5d095d1a,0x9e1a9a09,0x9c00a81a,0x40036400,0x1c014101,0xd8079d04,0xd518d718,0x890e6c0d,0xd0202c0e,0x1f08a419,0xe309ab21,0xe21ae31a,0x8709af1a,0x89198a19,0x5e198a19,0x5e198908,0x5b198508,0x1041b08,0x63041a04,0x42014101,0x3b207101,0x211a361a,0x200c6704,0x3b1a3604,0x211a3c1a,0x43014404,0x37133a01,0x156c13,0x7d03ff04,0x2616290c,0x2616271d,0x27230f1d,0xc4079c16,0x751f1b08,0x741ab009,0xeb1ab009,0x43097420,0xda0c860c,0x850c8603,0x8503da0c,0xda0c840c,0x70016f03,0x700c2601,0xb8042c01,0x700c2303,0x5303b801,0xe81d7724,0x271a6305,0x9b20a209,0xec03bd0b,0xd09c300,0x3021301b,0xc3212f21,0x3303ca09,0xa90bad0c,0x6423e316,0x300c8c14,0x620c1d04,0x83118c0e,0x7c00ab11,0x910bde03,0x11089308,0x6c201120,0x6c089118,0x9119be18,0x6106b308,0xc4030302,0xc20cc30c,0x750cc30c,0xc20cc20f,0xb90f6e0c,0xb80f6e0c,0xb70cb90c,0xb80cb50c,0xb90cb50c,0xc40cb80c,0x700cc30c,0x750cc30f,0x700f700f,0x680f6e0f,0xb80f6e0f,0xb70f680c,0xb80cb50c,0x680cb50c,0x720cb80f,0xbf0cc50f,0xb80cc50c,0x7a0cbf0c,0x7d11e116,0xee009216,0x8303770b,0x84093f1a,0x7a0be21a,0xd6037b03,0xdf1c0a0a,0x3f0a3d0a,0x3f1b720a,0x721b740a,0xd223a11b,0xeb141911,0xb720ee20,0xb50ab61a,0xb51bed0a,0xed22210a,0x171bed1b,0x170ab622,0xb6222022,0x31e870a,0x49184907,0xd0184a18,0x9b184a1e,0x471ed018,0x491e8718,0x53075818,0x53184907,0x49184707,0xa6036c18,0xa6036b00,0x6b00a700,0x141c1203,0x1422511c,0xef0af01c,0x1422510a,0xf00aef1c,0x171c180a,0x170af01c,0x110aef1c,0x511c121c,0x65033f22,0x65043c00,0x3c007c00,0xe8139b04,0x3e139c01,0xc70bab03,0x3d0bab0b,0x620bc704,0x1713f015,0x5e1e171e,0x5d155d15,0x171e1615,0x6a12721e,0x1d236423,0x6b111f11,0xf424bc0e,0x2913b412,0x70016d04,0x1008d301,0x10205d1a,0x5d08df1a,0x2308df20,0xdf1a211a,0xe61a2108,0x730f5908,0x3d0dbe10,0x58215b1b,0x2324c221,0x231dec15,0xec24c715,0xf80ac41d,0xb21bf21b,0x2800e303,0x6b00e304,0x6b042801,0xe0016c01,0xe0016b00,0xd8042700,0x721bb021,0xbc083d0a,0xbc19761f,0x7608431f,0x75084319,0x76197619,0x3d1fc019,0x7e1bcf08,0x320a7d0a,0x2d153315,0xb4083f15,0xb51fb51f,0x3e19691f,0x63118208,0x5b0e610e,0xea0af122,0xb112dc0a,0xb101f624,0xf6064324,0x17064301,0x1712dd15,0xdd1dc915,0xc227612,0xc1c340b,0x34226b0b,0x411c041c,0x1e0ae322,0x1d07191b,0xd91b1d1b,0x981b1e09,0x9a22a218,0x8e039622,0x9f00ca03,0x1d03ab03,0x34017a0c,0x680c8f04,0x7e15bb1e,0x6d137e13,0x6d01961e,0x9615b51e,0x91019601,0x801e6801,0x8120bb1a,0x810ce01a,0xb20f6d0f,0xa616b316,0x711ba616,0x711ba80a,0xa70a650a,0x711ba81b,0x2f1ba70a,0xf516c81d,0xa711e223,0x76167623,0xe2142116,0x3118df11,0x3107a81f,0xa807a71f,0x2e123c07,0x66146616,0x9e059a14,0x3c059f05,0xc4146612,0xca146716,0x1e146716,0xca16ca23,0xc405a216,0x1d1d2e16,0x2f23f523,0x1d05a116,0xc81d8523,0x1b125602,0x9b059a23,0x38059b05,0x3823f412,0xf405a212,0xdd235c23,0x691d6902,0x5c12621d,0xc40dcf23,0xfb10f00d,0xf8055215,0x6511f811,0xa7160005,0x9812a812,0xcd0ccc12,0xf70cc30c,0x2b249714,0xc1249706,0xc101de12,0xde139012,0xf6139001,0xde01dd14,0xdd139001,0x2b1df701,0xac154002,0xfb24aa13,0x391e4901,0xf8253825,0x56511,0xbb13c016,0xbd24bd13,0xc0064d24,0xbf152c13,0xbd130b13,0xc113bb24,0xbc12ff24,0x18065a13,0x3d071c1b,0xd6071c21,0xd6213d09,0x1f1b2109,0x4c23021b,0x23058114,0x181b520a,0x130a180a,0x7621760a,0x18217521,0x1621750a,0x180a230a,0x2321750a,0x2321810a,0x150a150a,0x160a230a,0x7f1b570a,0x7f1b4821,0x48218121,0x4821701b,0xc21811b,0x8121700a,0xc0a0f21,0x1721810a,0x9214e106,0x51dd31d,0x5c12f702,0x87258317,0xdf11c725,0x6b11d315,0x9a15b21e,0xd1008901,0x5c03590b,0x2b23ee14,0x1222f016,0xe322f912,0xf1244805,0x121b05,0xba144823,0x2923e116,0x74237512,0x4245223,0x2523dd23,0x8202612,0x819cb1f,0xcb18dc1f,0xdf18dc19,0x7c19cc18,0x9f136402,0xe1179515,0xa317a304,0xc825d817,0xf30df425,0xec0e2d0d,0x7a0dc810,0x7f0dc80e,0xc811a30e,0x7a11a30d,0x4b24070e,0x4c164c12,0x7164b16,0x49164b24,0x49240716,0x7147916,0x2a1f6d24,0x65192919,0x2507f21f,0xa507f219,0xa5192518,0x2518a718,0x120119,0x56516,0x381dbe15,0x981dbe13,0x133806,0xd4247618,0xb0009814,0x1600ad00,0x94141714,0x9f105923,0x19105a0d,0x6302431e,0x18156315,0x181e191e,0x191e161e,0x7707311e,0x76187618,0x31072918,0xa505b107,0xa5147f05,0x7f16ce05,0xb4147f14,0xb205b205,0xb11d4005,0xb01d4005,0xb005b105,0xb1147905,0x46147905,0x9b05b116,0xeb199e19,0x4d05bb1f,0x6d05c523,0x6b186c18,0x3b186b18,0x3b186d07,0x6d188107,0xfd22fe18,0xfd169922,0x9922f722,0x77169916,0xa5169c05,0x9301bc12,0x1901bc12,0xdc060d06,0x66166922,0x9a01b316,0x6501b412,0xb11faf19,0x631faf1f,0x911fb119,0x1250406,0x8250125,0x8069125,0x5f250925,0x60155f15,0x8250715,0x91155f25,0xe723e806,0x59145923,0xe8230814,0x8f1d0923,0x4115fc16,0x421c890b,0xc11a860b,0xe094420,0xa91caa0f,0x6521911c,0x650a061b,0x6e0a2c1b,0x9a22a221,0xdc229f22,0x115f122,0x1a1d191d,0x705831d,0x411290e,0x8711850e,0x6c0e6211,0x2c1b6b1b,0x6f1b6b0a,0x6c21931b,0x650a2c1b,0x941b6f1b,0x93219321,0x6b0a2c21,0x6c0a3f1b,0x8f218f1b,0x291b6c21,0x741b5e0a,0x870a3f1b,0x3f218621,0x5e21860a,0x8b0a3f1b,0x3f218921,0x8721890a,0x8c0a3f21,0x3f218b21,0x911b650a,0x911b6c21,0x6c0a2a21,0x290a2a1b,0xd61b6c0a,0x2510e91c,0xdd11c605,0xca11ce15,0xd1167111,0xce053311,0xd4053b11,0x61238c11,0x4d23d316,0x4d144b14,0x4b121814,0xd3103914,0xf90cbf0f,0x2a04f704,0x2b172a17,0x46044617,0x44044804,0xf9044404,0x67172a04,0x2d0b660b,0xd218cd00,0xd21f0f18,0x3420c818,0xd21f0f1f,0xc80a9f18,0x3420c720,0x351f341f,0x2c1f2c1f,0xd21f2d1f,0x9f1f2d18,0x2c18d20a,0x3418d21f,0xf22131f,0x9f1f0f22,0xf22130a,0x41f0f1f,0xb618cd1f,0xba17b717,0xf817b717,0xfc17ba25,0xf525f425,0xb925f425,0xb925f517,0xba17b617,0xfd25f517,0xfd25fc04,0xfc050304,0x9b0f0f25,0x371ca51c,0x5a255a17,0x3b046404,0x5c255a17,0x38173e25,0x83169d17,0x3d1d1a05,0x5c173e17,0x3f255c25,0x5d255d17,0x3d046225,0x5b046217,0x5b046425,0x64046325,0x3c046404,0x3d173d17,0x5d255c17,0x31044c25,0xbe255e17,0xbd0f2b1c,0xdc058b1c,0x4f161e23,0x62174225,0x45256525,0x66255f17,0x60174125,0x31d1f25,0x49122823,0xd9147f12,0x77147f16,0x77124b14,0x4b164514,0xd8124b12,0xd8147f16,0x7f16d916,0x64046714,0x68046825,0x66174404,0x45174404,0x45256617,0x66256517,0x69256625,0x66046604,0x67256304,0x68046704,0x60046604,0x2f16bb14,0xd1147312,0xd1147216,0x7223fb16,0xfb147214,0xfb232e23,0xce123e23,0xd516ce16,0xcf232e16,0x410f401c,0x9817640f,0x93259004,0xc0c0d03,0x5717500c,0xda048317,0xd30dd70d,0xd50dd70d,0xd310fb0d,0xfb0dd70d,0x4d09eb10,0x4d1b2d21,0x4f1b3321,0x4d1b2d21,0xd4214f21,0xcf242d02,0x6c1e6902,0x4e06f41e,0xe923431d,0x87175b16,0xf0257404,0x5d05bf16,0x5e258012,0x7e258417,0x7b00120b,0x1300120b,0xe30b7b00,0xdd149e02,0x5b149e05,0x1405dd23,0xb11d7917,0x2c024214,0x2c13ec13,0xec024113,0x1d1dda13,0xd013b215,0x8e038d00,0x8004b003,0x7704a217,0x6b235c1d,0xb91bc21d,0xb91bc31b,0x7a0a791b,0x7b0a7a0a,0x7b1bc30a,0xc321f20a,0xa1243c1b,0x82245014,0xc81d5523,0x8225a802,0xb4259117,0xb3178204,0xa8178204,0xb304b125,0xb2178204,0x8104b104,0x8404b217,0xb604b717,0xaa04b704,0xb625a925,0xa904b704,0xb525a925,0x84178304,0x9404b617,0xac178e25,0x8e04b925,0xc304cb17,0xcc25c004,0xcf04c904,0x8d04ce04,0x5b1a9917,0x54095409,0x99095209,0x531d4c1a,0xb805b912,0x9c25ab04,0xfd0e0304,0xfd11b00d,0x840e830d,0xfd11af0e,0xeb0e840d,0x77110010,0x600400e,0x7e0b7e00,0x7c0b7b0b,0x541a530b,0x54091e1a,0x1e1a501a,0x4d1a5009,0x5e09121a,0xb621d20a,0xbd21d221,0xb621b621,0x9b1b8721,0xa60aa41b,0xa60aa20a,0xa20aa10a,0x1322150a,0xa10a9f22,0xa222150a,0xdb17aa0a,0x2325dd25,0xab161912,0xfe06a616,0xce140113,0x981dbd12,0x74061d24,0x89129b24,0xed1dac12,0xc917ee14,0xc5182e01,0x36062214,0xaa01cd18,0x1d181401,0x2c061318,0x79087b18,0xea087508,0x7c1fe61f,0x691fe608,0x7c087f08,0x7f1fe608,0x75087b08,0x7a1ff208,0xf2087b08,0x7c1fea1f,0xea087d08,0x9b087d1f,0x7a1ff419,0xea1ff208,0x9e199b1f,0xf4199e19,0x991ff21f,0x112c913,0xa312d515,0x801ef24,0x9c12d815,0xd101f213,0xda139c12,0xd912d712,0xd2094512,0xaf095220,0xdc168423,0xf011f122,0xaf23ae11,0x11f123,0xfe05561d,0xf211f21c,0x4f168311,0xfc055505,0xfe23ae1c,0x8105561c,0xfb23ac16,0x2a11ee1c,0xb0168614,0xb123b023,0xb111e923,0xaa1d0223,0xef142f23,0x34168011,0x1022ca05,0xe4141014,0x1111c71c,0x10053414,0x2d055114,0x2d1cf914,0xf9142c14,0xff142c1c,0x8922da1c,0x2e23b316,0xf3142e14,0x3d168915,0xb012e406,0xf315f224,0xf311f315,0xf11d0111,0x4e1d0315,0xb223aa05,0x4e11e423,0xab1cf805,0xab23b323,0xb323b423,0xe71cfd23,0xe611e611,0xff22da11,0xdb11e81c,0xdb11ea22,0xea142d22,0x2112c811,0xc402501e,0xe407a819,0xe419c418,0xe418e718,0xe71f2e18,0x1f18e718,0xba19c420,0xeb1f2307,0xe71f2318,0xb407b418,0x3218e707,0xeb07b41f,0x321f2318,0xe918e71f,0x370e1a18,0xf910fe11,0xfb1b3409,0x45147709,0x205b416,0xa050b26,0x9260105,0xc317c305,0x1260217,0xa21dc926,0xe701ec24,0x5129017,0xc9183018,0xe217ee01,0xac12b917,0xc215231d,0x1b1de724,0x6c17e506,0xac088824,0xbf088619,0x971daa01,0x871d9f12,0x8c062124,0xdc15ad01,0x871e5c06,0xd806dd01,0x5f06d906,0x6513731e,0x5c06d91e,0x6515a41e,0xe6137b1e,0xe606e506,0x83018206,0x6106d401,0x8201821e,0x6f1e6201,0x6706d713,0x6706df1e,0xdf15b61e,0xe3137906,0xe31e7206,0x7206e406,0x7915b61e,0xdf1e6e13,0x6e15b606,0xd713711e,0x7206df06,0x7906e51e,0x8306e513,0x71137901,0x7906e21e,0x6e06e213,0x8313791e,0x791e7101,0x8f018d13,0x8d018e01,0xb3018e01,0x8d1e6415,0x8d06db01,0xdb15b301,0xda06db06,0xda06d606,0xd615ac06,0xdf137106,0xa81e6406,0x64137115,0xa806d51e,0xdb1e6415,0x6406d606,0xdd01b41e,0xb312b214,0x8b1e6a15,0x57242601,0x61d5112,0xab060c18,0x8306ed01,0x1f137913,0xd014da18,0x9812aa14,0x1212981d,0x7260805,0x1917d226,0x19260905,0x9051805,0xcf261926,0xb3051917,0xf51cb41c,0x1217d025,0xd60f2526,0x1317d717,0xb9051305,0xb917d617,0xd625f417,0xd325f417,0xd317d517,0xd517d417,0x30255217,0x2217d717,0xcc17df05,0x3517d417,0x1f045917,0xd9052026,0x1f261b17,0x1c261c05,0x1f261d26,0x1e261d26,0x1f052026,0x20261d26,0xce0f7c05,0x230f6b0c,0x22262305,0x24262326,0x24262226,0x2217e026,0xe117e026,0x35262217,0x34139b06,0xe8139b06,0x34063401,0x3512d106,0x99259806,0x99259917,0x9925c517,0x8e25c525,0xad259904,0x9925c604,0xa407a917,0xa40a9807,0x1107ab07,0xa40a9822,0x7c221107,0xb124614,0x9104bc24,0x39176c04,0x961c5b07,0xae075422,0x1b07af07,0x20187a0b,0x4e187a0b,0x790b201c,0xb017131d,0x76171314,0xa014b012,0xb1f2308,0x221f0b1f,0xc619c720,0xb08a019,0x981ff21f,0x981fef19,0xef1fee19,0xeb1fee1f,0x741fef1f,0xe814ac12,0x825ff05,0x425fe05,0xbf050205,0xfa050217,0xff17bf25,0xc225fe25,0xfd25fe17,0xf9050625,0xff173225,0xf917c225,0xfd25ff25,0x6050425,0xbf050405,0x9f050617,0x3008ae08,0xfa223220,0xb60ac31b,0xf219f108,0xf9249e19,0x9139714,0x1408d21a,0xd21a141a,0x7e1a1508,0xf080e1f,0x540a1e08,0x780a201b,0x2d1a2b20,0x3d206e1a,0x33207b1a,0x9f1dc406,0x41dc424,0x4249f15,0x9c139d15,0x1a1cec13,0xd022d014,0x2023a222,0xdb142014,0xeb1cec11,0x761ab020,0x771ab009,0xc4097609,0xc025bf04,0x79257525,0x6e047e25,0xc109441a,0x7090420,0x7b207b09,0x771a3d20,0x631c6020,0x630b2c1c,0x2f1c621c,0xa40e770b,0xf60e0b11,0x5a215509,0x59215521,0xf6215a21,0x56215a09,0x57215621,0x5709f621,0xf609f721,0x32193109,0x3207f919,0xf91f7419,0x301f7407,0x3007f919,0xf51f7319,0xd61c0a07,0x51c050a,0xde22441c,0x3809f30a,0x381b371b,0x3909f41b,0x381b371b,0x371b391b,0x5409f21b,0x57116d21,0x6011600e,0x6d0e4f11,0x4106fd11,0xf21a0120,0x8220f520,0xbc098209,0xba1aba1a,0xf209801a,0xfc112520,0xfc0dff0d,0xf9111f0d,0xa5096c0d,0xae20e11a,0xaf0caf0c,0xae0caf0d,0xae0daf0d,0xcd0fd40d,0xf185e0f,0x281ee807,0x6816bd16,0x2f146814,0xe0162816,0xd9054015,0x650bac15,0xa4033f00,0xac005e0b,0x360ba50b,0x35033503,0x370ba303,0x38033703,0x380ba503,0xa5015e03,0xa8033a0b,0x3b01560b,0x3a006103,0x4009fc03,0xed1b411b,0x2d1d2723,0x161d2d1d,0x16123023,0x301d2923,0xb121b212,0xb1219e21,0x9e1b7121,0x3224321,0x322481c,0x481c0e1c,0x5c217022,0x2c1b621b,0x3314671d,0xc4146712,0x3323ee16,0xbf146712,0x3816c416,0x38162b12,0x2b16c112,0x6716bf16,0xa723ee14,0x4c15ea23,0xe9054c05,0xe7167915,0x631ef11e,0x641ef108,0x8a086308,0x45216821,0x531e031b,0x56155615,0x1513e715,0x213e713,0x15131525,0x3067113,0x2206711e,0xe61e0313,0xdf096520,0xe0096520,0x9720df20,0xe41a9d1a,0x5a1a9d20,0xa520e109,0xe11a9d1a,0x98095a20,0x9809641a,0x6420e31a,0xe6096309,0xe6095c20,0x5c20df20,0x64095a09,0x5a096609,0xe7096609,0x6320e220,0x5a095c09,0xe120e709,0x5c20e220,0x5c20e509,0xe51a9709,0xa51a9d20,0xa820e41a,0x9720e51a,0xd104d71a,0x9117a025,0x941b951b,0xc51b981b,0xa00a5e21,0xa2211309,0xd9211309,0xa209a21a,0x151ad709,0x9f209821,0x9e209e20,0x60092c20,0x9820991a,0xd2209e20,0x1eb91b,0x70a9422,0x731bd822,0xe3096409,0xaa0a6920,0xe21e01b,0x1119b320,0x8f19b307,0x11071108,0xe19b807,0x611fe320,0x61086008,0x5f086308,0x64086308,0x64085f08,0x5f198b08,0x241bef08,0xa10aa122,0xef0aa60a,0x100aa61b,0x100ab422,0xb5222122,0xef0ab40a,0xc10aa61b,0x2f1bf90a,0x301bf922,0x61222f22,0x630aff22,0xb4089522,0xb4200f19,0xf088c19,0x23227020,0x231c2a1c,0xdf11a80e,0xa911a80d,0xa90ddf11,0xe70e8211,0xb005910d,0x18122e16,0x3c1c470b,0xc414de1c,0x53247201,0x8d18721c,0x32153322,0xa5066d15,0xa8211a09,0xda09a409,0xc109a51a,0x321e3e06,0x11253225,0x11253303,0x331e4403,0x64123125,0xf123f114,0xdf22d31c,0xdd22d311,0x7c142711,0xe322d316,0xe3142711,0x3a22d311,0x470f480f,0x541d1d0f,0x32145714,0x6b206c1a,0x6a206b20,0x1f08f920,0xb0161f1d,0xe9125416,0xf0234316,0xc3122a23,0xb4122a16,0xde16c316,0x4702e405,0x18241a24,0x78172824,0x57237723,0x56041524,0xf8015501,0x4a12f312,0x6811c106,0xc11cea16,0x1b141c11,0xde0b9014,0x7e000a10,0x7b17191d,0xd524db23,0xd5066924,0x69021e24,0x3f000806,0xcb0b9000,0xfd1d6505,0x2a149416,0xcb05c624,0x9416fd05,0x41000914,0x8a0b8700,0x4a114b0e,0x5108c911,0x371a1620,0x6114a724,0x7507f923,0x4707fa1f,0x6f244c24,0xb008a923,0xfc19d808,0xc005fb05,0xc424c614,0x9a24c224,0x8c10d110,0xb900ef0b,0xb900f003,0xf00c2503,0xbc00ed00,0xbc00ee03,0xee03be03,0x24014300,0x22042204,0x67042304,0xd610e901,0x2c05261c,0xb911ba05,0xbc1cd711,0x461cd811,0xd4003b0b,0x26153d10,0xe4022802,0x311cdf1c,0x10052d05,0xcb22ca14,0x2d166211,0x2e166205,0x2d052d05,0xcb22ca05,0x6c238d11,0xc3052d16,0x83077318,0x6f077307,0x77078307,0x76078307,0xff078307,0x9d07761e,0x2308a007,0x9d00041f,0x2000210,0x980b4400,0x5f0b4410,0xa710980b,0xa6109910,0x9a109910,0xa60b4c10,0x3109910,0x460b5700,0x460b560b,0x540b490b,0x40b4a0b,0x98000200,0x20b4a10,0x970b6100,0x10001010,0x5f109800,0xa30b490b,0x490b5510,0x540b550b,0x540b460b,0x100b560b,0x600b5f00,0xa70b5f0b,0x600b5e10,0x100b610b,0x600b5e00,0x570b5f0b,0x580b560b,0xa40b580b,0x580b4e10,0x570b4e0b,0x4d0b4e0b,0x9a0b570b,0x4d0b5710,0x5e0b5c0b,0x9a10a70b,0x4c0b4d10,0x5c10a60b,0x9b10a70b,0xa80b5d10,0xf0b5d10,0xa80b5b00,0x5b0b5d10,0x9900030b,0xf0b4c10,0x310a600,0x29153e00,0x8e022702,0x3a15d023,0x2d032e05,0x110bcb03,0xe911d314,0xc216671c,0x21053911,0x53023913,0x3155315,0xc413221e,0xcd053b11,0x45000e11,0x1c004d00,0x1f1f9b08,0x31115d08,0x320e320e,0x660e3c0e,0xe1054311,0x5522d115,0x4f195019,0x83256d19,0x83046f04,0x6f175604,0xbb04d204,0xc704c725,0xa8178604,0xb004d504,0xaf25af25,0xce25b625,0x8d25b604,0xc704ce17,0xd104a804,0xc704d204,0xd504d104,0xce25af04,0xd204ce04,0xb004d104,0x9088b19,0xa088b20,0xa2200920,0x71025306,0x7106a215,0x72157515,0xa11e2615,0x7506a206,0x140015,0xa1157214,0x8f181106,0xa112ba1d,0x7801c71d,0xa8244124,0xa805d014,0xd002e214,0xe205d005,0xe2149a02,0x9a02e102,0xc02e114,0x8d149b17,0xd114ef12,0xdb055201,0xee11e822,0x5211e515,0x2f11e505,0x50055214,0xb111e905,0x223b123,0x205501d,0x501d031d,0x86142a05,0x87168716,0xe923b116,0x86055711,0xee142a16,0x53055411,0xfe055405,0x5505531c,0xae1cfc05,0x2f172c23,0x2f044717,0x47172e17,0x4a044704,0xf9254b25,0xb211ed11,0xf222ed23,0xdb22f622,0x17127805,0x9c10d317,0x210a910,0xb8065213,0xf724be13,0xdf020512,0xf4124216,0x3823fc23,0x6c05ac1d,0xc23c405,0xb160c16,0x4056c16,0xbc057312,0xbe057323,0x38143b23,0x3b057314,0x68120214,0x122ef05,0x37169116,0x7123be14,0x71120705,0xd11ff05,0x71d0d1d,0xc057112,0x3d056b1d,0x39056714,0xbb143714,0xbd056a23,0x6b22ee23,0xed1d0c05,0xbd23bb22,0xc22ee23,0x122ed1d,0xc622f012,0xbb056a23,0xbb143623,0x36120423,0x6010e714,0xbb0b5e0b,0xee021213,0x6a0e5d1d,0xe90e640e,0xc9166c11,0x640da622,0xa70da710,0xa810590d,0x9010590d,0x4a0da80f,0x1323d114,0x7a22fa16,0x7a144905,0x4923cc05,0xce23cc14,0xcf23cd23,0x7b121623,0x76121605,0x7c057b05,0x4623c905,0x4c144614,0x7a057f14,0xfb22fa05,0x9823d022,0x98121716,0x1723c916,0x1222f912,0xf8058312,0xcb121522,0x11121523,0x11230112,0x122f712,0x169e23,0x1b121b23,0x9e121912,0xfe23ca16,0xca22fd22,0x9c057723,0xc7069616,0x1912c512,0x3025825,0x13121214,0x131d0f12,0xf120d12,0x62157a1d,0x62157b02,0x7b252602,0x501e3815,0x26030a13,0xa1e3825,0x9030a03,0x9157b03,0x41251f03,0x7b134113,0xa3030915,0x28140506,0x414051e,0x121e2814,0xd71a111a,0x66032308,0xf21e3302,0x6724d61d,0x3d240f06,0x801d341d,0x8e1aba09,0x891e8e1e,0x6618611e,0x1f072718,0x611e8e07,0x1f186618,0x80098507,0x8e098009,0x818661e,0xb9031f03,0xa2031f06,0x8406b915,0x88026a02,0xc4123815,0x1c05a316,0x6c16c923,0xc716c914,0xc7146c16,0xa023f216,0xf1123705,0x9d16cb23,0x6b231c05,0x1e146714,0xde05a323,0x860ca40c,0xa50ca40f,0x6b0f860c,0xae231c14,0xe20de805,0xe211090d,0x90ddd0d,0xa8015611,0xa801550b,0x5504160b,0xb0064a01,0x4624c313,0xfffff835,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x50ffffff,0x1ec61893,0x74b188f,0x1afa1893,0x74b1afb,0x1ea61afa,0x1ebb1c6b,0x189e1c6b,0x1ebb212a,0x18511c6b,0x188422b1,0x18841c79,0x1c791ebb,0x1c6b1851,0x1893212a,0x1afa188f,0x1af9188f,0x1c791afa,0x18511ebb,0x1afb189e,0x1e92212a,0x1c771e93,0x18511c77,0x1afd1854,0x1afe1851,0x1afe212a,0x18541851,0x1c771e92,0x18541b02,0x17531851,0x47d047e,0x8f4206a,0x8f408f9,0x8f908f6,0x23f4231b,0x24d41242,0x15370666,0x15380666,0x23f91537,0x5a016d4,0x146c16d4,0x5a005a0,0x1633231a,0x5a023f9,0x13391475,0x254024d,0x156c024d,0x202a0254,0x8a719d5,0x202d19d5,0x230a08a8,0x230516bb,0x1d3b16d6,0x1d3b2337,0x240d1d41,0x16dd1d41,0x240d124a,0x1d3b2337,0x16e12406,0x16e1059f,0x59f2330,0x1eb71881,0x188119bc,0x1eba19bc,0x201419bc,0x186b1eba,0x19be1eba,0x1eba19be,0x8202014,0x1f9a1f9e,0x19561f9e,0x19561f9a,0x19531957,0x1d412335,0x1d4105a2,0x5a21d3b,0x1b302148,0x55609e7,0x16652393,0x14ab1273,0x106d05f0,0xda00dad,0x106c0dad,0x106c105e,0x105e105d,0x233b1d47,0x24141d48,0x2b81d47,0x2bf02c0,0x5e91252,0x14b505e8,0x5e814b5,0x5e8127a,0x127a14ac,0x237114ac,0x1273127a,0x245905f1,0x245714b2,0x24562456,0x14b214af,0x245214af,0x24521718,0x24582374,0x14b21718,0x245714af,0x1d7d14b2,0x171605ee,0x171602ea,0x2eb14b1,0x121223cb,0x2e71211,0x171905e5,0x236e05e5,0x236e1719,0x237b244b,0x171a1719,0x237102e7,0x245a02e8,0x1d7d02e8,0x237b245a,0x2449244b,0x23762449,0x2ee171c,0x14b01d79,0x5e914b0,0x1d79237d,0x2ed02ee,0x5e205e4,0x170e171b,0x171b127c,0x14ab245b,0x244e244e,0x2ec244d,0x236f14b4,0x2e602e6,0x237c05e4,0x14b402e9,0x28202e6,0x1e540281,0x1e530281,0x2ec1e54,0x5ef244d,0x236f244d,0x127c05ef,0x2370170e,0x2e72370,0xe7b171a,0xdd80e7d,0xe230e7d,0xad20dd8,0x22230ab3,0x25506a9,0x261d06a5,0x51c17dc,0x5bf02cd,0x8b216f0,0x20332030,0x8ae2030,0x17d419dd,0x173317d3,0x261e0520,0x259e17d8,0x258d1777,0x49b1772,0x4a91766,0x4902599,0xe850e29,0x16c911b2,0x16c2123b,0x234b16f9,0x23512354,0x5d505ca,0x5d4149b,0x23542354,0x149b2356,0x24302356,0x5cf149b,0x5d005d1,0x5d01499,0x23ff1706,0x1d3805ab,0x149b170c,0x1b381706,0x18f009f3,0x215a18b9,0x9f42159,0x18f01b38,0x215918b9,0x1d7309f4,0x236902e1,0x2e202e1,0x13e92369,0x1dfc1329,0x22e1dfc,0x22e13e9,0x25021315,0x2eb02ea,0x5f0127e,0x244805f1,0x1721127f,0x14b716e5,0x2ba16e3,0x5b71484,0x2250171f,0xaec2253,0x1c150aec,0x1c150ae3,0xae30ae6,0x2250224d,0x24630aec,0x245f1d8b,0x12801724,0x246102f5,0x1d8c2389,0x17252462,0x12822388,0x14be14bf,0x14b91726,0x238205fb,0x23861d85,0x14c02382,0x5f805fb,0x1d882384,0x238505f9,0x12831727,0x1d871d86,0x24191d4b,0x124f233e,0x1d4b1486,0x17bf0506,0x17471747,0x25671746,0x25671747,0x256717c2,0x174c2570,0x256717c2,0x17c22574,0x17470506,0x2574174c,0x4722567,0x17501751,0x17481751,0x17481750,0x2569174c,0x2570174c,0xc422569,0x3d803a0,0x192c07f6,0x8c0192e,0x203b19fb,0x8bc19fb,0x203b203b,0x8c008bb,0x234316ef,0x12561256,0x2c902c8,0x24532379,0x13642454,0x27d06cb,0xead02a4,0xc720299,0xc6d0402,0xeaf02a5,0xec30294,0xea60ea8,0x2a00ec5,0x131d0ea6,0x1e04131b,0x131a131b,0x1e04250c,0x250c131b,0xeb50ec9,0xfe0eb7,0xfc0c30,0x2a70ed1,0xed0028a,0x2890ed1,0x29d0eba,0x2ac02b2,0x2910290,0x162d1d25,0x162d1624,0x16241230,0x2910ed5,0xecd028d,0x2930ea4,0x2920ed6,0xed70eab,0x2920293,0x17f317f2,0x14d614d6,0x17f417f3,0x19d14d8,0x17ff128b,0x1d9b14d4,0x129b2485,0x183214d1,0x1d8f12ba,0x5fe1832,0x12911812,0x24841292,0x1b114de,0x1c01d99,0x17e61828,0x2c005b9,0x1b316e6,0x12a9247f,0x247317fa,0x7c201ae,0x1f4107c4,0x18fb1f41,0x18fb07c3,0x70c076c,0x18fb07c3,0x76c070c,0x70b18af,0x70b076c,0x247a070c,0x17f70621,0x17ef01b2,0x1be14dc,0x17ed0607,0x14cc0624,0x6041294,0x1da21d93,0x62712b0,0x2478246a,0x1ca1803,0x19af088a,0x8880888,0x88a19ae,0x89719ae,0x89719c0,0x19c00899,0x19c10899,0x1d5b19c0,0x12582348,0xa5f0a61,0xa5f0a5d,0xa5d0a5c,0x1696121b,0x23c523c5,0x1219160d,0x3620364,0xbdc0094,0x900091,0x364009f,0x3640095,0x950094,0xbdc0094,0xbdc0be0,0x930090,0xbdc0be0,0x950093,0x9f0365,0x94e1a8d,0x94e20d0,0x20d020ce,0x20d120d0,0x20d11a8d,0x1a8d1a91,0x24901db6,0x24902491,0x1ad2473,0x24902491,0x247301ad,0x24721d99,0x1b11d99,0x1a02472,0x249114ca,0x24722473,0x139201ad,0x139112bf,0x5ce05c7,0x64d02d1,0x151c24bd,0x22860b17,0x1c4b1c4b,0x227c1c49,0x1f712ec,0x1b581dd7,0x2170217f,0x2181217f,0x21812170,0xa150a23,0xa170a23,0x21810a15,0xa0f0a15,0x1b582160,0x21682168,0x1b451b58,0x21612168,0x1b452160,0xa021b58,0xa0f2181,0x21700a0c,0x1b58216a,0xa03216a,0x21811b58,0x21700a0c,0xab22222,0x8090acc,0x7ff1f78,0x2201df6,0x7fa1538,0x1f6b1f75,0x970be1,0x13ac00af,0x1dce24b2,0x1dd10646,0x253d13a2,0x6c3253e,0x159706c3,0x1b35253d,0x9f109f5,0x15d715d6,0x15d715d5,0x11ca22c9,0xbea00a5,0x3d203ea,0xbb903e6,0xbb903d2,0x3e70bbb,0x3d203d1,0x3e9011f,0x3e9011e,0x11e03e7,0x3e8011e,0xc12011f,0xbbb0120,0x11d0120,0x3710bbb,0x1170c12,0xc120117,0x11d0bbb,0x3d2011e,0x3e7011e,0x3d203d2,0x11d0bbb,0xc4e0117,0xc4e03ea,0x3ea0c50,0x37100a9,0x3ea0bea,0x3710bea,0x2360170a,0x1dee05ed,0x2180212,0x1dec1300,0x24cc13c6,0x1def24ca,0x152a24ca,0x152a1def,0x130724c8,0x1307152a,0x152813c2,0x152d1302,0x660152d,0x1de91528,0x24ce24cd,0x1527152f,0x13bd13bd,0x13091300,0x152f152e,0x1dec13bd,0x13c424c7,0x20f13bf,0x25880663,0x488175d,0x18652298,0x2dc0b27,0x243a05dd,0x2e305dd,0x11fc243a,0x15fc168f,0x21e24d5,0x13ca1536,0x1532066d,0x15361df7,0x5f7021e,0x125614bb,0x14ba14bb,0x13cb1256,0x153f0225,0x21c80a60,0x1b9c21c6,0x1b9b1b98,0x21c60a60,0x1c1a1b9c,0x1c1b225a,0xaf3225a,0xaf31c1b,0x225d0af4,0xaf50af4,0x249f225d,0x1f2139c,0x12d8139c,0x1e5701f2,0x2851e50,0x1e081e0a,0x160013e1,0x11f8168b,0x22e011f8,0x13f022e5,0x13ef1560,0x11351197,0x192e113e,0x7a5192c,0x131a250c,0x10f21e11,0x10f110ee,0x186120b9,0x71d071d,0x20b71ea5,0x7281ea5,0x20ba20b7,0x71d20b9,0x13d113f0,0x132924e1,0x15460690,0x1a142051,0x1a142052,0x205208d8,0x21552159,0x13c61b39,0x22413c4,0x66113c4,0x22424d2,0x24d213c4,0x15300224,0x1d2b13c6,0x1d2416be,0x11880e66,0x12c1180,0xc6003ee,0x1db81db7,0xc612511,0x12c03f6,0x1e1f2510,0x1e1e1e1e,0x251013f4,0x696139b,0x69612d0,0x12d01332,0x24f90686,0x14fb24f7,0x1dc31567,0x1070c3c,0x10603f6,0x3f30c3d,0x1e2212c9,0xd58069c,0xd65101c,0x101a101c,0x163c0d66,0x23f7163e,0x232b163e,0x25823f7,0x25613fc,0x157013fc,0x15750256,0x133e06a9,0x20ef20ed,0x133b097b,0x251a133c,0x25181e27,0x852133b,0x1fcf1981,0x1fd81981,0x13fe1fcf,0x157606a4,0x252002fe,0x25201580,0x1580157f,0x2522157f,0x13461346,0x25211e30,0x13472521,0x13471580,0x158102ff,0x15811347,0x157f1580,0x25211346,0x82c1fb0,0x1a97082d,0x1a921a93,0x6521de5,0x3fc1528,0x1320131,0x12e0123,0x135903f7,0x15912531,0x6c11e42,0x15910273,0x135b2531,0x1e3e2531,0x134f135b,0x3250324,0x27f1e53,0x1e590263,0x2529027e,0x158815a2,0x24c06b9,0x156b1570,0x13fc1570,0x282156b,0x253c159c,0x6c4253b,0x5c81598,0x1d641d5c,0x5c21d5c,0x6d31d64,0x254506d2,0x32406d2,0x285136b,0x2529027e,0x21f0667,0x6d10219,0x6ca253c,0x6b92546,0x2810308,0x6c906ca,0x1e1a13d8,0x1e1a24f6,0x24f61564,0x2431e19,0x15640691,0x24f61e19,0x24eb0234,0x24eb24e3,0x24ea13d8,0x13da13d7,0x13da24e3,0x24e30234,0x23b24fd,0x23b24ea,0x24ea24e3,0x6911e19,0x691023d,0x23d068e,0x68b068e,0x68b023d,0x23d023c,0x24e324ea,0x1e1924eb,0x24f6023d,0x13b0137,0x1820c6c,0x6d406e6,0x6e50183,0x1e5f06e6,0x1e6506d9,0x22672266,0xb0d0b0d,0x2266226c,0x1c37226c,0x1c372266,0x1c35226e,0x227a2277,0x227a2270,0x22621c44,0x227a2270,0x1c372262,0x22701c35,0x22771c35,0x22702270,0x1c372266,0x1c451c44,0x15a32262,0x196138c,0x15bf06ef,0x15bf15be,0x15a706ef,0x18615c0,0x15c006d9,0x137306f2,0x187138b,0x18c1e65,0x1e7a06dd,0x138d1e6a,0x6d5019a,0x19206d6,0x96f20eb,0x20eb1aad,0x96c1aad,0x20ee20ec,0x20ee1aae,0x1aaf20eb,0x20eb1aaf,0x2101096c,0x9730978,0x20ec0978,0x21011aae,0x9670973,0x9900968,0x9672101,0x21010968,0x1aaf20ee,0x721aae,0xbb40bb3,0x4090139,0x3390c71,0x5a0337,0xba30337,0xba3005a,0x5a005e,0xba4005e,0xba4005a,0x5a032b,0x351005a,0x3510339,0x61033a,0x610351,0x590ba6,0xb9e0b9d,0x1240163f,0x1240163d,0x163a2327,0x163b2327,0x163b163a,0x163a1471,0x16d11471,0x1ce2163a,0x15dd11d0,0xf041c94,0x1c941ca3,0x1ca21ca3,0xf311ca3,0x1cc51ca2,0x1cc41c97,0xf071c97,0x1ca81cc4,0xf311ca2,0xf311ca8,0xf311cc6,0x1cc41cc5,0x1cc40f31,0x1cc61cc6,0xf0e0f32,0x1cc61ca8,0xf321ca1,0xf0e0f0d,0x1ca00f0d,0x1ca01c9f,0xf0f0f10,0xf000f10,0xf000f0b,0x1c9d0f08,0xf110f0b,0xf110f10,0xf100f0f,0x1c9d0f00,0x1ca10f0b,0xf0e1cc6,0xf0c0f0f,0x1ca01ca0,0x1c9f0f0c,0x223b223a,0x223b2239,0x22392230,0xa30bea,0xa4036e,0x36b036c,0x8bf06f7,0x20eb08ba,0x1ab720ee,0x8c20702,0x184608bf,0x19fe1a01,0x184406fc,0x8c219ff,0x18480702,0x9b0363,0x9b00a8,0xa800aa,0xc000be,0x11490380,0xe290e28,0xe260e28,0xe261144,0x11421145,0xe291144,0x30d0e28,0x30a030c,0x184f1e8a,0x1e8c1e8c,0x1e8d1853,0x1e921e93,0x1e921bda,0x1bda1b00,0x1e931858,0x1bda1bda,0x22081b00,0x1b011b00,0x22082208,0x189c1b01,0x1b041b01,0x189a189c,0x1bd51887,0x1ebc1887,0x189c1bd5,0x189a1b04,0x9d71b21,0x9d709d8,0x9d809d9,0x154313d1,0x1543153f,0x153f066f,0x13cd153f,0x13cd13d1,0x24e113cc,0x73e1ec0,0x7130741,0x1e9a0717,0x7520715,0x18981898,0x7150713,0x1e9c0716,0x7501e9a,0x7150752,0x7571ecd,0x7501ecf,0x1ecd0715,0xd171063,0xd170da2,0xda20fdd,0x1fe71fe5,0x198f198f,0x1fe50865,0x190036,0x1b001b,0x3410b7,0x3610ce,0xc05001b,0x8300c5,0xbfc00c5,0x3500083,0x830c03,0x3890c03,0x3890083,0x830388,0x73a1e88,0x14e11883,0x17fe1827,0x14e41827,0x1cb17fe,0x180501be,0x12aa01be,0x1be12a9,0x1da312a9,0x14e417fe,0x14e41da7,0x180501cb,0x1da71805,0x33d14e4,0x600bc3,0xbc20bc3,0x1fe10060,0x198b198c,0x18dd1f26,0x1f018c8,0x1dc81509,0x1f11dc8,0x1f101f0,0x1f012d6,0x21f20a7b,0x78521de,0x18c2077b,0x18c0077b,0x1e20077c,0x1e0062c,0x19571954,0x7840784,0x1f061efc,0x1fa01f09,0x7841f9d,0x8211f06,0x1f091f06,0x8210821,0x7841954,0x4df25d6,0x4df174a,0x174a25d7,0x4dd04e2,0x4dd174a,0x174a17aa,0x171c2376,0x171c1d76,0x1d76237b,0x125302c1,0x76902bf,0x76618a9,0x76a18ad,0x11f00769,0x16820555,0x1cfc0555,0x16821682,0x11f11d00,0x1d8b245f,0x78d238a,0x795078e,0x1f15078e,0x1f150795,0x7951f19,0x18d61f19,0x18d60795,0x7951f1d,0x1f1d07a0,0x1f171f1e,0x7910796,0x14bb02f3,0xaa105f7,0x1bde0a99,0xa9b0a99,0xa9b1bde,0x1bde220f,0x1efa1edf,0x14811ef8,0x1d431644,0x1d441644,0x1d432339,0x23391644,0x16d71d44,0x16d72412,0x24121242,0x260a1cab,0x26092609,0x1cad260f,0x25f5260f,0x17ce260e,0x260e260f,0x1cb425f5,0x25f50517,0xf220517,0x1cab1cac,0x261a2609,0x26091cac,0xf2225f5,0x25f5260d,0x514260d,0x261a0f1b,0xf1c2609,0x26090f1b,0x51425f5,0x25f51caf,0x17cb1caf,0xf1c1cad,0x26132609,0x260f1cad,0x17cb25f5,0x25d4260e,0x17c617c7,0x50e17c7,0x50e17c6,0x17c62605,0x4fa17c6,0x4fa25d4,0x25d4044d,0x18c618d4,0x18c607bd,0x7bd07be,0x1f3307b7,0x1f3318ec,0x18ec07b3,0x7b707be,0x18d607bd,0x7451ec2,0x3850bff,0x7570bfc,0x1f2a1ecd,0x18f107c1,0x7c107c2,0x70c07c3,0x18fb18f2,0x18f61f41,0x18f507c9,0x1f3d07c9,0x7ca18f5,0x1f3f1f3e,0x18f518f6,0x18f507c2,0x7c218f4,0x7ca18f7,0x1f3f1f3f,0x7c218f6,0x7c618f4,0x7c607c8,0x7c807c7,0x1f3f18f7,0x7cc07c2,0x18f81f40,0x7cb1f40,0x7cb18f8,0x18f118f7,0x7c218f7,0x18f418f1,0x7c207c8,0x18f918fa,0x7cd07cd,0x18f118f8,0x7cb18f8,0x7c818f1,0x7c218f3,0x7c518f3,0x7c51f3b,0x1f3b1f3c,0x7c41f3b,0x18f307c2,0x7c21f3b,0x18f218fb,0x18f41f19,0x1f4307ce,0x1f441f45,0x1f441f43,0x1f431f42,0x7ce1f43,0x7cf1f45,0x18fe1f3d,0x7c91f3d,0x18fd18fe,0x1f411f45,0x7ce1f45,0x7ce1f41,0x1f4107cf,0x18fe07cf,0x1f461f41,0x7d01f3e,0x7ca1f3e,0x18fe07d0,0x1f411f46,0x7c51f3c,0x18ff18fd,0x7cc1f40,0x7d01f46,0x18ff1f41,0x1f4707cc,0x18ff07d0,0x18ff1f3a,0x1f3a1f47,0x18f907d1,0x1f4718fa,0x1f3a07d1,0x1f3c18fc,0x7d118fd,0x1f3a18fa,0x1f411f3a,0x1f4107d0,0x18fc07c4,0x1f461f3f,0x3b918fe,0xc2400e9,0x184f1e8c,0x7d318a9,0x7d41f4b,0x7051901,0x7d31900,0x1f4907d4,0x19001901,0x76a07d3,0x18561853,0xd40392,0x1ea30398,0x1efb0781,0x186b1906,0x186b0782,0x1efb0726,0x1906186b,0x19061f50,0x1f501907,0x1f531907,0x190a1f51,0x1f52190b,0x7db190b,0x1f521f52,0x19071f53,0x7dc1f54,0x190a190d,0x19071f52,0x1f54190c,0x190d190d,0x1908190a,0x1907190a,0x19081908,0x190c1f55,0x1f4c1f4d,0x1f4c1f4f,0x1f4f07d6,0x1f4e07d6,0x190e1f4f,0x190f07db,0x190b07db,0x1f51190f,0x190e1f53,0x7de1f55,0x7de1911,0x190f1f51,0x7de1911,0x7dd1912,0x19111910,0x7de1912,0x1f51190f,0x190f190e,0x7421f21,0x19091ebf,0x190807df,0x7de07df,0x73b1908,0x190907df,0x7da1909,0x7da073b,0x73b1f1c,0x18d71ebe,0x7ac18d8,0x1ed11ed4,0x7571ed1,0x7e207a6,0x1f5607e1,0x7e007e1,0x7e91f56,0x191b191a,0x7e3191a,0x7e2191b,0x7e41914,0x19131914,0x1f5d07e4,0x1f5c1919,0x191b1f5c,0x7e307e3,0x191607e2,0x7e407e2,0x19151915,0x1f571f58,0x191507e2,0x191607e5,0x7e507e2,0x1f5d07e8,0x19151f5c,0x7e51f57,0x1f591916,0x7e807e6,0x7e31f5c,0x1f5a1917,0x1f5a1918,0x19181f5b,0x7e81f5b,0x191607e3,0x7e707e6,0x191607e3,0x7e707e7,0x7e31918,0x1f5c191b,0x19211920,0x1f5b07e8,0x191a07e3,0x1f611f61,0x7e31f62,0x1f241f62,0x1f241891,0x7481f22,0x7e31891,0x7ed1f62,0x186f1f63,0x192307ef,0x190d1f63,0x7dd07dc,0x19231f63,0x7ee07ee,0x186f1efa,0x1edf1efa,0x186f1e9c,0x1e9c1efa,0x1f261f22,0x1f260748,0x18921922,0x7ef1922,0x189207ed,0x1f260748,0x7f018a8,0x7f018a7,0x18a71f64,0x7f00715,0x18a818a8,0x7151ee0,0x7b20759,0x1ed01f36,0x1f3207b4,0x18eb189b,0x189907b4,0x7b207af,0x1f31074f,0x74c07ae,0x18e41896,0x1f6d1f6f,0xafd07f3,0x22742275,0xb142274,0xb140afd,0x22600b16,0xb140afd,0xb162260,0xafc0b15,0x1c410b15,0x1c410afc,0xafb227d,0x225f0afb,0x225f1c41,0x1c410afc,0x1c212260,0xf320afd,0xf280f27,0xc780152,0xd1f0418,0xda2105a,0x8060805,0x1dc0808,0x1db1db8,0x139301db,0xbd001dc,0xbd40359,0x1f1b1f1a,0x1f1b18d0,0x1a0b1a03,0x1f1b18d0,0x78a1a0b,0x1f0208cc,0x204808cc,0x18d01f02,0x78a1a0b,0x1bdf2216,0x1f031f03,0x78a18d0,0x1ef01f02,0x7740774,0x1f021f04,0xaa71f04,0xaa71f02,0x1f032216,0x78a1f03,0x220b1f02,0xa952208,0xa95220b,0x220c1bdb,0x1e952205,0x1bdb220b,0x14d220c,0x61014c,0x20fa0989,0x1edd1edd,0x75e0751,0x1e89075e,0x1e8920f7,0x20f70707,0x9840707,0x98920f7,0x75e1edd,0x1c101c17,0x1c100aef,0xaef2249,0x22481c0f,0x2249224f,0x224f1c0f,0x2251224f,0x14b0aef,0x3390337,0x197b0846,0x101d084e,0xd66101e,0x13c21def,0x13c224d3,0x24d3130d,0x8191962,0x257b1951,0x174b256f,0x46e174b,0x1fd1756,0x12e601fb,0x1fc12e6,0x20b101fd,0x9371877,0x33c00f7,0x196a0063,0x1fb9083a,0x1fc9084f,0xc2c1fca,0x3c803c7,0x104b0d8a,0xb9104a,0xbc03dd,0xc4703dd,0x11100bd,0xdb0c47,0xc1c0c47,0x11100db,0xc4700bd,0x202108a1,0x198a2022,0x85e0796,0x1efe0796,0x844085e,0x1fc71fcb,0x2349148c,0x234905ba,0x5ba2345,0x1efe1986,0x163b077f,0x14712326,0x5a62326,0x19b91471,0x890200d,0x197a1fc8,0x8540854,0x1fd41fd3,0x84a1fd4,0x1fd51fc8,0x8560857,0x1fd21fd5,0x23f9197d,0x146c16d4,0x231a146c,0x231a23f9,0x14751633,0xf40c44,0xf403da,0x3da00f3,0xc73014b,0xc73040e,0x40e0148,0x3360335,0x1ff3034f,0x876199a,0x11651169,0x1fed0e3e,0x1fde1988,0xc4803e0,0x19b700bd,0x19b119b3,0x19b019b1,0x1e1f2009,0x62e249b,0x12e31dd4,0x199c12f5,0x8820881,0x19a41ff8,0x5c01ffe,0x24211d54,0x1b850a4b,0x1b850a36,0xa3521b0,0x1b6621b0,0x21b01b68,0xa351b68,0xa362184,0xa281b5a,0x1b850a36,0x1b5a0a28,0x1b850a36,0x1b6a0a35,0x88d0886,0x1f6719b4,0x1f661eed,0x1eee1eed,0x1eee07f8,0x7f81926,0x8970895,0x1aa819ae,0x9710970,0x20e90971,0x184620e5,0x6fd06fe,0x70306fe,0x70306fd,0x6fc1e87,0x8970899,0xfa82018,0xcf90fa9,0xfab0cf9,0xfab0fa6,0xfa60fac,0x1ee007aa,0x202118b2,0x8ae08ab,0x19ca2024,0x171508a4,0x236014a2,0x19de2028,0x19de08b1,0x8b12032,0x21161acd,0x9b51ade,0x9b41ae6,0x9ae1ae6,0x12609b4,0xc5f03f4,0xc5a0c62,0x1fc30105,0x19741970,0x19dc19e2,0x19e62034,0x19f119f0,0x203919fa,0x1e851840,0x8ba1e7f,0x1680424,0x880c80,0x840358,0x850358,0x840084,0x870c02,0x840088,0xc020087,0xbcd0bce,0x3560bce,0xc020bcd,0x870bcd,0x402016a,0x1ade0403,0x21121ae0,0x1a1a1a04,0xc6a1a17,0xc6c013b,0x5651601,0x210d0563,0x9991ad1,0x170b02d9,0x204d1d70,0x8c32049,0x1f911f8d,0x4881f8f,0x256a174e,0xc72040b,0x78a0c81,0x204808cc,0x1a082048,0x7490775,0x188f1ec6,0x17cb1caf,0x17cb0f17,0xf16260e,0xc780413,0xf030418,0xf400f41,0xf3f0f40,0x21d0f15,0x1df124d2,0x20511a14,0x178508c9,0x176b176c,0x25a3176b,0x25a31785,0x178504ab,0x4090407,0x20450c71,0x1a1a1a16,0x205508c5,0x1d1d204a,0x16ad1226,0x4030426,0x1d86013c,0x24221283,0x12821283,0x13516f4,0x1670421,0x2062205b,0x2ef2063,0x237c02e9,0x21891b61,0x1b5c1b62,0x1b5d1b63,0x1b611b5d,0x4bd1b62,0x25b125c3,0x179425c3,0x49c25b1,0x25b125ab,0x20671a2c,0x33608f2,0xc4f0ba5,0xba50c4f,0xba50160,0x160015e,0x15d015e,0x15d0160,0x419015f,0x1a2b1a2d,0x19f508f2,0x8b719e8,0x41f0c7e,0x1ab50420,0x20ee1ab7,0x1ab81ab7,0x1ab820f1,0x20eb0974,0x20ee20f1,0x8fc1ab7,0x1a3c207b,0x207b1a3c,0x1ac80907,0x9902101,0x4030426,0x1690404,0x1380c81,0x1ef4076e,0x1ef41a8e,0x1a8e20ce,0x9091a4b,0x19651a49,0x1faf1fae,0x8281fae,0x8281fad,0x1fad1fab,0x19601fab,0x9141fad,0x9171a4a,0x1a471a4a,0x20862086,0x1a4a1a4e,0x1a4d1a4e,0x22050917,0x185a1bd8,0x25112494,0x25110639,0x63924a5,0x15060639,0x91e2496,0x1a4e0912,0x2085090f,0x78c078c,0x21c20786,0x7850786,0x1a4821c2,0x78c090f,0x1f0e18ca,0x78c1a48,0x1b9321c2,0x18ca1b93,0x99a078c,0x7630998,0x210607b6,0xe5099a,0xc200c21,0x20831a45,0x78c0786,0x1a452085,0x18750b3d,0x18751879,0x18791870,0x84d1879,0x737197c,0x18790b3d,0x197c1879,0x197c0737,0x737187e,0x187e0737,0x187e187b,0x187f1fc9,0x1fcc187f,0x74a074a,0x186f1892,0x1eb1186f,0x74a1c7d,0x187f186f,0x1c7d186f,0x1c7d187f,0x187f187b,0x16e016d,0x19b5042c,0x19b9200d,0x73219b9,0x73219b5,0x19b51eab,0x1e971eab,0xc2319b7,0xef03b6,0xe80c22,0x211d00f2,0x1ae81ae5,0x9ab1ae5,0x209b211f,0x1a6720a5,0x20a31a67,0x20a12096,0x1a63092a,0x20be20ab,0x1dd40934,0x151e150e,0x20ab20b0,0xc8d1a6f,0x4310c8e,0x2287228b,0x21e30733,0x21fa21e1,0x21f621fa,0x21f621e3,0x21e021f5,0x21f621e3,0x21f521e0,0x1bb821f3,0xa7621d6,0xa760a75,0xa7721d3,0x1a6a209c,0x9310931,0x92b1a6b,0x209b20a5,0xf301a62,0xf2f1cc2,0x1c911cc2,0x94c1cc1,0x95d1a9a,0x1f771938,0x1f771f76,0x1f761935,0x86f0871,0x86f1989,0x19891fdd,0x19961989,0x1fbd1997,0x1fb70832,0x196b1fb7,0x37b083d,0xbe400b3,0xa3036e,0x20cb0369,0x9520950,0x20c41f38,0x3541a90,0xbd1008a,0x20cb094d,0xf890954,0xf9f0cd7,0xfbb0f9f,0xfbb0f89,0xcdd0cdc,0x3320330,0x1d6d0079,0x12741d7c,0x95f20d2,0x4e020de,0x17c617c7,0x50e17c7,0x50e17c6,0x17c6050f,0x4fa17c6,0x4fa04e0,0x4e0044d,0x99e099c,0xfb42114,0xcfb0fb2,0x5e0bc9,0xba20ba2,0x7e0bae,0x65007c,0x4d90bac,0x177325a5,0x17751773,0x1ab225cb,0x20f51abe,0x620c94,0xbc60ba4,0x33e0064,0x43c043d,0xf3c0c91,0xf140f06,0xfbb0d08,0x16340fbe,0x1643123d,0x16d51643,0x16d51634,0x1244147a,0x1646147a,0x1abe1244,0x20ea1ab2,0x16781677,0x16771cf2,0x14231cf2,0x167611de,0x16771677,0x15e51423,0x127105e1,0x127102e4,0x2e405de,0x126d02e4,0x126d05e1,0x14a914a5,0x20fe098d,0x991ac2,0x35f008e,0xbdb008e,0xbdb035f,0x35f0090,0x910090,0x91035f,0x35f0be8,0xfce0d1e,0xd1e0fe2,0xff20fe2,0xd340fe2,0xff20ff2,0xfd60d34,0xfe90d34,0xfd60d16,0xd160d34,0xfef0d32,0xfef0d29,0xfcb0d0f,0xfef0d29,0xd290fcb,0xd320d18,0xfe50d1a,0xfe90fd8,0xd180d32,0xd1a0d18,0xd1a0d16,0xd190fd8,0xd1a0d16,0xfd60d19,0xff20c9e,0xd2a0c9e,0xfe90d28,0xd160d18,0xd280c9e,0xd2a0ff2,0xd280fe8,0xd200d21,0xd210fe6,0xfe80fe6,0x1ac62100,0x20ea20fd,0x20fb2100,0x20e2096d,0x13d020e5,0x6730674,0xfcb0d29,0xfcb0fe7,0xfe70d0e,0xd110d12,0xd110fdc,0xfdc0d1e,0xfd50fdc,0xfd50d12,0xd120d2f,0xd2f0d12,0xd2f0d10,0xd100d2b,0xff10fd1,0xff10fed,0xfd00fd2,0xfd00ff1,0xfd20fed,0xd170fdb,0xfd20fd0,0xfcc0d17,0xd2b0d10,0xfde0fdb,0xfcc0fdd,0xd130d2b,0xfd10d2b,0xd131037,0x10370d2b,0xd170fdd,0xd0a0fdb,0x10370d13,0xfed0fd1,0xfd10fea,0x10370fea,0xfeb0fea,0xfeb0fec,0xfd40fd9,0xfcd0fd9,0xfd40fd4,0xfeb0fec,0x10370fec,0x10370fea,0xd0a1038,0xd140fd3,0xd140fd7,0xfd70d15,0xfd31038,0xd0a0fda,0xd0b1038,0xfd70fd3,0x10380fda,0xfe40fda,0x10380d0b,0xd250fcf,0xfe41038,0xd251038,0xd0d0fcf,0xfcf0d0b,0xd0e0d26,0xfe10d0c,0xd0c0d22,0xd260d22,0xfcf0d0c,0xfc90d1b,0xfe10d1b,0xfc90fca,0xfca0d1b,0xfca0d0c,0xd2c0fe1,0xfe50fdf,0xd1c0fdf,0xfe50d1d,0xd1d0fdf,0xfd80d1d,0xfe50fe5,0xd2c0fee,0xd300fee,0xfee0d31,0xd2c0d31,0xd2e0d30,0xd2e0d31,0xd240d2d,0xd230d2d,0xd2e0d24,0xd310d24,0xd250d23,0xd240fe4,0xfe40d23,0x34c034a,0x11d6033d,0x11d11670,0x239f1671,0x239f11d6,0x11d615de,0x1aa71aab,0x4e91aa9,0x25e404e8,0x4ec25e4,0x4ec04ed,0x4ed254e,0x449254e,0x4ed04ed,0x25e425df,0x1ace0999,0xfd1210d,0x10240d2b,0x21271af1,0x21271aef,0x1aef2123,0x2fa1343,0x2fa157e,0x25e1345,0x1ade2102,0x1a572111,0x20921a5a,0x9a309a1,0x1017210a,0xd540d62,0xd5f0d62,0xd5f0d54,0xd541010,0x10110d54,0x20bb0d5b,0x20bf1a6e,0x132f1e17,0x132f2507,0x25071e15,0x6910241,0x1e152507,0x25070241,0x101f0d34,0x1e530d7b,0x1e540305,0x15860305,0x1d071e54,0x1cf715fc,0x168615fc,0x8b11cf7,0x2028202a,0x19de2028,0x1ae908b1,0x9a909af,0x1b3d07bd,0x9f709f7,0x77e2157,0x52217df,0xd280523,0x102b0fe6,0x1b031b08,0x9c11aff,0x1b081b03,0x212d212f,0x142e1b05,0x11f423b4,0xd790d7a,0x1b140d32,0x21341b15,0x9ce1b15,0x21342134,0x1b1418ab,0x7090767,0x9ce1850,0x1b121b15,0x1b131b15,0x9c81b12,0x9cf1b11,0x59d16c9,0x77a162c,0x189407a2,0x1b191b18,0x1b19071c,0x71c077a,0x1b181b19,0x1b18213a,0x213a2138,0x9ce2134,0xe5909d0,0xe690e68,0x9d409d5,0x77709d3,0x725071b,0x9d40778,0x9d40719,0x71909d5,0x213c09d5,0x71a1b1d,0x7780776,0x21313c3,0x21324d4,0x66613c5,0x1df613c5,0x1b130666,0x9ed1b15,0x192d18e2,0x19a5192e,0x199f19a6,0x19a719a6,0x214b199d,0x214909e3,0xb840047,0x15291099,0x65d13b7,0x64e13b7,0x1cc5065d,0x1cc80f31,0xa920a94,0xa922209,0x1bd72205,0x13051df0,0x13051df8,0x24d113c1,0x13051df8,0x24d124d7,0x130524d7,0x10720cb3,0x24af0db2,0x13ab12eb,0xdb10db0,0xcba0db2,0xdb30cb4,0xdb91075,0x9e80f4f,0x21431b31,0x1ed11ecf,0x1ecf1ed4,0x75a1ed4,0x189d1ed4,0x71e075a,0x75a2297,0x74b1895,0x74b1afb,0x1afb0749,0x189d075a,0x1ea61895,0x75a071e,0x7080706,0x7081afe,0x75a1ea6,0x708212a,0x212a075a,0x7081afe,0x1afb1895,0x124075a,0x12303fb,0x3fa03fb,0xc540123,0x1080c55,0x1240c55,0x1080108,0xc54010a,0xc5203e7,0xc520125,0x3ed0108,0x12503ed,0x1240c52,0x1080123,0x168a0562,0x168a23b8,0x23b815fb,0x160015fb,0x23b822e7,0x56211fe,0x168c11fe,0x15fb0562,0x23b822e7,0xf571078,0x4790f4b,0x257a2578,0x13d9154a,0x82a24e8,0x19651fb1,0x1b56217e,0x21551b37,0x217e0a1f,0x215809f6,0x22e21b4e,0x1cff22e1,0x23b522e1,0x3251cfd,0x25280285,0x76118bb,0x76120cd,0x20cd094f,0xa1a09f8,0x5e51b50,0x236e236a,0x236b236a,0x9f8236e,0x9fa09f9,0x21822183,0x1b591b4a,0x21761b4c,0xb22226a,0x21981c5d,0xa320a30,0x225c1c19,0x225c225b,0x225b2258,0x22592258,0x219b0af1,0x21950a33,0x21a10a40,0x23620a3b,0x149d2439,0x21a20a44,0x1b7e0a43,0x21ab1b7b,0x20722074,0x20720901,0x9010900,0x19cb2026,0x19cb19ca,0x19d2202b,0x19cb19ca,0x19d219d2,0x19ca08a6,0xa140a34,0x1eb60a19,0x1f16187d,0x738187d,0x7381f16,0x1f161f17,0x219b1b4b,0x219c219c,0xa190a37,0x1b4b0a12,0x1282219c,0x24201281,0x23851281,0x23852420,0x24201d53,0xa062191,0x12120a05,0x143722f0,0xa021b64,0x21950a03,0x1b490a08,0xa0a2196,0x1ba2216f,0xa691ba9,0xa691ba2,0xa621ba4,0xa681ba1,0xa5c1ba1,0xa5b0a6c,0xa671b9e,0xa621b9e,0xa670a68,0xa681b9e,0x1ba21ba0,0x1ba01ba4,0x1ba51ba4,0xa680a6c,0x1ba01ba1,0x21d01ba5,0x1ba00a5f,0xa6f21d0,0xa5c0a6c,0x21d00a5f,0xa6f21ce,0xa5f0a5c,0x1c7d187b,0x9e61c8a,0x9e32147,0x1780177,0x21900431,0xa050a2b,0x1b971b89,0x1bc30a5a,0x21de1bc2,0x1b991b98,0x250b21c4,0x13140244,0x15430244,0x10bd1314,0x290023,0x140b74,0x10c80b63,0x10b010c9,0x21d40a70,0x10a20a72,0x10db10df,0x20de1aa0,0x95f095f,0x1aa0095e,0x21291afb,0x2129212a,0x212a09c0,0x50008,0x10aa10d7,0xb860b48,0x10a30b55,0x10dd10e0,0xb5110da,0x4510e3,0x49000e,0x10a60b5c,0x30b5b,0x1f700b8a,0x1f69192d,0x1f68192d,0xb4a1f69,0x10d5003a,0x2398166f,0x5270531,0x5291cd9,0x21f021f1,0x10e21bd2,0x10a310e0,0x21f41bc7,0x20681bd7,0x8f32065,0x151c0209,0xd8324bd,0xd840d1c,0xa901bd4,0xa8f185d,0xa8e0a8c,0x21fc1bcf,0x253f0a8b,0x31b1e4f,0xde30de9,0xde30de0,0xde0110c,0x1fd20851,0x1fd11fd1,0x8511fd9,0x220c2205,0x21e11bd6,0xa6b1bab,0xa6e21e3,0x6b31bab,0x3030261,0xaa70aa5,0x3411bdd,0xbb00bb1,0x18e32211,0x5221f2b,0xf1f1cb1,0x144b23d3,0x121d121d,0x23d316a0,0x20ef20ed,0x153b097b,0x1531153a,0x1c280b07,0x22521c14,0x1c262254,0x22b51c80,0x22b51e9c,0x1e9c1869,0x7161e9c,0x1c801e9e,0x22b41e9c,0x1e9c22b4,0x1ea41ea4,0x1e9e1e9c,0x1ea41eaf,0x18701870,0x1e9e1ea4,0xb3a084f,0x187e22b3,0x22b3084f,0x22b3187e,0x22b30736,0x7361eaf,0x1eaf0736,0xb2a1870,0x1e9e0722,0x18700722,0xb281e9e,0x1e9e0b29,0xb2822a0,0xb280716,0x7161e9e,0x22a0229f,0x22a00717,0x7170716,0x1ecf0757,0x1ecf1ecd,0x1ecd229e,0x717229f,0x229e1e9a,0x1e9b229f,0x1e9a229f,0x25581e9b,0x1734045e,0x1739045e,0x1d6d1734,0x5d61704,0x22390ac9,0xabd223a,0x22291bfc,0x7f41f6d,0x7f4192a,0x192a1f73,0x19301f73,0x223c1f72,0xad00ace,0x257c0483,0x11d01758,0x1ce31ce2,0x23971ce3,0x1c0211cc,0xad30ac7,0x1c0f2243,0x1bf92249,0xac92239,0x24d01df6,0x24d013c8,0x13c80218,0x2190218,0xad7021f,0xadd1c09,0xadd1c06,0x22470ade,0x1c0b0ae0,0x1c08224d,0x22462246,0x224b0adb,0x224d224c,0xada2246,0xae11c07,0x224a2245,0xad9224b,0x224a2249,0x224d1c08,0x203b0ae3,0x203c08bc,0x225e2265,0x3ea2256,0x1600118,0x40e0c74,0x3ea040c,0xc510160,0xc740160,0xc51040c,0x40c0160,0x3ff0140,0x40c0c51,0x1470148,0x1400141,0x1430c51,0x1420144,0x1410142,0xc510c51,0x142040c,0x147040c,0x40c0145,0x1430145,0x1420143,0xc72040c,0x145040b,0x143040b,0xc720145,0x1460145,0x4020c6e,0x13f0c72,0xa1013e,0xc6e013e,0x41100a1,0xa1040a,0xc720c6e,0x1460146,0xa10411,0x1d831d46,0xdfb2381,0x111b111c,0x1118111c,0x111b111b,0x11200dfe,0xe010dfe,0xc521120,0xc570c3f,0x10a0c3f,0xc540c54,0xc3f0c55,0x1240c55,0x1250c3f,0xc5203e7,0xc570c56,0xc570c3f,0xc520125,0xc6503fb,0xc650124,0x1240c56,0xaff2263,0x1c372258,0xb001c35,0x22771c35,0x22770b00,0xb001c40,0x1c441c40,0x1c440b00,0xb000b01,0xb030b02,0xb020b0d,0x226c0b0d,0xb020b00,0xb001c37,0x1c2a1c23,0xd050fba,0x235f0fa4,0x5eb14a3,0x8d41a10,0x8d4204d,0x204d1a13,0x1bd41bd1,0x1bd41e99,0x1e991ea1,0x21ff1e99,0x1c5f0a8f,0xb0a1c5d,0x1c1f1c3a,0x1c1f1c3b,0x1c3b0afb,0xdd80e7b,0xd3810fe,0x102e0ff7,0xd720ff7,0xb12102e,0x1c49227c,0x82c1966,0x82b082b,0x19631961,0x2283227c,0x14a72282,0x24442362,0x24402362,0x24402445,0x24451d74,0x22941872,0xb212296,0x1872228d,0xaeb1c23,0xaeb1c2a,0x1c2a2252,0xcf00f95,0xcf00f96,0xf960f99,0x232f1645,0x232f16e0,0x16e01480,0x23ff232a,0x1c681473,0x229c1c65,0x1cdf15ee,0x1cdf11e5,0x11e51ce4,0x1f0108c6,0x1eff1eff,0x8c61ef6,0x7771ef6,0x18c32046,0x20460773,0x76f0773,0x1ef62046,0x8c62046,0x18c30777,0x1c632046,0xb271c60,0xa1b216d,0xa1c0a1c,0xa0109fd,0x9fe09fd,0xa1c0a01,0x216c0a01,0xa04216c,0xa040a1c,0xa060a05,0xa060a04,0x216e216d,0x216d1b47,0xa1c216d,0x1f1f0a04,0x221a0aaa,0xaac0aad,0x1f1f079f,0xaad221a,0x1c851c84,0x10b122b4,0xb7310b2,0x19dc08b1,0x8b12036,0x19e42036,0x8b0202e,0x8b008b7,0x8b508a9,0x8b708b5,0x8b108b0,0x19e319e4,0x19e308b1,0x19e3202a,0x202a08b3,0x8b52035,0x8b408a9,0x8a92035,0x8b3202a,0x8b42038,0x8a508a9,0x8b42037,0x202a08a5,0x19e72038,0x19e7202a,0x19e708a5,0x8a519e6,0x203708b6,0x2408a5,0x10c00b6b,0xb6b10c0,0x10c810b8,0xb6510c9,0x10be0b64,0x20a1002c,0x92a092d,0x1a64092d,0xb7f209a,0x10d910ac,0x10ab10ac,0x10ab10d9,0xb8e10d6,0x10d60b8e,0xb8f003d,0xb7e0b4f,0xb7c0b7d,0xb6e0b7b,0x200b6f,0xb660b64,0xb660b65,0xb650b67,0xb6e0b65,0x10b710be,0x10cb001a,0xb6a0019,0x10b60b6c,0x1810b4,0x10b510b4,0x180018,0xb690b68,0x190b6a,0x10b20b69,0x10b3001c,0x10b9001c,0x10b310b3,0x15001d,0x22001e,0x1610b2,0x1e10ba,0xb6c001b,0xb6c10b7,0x10b70016,0x10b7001a,0x200015,0xb700b6f,0x1a0b70,0x10b70015,0x150016,0x1e0016,0x1e10b3,0x10b310b2,0x200015,0xb6d0b70,0x10bd0023,0x10bd0b6d,0x10b8001f,0x170021,0xb6d0021,0x1710bc,0x10b110bc,0x10b2001c,0xb6d10b1,0x10bc001f,0x1c10bc,0xb6b10b1,0x10b80024,0x250024,0xb630021,0x170014,0xa252181,0x1b551b55,0xa23217d,0xa22217d,0xa231b53,0x1b53217d,0xb870002,0x1f310d2,0x1dd51dc6,0x24b31dc6,0x1dd51dd5,0x24a624b5,0x10e60b5f,0xdef004a,0x11170df8,0x10d40b49,0x3e0b93,0x10a010dc,0x420b55,0xb5c0b91,0x4c0049,0x112a0e0b,0x4b0e0f,0xb430b5d,0xe0a0e14,0x109b0e15,0xb9710a8,0xb70001a,0xb7010ca,0x10ca0b6f,0x2f0b6f,0xb4710ca,0xb880b4b,0x5e007d,0x111e0ba2,0x11ad1124,0x43f0c94,0xe350bab,0x11511152,0xe2e1152,0xe2e1151,0x11510e39,0x11550e39,0x123d1151,0x2329232a,0x2328232a,0x23282329,0x233116d5,0x124c16d5,0x23312331,0x23282329,0x12441243,0x23291646,0x123d1243,0x16461243,0xba31635,0x6a0bbe,0x11880e5b,0x7911189,0x1fda1f16,0x1f171f16,0x1f171fda,0x7960794,0x19870796,0x85d085d,0x1f171fda,0x3830382,0xbfd0bf8,0x3880385,0xc50c05,0xc50c02,0xc020bfc,0x50825fe,0x50825fd,0x25fd17c0,0x25fb17c0,0xc60504,0xc1100d3,0x3980c11,0x3980c0a,0xc0a00d4,0x39700d4,0x3970c0a,0xc0a0c10,0xb00375,0xbef0bef,0x3750373,0xbfb0373,0xca0375,0xc100c0a,0xbf7039b,0xbf7039a,0x39900b1,0x4320433,0x4320c8e,0xc8e0179,0x3850bfc,0x3850bce,0xbce0bfd,0xbfe0bfd,0x15480bce,0x67d154b,0x154a067d,0x154a1548,0x6791549,0xc3700ee,0x1e1903cb,0x15630243,0x1e181563,0xc5b1e19,0x3ef03f0,0xc5803f4,0xc580c5e,0xc5f03f4,0x3f00c63,0xc650c5b,0x12e0c64,0xc640c66,0xc560c65,0x3f7012e,0x4070c70,0x3640c6f,0xa80363,0xc800422,0x3de0425,0xb5037d,0xb6037d,0xb600b5,0xb50363,0x3640363,0x36400b5,0xb5009f,0xbf0009f,0xbf000b5,0xb500b4,0x4210c67,0xc6e0167,0x408013e,0x10230d55,0x76f0d2b,0x20462047,0x1f0108c6,0x7830783,0x2046076f,0x1720328,0x1720b98,0xb980171,0x42d0171,0x4370b98,0x17b0435,0xc91007c,0xc920c92,0x7c033f,0xc990cbc,0xf730c97,0xcc70f74,0xcbb0cc7,0xcbb0f73,0xcbc0f67,0xc970cbc,0xcb10f73,0xf650cb0,0xcaf0cb0,0xcab0f5f,0xca90cb0,0xca90f5f,0xca90cb0,0xcab0caa,0x10eb0e8b,0xf49119e,0xca20c9f,0x189618e4,0x18961f2e,0x1f2e0753,0x22a41c70,0x22a40b36,0xb361c6d,0x1ecb1c6d,0x22a322a3,0x1c6d0b36,0x1367159a,0x1adf1366,0x9a32119,0x9a109a3,0x8221add,0x1fa70831,0x8370831,0x1fb41fa7,0x195e1960,0x1fb41fb5,0x824195e,0x8371fa7,0x8370824,0x1969196b,0x195e1fb5,0x19690832,0x824195e,0x1fb7196b,0x195e0832,0xfba0824,0xfb90d01,0x11770e4e,0xe4c0e4c,0x11720e52,0xfb30fca,0x94a0cfd,0x94920c9,0x94c20c9,0x94c0949,0x1a8b0946,0x1f2b0a9c,0x1f2b0aa0,0xaa007ab,0x7a407ab,0x1b3609f0,0x7b31b3c,0x9f007ab,0x1f331b36,0xaa0221b,0x7b31b36,0x7b307ab,0xaa01f33,0xdd03a8,0x10f010f,0xdf010e,0x427010e,0x42700df,0xdf00e0,0x23ee16bf,0x23ee1621,0x1621145c,0x1246147b,0x12461646,0x16462408,0x16de1646,0x23322332,0x147b1d3f,0x10080d36,0x6a20d4a,0x156d06a1,0x24f156d,0x1b1006a2,0x18da1f27,0x5cd05ce,0x14951495,0x5ce02d3,0xc7038b,0xc700cf,0xcf0392,0xc0f00cf,0xc0f038b,0x38b00ce,0x101e0d18,0xd350d69,0xd430d44,0xff20d1e,0xac51020,0xad61c05,0x1bfb0ad6,0x5022233,0x25fb0504,0x103e1041,0xd790fdf,0x10330d7a,0x18760729,0x18760a89,0xa891bdc,0xa8c21fd,0x7290724,0x21fd0a89,0x1e4f031b,0x1cdd2540,0x238c1cdc,0x17f01d9d,0x14f4181c,0x180a180b,0x23ab1d04,0x11781cfd,0xe330e54,0x1fd70859,0x1da1fd8,0x1db801db,0x19c72022,0x19c7079a,0x79a079d,0x79b079d,0x79a079a,0x20220799,0x7910799,0x78b2022,0x7881ef1,0x78b0791,0x78b2022,0x8a20788,0x13c21def,0x13c2021e,0x21e130d,0xced0d9b,0xced0f7d,0xf7d0ccf,0xd9a0d99,0xd9a0f80,0xcd30d9b,0xcec1053,0xcec0cd2,0xf800d99,0xcec0cd2,0xd960f80,0xcd11052,0x10531052,0xcd10cd2,0xcd21052,0xd870cca,0xd870f78,0xf790d96,0xd870f78,0xd9a0f79,0xf800cd3,0xf7d0d9b,0xccb0cd3,0xd960f79,0x13310693,0xb3b1dc7,0x1c8a0b3a,0x5420541,0x53c053c,0x54122cd,0x141811d0,0x53d1417,0x53b11cd,0x15dd11ce,0x1417053d,0x53d1416,0x1ce61cea,0x5bd15da,0x234d1d60,0x16721414,0x167215da,0x239c239d,0x239c1672,0x141c141b,0x167215da,0x22cc15db,0x5ee1663,0x12781279,0x11eb11e9,0x218211bf,0x21710a26,0x21980a26,0x21982171,0x21710a0d,0x1cfb23ac,0x11e411ee,0x11ed23b2,0x15f011ed,0x11ef11ef,0x11ed11e5,0x11eb11ec,0x1d021d02,0x11ec1d03,0x23b21d03,0x1cfb11ec,0x16810554,0x1d0223b1,0x106a11eb,0xdab0dac,0x10650dac,0x10650dab,0xdab0daa,0x92a1a63,0x92a2093,0x20931a5d,0x1a581a5d,0x1a522093,0x9291a50,0x1a551a50,0x1a501a61,0x9291a61,0x1a630927,0x1a522093,0x1a620929,0x9272096,0x1a522093,0x209b1a62,0x20932096,0x13941a52,0x249513f3,0xdb00cc5,0x8231071,0x195a1faa,0x8261faa,0x195a1fa9,0x1fa91faa,0x195e1959,0x195a195c,0x8231959,0x195c1959,0x1df5195b,0x130f13cf,0x14fb1396,0x14fb0635,0x6351567,0x13f50635,0xd6901e4,0xd68101e,0x1dd0063f,0x103312ef,0xd7b0d7a,0xa200a17,0xa200a18,0xa181b52,0x121b121a,0x114e1696,0xdcb0dc7,0xdc10dc9,0x111610ee,0x11941196,0x9f0be9,0x8dd0365,0x8da1a16,0x20511a16,0x80b08da,0x80f080e,0x1f90080d,0x35c194c,0xbd9035b,0x15221de4,0x152212f5,0x12f512f6,0x1ddd12f5,0x1ddd12fd,0x12fd1de6,0x64d24bd,0x13cf0659,0x6740675,0x13ce0670,0x2230223,0x13d41dfa,0x24dd1317,0x2240224,0x13170229,0x2290230,0x153e153e,0x13d21310,0x24dc1310,0x22f13d2,0x13cd153d,0x13cc13cd,0x24de24e1,0x24e113d3,0x24de13d3,0x66a066a,0x1545022c,0x1dfb022c,0x13d01546,0x6730674,0x13111544,0x66e066e,0x67013ce,0x66f1314,0x13121312,0x22f153d,0x24dc13d2,0x24dc1316,0x1316130b,0x66f130b,0x1dfa1543,0x131724dd,0x77418cd,0x21322133,0x18cd09c9,0x18e009c9,0x18cd18cd,0x21322133,0x144d22ff,0xdfe23c4,0xe021121,0x102d0d72,0x1574102b,0x133a251b,0x13fd133a,0xe1b0257,0x113e0e21,0x6881547,0x688131a,0x235154f,0x688131a,0xe1a0235,0x11361131,0x17a725ec,0x254e17a9,0x17ac0449,0xe450e3b,0xe3c0e3c,0xe3b0e32,0x166c15d9,0x166c238d,0x238d15d8,0x166215d8,0x22d51409,0x14291425,0x1d32163c,0x24623f5,0x155a24ec,0x23524ec,0x155a155a,0x13e3154f,0x23e023d,0x23e155a,0x155a0246,0x24f613e3,0x25c023d,0x25f1e2f,0x15ef15d8,0x1cfd054e,0x1cf8142b,0x142e142b,0x23b123b3,0x15ef1d02,0x54e1d03,0x143015ef,0x14431210,0x13ed1e11,0x199013e8,0x8671991,0x56b1608,0x120b143d,0x143e23c0,0x23c41695,0x1604120b,0x23bc1438,0x1440143a,0x14401207,0x1d0d11ff,0x14401207,0x143b1d0d,0x143a1438,0x16041438,0x1606143a,0x22ee1605,0x23c223c3,0x24e11693,0x13f0132f,0x250b13f0,0x144f022f,0x14471212,0x22f81212,0x169e1447,0x121b2300,0x144d1219,0x23cd23d3,0x1d1623ce,0x121623ce,0x12161d16,0x1d160576,0x59c1239,0x59c16cc,0x16cc2319,0x23f72319,0x22ff16cc,0x144b057d,0x24081646,0x5862322,0x144b121d,0x121c23cd,0x1b2623d5,0x9e809e9,0x1b3109e8,0xfe52143,0xffc0d3a,0xffb0ffc,0x14580fee,0x16b91d22,0x16bc23e9,0x123a161f,0x146c2318,0x232a2328,0xe671472,0xe601186,0xe640e63,0xe64118c,0x118c0e6a,0xe62118c,0xe620e63,0x11891187,0x11881189,0xe660e66,0xe670e69,0xe680e69,0xe670e65,0xe650e69,0x118b0e67,0x118a118a,0xe630e61,0x11890e62,0x1189118a,0x118a0e66,0x118a0e67,0x118a0e66,0xe5f118b,0x1deb1528,0x1de51de5,0x15281520,0x10710cb8,0x59a1072,0x1d271d2d,0x100e0d4e,0x1110100d,0x10ff0e34,0x1afc09be,0x18871887,0x212e189a,0x1b04189a,0x1212212e,0x23c61611,0x1cde239c,0x167e140d,0x23a715ea,0x72f1a33,0x72f1a31,0x8fb1a2f,0x57c1452,0xdef057f,0xdc610ed,0x3810382,0x257f039b,0x174c175b,0x11510dfc,0x123b11ab,0x146b231c,0x11190df0,0x162e1196,0x146d1630,0x231d05a1,0x231d16c5,0x16c51d2e,0x146d162e,0xdda16c5,0x11921103,0xe7f11a3,0x119d0dfe,0x114f0e25,0x1c65229b,0xb2e0b2e,0xb2d2299,0xb2c2299,0xb2d0b2d,0x229b1c66,0x26112621,0xed81cbb,0x28e0ed3,0xea90ed3,0x1245028e,0x164616de,0x9101a47,0x3561a49,0xbd800c4,0xde00de9,0x2299110e,0x22970b2e,0xe301172,0x4461153,0x254c172b,0x172e254c,0x4480444,0x254c0446,0x227c2283,0x22842284,0x1eb02286,0x243e244a,0x66314a9,0x1312021c,0x2832545,0x22bb159b,0x1c8c22bc,0xb411c8c,0x61522bb,0x181a12a0,0x18d9188c,0xc8c07e0,0xd903ab,0x43400d9,0x4340c8c,0x176017a,0x1760c8d,0x17a017a,0xc8d0c90,0x22a13d0,0x22a130e,0x130e24d9,0x1f861f87,0x1ef81ef8,0x1f891f00,0x1f871f88,0xcf81ef8,0xf820fa6,0xfaa0fa6,0xf820cd4,0xcd40fa6,0xfaf0faa,0xfaf0cdf,0xf850f98,0xf980cda,0xf980cd9,0xcd90f9d,0xf9f0f9d,0xcd90cd7,0xcd50f9d,0xcd50cd7,0xf980f9d,0xf850cda,0xcf80cf7,0xfba0cd6,0xfa10fa3,0xcf70fa1,0xcf80f81,0xcd60f82,0xfa10fba,0xfb20ce0,0xf830fb6,0xfba0fb6,0xf830cdb,0xf840fb6,0xfc80fc5,0xfc80f88,0xcd80fb2,0xf880fc5,0xd080cde,0xcdc0f87,0xfc50f87,0xf860cde,0xcde0f87,0xfbb0cdc,0xf860d08,0xf870cdc,0xf850faf,0xf880cdf,0xcd80fc8,0xcdf0faa,0xcf70cd4,0xf810cd6,0xfb20cd8,0xf840f83,0xcdb0fb6,0xf810fa1,0x211f0ce0,0x1b0e09b7,0x9c51b0e,0x9c51ae8,0x21201b09,0x9c51ae8,0x1b092120,0x9b01b0c,0x21251b0c,0x212509b1,0x9b11aeb,0x9b21aeb,0x211f09b1,0x1ae81b0e,0x9b11b0c,0x7b809b0,0x75d18ed,0x9d118ed,0x1b1618a1,0x1b1709d2,0x18a118ed,0x9d1075d,0x18a11b16,0x1fb21966,0x1e551fb0,0x2661586,0x10f70e07,0x1b9f0dd6,0xa5621b7,0x1cce1ccf,0xa8f0f3f,0x1bd12201,0x1bcf2201,0x1bb51bd1,0xa6f0a6c,0x1bfd0ab4,0xf051bfe,0xf041c93,0x13321dc1,0xe2812c5,0x11a90e82,0x112d0e0f,0xe820e7e,0x11490e28,0xb9c0bc1,0xb9c0bc0,0xbc00054,0x32a0054,0x32a0bc0,0xbc00348,0xf36051a,0x34b0f37,0x3e4034c,0x34a034c,0x34a03e4,0x3e40349,0x82a1fb1,0x19671967,0x19681963,0xe970ea3,0x256815c8,0x25750471,0x2860ec5,0x2a20ea5,0x29a02a1,0xec00edf,0x2b4029f,0xebe0ede,0x1d0711fc,0x52a11f5,0x11b611b9,0x2e0b6e,0x239d002f,0x1cde140c,0x38c0c0b,0x15eb038a,0x11e011e2,0x14c9247d,0xc814c8,0x38c00c9,0x239511e7,0x1080166b,0x10850ef6,0xeec1085,0xeec1650,0x1650164e,0x1652165e,0x107e107e,0xeef108a,0x16521651,0x165b165e,0x107f164f,0x10841086,0x10901654,0x16540ee5,0x10830ef3,0x108f1659,0x10831658,0x107e108a,0xef2164e,0x107f108b,0x10900ee5,0x165a0ef4,0x16551086,0x164d0eeb,0xef7164f,0xeed0eee,0x218a2168,0x21882188,0x21661b60,0xf161c9f,0x226d1caa,0x1c5d1c33,0x1c541c5d,0x144e226d,0x1d1a0583,0x19e419ea,0x20362036,0x19e919e5,0x15842525,0xf282524,0x1cb00f27,0x1cb90f27,0x23171cb0,0x122c1461,0x25652566,0x26111740,0x1cc80515,0xf2a1cbe,0x144c1cbc,0x16a1169d,0xf350f20,0x21a70f36,0x1b771ea5,0x122d16b9,0x14370598,0x160122f0,0x56f1d10,0x16961696,0x120f056f,0x5681202,0x1604120d,0x143b23be,0x56b1d0c,0x2c31d0e,0x24261257,0x4882581,0x10bb175d,0x10bd0023,0xe3410bb,0x3410bb2a,0xffffff0e,0xffffffff,0xbb87ffff,0xbc001f10,0x1c10bc10,0xaf10b100,0xb00b6610,0x670b6610,0xb010b00b,0xbe0b6e10,0x1b0b6c10,0x6a001900,0x6900190b,0xcb001a0b,0xf2001310,0x5a1cfe11,0x5e055a05,0xae11f205,0xa104a104,0xb5178325,0xa9259f04,0xa404e517,0xe304de17,0xe204df04,0x7004dd04,0xaa04dd04,0x70047017,0xdf25d604,0x7004e204,0xd225d704,0xd504e025,0xe404e025,0xe017a304,0xe117a304,0xd717a204,0x4c04df25,0xb402e924,0x4c02e914,0xe405e424,0x1f22181b,0xeb221922,0xe41bea1b,0x19221f1b,0x4a027822,0x4a06c91e,0xc913611e,0x77031906,0x77159a02,0x1b06c702,0x19136103,0xca06c903,0x78031a06,0xca06c902,0xc7027806,0xc8136006,0x7c136006,0x9a06c802,0x1906c915,0xc806c703,0xbe031b06,0xcf065f13,0xcd1de924,0xcd130224,0x21df124,0xeb1df113,0xc613031d,0xdf152e24,0x2f152e1d,0xbf1ddf15,0x96049504,0x17211804,0x17211b21,0x1b1ada21,0xa41ada21,0x409a809,0x781f7a08,0x7100701f,0x71034100,0xb2006f00,0x7103410b,0x410bb200,0x6d034203,0x6e006d00,0x45034500,0x41007003,0xc604d903,0x8f177e25,0x96048e25,0x76049f17,0x7f048c17,0x8e1f8d1f,0xba19fb1f,0xba08bc08,0x3c08bd08,0xf6185720,0x4108f408,0xff232d16,0x2232d23,0x223ff24,0xff164024,0x38164023,0x5123ff1d,0x221d1f14,0x4d05bb12,0x1005c523,0xdc07dd19,0x6d1f6f07,0x7a1f6c1f,0xa21ff408,0xe51deb19,0xe513031d,0x315201d,0xa6202c13,0xa608a908,0xa519d208,0xa20ec808,0xc0eb302,0xc81f001f,0xfa1f0018,0xc418c81e,0x54082118,0x56195719,0x56194619,0xed1ef319,0x5619461e,0xc41eed19,0x57195418,0x7d194419,0xba1f0c1f,0x46081518,0xc194419,0xdf18c81f,0xed18ba1e,0x4618ba1e,0x461eed19,0xc4194419,0xc8194418,0xce18c418,0x601cdb15,0x8166016,0x671cdc14,0x661b681b,0xda17d01b,0xda261217,0x12051d17,0xc91b8a26,0x420a6321,0x14151306,0xec151415,0xd3064212,0x20ad40a,0xef16741c,0x6c239a1c,0x661c671c,0x2d1c661c,0x2d1c6c0b,0x2f0b2c0b,0x2d1c610b,0x3c0b2f0b,0xbe148323,0x8302f402,0x37172423,0x3f12401d,0xfd1d6516,0xdf149416,0xc316c123,0xf016c316,0x2a122a23,0x21230512,0x8b122112,0x8b23df05,0xdf058f05,0xc323df23,0x8d122a16,0x7e06001d,0x62243924,0xc14a723,0xb724bc02,0xc80c2d24,0xf403c703,0xc90a8521,0xae1ae41b,0xae1ad809,0xd909a209,0xae1ad81a,0xd81ad909,0xac1ae11a,0xa61ae109,0xac09ad09,0xad1ae109,0x1b09a609,0x1b1ae721,0x1d09a821,0xa709a821,0xa81ae509,0x1d1ae509,0xe409ac21,0x1b1ad81a,0x1e211d21,0x1e211b21,0x251ae721,0xca26140f,0x7522ac1c,0x7522ab1c,0xab22ad1c,0x8d05bd22,0xb702d314,0x70178404,0xec11c817,0xdd11e411,0x9e02e305,0x6702e014,0xf114a923,0xe3245905,0xf40c4405,0xf4010e00,0xe00f300,0xfd1b0201,0xfd1b051a,0xc01afe1a,0x76017709,0x7a017a01,0x770c9001,0x2100301,0x54100110,0x8102821e,0x851e5802,0x5706d302,0x88241b1d,0xc60f7a14,0xa80cc30c,0x8a028b02,0x1f098502,0x1f072907,0x29072707,0x24072907,0x8a072307,0x12185d0a,0x23072907,0x24098507,0x600a8a07,0x8520f418,0x23072309,0x81097f07,0x120a8a09,0x12098e07,0x8e20fc07,0x81072309,0x8a20f409,0x7c098e0a,0x23186009,0x68072407,0x37180824,0x3b01f518,0x3b151806,0x171dc906,0x3b151815,0x18151706,0xf5064515,0x9f061301,0x75182b12,0x7f12b124,0x701d7324,0x11126e12,0x2f16c823,0x4511421d,0x450e1f11,0x1f0e2311,0x410e230e,0x410e1f11,0x1f0e1d11,0xbc12ff0e,0xe2065a13,0xc806531d,0x8c023f24,0x8e068b06,0x4069106,0x8b023f25,0x8b068f06,0x5b068e06,0x8b068f15,0x8f155b06,0x3f155c06,0x40155b02,0x33068f02,0xaf093609,0x6c093620,0x720af1a,0x2d157c03,0x2e1e2d1e,0x4d03071e,0xd91ddc06,0x410bb11d,0xa90bb203,0xa8036f00,0x6e036f00,0xa8009c03,0x9c036f00,0x2720a200,0x70209609,0x660cb110,0x1e1ec60f,0x491f1d1f,0x319021f,0x1d103c19,0xdf0d1c0d,0x511f5007,0x6b073b1f,0x1e1f5018,0x18191719,0x1f1f5a19,0xef07ec19,0xee192207,0x10191107,0x2e1f5419,0x381fb808,0x251fa608,0x111f9c08,0xf001dc25,0x9401dc01,0xbb150906,0xce0f6b0c,0xa01a640c,0xa0092820,0x281a5f20,0xa3087e09,0xc4088119,0x1f07a819,0xad07a820,0x7201f07,0xf404fc05,0xb3203825,0x8a19ed08,0xa90d9d0f,0xaa0da90d,0x4410650d,0x3f184518,0x411a0120,0x49204020,0x4f204d20,0x81016920,0xe301380c,0xe416b323,0xb216b323,0x3923e416,0x700f6e10,0xe607b50f,0xe6210718,0x818e518,0xe6210721,0x95210818,0xb6210609,0x95210707,0x9507b509,0xb507b609,0xbe093707,0x6d20ab20,0x8020aa1a,0x2b09de1a,0x2b1b331b,0x33214e1b,0x4d1b331b,0xa409de21,0x26209720,0x6b092b09,0x6b1a5e1a,0x5e092e1a,0x8e074d1a,0x4d0b2322,0x900b2307,0x591c5722,0x4d22921c,0x55229007,0x571c551c,0x11074d1c,0xc31d1516,0xa90f5f23,0xa90f640c,0x5c0caa0c,0x650f5c0f,0x650f640f,0x640cb10f,0x5c0ca90f,0xd00f640f,0xc40ccc0c,0xa70f8f0c,0xc00ca60c,0xdb1db812,0x9301db01,0xea12c013,0xab0f650c,0xcc0cd00c,0xdb0cc40c,0xc00ce00c,0x3021980c,0xaa0a320a,0xa609681a,0x6709681a,0xd720e309,0x3c24d124,0x1b24d115,0x5153c02,0xb60fba0d,0xab033f0f,0x3c043f0b,0xab043d04,0x3411fd0b,0xf811f814,0xfd11ed11,0xf911ed11,0x4211fd11,0x5132d02,0x45132d25,0x45250515,0x5154615,0x90154625,0x5f250506,0xa4106e10,0xfd0fc10d,0xc90fc60c,0xc10cfd0f,0x701b480f,0x48216a21,0x3216a1b,0x6021610a,0x60216821,0x681b4821,0x31b4821,0x450a020a,0x4821681b,0x5a16f61b,0xf816ef1d,0xe919ea19,0xf8204219,0x3d19e919,0xbd203c20,0xf419f508,0xf619f619,0xbd203d19,0x421a0008,0x4219e820,0xe819e920,0xf519e819,0xf619f619,0x8bd19,0xc01a871a,0x41094120,0x87093f09,0x83093f1a,0x5f20c31a,0x5a0e4111,0x6c0e4111,0x35116711,0x110020d,0xfe169110,0xa0143315,0xd0211509,0x7314411a,0x73055c05,0x5c057405,0xf5057405,0xad22de22,0xb01ae709,0x20211e09,0xae09b021,0xb21ae409,0xe3236209,0x9a1d7402,0x10146605,0x2e146623,0x2723ed16,0xed14661d,0x30162e23,0x9723ed12,0x3b0c980c,0x9c0c9810,0x91103b0d,0x25091820,0x15091809,0x25092509,0x91209409,0x92209420,0x92209120,0x91209020,0xc5197220,0xc519791f,0x79084c1f,0x79197219,0xf0084519,0xb600ea00,0x7e0d7c03,0x330fe20d,0x7c0d7d0d,0x81b0a0d,0xb521301b,0x940b0e1e,0xb0b0e22,0xb22940b,0x941c310b,0x51025222,0x51251702,0x17251602,0xed0da125,0xf90fd00f,0x33168d11,0x191ef714,0x791b1b1b,0x360d7e0d,0x7f0d7e10,0x7b10340d,0xef20f009,0x7620f020,0x4220ef09,0x2c104110,0x490d9b0d,0x9b0f7d10,0xd30f7d0d,0x9a0d990c,0x9a0f800d,0xd30d9b0d,0x9a0f800c,0xd20cd30d,0x800f940c,0x5d07b80f,0xba18a207,0xa418a207,0xd0210b18,0xeb21151a,0x7310580c,0x970f730f,0x970d870c,0x83103b0c,0x970d870d,0x3b0d830c,0x83103c10,0x5e1d6b0d,0x5e127423,0x7214a223,0x1514a223,0x80237217,0x1111a50e,0x180a190e,0x541b540a,0x19217b1b,0x7a217b0a,0x190a0721,0x12217b0a,0x1b217a0a,0x1b1b470a,0x6e0a1c0a,0xf187221,0xfffffff5,0xffffffff,0xffffffff,0xffffffff,0xa1cd6ff,0x217b1b49,0xa080a07,0x217b0a12,0xa081b49,0xa1b217b,0x1b47216e,0xa1c216e,0x23ec0a06,0x23e116ba,0x122923e1,0x122923ec,0x23ec2309,0x9dd2146,0xa441b14,0x219e21b2,0xf6e1039,0x10700cc2,0xf640dae,0xdb80ca3,0x13211074,0x24f80685,0x15520685,0x155224f8,0x24f824f5,0x1e97200c,0x70d070c,0x200c19b8,0x10790f5a,0x21520dc0,0x9f51b3a,0x9b51ae6,0x1f002121,0x1f0c1efa,0x1f261efa,0x195518dd,0x18dd1efa,0x1fa01955,0x1fa01f0c,0x1f0c1f09,0x80e1f06,0x1f091f7e,0x1f7e1f06,0x19551efa,0x1f7e1f0c,0x1f0c1f7d,0xfa00f9d,0xfa00f9f,0xf9f0cf5,0xa1f217e,0x18d1217d,0x7911f16,0x23531268,0x12601260,0x23582431,0xb810b80,0x4f10b4,0xc8b0050,0x1740050,0xc8a042f,0x42f0050,0xa381b70,0x1ece219e,0x74d228e,0x2292074d,0x1ecc1ecc,0x74d0751,0xa420a43,0xa4221a5,0x21a521a8,0x21a30a3a,0x1c541b75,0xb242272,0x226d2272,0x226d0b24,0x1c5d1c33,0x98020f2,0x980097e,0x97e0985,0x20f80987,0x1b65097e,0x21922191,0xa2a2191,0xa2a2192,0x21920a29,0x21921b6c,0xa3e0a29,0x21870a3f,0x1b6c0a3f,0x218c218f,0x218f0a3f,0x1b741b5e,0x21870a3e,0xa3e2186,0x1b5e2186,0x1b620a3e,0xa3f2189,0x21872189,0x1b620a3f,0x218b0a3f,0xa291b6c,0x218b218f,0xa01218c,0x1b4b219b,0xa352173,0xa0f1b68,0x1b680a0f,0xa0c1b67,0x1b5c1b67,0x1b441b5d,0x1aa52169,0x1aad096c,0x96e1aad,0xa3020e4,0xa100a0e,0x16581657,0x108f108f,0x1657108e,0xef00ef1,0xeed0ee6,0x10810eee,0x16551086,0x16551087,0x1088164d,0x16551087,0xee51088,0xef41090,0x16521651,0x165e165e,0x1651108c,0x108b108c,0x165c107f,0x1652165e,0x1b472193,0x21e4216e,0x1bbc21e2,0x1b631b5d,0x1c1c216a,0x22652264,0x22651c1c,0xafa0af9,0x1c1e1c1f,0x1c1d1c1f,0x1c1c1c1e,0x1c1d0af9,0x19bb2011,0x19bb1ea3,0x1ea31867,0x1d2916bd,0x162e162e,0x16bd16c5,0x1309152e,0x13091531,0x15300217,0x21c61b9e,0xe870a64,0x11500dc9,0xdff0dc9,0x201150,0xb6e10be,0x1a10b7,0x10d910cb,0xb7e0b4f,0xb470b48,0xb450b45,0xb431097,0xb611097,0xb430b43,0x109b0b5d,0x1109b,0xb500b43,0xb7e0012,0x109e0b4f,0xb50109f,0xb4f0b7e,0x1e891b7a,0x1e8918a0,0x18a00707,0x9840707,0x98920f7,0x18a01ac0,0x20f70707,0x20f718a0,0x18a00989,0x20fa18a0,0x1edd1edd,0xa470751,0x1b7a21ad,0x1edd18a0,0x21ad0a47,0xd3a0ff3,0x21da0d69,0xa6d1bb4,0xa7121d5,0x21da1bb3,0xa660a6a,0x10e110a5,0x21d70b95,0xa770a75,0x52b1cd9,0x52c052c,0x1cd9052a,0x525052a,0x10e910e9,0x5290528,0x1cd80528,0x52a0529,0x1cd910e9,0x11bc1cd8,0x10140529,0xd5e0d61,0xa820a83,0x21e621e6,0x21ed0a82,0x1bc121ed,0x1bc121db,0x21db1bba,0x1bb51bba,0x21db21db,0x21e621dc,0x21ed21e6,0x1bc421db,0x21e80a83,0x21e01bb6,0x21e61bb8,0x21e821dc,0x1bb621dc,0x21f321e8,0x1bb61bc4,0x21e81bc4,0x1a401bb6,0x20781a2c,0x1a2b1a2c,0x11b82078,0x5281cd8,0x21ee0a80,0x21ee0a8e,0x220121ef,0x4109d,0x1cdf10d5,0x11e815ee,0x11ea11e8,0x21fb11c0,0x21e221e4,0x126a14a1,0x126a1265,0x170514a0,0x235d14a0,0x188a1705,0xa8b0a90,0xa8d2200,0x1441188a,0x1d061610,0x12101610,0x1bbb15f5,0x21d11ba7,0x1de724c0,0x1de70206,0x13b024c3,0x1c731c72,0xb390b39,0x1c72073f,0x1a7b1a7d,0x1a7b1a7c,0x20b020b3,0x1a7b1a7c,0x1f9920b0,0x19511f96,0x81b1f96,0x19511f95,0x1f951f96,0x8191951,0x19dd081d,0x8b019da,0x19d819da,0x159c08b0,0x6cc2543,0x6cf2543,0xad806cc,0xae21c0d,0xadc1c07,0x225f1c0c,0x1c1f0afb,0x1a761a6f,0xb010932,0x1c242263,0x126305d4,0x1107126e,0x110a0ddb,0x144222f4,0x1442120b,0x23c01d13,0x1442120b,0x13ae23c0,0x12db063c,0x150b12db,0x150b13ae,0x13ae150a,0x24a6150a,0xa5724b5,0xa7321c0,0x21bc21c0,0x21d60a76,0xa7621c0,0xb1c0b26,0x4f32288,0x17b417b5,0x4f40440,0x4f404f3,0x25ee25e9,0x4f404f3,0x25e925ee,0x25ee25ea,0x111e0df5,0x162a0df8,0x145d059c,0x1239059c,0x1232145d,0x145d23e6,0x12321239,0xe0a145d,0x1129112b,0x125a241f,0x233505bd,0x5a31d41,0x1d3b1d41,0x1d3b05a3,0x5a305a2,0xe0d0e05,0xd7d0e12,0x10341012,0x10351012,0x10341036,0x10361012,0x112f0e13,0x14350e12,0x5661208,0x143c1208,0x1a050566,0x1f1b08c4,0x1f011f20,0x1f201a06,0x8c71a06,0x1f1b1a05,0x1ce71f20,0x140a1664,0x1f711f72,0x257b192b,0x4760482,0xe5e118a,0xbfe0e5a,0xc000bfd,0x19531f9c,0x19531954,0x19541957,0x8211954,0x8211f9c,0x1f9f1f9d,0xd9a1047,0xd9a0d89,0xd881057,0xdc20e0e,0xbe80e27,0xbee0bef,0xeaa028f,0x1ddc02aa,0x2091ddd,0x12e913a7,0xdbb12df,0xdbd0ca1,0x105f0ce9,0x11c61062,0x1ce10533,0xe6e10f6,0x22650e70,0xaf92257,0x1c1a2257,0x1c1a0af9,0x1c1e1c1b,0x1d15144c,0x1d150581,0x144e22f9,0xd110d1e,0xd110d33,0xd330d0f,0xfef0d0f,0xd660d33,0xd18101e,0x1b1f1b21,0xddb1b20,0x113c10fa,0x11af0dce,0xe0f0e84,0xe7e0e11,0xe820e28,0x260e11a9,0xf1617ce,0x261317ce,0x11a31caa,0xdfe0e7f,0x6750231,0x13cf13cf,0x2311534,0x1df81534,0x1df80672,0x6721311,0x15441311,0x16290672,0x1d261d2e,0x16c81d2e,0x11c31d26,0x1672166a,0x141911d5,0x14081661,0x11d51660,0x23a01660,0x218d11d5,0x216a0a03,0x2d21496,0x22ea1d61,0x15ff1d0a,0x913091a,0x1a532089,0x91a091e,0x93720bc,0x18771877,0x20bc0731,0x7270731,0x16c6093a,0x231423f2,0x8600868,0xaf1085f,0xae82259,0xaf22259,0xaf20af6,0xaf60af5,0xaf40af5,0xaf60ae5,0xae50af5,0xf571078,0x16080c9a,0x1d0e056b,0x23c4120a,0x17bc120b,0x5020501,0x56f1696,0x1255120f,0x23492345,0x1213120d,0x12181d15,0x161323d1,0x169e1219,0x169e121a,0x121a2300,0x23f20599,0x144f2318,0x12141212,0x22f81212,0x57a1214,0x22fb22fa,0xdae1070,0x120e0cb0,0x1219160d,0xf2a1cbc,0x1cbd1cbd,0xf2d1cbf,0xf120f2d,0xf121cbd,0x1cbc1ca0,0xf0d1ca0,0xf0d1cae,0x1cb00f28,0xf0d1cae,0x1cbc1cb0,0xf121cbd,0x121f144c,0x10f716a3,0x10fa10f0,0x1d1d1220,0x5870587,0x122023d5,0x121c23d5,0xde01220,0xe761105,0x121c16a4,0x1d161d16,0x14551617,0x16a416a5,0x1d1e1d16,0x16161450,0x5871616,0x761d1d,0x3450070,0x6e0345,0x23d80074,0x16b316a6,0x140017,0x9040b74,0x9072076,0x9052076,0x22010907,0x21eb21ef,0xa7e21eb,0x16c11bcf,0x230a16c3,0xa741b97,0xa7421d4,0x21d40a72,0x12261457,0x23180589,0x5a023f2,0x142011db,0x142022d3,0x22d311dd,0x1cf122d3,0x22d31674,0x11da1674,0x16b91d22,0x16dd1623,0x1d3f240b,0x728072d,0x72821a7,0x21a71ea5,0x20b61a7a,0x184e072d,0x72d0734,0x9380734,0x938072d,0x72d1a7a,0x21a7072d,0xa450a45,0x184e21a4,0x1c571c59,0x1c570b0f,0xb101c55,0x1c2d0b10,0x1c570b0f,0xb0f0b10,0x1c5c0b25,0x1c5c226b,0xb0f1c59,0x3520351,0x22f40353,0x1d051444,0x5751444,0x98411f6,0x20f61e8b,0x1abc1e8b,0x1a920982,0x20d31a9d,0x20d520d3,0x20d51a93,0x9550959,0x20d51a93,0x5a20955,0x16d61d3b,0x1f9b1f9e,0x7790779,0x1f9e1eee,0x1eed1eee,0x1ef31ef3,0x1f9e1956,0x22ff1218,0x15a11695,0x134f1e56,0x5bd148b,0x1d5c242b,0x242602cb,0x5c12426,0x5bf05c2,0x16fa02cd,0x1d62125b,0x125c16fe,0x1d5f234c,0x1d581d5d,0x24252425,0x24282349,0x1d5d1492,0x1f842425,0x1f831f85,0x18ba0815,0x18e81f84,0x1f3007ac,0x23502431,0x23501261,0x170505c8,0x5c81705,0x1d641d64,0x126502d5,0x15630245,0x2430243,0x2451564,0x235405d4,0x23541263,0x12632356,0x126e05dc,0x159e1263,0x6c8253f,0x145c1225,0x1a7416b6,0x20b220b4,0xb101c2d,0x1c551c55,0x1c561c57,0x1c2d1897,0x126a1c55,0x23732450,0x2eb14b1,0x126b02ea,0x127714a3,0x14a514a9,0x1d8c14a7,0x128002f5,0x2f314bb,0x8d705fa,0x20522056,0x17242383,0x23831284,0x246302f4,0x24b6064a,0x18220207,0x1da41823,0x6191823,0x61912a6,0x12a401bc,0x1d9a17f8,0x1da2129d,0x1a51d93,0x17041d6d,0x1dc205d6,0x249e1503,0x12cd249f,0x78612cc,0x90c2083,0x90c0786,0x77b2081,0x20810785,0x7860785,0x20842081,0x90b18c0,0x77b18c0,0x12d4090b,0x12d301ee,0x12d612d7,0x65a01ef,0x1dd2064a,0x64a065a,0x22f913b0,0x22ef1445,0x14872345,0x21af148a,0xa491b7f,0xa3b1b7f,0xa3b0a49,0x1b740a3c,0x1b800a49,0x130321af,0x152d1302,0x660152d,0x1d581303,0x23441d4f,0x8c119fd,0x8c119fa,0x19fa08be,0x19fc08be,0x2842039,0x1e352544,0x130c0227,0x24d5153e,0x24db24d3,0x2e3149d,0xd632362,0x10140d57,0x19b3200e,0x19b3200c,0x200c088f,0x19b8200c,0x1f12200e,0x19841fda,0x19841f12,0x1f170862,0x1f120796,0x1f171f16,0x1f161f12,0x18d11f12,0x8621f12,0x18d11f0b,0x7991f12,0x1f120799,0x198d1f0b,0x1f051fe2,0x198d0862,0x1f051f05,0x7881ef1,0x1f050862,0x79a1f0b,0x1f0b0799,0x7881f05,0x1f0b1f0b,0x18d71f23,0x18d81f23,0x1f0b18d7,0x79b18d7,0x45f0457,0x45f1736,0x1736045e,0x1fbf0858,0x8581fba,0x19821fba,0x1fb91fba,0x8591982,0x83a1982,0x1fd7196f,0x1fd70838,0x8390859,0x8380839,0x19821fd7,0x83a1fb9,0x839196c,0x25050859,0x25030240,0x8480849,0x8480846,0x8461974,0x155c0690,0x84a1328,0x19781fd4,0x8551fd4,0x84b1fd6,0x1fd61fd4,0x1a0e08d6,0x1a0e204c,0x204c204b,0x1a0f204b,0x1a0f08d0,0x8d01a11,0x204e08d0,0xf93204b,0xf731058,0xc970f73,0xc971040,0x103d103b,0xc971040,0x103b103d,0x103d103c,0xbec00c4,0x1dc30bd9,0x1e413f5,0x14fe2498,0x121b1333,0x1d110578,0x56e1d11,0x56e121b,0x1219160d,0x13f60698,0x13f61338,0x24f1e20,0x2512516,0x5780253,0x16961d11,0x160d1696,0x160d1d17,0x1d171219,0x14001338,0x2528133e,0x157c02fd,0x247c01cd,0x134f181f,0x1e34025f,0x1e2f025f,0x1e2e1e34,0x6b8134f,0x6b302fe,0x1e431e35,0x252d030d,0x6c4253b,0x21751598,0x1b4c2176,0x21632178,0x2163216b,0x216b1b46,0x1b4c2175,0xa052178,0x216b0a04,0x2175216b,0x25422178,0x1e4f2544,0x159e0321,0x15a1159f,0x136a06ce,0x24c212ff,0x25271300,0x6cd2542,0x1e3a06bb,0x248026b,0x14fc0693,0x1e521e32,0x18b0321,0x15b306db,0x1e631e77,0x14b306d4,0x2376171c,0x5e62376,0x5e614b3,0x14b3170f,0x5ee170f,0x138114b3,0x15a915ab,0x66c1533,0x249e0227,0x1e91503,0x12cb01e9,0x24c301e6,0x1dd21de8,0xdf5111e,0x1a030dfd,0x18d01a0b,0x7891a0b,0x79c18d0,0x1f1f08c4,0x1a0308c4,0x18d318d3,0x8c41f1f,0x85a1fdb,0x85a1fda,0x1fda1984,0x85d1fda,0x85d1fdb,0x1fdb1987,0x21a1df4,0x22013ca,0x6651df6,0x149505cd,0x155502d1,0x2502068a,0xbc40078,0xbc40334,0x3340ba7,0x1eed18b3,0x19271f67,0x18b2192d,0x1f6718b3,0xaf21927,0xafc2260,0x225f0afc,0xaf5225d,0xafc0af2,0x25c225b3,0x25c2178a,0x178a04d6,0x156714fb,0x139d1504,0x13341567,0x2491334,0x17ed139d,0x129501b0,0x53922cd,0x5410541,0x53c0542,0x15dd11ce,0x53d053d,0x53b11cd,0x141c15da,0x1ce51cea,0x141e238d,0x235c02dd,0x1d771d77,0x2dd05eb,0x1d7305e0,0xb3d05dc,0xb4222bd,0x1c890b42,0x1c7e1c7e,0xb3d1875,0xed30ea9,0x1c7202aa,0x1c7a1c73,0x22b11c7a,0x22b71c72,0xb3f1c82,0xb401c82,0x22b91c86,0x1c861c82,0x1d0111f7,0x57811f3,0x143f1d11,0x8a808a7,0x144e2029,0x1453144f,0x121523cb,0x1d20121e,0x16a823d6,0x121d23d6,0x121d16a8,0x16a80586,0x5871454,0x23d523d5,0x1454121c,0x14530588,0x16a81223,0x16b01222,0x1f2d1be3,0x1f2c1f2c,0xa9807a4,0x18e307a4,0x22730a98,0x1c46227b,0xb1a227b,0x1c461c46,0x22731c47,0xd84103d,0x23ef0d85,0x23e4162c,0x207e2082,0x15412080,0x22e1315,0x15411315,0x24d324d3,0x671022b,0x23f21234,0x19c52318,0x202f201c,0x8ac201c,0x146f202f,0x14701638,0x16391638,0x16391470,0x232305a6,0x16452323,0x23231477,0x14701477,0x232b23f7,0x79823f8,0x1f22081d,0x1952081d,0x1f971f22,0x1f26081a,0x18dd081a,0x1f221f26,0x1f971952,0x234d1495,0x2318148b,0x231a23f2,0x1f860816,0x1efa1ef8,0x81318c8,0x1fa018c8,0x8131f09,0x80b18c8,0x1f061f09,0x1f06080b,0x80b080e,0x80b1f09,0x81618c8,0x1efa1ef8,0x5c01d61,0x16f91491,0x1d5e02ca,0x242402ca,0x24241d5e,0x14931d56,0x15d31cf8,0x5be2395,0x1d5d1492,0x5ca1498,0x55316f9,0x15cf0530,0x234d1701,0x1baf1495,0x1ba721d1,0x5d4149b,0x5d41498,0x149805ca,0x1d661498,0x1708149b,0x24371702,0x17031702,0x24372437,0x14a514a7,0x9081a42,0x9081a26,0x1a271a2a,0x90808eb,0x1a2a1a27,0x1a2708f0,0x1a3f08ef,0x20611a42,0x8ef1a25,0x20611a26,0x90808ef,0x1a2608eb,0x1e6306d4,0x1e630184,0x13701372,0x1e5e06d8,0x1e630185,0x1841370,0x6d81372,0x137015a9,0x15ab1372,0x1e61137c,0x18406d4,0x6d4137c,0x18506d8,0x6d815aa,0x15a915aa,0x1a3f2077,0x9030903,0x9060905,0x9070906,0x9070903,0x9030904,0x17151d7a,0x1713170a,0x2dd14a3,0x24b6064a,0x24b61dd2,0x1dd20207,0x6830686,0x22b3154d,0x1c8a0b3a,0x12da24a5,0x12da24a4,0x24a412d7,0x12d612d7,0x114b24a4,0x10ea0e2c,0xdc50e2c,0x10ea10ea,0x114b114d,0x1de51520,0x1de50654,0x6540655,0x12fa1525,0x12fa12fc,0x12fc0650,0x12f612fc,0x151f1525,0x24bb0656,0x20b24bb,0x13b8151f,0x13021de9,0x24c41de8,0x106a0211,0xdac105b,0x105c105b,0x105c0dac,0x106c105d,0x6ce0268,0x153d15a1,0x225153f,0x1b700a38,0x13061b6d,0x1525065c,0x65f1525,0x21524cf,0x15251306,0x13da24e9,0x51024ed,0x17c617c8,0x9ac1ad6,0x1ae41ae4,0x1ad809ae,0x9a209ae,0x1ad81ad9,0x1ad909ae,0xd9f105a,0x25961066,0x4b81774,0x176e1774,0x157604b8,0x157306a4,0xa200a17,0x1b541b54,0xa19217b,0x217a217b,0x1b490a07,0x407217b,0x216d9311,0x1b471b47,0xda7a0a07,0xfffff110,0xa082fff,0x217b0a12,0xa190a12,0xa13217b,0x1b540a17,0xa131b4d,0x21771b54,0x1b541b4d,0xa191b54,0x76c0a14,0x1f0818e0,0x18dc18e0,0x14411f08,0x11f41d06,0x307157c,0x2592528,0x251b1573,0x16a323dd,0x121f121f,0x12231453,0x15911590,0x15911e3e,0x1e3e2531,0x25321e3e,0x25321590,0x15900311,0x3250285,0x15f61e57,0x56515fe,0xbcc0bd5,0x1b8a0bcb,0x21b521bb,0xa5621bb,0x21b521b5,0xa5a0a4d,0x1978084b,0x19781fd4,0x1fd4084a,0x8551fd4,0x25401fd6,0x254615a2,0x31f2546,0x5571367,0x142a1686,0x6fa06fb,0x6fa1e82,0x183c06f9,0x6f5183c,0x6fa1e82,0x1e82183c,0x1e841840,0x120606fb,0x16070569,0x16020569,0x16021607,0x16071435,0x1d0a1435,0x23ba23bf,0x1d1123c7,0x169623c7,0x1d111d11,0x23ba1603,0x23c4160a,0x160c160c,0x160a160b,0x23c0160b,0x23c3160a,0x56822eb,0x1e0f1325,0x12061e04,0x16121607,0x1614160a,0x15de144d,0x23a122cf,0x16431634,0x1643124c,0x124c1637,0x1647124c,0x12301634,0x162423ea,0x2ba171e,0x16ab02bc,0x161a1619,0x123516c0,0x16c516c7,0x16291d2e,0x123c059f,0x123c162d,0x162d162e,0x59a162d,0x5b3059e,0x2413240e,0x23392413,0x233905b3,0x24112412,0x1f7a193d,0x9cb0802,0x1f271b10,0x1b0f18da,0x16dc09cb,0x5a3240c,0x25ec25eb,0x23ad25ef,0x166b2395,0xef60ef5,0x16511080,0x165e1652,0x165b164f,0xee5165a,0x10841654,0xef41084,0x165f0ee5,0xee30ee2,0x10831658,0xef30ef3,0x1657108d,0xee7108d,0xeec1657,0x107e165c,0x22da1cf9,0x23af0537,0x22dc1684,0x20ca076e,0x76e094a,0x18b0094a,0x949094a,0x77c18b0,0x1ef420d0,0x77c18c2,0x18bd1ef4,0x1ef418c2,0x1ef418bd,0x76d076e,0x76e18bd,0x76e076d,0x18b018b0,0x1a8b0949,0x18b018b5,0x18b51a8b,0x9471a8b,0x18b518bc,0x18bc0947,0x20c60947,0x18bc0780,0x78020c6,0x94b20c6,0x76c18e0,0x21321f19,0x18e009c9,0x21330774,0x18ce2132,0x7741f04,0x1f2d1f2c,0x1f2d20c8,0x20c80a9f,0x20c81f2c,0x18ce1f34,0x21320774,0x18e02132,0x1f191f19,0x94b0780,0x20c720c8,0x21321f34,0x18ce1f19,0x94b1f19,0x94b18ce,0xa9f20c8,0x94b18ce,0x1f340a9f,0x1b3a1f35,0x1b3a1f34,0x14651f2c,0x16c916c0,0x2344234a,0x22eb2345,0x22ef0568,0x18f15b7,0x18f1e6f,0x1e6f018d,0x6e1018d,0x1e6f1e6f,0x137a06e4,0x6e306e4,0x137a137a,0x15ae15b6,0x1e6715b6,0x1e7015ae,0x1e6f15b7,0x137a1e6f,0x13751e70,0x137415ac,0x6da15ac,0x137a1374,0x1e7015ae,0x13751e67,0x137515ae,0x15ae1374,0x1e701e6b,0x18b1e6c,0x15b21e6a,0x15ae1e70,0x18b1e6c,0x1e6915b2,0x1e6b15b2,0x12061e69,0x16940569,0x16020569,0xf4024094,0xc516953d,0x6f169623,0x6b22ee05,0x53160605,0x1c241d1d,0x4816f224,0x53242223,0xf2241c1d,0x53242016,0xf216f21d,0xf4242216,0x52055f16,0xf7142f05,0x94120622,0x53155616,0x53250d15,0xd13e615,0x6816bd25,0x162f14,0xf211dc00,0xffffffff,0xffffffff,0xffffffff,0x2cffffff,0x10000,0xb45,0x10970b45,0x169a0000,0x121623cf,0x5761216,0x169d169a,0x1d15144c,0x22f91d15,0x1e1f169d,0x6362510,0x1dc50636,0x1dc51e1f,0x1e1f0695,0x12c20695,0x169d249b,0x1453144f,0x161d16a1,0x161d23dd,0x145316a1,0x121c16a4,0x5850585,0x16a5169f,0x14551617,0x1455169a,0x169a16a5,0x16ad16ae,0x1c51230e,0x1c2e0b21,0xb090b21,0x1c2e1c2e,0x1c512272,0x23f016c3,0x18b7122a,0x7691fdc,0x77f1fdc,0x77f0769,0x7811efe,0x1efb1efe,0x76a0781,0x76918b7,0x7691ef2,0x77f077f,0x77d0781,0x162323e8,0x226d162a,0x1c382272,0x1c2e2272,0x1c2e1c2f,0x1c2f0b08,0x1c301c2f,0x1c380b11,0x226d2271,0xb111c2f,0x1cfe1c38,0x16810556,0x23f21234,0x23b116c7,0x23aa1d02,0x44d04e4,0x44f044f,0x4e404f7,0x4f904f7,0x4e404f8,0x25f304f7,0x17b504f8,0x17b504f7,0x25f304f3,0x4f604f3,0x159425f3,0x252e026d,0x4e925df,0x17ac17ac,0x4ee25e5,0x17ab04ee,0x166617ac,0x16882390,0xe7b0e7d,0x233c113f,0x16e402be,0x242716fd,0x24271494,0x149416f5,0x125d16f5,0x125d242a,0x242a16fc,0x16fa16ff,0x2cd02cd,0x16ff1490,0x1d101d11,0x56f056f,0x56e120f,0x160d120f,0x458056e,0x4570456,0x25560456,0x25560457,0x4570455,0x4542558,0x5ca0458,0x16ff05d5,0x243805d5,0x235616ff,0x235402d9,0x5d502d9,0x5dc2354,0x2d9170c,0x1ab60979,0x1b0f097b,0x9c809c9,0x213209c9,0x213209c8,0x1b112133,0x9c709c8,0x25601b0f,0x2551044e,0x2e42447,0x16b9126d,0x162a0598,0x25620467,0x24ea1742,0x24ff24fc,0x23524ff,0x24fd24fd,0x24e2023b,0x24e3023b,0x24e224e2,0x24ea24e9,0x24ff24ea,0x1d6d24e2,0x17041709,0x1d6b1709,0x236c1262,0x23681270,0x24a156a,0x46213fb,0x45f255d,0x10120d7d,0x10121034,0x10361035,0x10121034,0x23341036,0x23f61248,0x16dc1248,0x23f623f6,0x16db1648,0x12be1db6,0xf9c1db5,0xf9d0f9e,0xcf30f9e,0x11390f9d,0xdee0e19,0x1b8821b6,0xa4e0a4e,0x1b870a4f,0xa530a4f,0x45a1b87,0x173b255a,0x4681744,0x4c51743,0x176d25ba,0x25850489,0x258a0487,0x1763048b,0x17621763,0x1762258b,0x258c1767,0x17661767,0x258c258c,0x258e258d,0x1764258e,0x17641762,0x17621765,0x258b1765,0x25971762,0x49d1775,0x17731775,0x4b2049d,0x25951771,0x21031acd,0x21032116,0x1ada09a5,0x1ada2116,0x25a92117,0x259f04a4,0x4b11781,0x49204ac,0x176d176b,0x176c176b,0x176c176d,0x176d0491,0x496176d,0x4960492,0x4940495,0x4960493,0x4930494,0x492176e,0x4bb25ae,0x17881788,0x25b025af,0x4ba25b0,0x1f211788,0x74407e0,0x25be04cb,0x1e1925b4,0x15641323,0x24fe1323,0x1e1a1e0c,0x1e0c1323,0x25ad178f,0x179104c2,0x4c925b7,0x4c425bf,0x4cf25b8,0x25bc178c,0x4d004d3,0x4b604c1,0x4a51783,0x4e304de,0x17a904df,0x17a817a7,0x17a417a7,0x25cf17a8,0x17a417a6,0x179704d7,0x4dc25d0,0x25d3179e,0x4cb25be,0x4cb04ca,0x4ca178e,0x25bd178e,0x145b178f,0x16b21236,0x5921236,0x12516b3,0xc580c5d,0xc5e0c5d,0xc580c58,0x3e70c59,0x20fa098c,0x20fa1ac0,0x1ac00989,0x21362131,0x1b161b16,0x213109d1,0x256c1751,0x179a2581,0x48b25c9,0x179e25c9,0x179e04db,0x4d504dc,0x179504dc,0x179504d5,0x25c225c8,0x25ca25c8,0x25c204d6,0x4d625c8,0x25c725ca,0x25c725c3,0x25cb1797,0x4d71797,0x4d725c5,0x25c525c4,0x25c425c5,0x25c41796,0x179625cd,0x175f25cd,0x25cd25ce,0x179625ce,0x179804d8,0x1798048b,0x48b179a,0x1760258a,0x179d04d8,0x48b179f,0x258a048b,0x4da04d8,0x25c9179d,0x48b179d,0x179c25c9,0x25c904da,0x179925c5,0x25c525c6,0x179725c6,0x4d925c6,0x4db1797,0x25c9179c,0x4d91797,0x4d525cb,0x179e04d1,0x25cc04d1,0x25cc179e,0x179e04db,0x25cb25c7,0x179b179b,0x25c71794,0x25c31794,0x25ca25c7,0x4d625c3,0x4d504d4,0x26091795,0x2611260a,0x17330450,0x18ae17d3,0x193f193c,0x1f771938,0x1f771937,0x19371935,0x193f18ae,0x5241937,0x52117e1,0x4a904aa,0x175f176a,0x175d1760,0x258a1760,0x258b175e,0x17611765,0x4971765,0x175d1761,0x175f2588,0x175d175e,0x25891760,0x48a049f,0x258f048a,0x258f2589,0x25892587,0x25872589,0x25892586,0x17612586,0x25852586,0x17611761,0x4892585,0x175e2584,0x258b258a,0x4891761,0x25840489,0x4a3258b,0x48d177a,0x17621767,0x17621772,0x1772048b,0x179f048b,0x258e1772,0x4981778,0x179f049a,0x496179d,0x25ba176d,0x4990492,0x8b5176f,0x19f42035,0x1c591c56,0x14e71c5c,0x1c82486,0x12aa12a9,0xf6a12a8,0x107c0f67,0x1ff10875,0xa40878,0xa5036c,0xdc90dc1,0x11d20dc5,0x11d8239e,0x156d069b,0x6a106a1,0x69b1e26,0x1f6b1f69,0x1bb31f75,0x1ba60a71,0x20ff0988,0x98a098a,0x20f920fe,0x1ac120fe,0x68220f9,0x131b250f,0x13e2250f,0x13e2131b,0x131d0236,0x131e0236,0x131d131d,0x13e2131b,0x2477181d,0x23d917f1,0x23db16a2,0x161816a2,0x181c23db,0x17f117f0,0xf421cd1,0xf820f43,0xf6c0cd4,0x1fa018c8,0x1f9d1f9d,0x18c40821,0x23c622ef,0x22f922f9,0x22ef1d15,0xd3c0d3e,0xd3c0d3d,0xd2e0d3b,0x22b71c82,0x1c881c88,0x1c821c8b,0x22be1c8b,0x22be1c82,0x1c821c8d,0x22ba1c8d,0x22ba1c82,0x1c821c8c,0x6710675,0x67113d0,0x13d0022a,0x2d11d60,0x2d105cd,0x5cd05ce,0x170105cd,0x1f361d60,0x18ed07b2,0x18ed1f36,0x7b907b8,0x7b81f36,0x18eb07ba,0x1f3707bb,0x7b807b9,0x7bb07ba,0x1a051f37,0x79c08c4,0x1f1f079c,0x1f1f1a06,0x1a06079f,0x1f0a079f,0x79f1f01,0x1a061f01,0x1a0508c7,0xf73079c,0xf6b0f74,0xcbb0f6b,0xcbb0f6a,0xf6a0f67,0xc990f6a,0xc970c97,0xf6a0f73,0x84e0849,0x17d11fc8,0x1cca2616,0x1cbb2616,0x1ce11cc9,0x23971413,0x14121413,0x1ce32397,0x1ce11ce2,0x12a51820,0x11d51293,0x11d923a0,0x253d253e,0x253d06cf,0x2543159c,0x164123ff,0x230c232d,0x58f230a,0x161e058f,0x161e230c,0x230c1225,0x204708cd,0x76f076f,0x8cd1ee8,0x18b41ee8,0x18b408cd,0x8cd0768,0x1eec0768,0x1eec1a0c,0x1a0d0774,0x1f040774,0x7871a08,0x8cc0789,0x1a0b0789,0x77408cc,0x1a0d1a08,0x7871f04,0x7681a08,0x8cd1a0c,0x8cc0787,0x1a0d2048,0x1eec1a0c,0x188c18d9,0x18521ebf,0x190418ac,0x19081909,0x1efb1907,0x186b18c5,0x190618c5,0x1912186b,0x190a190f,0x18a3189b,0x20f807bb,0x9771ab4,0x1ab00977,0x193a20f8,0x193e193d,0xf810f6d,0xcd60cd6,0xcbd0f82,0x19400805,0x1e7e0808,0x1e7d183d,0x1e811e7d,0x1eab1e97,0x1e7d0732,0x1e880732,0x1e7d1e7e,0x1e7e0732,0x19451f92,0x1ebd080c,0xb1d2285,0x1a741a6d,0x1a740933,0x9330936,0x195018dd,0x1af41955,0x9ba09bb,0x212409ba,0x4e02123,0x17c525d2,0x5ef02ec,0x1ab91d7f,0x185f097f,0x1abb097f,0x1abb0981,0x20f320f8,0x1abd20f8,0x27620f3,0x31c06c5,0x158906c6,0x256c0276,0x256b1751,0x4721751,0x256d256b,0x17c3046f,0x2603046f,0x47217c3,0x256b256d,0x256d0509,0x50917c3,0x256d256b,0x25dc256b,0x25dc1752,0x46b25df,0x44b25df,0x46b046c,0x46c25df,0x2573046b,0x257325dc,0x25dc174e,0x477174e,0x256b25dc,0x256c1752,0x14001575,0x13381338,0x1575024f,0x253024f,0x19e11571,0x19db19dc,0x203119db,0x203119df,0x8b819d9,0x203119df,0x19d108b9,0x8b619d5,0x8b619d1,0x19e02037,0x19db19e1,0x19e019df,0x19d319db,0x8b419d1,0x203719d1,0x8b908b4,0x8b82031,0x8b419d3,0x19d32035,0x8b52035,0x8b519d3,0x8b519d9,0x19d908b7,0x1538022c,0x2200220,0x1dfb066b,0x1b281b29,0x154809e7,0x154e1e06,0x1eae1ea0,0x21fd0a89,0x1ea00a8c,0x21ff0a8c,0xd971ea0,0x10410d86,0x103e0d86,0x10411041,0xd971042,0x25e204ea,0x25dd25dd,0x4ea25db,0x1ba321ca,0x19fe1ba2,0x20421a01,0xdcd0dce,0xdcd0dca,0xdc70dcb,0xdcd0dca,0xdca0dc7,0xdce0dcc,0x2379235f,0x237905db,0x5db1717,0x162b16b6,0xf2316c1,0xf261cc4,0xf071cc4,0x17980f26,0x25d704e2,0x1ee20803,0x795193b,0x210e07a0,0x210e0795,0x99f2110,0x1ad5078d,0x795078d,0x14601ad5,0x16aa145f,0x23ae1ce1,0x1a2e1cfc,0x8f708f8,0x1a3508f7,0x1a3508f5,0x1a32206c,0x1a3508f5,0x8f51a32,0x1a2e08fa,0x208718cc,0x1a480911,0x18c9090f,0x91118cc,0x24f71a48,0x24e924f9,0x24f824f9,0x24e924f5,0x24f224f5,0x24f524f9,0x13de24e9,0x24e924ef,0x24eb24ef,0x24e924ea,0x24ea24ef,0x13de24f2,0x250f24e9,0x250e24ed,0x24ec24ed,0x250e1325,0x132524ed,0x23524ec,0x24e91e11,0x24f7250f,0x24f7250d,0x2501250f,0x250f2500,0x250d2500,0x1e19250f,0x15612508,0x25012508,0x1561250e,0x25062508,0x24ff24f6,0x250e24fc,0x25082506,0x24f61561,0x24fc24fc,0x15611e19,0x1e1124ec,0x91b1325,0x914208c,0x1a52208c,0x1a52208d,0x91c2093,0x91f2093,0x17b4091c,0x25480441,0x25490441,0x254917ad,0x17ad2547,0x928209a,0x20b41a5b,0x1a6d1a74,0xd810d15,0xd810d82,0x10580f73,0x19411942,0x18b81f77,0x94a20ca,0x949094a,0x260c18b1,0x260b17df,0x17de17df,0x23e5260b,0x16c01235,0x10291031,0xd761030,0x1031102f,0x11581164,0x11580e43,0xe430e3a,0xdcf0dc4,0x117a0dc8,0x116e115b,0xe3f115b,0xe4a0e4b,0xe4b115b,0x20f30981,0x1a6c1abd,0x9361a70,0x1a751a70,0x1a750933,0x93320ac,0x98c1ac0,0x1a8620fa,0x94420c1,0x9960763,0x21042104,0x7bc1acc,0x16b216b3,0x201f145b,0x19c519c8,0x202319c8,0x19c5201c,0x201c19c8,0x98420f7,0x9841abe,0x1abe20f6,0x20f520f6,0x8661abe,0x86a198e,0x1ff3198e,0xa67086a,0x1b9e0a5b,0x943093e,0x7a31a86,0x201e079d,0x8a0079d,0x2152201e,0x9f51b3a,0x1f8d1f8e,0x1e9d1f91,0x7781ef6,0x186318bf,0x18631ef7,0x1ef71864,0x1b181864,0x1ef61b19,0x71b1e9d,0x254d0442,0x18502547,0x9dd2146,0x1b2c1b33,0x9eb1b2b,0x9dd09ed,0x1ace210d,0x1f1018e5,0x210c099d,0x18e5210d,0x1cfb1f10,0x11f61d05,0x55a11f6,0x55a0554,0x5541cfe,0x21631b43,0x8742178,0x19990871,0x19970871,0x19970873,0x870086e,0x19990873,0xa100871,0x21732172,0x21980a30,0x217d0a26,0x1b530a22,0xa231b53,0xa23217d,0x1b552181,0xa252181,0x1b4f1b55,0x1b501b4e,0x1d7402e5,0x126c2370,0x1712243b,0x2150662,0xa3313c3,0x219a219b,0x21820a26,0x36a0a2f,0x9f0c7a,0x1fe61993,0x5611fea,0x56022e3,0x168d22e3,0x18bf0560,0x189407a2,0xf9a0f99,0xf9a0f97,0xf970cee,0xa7521d7,0x185d0a77,0x1bd41bd1,0x1bb71bbb,0x1c5e1ba8,0x1c5b187a,0x1390c6f,0x1390c6b,0xa2013a,0xf3317cc,0x22330f34,0x22272234,0x223b223a,0x80a0ac9,0x1f771941,0x1fa063e,0x1f901f9,0x63e24a9,0x1f424a9,0x1c211dca,0x22610aff,0x22630b01,0x1c221c24,0x1c2a1c23,0x1fdf1ee9,0x1fe01fe0,0x1ef91fdc,0xb480b86,0xb480039,0x390001,0x10a40001,0x13e30039,0x1e112506,0x2351e11,0x23513e3,0x13e324ff,0x4541740,0x25572557,0x1741044e,0x1895189d,0x18951ed7,0x1ed7189e,0x1e500279,0x1a8c1e57,0x20c70948,0x20c50948,0x20c720c7,0x1a8c20c8,0x94b20c8,0x1c5a1a89,0x1c5f1c5d,0x22881c4d,0xab10b1f,0xa9d1be1,0x1be00a9d,0x20640ab1,0x205a205c,0x8e2205a,0xb352063,0x22a30b36,0xacf0acc,0xacf223a,0x223a0acd,0x2239223a,0x11790acc,0x11700e4f,0x11600e4f,0x11601170,0x11810e3e,0x11650e3e,0x11811183,0x11830e3e,0xe471165,0x11631163,0x11651183,0xe5c1181,0x1c4e1160,0x22890b1e,0x19f819ea,0x1a021a02,0x19f72043,0x19ec19f7,0x19eb19eb,0x19f719ea,0x19991ff3,0x199919a0,0x1ff90873,0x199919a0,0x19a01ff9,0x1ff3199f,0x19951ffa,0x1ffb1994,0x19941ffa,0x1ffb199d,0x1ff31994,0x199d199f,0x1c881c84,0xf2c22b7,0xf011cc0,0xf170f0c,0xfcf0f16,0x1011100b,0xd541011,0x26160d1b,0xf1a2617,0xf1a1cbb,0xf1e260a,0x260a2611,0x514260d,0x51b0f17,0x1cc70f38,0x1ccd1c96,0x1cae0f41,0x1cc31cb5,0x1ccd0f45,0xf3e0f42,0x1cce0f3f,0xf390f46,0xa6e1ccb,0x1ba91baa,0xa701ba9,0xa700a6e,0xa6e21cb,0x1bb221cb,0x1bb21bab,0xa6b1ba6,0xa6b1bb2,0xea21bab,0xe930e95,0xe930ea1,0xff00e97,0xd7c0d7d,0xeab0ed4,0x13e40ea4,0x13d813d6,0x23313d6,0x13d824e7,0x24e713d6,0xb4910a3,0x10a510a5,0xe000d,0x10a9000e,0x10a910a5,0x10a5000c,0xb59000c,0x10a310a5,0xb5a10a5,0x15d615d5,0x15d715d7,0x11ca22c9,0x1cf31cf4,0x1cf323a6,0x23a61cf0,0x1cf10547,0x1cf111da,0x11da1674,0x24032405,0x2403232d,0x232d1476,0x12d112cd,0x141b139e,0x1672141c,0x15da141c,0x15da1672,0x16721414,0xfff2352e,0xffffffff,0x4ca2ffff,0x9d121314,0x12121316,0x18058312,0xef02441e,0xb024413,0xc813ef25,0x621d6305,0xd112091d,0xd5161423,0xd710fb0d,0xfd10fb0d,0xfd0dd710,0xda110210,0x191d1a0d,0x2516191d,0x2216b916,0x96122e1d,0x23162805,0x2a1d2816,0xa0201e1d,0xa0201b08,0x9f19c608,0xa0201b08,0x1b089f08,0xc9201c20,0x23201c19,0xf219c920,0xf409bb1a,0x2f05a11a,0x17231716,0x6d231623,0x30231614,0x79146d16,0x1c1f9b07,0x96081b08,0x9618cf1f,0x1807921f,0x791eee1f,0x79192f07,0x3d081c07,0x79192f19,0x96193d07,0xcf1f181f,0x1b081c18,0x1c18cf08,0x3d18cf08,0x3a193d19,0x2918aa19,0xe8192f19,0x3d192f18,0xb107b119,0xcc193d07,0xaa193d1a,0x63076318,0x3d099607,0x4099619,0xb1193d21,0x2f18e107,0xe1192f19,0x3d18e818,0xcc210419,0xe819291a,0xac07ac18,0x2907a607,0x2907a619,0xe019291f,0xe218b21e,0xe01f2918,0xc218e21e,0xb609911a,0xf009911a,0x7d1ab620,0x3c1eb11c,0x3c23300b,0x3c16e112,0x61d3112,0x9300cd24,0x85039503,0x80257e04,0x10143004,0x5b22f612,0xd11d6312,0xd502d902,0xd5149805,0x9805ca05,0x66149814,0xc802d91d,0x6302d805,0x6102d81d,0x7f1d6312,0x481eca19,0x92074807,0x92197f18,0x7f074a18,0xc1d7119,0xad02d917,0x76237614,0xca00d21d,0x4000cb00,0x19074307,0x7407430b,0x19074620,0x4607430b,0xc5074607,0x1e0b191e,0x40073d0b,0x1e1c4a07,0x7f07400b,0xa025a117,0x87258225,0x9a258504,0x6305d014,0x420f0923,0xcc1ccd0f,0x9000c700,0xb825b503,0x68049304,0x3200180b,0x7920b400,0x3909391a,0xb220b809,0x7d20b820,0x7d20b21a,0xb21a7c1a,0xe4221820,0xe41bec1b,0xec0aa81b,0x2b0ada1b,0x2b1c0722,0x71bf722,0xf81bf71c,0xf80adc1b,0x321bfa1b,0xf8223122,0x3122321b,0xdc224722,0xdc22310a,0x141bf80a,0x3f066f13,0x3d153f15,0x7b022f15,0xa722a61c,0xde13d322,0x37153724,0x45022c15,0x29023015,0xf91df902,0xd224dc1d,0xdb13e813,0xb313da13,0x781ab21a,0xb11ab209,0xb11ab51a,0xb51ab71a,0xee1ab51a,0xec20ec20,0xb2097820,0xa021c91a,0xa00a631b,0x630a5f1b,0x613e30a,0x6154f25,0x4f1e1125,0xf924fb15,0x2513e624,0xc315691e,0xf5150412,0x4401e413,0x21074207,0xfa02501f,0xfd13fd13,0xe611e71c,0xda11e611,0x381cff22,0x85003900,0x86003c0b,0x7f00390b,0x8f10ac0b,0x6210ac0b,0x620b8f0b,0x8e10d60b,0xa14350b,0xbf23bf1d,0x35143c23,0x7a037b14,0x7e037903,0x28252902,0x21159e25,0x521e5203,0x3f25421e,0x4d159b25,0x36253a1e,0x591e561e,0x9f22a01e,0xde1c6222,0xd813cc24,0xcd13cc24,0xcd153913,0x39022813,0x9260715,0xd8260a26,0x407d507,0x711a3b19,0x5b08fe20,0x5a1a9909,0x4e1ea909,0x10073418,0xc617c805,0xd11ecf17,0xd11ed21e,0xd21ed41e,0xb905681e,0xb9120d23,0xf0120123,0x56116c22,0x56115911,0x550e3711,0x56115911,0x85115511,0x5c1efe19,0x861efe08,0x86085c19,0x5c198819,0xde131808,0xef24ef13,0x1824eb24,0x3324eb13,0x33131802,0x1824e702,0xd824e713,0xd8131813,0xf624e513,0xfe24e524,0xfe24f624,0xf6132324,0x4216eb24,0x42234623,0x46241b23,0x4505ba23,0xcd16eb23,0x19076c18,0x801f191f,0xf718d207,0x69231923,0x2f146914,0xfb1d321d,0x51dd312,0x711eed02,0x711ef307,0xf31efc07,0xd518d61e,0xd51f1918,0x191f1418,0x1f1f1b1f,0x1f1f201f,0x20079f1f,0xa079f1f,0x831f011f,0xf61eff07,0x6b1eba1e,0xba1f5018,0x907df1e,0xda190919,0xda1eba07,0xba1f1c07,0xd00e6e1e,0x9b10f50d,0xa807f01e,0xe018a818,0x2d1e9b1e,0x69192719,0xb50e8e1f,0xb5119811,0x98119911,0xb3119811,0x5611b411,0x5421b70a,0x550a540a,0x550a560a,0x5621ba0a,0x291f980a,0x1d1fa208,0xf2237d17,0xb5237d05,0xb505f214,0x80127a14,0x6c1fbe1d,0x6c085919,0x59083919,0x38083908,0x381fd708,0xd7196f08,0xe517ac1f,0xe5044b25,0x4b044a25,0xdf044b04,0xab17ac25,0x6c04ee17,0x4b04ee04,0x6c046c04,0xab046b04,0x73046b17,0x7317aa25,0xaa174e25,0x52047717,0x4e17aa17,0xaa047717,0xd1a0817,0x21ef01a,0x820481f,0xaa16a41a,0x5f145f16,0xa423eb14,0xde195216,0xf7079818,0x320021f,0x519b520,0xfb200620,0x120001f,0x11ffa20,0x28200220,0x2110c200,0x7710c200,0x860b6d0b,0x841f871f,0xbd15961f,0x461e4606,0x1a135d1e,0x47075303,0x47075818,0x581e8718,0x31e8707,0x58075807,0xd0070307,0xfe07031e,0xd018a206,0x9b07031e,0x9b18a218,0x42070318,0xfe074407,0xa2074406,0xbf06fe18,0x8607421e,0x8606fe1e,0x107421e,0x861e8807,0x11e8618,0x11ebe07,0xbe188607,0x7c0e0e1e,0x7c0dc20e,0xc40e7e0e,0x461e300d,0x3002fa13,0x4302fa1e,0xad02fc13,0xad02fb06,0x431e3006,0xad02fb13,0x35134306,0xc5239505,0xd4239522,0x3222c515,0x2002641e,0xfe252025,0xfb1e3202,0x8b1ac020,0x89098b09,0x89098609,0x8620f709,0x80183f09,0x801e851e,0x85183d1e,0x7f183d1e,0x91e851e,0xe11ddd02,0xf51ddd12,0xf512e112,0xe12e312,0x25162615,0x20162016,0x26145a16,0x60e1316,0x740e7411,0x31119f0e,0xf057511,0xe523c712,0x7210818,0x95210721,0x6c1ee309,0x661c671c,0x2d1c661c,0x2d1c6c0b,0x2f0b2c0b,0x2d1c610b,0xde0b2f0b,0xdd04e925,0x5220c25,0xda185822,0x9522081b,0xc1bdb0a,0xda185822,0xdb0a951b,0x7d10121b,0x690ff00d,0x5d115c11,0x5e115c11,0x78115d11,0x591b4c21,0xfd22fe1b,0xfd161222,0x1222f722,0x77161216,0x1b169c05,0x9e121912,0xdf1a9f16,0x9f20e020,0xa720e01a,0x9820e31a,0x981aa61a,0xa61a9f1a,0x750d761a,0x740d740d,0x711d7c12,0xe821e623,0x9d0a8321,0x5b1a9c1a,0x99095b09,0xb41a9d1a,0xeb09b309,0x4f1a8f1a,0xe1076509,0x8f1a901e,0x631f391a,0x63210407,0x4099607,0x76240321,0x76164214,0x42240214,0x15213516,0xce09ce1b,0x35213409,0xab213421,0x3f213518,0x771c401c,0xb81c8b22,0xa41ea422,0x8b1eaf1e,0xd923a01c,0xd9239e11,0x9e1ceb11,0x41216023,0xe61b581b,0x83068413,0x4624e006,0x46154215,0x421dfb15,0xdf154215,0xdf24e024,0xe0022d24,0x41022d24,0x8524e015,0x8121b41b,0x4a21b41b,0x811b810a,0xb01b821b,0x2e059621,0xb1161f12,0xb21bb31b,0xdb21dc1b,0xc421ce21,0xd921cc21,0x711e4121,0x711e4502,0x921e4002,0x2917b415,0xf104f317,0xbe09bf1a,0x71eb209,0xde0a9622,0x13220f1b,0x390b1b22,0x390b2007,0x20073d07,0xb10b3a0b,0xbd0b3c1e,0x2922350a,0x3a232122,0xa423221d,0x21240905,0xf1468623,0x63226202,0x7b1c2422,0x39227322,0x7422731c,0x87522,0xfffffff1,0xffffffff,0x392275da,0x7b1c451c,0x781c4522,0xdb1c4322,0x55235f05,0xa3235f24,0xa3245514,0x5302dd14,0x17245524,0x1705db17,0xdb243d17,0x131ad905,0x11211121,0xd8211221,0xac1a6d1a,0x971a7320,0x6b0b2e22,0x650b2e1c,0x721c6b1c,0x7023751d,0x6a23751d,0x701d701d,0x72170b1d,0xa105d31d,0x8a243c14,0x890b1e22,0x360b3522,0x6922a30b,0x15154006,0xaf22be13,0xd022bd1e,0x17141811,0x3054e14,0x1142f1d,0xfe056516,0x3168d15,0x6f22e812,0xe120f05,0x95120a16,0x57160b16,0x591e581e,0x561e591e,0x561e571e,0x8315a11e,0x56254502,0xf002831e,0xb923c622,0x322e823,0xe8143912,0x37143922,0xb922f014,0xe822e923,0xe9143722,0x4115f422,0xaa22f314,0x6c239923,0xfe169c16,0xfc23ca22,0x9823d022,0xc9169816,0xf522fc23,0x38150701,0xc316c106,0xfc230a16,0x4145222,0xa3145223,0xa3230416,0x423dd16,0x21230423,0xe022fc12,0xa507aa1e,0x2d07aa07,0xa507a519,0xa61f3007,0xac1f3007,0x2a07a607,0xa51ee01f,0x1e231f07,0x37123723,0x1f23f112,0x3b23f123,0x3c231f12,0x16163012,0x9a231523,0x9f059e05,0x15123c05,0x16123c23,0x47231523,0x4617bf17,0xfa17bf17,0x72257225,0x6f25fa25,0xbd25fa25,0xbd256f17,0x6e050b17,0xbd256f04,0x2174b17,0x317c326,0x6f260326,0x3046d04,0xb046d26,0x6e046d05,0xb050b04,0x3260205,0x46047626,0x7217bf17,0xbf047625,0x2b016f17,0xa3042a04,0xc319c119,0x19089a19,0x191ffe20,0xff089d20,0x87089d1f,0x8719a608,0xa6200408,0xa519a619,0xa3089d19,0x8119c319,0x9a19c308,0x19088108,0xfe1fff20,0xa5089d1f,0x821fff19,0x9a088108,0x8219a408,0xdf089a08,0xda18dc18,0xe018dc18,0xe018da18,0xda1b0f18,0x101f2718,0x1007af1b,0xb209d11b,0xb21b1007,0xd107af07,0xb218ed09,0xda18df07,0xae1f2718,0x271f3107,0xdf1f311f,0x451f2718,0xa61d3c16,0xfa1d3c05,0xfa05a623,0xfb1d4223,0x341d4223,0x351d351d,0xfb16d01d,0xa623fb23,0xd423fa05,0x700dae0f,0x12021910,0x2b152b02,0xa24cb15,0xcc04db13,0x8725a225,0x3e10db0b,0xdf10db00,0x3e0b9010,0xdc10db00,0x3f0b9010,0x3f10db00,0xdb10da00,0xdd10da10,0x7810db10,0x481d1705,0x191d1714,0x44169e12,0xeb1d4f23,0x35147816,0xce123d16,0x4f16f602,0x8f16f623,0x8f234f14,0x2c05c014,0x4e05c024,0x2b242c23,0xbc234d24,0x28234905,0x28234a24,0x4a149224,0x5d149223,0xf9234a1d,0x4b149016,0x24149023,0x5b234b24,0x4e16fd1d,0x93055623,0xd8053023,0x50126102,0xd41d6923,0x4f234f02,0x62242e23,0x63149a12,0x57243012,0x2e126223,0x65242e24,0x9723571d,0x41d6514,0xc61d6517,0x5a05d605,0x6102e023,0x6105da23,0x6d170512,0x8170712,0x78237717,0x71237523,0x63126e1d,0xa005e712,0x7a126a14,0x15237223,0x7614ad17,0x61244923,0x6702e023,0x8e086623,0x8e199419,0x941ff319,0x68236d19,0x66236923,0x6c127023,0x6105da23,0x7402d812,0x77245823,0x18245823,0x18237717,0x7714b217,0x7d02e823,0x7d237a1d,0x7a245a1d,0x7b245a23,0xe9237a12,0x4a244c02,0xe2244a24,0xe2237c05,0x7c171b05,0xd0039723,0xd00c1000,0x10039600,0xb0c3f0c,0xce03ce01,0x3f03cd03,0x903cd0c,0x8f0c3f01,0x900c0903,0xa0c0903,0x90038d0c,0x8d0c0903,0xca0c0a03,0x2038d00,0x303500c,0xc030c,0xc020c,0x203880c,0x9e0b8e0c,0xff000610,0xe623ad1c,0x9623c511,0x6c23c716,0x101a3520,0xf8071807,0x6b072b08,0x10206c20,0x6b206a07,0xf4071020,0xf206a08,0x10206a07,0xf070f07,0xa071007,0x75072a07,0xc708fd20,0xa807461e,0x2a07461e,0x3e1ea807,0x2a1ea821,0x19071a07,0x1b213e07,0x3e071a07,0xfd072a21,0x3e206f08,0x6f072a21,0x1b072520,0x1b090207,0x2213e07,0x3e090209,0x5e207121,0x2072518,0x6f213e09,0x3e08ff20,0x7108ff21,0x5e070f20,0x5e206918,0x69090218,0x461e9620,0x46071021,0x10070a21,0x69070f07,0xb408f420,0x301b2a1e,0x96073007,0x9607181e,0x1807101e,0xb4184d07,0xb407351e,0x3507301e,0x18073007,0x180b2407,0x24072b07,0x3007350b,0x240b2407,0x2e072b0b,0x2f072b07,0x2e072e07,0x33072f07,0x2e07391a,0x391a3307,0x3c1a3307,0x40074307,0x40188507,0x85073d07,0x39073d18,0xd7073c07,0x15144c23,0xf91d151d,0xf923d722,0xd7121222,0xc123c423,0x7d23d223,0xd2144b05,0x4d144b23,0xd223d214,0x1323d123,0xdf10a216,0x5d004110,0xb6044d04,0xfa044d17,0xb617b604,0xb704fa17,0x9f16a517,0x7b057b16,0x55161705,0xe5021014,0xe506541d,0x5406551d,0x21065406,0x21021015,0x1013b915,0x5113b902,0xe24bf06,0xf41dde02,0xd1dde12,0xf412f402,0xe13b512,0xdb13b502,0x3306531d,0x4614781d,0xa323f616,0xa3146705,0x6716c405,0x2c146714,0x2c23f61d,0xf612371d,0xf1123723,0x4f16cb23,0x2512551d,0xbb234d24,0x4e05bd05,0x2705c023,0xfb065124,0x351de112,0x99243624,0xcf149914,0x74243505,0x4f02e71d,0x6e1b2224,0x6e186a18,0x6a207118,0x2207118,0x57186a09,0xf1e9118,0x57186a07,0x57185e18,0x5e070f18,0x22071918,0x221e9d1b,0x9d186a1b,0x5e186a1e,0x1b072518,0x6a1e9d07,0x58243418,0x58243123,0x31235523,0x50243124,0x50243423,0x3405c823,0x6405c824,0x6b05d31d,0x5712621d,0xe1243f23,0xf2243602,0xf40fa20c,0xb6152a0c,0x4712f913,0x4a243e24,0x7d02ee24,0x1d171d23,0xee127e17,0xeb127e02,0xe702ed02,0x4f171a02,0x7c171a24,0x44244f12,0x6114a924,0x8605fa23,0xf31d8523,0xf714bb02,0x891d8a05,0x87246123,0x841d8823,0x8905f923,0xbe23881d,0x85172714,0xbf14bc23,0x83128214,0x89070709,0x8e1e891e,0x8e1abc1e,0xbc1aba1e,0x5d185b1a,0x12071218,0x8e20fc07,0x12185b09,0x27098e07,0x68072907,0x24072918,0x24186807,0x5f185b07,0x8e185b18,0x5b097c09,0x60097c18,0x27186618,0x89098507,0xba18611e,0x6618611a,0x831aba18,0x89070709,0x831abc1e,0x271e8909,0x85186807,0x66098009,0x5b098518,0x5f186018,0xbc1aba18,0x801e891a,0x661aba09,0x5f072418,0x68186818,0x871abd18,0xb6064a09,0x7d020724,0x78154a06,0x49154a06,0x4a067815,0x6c057e14,0x9f000705,0xae10d610,0xab22aa22,0xa61dc822,0x70150a24,0x65072c18,0x20072c18,0x20186507,0x161e9c07,0x97186507,0x20071e22,0x65071607,0x70072218,0xe2186518,0xbc12f91d,0xf412f924,0xbc24bc12,0x53020c24,0x57020c06,0xe8065306,0x7705e905,0xb005e91d,0x205eb14,0xcd130113,0x1d127e24,0x831d8317,0xf414b81d,0x7f14b805,0x8105f423,0xf4127e1d,0x83127e05,0x5e05f41d,0xb702f124,0xf41d8114,0xf41d7e05,0x7e245e05,0xb7245e1d,0x1e171e14,0xef172117,0x7f172102,0x81d7f12,0x1d57f100,0x1720127f,0x1d842380,0x127d05f6,0x1d8205f6,0x127d237e,0x237e05f6,0x2380127f,0x23801d7f,0x1d7f1d84,0x171e245e,0x14b614b6,0x245e1d7e,0x14b602ef,0x1d82171e,0x16e2171f,0x2f2245d,0x1d82245c,0x245d16e2,0x245d1d82,0x245d02f0,0x2f0245c,0x1d7f127d,0x1b711d84,0x1b701b6b,0x1b6e1b6b,0xfb00086d,0x8f1b6d50,0x9039103,0x9203910c,0xac0c0903,0xfa0fae0f,0xb00fae0c,0xc00cfa0f,0xc9148f05,0x4802c902,0xfa05c023,0x51e0b24,0x391e051e,0x3924fa02,0xfa068502,0x22068524,0x71067113,0x85067506,0x5c0e5d06,0x7011700e,0x4f117911,0x420e4f0e,0x4211700e,0x8311650e,0x420e5d11,0xfff011f4,0xc900fc18,0xfb00fb03,0xfc00f900,0xc700f900,0xc700fc03,0xfc0c2c03,0xc50c2c00,0xc500fd03,0xfd03c603,0x3103c600,0xd600fd0c,0x8216a023,0xa9244705,0x5e414,0x10d4110,0xfd0d4110,0xff0ffe0f,0xfe0d410f,0xdd161d0f,0x89058823,0x501d1e05,0x16145014,0x16058916,0x89058716,0x4158505,0xa0026603,0xdc25d117,0xda25d125,0xda25dc25,0xdc25db25,0x6b25dc25,0x6b04dd25,0xdf25d625,0xa125d604,0xdf04df17,0xde25d204,0xde04df04,0x6b04e304,0xd704df25,0x6b04dd25,0xdd04e225,0xdc17a004,0xe304df25,0xdf17a204,0xd717a204,0xf6090225,0x61185708,0x29231714,0x260ac216,0x34222222,0x2a172b17,0x57173417,0x73045425,0x9d049c17,0xa825a204,0xa8177b04,0x7b177904,0xc704c017,0x8725bb04,0xbd25b317,0xa904e604,0xe117a717,0xd425d504,0xd225d525,0xd425d425,0xa304e425,0xe025e117,0xe725de25,0x6c14a005,0xa00f101d,0x50f121c,0x41c930f,0xc905120f,0x260817,}; +#include +#include +inline void uncompress_sr305_obj(std::vector& vertex_data, std::vector& normals, std::vector& index_data) +{ + std::vector uncompressed(0x43c5c, 0); + LZ4_uncompress((const char*)sr305_obj_data, uncompressed.data(), 0x43c5c); + const int vertex_size = 0x2625 * sizeof(float3); + const int index_size = 0x6870 * sizeof(short3); + vertex_data.resize(0x2625); + memcpy(vertex_data.data(), uncompressed.data(), vertex_size); + index_data.resize(0x6870); + memcpy(index_data.data(), uncompressed.data() + vertex_size, index_size); + //normals.resize(0x2625); + //memcpy(normals.data(), uncompressed.data() + vertex_size + index_size, vertex_size); +} diff --git a/common/res/t265.h b/common/res/t265.h new file mode 100644 index 00000000000..bab78992eff --- /dev/null +++ b/common/res/t265.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2018 Intel Corporation. All Rights Reserved. + +// This file is auto-generated from t265.obj +static uint32_t t265_obj_data [] { 0x23a304f5,0xcbfbc255,0x48d4c0e0,0x23d7c029,0xcd9fc259,0x4000cd0,0x24000018,0x180c00,0x3e65e935,0xe9440030,0x48c03e65,0xc0400,0xf1001804,0x65000004,0x134551c2,0x1d616341,0x6a0000c0,0x1ccccdc2,0xba71000c,0x97c26421,0xc14b5,0x63333371,0x153333c2,0x2403000c,0x67c1c100,0xdfc01d61,0x7ac265be,0xc10fb,0x1004803,0x171000c,0xb1c25fb9,0x300312,0x5f999a71,0x6cccdc2,0xdd71000c,0xd5c25bdc,0xc076d,0x66515471,0xe0000c2,0x6c030030,0xc0100,0x6c999971,0x1a0369c2,0x4d71000c,0x34c26dad,0xc16b5,0x66ad6671,0xa86e9c2,0x8a71000c,0x5dc26b58,0xc1c17,0x5b333371,0x56517c2,0x4f30054,0xc2601512,0x40ff3333,0xc01d6167,0xc26f05d7,0x240d6229,0xc26f5100,0xc080000,0xcccd7100,0xcccdc266,0x71000c06,0xc26e80da,0xc126666,0x5f0c7100,0x147bc25c,0x300480a,0x180100f0,0xc7ae7100,0x999ac263,0x710054c9,0xc260a788,0xcf93c3e,0x6da07100,0x1dbcc25a,0x71003004,0xc25cb0e3,0xc0d2ac8,0xb9016200,0x86e9c25f,0xdc710048,0x66c26438,0x30bc66,0x63e47771,0xc2c465c2,0x9a62000c,0x14c25999,0xf10120ae,0x6c037104,0xdc4482c2,0x1d6167c0,0x6b547bc0,0xe0768cc2,0x8871000c,0x15c245de,0xcffa8,0x46ba1771,0xfeb852c2,0xb371000c,0xcdc26c89,0xcd6cc,0x66ad6671,0x312b1c2,0xbb7100a8,0xb7c26a88,0x18e319,0x5ccccd71,0x107ae1c2,0x12710090,0xc26015,0xc0e00,0x6cde1875,0xd06eccc2,0xcd310024,0x1814cc,0x60a78862,0x30fb7ac2,0x44ac3500,0x3501f862,0x105ecccd,0x66663502,0x71022861,0xc26cfae1,0x48c9999a,0x48496200,0x8704c25e,0xcd710234,0x6cc25dcc,0x541bba,0x69ae1471,0xe40000c2,0x54620024,0x33c26651,0x7100cc33,0xc25cde3f,0x2416dedd,0x11657100,0xcccdc25d,0x3000c18,0xcc010078,0x6c0300,0x21000c01,0x84c3e9,0x71000c01,0xc25d62c3,0x301a74f4,0xdf823500,0x35011423,0x2c24bb11,0x33333501,0x71015c21,0xc225868f,0x3c0132ec,0x33333500,0x71003021,0xc26cde18,0x9cc2c465,0x130a3700,0x1002445,0x60010228,0x240300,0x301b001,0x48010120,0x147b3500,0x7100d867,0xc265bedf,0x48f93c3e,0x39d43500,0x71018066,0xc2650000,0x18f4a891,0xedab7100,0xf6e6c25c,0x71003c17,0xc25d3b8e,0xc19f08f,0xc7547100,0xb91cc25c,0x71000c15,0xc25daa70,0xc1b7b8f,0x30ff6200,0x76aec25e,0xbc0302dc,0x180101,0x656e1435,0xba71021c,0x6c26421,0x60f1c8,0x5c89fd62,0xc4230bc2,0x27c0302,0x35003001,0x5864bf1e,0x33337102,0xcccdc263,0x620030f0,0xc25c0d5e,0x378f9fd,0x1039c03,0xdc350030,0x2586438,0x6244ac35,0xf4710060,0xfdc25b5b,0x240c81,0x103d803,0x7735000c,0x24c63e4,0x61666635,0xa97100f0,0x32c25a84,0x240af0,0x1039003,0x3c030078,0xc0103,0x1035403,0x1803000c,0xc0103,0x59999a62,0x3c6666c2,0x5e9e3500,0x62000c4d,0xc24d1db0,0x3b4e355,0x4c9fdf62,0xf4ce59c2,0xef6f6202,0x67cbc24b,0x6c0301e0,0x480103,0x64bf1e71,0xb6eeb1c2,0xc262000c,0x96c24b1a,0x35027cc3,0x44a3333,0x3717102,0xeeb1c26c,0x301e0b6,0x3001000c,0x89b33500,0x303b46c,0x1801000c,0x547b7100,0xbca7c26b,0x30030b2,0x1801000c,0x88bb7100,0x197cc26a,0x30018b0,0x1801000c,0xae147100,0x3333c269,0x30018af,0x1801000c,0x147b3500,0x3001867,0x1801000c,0x39d43500,0x3004866,0x1801000c,0x6e143500,0x3007865,0x1801000c,0xe40300,0x3006001,0xc0103fc,0x4440300,0x3000c01,0xc01045c,0x4380300,0x3000c01,0xc010408,0x3cc0300,0x71000c01,0xc2439999,0xbc0970a4,0xe58b6201,0x2fefc243,0x350174,0x182700,0x26b40f53,0x18f1c2,0x44668062,0x8c5f1ec2,0x33193501,0x3000c26,0x5401030c,0x3300300,0x3000c01,0xc010330,0x2d00300,0x3000c01,0xc010330,0x4380300,0x3000c01,0xc010438,0x4ec0300,0x3039c01,0x180102dc,0x30c0300,0x3000c01,0x240105d0,0x63c0300,0x3000c01,0xc0105f4,0x6180300,0x3000c01,0x3c0102f4,0x3240300,0x3000c01,0xc0102dc,0x30c0300,0x3000c01,0x3c01069c,0x6840300,0x3000c01,0xc02069c,0x30c0200,0x3003001,0x180106e4,0x72c0300,0x4000c01,0xce3500cc,0x9c1bc7,0x1bc7ce35,0xce3100f0,0x75c1bc7,0xf93c3e75,0x1bc7ce40,0xce350120,0xf01bc7,0x1bc7ce35,0xce3500b4,0xa81bc7,0x1bc7ce35,0xce340084,0x3781bc7,0x3004801,0xc010390,0x3cc0300,0xc7ce4144,0x104081b,0x4403000c,0xc0104,0x1048003,0x403000c,0xc0105,0x105a003,0xb803000c,0xc0105,0x1073803,0xd403000c,0xc0107,0x4086404,0x480400d8,0x1200400,0x300b401,0xf0020144,0x8880200,0x51011404,0xc10e0000,0x10108d2,0xc010018,0x1500300,0x3000c01,0xc010060,0x8640400,0x31012c04,0x1814b597,0x1a40300,0x3000c01,0xc01021c,0x1d40300,0x3000c01,0xc0101d4,0x8580400,0x301a407,0x24010018,0xc0106,0x1024c03,0x7c03000c,0xc0102,0x4084c04,0x333101a4,0x181533,0x34083404,0x41bc7ce,0x18c0105,0x2084004,0x1c02018c,0xc7ce3508,0x107f81b,0x100301c8,0xc7ce3508,0x3408281b,0xe41bc7ce,0xcec04403,0x54c1bc7,0x3005401,0xc010510,0x3fc0300,0x3002401,0xc01042c,0x2880300,0x4009c01,0xce340834,0x4201bc7,0x4002401,0x8020804,0x8340201,0x1bc7ce34,0x24010438,0x3b40300,0x3000c01,0xc0102c4,0x8100400,0x1bc7ce35,0xce3507f8,0x7f81bc7,0x1bc7ce35,0xd21307e0,0xc80402b8,0x2580301,0x4009c01,0xce350864,0x8041bc7,0x2015c02,0xce3507ec,0x8101bc7,0x4001804,0x404000c,0xc7ce3508,0x408281b,0x653100e4,0xa8c2c4,0x2080404,0xe001003c,0x2b80101,0x1080404,0x24020180,0x900109,0x104d403,0xd403003c,0xc0104,0x2080404,0x40202c4,0x2c40108,0x3507ec03,0xe01bc7d2,0xc7d23507,0x3507f81b,0x1c1bc7d2,0xc7d23508,0x1608341b,0x10384d2,0x34030078,0x6c0105,0x1040803,0x404000c,0xc0d21608,0x300103,0x1052803,0x2c030024,0xc0104,0x16080404,0x103fcd2,0x10030030,0x240105,0x1045003,0x404000c,0x600408,0x3023404,0x24010528,0x8040400,0x1bc7ce35,0xc0040804,0x2100400,0x102f403,0x98030030,0xc0104,0x102b803,0x404000c,0xc7d23508,0x3507f81b,0x101bc7d2,0xc7d23508,0x3508041b,0x41bc7d2,0xc0ce1308,0x66663100,0x40048bc,0xce1307f8,0xb1310108,0x18b6ee,0x4080404,0x24040318,0x8100303,0x3002401,0x3c05000c,0x540403,0x4080404,0xa7310384,0x30b2bc,0x107f803,0xc030030,0x180100,0x107f803,0xc030018,0x180100,0x1080404,0xc020048,0x180100,0x7080404,0x1801000c,0x7f80300,0x2004802,0x18010810,0x8040400,0x2004801,0x24010c3c,0x3e40300,0x3000c01,0xc010420,0x4080300,0x3000c01,0xc0103e4,0x3cc0300,0x4000c01,0xd23507ec,0x8041bc7,0x1bc7d235,0xd271081c,0xfc01bc7,0x81c26b4,0x1bc7d235,0xd23507f8,0x8101bc7,0xe4d213,0xe4000031,0x18030054,0xc0103,0x202c403,0x2402000c,0xc010c,0x102ac03,0xa003000c,0x3840105,0x1055803,0xd403000c,0xc010d,0x102ac03,0x88030030,0xc0102,0x105c403,0xdc030024,0xc0105,0xa3d00f5,0xb852c267,0x48d440d6,0xc28fc029,0x71000c69,0xc2662b7b,0x18f5d75a,0x4ccd7100,0x8065c265,0xf1000cf0,0x5d333304,0x1eb6bec2,0x2948d441,0x603aebc0,0x12adedc2,0x6271000c,0x42c25dc7,0xc1fac,0x5e666671,0x200000c2,0x631000c,0x924261a,0x2948d875,0x447f94c0,0x4f1000c,0xc244bf15,0xc107310e,0xc02948d8,0xc261199a,0x30155967,0x788e7100,0x44d3c225,0x35001805,0x2425da84,0xd65a7100,0xcccdc266,0x620084fc,0xc26a2f39,0xb445e1,0x24fa9071,0x3cc35c2,0xb350030,0x3c4521,0x621ceb71,0x17070ec2,0x9350054,0x24459f,0x6741c371,0x273acc2,0x33620018,0x9ac26333,0x35002499,0xb46a0000,0x497b3500,0x35003c64,0x9c654ccd,0x2b7b3500,0x7100f066,0xc266d65a,0x480f3333,0x41c37100,0x25eec267,0x71000c0b,0xc26a947b,0xa8d4f655,0x7100,0xc270,0x71001808,0xc26aeb6e,0x18d2e093,0x2e277100,0x28f6c26b,0x71000cd0,0xc26b5818,0xcccfee7,0x66663100,0x40f546b,0x4c330018,0x18c634,0x102c6711,0x2948d4a2,0x6b8d8cc0,0x682ea6c2,0x999a7101,0x28f6c24c,0x7300fc0c,0xc24c999a,0xc0d999a,0xc591500,0xe5a56200,0x5f2dc24b,0x49710150,0x29c24c47,0x24075c,0x6fcba971,0xe362fc2,0xaa71009c,0xe3c24c84,0x1809ac,0x6d000071,0x1cc8dcc2,0x37710018,0xc26f32,0xc1400,0x6e3e1d71,0x18f877c2,0xd803000c,0x300100,0x6b2e2771,0xc30a3dc2,0xb40300a8,0x11880100,0x1001803,0x7171000c,0x9fc25dca,0x301fb0,0x1c655521,0xc0102,0x1024003,0x8e71000c,0x9cc25d39,0xc1ec7,0x5cbc0971,0x1d5405c2,0xfd71000c,0xdbc25c59,0xc1b6d,0x5c19bf71,0x193486c2,0x7771000c,0xcdc25bff,0xc16cc,0x5f900d71,0xf3333c2,0x2f71000c,0x14c25be5,0xc1465,0x1025803,0xe671000c,0x94c25b42,0xc1045,0x5ba4f271,0x122bbec2,0xa371000c,0xeec25f24,0xc0b25,0x1023403,0x6171000c,0xfec25ac5,0xc0ed1,0x5f000031,0xd816111c,0x18010234,0x347e6200,0xe8fbc25a,0xa3930174,0xacc25f24,0xd4c10273,0xcd310090,0xfcfccc,0x603aeb71,0xf5d75ac2,0x6671000c,0x9ec24b66,0x3c03d8,0x1024c03,0x6403000c,0xc0102,0x1028803,0x8803000c,0xc0102,0x4630ce62,0x60dfe4c2,0x66666200,0xe148c220,0xcd620210,0x5cc223cc,0x3900188f,0x242468cb,0x180400,0x102ac03,0xac030048,0xc0102,0x1024c03,0xf803000c,0xc0101,0x101ec03,0x403000c,0xc0102,0x1028803,0x3371000c,0xc26333,0xd8ec00,0x64497b71,0xed2518c2,0xa671000c,0xf6c2659e,0xcd028,0x65e15e71,0xd2e093c2,0x5271000c,0x55c26638,0xcd4f6,0x1045003,0xeb35000c,0x3c621c,0x6574b471,0xccfee7c2,0x94710018,0xe1c2669d,0xcd645,0x65666631,0xd4341158,0x4b02948,0x3001801,0xc0104a4,0x2d00300,0x35009c01,0x886574b4,0x199a3502,0x35006c61,0x94659ea6,0xd2386202,0xe31ac24a,0x5e710138,0xa0c265e1,0x48c052,0x1042003,0x100301c8,0x180105,0x1048003,0x8003000c,0xc0104,0x103f003,0xe403000c,0xc0103,0x103e403,0xe403000c,0xc0103,0x103e403,0xcd35000c,0x1bc46cc,0x4a333335,0x9a35000c,0x1e05999,0x1009c03,0x52710360,0xdec26638,0x3cbe3c,0x800cc03,0xc010018,0x9d947100,0xed52c266,0x620024bc,0xc2670a3d,0xc7ae1,0x1001803,0x8f350024,0x1869c2,0x1002403,0xac030018,0xc0102,0x5acccd62,0xbc2a89c2,0x389e7104,0x3505c25a,0x303fc07,0x240102dc,0x1680300,0x3000c01,0xc010168,0x4c0c7100,0xb118c25b,0x3003009,0xc010318,0x1c80300,0x3002401,0xc0101f8,0x1f80300,0x62000c01,0xc25badb0,0x54cae14,0x1037803,0x5803003c,0x240102,0x1027c03,0x3935000c,0xf06a2f,0x100d803,0x7b350018,0x12c6a94,0x1002403,0x220018,0xb1140400,0xc02948d4,0xc25beb11,0x600dfece,0x4080300,0x3000c01,0x300102b8,0x2dc0300,0x3000c01,0xc0102c4,0xeb6e3500,0x302346a,0x1808006c,0xc0100,0x5c000071,0x166666c2,0xa4030054,0xc0104,0x102dc03,0xf4710024,0x30c25cb3,0x181d30,0x5c525071,0x1b3333c2,0xef62000c,0x79c25c14,0x40570e2,0x67350534,0x54c1d61,0x1d616735,0x67350534,0x5341d61,0x1d616735,0x67350534,0x5341d61,0x1d616735,0x67130534,0x540416d4,0x4080400,0x1001802,0xc1440600,0xf41d6167,0xc0105,0x35040804,0x6c1d6167,0x300203,0x106e401,0xc030024,0x63412600,0xc010024,0x3c0300,0x3000c01,0xc010054,0x6c0300,0x3000c01,0xc010084,0x5040300,0x4000c01,0x6335084c,0x8641d61,0x1d616335,0x63350888,0x1441d61,0x1d616335,0x63350144,0x1441d61,0xf06311,0x4018c02,0x804000c,0x2040416,0x1d616335,0x6335027c,0x2c41d61,0x1d616335,0x6335030c,0x30c1d61,0x13986313,0x6e14833,0x940200a8,0x61633505,0x11057c1d,0x2003c67,0x673505a0,0x5a01d61,0x1d616735,0xc80108b8,0x8f40301,0x1d616735,0x673508f4,0x93c1d61,0xf06711,0x7ec2611,0x34f404f9,0x3333c029,0x1e14c226,0x4dd3c10c,0x6666c01d,0x71001844,0xc10ebaee,0x1828fd93,0xc0400,0x263333a2,0x114ca8c2,0x18a2adc1,0xc0400,0x263333a2,0x13de04c2,0x18244ac1,0xc0400,0x263333b1,0xea5c5c2,0x1d1759c1,0x3771006c,0xe0c1112d,0xc1cbd,0x13b44d66,0xc4170c1,0x658c3100,0x710018b5,0xc113de04,0xcaf741f,0x8f6f7100,0xa6fac119,0x71000cae,0xc11a2349,0xcb47db9,0x42597100,0x6de1c120,0x71000cb0,0xc11efa21,0xcab0ed4,0xaffc7100,0x76bac125,0x71000ca9,0xc123c7d2,0xca4e4e9,0xabff7100,0x8b65c127,0x71000c9c,0xc12a15bc,0xca00731,0x68ae7100,0x8751c12a,0x71000c92,0xc12d2d8e,0xc94b59a,0xd2447100,0x7829c12b,0x71000c87,0xc12ec62d,0xc883635,0x8f6f6200,0xbe94c119,0x49710138,0x1fc11a23,0x181e11,0x1efa2171,0x30eee5c1,0x4471000c,0x3bc12bd2,0xc781c,0x2ec62d71,0x76a023c1,0xd271000c,0xbbc123c7,0xc3d42,0x20425971,0x2630c6c1,0xae71000c,0xebc12a68,0xc61fd,0x2d2d8e71,0x5da15ec1,0xff71000c,0xbac127ab,0xc4df5,0x25affc71,0x341f1dc1,0xbc71000c,0x26c12a15,0x19846fe,0x35012c04,0x2c446666,0x66663501,0x35011444,0x8446666,0x66663501,0x35010844,0xfc446666,0x66663500,0x400f044,0x3b31000c,0x60781c,0x4009c04,0xba31003c,0x184df5,0x400cc04,0xe531006c,0x1830ee,0x35012004,0xd4446666,0x66663501,0x3501bc44,0xbc446666,0x66663501,0x3501b044,0x98446666,0x66663501,0x35018c44,0x80446666,0x540401,0x1c417031,0x8004006c,0x240401,0x76a02331,0x5c040018,0x480401,0x5da15e31,0x44040018,0x6c0401,0x4014404,0x663902a0,0x30c4466,0x402ac04,0x67350c6c,0xc6c1d61,0x1d616735,0x34010c24,0xc180305,0x1d616735,0xb4020960,0xc2464203,0xc8f5c,0x35079804,0x341d6167,0xe4671108,0x9cc0203,0x1d616735,0x67350b64,0xb641d61,0x1d616735,0x67350b58,0xbac1d61,0x22000c04,0x1b84999a,0x350bac04,0x501d6167,0x6167350a,0x350a801d,0xbc1d6167,0x6167350a,0x350abc1d,0xec1d6167,0x1b24010a,0x340db003,0x241d6167,0x156c0109,0x1096c03,0xd003000c,0xc0108,0x10dbc04,0x800304c8,0x6163340d,0x108e81d,0x68040024,0x6167340d,0x10b1c1d,0x240304ec,0x98411209,0xd440204,0x1d616334,0x24010ab0,0xad40300,0x3000c01,0xc010aec,0xd380400,0x22004804,0x57025ee,0x1094803,0x48030078,0xc0109,0x1094803,0x4803000c,0xc0109,0x1094803,0x7803000c,0xc010c,0x10aa403,0x8403006c,0x18010c,0x1002403,0x18031824,0xc0100,0x44010803,0x1d6167c1,0xc0107a4,0xc3c0400,0x1d616734,0x1801081c,0x1080300,0x3000c01,0xc0108a0,0x1080300,0x3000c01,0xc0108f4,0x9300300,0x31006c05,0xcf5d75a,0x1200300,0x3002401,0xc020120,0xe7c0200,0x3000c01,0xc01012c,0xbb80400,0x1027c02,0x18010e10,0x9180300,0x4005401,0x98040b88,0x3101,0x40018ec,0x67340b88,0x8c41d61,0x3001801,0xc01021c,0x9840300,0x3000c01,0xc01099c,0x8ac0300,0x3000c01,0xc0109c0,0x2640300,0x4000c01,0x48040b88,0x1680400,0x40b7c04,0x740400a8,0xad40301,0x3003c01,0xcc01024c,0x2a00300,0x3001801,0xc010288,0x2880300,0x3000c01,0xc010228,0x2280300,0x3000c01,0xc010228,0x2280300,0x3000c01,0xc010228,0x780300,0x4021001,0x9c070b4c,0x180800,0x4000c01,0xc070b4c,0x180100,0x10b3403,0xc030054,0x180100,0x10a8003,0x4c040018,0x258040b,0x3035404,0x30010114,0xca80300,0x3000c01,0x54010234,0x1800303,0x3001801,0xc010174,0x1a40300,0x3000c01,0xe801027c,0xb100402,0x400cc04,0x90030330,0x300100,0x10b0403,0xc03009c,0x180100,0x70b2804,0x540102e8,0x24c0300,0x3002401,0xc010240,0x2400300,0x3000c01,0xc01003c,0xb100400,0x1000c07,0x54030018,0x540103,0x1024c03,0x33a20018,0xd1c22633,0x7c1136e,0x6208405e,0xc1132954,0x67856b6,0x62001808,0xc112e3d6,0x184f9a,0x4002408,0xa8f50018,0xc226243f,0xc110cf6c,0xc0b51fbe,0xc2446a9b,0xc111c61c,0xc0b53472,0xc225f892,0xc10edd8f,0xc0b4fdd0,0xc244770c,0xc110b2d3,0xc0b51d84,0xc225b25b,0xc10d1948,0xc0b4e7d7,0xc244a473,0xc10ec16d,0xc0b4fc35,0xc225540e,0xc10b9a36,0xc0b4dbf2,0xc244ec6a,0xc10cff4d,0xc0b4e6da,0xc224e094,0xc10a7303,0xc0b4d6f5,0xc2454c79,0xc10b8419,0xc0b4db75,0xc2245fee,0xc109b671,0xc0b4d5aa,0xc245c183,0xc10a6285,0xc0b4d6c9,0xc22417b0,0xc1098220,0xc0b4d58f,0xc2464325,0xc109ad7b,0xc0b4d59f,0xc246cccd,0xc10970a4,0xc0b4d593,0xc23cccd,0x6666a200,0x976ec244,0x6c7ac113,0xd6620810,0xcc11350,0x62000c65,0xc1130a3d,0x9545dd5,0x35002404,0x24263333,0x33333500,0xf1002426,0x446afd14,0x11db41c2,0xaf4118c1,0x26243fc0,0x10ed63c2,0xaf2d36c1,0x44788ec0,0x10b7c8c2,0xaf2911c1,0x70f50114,0xc10ef3a1,0xc0af0abf,0xc244a6ca,0xc10ec405,0xc0af0809,0xc225b25c,0xc10d282d,0xc0aef46d,0xc244ef13,0xc10d0079,0xc0aef2e9,0xc2255410,0xc10ba307,0xc0aee857,0xc2454f01,0xc10b847e,0xc0aee7a7,0xc224e097,0xc10a7724,0xc0aee343,0xc245c379,0xc10a6292,0xc0aee311,0xc2245ff3,0xc109b791,0xc0aee1f4,0xc2464431,0xc109ad7c,0xc0aee1e9,0xc22417b2,0xc1098268,0x8aee1d6,0xe1da3501,0x750108ae,0xc0aee1da,0x14543333,0xc0401,0xaee1da31,0xc080b4c,0xbc90b900,0xe1da4040,0x9999c0ae,0xe2000c56,0xc0ffae12,0xc0aee1da,0xc254d238,0x301ce6,0x84aa04f1,0x531dc256,0xe1dac102,0xe5a5c0ae,0xa0d3c255,0x71000c06,0xc2564749,0xc04a3d7,0x66667100,0x2762c255,0x4000c08,0x93350048,0x3cb4d5,0xb4d59335,0x93350030,0x48b4d5,0xb4d59335,0x9335003c,0x78b4d5,0x2001802,0x911100a8,0xc0020024,0xd5933500,0xb100b4b4,0xc0b4d591,0xc257f5c3,0x4b5999a,0xf5c3b10e,0xcccdc257,0x4a774088,0x35001849,0x1888cccd,0x999a3100,0x350018b5,0x30518f28,0x8f283100,0x8003051,0x2408000c,0x7714f100,0x66c0494a,0xf8c24366,0xda3fd76c,0xcdc08ee1,0xc3c255cc,0xda4033ef,0x70c08ee1,0x3ac243d0,0x18cd41,0x42eaea71,0xddd1bbc2,0x4f1000c,0xc2549d36,0xc106059d,0xc08ee1da,0xc25595ec,0xc030a3d,0x54d57100,0x5d90c255,0x71000c04,0xc2550000,0xc0561f1,0xbed87100,0x7f17c255,0x71000c01,0xc2426666,0x48e00000,0x33336200,0x3d71c254,0xcd510048,0x14c255cc,0x8e550198,0x213333c0,0x3f40084,0xc23c6666,0xc0b80000,0xc08ee1da,0xc2249040,0x309c12,0x3c2315,0x21333335,0x3002000c,0x60a01100,0xe1e23500,0x3500b43d,0xe43d6666,0xfc5c3500,0x7100d83c,0xc23caaff,0x30c00000,0x77d87100,0x9082c23c,0x71000cb0,0xc2436666,0x78c5db3c,0x33333500,0x35006046,0x84456fc0,0xd0707100,0x504ec243,0x350024c3,0xd83e6666,0x21ce7100,0xc244,0x710018c0,0xc242eaea,0xcc7746f,0x9604f100,0x80c244b7,0xdac107b2,0xf4c08ee1,0x1ec24454,0x18bc24,0x11011402,0x22000cc8,0x16f81559,0x8ee1da31,0xfc040ad4,0x600200,0x35002402,0x543de1e2,0x66663500,0x3100a83d,0x1825eaa6,0xcc0403,0x3006004,0x600100e4,0xfc5c3500,0x3500b43c,0x9025486a,0x66663500,0x35013844,0x84454f4,0xcc0301,0x2011403,0x7e33018c,0xca452,0xc3fa022,0xfc0200,0xa4527e35,0x18020174,0x1740200,0xa4527e35,0x7e340174,0x90a452,0x4003c01,0x30020174,0x21c0200,0x2000c02,0x7e310090,0x12ca452,0x4002404,0x7e350090,0x2a0a452,0x2003002,0x7e3502c4,0x2aca452,0x11001802,0x35024044,0xdca4527e,0x527e3502,0x3502a0a4,0xb8a4527e,0x527e3502,0x3502dca4,0xdca4527e,0x527e3502,0x3102c4a4,0x80a4527e,0x3d712204,0xb8040024,0x527e3502,0x202a0a4,0xc4020024,0x780202,0x402ac02,0x3c040018,0x24c0400,0x2001802,0xb4020264,0x27c0200,0x4700e404,0xc0c3504e,0xc0100fc,0x24c0400,0x3100f004,0x18c7746f,0x2580400,0xa4527e35,0x5402024c,0xc2425100,0x24c80000,0x1b00200,0x4000c02,0x2402024c,0x24c0200,0x401b004,0x58040078,0x1bc0702,0x4004801,0x7e350264,0x24ca452,0xa4527ea2,0x3199b4c0,0xbc9931c2,0x997f3916,0x31000c2d,0x70f73405,0x99b43514,0x4000c31,0xe9350018,0x303e65,0x3e65ed31,0x18040048,0x540400,0x3e65edc2,0x64e666c0,0x1293f4c2,0x111e2441,0xa227606a,0xc01bc7ce,0xc264147a,0x2124efc4,0x63333371,0x146666c2,0xaa710024,0xaac2659a,0x1da0106a,0x1003003,0xfd31000c,0x18fc6624,0x1bc7d2b1,0x604169c0,0xc2,0x75710030,0xb2c25fea,0xc0347,0x1297004,0x78022160,0x3c0100,0x1006c03,0x2403000c,0xc011b,0x11b7803,0xf171000c,0xe8c2667b,0xc0a51,0x3210c08,0x18011b60,0x20e80c00,0x14666631,0xcd310018,0x19c85fcc,0x11bb407,0x5c030018,0xc011f,0x66999a31,0xd216186c,0x18011be4,0xcccd2200,0xceb12970,0xbcc01bc7,0xdfc260cb,0x1bd8fa5d,0x22213c08,0x29340890,0x1bc7ce71,0x6b5999c0,0xce712718,0xd1c01bc7,0x26c46c8e,0x7121540c,0xc25fea75,0x140a51e8,0x21600801,0x643dfb31,0xce6625ec,0x96c01bc7,0x4213ce9,0x840f2628,0xf1620921,0xb2c2667b,0x311cec47,0xfc6a8dd9,0x48ce1b27,0x41697121,0x999ac260,0x2200780d,0x297ce337,0x1101f802,0x417e86d,0xcd220030,0x6201eccc,0xc260cbbc,0x21846aaa,0x69b33331,0xce752868,0xedc01bc7,0x21c6251,0x81219008,0xc26624fd,0xc1000000,0x80250054,0x8025861,0x84082130,0x480321,0x3016801,0xc010030,0x29640400,0x21a8d21f,0xe3372608,0x88042130,0x21780c29,0x2298804,0x21422148,0x88ae14c2,0x21840802,0x4298804,0xdc0401e0,0x21840f02,0x780305,0x21020401,0x1e541999,0x318c014,0xfa5ddf31,0xf335000c,0x180663e,0x64e66671,0xf60b4cc2,0x78080018,0x29880421,0x4216c0c,0x9c0c297c,0x1bc0321,0x22012001,0x297c7333,0x3103a804,0x60f353aa,0x21780800,0x1026403,0x3c220030,0x2297cc4,0x63510108,0xf26666c2,0x7c040030,0x28d21129,0x3240102,0x35003001,0xb8643dfb,0x51ed3502,0x8006062,0xd8032178,0x300103,0x7ce99622,0x1f80429,0x800f004,0x14032178,0x21c0104,0x1034803,0x60030084,0xc0103,0x102f403,0x7808000c,0x297c0421,0x421840c,0x780c297c,0x3480321,0x35004801,0x4864c43c,0x21840821,0x54089026,0xc0321,0x35003001,0x846c8ed1,0xc0303,0x35001801,0xf46b5999,0xc0320,0x31001801,0x286a8dd9,0xc0729,0x31001801,0x5869b333,0x1740129,0x1000c02,0x99350018,0x186719,0x1000c03,0xf3220018,0x729703e,0x1801000c,0x73332200,0x48012970,0xc0200,0x3001801,0x880100d8,0x3f00302,0x3000c01,0xc010480,0x4980300,0x3000c01,0xc01048c,0x3fc0300,0x3000c01,0xc0303fc,0x29580200,0x921600f,0x4218408,0x780c2970,0x3000321,0x3005401,0xc010324,0x3240300,0x3000c01,0xc0102c4,0x3240300,0x3000c01,0xc010468,0x4500300,0x304b001,0xc0104e0,0x2d00300,0x3002401,0xc010300,0x5b80300,0x3002401,0xc01063c,0x5dc0300,0x3000c01,0xc012f88,0x2e80300,0x3003c01,0xc010318,0x2d00300,0x3000c01,0xc010300,0x69c0300,0x3003c01,0xc010678,0x69c0300,0x3000c01,0x30010300,0x7140300,0x3001801,0xc010738,0xcc0400,0x8949635,0x9635009c,0xf00894,0x8949a35,0x9a31012c,0x72c0894,0xf60b4c71,0x8949a40,0xaa310798,0xcf353,0x3100b404,0x9408949a,0x180405,0x35008404,0xb408949a,0x949a3506,0x34079808,0xc008949a,0x96414403,0x3fc0894,0x3000c01,0xc010438,0x4740300,0x4000c01,0x9613060c,0xf4310060,0x181293,0x105c403,0x9002000c,0xc141100,0x7d40300,0x4000c01,0x96130864,0x480400d8,0x1200400,0x8949635,0x60010144,0x8880300,0x56011404,0xc10d999a,0x100189a,0x5003000c,0xc0101,0x1006003,0x7803000c,0xc0100,0x1005403,0x1003000c,0xc0102,0x101c803,0xc803000c,0xc0101,0x3508a004,0x64089496,0xc0208,0x66c26351,0x241466,0x101b003,0x4004000c,0x949a3508,0x35085808,0x4008949a,0x949a3508,0x35089408,0x34089496,0x1740208,0x35085802,0x3408949a,0x949a3408,0x4503b408,0x8949ac0,0x9a350840,0x8400894,0x11023402,0x3506cc59,0x8c089496,0x949a3531,0x11299408,0x200c09a,0x9a340834,0x4200894,0x3005401,0xc001027c,0x5700300,0x3024c01,0xc010534,0x297c0400,0x8949634,0x3c01042c,0x42c0300,0x4000c01,0x200107f8,0x81c0301,0x2c49a16,0x4006001,0x963529a0,0x29580894,0x301c801,0xb80407ec,0x1b00402,0x3075c03,0xbc020060,0x94963531,0x3531a408,0xa4089496,0x94963531,0x35085808,0x88089496,0xf4961329,0x21c0402,0x3507f804,0xa4089496,0x1200231,0xc2115,0x35081004,0x3408949a,0x949a3508,0x2080408,0xec010030,0x2d00101,0x100a803,0xe003012c,0xb40104,0x103b403,0x403000c,0xc0105,0x104e003,0x404000c,0x949aa208,0x30ffc008,0x76aec25e,0xf8040114,0x949a3507,0x35297c08,0x2808949a,0x3c00408,0x3030c04,0x54010540,0x5040300,0x4000c01,0xe4043180,0x51e83103,0x3018c0a,0x24010534,0x2d00200,0xcf211,0x16080404,0x104089a,0x1c030030,0x240105,0x1050403,0x8004000c,0x600431,0x5024c08,0x4020228,0x300105,0x4080404,0x1c0600c0,0x3000102,0x4002401,0x9a110810,0x59420510,0x306666c2,0x2a00300,0x4002401,0x9a35297c,0x297c0894,0x8949a35,0x9a350804,0x31800894,0x3100c004,0x3cbc6666,0x7f80400,0x31010804,0x18b6eeb1,0x7e00300,0x401c801,0x84040804,0xeeb13103,0x30018b6,0x30010024,0x7f80300,0x3001801,0x1801000c,0x8040400,0x31036c04,0x18b0197c,0x8040400,0x3024001,0xf0010804,0x8040303,0x1000c07,0x4040030,0xc0708,0x4001801,0x48010804,0x8040300,0x500cc07,0x8c310090,0xce076,0x103f003,0x5003000c,0xc0104,0x16080404,0x103d89a,0xd8030018,0xc0103,0x1294c04,0x8003009c,0x3b40131,0x35081c03,0x5808949a,0x949a3529,0x35081008,0x7c08949a,0x3c0129,0x10b1c02,0xc030054,0xc0103,0x407e004,0xb40400cc,0x2a00300,0x3002401,0x6c0105ac,0x31440403,0x5649616,0x3001801,0x300102a0,0x7b00400,0x105d007,0xe8030024,0xc0105,0xb31904f5,0xff2ec24e,0x7a63c0bf,0xe681c04c,0xce70c248,0x4000c7c,0x19350018,0x184eb3,0x35003004,0x182948d4,0x48d43500,0x4003c29,0x2404000c,0x664c8100,0x4d6ac22c,0x18be33,0xc306629,0xc63f4400,0x24bf2c,0x4000c04,0xe9350018,0x303e65,0x3e65e935,0xc040024,0x180400,0x9bcdc6b3,0xb66666c0,0x4ec9dac0,0x96aa000c,0x4ec9da40,0xb0ff06c0,0x8000c40,0xb6570024,0xec9dac0,0xe170030,0xc040030,0x240200,0x20c508f5,0x2d0ec22c,0x48d4c0f6,0x20c5c029,0x6c8bc22c,0xe26dc0cb,0x4000c42,0xe310018,0x18f62d,0x3178ef35,0xef310030,0x303178,0x8000c04,0x48040024,0x99a27100,0x3405c234,0x1100608f,0x13000c7f,0x5110a4cf,0x3405c234,0x40018cf,0xe9b10024,0xb4c03e65,0x61c23299,0x24af32,0x3299b431,0x30020024,0x48301100,0xc0400,0x4002404,0xd4350018,0x182948,0x2948d435,0xc040048,0x6c0400,0x45b43971,0x240b8c2,0x60330078,0xc51e5,0xc6917,0x2002408,0x15310018,0x307a8c,0x45b4393f,0x800000c,0x69d10024,0x54001ac0,0x6ccccdc2,0x2948d43f,0x3375000c,0x77bef333,0xc494a,0xb5001804,0x3f6ccccd,0xc0494a77,0x304d997f,0x997f3500,0x400244d,0x2408000c,0x4a773100,0x313b4049,0x90aa6738,0x23d77100,0x6738c259,0x4012caa,0xd435000c,0x242948,0x313b7c04,0x30ba6595,0x23a33d00,0x8000c55,0xf50024,0xc03e65e9,0xc229999a,0x402b3333,0xc2c7c07,0x48d47100,0x6666c029,0x8001822,0x731000c,0x182c7c,0xa4000031,0x9a3d0060,0xc2999,0x2002408,0x35510054,0x82f838c2,0x9a710318,0x58c23599,0x3c8da8,0x2b333339,0x2404000c,0x180400,0x4d0c3535,0x35350030,0x244d0c,0x4001804,0xb471000c,0x66c25999,0x541666,0x5999b4b5,0x700000c2,0x494a77c0,0x1002000c,0x240202,0x494a7775,0x533319c0,0x19310030,0x305333,0x303fc01,0x2408000c,0x4a773500,0x3514f449,0xf4aee1da,0xe1da3514,0x3514f4ae,0xf4aee1da,0xe1da3514,0x3514f4ae,0xf4aee1da,0x198c0214,0x19445515,0x15171c06,0x414d0ae,0x48020024,0x88ae1518,0xe1da3514,0x3514b8ae,0x34aee1da,0xe1da3514,0x21464ae,0x3c02006c,0x480215,0x35153c02,0x60aee1da,0x240415,0x6183c02,0x103100a8,0x15e4ae15,0xffae1466,0xcc1510c0,0x15102600,0x103500f0,0x108ae15,0xfc151026,0x15102600,0xc0200e4,0x15900200,0x66005404,0x4033efc3,0xe4150e,0xc0151026,0x15102600,0x102600e4,0x2600cc15,0xf01510,0x2005402,0xe1100d8,0xd80200a8,0x180400,0x4000c04,0xf318e4,0xc0ae1510,0xc23220b1,0x40bad929,0xc8fdfcc,0x40aa3100,0x53000cce,0xd929c230,0x530018d2,0xd929c230,0x17001892,0x17002436,0x17003c36,0x17002440,0x11003c40,0x26000c42,0x18f02e,0x35000c08,0x24cfcf6c,0xcf6c7100,0x53e4c0cf,0x200303d,0x48040018,0x180600,0xcfdfcc33,0x48020090,0xed7e3700,0x2003032,0x6c3500b4,0x18cfcf,0x2003008,0x2e11000c,0x84020030,0xc0200,0x11006c02,0x1500c042,0x400a830,0x1802000c,0x240200,0x400e404,0xc0a0090,0x240800,0x2008406,0x9c020024,0xc0a00,0x2002408,0x6802003c,0x840201,0x902e11,0x2001802,0x3015000c,0xa21100f0,0xe4020078,0x20c21700,0x180201,0xa014402,0x6c060018,0xc0800,0x174c217,0x4000c02,0x200201d4,0x21c0201,0x13000c06,0x2009caa,0x30b10204,0xb3c08ff0,0x9fc254cc,0x450b8cd,0x4ecce739,0xfb31000c,0x1898cb,0x54ccb33d,0xe935000c,0x243e65,0x3e65e935,0x18040048,0xc0400,0xaaa090b5,0x8e2d0e40,0x5fbf9c40,0xce8c000c,0x70c0afdf,0xcc0955f,0xbf9c3100,0x4400185f,0xc0b1d2f2,0xc040030,0x180400,0xafdfce31,0xc040048,0x19980400,0x403cc0c,0x102a19bc,0x403fc15,0x540219bc,0x19a40203,0x403c004,0xd8080414,0x4b00403,0x4002404,0x840403e4,0x3c00c1b,0xc18e404,0xd80f03e4,0xcc080503,0x3e40803,0x261a4c04,0x1a407b74,0x707b7426,0x7b74261a,0x74261a94,0x261aac7b,0x1aa07b74,0x887b7426,0xc021a,0x404b002,0xc3660054,0x744033ef,0x261a647b,0x19a47b74,0x1c7b7426,0x7b74261a,0x742619e0,0x21a587b,0xb0020054,0x540204,0x404b002,0xc040018,0xe40400,0xa47b74a2,0x2c997fc0,0xb06738c2,0x99b43907,0x31000c30,0x70ca6595,0x997f3502,0x4000c2c,0x3c020018,0x300209,0x2092402,0xc040024,0x180600,0x8704411,0x42e26d35,0x3c02000c,0x7c441709,0xc0208,0x42e26d71,0x4b001ac0,0xb8020030,0x244b1508,0xc0400,0xf1002408,0x42e26d10,0x3ac309c0,0xbb504ec2,0x88148ec0,0x3b2323c0,0xbddb3cc2,0x897b0fc0,0x3a794bc0,0xff11c44,0xc0870173,0xc23b930e,0xc0bf746f,0xc08b1c91,0xc23a4aef,0xc0b4241e,0xc0865484,0x1e480b27,0xdc96c081,0x8a5dc08c,0xf41e003e,0x962d1f00,0x3a3b20c0,0xb00000c2,0x86198bc0,0x3f440018,0x30962d1f,0x963f4300,0x248cdc,0x893f8051,0x548619,0x90908271,0x8654843f,0xbb71006c,0x8f3fbdd1,0x9c8b1c,0xad413a53,0x9c8c3f,0xb76cf846,0x81009c3f,0x1733fa0,0x61b4c087,0x3f720084,0xc0870fb0,0x3ce99b,0x854fa962,0x3079b1c0,0x290ff200,0x96c083ae,0x3ac23b19,0xa83fad41,0xd8c08247,0xc23acf,0x8f3fa000,0x7dc08134,0xe40078a1,0xc08087a0,0xc23a91ad,0x3f800000,0xc4ca5,0xa5c0b051,0x24804c,0xb4241e73,0x8087a0c0,0xb851003c,0x81348fc0,0x4e710054,0xaac0bb50,0x6c8247,0xbddb3c71,0x83ae29c0,0x6f740084,0xabc0bf74,0x9c854f,0xfb0c072,0xe0eac087,0x3b710120,0xb8c09060,0x12c416e,0x91dd4462,0xcebe2c0,0x603b7100,0x4270c090,0x71001842,0xc0962d1f,0xc40ebf8,0xc5286200,0xa974c092,0xd6620024,0x66c097fe,0x62001866,0xc0931301,0x1809a7,0x991a4375,0x3fe0d4c0,0x24040030,0x796a6200,0x5e15c099,0x44620018,0x26c091dd,0x62000cc3,0xc0991a43,0xc2358,0x97fed634,0x3f44000c,0x2497fed6,0x433f4400,0x6c991a,0x79683f44,0x1006c99,0x90030018,0x300100,0x100b403,0xcc0301e0,0xe43f1700,0x443f4400,0xcc91dd,0x9c3f17,0x13013f44,0x100b493,0xa8030018,0x300100,0x1012c03,0xeb310048,0xd8445b,0x87484d34,0x3f71000c,0xc087484d,0x18b278,0x15313f44,0x81000c8d,0x8d1531c0,0x45f7abc0,0x60340030,0xc8a74,0x74603f71,0x881bc08a,0x3f350018,0xce9e2,0xe9e4c071,0x1b2ac08a,0xc0440018,0xc8bcb47,0x453f7100,0x62c08bcb,0x720018e9,0x8411f93f,0xc6107c0,0xa1946200,0xdbe1c084,0xf340078,0x2485b5,0x24c017,0x24c017,0xb50fc081,0x9925c085,0x6200904d,0xc07f8a59,0xca76f,0x279577f2,0x4e65c086,0x241ac24f,0x3af9c0bd,0xf94bc085,0x11bec24f,0xdb62c0ba,0x86eac084,0xc251,0xfcf0c0a8,0x8d1cc083,0x1045c250,0x88afc0b6,0x92ac084,0x18a4c251,0x434ac0b1,0x50dbc084,0xe7a7c251,0x1b2cc0ac,0xd815c084,0x562ac251,0xcf87c0a1,0x8ac6c083,0x3659c24e,0xa867c0bf,0x4afdc085,0xd8b2c252,0x8f3fc09b,0x1e32c083,0xaea9c254,0x89e1c091,0xcdffc082,0x5b3cc254,0x278bc090,0x34f3000c,0x3c3677f7,0xc082278b,0xc2538448,0xc093c4f2,0xc082dffc,0xc253f145,0x3d8c8473,0xc082a305,0xc252da05,0xc097559b,0xc0833f3c,0xc2533656,0x3e26b8fa,0xc0830b97,0xc25297a7,0x3e934f83,0xb483645c,0x4032f400,0x83fcf03f,0x5135cdc0,0x756590c2,0x842a503f,0x50c501c0,0x9044b7c2,0x8469683f,0x503b93c0,0xa1da0ec2,0x84b64a3f,0x4f9b33c0,0xafb85fc2,0x8510023f,0x4ee33fc0,0xb9c5cec2,0x8576ea3f,0x28f20120,0x8627953f,0x4e4e48c0,0xbe5575c2,0x85ca3e3f,0x51c2cfc0,0x159d02c2,0x83db6c3f,0x521462c0,0xe28390c2,0x83adcb3e,0x5178a1c0,0x400000c2,0x7b350d3f,0x782784c0,0x8fcd6200,0xb6b7c07b,0x2620078,0x4ac07c0e,0x6200782d,0xc07ca7c1,0x788ce9,0x7d5b3162,0x78d4f6c0,0x29026200,0x3fffc07e,0xaf34006c,0x1b07ecf,0x8a593f43,0x8200607f,0x350dc0a8,0xeb02c07b,0xed6201a4,0x1bc07cf1,0x6201bc40,0xc07db121,0x1a47ed3,0x7c4c8c71,0x50fae1c0,0xbe6201a4,0x92c07bc1,0x6201a442,0xc07b7186,0x1987c7c,0x7e8c0062,0xb0c9ccc0,0xda3c6201,0x3cb4c07a,0xb06201a4,0xb6c07a59,0x31018cbf,0xc778a44,0x5b3ca200,0x8a44c090,0xfe9c077,0xf46201bc,0xfbc0784e,0x620198e2,0xc0788138,0x1b075ff,0x78fb2662,0x98280dc0,0x525d6201,0xcbbcc079,0xa66201b0,0x5dc079b9,0x6201a489,0xc07a03e6,0x144b486,0x7af20a62,0x440619c0,0x96c43101,0xa225a47a,0xc0900000,0xc0825463,0xc83a8,0xfd9303f2,0xc582c077,0xc257,0x5031c090,0xcccdc095,0xf833000c,0x18987f,0x18000026,0x8200,0xc0987ff8,0x24afc9,0x92310133,0x82000c,0x92310100,0x188c13c0,0x32ad3300,0x82000c8f,0x32ad0000,0x5b18c08f,0xc7330018,0xc8c64,0xc7000082,0xd9c08c64,0x3300181d,0xc89d5ed,0x9100,0xc089d5ed,0x9056d595,0x936e3300,0x82000c87,0x936e0000,0x83c3c087,0x13330018,0xc85a9,0x13000082,0xec085a9,0x3300182a,0xc8420d1,0x8200,0xc08420d1,0xe4ca49,0x8302a733,0x53000c,0x8302a700,0x910108,0x82546300,0x589999c0,0xf862006c,0x3ac0987f,0x62000c90,0xc094671d,0xc744c,0x90639562,0xc4661c0,0x8a4c6300,0x768c08c,0xef52000c,0xb8aac088,0x575300c0,0xbfc085a5,0x906200e4,0x8dc082bd,0x620090f2,0xc080471b,0xc7f37,0x7c9d9162,0xc0414c0,0xbdb23500,0x35007879,0x74a175ba,0x75ba3501,0x350018a1,0x18e03567,0xc0800,0xaf8a3535,0xc080024,0x3fa53500,0x80030f7,0xe035000c,0x30ee49,0xee49e031,0x96710024,0xcc08e94,0x18a615,0x4000c04,0xe6350018,0x18aaea,0xaaeae631,0x9a710030,0xabbe9999,0xcdf31,0x8abb6662,0x9c315bbe,0x8f606200,0x729fbe59,0x9a350018,0x241999,0x8e949471,0xe9aa93c0,0x3c710030,0x91beb933,0xce2f0,0x99999a71,0xb08defbe,0x3c71000c,0xbbeb933,0xcaccf,0xa4c16672,0xae5dd7be,0xbb61000c,0x8e41be8a,0x62000caf,0xbec6c4e7,0x84fb2d,0xc6c4e771,0xe4c472be,0x60620018,0xfdbe598f,0x4400484c,0x0,0x967100f0,0xc9be96cb,0x24edb8,0xcc9a1371,0xa8ffe5be,0x1a71000c,0xffbeae8b,0xcec5b,0xc0179871,0xeaab52be,0x1362000c,0x97be74b5,0x350114ab,0x9c19999a,0x53fc6200,0xfd63beca,0xfc710114,0x39beca53,0x30e8c2,0xc0179871,0xa5144bbe,0x1a71000c,0x9dbeae8b,0xca363,0x71,0xf5813f00,0x7071000c,0xffbe360b,0xcef24,0x8e949462,0xb4d4b7c0,0x9a137100,0xbfb8becc,0x710018e6,0xbe96cb96,0xca206d3,0xe0016200,0x9e41bdf8,0xd0710030,0xc5bc0a9b,0x18f3a9,0x93426871,0xf096ffbd,0xfc71000c,0x2fbd07ab,0xcf1fa,0xf8e00171,0xa0215cbd,0x6871000c,0x9ebd9342,0xc9f28,0xa9bd071,0x9c15d7bc,0xfc71000c,0x6dbd07ab,0xc9dc5,0x360b7062,0x309aa0be,0x7100,0x3e5e0000,0x6200189a,0xbe74b513,0x27c1405,0xa4c16671,0xe161c6be,0xcc0401f8,0x99993500,0x35009058,0x84589999,0x99993500,0x35009c58,0xc0589999,0x99993500,0x3500fc58,0x5c589999,0x99993501,0x35019858,0x8c589999,0x99993501,0x1018c58,0x68030060,0x3c0101,0x35012c03,0xf8589999,0x99993501,0x39024c58,0xb4589999,0x2940400,0x58999935,0x99350294,0x2945899,0x2000c02,0x667102c4,0xcdc25766,0x2ac4ccc,0x5780e771,0x5049edc2,0x6622000c,0xb1012066,0xc0df31ab,0xc2588f22,0x1863b0c4,0xc94f7100,0x5932c257,0xf1000c8c,0x57b5e904,0x277a2dc2,0xdf31abbc,0x57bf15c0,0x800000c2,0x71280018,0x51006c70,0x84bec257,0xf100185a,0x58000004,0x24a05ec2,0xdf31abbd,0x57aecfc0,0x6acabcc2,0x9f710018,0x23c2583f,0x18b3f4,0x35005404,0x84b08def,0x8def3500,0x35003cb0,0x30b08def,0x8def3500,0x35006cb0,0xa8b08def,0x8def3100,0x401bcb0,0x65e20360,0xc25331,0xd9000000,0x66c0def9,0x62000c66,0xc0df31ab,0xc0000,0xde562c71,0x529999c0,0x47620024,0x94c0d8cb,0x62000ca0,0xc0da7352,0xcb50a,0xdbfe7a62,0xcd595c0,0x51cc3500,0x350030dd,0x54b6f458,0x6c0800,0xb0c5c335,0x70350060,0x54b169,0xb54c4b35,0x25350054,0x54b3c1,0xb26dd031,0xcd310048,0x3784ccc,0xc316522,0x480400,0x4ccccd71,0xb16970be,0xcd710030,0xd0be4ccc,0x48b26d,0x4ccccd71,0xb3c125be,0xcd710060,0x4bbe4ccc,0x9cb54c,0x4ccccd75,0xb6f458be,0xd804000c,0xcccd4400,0xd8be4c,0x4ccccd44,0x7100d8be,0xbe4ccccd,0xb4dd51cc,0xcccd7500,0x562cbe4c,0x40084de,0x28040138,0x2340402,0xb08def35,0x74020234,0x1ec0201,0xb08def35,0xef3501e0,0x21cb08d,0xb08def35,0x30020240,0x2280200,0x4000c04,0xd00104c8,0x4f80302,0x3000c01,0xf4040510,0xcf0b3502,0x22030cac,0x5a0fb2d,0x404e004,0x6322033c,0x405d0fd,0x6c0404a4,0x639d3103,0x4003ca3,0x9c040474,0x14053103,0x40018a1,0xcc040420,0x215c2203,0x5c04000c,0x600104,0x4045003,0xd7310414,0x3c9c15,0x2045004,0x1c020744,0x7440208,0x44000026,0x2607,0x260744,0x26074400,0x7440000,0x44000026,0x2607,0x260744,0x26074400,0x7440000,0xb2000053,0x8c479bd,0x93000051,0x9077fd,0x4067804,0xa5350090,0x18f73f,0xe4d4b735,0x1f40978,0xc109fd3e,0xc254bfb6,0xc0905b3c,0xc109fd3e,0x6924090c,0x64000ce0,0xe0690000,0x7b0c109,0xc706224,0x6200,0xc1097062,0x5307d4,0x8b86b00,0x9062000c,0x8b86bc0,0x5307f8c1,0xbc410000,0x62000c07,0xbc41c090,0x81cc107,0x6000053,0xc0681,0x6c09062,0x40c10681,0x5308,0xc050d23,0xc0906200,0xc1050d23,0x530864,0x3682900,0x9062000c,0x36829c0,0x530888c1,0x9aa80000,0x62000c01,0x9aa8c090,0x8acc101,0x5000055,0x8b8ff5c,0xff5c0533,0x5308d0,0xfb588000,0x3f3000c,0x5880c090,0xd4f6c0fb,0x7171c24e,0x558ec0be,0xb04c108,0x38c026f2,0xffc107fd,0x5bc24e3f,0xe3c0bf95,0xe9c1082b,0x18c24f8c,0x2c0bbee,0xb7c10889,0x2ec250b6,0x4ec0b411,0x4ac108dc,0x86c2502d,0xddc0b876,0x94c108b5,0xa811f10b,0x9128bc0,0x512784c1,0xaeacb0c2,0x8fbdbc0,0x51b486c1,0xa2b39ec2,0x9234cc0,0x50e962c1,0xc00cf50d,0xc105d6d2,0xc2520619,0xc09e2839,0xc1093a1d,0xc252895d,0xc09934f6,0x245ed4,0xd23f3df4,0xbcc105d6,0x68c252cb,0x653e6ab3,0xdc10971,0xcac25328,0x37c09535,0xb4c1098b,0x1ec2523c,0x633ebd8b,0xffc10949,0x68c25375,0x43df13c,0xfbc109a1,0x14c253e2,0x80c09232,0xccc109bf,0x4fc251c9,0x3f3f0ab1,0xd80929,0x383f01f3,0xe9c107fd,0xb0c2540f,0x113d5754,0xb409cc,0x3f4041f2,0xc109128b,0xc24f401b,0x3fb49069,0xc1087386,0xc24e7c7c,0x3fbcd962,0xc1083cce,0xc250fae1,0x3f846291,0xc108ef5f,0xc2514292,0x3f673d3a,0xc109036c,0xc24feb02,0x3fa846fa,0xc108a353,0xc2507ed3,0x3f984114,0xc108ccac,0x3c8ac6,0x50b9a43,0x720df8c1,0x4cc033f,0x604e65c1,0x42516200,0xf94bc105,0x1f62003c,0x1cc10572,0x71003c8d,0xc1059b77,0x6c51092a,0xbe2a6200,0x50dbc105,0x3844006c,0x68c105d2,0xe157620d,0x4e48c105,0xaf340198,0x6004fa,0xcc03c072,0xe33fc104,0x596201c8,0x33c10524,0x6201b09b,0xc10557cd,0x1a43b93,0x584a962,0xbcc501c1,0xab1a6201,0x35cdc105,0xa62401a4,0x640060ca,0xe157c0a8,0xf48c105,0x2a59e62,0xbcc2cfc1,0xf2176201,0x1462c105,0xe86201b0,0xa7c10608,0x3401b097,0x30062da0,0x9e3f7200,0x56c102a5,0x6201a436,0xc1065a04,0x1bcda05,0x6403062,0xb04afdc1,0x182e6201,0xf145c106,0x4c6201a4,0x48c1068e,0x6201bc84,0xc1066fd0,0x1b0d815,0x5f80b62,0x90cdffc1,0xcc096203,0x1e32c106,0xdd3101b0,0x18069a,0x3677f783,0x6cc093c,0x540fc0c1,0x1fa2c3f,0x441020c1,0xc1043ba9,0x47440fa8,0xc0c10505,0x8f04440f,0x1038c105,0x1553461,0x88881bc1,0xde3f4402,0x18026a,0x5534c044,0x35005401,0x24fa2cc0,0xdec05300,0xecc1026a,0x7bc05310,0xcc0f992,0x7b3f4400,0x11c4f992,0x5f613f44,0x44000cff,0xff5f61c0,0xc01710b0,0xc0170090,0xc0530090,0xc1058f04,0x300110ec,0x13440400,0xf9927b34,0xc0721194,0xc0f7c0c4,0x11ac5e15,0xfde25634,0xc0451134,0xcfcfa72,0xac9b3412,0x4411b8fc,0xf6a55bc0,0x24091170,0x46373500,0x341278f6,0xd0fde256,0x300111,0x34126004,0xcf7c0c4,0xc43f4400,0x24f7c0,0xa5593f44,0x44006cf6,0xf646353f,0x1801006c,0x12480300,0x3003001,0x140100c0,0xd80301,0x3011401,0x3f1700c0,0x3f1700c0,0x3f4400c0,0xb4fcac9b,0x180100,0x1132003,0x50040030,0xfa01f413,0x96c10537,0x4cc23b19,0xfbc0bb50,0x74c106bb,0x8b94213,0x13d4c106,0x87c0b863,0x10c10745,0xc00df114,0xc10457f6,0xc23aa17d,0xc0b4241c,0xc1079bfe,0xc23a91ad,0xc0b00000,0x3c07b97c,0x6cf87100,0x8b93fb7,0x64005406,0x3fad413a,0x48bbfb,0x873fa064,0x4cc10745,0x37fa3114,0x65004805,0x3f909082,0x609bfe,0x57f63f43,0x82005404,0xb97c3f80,0x4aefc107,0x8c420024,0xc104b5,0x3f806215,0xc104d30a,0xa0641548,0x45f143f,0x6214d0c1,0xc103d588,0x842323,0x3224662,0x6c930ec1,0x51874300,0x1554c102,0x71843f41,0x71002401,0xc0bddb3c,0x3c032246,0x504c6200,0xd588c0bb,0x6f730030,0x87c0bf74,0x600251,0x14c0b851,0x84045f,0xb4241c74,0x4b58cc0,0xc0430048,0x90017184,0xc0b09100,0xc104d30a,0xdc556666,0xb59d440e,0xf0cc106,0x65e7c33,0x260018,0x64001800,0x5e7c0000,0xf48c106,0x5cf6533,0x64000c,0x5cf6500,0x240f78c1,0xc0b45,0x45000064,0xa8c1050b,0x1617330f,0x64000c04,0x16170000,0xfd8c104,0x2f4d833,0x91000c,0x2f4d800,0x575b18c1,0x6b330090,0xc01ad,0x6b000064,0x38c101ad,0x46783310,0x64000c00,0x46780000,0x1068c100,0xfd8e9b35,0x9b351068,0x10b0fd8e,0xfa6f6b33,0xd1000c,0xfa6f6b00,0x5923d7c0,0xcd98c8c2,0xa3391788,0xc5523,0xbd9a6b31,0xd7350018,0xc5923,0x4001804,0xc8715afc,0xe9c0cd98,0x483e65,0x4001804,0x34020054,0xc24d511a,0x48d26595,0xccb33900,0x31000c49,0x18c26738,0xcce73500,0x4000c4d,0xe9350018,0x303e65,0x4004804,0x54040018,0xc7fff600,0xc03e65e9,0xc2785988,0xc0f06f44,0x3d48cf7d,0xc27865af,0xc0ae8356,0xc01cac0c,0xc27865e6,0xc0d97f88,0xc072a138,0xc27862ab,0x40cc6cbe,0xc0b3ebcf,0xc278664c,0x40dc55b9,0xc097c5a4,0xc2786666,0xc0de6664,0xc10028f6,0xc2786693,0x40de1f64,0x3d4cb4af,0xc27864c5,0x40d9cd53,0xc042d178,0xc278642e,0xc0db9210,0xc0a0cacb,0xc27865e5,0xc0c05fdf,0xc0b7baa8,0xc27865f7,0x40c0600f,0xc01a257d,0xc2776a30,0x40d3c5ac,0xc09b3f4d,0xc277606a,0x40c24c62,0xc0aee237,0xc27762c4,0x40c277c6,0xc02bad4f,0xc277663f,0x40d3b0a9,0xc05345b7,0xc277647f,0xc0aac6a2,0xc02b5836,0xc2776840,0xc0d46e9a,0xc07fd346,0xc27766bb,0xc0c2f794,0xc0aedd8b,0xc277653f,0xc0d2ae9f,0xc09cdfab,0xc27442c9,0xc0bbe9ad,0xc0b05e57,0xc2732676,0x40d3126a,0xc09dba32,0xc2742389,0x40bf08a0,0xc0aff76e,0xc274481f,0x40c19310,0xc02ba2c6,0xc27317ad,0x40d3fd63,0xc054ee4a,0xc2741b2f,0x40f2b146,0xc02d7097,0xc2744e90,0x40eb761f,0xbfc3356e,0xc27472d3,0xc0acb5d9,0xc02c6e1a,0xc2744e97,0xc0eb7512,0xbfc3356e,0xc2741b42,0xc0f2af23,0xc02d7097,0xc2746666,0x40b4f725,0xc0e051ec,0xc2633b82,0xc12b7e9b,0xc02d70a8,0xc2695d89,0xc129b678,0xc02d70b9,0xc2687d64,0xc1233777,0xc02d70a8,0xc26d4ce1,0xc112b25a,0xc02d7c4a,0xc270f547,0xc1146ea0,0xc02d70b9,0xc26feb85,0xc0f71e11,0xc02d70a4,0xc272faee,0xc0d66786,0xc02d7edc,0xc2727816,0x40ddd947,0xc02d650e,0xc262f4fb,0x412bb5b6,0xe60030a4,0x2d70a440,0x6a37a2c0,0x2823c9c2,0x6cac41,0x70a44132,0x18f10060,0x41146ea1,0xc02d70b5,0xc26d6443,0x411222e9,0xc02d7d28,0xc2716d8a,0xc111fae8,0xbfc3357e,0xc26c68ac,0xc23670d,0x9804f100,0xb0c26772,0x87c12b31,0x4cbfc335,0x68c20d2f,0x182c4e,0xbd4c04f2,0x88374225,0x51eec12b,0x3333c0e0,0xc20d,0x61000c2c,0x1a4227ff,0x242a27,0x4e256035,0x91710018,0x6fc26390,0x242adf,0x4e294935,0x6c710048,0x2ec212fc,0x3033ab,0x11bd9071,0x330ef5c2,0xa8710024,0x6742317b,0x144f91d,0x2cab5a71,0xee3c4d42,0x10f1000c,0x422c9f0f,0xc0eea81a,0xc0e051ee,0x4225dcda,0x412b93fc,0xc0e051ec,0x4225a079,0xc17506f,0xe4cb7100,0xec3bc265,0xb5004804,0xc26d44a0,0xc112ae71,0x74e050b9,0x51eeb101,0x4935c0e0,0x4132c264,0x71002410,0x422fc45c,0x3c0f0ab6,0x8f807100,0x7e8b422a,0x71000c09,0x422aee79,0xc23311b,0xc81f7100,0xcba6c263,0x71000c2a,0xc256b566,0xc184b70,0xb71b7100,0x870f4225,0x62004817,0xc25708b1,0xcfe21,0x49619262,0xcc4ee6c2,0xb22d7100,0x4a0bc261,0x7100240f,0xc26aa816,0xc0cf04cf,0x6e04f100,0x4dc273ce,0xbac0c92d,0x85c0e04b,0x11c26feb,0x18f71e,0x6d63af71,0xaf4f25c2,0xab71000c,0xd1c26702,0xcdb9f,0x6370fd71,0xf8e154c2,0xb362000c,0xa7c25ad8,0x71005473,0xc260a1ed,0x600309c8,0xe6527100,0x7a98c25e,0xf10024e9,0x6d77981c,0x16c3c2c2,0xe051ecc0,0x66a0a3c0,0x26391dc2,0xe051ecbf,0x6b4feec0,0x9f9bd4c2,0xe051ec3f,0x6ba228c0,0xaeaf0cc2,0x30710018,0xedc2669a,0x181cb9,0x6d82dd71,0x19751dc2,0xd8710174,0xa3c26d02,0xcba92,0x7302c7a2,0xd5cff8c2,0xb4513940,0x1e133100,0x710018f7,0xc2688210,0xcd8f143,0x1504f100,0x76c26d48,0xdd4112c3,0x82c0e050,0xabc26552,0x12c00c8,0x629f0571,0xdddadec2,0x69710024,0x56c262f5,0xcf8e1,0x65a78b62,0x746e3cc2,0x59457101,0xe4bfc25e,0x710018ee,0xc2609b33,0x3c040521,0x1bc0300,0x71000c01,0xc26433e0,0xc107b75,0x85a16200,0xb3a9c25a,0x8062000c,0x12c261a0,0x7101c800,0x422a5c48,0x1424ab04,0xdc977101,0xecac422a,0x71000c07,0x422f65df,0xc115386,0x77ca7100,0xeea24231,0xf2012cfa,0x65717f5b,0x12828c2,0x2e8af241,0x632954c1,0xf9369ec2,0x2e9d4340,0x611a79c1,0xaf87c2,0x2e8eb041,0x60f52bc1,0xc7311c2,0x2e8a4441,0x633d14c1,0x10fe4dc2,0x2e9d4341,0x65469fc1,0xd095cc2,0x2e851e41,0x633333c1,0x6cccec2,0x34919041,0x658361c1,0x19f6dc2,0x2e901cc1,0x6531d0c1,0xd70f5c2,0x60816bc1,0x4b0ff200,0x43c110fe,0xdfc12e9d,0xb4c260f0,0x9ec10c2b,0x71c12e9a,0xb2c2611f,0x5bc10074,0x62006082,0xc0f9369c,0x549d43,0xcccc0cf1,0x9190c106,0x7f42c134,0x7974c266,0x337ebf2f,0x157bc12d,0x4de0c267,0x71000c37,0xc26beee0,0xcbf3f5b,0xbc04f100,0xc3c26d80,0x7ec01767,0xc3c12d33,0x13c26765,0xcb6fc,0x66c9e771,0xdbfef1c2,0xe271000c,0x98c261b1,0xcdddb,0x6a5acd71,0xd0df3dc2,0xdc03000c,0x7ec1c102,0xa1c12d33,0xaac25a85,0xc10b3,0x6d465071,0xb27766c2,0x4f10024,0xc25fcccd,0xc0dccccd,0xc12d337d,0xc25dc6e3,0x18f605af,0xb6db7100,0xbf83c267,0x840084c7,0xc2667574,0x3f24ff76,0xf03100a8,0xc374d,0x67ad7571,0xb801bdc2,0x471000c,0xac26d08,0xce99d,0x360b04f1,0x92b2c267,0x337e40ba,0x3290c12d,0xfc07c26d,0x71000cb6,0xc2682663,0xcda829f,0x52947100,0x6bf0c261,0x71000cde,0xc25f9da5,0xcddce2f,0xd8b4d200,0x73a5c25a,0x337e410f,0x84b0c12d,0xc0103,0x21b55571,0xda327942,0x2003009c,0xcc0104,0x103e403,0xb471000c,0x9142267c,0x24b852,0x2cab5a71,0xee3c4b42,0xf71000c,0x1c422c9f,0x60eea8,0x2698f553,0x902442,0x103f003,0xd9620060,0xac42218c,0x3009cd7,0x18010264,0xdb04f100,0x8cc267b6,0x9b3fc7bf,0x4fc13599,0xbbc26674,0xc3f2b,0x666610f1,0xc266,0x999abf40,0x529ac135,0xfef1c261,0x999b40db,0x7b70c135,0x83a14221,0xf1000cda,0x25ebbd1c,0x171baf42,0xc3357e41,0x256865bf,0x17b46942,0x40000041,0x373333bf,0x18cccdc2,0xc3357641,0x374922bf,0x195c1cc2,0xbc710018,0xd04227f3,0xc2e21,0x64ed6671,0x1f8eb8c2,0xe871000c,0x93c26d90,0xc22ac,0x68e41871,0x14a05dc2,0xaac4000c,0x20423284,0x40f809,0x58bf4000,0x8f105,0xecbf4000,0x4a422c9b,0xc0efc5,0x49bf4000,0xcac26652,0x302ff9,0x329c9371,0xf53aed42,0x51710018,0x47422fbe,0x181630,0x1014403,0x271000c,0x66c25825,0xc2066,0x54aeb871,0x284d1fc2,0x3571000c,0x1cc24fad,0xc27c5,0x3ae0ec62,0x9cedcac2,0x526e8700,0x193dc265,0xa8c11f,0x71000c01,0xc2669fc1,0xc2f9879,0x19cd7100,0x2943c26a,0x35000c0e,0x604ca7cb,0x3a77100,0x8dc1c273,0x62001803,0x4225857e,0x30f9ca,0x501e1671,0x284d20c2,0xc4710018,0xf3c23b20,0xc201a,0x3756be71,0x19b50cc2,0xa803000c,0xc0100,0x1015c03,0x9971000c,0x1bc2551f,0xc27c5,0x2a999a62,0x4802e242,0x8f807100,0x7e8c422a,0x3001809,0xc0100fc,0x900300,0x71000c01,0xc26a835c,0xe4067daf,0x2b117100,0x2c09c273,0xf1000c02,0x7364da10,0xf75f0bc2,0x4ccccdc0,0x71671f3d,0x100000c2,0x4ccccdc1,0x6cf2783d,0x2492dec2,0xc471000c,0xe2c2660d,0xc300b,0x277d0c71,0x2e74fe42,0xbe71000c,0x7422f44,0xc18aa,0x327fb971,0xf9cac542,0xd870048,0xb423298,0x2440f75f,0xcd41c100,0x9f3d4ccc,0xa6422724,0xc2f12,0x66678b62,0xcac3fc2,0x6c0300,0x71001801,0xc272eedb,0xc056881,0x8604f100,0xb042269c,0x7d414345,0xa53d4cb0,0xc0422b2f,0x183db2,0x11aefff3,0x7e4230ed,0xff412eef,0xdd3d4cd0,0xde42353f,0xc041187c,0xf33d4ccb,0x8942376b,0x694101ec,0x953d4cc4,0xa2c27149,0x1c412fda,0xd3d4c7d,0x6dc27482,0xed4121ee,0x353d4cb9,0xadc277a5,0x2d410abb,0xe63d4b25,0x84c26d85,0x82413a98,0xda3d4cc6,0xa5c267cf,0x49414355,0x5a3d4cd7,0x3ec2676b,0xbdc14332,0x3d3d4c1e,0x3f42376c,0xcdc10017,0xe33d4ccc,0x45422716,0xc0c1434f,0xe33d4ccb,0x3ac2770c,0xc9c11112,0xb13d4b1c,0x21c271e7,0xa7c12e7b,0xb13d4dcc,0xfc423523,0xcdc11a19,0x273d4ccc,0x4422ebe,0xcdc13608,0x443d4ccc,0x52c277dc,0x7f4103ed,0x64c07567,0x91c27753,0xce410c1a,0x61c057c2,0x73c277ef,0xd64102d9,0xedc08dd5,0x7c277c5,0xbd4107f4,0xfac09ef3,0xd5c27796,0x26410adc,0x3dc10027,0x84c2766d,0x1411427,0xfec0a077,0x24c27483,0xf64121e3,0xb6c10028,0x78c275ab,0xc0411b1e,0xbac09b78,0xbfc275da,0x2e4119da,0x3fc05e03,0xfdc2704b,0x46413429,0x31c1002b,0xf9c274e8,0x45411fbc,0xf9c08582,0x6bc26add,0x39413fa5,0xfec10025,0x52c266d4,0x38414375,0xbac10028,0x4d423752,0xe04105fc,0x69c10028,0x13423147,0x934121b1,0x71c10028,0xa1423261,0xfb412918,0x1fc10028,0xbf422b2a,0xfc413568,0xc6c10029,0x39422cb8,0xf5413a99,0xe8c10028,0xf2c265cc,0xf6c13bd2,0xfbc10028,0x76422772,0x4fc13b63,0x4cc1002d,0x204226f5,0xf7c14343,0x5ec10028,0x86c27040,0xdac13447,0xc0c1002a,0xc145f100,0xc10028f6,0xc2721430,0xc121b15a,0xc1002894,0xc27795e2,0xc10af59b,0xc1002739,0xc26bf6ea,0xc13568c0,0xc10029fe,0x422e49e1,0xc1373dd3,0xc10028f7,0x422f05e4,0xc12ab72a,0xc1002893,0xc2763f3d,0xc1036578,0xc1002e64,0x42352db4,0x541a3c0e,0xd910f100,0xdec267b1,0x9c14368,0xcbc10029,0xd4233f3,0xfdc11242,0xc10029,0x32423762,0x24006e,0xfffffff1,0x57cbffff,0xe342358e,0xf5c0f333,0x70c10028,0x74423572,0x64410365,0x22c1002e,0x24c2765b,0xf440f334,0x1bc10028,0xf2422500,0xf4413bd2,0xf2c10028,0x774226f7,0xf141436c,0x99c10028,0xfec274c0,0xfd411241,0xb2c10029,0x26c26fd2,0x93412ab7,0xc8c10028,0x76c2683f,0x4d413b63,0x78c1002d,0x93c277b4,0x3ec10739,0xe0c09bc2,0x17c277ee,0xf6c102f4,0x4c07b44,0xfbc2768d,0xdcc1135d,0x5cc0a110,0xe6c27741,0xa2c10d13,0x39c0569b,0x39c27599,0xd3c11aa3,0xdac064f6,0x78c2753b,0x3cc11da8,0xf1c094da,0x7c274fb,0x23c11f4a,0xcec08211,0x4dc26bb3,0xe1c13e32,0xab3d4a46,0xf5c274fa,0x2fc11b0e,0x7dc09416,0x8bc277a8,0x3dc103fa,0x9fc0906e,0xdec274a9,0xb0c11cd9,0x81c07e74,0x3ac26c76,0xb0c1163c,0xefc05e75,0xbfc26ead,0x3ac10925,0x67c05e59,0x8bc26f56,0xa7c102ef,0xd4c084cb,0xe6c26ef6,0x59c10694,0x54c098dd,0x94c26ce9,0x4bc1143f,0x1cc0a067,0x5dc26a8a,0x3ec11d87,0x30c085bd,0xdfc2731e,0x1c0d3b6,0x29c09e42,0x48c27336,0x7bc0d234,0xcc0794c,0x5c26a47,0x9411218,0x50c1408f,0xebc2662b,0xd0410baf,0x2ec1462e,0x4cc271fe,0xfa411296,0x7bc12635,0x49c26ff5,0x84410d92,0x4dc13433,0xebc2718d,0xc740fc57,0x7dc1345f,0x10c273eb,0xb5410049,0x2c12659,0xa1c26e76,0xe840ffe9,0x92c13ed6,0x4c26906,0x3c40f3ac,0xcc1470c,0xac2693f,0xe74136c1,0xf5c11586,0xfac264f8,0x60413a61,0x2c1111a,0x8bc26f48,0x412972,0xbdc114f5,0x63c2678a,0x2141282b,0x46c1344c,0xdc268ab,0x49413046,0x93c12723,0xb9c26be8,0x6b40f9d0,0x25c14433,0xe2c26e27,0xa941248b,0x53c1265d,0xd8c266a2,0x47411c09,0xf4c13f48,0x4bc27365,0x1d4115da,0x68c11514,0x95c27586,0x2641016c,0xec11568,0xd7c26c9d,0x54411d27,0xc0c1344e,0x5cc275fe,0xb0c0ec93,0x64c1111b,0xecc27171,0x61c10091,0x1ac1344b,0x74c26e69,0xe4c0f9dd,0xbac13f47,0xf0c265db,0x43c10680,0x3fc1470c,0x31c26a52,0xe0c0f628,0xb9c1462e,0xddc26778,0xddc13215,0xf9c12656,0xbdc26c0b,0xfac12a5f,0x27c12634,0xe2c266f1,0xbbc1289b,0xefc1345f,0x9dc26aca,0x50c1223c,0x65c13433,0xacc26bec,0x5c10b82,0x48c1408f,0x32c26763,0x6ec11c3e,0xaac13ed7,0x97c27516,0x99c10761,0x10c11588,0xedc271c4,0xbec11f8a,0xbac114dd,0x28c27377,0xcac10514,0x58c12723,0xeec266a0,0x72c11208,0xb8c14433,0x10c27089,0x18c11b05,0x7c12659,0xc1c26cdd,0xe4c12ffe,0xadc11511,0x58c267c1,0xddc13881,0x99c11562,0x5cc26eb0,0x3c114db,0x28c1344d,0xfa42242c,0x61c13a61,0xe2c1111a,0xdb4226bd,0xc4c1282a,0x87c1344c,0xd54225d5,0x48c11c09,0x4ec13f48,0xca422837,0x70c0f396,0x3ac1470e,0x1142297a,0xac11218,0x80c1408f,0xec42255e,0xd0c10baf,0x81c1462e,0x48423131,0x35c11296,0xb3c12635,0x47422f28,0x71c10d92,0x8fc13433,0x864230c0,0xa8c0fc56,0x8cc1345f,0xee42331f,0x8c10049,0x34c12653,0xaf422da9,0xe9c0ffe9,0x3fc13ed6,0x9422872,0xeac136c1,0x39c11586,0x7a422e7b,0x16c12972,0x80c114f5,0xb74227de,0xefc13046,0xc3c12721,0xec422b1b,0x6fc0f9d0,0x1bc14433,0x5a422d5b,0x5dc1248e,0x42c12656,0x9d423299,0x26c115da,0x2dc11512,0x5f4234ba,0x61c1016c,0x31c1155f,0x6f422bd0,0xe5c11d27,0xf2c1344e,0x81423531,0xbb40ec93,0xb8c1111b,0xce4230a4,0xd3410091,0x4dc1344a,0x76422d9c,0xe540f9dd,0x45c13f47,0x2742250c,0x77410677,0x99c1470e,0x9c422b1f,0xe410b82,0x74c1408f,0xfe422985,0xe040f627,0x30c1462e,0xb6422b3f,0xf9412a5f,0x21c12634,0x9d4229fe,0x5541223c,0x5bc13433,0x20422624,0x7641289c,0xf0c1345f,0x674226ab,0xd2413216,0x7cc12655,0x38422696,0x6b411c3e,0x3dc13ed7,0xea42344a,0xfa410761,0x32c11581,0x394230f6,0x45411f86,0x56c114f6,0x144232ab,0x94410514,0x8dc12721,0xf44225d3,0x6f411208,0x1ec14433,0x83422fbd,0x6a411b05,0x31c12657,0x6d422c10,0x48412ffe,0xe1c11513,0x534226f4,0xed413881,0x69c11562,0xe4422de3,0x6e4114d9,0xbec1344f,0x41419302,0x33bf19d4,0x5dc14733,0xee4193d1,0x333ea85c,0xb1c14733,0xb0418bbf,0x33bfa41b,0x46c14733,0x53418306,0x33bf6eb4,0x5fc14733,0x65c1fe8a,0x33bf5f37,0xd0c14733,0x19417ff4,0x33be28e2,0x94c14733,0x3ac1fbc0,0x333e2cb0,0x13c14733,0xde418707,0x333f9c54,0x54c14733,0x88418f22,0x333f8e47,0x91c14733,0x14c20755,0x33bf2ccc,0x94c14733,0x1ac2037b,0x33bfa5c2,0x95c14733,0x88418132,0x333f22a0,0xcdc14733,0xefc20802,0x333e28e3,0xa7c14733,0x7dc200fe,0x333f9aea,0x69c14733,0x37c20625,0x333f8334,0x98c14733,0x26419405,0x333e28e3,0x21c10f33,0x574192ab,0x33bf2ccc,0x28c10f33,0x22418af7,0x33bfa5c2,0x5fc10f33,0x7641828a,0x33bf5f37,0x89c10f33,0xe4417f7c,0x333e5fd7,0xd8c10f33,0xbd418662,0x333f9c1c,0xd2c10f33,0x2f41904a,0x12f10054,0xd018c10f,0xfd37c1fe,0x33333f65,0xbb5cc10f,0x37bdc1fb,0x33333586,0x7b94c10f,0xc222c203,0xf10018a5,0xff064704,0x6eb442c1,0xf3333bf,0x7027dc1,0x44ea7dc2,0x4f10018,0xc2081504,0x360637bd,0xc10f3333,0xc20275e4,0x24a04934,0x52497100,0x21c0c206,0xf3000c80,0x77050075,0xca565c2,0xa00b1541,0x74e66ac0,0x1b87e9c2,0x926f9a41,0x74a3a2c0,0x1ce3bcc2,0x8394a741,0x755cb5c0,0x18f462c2,0x6618b541,0x6f33b6c0,0x4544bc2,0x75ca7541,0x6e4c06c0,0xbedfdc2,0x5a80ed41,0x6c4f65c0,0x16e99ac2,0x602fd341,0x6aa8cec0,0x1d1c93c2,0x82eb7241,0x6b74f6c0,0x1a5495c2,0x96416e41,0x6dcadfc0,0xf5e32c2,0xa17ebf41,0x6f4614c0,0x3a368c2,0x90787741,0x110ecc0,0xe4960b7c,0x60422611,0x76412b87,0xc011110,0x6d8a7100,0xfae7c271,0x71000c11,0x422f0c9e,0xbc134e89,0xe640410,0xc3357e34,0x48010abc,0xa200300,0xf1002401,0x317b7204,0xfbc25742,0xc3357ec0,0x2cae38bf,0xece0aa42,0xb262000c,0xcbc2488d,0x71110483,0xc23a2642,0x301f7bf6,0xbf40300,0x71000c01,0xc268e418,0xc14a05e,0xbe80300,0x3000c01,0x90010b4c,0x23607100,0x96694231,0x3007805,0x40451128,0xf8c3357e,0xc070a,0x3003001,0x48010bac,0x1f983100,0x710bac55,0xbfc33576,0xc4501e16,0x3576b10b,0xad35bfc3,0xc51dc24f,0x3002427,0x600100e4,0x6d397100,0xcc19422b,0x4004821,0x76b80ba0,0x5cbfc335,0xc5c23a4d,0x181fb9,0x3003c01,0xc010cd8,0x4d04f100,0x6d422150,0x9bc0db1d,0xbc13599,0xabc26736,0xcba92,0x62483d71,0xda839fc2,0x10f1000c,0xc26796e1,0x40af4f42,0xc135999b,0xc267ad75,0xbfb801b4,0xc135999b,0xc264db49,0x18cf04d1,0x21d97100,0x5884c206,0xf100308e,0xab2cc210,0xeab10341,0x35999b3f,0xae0000c1,0x41,0x35999a00,0x9f656ac1,0x6a52df41,0xb4710030,0x86419043,0xc8e58,0x6c21371,0x8d5b2fc2,0x3d71000c,0xc0422669,0xcba92,0x11a52e71,0x2b2b49c2,0x4f1000c,0xc20c0000,0x40796a55,0xc135999a,0x41918427,0x6c8d5b2d,0xc1357100,0xfbe341a0,0x71000c61,0x41abd484,0x9cd160d0,0x3d04f100,0x2dc21508,0x9b3ef898,0x45c13599,0x244226e6,0x24a8fb,0x25470071,0xc540b842,0xfc71000c,0x66c21462,0xe049514,0x111fbe71,0x36099ec2,0x10f10018,0xc20c0000,0xc0796a51,0xc135999a,0x419043b4,0xc08e5884,0xc1054c10,0xc206c213,0xc8d5b2d,0xc204f100,0xfb41ab2c,0x10bfeab0,0x51c1054c,0x7c418ab0,0xcd09d,0x9f656a71,0x6a52db41,0x2e710024,0x45c211a5,0xc2b2b,0xf1005404,0x54c1010,0x15083dc1,0xf8980bc2,0x54c10be,0x1462fcc1,0x95146ec2,0x54c103f,0x8d3334c1,0xf5012c,0xc1054c10,0xc2111fbe,0x403609a2,0x44054c10,0x4c10b301,0x21d9c105,0x5886c206,0x200188e,0x10310114,0x114054c,0x8d5b2f31,0x8e710018,0x154165f7,0xc7d8e,0x816d2771,0x48dff441,0x8471000c,0xd941abd4,0x6cd160,0x8b456f71,0xba1d6d41,0xd353000c,0x6bc17093,0x4f100c0,0xc15ba335,0xc05049b2,0xc1054c10,0x41a0c135,0x3c61fbe7,0xbc9e7100,0xf1fc140,0x7100187d,0xc141c803,0x187cc88a,0xe304f100,0x7fc175b6,0x103edcf9,0x8fc1054c,0xc16d06,0x180000,0x5e0d8244,0x620078c1,0x4164d980,0x3cca8a,0x80380253,0x60ae41,0xbc9e0df4,0xf24c140,0x7f43407d,0x6667c100,0x4106,0x15734080,0x896bc101,0x184165,0x333114f4,0xc0c3,0x1573c080,0xdf37c101,0xad10c12c,0x7f43be15,0xc803c100,0xc886c141,0x7f43c07c,0x100b400,0x10f10048,0xc1396c2e,0x3f051f1d,0xc1007f43,0xc12f3f0f,0x3edc63ae,0xc1007f43,0xc13d120a,0x3ca969a1,0x9c0300,0x3003c01,0xc0100b4,0x8704f100,0xafc1338a,0x43bf1242,0xe3c1007f,0x5dc175b6,0x30dcf9,0x3e3d5c71,0x14284ec1,0xd3710048,0x73c17093,0x60d09d,0xb101b004,0xc1007f43,0x41622569,0x248f1cda,0x45707100,0x1d54418b,0x710048ba,0x415bf05f,0x30106a5d,0xb0505300,0x3c8c418a,0x38014400,0xb44180,0x53d5ee71,0xc46e0941,0x803006c,0xbac09401,0xd0c10180,0xe4416694,0xab2f7100,0x971c4151,0x71006081,0x415b3fe7,0x6011de05,0x6d285300,0xccf04181,0xeb9f7100,0xdfb94162,0xf2004861,0x3db0d137,0x99d96fc1,0x346e6fbe,0x3576d6c1,0xf8594c1,0x348b7fbf,0x2da449c1,0x96ba06c1,0x3483bdbe,0x2e5e51c1,0xb60243c1,0x3464993e,0x359999c1,0xec669c1,0x34926c3f,0x3cbce8c1,0xb65929c1,0x187d013e,0xbd16f300,0xe2358637,0xbec139c8,0xf4415237,0xf3e8efb,0x21c13489,0xef415356,0x13beb957,0x2bc13478,0xa5415a89,0xb8440060,0x6041625b,0xa1af4400,0x604161,0x2443a521,0x7f3f9400,0x67c1348b,0x54415a66,0x7f10f100,0x4dc265c6,0xc54129b8,0xb3bf0020,0x4d4224f9,0x334129b8,0xe0bf3333,0xbc26835,0xc27fe,0x257d7062,0x24502742,0x4d04f100,0x6bc1e94f,0xfc410a39,0xc7bf19a9,0x1341fdf4,0x3c0c4f,0xed9810f1,0x441141e5,0x8e8a40f7,0x7784bf14,0x4862c1b5,0x20c54043,0x38f9bf00,0x83141c6,0x71000c53,0xc26bff06,0x301f5dd9,0x25db7100,0x7058c266,0x71000c17,0xc2683394,0xc07787f,0x5510f100,0x2dc1b14a,0xc5bf185e,0x26bf0020,0x6141c15c,0xc53deda6,0xe9bf0020,0xe7c27165,0x24033d,0x60695471,0x187078c2,0x10f1000c,0xc2671eac,0x40f589b3,0xbf19a9fc,0xc1b7d83c,0xc06ca3a9,0xbf0020c5,0x41c57785,0xc434877,0xe917100,0x64bbc264,0x710084e5,0x42140095,0x30fb3ffb,0x58585300,0xcc6c420b,0x6104f100,0xa8c1c33f,0x35c0bbfc,0xc3bf125e,0x1341d525,0x3cc572,0x1bfa8b71,0xcf7f9542,0x7a71003c,0xb4c271d4,0x18f300,0xc1007803,0x19a9fcc0,0x64551ebf,0xe69ab5c2,0x10f10018,0xc26f3ddd,0xc112627c,0xbf0020d5,0xc2683560,0xc106cccc,0xbf19a9fc,0x422b7c12,0x381e8ec2,0x7be07101,0x8f97c1d5,0x710030f6,0xc2608dd5,0xceb9e9b,0x83a2b400,0xc2044230,0x63f14103,0xc101502c,0x1f8e9fc0,0x671eacbf,0x12d4bec2,0xad710048,0xf5423107,0x90f300,0x5fc83471,0xf05bcdc2,0x8171000c,0xb84222e8,0x1808849,0x101bc03,0x4f10084,0x42268e5b,0x3feb0b5b,0xbf19a9fc,0xc2640e91,0x181ae73c,0xa8937100,0xf759c25f,0xf1005414,0xed52e04,0xef936ac2,0xfd7a140,0x196d80bf,0x9dea10c2,0x4f10054,0x4209059d,0xc10c4f13,0xbf0020c5,0x41f94f4f,0x300a396c,0x2280300,0xf1004801,0x15093404,0xf7441542,0x148e8ac0,0x5e32d3bf,0x6211ac2,0xf5780198,0x41421def,0xd8bfd4,0xf007c1c1,0x67fdbf06,0x4cd4223,0x71013880,0x4226e98c,0xecc206af,0x1200301,0x44006001,0xc1edf4c6,0xdf40078,0xc202a6a8,0xc10aa3b7,0xbf1ec56d,0xc21ee98c,0x3fc206af,0xbf0020c5,0xc201059e,0x4f1027c,0xc21e8e5b,0xbfeb0b5b,0xbf19a9fc,0xc25e1fa8,0xb404e85e,0x68015300,0x6c7bc21b,0x8efa7100,0x4f5dc216,0x710090ba,0xc20c8e16,0xcfaa39e,0x85897100,0x6c20c1d0,0xf400f0eb,0xc37e0114,0xbd1cd2c1,0x1deb8540,0xd42018bf,0xbfd43f41,0x20c540,0xebdf96bf,0xba62ec1,0x333333c1,0xc0c10030,0xbf333333,0xc215eff8,0xcbfd424,0x77837100,0x4856c1b5,0x71000c43,0xc20d420f,0xcf68f9b,0x2504f100,0x17c1b15c,0x333deda0,0xf6bf3333,0x90c203f1,0x3540ab8,0x758204f1,0xb631c1b7,0x3333406f,0x1c28bf33,0xa622c219,0x81000ca3,0xc21f13c5,0x3fa0b420,0x28020384,0x180102,0xfbdf9771,0xba62e41,0xed71003c,0x3c41c716,0x185f12,0x684a4062,0x1862bbc2,0x27c0300,0xb4002401,0x41c12e15,0x3ea9f751,0xf8333333,0x180101,0x102c403,0x3371003c,0xb1c25fc8,0x18156b,0xc638fa71,0x53083a41,0x1e7100b4,0xb7c26455,0x24e69a,0xd4201853,0xe44141,0x1cae4471,0xcb68f142,0x90030018,0x1140103,0x1036003,0xe403003c,0x180103,0x5ff1ec71,0xee3528c2,0x33710030,0xcfc25fc8,0x24f05b,0x1047403,0x4f710024,0xfcc263ac,0xc1b1a,0x1046803,0x3444000c,0x74420a10,0x6d1f7101,0x7217421d,0x71003cc5,0xc25e32d3,0xb4077889,0x30c0300,0x84001801,0x422713c5,0xbfa0b420,0xf310024,0x480621,0x103cc03,0x10f10084,0x41f755ec,0x4103e73d,0xbf83fa1a,0x41f7f043,0x40cb26e5,0xbf83fa1a,0x41f00e68,0xcfeaf47,0x4310f100,0x404224e4,0x1ac00a89,0x3fbf83fa,0x3d421df0,0x1abfbe60,0x3bf83fa,0x82421cfd,0x181273,0x23b72671,0x44965742,0xb071000c,0x924200de,0x3cd397,0x6d4671,0x7627442,0x7c710060,0x464225a7,0x3c9d7e,0x1e7ac571,0x29b23e42,0xcb71000c,0x144204fb,0x30d4c0,0xfe6210f1,0xb0d54225,0xfa1abe8f,0x9a64bf83,0x2d5a421e,0xfa1a3e30,0x94cabf83,0xe93c41e4,0x7100609e,0x41d7881d,0xcbf2bac,0xe19f7100,0xe6d341df,0x62000c8b,0x42062598,0x6cdda6,0xd1722471,0xa289c241,0xb1710018,0x6741ded3,0xcd898,0xdacd5371,0x617ffa41,0x471000c,0x4b41e9d7,0xcaf6a,0x25e7d781,0x2c315942,0x6101083f,0x7741cd3d,0x188915,0xe6a81a71,0xed5ec041,0xfc71000c,0x741ef92,0xcbd27,0xc8ee8371,0x4cda7f41,0x4171000c,0x5d420932,0xc0d0f9,0xd6521f71,0x19c03841,0x47710018,0x9b421e33,0x54991b,0xef6d2f71,0xfdb91b41,0x5f710018,0xfa420bce,0x1140481,0xf5b17f71,0xc7e7f741,0xbb710018,0x7242253b,0x30eae1,0xf6aed681,0x3910a41,0x610108c1,0xc641c60c,0x240550,0xdffbc71,0xc57baf42,0x8771006c,0x341d3fe,0x144b527,0x1d4c5171,0x3848442,0x86710018,0x6241fd9b,0x30d0f9,0x10496c71,0xfdb91542,0xc7710018,0xa741c44e,0x3064ae,0x23d5ea71,0x3f8cb542,0xef710018,0xfd421c2f,0xc3266,0xffe77071,0x72bab41,0x3d710078,0xec41d2fc,0x3016de,0x13c2af71,0xf11f5142,0x8b710024,0xb421272,0xcb2ff,0x224b8971,0x775ff242,0x3671000c,0x14420304,0x78d4c0,0x17e39371,0xdcf1d242,0xac710018,0xcc41d2dd,0x1c8f0d0,0x205f9871,0x960bdb42,0xca710018,0x42421a17,0xc6d5f,0xc46a2b71,0x81891641,0x3100fc,0xa74c400,0x83fa1ab1,0x40000bf,0x8000042,0xb8620090,0x75420792,0x71009c62,0x421e1854,0x3cae8475,0xf317100,0xe6d34218,0x71000c8b,0x4215b59b,0xc9ee942,0x21507100,0x97924207,0x710090d3,0x421b7d02,0x18c4cb7f,0x83197100,0x700941d4,0x71006cda,0x41c6377e,0x180a898f,0x550a6200,0xe73f420c,0xdd710174,0xec420c07,0x3ccb26,0xc891bb71,0x4496af41,0xcf710024,0x40420ff8,0x18feaf,0xd7458471,0x2b44aa41,0x29710018,0xb241cbb8,0xc7c2a,0x10a59671,0xbb83e842,0x4710024,0x2b421376,0xcf25c,0xdb404071,0x6728bb41,0x8f710024,0xac41d0c3,0xc9f1c,0x177fcf71,0xdf281e42,0xa4710024,0x294214d0,0xca53c,0xdf023a71,0x87a4d341,0x1e710024,0xb141d835,0xcc1df,0x1b3e4e71,0xc6a5c242,0xb4710024,0x6441e3d7,0x189c76,0x17dd3071,0x8dac9d42,0xaa710018,0xcf421de0,0xcb093,0xdf5d9471,0xda377c41,0x1d710024,0x5941ea54,0xcb0be,0x19ed4971,0x71480242,0xac710024,0x9d42202f,0xc9849,0xe77e3c71,0xef382441,0xc4710024,0xb941f019,0xcbe39,0x1ba4e371,0x43680142,0xed710024,0x99422223,0xc7c2a,0xd2ddacd2,0xf0d0ab41,0x41fd0dbe,0x15c1ac0,0xdbf02f3,0x84c041fd,0xa641d745,0xdc02b44,0xfcc041fd,0xc0100,0xe045a571,0x8daca341,0x4171000c,0x5f41e506,0xca079,0x1009c03,0xc371000c,0xb641f019,0xcbe39,0xf63fd071,0xc8b4ec41,0x3971000c,0x2641fe6e,0xcd19a,0x34fcf71,0xd4d31542,0xc471000c,0x244206a6,0xcd3d6,0xad38271,0xcdf39b42,0x4e71000c,0xe8420eb4,0xcc2e9,0x11ac6a71,0xb6a4e342,0x4871000c,0x3f421523,0xca319,0x180f3071,0x8be6e042,0xcd71000c,0x7421a17,0xc6d5f,0x1c2fec71,0x32674d42,0x9b71000c,0xf6421d98,0xd8e90a,0x1e4e9b71,0x808b6e42,0xa403000c,0xbe02f304,0xc041fd0d,0x41f72445,0x40ca1dc5,0xc041fd0d,0x415303c0,0xc041fd0d,0x180103fc,0x3e40300,0x3003c01,0x60010384,0x61e17100,0x162b41ff,0x30024d2,0x3c010384,0x3540300,0x3001801,0x3c0104a4,0x2100300,0x3003c01,0xc01024c,0x1ec0300,0x3000c01,0x4801033c,0x5580300,0xfd0d3e53,0x348c041,0x3001801,0x60010324,0x1f80300,0xc3003c01,0x421e7ac5,0x3f29b24f,0xc041fd0d,0x180102dc,0x30c0300,0x3000c01,0xc010624,0x5dc0300,0x3003001,0xc1530654,0xc041fd11,0x24010360,0xbe727100,0x70eb421d,0x30024da,0x8401036c,0x48527100,0xc4e5420b,0x30084cc,0xc01066c,0x4140300,0x300f001,0x54010648,0x26727100,0x7f6d420f,0x30024c1,0xc010390,0x2477100,0x7753421c,0x3000c38,0xc010690,0x3840300,0x4000c01,0xd43045c,0x10c041fd,0x900105,0x2223ed71,0x7c2a9d42,0x48030024,0x6c0106,0x1050403,0xa8030024,0x240103,0x137c2171,0xad5b1442,0x4571000c,0x4d4219ed,0xc7148,0x1034803,0x8403000c,0xc0103,0x105f403,0xc3710054,0x2e41d44d,0x54cd74,0x105dc03,0xd8030024,0xc0103,0x17456571,0x93128c42,0x6c03000c,0xc0106,0x205d003,0x9610150,0xee1841d7,0x3001826,0x180105a0,0x6c00300,0x3001801,0xc0106f0,0x5940300,0x3002401,0x18010720,0xe19f7100,0xe6d641df,0x3000c8b,0xc01075c,0x5340300,0x71003001,0x41e494c9,0x189ee93a,0x57c0300,0x3001801,0x1801075c,0x7500300,0x3000c01,0x240105e8,0x7440300,0x3001801,0xc010744,0x4b897100,0x5fee4222,0xf1002477,0x43ffffff,0x40a906ea,0xc0a31025,0xc0316ae4,0xc0930fe2,0xc0a524d5,0xc03169d7,0x40a8411c,0x408524d3,0xc03169d7,0xc093d5c1,0x40831025,0xc0316adf,0x40a67104,0xc0ac5085,0xc02db370,0xc091b446,0xc0ae3980,0xc02b9cbf,0x40aa62fe,0xc0b5943a,0xc01fd5e0,0xc0919268,0xc0b4f0e1,0xc021ac54,0x40abde87,0xc0bb8f69,0xc00f78bc,0xc09cc83b,0xc0bd068c,0xc00a707a,0xc09a840c,0xc0a623df,0xc02d2fc2,0xc0a54250,0xc0a587f6,0xc02270a8,0xc0a23f57,0xc0b39b30,0xc01bcdd5,0xc0a38bb9,0xc0ba4e7d,0xc010ed42,0xc0a4281a,0xc0ac657e,0xc02148fe,0xc0a0ab77,0x40809c5c,0xc02723ea,0xc0a7410b,0x4085573d,0xc02228ae,0xc09a61bd,0x4085d053,0xc02d6b1a,0xc09531ad,0x4095943e,0xc01fd5d8,0xc096ad54,0x409b8e2e,0xc00f7c0b,0xc0913fcb,0x408c5083,0xc02db370,0xc09d9075,0x4088c9b8,0xc0281865,0xc0a4e267,0x40943116,0xc01a8e9f,0xc09fa2f5,0x4099c237,0xc0128d8f,0xc099b8c7,0x408fe02f,0xc0253f18,0xc0a610c5,0x408cec5d,0xc02082f9,0x41814e79,0x40ace4b2,0xbfa8cebc,0x41816447,0x409b439a,0xc00eab36,0x40b207d7,0x409d0998,0xc00a6762,0xc15da769,0x40acb1bc,0xbfa9bcf5,0xc15dba53,0x409b28a6,0xc00ed6b6,0x40a6e584,0x408e3980,0xc02b9cbb,0x40a6c3bb,0x4094f0e1,0xc021ac54,0x40afb544,0x408623df,0xc02d2fc7,0x40ba7a9c,0x40859978,0xc02268cf,0x40b770a6,0x40939b2e,0xc01bcdd1,0x40b8bcf5,0x409a4e7b,0xc010ed3e,0x40b9595c,0x408c6580,0xc02148f9,0x40b5dcbc,0xc0a09aae,0xc0272442,0x40bc6bca,0xc0a55634,0xc0222b84,0x40af92dc,0xc0a5d059,0xc02d6b33,0x40b2c1c2,0xc0a8c98c,0xc0281872,0x40ba13a7,0xc0b4310e,0xc01a8ea8,0x40b4d42c,0xc0b9c22f,0xc0128da8,0x40aeea3a,0xc0afe00b,0xc0253f18,0x40bb4207,0xc0acec55,0xc02082fd,0xc15df081,0xc0cccd7f,0xbfa9145e,0xc15dfbbf,0xc0bb439a,0xc00eab36,0x4181293e,0xc0ccc606,0xbfa98394,0x41814392,0xc0bb28a6,0xc00ed6b6,0xc166051f,0xc0aaf636,0xc0202a28,0xc165a048,0xc0a3a941,0xc021fe4c,0xc1638814,0xc0b2a383,0xc01ac4d6,0xc145d266,0x40196b3c,0xc021fd0d,0xc1777bf5,0x403fb8bb,0xc021718b,0xc1472bf5,0x4025a16e,0xc021fd0d,0xc0f092d5,0xc0356b27,0xc021fd0d,0xc0e91651,0xc0233333,0xc021fd0d,0xc142e6c2,0xc010f5c3,0xc021da2b,0xc142887d,0x40108feb,0xc021cef6,0xc169c86c,0x408413d9,0xc021b0fb,0xc173bd3d,0xc08a9df5,0xc0220026,0xc145d266,0xc039c7f7,0xc021fd0d,0xc142a6a4,0xc04286a5,0xc021fd0d,0xc146911d,0x4035e808,0xc021fd0d,0xc1472bf5,0xc02d91c5,0xc021fd0d,0xc0e52ae9,0xc00e563f,0xc021fd0d,0xc142f778,0x404228aa,0xc021fd0d,0xc146911d,0xc01d4b2b,0xc021fd0d,0xc0ff3b47,0x404276fb,0xc021fd0d,0xc0fe1e71,0x3c420664,0x63357100,0x8fefc0e5,0x7100c010,0xc0e91651,0xc233333,0xc7fa7100,0x4595c0f1,0x71000c37,0x411f3334,0xc3aa027,0xdc057100,0x6644123,0xf1000c42,0x8cac1504,0x855c6a41,0x21fea0c0,0x1db0c9c0,0x37459141,0xf6710054,0x33411957,0xc2333,0x177e6871,0x108fef41,0xeb71000c,0x4416b5d,0xc35e8,0x6bf8c171,0x25a14d41,0x3271000c,0x38416a9f,0xc196b,0x246a7162,0xf076fb41,0x4a0ff200,0xeb416755,0xf6c0108f,0x8ec021ce,0xbe4167b3,0x2b4010f5,0x43c021da,0xaa4167c4,0x71002428,0x416b5deb,0x901d4b30,0x62427100,0x563b4117,0xf1000c0e,0x85369404,0x83a99741,0x21fe2e40,0x1a2e9ac0,0x293cda41,0xc1710018,0xe6416bf8,0xc2d91,0x6a9f3271,0x39c7fc41,0x7162000c,0xa9416773,0xf200d886,0x6431ffff,0x97418c44,0xd6405539,0xdec02200,0xaa41860b,0xc9c0a329,0x75c02200,0xbdc162df,0x76408c63,0xeac01fff,0x77c16389,0x8c409368,0xb2c019f6,0x62c17667,0xfe4076d8,0x6c01a9d,0x77c16d0b,0x84408bbd,0x26c01a45,0x1fc16661,0xa40994c,0x3ac00df5,0x29c16ea9,0x1440926a,0x8c00e5e,0x8bc17ef0,0x14405153,0x47c00e5e,0x62c18013,0x74402ea0,0xafc00e5d,0xf2c17c11,0xfd404360,0x2c01a4a,0xa7c17b6b,0x20407295,0xccc00e5e,0x74c175dd,0xf408788,0xd3c00e5e,0x1cc173e1,0xe9406d98,0x9fc0200f,0x30c168b1,0x2040a9e5,0xd0bfa998,0x96c17377,0x2c40a276,0xb1bfa2d8,0xf6c17c2d,0xf40939a,0xe6bfa90f,0x9dc18189,0x64081af,0x9bfa90f,0x9dc183b6,0x1740599c,0x62bfa90f,0xefc18476,0xab402d56,0x8fbfa8ce,0x12c16993,0x6d40afa3,0x2bf9790,0x19c17539,0x6d40a99b,0xd3bf941b,0x55c1611c,0x8340b405,0x94bf94a7,0x73c18607,0x3c402c80,0x64bf9731,0x68c18706,0x2e4055cd,0x35bf9357,0x6dc18512,0xfe405d75,0x41bf9826,0x75c182bf,0xa740853c,0xe4bf97af,0xb8c18229,0x684094a2,0xb3bf9359,0x28c17e0d,0x9f409849,0xd7bf97af,0xac41996c,0x15c08ae6,0x4abf9357,0xba419490,0x71c0b4a2,0x7dbf9359,0x33c22276,0x4341121b,0xd6bf9356,0xd8c224e1,0x43410be8,0xb1bf9356,0xa4c223a0,0x43411041,0x1abf9356,0xb9c2258f,0x43410586,0x6cbf9356,0xe14223ee,0x434111fe,0xd4bf9356,0x6f4213e2,0x2d40f4ca,0x13bf93b2,0x3e42040f,0x874109e4,0xcdbf93a5,0x214226cc,0x43410daf,0xe9bf9356,0x17418d02,0x6dc0c99b,0x5fbf941b,0x1542289f,0x43410817,0x62bf9356,0xcd422a05,0x434100cc,0xbebf9356,0xd5c21a9b,0xd3407e5b,0xb1bf93a3,0x33c225a0,0x4340a333,0xc1bf9356,0xfc41e837,0xdac0f4d2,0x2fbf93ab,0x86c2250c,0x43409711,0xd7bf9356,0x33422b09,0x4340ed19,0x2ebf9356,0x85c2252e,0x4340887a,0xf4003c56,0x80000009,0x93564340,0x82ebcdbf,0xd3f8ec41,0x94c248c0,0x2b3333bf,0x71005442,0x422ac0b0,0x249ab8ae,0x9eb17100,0x21b2422a,0xb1000c8c,0xc1f7e1dd,0x4109eadb,0x30939e5a,0x480400,0xf2005403,0x5643c000,0xf58dbf93,0x68f5c21d,0xb281bfb0,0xad310090,0x188c21,0x252e2e71,0x9ab8aec2,0xf5a2000c,0x3bc2189c,0x74c09945,0x31003cb3,0x18a33333,0xd404f100,0xffc22593,0x43c10571,0x4cbf9356,0xc22401,0xc0f6b,0x25178071,0xa6666c2,0x7803000c,0x300100,0x229bbea2,0x7e5bd542,0xb4a3d3c0,0x7a853100,0x71001888,0xc22252e2,0x30123759,0x9eb17100,0x1184422a,0xa2001897,0xc20be2d4,0xc0f4ca6f,0x48b22d,0xf1007804,0x241e9710,0x11cb9042,0x935643c1,0x3f0edbf,0x9e43e42,0x93a587c1,0x2b16e5bf,0xebccaf42,0x72a5003c,0x88c203c8,0xabc1060e,0x101bcb4,0xa4030030,0xc0101,0x101bc03,0xfff4000c,0xea3e3da6,0x71410c1,0x93a4b5c1,0x67edb4bf,0xd72446c1,0x935771c0,0xd837c1bf,0xf4d2fcc1,0x93abd240,0x8634ebbf,0x9ea63ec1,0x9364e0c0,0xb4c3fabf,0xedb0e6c1,0x93aab4bf,0xbaca49bf,0x7e4b34c1,0x93a900c0,0x75e2b2bf,0xc8d72cc1,0x941b6dc0,0xd1b0c1bf,0xe4e265c1,0x93b86fc0,0x8d57bfbf,0xa8d72c41,0x941b6d40,0x989ae9bf,0x7d4b0a41,0x9365c340,0xcacb3fbf,0x7e41e541,0x93abda40,0x865d46bf,0xb7248b41,0x93574740,0x9854a8bf,0x2e9a9541,0x97ac8a40,0x97869fbf,0x5c16f041,0x97dddb40,0x955905bf,0x83d8a541,0x97afa740,0x86d731bf,0xa9e35441,0xa90f1740,0x814683bf,0xb3042b41,0x97773240,0x876299bf,0xaf79d341,0x97afa740,0x8c3c2abf,0xa23ae441,0xa2d82c40,0x908a5abf,0x93669541,0xa90efe40,0x91b5e6bf,0x97269841,0x97af9f40,0x93f991bf,0x816f6541,0xa90f1740,0x961ce8bf,0x58dce841,0xa9980f40,0x96dd8ebf,0x2b4c7f41,0xa9241840,0x927b14bf,0x2af3f941,0xeaa3240,0x91f6a2c0,0x4f9b0741,0xdf50e40,0x903e26c0,0x70bb3d41,0xe5e1840,0x8d85b9c0,0x86c6c541,0xe5e0f40,0x89f650c0,0x91e13b41,0xe5e0b40,0x85ce0cc0,0x98eb4241,0xe5e1840,0x8bf1cfc0,0x71ba5e41,0x200fe940,0x8d6357c0,0x7914db41,0x1a9dfe40,0x9054e8c0,0x4546f641,0x1a8fd640,0x8ea387c0,0x4322b441,0x2017ad40,0x8568f8c0,0x8af63641,0x202a2840,0x842a72c0,0x92a38341,0x1ac4d240,0x88ebeac0,0xf4051c41,0x8e881e2b,0x86370441,0x20075fc0,0x906f3fc0,0x81b07b41,0x1a4b02c0,0x9279afc0,0x6ea06641,0xe5d6cc0,0x89dae7c0,0xa138d441,0x200fedc0,0x8d9a3fc0,0x9b6c3941,0x489dfec0,0xfffff100,0xab5fffff,0x1a4584c0,0x842b5dc0,0xb3687541,0x19f690c0,0x8596fac0,0xb94c1f41,0xdf50ec0,0x89bb04c0,0xb26a2d41,0xe5e14c0,0x83d621c0,0xac63bd41,0x1fff76c0,0x91de6bc0,0x88a9c341,0xe5e20c0,0x901be9c0,0x994ad141,0xe5e1cc0,0x8d554dc0,0xa7887841,0xe5e0fc0,0x86bf38c0,0xc9e53241,0xa99818c0,0x907d3fbf,0xb39afe41,0xa90efec0,0x93f04dbf,0xa1af9841,0xa90f17c0,0x961c70bf,0x8cce5741,0xa90f17c0,0x96dcc8bf,0x6d56de41,0xa8cecdc0,0x87302fbf,0xcfa31241,0x979075c0,0x8c2251bf,0xc2769441,0xa2d82cc0,0x986dfcbf,0x6c807841,0x97313cc0,0x97789ebf,0x8ebab641,0x9826f6c0,0x9525a8bf,0xa53c7d41,0x97afa7c0,0x916d43bf,0xb8492341,0x97afa7c0,0x5d9a88bf,0xd32982c1,0x97313cc0,0x83b681bf,0x8c6e6ec1,0xa99818c0,0x819329bf,0xa16f69c1,0xa90f17c0,0x8525f8bf,0x8e3253c1,0x979075c0,0x85e064bf,0x6edfcac1,0x9827b7c0,0x82f29ebf,0xa3d89fc1,0x97afa7c0,0x68e192bf,0xc9e354c1,0xa90f1fc0,0x69d7c0bf,0xcf5409c1,0x982707c0,0x73ab83bf,0xc23ae4c1,0xa2d834c0,0x7c47e3bf,0xb36690c1,0xa90f17c0,0x7e9efcbf,0xb72698c1,0x97afa7c0,0x847727bf,0x6b4c98c1,0xa923ffc0,0x8014acbf,0x6af423c1,0xeaa3fc0,0x7f207ac0,0x87cd72c1,0xdf50ac0,0x7baf7bc0,0x985da0c1,0xe5e20c0,0x763ea2c0,0xa6c6c7c1,0xe5e14c0,0x6f1fd3c0,0xb1e139c1,0xe5e18c0,0x66cf47c0,0xb8eb42c1,0xe5e1cc0,0x7bdd03c0,0x82a370c1,0x1a8fd6c0,0x785923c0,0x95213ec1,0x1a4584c0,0x787a40c0,0x819153c1,0x2017adc0,0x7316cdc0,0x98dd33c1,0x200fedc0,0x703082c0,0xa7da92c1,0x1a9dfec0,0x83c18c0,0x43b5aac2,0xf371ebc0,0xa4d5dbf,0x1cafe6c2,0xf3c348c0,0x57747bf,0x6854d6c2,0xf3caeac0,0x1629abf,0x83cea0c2,0xf3caeac0,0xf9cc07bf,0x8a7b40c1,0xf38045c0,0xf37bdabf,0x89374ac1,0xf3c06ec0,0xec7c20bf,0x82cbb6c1,0xf3c348c0,0xe46a05bf,0x64d5d8c1,0xf3c348c0,0xddc2dcbf,0x3547e0c1,0xf38f82c0,0xd8bc63bf,0xefaa82c1,0xf3c348bf,0xd5eefabf,0x4dd3edc1,0xf3c84bbf,0xd486fbf,0xa9c25dc2,0xf3c686be,0xc5f1ebf,0xb65144c2,0xf3cfc4bf,0xd56f22bf,0xa9c172c1,0xf3c6863e,0xe51175bf,0x6854e3c1,0xbfcd81c0,0xde3fcfbf,0x39adc9c1,0xbf839dc0,0xd4856bf,0xaa3140c2,0xbfd5a23e,0xd2799bf,0xf0ee5c2,0xbfd7babf,0xd91573bf,0xfaf430c1,0xbfcd81bf,0xc7cf2bf,0xab1c5cc2,0xbfbe4dbf,0xd6975bbf,0x8fff8bc1,0xbfb891bf,0xd56f54bf,0xaa31e8c1,0xbfd5a2be,0xa854ebf,0x177464c2,0xbfcd81c0,0x83b5cbf,0x43c166c2,0xbf757dc0,0x5caffbf,0x64d5d0c2,0xbfc5e7c0,0x1c1f2bf,0x82cbb4c2,0xbfc5e7c0,0xfa87c8bf,0x8a4ea0c1,0xbf92dac0,0xf19f7dbf,0x884d81c1,0xbfc5e7c0,0xeac258bf,0x7fbad8c1,0xbfc305c0,0x5cb00bf,0x64d5c3c2,0xf3c34840,0x57747bf,0x6854d6c2,0xbfcd8140,0x83b5abf,0x43c190c2,0xf371eb40,0x83c17bf,0x43b5bfc2,0xbf757d40,0xa854dbf,0x177479c2,0xf3caea40,0xa4d5dbf,0x1cafe6c2,0xbfc5df40,0xd5eeffbf,0x4dd713c1,0xbfcb143f,0xd69413bf,0x8f4d83c1,0xf3b3f23f,0xc7cf0bf,0xab1cc9c2,0xf3bb5a3f,0xc5dbbbf,0xb6ca68c2,0xbfc6fc3f,0xd91573bf,0xfaf430c1,0xf3caea3f,0xd8bc63bf,0xefaa82c1,0xbfc5e73f,0xd279abf,0xf0b7cc2,0xf3d5343f,0xde3fc5bf,0x39ad6dc1,0xf3804540,0xddc2e7bf,0x354845c1,0xbf92da40,0xe51175bf,0x6854e3c1,0xf3caea40,0xe46a05bf,0x64d5d4c1,0xbfc5df40,0xed3ad0bf,0x83cea3c1,0xf3caea40,0xec7c20bf,0x82cbb6c1,0xbfc5df40,0xf633f9bf,0x8a7b40c1,0xf3803d40,0xf37bdabf,0x89374ac1,0xbfc30540,0xf9cbf8bf,0x8a7b44c1,0xbf839d40,0xfc8426bf,0x89374ac1,0xf3c06e40,0x1629abf,0x83cea0c2,0xf1019840,0x1c1b4ff,0x82cbb2c2,0xf3c34840,0xbec768bf,0x993d04c1,0x93b86740,0xf267dbf,0xe4dc7dc2,0x93bdf940,0xb41e86bf,0xb0a498c1,0x93c8003f,0x1d9e03bf,0xedb0bcc2,0x93aab43f,0xe88dc0bf,0x527bac1,0x42133c41,0x2d61bbf,0x659a7c2,0x41809141,0xea114bf,0xe61753c2,0x41bc2340,0x18c109bf,0x952759c2,0x4136d640,0xbe5b4abf,0x94a53ec1,0x418cd240,0x3b921bf,0x527b8c2,0x42134dc1,0xe8bfa9bf,0x543acc1,0x4206fbc1,0xbf7c52bf,0x9b9770c1,0x414e6ec0,0x1859d7bf,0x96d517c2,0x438d3fc0,0xb3bbe6bf,0x5f62d8c1,0x41288dbf,0x1e46e5bf,0x530dfac2,0x4173003d,0x1b6f0abf,0x5b5da2c2,0x414057c0,0x161c22bf,0xb29bd8c2,0x414307c0,0xf70f2bf,0xe20392c2,0x416217c0,0x6e778bf,0x3eb29c2,0x404630c1,0xf82f6ebf,0x93252c1,0x416f65c1,0xed752cbf,0x9e819c1,0x4046b7c1,0xd8d248bf,0xf4ddd1c1,0x411adac0,0xb9cb07bf,0x636abec1,0x41dcc6c0,0xb60a69bf,0x2e773ac1,0x404620c0,0xb4619cbf,0xaf1fdec1,0x414c773f,0xcc1bd0bf,0xd38861c1,0x416d4c40,0xdb92a7bf,0xf8d3e3c1,0x41dcb540,0xe23116bf,0x3eb2dc1,0x40462041,0xf4f5cfbf,0x9006dc1,0x41074241,0x1524a5bf,0xb97e04c2,0x42091440,0x1b1a7dbf,0x636acac2,0x41dcb540,0x1cfaccbf,0x2e774fc2,0x40462040,0x1d2b82bf,0x5008ac2,0x41d52c40,0x980811bf,0xa4299341,0x4065a5c0,0xce5e2fbf,0x949f7d41,0x419ac8c0,0x24014cbf,0xf6b00c2,0x40462041,0x2252e2bf,0x123759c2,0xe803000c,0xc0108,0x1090c03,0x10f1000c,0x41dc1bd0,0xc0d38861,0xbf416d4c,0x421770f2,0x40e20392,0xbf416207,0x42243cc0,0x2411c0f5,0xe7785300,0xb429420e,0xb708f500,0x52420417,0x54410932,0x30bf416f,0xee41fd75,0xc74109e7,0xa744046,0x462000f4,0x594ebf40,0x51314188,0x507ac0d6,0x108b840,0x90030048,0xcc0109,0x108dc03,0xc0030018,0x180109,0x109d803,0x5271000c,0x96422b19,0xceaa6,0x10a0803,0x5004000c,0x2000f40a,0xabf4046,0xa242236f,0x57405b5d,0x9904140,0xb4002401,0x41f23116,0xc103eb2d,0xc0404620,0x180109,0x109e403,0x5403000c,0x84c01400,0x7a853100,0x3000c88,0xc010aec,0xb40300,0x3000c01,0x54010b88,0xbac0300,0x53000c01,0x4224facc,0x302044f,0x30010060,0x46e5b400,0xdfa4226,0x7300bd53,0x10bd041,0x19b10030,0xa1422033,0xc7c09c84,0xb440f4,0x8c21b231,0x7d710030,0x33c22276,0x24121b,0x10b2803,0xf0030018,0xc0100,0x2b0c7e71,0xec27ee42,0x3f2000c,0x4203e5a8,0xc1094afa,0xbf413932,0x42226666,0x3c6666,0x837010f1,0x74234214,0x4fbec0f0,0x2c32bf41,0xe775421a,0x4663c0d5,0xad78bf40,0x335a4224,0x3006011,0xc010180,0x1bc0300,0x3000c01,0xc0101b0,0x3b08f100,0xb5c185a1,0x9d408428,0xbdbf4067,0xf7c16cef,0xba40b566,0xa5c404d,0xa63b10f5,0x635ac09e,0x53d5bf40,0xe647c16e,0x5155c0d4,0x13b3bf40,0xe2934189,0x532a40b5,0xf10a3840,0x40651f08,0xe8d2f4bf,0xf4d4a841,0x4124d140,0xc60a69bf,0x2e773a41,0xfff30180,0xc3bbe61d,0x5f62d841,0x41288d3f,0xc4619cbf,0xaf1fde41,0x414c77bf,0x97bc96bf,0x4f9a3141,0x47f05640,0x93756fbf,0x80691041,0x5f244240,0x96136cbf,0x4ceb1841,0x5d750840,0x9316a3bf,0x8fe1f441,0x485dea40,0x863e02bf,0xa0821541,0x873c7940,0x81644abf,0xa339f541,0x86c8b440,0x853fbebf,0xa8b26141,0x61db7740,0x8ae02dbf,0x98c1f041,0x873c7140,0x85aafebf,0xafe81941,0x48399b40,0x8c792abf,0xa1755641,0x4fee4e40,0x8ed98abf,0x8c796441,0x873c7940,0x901bb2bf,0x91e05d41,0x5f244240,0x91e4c2bf,0x78fd7a41,0x873c8a40,0x93c4f9bf,0x5379ff41,0x88331640,0x94737cbf,0x2a590441,0x87626340,0x9798bdbf,0x87d9b641,0x489c1bc0,0x95d034bf,0x86708941,0x61db77c0,0x947218bf,0x6e056041,0x86c8cdc0,0x8596dfbf,0xd063eb41,0x47f056c0,0x8540febf,0xc9bf4241,0x5d7508c0,0x8bd909bf,0xc2e72141,0x4fee4ec0,0x93c421bf,0x8a699c41,0x873c82c0,0x91d415bf,0x9cf24e41,0x873c79c0,0xef30108,0x2442c0a0,0xc1f4bf5f,0xd7b8418e,0x3c79c0ac,0xbfa4bf87,0x70f44193,0x5deac0ac,0x1100b448,0x710024b1,0x418ac34a,0x24b904a3,0xdb7bf200,0x75418612,0x16c0c085,0x48bf8833,0xbf418121,0x30c0c302,0x3cbf880e,0x89c16667,0x2cc0cfd4,0xabbf489c,0x61c165b2,0x87c0c8b2,0x6bf61db,0x34c15e36,0x2c0c310,0x2fbf8746,0x12c18556,0x56c087cd,0xfdbf47f0,0xbbc181f6,0x4ec0a0d5,0x4bf4fee,0x88c183ad,0x19c08675,0x37bf5d75,0x15c167af,0x79c0c082,0x8abf873c,0xeec170f3,0x82c0b8c1,0xefbf873c,0x50c172ae,0x42c0bf47,0x46bf5f24,0x62c178e6,0x7100b479,0xc178b2e0,0xb4c07026,0x6a964400,0xb4c17b,0x7efcb871,0x9c7ec1c1,0x68f300b4,0xc1815e92,0xc089bcff,0xbf8832fd,0xc1820d16,0xc06a5929,0xbf876230,0xc1853256,0x404fb34e,0xbf489c1b,0xc18369cc,0x404ce115,0xbf61db87,0xc1820bb2,0x402e0575,0xbf86c8a3,0xc165b52d,0x40a9bf40,0xbf5d7508,0xc170b9c6,0x409904a3,0xbf873c79,0xc16758e7,0x40a08577,0xbf883305,0xc1664cda,0x40b053b7,0xbf483ada,0xc17a6b5c,0x409dcc27,0xb4485dea,0x709f1100,0xb920f302,0x39c1815d,0x794054d3,0x5ebf873c,0x8ac17edb,0x824079e4,0x8abf873c,0x3bc1819a,0x3d408356,0x18bf4fee,0xbcc178b7,0x71408cd7,0xcc873c,0xf4023402,0xb2787dff,0xde39c15d,0x758240a2,0x4e78bf88,0xa4874181,0x4f8b4091,0x7febbffb,0x8100c098,0x2570408f,0x6725c005,0xa85bc0a2,0x306e4091,0xabc5bffc,0x9590c15d,0x7fe14091,0x9d32bffb,0xb895c093,0x9caa4083,0x2e3ac017,0x4bea40a9,0x90754083,0xb3e3c017,0x3deac091,0xb2bc408a,0xb114c012,0x648c40a6,0x97bb408a,0x9885c012,0x91ba40a6,0xe84c0a3,0xfcfcc018,0x4be8c093,0x9079c0a3,0xe538c017,0x3de240a6,0xb2c4c0aa,0x7fd6c012,0x648ac091,0x97c0c0aa,0xb127c012,0x80fc40ad,0x257dc0af,0xc84c005,0xb3df40ab,0xcb4bc0a3,0x9aefc015,0xad7940b7,0x1b7ec0b1,0xda92bffc,0xd37a40b1,0xbd9dc0a9,0x7ad1c00b,0xa53e40b3,0xcceac0a3,0x3ed3c00c,0x654740bb,0x9b63c0a5,0x10e4c008,0xbd7740ba,0xb67cc0ab,0x9ac3c006,0xc3bd40b4,0xea704083,0x8ed6c00b,0x974040bc,0x73504085,0x2fdec008,0x618b40b4,0x25294091,0xaa4cbffe,0xde9240b1,0xe5da4089,0xbd9fc00b,0x920c40b8,0xbc02408d,0x6ee9c004,0x87ad40b9,0x7ab4089,0x90fc008,0x31ab4184,0x26fa4087,0xdbc8c008,0x61a64183,0x8c0d408c,0xe681c004,0xf573c142,0x44784010,0x8943c008,0x90a8c142,0x3023c010,0x3621c008,0xd67cc147,0x63734026,0x76f6c008,0x5d3ac176,0x85b403d,0x1d7c008,0x6289c146,0x6373401a,0xc113e008,0x86373c0,0xf1c7fcc0,0x374599c0,0x5cf4000c,0xc0a75873,0xc0a5968b,0xc00874b8,0xc173c62a,0xc08d5a25,0xc008434e,0xc163492a,0xc0a73722,0xc0082368,0xc173e54e,0x4063275f,0xc0077732,0xc1629c7f,0x4087b5fc,0xc008196e,0xc142f778,0xc04228aa,0xc0086373,0xc14601d7,0xc038d0ab,0xc0086373,0xc146590b,0x40376c7f,0xc0086373,0xc1473621,0xc02c5cb8,0x70086373,0x780114,0x46590c71,0x1bc6b5c1,0xe803000c,0x73406214,0x6fc00863,0xc0114a0,0x3b476200,0x76fbc0ff,0x4f10060,0xc0a618cc,0x408561e7,0xc008992d,0xc0e52ae9,0x240e563f,0x92d37100,0x6b27c0f0,0x4000c35,0x8f114c4,0xc0086373,0x418d8ad5,0xc0807d4a,0xc0082032,0x411d1635,0x6c356b23,0x57f64400,0x1084119,0x1141003,0x10030018,0xc0114,0x1145803,0x5803000c,0xc0114,0x1150003,0x7f2000c,0x41675610,0x401090a8,0xc0083023,0x4167b34d,0xc010f56f,0x484478,0x196b3831,0x58030090,0x300114,0x177e6872,0x108fe741,0x6a610018,0x76fb4124,0x62000c42,0x416b5deb,0xc0e804,0x1151803,0xe8030018,0xc0114,0x1aa53671,0x2ba72641,0x8f5000c,0x418d349d,0x404f8d69,0xc00812d7,0x4186c479,0xc0a32232,0xa808457c,0x11fff115,0xc0086373,0xc09db511,0x40836845,0xc00d4118,0xc09f69d3,0xc0a3c41e,0xc00bea42,0xc09efe87,0xc0b16022,0xbffe2a91,0xc09c7d15,0xc0a9df9e,0xc00be25d,0xc0a38c5f,0xc0ad920c,0xc004bc02,0xc0a43dab,0xc0a987ad,0xc00807ab,0xc15dd020,0xc0b1a487,0xbffb4f94,0x41813c4b,0xc0b19590,0xbffb7fe9,0x4183ce37,0xc0ab270b,0xc0061ee2,0x418b5bb9,0xc09880fe,0xc006c53f,0x41885a6f,0xc0a8f64f,0xc0009f2c,0x41850046,0xc0afd52a,0xbffa8523,0x41900f9e,0xc06dad21,0xbffaf91a,0x418f8b72,0xc085ed05,0xbffaf9e4,0x418edb30,0xc08080e5,0xc0041ed6,0x418dbc16,0xc093dc59,0xc0009f27,0x418ba9a1,0xc0a083a7,0xbffaf9d3,0x418ec394,0x4042b55f,0xc0045c89,0x41901064,0x402ba298,0xbffb4e6e,0x4189c3d9,0x407dc0fd,0xc006c53b,0x418f98e5,0x404ae55c,0xbffa8523,0x418de130,0x4065b69e,0xc0009f27,0x41851edd,0x408f9f5a,0xbffaf9db,0x41889ab0,0x188861ed,0x8627f200,0x14418bc4,0xc2408018,0xfebffaf9,0xb0c17a64,0x1bc08572,0xf9bffa85,0x98c17b53,0x66c06ba2,0x91bffb4e,0x4fc176f5,0x27c092db,0x3dc0009f,0x14c172bc,0x71009018,0xc16c6893,0x18a861ed,0xebd7f200,0x5ac16570,0xdbc0af9f,0xe3bffaf9,0x7ec16eba,0x3fc09ee0,0x4dc006c5,0x1cc177d2,0xcc0816c,0xc1c0065b,0xa8c162ea,0xdc0ac61,0x8dc0048c,0xc9c178e9,0xd6404101,0x6cc0041e,0xc17b52,0x12402dad,0xbebffaf9,0x28c16533,0x23408fd5,0x8abffa85,0xdcc16c57,0xc24089e7,0x49bffaf9,0xfc17748,0xd340687c,0x15bffaf9,0x16c17a4a,0xca404bda,0x83bffaf9,0x26c171fb,0x23407fa8,0x3fc0009f,0x21c16b53,0xc140842f,0x67c00636,0x32c162ec,0x24408d12,0xa6c003d3,0x7dc0a4df,0x74408bbd,0x67c006b6,0x8fc09ca9,0x7f4089d3,0xccc00bbd,0x41c138cc,0xf9400eb6,0xeac0560f,0xc138d6,0xf4401000,0xdfc03d34,0xc1327a,0xad401000,0xb0c0384f,0xc13d12,0xe6401000,0x40c00a59,0x62000cb9,0xc02447e0,0x303dd9,0x1fa304f1,0x6269c013,0xc13a,0x4c0e4010,0x5447c02e,0xf1000c34,0x25304000,0x38ccccc0,0xd4aac1,0x632df140,0x4a71000c,0xbb3fc244,0xca15f,0xd1e97d71,0x9dda4b3f,0xeb62000c,0x44bfc4fd,0x71001842,0xc00e5bd5,0x185698f6,0xd4aaa100,0x2df1c000,0xda04c063,0xc041006c,0x183c853c,0x58217100,0xe692bfe3,0x71000c65,0xbfd47cf2,0xc6cc066,0x491b6200,0x3852bfd2,0x2c710054,0x233fe066,0x18664b,0x1d4b04f1,0x4573fd4,0x6666c06e,0x9be1c132,0x3954bfc4,0x71000ca1,0xbfd26aba,0xc9d463f,0x3dbc7100,0xa7b5bfd4,0x71000c6d,0xbfe1118c,0xc663cac,0x694d7100,0xa53cbfff,0xa1000c63,0xc00e7f95,0xc056fb09,0x1207ba2,0x37c004f1,0x70c03934,0xc13515,0x48c01000,0x1fc01fc1,0x7101086c,0x2e69dbc0,0x2cb491c0,0xa4c07201,0xc4c0241a,0x310018ee,0x480ce8a7,0x11944400,0x603fe1,0xc412e862,0x904fee3f,0x28aa6200,0x66a33fd2,0xad620090,0x7d3fd3fb,0x440090e8,0x3fff6955,0x14f10084,0x400e1d93,0xc0577f6f,0x415d999b,0xc00fada7,0xc0507608,0x415da567,0xc0100000,0xc03d1bb5,0xc574aff,0x25687100,0x5d95c038,0x71000c60,0xc00bdc3c,0xc628610,0x47e07100,0x2f35c024,0x71000c5f,0xc02e4c16,0xc5a4d02,0x94c03100,0x400541d,0x9b440078,0x14415d99,0x999b4401,0xb4415d,0x5d999bb1,0xc2444a41,0xa15fbbbf,0x75710030,0x4bbfd1e9,0xc9dda,0x4800a804,0x415d999b,0xc66200a8,0x90bfe136,0xa1003c2e,0xc006821b,0xc06094c0,0xb4a4fb,0x9cb24041,0x4003c3c,0x9b440108,0x8415d99,0x33344401,0x2344157,0x57333444,0xf1023441,0x57333408,0xd4d75a41,0x6c7bea3f,0x573334c0,0xe3582141,0x65e6923f,0x7004000c,0x33344402,0x2dc4157,0x14456a21,0x4004f101,0xc03961b3,0x4159e243,0x40100000,0xc01fc133,0x10838ea,0x69e84071,0x8161c02e,0x40720120,0xc0241aa4,0x18bb92,0xce8a731,0x64040054,0x3334a202,0x12e04157,0x4feebfc4,0xaa620090,0xa3bfd228,0x71009066,0xc0038b1a,0x30625a64,0x15ec7100,0x8809c00f,0xf3000c53,0xe342ab0a,0x65ed03bf,0xeb92a7c0,0xf8d3e341,0x41dcc6c0,0xf88dc0bf,0xfccb941,0x4b00ef3,0xcfa24217,0xe050c0e3,0x24a5bf41,0x7e04421d,0x924c0b9,0x1a7dbf42,0x54ca4223,0x8202f30f,0x8a42252b,0x2cc00500,0x5bf41d5,0xd441f46a,0x32f311dc,0x41edc2e7,0xc0354845,0xbfbf92da,0x41fc7c20,0xc082cbb6,0xbfbfc5e7,0x4201bded,0xc089374a,0xbfbfc305,0x4204e5fc,0xc08a7b44,0xbfbf839d,0x4209629a,0xc083cea0,0xbfbfcd81,0x420d7747,0xf1129cd6,0x103c1704,0x43b5bf42,0xbf757dc0,0x124d5dbf,0x1cafe642,0xef30048,0x42145dbb,0xbfb6ca60,0xbfbfc6fc,0x41e5eeff,0xbf4dd713,0xbfbfcb14,0x41e56f54,0x5312c0e8,0x42154856,0xf1129040,0xe8bc634d,0xefaa8241,0xbfc5e7bf,0xdcb00bf,0x64d5c342,0xf3c348c0,0x103b5abf,0x43c19042,0xf371ebc0,0x12854dbf,0x17747942,0xf3caeac0,0xe56f22bf,0xa9c15141,0xf3c686be,0xe69413bf,0x8f4d8341,0xf3b3f2bf,0x147cf0bf,0xab1cc942,0xf3bb5abf,0xe91573bf,0xfaf43041,0xf113d4bf,0x4215271b,0xbf0f0b7c,0xbff3d534,0x4215486f,0x3ea9c25d,0xbff3c686,0x41ee3fc5,0xc039ad6d,0xbff38045,0x41f51175,0x606854e3,0x3ad07100,0xcea341fd,0x71000c83,0x420319fd,0x248a7b40,0x42133100,0xb1012006,0xbff3c06e,0x4209c1f2,0xa882cbb2,0x6a055300,0xfcd841f4,0x480312,0x814018f5,0xdcbfbfcd,0xe041edc2,0x82403547,0xcfbff38f,0xc941ee3f,0x9d4039ad,0x99bfbf83,0xe5421527,0xba3f0f0e,0x3500fcd7,0xb4c3483f,0x3f24f500,0xbfbfcd81,0x42145f1e,0x3fb65144,0xbff3cfc4,0x42147cf2,0x3fab1c5c,0xbfbfbe4d,0x41e5eefa,0x3f4dd3fe,0xbff3c84b,0x41e6975b,0x3f8fff8b,0x180b891,0xc34840c1,0x854ebff3,0x74644212,0x62008417,0x42103c18,0x1380b5aa,0x103b5ca5,0x43c16642,0xc8757d40,0x4003f201,0xbff3caea,0x420dcaff,0x4064d5d0,0xbfbfc5df,0x3201ec99,0xe4cae240,0xcbb43100,0x96001882,0x4204e604,0x408a7b40,0xc101083d,0xbfc30540,0x31a04bf,0x8a7b4442,0x400300d8,0x6e40c102,0xcfbff3c0,0xa041fd3a,0x8483ce,0xfc7c1f53,0x12fcb441,0x9d8e35f2,0x4ca54220,0xaeef4099,0xb0c1bf93,0xe26541e1,0xb86740e4,0xf58dbf93,0x68f54225,0xb2813fb0,0xc1e6bf93,0xd5ed41c4,0xa4be3fed,0xabe0bf93,0x2aae420b,0xb214c106,0x267dbf93,0xdc7d4217,0x132cc0e4,0x41c400f3,0xbfb0a498,0xbf93c800,0x41cec616,0x531aac37,0x42259e03,0x5319a4bc,0x420bb921,0xf11338b8,0xf8bfa9a1,0x543ac41,0x4206ea41,0xcf7b11bf,0x9b9e9541,0x41459540,0xc9cb07bf,0x636abe41,0x41dcb540,0x45509bf,0x3e73ec2,0x7b276741,0x4e017bf,0xc8b4f2c2,0x7b276740,0x1a936bf,0xd005eac2,0x7b276740,0x7f8c4bf,0xfeaf60c2,0x7b276740,0xb74a90bf,0x27d3f6c1,0x7b2767c0,0xc57892bf,0x6de16c1,0x7b2767c0,0xb5596bbf,0xd99fedc1,0x7b2767bf,0xc37a78bf,0x89e32ac1,0x7b2767bf,0xff2573bf,0x76274c1,0x7b276741,0xfcb6f0bf,0xd40f13c1,0x7b276740,0xb4112ebf,0x965e4c1,0x7b2767bf,0xc2cffcbf,0x7bd33dc1,0x520048be,0x14c1f608,0xf10024c0,0xd234604,0xa3194cc2,0x7b2767c0,0x137d09bf,0xc4cb49c2,0x3171000c,0xd3c2100f,0xc8be6,0x16185471,0xae8475c2,0x4f1000c,0xc1f80000,0x41080000,0xbf7b2767,0xc210962d,0x18d89848,0xe7716200,0x2babc1ef,0xca710084,0x42c21217,0x186d5f,0x18f1ae71,0x8f3c66c2,0x4f1000c,0xc1b43057,0x3f2c36ca,0xbf7b2767,0xc1c2fc3a,0xc16dcc2,0x3937100,0xe68ac209,0x710024b9,0xc20d6cfd,0xce9ac52,0x3ea87100,0xcf85c209,0x71000cfa,0xc2142ff2,0xc3266a5,0x88c07100,0xda51c21b,0x71000c4c,0xc1ef61e0,0x50d2162b,0x6ddf7101,0x1dc3c204,0x710018ca,0xc1b58891,0x60eae31d,0xfe827100,0x25b3c1c3,0x71000cb5,0xc1e4b28f,0xc0028c6c,0xde157100,0x1c0fc1e8,0xf1003ccc,0x3ce5b10,0x481fcc2,0x7b2767c1,0x15d923bf,0xcd728ac2,0x7b2767bf,0x1cf9d2bf,0x55001c2,0xc8710054,0xb4c1c5d2,0x300e01,0xe0f10971,0xc0121bc1,0x8f71000c,0x8ec21db3,0x3092cd,0xb8ee8071,0x4cda4dc1,0x89710018,0xe8c1dbe8,0xcf7cf,0x4f1271,0xd21629c2,0xa0710048,0xcac1c871,0x183f32,0x1681e571,0x16d906c2,0x3071003c,0xa6c1fc4b,0x8407dd,0xce04f1,0x753c21e,0x2767be49,0x260cbf7b,0xac5ac1d5,0x710030e9,0xc1f9f796,0x48d4c014,0x3d417100,0x1572c1bd,0x71001889,0xc1d9d701,0xcaf6a42,0x204f100,0x27c21698,0x673e7bdc,0x69bf7b27,0x18c1cbd0,0x186d5f,0x1dcaeb71,0x8188f4c2,0xbb710108,0x87c1ced3,0x18d898,0xf0da8e62,0x786274c1,0x7c427100,0x4303c1c2,0xf10018a8,0xcfe19f04,0x8be6d3c1,0x7b276740,0xd494d5bf,0x9ee966c1,0x6171000c,0x92c1f1bd,0x84d397,0xc905ec71,0xc4cb47c1,0x2b710018,0xa6c2161f,0x60a648,0x1ce44571,0xa88cac2,0xa6710018,0xe1c1e59d,0xd80313,0xe96f5471,0xccc4dbc1,0xfc71003c,0x8ac214fc,0x241274,0x1b59f071,0x53ea74c2,0x3171000c,0x27c1e322,0x24c3da,0xdc860c71,0xf8e9d5c1,0xe371000c,0x1c213a4,0x244368,0x18b09a71,0x9278f0c2,0x5b71000c,0xdcc1dd29,0x24b7d8,0xd5bab071,0xeb0b11c1,0x4971000c,0x2c211ed,0x247148,0xcf5d9b71,0xda3793c1,0xcd710018,0x28c1d79c,0xca8f1,0x15e0aa71,0xb093cfc2,0x30710024,0x9dc20fdd,0xc8dac,0xc9835371,0xc6a581c1,0x11710024,0x91c1d293,0xc975f,0x127ff162,0x3449c9c2,0xd0a47102,0x3c29c20c,0x710030a5,0xc1c314cb,0x24ab4018,0x27537100,0x2e7fc1cd,0x71000c7d,0xc20ec17a,0x24e2fcc8,0xa5967100,0x83e8c208,0x62000cbb,0xc1bd94ed,0x36067ef,0xc8b64b71,0x4368e4c1,0x2710030,0x36c20b76,0x24f25c,0xba0c0272,0x60bb6bc1,0xff10018,0xc6c21698,0xdabe7bde,0xc3c03ec9,0x36c21642,0xdabf89e4,0x85c03ec9,0x9fc21583,0xcf21d,0x24a04f1,0x76fbc214,0xc9dec038,0xed45c03e,0x4849c211,0x12000c71,0x100d82f,0xa371000c,0x32c20cd0,0xca53c,0x8a59771,0xbb83e2c2,0x9803000c,0xc0104,0x1a93671,0xd005ecc2,0x5003000c,0xc0104,0xf43cc162,0xc8953c1,0x58fa7100,0xf397c1ea,0x3000ccd,0xc01030c,0x2880300,0x3000c01,0xc010234,0xe19f7100,0xe6d6c1cf,0x71000c8b,0xc1cbd06d,0xc6d5f4a,0x71a07100,0x32c6c1c8,0xf1000c3f,0xc5364904,0x7e1cc1,0x3ec9dac0,0xc362cec0,0x808cbdc1,0x3b7100d8,0x8c1c2cb,0xfc303c,0xf30504f1,0x81efc201,0xc9da40cf,0xffbcc03e,0x7bb1c205,0x3000cc5,0x415303c0,0xc03ec9da,0x18010438,0x4080300,0x71004801,0xc1fd4d87,0x18d3d621,0x36c0300,0x71003001,0xc1b43057,0x242c36b9,0x1e00300,0x3009001,0xc01021c,0x9f9c7100,0xd315c1f6,0x3003cd4,0x3f530558,0xc03ec9da,0x24010288,0x1ec0300,0x3000c01,0x60010354,0x34fe7100,0xedddc1c3,0x3003062,0x240101e0,0x59f07100,0xea70c21b,0x3000c53,0xc010600,0xf7487100,0x74d1c1ef,0x3006cd2,0xc111063c,0x540201d4,0x1200103,0x1060c03,0x60030054,0x6c0103,0x3605512,0x71003c01,0xc1c57893,0xc06de2b,0x3fc0300,0x300e401,0x54010630,0x4a907100,0xd3fac1b7,0x3002427,0xc010378,0x3780300,0x71000c01,0xc1c8b64e,0xc43691a,0xc027100,0xbb6fc1ba,0x3000c60,0xc010378,0x4b00300,0xc9da3e53,0x624c03e,0x3006001,0xc010618,0x39c0300,0x3003001,0xc010300,0x72f27100,0x53f4c216,0x300cc48,0xc01054c,0x256d7100,0x47e9c1cc,0x3002471,0xc0103c0,0x9cd17100,0xf132c1d7,0x3000ca8,0xc010378,0x75347100,0x127dc1d1,0x3000c93,0xc0105b8,0x3cc0300,0x3000c01,0x90010600,0x989e7100,0x97dc215,0x3006ce9,0x24010654,0x2ff07100,0x66d3c214,0x3000c32,0x980105c4,0x6cc0301,0x3001801,0x18010594,0x17cd7100,0x5f0bc212,0x300186d,0x18010558,0x7380300,0x71001801,0xc2100f30,0xc8be6e0,0x5340300,0x3002401,0x18010774,0x23487100,0x193fc20d,0x3000ca3,0x24010588,0x7680300,0x71001801,0xc209ac6a,0xcb6a4e3,0x72c0300,0x3000c01,0x3001060c,0x6840300,0xf1000c01,0x35b08f1c,0x13c82ec1,0x60c31e40,0x35aecac0,0x125b79c1,0x749c8840,0x2c2c58c0,0xee037c1,0x61032e40,0x233fecc0,0x3f85c1,0x28f1000c,0xc1235197,0x3ffdadb0,0xc0746a7b,0xc11b93a0,0x3fd1c2d2,0xc0610321,0xc11bbc0a,0x3fcf2eae,0xc0746a7f,0xc115ad59,0x3f94bb2c,0xc0610325,0xc115e9bd,0x18929121,0xf3fd7100,0x2171c111,0xf100181b,0x11e18c1c,0x16d42cc1,0x610325bf,0x1589b8c0,0x92cd7dc1,0x610321bf,0x15e3e4c0,0x924010c1,0x746a7fbf,0x1b613fc0,0xd02fbec1,0x10f10018,0xc11bb3c5,0xbfceec85,0xc0746a7b,0xc1230235,0xbfff61fe,0xc061032e,0xc1234777,0x18fd7eed,0x1e24e100,0x8d9bc12c,0xfdfcc00d,0x82a4c073,0x39f100d8,0x60c31ec0,0x358468c0,0x125b75c1,0x749c88c0,0x3f06dcc0,0xee037c1,0x61032ec0,0x47f348c0,0x3f85c1,0x610321c0,0x47e19ec0,0xfdadb0c1,0x746a77bf,0x4f9f91c0,0xd1c2dbc1,0x610332bf,0x4f7729c0,0xcf2eaec1,0xdb710060,0x1bc15585,0x7894bb,0x55497671,0x92912ac1,0x36710018,0x4fc1593f,0x181b21,0x8aad10f1,0x8640c15a,0x319bc0e,0xa97ac061,0xcd7dc155,0x32e3f92,0x4f50c061,0x4018c155,0x71013892,0xc14fd1f5,0x8d02fb6,0x7f6e7101,0xec85c14f,0x710018ce,0xc14830fd,0x50ff620f,0xfffff201,0xebbd66ff,0x7ef6c147,0x6a773ffd,0x1510c074,0x8da0c13f,0xfdfc400d,0xc513c073,0xfc26c146,0xd2aa4022,0xd03cc042,0x3583c153,0x14f53ffa,0xada3c043,0x91c1c13f,0xc92ac015,0x9999c050,0x79b7c135,0x1bd2c01b,0x53a3c050,0x91ffc15c,0xc9213b69,0x598c050,0x7d74c15b,0xc92ebf1f,0xa0bc050,0xd6cbc140,0x4029401b,0xe9fac04a,0x4467c148,0xc92a4006,0x332ac050,0x903c15d,0xb613bf86,0x3163c044,0xe686c161,0xfe8bbf86,0x9999c041,0x79bcc135,0x1bd2401b,0x9998c050,0x28fac135,0x2689402e,0xd3fdc043,0x8a59c159,0x83773f14,0x1464c057,0x5e5fc161,0x14f53d40,0x342c043,0xa07c149,0xc925c006,0xc112c050,0x64e5c145,0xb613c01f,0x999bc044,0x28f6c135,0x2689c02e,0x1c1ac043,0x4d16c157,0xc9323f9b,0x8075c050,0xffbdc148,0xfe5dc02a,0x72d2c041,0x3b9fc15d,0xb6133f81,0x632c044,0xbfa9c151,0xc925bfda,0x5935c050,0x35b9c160,0xfe8b3f97,0xf18cc041,0x64d8c150,0xc92a3fdb,0x2ab1c050,0x830ac157,0xc932bf9a,0xe04ac050,0xb50fc154,0x14f5bff1,0x4643c043,0x6c22c13f,0x6c124010,0x341cc05a,0x73fbc110,0x83733cd1,0x2d9bc057,0x7d95c110,0xc92e3f1f,0x5ae4c050,0xc7cc124,0x1da3c022,0x4a50c043,0x569fc113,0xb613bfcf,0x8590c044,0x91c1c12b,0xc92a4015,0x2929c050,0xd6c7c12b,0x4029c01b,0x97d3c04a,0xa201c10d,0xe3ac3f86,0x493ac043,0x4467c122,0xc925c006,0x3529c050,0x40abc110,0xc92abf21,0xeda4c050,0x4941c10a,0xb613bea9,0x2fefc044,0xa07c122,0xc9254006,0x1431c050,0x8c26c12a,0x990f4024,0xdf54c044,0x2c41c116,0x10664014,0x1718c042,0x4d40c114,0xc925bf9b,0x2d02c050,0xbfa9c11a,0xc9323fda,0xaec6c050,0x3d29c11b,0xb60f4009,0x41a4c044,0x64bfc11a,0xc932bfdb,0x880c050,0x830ac114,0xc9253f9a,0xecefc050,0x6c22c12b,0x6c12c010,0xa118c05a,0x991841d7,0xfd0d4087,0x430ac041,0x2f6641dd,0xfd6d4042,0x10dac041,0x50a641e6,0xcae24087,0xe5c2c042,0xba644225,0xfd0dc0dd,0x77eec041,0x63394226,0xfd0dc108,0x4c02c041,0x25d54229,0xfd0dc0fa,0xf97c041,0x2e494223,0xfd0dc0f6,0x4cacc041,0xe20941d0,0xfd0d4087,0x44d8c041,0x1db8c1cb,0xa305400c,0x20a6c042,0x22984222,0xfd0dc0f8,0x7495c041,0xe469c1f6,0xc3dfc0bf,0x8103c042,0x5732c200,0xfeb5c0c1,0xb3c1c041,0x2659c20b,0x43c098,0x68eac042,0xd895c0ac,0xdefcc0e1,0x2f06c042,0x57a3c216,0xfd0dc0f7,0xb355c041,0xeac441d7,0xfd0d40e4,0x7001c041,0xf22a41f6,0x972040b2,0xf846c042,0x89914214,0xaeb4c087,0x5e74c042,0x2f014219,0xfd82c042,0x633bc041,0xdf074226,0xfd0dc0d6,0x3a4bc041,0xe4694203,0xc3df40bf,0xc1dec042,0xec9c420c,0xa305c0b2,0x992dc042,0x229ac1d8,0x17e4098,0xc042,0xbe414222,0x1d3bc104,0xc1fbc042,0xc38d4204,0xd888c0bf,0xf8fbc042,0xe30dc219,0xfd0dc0de,0x2b05c041,0xa60fc217,0xea7100f0,0x1bc21b0a,0x2fb8e81d,0x1836d771,0xfebdbac2,0x4f1000c,0x41831618,0xbfa0e30d,0xc0420ae1,0xc21a3b6a,0x18d74409,0xb010f100,0xb8416b95,0x82c022cc,0x8ec042e1,0x5741d00d,0xc0c0e205,0x76c043ae,0x5d41d0e9,0x24e5fd,0xe9001cf1,0x66664228,0x299940d6,0x5eddc043,0xd552421a,0x8cd6400c,0x3b6bc042,0x44054226,0xfd0d40d7,0x4bdac041,0x70eb4182,0xf103cc28,0xa848021c,0xc1c9c5c0,0x42f0fe40,0x79264ac0,0x14475e41,0x420bf240,0xeefdebc0,0xc15871c1,0x41fe6140,0xd05ee8c0,0xe533b541,0x33f2003c,0xc2134161,0xbfbd4057,0xc042cb32,0x40dd70b0,0xc0c9d500,0xc04273e2,0x415447a1,0xc039f39d,0xc041fedf,0x40c090e9,0xc0e2a285,0xc0429a31,0xc2142afd,0x3f902081,0xc041fe87,0x41d7a119,0xa833b5,0xfde127f2,0x594541fe,0xfe2ac0c1,0x98dcc041,0x246e41e8,0xebc098,0x298cc042,0x73f74133,0x1538bfde,0xb3b6c042,0x25bb4213,0x714098,0x493cc042,0x29cec21a,0x35f700c0,0xc20f04cc,0x407b3c08,0xc0420043,0x40dd432f,0x40a9f32c,0xc04273fb,0x412fa8bf,0x3f972ed8,0xc041ffa8,0x413c413a,0x3ff885f5,0xc04374eb,0x41492dab,0x402256eb,0xc0430660,0xc2160c03,0x40f9a168,0x41c10294,0xc041fd0d,0x4225f8fb,0xe4dee2fe,0x2a00300,0x53000c01,0xc204c7ff,0x71022828,0x4222ea81,0x18f59475,0xe4426200,0x9a67c216,0xe962000c,0xe8c219f0,0xf2003c85,0xc1198303,0xc3898740,0x4275f340,0x220f15c0,0x6c803b42,0xf41cf100,0x7cc0ca6a,0xb0c0ce70,0xc041ff,0x58c21600,0x424106f2,0xf5c042af,0x8dc1f983,0x8840bfc3,0x55c042d8,0x941d7b3,0x1c887e2,0x17021c03,0x1021c40,0x8f1000c,0x41db3f79,0xc00d9b8d,0xc04274d1,0xc0caa06a,0x40af1920,0xa44201c1,0x99182201,0xb44003c,0xbc420881,0x1c02f301,0xc1d1f7,0x2ec07b38,0x49c04201,0xa0c1e67c,0xe4b402b8,0x6cc1c7a9,0x61bf9021,0x26441fe,0xfd0d40c1,0x20a4c061,0x229fc216,0x6000cf8,0x611403b4,0xc04400fc,0x2c61fd0d,0xc0101,0x1012c03,0x10f1000c,0x40e0053c,0xc0c366a5,0xc062a472,0x40d89316,0x40b6e065,0xc062191a,0xc219f8fb,0x54dee30d,0x2880300,0x71003001,0xc21714ae,0x18f6345d,0xc047100,0xa1574222,0x30018f9,0x1801030c,0x1080600,0xc06122f4,0x42220000,0xc10497b0,0xc062e19c,0xc0c36a72,0xc0d6e3c9,0xc062142f,0xc0cad3fe,0x40a366a5,0xc062a46e,0xc0c459b8,0x40b5a55f,0xc0621666,0x480103,0x100a803,0x9803000c,0xc0104,0x4400e403,0x61fd0d41,0x1801048c,0x1bb56200,0x41b54222,0x76710108,0xf8c2161f,0x9cf7fe,0x17160f71,0xf64c03c2,0xf803000c,0xc0101,0x100a803,0xc003000c,0xc0100,0x102b803,0x6f71000c,0xbf40d98d,0xb4d5a8,0x14f1,0x97b0c216,0xe1974104,0xfed7c062,0xa28c4221,0xe5a84104,0x9f6c062,0xd7f74222,0x89a4410c,0x7100f078,0x410c0bef,0xc58be0a,0x1c08f100,0x614106b0,0xefc042c2,0xcec0f90e,0x3f410ccc,0x2cc0f937,0xce629,0xcc3204f1,0x3c0c0e6,0xccce4225,0x323c410c,0x5dc2c0e6,0x710018ea,0xc0e152cc,0xc98d56f,0x52ca7100,0x5d59c0e1,0x75000cf0,0xc0df15a9,0xc92d5da,0x35f43100,0x71000cf7,0xc0e3d58f,0x481b6d7e,0x4303f200,0x7ac0f937,0xce40a7c2,0xa0410ccc,0xf0c08e4e,0xf20018bf,0xe8e08f03,0x9e79d6c0,0xccccec1,0xf94c4441,0x781ee1c0,0xf0c77100,0x2bb6c08d,0x7100189f,0xc0e8979c,0x4822c9d7,0x2c218400,0x862bc084,0x3041ad,0xc7250531,0x41710024,0x4bc0f937,0x18acd4,0xe8979c71,0xc68021c0,0x4f10018,0xc0e8e08d,0xc20909b8,0x410cccce,0xc0f94c42,0x2484dafc,0x37416200,0x62a8c0f9,0x9a710018,0xbbc0e897,0x181572,0xf94c4471,0x14a329c0,0xfd71000c,0xe0c09315,0xc857f,0xe8e08d71,0x126fc2c0,0x5d71000c,0xe8c08e32,0x5411f8,0xf9373d71,0xf8d51c0,0x8771000c,0x1fc0e6ee,0xc1038,0xe0822c71,0xa1d254c0,0x417100f0,0xf3c0f937,0x181e36,0xf9656f62,0x3cbdc9c0,0xd58a7100,0x7983c0e3,0x710024bc,0xc09315fb,0x60081f54,0x3e7b6200,0xf70c093,0x3e710024,0xc3c0df88,0x3c1619,0x878a5971,0xb812b8c0,0x5f710030,0xa4c08e32,0x300a47,0x8e4ea071,0x171f05c0,0x77710024,0xd8c08f77,0x24a371,0x933e7b31,0x94a20420,0x98410cb9,0x31c05ee0,0x7100844d,0xc0a01c67,0xa48a3943,0x1740101,0xc8c1b21,0xac307100,0x2967c0e3,0xf2000c9d,0xe6e94403,0x251d4fc0,0x4ccce42,0x8dfa2241,0xc0cdec0,0xe949b100,0xf9eec0e5,0xcccec0f8,0x31015004,0xce61ad0,0xe50a7100,0xad71c0e6,0x71000cea,0xc0e11082,0xc95980d,0x15d77100,0xfa2fc0df,0x71000c9c,0xc0e6c7a1,0xcf102f3,0x2ae07100,0x701fc0df,0xf100601b,0xf94c4404,0xa8a65dc0,0x4ccce40,0x8e09f641,0xf72ac7c0,0x34620024,0xec0e3f4,0xf10024c9,0xe8979e04,0x9e7495c0,0x4cccec1,0xf9374141,0x9f1979c0,0x8d71000c,0xcbc0e8e0,0x482256,0x81a0cd84,0xad8b6cc0,0x31002441,0x24c71fc4,0x4c447100,0xe687c0f9,0x710018ac,0xc0e8e08d,0x18c66de4,0x979cb100,0x718c0e8,0xcccec209,0x31030004,0x2484e03c,0x4c446200,0x598ac0f9,0x8b710018,0x1cc0e8e0,0x188592,0xe8979c71,0x157d3dc0,0x4171000c,0x48c0f937,0xc1499,0x92856871,0x11f648c0,0x42710048,0x77c0f94c,0x181227,0x8e1e9d72,0xf9845c0,0xe9610018,0x22c3c0e6,0x62000c10,0xc0e152ca,0x30bc63,0xe3f42e71,0xa1e758c0,0x447100fc,0x11c0f94c,0x241e40,0xf91c7e71,0xbc65c3c0,0x68710018,0x94c09285,0x540824,0x934fe371,0x16af4ec0,0x6b620024,0x1fc08dad,0x710054ed,0xc0df0e73,0x240a3852,0x43746200,0x967c08e,0xb2710024,0x25c08455,0x48b782,0x8e1e9f71,0xa3b682c0,0x9862000c,0x1fc0925a,0x71006c46,0xc09fd2b1,0x748a2442,0x37417101,0x3528c0f9,0xf1000c8c,0xe320c000,0x80000c0,0x5f9f741,0xb07d1c41,0xd671000c,0x9b410479,0xca058,0x3ca704f1,0x5697410c,0xcccfc0a6,0x749640bc,0x4e184104,0x62000ca0,0x40be6666,0x24fe87,0x17000c0e,0x20024b0,0x3462000c,0x9e410673,0xf1000c36,0xc2f3e08,0xa60d0941,0x1e5639c0,0xd66666c2,0x5d485640,0x1c4e00c0,0xcb62000c,0x96c062d9,0xf2000cfb,0x433b190b,0x1e6666c0,0xd51a8bc2,0x9fb2a940,0x1c6666c0,0xd5058ac2,0xc9da640,0xeac4a100,0xcbd7c0d4,0x5080c09f,0xc0410030,0x3062e93e,0x33b7a100,0x82e4c0d5,0x5757c09f,0xc0720060,0xc05c9ad8,0x24e5b5,0x4306d931,0xd6710330,0xc5c10c96,0xc5a53,0x48c3562,0x64c8dec1,0xda04f305,0x1dc105dc,0xc4c0425a,0xcec1a31f,0x47c10ccc,0x318f94c,0x7ec10c91,0xe4c0f91c,0x18a26d,0xe8979e33,0x5f102b8,0x6571c10c,0x3a4bc0f9,0xcccec214,0x3741c10c,0x7344c0f9,0xc16104f8,0xc0e8e08f,0x8103604e,0xfa25c10c,0xcb24c08d,0x4f104e0,0x844971c1,0x2207cdc0,0xcd89942,0x77503cc1,0xb43cebc0,0x13c17103,0x24c0e619,0x7204082e,0x894c75c1,0x548cbcc0,0x8f04f100,0x44c0e8e0,0xce421173,0x80c10ccc,0x43c0f91c,0x6c1869,0x9525ab62,0x18c90ec0,0x97a06200,0x3a4bc0e8,0x5f40048,0xc096da49,0xbfe3a3d3,0xc10cccce,0xc0df0e75,0x41d1921c,0x873100a8,0xcd0e6,0xe8e08f71,0xa8e03cc0,0x4771000c,0x1cc0f94c,0xca992,0xe8979e71,0xc22a99c0,0x4371003c,0x3cc0f937,0xcc94a,0x1f0404f1,0xe0dfc0e4,0xcccec006,0xcc36c10c,0xef5fc0e6,0x710018fc,0xc0e152ce,0x1865cf3a,0xe50c7100,0xad8ec0e6,0x71000c85,0xc0f91c80,0xc70d3f6,0x48c17100,0x2798c0e0,0x71000c84,0xc0e4af9b,0x4474dbc8,0x65717101,0x32f2c0f9,0x71000c76,0xc0e8e08f,0x247f4120,0xbeeab100,0x7fe0c0df,0xccce41d1,0xb300f004,0xc1a32505,0xc104ccce,0xb4f93743,0xc1049106,0xc0f9656f,0x18a28021,0xe08f3300,0x11066ce8,0xe101a404,0xc2143ceb,0xc104ccce,0xc0f94c44,0x45c6a26,0x979ec172,0x95dbc0e8,0x9e330018,0x684e897,0xc7c10481,0xb2c08df0,0x43045c37,0x807a83c1,0x4810144,0xe60410c1,0x602930c0,0x11c1c103,0x26c08963,0xce42116a,0x1ec04cc,0x180c211,0x12c10482,0xf0c09517,0x330018bf,0xc8e8e091,0xc104d101,0xc096c546,0xc07afadf,0x8004ccce,0xd44b3101,0x7100ccd0,0xc0e8979e,0xca8dafc,0x37437100,0x7fe0c0f9,0xb1000ca9,0xc0e8e08f,0xbfc27ea6,0x7004ccce,0x7efe3102,0x71000ccb,0xc0e2a839,0x4806fd97,0xe50e7100,0x3dc9c0e6,0x710018f1,0xc0df3f1f,0x1865ebf2,0xcc367100,0xf681c0e6,0x71000c85,0xc0f96571,0xc6e5519,0x52ce7100,0x13d5c0e1,0x71000c84,0xc0e41f06,0x2c750042,0x1c807101,0x576ac0f9,0xf1000c76,0xe8979e1b,0x220000c0,0xb127e42,0x5039efc1,0x2a6907c0,0xd6bf6242,0x78d756c0,0x2a415ec0,0xd6666642,0x5a6df8c0,0x245123c0,0x50c0720c,0xfac062fe,0xf1000cfe,0x4363410c,0x286667c0,0xd6e54542,0x78cf6cc0,0x2a6667c0,0xdcbf8c42,0x84497140,0xd371000c,0x1c40ef50,0xc8dfa,0x8bc04f1,0x979cc01d,0x6a81c0e8,0x9c84422a,0x33f040d6,0x71001877,0xc0ee845e,0xcf96571,0xf7444400,0xc4022,0xef5d6a62,0x3cf0c7c0,0xb52b6200,0x2c2ac0dc,0xa2710054,0x8f401d9a,0x30e8e0,0x22655e62,0x3c1c7ec0,0xcd534200,0xc40ee,0x62422871,0x80402265,0x28620018,0x1d9a9e42,0x710030c0,0x5d6a4228,0x54c540ef,0x42289100,0x40d823f6,0xc0807a83,0xcd51a100,0x1c80c0ee,0x5324c0f9,0x404100d8,0x18630b9a,0x50d35100,0xc01ec0ef,0x42286200,0xc0dcbf8c,0x289100d8,0x1d08c042,0xe8979c40,0x40330024,0xc022f7,0x60422851,0xc0ee84,0x38362f21,0x4045f101,0xc058be06,0xc1cdf4be,0xc03aedab,0xc0666230,0xc1cd7d93,0xc03b1c22,0xc062696e,0xc1d435ac,0xc0808b37,0xc0666239,0xc1d3c2c5,0xc0810bd6,0xc0626973,0xc1da03ab,0xc096101f,0xc0665e4a,0xc1dbd8ce,0xc09e1a87,0xc0625d85,0xc1e0d4f6,0x48a89d0f,0x58f47100,0x293fc1e5,0xf10030b3,0x7fffffff,0xc1e81675,0xc0b541ad,0xc0665e57,0xc1ed24a5,0xc0bbb6b3,0xc063522f,0xc1f7f394,0xc0c035d2,0xc0657ab3,0xc1f3865d,0xc0bfecd3,0xc0636124,0xc1f80c6d,0x40c035d2,0xc0657ab3,0xc1eff6b7,0x40bf6523,0xc062696e,0xc1e839af,0x40b60be5,0xc063522f,0xc1e0a24b,0x40a82d0c,0xc0666230,0xc1e09c7a,0x40aa09ab,0xc062696e,0xc1da143c,0x4096fd8d,0xc063522f,0xc1d40f16,0x407fbd06,0xc0666235,0xc1d3e240,0x408198bb,0xc062696e,0xc1cdd8bc,0x40395853,0xc0666230,0xc1cd946b,0x403c66cb,0xc062696a,0xc1caaf95,0x3ffe98e5,0xc0665e46,0xc1c96729,0x3fd853f4,0xc062696e,0xc1c88f68,0x3f7e429e,0xc0666228,0xc1c7900a,0x3eb400b9,0xc062696e,0xc1c7f927,0x3bd96207,0xc0665e53,0xc1c8991b,0xbf82b274,0xc0666230,0xc1c826b6,0xbf809457,0xc062696e,0xc1ca7d06,0xbffc64f5,0xc063522f,0xc211059f,0x403aeddd,0xc0666241,0xc20fd05d,0x4060134d,0xc0625d81,0xc2126e31,0x4013db7b,0xc0626973,0xc20eca7c,0x406f38bd,0xc0665e53,0xc20cfc94,0x4088b7c3,0xc0630f62,0xc20b07ce,0x40961b3d,0xc064c654,0xc208cc60,0x40a28c7c,0xc0665e5b,0xc207c67b,0x40a9b7ce,0xc0625d81,0xc20526c3,0x40b1ede1,0xc0666239,0xc202c2c0,0x40ba5dc0,0xc0627093,0xc2015e8d,0x40bb3e49,0xc0665e53,0xc1fc79a4,0x40bfecd3,0xc0636120,0xc2000438,0xc0bf6089,0xc0627097,0xc2054182,0xc0b19540,0xc066623d,0xc2053e2f,0xc0b374dc,0xc0626320,0xc208c0d1,0xc0a3710b,0xc0635233,0xc20b1494,0xc0965895,0xc0630f67,0xc20cf661,0xc0884b71,0xc064c654,0xc20fa5ad,0xc05defd0,0xc066623d,0xc20fc353,0xc0613965,0xc0625d81,0xc2123dbd,0xc0126c16,0xc0666241,0xc2126528,0xc015388b,0xc0626973,0xc213b84c,0xbf7e42f2,0xc0666235,0xc213e802,0xbf838384,0xc0627097,0xc2141577,0xbc918e32,0xc063522f,0xc213b372,0x3f82b2c8,0xc066623d,0xc213ec12,0x3f808659,0xc0627093,0xc212acb3,0x3ffcfe37,0xc0665e68,0xc2124b8d,0x400f9f41,0xc08dcb53,0xc20fbd21,0x405b65cb,0xc08dcb53,0xc1fa37d5,0xc0c011d3,0xc08dcb53,0xc203a329,0xc0b6d4ce,0xc08dcb53,0xc20b49a5,0x40950175,0xc08dcb53,0xc209b665,0xc09de8d5,0xc08dcb53,0xc2044731,0x40b509a0,0xc08dcb51,0xc20dc2ca,0xc0818a52,0xc08dcb53,0xc1f8adcb,0x40c0c040,0xc08dcb51,0xc210eb31,0xc03d5a14,0xc08dcb53,0xc2136a0d,0xbfb62720,0xc08dcb53,0xc213fafb,0x3f170f9d,0xc08dcb53,0xc1cc4a32,0xc0225ed9,0xc08dcb53,0xc1d57238,0xc0866031,0xc08dcb53,0xc1eb2713,0x40b9479f,0xc08dcb51,0xc1e12aea,0x40a93303,0xc08dcb53,0xc1e054d3,0xc0a759b6,0xc08dcb53,0xc1d667fd,0x408a3743,0xc08dcb53,0xc1ec9d8a,0xc0bb5068,0xc08dcb53,0xc1ce2992,0x403d596d,0xc08dcb53,0xc1c9f1d2,0x3fdc3fe6,0xc08dcb53,0xc1c80944,0x3ecb06c4,0xc08dcb53,0xc1c88869,0xbf72922e,0xc08dcb53,0xc1d8d082,0xc0797bb7,0xc08dcb53,0xc1d20a8b,0xc033296f,0xc08dcb53,0xc1e19acd,0xf097d5c9,0x6e987100,0x810fc1ed,0xf1000cab,0xcdc8e410,0xca916dc1,0x8dcb53bf,0xcbfb47c0,0x8c25f2c1,0x8dcb53be,0xfaa9b4c0,0xb016f8c1,0xdb710024,0x82c1cd3e,0x78b3aa,0x2c7e871,0xa7bcdec2,0x96710018,0x2cc1d287,0xcc39a0,0x79a0271,0x95e1b3c2,0x81710018,0x99c1d8da,0x18792b,0xb92bf62,0x902baac2,0xcbf97100,0xe1aac1e0,0x71001895,0xc20ebc36,0x3039a01b,0x702f7100,0xbcdec1ea,0x710018a7,0xc2109203,0x90f9a451,0xb7807100,0x586dc211,0xf1000c6f,0xf5564d10,0xb016f8c1,0x8dcb5140,0x11fb10c0,0xc87768c2,0x8dcb533e,0x19d55c0,0xab0492c2,0xcf71003c,0x54c21106,0xa8d1ab,0xefab971,0x33298dc2,0x2530018,0xb1c2079a,0x87710078,0xf9c20bbf,0x1876a0,0xfffffff2,0xcf8677c8,0xd617cc1,0x60a22bc0,0xd33ba1c0,0x4308c4c1,0x6055d6c0,0xd711a9c0,0x6b2268c1,0x605169c0,0xfa9fdec0,0xb05046c1,0x60c70040,0xf045c2c0,0xadda30c1,0x6103ef40,0xe14db0c0,0x978e32c1,0x606d4cc0,0xe67740c0,0xa2163ec1,0x60f33840,0xed783cc0,0xab8abbc1,0x5c3ff2c0,0xdd457bc0,0x8cc357c1,0x60612440,0xf56022c0,0xb05046c1,0x60c704c0,0xd70a9bc0,0x6aa7b5c1,0x60cb8640,0xd20e24c0,0x34c0bec1,0x608b8f40,0xcebb00c0,0xfc9308c1,0x5bd5c73f,0xcc8ae5c0,0x7a4e16c1,0x60b51cbf,0xe9005c0,0x408659c2,0x5b4e9040,0xaaa79c0,0x83d5a2c2,0x60cb9f40,0xffba3dc0,0xadda30c1,0x6103f3c0,0x74c0dc0,0x97c76fc2,0x608b9340,0x4c45fc0,0xa21640c2,0x60f341c0,0x143e2c0,0xab8abdc2,0x5c3fee40,0x84b92c0,0x926f05c2,0x60b4fec0,0xab9b5c0,0x836bc8c2,0x60bc02c0,0xef8f0c0,0x34c09cc2,0x608b9cc0,0x10a282c0,0xfc92c5c2,0x5bd5bfbf,0x11bd26c0,0x75c7efc2,0x60da8c3f,0x103db3c0,0xd48a6c2,0x60959640,0x12ea86c0,0xbc04c9c2,0x49b791be,0x11ebcac0,0x291926c2,0x5c3fd9bf,0x1214bfc0,0xfc371ec2,0x5c38933b,0x11e965c0,0xdc009fc2,0x49b6a6bf,0x123310c0,0x6fa333c2,0x50dd943f,0x1309ecc0,0x9b2978c2,0x4490583f,0x10cf45c0,0x97258c2,0x50dd9040,0x112fd3c0,0x26a1bec2,0x44640a40,0xf33c2c0,0x48bcf9c2,0x49ac2640,0xcd179c0,0x6f40fbc2,0x50d59140,0x977ffc0,0x90729dc2,0x50d81740,0xff7d22c0,0xb19887c1,0x50dd7fc0,0xf524bdc0,0xb3c420c1,0x50e33bc0,0xfd5248c0,0xba680ec1,0x4592b0c0,0x49721c0,0xa67a37c2,0x50dd87c0,0x527b2c0,0xa65af7c2,0x4c989140,0x50183c0,0xadbc12c2,0x449f1bc0,0x7fbc8c0,0xa1bdd3c2,0x44b42440,0xaf40cc0,0x868bdbc2,0x50d5a2c0,0x4352c0,0xb5209bc2,0x48f5c740,0xfadb43c0,0xb3c420c1,0x50e33b40,0xe0e55c0,0x577ff1c2,0x50d80ac0,0xc9822c0,0x8583bac2,0x44c72ec0,0xf2adb9c0,0xba6810c1,0x4592b040,0xfec62c0,0x269fb6c2,0x50cb36c0,0x108c19c0,0x3c5bffc2,0x435996c0,0xca2af7c0,0xbc0486c1,0x49b79e3e,0xcc2d3bc0,0xdc0147c1,0x49b6a63f,0xcbd65fc0,0x16db0ec1,0x5c3d793d,0xcb99dec0,0x6fa3cac1,0x50dd83bf,0xc9a5b8c0,0x7ca783c1,0x449f17bf,0xce6173c0,0x9722ac1,0x50dd87c0,0xcc90fec0,0x101855c1,0x449f1bc0,0xd65d0ac0,0x6f40d5c1,0x50d59dc0,0xdd1006c0,0x9072a6c1,0x50d817c0,0xd69f13c0,0x84c116c1,0x44c72ec0,0xf082dfc0,0xb19889c1,0x50dd7b40,0xe6d1bfc0,0xa67a3ac1,0x50dd8b40,0xe5b09ec0,0xa65af9c1,0x4c9896c0,0xe5fcfdc0,0xadbc15c1,0x449f1b40,0xe00875c0,0xa1bde4c1,0x44b424c0,0xda17e3c0,0x868bcac1,0x50d59d40,0xef795cc0,0xb5209bc1,0x48f5c7c0,0xd3e359c0,0x577ff1c1,0x50d81240,0xd6cfbcc0,0x8583b6c1,0x44c72a40,0xd0273dc0,0x269faec1,0x50cb3240,0xcf9087c0,0x3fbc5ec1,0x44b42040,0x185d11c0,0x4e1a3742,0x630f62c0,0x1a32a9c0,0x14180542,0x66623dc0,0x1a6e9ac0,0x13e32a42,0x626324c0,0x16d432c0,0x6f2c0e42,0x64c650c0,0x14ffb1c0,0x87b0a742,0x665e53c0,0x143365c0,0x90804e42,0x625d81c0,0x11df02c0,0x9d2d4d42,0x666241c0,0xfc674c0,0xa9b35942,0x626320c0,0xd26c3c0,0xb1ede342,0xf406fcc0,0xc2420a0b,0x93c0ba5d,0x8cc06270,0x4942095e,0x53c0bb3e,0x37c0665e,0x70420406,0x3cd34408,0x8704206,0x69fffff2,0x4203f9ca,0x40c035d2,0xc0657ab3,0x42081596,0x40bd9b93,0xc0666235,0x42080438,0x40bf608b,0xc0627093,0x420be7f6,0x40b5658a,0xc0665e53,0x420d3db8,0x40b37186,0xc062696e,0x420faeda,0x40a82d0a,0xc066623d,0x421200b7,0x409e80ce,0xc0626320,0x42141163,0x408f2976,0xc066622c,0x421662e0,0x407eba84,0xc0624c6a,0x4216c368,0x40707cfa,0xc064c650,0x42185403,0x404d5d0b,0xc064c654,0x421a3dbc,0x40126c40,0xc0666239,0x421a65c7,0x401537fc,0xc0626324,0x421bb84c,0x3f7e42f2,0xc066622c,0x421be802,0x3f838490,0xc0627093,0x421c1577,0x3c918e32,0xc063522f,0x421bb373,0xbf82b2c0,0xc0666235,0x421bec12,0xbf808790,0xc0627093,0x41ddf4bf,0x403aedb3,0xc066622c,0x41dd7d95,0x403b1c22,0xc062696e,0x41e435a7,0x40808b22,0xc0666230,0x41e3c2c7,0x40810bdf,0xc062696e,0x41ea03ad,0x40961023,0xc0665e53,0x41ebd8fc,0x409e161a,0xc0626320,0x41f0d4f7,0x40a89d0f,0xc0666230,0x41f558f4,0x40b32941,0xc062696e,0x41f81676,0x40b541af,0xc0665e57,0x41fd24a6,0x40bbb6b3,0xc063522a,0x4201c32e,0x40bfecd3,0xc0636120,0x41ffd4d6,0xc0bd9b93,0xc0666235,0x41fff6b8,0xc0bf6523,0xc0626973,0x41f57d00,0xc0b19544,0xc0666239,0x41f58497,0xc0b3718f,0xc062696e,0x41ee7ea3,0xc0a378dd,0xc0633c4b,0x41e7dd38,0xc08f2967,0xc0666230,0x41e7bd09,0xc090f4e6,0xc0626973,0x41e0b4aa,0xc05deff6,0xc0666230,0x41e07bbd,0xc06136c1,0xc0626973,0x41dca9ff,0xc02837a4,0xc063522f,0x41d9bf85,0xbfd350e3,0xc0666235,0x41d96729,0xbfd85397,0xc062696e,0x41d7f808,0xbea5610b,0xc0666235,0x41d7900b,0xbeb40182,0xc062696e,0x41d81e89,0x3f280fbb,0xc0635233,0x41d9cf8a,0x3fd6ca92,0xc0666235,0x41d95a13,0x3fd57d07,0xc062696e,0x41d9ae19,0x3fcd8ec9,0xc08dcb53,0x41ddb340,0x4036a8bd,0xc08dcb53,0x41fdf066,0xc0bc85c4,0xc08dcb53,0x42059608,0xc0bfdaf7,0xc08dcb53,0x41e57235,0x40866020,0xc08dcb53,0x41f12ae8,0xc0a932fd,0xc08dcb53,0x41f054d1,0x6f059b4,0xe667fa82,0x8a373741,0x5107f8c0,0x506841fc,0x7106e4bb,0x42051bea,0xcc011d3,0x29927100,0x596d41de,0x7100243d,0x41d9f1d1,0x14dc3f9a,0xcff18107,0xc87541d7,0x3cbdad,0x421a4b61,0x240f9fba,0xc897100,0x1c5c4217,0x71000c6c,0x420ba329,0x48b6d4ce,0x1a267100,0xb29e4212,0x7100189b,0x4211b665,0x89de8d5,0x47317107,0x9a0420c,0x710018b5,0x4216a031,0x18749a2c,0x1cbd7100,0xaf8a421a,0x71000c16,0x421ba74f,0x5c885b85,0xfafb7107,0xf8c421b,0x71008417,0x4213bf84,0x3c76a123,0x8cf17100,0x2c804217,0x53000c24,0x420f9a03,0x710810aa,0x420a8f78,0x18a86c7d,0x5c587100,0x7a6c4219,0x62003ca8,0x421a025c,0x87026dd,0x3aa1b62,0x70cc3442,0x60935308,0x70a44219,0x70304408,0x87041fa,0x16bc3853,0x8700a42,0xf0cbf853,0x60a441,0x1392be53,0x870ae42,0xe6f24671,0x6a439641,0x8403006c,0xc00100,0xdfc85571,0x10cd7541,0xea620018,0xdc420ac7,0x530180bc,0x41dc9102,0x710864b0,0x4206a6dd,0x2caeb77e,0x9de6201,0x72b041dc,0xcc720864,0x60420100,0x18af2f,0x41deb561,0x8fa8b97,0xec1e7101,0xab0a41f5,0x710060a0,0x41e50478,0xc5675a7,0xcd077100,0xde4241ec,0xf4000c8a,0x183db325,0xd48c342,0x60957dc0,0x1599b4c0,0x55c06242,0x605326c0,0x2b011c0,0xb0504642,0x60c70440,0x12aa7ec0,0x83d57e42,0x60cba3c0,0x7dd20c0,0xf4086442,0xcc46125,0xa2163c42,0x60f33d40,0xf4c0ec0,0x97c76d42,0x608b97c0,0x115d43c0,0x8cc35942,0x60613d40,0x95920c0,0xab7c5b42,0x5bd5c3c0,0x54ff0c0,0xf4086442,0x7ab576ff,0xa78b4214,0xcb9f406a,0xf8f1c060,0xc0874216,0x8b694034,0xa282c060,0x92e64218,0xd5b73ffc,0xbb47c05b,0x47954219,0x3e6bf77,0xcc9ac061,0xc06a41e4,0x532e4055,0xbda3c060,0x326141ea,0x4b884084,0x4db1c060,0x8e3241f1,0x6d4c4097,0x22e1c060,0xda304200,0x3efc0ad,0x773fc061,0x163c41f6,0xf341c0a2,0x3a86c060,0xe61741f8,0x9e0e40a4,0x4dbfc05c,0x7c5741fd,0xd5c340ab,0x68e0c05b,0x6f0b41ef,0xb4fac092,0x8c91c060,0x6bbc41ea,0xbbedc083,0xa299c060,0x811741e6,0x5001c066,0xe23c061,0xc0b541e2,0x8b8bc034,0xbb00c060,0x92ff41de,0xd5c7bffc,0x85b6c05b,0xc86541dc,0xda9d3f75,0x849dc060,0x48d441df,0x95ab400d,0x2af7c060,0x57141da,0xb79ebebc,0x2d3bc049,0x15841dc,0xb6a6bfdc,0x286cc049,0x185d41dc,0x3feabf29,0xd681c05c,0x47e541db,0x389b3bfc,0x53d9c05c,0x374341db,0xcafb3f23,0xb801c050,0x9b0f41dc,0xdd983fc6,0x4c92c050,0x109d41d9,0x18bd3f82,0xde50c043,0xb20741e0,0xdc514032,0x90fdc050,0x184441dc,0x9f1b4010,0x5d07c044,0x40af41e6,0xd59d406f,0xd0a4c050,0x306a41e0,0xa073404f,0x1001c044,0x729741ed,0xd8124090,0xf605c050,0x239e41e6,0x30f94083,0x416fc047,0x98894200,0xdd7bc0b1,0x6da2c050,0x8944205,0x56dd1af3,0x68104201,0x92b4c0ba,0xd1bec045,0x7a3a41f6,0xdd87c0a6,0xb09cc050,0x5af541f5,0x989140a6,0xfcfcc04c,0x941541f5,0x7619f408,0xe441f008,0x2040a1bd,0xe6c044b4,0xd041ea17,0xa2c0868b,0x5dc050d5,0x9b41ff79,0xc740b520,0x5ec048f5,0x94420292,0x5b0df408,0xfe41e3e3,0x1bc0577f,0xbac050d8,0xb041e6cf,0x2ac08583,0x24c044c7,0x944206a9,0x3c27f208,0xb241e027,0x29c0269f,0x88c050cb,0x5e41df90,0x20c03fbc,0x86c044b4,0xf7421aea,0x953ebc05,0xd1c049b7,0x1a421a14,0x683d16dc,0x65c05c3d,0xc94219e9,0xf308a000,0x1a33119e,0x6fa33342,0x50dd90bf,0x1b4e7ac0,0x80e1f842,0x437996bf,0x18cf45c0,0x9725842,0x50dd8bc0,0x19b783c0,0x10184c42,0x449f17c0,0x14d17fc0,0x6f409a42,0x50d595c0,0x1797a9c0,0x4f30f542,0x44a06fc0,0x117801c0,0x90729342,0x50d812c0,0x1484fdc0,0x8323a942,0x4730f9c0,0x7be90c0,0xb1988942,0x50dd7f40,0xc9720c0,0xa67a4042,0x50dd8740,0xd27b0c0,0xa65aff42,0x4c9891c0,0xd0183c0,0xadbc1242,0x449f1740,0xffbc5c0,0xa1bde842,0x44b424c0,0x12f40dc0,0x868be142,0x50d59540,0x84352c0,0x8a09d42,0xe540df4,0x800a4216,0xd8024057,0x9823c050,0x83b24214,0xc72e4085,0xec62c044,0x8a04217,0x1837bf71,0x3fbc3842,0x28f10168,0x412d436f,0xbbf86a0a,0xc06350f4,0x412ec8d2,0x3f390f73,0xc0636a12,0x414ed606,0xc02e9204,0xc0633b15,0x4143f078,0xc01c8b15,0xc0636a12,0x413343a2,0x24b3af86,0x5804f100,0x8e413a93,0x12bfffe9,0x35c0636a,0x78413a69,0x18fe98,0x33616d71,0xb54c5541,0x4f10018,0x4143ba07,0x401c1d7e,0xc06350f4,0x412ed83f,0x183ca85d,0x4104f100,0xb415a46,0x10403498,0xc2c0633b,0xd4414e99,0x242e44,0x857504f1,0x8bdf415a,0x50f4c034,0xf6c9c063,0x92044165,0xf100242e,0x83c63510,0x991841,0x633b153c,0x830573c0,0x39062541,0x633b15bf,0x70dd91c0,0x1ca66e41,0x4f10024,0x4180c66a,0xbfb3b4b3,0xc06350f4,0x417a3c6a,0x18000df1,0xe228f100,0x21417a69,0x10bffeb0,0xe3c0633b,0xfa4180b6,0xf43fb562,0x40c06350,0xd5417115,0x10c01c25,0x21c0633b,0xbc4182fd,0x153f3ce7,0xe5c0633b,0x72416634,0x182e4f,0xe4dbabf2,0x85344165,0x7657402c,0x4b9ec077,0x8566415a,0xaf9f4032,0xaa49c077,0xbe124170,0x765c401a,0xeb49c077,0xd6914179,0x76573ffc,0x8335c077,0xf5ed4180,0x76533fb2,0xbfd6c077,0xc6c14182,0x76643f39,0x8486c077,0x2f514183,0x765c3b78,0xc3dac077,0xe7194182,0x7664bf37,0x8af5c077,0x1f104180,0x7657bfb2,0x13ac077,0x270f417a,0x765cbffc,0xc528c077,0x80024170,0x765cc01a,0x102ac077,0x5eab4166,0x3f3c02c,0x8130c077,0x8562415a,0xaf9fc032,0xe7f4c077,0x852f414e,0x7657c02c,0x2285c077,0xbe0e4144,0x7660c01a,0xe184c077,0xd691413a,0x3ff20048,0x4133c666,0xbfb2f60e,0xc077764f,0x412f4d21,0xbf39c68f,0xc0777647,0x412dc3c3,0xbb784018,0xc077764f,0x412f4519,0x3f37e73a,0xc0777647,0x4133b6e2,0x3fb21f10,0xc077765c,0x413acb94,0x3ffc270f,0xc0777660,0x414407a7,0xf08006,0xfefffff5,0x414ebca5,0x402c5eaf,0xc07703ef,0x4148e905,0xc0025979,0xc08d51c8,0x4139fa6a,0x3f8cff5c,0xc08d409c,0x414218e0,0x3ff78034,0xc08b0334,0x413c4396,0x3ff055d2,0xc0852999,0x414f7370,0xc0247a5f,0xc0852997,0x415a6668,0xc0298b93,0xc0858eb9,0x414510f8,0x401345a6,0xc0852999,0x41378181,0xbf3cebbc,0xc08d60f4,0x413594fb,0xbfaaab69,0xc0852997,0x413150a1,0xbf313db8,0xc0852999,0x414f587c,0x4025059f,0xc084b66b,0x415a6667,0x40298b97,0xc0858eb9,0x413b7661,0xbfc26c44,0xc08b0334,0x4130b87a,0xbc7d199c,0xc0879cc9,0x413147d0,0x3f2f2f77,0xc0852999,0x41530872,0x4010df5d,0xc08d652e,0x415f7dc2,0x401aafff,0xc08b571f,0x41452e78,0xc01389c6,0xc0852999,0x41554f0e,0xc01aafff,0xc08b571f,0x413c5bad,0xbff1167f,0xc085299b,0x413583f5,0x3fa9bf83,0xc0852999,0x4161b7b8,0xc0110f5a,0xc08d5d29,0x413557ef,0x3ed3e122,0xc08caa02,0x4170b2c5,0xbfe01eb4,0xc08da1e2,0x417b8025,0xbf93b1fb,0xc08c45a6,0x4172b3f0,0xbff78024,0xc08b0334,0x41788938,0xbff055da,0xc0852995,0x4165595f,0x40247a5f,0xc0852997,0x417f37d3,0x3faaab60,0xc0852997,0x4181be16,0x3f313dfb,0xc085299b,0x416fbbd6,0xc01345a6,0xc085299b,0x41657453,0xc025059a,0xc084b66b,0x417af053,0x3f9b7ac4,0xc08c45a6,0x418279e1,0x3b883fd5,0xc08529a0,0x4181c27f,0xbf2f2f55,0xc085299b,0x416f9e55,0x401389ca,0xc085299b,0x418025ff,0x3d0fd3b3,0xc08c45a6,0x41787123,0x3ff11687,0xc0852995,0x417f48d9,0xbfa9bf7b,0xc0852997,0x416a62f6,0x40085215,0xc08caa02,0x413f55fd,0x3f2780aa,0xc08dcb53,0x416c9a8e,0xbfb4c98e,0xc08dcb53,0x415edda2,0xbfe56199,0xc08dcb53,0x413dba33,0xbe8ee71d,0xc08dcb53,0x4170ff98,0x3f91a145,0xc08dcb53,0x4164de71,0x3fd88356,0xc08dcb53,0x417637fb,0x3eee8709,0xc08dcb53,0x41774062,0xbe46e115,0xc08dcb53,0x4155ef2c,0x3fe561a2,0xc08dcb53,0x414fee5d,0xbfd88356,0xc08dcb53,0x4143cd36,0xbf91a145,0xc08dcb53,0x4173576f,0xbf666666,0xc08dcb53,0x4148323d,0x3fb4c986,0xc08dcb53,0x4155ef2c,0xbfe561a2,0xc07b96a7,0x4148323d,0xbfb4c97e,0xc07b96a7,0x413f55fd,0xbf2780aa,0xc07b96a7,0x413dba33,0x3e8ee71d,0xc07b96a7,0x4143cd36,0x3f91a14d,0xc07b96a7,0x414fee5d,0x3fd88356,0xc07b96a7,0x415edda2,0x3fe561a2,0xc07b96a7,0x4168cccd,0x3fc78844,0xc07b96a7,0x4171d517,0x3f88ef67,0xc07b96a7,0x417637fb,0x3eee8709,0xc07b96a7,0x4177129c,0xbe8ee6da,0x9c7b96a7,0x96a7b100,0x8452c07b,0x758e416b,0x710084bb,0x4161da9f,0xcde8ca4,0xb119f400,0x7417a67,0xf03f5d79,0x1cc07b33,0x7413a65,0xf0bf5d79,0x49c07b33,0x824144bd,0x2c3fdac6,0x98c07b2c,0x68415a7b,0xe028f128,0x864150f2,0x7fc00d71,0x49c0746a,0x93415ef0,0xbb4009e5,0xcec07b42,0x3741516e,0x684005dd,0x41c07b24,0x494135cc,0x7bbabb4d,0xcc0746a,0xf41370d,0x285017ed,0x481e6344,0xf3288c41,0x370a050e,0x17387141,0x746a7b3f,0x37c306c0,0x807aaf41,0x7b33f03e,0x3ab0b1c0,0x28502141,0xdc8801f4,0xe5934155,0x42bbc009,0x88d8c07b,0x28b04140,0x40809244,0xf1285c41,0x459d6904,0xdfd95e41,0x7b3aa3bf,0x3ab68ac0,0x92912a41,0x4f1006c,0x413c50ee,0x3f88c519,0xc07b2bae,0x41481443,0x6cfd7ef6,0x51374400,0x2a0c415a,0xeaf13ff2,0x8da04150,0xfdfc400d,0xf83c073,0xc6824170,0x2c2cbfda,0x8ec07b,0x2bbb417f,0x6a7b3abb,0xbfc2c074,0xed42417d,0x6a7f3f17,0xd9edc074,0x718b4163,0x6a7f400d,0x5e01c074,0xdd374163,0x2468c005,0xae69c07b,0xadb8416c,0x10f10060,0x417dc2c9,0xbf173861,0xc0746a7f,0x417d09c8,0xbe807a6c,0xc07b33f0,0x417a1c1d,0x18924018,0x43f77100,0x2ea54174,0x710054cf,0x41744c3c,0xb4ceec85,0x6404f100,0x66416f2f,0xa33fdfd9,0x44c07b3a,0x19417a16,0x249291,0x7bdf04f1,0xc5224178,0x2baebf88,0xb889c07b,0x7eed416c,0x440030fd,0x4163e1dd,0xa9442a18,0xd84163d3,0x4f72442a,0x2afc415a,0xc01410f1,0x3f8a416c,0x32e4000,0x6c60c061,0xc2d24174,0x3213fd1,0x52a9c061,0xbb1b417a,0x53000c94,0x417e0c03,0xf42ac081,0x7f577a0d,0xe8a7241,0x6103213c,0x7e1e74c0,0x16d42c41,0x610321bf,0x7a7648c0,0x532acc41,0x41749ec1,0x442ac0c7,0x416cfdcd,0x5d212ab4,0x100787d,0x70442a9c,0x6841647a,0x6849f428,0xbc415a66,0xd2401b79,0x38c0501b,0xc6418090,0x21bb69a2,0x67c050c9,0x85417fd2,0x253f1f7d,0xafc050c9,0xb0417cb5,0xfbfcf56,0xd8c044b6,0xc74164d6,0x29c01bd6,0xc7c04a40,0x67416db6,0x25c00644,0x6fc050c9,0x4f417c50,0xf3fd376,0x67c044b6,0xc415a66,0xd002f32a,0x5b4154cd,0xacc02a06,0xd9c044e2,0x9a417fca,0x61f428b0,0x4182892e,0xbea94962,0xc044b613,0x416dd011,0x40060a07,0xc050c925,0x416a8de1,0x401f64e5,0xc044b613,0x415a666a,0x402e80d8,0xc042ff69,0x417be8e9,0xbf9b4d40,0xc050c925,0x4175d300,0x3fdabfa1,0xc050c932,0x4175be5c,0xbfdb64bf,0xc050c92e,0x417bf782,0x3f9a82f9,0xc050c925,0x41641311,0xc0106c22,0xc05a6c12,0x4133ac5e,0x1f42a90,0x4134fa69,0xbf1f7d85,0xc050c92a,0x4150525e,0x25f42ac0,0x414ff5f6,0x401bd6cb,0xc04a4029,0x41310390,0xbf29743f,0xc044990f,0x41471607,0x40064467,0xc050c92a,0x41387c63,0xbfd37671,0xc044b613,0x41480cb9,0x33f22bc8,0x4150f925,0xc00ee037,0xc061032a,0x413501f7,0x3f2140ab,0xc050c92e,0x41357554,0xbc0e8a72,0xc061031d,0x4136ae5a,0x3f16d40b,0xc0610332,0x412f012a,0x3d355bcd,0xc0433dea,0x4146fcbe,0x1440a03,0x568719f4,0xcd85413a,0x32a3f92,0x606fc061,0xc2db4140,0x32abfd1,0xe3e6c061,0x4d274138,0xc9323f9b,0x8d2fc050,0x2aa84132,0x3ef9ce71,0xdabfa941,0xb7100cc,0xb641402e,0x3cd02f,0x9fdd19f4,0x35c4144,0x990bc013,0x7a26c044,0xbb23413a,0x32ebf94,0xe73c061,0x64d0413f,0xc92a3fdb,0xd550c050,0x2ac04138,0x47cf0471,0xff620f41,0x1cf10270,0x4136c0cb,0xbf1b2160,0xc0610332,0x4150b9be,0x40106c27,0xc05a6c12,0xc10876a1,0x3bf86a0a,0xc06350f4,0xc109fc04,0x90390f73,0x9384409,0x96cc12a,0x23ab10f1,0x8b1ac11f,0x6a0e401c,0x76d3c063,0xaf7dc10e,0x6a0ebfb3,0xc688c063,0xe996c115,0x7109e4ff,0xc1159c66,0x3cfe9878,0x9f10f100,0x66c10e94,0xe3fb54c,0xfc0636a,0xecc11ef0,0xec01c13,0x70c0636a,0x6dc10a0b,0x303ca8,0x357a8c44,0xe109d8c1,0xc129ccf4,0xc02e44d4,0xc06350f4,0x18b8a7,0x50f44094,0x29fac063,0xa74c141,0xbf9c0ff2,0x9d49c162,0x3b15bc00,0x3e19c063,0x625c161,0x3b103f39,0x10c3c063,0xa66ec14c,0x4f109b4,0xc15cc006,0x3fb3b4bb,0xc06350f4,0xc1556f9d,0xb0000de9,0x1404f10a,0x18c1559d,0x153ffeb0,0xf9c0633b,0xfac15ca0,0xa14b562,0x4c487271,0x1c25d5c1,0xdf40a14,0xc1612d75,0xbf3ce7cd,0xc0633b10,0xc14169b5,0x402e58c9,0xc06327d4,0xc141180c,0xd0440954,0x6cc1357e,0xdd7c6209,0xbe0ec14b,0x1f40990,0xc1551e7e,0xbffcd688,0xc0777653,0xc15c399a,0xe0440960,0x60c160b2,0x3c3e6209,0x2f51c162,0xe7440960,0x60c160ba,0x491f6209,0x1f10c15c,0x4f10a20,0xc155346d,0x3ffc270f,0xc077765c,0xc14bf85a,0x681a8006,0x435c440a,0x960c141,0x35b46244,0x440a74c1,0xc12a1b26,0xb9620a8c,0x12c11f55,0x620030be,0xc11614b8,0x48d699,0xf99901f4,0xf5fdc10e,0x76683fb2,0x8056c077,0xa80c10a,0xf6f610f1,0xdc3c108,0x764f3b78,0x784dc077,0xe708c10a,0x7668bf37,0xea16c077,0x1f10c10e,0x62000cb2,0xc115fec9,0xa382720,0x1f3ad962,0xf08002c1,0xd70df400,0xabc129ef,0xefc02c5e,0x6bc07703,0xf2c116f3,0xf43fa37d,0x3dc08d60,0xe8c11f4d,0xdd20f108,0x3c1147f,0xa6bf93b2,0x11c08c45,0x24c11d4c,0x34bff780,0xcac08b03,0xe3c11776,0x97bff055,0xa2c08529,0x5fc12aa6,0x9740247a,0x2e688529,0x5309b404,0xc120442a,0xf108dca2,0xd67a004,0x306b48c1,0x879ccb3f,0x10c82fc0,0xaaab71c1,0xafb10a38,0x9ac12a8b,0x6bc02505,0x3c84b6,0xf40a3804,0xc3d2eff,0x2f0ec10b,0x29993b88,0x7b02c085,0x2f55c10c,0x2999bf2f,0x3ba5c085,0xdf5dc12e,0x652ec010,0xb0f4c08d,0xafffc13a,0x571fc01a,0x61acc08b,0x89cac120,0x299b4013,0x3c81c085,0xc797c12b,0x40ee400d,0x4ee7c08d,0xb2c0c13b,0xe3564014,0x17a9c08c,0x8041c110,0xaa003e4c,0x8eddc08c,0x1687c117,0x29973ff1,0xb728c085,0xbf7bc110,0x2999bfa9,0xb8a7c085,0x1fb0c111,0x409abf0a,0x1b0c08d,0xdb12c11e,0x3343ffb,0x14fcc08b,0xbf55c155,0x3343fbc,0x9a8ac08b,0x5a75c159,0x51c83f07,0x38ddc08d,0xa56ac14a,0x54863ff4,0xbc6ac08d,0x55c9c153,0x299b3ff0,0x8c91c085,0x7a5fc140,0x2997c024,0x77c6c085,0xc6a4c158,0x66bebf3c,0x6b06c08d,0xab69c15a,0x2997bfaa,0xaf60c085,0x3dc9c15e,0x2999bf31,0xef08c085,0x45a6c14a,0x299b4013,0xa785c085,0x59ac140,0xb66b4025,0x89a0c084,0x6c3cc154,0x334bfc2,0x4787c08b,0x199cc15f,0x9cc9bc7d,0xb831c087,0x2f77c15e,0x29993f2f,0xd188c085,0x89cac14a,0x2999c013,0xa454c085,0xad4c153,0x5a7c0b44,0xf20ad4c1,0x47202403,0x278cdc1,0x8d489fc0,0x18bf9ec0,0xa8e0d2c1,0xea01f409,0x67c11e2a,0x53bf88ef,0xd5c08dcb,0xb4c13a10,0xcdc47109,0xc986c147,0x711218b4,0xc149f6f5,0x24a2ead9,0x11a34400,0x9ccc140,0x5023ce71,0x3bc0c2c1,0x5440018,0x8c119c8,0x6601f40a,0xc15266,0x53000000,0x5ec08dcb,0x50c13122,0x304f10a,0xbbc150aa,0x533f2780,0x90c08dcb,0x56c12b21,0xcd883,0x1f006971,0x91a14dc1,0x3371000c,0x44c12733,0x54c788,0xc1009003,0x7b96a7bf,0x47cdc4c0,0xb4c97ec1,0x4803000c,0xc0100,0x34006c04,0x907b96a7,0xa73f4400,0xb47b96,0x3000c01,0xc0100b4,0x225e3100,0x3400e431,0x6c7b96a7,0x180100,0x1e2aea71,0x88ef70c1,0xcc04000c,0x96a78400,0xed65c07b,0xa14c118,0x1ca89144,0x710a14c1,0xc1247bae,0x84bb7586,0x25614400,0xa14c12e,0x5818d971,0xa2c83fc1,0x504408b8,0x20c11598,0x1704f10a,0x4ec12837,0x9fc00141,0x80c07b22,0xc8c11999,0x930a678,0x2c261444,0x440918c1,0xc13a2379,0x2f309b4,0xc110ff73,0x3abb0a2d,0xc0746a77,0xc112403e,0x53094831,0xc1123d38,0x44092471,0xc112f639,0xb8440924,0x50c1310f,0xd09d440a,0x90cc120,0x4b42b753,0xa8c7ac1,0x33c004f1,0x6ed6c15a,0x6a7bbabb,0xf2f5c074,0xecffc158,0x44090c17,0xc13f0d20,0x32530a98,0x3cc13e91,0x3e710a8c,0x6fc150eb,0xa20ad2f,0x58f5fb53,0xa7493c1,0x5604cf71,0x4d7dafc1,0x28f10af8,0xc146b23e,0xbff0abc5,0xc07b2bae,0x40d3c3c4,0xc0d92b0a,0xc063c93f,0x40cb1c08,0xc0e058ba,0xc062a993,0x40be1909,0xc0e55edf,0xc062b463,0x40da7ff8,0x24d063fe,0x4a0ff200,0x23c0a96e,0x55c0e54e,0x6ac062bf,0x26c0be92,0x43c0d92b,0xa9c063c9,0x1bc0c54e,0xf3002464,0xcacf1e4a,0xc38115c0,0x62a02cc0,0xb5cb5ec0,0xdfe75ac0,0x63c93ac0,0xbe9288c0,0xb92b08c0,0x63c93f40,0xb5ec92c0,0xc05e1ac0,0x629ce040,0xa8e7cdc0,0xc55edfc0,0x62b45f40,0xc54ebac0,0xb063fec0,0x63c93f40,0xbea53cc0,0xc5527240,0x62b41c40,0xd3c3a8c0,0x3c2640,0xda7fe562,0x24641d40,0xfffff100,0xfda407ff,0x80e040df,0xa66140a3,0xfc9ec062,0xe75a40ca,0xc93640bf,0x9d86c063,0x985b40d6,0x6f5dc0c1,0x3a2cc07d,0xbb3d40d7,0x91a340a1,0x4ec4c07c,0xa6c40dc,0xe3dc0c3,0x857fc071,0xed5240d3,0x5fafc0d2,0x17ddc075,0x1ba440c2,0x169c0e0,0x2e84c074,0xd0c040c2,0x2246c0d2,0xbee2c082,0xc24840cc,0x2145c0c9,0x53d8c082,0xa18c40bc,0x91a3c0dc,0x4c6ec07c,0x33d5c0a8,0xa90dc0e0,0x373dc075,0xc57ec0bf,0x5fb3c0d1,0x240bc075,0x7d2fc0b9,0xedccc0ce,0x7373c07f,0x984ec0a9,0x549bc0d6,0x68ac081,0xa077c0b4,0x2c67c0db,0x5bf0c075,0xb453c0b6,0x7cd9c0c7,0x8ecc082,0xbb45c0c2,0x91a3c0c1,0x87a5c07c,0x65a3c0c7,0xf3dcc0c2,0x6c48c06f,0x9861c0c1,0x6f5840a1,0x1d84c07d,0xa67c0c7,0xe4140a3,0xd0adc071,0x5dec0aa,0x3a19c0b9,0x5639c082,0xbf4b40b6,0x3c4940a4,0x57ebc082,0xbd9640bf,0x3c49c0bb,0x9e7ec082,0x694d40b3,0x3a19c0c5,0x2920c082,0xa51ac0b0,0x9fdc40ab,0x6413c082,0x57dcc09e,0x33b340a5,0x1a17c082,0xb8d4c0aa,0x37e7409b,0x2036c082,0xb2b7c0a1,0x37e9c0c4,0xf07cc082,0xfcaf40bf,0x33b34098,0x30f7c082,0x4e640bc,0x6f5d40bc,0x70e7c07d,0x9d65c0a7,0xe06e40c0,0xa30cc074,0xb62440bd,0xe3940c1,0x5441c071,0xed4ec0be,0x5fb340b2,0xf9b3c075,0x3baec0b2,0x2c6240bc,0xbf55c075,0x1ab5c0a9,0x245f40b7,0xf0f4c081,0x85d7c0b8,0xa20540a9,0x85f3c081,0xece140cd,0x5fab40b8,0xb442c075,0x7f3d40da,0x16d40a7,0x575ec074,0x96b540cd,0x27f240a7,0x5ae8c082,0x264240c4,0x214240b2,0xb098c082,0xa5ff40b9,0x71374096,0x3e3ec07e,0x6d0b40b3,0x4307409e,0x4dafc07e,0xfe91c09c,0x6fca409e,0xd46dc07e,0xa59cc0a3,0x43074098,0x65f1c07e,0xe649c0a4,0x6fcac0b6,0xcfec07e,0x6d0dc09e,0x430bc0be,0x7eedc07e,0xfe9140b1,0x6fcac0be,0xbe38c07e,0x512b40af,0x4a34c0b8,0x5adc072,0xa59c40b9,0x430bc0b8,0x7816c07e,0xca9440b3,0x38e7c0b5,0xb733c073,0x806040b2,0x4c2b4095,0x6335c072,0xdf7840b0,0x38e74098,0x8a98c073,0x4f9ec09a,0x47564098,0x46d8c072,0xca97c09e,0x38e74095,0xb88bc073,0x2598c09d,0x4a34c0b5,0x31f7c072,0xdf76c09b,0x38e7c0b8,0xad69c073,0xbbc5c03a,0xfd0dc082,0x2fbac071,0xa56ac050,0xfd0dc06f,0xfff3c071,0x1fffc052,0xfd0dc057,0x1080c071,0xa4c0c018,0xfd0dc080,0xad69c071,0x10edc03a,0xfd0d3ff5,0x7afac071,0xb1afc03d,0xfd0dc03b,0xa601c071,0x82384037,0xfd0dc079,0x99a6c071,0xe00dc006,0xfd0dc068,0xee6cc071,0xdb5e402f,0xfd0dc05b,0x1080c071,0x6d09c018,0xf1003cfd,0x1a573a04,0x3d6613c0,0x71fd0dc0,0x969dbc0,0x505a92c0,0x6671000c,0xd24039c1,0xc4536,0x660604f1,0x1a05c04d,0xfd0d4037,0x51cec071,0x9610c052,0x71000c14,0x405241ab,0x24833bfb,0x22c07100,0xa4bc406b,0x71000c80,0x407e2e99,0xc63b513,0xc1277100,0x3aefc032,0x71003046,0xc01a573a,0xc4299ed,0x2fa57100,0x5b0c4071,0x71002443,0x403f4c66,0x90fecd85,0x15f97100,0xce034055,0x71001838,0xc00699a6,0x30171ff3,0x346e7100,0xaf96402f,0x71000c1e,0x405c5ac0,0x30f38a22,0x69db7100,0xa56ec009,0x7100182f,0x4039c166,0xc3ac92e,0xffa87100,0xe6004076,0x71000c08,0x407ab4b3,0xc30ae36,0x1b767100,0xc832405a,0xf1000c47,0x3ac22704,0x4415e8c0,0x51fd0d40,0x4e1640c0,0x34bc5ec0,0xc871000c,0x59c05344,0xc1bdb,0x4971ce71,0x536d2c0,0x2242000c,0x78c032c1,0x5104f100,0x1a573ac0,0xfacc25c0,0x51fd0d3f,0x747cbc0,0x11403c0,0xe9c05191,0x6ac008b6,0x302df5,0x1c1ea862,0x604e55c0,0x71c98400,0xc932c049,0x60c07a,0x6424a731,0x2271000c,0x77c032c1,0xc831d,0x4b8d3771,0x467dccc0,0x3a71000c,0xf7c01a57,0xc814c,0x45b83971,0x82272640,0x4071000c,0xf8403033,0xc68df,0x747cb71,0x6b69fdc0,0x8871000c,0x5c030f1,0xc3988,0x18108071,0x3eb685c0,0x144000c,0x544037a6,0xb6e97100,0xa96c008,0x62001852,0x40645bc0,0x540af4,0x11012002,0xf3001870,0xb01d0208,0xb5a26240,0x51fab1c0,0x9aec27c0,0x95a2cbc0,0x51fad740,0x48110150,0x2d710024,0xfb4035cd,0xe408e5,0x5a1b7a71,0xf06f9c40,0xdd330108,0x1bc57b6,0x1ac05171,0x2e403218,0x60020174,0x51ca3100,0x3300300f,0x8052b157,0x540201,0xf4025802,0xd2ffffff,0xb187c051,0x38a640b2,0xa93f40a2,0xd16cc059,0x90acc09c,0xcd2940a8,0x5877c064,0x17a940bc,0xa32b409a,0xad73c059,0x338f40b4,0xd6bb40a8,0xbb7c064,0x576740b5,0xa3d7409a,0x2a2ac053,0x6f0540c3,0xcde24097,0xe903c064,0x91be40b4,0xa83fc0ba,0xd13dc053,0x18f640bc,0xa937c0b8,0xb9c7c059,0xbc8840b4,0xadcdc0c1,0xcc2dc059,0x14d740c2,0xd6bfc0ba,0x302c064,0x959c40b2,0xd420c0c8,0x260fc064,0x951640bb,0xe1cec0c4,0x2db6c064,0x8d6f40bf,0xe1ce40a0,0xf4d3c064,0x9514c0a5,0xe1ce40a4,0x9829c064,0x13ffc0ad,0xd2a6409a,0xfcfcc064,0x6a6ac0ad,0xd420c0b7,0xfc72c064,0x8d76c0a9,0xe1cec0c0,0x7b61c064,0x30c6c09f,0xd2aac0c8,0x4622c064,0x1aefc0b7,0x7b85c0c0,0xd8e6c064,0xa52040be,0xf2edc0cf,0xe2b0c064,0x9ab340ca,0x6e76c0c6,0xacaec064,0x9cfec0b5,0x73cd40a6,0xaa49c064,0x9f0ac0a9,0xf63c40af,0x6cf8c064,0x7211c0ac,0x1954c0ce,0x6fa8c065,0x1b5840cc,0x857b40a0,0x42cac064,0xf853c0a5,0x9fcb40b3,0xcdc4c061,0xe80440ba,0x9f7b40b3,0x9e9bc061,0x72fa40c1,0x189340ae,0x9cf3c065,0xa28a40cb,0x9a1340a7,0x940ec061,0x6fc840c5,0x892f40af,0x89c4c060,0x509440d0,0xba2c40a0,0x80a1c059,0x352440ce,0x9f80c0c0,0x38c5c061,0x604e40c5,0x6384c0cf,0x740ac061,0xf85340ba,0x9fcfc0d3,0x9c84c061,0xe804c0a5,0x9f80c0d3,0xf3e7c061,0x2b02c0b8,0x8f47c0c3,0x62d0c061,0x6fcac0b0,0x892fc0cf,0x4f64c060,0x3522c0b9,0x9f7b40a0,0x787c061,0x6050c0b0,0x638040af,0xb72ec061,0x3efdc0b7,0x6eca40b9,0x7f22c044,0x6706c0b8,0xd28040ad,0xf502c04f,0xc172c0c4,0x830240a6,0xa89c044,0xec6ac0be,0xa1e440a0,0x2186c04f,0xe7a1c0aa,0xf7c640b7,0x331ec04f,0x1eb440bc,0x8dd40bc,0x146cc049,0xbe1040d0,0xb87340b6,0x2516c044,0x616540bf,0x87f040b7,0x8fefc051,0x914d40cd,0xd28540ad,0x9fa9c04f,0xafd740d6,0x22ee40a1,0xafc4c049,0x60f440d4,0xbf40c0c1,0xf957c04b,0xd91b40d1,0x71d2c0d4,0xb059c044,0x670e40cd,0xd280c0cd,0x7a22c04f,0x775740bf,0xf39c0d7,0x486fc051,0x70c40bc,0x22eec0dc,0xc852c049,0x1724c0a6,0xbf44c0da,0xa65dc04b,0x4fcec0be,0x6ecac0d2,0xce68c044,0x17c2c0b2,0xd285c0d3,0x4f01c04f,0xba26c0bd,0xf7cbc0c4,0xbd4fc04f,0x5730c0c5,0x584fc0c2,0xf914c044,0x506ac09f,0xa844c0ba,0x8049c053,0x38a4c09d,0xa93fc0c2,0x23eac059,0x2127c0a7,0xadd1c0ba,0xb7bbc059,0x91c3c09f,0xa83f409a,0xa006c053,0x18e7c0a7,0xa93f4098,0x8885c059,0xbc88c09f,0xadc940a1,0xe354c059,0x64d41d0,0x3040c0e6,0x4cacc045,0xe20941d0,0x3040c087,0xa118c045,0x991841d7,0x3040c087,0xb355c045,0xeac441d7,0x3040c0e4,0x5ee8c045,0x991841d0,0x30404087,0x4cacc045,0xeac441d0,0x304040e4,0xa118c045,0x33b541d7,0x304040e5,0xb355c045,0xe20941d7,0x30404087,0x7e6bc045,0xb83ebfa6,0x64efc100,0x91dac0e7,0xc3f6bf8e,0x7f43c102,0x90e6c100,0xe913bfd0,0x64efc101,0xa3f0c0e7,0x7df2c086,0x64efc0fe,0x2c0e7,0x4088,0x31bcc104,0xe43bc0f4,0x99a04087,0x64efc0f5,0x32d0c0e7,0xd478c17d,0x64efc101,0x7638c0e7,0xaf4ac1a3,0x64efc103,0xcc7c0e7,0xe8abc1e2,0x64efc0f4,0xc0e7,0x3cc1e2,0xda9d5a71,0xb4053bf,0x18620030,0x98c19e65,0x62000c30,0xc09479db,0x3cc30b,0xf6303f2,0x7df2c1a0,0x64efc0fe,0x5947c0e7,0x12bcc17e,0x3d440024,0xcc0801a,0xfa807100,0x42a0411b,0x440024f5,0x411c0002,0x3f20060,0x411b5a14,0xc0f2e575,0xc1007f43,0x41abe433,0x485a0e,0xf2000035,0xc8440024,0x9c41f20c,0x498a7100,0x3a9241cf,0x62009000,0x41cc92a9,0x6c0abc,0xa8736862,0x90b96041,0x930b4400,0x7841ad,0xefea044,0x71007842,0x420fea9e,0x3c05237a,0x7100,0x420f,0x44014404,0x420ed685,0x4f10084,0x4223abaa,0x41022d47,0xc0e764ed,0x421de671,0xc0aea53,0x7186200,0x4f904228,0x9a710060,0xcd422699,0xccfccc,0x1bf5a344,0x62010842,0x42196278,0x902376,0x1c8e6f71,0x3a9242,0x8403003c,0xed40b400,0xf6c0e764,0x6421a2f,0x100e484,0x41b20084,0xc0f431ba,0x42251dd6,0x30964c,0x26fee871,0x9c96942,0x24710060,0x9e422826,0xc267c,0x13cd7453,0x1809742,0x12f21a53,0x12c0a42,0xfc111cf1,0x1ba44229,0x64efbff9,0xff59c0e7,0x84ba4229,0x64ef3ff9,0x2453c0e7,0x61dd4227,0x64ef400a,0x9b8c0e7,0x5a114228,0x71009003,0x422365c0,0xc0b3097,0xcc87100,0xe8ad41f2,0xc3009cf4,0x41f24cad,0x40f3153e,0xc1007f43,0x9c010180,0x2cc6200,0xcbc441ae,0x7962003c,0x764189a1,0x71003c23,0x41aa8234,0x3cfe5a0e,0x4bd16200,0xedf24186,0x26200c0,0x45411c00,0x53000c44,0x41a8cb7e,0x71006c99,0x41890910,0x7801e914,0x4011200,0x4341c102,0x92c1007f,0x7b411b4f,0x48f2fa,0x87e43b71,0xf599a240,0xc403000c,0xba41a302,0xc1c0f431,0xa2c1e202,0x10710144,0xf4c0895c,0x24fe7d,0x770c4162,0x9cc30bc0,0x2b80300,0x44003001,0xc1a33482,0x38530078,0x98c09005,0x6e620084,0xbcc0f34d,0x7100c012,0xc1a18091,0x48ff88ff,0x15ad6200,0x4e84c1c2,0x886201ec,0x65c1c530,0x4400c053,0xc1040594,0xcc4400fc,0xf0c0fa08,0xf99c5300,0x38abc206,0x24fd6201,0x38f9c208,0x7d7100cc,0x4bc207bf,0xe404e6,0xb631f44,0x62006cc2,0xc220f99c,0x2585878,0xa8bb344,0x620048c2,0xc2123a3a,0x6c10d9,0x10e2ed62,0x9c0abdc2,0x6e457100,0xe458c221,0x7101bc16,0xc220d9aa,0x60034231,0x66667100,0xcccfc249,0x7100b4fc,0xc24a728b,0x24109789,0xd08b7100,0x9aa6c24a,0x6201bc0d,0xc24ab73c,0x2ac2cdf,0x40666662,0x304445c2,0x2b80403,0xcfdfce84,0x496666c0,0x71000cc2,0xc2070000,0x18013334,0x66663103,0xb100182a,0xc0e764ef,0xc206d3e4,0x7cf2fa74,0x4cac7102,0x153cc1e2,0x7103a8f3,0xc1a1b430,0x3c00edf2,0xf6f17103,0xe915c19e,0x71000c01,0xc19e5e88,0xc0b2376,0x86de6200,0x4053c17e,0xa262000c,0x39c17771,0x6200241e,0xc17d3891,0xcc1d9,0x8cc6cc62,0x48b83ec0,0x422b5300,0x4814c082,0x7e205300,0x3c52c07f,0x309c6200,0x12bdbfd9,0xb7620048,0x1cbfcb62,0x710030b2,0xc21171b7,0x1400b21b,0x23c6201,0xeb6dc20b,0x1f4000c,0x41643d8b,0xbf27399f,0xc1007f43,0x41aa4bd1,0x300a8,0x9c0103,0x6d9aa53,0x2e83ac2,0x4c3503f2,0x8b614168,0x7f433efd,0xdb2dc100,0x703e421a,0x7b710060,0x77c0901f,0x600b23,0x1965c062,0x84309742,0x53fa7100,0x475414f,0x3100601c,0xe0110348,0x7f43a201,0x83c5c100,0xc24cc0f6,0xd5710084,0x15c08dbd,0x3c01e9,0x19abaa71,0x22d4742,0x80620078,0x3e41abfe,0x710024b8,0xc12a66a6,0x78cee760,0x583e7100,0xc3f5c213,0x62003002,0xc102a8b9,0xc85a1,0x13d0bd31,0x43b10450,0xa3c1007f,0x6e421368,0x4800eb,0x40401144,0x62018cc2,0xc0f2f241,0x844053,0x4ad9aa71,0x34231c2,0xfc030024,0x1b00103,0x408f02f3,0xb3eac13a,0x7f433f33,0xc4edc100,0xd87841a8,0x8ad46200,0x79264211,0x5971009c,0xb24229ff,0xd8f984,0x9dfd3531,0x6f302f4,0xc1007f43,0xc1419e13,0x3d8f5a10,0xc1007f43,0x4188b62c,0x5301741c,0x41a95d59,0x6200e412,0x41899ae9,0x843097,0x29fc1171,0xf91bac42,0x44006c,0x64c20700,0xd6845305,0xe873c206,0x6e0e7105,0xf734227,0x4402ac03,0xc1a33b13,0xb440090,0xfc418512,0x9c417100,0xf1c7414d,0x4400480f,0x408932af,0x515300f0,0xbbc21696,0x7d710210,0x704227d1,0x4820ec,0x163a7b62,0x582edcc2,0x93a07102,0x5da2c1a1,0x440018fe,0x41f24cad,0x1544003c,0x58c21c2b,0xd35c5302,0x48be41cc,0x975d5300,0x5c6dc21c,0x7f707101,0x88fd41ce,0x710138ff,0x422790b6,0x980512f7,0x752d4401,0x12cc21e,0xc41bce62,0x605a0ec1,0x5a147100,0xe577411b,0x53006cf2,0x408932af,0x5302583e,0xc1c26518,0x53011498,0x42236278,0x35017476,0x5cc79c63,0x8fe23501,0x3101142a,0x2c2a6666,0x31bcb101,0xf37cc0f4,0x88ff421c,0x620054ff,0x42242ff6,0x6c8408,0xe252f744,0x31006cc1,0xc41dcd74,0x7f43b105,0xe4eec100,0xa1e0c12d,0x7101bc14,0xc13b5716,0xc2efd65,0xa9d64400,0x38441ad,0xad091044,0x3103a841,0x6c406666,0x6fc0400,0x44005404,0xc0833934,0xb57102a0,0x4ac22167,0x84167b,0xb6e8444,0x620264c2,0xc24036f3,0x414cc4b,0x2a928353,0x42076c2,0x16454762,0x446a49c2,0x6a00f104,0x59c21c12,0xefc10ac9,0xb7c0e764,0x17416a1,0x61045001,0x45c21d7a,0x180024,0x7e2e1cf1,0x48244151,0x64ef3f41,0xf6a6c0e7,0x9a804149,0x64efbec2,0x58fac0e7,0xaea3414a,0x64ef3df5,0x2e1bc0e7,0x4f0e416a,0x7100189f,0x4152cec1,0xe442706d,0xd10f106,0xd9414d65,0xcebf3d96,0x2c0cfdf,0x8e414bf7,0xce3f2c91,0x5dc0cfdf,0x40c1284a,0x18074b,0x641ce271,0x4f82c341,0x4f1000c,0x416bf265,0xbdf1c4b9,0xc0cfdfce,0xc13bae6e,0x1853c8c1,0x9a10f100,0xcf422699,0xcc40fccc,0x12c0cfdf,0xb4c12cab,0xce3f3a3d,0x41c0cfdf,0xd041659d,0xc49d2,0x447ec384,0x19a522c1,0x405343d,0x3d710030,0xfbc13b23,0x2455e7,0x283b5371,0x831dd6c1,0x437100a8,0xecc1323e,0xa853a3,0x3e43ac71,0x2105c0c1,0x10f1000c,0xc26cfc62,0x40a1f7f7,0xc0e051ec,0xc26d0000,0x40d80000,0xc0ae3e01,0xc26cf92c,0x1808c1ec,0xdc35c200,0xbc8c26c,0x337e4004,0x24c129,0x33f0053,0x30ae3e,0x373f00e4,0x36c0c171,0x7ac26cf9,0x48c007a6,0xcccd7100,0x7137bf8c,0xf10024c1,0x8ccccd00,0xae3e03bf,0x6ce709c0,0xab704ac2,0x50860024,0x96c26cf0,0x54c00796,0xc0882400,0x440030,0x60c08800,0x3103f500,0x39c0bb33,0x11c0c171,0x28c26ce8,0x1ac0eb99,0x500a852,0x33310024,0xcbb33,0x68325971,0x88a2a9c2,0x10f10078,0xc267f884,0x3eeb645a,0xc0c17137,0xc2662744,0xbd7ec786,0xc0c17137,0xc2666586,0x242f403e,0x32597100,0x28aac268,0x710060ba,0xc2662744,0x8499fd91,0xf8847100,0x49bac267,0x71000c89,0xc2666586,0xcade80a,0x5ac27100,0x1a9cc268,0x7100cc8a,0xc267ca96,0x7889e26d,0x33333500,0xf2013858,0x5c999903,0x980000c2,0xae3e0340,0x555f6ec0,0xc8fb2c2,0x19727100,0x397c25a,0x20138bf,0xc0110024,0xe071000c,0x14c266c4,0x544e3f,0x685ac271,0xba86a7c2,0x88710054,0x3cc25d59,0xc9e17,0x5d3cc171,0x56aae3c2,0x5f40030,0xc266181b,0xbed91cd2,0xc0ae3e03,0xc26645dd,0xbc16744b,0x4d470090,0x903ee1d9,0x3c0100,0x66c4e071,0xb1c7e3c2,0xbf71000c,0x21c25c96,0xcab93,0x66181b71,0xa591cdc2,0xcc71000c,0xd9c25bd8,0x60a60a,0x5aacd271,0xb70571c2,0xdd710018,0x3cc26645,0xc984b,0x57f18d86,0xaa3d27c2,0x11006040,0x40018b8,0x6d4200fc,0x1cc032e2,0xc0202,0x265504f1,0xe8bcc258,0x999a40b1,0x2655c0c1,0xf889c258,0xb3000cf4,0xc25813e1,0x404466be,0x3c84a46a,0xc002f500,0xc1999a3f,0x582066c0,0x3d5ccdc2,0xc1999c40,0x24060018,0xb800f500,0xc1999cc0,0x5833f7c0,0xe85d42c2,0x3c6cc0,0xcd811,0x582655b1,0x13497c2,0x32e26dc1,0xf1003c,0xc0e81f84,0xc032e26d,0xc25756b1,0x54a3c5f8,0x70ea7100,0x2496c255,0xf1000c99,0x57638704,0x13a4bc2,0xc1999a41,0x558ddec0,0x6ca0fc2,0x3331000c,0x1bc4c33,0x849a11,0xa4c24c51,0x180770,0x53666635,0x877100a8,0x9ec25763,0x485726,0x556d6c71,0x6e6e6ec2,0x3371000c,0x33c24c33,0xe45333,0x11004802,0xf1000c70,0x56a59b04,0xaea4ec2,0xc1999cc1,0x5508ffc0,0xdddc2c2,0x1a71000c,0xd9c2581a,0xc0311,0x4c333375,0xe28f6c2,0x9a31000c,0xf0f199,0x2007802,0x4f100fc,0xc254e63f,0x41075117,0xc032e26d,0xc256ba73,0xc03fe9f,0x183e8400,0x2275c258,0xfc40f8,0x770a471,0x6159c41,0xa4510108,0x69410770,0xcc020114,0x159cb100,0xb7acc006,0x1482c266,0x71003c0b,0xc2694c30,0x3cffe67b,0x14507100,0xc5bc260,0x71000cfe,0xc262a44c,0x241522e6,0xc3c67100,0xf923c261,0x71000c23,0xc264a011,0xc240505,0xee3b7100,0xc683c264,0x71000c13,0xc26a9e3a,0x3cf42a80,0x52be7100,0x341ec263,0x62000cf0,0xc2616666,0x18a891,0x66954271,0x190cdc2,0xbc710030,0x3fc26083,0xc10d8,0x5e59bb72,0x1da501c2,0x7961000c,0x75c265,0x71003cf7,0xc26cc01a,0xcf30dfa,0x97f57100,0x5a92c25f,0x71002408,0xc269325b,0xd81841ea,0x61b87100,0x6d60c267,0x7100181f,0xc2583333,0x181ccccd,0xc0300,0x31021005,0xc0e28f6,0x704f100,0x6fc25e4b,0x71c11d5f,0x1ec032e2,0xc25baa,0x228e12d,0x5f97f571,0x53f09c2,0x7c710018,0xbbc26796,0xc1ed8,0x6579bb71,0x121960c2,0x8271000c,0x46c25546,0xc0de2,0x6ac99a71,0xf3fb18c2,0xdc62003c,0x7bc26cbf,0x3000c20,0x18010300,0xf7377100,0x87d5c259,0x71000ce7,0xc2646724,0x3c24560c,0x52be7100,0x7f8bc263,0x71000c15,0xc26556f1,0x24f62aeb,0x521d7100,0x8b70c269,0x71000cfe,0xc266b7ac,0xb4028518,0x13aa2100,0x18010150,0x95427100,0x8ccc266,0x71003c0c,0xc26147c9,0xc2379c6,0x32397100,0x3d00c269,0x71000c18,0xc2616666,0x3c134551,0x99993500,0x7100905c,0xc26083bc,0x48f982b6,0x14507100,0x936cc260,0x7100300e,0xc25756b1,0xc0845fa,0xc21b3100,0xc101f863,0xc0e051ec,0xc26579b9,0x41121963,0xc86105d0,0x20cec266,0x72000c0a,0xc2665217,0x18fe0c52,0x64826106,0xf28931c2,0x4471000c,0xdcc26221,0xcf175,0x5ff4c771,0xffc15bc2,0xae71000c,0x69c25f9d,0x3c0908,0x60600d71,0xfe6dec2,0x3171000c,0xc261e4,0xc1455,0x44e504f1,0x2ac7c267,0x51ec3f59,0x3944c0e0,0xd3aac266,0x71000c15,0xc269a8e7,0xc8c9dc7,0xb710f100,0xa8c266d8,0xecbf4aa8,0xb1c0e051,0xc2c2661b,0xecbee5a3,0x22c0e051,0xdac26aa8,0x18a28f,0x6b76cd71,0xbf527ec2,0xb6a20030,0xb9c267d3,0x3c11e58,0x5300a852,0xc1145502,0x3100c0ee,0xc0e936f,0x9dae7100,0x9131c25f,0x71000c04,0xc25e34fb,0xc1d4796,0x21436200,0xdeacc262,0xd930030,0x75c26060,0xeec0fb65,0x333100b4,0xcf289,0x61c03971,0xd9ba95c2,0x3371000c,0xcdc24c33,0x3c1ccc,0x56b20c71,0x15eee5c2,0x4171000c,0x5dc26aa2,0x24c907,0x4d9f2071,0x16307bc2,0x8d710018,0xe3c24c48,0xc11c6,0x63c21a71,0xf0ed65c2,0xc6710024,0xecc25ff4,0x180db8,0x673d9971,0xd728a8c2,0x16710018,0x5fc26241,0x18246e,0x66c80071,0x378cdc2,0xba71000c,0x6dc26579,0x24f700,0x20e204f1,0xb935c26b,0x51ecc10c,0x2462c0e0,0x6ce6c265,0x71002423,0xc259d85f,0xc0fcc6c,0x3e1e7100,0x4815c25e,0x710030ea,0xc25e3778,0x801cd8ba,0x419c7101,0x600c260,0x71000c22,0xc24c3c09,0xc108d04,0x45056200,0xcfa6c24d,0xe4030210,0x180100,0x61ffcb71,0xd93e25c2,0x4f101e0,0xc26b20e2,0x410cb931,0xc0e051e9,0xc262c16d,0x24248f7b,0xec536200,0xdd87c256,0x8171003c,0x25c26732,0x30d711,0x65500371,0x233b4ac2,0x4f10024,0xc26ce035,0x40eccdba,0xc0e0520d,0xc25e70a9,0x24e8d9e8,0xf103f200,0x36c267ec,0xfc411df5,0x8ac0e051,0xd9c259a5,0x71009027,0xc26a6c9d,0x24ca7fbb,0x6d197100,0x7b07c26c,0xc3000cb4,0xc26b76cd,0xbfbf5276,0xc129337e,0xc010234,0xb104f100,0x6cc26cc9,0x7ec0ae5c,0xedc12933,0x5c266cf,0xcad3f,0x6a6c9d71,0xca7fb9c2,0x7671000c,0xacc2661c,0x301b70,0x61ffcb71,0xd93e23c2,0x99310018,0x180613d,0x29337eb1,0x66c6bac1,0x489093c2,0xdc020024,0xc0d8d105,0xc129337d,0xc266f6b8,0x1899eba7,0xf00300,0x337ec153,0xb4c129,0x3000c01,0xc010144,0x40ae7100,0xb6b2c24c,0x31000c10,0x1c64a241,0x337ea202,0x3281c129,0x1123c267,0xa971006c,0xe6c25e70,0x84e8d9,0xcf1,0x99a2c267,0x337d3f99,0xa822c129,0x8fe2c26a,0x337e3fa2,0x6c9dc129,0xf3010864,0x29337e0d,0x673d99c1,0xd728aac2,0x29337e40,0x4c58e3c1,0x121f21c2,0x29337e41,0x10270c1,0xb171000c,0x6ec266c9,0x24ae5c,0xc100c003,0x29337d40,0x6aa241c1,0xc9075fc2,0x28030018,0x300102,0x102c403,0xf671000c,0x1ec26cd8,0x24ac8a,0x5e3e1e71,0xea4817c2,0x8131000c,0x1d46132,0x29337eb1,0x66d8b8c1,0x4aa8cac2,0xd171009c,0xc8c26630,0xc55ef,0x61c03971,0xd9ba97c2,0xe7820030,0xf3c26618,0xf03ee11c,0xf0611100,0x999b3400,0x81009031,0x31999ac0,0x613d99c1,0x9b7100cc,0xf6c13199,0x7866d8,0x31999b71,0x64a241c1,0x9bc700a8,0xb0c13199,0x32c266ee,0x3c3f983c,0x9a40c100,0xec13199,0x6bc2661c,0x18389d,0x295814f1,0x1fc5c266,0x999bbf51,0xd36fc131,0xa81ec266,0x999bc0ad,0xc131,0x999ac267,0x999abf99,0x31014431,0x18ca7fb9,0x7740400,0x1ccccd31,0x4f10090,0xc11ccccd,0xbfff5e74,0xc24c3333,0xc112f5c3,0xce5c4db,0x999a5300,0xce3c119,0x28f65100,0x68a0c10e,0x7f80207,0x82003c04,0x40700000,0xc09e3e03,0x981500d8,0xcd44000c,0x54411ccc,0x3d714700,0x54410c,0x1000c03,0x780306c0,0x6c581700,0x6c00200,0x17006c02,0xd5009058,0x999bc258,0x5e74411b,0x3333bfef,0xf2005458,0x693a2e1b,0x182ac8c2,0xb4ccd541,0x6bb9d8c0,0x734bfc2,0xb4ccbc41,0x6cacd3c0,0xf33333c2,0xb4cccd40,0x6ac99ac0,0xcfb1ac2,0x521d7100,0x8b74c269,0x30018fe,0xc1620030,0xc0b4ccbe,0x2307d439,0x3ccfc0,0xf3333131,0x3071000c,0x73c2694c,0xcffe6,0x6936cab5,0x183d23c2,0xb4ccd7c1,0x6c33066c,0xc84a4,0x209c002,0x98110018,0xcf7109f0,0x55c25693,0xc6412,0x54fb4a71,0x6ee67dc2,0x6631000c,0x9784f66,0x11000c06,0x91001870,0xc25b0ec7,0xc0e4ee2f,0x200186c,0x8f10984,0xc11ccccd,0xc25d5989,0x3f30b9bb,0xc11cccce,0xc25c89e8,0xc90e7ab,0x8e8c7100,0xa149c25a,0xf1000cbc,0x5d41d404,0xa1edc6c2,0x1ccccec0,0x5beda5c1,0xb11bf8c2,0x4d71000c,0xfc25a29,0xcb799,0xf2005402,0xcdc0b895,0x7dc11ccc,0xe4c2655c,0x5c40c631,0x63c03a20,0x92c26566,0x2a40cea2,0x95c04eff,0xe5c26563,0xa740c3ee,0x83c05791,0x33c26592,0xfe40cf33,0xe2c08580,0xc2658f,0xff40c400,0xfec08595,0x8ec262ff,0x9840cdf3,0x10c04d4e,0x7bc262e2,0x4340cf3e,0x1cc06ac5,0x7c26300,0x8340c2a7,0x81c034c0,0x33c25d39,0x1d40cf33,0x6cc03422,0x33c26052,0x4e40cf33,0x5c03347,0x96c27100,0xdb40cdeb,0x67c04935,0xe3c26b66,0x4e40ce42,0xebc04d9b,0x33c26b3c,0xfd40cf33,0xf0c08595,0xf30030bf,0x6acc7dae,0x71052ac0,0xcf3774c2,0x964a0640,0x70fffbc0,0xc0afc2c2,0x34286340,0x6bedc2c0,0xc16373c2,0x34e6ac40,0x6c2a1bc0,0xb8d350c2,0x32c5f840,0x6b2fd8c0,0xb39416c2,0x331e3f40,0x6be32bc0,0xb50857c2,0x493faf40,0x6c2294c0,0xc022a7c2,0x4bcb4b40,0x6b6883c0,0xc40323c2,0x57c24440,0x630000c0,0x7f0a3dc2,0x4948d440,0x66cccbc0,0x7e43e9c2,0x4948d440,0x658283c0,0xb33ba5c2,0x4948dc40,0x6e2759c0,0x5ec062c2,0x4948d440,0x670a05c0,0x82355fc2,0x4948d440,0x667241c0,0x8faa11c2,0x4948d440,0x6d5281c0,0x7cad2ac2,0x4948d440,0x6b13e5c0,0xc25c2,0x6aaaf672,0x580bb7c2,0x82610030,0x7929c266,0x62000c92,0xc269c15b,0xcf293,0x8e2703f2,0x3a7c266,0xe22640b9,0x7090c047,0x6e05c26a,0x6862006c,0x2cc2696b,0xf2009cd3,0x71000003,0xf58a22c2,0x4c76683f,0x695e85c0,0x8432e1c2,0xcbb96200,0x2431c26a,0x5871006c,0x29c26e17,0x605922,0x69f5a962,0x9cd20bc2,0x120f100,0x70c26300,0x8840c378,0x71c05447,0x52c26488,0x4440bd62,0xffc04985,0xe6c262ff,0xdb40bc79,0xf4c0498b,0x57c26304,0xb640c0cd,0x189e1d,0xc1c8e775,0x5419c640,0x89310120,0xc349b,0xe2fab571,0x87b1c03f,0x8f62000c,0xe3fee17,0xf10024a1,0x3cbfb10,0x498bf440,0x710001c0,0xc702dec2,0x8c0f5e3f,0x710000c0,0xb84253c2,0x81a2c03f,0x4f1000c,0x3fea65f1,0xc0828336,0xc270ffff,0x3fc47408,0x184accc9,0x1aca7100,0xe58e3ff9,0xf1000c33,0x93648c04,0x8ae3d63f,0x712279c0,0x176a2fc2,0x71037d3f,0xb62006c,0xf03e1809,0x710084bf,0x3ef2cc92,0x18475d4f,0x9e4d7100,0xf2e3faa,0x71000c81,0x3fbd10a1,0xc8038b9,0x7d187100,0x73793fc5,0xf1000c48,0xf405d50c,0x33dfbd3f,0x66f89ac0,0x7f8848c2,0x32e26d40,0x6e28dcc0,0x5e7069c2,0x4f1000c,0xc265881f,0x40b3dbbc,0xc032e6b8,0xc266cc00,0x18935324,0x7e23100,0xb1016867,0xc032e26d,0xc26d5b46,0x18795e31,0x6f646200,0xb079c26a,0x6562003c,0x83c26b0b,0x71001868,0xc26abba6,0x24579a67,0x6f347100,0xf1e3c266,0x71000c8f,0xc26da72b,0xc8009d9,0xe4263100,0x2020469,0x71510e40,0x7d70a4c2,0x620018,0xecc27100,0x71002451,0xc269999c,0x187e43e5,0x593d7100,0xf519c269,0x62000c83,0xc26a8d2e,0xc0b6bf,0x6df48e71,0x582f55c2,0x26620018,0x11c269f4,0xf2006caa,0x64af3d84,0xb7d2bfc2,0x32cada40,0x667a60c0,0xb733cec2,0x2fe45c40,0x66999ac0,0xc33034c2,0x272e3040,0x6a3333c0,0xc2e59bc2,0x2845d440,0x6a4905c0,0xb80a65c2,0x2f811340,0x6a50ccc0,0xb74057c2,0x48f03040,0x66999ac0,0xc46ed4c2,0x41637840,0x6a3333c0,0xc86115c2,0x3cd00b40,0x66999ac0,0xce5dbac2,0x2b9fb240,0x6a350dc0,0xcf8c74c2,0x118f3b40,0x66d7d4c0,0xc40000c2,0x6c5f440,0x66dbc4c0,0xcf3333c2,0x704fb40,0x69f109c0,0x4610438,0x61edc007,0xf1045069,0x378c000,0x64df4bc0,0xc17553c2,0x34f79840,0xd5620270,0xd440b469,0xb101d40d,0x40b451ec,0xc0375d4f,0x7462d9aa,0x7904f104,0xc06acc,0x76c25d00,0x2c40c3d0,0x2ec09a01,0x185d47,0x33474971,0x606019c0,0x2162000c,0xec03422,0xf1000cc9,0x6b5e5b10,0x7134dec0,0xc383f1c2,0x830ace40,0x711f0ac0,0xc3ac17c2,0x964a5840,0x6b3a4bc0,0x2cf10030,0xc08580fa,0xc2734309,0x40cfcfbc,0xc0843d84,0xc273477c,0x40cfef93,0xc094f226,0xc2725ae5,0x40d85971,0xc0848672,0xc2725698,0x40d83aa6,0xc094dd23,0xc2710843,0x54cf2ac5,0x18bf200,0x49c27100,0x2040c265,0xf3c04db2,0x8fc2711c,0x1940ad7c,0x29c049ad,0x6cc27115,0x1440ada6,0xc0325b,0xcac2728d,0x154081b2,0xc0248f,0x16c27292,0xe540aba3,0x7ac02460,0xc7c27342,0x3740819d,0x36c037e0,0xf2c2715f,0x1408051,0x4ec048da,0x7c2733d,0xf940abec,0x7ec0380f,0x97c27158,0x19407d70,0x47c04904,0xedc2728f,0x10407ad8,0x34c0247a,0xe6c27340,0x34407aae,0x20c037f5,0x96c27115,0xdd4022cb,0x1c03261,0xc8c2728d,0x15402698,0xf100608f,0x266ec110,0x37e03340,0x71220dc0,0x233a32c2,0x499cb240,0x6b6da9c0,0xc6491dc2,0x3a33fd40,0x9971036c,0x3c40c837,0xca6e6,0xc6ef04f1,0xee2040c0,0x19b2c09d,0x4b88c271,0xb09840b7,0x7101749f,0x40c1c467,0xcaac005,0x6277f200,0xe540cf04,0xdbc09bfb,0x53c26b42,0xd03d4b94,0x65c0ab0a,0x89c26b85,0xd03e489a,0xecc0ab0a,0x14c26f2f,0xfc0abae,0xadc0abc6,0x55c26d4e,0xd0c0b0ae,0x66c0ab0a,0x85c26166,0xd0bfa1eb,0x1fc0ab0a,0x78c25f84,0x9cc006b4,0xeec0ab36,0xf0c2674a,0xd0bf18a5,0x99c0ab0a,0x14c26d85,0xddc0abae,0x66c0ab52,0x96c25e9b,0xabbfa1eb,0x70c0aa22,0x48c26f3d,0xd0c096e1,0x55c0ab0a,0x3cc26b88,0xf20054cf,0x63988613,0x166cf4c2,0xab0ad0be,0x6747f1c0,0x719503c2,0xab0ad03c,0x63b242c0,0xc3c643c2,0x7823dd3d,0x341e3100,0x7100242b,0xc26b47a9,0x90ac36df,0x8604f100,0x6cc26398,0xd03fb4cd,0x3cc0ab0a,0x7fc26d53,0x189205,0x6d8715a2,0x96e148c2,0x18308ec0,0x505d3100,0x7100d83f,0xc26f3d70,0xf00f5c29,0x66668400,0xa3d7c261,0xd84008,0xb7664931,0xdb620048,0xd7c26b42,0x200a868,0x48110024,0xf10024,0xc25ee01b,0x4048a3d7,0xc0aa9772,0x3c5ec4b2,0x589b3100,0x310138aa,0x7891bb2c,0x2004f100,0x7bc26152,0xce40b0f8,0x31c0ab0a,0x59c26015,0xcb199,0x6148ae71,0xb24767c2,0xed710024,0xbec2674a,0xcab14,0x5d0008b1,0x9fd8cbc2,0xaa0c3f40,0x383100fc,0x189787,0x31a903f2,0x46d6c25f,0xe137c0a3,0x1004c0aa,0x26f8c260,0x7f2003c,0xc25d0007,0xc0a06a3e,0xc0aa1705,0xc26f319d,0xbf1d70a4,0xa8aea7,0x82147b31,0xad71003c,0xbdc26d4e,0x1a44572,0x6d859931,0xddb10024,0x56c0ab52,0xccc26b88,0x184679,0x6b47a971,0x21b6e5c2,0x1531000c,0x1146d87,0x308e48f5,0x8f25c0ab,0x32c2c25f,0x42f6c04e,0x9a59c0ab,0x147dc25e,0x1d30c082,0x893fc0aa,0x30fdc25f,0x8ecc04d,0xc53cc0a0,0x529c25e,0x9690c051,0xc556c09c,0x1876c25e,0x986ac004,0x8b8dc09c,0x299ec25f,0xabbc008,0x715dc0a0,0xeb6cc25f,0xfb39bfa1,0x7102349f,0xc09fd79d,0x405ea491,0x9df7102,0x3e40c083,0xf1000c5d,0x83474e04,0x5d5eabc0,0xa1eb8ec2,0x9f1e9dbf,0x5ebe46c0,0x4f1000c,0xc09c234d,0xc25e9999,0xc00a8f5c,0xc06615a0,0xc5d3348,0x90793300,0x17001866,0xf100184a,0x79c04a02,0x89c06690,0xafc25d47,0x57c006ea,0x5490d0,0x147904f1,0x1e9dc082,0x4769c09f,0xfe7ec25d,0xa229c04d,0xf1007890,0x82147b1c,0x83474ec0,0x5d8ca5c0,0x42902c2,0xa353e5c0,0x5eadcbc0,0x6c0adc2,0x907de5c0,0x5eadecc0,0x4e9060c2,0x90adaac0,0x4f100b4,0xc082147b,0xc08309df,0xc25ebe45,0xc0821479,0xc9c231a,0x7b04f103,0x9dc08214,0x25c09fd7,0x85c25f77,0xcbc08214,0x54a004,0x50f5b631,0x23f20054,0xc25eb852,0xbf8851ec,0xc0930ad0,0xc25ea828,0xc0887ae1,0xc08ea9d2,0xc25f3b28,0xc0887add,0xc09f27eb,0xc25ecef0,0xc082e148,0xc0338d1e,0x24ce02,0x42d00ff2,0xcb0ac033,0x28f6c25e,0x80a1c05c,0xc445c033,0xc28fc25e,0xb2a7c075,0xb852c034,0xf10024,0xc06dc3b5,0xc25ec26b,0xc04c28f6,0x3034aff7,0x8f5c3100,0x2003032,0x2f10024,0xc3b5c094,0x51fc06d,0x7ae1c25f,0xa46ac094,0x3500308c,0x30228f5c,0xf5c33100,0xb1003008,0xc25ecb0a,0xbfbeb852,0x243380a1,0xeb85a200,0xaff7bff1,0xd9d6c034,0xa8e200c0,0xf4c032c4,0x52c25ec6,0x8dbf9eb8,0x710084b6,0xbf8851ec,0x90475d4f,0xa3d73900,0x22000c30,0x1f8d79d,0x8a3d7b1,0x9fd79d40,0x5f840ac0,0x3f20330,0xc09fe486,0xc25f851f,0x3ff147ae,0xc09fd79d,0x3786a31,0xa02bdab1,0x613333c0,0x97ae14c2,0x350018,0x245d00,0x61333384,0xae147bc2,0x400183d,0x7f20060,0xc2616f42,0xbe2b33db,0xc0a027c6,0xc262edfc,0x3d72074f,0x60a626,0x50f5c331,0xf10078,0xc25eb852,0x4050f5c3,0xc0930ad0,0xc05f8147,0xe96c2203,0xae710018,0xd03ff147,0x510930a,0xf147ae44,0x400cc3f,0x31000c,0x905d00,0x8ca46a31,0x14310024,0x2497ae,0x5d000031,0x18040090,0x147b4200,0x8c43dae,0x71009c02,0xc0475d4f,0xf8603398,0x1c4c3301,0x2022847,0x4f10024,0xc261e487,0xbeabfc65,0xc0475d4f,0xc261dff8,0x383e77f7,0x5d13101,0xb1003061,0xc047867b,0xc262f23d,0x2494f8d7,0x3100,0x22001863,0x485d4f,0xb1008404,0xc260358a,0x401bd70a,0x80467ebb,0xd70ab101,0x5d4f401b,0x46fc047,0x22001861,0x3cb047,0x91001802,0xeb43c03f,0x9610c262,0x31006c49,0xc860375c,0xdd47101,0x2e19c040,0x7101f860,0xc03be011,0xa0603244,0xc4333102,0xb1001847,0xc082e148,0xc03be011,0x7c6034b2,0x2c457102,0x342cc044,0x51029460,0xc044220c,0x42000cee,0x30cfc04c,0x5c350018,0x18328f,0x228f5c35,0xc3350018,0x1808f5,0xf1eb85b1,0x4430cfbf,0x5fd728c0,0xc3310048,0x15c30b6,0x5c28f673,0x342a1bc0,0x4c91000c,0x30f6e8c0,0x5fd079c0,0x243102dc,0x3030d3,0x328f5c35,0x5c350030,0x30328f,0x228f5c35,0x5c350030,0x30228f,0x8f5c335,0xc3350030,0x3008f5,0xf1eb8544,0xb10060bf,0xbff1eb85,0xc030d324,0x85f61ed,0x5a0c3101,0x4400842e,0xbfbeb852,0x52310090,0x309eb8,0x5f841b31,0xd2310138,0x9c2efe,0x75c28f31,0x31006c,0x1205d00,0xcf6e822,0xe1483100,0x31006c82,0xd85f61ed,0x5a0c6203,0x99efc02e,0x5853015c,0x99c04e54,0xf1000c,0xc06dc3b5,0xc2608907,0xc0949097,0x185f710d,0xdf857100,0xc3b5c09f,0x4000c4d,0xbfb103c0,0xc7c260a9,0x95c09ff4,0x9c31f0,0xf2001804,0x5d000107,0xaab548c2,0x485393c0,0x5d0001c0,0xbb70edc2,0xcb00cc0,0x83cf7100,0xf8d3c0c2,0x71001858,0xc0c25ec6,0xc9a62c7,0xdaab6200,0x739bc0aa,0x14040348,0x647ff204,0xdbc25f27,0x11c0a8ec,0x49c09e2a,0xecc25f36,0xa1c0a425,0xcdc09f00,0x98c25f2a,0x20c091dd,0x31c09e5e,0x6ec25f5f,0x35c0ac7b,0x6bc09fa6,0xb9c25f7d,0x6fc0a98d,0xd3c09fd7,0x92c25f18,0x32c09458,0xb8c091bd,0xe1c25f1e,0x6ac0887a,0x22c08ca4,0xecc25f19,0xd0c08d04,0x2c09a35,0xe3c25d00,0x22c0a4b8,0xbec09f50,0xf2c25d14,0x40c0947d,0xec091dd,0x15c25d16,0x45c08d3b,0xb2c09a64,0x5cc26010,0x9fc0b21e,0x53009cd7,0xc0c1c467,0x6208ac09,0xc0bc9f8e,0x188ed8,0xc233f871,0x4a8883c0,0x1710108,0xd1c0cea7,0xc4d40,0xc3a7ee71,0x321fdec0,0xeb71000c,0xe0c0a4c6,0xc46bb,0xa091a562,0x387b1cc0,0xb07d7101,0x2c5ac0c3,0xf100189a,0xced5cb10,0x9c5741c0,0x5d14bec0,0x8d9d15c2,0x4de0a0c0,0x5d160ec0,0x948b05c2,0x5f79c0c0,0xdd51084c,0x9fc0b089,0xd00204c8,0xd79d7108,0x8f7cc09f,0xb108586e,0xc0a048f9,0xc26b475b,0xac2646,0x8ee26606,0xf0cac26b,0x48310030,0x1896e1,0x6d4ead71,0x91e107c2,0xcc62000c,0xcac26b45,0x7100186d,0xc2674941,0x189791b8,0x88566200,0xc021c26b,0x4f10024,0xc262ead3,0xc0ae60e5,0xc0a001c9,0xc267465e,0x24aaf045,0xf3aae100,0x3d5ec262,0xaf29c086,0x70a4c09f,0x18010510,0xc0200,0xc8611,0x6d533b73,0x444ef9c2,0xf802057c,0x9c0407,0x47864d31,0x5b710018,0x1ec26b47,0xc2132,0xf8666622,0xa80407,0x43df6e44,0x3100a83e,0x70491afc,0x88567105,0xfbf0c26b,0x71001847,0xc267465e,0x3c17821b,0xa807f200,0x86c2637a,0x9dbe1fe5,0x54c09fd7,0xebc263d7,0x133b91c8,0x4400d8e0,0x3c5c93ea,0x7e310024,0x5d0b5fc,0x62cccd71,0xb947aec2,0x710594,0xecc25d00,0xcb451,0x371f2,0x65c5c25d,0x632040a4,0x132bc09f,0x8e47c25d,0xeee14094,0x17bac091,0x8e6c25d,0x3bbf408d,0x5d7c09a,0xddcc25f,0xa099408d,0x3136c09a,0xbfc4c25f,0xdd9240a2,0x35c3c0aa,0xae5cc25f,0xfece40a3,0x7ae3c09e,0xdd68c25f,0xd65e40a8,0x177fc09f,0x9f19c260,0xd79d40b1,0x50d4c09f,0xee42c261,0xd79d40b0,0xccdc09f,0x47b0c261,0xd79d4087,0x1b92c09f,0xe9eec261,0x12c4053,0x6186111,0x9fd79d71,0x5d731ac0,0x4031000c,0x864a185,0x48a3d744,0xa2087c40,0x4048a3d7,0xc0669079,0x18cb45,0x9d0f6933,0x8170024,0x8110024,0x30220024,0x710a20ca,0xc09d2db8,0xfc5d75ed,0xc230f106,0x89c0a142,0xcdc263b0,0x973f953c,0xeac0ab1c,0xc9c262e6,0x8b3f8f56,0x11c09db8,0x67c263d8,0x1e3fa15f,0xbec09fdd,0xe3c261bd,0x393f90ff,0x51c0a456,0x15c2619c,0xf33e07ff,0x720a303,0x93abfc71,0x963e063f,0x14f1000c,0x3de8d435,0xc0963e06,0xc25ffba9,0x3df783e0,0xc08ca46a,0xc262fcda,0x3e158687,0xc09e077b,0x3c627666,0x3c03f200,0x6ec08ef7,0x18c261b8,0x2d3de47a,0x31c09214,0x71005428,0xc082a986,0x18608310,0x3628f100,0xfbc08869,0x2fc25d73,0x5d3e74c2,0x2ac08844,0x55c25d97,0x4e3e2c6c,0xaec08171,0x1bc25dff,0xb53e0bf6,0x41c08ca3,0xf9c25d91,0xf3f8c4e,0x5dc08171,0xa86265,0x8dc46962,0xb40756c0,0xab10f100,0x3cc0824d,0xf9c26085,0x943f93f7,0x1c0887a,0x71c26000,0x6a3f92ab,0x6fc08ca4,0x1861b8,0x92142b31,0x28f10714,0x3f97ae14,0xc07faf3a,0xc262f0a4,0x3f99999a,0xc07eb978,0xc262f449,0x3f9ba094,0xc09f9095,0xc2630000,0x3f44079a,0xc07c7c07,0xc262f254,0x3d8dea03,0x3c7e46f6,0x7b10f100,0x3a3dae14,0x4bc07faf,0xc25df4,0xb03f9091,0x82c08c8e,0x56c25d6d,0x6b3f7f9f,0x3c8810,0xf50a0371,0x49bdbe3b,0x3f2000c,0xc09a147d,0xc08f9b00,0xc2630006,0xc0abd968,0x1134f859,0xcf969df2,0x53cac0c2,0xc077,0xd289c271,0x251839de,0x2514c04a,0xc6dac271,0x64f3e2f,0xfefdc054,0x9b74c262,0x29c13f9c,0x1575c08c,0xce9ec271,0x48623f5d,0x4779c061,0x763ec273,0x6f763f4b,0x7a6fc060,0x610fc272,0xc89b3f80,0x14cac053,0xdc38c271,0x9f663edf,0x7abdc043,0x8c1ec272,0xf2803f28,0x3f66c03b,0x51dc273,0x42073ee0,0xc048,0x4235c271,0x79d13e2f,0xe847c036,0xd10fc262,0xe26dbe98,0xdff8c032,0x43ccc261,0xe26dbeae,0xe487c032,0x9bccc261,0xe26dbf3f,0xef0dc032,0xa759c262,0x1068bf4a,0x11081004,0xf200d837,0x887ae101,0x375d4fc0,0x62ecd6c0,0x91689bc2,0x40888c0,0x47510018,0x60fd51c0,0xa3b10a68,0x87c0471d,0xc6c261e4,0x2492bf,0x60b28bb1,0xaad8b8c2,0x481477c0,0xf10fb4,0xc0bbdb0c,0xc048e276,0xc262ef6f,0x24a14456,0xdff87100,0xcf03c261,0x31000c9f,0x1c610000,0x780208,0x846115,0x608a3f31,0xcf1000c,0xc04ea798,0xc260838b,0xc08da55b,0xc04dd3b3,0xc260999a,0xc0a4e8c7,0xc46cccd,0x583f7100,0x59f7c0c3,0x71000c32,0xc0c1c68f,0xc49adb0,0x5aa37100,0x3372c0ce,0x7106f04b,0xc0c40000,0xc854843,0x33333100,0xf4000ccf,0x63000089,0xc43153c2,0x84eaf9c0,0x6582ebc0,0xc40efcc2,0x853648c0,0x7140c5c0,0xc3b370c2,0x830ad0c0,0x6b4756c0,0xc411e8c2,0x85665ec0,0x712058c0,0xc396dfc2,0x964be4c0,0x6b46f3c0,0xcf44a4c2,0x854301c0,0x6588abc0,0xcf446ec2,0x857413c0,0x62ffffc0,0xcf4183c2,0x853f1cc0,0x7104cfc0,0xcf27b1c2,0x8309b7c0,0x710000c0,0xc5a1bac2,0xa845d4c0,0x710000c0,0xc0c6efc2,0x9dee22c0,0x710636c0,0xcf77bec2,0x968bd0c0,0x734308c0,0xcfcfb9c2,0xf21068c0,0xcfef9503,0x94f226c0,0x725698c0,0xd83aaac2,0x74dd23c0,0x596f7110,0x8675c0d8,0xf1132084,0xabf4fb04,0x4a572ec0,0x70fff9c0,0xb07783c2,0x353f3ac0,0xf710270,0xbfc0cd56,0xc6e10,0x881afdf2,0x576dc0c3,0x1587c079,0x98bdc271,0x4567c0a2,0x22b1c032,0x60ebc271,0x9a6bc0a2,0x20f3c049,0x9ed4c271,0xac54be82,0x9c28c049,0x4b4dc26b,0x4928c0a4,0x3e79c049,0x9814c26c,0x460c0ab,0x7852c04a,0x1601c26a,0xf120c0a6,0x4da6c049,0xf68ac266,0xc87ec0a5,0x13cbc049,0x850ac265,0x3f9ec0a4,0x691ac049,0x414c26b,0xf40ec0b4,0x6666c058,0xdeeec26b,0x79a7c0c2,0x6666c077,0x1e97c26b,0xe860c0cd,0x7c39c06d,0xc391c26b,0xe871c0b4,0x1a1fc03b,0x7e8fc26c,0xadbcc0a7,0x2139c032,0x5fbbc26c,0x7197c0af,0xcedc035,0xe1d0c26b,0x7f6c0a3,0xe66fc033,0xc278c264,0xd86bc0a5,0xeb43c032,0x807ec262,0xe26dc091,0xd96ec032,0x1b0dc265,0x84fc0a4,0xdff8c033,0xe43fc261,0xe26dc092,0x15c032,0x55c3c263,0x3fbc0b0,0xe9f3c035,0x3d45c262,0xe26dc0a1,0xe487c032,0xf379c261,0x1350c09f,0xc26306f3,0xc0c23f51,0xc056f120,0xc26307b3,0xc0c14769,0xfc9cd81d,0x9a79f206,0x8ee3f5c0,0x630000c0,0xcd7aa4c2,0x6ef0e1c0,0x656666c0,0xccf2c3c2,0x6d05bcc0,0x656665c0,0xc2fbb1c2,0x77f341c0,0x656456c0,0xb3e942c2,0x58ab7ec0,0x6546fac0,0xb47354c2,0x3aeb20c0,0x64e909c0,0xb212a7c2,0x556e1ac0,0x649230c0,0xabfed4c2,0x4a838cc0,0x649365c0,0xace443c2,0x33d135c0,0x6684e8c0,0xa80946c2,0x2f4dd3c0,0x66979cc0,0xaa8987c2,0x46270fc0,0x6a4923c0,0xa7f084c2,0x8c4d98c0,0xe37a113,0xcbabc0c2,0xd7d4c02b,0xc041132c,0xa406c5f8,0xad04f113,0x3c0ceb0,0xc4c02940,0xc266db,0xfbc0c400,0x180704,0x584104f1,0x6ae4c0c3,0xf9b2c043,0x3333c269,0x554cc0cf,0xa113c807,0xc0ce274c,0xc02d812c,0x1368ec05,0x7a78c041,0x71001806,0xc0c26934,0xc2afea4,0xd51bf200,0xe1c0c107,0x4cc044cf,0x94c26a35,0xbcc0aa94,0x1c04624,0x38c27292,0xeebe9f68,0xa5c02460,0x58c2710f,0x2ebe7b8f,0xf1124873,0xa0b39e04,0x248f19c0,0x733d4ec0,0x9ad927c2,0x380ff9be,0x28f112b4,0xc0a0c89f,0xc037e037,0xc2711afd,0xc0b7479b,0xc09faf6c,0xc2710ef9,0xc0b78149,0xc0ab3854,0xc2728d01,0x40b58069,0xc0b2347c,0xc27110fc,0x40b776d9,0x6cab3a21,0x65a57100,0x4b8cc0b5,0x710054b2,0xc0b5ae99,0x54a8740a,0x956c7100,0x8bed40b5,0xf10a68a8,0xc0640604,0x9e67fd40,0x5cffffc0,0xc0f73cc2,0x4f0a4240,0xf973000c,0x8d40b458,0xf184744,0xcb4b411,0xf1000c04,0x9fd79d0c,0x5eb85ac0,0xab3f8cc2,0x9f9f8640,0x5f5a7ac0,0xac22e2c2,0x9f9c9d40,0xe1710030,0x340887a,0xca63e,0x50f5c331,0xf093000c,0x3dc25ece,0x1940270a,0xaa20f3c,0xd0401bd7,0x75c03342,0x310030da,0x3c8ca46a,0x3d03f20f,0xa740370a,0x49c034b2,0xd7c25ec8,0xd14050a3,0x530ee877,0x4060a3d7,0x440f3cf3,0x407a3d75,0xb8350f6c,0x30851e,0x91eb8531,0xb9750030,0xe1c25ede,0x54947a,0x99eb8535,0x52310024,0x24a6b8,0x5ec6f4a4,0xaeb854c2,0x3cb68d40,0x40b4910f,0xc032c4a4,0x1860375c,0xdd47100,0x841bc040,0x31000c5f,0x8c2efed2,0xb854440a,0xc3c40ae,0xb85204f1,0x2a1b40a6,0x61edc034,0xb852c25f,0x5a0c40a6,0xb10d8c2e,0x40a6b852,0xc03be00d,0x3c603333,0x2a1b3509,0x22000c44,0xdb05d4f,0x270a3d44,0x440db040,0x40370a3d,0xd7440db0,0x984050a3,0xa3d7530d,0xb0cb4060,0x3d75350d,0x3500187a,0x18851eb8,0xeb853500,0x31001891,0x1899eb85,0x61ed3100,0x401685f,0x3d310d20,0xa8270a,0x5d000071,0x370a3dc2,0x793100c0,0xc5fd0,0xdb02013,0x50a3d762,0x14b6bf40,0xa3d7350d,0x35003050,0x3060a3d7,0xa3d73500,0x35003060,0x307a3d75,0x3d753500,0x3500307a,0x30851eb8,0x1eb83500,0x35003085,0x3091eb85,0xeb853500,0x35003091,0x3099eb85,0xeb853100,0x31003099,0x1860850a,0xaef3620f,0x592dc04e,0x12620144,0xbfc04d17,0x71000ce9,0xc04bfc3b,0x5c610000,0x7440201,0x11000c04,0x2001837,0x2af10f48,0x2513c037,0xb175c25f,0xf44740a8,0x3166c09d,0x7ae8c25f,0x130a4088,0x147bc09f,0x8523c261,0x3e034087,0x179ec0a6,0x4bfdc25f,0xb4574094,0x3f0c091,0x6fd6c261,0xf1001852,0x6d5ea10c,0x96e148c2,0xaf17dbc0,0x6d69bdc0,0xabae12c2,0xaf6d5fc0,0x6e970fc0,0xd271156c,0xd9c0a046,0x246ede,0x29890ff2,0x9998c0b0,0x70a4c26e,0x34d9bf1d,0x8f7cc0a0,0x5c29c26e,0x48f93d0f,0x5ea1c0a0,0x48040bb8,0x70a47100,0x6d5fbf1d,0xf1003caf,0xf5c2900,0xb029893d,0x614b83c0,0xb24513c2,0x4f10cc0,0xc2037ece,0xbfefd9c2,0xbfab0457,0xc2041ebd,0xcda0896,0x4504f100,0xccc202d0,0x57c001eb,0xdabfab04,0x9bc204ae,0x18c28e,0x2147571,0xaed9ec2,0xc710018,0x9ac2052e,0x18a999,0x14ccd71,0x12e0bdc2,0x5b710018,0x21c2059b,0x188f5a,0x7ad171,0x19b5b3c2,0xf3710018,0xc0c205f5,0x186806,0xff403671,0x1f5f31c1,0x23710018,0x2dc2063d,0x182f95,0xfd7caa71,0x23d22dc1,0x4f10018,0xc2067060,0xbeeb9b24,0xbfab0457,0xc1fbae6c,0x182705fb,0xe26a7100,0x3997c1fb,0x71000c3a,0xc2068f46,0x246c8191,0xd9037100,0xf45ec1f9,0x71001828,0xc1f9f2e9,0xc3c27b7,0x7100,0x999ac1f8,0x87000c29,0xc2069999,0x0,0x3e85003c,0xbfab0457,0x3cf626fd,0x780300,0x35001801,0x78f45194,0xa80300,0x4573f85,0x8356bfab,0x300a8f2,0x180100d8,0xbfca3500,0x300d8f0,0x18010108,0xa5e4400,0x108c1ef,0x1013803,0x67440018,0x38c1ed66,0x1680301,0x44001801,0xc1ebd716,0x98030168,0x180101,0xea5f7744,0x30198c1,0x180101bc,0x2644400,0x1c8c1e9,0x9401bc03,0xab045740,0xe7c286bf,0x301d4c1,0x180101bc,0xa24c4400,0x1d4c1e6,0x101bc03,0xe8440018,0xd4c1e5a3,0x1bc0301,0x44001801,0xc1e4c949,0xbc0301d4,0x180101,0xe4141a44,0x301d4c1,0x180101bc,0x85ba4400,0x1d4c1e3,0x101bc03,0x41440018,0xd4c1e31f,0x1b00301,0x44001801,0xc1e2e174,0xcd4401c8,0xa4c1e2cc,0x1bc0301,0x3002401,0xc0101a4,0x300300,0x101a408,0x60030018,0x180100,0x101a403,0x90030018,0x12c0100,0x101a403,0xc0030018,0x180100,0x101a403,0xf0030018,0x180100,0x1011403,0xb003000c,0x240101,0x1014403,0xb0030018,0x180101,0x101a403,0x8003000c,0x240101,0x101a403,0x6631000c,0x2880866,0x670614f1,0x4b3ebfae,0x2bcbc208,0x67063ecf,0xfa3cbfae,0x6617c207,0x67063f4d,0x74c3bfae,0xd94dc207,0xf1000c97,0xee826b04,0x374c38c1,0xae670640,0xecbdb4bf,0x30c693c1,0x4f1000c,0xc208b6e6,0x3fd8bf66,0xbfb9affb,0xc2094dca,0xcb0572a,0xac37100,0x29f1c1eb,0x71002429,0xc1e96c45,0xc20824d,0xe4c97100,0xdd55c1e7,0x71000c16,0xc208148a,0x30facd96,0x76b87100,0x4a3cc1e6,0xf100180c,0x6d11a04,0x998e5c2,0xb6679440,0xe52456bf,0xd9bac1,0x4f10018,0xc205af45,0x4018ca15,0xbfb52d99,0xc1e3efb6,0x9ce93bb0,0xdac27100,0x53d6c1e2,0xf1000ccf,0x4b44d04,0x2ac62ac2,0xb624b340,0xe1e72dbf,0xb424bcc1,0x79440018,0xccc1e116,0x6d04f100,0xa6c203d6,0xfb404148,0xefbfb9af,0x68c1e069,0x24753c,0x3165971,0x489004c2,0x89710018,0xbdc2024f,0xc4f18,0x4f1,0x6666c1f8,0x6706c046,0xc351bfae,0xb3e1c1f4,0x35000c44,0xcfb3caf,0x6b317100,0xa3c2c1fe,0x7100183f,0xc200beca,0xc374c38,0x404f100,0x1ac202c6,0xfbc04b6e,0xb9bfb9af,0xa0c20182,0xc54dc,0x1ce804f1,0xf120c1de,0xaffbbfc9,0xee00bfb9,0xcb21c1de,0x3000ce2,0x2401009c,0xd6eb7100,0xcd8ec1df,0xf10018fa,0x4998e04,0x2d11a1c2,0xb66794c0,0xe25dccbf,0x998e5c1,0x4f1000c,0xc2058ca1,0xc01af451,0xbfb52d99,0xc1e4a176,0xc18ca15,0x6304f100,0xd4c206ac,0xb3c00b44,0x65bfb624,0x2ac1e697,0xc2ac6,0x1017403,0xe0030054,0x6bf9401,0x26bfae67,0x78c1e853,0x1ec0300,0x7100c001,0xc208b6e6,0x30d8bf5d,0x73fb5300,0xcc22c1ea,0x2280300,0x3003c01,0x240101f8,0x94cf3500,0x440108f1,0xc1ecfa8d,0x640300f0,0x4cbe1802,0x60803502,0xf4024cba,0xba608000,0xeb0ac3bf,0x2929edc1,0xba608040,0x40540084,0xc019fd0d,0xa744000c,0x4cc02b96,0x3c0802,0x2b96a744,0x440294c0,0xc019fd0d,0x54080264,0x96a74400,0x60c02b,0x19fd0d44,0x440270c0,0xbfba6080,0x60080054,0xfd0d5300,0x7c55c019,0x60804402,0x54bfba,0x2b96a735,0xd440060,0x88c019fd,0x60804402,0x54bfba,0x2b96a735,0x1f40060,0xc019fd0d,0xc1e2dac2,0x3fcf53ce,0xbfba6080,0xa7350054,0x602b96,0x19fd0d44,0x3502acc0,0xdcba6080,0x96a73502,0x4400602b,0xc019fd0d,0x804402c4,0x54bfba60,0x96a73500,0x800602b,0xa7350048,0x542b96,0x8003c08,0xa753000c,0xeec02b96,0xc070300,0xa7bf4400,0x6c2b96,0x30bf17,0x3001801,0xc0900a8,0xe40700,0x3001801,0x3c01009c,0x1200300,0x4001801,0x5c07000c,0x8c01701,0x98c01701,0x180101,0x1015003,0x80030018,0x180101,0x34000c04,0x1019fd0d,0x180102,0x101c803,0xec030030,0x180101,0x34000c04,0x2819fd0d,0x180102,0x1023403,0x64030030,0xc0902,0x2b96a7b1,0xf0561dc0,0x3cb08ac1,0xe7710030,0x10c1f235,0xc40eb,0xf41ed471,0x43f517c1,0xe171000c,0xd6c1f60d,0xc45c9,0xf4042c04,0x2b96a701,0x85c9dc0,0x790f73c2,0x2b96a73e,0xb10570c0,0xc02b96a7,0xc2083f51,0x18f84af9,0xb100f500,0x28c2080e,0xa73f3943,0x1fc02b96,0x48f9f2,0xfbe12c35,0x9440060,0xa4c207cb,0x3b40301,0xfd0d3f85,0xca19c019,0x40090fd,0xa7750018,0xe3c02b96,0xb4ffa9,0x84048c04,0xc019fd0d,0xc2070c69,0xc04021c,0xfd0d3500,0x84002419,0xc02b96a7,0xc201a126,0x9f440114,0x64c20692,0xc0402,0x19fd0d35,0xa7840024,0x25c02b96,0xacc20608,0xc0402,0x19fd0d84,0x27a9ec0,0x40180c2,0xd84000c,0xd5c019fd,0xc2056d,0xc0403,0x19fd0d84,0x349ddc0,0x401c8c2,0xd84000c,0xa4c019fd,0x54c204c4,0xc0403,0x19fd0d84,0x40d9cc0,0x40210c2,0x1807000c,0x18401700,0x4440100,0x1003c03,0xc0401a4,0x780700,0x3003001,0x24010090,0x840300,0x4003c01,0xd340018,0xf019fd,0x302d001,0xbf1700f0,0x480100f0,0xf00300,0x3003c01,0x18010150,0x1440300,0x4003c01,0x5007000c,0x300101,0x9018c03,0xb007000c,0x3c0101,0x101bc03,0xf8030078,0xc0901,0x1023407,0x64030030,0xc0102,0x17027c03,0x102a0be,0x9c03000c,0x780106,0x4406fc04,0xc019fd0d,0xd430714,0x9cc019fd,0x240106,0x59ddd71,0x19ddcec2,0x6171000c,0xeec208c9,0x294d45a,0x1060c03,0xe071000c,0x7fc204ef,0x2425f7,0x65f7871,0xefe09c2,0x7d71000c,0xe5c20457,0xc3327,0x7327e71,0x577c9c2,0x1004000c,0x2940108,0x1084c02,0x600300d8,0xc0100,0x1002403,0x3c03000c,0x3b40100,0x1006003,0x9c03000c,0xc0100,0x1008403,0x7803000c,0xc0100,0x100cc03,0xdd71000c,0xd9c202a2,0xc4c95,0x1010803,0x3671000c,0x62c20bf3,0x39c0c4e,0xc0ffe71,0x8ca255c2,0x8d7103b4,0x61c1f39d,0x2287f33,0xf5cd7771,0x807fefc1,0x9a35000c,0x3e40c19,0xf8000062,0x18cccdc1,0x3c0300,0x35016801,0x30fa3289,0x600300,0x35019801,0x54fc6273,0xc3657100,0xa416c20b,0x71001851,0xc1fe8d21,0x607c364c,0x80c37100,0xffd2c20b,0xf100188a,0x57ff04,0x780c28c2,0x2b96a7c0,0xb2b9fc0,0xac87a9c2,0x3d710018,0xf5c20164,0x1872b9,0xac46171,0xcd4196c2,0xd710018,0xfc2026a,0x186c46,0xa4b8271,0xed068ac2,0x34710018,0x20c20368,0x1864b8,0x9c19371,0x5d845c2,0x8471000c,0x33c2045d,0xc5c19,0x9273971,0x148d86c2,0xd871000c,0x93c20548,0xc5273,0x87d2c71,0x229179c2,0x1871000c,0xbfc20629,0xc47d2,0x7c43771,0x2fd35fc2,0x3662000c,0x6cc206fd,0x44054043,0xc1d8fe7b,0x3e4400c0,0x9cc1da77,0x68fc4400,0x90c1db,0x1007803,0xda440330,0x90c1dc7c,0x780300,0x44001801,0xc1ddb18e,0x78030090,0x180100,0xdf05a844,0x30090c1,0x18010078,0x77934400,0x90c1e0,0x1009c03,0x94440018,0x9cc1e205,0xadd14400,0xc0c1e3,0x100d803,0xfc030024,0xc0100,0xe56e4f44,0x300fcc1,0x1801012c,0x44f74400,0x12cc1e7,0x94015c03,0x2b96a73f,0xe92f98c0,0x3015cc1,0x1801018c,0x2be64400,0x18cc1eb,0x101bc03,0x85440018,0xbcc1ed37,0x1ec0301,0x44001801,0xc1ef5003,0x1c0301ec,0x180102,0xf172df35,0x4404021c,0x8de33501,0xf5015c97,0x978de300,0xd9a8c1c0,0xac87a9c1,0x978de3bf,0xe3350180,0x2a0978d,0x978de335,0xe33502c4,0x2dc978d,0x978de335,0xe3350060,0x84978d,0x978de335,0xe33500a8,0xcc978d,0x978de335,0xe33500f0,0x114978d,0x978de335,0xe3350138,0x168978d,0x978de335,0xe3350180,0x1a4978d,0x978de335,0xe33501c8,0x1ec978d,0x978de335,0xe3350210,0x168978d,0x978de334,0xc04501ec,0x68978de3,0x8de33401,0x1021c97,0x68040018,0x8de33401,0x1024c97,0x68040018,0x8de33401,0x1027c97,0x68040018,0x8de33501,0x1032497,0x1403006c,0x8de33504,0x35035497,0x78978de3,0x8de33403,0x4503f097,0x978de33e,0xe3350414,0x3b4978d,0x978de335,0x300703d8,0xe3be4500,0x408978d,0x45006c07,0x978de3bf,0x90070438,0xa8401700,0x240100,0x100c003,0xd8030018,0x180100,0x100f003,0x8030018,0x180101,0x1012003,0x38030018,0x180101,0x1015003,0x68030018,0x180101,0x1033c04,0x2c0301b0,0x8de33504,0x34033097,0x30978de3,0x1440103,0x1000c03,0x24030048,0x180100,0x7033c04,0x18010054,0x9100,0xc212,0xa0e5c0b8,0xc1cc2602,0x1801000c,0x480100,0x45000c03,0xcfdfcec0,0xc020024,0x240200,0xcfdfcc44,0x930c78c0,0xc019fd0d,0xc1eaba43,0x1305dcc8,0x840ce427,0xc019fd0d,0xc1e75107,0x3f44060c,0x24c1e620,0xc4464406,0x63cc1e4,0xe3411044,0x440654c1,0xc1e19b03,0x4f1066c,0xc1dfd6eb,0xbffacd96,0xc019fd0d,0xc1de809d,0xcd686f0,0x646c4400,0x6b4c1dd,0x1000c03,0xec030708,0xc010d,0xecedff21,0xc010d,0x1004803,0x6003000c,0x7080100,0x1007803,0x9003000c,0xc0100,0x100a803,0xc003000c,0xc0100,0x100d803,0x4e71000c,0x4c1e9d3,0xc4890,0xeb60ee44,0x307c8c1,0x18010114,0x9c0400,0xba608044,0x340018bf,0x10ba6080,0xbec04511,0x12f0b16a,0xb16abe35,0xbe3512c0,0x12a8b16a,0xb16abe35,0xbe3512fc,0x12d8b16a,0xb16abe35,0xbe3412b4,0x12ccb16a,0x6abebe45,0x3412b4b1,0xccb16abe,0xbebf4512,0x12b4b16a,0xb16abe34,0x180112cc,0x11100300,0x4009001,0xbe3413d4,0x1104b16a,0x3001801,0x300112cc,0x12b40400,0xb16abe35,0xbe341434,0x1110b16a,0x3003001,0x300112cc,0x12b40400,0xb16abe34,0x180112cc,0x11340300,0x4000c01,0xbe341488,0x1170b16a,0x44001801,0xc2021475,0xa003006c,0x180111,0x34148804,0xc4b16abe,0x180111,0x34148804,0xf4b16abe,0x180111,0x112cc03,0x2403009c,0x180112,0x34148804,0x54b16abe,0x1440112,0x1127803,0xa804000c,0xcc0712,0x6abe3fc1,0xf0a2bfb1,0x37fcc1ea,0x3000ce5,0x401700fc,0x180100d8,0x29c07100,0xf5e4c203,0x71006cd0,0xc20287af,0xce537fc,0xd75b7100,0x857bc201,0x71000cf7,0xc203bc2c,0xcbaeb5f,0x3db37100,0x48a1c204,0x71000ca3,0xc2011a45,0xb403db2b,0xad3a7100,0x413ec204,0x6200188a,0xc200520a,0x114d39e,0x509cd71,0x6017cac2,0xbe710018,0xd8c1ff00,0x30109c,0x552a471,0x29c3adc2,0x1d710018,0x39c1fd4e,0x18152a,0x5871d71,0xe3f983c2,0xe67100d8,0xd2c1fb8f,0x181871,0x5a6c771,0x64f377c2,0xe7710018,0x76c1f9c9,0x181a6c,0xf8000071,0x1b15d3c1,0x8803000c,0xbe3e8502,0x19bfb16a,0x24f636,0x1027c03,0x1a350018,0x54f470,0x1027c03,0x90030108,0xc0100,0xf2b1e335,0x2c030090,0x180116,0x100cc03,0x4235000c,0xccf0ff,0x1029403,0x8030018,0xc0101,0xef5bec44,0x30108c1,0x180102a0,0xcb764400,0x138c1ed,0x102a003,0x68030018,0xc0101,0xec514a44,0x30180c1,0x180102ac,0x1b00300,0x3000c01,0x440101e0,0x2b80301,0x3001801,0xc0101c8,0xac804400,0x1e0c1e9,0x102c403,0xa9440204,0xd4c1e887,0x2c40301,0x3001801,0xc0102b8,0xa58d4400,0x1d4c1e6,0x102b803,0xac030018,0xc0102,0xe55ab944,0x301c8c1,0x180102ac,0x1bc0300,0x44000c01,0xc1e4f1c6,0x840401d4,0x1c80715,0x44002401,0xc1e4b271,0x800301e0,0x180104,0x101e003,0x4631000c,0x1590e49d,0x1048c07,0x90040018,0x1f80715,0x3001801,0x3e170324,0xc010060,0x3480300,0x3000c01,0x300104a4,0x21c0300,0x4000c01,0x900715b4,0x1500103,0x100f003,0xb003000c,0x300104,0x103cc03,0x65440018,0x28c1e5ec,0x3fc0302,0x3001801,0xc010150,0x17880300,0x3003c01,0xc0104c8,0x4440300,0x3002401,0xc010468,0x4d40300,0xf1002401,0x4b1d904,0x667e84c2,0xa1cd573f,0x44cc3bf,0x8df6b2c2,0x70b1000c,0x6ec203d4,0x6c3fa769,0x5aca1af,0x93e200f1,0xcd57c016,0xd84bbfa1,0xda40c1f9,0x71000c15,0xc203465f,0x30bf0d06,0x9804f100,0x28c1fb97,0xdec0137c,0x97bfa0cc,0xf1c202a7,0x18d4f2,0x56e604f1,0x1377c1fd,0xd107c010,0xf868bfa0,0xcbd1c201,0xf10018e8,0xfec75e04,0xbfa2fc1,0xa05cabc0,0x13a81bf,0xfa66c3c2,0x1cf10018,0xc2005c79,0xc00507e6,0xbfa0a548,0xc2006fdd,0x4004e5c1,0xbfa1b385,0xc1ff33f4,0x400b1d97,0xbfa1cd57,0xc1fd76bb,0xc101805,0x8304f100,0xa7c201e0,0x85bfe9cc,0xabfa025,0x32c1fbac,0x1813af,0x17008403,0x100b4bf,0xcc030018,0xc0100,0x4d7528f1,0xf7bac203,0xc0f9bfbc,0xd71cbfa0,0x6de3c203,0xc0bebfa5,0x6666bfa0,0xd95ec204,0x5eb3bf85,0xab6abfa0,0x64c7c204,0x6eb9bf65,0x180bfa0,0xd773c205,0xf100542e,0x53af304,0xeb0293c2,0xa1cd57be,0x55da4bf,0x6c258dc2,0x3e31000c,0xdb00569,0x17001807,0x100303e,0x4803000c,0xf00100,0x913310f1,0x4684c202,0xc98ebfd2,0x3939bf9e,0x75dec202,0x9a24bfda,0xd3afbf9e,0x2724c202,0xf4000cc7,0x24f7ef1,0xde2596c2,0xa0635abf,0xe59a60bf,0x5a3487c1,0x9e9a24be,0xe585d1bf,0x27c5acc1,0x9e6e5d37,0x2ddffbf,0xc853dac2,0x9e9f49bf,0x2a24dbf,0xd44895c2,0xa06057bf,0x35945bf,0xb755cec2,0x9f0d20bf,0x35f3bbf,0xb2257dc2,0x9e9a24bf,0x3dbb2bf,0xa03c9fc2,0x9f0d30bf,0x3daaebf,0x9b9eb6c2,0x9e9a24bf,0x43161bf,0x8c2246c2,0x9ec83fbf,0x444f9bf,0x83c411c2,0x9e9a24bf,0x45c1cbf,0x8534dfc2,0x9f6b44bf,0x49505bf,0x63dfb1c2,0x9eb702bf,0x49d34bf,0x55933ec2,0x9e9a24bf,0x4e3c0bf,0x2c95d1c2,0x9ed1f2bf,0x4e29fbf,0x21cbefc2,0x9e9a24bf,0x4f3aebf,0x2f0ef5c2,0x9fe13bbf,0x51c75bf,0xe7fa3cc2,0x9ed1f2be,0x514a2bf,0xd9465fc2,0x9e9a24be,0x52d47bf,0xec1edec2,0x9fe12abe,0x53eb4bf,0x691969c2,0x9ed1f2be,0x532d0bf,0xf200f0c2,0x53d103c,0xe9b39c2,0x9e726dba,0x5500ebf,0x6e3fbcc2,0x9fd60fbe,0x55ccebf,0x46e6dac2,0x9ff1f1bb,0xe572e8bf,0x617657c1,0x9f1583be,0xe54668bf,0x474b84c1,0x9ff1c73b,0xe542efbf,0x6c408ec1,0xa1ba3dbe,0xe52d84bf,0x10f4198c,0x86bfa1cd,0x74c1e5d6,0xc4bed945,0x5fbf9e79,0x95c1e596,0xcebed865,0x1abf9fe0,0xe0c1e58a,0x1e0df401,0x4ec1e621,0x9bbf22b5,0x6ebf9ec8,0xeac1e608,0xccbf2394,0xbf9f5f,0x10c1e5fd,0xe001f402,0xa0c1e6ac,0xf2bf56c5,0x97bf9ed1,0x14c1e6c5,0x1f04f101,0xd4c1e697,0xf1bf58bb,0x4dbf9f62,0x84c1e69c,0x240667e,0x5e4204f1,0x81b2c1e7,0xc908bf84,0x760ebf9e,0xc411c1e7,0x4401ec83,0xc1e84aa4,0x4f1018c,0xc1e7474f,0xbf853911,0xbf9f52f4,0xc1e7667a,0x3c8df6b2,0xda01f400,0x5ac1e833,0xcebf9c80,0x89bf9ec6,0xd4c1e941,0x1c04f101,0xf9c1e81f,0x9fbf9d4d,0xbebf9f75,0xebc1e878,0xca602,0x53aa0df4,0x226cc1e8,0xb142bfa7,0x4114bfa1,0x87dc1ea,0xae32bfc8,0x58a2bf9e,0x264c1ea,0x8dc010f1,0x6d2bc1e9,0x63febfbd,0x3a24bf9f,0x1fa3c1e9,0x7d2cbfb9,0x7343bfa0,0xd06c1e9,0x710078bf,0xc1ea32cc,0x54c94f0e,0xdcc97100,0x3372c1ea,0x4400f0d2,0xc1eb8d8d,0x10f102b8,0xc1ea2320,0xbfca33a4,0xbfa079ff,0xc1eaaeee,0xbfd51149,0xbfa1adeb,0xc1eacb52,0x3cd34ae4,0x7bb37100,0xaf3ac1eb,0x71003cdb,0xc1eb6b0f,0x18dcd341,0x4c04f100,0xe9c1ecbe,0x1abfee80,0xa8bf9f50,0x6dc1ecdd,0x114ebe7,0xec0f3071,0xe8cbd1c1,0xf7710084,0x40c1ec26,0x30e6fc,0xb15c10f1,0x92a7c1ec,0x625fbfef,0x36d3bfa0,0xb346c1ee,0xcacdbffc,0x4614bf9e,0x55bdc1ee,0x71003cfb,0xc1ed8afe,0x3cfa66c3,0x5efff400,0xc1ede646,0xbffc5d3a,0xbf9febd9,0xc1ef3ddb,0xc003161a,0xbf9ec858,0xc1efc3bf,0xc0044f90,0xbf9e9a24,0xc1ef1f27,0xc004dec6,0xbfa1b41c,0xc1ef3213,0xc003c682,0xbf9f66f9,0xc1f0e3d7,0xc0095209,0xbf9ed1f2,0xc1f15366,0xc009d346,0xbf9e9a24,0xc1f0cc0c,0xc00b1d97,0xbfa1cd57,0xc1f0da0b,0xc00a0eed,0xbf9f648c,0xc1f2f0bf,0xc00e29fa,0xbf9e789e,0xc1f29b1d,0xc00f15ba,0xbf9f613d,0xc1f28945,0xc0101805,0xbfa1cd57,0xc1f499c6,0xc0114b02,0xbf9e7935,0xc1f45b46,0xc012891a,0xbf9f759f,0xc1f45723,0xc0132f7f,0xbfa079ff,0xc1f453f6,0xc013af32,0xbfa1cd57,0xc1f62dbe,0xc013ed9e,0xbf9eb557,0xc1f64b97,0xc0132d02,0xbf9e9a24,0xc1f62c82,0xc0156191,0xbfa07254,0xc1f8fb93,0xc0145ca7,0xbf9eb125,0xc1f7f5fd,0xc015c422,0xbf9fe13b,0xc1f9ac0e,0xc0152b2c,0xbf9fe176,0xc1fb75bf,0xc012712a,0xbf9f0931,0xc1fb6519,0xc0114a27,0xbf9e9a24,0xc1fd0e69,0xc00e2b52,0xbf9e7d13,0xc1fd1c62,0xc00fb3ee,0xbf9f759f,0xc1feb62d,0xc00a98fa,0xbf9ed1f2,0xc1feac9a,0xc009d346,0xbf9e9a24,0xc1febf19,0xc00b5137,0xbf9f759f,0xc2002409,0xc0050d5f,0xbf9ed1f2,0xc2001e21,0x1f40150,0xc200610e,0xc003157f,0xbf9ed1f2,0xc200dcf6,0xdf40198,0xc20066fa,0xc003c697,0xbf9f65cb,0xc201293f,0xbff72c5a,0xbf9ecb43,0xc201912c,0x10f101f8,0xc20124bd,0xbffade01,0xbfa0256c,0xc201e4b2,0xbfe5cbde,0xbf9eca25,0xc2021719,0xe0d5c7ef,0xae3f7101,0xe315c202,0x71000cc2,0xc20172a5,0xce6d9d7,0xfa04f100,0x3dc20333,0xfdbfaf0a,0x9cbf9e85,0x5ec203af,0x189849,0xc24b71,0xf5f38cc2,0xa171000c,0x88c20417,0xc80f1,0x78c71,0x17a07c2,0xf8710204,0x1dc2046d,0x185100,0xfe880171,0x6df83c1,0xe6710018,0xb5c204b1,0x181e54,0xfcf2a571,0xb1e69c1,0x4f10018,0xc204e2d7,0xbed49eed,0xbf9e9a24,0xc1fb527c,0x180e2d73,0x5f7100,0x881ac205,0x71001855,0xc1f9ab10,0x181005f7,0x6200,0xa3ecc1f8,0x3f22000c,0x7506300a,0xbf9e9a24,0x24f654f0,0x3c0300,0x9a243e35,0xc010504,0xad843500,0x30060f4,0x18010078,0x54c0300,0x35000c01,0x9cf30d5b,0xb40300,0x9a243f35,0xc010594,0x77ff3500,0x300d8f1,0x180100f0,0x9d347100,0x933ec204,0xa5000c55,0xc1eff0e6,0xc0017a20,0x12c6467,0x3001801,0xc010618,0x7a47a500,0x10cfc1ee,0x8177bff6,0x18010168,0x6540300,0x44000c01,0xc1ed1ab6,0xcf710198,0x9bc20336,0x18ae54,0x1069003,0xce4b000c,0xd4c1ebd1,0x180101,0x1070803,0xf803000c,0xc0101,0xeaa38144,0x301f8c1,0x18010738,0x2040300,0x71000c01,0xc1e99263,0xb0ae549b,0x2580301,0x3001801,0xc010204,0xa0c74400,0x21cc1e8,0x102a003,0x10030018,0x24409402,0xbfbf9e9a,0x28c1e7d0,0x2dc0302,0x3001801,0xc01021c,0x24104400,0x234c1e7,0x1032403,0x28030018,0xc0102,0x9c2f07f5,0x54b5c1e6,0x646fbf1e,0xf41bf9e,0x29fac1fd,0x7896400e,0x24010234,0x3a524400,0x24cc1e6,0x1039c03,0x1f40018,0xc1f9b7ab,0x40100f3d,0xbf9e85f5,0xc1e5ff41,0x69710258,0x2c1f9b4,0x24132d,0x1025803,0x8322000c,0xe506e4eb,0xbf9e9a24,0xc1f800e4,0x4013d085,0x2647979,0x3002401,0x34010048,0x8580302,0x3000c01,0x2401045c,0x2700300,0xa5000c01,0xc1e5d68f,0x3ed94941,0xa87cc8,0x35003001,0xa8f49ae7,0x27c0300,0xd2003001,0xc1e63ac5,0x3f21f5cf,0xbf9e7bc4,0x100fc33,0x55a5015c,0xac1f2ea,0x9b400ef7,0x10288c8,0x38030030,0x240107,0x1015003,0x1f5000c,0xc1f15363,0x4009d41b,0xbf9e7d13,0xc1eff0e8,0xb8020198,0x3c0105,0x1074403,0xb0030030,0xc0101,0xee7b6a44,0x301ecc1,0x1801075c,0x1f80300,0x3000c01,0xc010630,0x2ac0300,0x3000c01,0xc01075c,0x24c0300,0x3000c01,0xc01069c,0x2b80300,0xa5000c01,0xc1ea46a7,0x3fc86584,0x2a0c155,0x3001801,0xc010720,0xbf19f400,0xcfc1eb96,0x8f3fde65,0xc5bf9eff,0x7c1eb5c,0xff3fddce,0xbbfa079,0x1cc1ec6e,0x3d3fec5e,0xd1bfa07d,0x40c1eab0,0x6fc030b,0xb40a2c01,0xc1eacca6,0x3fd36d2b,0x8c9f6313,0x3f00f507,0xbf9f759f,0xc1e9a353,0x3fbc95e1,0x780d1f2,0xf1005401,0xe96e6304,0xbeff09c1,0xa1b2e63f,0xe92c63bf,0xb3250bc1,0x4f10024,0xc1e98fce,0x3fbd95ee,0xbf9f611c,0xc1e88d47,0x18a52767,0xa204f100,0xa1c1e855,0x533fa74a,0x1bbfa1b3,0xf6c1e834,0x189c7d,0x1084c03,0x6403006c,0xc0108,0xe783cba5,0x8c9c99c1,0xa058da3f,0xa80108,0x345d04f1,0xd1ddc1e7,0x6d483f85,0xd5bfbfa0,0x851fc1e6,0x3004863,0x24010900,0x2304f100,0xb6c1e6be,0x953f64be,0xdebf9f64,0x42c1e620,0x542d7b,0xfb9214f4,0xe5cdc1e5,0xbbf93f2e,0xaeddbfa1,0x2e84c1e5,0x759f3ee9,0x9a10bf9f,0x3769c1e5,0x79ff3eea,0xf1099ca0,0xcd573e09,0x8299bfa1,0x1969c1e5,0xd1f23e69,0x6a05bf9e,0x4f44c1e5,0x7100306a,0xc1e554ea,0x306b5958,0x44b87100,0x258dc1e5,0xf100306c,0x5333a1c,0xac1355c2,0x9ece9a3e,0x552b3bf,0x5608d1c2,0x9fe1763e,0x534d1bf,0xd86339c2,0x9fe0ce3e,0x4ef5ebf,0x22b3ffc2,0x4f100b4,0xc20502e4,0x3f22189c,0xbf9fe282,0xc204a990,0x1856c5a0,0xb5147100,0xe319c204,0x7100b457,0xc204bef7,0x7458d845,0x50d67101,0x8113c204,0x71002484,0xc2043158,0xc8c21b8,0x6a0df400,0x37c2043c,0xcb3f8cdf,0x51bf9f65,0x47c2045a,0x6c3f88ab,0xf2bfa076,0x68c203e5,0xb95d4401,0x18cc203,0xc3cb31f4,0x696c203,0x66493fa6,0x2e69bf9f,0x97c8c203,0xca923fbc,0x382bbf9e,0x97d5c203,0x66623fbd,0x7c78bf9f,0xec63c203,0x6d833fb4,0x91b1bfa0,0x35d6c202,0xc98e3fd2,0xe69abf9e,0x21cc202,0xcdbe04f1,0xb830c202,0x7a963fce,0x9a57bfa0,0x4ae4c202,0xf100b4d3,0x2422704,0xdbaf3ac2,0x9ed1f23f,0x24a78bf,0xdcd341c2,0x10f10018,0xc201e4b8,0x3fe5cc53,0xbf9ec482,0xc20228d4,0x3fe27065,0xbfa07747,0xc201ec85,0x24e6fc40,0xa0997100,0x752ec201,0xf1000cee,0xe49604,0xfcb357c2,0x9ecacd3f,0x1a6fdbf,0xef83f1c2,0x7fb40108,0x26c20136,0x593ff9a8,0x804a050,0xd1f24044,0x108289e,0x4f1000c,0xc20066f6,0x4003c686,0xbf9f66f1,0xc1ff1c29,0x18095209,0xc31cf100,0xfc1ff25,0xfd400a0c,0xdabf9f67,0x16c1fd6b,0x9f400ef9,0x2bf9f75,0x6fc1fd72,0xff400f9b,0xe9bfa079,0x50c1fb9f,0x3011c7,0xfba4ba71,0x12891ac1,0xdd710024,0x7fc1fba8,0x24132f,0xf9d23371,0x13eb3ac1,0x9f710024,0xd9c1f9d4,0x2414af,0xf9d6b371,0x1558b4c1,0x18f50024,0xc1f80a04,0x4015c422,0xbf9fe13b,0xc1f54fbc,0x401333a4,0xbf9ece9a,0xc1f653f3,0x40152b2c,0xbf9fe176,0x40f627b5,0x9e6bb40e,0x4d01c1f4,0xe0c64013,0x1099c9f,0x9e710e4c,0xeec1f2e3,0x600fb3,0xf2ddd071,0x10571dc1,0xf0030060,0x240109,0xf140e771,0xb5137c1,0x3e710024,0x6bc1f139,0x240bef,0x10a4403,0xef440024,0x20c1efb7,0x3de57101,0x157fc1ef,0xf100c003,0xefacaf04,0x5c27fc1,0x9f698840,0xefa378bf,0x65619c1,0x9571003c,0x32c1ef20,0x3c04cc,0xee382171,0xfcbe49c1,0x417101d4,0x60c1ef28,0x240459,0xedad8a71,0xf72b99c1,0x19f40018,0xc1ee2ae2,0x3ffe141f,0xbf9f6513,0xc1ed8dd2,0x3ffac511,0xbfa1b142,0xc1eccd9b,0x3fed3b4b,0xbf9ec469,0xc1ecbecd,0xfdf401e0,0xc2045e8c,0xbf511eeb,0xbf9c4e16,0xc204050d,0xbf7f9303,0xbf9bcc5c,0xc2040fba,0xbf8073a3,0xbf9d055c,0xc204a298,0xbf1ececd,0xbf9c4e38,0xc2044d70,0xbf4dd990,0xbf9b06ab,0xc2049058,0xbf1bf1a6,0xbf9b06ab,0xc204c08c,0xbed16a6a,0xbf9b06ab,0xc20481a6,0xbf1ae610,0xbf9ac311,0xc204ce71,0xbed2b6d0,0xbf9bcc5c,0xc1e606b9,0xbb6e06d9,0xbf9c6213,0xc204ddc5,0xbe5250f8,0xbf9aede5,0xc204ce6c,0xbe50e736,0xbf9ac311,0xc204d852,0x0,0xbf9a8e8a,0xc204da2a,0xbed3cf4f,0xbf9d055c,0xc204fbfa,0xb75a1a93,0xbf9c542e,0xc204f796,0xbe54b7b3,0xbf9d055c,0xc1e65d3a,0xbea4ebbc,0xbf9b0353,0xc1e64f5c,0x0,0xbf9a8e93,0xc1e66328,0xbe50e736,0xbf9ac311,0xc1e61c82,0xbe522e1b,0xbf9c4085,0xc1e69cf1,0xbed00304,0xbf9ac311,0xc1e65409,0xbed05be2,0xbf9c4e27,0xc1e6df4f,0xb34400cc,0xc0c1e6fc,0xc41f7100,0xe92dc1e6,0xf101141c,0xe7815504,0x4c8473c1,0x9a978dbf,0xe74ac4bf,0x4f2053c1,0x10f10018,0xc1e87c5d,0xbf8c5fd9,0xbf9b0353,0xc1e82a8f,0xbf7c4bf5,0xbf9ac311,0xc1e73486,0x44503409,0xf5e74401,0x15cc1e7,0xe7e08c44,0x71015cc1,0xc1e8c411,0x4896ebc4,0xc910f100,0xb7c1e9c9,0x54bfabb7,0x74bf9ae4,0x33c1e9e2,0x11bfaa8d,0xcabf9ac3,0xb3c1e8af,0x4897b4,0xeaed8671,0xbeb0e2c1,0x79710084,0x69c1e9a0,0x18adaa,0xb06210f1,0x227dc1ea,0x4e2fbfc1,0xff13bf9c,0xb4abc1eb,0x49a5bfd3,0x1566bf9b,0x259ac1ec,0x710048d1,0xc1ed5726,0x3ce1e072,0xddb37100,0xf734c1eb,0xf1003cd4,0xed223704,0xe4fad7c1,0x9c4e27bf,0xeea025bf,0xf23e64c1,0x3b7101e0,0xb2c1eeb0,0x3cf09e,0xee914471,0xf3bee4c1,0x17100a8,0xbbc1f010,0x24ff0c,0xf01da071,0xfd570cc1,0x11f10024,0xc1f00368,0xc00050ca,0xbf9bcc5c,0xc1f19134,0xc004d706,0xbf9b06ab,0xc1f19c3e,0xc003f30e,0x3f10174,0xc9c1f177,0x27c005e8,0x73bf9c4e,0x85c1f320,0x240905,0xf328d071,0x81a65c1,0x8b710024,0x74c1f309,0x240a29,0xf4ba5771,0xc08c4c1,0xf4710024,0x76c1f4bf,0x240b18,0xf4a6e771,0xd3c5cc1,0x4f10024,0xc1f74ad8,0xc00e78ee,0xbf9b0353,0xc1f65e32,0x240ce6bc,0x4b92b100,0x1ac5c1f6,0x4e1ec00f,0x3112e49c,0x180d8145,0xc10f100,0xbfc1f800,0x95c00f61,0x18bf9bb5,0xbcc1f9a2,0x8dc00ce9,0x3cbf9a97,0x56c1f9a7,0xc00ebb,0x534600f5,0x6c61c1fb,0x49a5c00c,0x400cbf9b,0xf10078fb,0xf9a96f10,0xf7957c1,0x9d055cc0,0xfce611bf,0x800bdc1,0x9a9468c0,0xfb4f3dbf,0xda2a1c1,0x49620018,0x31c1fcdf,0x3500c05e,0x8fe6ecc,0x63c23501,0x710108fe,0xc1fe7284,0xc0062e62,0x5604f100,0x66c1fff0,0x60bffcf9,0xacbf9a94,0x77c1fff7,0x1800d9,0xafed44,0x44018cc2,0xc200a7e2,0xb271018c,0xb2c200b5,0x390f4d6,0x5ac404f1,0x530dc201,0x9468bfe1,0x6548bf9a,0xe343c201,0x710018e5,0xc201ff98,0xa4d28eef,0xf54d4401,0x204c201,0x2091e71,0xd3dd23c2,0x1f401c8,0xc2029267,0xbfc04b3c,0xbf9ae632,0xc2021127,0xf8710210,0xd9c2031a,0x3cabb3,0x30ec644,0xf10288c2,0x2a7ba04,0xc224d5c2,0x9d055cbf,0x3263fbf,0xacc469c2,0xf3710048,0xacc20391,0x3095fd,0x384f671,0x94fc48c2,0x5c710210,0x3bc203a0,0x29497fe,0x3f86671,0x7dffd6c2,0xb8440024,0x24c203ea,0x3f317103,0x7853c204,0x7100304c,0xc201c51e,0xcb8a3c6,0x4eca7100,0xa71ac202,0x71000ca5,0xc2012d39,0xcc9d934,0xc8e87100,0x120ac202,0x71000c91,0xc2008890,0xcd91d04,0x324c7100,0x2ea1c203,0x71000c76,0xc1ffb175,0xce64988,0x89f37100,0xda40c203,0x71000c47,0xc1fe3ed2,0xcf13e4f,0xcf037100,0x992dc203,0x71000c17,0xc1fcbcc9,0xcf9e050,0xd204f100,0x8fc20400,0x11becbc4,0x12bf9ac3,0x24c1fb2f,0x234000d,0x41ee771,0x4cc101c2,0x82710018,0x6cc1f999,0x1801ee,0xb028f622,0xc3113104,0x3102649a,0x18028f5c,0x4d40300,0x3c3e17,0x35000c01,0x3cf6667e,0xb1877100,0x304c204,0x30018d0,0xc010078,0xd0ee3500,0x30078f4,0x3f17054c,0xc0100b4,0x43373500,0x300b4f3,0x18010144,0xf00300,0x35000c01,0xf0f1c12e,0x1740300,0x3001801,0xc01012c,0x4e8b3500,0x3012cf0,0x180101bc,0x1680300,0x44000c01,0xc1eeeedf,0x10030168,0x180102,0x101a403,0x8e44000c,0xa4c1eda5,0x892d7101,0xa99bc202,0x30018be,0xc0101d4,0x75c44400,0x1e0c1ec,0x1029403,0xe0030018,0xc0101,0xeb626d44,0x7101f8c1,0xc201546a,0x18e1d8c7,0x1ec0300,0x44000c01,0xc1ea6e30,0x18030204,0x180103,0x101f803,0x6744000c,0x10c1e99b,0xe2607102,0x570cc1ff,0x30018fd,0xc010204,0xec1b4400,0x21cc1e8,0xfe55e9a5,0x42678c1,0x10946840,0x240102,0xe861fb44,0x870228c1,0xc1fcd730,0x40081a65,0xc01021c,0xfe5c4400,0x234c1e7,0x1021c03,0x33440018,0x34c1e7c2,0xa1ce7102,0xe6bcc1f9,0x300180c,0xc010228,0xae144400,0x240c1e7,0xf7ffbfb4,0xd8477c1,0x9a978d40,0x240104c8,0x2340300,0x3000c01,0x280106d8,0x600302,0x3000c01,0x24010234,0x6e40300,0x3001801,0xc01009c,0x5640300,0x3002401,0xe4010240,0x6f00300,0x3000c01,0xc0100f0,0x1200300,0x3000c01,0x3c0105c4,0x2580300,0x3001801,0xc010600,0x24c0300,0x3000c01,0xc010708,0x18c0300,0x44000c01,0xc1e8f615,0xc8030264,0x180101,0xeeafcca5,0xf0a1f1c1,0x70978d3f,0x180102,0x1070803,0x1c03000c,0xc0102,0xed572d44,0x3021cc1,0x1801027c,0xeda64400,0x27cc1ea,0x1027003,0x8030018,0xc0107,0x53602bf5,0x3954c1e7,0x49a53f4d,0xf34bf9b,0xffd6c1e8,0x6ab3f7d,0xf50abf9b,0x9f34c1e7,0xacf73f7f,0xae70bf9b,0xc076c1e8,0xe6193f97,0xdd41bf9c,0x6ff4c1e6,0xe1823f1b,0x9f107d4,0x9d055c3f,0xe67ee7bf,0xd16a6ac1,0x9b06ab3e,0xe6ad2ebf,0x1dba1bc1,0x1cf10018,0xc1e6631e,0x3ed2b6d0,0xbf9bcc5c,0xc1e6432f,0x3e4f1a1a,0xbf9af1d4,0xc1e64bac,0x3ed3cf4f,0xbf9d055c,0xc1e610d5,0xc54b7b3,0x6614f400,0x4fc204d1,0x533ea4e5,0xcbbf9b03,0x22c204f2,0x483e4e38,0xfcbf9c4e,0xc0c204d5,0x273ed05b,0x96c9c4e,0x8700a801,0xc204a5e4,0x3f1be953,0x18010990,0xc08f400,0x95c2045b,0xef3f4f2c,0xcfbf9bac,0x78c203c1,0x533f8c60,0x9d89b03,0x9d83f17,0x7100a801,0xc2039df7,0x1896ebc4,0x5c04f100,0x6c2031b,0xcd3fabbd,0x1bbf9ae5,0xb3c203a8,0x2497b4,0x2947771,0xbff2fec2,0xc4710060,0x69c2032f,0x18adaa,0xa7cf10f1,0x22a7c202,0x4e403fc1,0x75bf9c,0xb4f6c202,0x499d3fd3,0x5d9fbf9b,0x5ef2c201,0x30030e3,0x30010654,0x6ee38700,0xfb1ac201,0x6d83fe4,0x71002401,0xc200b75e,0x84f3bee4,0xefff7100,0xcbbc1ff,0x710018ff,0xc200bda6,0x3cf50364,0x9810f100,0xcac1fffc,0x5c400050,0x9dbf9bcc,0x9cc20003,0x5c4000fb,0x2bf9d05,0xdfc1fe79,0x1805a9,0xdf8d04f1,0x585c1fc,0x6ab4009,0x81a0bf9b,0x5bd1c1fe,0x71002406,0xc1fce74a,0x2409df05,0x45a97100,0x8c4c1fb,0x7100240c,0xc1fcedd1,0x240a9692,0x4adb7100,0xe70cc1fb,0x7100240c,0xc1f9a4a0,0x240dda27,0x7d40300,0x3002401,0x2401081c,0xc0ff200,0xa5c1f80c,0x1e400fc0,0x58bf9c4e,0x37c1f56c,0x53400d16,0x8cbf9b03,0x88c1f663,0x7100182c,0xc1f4be95,0x240d5fc4,0x8e80300,0xa5005401,0xc1f31858,0x4009ea96,0x924b0ee,0x35001801,0xccf186fe,0x6500f500,0xbec1f006,0x8a3ffed9,0x60bf9ae7,0xccf17e,0xeff8c644,0x300fcc1,0x38010990,0xd901f401,0xc1c1ed49,0x323fe3a9,0xb5bf9ae6,0x38c1ee84,0xd07101,0x8eefc1ec,0x710150d2,0xc1ed255a,0x50e5f86e,0xedc57101,0xdd23c1eb,0x71003cd3,0xc1eac4b1,0xbcc00e84,0xa140301,0x71002401,0xc1e9b7a0,0x24abb489,0xb08d7103,0x24d5c1ea,0x710018c2,0xc1e8dc1a,0x5495fdac,0xa800300,0xf8001801,0x3bf42d0,0x166751c2,0x9659753f,0x3717ebf,0x45f17cc2,0x94800f3f,0x324dfbf,0x745e70c2,0x96454e3f,0xf7fff6bf,0xf8a5c1,0x948345c0,0xf99484bf,0x589bc1,0x948449c0,0x2bb38bf,0x8fed6cc2,0x9659753f,0xfb28a6bf,0xfe15a9c1,0x965975bf,0x23b02bf,0xa3a09dc2,0x947e5a3f,0xfcb2fabf,0xf7123cc1,0x94f649bf,0x1b3a1bf,0xb6c719c2,0x94f6383f,0x11d4abf,0xc7c7cec2,0x94f65a3f,0xfe30a8bf,0xee830ac1,0x94f640bf,0x7a46bf,0xd671a4c2,0x9483233f,0xff9f17bf,0xe3a7b9c1,0x94f630bf,0xff9fdbbf,0xe4b7a2c1,0x963bb43f,0x7d5cbf,0xd69b4ac2,0x94f638bf,0xfe3239bf,0xef57acc1,0x9659753f,0x1201abf,0xc77dd8c2,0x94f651bf,0xfcb33bbf,0xf7e847c1,0xe401009c,0x74fff200,0xc201b635,0xbfb67497,0xbf94f638,0xc1f99648,0x4000e84f,0xbf965975,0xc2023e40,0xbfa3a8df,0xbf94f630,0xc1f7fc91,0x4000f677,0xbf9487ca,0xc202b6e1,0xbf8f4aa9,0xbf94f651,0xc2031bdf,0xbf7330e8,0xbf948334,0xc2037378,0xbf44d8dc,0xbf9484f9,0xc203b9a0,0xbf158091,0xbf94f630,0xc203f0ad,0xbeca2984,0xbf965975,0xc204100c,0xbe4b35f4,0xbf96373f,0xc20412d8,0x3716feb5,0xbf9518ca,0xc20407ef,0x3e4c54bd,0xbf94f640,0xc203ea02,0x3eca6ce3,0xbf94f61f,0xc1e9e3a8,0xbf72b431,0xbf93193f,0xc1e952b6,0xbf428a40,0xbf927211,0xc1e9fd5a,0xbf6fa355,0xbf927211,0xc1fb24ea,0xbffce94f,0xbf948fc9,0xc1fb1a27,0xbff95d89,0xbf923f81,0xc1fc9d68,0xbff34ca9,0xbf923f81,0xc1e93354,0xbf44285f,0xbf9315ad,0xc1fe1545,0xbfeae408,0xbf923f81,0xc1e9b870,0xbf743e10,0xbf965975,0xc1e90a85,0xbf464724,0xbf965975,0xc1eaae46,0xbf8e63e0,0xbf9315ad,0xc1eaca88,0xbf8d36ce,0xbf927211,0xc1ea898f,0xbf8fed6c,0xbf965975,0xc1ff8c3e,0xbfe1ef95,0xbf9337f4,0xc1ff7d1b,0xbfe02a67,0xbf927211,0xc1eb9f73,0xbfa285d3,0xbf9337f4,0xc1ebb847,0xbfa13fd1,0xbf927211,0xc1eb8821,0xbfa40336,0xbf94f651,0xc1e7f500,0xbe4d1633,0xbf94828c,0x738cf00,0x96597562,0xce224bf,0xc920f100,0xa2bf948f,0xc5c20072,0xf4bfd502,0xfdbf9337,0xbac1ec9a,0xcfbfb5f6,0x4cbf9410,0x41c1ecc4,0x11bfb3bb,0x2ebf9272,0xd1c20114,0x24c608,0x109fe71,0xc47b9ac2,0x28f10018,0xc1edeba0,0xbfc49079,0xbf923f81,0xc1edc095,0xbfc79aae,0xbf9505c0,0xc201b98d,0xbfb0a3cf,0xbf925215,0xc1ef19ac,0xbfd51aa8,0xbf9315ad,0xc1ef2c93,0x3cd35782,0x2901f400,0xac1ef01,0x75bfd767,0x47bf9659,0xccc20230,0x23dd4400,0xccc202,0xf073c235,0xe53500fc,0xfcf082,0x5cff04f1,0x9d5ac1f0,0x3d68bfe4,0x9b6bbf96,0x3a3fc202,0x7100848d,0xc1f1ebaf,0xceaea5b,0x1a04f100,0xc0c1f1d5,0xc9bfee3c,0xc7bf948f,0xacc1f1cd,0x6cef57,0x30f7d71,0x7187d7c2,0x534400cc,0xe0c20301,0x5a217101,0x279ac1f3,0x710018f5,0xc1f36374,0xa8f33bda,0x8a0bf200,0x47c1f355,0xe9bff6e3,0x53bf9480,0x61c20357,0x79bf428a,0x7dbf923f,0xf10ac801,0x9337f404,0x3e7a3bf,0x474fb5c2,0x927211be,0x3f16ebf,0x11b11ef0,0x54bf9272,0x74c1f4e0,0x54fb43,0xf4e69871,0xf94b73c1,0x4f10054,0xc1f4daf4,0xbffcf7db,0xbf947e63,0xc2039a8d,0xb4138c33,0x71c47100,0x931c1f6,0xf2000cfd,0xf668fe0b,0x876ac1,0x9505c0c0,0xe810c3bf,0x48e2a0c1,0x9337f4be,0xbcfd06bf,0x37f47201,0x1d24bf93,0x74090ce8,0xb9bf9272,0x84c1e830,0x610f100,0xf3c203e0,0x76becc1d,0xbf93c2,0xcec1f800,0xf4c00017,0x5cbf9337,0xf3c203ca,0xa8c659,0xf8000071,0xfe2dbec1,0xc9710090,0xe6c1e84b,0x60c7ea,0xe86b4944,0x440024c1,0xc203f79f,0x1f40078,0xc1e8316b,0xbec93a93,0xbf948fc9,0xc1e81ea5,0xc571036c,0xd4c1f991,0xe4fef3,0xf98e9f71,0xfcf46bc1,0x37620054,0x8ec1e8cb,0x7100d8ad,0xc1e893cc,0x8c15b595,0x817c7101,0x6751c1e8,0xf1018c16,0xf823fd28,0xa7418dc1,0x668544bd,0xf88c93bf,0x1bf7adc1,0x66e2a8be,0xf8e5ccbf,0xcde28bc1,0x696755be,0xf7ecbcbf,0xffe543c1,0x66ac32bd,0xf7a325bf,0x8fb19ec1,0x8f10030,0xc1f82979,0xbeaab778,0xbf68549b,0xc1f828f1,0xbd163886,0xf0666ddf,0xf100,0x23000000,0xbdbf6666,0xbcc1f88f,0x303991,0xb4df10f1,0x9c52c1f7,0x6ddfbca3,0xefd4bf66,0x87b1c1f8,0x39fbe16,0x4cbf67,0xb453c1fa,0xf1004862,0xf9dcec04,0xe30a2dc1,0x6ab55fbe,0xfa46e9bf,0xd3033ac1,0x6671000c,0x8ac1faa8,0xcbfe8,0x58dd00f1,0xeceac1f5,0x549bbd24,0xa90ebf68,0xf10180f2,0x6e027514,0xf2d0c6bf,0x2390c9c1,0x6e0275be,0xf58054bf,0xf29889c1,0x6850bebd,0xf5a23dbf,0x1ef6f9c1,0xfa710060,0x72c1f5cc,0xc4250,0xf5ffed62,0x78d44ec1,0x3a577100,0x4dac1f6,0xf1001880,0xf4f77c04,0xc9f30c1,0x6e0275bf,0xf61b46bf,0x1fc3b5c1,0xba35000c,0xcf9e4,0xfa333762,0x482d0ec1,0xff2c7100,0x9cfec1fb,0x710078e2,0xc1fcba5f,0xc9ed00b,0x5deb6200,0xd0f6c1fa,0x84350078,0x54fb08,0x7fca04f1,0x47cbc1fa,0x549bbdf2,0x9854bf68,0x6545c1fa,0xf1000ca3,0xfaa71e28,0x250b52c1,0x684956bd,0xf6aca0bf,0xb519bdc1,0x66e2b9bc,0xf6b3cbbf,0x23c31ec1,0x66e1dfbd,0xf6c7ffbf,0x8c6bcfc1,0x66e2a8bd,0xf5ed54bf,0xdb7586c1,0x3710114,0x90c1f65b,0xce9d9,0xf6ced471,0xf4d4ccc1,0x4f1000c,0xc1f93ffe,0xbd722c02,0xbf66e0e3,0xc1f65bfa,0xd4ba2df9,0xc004f101,0xa9c1f786,0xa8be1ff8,0xeabf66e2,0xd5c1f720,0xfca1ae,0xb2e904f1,0xac26c1f7,0x7d74be7d,0xd76abf67,0xb96fc1f8,0xf40048fa,0xf7dc03c8,0xa7418dc1,0x6685443d,0xf7736dbf,0x1bf7adc1,0x66e2a83e,0xf71a34bf,0xcde28bc1,0x6967553e,0xf7d687bf,0xaab778c1,0x68549b3e,0xf81344bf,0xffe543c1,0x66ac323d,0xf85cdbbf,0x8fb19ec1,0x6685443d,0xf7d70fbf,0x163886c1,0x666ddf3d,0xf77043bf,0x3991bcc1,0x6685443d,0xf84b21bf,0xa39c52c1,0x666ddf3c,0xf7102cbf,0x1687b1c1,0x67039f3e,0xf62314bf,0xe30a2dc1,0x6ab55f3e,0xf5b917bf,0xd3033ac1,0x6ab55f3e,0xf5579abf,0xbfe88ac1,0x6ab55f3e,0xf5ffb4bf,0x62b453c1,0x68549b3e,0xfaa723bf,0x24eceac1,0x68549b3d,0xfd2f3abf,0x2390c9c1,0x6e02753e,0xfa983fbf,0xa3b8a2c1,0x68549b3d,0xfa7fabbf,0xf29803c1,0x68549b3d,0x3ec101b0,0xbf6e0275,0xc1fa5dc3,0xc01ef6f9,0x33067100,0x5072c1fa,0x3000c42,0x240101e0,0x136200,0xd44ec1fa,0xa971006c,0xdac1f9c5,0x248004,0xc53708f4,0xa6b9c203,0x51fc3ed8,0xe83bbf92,0xab75c203,0x3f703e47,0xf101f892,0x2753f15,0x4a61bf6e,0x5105c203,0x521e3f4b,0x99dfbf92,0x9182c203,0x72113f13,0x9abcbf92,0x36cec202,0x71000c8d,0xc20109fe,0xcc47b9a,0x9dda7100,0xbb41c201,0x71000cb3,0xc1f75b3c,0x48299f5e,0x6840300,0x3001801,0x180102a0,0x14527100,0xd499c1fe,0x620018ea,0xc1f5ccc9,0xc02d0e,0xf345a135,0xd43500e4,0xccf400,0x192404f1,0x60bfc1fb,0x3f813ff9,0x9c8cbf92,0x3bdac1fc,0x62003cf3,0xc1f5a215,0x108d0f6,0x1030c03,0x36b40060,0xcbc1f580,0x9b3df247,0x36c6854,0x3011401,0x3c0104c8,0x4800300,0x71000c01,0xc1f567ac,0x30a36545,0x57c0300,0x35001801,0x24f67161,0xa500f500,0x63c1f558,0x443d2347,0xaebf67fc,0xc0f1eb,0xf31b28b4,0xf2233ac1,0x9252263f,0x3c010678,0xec034400,0x120c1ed,0x106cc03,0x80030018,0xc0107,0x1073803,0xd403000c,0xc0107,0xc1055803,0x9272113e,0xe8b2b8bf,0xad9cfc1,0x7003018c,0x240108,0x2fca1cf1,0x58e2c1e8,0x4c6a3e47,0x3801bf92,0x6bcfc1f9,0xe2a83d8c,0x12acbf66,0x7586c1fa,0xb55f3edb,0xa4fdbf6a,0xd990c1f9,0x71000ce9,0xc1f9312c,0xcf4d4cc,0x6cc0300,0x71004801,0xc1f6bfff,0x3c722f27,0xb9457100,0x19a4c1f6,0x71000c4b,0xc1e9fc00,0x746fa7a8,0xa4067101,0x2df9c1f9,0xf1033cba,0xf8794004,0x1ff8a9c1,0x66e2a83e,0xf8df16bf,0xa1aed5c1,0x4f10258,0xc1f84d17,0x3e7dac26,0xbf677d74,0xc1f72896,0x6cfab96f,0x5407f500,0x3bc1f352,0xc93ff6c3,0xf9bf948f,0x33c1f4d6,0xe13ffe32,0x85075c44,0x9337f43f,0xf34cc5bf,0x8030a08,0x180107,0xf1df6471,0xecaf60c1,0x2ab4000c,0x68c202ab,0xe3f8de8,0x7b09313,0x3005401,0x380107b0,0x804030a,0x3003001,0xc010828,0x67157100,0x6af0c1f0,0x710030e3,0xc1f05e10,0x30e47903,0x1abb7100,0x2c5c1ef,0x710024d5,0xc201a935,0xcb5269e,0xdc08f400,0x4dc1eeff,0x703fd784,0xf1bf9643,0x33c1edce,0x373fc5c2,0x8dc9319,0x71002401,0xc1edba71,0x48c84207,0xad964400,0x3cc1ec,0x1092403,0x94710024,0xc5c1ec9a,0x78b656,0xec8d0b71,0xb72f4dc1,0x73440030,0x9cc1eb9f,0x9b40300,0xf1003001,0xeb867504,0xa365edc1,0x94850a3f,0xeaafd3bf,0x8e5450c1,0x10f10018,0xc1fe3368,0x3fed3459,0xbf93c265,0xc1ea987b,0x3f8f4ea9,0xbf948345,0xc1fca5df,0x24f5279a,0xc9517100,0x1d50c1e9,0x71006c73,0xc1e9b870,0x6c743e10,0xadac3500,0x710180fc,0xc1e9350a,0x30441388,0x1c347100,0x5cb8c1e9,0x3003045,0x30010a68,0xabc0300,0x3001801,0x300107b0,0x7980300,0x3001801,0x30010798,0x9468b400,0x4ff0c1f9,0x8fc94000,0x35081c94,0x4c37f43e,0x10401708,0x103e1708,0x753e8508,0x3bbf9659,0x60f66e,0xe7f60271,0x4a33bec1,0x3d710024,0xd4c203a9,0x7814bb,0x725104f1,0x881ec1f6,0xf8e84000,0xe2f6bf94,0x23ddc1e7,0x44003c4b,0xc203b61a,0x10f10090,0xc1fe09da,0xc0ae55ae,0xc0978de3,0xc1ff37d7,0xc0ada7a0,0xc07be892,0xc20031d1,0x18acc578,0x5b8f7100,0xb385c201,0x40018aa,0xe3b1000c,0x47c0978d,0x64c20281,0x18a821,0xb1000c04,0xc0978de3,0xc203a21d,0x18a51104,0xc0400,0x978de3b1,0x4bd37c0,0xa184b2c2,0xc040018,0x8de3b100,0xd1c1c097,0x7f17c205,0x400189d,0xe3b1000c,0xecc0978d,0x38c206de,0x189903,0xb1000c04,0xc0978de3,0xc207e3ed,0x18941477,0xc0400,0x978de3b1,0x8e001c0,0x8eb680c2,0xc040018,0x8de3b100,0xd26ac097,0xed63c209,0x4001888,0xe3b1000c,0x71c0978d,0x73c20aba,0x1882bd,0xb1000c04,0xc0978de3,0xc20b9769,0x187856b0,0xc0400,0x978de3b1,0xc68adc0,0x6a77ffc2,0xc040018,0x8de3b100,0x2d9ec097,0xe93ec20d,0x400185b,0xe3b1000c,0xa9c0978d,0x5fc20de5,0x184cb5,0xb1000c04,0xc0978de3,0xc20e9043,0x183ce7c9,0xc0400,0x6100d801,0x54c20f2c,0x182c8c,0xb1000c04,0xc0978de3,0xc20fbb31,0x181baf53,0xc0400,0x978de3b1,0x103aa4c0,0xa5d6cc2,0xc040018,0xe300f500,0xe7c0978d,0x39c210aa,0x92bff147,0xc7be8,0x978de3b1,0x110ba5c0,0xcd1e75c2,0xc040018,0x8de3b100,0x5c95c097,0x5ba7c211,0x40018a8,0xe3b1000c,0x7bc0978d,0x65c2119d,0x18831a,0xb1000c04,0xc0978de3,0xc211ce25,0x183aed78,0xc0400,0x8de300f5,0xee70c097,0x338bc211,0xe892bede,0xb1000c7b,0xc0978de3,0xc211fe44,0x180bca97,0xc0400,0x8de300f5,0xfd93c097,0x3ac5c211,0xe8923e25,0xb1000c7b,0xc0978de3,0xc211ec60,0x18eae233,0xc0400,0x8de300f5,0xcab6c097,0x3b3ac211,0xe8923f41,0xb1000c7b,0xc0978de3,0xc21198af,0x18863a2a,0xc0400,0x61009001,0xebc21156,0x18ab71,0xb1000c04,0xc0978de3,0xc211042c,0x18d028e5,0xc0400,0x978de3b1,0x10a220c0,0xf4439ac2,0xc040018,0xe300f500,0x96c0978d,0x74c21030,0x92400bd3,0xc7be8,0x978de3b1,0xfafe3c0,0x1d1c19c2,0xc040018,0x8de3b100,0x2067c097,0xeec8c20f,0x400182d,0xe3b1000c,0x8fc0978d,0xd9c20e82,0x183e3e,0xb1000c04,0xc0978de3,0xc20dd6d0,0x184e0011,0xc0400,0x978de3b1,0xd1dacc0,0x5d269ac2,0xc040018,0x8de3b100,0x57aec097,0xa711c20c,0x400186b,0xe3b1000c,0x6bc0978d,0x9bc20b85,0x187976,0xb1000c04,0xc0978de3,0xc20aa780,0x18834567,0xc0400,0x978de3b1,0x9be94c0,0x896cf0c2,0xc040018,0x8de3b100,0xcb56c097,0x2d47c208,0x400188f,0xe3b1000c,0x7cc0978d,0x1bc207ce,0x189482,0xb1000c04,0xc0978de3,0xc206c8c5,0x1899676a,0xc0400,0x8de300f5,0xbaf5c097,0xd98cc205,0xe892409d,0xb1000c7b,0xc0978de3,0xc204a5d7,0x18a1d526,0xc0400,0x8de308f1,0x8a3ac097,0x5738c203,0x8de340a5,0x68f3c097,0x5d27c202,0x71000ca8,0xc20142dd,0xcaae4a8,0x18d37100,0xebd5c200,0x71000cac,0xc1fdd76c,0xcae712a,0x78ce7100,0x7384c1fb,0x40054af,0xdc01000c,0xf9175202,0xcf21dc1,0xb58a6200,0xec9cc1f6,0x7762000c,0xfec1f454,0x62000c62,0xc1f1f626,0x4855ae,0xfb000ff2,0x9d84c1f4,0xf8604097,0x3784c087,0xecabc1f7,0x322d4092,0x151cc08f,0x7e65c1f5,0x10f1000c,0xc205d26b,0xc08a3fdb,0xc0826e7a,0xc204e48c,0xc0866e87,0xc087f860,0xc20564f2,0xc843afb,0x510f100,0xc5c20db9,0x603fdc37,0x83c087f8,0x1fc20d3a,0x2d3fcbf5,0xb5c08f32,0x90c20dd4,0x18d316,0x54c2c71,0x8c8d0fc2,0x1b710048,0x11c1f2c8,0x7896a8,0xe0e104f1,0xdce4c1f2,0x677f4093,0x3082c08b,0xfa3c1f7,0xf2001898,0x69c751c,0x6ff556c2,0x8f3144c0,0x58ab9c0,0x7b45fec2,0x8f2d5cc0,0x6a014c0,0x689d77c2,0x978de5c0,0xcb55ec0,0xf447d4c2,0xdb61006c,0x8184c20c,0xf1000ce9,0xc5f4610,0xef5d25c2,0x978de33f,0xea47ec0,0xdcb25bc2,0x826e7a3f,0xff0170c0,0x8d3f40c1,0x3f205e8,0xc1fcfb39,0xc08fd074,0xc09345ae,0xc1fcf0c9,0x540a331,0x6468071,0x7fef74c2,0xd37100d8,0x58c205da,0xc8211,0x64da971,0x87fd07c2,0x8b7100c0,0xffc20e87,0x54e63d,0xc703e71,0x32f4dc2,0xd7710138,0xf6c20be8,0x1a406b5,0x6c89071,0x7a86fdc2,0x3d71003c,0xefc206be,0x3c85ca,0xc3c8071,0x97a53c2,0x4f10030,0xc207c7ad,0xc061a283,0xc08f3735,0xc2072057,0x3076a8c1,0x35e7100,0xc565c20d,0xf1010807,0x8470504,0x52ce8ec2,0x978dedc0,0xb64a0c0,0x1548a6c2,0xd1710060,0xbfc20ccd,0x240e48,0x7acf771,0x701249c2,0xff71003c,0x8bc207a1,0x6c80f1,0x7f1d371,0x6ca8dac2,0x92710018,0xa3c20bb5,0x781859,0x8350571,0x7affd6c2,0x4f10024,0xc20d91a2,0x4014c2ca,0xc0826e7a,0xc20b74a3,0x241eda49,0x7d047100,0x6ea8c208,0x71002477,0xc20ad314,0x78235a08,0x5604f100,0x4cc208e3,0x2dc05170,0x8c08f32,0xfec20b21,0x3026b4,0x956af71,0x58c2c6c2,0xa171006c,0x94c20cff,0x5424da,0x9a09971,0x451826c2,0xea710030,0xb3c209c2,0x1bc39d0,0xae53c71,0x2c01f7c2,0xb071003c,0xe8c20a34,0x6030dd,0xa1a9071,0x4bfc26c2,0x5e710048,0xd6c20cb9,0x482be3,0xa7f6371,0x347ff1c2,0xe710030,0x48c20a52,0x543815,0xa4aa571,0x38a87ec2,0xfe710018,0x93c20989,0x483dc8,0xad23971,0x3e84d3c2,0xa1710048,0xd9c20af1,0x302aed,0xb017371,0x1f429ec2,0x4f10204,0xc20d9588,0x4034bab2,0xc07e02ac,0xc20b0124,0x503acf6c,0xca8e7101,0x1d32c20a,0xf1000c3f,0xb776004,0x30e7abc2,0x87f860c0,0xb8015c0,0x1dbbd4c2,0xcf710048,0x8ac20c0a,0x18233f,0xc02e571,0x10135ec2,0xd4710018,0x34c20c0c,0xe4029f,0x8d39271,0x4a0ed8c2,0x32710090,0xd6c20c92,0x30151c,0xc79af71,0x1feb9c2,0xa710030,0x1ac20812,0x2455a6,0xd0d2471,0x68a2bc2,0x10f10024,0xc20ce41a,0xbfe710ed,0xc08f322d,0xc20ce12e,0xbfc8b789,0xc0978de5,0xc20d04c6,0x18dd4517,0x460c7100,0x8449c207,0xf1003c60,0xd7b4704,0xef24f2c2,0x87f860bf,0xd41d7c0,0xc976e6c2,0x17710024,0x75c20d9d,0x18e501,0x6704b71,0x6a9ff9c2,0x54710030,0xe7c20d64,0x24bd3a,0xddc4a71,0xd081fec2,0xbd710024,0x50c205db,0x1507801,0x5917f71,0x73f06fc2,0x9e710030,0x95c20d92,0x30ab45,0xd7d1071,0x89532ec2,0xfc710090,0x84c20dff,0x3cc3d8,0x5013671,0x801729c2,0x6a71003c,0x9cc204aa,0x3c7c6d,0xdb4d171,0x9c8cc5c2,0xe471003c,0x78c20e2f,0x30b142,0x41feb71,0x83cd7bc2,0xd2710030,0xec203bb,0x308208,0xe534a71,0xa205e6c2,0x4f10024,0xc20f03d4,0xbfb95411,0xc0826e7a,0xc2033887,0x308720d3,0xf5f87100,0xae29c20d,0x71005476,0xc202c688,0x3c8568a9,0xea297100,0x262fc202,0x71002488,0xc20f28d5,0x3ca965f5,0xc637100,0xf06bc20e,0xf100305a,0xdca0504,0x2fd07dc2,0x978de3bf,0x37928c0,0x8bda3ac2,0xb77101ec,0xb6c2024b,0x3c8a0e,0x1cb5f71,0x8855b7c2,0xb8710054,0xf0c20e96,0x907f4d,0x3280c71,0x8ce8b8c2,0x90710030,0x1c20e27,0x54336d,0x1e9d771,0x8b229fc2,0x4f1003c,0xc210250f,0xbfb21c04,0xc07e02ac,0xc20eadec,0x3c6297f2,0x84107100,0xe254c202,0x71003c8e,0xc20e3506,0x3c1c151a,0xeb357100,0xa348c20d,0x713c48da,0xc2015a2d,0x488c94ee,0xcb317100,0xccabc200,0x7100848a,0xc2021ec4,0x3c8fffe1,0xca0b7100,0xb2e6c20e,0xf2005439,0xf304c703,0x8fd074c1,0x9345ae40,0xf52425c0,0xc08b95c1,0xf367106,0xa331c1f3,0x71003c8e,0xc202cffe,0x4895635c,0x6e04f103,0xeac20e49,0x2dbedf20,0xfac08f32,0x1c20ed7,0x48218a,0xe46671,0x8da689c2,0x14710078,0x24c2018a,0x6c917f,0xe4ffd71,0xb98916c2,0xdf710030,0x20c20dfc,0xa829d0,0x2661571,0x968de9c2,0xff710054,0xd5c20fa4,0x1684226,0x649d71,0x8eb196c2,0xb9710048,0x64c1ff8d,0x848ccb,0xed1904f1,0xedeec20e,0xf860bee6,0x102fc087,0x9a4ec201,0x71006092,0xc20fb390,0x3c28e475,0x13f7100,0x4311c1ff,0xf1031890,0xfd1f1f04,0x93dce4c1,0x8b677fc0,0xef3e3c0,0xc005a3c2,0x7171003c,0xbec1ffb5,0x608faf,0x114e671,0x8a337bc2,0xef71036c,0xb4c2008b,0x5493ae,0xc9a504f1,0x70f8c20f,0x6e7abef1,0xb6ecc082,0x93d5c210,0x71018c31,0xc200a146,0x6093843e,0xd7837103,0x6319c1fe,0x62004890,0xc1fd7e84,0x12c5029,0xfd0be71,0xc8c34cc2,0x7d71003c,0xbc2016e,0x908c63,0xfffa6f71,0x94b5bdc1,0x1cf10060,0xc20dfef4,0x3dc4723b,0xc0978de3,0xc1fce0e1,0x4091ad82,0xc08f3268,0xc210ce23,0xbefddb77,0xc07e02ac,0xc2019f19,0x6c914b7f,0xd59a7100,0x163cc210,0x710018d3,0xc1ff14bf,0x48956f5f,0xd04f100,0x51c2027f,0x83c0897a,0xaec08f31,0xe4c20306,0xcc84a3,0xfb6a8d62,0xc859a5c1,0xf1727101,0xf6b6c20d,0x623e94b6,0xc1fdcd97,0x738505d,0xb64410f1,0x50f8c202,0xf84fc08e,0x7800c087,0x4800c203,0x30e2c086,0x7c84c08f,0x4b71c1fb,0x7100d892,0xc20dd466,0x81e1933,0xc506207,0xbfd3c1fd,0x2462003c,0xe9c1fae6,0xf100247f,0xf83a8710,0x901204c1,0x978deb40,0x3b7a9c0,0x8b041dc2,0x87f857c0,0xda7e8c0,0x602e12c2,0xb871003c,0xc7c1fb9b,0xb49768,0x66da04f1,0xb48fc204,0x3103c082,0xe273c08f,0x9b8dc204,0x7100b47a,0xc1fd4723,0x109d9c80,0x166202,0x9f15c1fb,0x9a620030,0xa9c1f95a,0x71006cdb,0xc20d6c1f,0x5490c062,0xc5c47100,0x4d27c1fb,0x7100309e,0xc2047c56,0x2c881af2,0x230d6201,0x85ecc1fb,0x3e710018,0x5bc20d21,0x30b0ec,0xf966b862,0x54fe0bc1,0xf76e7100,0x711bc1fb,0x6205b8a6,0xc1fb4c59,0xcaccd,0xcc78671,0xd07f0bc2,0x3b710030,0x3fc1f2f5,0x1089191,0xe1e44371,0x634b06c1,0xbf710288,0x40c1e394,0xc6d31,0xde3ffe62,0xf8b680c1,0x5b2d6201,0xed63c1dc,0x3f203f0,0xc1e63b19,0x407a9b91,0xc0978de5,0xc1e03825,0x9fc1477,0xe2422771,0x990338c1,0x7d62003c,0x17c1e45c,0x6209e47f,0xc1e90a2d,0x4bcfa31,0xd72903f2,0x98a4c1eb,0x8de74087,0x8591c097,0x84b2c1e6,0xc67109f0,0x4c1e8bb,0x3ca511,0xdd721571,0x8c621bc1,0x69710684,0xf9c1e31f,0xc6a9f,0xe0630771,0x94821bc1,0x7162000c,0x64c1eafd,0x710a1421,0xc1eef3fa,0x3c8b60f6,0xb1007100,0x4567c1da,0x71002483,0xc1e173e7,0xc608449,0xfe8f7100,0x3f40c1f0,0x6200248d,0xc1ed48e1,0xa44b385,0xdfdbec71,0x55a61ac1,0x2a710024,0x9bc1d8f5,0xc7976,0xe26e7562,0x64676ac1,0xdd01710e,0xf06fc1e4,0x62001873,0xc1ef9c5d,0xa74c578,0xe48a1562,0xa0d98cc1,0xab2d710e,0x6d9cc1e6,0x7100247c,0xc1de58db,0xc4a0ed8,0x50a37100,0xa711c1d7,0x71000c6b,0xc1e6b452,0xca1d526,0x885b7100,0x80ec1e8,0x71000c82,0xc1dcec03,0xc3dc893,0xc4a77100,0x269ac1d5,0x71000c5d,0xc1db969f,0xc30dde8,0x52607100,0x11c1d4,0x62000c4e,0xc1e8eb8c,0xf485738,0xea72f071,0x8568a9c1,0x19710018,0x27c1eb2e,0xca85d,0xec694271,0x8855b7c1,0xd871000c,0x8c1da59,0xc235a,0xd2fae271,0x3e3ed9c1,0xbf71000c,0xa6c1d936,0xc1548,0xd1bf3271,0x2deec8c1,0x4662000c,0xa8c1ed7a,0x710fd8e4,0xc1ef6abd,0xc48be86e,0x2e517102,0xb5f6c1d8,0x71002406,0xc1d0a03a,0xc1d1c19,0xce596200,0xebd5c1ef,0x1e711020,0x1c1f37e,0x308eed,0xf2289462,0x50712ac1,0x41737110,0x5d25c1d7,0x710654ef,0xc1cf9ed3,0x3c0bd374,0x87327100,0x7384c1f4,0x710030af,0xc1d670f3,0x24d07f0b,0xbbbf7100,0x439ac1ce,0x71000cf4,0xc1d5bd84,0xcb0ec5b,0xf7a76200,0x28e5c1cd,0x6b620024,0x1dc1f6e8,0x71003cf2,0xc1f6ac5f,0x548fe6f5,0x27c27100,0xc062c1d5,0x71003090,0xc1cd531f,0xcab71eb,0xc4726200,0xf7a1c1f8,0x54620024,0x2fc1fa7b,0x62003cc2,0xc1fadbdb,0x188b95,0xd4b03071,0x602e12c1,0xa2710030,0x2ac1ccce,0xc863a,0x37ad10f1,0x5aeec1d4,0x8de7bf02,0x2740c097,0xe233c1cc,0x8de3beea,0x6a94c097,0x3b3ac1cc,0x71002441,0xc1cc04d9,0x18253ac5,0x1804f100,0x3bc1d402,0xe3bdc472,0x78c0978d,0x97c1cc03,0x4a40bca,0xd4064271,0x29d020c1,0x1f71000c,0x8bc1cc23,0xcde33,0xd4299771,0xdaa348c1,0xb571000c,0x78c1cc63,0x3a83aed,0xd46bf671,0x2fd07dc1,0xb71000c,0x65c1ccc5,0xc831a,0xcd46d671,0xa85ba7c1,0x2771000c,0x17c1d4cd,0xc71b7,0xcde8b671,0xcd1e75c1,0xd571000c,0x27c1d54c,0xc9966,0xd5ea9271,0xb96be3c1,0x3271000c,0x39c1ceaa,0xcf147,0xd6a5d571,0xd8d0ffc1,0xb771000c,0x6cc1cf8a,0x3240a5d,0xd77dfd71,0xf77a46c1,0x9d710018,0x53c1d089,0x181baf,0xd8724d62,0x24a69cc1,0xa6257100,0x8c54c1d1,0x7100182c,0xc1d981f2,0xc1917f8,0xdf797100,0xe7c9c1d2,0x71000c3c,0xc1db2f22,0x2c2ccfea,0x34ae7104,0xb55fc1d4,0x7100184c,0xc1d5a4c4,0xc5be93e,0x4b3d7100,0x209bc1dd,0x71000c41,0xc1d72ea6,0xc6a77ff,0xbe257100,0x3926c1de,0x71000c4d,0xc1d8d12d,0xc7856b0,0x46ee7100,0x9fe8c1e0,0x62000c58,0xc1da8b1d,0x45cbd73,0x35045004,0xe47be892,0xe8923500,0x3501507b,0x747be892,0xe8923501,0x3501b07b,0xd47be892,0xe8923501,0x3501d47b,0x47be892,0x3c0102,0x35024c03,0x887be892,0xe8923502,0x3502ac7b,0xdc7be892,0xe8923502,0x103247b,0x60030090,0xe8923503,0x3503847b,0xd87be892,0x540103,0x3503fc03,0x387be892,0xe8923504,0x3504987b,0xe07be892,0x9208f204,0xd8c07be8,0xf0c1dc82,0x92c0896c,0x54c07be8,0x47c1de69,0xc8f2d,0xc1e16561,0xc970b5d,0x4a40400,0x7be89235,0x92350480,0x4447be8,0x7be89235,0x92350438,0x3fc7be8,0x7be89235,0x140103d8,0x3cc0301,0x300cc01,0x923503b4,0x3847be8,0x7be892a2,0xf94a76c0,0xcec9cc1,0xab886200,0x62fec1fb,0x4f1000c,0xc1fb0500,0xc0979d84,0xc087f860,0xc1f8c87b,0x3492ecab,0x36e87108,0x6e87c1e6,0x71073886,0xc1e5361b,0xc843afb,0xeae36200,0x7e65c1fa,0x4f10024,0xc1e567a7,0x408c8d0f,0xc0826e7a,0xc1e32960,0xb4721084,0x24b77106,0x4a34c1e4,0xf1000c77,0xd6489604,0xe98184c1,0x8f322dbf,0xd2b704c0,0xdcb25bc1,0x96710930,0x90c1d456,0x9c0d316,0xe372ff71,0x7fef74c1,0x5a710060,0x58c1e44a,0xc8211,0xe4f4cb71,0x7b591dc1,0xd3710048,0x6dc1d51a,0x30f1ab,0xd48df671,0xdc37c5c1,0x7c71000c,0x6dc1d5c0,0x60d4c7,0xe364ad71,0x87fd07c1,0xea710090,0xffc1d2f0,0x6ce63d,0xe27fc171,0x6e53bdc1,0x83710048,0x4dc1d71f,0xe4032f,0xd56a3071,0xfcd224c1,0xdf710048,0xfdc1e26e,0x787a86,0xe2838571,0x85caefc1,0x2710048,0x38c1e170,0x3c67f6,0xd1090e71,0xf21501c1,0x52710990,0xc1c1e1bf,0x3076a8,0xd5f94371,0x7c565c1,0xf0710144,0x4cc1e0ea,0x3064aa,0xd80f2071,0x113b4fc1,0x5e71006c,0xbfc1d664,0x240e48,0xe0a61371,0x701249c1,0x271003c,0x8bc1e0bc,0x6c80f1,0xe01c5a71,0x6ca8dac1,0x2f710018,0x1c1dfca,0x485d13,0xd6f14171,0x164f22c1,0xf671003c,0xd6c1df95,0x307aff,0x16b904f1,0xda49c1d9,0x322dc01e,0x5f8c08f,0x6ea8c1df,0x71001877,0xc1d77baa,0x301dad2e,0xf1807100,0xcd9fc1de,0x71005464,0xc1de3955,0x5451704c,0xbdef7100,0xb4fec1d9,0x71003c26,0xc1da3588,0xc2c01f7,0xbece7100,0x1826c1dc,0x71002445,0xc1d8af20,0x482c8905,0xcae07100,0xfc26c1db,0x7100484b,0xc1db0139,0x30347ff1,0x5be46200,0x1548c1db,0xe7710ec4,0x71c1d92a,0x303205,0xdb6ab671,0x38a87ec1,0xbd710024,0xd9c1da1c,0x542aed,0xd9fdb771,0x3acf6cc1,0xe4710024,0x32c1da6a,0xc3f1d,0xd8ffd671,0x1dbbd4c1,0x5710024,0x50c1d8a0,0xfc04350,0xd9122b71,0x47d03ec1,0x3671000c,0x5ec1d7fa,0x241013,0x7b0104f1,0x16b1c1d7,0x2acc052,0xca1c07e,0xfeb9c1d7,0xf1001801,0xd637cb04,0xe710edc1,0x8f322d3f,0xd5f674c0,0xdd4517c1,0x4f1000c,0xc1d50971,0x3fef24f2,0xc087f860,0xc1d57c52,0x18c976e6,0xc5d27100,0x175c1d4,0x710018e5,0xc1d53758,0x18bd3ae7,0x72047100,0x7b3c1d3,0x711128fa,0xc1d4476b,0x24d081fe,0x2b517100,0x6e0dc1d3,0x710018ef,0xc1d40008,0x18c3d884,0xcb04f100,0x9bc1d190,0xac400371,0x29c07e02,0xbdc1d2a7,0x24d9ff,0xd4965e71,0x9c8cc5c1,0x4f10054,0xc1d14675,0x3ffbbe0a,0xc07e02ac,0xc1d3a037,0x3cb14278,0x5c867100,0xc2b5c1d2,0x710030cc,0xc1d4539a,0x308c93af,0xbb817100,0x3598c1d0,0x710030e5,0xc1d1f859,0x24b95411,0x3904f100,0x42c1e98e,0x2bc08726,0x10c08f32,0x29c1d414,0x3076ae,0xd06d0871,0xd74a45c1,0x53710030,0xd8c1d314,0x60917d,0xd1ae5572,0xa965f5c1,0xe761003c,0xf06bc1d3,0x7100305a,0xc1eb6892,0xa48a0eb6,0xd2907101,0x4df0c1d2,0x7100307f,0xc1ec2c51,0x188b229f,0xb0e07100,0x6d01c1d3,0x71003033,0xc1cfb5e2,0x60b21c04,0xa4287100,0x97f2c1d2,0x71003062,0xc1eaf7e0,0xc88ee254,0x95f47101,0x151ac1d3,0x7100301c,0xc1d12156,0x78857681,0x4ba77100,0x94eec1ed,0x7100548c,0xc1ebc278,0x308fffe1,0x69ec7100,0xefbfc1cf,0x7100549f,0xc1d26be9,0x5439b2e6,0x91cc7100,0xbcd3c1e7,0x7101e099,0xc1d0f0d1,0x486ce864,0x60047100,0x635cc1ea,0xf1021095,0xd36d2404,0xdf20eac1,0x8f322d3e,0xeebd47c0,0x8e3a4dc1,0xb710060,0x1c1d250,0x48218a,0xe8441f71,0x9ae62ac1,0x6710048,0x16c1d360,0x30b989,0xeb33d571,0x968de9c1,0x2710048,0xd5c1d0b6,0x604226,0xceee9f71,0x79172fc1,0x4f10090,0xc1d225ce,0x3ee6edee,0xc087f860,0xc1d098e0,0x2428e475,0xfec06200,0x4311c1f0,0x3b710d80,0xa3c1d218,0x24c005,0xbf4b04f1,0x14b8c1f0,0x323cc090,0x8b5cc08f,0x4be2c1ea,0x6200789e,0xc1f0c00e,0xd384e36,0xd3491671,0x2d4d40c1,0x87710084,0x92c1ef0d,0x2b88e88,0x6cb604f1,0x70f8c1d0,0x6e7a3ef1,0x5e85c082,0xc34cc1d0,0x71000cc8,0xc1d2007d,0x60335c5b,0x23067100,0x630bc1ed,0xf100308c,0xd344d504,0xc87b14c1,0x8f322dbd,0xf26498c0,0x913c7fc1,0x4f100fc,0xc1ce63b9,0x3efddb77,0xc07e02ac,0xc1ce54cc,0xcd3163c,0x40ae7100,0xd417c1eb,0x62003c89,0xc1f31f57,0x30a831,0xeab38962,0x74fe11c1,0x6603f210,0xc7c1d360,0x2dbebab8,0x97c08f32,0xa9c1eace,0x710ff0a5,0xc1f23269,0xb096505d,0x837c7101,0x4b71c1f4,0x71006c92,0xc1e967e7,0x5486dda9,0xf3b06200,0xbfd3c1f2,0x4f10024,0xc1d39bb0,0xbf215886,0xc08f322d,0xc1ea3c83,0x388dc828,0x19dc6204,0x7fe9c1f5,0x8371003c,0xedc1e8bb,0x3c85aa,0xea34da62,0xe423ecc1,0xeec9710f,0x27f8c1f1,0x6201989d,0xc1e8e549,0x10e094b6,0xd3ef3c71,0x6027fac1,0x48620054,0xc7c1f464,0x7106b468,0xc1e99c20,0xf8943c56,0x9a166204,0x81f3c1e7,0xdc621194,0x80c1f2b8,0x7100489c,0xc1e832de,0x848a5741,0xffe96200,0x9f15c1f4,0x6562003c,0xa9c1f6a5,0x710090db,0xc1d45ddc,0x608f2789,0xd0b67100,0xe400c1e6,0x71009c81,0xc1e83546,0x6091ef3d,0xdeb07100,0xdbc8c1e8,0x7103e49b,0xc1f27361,0xe0a5b761,0x7537101,0x1af2c1e7,0x71006088,0xc1d4e73d,0x48adcf9a,0x7abc7100,0xa357c1e7,0x71003c90,0xc1e5d896,0x547f86fd,0x65627100,0x7067c1e7,0x71004899,0xc1d58afa,0x30cbf51f,0xa13f7100,0x136cc1e6,0xf1001898,0x37ece10,0xefd9c2c2,0xab0457bf,0x55ea4bf,0xe704a3c2,0xab0414bf,0x41ebdbf,0xda0896c2,0xb00f0018,0x4f1295e,0xc2005233,0xc0307560,0xbfab041d,0xc2059b5b,0x548f5a21,0x7ad17100,0xb5b3c200,0x71005419,0xc205f5f3,0x186806c0,0x73e4af00,0x74fbc207,0x3eabf3c,0xf1735ec8,0x7d71510,0x1700cec2,0xab04143e,0x68f46bf,0x6c8191c2,0xab04573e,0xf626fdbf,0x28f45ec1,0x4f100c0,0xc1f21c57,0xc0373e2d,0xbfab03f3,0xc2067060,0x24eb9b24,0x51947100,0x5fbc1f4,0xb5002427,0xc2070756,0x3f8a469d,0xa4ab041d,0x5eec0f49,0x8fb29645,0xea21c1e9,0xb014c015,0x573fc101,0x16bfab04,0x9ec1ebd7,0x900aed,0x101e003,0x77440018,0xe0c1ea5f,0x2100301,0x44001801,0xc1e90264,0x2996021c,0x18c20338,0x144015ea,0x40940210,0xbfab0457,0xc1e7c286,0x75710228,0x9ec20214,0x180aed,0xe6a24c71,0xc28e9bc1,0xcd7101d4,0xbdc2014c,0x1812e0,0xe5a3e871,0xa9999ac1,0x1c030018,0x1d40e602,0x54bfab04,0x74c1e1f1,0x1dbf8a46,0x3001021c,0xc9494400,0x234c1e4,0x1021003,0x1a440018,0x34c1e414,0x7caa7102,0xd22dc1fd,0xf001823,0xf1115f1c,0xfaf9a804,0x3b87dbc1,0xab04ab40,0xf9d903bf,0x28f45ec1,0x74b5003c,0x91c1e2e1,0x57be6c81,0x4c80ab04,0xab0457b1,0xf80000bf,0x29999ac1,0x9a960024,0xbbc1e072,0x363e8999,0x18010204,0x3c0300,0x101f808,0x41440018,0x10c1e31f,0x4261b402,0x3387c1ef,0x3fb4030,0x14e30ab,0xb4030024,0x1740100,0xf0bfca3c,0x180100e4,0xa5e4400,0x114c1ef,0xe3afa5a5,0xc337dac1,0x2003f33f,0x240101,0x1015c03,0x6744000c,0x74c1ed66,0x18c0301,0xa5001801,0xc1e8a9e4,0x401083fd,0x21003f3,0x3008401,0xc010204,0x1d40300,0x3003001,0xc010204,0x7100,0x6666c1f8,0x715eb046,0xc1fb3caf,0xc44b3e1,0x5f700800,0xf60de171,0x45c9d6c1,0x48030018,0xc015a,0x55f880f,0xf235e771,0x40eb10c1,0x1d710024,0x8ac1f056,0xc3cb0,0x774c388,0x97d94dc2,0xb15d543f,0xbfae6706,0xc1ecbdb4,0x2430c693,0x8c04f100,0x20c208f1,0xfb3fc9f1,0xcabfb9af,0x2ac2094d,0xcb057,0xeb0ac371,0x2929f1c1,0xa0080024,0x8900715f,0xcb21c208,0x710024e2,0xc1e7e4c9,0x2416dd55,0x148a7100,0xcd96c208,0x710018fa,0xc1e676b8,0x180c4a3c,0x1a04f100,0xe5c206d1,0x94400998,0x56bfb667,0xbac1e524,0x1800d9,0x4d5fac0f,0xbeca44,0x7100f0c2,0xc1dfe29e,0x8394328,0x5910f101,0x4c20316,0xfb404890,0x5dbfb9af,0xf9c1df81,0x63ef84a,0x89bfae67,0xbdc2024f,0x184f18,0xdf46c571,0x790f73c1,0x31710018,0xc2c1fe6b,0xb43fa3,0xdf333344,0x7101a4c1,0xc20182b9,0x3054dca0,0x1d40300,0xa60000f,0xdf698487,0xcf2bcbc1,0x10054be,0x88870030,0x17c1e00b,0xb4bf4d66,0x180100,0xe1167971,0x97d94dc1,0x9c030018,0xfbc04400,0x78b9af,0xb4000c01,0xc1de1ce8,0xbfc9f120,0xd8b9affb,0x180100,0xb1526804,0xbfb9affb,0xc1deee00,0x24e2cb21,0xd66d7100,0x48a6c203,0x71002441,0xc1dfd6eb,0x18facd8e,0x603c0f00,0x24c0365,0x3008401,0xc010288,0x52a40300,0x4400a801,0xc1eb60ee,0x540f00fc,0x54042960,0x96a74303,0x1b0c02b,0x96a74054,0x360c02b,0x96a700f5,0x826bc02b,0x4c38c1ee,0x60804037,0x440354ba,0xc02b96a7,0x80350330,0x360ba60,0x44603008,0xbfba6080,0x840f003c,0x30040960,0x60780c03,0x35033004,0x6cba6080,0x96a75303,0x3055c02b,0x60804403,0x3cbfba,0x96a701f4,0xefb6c02b,0x3bb0c1e3,0x60803fe9,0x3cbfba,0x2b96a7b1,0xe2dac2c0,0xcf53cec1,0x3c040018,0x96a7b100,0xe72dc02b,0x24bcc1e1,0x40018b4,0xa743003c,0x64c02b96,0x180102,0x8003c04,0x24080030,0xfd0d3500,0xf4003019,0x2b96a701,0xe069eec0,0x753c68c1,0x2b96a73f,0x440360c0,0xc02b96a7,0xa7440354,0x48c02b96,0x96a74403,0x33cc02b,0x17001807,0x10030be,0x4803000c,0x60bf1700,0xc0100,0x1700a803,0x10084bf,0xd8030018,0xc0100,0x100c003,0xe403000c,0xc0100,0x17014403,0x16174c0,0x5003000c,0xc0101,0x1017403,0x9803000c,0xc0101,0x101f803,0xe003000c,0xc0101,0x1020403,0x2803000c,0xc0102,0x1024c03,0x7003000c,0xc0102,0x1027003,0x9d44000c,0x14c2085c,0x5f40401,0x2b96a784,0x83f51c0,0x30138c2,0x5c015d90,0xf21f3501,0x350048f9,0x60fbe12c,0xcb094400,0x180c207,0xfdca1935,0xf4040084,0x96a77505,0xa9e3c02b,0x300a8ff,0xe80d0510,0x18045f,0x2b96a739,0x25445fd0,0x28c20608,0x5ee00302,0x44033001,0xc204c4a4,0x9c440270,0x44c2040d,0xc0301,0x44002401,0xc20349dd,0x9e4402c4,0xe8c2027a,0xa1267102,0xc693c201,0x3002430,0x40450078,0xc19fd0d,0x96a73400,0x1009c2b,0xcc0301bc,0xdbf4400,0xcc19fd,0x4003c01,0xfc070018,0x180100,0x1011403,0x2c03003c,0x180101,0x1015003,0x50030018,0x180101,0x1017403,0x9803027c,0xc0101,0x1056403,0x7c03009c,0xc0105,0x1056403,0x4c03000c,0xc0105,0x65f7871,0xefe09c2,0xb008000c,0x750035e,0x300c001,0xd4015dcc,0xfe04f101,0x55c20c0f,0xa73e8ca2,0x8dc02b96,0x61c1f39d,0x21c7f33,0xf5cd7771,0x807fefc1,0x1804000c,0x4b0045a,0x18cccd22,0x3c0300,0x3500a801,0x30fa3289,0x77937100,0xd35fc1e0,0x6200d82f,0xc1e20594,0x4a4436c,0xdf05a871,0x229179c1,0xd1710018,0xbfc1e3ad,0xc47d2,0x1009003,0x73350114,0x84fc62,0xddb18e4b,0x15cd0c1,0x65710030,0x16c20bc3,0x3051a4,0xfe8d2171,0x7c364cc1,0x740800a8,0x5c64035e,0x96a73fc1,0x7cdac02b,0xd845c1dc,0xf1003c05,0x57ff04,0x780c28c2,0x2b96a7c0,0xe744f7c0,0x5c1933c1,0x98710018,0x20c1e92f,0xc64b8,0xeb2be671,0x6c460fc1,0x9f71000c,0xa9c20b2b,0x6cac87,0x1643d71,0x72b9f5c2,0x3e71003c,0x96c1da77,0x60cd41,0xac46171,0xcd4196c2,0xd710024,0xfc2026a,0x246c46,0xd9a8c171,0xac87a9c1,0x82710024,0x8ac20a4b,0x24ed06,0xed378571,0x72b9f5c1,0x3710060,0x28c1ef50,0xc780c,0xd8fe7b71,0x8affd2c1,0x18710030,0xbfc20629,0x4847d2,0xd8793771,0x51a416c1,0xa4080018,0x72df715e,0x364cc1f1,0x44003c7c,0xc1d81994,0xc80301d4,0x180101,0xd7e00444,0x301e0c1,0x180801d4,0x1bc0100,0xd7cccd31,0xe007084c,0x240101,0x101d403,0x6003000c,0xc00100,0x101a403,0x80030018,0xc0101,0x100a803,0xcc030024,0xc0100,0x1017403,0x14030024,0x180101,0x1015003,0x38030018,0xc0101,0x1015c03,0xc8030024,0xc0101,0x3683444,0x4401a4c2,0xc2045d84,0xe00301bc,0x12c0101,0x548d844,0x30228c2,0x18010240,0x1500300,0x3006001,0x18010288,0x1500300,0x3001801,0x180102b8,0xc4374b00,0x2c4c207,0x3001801,0xc0102b8,0x7d2c4400,0x2d0c208,0xf5c4004,0x4a55f7c,0xe33403a8,0xe4978d,0x4198c01,0xe33401b0,0xd8978d,0x4001801,0xe33501e0,0x348978d,0x978de335,0xac0c0420,0x21c045f,0x978de335,0xe335036c,0x474978d,0x978de335,0xe3350378,0x270978d,0x978de334,0x80102e8,0x33c041c,0x978de334,0xbe4402dc,0x48978de3,0x240103,0x1000c03,0xdc0400a8,0x3c0702,0x3002401,0x24010054,0x480300,0x31ba801,0x24010084,0x3480400,0x17009007,0x100d83f,0xcc03003c,0x300100,0x100fc03,0xf0030018,0x300100,0x1046803,0x38030024,0x180101,0x1022804,0x2c032d24,0x1800704,0x3003001,0x3001030c,0x1a40300,0x3001801,0x18010318,0x2b80400,0x978de335,0xe33504ec,0x2e8978d,0x1609c07,0x1804009c,0x240703,0x4001801,0x54070348,0x180100,0x104bc03,0x3003006c,0x840103,0x104f803,0x60030018,0x180103,0x1053403,0x90030018,0x180103,0x105a003,0xc0030018,0x180103,0x34046804,0xdc978de3,0x240105,0x103f003,0x74040024,0x8de33404,0x1063097,0x38030024,0x240104,0x34048c04,0x5c978de3,0x180104,0x106a803,0x8c0401e0,0x8de33504,0x706d897,0x30010018,0x3c0300,0x300fc01,0x18010054,0x480300,0x3027001,0x24010078,0x9c0300,0x3002401,0xbf17009c,0x180100d8,0xcc0300,0x3003001,0x240100e4,0x1080300,0x3001801,0x18010120,0x1380300,0x3001801,0x18010150,0x1680300,0x3001801,0x18010180,0x1980300,0x3001801,0x180101b0,0x4c80400,0x3401d401,0xe0c209c1,0x4bc0401,0x978de334,0xa80104bc,0xc0300,0x3004801,0x18010024,0x3c0300,0x3001801,0x18010054,0x7100,0xc1cc,0x710018b8,0xc2120000,0xf8b80000,0x18031f,0x1000c03,0x24030018,0x300100,0xdfcec044,0x21000ccf,0xccc40,0x44002402,0xc0cfdfcc,0xd340e34,0xc19fd,0xfd0d3fc1,0x6d48c019,0x5bfbc1de,0x71000cd4,0xc1dfd6eb,0xcfacd96,0x301f400,0xc9c1e19b,0xd400577,0x10c019fd,0xc1e341,0xc4467109,0xddcec1e4,0x71001819,0xc1e6203f,0xc25f77f,0x51077100,0x27e5c1e7,0x71000c33,0xc1e85327,0xc4148a6,0x73f57100,0x6e09c1ea,0x44000c4b,0xc1ecfa8d,0x90030978,0xc9c0100,0x44006004,0xbfba6080,0x80440060,0x60bfba60,0x60804400,0x90bfba,0xba608044,0x44006cbf,0xbfba6080,0x80b100b4,0x41bfba60,0xf0c1de92,0x54d8c0,0xb1008404,0xbfba6080,0xc1eaba3d,0xf84c95b3,0x84040d,0x2005401,0xf00f12d8,0xb5bbff60,0xc1e90dff,0x3fc615a9,0xb0b16a8c,0x60fc0f13,0xb15d31bd,0x31144c05,0x78b16abe,0x15d33115,0x402c41b,0x8f1177c,0xbfb16abe,0xc205a6c7,0x3e64f377,0xbfb16abe,0xc1f63619,0x241a6c76,0x177c0400,0xb16abeb1,0x5871dbf,0xe3f983c2,0x1a710024,0xd2c1f470,0x241871,0xf177c04,0x715d6120,0xc2043db3,0x6ca348a1,0xcb764400,0x6264c1ed,0x4aeda71,0xc28e9bc2,0x2c710018,0x5fc203bc,0xcbaeb,0xec514ab5,0xf7857bc1,0xb16abebf,0xbeb117ac,0xc0bfb16a,0xe4c20329,0x24d0f5,0xeaf0a271,0xe537fcc1,0xb8040024,0x6abeb117,0x87afbfb1,0x37fcc202,0x710024e5,0xc1e9ac80,0x24d0f5e4,0x19c80300,0x630c4017,0x71002401,0xc1e887a9,0x24baeb5f,0x17c40400,0xb16abeb1,0x11a45bf,0x3db2bc2,0x9b710030,0xa1c1e784,0x24a348,0xa217d004,0xbfb16abe,0xc200520a,0x30d39e,0x5615c0f,0xff00be71,0x109cd8c1,0x65710048,0xcac1e5ec,0x486017,0x117d004,0x4e6101b0,0x2a39c1fd,0x71002415,0xc1e55ab9,0x2429c3ad,0x17dc0400,0xb16abeb1,0xfb8fe6bf,0x1871d2c1,0xc6870024,0x83c1e4f1,0xe0bee3f9,0x180104,0xf9c9e771,0x1a6c76c1,0x7171000c,0x77c1e4b2,0x2464f3,0x717e804,0x24010258,0x9d464800,0x270c1e4,0x29999a31,0xe0030018,0xc0119,0x1026403,0x2403000c,0x603e1718,0xc0100,0x717e804,0x1801009c,0x1a040300,0x3003c01,0xc010288,0x83563500,0x300d8f2,0x1801027c,0x180c0400,0x1010807,0x180401a4,0x6abe7518,0xff42bfb1,0x30150f0,0x24011908,0x15c0300,0x3000c01,0xc011938,0x1980300,0x71000c01,0xc1ef0a5e,0x6c19b5b3,0x5bec4400,0x1bcc1ef,0x7183004,0x240102a0,0x18540400,0x1020407,0x54040048,0x6abe3418,0x11a58b1,0xb8030030,0x240102,0xb1d904f1,0x7e84c204,0xcd573f66,0x4cc3bfa1,0xf6b2c204,0x71000c8d,0xc203d336,0xca7501a,0x61d40f00,0xa7974411,0x5688c202,0x861bc08,0x4f161b0,0xc2006fb5,0x4004cc32,0xbfa1cd57,0xc1ff33f4,0xc0b1d97,0x76bb7100,0x1805c1fd,0x71000c10,0xc1fbac0a,0xc13af32,0x540300,0x35d9001,0x18010078,0x900300,0x71000c01,0xc2050180,0x242ed773,0xf304f100,0x93c2053a,0x57beeb02,0xa4bfa1cd,0x8dc2055d,0xc6c25,0x1d61680f,0x919c0df4,0x3372c202,0xd1f2bfd2,0x3939bf9e,0x75dec202,0x9a24bfda,0xd3afbf9e,0x5f04c202,0x519d0cf1,0xce07c202,0x79ffbfdd,0x9a60bfa0,0x3487c1e5,0x9a24be5a,0x8633bf9e,0xb102ace5,0xbf9e9a24,0xc202dd7a,0x48c844d8,0xa1d77100,0x3ad2c202,0x710030d4,0xc2035f3b,0x54b2257d,0xdaae7100,0x9eb6c203,0x71000c9b,0xc2043158,0x308c21b8,0x44f94400,0x5fe8c204,0x5be404f1,0x313cc204,0x759fbf85,0x9520bf9f,0x851fc204,0x71002463,0xc2049d34,0x3c55933e,0x65627100,0xc875c204,0x71006085,0xc204aa55,0xc65b739,0xe3c07100,0x95d1c204,0x7100302c,0xc204e29f,0x3021cbef,0x7504f100,0x3cc2051c,0xf2bee7fa,0xa2bf9ed1,0x5fc20514,0xc0d946,0x53eb471,0x691969c2,0x4c030018,0x18015c,0xf43ce722,0x9a248405,0x44b8bf9e,0x15cc1e5,0xf02d8422,0xcd578400,0xd6bbbfa1,0x48c1e5,0xe58a1a44,0xf1018cc1,0xe6212604,0x22b50bc1,0x9ecac5bf,0xe60982bf,0x238c43c1,0x4400cc,0xbcc1e5fd,0xace07101,0xc5a0c1e6,0x4400a856,0xc1e6c597,0xd97100d8,0x19c1e695,0x3057e3,0xe69c4d71,0x667e84c1,0x547101ec,0x13c1e75e,0x308481,0xe7760e44,0x44012cc1,0xc1e84aa4,0x39440150,0x38c1e748,0x61140801,0xe8341b71,0x9c7df6c1,0x8944003c,0x8cc1e941,0x1f1c7101,0x4df9c1e8,0x71006c9d,0xc1e878be,0xca602eb,0x59947100,0x501ac1e8,0x440078a7,0xc1ea58a2,0x3c710204,0x97c1e990,0x24bd90,0xe9734371,0xbf0d06c1,0xc440024,0xf8c1ea45,0x597c0301,0x44002401,0xc1eadcc9,0x80f0258,0xd1440561,0xf4c1eab0,0xcb527102,0x4ae4c1ea,0xf003cd3,0x44056108,0xc1ecdda8,0x35f04,0x84015a,0xec26f771,0xe6fc40c1,0xcd71003c,0x2ec1ecbe,0xcee75,0xee461471,0xfb55bdc1,0x5710204,0xf1c1ecb2,0x228ef83,0x7160fc08,0xc1ee3821,0x20fcbe49,0xe510f101,0x7fc1ef3d,0xf2c00315,0xbfbf9ed1,0x90c1efc3,0x24c0044f,0x95bf9e9a,0x32c1ef20,0x41404cc,0xef3240af,0x3c3bdc1,0xfc759fc0,0x64711360,0x92c1f0da,0x300a08,0xf2f1a171,0xe29f6c1,0x26710054,0x16c1f294,0x180ef9,0x1570c03,0xe7710060,0x27c1f49a,0x24114a,0xf45b4671,0x12891ac1,0xfc0f0024,0xcd710560,0x3ac1f62d,0xb413eb,0xf64b9771,0x132d02c1,0xf5003c,0xc1f6294d,0xc01558b4,0xbfa079ff,0x54fb6519,0xe5f3500,0x710084fd,0xc1fd1c62,0x600fb3ee,0xb62d7100,0x98fac1fe,0x7100480a,0xc1feac9a,0x4809d346,0xbf197100,0x5137c1fe,0x7100240b,0xc1fec6c2,0x540bef6b,0x24097100,0xd5fc200,0x44003005,0xc2001e21,0xe44012c,0x44c20061,0xdcf64401,0x180c200,0x66e044,0x710138c2,0xc201293b,0x74f72b99,0x912c4401,0x1d4c201,0x1e4af71,0xe5cac9c2,0x19710018,0xefc20217,0x1bcd5c7,0x172a571,0xe6d9d7c2,0xcf71000c,0x9bc20336,0xcae54,0x3af9c71,0x98495ec2,0x4b71000c,0x8cc200c2,0xcf5f3,0x417a171,0x80f188c2,0x8c71000c,0x7c20007,0xcc017a,0xf560c00f,0xeff0e844,0x30114c1,0x3f35012c,0x5889a24,0x44000c01,0xc1ee7b6a,0x68030150,0x180101,0x105c403,0xb64b000c,0x98c1ed1a,0x180101,0x105f403,0xc00f000c,0x3371d160,0xb5c1e69c,0x2701e54,0xb2036003,0x9e9a2440,0xfb527cbf,0xc2d73c1,0x60c00f00,0xab107105,0x5f7c1f9,0x71002410,0xc1e5ff41,0x8455881a,0xb4697106,0x2d02c1f9,0x62001813,0xc1f80000,0x24a3ec,0x84eb8322,0x180406,0x24ce6c22,0x54f03c00,0x440048f6,0x9e9a243e,0xc0107b0,0x4200300,0x35005401,0x9cf4ad84,0x6cc0300,0x3002401,0xc0100a8,0x48c0300,0x71003001,0xc1f30d5b,0xc0b1e69,0x3ac17100,0xcbefc1e6,0x301e021,0xc0100fc,0x5704f100,0xcbc1f2ea,0xc5400ef6,0xffbf9eca,0x83c1f177,0x3006df,0x106e403,0x10710024,0x1dc1e724,0xc5100,0xf1536671,0x9d346c1,0x94030024,0xc0102,0x1057c03,0xf003000c,0x300106,0x1627003,0xa003000c,0xc0102,0x1070803,0xc744000c,0xacc1e8a0,0x6000302,0x3001801,0xc0102ac,0x7080300,0x3000c01,0xc01630c,0x6600300,0x3000c01,0xc0102b8,0x63540300,0x3000c01,0xc0106cc,0x5cc58700,0xce07c1eb,0x6cc3fdd,0x710a4401,0xc1ec0f30,0xce8cbd1,0x6d80300,0x759f3f44,0x17072c9f,0x1072c3f,0x53710018,0xe1c1e9a3,0x18bc95,0xea232071,0xca33a4c1,0x68030054,0x480107,0xe92c6371,0xb3250bc1,0x8c030024,0x3c0107,0xe88d4771,0xa52767c1,0xbc030018,0x300107,0x107f803,0xe0030018,0x300107,0x107f803,0x2803000c,0x300108,0xe7878871,0x8cdc01c1,0x9c080018,0x353d7160,0xc875c1e7,0x3009085,0x30010894,0xbeee7100,0xb392c1e6,0x71003064,0xc1e620de,0xc2d7b42,0x8e80300,0xf002401,0x714160a8,0xc204ef5e,0xd822b3ff,0xa9907100,0xc5a0c204,0x71000c56,0xc204b514,0x8457e319,0x60780f00,0x3c3c4411,0xf0c204,0x3e5f244,0x44012cc2,0xc203b95d,0xa1440150,0x38c203c3,0x2e564401,0x1a4c203,0x337e244,0x710180c2,0xc2037c20,0x20b4dfa4,0xe69a4401,0x1d4c202,0x940b5803,0x9ed1f23f,0x29a57bf,0x710204c2,0xc2024227,0x18dbaf3a,0x4a787100,0xd341c202,0x300b4dc,0x180106fc,0xec857100,0xfc40c201,0x80018e6,0xfd716054,0xf1c201a6,0x6cef83,0xe3f071,0xfcbe49c2,0xfc710030,0x43c20135,0x18f98e,0x44078003,0x9ed1f240,0xc0107a4,0x7800300,0x759f40c1,0x1c29bf9f,0x5209c1ff,0x71001809,0xc1ff259c,0x180a0892,0x6bda7100,0xf916c1fd,0xf1000c0e,0xfd720204,0xf9b6fc1,0xa079ff40,0xfb9fe9bf,0x11c750c1,0xba710030,0x1ac1fba4,0x241289,0xfba8dd71,0x132f7fc1,0x33710024,0x3ac1f9d2,0x2413eb,0x560540f,0x35603008,0xfcf453f6,0x60240f0c,0xacec714d,0xbe3cc1ef,0xf00b405,0x71296024,0xc1ee2b20,0x98fe0e41,0xa440301,0xcd573fc1,0xcdafbfa1,0x39d2c1ec,0x3018ced,0x24010a80,0x60180f00,0x7004f105,0x90c2044d,0xabbf4dd9,0x58bf9b06,0xa6c20490,0xc1bf1,0x5600c0f,0xb18714f9,0x304c204,0xc311bed0,0xce71bf9a,0xb6d0c204,0xcc5cbed2,0xdda3bf9b,0x4fecc204,0x6abbe52,0xf1600c9b,0x4da2a04,0xd3cf4fc2,0x9d055cbe,0x4f796bf,0x54b7b3c2,0x1431000c,0xcd804d8,0x9ac31171,0xe64fd7bf,0x11b10dbc,0x28bf9ac3,0x36c1e663,0x6050e7,0xe69cf144,0x44006cc1,0xc1e6df4f,0x10f1009c,0xc1e6fcb3,0xbf1ae610,0xbf9ac311,0xc1e6c41f,0xbf1ce92d,0xbf9bcc5c,0xc1e7819e,0x184c7853,0x5fdc0800,0xe82a8f71,0x7c4bf5c1,0x4f10018,0xc1e73486,0xbf503409,0xbf9d055c,0xc1e7f5e7,0x3c7f9303,0x58d40300,0x71002401,0xc1e7e08c,0x248073a3,0xc4117100,0xebc4c1e8,0x71002496,0xc1e9ca11,0x20abb3d9,0x7404f101,0x33c1e9e2,0x11bfaa8d,0xcabf9ac3,0xb3c1e8af,0x3097b4,0xeaeda671,0xbea99bc1,0x79710018,0x69c1e9a0,0x18adaa,0xec156671,0xd1259ac1,0x2d710018,0xc7c1ed57,0xce1d8,0x715fc408,0xc1eea025,0x60f23e64,0xb03b7100,0x9eb2c1ee,0x710024f0,0xc1ee9144,0x84f3bee4,0x10017100,0xcbbc1f0,0xf0024ff,0xf1d5fb8,0x71055fac,0xc1f4ba57,0x180c08c4,0xbff4b900,0x1876c1f4,0xc311c00b,0x715f889a,0xc1f80000,0x180d8145,0xfc00f500,0x27c1f7ff,0xe3c00f66,0xcebf9ba9,0x24f9a1,0x355f7c08,0x48fb400c,0x6f04f100,0x57c1f9a9,0x5cc00f79,0x30bf9d05,0x65c1fcd7,0x48081a,0x355f7008,0x6cfe6ecc,0x63c27160,0xf30ec1fe,0x71002403,0xc1ffe260,0x8fd570c,0xafed4401,0x120c200,0xa7e244,0x30120c2,0x24015c64,0xff987100,0x8eefc201,0xf0120d2,0x71055f34,0xc2029477,0x24bff2fe,0x892d4400,0x1b0c202,0x415f400f,0xff5f340f,0x6c038fff,0x44401703,0x5d600161,0x15e4403,0xb4030354,0x240103,0x1615003,0x3408000c,0x3f0035f,0x71001801,0xc1f99982,0xc01ee6c,0xc2337100,0xc101c1e7,0x305d04c,0x1801042c,0x5f400f00,0x4680305,0x3002401,0xc010480,0x667e3500,0x30054f6,0x3e170624,0xc010060,0x4bc0300,0x35003001,0xa8f4d0ee,0x6480300,0x3002401,0xc0100b4,0x5040300,0xf003001,0x3115f4c,0x20010660,0xec1b7101,0xda40c1e8,0x35000c47,0x44f19c3e,0xc12e7101,0x3e4fc1f1,0x30018f1,0xc0105a0,0x4e8b7100,0x4988c1f0,0x3000ce6,0xc010690,0x5f580f00,0x60c0311,0x71003001,0xc1eeeedf,0xcd91d04,0x6840300,0xf000c01,0x8355f58,0x20035f4c,0x5c3f4407,0x6e49bcc,0x55c3f44,0x44078c9d,0x9b06ab3f,0x18010750,0x5f4c0f00,0x44bb7111,0x4fecc1e6,0xf1002452,0xe64bac04,0xd3cf4fc1,0x9d055c3e,0xe610d5bf,0x54b7b3c1,0x8803000c,0x600108,0x108a003,0x9e71000c,0x53c2045a,0x904f20,0x108d003,0xba71000c,0xa3c2040f,0x848073,0x39df771,0x96ebc4c2,0xf8710018,0xd9c2031a,0x3cabb3,0x3a81b44,0x300c0c2,0x18010600,0x2fc47100,0xaa69c203,0xf003cad,0x3055ef8,0x30010678,0x5eec0f00,0x7f803a1,0xab4009f1,0xb6bf9b06,0x5c1f318,0x5c4009df,0x34bf9bcc,0x6c1f191,0x1804d7,0xf186fe35,0x64035f88,0xf00108,0x7e6004f1,0x5bd1c1f1,0x55c4006,0xf8c6bf9d,0xfb9cc1ef,0x3000c00,0x68010894,0x44c24401,0x6030c1ed,0x1d5ebc0f,0x1090003,0x8d710180,0xd5c1eab0,0xcc224,0xe8dc1a71,0x95fdacc1,0x48030084,0x180109,0xbf4204f1,0x6751c203,0x59753f16,0x23c8bf96,0x3e10c203,0xf000c74,0x71055e80,0xc1ffa1f0,0x24e47903,0x32397100,0x57acc1fe,0x71000cef,0xc1fcb33b,0xcf7e847,0x28a67100,0x15a9c1fb,0x8000cfe,0xc0085e08,0x8507ff5d,0xddc2040e,0x75be4b23,0x7bf9659,0xd7c1e9e1,0xf4bf7187,0x135d9c37,0x1531003,0x8cb40030,0xdac1fc9c,0x11bff33b,0x53409272,0x5975bfc1,0xa85bf96,0x4724c1e9,0x3000c46,0x240156b8,0xafd37100,0x5450c1ea,0x3003c8e,0x180155bc,0x898f7100,0xed6cc1ea,0x7100308f,0xc1ff8c3e,0x24e1ef95,0x7d1b3500,0x715c94ff,0xc1eb9f73,0x18a285d3,0x56100300,0xe2003c01,0xc1e7cf00,0x0,0xbf965975,0xce224,0x948fc9b1,0x72a2bf,0xd502c5c2,0xb6710030,0x82c20069,0x30d357,0x115d780f,0xedec0371,0xc47b9ac1,0xda440030,0x30c2019d,0x54fc0300,0x44005401,0xc1ef2c93,0x29710054,0xac1ef01,0xc0d767,0x2304744,0xf00a8c2,0x71115d6c,0xc1f05e10,0x3ce47903,0x582c0300,0x35007801,0x38f1ebae,0x5d6c0f01,0x5700f529,0x50c2031b,0xc9bf731d,0x74bf948f,0x1b0f363,0x1566403,0xa5710018,0x40c20356,0x78428a,0xcc017d22,0x5d780f0c,0x71e67115,0x5cb8c203,0x71004845,0xc1f4e698,0x48f94b73,0xdb167100,0xe94fc1f4,0x30018fc,0x18015910,0x71617100,0xf46bc1f6,0xf000cfc,0xbf1d5d78,0xc1e7f602,0xbe4a33be,0x78948fc9,0x1f42a5d,0xc1f80000,0xc000eee1,0xbf948fc9,0xc203f79f,0x6b710084,0x93c1e831,0x60c93a,0xe81ea571,0xca2984c1,0xc5710324,0xd4c1f991,0x1f8fef3,0xf98e9f35,0x686200c0,0xf0c1f994,0x4400484f,0xc1e8cc42,0xcc7100e4,0x95c1e893,0xfc15b5,0x355d9008,0x20fb1968,0x5d9c0f01,0x8055afc5,0x9803c1f5,0x549bbdf2,0xf1135d9c,0xf00fb100,0xf6c482c1,0x775611bd,0xed5bd9bf,0xa13903cc,0x5db481f2,0xea7128f1,0xf56ac1f0,0x1c76beed,0x12d1bf77,0x23eac1ed,0x692fbf38,0x8f2bf86,0xce4ac1f0,0xf2a1bf61,0x2fb5bf81,0xaf75c1eb,0xcf3abebb,0xf482bf88,0x1ee6c1f1,0xf00188c,0xf1055df0,0xf7091d04,0x7e279ec1,0x771c76bf,0xf6b7a4bf,0xa9049bc1,0x24f50030,0xc1f81d11,0xbf301909,0xbf6e6df0,0xc1ee417c,0xbf8d5454,0xbf88db73,0xc1f1946e,0xbfbb16e3,0xbf897f39,0xc1f9e9f0,0xbf7877ee,0xbf775611,0x44f9e4ba,0x5e380f5e,0x8b7f711d,0xb3abc1fc,0x8008452,0x7e355e44,0xc0fe0b,0xfa7fca62,0x5047cbc1,0x78f0b901,0xacdac1fd,0x1672bbfa,0x355e5c6e,0x8fff70e,0xa72e8101,0x41ffc1fa,0x5bc8bd24,0xff2123f1,0xea0360c1,0x772592be,0x173e9bf,0x3395b3c2,0x8623e2bf,0xdf44bf,0x8d5465c2,0x88db7bbf,0x9d35bf,0x1a265fc2,0x7cc61ebe,0x15213bf,0xbff10c8,0xbf81f2a1,0xc1f6ac59,0xbca4f65a,0xbf66e2a8,0xc1f6b361,0xbd23dd55,0x5ea4e2a8,0x4001711f,0x2f27c1f9,0xf003c72,0x3eff5ea4,0xfff04fb9,0xf6c482c1,0x7756113d,0x8f45eb0,0xc1ff1593,0x3eedf56a,0xbf771c76,0xc201769a,0x3f3823d9,0x2886692f,0x3f0df402,0xbf81f2a1,0xc2026829,0x3ebbaf53,0xbf88cf42,0xc203ca5c,0x3ec659f3,0xf4927211,0xc0105,0xfc8b7f87,0x52b39ac1,0x1702a03f,0x102a03f,0x3c030048,0x113f4406,0x5e89272,0xf1000c01,0xf93dbd04,0x24c272c1,0x6dc0553f,0xf9485cbf,0xa9049bc1,0x44b40030,0x6dc200df,0x7b3f8d54,0x72088db,0x3003001,0xc0106fc,0x9fe7100,0x7b9ac201,0x3000cc4,0xc010780,0x91d7100,0x278dc1f7,0xf00907e,0x3055f34,0x300107ec,0x61e00300,0x300b401,0x18010888,0xc910f100,0xec1f5cc,0x9b3e422d,0xa1bf6854,0xbc1f345,0x753e9ed0,0xd4bf6e02,0xfec1f400,0xce29c,0x105ac03,0xe8030030,0xc0108,0xf5a21571,0x1ed0f6c1,0x6803003c,0xd80104,0x1046803,0x3681006c,0xcbc1f580,0x843df247,0xf2d06103,0x2390c9c1,0x710054,0xbec1f800,0x48fe2d,0x1064803,0xac71000c,0x45c1f567,0x30a365,0x104d403,0x50030054,0x240107,0x1073803,0xd271000c,0xffc1f558,0x302441,0xf456d2b4,0xcc244fc1,0x8963803f,0x24010834,0x7ec0300,0xf4000c01,0xf0de3b08,0xea02fbc1,0x7725923e,0xed1830bf,0x339581c1,0x8623d93f,0x3fc104d4,0xbf897f39,0xc1f082e5,0x30e02a67,0x9000300,0x3000c01,0xc0108e8,0x417bb400,0x545cc1ee,0xdb733f8d,0x1098488,0x54030018,0xc0109,0x109d803,0xb353000c,0xb8c1eb2f,0xf8030264,0x2580164,0x1072c03,0xb6440024,0x40c1e952,0x30b94402,0x27cc1e8,0x415fa00f,0x985104f1,0xe37ac1f0,0xe673e04,0xfd5abf75,0xa355c1e9,0xf00846f,0xaf355fac,0xc1f4d6cd,0x3ffe40af,0x5fac3bde,0x93c0313,0x8fc93fc1,0xdf64bf94,0xaf60c1f1,0x715dc0ec,0xc202a816,0xc8e5450,0x9fc0300,0x35002401,0xf4f1cdc7,0x73c2710b,0xef95c1f0,0x30024e1,0xc010a74,0x5fb80f00,0x3aab7105,0x96afc202,0xf0048a3,0x3055fc4,0x3c010ac8,0xd7a3710c,0x8d1c1ed,0x440054c6,0xc201142e,0xc40f000c,0x1a71295f,0x6ec2007a,0x84d668,0x10bd003,0xf4030060,0xc010b,0xeb8aab44,0x300a8c1,0x18010c30,0x99797100,0x434ac1ea,0x71003c8f,0xc1fca5df,0x18f5279a,0xc9517100,0x1d50c1e9,0x3001873,0xc0010c84,0xadac3500,0x716144fc,0xc1e9350a,0x30441388,0x1c344400,0x174c1e9,0x10ca803,0xc40f0030,0x8003595f,0xc940c10a,0x3bbf948f,0xd4c1f66e,0x9cfef3,0xd0ae003,0xc40f5fd0,0x92b90d5f,0xd1c07be8,0x78c20031,0x5facacc5,0x7be89239,0x1d715fac,0x4c203a2,0x24a511,0x715f9408,0xc205d1c1,0x189d7f17,0x5f7c0800,0x7e3ed71,0x941477c2,0x1710018,0x80c208e0,0xc8eb6,0x9d26a71,0x88ed63c2,0x7171000c,0x73c20aba,0xc82bd,0xb976971,0x7856b0c2,0xad71000c,0xffc20c68,0xc6a77,0xd2d9e71,0x5be93ec2,0xa971000c,0x5fc20de5,0xc4cb5,0xe904371,0x3ce7c9c2,0xed71000c,0x54c20f2c,0xc2c8c,0xfbb3171,0x1baf53c2,0xec08000c,0x5ee0085e,0xb95ed408,0xc2115c95,0xbfa85ba7,0xbc7be892,0x5eb0085e,0x11ee7079,0xde338bc2,0x92395e8c,0x5e8c7be8,0x11ec60b9,0xeae233c2,0x7be8923e,0x68085e74,0x5670b95e,0x71ebc211,0xe8923fab,0x715e507b,0xc210a220,0x18f4439a,0x5e380800,0x85e2c08,0x8f795e20,0xd9c20e82,0x5dfc3e3e,0x7be89239,0xae715dfc,0x11c20c57,0x246ba7,0x85de408,0x94715dd8,0xf0c209be,0x24896c,0xb1000c04,0xc0978de3,0xc208cb56,0x188f2d47,0xc0400,0x595dcc0f,0x7be892b1,0x38a3ac0,0xa55738c2,0xf37131e0,0x27c20268,0x90a85d,0xb1000c04,0xc0978de3,0xc20142dd,0x18aae4a8,0xc0400,0x978de3b1,0x18d3c0,0xacebd5c2,0xc040018,0x8de3b100,0xd76cc097,0x712ac1fd,0x40018ae,0x80f000c,0x923f115e,0x5e147be8,0xe892b102,0x84aac07b,0xc22fc1f5,0x6200a8af,0xc1f45477,0x1862fe,0x45e2008,0x92b1000c,0xc07be8,0x84c1f4fb,0x47a0979d,0x355e2c0f,0xd3ae3aa,0xcbf905c2,0x2c35613f,0x6104f15e,0xefc2054c,0x95c08c8f,0x1bc08271,0x11c1f2c8,0x7896a8,0xf2ab65ba,0x99e4fec1,0x84f5be40,0x3f15e38,0xd9c20fc9,0xf73fd83e,0x82c07e03,0xa3c1f730,0x30980f,0x287408ff,0x4a49c20f,0x6ffe3faa,0x4509c082,0x1115c1f8,0x6f63409f,0x125e3882,0xf4d7d0ba,0x9e844bc1,0x826e7a40,0x13ff5e44,0x32c20e29,0x603fb3e3,0x77c087f8,0x25c1f0e7,0x37409c7a,0x6fc08271,0x3dc1f268,0xd40a172,0x5e44806f,0x4114ff06,0x17c1f4ae,0xac40a6ab,0x7c07e02,0x20c1f03a,0xe640a451,0x22c07e05,0x35c1f21d,0xc140a9f0,0x5e687c58,0x908ff42,0xa0c20782,0xc1c08ba9,0xdec07e02,0x35c1fde2,0xc1c0a9f0,0x5e747c58,0x3808f906,0xd2c207a2,0x17c080f3,0x2fc08271,0x5bc20bb6,0x2a40185f,0x5e808f36,0xce7514f9,0x4e40c20c,0xfc7c400e,0xacf7c087,0x1249c207,0xf860c070,0x91fdc087,0xc615c20d,0x71974014,0x715e6882,0xc20b74a3,0xbc1eda49,0x404f149,0xa8c2087d,0x7ac0776e,0x14c0826e,0x8c20ad3,0x288235a,0x8874071,0x64cd9fc2,0x1cf10048,0xc20c2106,0x402118f0,0xc087f8a3,0xc20cffec,0x4024df26,0xc082726d,0xc209ba88,0xc07c8ea8,0xc07e0325,0xc20b2108,0x5426b4fe,0x8d9bb900,0xc8fcc209,0x6f48c068,0xf5e8c82,0xb9055e68,0xc20d9615,0x4034c159,0x747e1306,0xba54aa5e,0xee03c20c,0x7a01402b,0xea715e74,0x31c20abe,0xb45545,0xa4aa571,0x38a87ec2,0xfe710078,0x93c20989,0xc03dc8,0xad23971,0x3e84d3c2,0x247100c0,0x6cc20b01,0x2883acf,0xcefa04f1,0xf712c20b,0x704cc040,0xca8ec082,0x1d32c20a,0x800183f,0x4f15e5c,0xc20b4ec2,0x404b0e67,0xc0826f0d,0xc20c0acf,0x48233f8a,0xe510f100,0x5ec20c02,0x2dc01013,0x3dc08f32,0xcfc20d45,0xacc03c83,0x5c07e02,0x59c20917,0x844e35,0xf15e6808,0xd09d110,0x23fc3bc2,0x826ffcc0,0xbc8e8c0,0x5ba8b5c2,0x7e032540,0xc9232c0,0x151cd6c2,0xaf710054,0xb9c20c79,0x5401fe,0x98c2c71,0x556aecc2,0x82710090,0x8dc20851,0x545a09,0x8120a71,0x55a61ac2,0x247100d8,0x2bc20d0d,0x3c068a,0xa2a0b71,0x5f21e2c2,0xa4080318,0x4604f15e,0x5c20e72,0xb4c01d6e,0xc6c07e02,0x17c20d04,0x4b90dd45,0x7815471,0x6520e2c2,0xb0080054,0xd3d6715e,0xa9f8c20d,0xbf01500c,0xc208f09e,0x40718f54,0xc8827056,0x4d71065e,0x96c207e8,0xa86d23,0x55ed40f,0x9a61db9,0x7d670ec2,0x7e029b40,0xaabf5ee0,0xf9c206a9,0x76407bf6,0x5eec87fa,0x9f04f11e,0x96c20729,0x194083a2,0xfcc08270,0x84c20dff,0x78c3d8,0xf93e0bf,0xeb914fc2,0x7e0397bf,0xaf1e5ef8,0xc204e426,0x40867e4e,0x5f04fa46,0xc307ff07,0xbdc2054f,0x408c8b,0xe7c08270,0x1cc20e53,0xc2bfa20b,0x1f5f10fb,0xd6e404f1,0x9225c205,0x2b44093,0xea29c07e,0x262fc202,0xaa018c88,0xc20f2927,0xbfa968ad,0x5f1c71d6,0x3792862,0x30da3ac2,0x5f100f4e,0x2a04f135,0xcec21025,0xf3bfb21c,0xecc07e05,0xf2c20ead,0x1446297,0x115f100f,0x7bf004f1,0x5804c20f,0x6ebbbf7c,0x5a2dc082,0x94eec201,0xf100c08c,0xcb3104,0x8accabc2,0x978de340,0x21ec4c0,0x8fffe1c2,0x1c08021c,0xcffe715f,0x635cc202,0x7102ac95,0xc20e496e,0x98df20ea,0x5ef80f4f,0x5075bf89,0x44fac201,0x6f174099,0x125f0482,0xff3ff171,0x954e36c1,0x8ff039c,0xc1fd549b,0xc099e4fe,0xc084f5be,0xc210b714,0xbf31949f,0x1c7e06c8,0x4f1065f,0xc1ff1889,0xc09c7a27,0xc0827137,0xc200a146,0x4893843e,0xd7837100,0x6319c1fe,0x71016890,0xc1fd7e84,0x688e5029,0xbe08f901,0x4cc20fd0,0x7abec8c3,0x67c0826e,0xbac2019f,0x6040a113,0x5f1c7e02,0xc5f920ff,0x5120c1ff,0x5e6c0a4,0x5d95c07e,0x7b14c20e,0x322d3dc8,0xfef4c08f,0x723bc20d,0x8de33dc4,0x524ec097,0x43a0c201,0x7000c099,0x1e5f3482,0xe22210f1,0xdae0c20f,0x6f63bd09,0x1f4c082,0x7db7c20f,0xf8603dcf,0xe0a8c087,0xa831c1fc,0x800b491,0xcdbf5f40,0xc7c20e4f,0x2d3ebab8,0x5f4c8f32,0x98b47106,0xa5a9c202,0x800fc8e,0x4f15f40,0xc20e3228,0x3f215886,0xc08f322d,0xc20dd466,0x681e1933,0xc50623d,0xbfd3c1fd,0x89710894,0xe5c20fd0,0x5268ca0b,0xfae62471,0x927fe9c1,0x1cf10084,0xc2037efc,0xc0935c31,0xc0826f37,0xc20ed502,0x3f26fc9c,0xc087f860,0xc1fd4733,0x409d9f36,0xc08270ce,0xc2038d5b,0x788b94b6,0x8627100,0x27fac20e,0x71006c60,0xc20da7e8,0x6c602e12,0xcc0bb900,0x4a5ec210,0x28e3f09,0xf25f887e,0xf9fa203,0x4d142bc2,0x8270353f,0xfb0016c0,0x9c9f15c1,0xbd0ff209,0x48c20e91,0x4e3f836c,0x39c087fa,0xc5c203d8,0x36c09b0d,0x9ac07e04,0xa9c1f95a,0x71009cdb,0xc20dd112,0x6c8f2789,0x5f940f00,0x8c61711d,0xcf9ac20d,0xf003cad,0x62415fa0,0xc1de3ffe,0x270b680,0x715f9408,0xc1e03825,0x88941477,0x5f880f02,0x5b200405,0x978de3b1,0xe8bbc6c0,0xa51104c1,0x3f20030,0xc1e31f69,0xc06a9ff9,0xc0978de3,0xc1eafd71,0xb882164,0xeef3fa71,0x8b60f6c1,0xe7710024,0x49c1e173,0x246084,0x115f4c0f,0xe4dd0171,0x73f06fc1,0x34080030,0xab2d715f,0x6d9cc1e6,0x7100187c,0xc1de58db,0xc4a0ed8,0x5f100f00,0x5f040805,0xea72f071,0x8568a9c1,0x42710030,0xb7c1ec69,0xc8855,0x715ee008,0xc1d936bf,0x181548a6,0x2e517100,0xb5f6c1d8,0xf1000c06,0xd7417304,0xef5d25c1,0x978de3bf,0xd670f3c0,0xd07f0bc1,0x8471000c,0x5bc1d5bd,0xcb0ec,0x55e380f,0x55e140f,0xf5dfc08,0xfe95de4,0x44d5dd8,0x92a20240,0xe1c07be8,0x85c1ed48,0x40e1cb3,0x923502ac,0x2d07be8,0x7be89235,0x92b102e8,0x7dc07be8,0x17c1e45c,0xe1c9d7f,0x35031804,0x307be892,0xe8923503,0x3503547b,0x547be892,0xe892b103,0x8b1dc07b,0xbd73c1da,0x71003c82,0xc1d8d12d,0xc7856b0,0x2ea67100,0x77ffc1d7,0x71000c6a,0xc1d5a4c4,0xc5be93e,0x1080400,0x7be89235,0x6c015f04,0x5f280300,0x7be892b1,0xd0899dc0,0x1baf53c1,0x70040030,0x5eb00c5f,0xcde8b671,0xcd1e75c1,0xe8041038,0xe892b15f,0xc50bc07b,0x1a65c1cc,0xf001883,0x4055ed4,0x8f10288,0xc07be892,0xc1cc04d9,0xbe253ac5,0xc07be892,0xc1cc2740,0xceae233,0x2b80400,0xa55ee00f,0xe0630771,0x94821bc1,0x7571120c,0x6ac1e26e,0xc9967,0x715eec0f,0xf56fb0b9,0x9ebe75c1,0x826f1cc0,0x7d7d5ef8,0xa3c1f8cf,0x5f04980f,0xe3646fbf,0x87febdc1,0x82730840,0x71125f10,0xc1e5673d,0x408c8feb,0x1b04f10e,0x41c1d1af,0xbfaa4a,0x60c08270,0x84c1e329,0x75c7210,0xf15f1c08,0xfac30c10,0xa6f39dc1,0x7e06bcc0,0xd64798c0,0xe98772c1,0x8f3501bf,0xd2b704c0,0xdcb25bc1,0x4f15ebc,0xc1d35c50,0xbfa36641,0xc087fa4e,0xc1fb2830,0x789e844b,0x5696710c,0x1690c1d4,0xf0a8cd3,0x71355f40,0xc1d2f0ea,0x78e63dff,0xc110f100,0xbdc1e27f,0x2d406e53,0x61c08f32,0x87c1d71e,0x74c00333,0x30c08f36,0x24c1d56a,0x78fcd2,0xbf5f3408,0xc1d107d1,0xbff21e60,0x407e0f13,0xf89f065f,0xb9c1e0fb,0xc1408ba9,0xbf145f40,0xc1e0bbce,0x4080f2bb,0x4c8271d0,0x4f1125f,0xc1d4db34,0xc014d3fe,0xc0826f2a,0xc1e01c5a,0x586ca8da,0x15e2bf0b,0xe061c1d9,0x33c4c01e,0x125f588f,0xd3039eb9,0x1bf85dc1,0x7e0264c0,0x4f15f58,0xc1d77ad0,0xc01daf7d,0xc087fccc,0xc1def180,0x6064cd9f,0x39557100,0x704cc1de,0xb9012c51,0xc1dd6386,0x40810213,0x647e02f3,0xcb10f15f,0xf3c1dce4,0x464068c8,0x2cc0826f,0x44c1d6d6,0x1ec02fa7,0xa2c0826f,0xc6c1dd52,0x4858c2,0x4d5f880f,0xce1704f1,0x9f6c1d9,0x7054404f,0x5b8dc082,0x84d3c1da,0xf00783e,0xaa115fa0,0xc1d88126,0x402a9ad4,0x5facfa78,0xd2b904f1,0x9a56c1d6,0x297404b,0xa005c07e,0x5050c1d8,0x7102a043,0xc1d71764,0x7c329a5f,0xcb04f10e,0x4dc1d910,0x5cc047d9,0x36c08277,0x5ec1d7fa,0x12c1013,0xddd1f771,0x4e3559c1,0x8f90fcc,0xc1d77ac8,0xc0521848,0xc07e065b,0xc1d6607e,0x400e433d,0xdc87fa4c,0xe7a7715f,0x6aecc1dc,0x7103a855,0xc1d43a11,0x1c2d2dc3,0x5cfb710e,0x98dc1df,0xf100485a,0xd4dd111c,0x14fc2fc1,0x82700040,0xdc6b3ec0,0x653316c1,0x827043c0,0xd637cbc0,0xe710edc1,0x8f322d3f,0xde807bc0,0x61a8fcc1,0x57710048,0xe2c1e0fd,0x3c6520,0x560300f,0xe02f6571,0x6d2396c1,0x52710030,0xe6c1d57c,0x48c976,0xe2a24571,0x6f1a11c1,0x4808003c,0x7710f160,0x8c1d190,0xa0400373,0xc0c07e19,0xe4c1dcb3,0x9bc07d66,0x58c07e02,0xe7c1d537,0x3cbd3a,0xe10c10f1,0xef35c1df,0x704cc07c,0x7204c082,0x7b3c1d3,0x6e7a3ffa,0xe30bc082,0x760cc1e1,0x71006c77,0xc1d4476b,0x7cd081fe,0x4885710b,0x150c1e4,0xf006c78,0xf1056084,0xe46c4504,0x8271b0c1,0x87fa4cc0,0xe5fd94c0,0x801729c1,0x900f0030,0x7ff1160,0xc1e3808c,0xc0884eb1,0xc0826ffe,0xc1d39f74,0x3fb14717,0x609cfc4c,0xc0297107,0xcd7bc1e7,0x8006083,0xba7160a8,0x1dc1e72e,0xc08869,0xd1f85971,0xb95411c1,0xf17100d8,0xd3c1e98e,0x308720,0xd4141071,0x76ae29c1,0x6fb0108,0xc1d06cdb,0x3fd74b8c,0xc07e069e,0xc1e4523c,0xc0939229,0xf160c0b8,0xe78ab410,0x90d5c5c1,0x826f76c0,0xd1adefc0,0xa9686ac1,0x82726f3f,0xd3e739c0,0x5af06bc1,0x92710048,0xb6c1eb68,0x608a0e,0xd2d29071,0x7f4df0c1,0x51710138,0x9fc1ec2c,0x188b22,0xd3b0e071,0x336d01c1,0xcc0f0030,0xe1af4160,0xfc1cf69,0x923f9ff1,0x2b60cc06,0xee373371,0x8da689c1,0xb7100b4,0x1c1d250,0xcc218a,0xf160cc08,0xeddbb610,0x929fcbc1,0x87f929c0,0xd36006c0,0xb98916c1,0x8f322d3e,0xeb33d5c0,0x968de9c1,0xd8080384,0xa107ff60,0x50c1ceed,0x233f791b,0x44c07e10,0x2dc1ea8b,0x29c09e4d,0x760e407,0xed5f14af,0x9944fac1,0xf06f15c0,0xe710760,0x36c1f0c0,0x444954e,0xd3491671,0x2d4d40c1,0xd80f0084,0x7d710560,0x19c1f128,0xd89063,0x7160e408,0xc1edc99d,0xf0928ec3,0x7d7103,0x5c5bc1d2,0xf009033,0xbf0560f0,0xc1ed5b5d,0x4099439a,0xfc826ffe,0x8ff0660,0xc1ce4f78,0x3ed33094,0xc07e03a3,0xc1d03bbb,0x3d0a137f,0x8826f63,0x17bf0661,0xb7c1d1fc,0x60bdcf7d,0x611487f8,0x9e04f11e,0xf2c1d218,0x60bec13f,0x7cc087f8,0x71c1f483,0xe4924b,0xe967e771,0x86dda9c1,0x200f04ec,0x68bf4161,0x15c1d277,0xafbf4538,0x612c87fa,0xeb04f11e,0xdcc1ce67,0x8ebf0948,0x16c07e02,0xf3c1e79a,0xa88381,0xf2b8dc71,0x9d9c80c1,0x4f10240,0xc1d0c0bf,0xbf4d1633,0xc0827033,0xc1e832de,0xec8a5741,0x61440801,0xde8a10f1,0xdd18c1e8,0x69e409b,0x5ddcc07e,0x2789c1d4,0x322dbf8f,0xd0b6c08f,0xe400c1e6,0xb9005481,0xc1f2735a,0xc0a5b899,0x507e06c8,0x7537161,0x1af2c1e7,0xf005488,0x44356138,0x4200fb13,0x5e441d64,0x6441ff9c,0xc041d,0x978de3b1,0xfd48e2c0,0xaab38541,0xc040a98,0xf780200,0x7041f824,0xc041d,0x978de384,0xf45c7dc0,0x41d7041,0xe384000c,0x27c0978d,0x7c41f242,0xc041d,0x6f78e311,0x7741f051,0x609414,0x84000c04,0xc0978de3,0x41ee3ffe,0xc041d94,0x8de38400,0x5b2dc097,0x1da041ec,0x1000c04,0xd1610018,0x56b041e8,0x620f2478,0x41e72ea6,0x100877ff,0xe434af71,0x4cb55f41,0x25710018,0x5441e1a6,0xc2c8c,0xe0899d71,0x1baf5341,0x3244000c,0x7c41deaa,0xc041d,0x978de3b1,0xdde8b7c0,0xcd1e7541,0xb820f54,0x6541dcc5,0xc0bf831a,0xc020c,0x978de384,0xdc63b6c0,0xf11d8841,0xdc231f1c,0xde338b41,0x978de3be,0xdc04d9c0,0x253ac541,0x978de33e,0xdc6a94c0,0x413b3a41,0x978de33f,0xdccea2c0,0x863a2a41,0x1f71000c,0xeb41dd53,0xcab71,0xdebbbf44,0x41d6441,0xe3b1000c,0xd4c0978d,0x7441df9e,0xd680bd3,0xe0a03a71,0x1d1c1941,0x327110c8,0xc841e1bf,0xc2dee,0xe4526044,0x41d6441,0xe3b1000c,0xa7c0978d,0x9a41e5c4,0x245d26,0xe8f52a71,0x79769b41,0xd844000c,0x4c41ec82,0x6307621d,0x821b41f0,0x16711170,0x8c41f48a,0x249dd9,0xf6b45362,0x64d52641,0xeb8d7111,0x573841f8,0x620084a5,0x41fb2e19,0x11585d27,0xfd7a4662,0xc4e4a841,0xc040e,0x978de384,0x1144ac0,0x621cbc42,0x42024399,0x1c747384,0xa2000c04,0xc0978de3,0x4204a53b,0xcec9c,0x704ed44,0x41c8c42,0x9284000c,0x80c07be8,0x8c420582,0x7572621c,0x7e654205,0x2a7112d8,0xdb41f45b,0x3788a3f,0xf636e871,0x866e8741,0x1c710744,0xfb41f536,0xc843a,0x8d4d0df4,0x3be641e4,0xfbec3fdc,0xa167c087,0xe0d641e5,0x317d3fcf,0xaa4ec08f,0x1c5c4206,0xe1713071,0x9ae74741,0x7a620774,0x34420344,0x711c08e9,0x41e205d8,0x18bc136e,0x6004f100,0x8441f329,0x2dc07210,0xb7c08f32,0x3441f424,0xc774a,0xf394bf71,0x6d314041,0x1cf10240,0x41e66dfe,0x3feeffa0,0xc08f30de,0x41e6d705,0x3fe0d552,0xc0978de5,0x41f472db,0xc093c756,0xc07e02ac,0x41f557f8,0xc959e4b,0x418f7100,0x4cfb41f6,0x4400c08e,0x42059418,0x10f11c80,0x41e2b705,0x3fdcb25b,0xc0826e7a,0x41e3ad20,0x3fb3e332,0xc087f860,0x42007f48,0x6c8d3f40,0x6404f100,0x74420182,0xaec08fd0,0xc09345,0x7441f373,0xf07fef,0xf4f4cc71,0x7b591d41,0x5b71009c,0x5841f44a,0x188211,0x6f16f44,0x711c7442,0x41f364ae,0x7887fd07,0x8404f100,0x1741e569,0x93ffcd7,0xebc087fc,0xff41e2f0,0x78e63d,0xf27fc171,0x6e53bd41,0x43710048,0x641f1e4,0x78634b,0x52dc0df4,0x6d9841e7,0x31034006,0xac97c08f,0x27aa41e8,0x8de5400e,0x6ee0c097,0x7b0041f2,0xcc2e04f1,0xbbb41e0,0x2ac3fe8,0x8385c07e,0xcaef41f2,0x71006c85,0x41e38431,0x60fcab93,0x70027100,0xf63841f1,0x71006067,0x41f25567,0x148efb3e,0x90e7101,0x150141e1,0x44003cf2,0x42010e91,0x52711cbc,0xc141f1bf,0xcc76a8,0x639504f1,0x4c1641e6,0xfcc2400e,0xeaf0c087,0xaa4c41f0,0x71004864,0x41f046ee,0xa8589fe8,0xd72b7100,0x2a2041e3,0x71180c04,0x41f1738e,0x8482f732,0x4d04f100,0x3f41e897,0x584018ac,0xaac08f2d,0x3f41f168,0x788cac,0xf0a61371,0x70124941,0x4f10060,0x41e1a3e7,0x4004d4ed,0xc07e02ac,0x41f0bc03,0x3c80f18b,0x6cc27100,0xf38841e4,0x7100540d,0x41f01c5a,0x306ca8da,0xca2f7100,0x130141ef,0x7100845d,0x41e1fb25,0x3c0af601,0x4ab67100,0xb34a41f0,0x71006089,0x41e6f141,0xb8164f22,0x95f67105,0xffd641ef,0x7100547a,0x41e4dcbd,0x5414c2ca,0x89bb7100,0x930341ef,0x44003087,0x41ef05f8,0x57711d34,0x8a41eaec,0x1682a01,0xe2986d71,0x15404241,0x81710060,0x9f41eef1,0x8464cd,0xe77baa71,0x1dad2e41,0x9710060,0xb341e570,0x541d26,0xee395572,0x51704c41,0xbe61009c,0x392641ee,0xf101204d,0xea016704,0x29c81941,0x8f314040,0xe30e2bc0,0x1c692741,0x12710054,0x641e802,0x482468,0xed52a371,0x58c2c641,0xbf710060,0x9441e600,0x5424da,0xecbecf71,0x45182641,0x3d710054,0x9b41ed4b,0x544120,0xe3a90a71,0x253b8241,0x20710048,0x541e8af,0x482c89,0xebcae171,0x4bfc2641,0x45710048,0xd641e68d,0x482be3,0x3d3104f1,0xee3941eb,0x311a4036,0x5be4c08f,0x154841eb,0x71005438,0x41ebef77,0x543460c8,0x41317100,0x54ce41e4,0x7100542d,0x41e92ae8,0x54320571,0xec034400,0x1d8841ec,0xe7423471,0x34639541,0x8e440054,0x9441ea5b,0x1cbe711d,0xedd941ea,0x7100542a,0x41e9fd11,0x541f421c,0xd4f07100,0xbab241e4,0xf1005434,0xea6a6a04,0x3f204f41,0x87fb7440,0xe7c39ec0,0x3a1fef41,0x3f440048,0xac41e911,0x5da0711d,0xae8a41ec,0x71079841,0x41e8ffd6,0x541dbbd4,0x932e7100,0xaa5041e5,0x7200483d,0x41e8a005,0x3c435050,0xe61b6100,0x43b22941,0xca710018,0x2341e7a8,0x1ec38f5,0xe9122b71,0x47d03e41,0x62440024,0xf441e7ea,0x664c711d,0x73fb41eb,0x4400d848,0x41e7fa36,0x1f41e00,0x41e7e65c,0xc0029f7b,0xc0978de5,0x41edd1f7,0xdc711e00,0xd841ee58,0x5a04a0e,0xe6748071,0x2aadde41,0xfc710060,0x8541e702,0x784d5b,0xe77b0171,0x5216b141,0x9c44000c,0xc41e6db,0x1904711e,0x93de41ea,0x71008451,0x41e70ca2,0xcc01feb9,0xe7a84400,0x1e1841ec,0xe5596771,0x1be67541,0xfb440054,0x2441ef5c,0xdbed441e,0x1e2441ef,0xe5e5b944,0xf11e2441,0xe637cb10,0xe710ed41,0x8f322dbf,0xe63da4c0,0xc8b6fa41,0x978de5bf,0xee807bc0,0x61a8fc41,0x754400d8,0x2441e5f6,0xfd57441e,0x1e2441f0,0xf173e744,0x711e2441,0x41ed575a,0x9c6bee9a,0x9724400,0x1e1841e5,0x57b201f4,0x474941e5,0x30f2bfc3,0x2f66c08f,0x1e1841f0,0xe4c5d244,0x711e1841,0x41f2a245,0xa46f1a11,0x17ba7101,0x176e41f4,0x71012070,0x41e37205,0xa0fa07b3,0x19e27111,0xeef641ef,0x71006077,0x41f1e30b,0x9c77760c,0xed04f100,0xbe41e3fe,0xb1bfc3de,0x52c087fb,0xd41e32b,0x30ef6e,0xf4488671,0x78015041,0xe3710054,0xc541e505,0xd88953,0xf0e15c71,0x815cd941,0xcc710048,0x9b41e190,0x3b40371,0xf3980f71,0x80567a41,0x17710054,0x9f41f7ac,0x3b48066,0x467604f1,0xbe0a41e1,0x2acbffb,0xaa44c07e,0x2e0041f2,0xf1003c86,0xe3a03704,0xb1427841,0x87f860bf,0xf55c65c0,0x84919041,0x8671003c,0xb541e25c,0x84ccc2,0xf7c02971,0x83cd7b41,0x4f10084,0x41e410aa,0xbf76a4fd,0xc08f2d3c,0x41e0bb82,0x54e53598,0x83327100,0x9a6541f4,0x7100548a,0x41e3596d,0x54a205e6,0x2ebb6200,0x691d41f7,0x59440a2c,0x4841e1f8,0x748e711e,0x97241fb,0x71009c87,0x41e06d08,0x48d74a45,0x14537100,0x7dd841e3,0x71003c91,0x41e1ae56,0x84a965f5,0x6ac17100,0x9eb441f6,0x7100608e,0x41e444bf,0x8103bc5,0xdb14401,0x1e3c41f9,0xe003b471,0xc2dbd741,0x10f10048,0x41fbcbb6,0x408aa17b,0xc08f30ec,0x41e2d18a,0xbf7f54a0,0xc087fb63,0x41f9afe9,0xe48ce8b8,0x66177100,0x1d4341e1,0xf1006098,0xe39fe804,0x25fba441,0x8f3121bf,0xdfb5e2c0,0xb21c0441,0x85710048,0xed41f85f,0x789237,0xfaf7e071,0x8ee25441,0x1f71003c,0xbb41f909,0x189352,0xe1215671,0x85768141,0xa7440048,0x3041fd4b,0x6abe711e,0xe86c41ff,0x7100e48b,0x41df69ed,0x549fefbf,0xc2787100,0xffe141fb,0x4400488f,0x42067d9d,0x3f27d4c,0x42056dee,0x408f8b95,0xc0978de3,0x42067865,0x1a94a331,0xfa600444,0xf11e5441,0xe3645004,0xc94ccb41,0x8f310ebe,0xfe3734c0,0x8da68941,0x4f10198,0x41f84420,0x409ae62a,0xc07e02ac,0x41df21a3,0x6c8c5376,0xebd97100,0x7f2441fc,0x71006c91,0x41e40643,0x1429d020,0x33d5710a,0x8de941fb,0x7100c096,0x41e0b602,0xc04226d5,0x3504f100,0xd0420025,0xa6408fb6,0x9fc08f34,0x2f41deee,0x487917,0xf9aca771,0x9d11fb41,0x4f10060,0x41e21de9,0xbed357a3,0xc087f889,0x41fddfa2,0x60929a4e,0x98e07100,0xe47541e0,0x62004828,0x42007f60,0xe344311,0xfc6abf71,0x981e9d41,0x1f4006c,0x42017071,0xc093dce4,0xc08b677f,0x42006007,0x10f11e48,0x41e34916,0xbe2d4d40,0xc08f322d,0x4201640e,0xc096a811,0xc087f860,0x41ff0d88,0x208e8892,0xfa04f104,0xf641fef3,0xe3c08b60,0x23c0978d,0xb441fee8,0x7893ae,0x6cb704f1,0x70f841e0,0x6e7abef1,0x69a1c082,0x46aa41fd,0xf4006c99,0x134370d,0xa1723d42,0x806f0dc0,0xde9228c0,0x3193d541,0x7e02acbf,0x943ec0,0x441e6c42,0x420140be,0x85711e6c,0x4c41e05e,0x48c8c3,0xfbd24371,0x9ff13041,0x3b7100f0,0xf041fcf1,0x788909,0x2c844,0xf11e7842,0xe2007e04,0x335c5b41,0x87f860be,0x3e5c0,0xa4211242,0x2c710384,0xa541fe7e,0x849a67,0x21bd01f4,0x9d454201,0x2acc0a5,0x218c07e,0x1e9041e4,0x1324c62,0x3c3c7f42,0xb904f11e,0x7741de63,0xacbefddb,0xcdc07e02,0x3c41de54,0xcd316,0x75a062,0xa86f5f42,0x40ae710f,0xd41741fb,0x71010889,0x41faf80f,0x90863c34,0x8fac6200,0xa8314201,0xba620048,0xa542024a,0x44024059,0x41e36067,0x1b711e84,0xb641e41d,0xc00b6f6,0xfab38a71,0x88fe1141,0x98710048,0xa941ffa8,0xa89b7a,0xfe010471,0xa2584f41,0x356200f0,0x5d420119,0xf41e6c50,0xe0411901,0xd8efbb41,0x826e7a3d,0xface97c0,0x711eb441,0x41e2189f,0xf0c13ff2,0x4c5e710f,0x3cba4200,0x7100489c,0x41f967e8,0x6086dda9,0x41be7100,0x4b714202,0x7102a092,0x41f90a2e,0xb482fa31,0x57347100,0x193341e4,0x710c6c1e,0x41fa3c84,0xec8dc828,0x79d86201,0xbfd34201,0xc9710078,0x7641ff3a,0x90a379,0xe05eed44,0x441ef041,0x42028cee,0x83711ef0,0xed41f8bb,0x6c85aa,0xfa34da71,0x9523ec41,0x30620630,0xf5420356,0x440108e6,0x41e255fc,0x65711f08,0xf84200f7,0xa89d27,0xf8e54a71,0x8b94b641,0xa3710078,0x8442001b,0x6ca445,0xe3ef3c44,0x441f1441,0x41e4b030,0x20711f14,0x5641f99c,0x60943c,0x2322471,0x9768c742,0x1771027c,0xf341f79a,0x848381,0xf7294271,0x7e8d7641,0x6e6200e4,0x8042015c,0x71006c9c,0x41f832de,0x6c8a5741,0x7ff56200,0x9f154202,0x3f2003c,0x41e2ac73,0x3f67fe2a,0xc087f860,0x420352b3,0x12cdba9,0xe5732471,0xa29d1741,0xb6710bb8,0x41f6d0,0x6081e4,0xcf7571,0xa53cda42,0x477100a8,0x3d41f835,0x9091ef,0x21d1e62,0x304d2742,0xdeb0710c,0xdbc841f8,0xf202709b,0xe0f97c03,0x728d9741,0x826e7a3f,0x139b1c0,0x3cb76142,0x1ef17100,0x28c341e3,0xf1007894,0xf7075304,0x881af241,0x87f860c0,0xf77abcc0,0x90a35741,0x7a620054,0xec42026e,0x44005485,0x41e4e73e,0xa4621f80,0xb42034c,0x7100c0fe,0x41f5d896,0x9c7f86fd,0x56ec7100,0x4a0641f5,0x6200fc76,0x42046239,0x180f7a1,0x656204f1,0x706741f7,0x2acc099,0x449c07e,0x711b4202,0x4400c0a6,0x420259d4,0x40717f44,0x6c41f6a1,0x249813,0xf0dde71,0x634b0642,0xa0710504,0x40420e35,0xc6d31,0x11d26a44,0x711f9842,0x420d548a,0x18764a06,0xe3ee4400,0x1fa4420f,0xc6b5f71,0x7e8d7642,0xc2710018,0x17420dd1,0xc9d7f,0xb7ae971,0x82fa3142,0xf971000c,0x34420a83,0xc863c,0xba21d44,0x711fb042,0x42098763,0x188909f0,0xbe946200,0x6cf04211,0x1c7103f0,0xb5420df4,0xd87017,0xfce7d71,0x94821b42,0x371000c,0xf6420886,0x308b60,0x12a78071,0x83456742,0xd440018,0xd4420f46,0x80b8711f,0x3f404207,0x7100248d,0x42095b8f,0xcaab385,0x120a7100,0xa61a4210,0x62003055,0x420dbaf5,0x1098d98c,0xc29f671,0x80669942,0x9271096c,0xd84210d3,0x244a0e,0x1457af71,0x6ba71142,0xd771000c,0x26420ca5,0xca1d5,0x1189ff71,0x3dc89342,0xdc71000c,0xe7421289,0x3c2a00,0x15d6d071,0x4e001142,0xbc710018,0x6c420a45,0x188709,0xa68f471,0xa85d2742,0x8f710018,0xd9421682,0xc3e3e,0x13a9b371,0xe27f242,0xdd620024,0xa8420942,0x711158e4,0x42084a9f,0x188be873,0xafe37100,0x1c194217,0x7100301d,0x420640f0,0x188eed03,0xebb67100,0x712a4206,0x710018ae,0x4214947f,0x98e0d517,0xbc677107,0x73844205,0x710024af,0x4218a221,0xbcf4439a,0x46727110,0x9bc74215,0x710024a2,0x4204a9d0,0x3c8fe6f5,0x56717100,0x71eb4219,0x620024ab,0x42035ac5,0x3cec9c,0x22a3c62,0xc62fe42,0x92134400,0x7e544202,0x15a7e871,0x602e1242,0x66710030,0x334215d4,0xc1e19,0x19ec6081,0xeae23342,0x611110be,0x3a4219ca,0x18413b,0x15f17371,0xb6f6b642,0x1f40018,0x4215fef4,0xbdc4723b,0xc0978de3,0x4219fe44,0xdf717e48,0x204215fc,0x52829d0,0x19ee7171,0xde338b42,0xa171000c,0x714215dd,0x390103b,0x199d7b71,0x831a6542,0x137104bc,0x8b42157d,0x188951,0x190ba571,0xcd1e7542,0x33720018,0xaa4214e1,0x18c8b5,0x183a03f1,0xa5d6c42,0x978de340,0x140cd1c0,0x29fba42,0xee710810,0x5442172c,0x182c8c,0x13017371,0x1f429142,0xa971000c,0x5f4215e5,0xc4cb5,0x12084571,0x3460c842,0x6271000c,0x9b42115a,0xc4120,0x1468ad71,0x6a77ff42,0xee71000c,0x264210a0,0xc4d39,0x13976a71,0x7856b042,0xd182000c,0x78420831,0xa840acc5,0x27c0230,0x31f8001,0x923502f4,0x3247be8,0x7be89235,0x92350348,0x36c7be8,0x3000c01,0x92350054,0x787be8,0x7be89235,0x3c0100a8,0xcc0300,0x7be89235,0x92c100f0,0xe7c07be8,0x394218aa,0x183ff147,0x1200300,0x7be892b1,0x195c95c0,0xa85ba742,0x50040018,0xe8923501,0x3501747b,0x987be892,0xe8923501,0x3501d47b,0xd47be892,0x300101,0x35023403,0x647be892,0xe8923502,0x102ac7b,0xe80300fc,0xe8923502,0x3503187b,0x547be892,0xe8923503,0x3503c07b,0xfc7be892,0xe8923503,0x3503f07b,0xa87be892,0xe8923503,0x3503847b,0x547be892,0xe8923503,0xa2033c7b,0xc07be892,0x420818d3,0x14c4ebd5,0x35032404,0x187be892,0xe8923503,0x3502e87b,0xe87be892,0x9207f202,0x8cc07be8,0x87420ce4,0x6040866e,0xf2c087f8,0xfb420d64,0x620b943a,0x42028a8e,0x16a47e65,0xd4c2d71,0x8c8d0f42,0x1f406cc,0x42186dd4,0xbf8e2a35,0xc07e02b8,0x420e6b50,0xa5711eb4,0x34420ded,0x780774a,0xc8fa1cf1,0x20c4214,0x30cfbfef,0x6b84c08f,0xe0374216,0x6f39bfef,0xcaa3c082,0x963e4215,0xf90cbfd6,0x4680c087,0xef74420e,0x7100787f,0x420ddad3,0xc821158,0x859a7100,0x591d420d,0xf100487b,0x152f4c04,0xcfe0f842,0x8f3181bf,0xe4da9c0,0x87fd0742,0x4f10084,0x42145687,0xc0066edb,0xc08f310a,0x420ec890,0x3c7a86fd,0xb904f100,0x3a421761,0x32bffb07,0x3ec07e04,0xef420ebe,0x3085ca,0xf47ff71,0x67f63842,0x57710054,0xc1420f20,0x3076a8,0xcd1204f1,0x86f44214,0xf951c00e,0x8a88c087,0xaa4c420f,0x71002464,0x420f4639,0x3c82f732,0x6204f100,0x604213b4,0x5ac018ab,0xf7c08f2d,0x49420fac,0x3c7012,0xfa1ff71,0x80f18b42,0x1f40024,0x4215925b,0xc014d556,0xc0826f28,0x420ff1d3,0x5711e54,0xd6421035,0x247aff,0x107d0471,0x776ea842,0x4f1000c,0x42142106,0xc02118ec,0xc087f8a3,0x4210e356,0x7851704c,0x4c04f100,0x474212ff,0x3cc029c8,0x6bc08f31,0xfd421121,0x6c08213,0x11a09971,0x45182642,0x4f10024,0x42126161,0xc036eeb3,0xc08f3123,0x4212520e,0x18381548,0xd2394400,0x1dac4212,0x12f1a171,0x2aedd942,0x4f10018,0x4212a1da,0xc0426562,0xc087f8e6,0x42137761,0xc030e7ab,0xd1307100,0xae8a4211,0x44075041,0x42138015,0xc8911dac,0xfa42134e,0xfc04b0d,0x14512da8,0x233f8a42,0xe5440030,0x94421402,0x3e04f11d,0x3b421420,0xf3c054e4,0x32c07e02,0xd6421492,0x24151c,0x1479af71,0x1feb942,0x83440078,0x70421051,0x534d711d,0xe6754215,0xf400fc1b,0x14f2e801,0xe2dac242,0x8f31b63f,0x10bfc2c0,0x441d6442,0x420f8155,0xd7711d64,0xf84215d3,0x300ca9,0x885701f4,0x69c24215,0xf92d3feb,0xe84dc087,0x1d64420f,0x542d04f1,0x45b74215,0x30e63fc3,0xaedec08f,0x1a11420e,0xf400cc6f,0x10730f01,0x77eef642,0x826e7ac0,0x1646fec0,0x441d3442,0x420f0e7b,0xbd441d34,0x28420ddb,0x6a57711d,0x6e0d4216,0x7108b8ef,0x421116f3,0x1c825771,0x1404f108,0x884215a5,0x273fa3be,0xf9c08f31,0x7a420e33,0x8b88056,0xd013671,0x80172942,0x6c71006c,0xbd4216ac,0x3cd9ff,0x5cc504f1,0xbe0a4217,0x2ac3ffb,0xaadec07e,0x2e00420e,0xf1008486,0x1653fb04,0xa2443942,0x87f9273f,0xd51cec0,0x84919042,0xbd710048,0xb54216d1,0x3cccc2,0xf7aa01f4,0xa5d74215,0x2d493f76,0x1fecc08f,0x1d34420c,0x17a23f71,0xe5359842,0xdf40054,0x421728a0,0x3faa0eae,0xc0826f15,0x420b16c3,0xc087977d,0xc08f31b1,0x4217c97c,0x9f717dd0,0xb4420cca,0x788e9e,0x283304f1,0xebcc420b,0xfc76c08c,0xfe26c087,0xdbd74217,0xf10048c2,0xa1a261c,0x8aa17942,0x8f30ecc0,0x16a333c0,0x70dd9442,0x87f89a3f,0x16300ac0,0x25ff0d42,0x8f312f3f,0xa8410c0,0x8ee25442,0x717100a8,0xbb420b7b,0x549352,0x1deb04f1,0x28bb4209,0x3121c08d,0x1ec4c08f,0xffe1420a,0x7100248f,0x42184b0a,0x609fefbf,0xcffe7100,0x635c420a,0xf1003095,0x164dd804,0xc94e5d42,0x8f31143e,0x98a14c0,0x917f2442,0x16440030,0x80420a66,0x6d10f11c,0x4342081d,0x7fc08f3d,0xf7c08f31,0xa24216fa,0x13e9b0e,0x2fc087f9,0x4e420910,0x30929a,0x9caa171,0x981e9d42,0xa0620054,0x11420780,0x620d5043,0x42079ff9,0xcb44e36,0x5b7503f2,0x4d404216,0x322d3e2d,0x8befc08f,0xaeb44208,0xff22bec,0x4208793c,0x408e8892,0xc08f322d,0x4217d7d1,0x3ea40f45,0xc0826f1c,0x4207ca36,0xc481a11,0x94b3071,0x9946aa42,0xc2440060,0x8042076b,0xfd38711c,0xb5bd4207,0x44008494,0x42096e7d,0xea711c68,0xa54208c0,0x309a67,0x5d9504f1,0x7b144216,0x322dbdc8,0xcdb4c08f,0x3c7f4206,0xf2021c91,0x18d5b10f,0xd3172742,0x7e06183e,0x990e0c0,0xa1287842,0x7e02acc0,0x78a60c0,0xd06f5f42,0x5fa9712c,0xd417420a,0x62009c89,0x42067054,0x3ca831,0x1f504f1,0x7db74217,0xf860bdcf,0x2bb4c087,0x7aa94208,0x71006c9b,0x420aa63b,0x3088fe11,0x4fcd7100,0xb8c74216,0x710ec4ba,0x4208ff7e,0x60a2584f,0xfb03f200,0xd44218e2,0xb63e4561,0xb5c07e0f,0xa9420a98,0x441044a5,0x4206e6cc,0xa2717da0,0xba4207b3,0x549c3c,0x5be4244,0x441c8c42,0x420b4c0c,0x28441c8c,0xac420686,0x3228717d,0x58864216,0xf112f021,0xae1be04,0x8dc82842,0x87f86040,0x8629cc0,0xa3797642,0x12620078,0xe9420573,0x7106307f,0x420ba23f,0xa885aaed,0xe5937100,0x23ec420a,0x7103cc95,0x4207089b,0x789d27f8,0x201f400,0x9c4216d5,0x60bf26fc,0x5bc087f8,0x98420b8d,0xe45d621c,0x45844207,0x62710edc,0xfa421608,0x786027,0x5cddc44,0x717dd042,0x420b31f0,0x54943c56,0x32f54400,0x1c98420c,0x6a39262,0x609c8042,0xa401f400,0x4942179f,0x37bf4d11,0x91c08270,0x98420be6,0x800b711c,0x9f154205,0x7101d497,0x420b405e,0x649ccf48,0xd1127105,0x27894215,0x71006c8f,0x420c97a5,0xc081e400,0x308b7100,0x3cda4207,0x7100e4a5,0x420be55d,0x7891ef3d,0xe2e27100,0x4d274205,0x7100cc9e,0x420b90a8,0x489bdbc8,0xc64f6200,0xb7614206,0x88710030,0xc3421670,0xe49428,0xc7c5644,0x621cc842,0x42059187,0x3c85ec,0x158c6171,0xadcf9a42,0xa2710078,0x57420c42,0x6090a3,0xd13b571,0x7f86fd42,0x2c710084,0xcd4205a6,0x84a6ac,0xcaf6071,0x98136c42,0x4f1006c,0x41f90264,0xbfefd9c2,0xbfab0457,0x41f7c286,0xcda0896,0x7704f100,0xcc41fa5f,0x57c001eb,0x4cbfab04,0x9b41f6a2,0x18c28e,0xfbd71644,0x717c4441,0x41f5a3e8,0x18a9999a,0x66677100,0xe0bd41fd,0x71003012,0x41f4c949,0x188f5a21,0xa5e7100,0xb5b341ff,0x71001819,0x41f4141a,0x186806c0,0x5fe57100,0x5f314200,0x7100181f,0x41f385ba,0x182f952d,0x41ab7100,0xd22d4201,0xf1001823,0xf31f4104,0xeb9b2441,0xab0457be,0x228cabf,0x2705fb42,0xcb710018,0x9742020e,0xc3a39,0xf2e17471,0x6c819141,0x7f440024,0x94420313,0x68b717d,0x27b74203,0xf700243c,0x4000005,0x29999a42,0xab0457c0,0xf2cccdbf,0x41,0x11003c00,0x6100183e,0x8941f0b8,0xcf89a,0x4ec8135,0x35350048,0x6c05f1,0x1009003,0x36350024,0x9005d7,0x1f4604f1,0x63fe41f1,0x4573f39,0xe590bfab,0x5d14206,0x3006c37,0x180100d8,0xbe553500,0x300d806,0x18010108,0xa01b3500,0x71010807,0x4208bd71,0x3c2ce5e2,0x1440300,0x44002401,0x42087ad1,0xbe710144,0x6b42099d,0x24260b,0x1018003,0xcd440024,0x8042094c,0x1b00301,0x44001801,0x420a1475,0xe00301b0,0x180101,0xad04544,0x301e042,0x18010204,0x7ece4400,0x210420b,0x94020403,0xab045740,0xc1ebdbf,0x3021c42,0x18010204,0xaeda4400,0x21c420c,0x1020403,0xc440018,0x1c420d2e,0x2040302,0x44001801,0x420d9b5b,0x403021c,0x180102,0xdf5f344,0x78021c42,0x420f2920,0x10753682,0x240102,0xe3d2344,0x71022842,0x420f705d,0x243963fe,0x21c0300,0x44002401,0x420e7060,0x10030234,0x180102,0xe8f4644,0x44022842,0x420e9999,0x1c030204,0x240102,0xfcccd35,0x4030018,0x180102,0xfc27b71,0x7974a342,0x480301f8,0xc0100,0x1020403,0x78030024,0x180100,0x101ec03,0xa8030018,0x15c0100,0x100c003,0xf803000c,0x240101,0x100f003,0x8030018,0xc0101,0x101f803,0x5e710024,0x1d420ece,0x1897ae,0x1014403,0xb771000c,0xbf420e60,0xcb3b7,0x1017403,0x1003000c,0x3c0102,0xde0ea71,0xce871242,0xb0030018,0xc0101,0x1021c03,0x10030024,0xc0102,0xd4fd671,0xe7ed3942,0xf8030024,0xc0101,0x1021c03,0x7971000c,0xcf420cae,0xcffbd,0xb8801f4,0x661741f0,0x67063f4d,0xe50dbfae,0x7dd04206,0xd4f204f1,0xb08a4207,0x6706403c,0xbecabfae,0x4c384208,0x71000c37,0x4209a126,0xc30c693,0x7a9f7100,0x29f1420a,0x71000c29,0x420b49de,0xc20824d,0xd9c4400,0x7da0420c,0xcc4a471,0xc4a3c42,0xd5710018,0xba420d6d,0xc00d9,0xe082571,0xe93bb042,0x9f710078,0xd6420e92,0xccf53,0xf0c6971,0xb424bc42,0xc371000c,0x4d420f74,0xc97d9,0xfcb0971,0x753c6842,0x6c44000c,0x9041fe82,0xeb17100,0x43284210,0x44001839,0x42103f51,0xf17d58,0x42105c9d,0x3e790f73,0xbfae6706,0x1c106666,0x614f102,0x8dbfae67,0xa041fcfa,0xfb4054dc,0xbfb9af,0x66420400,0x6c04666,0x58bfae67,0xe142059e,0xc44b3,0x261a835,0x4f1000c,0x42104b3e,0xbecf2bcb,0xbfae6706,0x4200ca68,0x243fa3c2,0xfa3c8700,0x6617420f,0x90bf4d,0x3001801,0x180100b4,0x60ee4400,0x7c4441fb,0xf1007803,0xaffbc009,0xf18cbfb9,0xf1204210,0xaffbbfc9,0x4dcabfb9,0x572a4211,0x71000cb0,0x41f85327,0x244148a6,0x148a7100,0xcd8e4210,0xf10018fa,0xed11a10,0x998e542,0xb66794c0,0xf4e6bebf,0x1af45141,0xb52d99c0,0xdaf45bf,0x18ca1542,0x1f4000c,0x420cb44d,0xc02ac62a,0xbfb624b3,0x420bd66d,0xbc030048,0x9c0101,0xac60771,0x4b6e0142,0x98350060,0xcc0735,0x982ba44,0x3009c42,0x40450030,0xecba6080,0x60803501,0xb10210ba,0xc02b96a7,0x420a7a9f,0x242929ed,0x300400,0x19fd0d44,0x44000cc0,0xc02b96a7,0x48080210,0x96a74400,0x54c02b,0x19fd0d44,0x440228c0,0xbfba6080,0x60080054,0xfd0d4400,0x240c019,0xba608044,0x80054bf,0xd440060,0x58c019fd,0x60804402,0x54bfba,0x2b96a735,0xd440060,0x70c019fd,0x60804402,0x54bfba,0x2b96a735,0x1f40060,0xc019fd0d,0x420e929f,0x3fcf53ce,0xbfba6080,0xa7350054,0x602b96,0x19fd0d44,0x4402a0c0,0xbfba6080,0xa7350054,0x602b96,0x19fd0d43,0x10204c0,0x54040048,0xd80100,0x8006003,0xa7350048,0x542b96,0x8003c08,0xa744000c,0xc02b96,0x96a74403,0x2f4c02b,0x2b96a744,0x4402f4c0,0xc02b96a7,0xa75302f4,0x67c02b96,0x180702f4,0x30be1700,0xc0100,0x17004803,0x10060bf,0xc003000c,0x84bf1700,0x180100,0x900fc03,0x3807000c,0x180101,0x100f003,0x2003003c,0x180101,0x7000c04,0xc01701b0,0xc017015c,0x180101ec,0x4380300,0x3001801,0x180101d4,0xc0400,0x19fd0d34,0x18010264,0x21c0300,0x3003001,0x1801024c,0xc0400,0x19fd0d34,0x1801027c,0x2880300,0x3003001,0xc0902b8,0x96a74300,0x2f4c02b,0x3003001,0xc01051c,0xf0967100,0xf5174205,0x71000c43,0x4204f910,0xc45c9d6,0x4500400,0x2b96a775,0x306f1c0,0x6a350018,0x30020f,0xf1167944,0x3501e041,0x54011af4,0x180400,0x2b96a775,0x2b0fc0,0xec030078,0x9c0104,0xf1e72e44,0x4023441,0xd35000c,0x2419fd,0x2b96a784,0xfcbdb5c0,0x4400d841,0x41f2dac2,0xc04027c,0xfd0d3500,0x84002419,0xc02b96a7,0x41f3efb7,0xc0402c4,0x1f80100,0x41fb0a34,0xc040144,0xfd0d8400,0x2456c019,0x31841f5,0x84000c04,0xc019fd0d,0x41f96c45,0xc04018c,0xfd0d8400,0x76b9c019,0x36c41f6,0x84000c04,0xc019fd0d,0x41f7e4c9,0xc0401d4,0x180700,0x184017,0x484017,0x3016801,0x14010048,0x780301,0x3003001,0x24010090,0x180400,0x100b407,0xe4030030,0x2940100,0x7000c04,0x480100f0,0xf00300,0x3007801,0x18010150,0x1440300,0x4003c01,0x5007000c,0x300101,0x9018c03,0xb007000c,0x3c0101,0x4401bc03,0x19fd0dbf,0xc0101f8,0x1f80300,0x3006c01,0x48010630,0xd34e7100,0x900441f9,0x3000c48,0xc010624,0xc4467100,0xddce41f4,0x72000c19,0x41ee1ce8,0x10c9f120,0xed646102,0xb0572a41,0x3f71000c,0x7f41f620,0x2425f7,0xf3411071,0xefe0941,0x744000c,0x1841f751,0x9b047175,0x77c941f1,0x71001805,0x41efd6ec,0x3cfacd96,0x480300,0x3009c01,0xc010060,0x240300,0x3000c01,0x5c01003c,0x600301,0x3000c01,0xc01009c,0x840300,0x3000c01,0xc010078,0xcc0300,0x3000c01,0xc0100e4,0x7380400,0x19fd0d34,0x18010108,0x19457100,0x7fef4205,0x3501e080,0xc02e6bb,0xc4377100,0xd35f420f,0x7101382f,0x420efd36,0xc3c436c,0x29187100,0xd2bf420e,0x71000c47,0x42112739,0xc148d86,0x48d87100,0x7393420d,0x71000c52,0x4200b970,0x547c364c,0x8204f100,0x8a42124b,0xa73fed06,0x3c02b96,0x2841ff50,0x18780c,0xc5d8471,0x5c193342,0xd710030,0xf420a6a,0xc6c46,0x12c46171,0xcd419642,0xe6710030,0xf41fb2b,0x306c46,0xf92f9871,0x64b82041,0xff71000c,0x28420857,0x30780c,0x1380c371,0x8affd242,0x65710030,0x164213c3,0xc51a4,0x7469071,0x7c364c42,0xfe870024,0x5542140f,0xc3e8ca2,0x5ac0100,0x1003003,0x48030240,0xc0100,0x1008403,0xc003000c,0xc0100,0x100f003,0x20030084,0xc0101,0x1011403,0xd803000c,0xc0100,0xb683444,0x300b442,0x180100e4,0x643d7100,0xb9f54209,0x3000c72,0xc0100cc,0xb40300,0x4000c01,0xe3350078,0x90978d,0x978de334,0x4045006c,0xb4978de3,0x8de33400,0x1007897,0xd4040018,0x8de33501,0x3400e497,0x84978de3,0x240100,0x1006c04,0x20022b20,0xe3be4501,0x90978d,0x1000c07,0x44040030,0x480701,0x17006008,0x100843f,0x9c030018,0x180100,0x100b403,0xcc030018,0x180100,0x100e403,0x5004000c,0x8de33501,0x7025897,0x3c01000c,0x240300,0x4009001,0xe3350210,0x228978d,0x978de335,0xe3350264,0x288978d,0x978de335,0xe3b102dc,0xc0978d,0x421a00,0x48b800,0xdc000096,0xb8000041,0x18e5c0,0x2000c03,0xce340018,0x30cfdf,0x63000c08,0xcfdfcc40,0x9e4b9c0,0x19fd0db1,0xaa2e0c0,0x4c95c442,0x2c040354,0xfd0d840a,0x577dc019,0x39c420c,0xcefe144,0x4403b442,0x420d9ddd,0x784403cc,0xe4420e5f,0x327e4403,0x3fc420f,0x10148a44,0x81041442,0x4210bfb6,0xbfd685db,0xe0030a14,0xc070a,0x71045c01,0x4210c961,0xcd45aee,0x3c0300,0x3000c01,0x40170054,0xc01006c,0x840300,0x3000c01,0xc01009c,0xb40300,0x3000c01,0xc0100cc,0xc6045300,0xe01a420a,0xfc0379,0x3001801,0x3f530b70,0xbfba6080,0xc80100cc,0x60040a,0xba608044,0x440060bf,0xbfba6080,0x80440090,0x6cbfba60,0x60804400,0xb4bfba,0xba6080b1,0x10b6e6bf,0xd8bf6642,0x84040054,0x6080b100,0xa2ddbfba,0x95d5420a,0x400604c,0x80340084,0xedcba60,0x6abec045,0x34111cb1,0xd0b16abe,0x18010e,0x4ec8135,0x28040024,0x6abe3511,0x341104b1,0xc4b16abe,0x30010e,0x4410e003,0xb16abebe,0x18010ec4,0x10c80300,0x6abebf44,0x10eb8b1,0xc8030018,0x180110,0x10eac03,0xbc030018,0x180110,0x10e8803,0xb0030018,0x180110,0xa147571,0xaed9e42,0x60040018,0x6abe3412,0x10e88b1,0xb0030018,0xbebf4410,0xe7cb16a,0x3000c01,0xc0110b0,0xea00300,0x3000c01,0x3c0110b0,0xee80300,0x4001801,0xbe3412b4,0xf24b16a,0x3001801,0x300110b0,0x10980400,0xb16abe35,0xbe3412b4,0xf90b16a,0x4003001,0xbe3412b4,0xfccb16a,0x4001801,0xbe3412b4,0x1008b16a,0x3014401,0xc01102c,0x10740400,0xc100cc07,0xb16abe3f,0xa87afbf,0xe537fc42,0xc071000c,0xe4420b29,0xcd0f5,0x17010803,0x100e440,0x4f10018,0x41faf0a2,0xbfe537fc,0xbfb16abe,0x41fdcb76,0xc003db2b,0x5bec6200,0xd39e41ff,0x657100e4,0xca41f5ec,0x246017,0x7fa171,0x109cd842,0xf1710024,0x39420158,0xc152a,0x2380d44,0x71791442,0x42031b0c,0x181a6c76,0x7100,0x15d34204,0x3000c1b,0x3ec10234,0xbfb16abe,0x41f4b271,0xc64f377,0xe4f43500,0x3003004,0x18010234,0xc7f33500,0x3005405,0xb4010234,0xa70f3500,0x3007806,0x18010234,0x805f3500,0x3009c07,0x18010234,0x520a4400,0xcc4208,0x1023403,0x45440018,0xf042091a,0x2340300,0x71001801,0x4209d75b,0xf0f7857b,0x2340300,0x3001801,0x1801015c,0x2340300,0x3001801,0x18010168,0x2340300,0x71016801,0x420bbc2c,0x18baeb5f,0x2340300,0x71001801,0x420c3db3,0x18a348a1,0x2340300,0x3001801,0xc010174,0xad3a7100,0x413e420c,0x300248a,0x18010240,0x9cd4400,0x18c420d,0x1024003,0xa4710018,0xad420d52,0x3029c3,0x1024003,0x98030018,0xc0101,0xd871d71,0xe3f98342,0x30240,0x180115,0x101b003,0xc771000c,0x77420da6,0x2464f3,0x1041403,0x5d350018,0x2700db1,0x1041403,0x14030018,0xc0104,0x101c803,0xac03000c,0x1c80102,0x1005403,0xd003000c,0xc0102,0x1009003,0x3803000c,0x3c0104,0x101f803,0x3803000c,0xc0104,0x101f803,0xf003000c,0x1800100,0x1044403,0x4030018,0xc0102,0x1036c03,0x38030024,0xc0101,0x1039c03,0x6803000c,0xc0101,0x1047403,0x3403003c,0xc0102,0x1047403,0x3403000c,0xc0102,0x103fc03,0xd403003c,0xc0101,0x1042c03,0x403000c,0xc0102,0x104a403,0x6403003c,0x180102,0x9c4d01f4,0x7e8441f6,0xcd573f66,0x667abfa1,0x6dd441f7,0xf8599471,0xa7501a41,0x10f10018,0x4203ffb6,0xc0163f18,0xbfa0ced5,0x420317dd,0xc0158950,0xbfa0c68b,0x41f97343,0x24bf0d06,0x3404f100,0x20420234,0xd5c0137c,0xd1bfa0cc,0xf141fab0,0x18d4f2,0x144a244,0xf174a042,0xfc101010,0xe919ce41,0xa1b2e63f,0x6606bf,0xb1d9742,0xa1cd57c0,0xfd8afebf,0xfa66c341,0x95710030,0x3241ff20,0x1804cc,0x17000c03,0x35002440,0x3ccd57bf,0x180100,0x1006003,0x3071000c,0xd141fc0f,0x24e8cb,0x229fb71,0x13af3242,0x90030018,0x180100,0x313da71,0x15da4042,0x710018,0xe2420400,0xc1693,0x100cc03,0xfc030024,0xc0100,0x1011403,0x2c03000c,0xc0101,0xf5fd0071,0x2ed77341,0x1df7000c,0x41f58a1a,0xbeeb0293,0xbfa1cd57,0x41f54290,0xbe6c408e,0xbfa1b25f,0x41f52c29,0x3a05b185,0xbfa1bd1f,0x41f544b8,0x3e6c258d,0xc010030,0x480300,0xf100fc01,0xfa742810,0xccc87141,0x9f0d28bf,0xfb8d8dbf,0xda75de41,0x9e9a24bf,0xfa58a2bf,0xc7272441,0x10f1000c,0x41fbcd19,0xbfe13294,0xbf9ef449,0x41fb5cc5,0xbfddce07,0xbfa079ff,0x41fc1982,0xce8028e,0x7317f200,0x4941fc8f,0xf9bfed2e,0xd0bf9fda,0x87420d32,0x24be5a34,0xbbbf9e9a,0xd5420d50,0xd5b855e8,0xe7bf9f06,0xf103543c,0x9e9a2414,0xfabb68bf,0xd4489541,0xa0605fbf,0xf92c3bbf,0xb326fa41,0x9eca47bf,0xf94189bf,0xb2257d41,0x10f10078,0x41f942e1,0xbfb8edab,0xbf9fec92,0x41f88ba5,0xbfa50aee,0xbf9ec719,0x41f84aa4,0x249b9eb6,0x2b10f100,0xaa41f83a,0xe1bfa19b,0x3cbf9feb,0x2541f79d,0x47bf8c22,0xebf9ec8,0x1141f776,0x2483c4,0x568f28f1,0xd74141f7,0xea57bf88,0xd5bfbf9f,0x851f41f6,0xd1f2bf63,0x3ab8bf9e,0xd02041f6,0x913abf21,0xbeeebf9e,0xb39241f6,0x759fbf64,0xab56bf9f,0xb73941f6,0x7100d865,0x41f63880,0x302c95d1,0x20de7100,0x7b4241f6,0x7100242d,0x41f60c92,0x242e4042,0x1604f100,0x3c41f5c7,0xf2bee7fa,0xbbbf9ed1,0x5f41f5d6,0xfcd946,0xa5750cf1,0x219f41f5,0xe13bbeec,0x772fbf9f,0xbda141f5,0x508be6a,0x6bb2bf9f,0x621944f5,0xbf9ed1f2,0xc52ff,0x9f759f62,0xc8633bf,0x241df400,0x8cbf9e9a,0x35420d46,0x83be617e,0x95bf9f15,0x60420d58,0x82be6820,0x38bfa0c6,0x63420d64,0xaba6347,0xa2bfa0dc,0x6c420d14,0xc210f100,0x60420d37,0xb4bee5e4,0x37bfa0cc,0xd3420cf4,0x31bf244b,0x9fbf9f09,0xef420ce2,0x10821cb,0x13504f1,0xddce420d,0xd0d5bf2a,0xa990bfa0,0xc5a0420c,0xf100d856,0xc44f904,0x83c40942,0x9e9279bf,0xcb514bf,0x57e31942,0xdf400e4,0x420cb564,0xbf613f29,0xbfa0d213,0x420c5b1f,0xbf859b35,0xbf9f5779,0x420bdaae,0x49f40180,0x420c5083,0xbf8b8e54,0xbfa0a56a,0x420bd180,0xbfa23971,0xbf9f0d84,0x420b5fb5,0xbfb21a69,0xbf9e69a5,0x420bd8ac,0xbfa50f06,0xbfa0b05b,0x420a6eee,0xbfd728c8,0xbf9ed4d4,0x420b6972,0xbfb708f6,0xbf9fdb01,0x420b2d6f,0xbfc136ac,0xbfa039de,0x420a3939,0x4f10288,0x420a95d9,0xbfd64274,0xbfa0bf3c,0x4209bab3,0xaceb2839,0x912c7102,0xe76d4209,0xf100d8eb,0x9e7c310,0xe9ade242,0xa0c0dfbf,0x8e3fcbf,0xfcc0a542,0x9ecb4bbf,0x8dcf6bf,0xfb55bd42,0xbcf10024,0x420927e9,0xbffa9f6b,0xbfa02930,0x42086029,0xc003200c,0xbf9ec8ef,0x42081e21,0xc0044f90,0xbf9e9a24,0x42086003,0xc004af53,0xbfa0274a,0x42078b5b,0xc009d2d8,0xbf9f09d0,0x4207564d,0xc009d346,0xbf9e9a24,0x42079e64,0xc00aa601,0xbfa0d089,0x4206afab,0xc00eb6a2,0xbf9f0bd0,0x42068730,0xc00e29f6,0xbf9e9a24,0x4206bba6,0xc00fb839,0xbfa0c626,0x4205cc9f,0xc0123c43,0xbf9f0b28,0x4205b28d,0xc0114a27,0xbf9e9a24,0x4205d70e,0xc0134ff0,0xbfa0c68b,0x4204e91a,0xc013eb3a,0xbf9ed1f2,0x4204da35,0xc0132d02,0xbf9e9a24,0x4204efaa,0xc0153a19,0xbfa0274a,0x4203fb58,0xc0150991,0xa49f09c8,0xce6c310a,0xf500b413,0x31f3600,0x145f0f42,0x9f0931c0,0x325cbbf,0x2271003c,0x2a420245,0x181271,0x24d7335,0xf50078,0x42017530,0xc00ef5e4,0xbf9ed1f2,0xb40178d0,0xa50cf500,0x5a420177,0x8bc0102e,0xe9bf9fe2,0xfa4200a4,0xf2c00a98,0xb3bf9ed1,0xfc00a9,0xa5330df4,0xd3804200,0xe597c00b,0xb009bf9f,0xd41b41ff,0x4bf1c005,0xc3bfbf9f,0x14441ff,0xfe461444,0xf4017441,0xff324019,0x3c3bd41,0x9f759fc0,0xff279ebf,0x4624a41,0xa05f8dc0,0xfddc6ebf,0xfa304441,0x9f0d8dbf,0xfcdda8bf,0xf101c841,0xfde24704,0xfcdf1e41,0xa07ef1bf,0xfbd1cebf,0xd5c7ef41,0x817101bc,0x1541faa3,0xcc2e3,0xfd1ab671,0xe6d9d741,0x6371000c,0x9b41f992,0xcae54,0xf8a0c771,0x98495e41,0x4f1000c,0x41fe7a51,0xbff60fed,0xbf9e8273,0x41f7d0bf,0x1880f188,0xf0e87100,0x7a0741ff,0x71013801,0x41f72410,0x1851001d,0x1110f100,0x614200c3,0x4ec00717,0x25bf9e7b,0x741f69f,0x4ebf2044,0xadbf9e7b,0x69420186,0x300b1e,0xf63a5271,0xd49eed41,0xc26203d8,0x73420256,0xf101ec2d,0xf5fb2a04,0x4e5a3641,0x9e81f5be,0x32a78bf,0x1005f742,0x620030,0xec420400,0x35000ca3,0x1804d588,0x410cf500,0x1a41f5ff,0x243e5588,0x1bbf9e9a,0x2f41f588,0xab3e614d,0x3ebf9eb1,0x5405a9,0x1006c03,0x50030024,0xc0104,0x6795335,0x10f10090,0x41f69692,0x3f1cea3a,0xbf9e85f5,0x41f63ac1,0x3f21cbef,0xbf9e9a24,0x42074400,0x8406df83,0xe40300,0x71001801,0x41f6c597,0xc55933e,0x78c4400,0x1084208,0xf7ca74a5,0x806bc641,0x347f453f,0x240105,0x8c24b71,0xf5f38c42,0x5c030120,0x180101,0x1057c03,0xa54b000c,0x8c420972,0x180101,0x2c1307f5,0x289541f9,0xc2483fb3,0x17cdbf9e,0xe093420a,0x8273bfd5,0x24010654,0x4508f400,0x9041fbc5,0x4e3fd52f,0x6cbf9e7b,0xdd420ab2,0x45bfc27d,0x6849e7f,0x3002401,0xc0101ec,0x3b7eb400,0xcbab420b,0x85f5bfad,0x102349e,0xaa710018,0xdd41fe71,0xc0f5b6,0xbaf9c44,0x3020442,0x24010288,0x1f80300,0x9a244094,0x17a1bf9e,0x210420c,0x102b803,0x4f10018,0x4200bbff,0x4006dfa0,0xbf9e6467,0x420c7173,0x44f3de2,0x3000302,0x3002401,0xc010210,0xb1e67100,0x54b5420c,0x301201e,0x18010348,0x8601f400,0x51420251,0x45400e2d,0xd7bf9e7f,0x34420ce2,0x910f102,0x5e420325,0x1d40132c,0x9abf9e92,0x9a420322,0x4e401005,0x5fbf9e7b,0x1a420d00,0x2585588,0x1023403,0xc210048,0x32072c0b,0x1887d380,0xce6c3100,0x3001813,0xc01024c,0x7a13f500,0x1420d01,0xc83e55a1,0x4cbf9e7c,0x1d420d41,0x5f3e6974,0x31bf9ed4,0x844204da,0xc840132e,0x102587c,0x8f40030,0x420d178c,0x3ee9205c,0xbf9ea86d,0x420ce217,0x3ed8895d,0x989e7b4e,0x240104,0x1026403,0x7f5000c,0x420cb168,0x3f1fa28c,0xbf9e7f3d,0x4207564c,0x4009d34e,0x2649279,0xf4002401,0xc9d3501,0x55936042,0x9e8e9b3f,0xc6df8bf,0x71027042,0x4208035c,0x801ac71,0x5640301,0x3003001,0x98010180,0x2640301,0x3000c01,0xc010654,0x1c80300,0x3000c01,0xc0105c4,0x2700300,0x71000c01,0x420b5f3b,0xcb2257d,0x36cf4400,0x27c420b,0x1061803,0x19440018,0x14420a17,0xd3af4479,0x27c420a,0xaae3f71,0xc2e31542,0x6c030024,0xc0106,0x9f3728f1,0x4d1420a,0x10773fd2,0xa003bf9f,0xf48c420a,0x96573fd4,0xc903bfa0,0x5d314209,0x7d2c3fec,0xca92bfa0,0x99aa4209,0xd7c3fe9,0xa797bf9f,0xf2f1420a,0x710948d4,0x4209f868,0xce8cbd1,0x45c5f100,0xce420b59,0x203fb755,0x75bf9f0d,0xba420b4d,0xf93fbcf7,0xb2bfa0c0,0x9f420bdb,0x303fa03c,0x1cbf9f0d,0xe3420bd7,0xbe3fa56d,0x91bfa0c0,0xaf420c50,0xea3f8495,0xfabf9ecb,0x61420c4a,0x4a3f8bff,0x20bfa027,0x1f420c95,0xf23f6385,0x5dbf9ed1,0x9e420caa,0x913f679a,0x89bfa0d0,0x92420ca0,0x9f3f64b3,0x6bbf9f75,0x32420ceb,0xc83f2be9,0x85bf9f0b,0xa3420cfb,0x43f2ee7,0xb0bfa0c6,0x9f420d30,0xf63eec21,0xb7bfa026,0x99420d57,0x943e6d29,0x64bfa0be,0x4b41f567,0x9f3e5c91,0x46bf9f75,0xe741f552,0xff3e5d8b,0x26bfa079,0x1541f5ed,0x9a3f0bff,0x67bf9ece,0x8441f5a4,0x9f3edba0,0x8ebf9f75,0xd041f58f,0xf03edc99,0x90cf409,0x8c4341f6,0x759f3f23,0xf51cbf9f,0x45fe41f5,0x79ff3f24,0xace0bfa0,0x78d841f6,0x859210f1,0xb3ee41f6,0xe5973f56,0x5e54bf9f,0x811341f7,0xd1f23f84,0x9d50bf9e,0x21b841f7,0xf1000c8c,0xf7872d28,0x8cdf3741,0x9f65d43f,0xf74b6abf,0x88ac9741,0xa076643f,0xf85cffbf,0xa2395841,0x9f0d843f,0xf86601bf,0xa6ca9241,0xa05f313f,0xf9a353bf,0xbc95e141,0xad71003c,0x2b41f918,0x84b413,0x91c710f1,0xcd1c41f9,0x5f463fbd,0xaeebf9f,0x3b7e41f9,0x69cf3fb5,0x450cbfa0,0x44d841fa,0x710030c8,0x41fadcc9,0xcd23372,0x7a10f100,0x8941fa64,0xaf3fceb7,0xc9bfa07a,0x6141fb31,0x6f3fda88,0xb3bf9fd7,0x3a41fb7b,0x24dbaf,0x369004f1,0xcc5341fc,0xc4823fe5,0x26f7bf9e,0xfc4041fc,0x71006ce6,0x41fcbecd,0xcee752e,0x5661f400,0x6341fd9f,0xe83ff880,0x80bf9f4f,0xcc41fd93,0xa53ff99b,0x6bbfa065,0x4c42001e,0x14400736,0xb2bf9ed0,0xb941ffac,0x554005c1,0xffbf9f6b,0x7441ffa2,0x2f40065d,0x32bfa06d,0x9242006d,0x9f400a08,0x23bf9f75,0x51420069,0xff400aa5,0x55bfa079,0x9e420150,0xd0400eb6,0xffbf9f0b,0x6f420146,0xff400f9b,0xcbfa079,0xcc420230,0x6d01f478,0x1542022b,0xb7401338,0xe6bfa061,0xc0420316,0xb108f178,0xd9420315,0x9f4014af,0xa7bf9f75,0xb4420314,0xff401558,0x828a079,0x14a27341,0xf50a6840,0x4203fa0b,0x4015c422,0xbf9fe13b,0x4204d606,0x40152b2c,0xbf9fe176,0x9c04ec26,0xb4fc710c,0x1a8f4205,0xf5003012,0x5b39400,0x12efae42,0x9f5dee40,0x5d605bf,0xd0710cd8,0xe442068a,0x240ef5,0x68e3171,0xfb3ee42,0x18710078,0x1d420691,0x781057,0xbb5e10f1,0x18054206,0xcd574010,0x5fb6bfa1,0x59474207,0x5e18400b,0x6361bf9f,0xef6b4207,0x3500240b,0x500799fa,0xa61cf10d,0x58420846,0xea400472,0x3cbf9f07,0xdb420835,0x6f400633,0xe1bfa066,0xd342090e,0xe93ffcde,0x81bfa07e,0xc342093a,0x360fa66,0x34861cf1,0x340941f7,0x55cbf50,0xf5e7bf9d,0x930341f7,0xcc5cbf7f,0x66ffbf9b,0xaef341f7,0xe632bf4e,0xe08cbf9a,0x73a341f7,0x71002480,0x41f6c41f,0x241ce92d,0x4f53f200,0xa641f6df,0xabbf1bf1,0x7fbf9b06,0x9041f69c,0x8dbecff6,0xb3bf9a97,0x1041f6fc,0x11bf1ae6,0x76bf9ac3,0xe541f658,0x16bed645,0xd2bf9c4e,0x3141f637,0x20be547c,0x28bf9b43,0x3641f663,0x11be50e7,0x48bf9ac3,0x41f631,0xab000000,0xdbf9b06,0xbd41f608,0x2eb58637,0xd7bf9c54,0xf100184f,0x9ac31104,0xcd166bf,0xa4e54f42,0x9b0353be,0xce75cbf,0xab621050,0x14bf9b06,0x84000cd8,0xbf9ac311,0x420cce6c,0xc1e20054,0x7c420cf1,0x9ebe522b,0x7ebf9c40,0xf40024f5,0x9bcc5c11,0xcb187bf,0xd0030442,0x9ac311be,0xcd5fcbf,0xd05b9f42,0x9c4e27be,0xc9058bf,0x4400cc42,0x420c81a6,0x1f400c0,0x420ca5e4,0xbf1be953,0xbf9c4e38,0x420c4d70,0x317179bc,0x53420c3f,0xe44c78,0xc5a9e44,0xf178fc42,0xbc1cf04,0x8c607842,0x9b0353bf,0xbeab8bf,0x7c4bf542,0x4f10024,0x420c0d9b,0xbf7ef3e4,0xbf9c4e1e,0x420b84f6,0x1894fc48,0xb104f100,0xfa420ba6,0x27bf96b6,0xf8bf9c4e,0xd9420b1a,0x150abb3,0xb0ec671,0xaa8d3342,0x3f710024,0x69420b26,0x174acc4,0xa947771,0xbff2fe42,0x2d710024,0x9b420a89,0x24bea9,0xa9ee971,0xc123b342,0x98710024,0xef4209ff,0x24d28e,0x9f54d71,0xd1259a42,0x1e710024,0x23420a09,0x24d3dd,0x8fd1071,0xec4d9042,0x6a7100a8,0xc7420954,0x24e1d8,0x96ee371,0xe4fb1a42,0xe2710090,0xb24208a7,0x18f09e,0x8bfee71,0xf40bdd42,0xff710108,0xbb4207f7,0x60ff0c,0x7f13071,0xfd570c42,0x9d810024,0x99420806,0xccc00083,0xc60ff100,0x7bee4206,0x353c007,0x31e1bf9b,0xf30e4207,0xc311c003,0x447ebf9a,0xe8c04207,0x71002405,0x42066b98,0x18081a65,0xa510f100,0x5420673,0x5cc009df,0xbbbf9bcc,0x42059e,0xa5c00c8d,0x6bf9b49,0x764205a0,0x240b18,0x76e804f1,0x96924206,0x55cc00a,0x5a95bf9d,0x78ee4204,0x7100600e,0x4204d0e7,0x240ce6bc,0xa79f7100,0xa2a14205,0xb100240d,0x4204da38,0xc00f1ac5,0xc09c4e1e,0x81453103,0xf100240d,0x4060604,0xfc0a542,0x9c4e27c0,0x2b62bbf,0xd163342,0x19350048,0x48032f,0x331c662,0x3c2c8c42,0x5ffa3500,0x71008402,0x42025f4a,0x3c0d5fc4,0x1cff7100,0xe58a4201,0x35003c06,0xcc019468,0x905d7100,0x5e314201,0x3500240a,0xfc00ce1f,0xc37f7100,0xa9df4200,0x3500e405,0x44000801,0xed03501,0x71014400,0x420001b4,0x240050ca,0xcc04f100,0xf141feaf,0x8dbff0a1,0xc6bf9a97,0x9c41fff8,0xd800fb,0xfe914471,0xf3bee441,0x727101c8,0xb141fc86,0x1c8da34,0xfd572d44,0x7101c841,0x41fd3571,0xc8e5e33b,0x15664401,0x20441fc,0xfbedda71,0xd4f9f441,0x11440018,0x4c41fad7,0xeda64402,0x24c41fa,0xfac09c72,0xc23f3e41,0xca340024,0x29441f9,0xf9e27444,0xf4029441,0xf9b2bb0d,0xacccee41,0x9bacefbf,0xf8db49bf,0x96060841,0x9ae5c5bf,0xf8f615bf,0x7102dc41,0x41f80f34,0x287dffd6,0x2a8f4402,0x30c41f8,0xf8afca44,0x447bc041,0x41f7819e,0xc4710348,0xc641fc75,0x24cb8a3,0xfb626d71,0xa5a71a41,0x8e71000c,0x3441fda5,0xcc9d9,0xfa6e3071,0x91120a41,0xdf71000c,0x441feee,0xcd91d,0xf99b6771,0x762ea141,0x4571000c,0x88420027,0xce649,0xf8ec1b71,0x47da4041,0x9771000c,0x4f4200e0,0xcf13e,0xf861fb71,0x17992d41,0x9b71000c,0x504201a1,0xcf9e0,0xf7fe5c71,0xcbc48f41,0x77710420,0x24420268,0x234000d,0xf7c23371,0x4cc10141,0x3f710018,0x6c420333,0x1801ee,0xf7ae1431,0x11311080,0x2649ac3,0x28f5c31,0xe0030018,0x3c3e1704,0xc0100,0x4ccc135,0xf171003c,0x441f69c,0x18d003,0x1007803,0x8935000c,0x780597,0x17054c03,0x100b43f,0x6535000c,0xb4065e,0x1014403,0xf0030018,0xc0100,0x71f6935,0x800300f0,0x180101,0x1012c03,0xbb35000c,0x12c07d8,0x101bc03,0x68030018,0xc0101,0x8889044,0x3016842,0x18010204,0x1a40300,0x44000c01,0x42092d39,0x4c0301a4,0x180102,0x101d403,0x1e44000c,0xe04209c5,0x2940301,0x3001801,0xc0101e0,0x4eca4400,0x1f8420a,0xfd5726a5,0xe1e07241,0xec978d3f,0x240101,0xac8e844,0x71020442,0x41feb03b,0x18f09eb2,0x1f80300,0x44000c01,0x420b324c,0x60030210,0x180103,0x1020403,0xf344000c,0x1c420b89,0x3a80302,0x2104017,0x44002401,0x420bcf03,0xe4030228,0x240103,0x1021c03,0xd244000c,0x34420c00,0x21c0302,0x44001801,0x420c1ee7,0x5c030234,0x180104,0x1022803,0xf622000c,0x406cc28,0x45310240,0x180d81,0x104d403,0x3403000c,0xc0102,0x106e403,0x60030228,0xc0100,0x1052803,0x40030024,0xc0102,0x106f003,0xa8030024,0xc0100,0x1057c03,0x4c030024,0xf00102,0x106fc03,0xfc03000c,0xc0100,0xc3f4fa5,0x4c85f542,0x389c023f,0x180101,0x105dc03,0x70030048,0x180102,0x1061803,0x6403000c,0xc0102,0x1071403,0xa403000c,0xc0101,0x1071403,0xe003000c,0xc0101,0x1068403,0x8803000c,0xc0102,0x1072003,0x3403000c,0xc0102,0x106cc03,0x9403000c,0xc0102,0x1027c03,0x1403000c,0xc0107,0xf8661ef6,0xffd6420b,0x6ab3f7d,0x83bbf9b,0xd34a420c,0x4e1e3f80,0xa05cbf9c,0xfe3b420b,0x4e2f3f97,0x5e8cbf9c,0x1eeb420c,0x28163f51,0x300108,0x9df01cf1,0xe92d420c,0xcc5c3f1c,0xc08cbf9b,0x6a6a420c,0x6ab3ed1,0xce71bf9b,0xb6d0420c,0xcc5c3ed2,0xdda3bf9b,0x4fec420c,0x71001852,0x420cebb5,0x18539de5,0x44bb4400,0x1841f6,0xf6289644,0xf4001841,0xf67cfc08,0xcfc0b141,0x9ae6323e,0xf610d5bf,0x54b7b341,0x9d055c3e,0x7801096c,0x4bac7100,0xcf4f41f6,0x30018d3,0x3fc10990,0xbf9bcc5c,0x41f76520,0x244dd990,0x3a34b400,0x509441f7,0x4e273f4e,0x105889c,0xe4030018,0x300109,0x5c9510f1,0xaec041f9,0x3533fa2,0xc6d1bf9b,0x666241f8,0xb3d03f97,0xb382bf9b,0xc46941f9,0x30024ac,0x3c010624,0x7904f100,0x6941f9a0,0x5c3fadaa,0x2ebf9d05,0xb341fac2,0x24c123,0xfc00d071,0xd28eef41,0x8d710024,0xd541fab0,0x24c224,0xfbedc571,0xd3dd2341,0xba710024,0xda41fd33,0xce4c7,0xff6da071,0xfa063141,0x5a710078,0x6e41fd25,0x30e5f8,0x106d803,0x8030024,0x4001f407,0xbf9bcc5c,0x42013908,0x40077bee,0x89b0353,0x5c404407,0x7509d05,0x71002401,0x42018c5b,0xc09df05,0x2b04f100,0xc442025d,0xab400c08,0x18bf9b06,0x92420189,0x300a96,0x25a9271,0xce70c42,0xb0710024,0x2742032d,0x240dda,0x32c6271,0xebb5642,0x20710018,0x17420478,0x6c0e63,0xf9fa03f2,0xc0a54203,0x4e1e400f,0xce3bbf9c,0x2c8c4204,0xd535000c,0x6005a2,0xa0b704f1,0x5fc44205,0x4e27400d,0x6fc7bf9c,0x5854206,0x71005409,0x42066fa3,0x180a5e35,0x344cb400,0xeff24207,0xe6324004,0x1093c9a,0xd071012c,0xd1420740,0x9c065b,0x7fe4c35,0x767100f0,0xb1420915,0x120ea36,0xb5b204f1,0xd6aa4208,0x4e383ff4,0x6548bf9c,0xe3434209,0x71000ce5,0x420a5794,0x24c855c9,0x9157100,0xf9d3420a,0x9602acd4,0x420a9fb7,0x3fc23ee2,0x10a5040,0xd771006c,0xf0420b27,0x18addc,0xb91f371,0x95fdac42,0x7c820018,0x5141f881,0x143f1667,0x41f95179,0xc464724,0xb8707100,0x3e1041f9,0xf1000c74,0x3fe2f10,0x120f342,0x94f638c0,0x33668bf,0x7b4642,0x94e6b8c0,0xfa898fbf,0x8fed6c41,0x10f10024,0x42026bad,0xbffe15a9,0xbf965975,0x41fb8cd8,0x3fa3e282,0xbf948512,0x4201a663,0x18f7e847,0xf704f100,0xb741fc99,0x633fb661,0x71bf947e,0x741fdba,0x3cc842,0xe6e471,0xef57ac42,0x4f10024,0x41ff0de8,0x3fd68d19,0xbf94849d,0x42002f08,0x18e47903,0xc0300,0xb4003001,0x41ff0549,0xbfd69b52,0x3c94f640,0x180100,0x1005403,0x89a50030,0xdc4201a6,0x5b3ff80d,0x1009c44,0xb710024,0x4d41fc8d,0x24b72f,0x347f04f1,0x876a4203,0x5c04000,0x7bdfbf95,0x58f741fb,0x30018a4,0xc0100d8,0xb663a500,0x662c41f9,0x454ebf74,0x18010120,0x7a17f100,0xec41f891,0x17bf1531,0x90bf9480,0xd741f82a,0x49bec8a3,0x1abf94f6,0x5841f7f1,0x8bbe4a71,0x4fbf94dd,0xf1081cda,0x18db8009,0xe2f6bf95,0x23dd41f7,0x59753e4b,0x1ea5bf96,0x298441f8,0xf1000cca,0xb01c004,0x6fc5df42,0x923f79bf,0xb5720bf,0x42a8ca42,0x28f1000c,0x4201b1b5,0xbff64d55,0xbf93c26e,0x42026b4b,0xbffb46c3,0xbf931937,0x420b1d3d,0xbf73e3b0,0xbf94f651,0x420b7418,0xbf46147b,0xbf94f627,0x4200f366,0x30ede204,0xba04f100,0xda4201b1,0x11bff33b,0xd7bf9272,0x994200f5,0xcead4,0xa9b2271,0x8d47fa42,0x4f10060,0x420ab4db,0xbf8fab75,0xbf94f638,0x42003ca1,0x3ce32c73,0x2a91f400,0xac420a24,0x81bfa153,0xf1bf923f,0xd1420a3b,0x16bfa402,0xa7bf94f6,0x39420c08,0xc9be499c,0x5bbf9505,0xbd420c0d,0x77b58637,0xbbbf942e,0xc541ff1a,0xf4bfd502,0x93bf9337,0x8241ff2c,0x11bfd357,0x83bf9272,0x904209b2,0xc7bfb5f6,0xdabf9410,0x4142099d,0x11bfb3bb,0x2abf9272,0xb941fdd9,0x6ebfc750,0x3bf93c2,0x9a41fdec,0x11bfc47b,0x31bf9272,0x5842090a,0x81bfc490,0xb7bf923f,0xa642091f,0xd9bfc79a,0x1dbf9505,0x8241fcad,0x6ebfb66f,0x4cbf93c2,0x4841fcc4,0x69d67100,0x6cf84208,0x7100a8d3,0x42087a54,0xccd6dc0a,0x1204f100,0x741fb9e,0xadbfa299,0x47bf9315,0xd141fbb8,0xfca13f,0xcd2404f1,0xd174207,0x10d8bfe3,0xbe8dbf94,0x2a674207,0x710018e0,0x41faafd3,0xc08e5450,0xa287100,0xea6c4207,0xf10054ea,0xfa997910,0x8f434a41,0x948fc9bf,0x71a13bf,0xee6d1e42,0x94f8f9bf,0xf9e107bf,0x7187d741,0x5a710030,0x5541f9fd,0x486fa3,0x652ef71,0xf5279a42,0x46350018,0x180064e,0x5b4904f1,0x1eb4206,0xf8f0bff7,0x350abf94,0x138841f9,0x71002444,0x41f952b6,0x3c428a40,0xfd062100,0x5f20228,0x9337f400,0xf82fcabf,0x4758e241,0x924c6abe,0xf81d24bf,0x72a10a5c,0x8fd6bf92,0x43744205,0x71003cfb,0x41f91c34,0x9c455cb8,0x8cb47100,0x4b734205,0x710048f9,0x420596b1,0xa8fd35b1,0xad867100,0xbbd441f8,0xf2003014,0x4a29718,0xfdabb042,0x92521ebf,0x4cb81bf,0x876e42,0x9505c0c0,0xbe83bbf,0x47ab7542,0x923f70be,0xbf16ebf,0x72e10888,0x4bc9bf92,0xeae641f8,0x37f4bec7,0xf10ad493,0x17ce04,0x9337f4c0,0xf86b49bf,0xc659f341,0x927211be,0xbe310018,0x78fe2d,0xcaed10f1,0x89ec420b,0x3f81bec6,0xea02bf92,0x6cc2420b,0xf61fbeca,0x371dbf94,0xf3d44203,0x710084fe,0x420338b0,0x30fcf46b,0x9a677100,0xabda420b,0x71016813,0x420bb892,0xc4165eab,0x734c3502,0xf100cc02,0x3ee0128,0xa7418d42,0x668544bd,0x3b9b6bf,0x1bf7ad42,0x66e2a8be,0x38d1abf,0xcde28b42,0x696755be,0x409a2bf,0xffe54342,0x66ac32bd,0x42e6dbf,0x8fb19e42,0x1cf10030,0x4203eb43,0xbeaab778,0xbf68549b,0x4203eb88,0xbd163886,0xbf666ddf,0x4203ff72,0xb716feb5,0xbf6664d4,0x4203b821,0x303991bc,0x9110f100,0x52420425,0xdfbca39c,0x16bf666d,0xb1420388,0x9fbe1687,0xdabf6703,0x534202ff,0x4862b4,0x118a04f1,0xa2d4203,0xb55fbee3,0xabcdbf6a,0xe88a4202,0xf1000cbf,0x553a500,0x241f6442,0x680b67bd,0x6ab79bf,0x11f40144,0xbf6e0275,0x4206979d,0xbe2390c9,0xbf6e0275,0x42054c20,0xbda3b8a2,0xbf68549b,0x42053fd6,0x4f17a7c,0x42065d2f,0xbe9ed00b,0xbf6e0275,0x42052ee2,0x6c1ef6f9,0x19837100,0x50724205,0x71000c42,0x4205ff96,0x24e29cfe,0xa6200,0xd44e4205,0xd4710090,0xda4204e2,0x248004,0x844201f4,0x9f304205,0x275bf0c,0xf25dbf6e,0x79ec4204,0x3ad9e71,0x299f5e42,0xa3350018,0x18030d,0x2e66462,0x602d0e42,0x6a3500,0x35006002,0x9001a2d1,0xd10a6200,0xd0f64202,0xbe350090,0x60027b,0x2c01b71,0xf247cb42,0x633500cc,0xe40168,0x2b3d662,0xe4654542,0xac697100,0x41ff4202,0x35002424,0x14015487,0x5bd93101,0xf102d0fd,0x81f2a108,0x4a353bf,0x4b934742,0x66dcb1bd,0x50956bf,0xdb758642,0x7f710150,0x904204d2,0xce9d9,0x4989671,0xf4d4cc42,0x1cf1000c,0x420359de,0xbd234656,0xbf66deb9,0x420357b5,0xbcf5b3e1,0xbf66e2a8,0x4200b830,0xbe199e0e,0xbf72391d,0x4204d203,0x1cba2df9,0x3ca07102,0xf8a94204,0x7102341f,0x42046f8b,0x2ca1aed5,0x8b04f101,0x26420426,0x74be7dac,0x4bbf677d,0x6f420394,0x60fab9,0x1200b0f4,0x53e74204,0x7e0f3da7,0x464abf66,0xf7ad4204,0xe2a83e1b,0x72e6bf66,0xe28b4204,0x67553ecd,0x14bdbf69,0xb7784204,0x549b3eaa,0xd193bf68,0xb19e4203,0x85443d8f,0x1478bf66,0x38864204,0x6ddf3d16,0x47dfbf66,0x91bc4204,0x85443d39,0xda6fbf66,0x9c524203,0x6ddf3ca3,0x77eabf66,0x87b14204,0x39f3e16,0xee76bf67,0xa2d4204,0xb55f3ee3,0x2375bf6a,0x33a4205,0xb55f3ed3,0x5433bf6a,0xe88a4205,0xb55f3ebf,0x26bf6a,0xb4534205,0x549b3e62,0xac57bf68,0xec034202,0xf9623d23,0xb3e0bf67,0xb8a24202,0x549b3da3,0xc02abf68,0x98034202,0x549b3df2,0xc101bc68,0x6e02753e,0x2d11ebf,0x1ef6f942,0x7d7100a8,0x724202e6,0xc4250,0x101ec03,0x4f10024,0x420007d8,0x3df6c482,0xbf775611,0x42031d2c,0x248004da,0xa520f400,0x1241f875,0x1e3ed8c1,0xb9bf9252,0xb541f830,0x113e474f,0xc0bf9272,0xda41f951,0x813f42a8,0x42bf923f,0x8241f8cc,0x113f1391,0x2589272,0x2703f17,0x3000c01,0x2401057c,0xca887100,0x36ce41fa,0x3000c8d,0xc0105f4,0x5d00300,0x35000c01,0x3c045262,0x41737100,0x2a674200,0x710018e0,0x41ff2c50,0x78d36cdf,0x2dc0300,0x44006001,0x4205199c,0x48037920,0xd80103,0x1033003,0x51b4000c,0x47420297,0x263ffa75,0x7149252,0x62005401,0x42052ef6,0x120d0f6,0x1033c03,0xe5620054,0xcb42053f,0x3015047,0x480103c0,0x4ec0300,0x3003c01,0xc0104c8,0x4c2a6200,0x65454205,0x8803018c,0x180105,0x4c7a271,0xfd079642,0x4f100b4,0x420553a9,0x3d237260,0xbf680b56,0x42070a29,0x24ead499,0x6240300,0x3000c01,0xc010690,0x9fe4400,0x1204209,0x869b671,0xd3578242,0xdd440018,0x50420a23,0x7500301,0x71001801,0x420a9b6b,0x6c8d3a3f,0x704f100,0x4d420bcb,0x813ec649,0x8dbf923f,0x33420b9a,0x18138c,0x5753d4f4,0x8a61420b,0x3f793f42,0xe819bf92,0x6577420b,0x4c593e47,0x600bbf92,0xa6b14203,0xe2543d72,0x63ffbf66,0x6bcf4203,0xe2a83d8c,0xf6aabf66,0x75864202,0xb55f3edb,0x2d81bf6a,0xd9904203,0xb55f3ee9,0x676abf6a,0xd4cc4203,0xb55f3ef4,0xfc7dbf6a,0xc4d241f9,0x3f813f6f,0xa35ebf92,0x19a44204,0xdf833d4b,0xa622bf66,0x46564204,0xe2a83d23,0x47d0bf66,0x9e0e4207,0x391d3e19,0x1febf72,0xa8a4420b,0x3f793f6f,0x2dfdbf92,0x2df94203,0x67553eba,0xc360bf69,0xf8a94203,0xe2a83e1f,0x9075bf66,0xaed54203,0x549b3ea1,0xd975bf68,0xac264203,0x7d743e7d,0x6bb5bf67,0xb96f4204,0xb55f3efa,0x543abf6a,0x466f4206,0xf8e83ff7,0x8f76bf94,0x63b24205,0xf8f03ffd,0x44072094,0x9337f43f,0xc01078c,0x5104f100,0x5041f9c9,0xc93f731d,0x34bf948f,0xb841f91c,0xc455c,0x70c99b4,0xede21542,0x93c26e3f,0x30010804,0x191c3500,0x30a5007,0x30010804,0x5e04f100,0x844207c3,0x6e3fe32c,0x73bf93c2,0xd341fb9f,0x30a285,0x7d0f835,0xa2710a98,0xc5420872,0x18d502,0xfcad9671,0xb5269e41,0x4f1000c,0x42087d5b,0x3fd69b52,0xbf94f638,0x4209142e,0x18c608d1,0xd7a34400,0xc41fd,0x201a04f1,0x7dd84209,0xf6493fc7,0xc695bf94,0x555041fd,0x440078c7,0x4209a935,0x35710048,0x974209b6,0x48b674,0xa304744,0xf5008442,0x396d24,0xe208fa42,0x9315a53f,0xa3e40bf,0xa3a8df42,0x94f6303f,0xf3adbf,0xed088942,0x93192f3f,0xab6e1bf,0x8f4aa942,0x94f6513f,0x1ad11bf,0x10f10120,0x420b1ef7,0x3f73152f,0xbf94f673,0x420b757d,0x3f453d86,0xbf94f627,0x42026d8b,0x84fce94f,0x7c80300,0x37f43fc1,0xb9a0bf93,0x8091420b,0xf1006015,0xf810c328,0x48e2a041,0x9337f43e,0xf7f602bf,0x4a33be41,0x948fc93e,0x3fe04bf,0xca9f42,0x9410cf40,0xbeab6bf,0xc8a58b42,0x94f60e3e,0xf8316bbf,0xc93a9341,0x34a50024,0xc3420c08,0x1c3e47d7,0x108aced,0x4f10060,0x4204c6d7,0x40008822,0xbf94f8f0,0x41f893cc,0x8415b595,0x1304f100,0xae4200fb,0x92c0ae55,0x5ec07be8,0x7841ff9c,0xcacc5,0xfd48e271,0xaab38541,0xc671000c,0x441f8bb,0xca511,0xf45c7d79,0x9d7f1741,0xe3b1000c,0x27c0978d,0x3841f242,0x189903,0xf000c04,0xf1415ac0,0x7be89208,0xe8d12dc0,0x7856b041,0x978de3c0,0xe5a4c4c0,0x5be93e41,0xc040078,0x8de3b100,0xdf7ac097,0xe7c941e2,0x400183c,0xe3b1000c,0x9dc0978d,0x5341e089,0x181baf,0xf5000c04,0x978de300,0xdeaa32c0,0xf1473941,0x7be892bf,0xe3b1000c,0xb7c0978d,0x7541dde8,0x18cd1e,0xf000c04,0xf51d5af0,0x7be8920c,0xdc231fc0,0xde338b41,0x978de3be,0xdc04d9c0,0x253ac541,0x7be8923e,0xf5000c,0xc0978de3,0x41dc6a94,0x3f413b3a,0xc7be892,0x8de3b100,0xcea2c097,0x3a2a41dc,0x4001886,0x200c000c,0xf7a7715b,0x28e541dd,0x40024d0,0xe3b1000c,0xbfc0978d,0x9a41debb,0x18f443,0xf000c04,0xf055b38,0x1055b44,0x7f50114,0xc841e1bf,0xe3402dee,0x60c0978d,0x1141e452,0x92404e00,0xc7be8,0x355b5008,0xc7be892,0x8de3b100,0xf52ac097,0x769b41e8,0x4003079,0x6808000c,0xe892355b,0xb1000c7b,0xc0978de3,0x41f06307,0x3094821b,0xc0400,0x978de3b1,0xf48a16c0,0x9dd98c41,0xc040018,0x8de3b100,0xb453c097,0xd52641f6,0x40018a1,0xe3b1000c,0x8dc0978d,0x3841f8eb,0x18a557,0xfb2e1979,0xa85d2741,0xe3b1000c,0x46c0978d,0xa841fd7a,0x18aae4,0x8000c04,0x92b15ba4,0x4ac07be8,0x2a420114,0xfcae71,0x2439971,0xaf738442,0xc040030,0x8de3a200,0xa53bc097,0xec9c4204,0xc040018,0x2a00100,0x4205d55a,0xc62fe,0x7be8923f,0xf9425bd4,0xe48df708,0xdc37c541,0x87f8603f,0xf6414bc0,0x8e4f1841,0x82716bc0,0x1cf15bd4,0x42068f90,0x4093dce4,0xc08b677f,0x41e17130,0x3f9ae747,0xc0826e7a,0x4203447a,0x409ee934,0xc0826e7a,0x41e205d8,0x18bc136e,0x6004f100,0x8441f329,0x2dc07210,0xb7c08f32,0x3441f424,0xc774a,0x94bf1bf2,0x314041f3,0x8de3c06d,0x72d3c097,0xc81d41f4,0x63ec093,0x57f8c07e,0x9e4b41f5,0x2acc095,0x9418c07e,0x844b4205,0xbc0f0054,0x10f11d5b,0x4206cbc9,0x40a1723d,0xc0806f0d,0x41f37300,0xc07fef74,0xc087f860,0x41f4f4cc,0x847b591d,0x5bc80800,0x7e2fdbf,0xa4512042,0x7e05e640,0x71065bd4,0x41e2f0eb,0x84e63dff,0x7fc17100,0x53bd41f2,0x7100486e,0x41f1e443,0xcc634b06,0x6a307100,0xd22441e5,0x710144fc,0x41f26ee0,0x787a86fd,0x2e04f100,0xbb41e0cc,0xac3fe80b,0x85c07e02,0xef41f283,0x43d485ca,0xe3843171,0xfcab9341,0x2710054,0x3841f170,0x5467f6,0x1d5bbc0f,0xf0eaf071,0x64aa4c41,0x2b71003c,0x2041e3d7,0x18c042a,0x715ba408,0x41f168aa,0x5c8cac3f,0x5f04f101,0xbf41e664,0x60400e48,0x13c087f8,0x4941f0a6,0xa87012,0xa3e704f1,0xd4ed41e1,0x2ac4004,0xbc03c07e,0xf18b41f0,0xf00a880,0xbf595ba4,0x41ef053f,0xc077754f,0x988278f2,0x800f2a5b,0xa71295b,0x8241e3a9,0x108253b,0xe8af2071,0x2c890541,0xe171012c,0x2641ebca,0x12c4bfc,0xe68d4571,0x2be3d641,0xe4710168,0x4841eb5b,0x1803815,0xe4413171,0x2d54ce41,0x5c08003c,0xce0ebf5b,0x9a241e9,0x7052c04f,0x125b5c82,0xe4d4f071,0x34bab241,0x9e710048,0xef41e7c3,0x6c3a1f,0xea6ae571,0x3f1d3241,0x4f10090,0x41e9113f,0xc030e7ab,0xc087f860,0x41e8ffd6,0x841dbbd4,0x932e7100,0xaa5041e5,0x71003c3d,0x41e8a005,0x3c435050,0xbc04f100,0x7441e6d2,0x97c04b9a,0x3fc07e02,0x2941e61b,0x2443b2,0x295b500f,0x55b2c0f,0x7ad504f1,0x16ca41e7,0xb784052,0xdb9cc07e,0x1cd641e6,0x7100a815,0x41ea1904,0x905193de,0xe7a87100,0x6aec41ec,0x7100cc55,0x41e55967,0x701be675,0x5b080f02,0x807b7105,0xa8fc41ee,0xbf003061,0x41e5f675,0xbfdd4517,0xe48f322d,0x6671065a,0x9641f02f,0x306d23,0xe4c5d271,0xe5017541,0x8ff4728,0x41f2a245,0x406f1a11,0xc08f322d,0x41e19078,0xc0037304,0xd87e19a0,0xcc0f125a,0xc008055a,0x8715a,0xd88441e4,0x71006cc3,0x41f3980f,0x8480567a,0x8810f100,0xe941f06f,0xa7408a29,0x76c07e02,0xa41e146,0xacbffbbe,0x44c07e02,0x41f2aa,0x114862e,0x115ac00f,0xe0bb8271,0xe5359841,0x3271003c,0x6541f483,0x3c8a9a,0xe3596d71,0xa205e641,0xbb710078,0x1d41f72e,0x788869,0xe1f859bf,0xb9541141,0x826e7abf,0x711e5a9c,0x41f90db1,0x488bda3a,0x3b47100,0xdbd741e0,0x710078c2,0x41e2d291,0x6c7f4df0,0xafe97100,0xe8b841f9,0x7100248c,0x41e16617,0x6c981d43,0xb5e27100,0x1c0441df,0xf0030b2,0x71295a78,0x41df69ed,0x489fefbf,0xc2787100,0xffe141fb,0xf1006c8f,0xf8442610,0x9ae74d41,0x7e078140,0x67d9dc0,0x8fd07442,0x9345ae40,0x67865c0,0x8ea33142,0x4710774,0x5c41fa60,0x1209563,0xf5a6008,0x71055a54,0x41fb33d5,0x30968de9,0xb6027100,0x26d541e0,0x7100cc42,0x41deee9f,0x8479172f,0x9904f100,0x9941f9ac,0xc0409d12,0xa2c07e05,0x4e41fddf,0x90929a,0xe098e071,0x28e47541,0x60710030,0x1142007f,0x3909043,0xfc6abf71,0x981e9d41,0x4f10054,0x42017071,0xc093dce4,0xc08b677f,0x42002548,0x888fafbe,0x60077102,0x4e364200,0xb9032495,0x420155b3,0xc099e4fe,0x3c84f5be,0xe804f15a,0xe241de91,0x64bf3194,0x88c07e07,0x9241ff0d,0x608e88,0xfef3fa71,0x8b60f641,0x23710684,0xb441fee8,0x9093ae,0x715a4808,0x420035ca,0x609c1a11,0x5a540f03,0x943e6205,0x63194200,0x10f14cf8,0x41e05e85,0xbec8c34c,0xc0826e7a,0x41fbd236,0x409ff1ef,0xc07e05de,0x41fd2307,0x788c630b,0xf13b7100,0x9f041fc,0x44007889,0x420002c8,0x4f178c0,0x41e2007e,0xbe335c5b,0xc087f860,0x420003e5,0x78a42112,0x7e2c7106,0x67a541fe,0x801089a,0x3c0f5a48,0xc161065a,0x4b7f41fc,0xf011491,0xf355a48,0xf715a30,0xf7d5a24,0xf1595a18,0xf8de8a04,0x9bdd1841,0x7e06a3c0,0x352b3c0,0x92dba942,0xb6710300,0x41f6d0,0x25881e4,0x55a180f,0xb73703f2,0x399b41de,0x29b3f54,0x1d1ec07e,0x4d274202,0x10f10a20,0x41e0f97c,0x3f728d97,0xc0826e7a,0x420139b1,0x40a5b761,0xc07e02ac,0x41e31ef1,0x909428c3,0x7537109,0x1af241f7,0x71024c88,0x41f77abc,0xc90a357,0x5a180803,0x55a0c0f,0x3559f40f,0xd548a71,0x764a0642,0x5f710498,0x76420c6b,0xc7e8d,0xb7ae971,0x82fa3142,0xf971000c,0x34420a83,0xc863c,0x9876371,0x8909f042,0x7c08000c,0x58680859,0x2921371,0x8f8b9542,0xee710384,0x264210a0,0x304d39,0x7d57300f,0x195c9571,0xa85ba742,0x71710e4c,0x8b4219ee,0xec4de33,0x11be9471,0x896cf042,0x90040f54,0x56a00f5a,0x18d36215,0xebd54208,0xb6711074,0x2a4206eb,0x48ae71,0x5bc6771,0xaf738442,0xc562000c,0x9c42035a,0x62000cec,0x42027d80,0x4f989d84,0x4dc804f1,0xfebd420e,0x73084087,0xe48cc082,0x6e87420c,0xf053486,0xfa0556a0,0xd4c6107,0x8c8fe442,0x82719d40,0xe6bfdc0,0x721cbd42,0x94350d40,0x6be86256,0x844b4202,0x80714f74,0x74420e46,0x547fef,0xddad371,0x82115842,0x9a71000c,0x1d420d85,0x2f47b59,0x2572171,0xa6ab1742,0x90710258,0xfd420ec8,0x247a86,0x1156580f,0xf8a8871,0x64aa4c42,0x39710048,0x32420f46,0x55882f7,0xfacf771,0x70124942,0xff710048,0x8b420fa1,0x1880f1,0xff1d371,0x6ca8da42,0x34080018,0x9604f156,0xd142107d,0x53407779,0x56c08277,0x4c4210e3,0x545170,0x218504f1,0x14e44211,0x6534082,0x56afc07e,0xc2c64211,0x8003c58,0xefb95628,0x57421318,0x58404f0a,0x561c8270,0x745004f1,0x9a564214,0x70174032,0xacfc082,0x3f8a4214,0x9b003c23,0x4215453d,0x403c83cf,0x855d4a7,0xd77155bc,0xf84215d3,0xb40ca9,0x555680f,0x166a5771,0xef6e0d42,0xf37103f0,0x71421116,0x1448257,0xf8f5271,0x815cd942,0xf4b90030,0x1242175c,0x4f3ffbc0,0x55447e07,0xf1551408,0x17a23f04,0xe5359842,0x7e02ac3f,0xdbe67c0,0x8a9a6542,0xf008003c,0xe404f154,0x25420dd6,0xb8c09392,0x26c07e02,0xd74217fe,0x30c2db,0xb280c71,0x8ce8b842,0x10710450,0x54420a84,0xc8ee2,0x7154cc08,0x420a1ec4,0x188fffe1,0x4b0a7100,0xefbf4218,0x8003c9f,0xb40f54c0,0x9c0f0554,0xef711d54,0xb442088b,0x6c93ae,0xf549008,0xf1115484,0x990e404,0xa128d442,0x7e0870c0,0x7fd38c0,0x94b5bd42,0x7d710048,0xb42096e,0x2108c63,0x71549008,0x4206cdb4,0xac913c7f,0x9a03f205,0x3c4218d5,0xac3ed316,0x60c07e02,0x5f42078a,0xf08c46f,0xf055478,0x7105546c,0x4208ff7e,0xc8a2584f,0xe2a67101,0x2b0a4218,0xf005445,0xf355460,0x62355454,0x420b8d5b,0xb1094b6,0x7e45d62,0xdc458442,0xcddc6208,0x68c74205,0xf071045c,0x56420b31,0x2c4943c,0xc32f571,0x8381f342,0x92710144,0x804206a3,0x2649d9c,0xbe69171,0x8a574142,0x300f0318,0xa5710554,0x420c97,0x3c81e4,0x7308b71,0xa53cda42,0x5d710120,0x3d420be5,0x6091ef,0x5e2e262,0x744d2742,0x54240f04,0x7c566205,0x1af2420c,0x18080c0c,0x540c0f54,0x7407fa05,0x9a420caf,0xb3409814,0x2dc07e06,0xe04205a6,0xf3c0a6ad,0x9f540c05,0x41f542c1,0xbfe70553,0x2c541814,0xf15401f4,0x467441f1,0x41dbf8a,0x6667bfab,0x52a441fd,0x5b991cf1,0x755c41ff,0x41dc030,0xc949bfab,0x5a2141f4,0x457bf8f,0xa5ebfab,0xb5b341ff,0x457c019,0x141abfab,0x6c041f4,0x71001868,0x42005fe5,0x181f5f31,0x85ba7100,0x952d41f3,0x7100182f,0x420141ab,0x1823d22d,0x54300f00,0xe58bb4a1,0x5f74206,0xf399c037,0x8500d8aa,0xab04573f,0x6be55bf,0x80300d8,0x180101,0x7a01b35,0x71710108,0xe24208bd,0xfc2ce5,0x1014403,0xd1440024,0x4442087a,0x54300f01,0xf5d59629,0xdf7f41f5,0x44f3ff3,0x600102,0x1429c03,0x64710078,0xc241f902,0x18efd9,0xb7ece71,0xefd9c242,0xb5710198,0x64420d61,0x1f8e678,0x3554480f,0x26023403,0x2281d40,0x4005401,0x280743bc,0x180102,0xdf5f344,0xf024042,0xf1955454,0x67b9604,0x38b9ae42,0xab044f40,0x5d736bf,0x2705fb42,0x63b400cc,0xd0420f70,0xa53f395e,0x54e4aaf8,0x2283e17,0x44002401,0x420e3d23,0x28030240,0x180102,0x100fc03,0x140301a4,0xc0101,0x1022803,0x5e710024,0x1d420ece,0x1897ae,0x1015003,0xb771000c,0xbf420e60,0xcb3b7,0xd2e0c71,0xa9999a42,0x6404000c,0x54600f41,0x8751,0x66664204,0x53584046,0x31000c01,0xdcef3333,0x6706b120,0xf910bfae,0xc9d64204,0x71001845,0x4205f096,0xc43f517,0x6984bf00,0x2bcb41ef,0x67063ecf,0x1254a8ae,0xf116798f,0x97d94d41,0x954b43f,0x91c714f5,0xb2af41ee,0xab433fd8,0x646cbfb9,0x572a41ed,0xaffb3fb0,0x7a9fbfb9,0x29f1420a,0x67064029,0xc5268ae,0xec7154cc,0x9641efd6,0x30facd,0xf154d808,0xf25dcc04,0x998e541,0xb6679440,0xd6dd5bf,0xd9ba42,0x4f10048,0x41f4a176,0x4018ca15,0xbfb52d99,0x420e0825,0x9ce93bb0,0x54f00800,0x976604f1,0xc62a41f6,0x24b3402a,0xc69bfb6,0x24bc420f,0x80024b4,0x27c454fc,0xa641f853,0xfb404148,0x8bfb9af,0x54780752,0x71006c01,0x42100eb1,0x3c394328,0xbb04f100,0x8241fab8,0xef404c8f,0x51bfb9aa,0xf942103f,0x144f84a,0x71551408,0x4200ca68,0x3c3fa3c2,0x55200f00,0xe404f1ad,0xa141f6cc,0x94c02d11,0x1abfb667,0xe5420ed1,0xc0998,0x5552c0f,0xf2a73bb9,0xb44d441,0xb624b3c0,0xe0035538,0xfbbf4401,0x24cb9af,0x6706bf94,0xd66dbfae,0x5598420b,0x17025803,0xf4024cc0,0xab43bf01,0x1659bfb9,0x9004420b,0xaffbc048,0x102acb9,0x6403003c,0x540102,0x7359871,0x3fa3c242,0xba71003c,0xa0420982,0x3054dc,0x1802e803,0x44030cbe,0xc02b96a7,0xa744033c,0x18c02b96,0x96a74303,0x84c02b,0x804009f1,0xdbfba60,0x104206e5,0xa74040eb,0x26c02b96,0x934209a1,0x1830c6,0x7d4f271,0x3cb08a42,0x9f710018,0xed420a7a,0x182929,0x35003c04,0x4819fd0d,0x96a74400,0x57c0c02b,0xba608044,0x3f0048bf,0xa42b96a7,0x40655,0x60803503,0x80330ba,0x8044552c,0x3cbfba60,0x96a74400,0x300c02b,0xba608044,0x39003cbf,0x742b96a7,0x3000455,0xba608035,0x90070300,0xfcc01700,0xc0c01700,0x180100,0x100f003,0x1403000c,0xc0101,0x1013803,0x6803000c,0xc0104,0x1015c03,0xc6c4000c,0x7341ef46,0xa73e790f,0x98c02b96,0x96a78404,0x815dc02b,0x555c41ef,0xefe29e8f,0x39432841,0x953dc3f,0xf069ef71,0x753c6841,0x40030024,0x53e80f02,0xe72e7116,0x24bc41f1,0x44003cb4,0x41fe826c,0xc40800d8,0x53dc0453,0x853b80c,0x567153ac,0xba41f524,0x1f800d9,0xf96c4571,0x20824d41,0x880800e4,0x537c0f53,0x300100,0x1002403,0x3c030030,0x180100,0x1005403,0xb7870018,0xb041f3ef,0x78bfe93b,0x240100,0x1009c03,0xb403000c,0x240100,0x900cc03,0xf007531c,0x240100,0xd012c03,0x18045304,0x96a73400,0x1552c2b,0x68030060,0x3c0101,0x20f6a31,0xa4070630,0x180101,0x306f131,0xc8070654,0xecbe1701,0xc0101,0xfcfa8d71,0x54dca041,0xf571009c,0x941fa73,0xc4b6e,0xc057004,0x44815364,0x7541ee6d,0xcc3fd45b,0x63c0300,0x19fd0db1,0xf6203fc0,0x25f77f41,0x640f003c,0x60032953,0x1080100,0x7048c04,0xf40153a0,0x600302,0x3000c01,0xc01009c,0x840300,0x3000c01,0xc0153dc,0xcc0300,0x71000c01,0x41f9d34e,0xc489004,0x60ee7100,0x18bd41fb,0x71000c4f,0x41e81994,0x7c0c4e62,0xe0044402,0x528041e7,0x3537008,0x38010018,0xe6bb7101,0x7fef4202,0x71021080,0x420efd36,0x983c436c,0x29187101,0xd2bf420e,0x3000c47,0x8c010054,0x53700f01,0xfe7b7105,0xffd241e8,0x7100248a,0x41ff5003,0x54780c28,0x5d847100,0x1933420c,0x800485c,0x3e715370,0x9641ea77,0x30cd41,0xfb2be671,0x6c460f41,0xfc710030,0x8a41eb68,0x18ed06,0xf92f9871,0x64b82041,0x20030018,0x480152,0xedb18e44,0x71531041,0x41f56e4f,0x24527393,0x5a87100,0x917941ef,0x71000c22,0x41f20594,0xc3c436c,0x46907100,0x364c4207,0x3003c7c,0xc010108,0xfc0300,0x35000c01,0x2400b970,0xc00300,0x3001801,0xc01009c,0x44f74400,0xcc41f7,0x1007803,0x6c030018,0xc0100,0x1008403,0xa803000c,0xc0100,0x100d803,0x34440198,0xd8420b68,0x1080300,0x3001801,0xb4010120,0x643d7100,0xb9f54209,0x3000c72,0x2401015c,0x1080300,0x3001801,0xc0100d8,0x53b80f00,0x199ab47d,0x4214,0x8de30000,0x100a897,0x14041530,0x53d00c55,0xf4019804,0x978de300,0x13c365c0,0x51a41642,0x978de33f,0xdc0f0240,0xa4045253,0x8de33401,0x101d497,0xac030078,0x900102,0x4501f803,0x978de3c0,0xe8070198,0xe40153,0x102b804,0x90030048,0x54300c03,0x35027004,0xa8978de3,0x8de33403,0x1033c97,0xc030048,0x6c0100,0x1003003,0x3003000c,0x54be1700,0x300100,0x703a804,0x30010090,0x2b80400,0x100b407,0xcc030228,0x3c0100,0x100e403,0xfc030018,0x180100,0x1011403,0xdc040018,0x8de33502,0x7038497,0x3001000c,0x240300,0x71007801,0x421a0000,0x18b80000,0x54d80400,0x18e516,0x2c000c03,0x2441dc,0xcfdfce34,0xc08003c,0xcc402100,0x30020018,0xdfcc5300,0x78b9c0cf,0xfd0d3409,0x11000c19,0xf1084c40,0x42114d03,0x3fb0572a,0xbfba6080,0x420e5f78,0x300efe09,0x54180f09,0xa380329,0x71004801,0x4210f18c,0x60c9f120,0x4f897100,0x18bd420a,0x300184f,0xc010090,0x137f3500,0xb553f403,0x420228ca,0xc02705fb,0x4b16abe,0x6abe7565,0xec81bfb1,0xf4002404,0xf2e17408,0x6c819141,0xb16abebe,0xf2cccdbf,0x41,0xb16abe00,0x3c010e7c,0x11580400,0xb16abe35,0xbe351098,0x1188b16a,0x14fd407,0xb0030030,0xbebf4410,0xe64b16a,0x3001801,0x180110a4,0xe400300,0x4001801,0x74076648,0x18014f,0xf6a24c71,0xc28e9b41,0x74040030,0xbe00f510,0x86bfb16a,0x9641f7c2,0xbebfda08,0x1074b16a,0xb16abe34,0x1801108c,0x64b00400,0xb16abe34,0x54011080,0x64b00400,0xb16abe84,0xfbd716bf,0x3006c41,0x3c010edc,0x12a80400,0xb16abe35,0xbe35105c,0x129cb16a,0xb16abe35,0xbe35105c,0x129cb16a,0x7554180f,0xf887a944,0x7152c841,0x41f7849b,0xd8a348a1,0x54300800,0xf6a58d71,0x8a413e41,0xc8030018,0x1200152,0xf5ec6571,0x6017ca41,0xa1710018,0xd842007f,0x18109c,0xf55ab971,0x29c3ad41,0x48080018,0xf1c67154,0xf98341f4,0x80240e3,0x71715454,0x7741f4b2,0x1864f3,0x31b0c71,0x1a6c7642,0x46350048,0x264f49d,0x4000071,0x1b15d342,0x88030018,0x3c3e1702,0xc0100,0x4e4f435,0x8803003c,0x180102,0x1007803,0x780f000c,0xb4030554,0x54840f00,0xf0030a,0x35002401,0xf007805f,0x2ac0300,0x3001801,0xc01012c,0x520a4400,0x12c4208,0x102b803,0x68030018,0xc0101,0x91a4544,0x3559842,0x180102c4,0x1980300,0x3000c01,0x50015250,0x2d00301,0x71001801,0x41f9ac80,0xcd0f5e4,0x87af7100,0x37fc420a,0x30024e5,0x180102dc,0x29c07100,0xf5e4420b,0x30018d0,0x40c102dc,0xbfb16abe,0x41fc514a,0x24f7857b,0xbc2c4400,0x204420b,0x102e803,0x4030024,0xc0102,0xc3db344,0x3021c42,0x180102f4,0x2100300,0x44000c01,0x420cad3a,0x30228,0x180103,0x1021c03,0xcd44000c,0x34420d09,0x30c0302,0x3001801,0xc010228,0x54f00f00,0x24c034d,0xf006c01,0x47d54fc,0x8071398,0x1a40101,0x713a404,0xc001027c,0x45c0300,0x3002401,0xc01015c,0x48c0300,0x3000c01,0xc010198,0x5640300,0x3003c01,0xc0102a0,0x5640300,0x3000c01,0xc010294,0x4ec0300,0x3003c01,0xc010204,0x51c0300,0x3000c01,0xc010240,0x55080f00,0x54f00829,0xfab0d187,0xd4f2f141,0x1754843f,0x15484c0,0x6710018,0x97420066,0x180b1d,0xfd8afe44,0xf473441,0x71ad54e4,0x41f544b8,0xf06c258d,0x2d843154,0x70504f5,0x3ec10018,0xbfa1cd57,0x41f58a1a,0xceb0293,0xfd007100,0xd77341f5,0xf101142e,0xfb8d8d04,0xda75de41,0x9e9a24bf,0xfa58a2bf,0xc7272441,0xcc0f000c,0xc0080554,0xe710f154,0x420d3c,0x24000000,0x53bf9e9a,0xd241fabc,0xffbfd43a,0x89bfa079,0x7d41f941,0x48b225,0x2c6304f1,0x250b41f9,0xd1f2bfb3,0x8d47bf9e,0x276741f8,0x8000ca5,0x507154a8,0xb841f79d,0x188c21,0xf7760e71,0x83c41141,0xbf71003c,0x1f41f6d5,0x186385,0x1154840f,0xf63ac144,0xf53d041,0x441d5490,0x41f59a60,0xb22200d8,0xf01446b,0x44095484,0x420d14a2,0x480854cc,0x543c0854,0x44543008,0x420c44f9,0xae4400d8,0xfc420bda,0xe401f400,0x3c420c5b,0x9fbf8531,0x3bbf9f75,0x38420b5f,0x39394401,0x198420a,0x9912c44,0x8520842,0xf07153b8,0x494208e3,0x120fcbe,0x8610eaa,0x3157f42,0xb8d1f2c0,0x4d00f553,0x46420756,0x24c009d3,0x30bf9e9a,0x52d40687,0x5b28d71,0x114a2742,0x1a710018,0x3a4204e9,0x3c13eb,0x4da3571,0x132d0242,0x4c080018,0x25cb3553,0xf001803,0xf115334,0x71055328,0x41ffc3bf,0x60044f90,0x50880300,0xf101ec01,0xffacec04,0x5be3c41,0x9f759fc0,0xff3240bf,0x3c3bd41,0x41b9000c,0x6041ff28,0xffc00459,0x5310a079,0x2953040f,0xfe7b6a44,0xf51c041,0x71115304,0x420186ad,0xb40b1e69,0x52ec0f00,0x52bc0305,0x9a24bec1,0x2a78bf9e,0x5f74203,0x62003010,0x42040000,0xca3ec,0x4d58835,0x30030018,0x543e1700,0xc0100,0x552d40f,0xf69c33a5,0x1e54b541,0xe89a243f,0xc0102,0x7440071,0x6df8342,0x1071006c,0x1d41f724,0x185100,0xf6c59771,0x55933e41,0xe403000c,0xc0100,0x1036003,0x6403000c,0x1800150,0xf8a0c744,0x3505841,0x2401039c,0x52c80f00,0x50400305,0x3003c01,0x30010438,0xae3f7100,0xe315420a,0x30018c2,0x1801045c,0x1ab67100,0xd9d741fd,0x3000ce6,0x24015094,0x1d40300,0x3001801,0xc010198,0xaf9c7100,0x495e420b,0x3002498,0x18010228,0xf0e87800,0x7a0741ff,0x1513001,0x58030024,0x180102,0xbc0071,0x6df8342,0xb371000c,0x464200a9,0xc09d3,0x101c803,0xe671000c,0xb5420cb1,0x3c1e54,0x155ec03,0xc0030018,0xc0154,0xd005f44,0x301d442,0x18010300,0x1d40300,0x26000c01,0x5040a3f,0x1033003,0xec030018,0xc0101,0x1035403,0x3e35000c,0x6005a9,0x1038403,0x533c0018,0x9c0679,0x300f001,0x240101e0,0x9d344400,0x1d4420c,0xc6df844,0x301ec42,0x240103e4,0x78c4400,0x1204208,0x3525c08,0x540101ec,0x4800300,0x3000c01,0xc010168,0x45c0300,0x3000c01,0xc0101f8,0x4980300,0x3000c01,0xc0101bc,0x4980300,0x3000c01,0xc010210,0xd3af4b00,0x210420a,0x3001801,0xc0104d4,0xa7974400,0x7b0420a,0xf1522008,0xc50d604,0x84811342,0x9ed1f23f,0xc9520bf,0x63851f42,0xd808000c,0x51a80f51,0x519c0f05,0x51900f29,0x8788b405,0xdc0141f7,0x759f3f8c,0x106cc9f,0x4f10090,0x41f8671c,0x3fa6bf6e,0xbfa079ff,0x41f9a353,0x18bc95e1,0x18ad7100,0x132b41f9,0x710030b4,0x41f9903c,0xcbd9097,0x7c17100,0xdfa441f9,0xf0030b4,0x8055184,0xa271516c,0xc941fc36,0x54e5ca,0x5516c0f,0xfd9fd171,0xf8742141,0x9710060,0x4341fd94,0x60f98e,0xff054c03,0x759f4000,0xa378bf9f,0x561941ff,0x79ff4006,0xf075160,0x71055154,0x42022b91,0x3c132f7f,0x51540f00,0x513c0f1d,0xb7417105,0xdcc64205,0xf009c12,0x7129513c,0x42075f8c,0x480b5137,0x513c0f00,0x2e444405,0xfc4208,0x1151240f,0xf7e08c87,0x8073a341,0x944788bf,0x9bcc5cbf,0xf76520bf,0xf1502841,0xf6df4f1c,0x1bf1a641,0x9b06abbf,0xf6fcb3bf,0x1ae61041,0x9ac311bf,0xf69cf1bf,0xd0030441,0x9ac311be,0xf66328bf,0x50e73641,0x4831000c,0x990f631,0x9b06ab62,0xc4fd7bf,0xc3118400,0xe75cbf9a,0x18420c,0xcd81422,0xc3118400,0xce6cbf9a,0x3c420c,0x18f57e22,0xcc5c8400,0xb187bf9b,0x60420c,0x550dc0f,0x1150d00f,0xbeab871,0x7c4bf542,0xf67100b4,0x48420b84,0xc94fc,0xb1af871,0xabb3d942,0xc67100d8,0x33420b0e,0x18aa8d,0xb263f71,0xacc46942,0x77710108,0xfe420a94,0x24bff2,0x2950ac0f,0x9546a71,0xe1d8c742,0x94080060,0xf7ff7150,0xcbb4207,0x80060ff,0x94035088,0xe8c0174a,0xc014a,0x73a504f1,0xdf054206,0xcc5cc009,0xa006bf9b,0x18764205,0xb400180b,0x420676e8,0xc00a9692,0x789d055c,0x18014b,0x71504c08,0x42040000,0x180d8145,0x2f193500,0x35002403,0x48025ffa,0x94683500,0xf006c01,0x71294ff8,0x41feb03b,0xf0f09eb2,0xf8c67100,0xfb9c41ff,0x3009c00,0x5c014920,0x572d4401,0x11441fd,0xf4fe008,0x44054fd4,0x41f9ca11,0xc80801b0,0xb382444f,0x1b041f9,0xf8dc1a71,0x95fdac41,0xc80f0150,0x3bffff4f,0x1702ac03,0x151b43f,0xc80f000c,0xd803894f,0x1140c103,0x3fbf9ac3,0x6c420333,0xc01ee,0x14f7403,0x80305ac,0x180104,0xa14fd40f,0x156c403,0xf371018c,0x40420b89,0xc47da,0x1054003,0x697100d8,0x4f42071f,0x18f13e,0x1056403,0xbb71000c,0x884207d8,0xce649,0x1062403,0x7803000c,0xc0151,0x1063003,0xec03000c,0xc0101,0x105c403,0x9044000c,0x10420888,0x6480302,0x3001801,0xc015208,0x6000300,0x71000c01,0x42092d39,0xcc9d934,0x6540300,0x71000c01,0x4209c51e,0xcb8a3c6,0x4fe00f00,0x7080305,0x464fbc0f,0xf67ee744,0xf500441,0xf2a4fbc,0xb4044fb0,0x41f8c411,0x3f96ebc4,0xb89bcc5c,0xc0105,0x105f403,0x797100d8,0x6941f9a0,0x4f50adaa,0xfac22e71,0xc123b341,0xd0710024,0xef41fc00,0x24d28e,0x114fa40f,0x114f980f,0xf069c03,0xb9464f8c,0x4205a2d5,0x400c08c4,0x5c9b06ab,0x3766714f,0xd7064207,0x3001804,0xd8010804,0x4f500f00,0x8ac0305,0x71002401,0x420b91f3,0xc95fdac,0x4efc0f00,0x898fa511,0xed6c41fa,0x59753f8f,0xbf494e48,0xd8965975,0x4ecc0f4e,0x4ec00f05,0x4ef00305,0x3005401,0x5408003c,0x180100,0x54eb40f,0x54ea80f,0x14fb003,0xa8080048,0x4e780f4e,0xa501f405,0x40420b56,0x11bf428a,0x53bf9272,0xc8420b01,0x2a00f54c,0x74420270,0xf4bffb43,0xbabf9337,0x4cc801b1,0xf5d771,0xead49942,0xbc710030,0xce420a9a,0xc8d36,0x147ac03,0xdd71000c,0xd1420a23,0xca13f,0x54e180f,0x34e0c08,0x3001480c,0x9fe4400,0xc4209,0x1481803,0xb6440018,0x54420869,0x9f73714e,0x85d341fb,0x8009ca2,0x8d354ddc,0x8407be,0x145cc03,0x88440024,0xa841faca,0x4dd00800,0x1478803,0x7710060,0xd741f9e1,0x307187,0xf9fd5a44,0xf010841,0xf054dd0,0xaf114dc4,0x41f830b9,0xbe474fb5,0x4dc47211,0xad86711f,0xbbd441f8,0x3009014,0xa8014968,0x450c0300,0x354df401,0x4c04c750,0xf16e314d,0x840c180b,0xbf927211,0x420be7a3,0xc40f0078,0x5c441d4d,0xdc420bca,0x45f0034d,0x35008401,0x6c0338b0,0x99df4400,0x90420b,0x2734c71,0xf94b7342,0xac0f009c,0x31414d,0xd80400,0xac66232f,0x92af374d,0xea420553,0x9bbd24ec,0x5b4dac54,0x9521331,0xa13900cc,0x4db881f2,0xfb871cf1,0xce4a4207,0xf2a1bf61,0x6829bf81,0xaf53420a,0xcf42bebb,0x45c0bf88,0xb3bc4206,0x1c76bf52,0x5bfbf77,0x1ee64207,0xf00248c,0xf1054de8,0x4f4f810,0x7877ee42,0x775611bf,0x3ad9bbf,0x29a6e742,0x6dced1bf,0x3848fbf,0x7e278d42,0xd2710048,0x9b42035b,0x48a904,0x714e0c0f,0xfb2fb353,0xf09641,0xaf4e1808,0x4204a354,0xbd4b9453,0x4e18e2a8,0xe2a82f1b,0xaf434e18,0x420411ff,0x3da7418d,0x4e188544,0x6e10f17f,0xea4202ac,0x9b3d24ec,0xb1bf6854,0xf54201a2,0x3f3e9ed8,0xe0bf6dc9,0xa24202b3,0x18a3b8,0x2c02a71,0xf2980342,0x180f000c,0x8f4294e,0x42007537,0x3eedf783,0xbf771c97,0x41fe93e2,0x3f1e3f36,0x1481f2a1,0x113e4452,0x4f89272,0xf1000c01,0x30d9904,0x1fca2142,0x6dcbff3f,0xfa41bf,0x8c1ee642,0xf8030030,0x113f3a52,0xb44e4872,0x4203848f,0x3f7e279e,0xb8771c76,0x753f4450,0x5e86e02,0x3003001,0xc0105d0,0x63c0300,0x3000c01,0xc010630,0x4e480f00,0x2c934405,0x4d4c41ff,0x1033c03,0xd8030060,0x3c0106,0x114e540f,0x104f803,0x20030030,0xc0107,0x52ef6b4,0x1ed0f642,0x68549b3e,0xcc0103c0,0x3c00300,0x300fc01,0x780103c0,0x4e6c0f00,0x60c0335,0x62008401,0x42055397,0x21041ff,0x106e403,0x6c0f0018,0xf803354e,0x540107,0xa6828b4,0xbbaf3242,0x88cf423e,0xf801063c,0x6240301,0x3002401,0xc010864,0x69c0300,0x71002401,0x4203600b,0x6c72a7bd,0x4e780f4e,0x7a4031d,0x71005401,0x4204a35d,0x484b19a4,0xa6227100,0x46564204,0xf4000c23,0x747d008,0x199e0e42,0x72391d3e,0x9dd6dbf,0x46d03e42,0x8963803f,0x3c0108e8,0x4e840f00,0x4fdfbf29,0xe49b4208,0x36e33dc7,0x1e4e787a,0x8508a003,0x9337f43f,0x7191cbf,0xa0030a08,0xc93f4408,0x8e8948f,0x8002401,0xab714e60,0xaf41fb8a,0x24a396,0x54e6c0f,0xfc9a9471,0xb656c541,0x6c0f0024,0x600f054e,0xcc44054e,0xfc41ff0b,0x4e6008c6,0x39e171,0xe1ef9542,0xb2710090,0x604200ef,0xcecaf,0xf4e4808,0xf054e30,0xb4054e24,0x41f8316b,0x3ec93a93,0xf4948fc9,0x540108,0x108e803,0x6f100c0,0x10000,0x30002,0x1,0x40001,0x10002,0xf0000805,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0x6b5ffff,0x2000000,0x6000400,0x3000700,0x7000000,0x6000000,0x1000500,0x5000300,0x7000300,0x6000500,0x5000400,0x6000700,0x9000800,0xa000a00,0xb000900,0xd000c00,0xf000e00,0x11001000,0xc000d00,0xc001200,0x13000e00,0x15001400,0x17001600,0x16001400,0x17000c00,0xf001600,0x18001100,0xc001200,0x19001600,0x18000f00,0x1b001a00,0x1d001c00,0x1c001a00,0x1d001500,0x11001c00,0x1e001000,0x15001600,0xc001c00,0x1f001300,0x21002000,0x19002200,0x22001800,0x19002100,0x1e002200,0x23001000,0x24001000,0x25002300,0x27002600,0x20002600,0x1b002700,0x29002800,0x2b002a00,0x2b002700,0x27002500,0x22002000,0x28002700,0x2c001b00,0x1c002d00,0x1c002e00,0x2e001b00,0x24002300,0x24002f00,0x2f003000,0x29001b00,0x2c002e00,0x31001b00,0x30002f00,0x30003200,0x32003300,0xb003400,0xb003500,0x35000900,0x33003200,0x33003500,0x35003600,0x34003600,0x31003500,0x37001b00,0x38003500,0x2d003900,0x3a002e00,0x2d003b00,0x3c003a00,0x3d003200,0x35003200,0x35003d00,0x3d003900,0x3f003e00,0xc004000,0x40001f00,0x3e001f00,0x3d004000,0x41003900,0x43004200,0x43004400,0x44004500,0x42004600,0x2a004400,0x44002700,0x1b003700,0x45004700,0x44004800,0x2a004800,0x47004400,0x49001b00,0x47004a00,0x40004900,0x4b003f00,0x3a003b00,0x4d004c00,0x4c003b00,0x4c004d00,0x4f004e00,0x4e004d00,0x51005000,0x51005200,0x52005300,0x54005300,0x54005200,0x52004000,0x55004b00,0x40005200,0x52004b00,0x4e004f00,0x57005600,0x56004f00,0x55005200,0x55005800,0x58005900,0x56005700,0x5b005a00,0x5a005700,0x59005800,0x59005c00,0x5c005d00,0x5a005b00,0x5f005e00,0x5e005b00,0x5d005c00,0x5d006000,0x60006100,0x5e005f00,0x63006200,0x62005f00,0x61006000,0x61006400,0x64006500,0x63006600,0x63006700,0x67006200,0x67006600,0x65006800,0x69006600,0x65006400,0x66006900,0x69006800,0x69006a00,0x6b006b00,0x6c006900,0x69006c00,0x68006d00,0x6d006e00,0x68006900,0x6e006d00,0x70006f00,0x6e006d00,0x70007000,0x71006f00,0x73007200,0x73007400,0x74007500,0x72007300,0x77007600,0x76007300,0x76007700,0x79007800,0x78007700,0x75007400,0x75004a00,0x4a004700,0x78007900,0x7b007a00,0x7a007900,0x7a007b00,0x7d007c00,0x7c007b00,0x7c007d00,0x7f007e00,0x7e007d00,0x7e007f00,0x81008000,0x80007f00,0x6f007100,0x81008200,0x82008000,0x81006f00,0x83008200,0x49008400,0x85008400,0x85004900,0x49008600,0x87008600,0x87004900,0x49008800,0x4a008800,0x71004900,0x25008200,0x71002b00,0x89002500,0x8b008a00,0x8a008b00,0x8a008c00,0x8e008d00,0x8a008c00,0x8f008e00,0x91009000,0x8f009200,0x8f009300,0x93009100,0x94009000,0x91009500,0x95009000,0x83009400,0x95009600,0x96009400,0x92009700,0x92009800,0x98009300,0x8d008e00,0x8d004500,0x45004800,0x9a009900,0x9c009b00,0x9b009900,0x9c004900,0x83009b00,0x9b004900,0x83009600,0x9d009b00,0x9e009700,0x98009700,0x9f009e00,0xa0009d00,0x9e009d00,0xa100a000,0xa300a200,0xa1009a00,0x9b00a300,0xa3009a00,0xa0009f00,0x2000a400,0xa4009f00,0xa300a500,0xa3000900,0x900a200,0x900a500,0x2000a600,0x2100a400,0x900a600,0x96000800,0xa7009b00,0xa8009b00,0x9500a700,0xa9009600,0xa7009600,0x9100a900,0xaa009500,0xa9009500,0x9300aa00,0xab009100,0xaa009100,0x9800ab00,0xac009300,0xab009300,0x9e00ac00,0xad009800,0xac009800,0xa000ad00,0xae009e00,0xad009e00,0xa400ae00,0xaf00a000,0xae00a000,0x2100af00,0xb000a400,0xaf00a400,0x1900b000,0xb1002100,0xb0002100,0xf00b100,0xb2001900,0xb1001900,0x1000b200,0xb3000f00,0xb2000f00,0x2400b300,0xb4001000,0xb3001000,0x3000b400,0xb5002400,0xb4002400,0x3300b500,0xb6003000,0xb5003000,0x3600b600,0xb7003300,0xb6003300,0x3400b700,0xb8003600,0xb7003600,0xb00b800,0xb9003400,0xb8003400,0xa00b900,0xba000b00,0xb9000b00,0x800ba00,0xbb000a00,0xba000a00,0xa600bb00,0xbc000800,0xbb000800,0xa500bc00,0xbd00a600,0xbc00a600,0xa300bd00,0xbe00a500,0xbd00a500,0x9b00be00,0xa800a300,0xbe00a300,0xba00a800,0xbb00bf00,0xbf00b900,0xc000ba00,0xc200c100,0xc200c300,0xc400c100,0xb200b300,0xc300c500,0xc600c100,0xc800c700,0xc800c600,0xc600c900,0xc100c900,0xc400ca00,0xc600b200,0xc000c100,0xcc00cb00,0xca00cd00,0xb100b200,0xcd00cb00,0xcb00ce00,0xc700ce00,0xc700cb00,0xcf00c600,0xc400b300,0xc500d000,0xd100c100,0xb100ca00,0xb100d100,0xd100b000,0xd200b000,0xb400d300,0xd300b300,0xcf00b300,0xd100d400,0xd400d200,0xd600d500,0xd800d700,0xd400cc00,0xda00d900,0xd200d400,0xd400d900,0xd500da00,0xcc00db00,0xdc00d800,0xdd00cb00,0xcc00dc00,0xde00cb00,0xb400b500,0xb400de00,0xdc00d300,0xcc00d700,0xcc00df00,0xe000db00,0xb800b900,0xb800e000,0xe000b700,0xb600b700,0xbf00e000,0xe100b900,0xb500b600,0xb500e100,0xe100de00,0xb600e000,0xcc00e200,0xe300df00,0xdd00dc00,0xdd00e300,0xe500e400,0xe600e100,0xe600e500,0xe800e700,0xea00e900,0xeb00e500,0xe800e000,0xd000ea00,0xe000e500,0xe800e100,0xc100d000,0xe500ec00,0xed00e700,0xef00ee00,0xf000ed00,0xf200f100,0xe200cc00,0xf100ed00,0xed00ee00,0xf300d600,0xd400ed00,0xed00d600,0xf000f300,0xcc00f400,0xf400f200,0xf500f200,0xe900f600,0xf700e800,0xe400e300,0xe400f700,0xf900f800,0xf800f700,0xf800f900,0xfb00fa00,0xfc00e800,0xfc00fb00,0xfb00fd00,0xfe00fd00,0xfe00fb00,0xfb00ff00,0xf6010000,0xf600fb00,0x100e800,0xfa00f901,0xfa010100,0x3010200,0xfb010001,0x4010300,0x5010001,0x2010101,0x2010501,0x7010601,0x3010401,0x8010701,0x9010401,0x6010501,0x6010901,0xb010a01,0x7010801,0xc010b01,0xd010801,0xa010901,0xa010d01,0xf010e01,0xb010c01,0x10010f01,0x11010c01,0x12010e01,0xd011101,0x13010e01,0x12011101,0x12011401,0x14011001,0xf011001,0x13011401,0x15011201,0x16011401,0x14011701,0x18011501,0x17011401,0x19011801,0x18011301,0x14011301,0x1b011a01,0x1a011901,0x18011901,0x1b011c01,0x1d011a01,0x1f011e01,0x20011d01,0x21011e01,0x1e011f01,0x1e012101,0x23012201,0x22012101,0x22012301,0xf5012401,0x1d012000,0xf200f501,0x25012000,0x24012301,0x24012501,0x27012601,0x26012501,0x26012701,0x29012801,0x28012701,0x28012901,0x2b012a01,0x2c012a01,0x29012b01,0x2d012a01,0x2c012b01,0x2c012d01,0x2d011b01,0x1c011b01,0x2e00f401,0xf4012f01,0x2e013000,0x3100f401,0xf4013001,0x31013200,0x3300f401,0xf4013201,0x3300f500,0x1c00da01,0xda00d501,0x1c012d00,0x35013401,0x37013601,0x34013501,0x39013801,0x38013501,0x37013501,0x3a00aa01,0xab013b01,0x3c013b00,0xaa00ab01,0xa9013b00,0x3a013d00,0x3a00a901,0xac00aa01,0x3e013c00,0xab00ac01,0xa7013c00,0x3d012f00,0x3d00a701,0xf000a901,0x3900f300,0x3900f001,0xa8013801,0x40013f00,0x4000a801,0xa8014101,0x2f00f400,0x4100a801,0xa800f401,0xa7012f00,0x3e00ad00,0xad014201,0x3e00ac00,0x4200ae01,0xae014301,0x4200ad00,0x4400be01,0xbe014501,0x3f014500,0x3f00be01,0xaf00a801,0x4300ae00,0x4300af01,0xbf00d201,0xbe014400,0xbe00bf00,0xbc00bd00,0xbd00bf00,0xaf00b000,0xbb00d200,0xbc00bf00,0x1c001600,0x1c00c600,0xc600cb00,0x16001200,0x1600c000,0xc000c600,0x12000d00,0x1200c200,0xc200c000,0xd000e00,0xd00c300,0xc300c200,0xe001300,0xe00c500,0xc500c300,0x13001f00,0x1300d000,0xd000c500,0x1f003e00,0x1f00ea00,0xea00d000,0x3e003f00,0x3e00e900,0xe900ea00,0x3f004b00,0x3f00f600,0xf600e900,0x4b005500,0x4b010000,0xf600,0x55005901,0x55010400,0x4010000,0x59005d01,0x59010800,0x8010400,0x5d006101,0x5d010c00,0xc010800,0x61006501,0x61011000,0x10010c00,0x65006601,0x65011200,0x12011000,0x66006301,0x66010e00,0xe011200,0x63005f01,0x63010a00,0xa010e00,0x5f005b01,0x5f010600,0x6010a00,0x5b005701,0x5b010200,0x2010600,0x57004f01,0x5700fa00,0xfa010200,0x4f004d00,0x4f00f800,0xf800fa00,0x4d003b00,0x4d00e400,0xe400f800,0x3b002d00,0x3b00dd00,0xdd00e400,0x2d001c00,0x2d00cb00,0xcb00dd00,0x46004200,0x4600ee00,0xee00ef00,0x34013700,0x37008b01,0x8c008b01,0x37013800,0x37008e01,0x8e008c01,0x3800f000,0x38004501,0x45008e01,0xf000f100,0xee004300,0x4300f100,0x4500f000,0xee004300,0x42004300,0x36013400,0x34008901,0x8b008901,0x2b00d500,0xd6002a00,0x2a00d500,0xd600f300,0xd6004800,0x48002a00,0xf3013900,0xf3008d00,0x8d004800,0x39013500,0x39008a01,0x8a008d01,0x35013600,0x35008901,0x89008a01,0x2b007100,0x2b011c00,0x1c00d500,0x71007001,0x71011a00,0x1a011c00,0x70006d01,0x70011800,0x18011a00,0x6d006c01,0x6d011700,0x17011800,0x6c006b01,0x6c011500,0x15011700,0x6b006a01,0x6b011600,0x16011500,0x6a006901,0x6a011400,0x14011600,0x69006401,0x69010f00,0xf011400,0x64006001,0x64010b00,0xb010f00,0x60005c01,0x60010700,0x7010b00,0x5c005801,0x5c010300,0x3010700,0x58005201,0x5800fb00,0xfb010300,0xe800fc00,0xfc004000,0x54004000,0x5400fd00,0xfd005300,0x5400fc00,0x5300fe00,0xfe005100,0x5300fd00,0x5100ff00,0xff005000,0x5100fe00,0x5000fb00,0xfb005200,0x5000ff00,0xe8004000,0xc00c100,0xc1004000,0xcc00cd00,0xcd001b00,0x1a001b00,0x1a00ce00,0xce001d00,0x1a00cd00,0x1d00c700,0xc7001500,0x1d00ce00,0x1500c800,0xc8001400,0x1500c700,0x1400c900,0xc9001700,0x1400c800,0x1700c100,0xc1000c00,0x1700c900,0x1b004900,0x1b00f400,0xf400cc00,0xbf014400,0x44000900,0xa2000901,0xa2014500,0x4500a100,0xa2014401,0xa1013f00,0x3f009a00,0xa1014501,0x9a014000,0x40009900,0x9a013f01,0x99014100,0x41009c00,0x99014001,0x9c00f400,0xf4004900,0x9c014100,0xbf000900,0x3500e000,0xe0000900,0xe100e600,0xe6003200,0x3c003200,0x3c00e700,0xe7003d00,0x3c00e600,0x3d00ec00,0xec004100,0x3d00e700,0x4100e500,0xe5003900,0x4100ec00,0x3900eb00,0xeb003800,0x3900e500,0x3800e000,0xe0003500,0x3800eb00,0x32002f00,0x3200de00,0xde00e100,0x2f002300,0x2f00d300,0xd300de00,0x23001e00,0x2300cf00,0xcf00d300,0x1e001100,0x1e00c400,0xc400cf00,0x11001800,0x1100ca00,0xca00c400,0x18002200,0x1800d100,0xd100ca00,0x22002700,0x2200d400,0xd400d100,0x27004400,0x2700ed00,0xed00d400,0x44004600,0x4400ef00,0xef00ed00,0x94008300,0x94012f00,0x2f013d00,0x83008401,0x83012e00,0x2e012f00,0x84008501,0x84013000,0x30012e00,0x85008601,0x85013100,0x31013000,0x86008701,0x86013200,0x32013100,0x87008801,0x87013300,0x33013200,0x88004a01,0x8800f500,0xf5013300,0x4a007400,0x4a011d00,0x1d00f500,0x74007201,0x74011f00,0x1f011d00,0x72007601,0x72012100,0x21011f00,0x76007801,0x76012300,0x23012100,0x78007a01,0x78012500,0x25012300,0x7a007c01,0x7a012700,0x27012500,0x7c007e01,0x7c012900,0x29012700,0x7e008001,0x7e012b00,0x2b012900,0x80008201,0x80012d00,0x2d012b00,0x82002501,0x8200da00,0xda012d00,0x25002600,0x2500d900,0xd900da00,0x26002000,0x2600d200,0xd200d900,0x20009f00,0x20014300,0x4300d200,0x9f009d01,0x9f014200,0x42014300,0x9d009701,0x9d013e00,0x3e014200,0x97009201,0x97013c00,0x3c013e00,0x92008f01,0x92013b00,0x3b013c00,0x8f009001,0x8f013a00,0x3a013b00,0x90009401,0x90013d00,0x3d013a00,0x3a004c01,0x3a00f700,0xf700e300,0x4c004e00,0x4c00f900,0xf900f700,0x4e005600,0x4e010100,0x100f900,0x56005a01,0x56010500,0x5010100,0x5a005e01,0x5a010900,0x9010500,0x5e006201,0x5e010d00,0xd010900,0x62006701,0x62011100,0x11010d00,0x67006801,0x67011300,0x13011100,0x68006e01,0x68011900,0x19011300,0x6e006f01,0x6e011b00,0x1b011900,0x6f008101,0x6f012c00,0x2c011b00,0x81007f01,0x81012a00,0x2a012c00,0x7f007d01,0x7f012800,0x28012a00,0x7d007b01,0x7d012600,0x26012800,0x7b007901,0x7b012400,0x24012600,0x79007701,0x79012200,0x22012400,0x77007301,0x77011e00,0x1e012200,0x73007501,0x73012000,0x20011e00,0x75004701,0x7500f200,0xf2012000,0x47003700,0x4700e200,0xe200f200,0x37003100,0x3700df00,0xdf00e200,0x31002c00,0x3100db00,0xdb00df00,0x2c002800,0x2c00d800,0xd800db00,0x28002900,0x2800d700,0xd700d800,0x29002e00,0x2900dc00,0xdc00d700,0x2e003a00,0x2e00e300,0xe300dc00,0x47014600,0x49014801,0x48014601,0x4b014a01,0x4c014c01,0x4d014b01,0x4f014e01,0x4d015001,0x51014b01,0x53015201,0x53015001,0x50014e01,0x47014801,0x47015401,0x54015501,0x52015601,0x52015701,0x57015001,0x51014d01,0x56015801,0x59015701,0x55015401,0x4d015a01,0x5b015801,0x5b014d01,0x5b015c01,0x5c015d01,0x5e015d01,0x5e015c01,0x5c015f01,0x60015f01,0x60015c01,0x5c016101,0x62015501,0x62016301,0x63016401,0x65016401,0x65016301,0x63016601,0x67016601,0x67016301,0x63016801,0x55015a01,0x69016301,0x63015a01,0x61015c01,0x6b016a01,0x6d016c01,0x6f016e01,0x69016d01,0x70016301,0x71016f01,0x71016d01,0x6d016b01,0x61016a01,0x69017201,0x73017001,0x69016101,0x72017301,0x74016101,0x73016101,0x68017401,0x63017501,0x75017601,0x77016801,0x76017501,0x77017801,0x79017601,0x7b017a01,0x79017c01,0x7d017b01,0x7b017c01,0x7d017e01,0x7f017b01,0x7b017e01,0x7f018001,0x80017b01,0x81017b01,0x80018201,0x7b018101,0x83017a01,0x85018401,0x85018601,0x86018201,0x81018201,0x83018601,0x87017a01,0x84018801,0x84018901,0x89018601,0x7a018701,0x6d018a01,0x8c018b01,0x88018b01,0x88018c01,0x8c018901,0x8c016d01,0x6e018d01,0x8e016d01,0x6e018f01,0x6d018e01,0x8e018d01,0x91019001,0x91019201,0x92019301,0x8a019301,0x8a019201,0x92017a01,0x94015901,0x96019501,0x95019701,0x56019701,0x98019501,0x95019601,0x59015601,0x90019501,0x99019201,0x92019901,0x92019a01,0x9a019b01,0x9b019a01,0x9a019c01,0x9d019c01,0x9d019a01,0x9f019e01,0x9e019a01,0xa101a001,0xa101a201,0xa201a301,0xa101a301,0xa101a401,0xa401a501,0xa001a601,0xa001a701,0xa701a201,0xa501a401,0xa601a801,0xa901a701,0xa501a801,0xa501aa01,0xaa01ab01,0x9e019f01,0xa601ac01,0xad01a901,0xa601ae01,0xae01ad01,0xaf01ad01,0x8f01b001,0x8e01af01,0xaf01ae01,0x8e018f01,0xb001af01,0xb101af01,0xac019f01,0xb2017501,0x75019f01,0xab01aa01,0xab01b301,0xb301b401,0x7501b201,0xb301b501,0xb501b401,0xb201b401,0xb501b501,0xb6017501,0x7501b601,0xb701b701,0xb8017501,0x7501b801,0xb901b901,0xba017501,0x7501ba01,0xbb017701,0xbd01bc01,0xbb019401,0x9501bd01,0xbd019401,0xb101b001,0xbc01be01,0xbe01b001,0xbf01b101,0xbd01be01,0xbe01bc01,0xbe01bd01,0xbe01c001,0xc101bf01,0xc201bf01,0xc201c101,0xc401c301,0xc201c101,0xc301c401,0xc601c501,0xc301c401,0xbd01c601,0xc701c001,0xc901c801,0xc901ca01,0xca01bd01,0xc701bd01,0xc001ca01,0xcc01cb01,0xc001c701,0xcd01cc01,0xce01c801,0xca01c801,0xcb01ce01,0xd001cf01,0xd101cf01,0xcc01d001,0xd001cb01,0xcd01d201,0xcd01d301,0xd301ce01,0xd401d101,0xd001d501,0xd501d101,0xd601c501,0xc601d701,0xd701c501,0xd801d601,0xd701d901,0xd901d601,0xdb01da01,0xdb01dc01,0xdc01d201,0xd301d201,0xd401dc01,0xde01dd01,0xdf01dd01,0xd501de01,0xde01d401,0xe001d801,0xd901e101,0xe101d801,0xe001e101,0xe001e201,0xe2017801,0xda01e301,0xda01e401,0xe401dc01,0xe501df01,0xe5014901,0x49014601,0xdf01de01,0xe2014901,0x76017801,0xe401e301,0x4a014b01,0x4b01e601,0xe701e601,0xe7014b01,0x4b01e801,0xe301e801,0xe9014b01,0x79017a01,0xe901ea01,0xeb017901,0x7c017901,0xea01eb01,0xec017901,0x7d017c01,0xeb01ec01,0xed017c01,0x7e017d01,0xec01ed01,0xee017d01,0x7f017e01,0xed01ee01,0xef017e01,0x80017f01,0xee01ef01,0xf0017f01,0x7a019201,0xf001e901,0x9b017a01,0xf0019201,0xf0019b01,0x9c01f101,0xf201f101,0x9b019c01,0x9d01f101,0xf301f201,0x9c019d01,0x9e01f201,0xf401f301,0x9d019e01,0xac01f301,0xf501f401,0x9e01ac01,0x7501f401,0xf601f501,0xac017501,0xf701f501,0x75016301,0xf701f601,0x70017501,0xf7016301,0xf7017001,0x7301f801,0xf901f801,0x70017301,0x7401f801,0xfa01f901,0x73017401,0x7201f901,0xfb01fa01,0x74017201,0x6a01fa01,0xfc01fb01,0x72016a01,0x5c01fb01,0xfd01fc01,0x6a015c01,0xfe01fc01,0x5c014d01,0xfe01fd01,0x4c015c01,0xfe014d01,0xfe014c01,0x4a01ff01,0x1ff01,0x4c014a02,0xe601ff01,0x1020001,0x4a01e602,0xe7020001,0x2020101,0xe601e702,0xe8020101,0x3020201,0xe701e802,0xe3020201,0x4020301,0xe801e302,0x5020301,0xe301da02,0x5020401,0xdb01e302,0x601da01,0x501da02,0xd2020602,0x701db01,0x601db02,0xcd020702,0x801d201,0x701d202,0xc8020802,0x901cd01,0x801cd02,0xc9020902,0xa01c801,0x901c802,0xbd020a02,0xb01c901,0xa01c902,0xc020b02,0xbd019502,0xc020b01,0xd01bd02,0x95019802,0xd020c01,0x96019502,0xe020d01,0x98019602,0x97020d01,0xf019601,0xe019602,0x56020f02,0x10019701,0xf019702,0x52021002,0x11015601,0x10015602,0x53021102,0x12015201,0x11015202,0x4e021202,0x13015301,0x12015302,0x14021302,0x15014e02,0x13014e02,0x16021502,0x4e014f02,0x4e021601,0x16021401,0x17021402,0x17021802,0x18021902,0x17021602,0x19021a02,0x1a021b02,0x19021802,0x1a021c02,0x14021b02,0x1d021502,0x14021702,0x19021d02,0x1e021d02,0x17021902,0x1b021d02,0x1f021e02,0x19021b02,0x20021e02,0x22022102,0x20022302,0x23022202,0x24022202,0x22022402,0x24022502,0x26022502,0x25022602,0x27022702,0x29022802,0x27022602,0x28022902,0x2b022a02,0x28022902,0x2a022b02,0x2d022c02,0x2a022b02,0x1b022d02,0x2e021f02,0x1f022e02,0x2e022f02,0x30022f02,0x31022c02,0x2d023202,0x32022c02,0x30023302,0x30023402,0x34022f02,0x35023102,0x32023602,0x36023102,0x33023702,0x33023802,0x38023402,0x37023502,0x37023902,0x39023802,0x35023602,0x22023902,0x3a022102,0x3a022202,0x25023b02,0x3c022202,0x3b022202,0x27023c02,0x3d022502,0x3c022502,0x28023d02,0x3e022702,0x3d022702,0x2a023e02,0x3f022802,0x3e022802,0x2c023f02,0x40022a02,0x3f022a02,0x31024002,0x41022c02,0x40022c02,0x35024102,0x42023102,0x41023102,0x37024202,0x43023502,0x42023502,0x33024302,0x44023702,0x43023702,0x30024402,0x45023302,0x44023302,0x2e024502,0x46023002,0x45023002,0x1b024602,0x1c022e02,0x46022e02,0x3b021c02,0x48024702,0x3a023b02,0x49024702,0x48023b02,0x3b023c02,0x4a024902,0x49023c02,0x3c023d02,0x4b024a02,0x3d023e02,0x3d024b02,0x4c024a02,0x3e023f02,0x3e024c02,0x4d024b02,0x3f024002,0x3f024d02,0x46024c02,0x1c024e02,0x4e024f02,0x45024602,0x46024f02,0x41025002,0x50024002,0x4d024002,0x45025102,0x51024402,0x45024f02,0x42025202,0x52024102,0x50024102,0x44025302,0x53024302,0x44025102,0x43025402,0x54024202,0x43025302,0x42025402,0x55025202,0x16025602,0x16025502,0x57021802,0x1a025502,0x18025502,0x4e021a02,0x1c025702,0x1a025702,0x4f021c02,0x58021601,0x56021602,0x50025802,0x59014f01,0x58014f02,0x57025902,0x5a015001,0x59015002,0x59025a02,0x5b015701,0x5a015702,0x94025b02,0x5c015901,0x9401bb02,0x59025c01,0x5c025b01,0x5c01bb02,0x5e025d02,0xbb01bc02,0x5e025d01,0xb001bb02,0x5f01bc01,0x5e01bc02,0x8f025f02,0x6001b001,0x5f01b002,0x6e026002,0x61018f01,0x60018f02,0x6f026102,0x62016e01,0x61016e02,0x71026202,0x63016f01,0x62016f02,0x6b026302,0x64017101,0x63017102,0x65026402,0x6b016c02,0x65026401,0x66016b02,0x6c016d02,0x66026501,0x8b016c02,0x67016d01,0x66016d02,0x88026702,0x68018b01,0x67018b02,0x84026802,0x69018801,0x68018802,0x85026902,0x6a018401,0x69018402,0x82026a02,0x6b018501,0x6a018502,0x80026b02,0xef018201,0x6b018201,0x6c01ef02,0x6e026d02,0x6f026c02,0xff026d02,0x27001,0x7001fe02,0x5901ff02,0x11021202,0x13025902,0x59021202,0x13025802,0x70027102,0x7201fe02,0x6f027302,0x11025a02,0x72021002,0x6c026f02,0x59025a02,0x74021102,0xfe027102,0x5a025b01,0x75021002,0x72027302,0x74027602,0xfd01fe02,0xfe027601,0x7701fd01,0xfd027602,0x77027801,0x7901fd02,0xfd027802,0x79027a01,0x7b01fd02,0xf7027a02,0x73027c01,0x7d01f702,0xf7027c02,0x7d027e01,0x7f01f702,0xf7027e02,0x7f028001,0x8101f702,0xf7028002,0x75027301,0x7501f702,0xfc028202,0xfd027b01,0xf701f801,0x66028201,0x61026202,0x63026602,0x66026202,0x63026402,0x65026602,0xfb026402,0xfc027b01,0xf801f901,0xf9028201,0x7b028201,0x7b01fa02,0xfa01fb02,0x7b01f901,0xf601f702,0x81028101,0x8301f602,0xf6028302,0x83028401,0x85028402,0xe9028602,0x8601ea01,0xeb01ea02,0xeb028601,0x8601ec01,0xed01ec02,0xed028601,0x8601ee01,0xef01ee02,0xef028701,0x87026b01,0xef028602,0xe9028801,0x89028601,0x6b028702,0x6a028902,0x89026902,0x6a026b02,0xe9028a02,0x8b028801,0x69028902,0x69028b02,0x8c026802,0x8a01e902,0x8b028d02,0x8d026802,0x66026702,0x68028d02,0x8e026702,0x66028d02,0x66028f02,0x8f026102,0x66028e02,0x61028f02,0xf0026002,0x91029001,0x9201f002,0xf0029002,0x92028c01,0xe901f002,0xc028c01,0xd020e02,0xf020c02,0xc020e02,0xf021002,0x5c020c02,0xc025b02,0x10025b02,0xf0029302,0x94029101,0xf001f102,0xf0029401,0xf2029301,0x9401f101,0xf201f302,0xf4029401,0x9401f301,0x9401f402,0x96029502,0x98029702,0x99029602,0x9a029702,0x99029702,0x9b029a02,0x9c029702,0x9d029802,0x96029c02,0x9e029802,0x9a029b02,0x9c029f02,0xa0029d02,0x9e029b02,0xa102a002,0xf5029b02,0x9501f401,0x9f02a202,0xa2029d02,0xa3029d02,0xa202a402,0xa402a302,0x5f026002,0xa302a402,0xa4028f02,0x60028f02,0xa402a502,0xf6025f02,0x9501f501,0x9501f602,0xa702a602,0xa002a102,0xa802a702,0xa902a102,0xa601f602,0xa802a902,0xa902a702,0xa802a602,0xf602aa02,0xab02a901,0xaa01f602,0xf602ac02,0xad02ab01,0xac01f602,0xf602ae02,0x8402ad01,0xae01f602,0x5d020b02,0xb025c02,0x5d025e02,0x5c020b02,0xaf020c02,0x5f02a502,0xb002af02,0xaf02a502,0xb025e02,0x5f02af02,0xb1025e02,0xb02af02,0xb302b202,0xb202b002,0xaf02b002,0xb502b402,0xb402b302,0xb202b302,0xb702b602,0xb602b502,0xb402b502,0xb102b802,0xb9020b02,0xb02b802,0xa02b902,0xb9020902,0xa020b02,0xbb02ba02,0xba02b102,0xb802b102,0x902bc02,0xbc020802,0x902b902,0xbe02bd02,0xbd02bb02,0xbe02bf02,0xbb02bd02,0xc002ba02,0x7020802,0xbc02c002,0xc1020802,0xbf02c202,0xbf02c102,0xc302bd02,0xb702c402,0xb702c302,0xc502b602,0xc402c602,0xc402c502,0xc702c302,0x5020602,0x702c702,0xc7020602,0x702c002,0xc902c802,0xc802c202,0xc902ca02,0xc202c802,0xcb02c102,0xc602cc02,0xc602cb02,0xcd02c502,0xcb02cc02,0x8502cd02,0xce02cc02,0x502c702,0x502ce02,0x6e020402,0xca02cf02,0x6d026e02,0x6e02cf02,0xc802ca02,0x85028302,0x7002cd02,0x402ce02,0x1027002,0x70020002,0x1020202,0x3027002,0x70020202,0x3020402,0x15021d02,0x13025602,0x56025802,0x13021502,0x1e025602,0x55021d02,0x56021d02,0x1f025502,0x57021e02,0x55021e02,0x1f025702,0x4e025702,0x47024802,0x48022002,0x23022002,0x23024902,0x49022402,0x23024802,0x24024a02,0x4a022602,0x24024902,0x26024b02,0x4b022902,0x26024a02,0x29024c02,0x4c022b02,0x29024b02,0x2b024d02,0x4d022d02,0x2b024c02,0x2d025002,0x50023202,0x2d024d02,0x32025202,0x52023602,0x32025002,0x36025402,0x54023902,0x36025202,0x39025302,0x53023802,0x39025402,0x38025102,0x51023402,0x38025302,0x34024f02,0x4f022f02,0x1f022f02,0x51024f02,0x4e023402,0x1f024f02,0x2002d002,0xd1024702,0xd202d002,0x4702d002,0xd302d202,0xd402d102,0xd202d102,0xd302d402,0xd502d402,0xd302d602,0xd302d702,0xd702d502,0xd602d802,0xd602d902,0xd902d702,0xd802da02,0xd802db02,0xdb02d902,0xda02dc02,0xda02dd02,0xdd02db02,0xdc02de02,0xdc02df02,0xdf02dd02,0xde02e002,0xde02e102,0xe102df02,0xe002e202,0xe002e302,0xe302e102,0xe302e202,0xe202e402,0xe502e402,0x3a024702,0xd202e602,0xe6024702,0xd202d402,0xd202e702,0xe702e602,0xd402d502,0xd402e802,0xe802e702,0x21023a02,0xe602e902,0xea02e902,0x3a02e602,0xe702e902,0xeb02ea02,0xe602e702,0xe802ea02,0xeb02e702,0xeb02ec02,0xec02ed02,0xeb02e802,0xed02ee02,0xee02ef02,0xed02ec02,0xef02f002,0xf002f102,0xef02ee02,0xf102f202,0xf202f302,0xf102f002,0xf302f402,0xf402f502,0xf302f202,0xf502f602,0xf602f702,0xf502f402,0xf702f802,0xf802f902,0xf702f602,0xf802fa02,0xfb02f902,0xf902fa02,0xfa02f802,0xf602e402,0xe302f802,0xe402f802,0xf402e302,0xe102f602,0xe302f602,0xf202e102,0xdf02f402,0xe102f402,0xf002df02,0xdd02f202,0xdf02f202,0xee02dd02,0xdb02f002,0xdd02f002,0xec02db02,0xd902ee02,0xdb02ee02,0xe802d902,0xd702ec02,0xd902ec02,0xe802d702,0xd502d702,0xfc02fa02,0xfa02e402,0xfc02fd02,0xff02fe02,0xff02fb02,0xfa030002,0xff02fb02,0xfa02fa02,0x1030002,0x102fa03,0xfd02fd03,0x2030102,0x3030103,0x3030403,0x4030503,0x2030603,0x2030403,0x4030103,0x1030303,0x3030703,0x8030703,0x8030503,0x5030903,0x8030303,0x9030403,0x4030a03,0x9030503,0xa030603,0x6030b03,0xa030403,0xb030203,0x2030c03,0xb030603,0xc02fd03,0xfd02fc03,0xc030202,0xd02e503,0xe4030e03,0xd030f02,0xd02e403,0x702e503,0xe4030f03,0x702fc02,0xc02e403,0xfc030703,0x8030902,0xa030703,0xb030c03,0x9030a03,0xa030703,0xc030703,0xfe030e03,0xe502fb02,0xfb030e02,0xff030d02,0xe02fe02,0xfe030d03,0xff030f02,0x30d02,0xf02ff03,0xf030103,0x1030703,0xf030003,0xeb02ed03,0xef02d302,0xd602ed02,0xd302ed02,0xf102d602,0xd802ef02,0xd602ef02,0xf302d802,0xda02f102,0xd802f102,0xf502da02,0xdc02f302,0xda02f302,0xf702dc02,0xde02f502,0xdc02f502,0xf902de02,0xe002f702,0xde02f702,0xfb02e002,0xe202f902,0xe002f902,0xfb02e202,0xe502e202,0x2002e902,0xe902d002,0x20022102,0xd002ea02,0xea02d102,0xd002e902,0xd102eb02,0xeb02d302,0xd102ea02,0x69015a02,0x69027501,0x75028201,0x5a015402,0x5a027201,0x72027501,0x54014802,0x54026c01,0x6c027201,0x48014902,0x48026e01,0x6e026c01,0x4901de02,0x4902c801,0xc8026e01,0xde01d502,0xde02c101,0xc102c801,0xd501d002,0xd502bd01,0xbd02c101,0xd001cc02,0xd002ba01,0xba02bd01,0xcc01c702,0xcc02b801,0xb802ba01,0xc701ca02,0xc702b901,0xb902b801,0xca01ce02,0xca02bc01,0xbc02b901,0xce01d302,0xce02c001,0xc002bc01,0xd301dc02,0xd302c701,0xc702c001,0xdc01e402,0xdc02ce01,0xce02c701,0xe4014b02,0xe4027001,0x7002ce01,0x4b015102,0x4b027101,0x71027001,0x51015802,0x51027401,0x74027101,0x58015b02,0x58027601,0x76027401,0x5b015d02,0x5b027701,0x77027601,0x5d015e02,0x5d027801,0x78027701,0x5e015f02,0x5e027901,0x79027801,0x5f016002,0x5f027a01,0x7a027901,0x60016102,0x60027b01,0x7b027a01,0x61016902,0x61028201,0x82027b01,0x89018c02,0x89028d01,0x8d028b01,0x8c018d02,0x8c028e01,0x8e028d01,0x8d018e02,0x8d028f01,0x8f028e01,0x8e01ae02,0x8e02a301,0xa3028f01,0xae01a602,0xae029d01,0x9d02a301,0xa601a002,0xa6029801,0x98029d01,0xa001a102,0xa0029701,0x97029801,0xa101a502,0xa1029b01,0x9b029701,0xa501ab02,0xa502a101,0xa1029b01,0xab01b402,0xab02a801,0xa802a101,0xb401b202,0xb402a601,0xa602a801,0xb2019f02,0xb2029501,0x9502a601,0x9f019a02,0x9f029401,0x94029501,0x9a019902,0x9a029301,0x93029401,0x99019002,0x99029101,0x91029301,0x90019102,0x90029001,0x90029101,0x91019302,0x91029201,0x92029001,0x93018a02,0x93028c01,0x8c029201,0x8a018702,0x8a028a01,0x8a028c01,0x87018302,0x87028801,0x88028a01,0x83017b02,0x83028601,0x86028801,0x7b018102,0x7b028701,0x87028601,0x81018602,0x81028901,0x89028701,0x86018902,0x86028b01,0x8b028901,0xc501d602,0xc502c401,0xc402b701,0xd601d802,0xd602c601,0xc602c401,0xd801e002,0xd802cc01,0xcc02c601,0xe0017802,0xe0028501,0x8502cc01,0x78017702,0x78028401,0x84028501,0x7701ba02,0x7702ae01,0xae028401,0xba01b902,0xba02ad01,0xad02ae01,0xb901b802,0xb902ac01,0xac02ad01,0xb801b702,0xb802ab01,0xab02ac01,0xb701b602,0xb702aa01,0xaa02ab01,0xb601b502,0xb602a901,0xa902aa01,0xb501b302,0xb502a701,0xa702a901,0xaa02a002,0xa701b301,0xb302a002,0xaa01a801,0xaa029e01,0x9e02a001,0xa801a402,0xa8029a01,0x9a029e01,0xa401a302,0xa4029901,0x99029a01,0xa301a202,0xa3029601,0x96029901,0xa201a702,0xa2029c01,0x9c029601,0xa701a902,0xa7029f01,0x9f029c01,0xa901ad02,0xa902a201,0xa2029f01,0xad01af02,0xad02a401,0xa402a201,0xaf01b102,0xaf02a501,0xa502a401,0xb101bf02,0xb102b001,0xb002a501,0xbf01c202,0xbf02b301,0xb302b001,0xc201c302,0xc202b501,0xb502b301,0xc502b702,0xb501c301,0xc302b702,0x47026f01,0x6d014601,0x46026f02,0x47015501,0x47027301,0x73026f01,0x55016202,0x55027c01,0x7c027301,0x62016402,0x62027d01,0x7d027c01,0x64016502,0x64027e01,0x7e027d01,0x65016602,0x65027f01,0x7f027e01,0x66016702,0x66028001,0x80027f01,0x67016802,0x67028101,0x81028001,0x68017602,0x68028301,0x83028101,0x7601e202,0x7602cd01,0xcd028301,0xe201e102,0xe202cb01,0xcb02cd01,0xe101d902,0xe102c501,0xc502cb01,0xd901d702,0xd902c301,0xc302c501,0xc602b602,0xc301d701,0xd702b602,0xc601c401,0xc602b401,0xb402b601,0xc401c102,0xc402b201,0xb202b401,0xc101be02,0xc102af01,0xaf02b201,0xbe01c002,0xbe02b101,0xb102af01,0xc001cb02,0xc002bb01,0xbb02b101,0xcb01cf02,0xcb02be01,0xbe02bb01,0xcf01d102,0xcf02bf01,0xbf02be01,0xd101d402,0xd102c201,0xc202bf01,0xd401dd02,0xd402c901,0xc902c201,0xdd01df02,0xdd02ca01,0xca02c901,0xdf01e502,0xdf02cf01,0xcf02ca01,0xe5014602,0xe5026d01,0x6d02cf01,0x11031002,0x10031203,0x11031303,0x12031403,0x14031503,0x12031003,0x16031203,0x12031503,0x16031103,0x14031703,0x17031503,0x16031503,0x10031303,0x13031403,0x17031403,0x17031103,0x13031603,0x11031703,0x19031803,0x1b031a03,0x18031903,0x1d031c03,0x1c031e03,0x1f031e03,0x1d032003,0x21031c03,0x1b031903,0x20032203,0x23031c03,0x22032003,0x25032403,0x24032603,0x28032703,0x26032403,0x24032703,0x25032903,0x2a032403,0x24032b03,0x2c032b03,0x2c032403,0x24032d03,0x2e032d03,0x30032f03,0x24033103,0x29032e03,0x32032f03,0x24033003,0x21031903,0x21032403,0x24033303,0x2a033303,0x30033403,0x35033203,0x36033103,0x2f033503,0x37033103,0x30032203,0x23033703,0x37032203,0x34033003,0x36033803,0x38033903,0x36033503,0x23033a03,0x3b033703,0x39033803,0x3b033c03,0x3d033903,0x39033c03,0x23031903,0x3e033a03,0x3f032503,0x3f033e03,0x3e034003,0x41034003,0x41033e03,0x3e033d03,0x39033d03,0x25034203,0x26033e03,0x42032503,0x19034303,0x44033a03,0x43031903,0x19034503,0x1a034403,0x45031903,0x25034603,0x47032903,0x29034603,0x48033303,0x2a034903,0x49033303,0x2a032b03,0x2a034a03,0x4a034903,0x2b032c03,0x2b034b03,0x4b034a03,0x2c032d03,0x2c034c03,0x4c034b03,0x2d032e03,0x29034d03,0x4d032e03,0x4c032d03,0x29034d03,0x47034d03,0x33034803,0x4e032103,0x21034803,0x4f034303,0x44035003,0x50034303,0x44034503,0x44035103,0x51035003,0x45031a03,0x45035203,0x52035103,0x1a031803,0x1a035303,0x53035203,0x18031b03,0x21035403,0x54031b03,0x53031803,0x21035403,0x4e035403,0x43034f03,0x55033a03,0x3a034f03,0x56035203,0x53035303,0x54035603,0x58035703,0x58035903,0x59035a03,0x56035403,0x5a034e03,0x5c035b03,0x5a035903,0x5c035c03,0x5d035b03,0x46035e03,0x60035f03,0x5f035e03,0x60036103,0x47035f03,0x5f034d03,0x4c034d03,0x4c035f03,0x5f034b03,0x4a034b03,0x4a035f03,0x5f034903,0x63036203,0x46036403,0x5f034703,0x65036303,0x4e036403,0x5f035603,0x4e034803,0x49035f03,0x5f034803,0x63036503,0x67036603,0x68036203,0x64036203,0x63036803,0x69035c03,0x5d035c03,0x66036903,0x69036303,0x67036a03,0x67036b03,0x6b036803,0x5d036903,0x6a035503,0x6c036b03,0x6c036a03,0x6a036d03,0x6e036d03,0x5d035503,0x6e035603,0x70036f03,0x71036f03,0x71037003,0x70037203,0x46037203,0x6a037003,0x70036e03,0x46037003,0x73037303,0x5e034603,0x56035503,0x4f034f03,0x50035603,0x56035003,0x51035103,0x52035603,0x46032503,0x3f037203,0x72032503,0x3f034003,0x3f037103,0x71037203,0x40034103,0x40036f03,0x6f037103,0x41033d03,0x41036e03,0x6e036f03,0x3d033c03,0x3b036d03,0x6d033c03,0x6e033d03,0x3b036d03,0x6c036d03,0x38036b03,0x6c033b03,0x3b036b03,0x6b033803,0x35036803,0x68033803,0x35032f03,0x35036403,0x64036803,0x2f033203,0x2f036503,0x65036403,0x32033403,0x32036603,0x66036503,0x34033703,0x3a036903,0x69033703,0x66033403,0x3a036903,0x55036903,0x23032003,0x20035d03,0x5b035d03,0x5b031d03,0x1d035a03,0x5b032003,0x5a031e03,0x1e035803,0x5a031d03,0x58031f03,0x1f035703,0x58031e03,0x57031c03,0x1c035903,0x57031f03,0x59032203,0x22035c03,0x59031c03,0x30036303,0x5c032203,0x22036303,0x6a036703,0x6a033603,0x36033903,0x67036203,0x67033103,0x31033603,0x62036303,0x62033003,0x30033103,0x6a033e03,0x3e037003,0x6a033903,0x60035e03,0x60032603,0x26032703,0x5e037303,0x5e034203,0x42032603,0x73037003,0x73033e03,0x3e034203,0x61036003,0x61032703,0x27032803,0x5f036103,0x5f032803,0x28032403,0x56035f03,0x56032403,0x24031903,0x23035d03,0x56031903,0x19035d03,0x75037403,0x74037603,0x77037603,0x78037503,0x75037603,0x78037903,0x7a037603,0x76037703,0x7a037803,0x74037b03,0x7b037703,0x7a037703,0x75037903,0x79037403,0x7b037403,0x7a037903,0x79037803,0x7a037b03,0x7d037c03,0x7e037e03,0x7f037d03,0x81038003,0x83038203,0x85038403,0x80038103,0x81038603,0x87038603,0x89038803,0x83038a03,0x8b038503,0x88038c03,0x81038a03,0x8a038c03,0x81038203,0x85038a03,0x8d038403,0x87038103,0x84038e03,0x8d038f03,0x91039003,0x93039203,0x92039003,0x93038903,0x8a039203,0x92038903,0x95039403,0x83039603,0x96038b03,0x97039103,0x95039803,0x96038303,0x91039703,0x8d039903,0x9a038f03,0x9b038f03,0x94039a03,0x9c039603,0x9e039d03,0x9e039c03,0x9c039403,0x9d039f03,0xa0039c03,0x9c039f03,0xa003a103,0xa2039c03,0xa3039203,0x91039203,0x9103a303,0xa3039803,0x9b039a03,0x9b03a403,0xa403a503,0x91039903,0xa603a603,0xa7039103,0xa503a403,0xa503a803,0xa803a903,0xa303a203,0xab03aa03,0xac037f03,0x7d037f03,0xa803ac03,0xac03a903,0xaa03a203,0xa903ad03,0xac03ae03,0xab03ae03,0xac03ac03,0xb003af03,0xb203b103,0x8e03b303,0xb303b103,0x8e038103,0xb403b303,0xb503a803,0xac03a803,0xac03b503,0xb503b003,0x9103a703,0xb503b603,0xb703b003,0xb903b803,0xb903ba03,0xba03bb03,0xb803bc03,0xa103ba03,0xba039c03,0xb203b303,0xbe03bd03,0xba03a103,0xbe03bb03,0xb603ba03,0xbf039103,0xb603c003,0xad03bf03,0xc103aa03,0xad03c203,0xc203c103,0xc303c103,0xc203c403,0xb303c303,0xc503bd03,0xc703c603,0xc703c503,0xc503c803,0xc903c803,0xc903c503,0xc503b303,0xca03bd03,0xc403c503,0xcb03c303,0xc403cc03,0xc503cb03,0xcd03ca03,0xce03ca03,0xcc03cd03,0xcf03cb03,0xcc03d003,0xcd03cf03,0xd103ce03,0xd203ce03,0xd003d103,0xd303cf03,0xd003d403,0xd103d303,0xd503d203,0xd603d203,0xd403d503,0xd703d303,0xd403d803,0xd503d703,0xd903d603,0xda03d603,0xdb03d903,0xdc03d803,0xd703d803,0xdc03dc03,0xde03dd03,0xdb03da03,0xd903de03,0xde03da03,0xdc03db03,0xdf03de03,0xe003de03,0xde03e003,0xe103e103,0xe203de03,0xe303dd03,0xde03e203,0xe203dd03,0xe403e303,0xe203e503,0xe503e303,0xe403e503,0xe6039f03,0xe803e703,0xe903e703,0xe703e803,0xea03e603,0xe703eb03,0xeb03ea03,0xec03ea03,0xeb03ed03,0xe803ec03,0xc003e903,0xb603e903,0xed03c003,0xee03ec03,0xed03ef03,0xef03ee03,0xf003ee03,0xef03f103,0xf103f003,0xf203f003,0xf103f303,0xf303f203,0xf403f203,0xf303f503,0x9f03f403,0xf603e403,0xf403f503,0xe403f603,0xf603f503,0xf803f703,0xf803bf03,0xbf03f903,0xfa03f903,0xfa03bf03,0xbf03fb03,0xfc03fb03,0xfc03bf03,0xbf03c003,0xf6039f03,0xfd039d03,0xff03fe03,0x3fe03,0x3ff04,0xff040104,0x103ff03,0x1040204,0x203be04,0x4040304,0x6040504,0x7040304,0x5040304,0x4040704,0x9040804,0x4040504,0x2040904,0xbb03be04,0xf7040803,0x9040a03,0xa040804,0x6040b04,0x6040c04,0xc040704,0xe040d04,0x10040f04,0xf040d04,0x1003bf04,0xf7040f04,0xf03bf03,0xf7040a04,0x11040f03,0x12040b04,0xc040b04,0x13041204,0x14041104,0x12041104,0x15041404,0x17041604,0x15040e04,0xf041704,0x17040e04,0x16041704,0x94037d04,0x18041303,0x14041304,0x17041804,0x19037d04,0x18039404,0x19039504,0x1a037d04,0x7d041a04,0xa037c03,0x1b040f04,0x1c040f04,0x9041b04,0x1d040a04,0x1b040a04,0x5041d04,0x1e040904,0x1d040904,0x7041e04,0x1f040504,0x1e040504,0xc041f04,0x20040704,0x1f040704,0x12042004,0x21040c04,0x20040c04,0x14042104,0x22041204,0x21041204,0x18042204,0x23041404,0x22041404,0x95042304,0x24041803,0x23041804,0x83042404,0x25039503,0x24039504,0x84042504,0x26038303,0x25038304,0x8f042604,0x27038403,0x26038404,0x9b042704,0x28038f03,0x27038f04,0xa5042804,0x29039b03,0x28039b04,0xa9042904,0x2a03a503,0x2903a504,0xae042a04,0x2b03a903,0x2a03a904,0xab042b04,0x2c03ae03,0x2b03ae04,0x7f042c04,0x2d03ab03,0x2c03ab04,0x7e042d04,0x2e037f03,0x2d037f04,0x7c042e04,0x2f037e03,0x2e037e04,0x1a042f04,0x30037c04,0x2f037c04,0x19043004,0x31041a04,0x30041a04,0x17043104,0x32041904,0x31041904,0xf043204,0x1c041704,0x32041704,0x2e041c04,0x2f043304,0x33042d04,0x34042e04,0x36043504,0x36043704,0x38043504,0x35043704,0x3a043904,0x39043b04,0x3c043b04,0x26043d04,0x39042504,0x35043c04,0x35043904,0x3e043404,0x25043d04,0x38043f04,0x40043504,0x42044104,0x42044004,0x40044304,0x3a044304,0x3a044004,0x44043904,0x3d042604,0x27044404,0x45042604,0x46042404,0x48044704,0x45044104,0x25043e04,0x41044904,0x45044804,0x24042504,0x28044a04,0x4a042704,0x44042704,0x45044b04,0x4b044604,0x4d044c04,0x4e044b04,0x4f044c04,0x50044004,0x51044b04,0x4f045204,0x40044104,0x46044b04,0x4b045104,0x4e045204,0x47044f04,0x53044104,0x28042904,0x41045404,0x53044904,0x4a042804,0x41045504,0x56045404,0x2c042d04,0x4f045704,0x56045004,0x2b042c04,0x2b045604,0x56042a04,0x2d043304,0x57045804,0x59045004,0x29042a04,0x29045904,0x59045304,0x2a045604,0x5b045a04,0x5a045c04,0x3f045c04,0x3f045a04,0x5d043504,0x55044104,0x59045e04,0x5e045f04,0x60045f04,0x61045e04,0x5e045604,0x59045604,0x5e046204,0x63046004,0x5a045b04,0x65046404,0x64046604,0x68046704,0x68046404,0x64046504,0x69044d04,0x69046404,0x64046704,0x4d044b04,0x41046a04,0x6a045d04,0x6b045d04,0x57046c04,0x6c045804,0x6d045804,0x6c046e04,0x6e046d04,0x6f046d04,0x63047004,0x70045a04,0x71045a04,0x71047004,0x70047204,0x73047204,0x73047004,0x70047404,0x63047504,0x6e047604,0x76046f04,0x77046f04,0x75047804,0x78047004,0x75047904,0x76047a04,0x7a047704,0x7b047704,0x79047c04,0x7c047804,0x79047d04,0x7a047e04,0x7e047b04,0x7f047b04,0x7d048004,0x80047c04,0x7d048104,0x7e048204,0x82047f04,0x83047f04,0x81048404,0x84048004,0x81048504,0x83048604,0x86048704,0x83048204,0x89048804,0x88048604,0x87048604,0x87048804,0x88048504,0x84048504,0x88048a04,0x8c048b04,0x8a048804,0x88048d04,0x8d048c04,0x89048e04,0x89048d04,0x8f048804,0x8e049004,0x8e048f04,0x4e048d04,0x8f049004,0x92049104,0x91049304,0x92049404,0x93049504,0x95049204,0x96049204,0x95049704,0x97049604,0x98049604,0x94046b04,0x6b049104,0x94045d04,0x97049904,0x99049804,0x9a049804,0x99049b04,0x9b049a04,0x9c049a04,0x9b049d04,0x9d049c04,0x9e049c04,0x9e049f04,0x9f04a004,0x9e049d04,0x9f04a104,0xa104a004,0x9004a004,0x9004a104,0x6a044e04,0xa304a204,0xa4046a04,0x6a04a204,0xa404a504,0xa6046a04,0x6a04a504,0xa604a704,0x6b046a04,0x5204a704,0x4e04a104,0xa904a804,0xa804aa04,0xac04ab04,0xac04a804,0xad04a904,0xab046904,0xab04ad04,0x1e04a804,0xaf04ae04,0xb0041d04,0x1d04ae04,0x1e04ae04,0xaf041f04,0x1f04b104,0xaf041e04,0x69046704,0x2004ad04,0xb204b104,0x1f042004,0x1b04b104,0xb004a304,0xb0041b04,0x1c041d04,0xa3046a04,0xb3041c04,0x1c04b404,0xb504b404,0xb5041c04,0x1c046a04,0x1b04a304,0xb2042104,0x2104b604,0xb2042004,0xb6042204,0x2204b704,0xb6042104,0xb8043204,0x3204b904,0xb304b904,0xb3043204,0x33041c04,0x3204b804,0x33043104,0x23043204,0xb7042204,0xb7042304,0x24044604,0x46042304,0x33043004,0x2f043104,0x30043304,0x92038a04,0x92043903,0x39044003,0x8a038204,0x8a043403,0x34043903,0x82038004,0x82043603,0x36043403,0x80038604,0x80043703,0x37043603,0x86038704,0x86043803,0x38043703,0x87038e04,0x87043f03,0x3f043803,0x8e03b104,0x8e045c03,0x5c043f03,0xb103b204,0xb1045b03,0x5b045c03,0xb203bd04,0xb2046303,0x63045b03,0xbd03ca04,0xbd047503,0x75046303,0xca03ce04,0xca047903,0x79047503,0xce03d204,0xce047d03,0x7d047903,0xd203d604,0xd2048103,0x81047d03,0xd603da04,0xd6048503,0x85048103,0xda03db04,0xda048703,0x87048503,0xdb03d804,0xdb048303,0x83048703,0xd803d404,0xd8047f03,0x7f048303,0xd403d004,0xd4047b03,0x7b047f03,0xd003cc04,0xd0047703,0x77047b03,0xcc03c404,0xcc046f03,0x6f047703,0xc403c204,0xc4046d03,0x6d046f03,0xc203ad04,0xc2045803,0x58046d03,0xad03a204,0xad045003,0x50045803,0xa2039204,0xa2044003,0x40045003,0xbc03b804,0xbc046503,0x65046603,0xaa04a804,0xad03fd04,0xff04a804,0xfd04a803,0x6703ff03,0x204ad04,0xff04ad04,0x68040203,0xbb046704,0x2046703,0x6503bb04,0xb9046804,0xbb046803,0x6503b903,0xb803b904,0xa904aa03,0xaa03fe04,0xfd03fe04,0xa0044c03,0x4d03a103,0xa1044c04,0x4d046903,0x4d03be04,0xbe03a104,0x6904ab03,0x69040104,0x103be04,0xab04ac04,0xab040004,0x40104,0xac04a904,0xac03fe04,0xfe040004,0xa0039f03,0xa0044e03,0x4e044c03,0x9f03e504,0x9f048f03,0x8f044e03,0xe503e204,0xe5048d03,0x8d048f03,0xe203e104,0xe2048c03,0x8c048d03,0xe103e004,0xe1048a03,0x8a048c03,0xe003df04,0xe0048b03,0x8b048a03,0xdf03de04,0xdf048803,0x88048b03,0xde03d904,0xde048403,0x84048803,0xd903d504,0xd9048003,0x80048403,0xd503d104,0xd5047c03,0x7c048003,0xd103cd04,0xd1047803,0x78047c03,0xcd03c504,0xcd047003,0x70047803,0x5a047104,0x7103b304,0xc903b304,0xc9047203,0x7203c803,0xc9047104,0xc8047303,0x7303c703,0xc8047204,0xc7047403,0x7403c603,0xc7047304,0xc6047003,0x7003c503,0xc6047404,0x5a03b303,0x81043504,0x3503b303,0x41044204,0x42039104,0x90039104,0x90044303,0x43039303,0x90044204,0x93043a03,0x3a038903,0x93044304,0x89043b03,0x3b038803,0x89043a04,0x88043c03,0x3c038c03,0x88043b04,0x8c043503,0x35038103,0x8c043c04,0x9103bf03,0x91046a03,0x6a044103,0x3304b804,0xb8037d04,0x16037d04,0x1604b904,0xb9041504,0x1604b804,0x1504b304,0xb3040e04,0x1504b904,0xe04b404,0xb4040d04,0xe04b304,0xd04b504,0xb5041004,0xd04b404,0x10046a04,0x6a03bf04,0x1004b504,0x33037d04,0xac045604,0x56037d03,0x59045f04,0x5f03a804,0xb403a804,0xb4046003,0x6003b503,0xb4045f04,0xb5046203,0x6203b703,0xb5046004,0xb7045e03,0x5e03b003,0xb7046204,0xb0046103,0x6103af03,0xb0045e04,0xaf045603,0x5603ac03,0xaf046104,0xa803a403,0xa8045303,0x53045903,0xa4039a04,0xa4044a03,0x4a045303,0x9a038d04,0x9a044403,0x44044a03,0x8d038504,0x8d043d03,0x3d044403,0x85038b04,0x85043e03,0x3e043d03,0x8b039604,0x8b044503,0x45043e03,0x96039c04,0x96044b03,0x4b044503,0x9c03ba04,0x9c046403,0x64044b03,0xba03bc04,0xba046603,0x66046403,0x803f704,0x804a304,0xa304b004,0xf703f804,0xf704a203,0xa204a303,0xf803f904,0xf804a403,0xa404a203,0xf903fa04,0xf904a503,0xa504a403,0xfa03fb04,0xfa04a603,0xa604a503,0xfb03fc04,0xfb04a703,0xa704a603,0xfc03c004,0xfc046b03,0x6b04a703,0xc003e804,0xc0049103,0x91046b03,0xe803e604,0xe8049303,0x93049103,0xe603ea04,0xe6049503,0x95049303,0xea03ec04,0xea049703,0x97049503,0xec03ee04,0xec049903,0x99049703,0xee03f004,0xee049b03,0x9b049903,0xf003f204,0xf0049d03,0x9d049b03,0xf203f404,0xf2049f03,0x9f049d03,0xf403f604,0xf404a103,0xa1049f03,0xf6039d04,0xf6045203,0x5204a103,0x9d039e04,0x9d045103,0x51045203,0x9e039404,0x9e044603,0x46045103,0x94041304,0x9404b703,0xb7044603,0x13041104,0x1304b604,0xb604b704,0x11040b04,0x1104b204,0xb204b604,0xb040604,0xb04b104,0xb104b204,0x6040304,0x604af04,0xaf04b104,0x3040404,0x304ae04,0xae04af04,0x4040804,0x404b004,0xb004ae04,0xaa03c104,0xaa046c03,0x6c045703,0xc103c304,0xc1046e03,0x6e046c03,0xc303cb04,0xc3047603,0x76046e03,0xcb03cf04,0xcb047a03,0x7a047603,0xcf03d304,0xcf047e03,0x7e047a03,0xd303d704,0xd3048203,0x82047e03,0xd703dc04,0xd7048603,0x86048203,0xdc03dd04,0xdc048903,0x89048603,0xdd03e304,0xdd048e03,0x8e048903,0xe303e404,0xe3049003,0x90048e03,0xe403f504,0xe404a003,0xa0049003,0xf503f304,0xf5049e03,0x9e04a003,0xf303f104,0xf3049c03,0x9c049e03,0xf103ef04,0xf1049a03,0x9a049c03,0xef03ed04,0xef049803,0x98049a03,0xed03eb04,0xed049603,0x96049803,0xeb03e704,0xeb049203,0x92049603,0xe703e904,0xe7049403,0x94049203,0xe903b604,0xe9045d03,0x5d049403,0xb603a704,0xb6045503,0x55045d03,0xa703a604,0xa7045403,0x54045503,0xa6039904,0xa6044903,0x49045403,0x99039704,0x99044803,0x48044903,0x97039804,0x97044703,0x47044803,0x9803a304,0x98044f03,0x4f044703,0xa303aa04,0xa3045703,0x57044f03,0xbb04ba04,0xba04bc04,0xbb04bd04,0xbe04ba04,0xba04bf04,0xbd04bf04,0xbe04c004,0xbf04c104,0xc004be04,0xbc04be04,0xbe04c104,0xbc04ba04,0xbb04c104,0xc104c004,0xbb04bc04,0xbf04bd04,0xbd04c004,0xbb04c004,0xc304c204,0xc204c404,0xc504c404,0xc604c304,0xc304c404,0xc604c704,0xc804c404,0xc404c504,0xc804c604,0xc204c904,0xc904c504,0xc804c504,0xc304c704,0xc704c204,0xc904c204,0xc904c604,0xc704c804,0xc604c904,0xcb04ca04,0xcd04cc04,0xcc04ca04,0xcb04ce04,0xce04ca04,0xcb04cf04,0xcc04cf04,0xcf04cb04,0xcc04d004,0xcd04d004,0xd004cc04,0xcd04d104,0xca04d104,0xd104cd04,0xca04ce04,0xcf04d004,0xd004ce04,0xd104ce04,0xd304d204,0xd204d404,0xd304d504,0xd204d604,0xd704d404,0xd404d604,0xd604d804,0xd804d704,0xd904d704,0xd504d604,0xd604d204,0xd504d804,0xd904d804,0xd804d304,0xd504d304,0xd704d904,0xd904d404,0xd304d404,0xdb04da04,0xda04dc04,0xdb04dd04,0xdf04de04,0xdd04db04,0xdb04de04,0xe104e004,0xe004de04,0xdd04de04,0xe204e004,0xe004e304,0xe104e304,0xe204e404,0xe304da04,0xe404e204,0xe404dc04,0xe504da04,0xdc04e404,0xda04dd04,0xdd04e204,0xe004e204,0xe104e404,0xe404e304,0xe104de04,0xe504de04,0xde04df04,0xe504e404,0xe504df04,0xdf04dc04,0xdb04dc04,0xe704e604,0xe604e804,0xe704e904,0xeb04ea04,0xea04e604,0xe804e604,0xe904eb04,0xeb04e604,0xe904ec04,0xe704ec04,0xec04e904,0xe704ed04,0xeb04ec04,0xec04ea04,0xed04ea04,0xea04ed04,0xed04e804,0xe704e804,0xef04ee04,0xee04f004,0xef04f104,0xf004f204,0xf204f304,0xf004ee04,0xf404f004,0xf004f304,0xf404ef04,0xf204f504,0xf504f304,0xf404f304,0xee04f104,0xf104f204,0xf504f204,0xf504ef04,0xf104f404,0xef04f504,0xf704f604,0xf604f804,0xf704f904,0xfb04fa04,0xfa04f604,0xf804f604,0xf904fb04,0xfb04f604,0xf904fc04,0xf704fc04,0xfc04f904,0xf704fd04,0xfb04fc04,0xfc04fa04,0xfd04fa04,0xfa04fd04,0xfd04f804,0xf704f804,0xff04fe04,0xfe050004,0x1050004,0x204ff05,0xff050005,0x2050304,0x3050405,0x404ff05,0xfe04ff05,0x5050304,0x3050205,0x5050405,0x1050205,0x2050005,0x1050505,0xfe050505,0x4050104,0x504fe05,0x7050605,0x6050805,0x9050805,0xa050705,0x7050805,0xa050b05,0xc050805,0x8050905,0xc050a05,0x6050d05,0xd050905,0xc050905,0x7050b05,0xb050605,0xd050605,0xd050a05,0xb050c05,0xa050d05,0xf050e05,0xe051005,0xf051105,0x10051205,0x12051305,0x10050e05,0x14051005,0x10051305,0x14050f05,0x12051505,0x15051305,0x14051305,0xe051105,0x11051205,0x15051205,0x15050f05,0x11051405,0xf051505,0x17051605,0x17051805,0x18051905,0x1a051905,0x18051b05,0x1b051905,0x1a051b05,0x1b051c05,0x1d051c05,0x1d051e05,0x1d051f05,0x1f051c05,0x21052005,0x23052205,0x22052005,0x1e052105,0x25052405,0x24052605,0x22052605,0x27052405,0x24052505,0x1f051e05,0x22052405,0x24052105,0x29052805,0x28051c05,0x1a051c05,0x1a052a05,0x2a051905,0x1a052805,0x19052b05,0x2b051705,0x19052a05,0x17052c05,0x2c051605,0x17052b05,0x16052d05,0x2d051805,0x16052c05,0x18052e05,0x2e051b05,0x18052d05,0x2a052d05,0x2d052b05,0x2c052b05,0x2a052805,0x2e052d05,0x2d052805,0x28052905,0x2f052e05,0x2e052905,0x2f053005,0x30053105,0x2f052905,0x33053205,0x32053405,0x33053505,0x37053605,0x36053805,0x37053905,0x32053605,0x36053905,0x35053105,0x30053605,0x36053105,0x32053505,0x29051c05,0x1f053005,0x30051c05,0x1f052405,0x1f053605,0x36053005,0x24052705,0x24053805,0x38053605,0x27052505,0x27053705,0x37053805,0x25052605,0x25053905,0x39053705,0x26052205,0x26053205,0x32053905,0x22052305,0x22053405,0x34053205,0x20053405,0x34052305,0x20053305,0x20052105,0x20053505,0x35053305,0x21051e05,0x21053105,0x31053505,0x1e051d05,0x1e052f05,0x2f053105,0x2f051d05,0x1b052e05,0x2e051d05,0x3b053a05,0x3b053c05,0x3c053d05,0x3b053d05,0x3a053e05,0x3f053c05,0x3e053d05,0x3e054005,0x41053f05,0x3e054005,0x3f054105,0x41053c05,0x43054205,0x45054405,0x44054205,0x43054405,0x47054605,0x48054405,0x46054405,0x41054805,0x49053c05,0x41054305,0x46054905,0x4a054305,0x49054305,0x4a054a05,0x4b054905,0x4a054c05,0x4a054d05,0x4d054b05,0x4e054905,0x4b054f05,0x4f054905,0x42054305,0x43055005,0x51055005,0x42055005,0x52054505,0x45055005,0x54055305,0x56055505,0x55055305,0x56055205,0x50055105,0x51055205,0x55055605,0x57055105,0x59055805,0x57055a05,0x55055905,0x5b055a05,0x55055105,0x5a055b05,0x5b055905,0x51054005,0x51053d05,0x3d055b05,0x5c055905,0x5b055d05,0x5d055905,0x3c054905,0x5b053d05,0x3d054905,0x4e055d05,0x5b054905,0x49055d05,0x4f055c05,0x5d054e05,0x4e055c05,0x4f054b05,0x4b055c05,0x59055c05,0x4d055805,0x59054b05,0x4b055805,0x58055e05,0x5f055705,0x58054d05,0x58055f05,0x4c055e05,0x5f054d05,0x60055305,0x61055405,0x60055e05,0x5f056105,0x47055e05,0x61054805,0x60054705,0x47055305,0x60056105,0x44055605,0x53054705,0x47055605,0x45055205,0x56054405,0x44055205,0x60055405,0x55056205,0x62055405,0x5a056205,0x62055505,0x5a056305,0x57055e05,0x57056305,0x63055a05,0x5e056005,0x5e056205,0x62056305,0x5f054c05,0x5f054a05,0x4a056405,0x4a054605,0x46056405,0x65056405,0x48056105,0x48056505,0x65054605,0x61055f05,0x61056405,0x64056505,0x40055105,0x43054105,0x41055105,0x67056605,0x3f053a05,0x3a056605,0x3a053b05,0x68056705,0x67053b05,0x3b053e05,0x69056805,0x68053e05,0x66056905,0x3e053f05,0x3f056905,0x67056805,0x69056605,0x66056805,0x6b056a05,0x6d056c05,0x6c056a05,0x6c056e05,0x6e056f05,0x6c056d05,0x6f057005,0x70057105,0x6f056e05,0x71056a05,0x6a056b05,0x71057005,0x6f056b05,0x6b056c05,0x6f057105,0x6a057005,0x70056d05,0x6e056d05,0x73057205,0x72057405,0x75057405,0x75057205,0x72057605,0x77057605,0x76057805,0x78057505,0x74057505,0x77057905,0x79057605,0x78057605,0x79057705,0x77057305,0x72057305,0x74057805,0x79057305,0x73057805,0x7b057a05,0x7b057c05,0x7e057d05,0x7b057c05,0x7f057e05,0x80057e05,0x7d057e05,0x7f058005,0x81058005,0x81058205,0x81058305,0x83058005,0x85058405,0x87058605,0x86058405,0x82058505,0x89058805,0x88058a05,0x86058a05,0x8b058805,0x88058905,0x83058205,0x86058805,0x88058505,0x8d058c05,0x8c058005,0x7d058005,0x7d058e05,0x8e057b05,0x7d058c05,0x7b058f05,0x8f057a05,0x7b058e05,0x7a059005,0x90057c05,0x7a058f05,0x7c059105,0x91057e05,0x7c059005,0x7e059205,0x92057f05,0x7e059105,0x8e059105,0x91058f05,0x90058f05,0x8e058c05,0x92059105,0x91058c05,0x8c058d05,0x93059205,0x92058d05,0x93059405,0x94059505,0x93058d05,0x97059605,0x96059805,0x97059905,0x9b059a05,0x9a059c05,0x9b059d05,0x96059a05,0x9a059d05,0x99059505,0x94059a05,0x9a059505,0x96059905,0x8d058005,0x83059405,0x94058005,0x83058805,0x83059a05,0x9a059405,0x88058b05,0x88059c05,0x9c059a05,0x8b058905,0x8b059b05,0x9b059c05,0x89058a05,0x89059d05,0x9d059b05,0x8a058605,0x8a059605,0x96059d05,0x86058705,0x86059805,0x98059605,0x84059805,0x98058705,0x84059705,0x84058505,0x84059905,0x99059705,0x85058205,0x85059505,0x95059905,0x82058105,0x82059305,0x93059505,0x93058105,0x7f059205,0x92058105,0x9f059e05,0x9e05a005,0xa105a005,0xa2059f05,0x9f05a005,0xa205a305,0xa405a005,0xa005a105,0xa405a205,0x9e05a505,0xa505a105,0xa405a105,0x9f05a305,0xa3059e05,0xa5059e05,0xa505a205,0xa305a405,0xa205a505,0xa705a605,0xa605a805,0xa905a805,0xaa05a705,0xa705ab05,0xa805ab05,0xac05aa05,0xaa05ab05,0xac05ad05,0xa905ab05,0xab05a805,0xa905ac05,0xa605ac05,0xad05a905,0xac05a605,0xaa05ad05,0xad05a705,0xa605a705,0xaf05ae05,0xaf05b005,0xb205b105,0xb305b105,0xb005b205,0xb205af05,0xb405b305,0xb205b505,0xb505b305,0xb705b605,0xb405b805,0xb805b605,0xb405b505,0xb805b805,0xb905b705,0xba05b705,0xba05bb05,0xbb05bc05,0xb905bd05,0xb905bb05,0xbb05b705,0xbe05b705,0xba05bf05,0xc005bf05,0xb705ba05,0xbc05bf05,0xc105c005,0xba05bc05,0xbb05c005,0xc205c105,0xbc05bb05,0xbd05c105,0xc305c205,0xbb05bd05,0xb905c205,0xc405c305,0xbd05b905,0xb805c305,0xc405b905,0xc405b505,0xb505c505,0xc405b805,0xb505b205,0xb205c505,0xc605c505,0xc605b005,0xb005c705,0xc605b205,0xc705ae05,0xae05c805,0xc705b005,0xc805af05,0xaf05c905,0xc805ae05,0xc905b105,0xb105ca05,0xcb05ca05,0xaf05b105,0xb305c905,0xcb05b105,0xb405cc05,0xcb05cb05,0xb305b405,0xce05cd05,0xd005cf05,0xd105cd05,0xcf05cd05,0xd205d105,0xd305d005,0xd105d005,0xd405d305,0xd505d205,0xd305d205,0xd605d505,0xd705d405,0xd505d405,0xcc05d705,0xd805d605,0xcc05b405,0xd605d805,0xd805d705,0xb605d905,0xd905b405,0xd805b405,0xd805da05,0xda05d705,0xd805d905,0xd505db05,0xdb05d305,0xd505d705,0xda05db05,0xdc05d705,0xd105d305,0xdb05dc05,0xdd05d305,0xd105dc05,0xd105de05,0xde05cf05,0xd105dd05,0xdf05de05,0xdd05e005,0xe105e005,0xde05dd05,0xdc05e005,0xe205e105,0xdd05dc05,0xdb05e105,0xe305e205,0xdc05db05,0xda05e205,0xe405e305,0xdb05da05,0xd905e305,0xb605e505,0xe405d905,0xd905e505,0xe405da05,0xb605be05,0xb705e505,0xbe05b605,0xc905c705,0xc605c805,0xc905ca05,0xcb05c605,0xc605ca05,0xc705c905,0xcc05c505,0xc505cb05,0xc605cb05,0xe505c405,0xc405cc05,0xe505be05,0xcc05c405,0xc305c505,0xc405be05,0xbf05c105,0xc105be05,0xbf05c005,0xc305c105,0xc105c205,0xc305be05,0xe505cc05,0xd405e405,0xe405d605,0xcc05d605,0xd405e405,0xe305e405,0xd405d205,0xd405e205,0xe205e305,0xd205d005,0xd205e105,0xe105e205,0xd005cd05,0xd005e005,0xe005e105,0xcd05ce05,0xcd05df05,0xdf05e005,0xe605df05,0xdf05ce05,0xe605e705,0xe705de05,0xde05df05,0xe705e805,0xe805e905,0xcf05de05,0xde05e905,0xeb05ea05,0xed05ec05,0xec05ea05,0xed05ee05,0xed05ef05,0xef05ec05,0xee05e905,0xee05e805,0xe805ef05,0xf005ec05,0xec05f105,0xf005eb05,0xf105ef05,0xef05f205,0xf105ec05,0xef05e705,0xe805f205,0xe705ef05,0xf005f105,0xf105f305,0xf405f305,0xf405f205,0xf205f505,0xf405f105,0xf505e705,0xe705e605,0xf505f205,0xea05f305,0xf405ed05,0xed05f305,0xf405f505,0xf405ee05,0xee05ed05,0xee05f505,0xe605e605,0xe905ee05,0xf705f605,0xf305ea05,0xea05f605,0xf905f805,0xf905fa05,0xfa05fb05,0xfc05fb05,0xfc05fa05,0xfa05fd05,0xfe05fa05,0xff05f705,0xf705f805,0xfa05f805,0xfe05f705,0xea060005,0xfe05f705,0x105ea05,0x3060206,0x1060406,0x1060506,0x5060306,0x4060606,0x4060706,0x7060506,0x6060006,0xea060806,0x8060005,0x7060606,0x9060806,0xb060a06,0xc060b06,0x9060d06,0xd060b06,0xe060d06,0xe060f06,0xf061006,0x9061106,0x9060f06,0xf060d06,0x12060806,0x1205eb06,0xeb061106,0x805ea05,0x1105eb06,0xeb060f06,0x13060905,0xa060a06,0x14061306,0x14060a06,0xc060b06,0x15060b06,0x14060b06,0xd061506,0x16060c06,0x15060c06,0xe061606,0x17060d06,0x16060d06,0x10061706,0x18060e06,0x17060e06,0xf061806,0x19061006,0x18061006,0xf061906,0x1a061906,0x1a05eb06,0xeb05f006,0x1a060f05,0x1c061b06,0x1b061d06,0x1c061e06,0x1f061b06,0x1b061e06,0x1f062006,0x1d05f606,0xf6062106,0x1b062205,0x1b05f606,0xf3061d06,0x22062305,0x2205f306,0x2405f606,0x26062506,0x26062706,0x27062806,0x26062406,0x28062906,0x29062a06,0x28062706,0x2a062b06,0x2b062306,0xf3062306,0x29062b05,0x15062a06,0x13061406,0x16061706,0x17061506,0x13061506,0x18061a06,0x1a061706,0x18061906,0x13061a06,0x1a062c06,0x13061706,0x2d05f006,0xf0062b06,0x2d062c05,0x2b05f006,0xf005f306,0x2c061a05,0xf705ff06,0xf7062105,0x2105f605,0xff05f806,0xff061d05,0x1d062105,0xf805f906,0xf8061c05,0x1c061d05,0xf905fb06,0xfc061e05,0x1e05fb05,0x1c05f906,0xfd061e06,0x1f05fc05,0x1e05fc06,0xfa061f06,0x2005fd05,0x1f05fd06,0xfa062006,0x1b062005,0xfa05fe06,0xfa062205,0x22061b05,0xfe060006,0xfe062305,0x23062205,0x60606,0x62a06,0x2a062306,0x6060406,0x6062806,0x28062a06,0x4060106,0x4062606,0x26062806,0x1060206,0x1062506,0x25062606,0x2062e06,0x2e062506,0x2f062506,0x31063006,0x31063206,0x32063306,0x30063406,0x30063506,0x35063206,0x34063606,0x34063706,0x37063506,0x36063806,0x36063906,0x39063706,0x38063a06,0x38063b06,0x3b063906,0x3a063c06,0x3a063d06,0x3d063b06,0x3c063e06,0x3c063f06,0x3f063d06,0x3e064006,0x3e064106,0x41063f06,0x40064206,0x40064306,0x43064106,0x42062e06,0x42064406,0x44064306,0x2e060206,0x2e060306,0x3064406,0x31064506,0x46063006,0x30064506,0x46064706,0x46063406,0x34063006,0x47064806,0x47063606,0x36063406,0x48064906,0x48063806,0x38063606,0x49064a06,0x49063a06,0x3a063806,0x3a064a06,0x4a063c06,0x4b063c06,0x3c064b06,0x4b063e06,0x4c063e06,0x3e064c06,0x4c064006,0x4d064006,0x40064d06,0x42064206,0x4e062e06,0x42064d06,0x4e064e06,0x2f062e06,0x50064f06,0x45063106,0x31064f06,0x52065106,0x54065306,0x53065106,0x56065506,0x58065706,0x57065506,0x50065906,0x50065a06,0x5a064f06,0x59065b06,0x59065c06,0x5c065a06,0x5b065306,0x5b065406,0x54065c06,0x5e065d06,0x5d065f06,0x60065f06,0x56065706,0x62066106,0x63065d06,0x63066206,0x63066406,0x64066506,0x63066506,0x50066606,0x31065906,0x52065306,0x5b066706,0x67065306,0x64066206,0x68066706,0x67066206,0x68065206,0x66066706,0x69066306,0x6a065606,0x59066b06,0x6c065b06,0x56066d06,0x5b066b06,0x6c066706,0x6d065606,0x6b066e06,0x6f066a06,0x63066906,0x59067006,0x71066c06,0x59063106,0x61067106,0x72065606,0x6e065606,0x31067206,0x73067106,0x73063106,0x6a067406,0x76067506,0x6a066f06,0x77067606,0x78066106,0x74063106,0x61067906,0x78067206,0x75067606,0x75067a06,0x7c067b06,0x7d067b06,0x7a067c06,0x7c067506,0x77065206,0x77066806,0x68067806,0x7f067e06,0x7f068006,0x80068106,0x7e068206,0x7e068306,0x83068006,0x79063106,0x79063306,0x33068406,0x82068406,0x82063306,0x33068306,0x85066206,0x85065d06,0x5d065e06,0x86067506,0x7b068706,0x88068706,0x75067b06,0x7d068706,0x89068806,0x7b067d06,0x7c068806,0x8a068906,0x7d067c06,0x7a068906,0x8b068a06,0x7c067a06,0x76068a06,0x8b067a06,0x8b067606,0x6f068c06,0x8c067606,0x6f066b06,0x6f068d06,0x8d068c06,0x6b066d06,0x6b068e06,0x8e068d06,0x6d066e06,0x6d068f06,0x8f068e06,0x6e067206,0x6e069006,0x90068f06,0x72067806,0x72069106,0x91069006,0x78066806,0x78069206,0x92069106,0x68066206,0x68069306,0x93069206,0x62068506,0x62069406,0x94069306,0x85065e06,0x85069506,0x95069406,0x5e065f06,0x5e069606,0x96069506,0x5f066006,0x5f069706,0x97069606,0x5d069806,0x97066006,0x60069806,0x9a069906,0x5d069b06,0x9c069806,0x5d069d06,0x9b069c06,0x9e069a06,0x9d069f06,0x9d06a006,0xa0069c06,0xa1069a06,0x9e06a206,0xa2069a06,0x9f06a306,0xa106a406,0xa406a306,0xa106a206,0x9f06a406,0xa406a006,0xa606a506,0xa5069b06,0x9e069b06,0x9e06a706,0xa706a206,0x9e06a506,0xa206a806,0xa806a406,0xa206a706,0xa406a906,0xa906a006,0xa406a806,0xa006aa06,0xaa069c06,0xa006a906,0x9c06ab06,0xab069806,0x9c06aa06,0xad06ac06,0xad06ae06,0xaf069b06,0xb106b006,0xb106af06,0xaf06b206,0xae06b206,0xae06af06,0xaf06ad06,0xa6069b06,0xaf06b306,0xb3069b06,0xa606b306,0xb406b406,0xb606b506,0xb406b306,0xb706b606,0xb806b306,0xb606b306,0xb806b906,0xb906b306,0xb406b506,0xb506ba06,0xbb06ba06,0xbb06b606,0xb606bc06,0xbb06b506,0xbc06b906,0xb906bd06,0xbc06b606,0xbd06b806,0xb806be06,0xbd06b906,0xbe06b706,0xb706bf06,0xbe06b806,0xbf06b306,0xb306c006,0xbf06b706,0xaf06c106,0xc006b306,0xb306c106,0xaf06b006,0xb006c106,0xc206c106,0xc306b106,0xb106c406,0xc306c206,0xb006b106,0xb206c206,0xc506c406,0xb106b206,0xae06c406,0xc606c506,0xb206ae06,0xac06c506,0xc706c606,0xae06ac06,0xad06c606,0xc706ac06,0x9b069906,0xc706ad06,0xad069906,0xc706c106,0xc106c606,0xc506c606,0xc506c106,0xc106c406,0xc306c406,0xc306c106,0xc106c206,0xc7069906,0xc806c006,0xc0069906,0xc1069906,0xc806ba06,0xbe06c006,0xbf06c006,0xbb06bc06,0xbd06ba06,0xc006ba06,0xbc06bd06,0xbd06ba06,0xbe06c006,0x99069a06,0x9906c906,0xc906c806,0x9a06a106,0x9a06ca06,0xca06c906,0xa106a306,0xa106cb06,0xcb06ca06,0xa3069f06,0xa306cc06,0xcc06cb06,0x9f069d06,0x9f06cd06,0xcd06cc06,0x9d065d06,0x9d066306,0x6306cd06,0xc906a606,0xaa06c806,0xcd066306,0xab06aa06,0xa5066306,0xa606c906,0xcd06a906,0xa906cc06,0xcd06aa06,0xca06a706,0xa706c906,0xa506c906,0xcc06a806,0xa806cb06,0xca06cb06,0xca06a806,0xa806a706,0xcc06a906,0xc806b406,0xb406ba06,0xc806a606,0xab067006,0x7006ce06,0xab066306,0xce067006,0x6906cf06,0xcf067006,0x69066606,0x6906d006,0xd006cf06,0x66066506,0x6606d106,0xd106d006,0x65066406,0x6506d206,0xd206d106,0x64066706,0x6406d306,0xd306d206,0x67066c06,0x6706d406,0xd406d306,0x6c067106,0x6c06d506,0xd506d406,0x71067306,0x7106d606,0xd606d506,0x73067406,0x7306d706,0xd706d606,0x74067906,0x7406d806,0xd806d706,0x79068406,0x7906d906,0xd906d806,0x84068206,0x8406da06,0xda06d906,0xda068206,0x7e06db06,0xdc06db06,0x82067e06,0x7f06db06,0xdd06dc06,0x7e067f06,0x8106dc06,0xde06dd06,0x7f068106,0x8006dd06,0xdf06de06,0x81068006,0x8306de06,0xdf068006,0x83063306,0x3306df06,0xe006df06,0xe0063206,0x3206e106,0xe0063306,0xe1063506,0x3506e206,0xe1063206,0xe2063706,0x3706e306,0xe2063506,0xe3063906,0x3906e406,0xe3063706,0xe4063b06,0x3b06e506,0xe4063906,0x3b063d06,0xe606e506,0xe5063d06,0x3d063f06,0xe706e606,0xe6063f06,0x3f064106,0xe806e706,0xe7064106,0x41064306,0xe906e806,0x43064406,0x4306e906,0xea06e806,0xe9064406,0x44060306,0x306ea06,0x2406ea06,0x3060506,0x3062706,0x27062406,0x5060706,0x5062906,0x29062706,0x7060806,0x7062b06,0x2b062906,0x8061206,0x8062d06,0x2d062b06,0x12061106,0x12062c06,0x2c062d06,0x11060906,0x11061306,0x13062c06,0xe006e106,0xe1064506,0x46064506,0x4606e206,0xe2064706,0x4606e106,0x4706e306,0xe3064806,0x4706e206,0x4806e406,0xe4064906,0x4806e306,0x4906e506,0xe5064a06,0x4906e406,0x4a06e606,0xe6064b06,0x4a06e506,0x4b06e706,0xe7064c06,0x4b06e606,0x4c06e806,0xe8064d06,0x4c06e706,0x4d06e906,0xe9064e06,0x4d06e806,0x4e06ea06,0xea062f06,0x4e06e906,0x2f062406,0x24062506,0x2f06ea06,0x96069706,0xeb069806,0x58065506,0x9806ab06,0xd2069306,0x9306ab06,0xd106d206,0xd006ab06,0xd106ab06,0x5a064506,0xd3064f06,0x92069306,0xd206d306,0xd3069306,0x5c065406,0x5106d306,0xd3065406,0x51069206,0xab06cf06,0x8d06d006,0x5506ec06,0xd306d406,0x8d065c06,0x8e065506,0x5c06d406,0x8f065a06,0x55068e06,0xab06ce06,0x8c06cf06,0x8d06ec06,0xd406d506,0xd5065a06,0x45065a06,0x55069006,0x9006eb06,0x55068f06,0xd506d606,0x8b064506,0xec068606,0xd606d706,0x8b064506,0x8c06ec06,0xd706d806,0x91064506,0xed06eb06,0x90069106,0x8a06eb06,0x8b068606,0x88068906,0x89068706,0x86068706,0x86068906,0x92068a06,0x5106ed06,0xdd06de06,0x9206dc06,0xed069106,0xdc06df06,0xdf06db06,0xda06db06,0xde06df06,0xe006dc06,0xd806d906,0xda06e006,0xe006d906,0x4506d806,0xdf06e006,0x9806da06,0x93069406,0x95069806,0x96069406,0x98069506,0x52067706,0x5206ed06,0xed065106,0x77066106,0x7706eb06,0xeb06ed06,0x61065706,0x61065806,0x5806eb06,0xef06ee06,0xf106f006,0xf206f006,0xee06f106,0xf306f006,0xf206f106,0xf206f406,0xf406f506,0xf206f306,0xf506f606,0xf606f706,0xf506f406,0xf706f806,0xf806f906,0xf706f606,0xf906fa06,0xfa06fb06,0xf906f806,0xfb06fc06,0xfc06fd06,0xfb06fa06,0xfd06fe06,0xfe06ff06,0xfd06fc06,0xff070006,0x70106,0xff06fe07,0x1070206,0x2070307,0x1070007,0x306ec07,0xec065507,0x3070206,0x5070407,0x7070607,0x4070507,0x7070807,0xa070907,0xb070807,0x5070a07,0xa070707,0x8070707,0xd070c07,0xc070507,0xa070507,0xd070e07,0xf070c07,0xe070d07,0xd071007,0x11070f07,0x12070f07,0x10071307,0x13070f07,0x11070f07,0x12071407,0x14071507,0x12071107,0x17071607,0x16071007,0x13071007,0x15071807,0x1806ef07,0x15071407,0x17071907,0xee071607,0xef071806,0x1b071a06,0x1a071707,0x19071707,0x19071c07,0x1e071d07,0x19071a07,0x19071f07,0x1f071c07,0x19071e07,0x21072007,0x21071b07,0x1b071707,0x20072207,0x20071a07,0x1a071b07,0x22072307,0x22071e07,0x1e071a07,0x23072407,0x25071f07,0x1f072407,0x1e072307,0x26071f07,0x1c072507,0x1f072507,0x27071c07,0x1d072607,0x1c072607,0x27071d07,0x19071d07,0x29072807,0x2a072a07,0x2b072907,0x2b072c07,0x2e072d07,0x2f072d07,0x29072b07,0x2d072f07,0x2f072b07,0x30072907,0x2f073107,0x31072907,0x30073107,0x32073207,0x33073007,0x30073307,0x35073407,0x36073307,0x34073307,0x36073707,0x37073307,0x35073807,0x35073907,0x39073607,0x21073407,0x37073a07,0x3a073407,0x38073b07,0x38073c07,0x3c073907,0x21073a07,0x3b072707,0x3d073c07,0x20072107,0x27072207,0x22072107,0x27072607,0x27072507,0x23072207,0x27072507,0x27072407,0x24072307,0x34071707,0x21071007,0x17073407,0x3f073e07,0x3e074007,0x41074007,0x42073e07,0x43073f07,0x41073e07,0x43071007,0x34074107,0x10074307,0x42074407,0x45073e07,0x3e074407,0x45074607,0x45074307,0x43073e07,0x46073007,0x46073407,0x34074307,0x48074707,0x44074207,0x42074707,0x48073f07,0x42074907,0x3f074807,0x4a073f07,0x3f074b07,0x4a074907,0x3f074007,0x40074b07,0x4c074b07,0x4c074107,0x41074d07,0xd074d07,0x40074107,0x10074c07,0xd074107,0x44074b07,0x4c074507,0x45074b07,0x4c074d07,0x4d074507,0x46074507,0x46074d07,0xd070d07,0x30074607,0x47074a07,0x4b074b07,0x44074707,0x4f074e07,0x51075007,0x50074e07,0x51075207,0x53075007,0x54075207,0x50075207,0x55075407,0x56075307,0x54075307,0x57075607,0x58075507,0x56075507,0x4a075807,0x47075707,0x58075707,0x47075907,0x59075707,0x48075a07,0x5a074707,0x59074707,0x59075b07,0x5b075807,0x59075a07,0x58075c07,0x5c075607,0x58075b07,0x56075d07,0x5d075407,0x56075c07,0x50075e07,0x5e074f07,0x50075407,0x5d075e07,0x5f075407,0x4f075e07,0x60075e07,0x5e076107,0x62076107,0x5f075e07,0x5d076007,0x63076207,0x5e075d07,0x5c076207,0x64076307,0x5d075c07,0x5b076307,0x65076407,0x5c075b07,0x48076407,0x49076507,0x5b075a07,0x5a076507,0x48076507,0x49074a07,0x57076507,0x65074a07,0x57075507,0x57076407,0x64076507,0x55075307,0x55076307,0x63076407,0x53075207,0x53076207,0x62076307,0x52075107,0x52076107,0x61076207,0x51074e07,0x51076007,0x60076107,0x67076607,0x66076807,0x67076907,0x6b076a07,0x6a076907,0x6b076c07,0x69076a07,0x4e076607,0x6a076c07,0x6e076d07,0x70076f07,0x71076f07,0x6d077007,0x72076f07,0x73077107,0x70077207,0x60077107,0x6c077307,0x6c076007,0x60074e07,0x73077207,0x75077407,0x74077307,0x71077307,0x71077407,0x76076f07,0x6e076f07,0x74077607,0x77076f07,0x6d076e07,0x76077707,0x78076e07,0x70076d07,0x77077807,0x79076d07,0x72077007,0x78077907,0x7a077007,0x72077907,0x7c077b07,0x7c077d07,0x7d077e07,0x7f077e07,0x7f078007,0x80078107,0x7e077d07,0x80078007,0x4f078107,0x76077407,0x77077707,0x79077807,0x77077407,0x75077907,0x7a077407,0x79077407,0x81077a07,0x5f077507,0x81074f07,0x75075f07,0x5f077a07,0x75077307,0x6c078107,0x81077307,0x6a078007,0x7d076607,0x68076607,0x80077d07,0x7b076607,0x67076807,0x7d077b07,0x7c076807,0x69076707,0x7b077c07,0x7e076707,0x6b076907,0x7c077e07,0x7f076907,0x6c076b07,0x7e077f07,0x81076b07,0x6c077f07,0x80076a07,0x4e074f07,0x4f076a07,0x72075f07,0x5f076007,0x72077a07,0x30070d07,0x5070507,0x29073007,0xa072f07,0x2e072e07,0xb070a07,0xb072e07,0x2c072d07,0x8072d07,0xb072d07,0x2b070807,0x9072c07,0x8072c07,0x2a070907,0x7072b07,0x9072b07,0x28070707,0x4072a07,0x7072a07,0x29070407,0x6072807,0x4072807,0x29070607,0x5070607,0x3b073807,0x3b071507,0x1506ef07,0x38073507,0x38071207,0x12071507,0x35073307,0x35070f07,0xf071207,0x33073207,0x33070e07,0xe070f07,0x32073107,0x32070c07,0xc070e07,0x31072f07,0x31070a07,0xa070c07,0x82073b07,0x3b06f007,0xef06f007,0x3b078206,0x83073d07,0x84078207,0x3d078207,0x83078407,0x85078407,0x83078607,0x83078707,0x87078507,0x86078807,0x86078907,0x89078707,0x88078a07,0x88078b07,0x8b078907,0x8a078c07,0x8a078d07,0x8d078b07,0x8c078e07,0x8c078f07,0x8f078d07,0x8e079007,0x8e079107,0x91078f07,0x90079207,0x90079307,0x93079107,0x92079407,0x56079507,0x95079406,0x93079207,0x56079507,0x6a079506,0xf006f206,0xf2078206,0x83078206,0xf206f507,0xf2078606,0x86078306,0xf506f707,0xf5078806,0x88078606,0xf706f907,0xf7078a06,0x8a078806,0xf906fb07,0xf9078c06,0x8c078a06,0x8e078c07,0xfb06fd07,0xfd078c06,0x90078e06,0xfd06ff07,0xff078e06,0x92079006,0xff070107,0x1079006,0x94079207,0x1070307,0x3079207,0x56079407,0x3065506,0x55079407,0xf1078406,0x8506f306,0xf3078407,0xf3078706,0x8706f406,0xf3078507,0xf4078906,0x8906f606,0xf4078707,0xf6078b06,0x8b06f806,0xf6078907,0xf8078d06,0x8d06fa06,0xf8078b07,0x8f06fc06,0xfc078d07,0xfa078d06,0x9106fe06,0xfe078f07,0xfc078f06,0x93070006,0x79107,0xfe079107,0x95070206,0x2079307,0x79307,0x6a06ec07,0xec079506,0x2079506,0xec067507,0x75068606,0xec066a06,0x3d078406,0x8406ee07,0xf106ee07,0x27073a06,0x27071607,0x16071907,0x3a073707,0x3a071307,0x13071607,0x37073607,0x37071107,0x11071307,0x36073907,0x36071407,0x14071107,0x39073c07,0x39071807,0x18071407,0x3c073d07,0x3c06ee07,0xee071807,0xe905e606,0xce05cf05,0xcf05e605,0x97079605,0x96079807,0x99079807,0x9a079707,0x97079807,0x9a079b07,0x9c079807,0x98079907,0x9c079a07,0x96079d07,0x9d079907,0x9c079907,0x97079b07,0x9b079607,0x9d079607,0x9c079b07,0x9b079a07,0x9c079d07,0x9f079e07,0x9e07a007,0xa107a007,0xa2079f07,0x9f07a007,0xa207a307,0xa407a007,0xa007a107,0xa407a207,0x9e07a507,0xa507a107,0xa407a107,0x9f07a307,0xa3079e07,0xa5079e07,0xa407a307,0xa307a207,0xa407a507,0xec082807,0xb2083a07,0xbb07b907,0xcd08d807,0xb108d908,0xa907aa07,0xb107b207,0xb107a907,0xba07bb07,0xb007b307,0xb407ad07,0xad07b307,0xfc090307,0xe9090608,0xe1093e07,0xae07b607,0xb707a807,0xae07af07,0xb707b807,0xb607ae07,0xae07b807,0xa907b207,0xb207af07,0xb707af07,0x8b08a907,0x2908a608,0x23091509,0xb609a609,0xee09b509,0x4707db07,0xfe083309,0x52083107,0x50085709,0xbc07b509,0x1007c007,0x11094508,0xbe094008,0x6407d007,0x63094808,0xd307c508,0x3307d407,0x32083008,0x71097208,0x7095d09,0x2080108,0x67086208,0x12085d08,0x4080708,0x13081408,0x14080608,0x9080608,0x14081508,0x15080908,0xd080908,0x15081608,0x16080d08,0xb080d08,0x16081708,0x17080b08,0x7080b08,0x17081208,0x18080708,0x16081508,0x16081808,0x12081708,0x17081808,0x12081808,0x18081308,0x14081308,0x18081508,0x1a081408,0xe3081908,0xe3081a07,0x1b07e607,0xe6081a08,0xe6081b07,0x1c07ef07,0xef081b08,0xef081c07,0x1d07f707,0xf7081c08,0x8509a007,0x1909a409,0xf5081e08,0xf5081907,0x1f07e307,0x1d081c08,0x1d081f08,0x1f081e08,0x19081e08,0x19081f08,0x1f081a08,0x1b081a08,0x1b081f08,0x21081c08,0xfa082008,0xf607f707,0x2d07f807,0x2a082208,0x55094e08,0x3b094d09,0x3f084008,0xda07c608,0x4607e507,0x4e085109,0x44082009,0x31082e08,0xfb07fe08,0x8a099107,0x1099009,0xff08ad09,0xea08e608,0x5008e708,0x4c084d09,0xb407bc09,0x9507bd07,0x97088308,0x8083508,0x29080508,0x2807ed08,0x9c08b108,0xac08b008,0xa9088a08,0x7a086d08,0x60086e08,0x6e086d08,0x60085c08,0x60086f08,0x6f086e08,0x6f085c08,0x6a087008,0x54087408,0x19092608,0x68092709,0x72086108,0x68086a08,0x68087308,0x73087208,0xa407a608,0x5308b608,0x4e087908,0x7a084e08,0x20086d08,0x2f092e09,0xc308b709,0xc708b508,0xc607ca08,0xaa08a508,0x8608a208,0x75087e08,0xab089008,0x5907a907,0x48086309,0xc707c809,0xd907ca07,0xd407c407,0x92089107,0x77088f08,0x4c085308,0xce07d108,0xc607be07,0xf107c908,0xb1087c07,0x92087b08,0x81089608,0xb608c608,0x3008c707,0x43084408,0x6f088808,0x27086e08,0x2507f408,0xb8088808,0x7008b908,0x5c085d08,0x107cd08,0x89093608,0xbb08b908,0x55085108,0x97094e09,0x98088408,0x30091808,0xf9092d09,0xfc082207,0xd607d507,0xd407d707,0xd608da08,0xf708fe08,0x108ff08,0xe08f709,0x7f087e09,0x36089908,0x47083508,0x52094208,0x38094608,0x37080c08,0xbd08ba08,0xb608b708,0xbe08b508,0xb908bb08,0xc008bf08,0xbf08c508,0xbf08c008,0xc108b908,0xb808c008,0xb908c008,0xc108b808,0xb608b808,0xc108c208,0xc208b608,0xbe08b608,0xc208c308,0xc308be08,0xb508be08,0xb708c408,0xc508bd08,0xbd08c408,0xbd08c508,0xc608bf08,0xc507e407,0xb509a908,0xf709b409,0xf608f508,0xfb082f08,0xc107fd07,0xc007c708,0x8c099608,0xf1099f09,0xc607b907,0x3b07ec08,0x34083a08,0x35093809,0xdd08ed09,0xc608e408,0xb707b908,0xb708c607,0x3007b807,0x32095e08,0x66094908,0xc0095a08,0xb507b607,0xdc07ee07,0x9607dd07,0x94093508,0x9a090c08,0xcc08ae08,0xce08cb08,0xef08e008,0xce08fb08,0xd508c808,0x9a091108,0xf9090d08,0xfa08fd08,0xb408d008,0xb208d108,0xd908d808,0xb208af08,0xe08d908,0x10091309,0xf0090009,0xeb08f208,0xec08e008,0xe408de08,0x5308dd08,0x52085809,0x6a097709,0x3096b09,0xf808f609,0xd508df08,0x1b08cf08,0x408cf09,0xcb08cd09,0x1a08cc08,0x19091f09,0xcb08d609,0xe208ca08,0xe508e308,0xd3090a08,0xe508d408,0xe908e408,0x5a095708,0xe6085f08,0xdb08a808,0x17092508,0xa5092609,0xec08eb08,0xa5089e08,0xfb08ec08,0xfd090008,0xd708da08,0x1108c808,0x12090a09,0x8091009,0xf1090709,0xf008f208,0xb008d108,0xdb091208,0xe808cd08,0x908d708,0xd7090b09,0xc9090f08,0xe908f308,0xa08de08,0x9090809,0x8090509,0xf7091309,0xe090208,0xb308d009,0xf608b408,0xf808f508,0xd207c208,0xf807c807,0xfc08f208,0xf3082308,0xf9082a07,0xee089f08,0xfe08ab08,0xad08ff08,0xff08ab08,0xff083408,0xd083307,0x11090709,0x3091309,0xa0090509,0xaa088508,0xe308ea08,0x408e108,0x3090509,0x14092309,0xaa092409,0xad07b407,0x8083707,0xf0083608,0xe508e208,0xd508dd08,0x608df08,0xf108fc09,0xe008e308,0xc808e108,0xda08cb08,0xf6082c08,0x9082907,0xb090809,0xdc08cd09,0xb08e808,0xf090509,0xa708fe09,0xd008fa08,0xd208d608,0xae090c08,0x9c090108,0x12091108,0x9c08b009,0xe8091208,0xea08ed08,0xca08d208,0x8008d808,0x69096609,0xac087f09,0xe6089908,0xa808a308,0x93098e08,0x2b099509,0x2d091809,0xa08d109,0xb108d409,0xb407bd07,0xb507b007,0xc907a707,0x4090f08,0x9b087e09,0x73087d08,0x7c097509,0x98087b09,0x49088408,0x48084a08,0x9e099908,0x36099b09,0x37088d09,0xaf08db09,0x2408d908,0x25091609,0x4c087609,0x27085508,0x1f091909,0x27092809,0x28091f09,0x1b091f09,0xe107cc09,0x2e093d07,0x2d092a09,0x26092409,0xc8092809,0xc507d307,0x2e092c07,0x2c092209,0x21092209,0x2c092a09,0x2b092109,0x1a092a09,0x21092a09,0x94091a09,0x81088208,0x6c097e08,0x31096309,0x1e093009,0x1e093109,0x2f091d09,0x1d093109,0x1d092f09,0x8f092009,0x32088e08,0x8f089109,0x93093208,0x33089108,0x93089609,0x96093308,0x34093308,0xe408e309,0x9408e508,0x8d093508,0xbb08bd08,0x3808bf08,0x8d093709,0x8d093808,0xf2093508,0xc308c207,0x3a093b08,0x3a089109,0x91093309,0x91093b08,0xc3093208,0xf107b907,0xac07a607,0x9907a707,0xad09ae09,0x38093709,0x3907d109,0x3807cf09,0x3d080f09,0x45083b08,0x1107de09,0x3a080308,0xd5093b09,0xdc07dd07,0xb308d807,0xa608d208,0xa0088708,0xa209a108,0xc09a309,0xd091009,0xcc08dd09,0x7108ce08,0x5d086108,0xaa08bc08,0xce088508,0x3f093d07,0xe908f009,0xbf08f308,0x44094307,0x5b085e09,0x5b094a08,0x4a094b08,0x4a085e09,0x6c094409,0x43094408,0x5e086c09,0x4f094408,0x43086c08,0x4f084d09,0x4f094c08,0x4c094308,0x65094b09,0x4f094f08,0x51086709,0x62095109,0x57095408,0x53085909,0xa408b709,0xb508a208,0xa707a807,0x6b095407,0x7b095908,0x6d096809,0xf508f209,0xcf090008,0xd708c808,0xb809ac08,0x4009b709,0x3807eb08,0x55087508,0xe8085008,0x42084007,0x4207df08,0x56083e08,0x55084808,0xf408fa09,0x2a08fe08,0x2707f008,0x69095a08,0x1094208,0x7cb08,0xe108e708,0x2808eb08,0x29091c09,0x2c07f809,0x5b082608,0x39082b09,0xf5081d08,0x21081e07,0x2207fc08,0x4b095808,0xe7085a08,0xe9095607,0x67084107,0xc0083f09,0xc207bf07,0x46096007,0x60083508,0x32083509,0x60095e08,0x64083209,0x47095b09,0x8c098b08,0x7f098009,0x66096509,0x4c084909,0xb9085308,0xb409a909,0x91098209,0xfd099209,0xf408f508,0xe7081108,0x3d07e007,0x3e07df08,0x9e09ad08,0x24099909,0x5c095d08,0xae09af09,0xaf099c09,0x94099c09,0xaf09b009,0xb0099409,0x98099409,0xb009b109,0xb1099809,0x97099809,0xb109b209,0xb2099709,0x9e099709,0xb209ad09,0xb3099e09,0xb009af09,0xb009b309,0xb309b109,0xb209b109,0xb309ad09,0xb309b209,0xae09ad09,0xae09b309,0x5d09af09,0x5b082b09,0x5083409,0x3f080208,0xce07d009,0xbc08a107,0xb8088908,0xa309a109,0xb809b909,0x9a309,0xba07cb08,0xb709ba07,0xba09b809,0xb909b809,0xb909ba09,0xba09b409,0xb509b409,0xb509ba09,0xba09b609,0xb709b609,0x3a093409,0x8e093909,0xa709a809,0xa7099809,0xf409a609,0x25082607,0x8e09a808,0xab098f09,0x8f09a809,0x8f09ab09,0xa2097609,0x7609ab09,0xb709aa09,0xa209b609,0xa0097c09,0x8509a409,0xa5098309,0x8309a409,0x8309a509,0x92098209,0x8209a509,0x8a099609,0x96098d09,0x8a099009,0x87099b09,0x9f099a09,0x8b098c09,0x9f099d09,0x9d098b09,0x86098b09,0x9d099b09,0x2d098609,0x5f095c08,0x87099509,0x95098909,0x87099a09,0x3c093209,0x74093b09,0x61097209,0x71097909,0x78097209,0x71097009,0x7b097a09,0x7a096d09,0x70096d09,0x9e08ee09,0x7308ec08,0x6a096109,0x64098109,0x88096509,0x64096209,0x63098409,0x7d096209,0x68096909,0x75085409,0x3c085008,0x36088c09,0xe008ee09,0x3c08fb08,0x6e083f08,0x67083f09,0x3c096e09,0x6f096e08,0x3c083909,0x39096f08,0x5b096f08,0x2d082009,0x20095f08,0x45095f08,0x6b097508,0xf9096c09,0x9f08a708,0xd6080e08,0x7d07d807,0x7c089d08,0x13080408,0xea081208,0xa07cf07,0xde07e708,0xe094d07,0x10094108,0xa308eb08,0x2808e708,0xec07ed08,0xb707b207,0xd807b907,0xcd08ca08,0xb207b108,0x307bb07,0xfc08f809,0x5607e908,0xa9093e09,0x8b088a08,0x1c092908,0xa6091509,0xb609aa09,0xd907ee09,0x3307db07,0xfe07ff08,0x58095207,0xb5085708,0xbc07b307,0x41081007,0x40094509,0xbe07bf09,0x49086407,0x35094809,0x33083408,0x31083308,0x2f082f08,0x30082e08,0x35083208,0x33083308,0x30082f08,0x66096908,0x46084609,0x5e096008,0x43095e09,0x45084408,0x5c095f08,0x5e084609,0x45084409,0x5d095c08,0x44084609,0x68084508,0x46096909,0x68096d08,0x46084609,0x5d084508,0x6c095b09,0x5b096b09,0x6a096b09,0x46096d09,0x70095d08,0x5d096d09,0x5b095d09,0x5d096a09,0x61096a09,0x70097109,0x5d095d09,0x72096109,0xc080809,0x8080908,0x6080908,0x5080208,0xf1080808,0xff07fe07,0x8080207,0xc3080608,0xff07f107,0x6080207,0xc3080408,0x207ff07,0x80108,0xa07c308,0x1080308,0xb080708,0x2080a08,0x7080408,0xc3080108,0x7080207,0x1080a08,0x64086608,0x63086308,0x62086b08,0x65086708,0x66085b08,0x62086308,0x52085408,0x68086908,0x54086a08,0x61085d08,0x60086808,0x5d085c08,0x6d084e08,0x5e086008,0x4e086c08,0x4e085e08,0x68086008,0x69085408,0x69086808,0x5e086608,0x5d086008,0x5e085b08,0x5d085d08,0x66086808,0x66085d08,0x67086208,0x5d085b08,0x7c09a008,0xf7098509,0xf607ef07,0x27082a07,0x25082508,0x24082608,0x20082d08,0x2a082108,0x24082508,0x21082d08,0x2a082208,0x2d082408,0x23082208,0xd2082a08,0xbf07c107,0xbf07d207,0xd4094407,0xd207d307,0x4707dc07,0xd407db09,0x4407d207,0x4407d409,0xd5094a09,0xdb07dc07,0x4a07d407,0x4b094b09,0x51094f09,0x59095409,0xd4094809,0x51094b07,0x5107d409,0xd5095409,0xd407db07,0x41094507,0x3e07d809,0x4d095609,0x3f094009,0x4c093d09,0x40094309,0x50095209,0x58094c09,0x53095709,0x4a084809,0x48095808,0x53095808,0x49094809,0xd5095a09,0x5407d407,0x48095409,0xd5095a09,0x5a095407,0x40094c09,0x52093d09,0x3d094c09,0xd507d809,0xd8095a07,0x42095a07,0x52095309,0x48093d09,0x3d095308,0xd8094509,0x45094207,0x46094209,0x3d084809,0x55093e09,0x3e084809,0x45094d09,0x4d094609,0x4e094609,0x3e095509,0x39094d09,0x26082b08,0x29082c08,0x39082808,0x2c082608,0x2c083908,0x28082808,0x3b083a08,0x3d083b08,0x3e083e08,0x40084208,0x38084008,0x37083708,0x41083608,0x37084008,0x3b084108,0x40083e08,0x28083908,0x3c083b08,0x3b083908,0x41084008,0x3f083f08,0x3b083c08,0xc407c608,0x4607da07,0x51085209,0xfd082e08,0x2007fa07,0x44084508,0xfa082e08,0x91082007,0x8a098209,0xae090109,0xe608ad08,0xea08e808,0x57095008,0xbc084d08,0xb407b307,0x80089507,0x29088308,0xed07f608,0x97089507,0xb1089808,0x9b089d08,0xad089908,0x9908ae08,0x9a08ae08,0x9508b408,0xb0089808,0x9808b408,0x99089b08,0x9b089a08,0x9c089a08,0x9808b008,0xb108b108,0x9c089b08,0x8608ac08,0x6a088a08,0x74087308,0x17092608,0xb8091909,0xa6088808,0xab07a607,0xa408a407,0xb608b508,0xb808b608,0x5307a608,0x79087808,0x79084e08,0x20087a08,0x2e092209,0xc408b709,0xc708c308,0xca07c008,0x9908ad07,0xac08ac08,0xa608a908,0xa108aa08,0xa208a208,0xab08a408,0x92089007,0x95089508,0xb308b408,0xb3089508,0xab08b208,0xac08ad08,0xac08ab08,0x9008a608,0xb2089508,0xb2089008,0xa708af08,0xa608ab08,0xa7089f08,0xab08a608,0xaf089007,0xaf07ab08,0x9f08a808,0xa008a608,0x9f089e08,0xa208a008,0xa807ab08,0xa808a208,0x9e08a308,0xaa08a008,0xa308a208,0xa508a508,0xaa089e08,0xbc088908,0x85088508,0x8b088708,0x8a088b08,0x86088608,0x7e087f08,0x7d087e08,0x7c087c08,0x84087b08,0x83088408,0x80088008,0x82088108,0xac088208,0x82086e07,0x7a086e08,0x80088408,0x6f088208,0x85088908,0x6f087008,0x84088508,0x7a088208,0x7a088408,0x71087908,0x85087008,0x71087208,0x84088508,0x78087908,0x78088408,0x72087708,0x8b088508,0x72087308,0x7c088b08,0x77088408,0x77087c08,0x73087608,0x86088b08,0x73087408,0x7e088608,0x76087c08,0x74087508,0x7e088608,0x75087608,0x8d088208,0x8e088c08,0x90088f08,0x8c088208,0xaa088e08,0x8207ac07,0x8207aa08,0xab088e08,0xae07a607,0xae07ab07,0xaa07af07,0x90088e07,0xaf07ab08,0xa907a907,0x9007aa07,0x6b095908,0xc0086308,0xc807c207,0xc407c507,0xc707c607,0xca07c907,0xc607c507,0xca07c707,0xc807c007,0xc507c807,0xd407c707,0xd907db07,0xda07d907,0xc407c407,0xd407c507,0x93089107,0x92089208,0x8f089008,0x78087708,0xcf085308,0xce07cc07,0xd007ce07,0xbe07be07,0xcb07bc07,0xcd07cb07,0xd107d107,0xce07cf07,0xcb07be07,0xc607d107,0xc907ca08,0xf207c907,0x7c07f107,0xb1089d08,0x95088008,0x92089208,0x96089308,0x94089608,0x81088108,0x92088008,0xb808c608,0x3007b607,0x44082e08,0xa607ac08,0x88088807,0x6f088908,0xac086e08,0x27088807,0xf407f008,0x71087007,0x37085d08,0xcd07d109,0x3080107,0x1093b08,0x3c093b08,0x37093609,0x107cd09,0x36093c08,0xba08bb09,0xa208a208,0x8908a108,0x88088908,0xbb08b908,0x8908a208,0x56085108,0x97095508,0x84088308,0x1e091808,0xf9093009,0x22082307,0xd807d508,0xd407d607,0xda08d308,0xf408fe08,0xe08f708,0x1090c09,0xff090109,0x3608f708,0x35080808,0x46083508,0x47084708,0x36084108,0x69094208,0x38085208,0xc07eb08,0xc708c008,0xc607c607,0xe407e507,0xc407e407,0xc508c508,0xc608c008,0xa609a907,0xf709b509,0xf508f408,0x2e07fd08,0x2f082f08,0xfb083108,0x8d099607,0xec098c09,0x3b080f07,0x39093408,0xed093809,0xdd08dc08,0x43083008,0x49095e08,0x66086409,0xc707c008,0xee07b608,0xdc094707,0x34089607,0xc093509,0x9a090d09,0xe208e008,0x1108ef08,0x9a089c09,0xfb08f908,0xe08fd08,0x13090209,0xef090009,0xeb08f008,0xe008e108,0xdf08dd08,0xde08de08,0xe408e908,0x59095308,0x77085808,0x6a097309,0x2090309,0x1d08f609,0xde091e09,0xdf08de08,0xcf08cf08,0x408c908,0x6090409,0xf108f109,0x14091608,0x1408f109,0x1d091509,0xcf08de09,0x1d092008,0x408cf09,0x1508f109,0x15090409,0x22091c09,0xcf092009,0x22092108,0x408cf09,0x1b091c09,0x21091b09,0xcd08cf09,0xcb08ca08,0xf1091608,0xf308f308,0x1e08de08,0x1e08f309,0x16091809,0x1808f309,0x21091a09,0x16091b09,0x1a091809,0x16091709,0x1a091a09,0x1f091b09,0x17091909,0xd6091a09,0xcb08da08,0x9090a08,0x5708d309,0x5a095809,0x16092508,0xfb091709,0x8ef08,0xd308da09,0x1108d708,0xa090709,0x13091009,0xf0090809,0xf108f308,0xfc08f108,0xd108f208,0xb008b408,0xe608e808,0xdb08db08,0xcd08d908,0xd308d708,0xd7090908,0xf090b08,0x7090a09,0x5090809,0x8090b09,0xf608f709,0xd0090208,0xb308d208,0xc107c208,0x2307d207,0xf307f908,0x2083407,0xd07ff08,0x7091009,0x2091309,0xa0090309,0x85088708,0xed08ea08,0x308e308,0x4090609,0xf090409,0x23090509,0x14091509,0xb107aa09,0x3707b407,0x8080c08,0xef08f008,0xdd08e208,0xd508ce08,0xe208e308,0xc808e008,0xcb08ce08,0xf8082c08,0xcd07f607,0xdc08cc08,0xab08fe08,0xd008a708,0xd608d408,0xdc08e808,0xd208ed08,0xca08d608,0x7f098008,0x7f096609,0xac088608,0xe708e608,0x9508a308,0x8e098909,0xa7098e09,0x2b099309,0x18091a09,0xd008d409,0xd108d108,0xa091208,0xba07b109,0xb007bd07,0xb507b307,0x99087e07,0x7c089b08,0x73097609,0x77097309,0x7b097509,0x9808b108,0x4b084908,0x9a084a08,0x93099509,0x94099309,0x93099c09,0x99099c09,0x9a099b09,0x9f099309,0x9b099d09,0x96099009,0x97099f09,0x90099809,0x97099e09,0x90099009,0x9b099f09,0x93099b09,0x9e099909,0x9b099009,0x8c093609,0xdb088d08,0xaf08a808,0x14092408,0x76091609,0x4c087708,0xea07cc08,0xe107e107,0x3d093e07,0xce093d09,0x2d07cc07,0x31093009,0x2f093109,0x2e092e09,0x2a092c09,0x2b092a09,0x2d092d09,0x2e093109,0x23092909,0x24092409,0x26092509,0x27092609,0x28092809,0x24092909,0xd207c809,0x9407d307,0x82088d08,0x75097e08,0xe3096c09,0xe408ed08,0xba08bd08,0xc908bb08,0xc107c707,0xc107c908,0xc408c208,0xf207e408,0xc408c307,0xf207f208,0xc207c907,0xbb07c308,0xac07b907,0xad07aa07,0xad07ac07,0xa807b007,0xa607ae07,0xb007ac07,0xa707a707,0xa607a807,0x9c099907,0x3909ae09,0x3093a09,0xa080308,0xcf07cf08,0x3807d107,0x3093909,0xf07cf08,0x3d07e008,0x4d094508,0xd507de09,0xdd07d707,0xb208d807,0xa608b308,0x87088b08,0xa609aa08,0xa809a809,0xa209ab09,0xa009a209,0xa409a409,0x9209a509,0x91099209,0x9209a909,0xa309a909,0xa409a209,0xaa099209,0xa209a809,0xaa09ac09,0xa209a209,0xa3099209,0xac09a109,0xc09a209,0x10090e09,0xdc08dd09,0x7108cc08,0x61087208,0xa108bc08,0xf008aa08,0xe908e508,0x4007bf08,0x4b094309,0x65085b09,0x65094f08,0x51086708,0x62086709,0x5f095708,0xa2085908,0xb708ba08,0xb508b708,0xb508a408,0xa807b607,0x62095407,0x7b086b08,0x68097d09,0xf808f209,0xd708f508,0xcf08c908,0xd508cf08,0xac08c808,0xb809a109,0xe2084009,0x7507eb07,0x55087608,0xe207e808,0xdf084007,0x4207e807,0x49085608,0xfa084808,0xf408fd08,0xf3082a08,0x5a07f007,0x69086609,0xcd080108,0xe707cb07,0xe108ea08,0x1b092808,0x1d091c09,0xf507f708,0xfa082107,0x5807fc07,0x4b084a09,0x4d07e708,0x41095609,0x67084708,0xbe07bc09,0xbf07bf07,0xc207c107,0xbc07c007,0x6307bf07,0x5b096c09,0x6f095b09,0x6e096e09,0x47096709,0x46084708,0x47096608,0x65096608,0x6e095b09,0x62084709,0x5b096309,0x65084709,0x64096409,0x5b096209,0x7c098509,0x75097509,0x84097e09,0x88098409,0x81098109,0x80097f09,0x7d098009,0x7b097b09,0x78097a09,0x79097809,0x73097409,0x8f097609,0x8f097309,0x7b098e09,0x74097809,0x84097509,0x83098109,0x75098509,0x75098309,0x80098109,0x74097b09,0x73097409,0x74098e09,0x89098e09,0x83098209,0x8a098109,0x81098209,0x74098009,0x80098909,0x87098909,0x81098a09,0x8d098009,0x80098a09,0x87098009,0x80098609,0x8b098609,0x8d098c09,0x7f098009,0x65098109,0x57084d09,0x59085808,0x5a085f08,0x4b085a08,0x59084908,0x49085a08,0x59085808,0x4e084908,0x4f086c08,0x55085008,0x52084c08,0x50085408,0x52085108,0x53085008,0x4f084e08,0x4f085308,0x51084d08,0x4c085008,0x51085608,0x53084c08,0x58084d08,0x56084908,0x53084c08,0x49085808,0xa309b908,0xfd09a909,0xf5090008,0xf607ed08,0xed07ef07,0xe607ef07,0xf707f507,0xf507f807,0xf407f807,0xf507e307,0xe307f407,0xf007f407,0xe307e607,0xe607f007,0xf307f007,0xfa07fc07,0xfb07fd07,0xf107fe07,0xfd07fc07,0xf907fb07,0xfb07fc07,0xe407f207,0xe507e507,0xd907da07,0xee07d907,0xd707dd07,0xe07d607,0xdd07d908,0xf107d707,0xe507f207,0xfb07f907,0xf307f107,0xf107f907,0xd907e507,0xe07d707,0x11081008,0xde081108,0xe707e707,0xe107e907,0xea07e107,0xa080a07,0xd080b08,0x9080d08,0xd080c08,0xeb080c08,0xd707e507,0xf3080e07,0xe507f107,0xf307e607,0xa07e507,0xeb080d08,0xeb080a07,0xed07e207,0xe507e607,0xed07ec07,0xe107e507,0xe2080a07,0xe207e107,0xec07e807,0xe07e507,0xec080f08,0xe7080e07,0xe807e107,0xe807e707,0xf07df07,0x11080e08,0xdf07e708,0xe007e007,0x11080f07,0xe0083d08,0x2407df07,0x5d082608,0x26095d09,0x34082b08,0x5083508,0x40093f08,0xbb07d009,0x7c307,0xbc07cb08,0xba07bd07,0x7bb07,0xbd07cb08,0x3407ba07,0x3a093309,0x9109a909,0x98099009,0x93099409,0x9009a909,0xa7099809,0xa609a809,0xa909a609,0x98099809,0xa7099309,0xf807f409,0xaa082607,0xb709ac09,0x7609a209,0x9b097c09,0x87098609,0x24082d09,0x32095c08,0x3c088e09,0x79097409,0x79097209,0x71097809,0x7a097809,0xee097009,0x9e089f08,0x74097308,0x81096109,0x64098809,0x84098809,0x84096209,0x63097e09,0x80097d09,0x54096909,0x75087408,0x8e093c08,0xfb088c08,0xee08f908,0xec08ee08,0x7508e008,0x6b097709,0xfa08f909,0x7d08a708,0x9d089b08,0x6080408,0xea081308,0xcf07cc07,0xd8080e07,0xeb094107,0xa308a508,0xbc09bb08,0xbb09bd09,0xbc09be09,0xde0a1509,0xfd0a1a09,0x230a0a09,0xc909cb0a,0xf509ce09,0xbe09bf09,0xd209f209,0xd409cd09,0xd609d509,0xd309dc09,0xec09df09,0x1f0a1009,0xe409e50a,0xf309e209,0xf209e209,0xef09f009,0xe509ea09,0xf909fa09,0xf209fe09,0xff09da09,0xda09fe09,0xf40a0709,0xff09f609,0xd109da09,0xf80a0009,0x109f909,0xcc09d10a,0xe109e309,0x109bc09,0xc709cc0a,0x10a0309,0xf309c70a,0xfa0a0209,0xf309fe09,0x409f209,0xe609f50a,0x30a0509,0x309c20a,0xc209c70a,0xe60a0609,0x509e709,0xfc09c20a,0x60a0709,0x609f40a,0xf409e70a,0xfc0a0809,0x809fb09,0xbf09fb0a,0xbf0a0409,0xf09f509,0xcb0a0b0a,0xf0a1209,0xbc09cb0a,0x409bf09,0xe0a040a,0x1609bd0a,0x1509d50a,0x1f09e00a,0xde0a180a,0xe209d409,0x1d09fe09,0xee09f10a,0x200a1e09,0x1a09fe0a,0x1d09f30a,0xeb09e80a,0xd0a1109,0xd09cd0a,0xcd09c80a,0xeb0a1e09,0x1309ed09,0xd20a110a,0xcd0a1109,0x1e09d209,0xef09ed0a,0xef0a2109,0xdd09f009,0xd20a1309,0xe90a1d09,0x909e809,0xc109c00a,0xf00a2109,0x2309e309,0xfd09c10a,0xe10a1409,0xd09d309,0xc30a0a0a,0xc30a0d09,0x1409c809,0xcf09d30a,0xd00a0909,0xc409c009,0xbd09bb09,0xbd09c409,0xc90a0c09,0xc09c409,0xc09c90a,0xd40a0f0a,0x150a0f09,0xc909d40a,0xd70a0f09,0x1509d409,0x1509d70a,0xe20a170a,0x1709d709,0x1709e20a,0xea0a1a0a,0x1c0a1a09,0xe209ea0a,0xf10a1a09,0x1c09ea09,0x2009df0a,0xdf09dc0a,0x2009ee09,0xd909be0a,0xb09bc09,0xcb09c60a,0xcb0a1209,0x1809ce09,0xce0a120a,0xce0a1809,0xbb09e009,0xca09c509,0xfa0a0009,0xe0a0209,0xca0a100a,0xca0a0e09,0xb09c509,0xc50a0e0a,0xc50a0b09,0x1b09c609,0xe409de0a,0xe40a1b09,0x2209e509,0xf709e50a,0x220a1909,0x1909f70a,0xdb09f70a,0x190a1609,0x1609db0a,0xd609db0a,0xd60a1609,0x1a09d509,0x150a170a,0xd50a150a,0xde09d809,0x1a0a1b09,0xd80a150a,0xfd09de09,0xa09c309,0xd309cf0a,0xdc09dc09,0xbe09d909,0xbf09be09,0xbe09fb09,0xfc09fb09,0xdc09cf09,0xd009be09,0xbe09cf09,0xfc09be09,0xbe09c209,0xc709c209,0xd009c009,0xc009be09,0xc709be09,0xc709c009,0xc109cc09,0xcc09c009,0xcc09c109,0xfd09d109,0xd109c109,0xd109fd09,0xc309da09,0xda09fd09,0xe209f209,0xc309ea09,0xf209da09,0xc309c809,0xf209f209,0xe909ea09,0xe909f209,0xcd09dd09,0xf209c809,0xdd09f209,0xec09d209,0x1009ca09,0xe909e80a,0xea09ea09,0xee09f109,0xd309df09,0xdf09e109,0xe309e109,0xee09ea09,0xeb09df09,0xea09e809,0xeb09ed09,0xdf09ea09,0xf009e309,0xed09ef09,0xea09ea09,0xf009df09,0xc909ce09,0xce09d409,0xd609d409,0xce09e009,0xe009d609,0xdb09d609,0xca09e709,0xec09ec09,0xdb09e009,0xdb09ec09,0xf409f709,0xec09e709,0xf409f609,0xf609ec09,0xf709ec09,0xf609f809,0xe509f709,0xf309e209,0xf709f809,0xf909e509,0xe509f809,0xf309e509,0xd009fa09,0xbc0a0909,0xd909bc09,0x2009dc09,0xef0a1e0a,0xef0a2009,0xbc0a2109,0x2009dc09,0xd009cf0a,0x1409bc09,0xbc09cf0a,0x210a2009,0xe109e30a,0xbc0a1409,0x2009bc09,0xf09e30a,0xb0a0c0a,0xf30a020a,0x1a0a1a09,0xe50a1b0a,0x1a0a0209,0x9e50a,0xe50a020a,0xe50a0009,0xf80a2209,0x220a0009,0x2209f80a,0xf60a190a,0x1909f809,0x150a160a,0xf60a0f0a,0x160a1909,0xf60a070a,0x160a1609,0x120a0f0a,0x120a160a,0x60a180a,0x160a070a,0x609e60a,0x160a160a,0x1f0a180a,0x1609e60a,0xbd0a1f0a,0x409bc09,0xe60a040a,0x40a1f09,0x100a1f0a,0xc0a0b0a,0x409bd0a,0xe0a100a,0xb0a0e0a,0xe009bd0a,0x1f09ec09,0xd509d80a,0xd409d409,0xe209d709,0xe409e209,0xde09de09,0xd409d809,0xbf0a0809,0x809bc09,0x909bc0a,0x809fc0a,0xfc0a090a,0xc10a0909,0xfc0a0509,0x509c109,0x2309c10a,0x50a030a,0x30a230a,0xa0a230a,0x30a010a,0x10a0a0a,0xd0a0a0a,0x109d10a,0xd10a0d0a,0x110a0d09,0xd109ff0a,0xff0a1109,0x130a1109,0x1a0a1c0a,0xfe09fe0a,0x1309ff09,0x1309fe0a,0xf109dd0a,0xfe0a1c09,0xee0a1e09,0xeb09f109,0xf10a1e09,0xdd09fe09,0x1d09e909,0xf109eb0a,0xe909fe09,0xf50a1d09,0xbb09be09,0xc409bb09,0xc909c909,0xc609cb09,0xc609c909,0xe609c509,0xbb09f509,0xe709ca09,0xbb09e609,0xc509c909,0xe609ca09,0x9bb09,0xfa09f90a,0x650d4d09,0x750d500d,0x680a700a,0xf60e190a,0x800e1a0d,0x400a490a,0x800a810a,0x630a400a,0x600e040e,0xbf0e120e,0x420e130d,0x4c0de70e,0xfc0e5d0e,0x210e5a0d,0x220dbd0e,0x780ad80e,0x8e0ad50a,0x8f0a750a,0x340a820a,0x780a830a,0xd50ad20a,0x190dee0a,0x8c0e180e,0x660a8b0a,0x660a8c0a,0x8d0a6b0a,0x6b0a8c0a,0xcd0e0f0a,0xcc0e100d,0xc90a690a,0x3d0a850a,0x4c0a860a,0x500dec0e,0x7d0a910e,0x920a290a,0x290a910a,0x290a920a,0x930a280a,0x280a920a,0x280a930a,0x940a2e0a,0x2e0a930a,0x2e0a940a,0x9d0a310a,0x9c0b9f0b,0x740a720b,0x6e0a770a,0x780c530b,0x450b6f0b,0xa60b680c,0x310a940a,0x310aa60a,0xad0a410a,0x410aa60a,0x410aad0a,0x600a4a0a,0x5d0e000e,0x550d4a0e,0xc60d600d,0x600a5f0a,0xc60abe0a,0xbe0a600a,0x530a600a,0xc90b110a,0xaf0b0f0c,0x480ab30a,0x480aaf0a,0xa40a3f0a,0x3f0aaf0a,0x3f0aa40a,0x9c0a2f0a,0x2f0aa40a,0x2f0a9c0a,0x9a0a2b0a,0x2b0a9c0a,0x380a810a,0x100a820a,0x110dc60e,0xbe0e360e,0x900e2d0d,0x470c540d,0xf70b620c,0x1f0bf90b,0x200db70e,0x3e0af70e,0x460b460b,0x6a0b6b0c,0xa20a3a0b,0x450aaa0a,0xaa0a3a0a,0xaa0a450a,0xa90ab00a,0x420a460a,0x6c0ac80a,0xb70a680a,0x520a4c0a,0x260a960a,0x9b0a240a,0x2c0a240a,0xc50a560a,0x2a0abd0a,0x990ad90a,0xc40a670a,0xba0a640a,0xb20e250d,0xa30a350d,0x170aa10a,0x1d0d1c0d,0x720ad40d,0xf50a770a,0xb80c8e0c,0x550df10c,0x410e510e,0xdc0dd30e,0x7b0a970d,0x9e0a260a,0x9f0a360a,0x9f0a3b0a,0x3e0a360a,0x3b0aa70a,0x470aa80a,0xb10aac0a,0x4d0a470a,0x4d0ab80a,0x80a5b0a,0x880b6d0c,0x420aa50b,0xfc0a3c0a,0x240b250a,0xcb0a6e0b,0x6f0a6a0a,0x6a0c370d,0x730be60d,0x490b700b,0xe40deb0e,0x770ad70d,0xab0a7b0a,0x460a500a,0xd10a760a,0xca0ad30a,0x6c0a6f0a,0x2c0aa10a,0x5d0a350a,0xbb0a5c0a,0xa30a430a,0xae0a350a,0xb40a4c0a,0xd30a7a0a,0xcd0ad60a,0x6f0a730a,0xc20e2f0a,0xe20dc70d,0x480e4d0d,0xfb0e570e,0xba0df70d,0x540a580a,0x540ab60a,0xff0a4e0a,0x5c0e5f0d,0x270a2d0e,0x2d0a980a,0x9d0a980a,0x2d0a300a,0xdb0a9d0a,0xde0ada0a,0x6f0c780a,0xdf0c790c,0xde0adb0a,0x780d840a,0xdf0d7b0d,0xdb0ae40a,0xfa0afd0a,0xe80afe0a,0xe40ae50a,0x1f0cda0a,0xea0d1e0d,0xe50ae90a,0xe90aeb0a,0xec0aef0a,0xf20aee0a,0xef0aeb0a,0xeb0af20a,0xee0af20a,0xeb0add0a,0xf20aee0a,0xf30aef0a,0xf30af20a,0xf10af00a,0xf00af20a,0xe90aef0a,0xef0aea0a,0xf30aea0a,0xf20aec0a,0xed0af10a,0xf10aec0a,0x480b520a,0xf60b490b,0xf40af80a,0xdd0adc0a,0xea0aee0a,0xf30b3a0a,0xdc0af90a,0xe60aee0a,0xdf0ae40a,0xfb0af90a,0xff0adc0a,0xfb0afc0a,0x160dd00a,0x10e150e,0xfc0b000b,0xe40add0a,0x20aeb0a,0x30b000b,0xde0ae00b,0x20b060a,0x60b030b,0x60b020b,0xda0ade0b,0xde0b020a,0x30b060a,0x60b070b,0x40b070b,0x60b050b,0x30b040b,0x10b000b,0x10b030b,0xe00b070b,0x50b060a,0xe00ae20b,0x80b050a,0xb0ae30b,0xc30ce10b,0x8b0ced0c,0xe20be10b,0xff0ba90b,0x90afd0a,0xe70ae60b,0xe0b090a,0x90ae60b,0xe30ae70b,0x940b8f0a,0xa90b9a0b,0xad0d170c,0x7c0cff0c,0xf10d050c,0xe60ddf0d,0xa70d840d,0x720d820d,0x6e0ace0a,0xff0c830a,0x790d000c,0x7e0d7d0b,0xe30ae00d,0xe10ae70a,0xe00ade0a,0xf10aed0a,0xe60af80a,0xe70d480c,0x3e0b3b0c,0xc0af80b,0xe80ae50b,0x410b420a,0x870b400b,0x7f0b800b,0x430b3c0b,0x450b440b,0x100b160b,0x3c0b3d0b,0x3d0b440b,0x3f0b440b,0x150dca0b,0xb80e140e,0xbe0bb30b,0xd30bc90b,0xc50bd40b,0xcc0bd20b,0x600b830b,0x460b7f0c,0x4c0b470b,0x4e0b4d0b,0x470b4c0b,0x4c0b4d0b,0x600d490b,0x4f0d610d,0x510b500b,0xba0bc00b,0x550bbb0b,0xc00bc10b,0xb90bc10b,0x520bba0b,0x540b530b,0x540b480b,0x540b470b,0x4d0b530b,0x540b470b,0x4e0b4d0b,0x4c0af70b,0x460af70b,0x5b0b4c0b,0x5d0b5c0b,0x580d4f0b,0xf00d560d,0xf10af80a,0x890a880a,0x950aa90a,0xf40af50b,0x430b480a,0xb90b490b,0x5a0a5b0a,0x1a0ca50a,0xd190d,0xfc0afb0b,0x920b8f0a,0x2d0b930b,0x2c0d390d,0x910b960d,0x950b970b,0x980b970b,0x910b970b,0x980b8e0b,0x8e0b970b,0x980b990b,0x8e0b9a0b,0x9a0b8f0b,0x8e0b980b,0x10b9a0b,0x880c040c,0x800da80b,0x700dab0d,0x370c320d,0x910b4e0c,0xce0b960b,0xc40bd00b,0xb50bba0b,0xcc0bbb0b,0xcb0bd30b,0x3f0b480b,0xa60b440b,0x9e0b9f0b,0xa50ba60b,0xa60ba00b,0x9f0ba00b,0x380ba70b,0xa90ba40b,0xa30af50b,0xb50cb20b,0xa80cb40c,0xaa0ba90b,0xaa0ba50b,0xa50ba20b,0xa10ba20b,0xd80b0d0b,0xa40b170b,0xa50baa0b,0xa80ba40b,0xa50baa0b,0xa00ba10b,0x810c8e0b,0xae0c8b0c,0xb00baf0b,0xb20bb10b,0x3e0b0b0b,0x3f0b3d0b,0x390bb40b,0xb40bae0b,0xb00bae0b,0xb00bb40b,0xac0bb10b,0xb50bad0b,0x420b430b,0xab0b400b,0xaf0bac0b,0xb60baf0b,0xae0bb70b,0x260b390b,0x260bae0b,0xae0bab0b,0xaf0bab0b,0xaf0bb00b,0xb00bb70b,0xb30bb70b,0xb0b040b,0x470b050b,0xea0df20e,0xbb0cbd0d,0xe20cbe0c,0xb0b050a,0x8c0b900b,0xd00d8e0d,0xd10bd60b,0xca0b080b,0x490bc90b,0x4a0b400b,0xb60bb90b,0x1f0bba0b,0x1d0cd70b,0x5f0bbe0b,0x4b0bbd0b,0x4a0b510b,0x550bbf0b,0x8c0bc00b,0x8d0c810c,0xcd0bc50c,0xc10bc80b,0xc20b560b,0xc20bb90b,0xc20bbe0b,0x5f0b560b,0xc20bbe0b,0x690b5f0b,0xbd0b0a0b,0xb80b0a0b,0xb80bbd0b,0xbd0bbe0b,0x690b5f0b,0x8f0bbd0b,0xbf0b550b,0x8f0b920b,0x690bbf0b,0xc30b870b,0x1e0beb0b,0xda0c1f0c,0x20afb0a,0x6b0db10b,0x320c6c0c,0x3f0d430d,0x870bc30d,0xc90bca0b,0xcb0bca0b,0x870bca0b,0xcb0b8c0b,0x8c0bca0b,0xcb0bcc0b,0x8c0bcd0b,0xcd0b890b,0x8c0bcb0b,0x9b0bcd0b,0x940b9a0b,0x890bcd0b,0xae0bc80b,0xb00cb10c,0x90bc90c,0x9c0b080b,0x9b0ba00b,0xa10b9b0b,0xb90b990b,0xb70bb30b,0xd00bd50b,0xd70bcf0b,0xd80b170b,0xa20a300b,0xe0a3a0a,0xd40b090b,0xa0cc30b,0xc0cc40d,0xd90b0e0b,0xd30bd90b,0x6a0bd20b,0x3b0da30c,0xc0bd80c,0xd60bd90b,0xd20bd90b,0xd20bd60b,0xd80bd10b,0xd60bd90b,0x170b100b,0x1a0bd70b,0x190ccf0d,0x9e0bac0d,0x500bad0b,0x510b520b,0x500b890b,0xc70b4f0b,0x4f0b890b,0x20cde0b,0x930d010d,0xa70da50d,0x820b790d,0xf50dad0d,0xfe0afd0a,0xa90af50a,0xf50afd0b,0xf60afe0a,0x490b510a,0x5a0b4a0b,0x470d630d,0x2e0dbc0d,0x1e0dc80e,0xf0b160b,0x5a0c350b,0x8a0c360b,0xe40be30b,0xb20b0a0b,0xe10bb80b,0xe90be80b,0xe10be20b,0xe50be90b,0xeb0bea0b,0xe90be20b,0xe30bec0b,0xec0be20b,0x550a880b,0xe30a890a,0xee0bec0b,0xe30be40b,0xe40bee0b,0xef0bee0b,0xe60bdb0b,0xe60bf00b,0xf00bed0b,0xe40be70b,0xf70bef0b,0xf90bfa0b,0xdc0bdd0b,0xdc0bf30b,0xf30bf20b,0xdd0bde0b,0xdd0bf40b,0xf40bf30b,0xdf0be00b,0xe00bf50b,0xf60bf50b,0x550d5d0b,0x7d0d520d,0x7e0d760d,0x9c0d990d,0xe70d9b0d,0xfd0bef0b,0xe70bfe0b,0xff0bfd0b,0xbfb0b,0xfc0bfb0c,0x10c000b,0x20bfe0c,0xfd0bfe0c,0xe60c020b,0xe70ae10a,0x30be50a,0x40bea0c,0x50c010c,0x20c010c,0x60c050c,0x70c040c,0x50c040c,0x80c070c,0x90c060c,0x70c060c,0xa0c090c,0xb0c080c,0x90c080c,0xa0c0b0c,0xc0c0b0c,0xa0c0d0c,0xd0c0c0c,0xe0c0c0c,0xd0c0f0c,0xf0c0e0c,0xf80c0e0c,0xf0bf70b,0xe10bf80c,0xe80bf60b,0xe0bd30b,0x730bd40b,0xa90c9e0c,0xbb0cfb0c,0x120cbc0c,0x10bfe0c,0xac0bb60c,0xb20bb50b,0xb30bb00b,0x6e0d780b,0x9a0c540d,0x950a250a,0xcf0b420a,0xdd0b410b,0xdc0b7d0b,0xa0bc30b,0x2e0b690b,0x2f0d610b,0x210bf30b,0x7e0c190c,0x7f0d770d,0x250cf20d,0x390ceb0b,0x2c0d2e0d,0xca0ccc0d,0xce0ccb0c,0x140d100c,0x7a0c6d0d,0x20c6c0d,0x180c280c,0xfb0afd0c,0x530af90a,0xbe0ab30a,0x3e0c8c0a,0xf60c800c,0x250c1a0b,0xd50e350c,0x5d0dcc0d,0xa40da20b,0xc00bbc0d,0xec0bbb0b,0x250be90b,0xa70b260c,0xa50bab0b,0xa40ba70b,0xb0c750b,0x6d0c780d,0xf0c0d0b,0xcf0e3b0c,0x630e360d,0x5a0c360b,0x1f0c1c0b,0x190c200c,0x230c220c,0xa00a3c0c,0x250aa50a,0x240c1a0c,0x1b0c260c,0x2a0c270c,0x2b0c290c,0x2a0c140c,0x1e0c2b0c,0x1f0e0a0e,0x160c2d0e,0x2e0c170c,0x2f0c170c,0x2e0c300c,0xf00c2f0c,0x3b0b3a0a,0xef0c280b,0x420c1d0b,0xde0dd80e,0xbe0ce40d,0xe50cbb0c,0x130b120a,0xe40ae90b,0x990ae50a,0x970b5c0d,0x4b0df10d,0x4b0de80e,0x5f0d620d,0xfd0e590d,0xa00dfb0d,0x170d180c,0xad0d1e0d,0xfa0d1d0c,0xec0aee0a,0xf70b960a,0x320b4e0a,0x330d420d,0x6f0c6e0d,0x6e0c700c,0x710c690c,0x710c6e0c,0x740c6f0c,0x720c730c,0x720c770c,0x770c750c,0x720c740c,0x760c770c,0x770c740c,0x760c680c,0x770c790c,0x790c750c,0x780c750c,0x690c710c,0x710c680c,0x770c680c,0x770c710c,0x930c790c,0x940c970c,0x790c710c,0xb50c6f0c,0xb40cb60c,0x7b0c700c,0x7d0c7c0c,0x6e0c690c,0x310c7d0c,0x170c690c,0x160bfa0c,0x910c9d0c,0x800c9a0c,0x810c820c,0x7f0c7e0c,0x850c830c,0x840c830c,0x7e0c850c,0x870c830c,0x850c7e0c,0x310c870c,0x870c7d0c,0x7e0c7d0c,0xa30ca70c,0x870ca80c,0x880c850c,0x970c980c,0x820c950c,0x310c3e0c,0x310c820c,0x820c870c,0x880c870c,0x820c810c,0x810c890c,0x8b0c8a0c,0x890c810c,0x800c8a0c,0x820c3e0c,0x8b0a610c,0x9b0a8a0a,0x9c0c910c,0x2e0d260c,0x8f0d3c0d,0x900c660c,0x900c8f0c,0x8d0c910c,0x920c8e0c,0x920c940c,0x940c930c,0x920c8d0c,0x8c0c960c,0x960c8d0c,0x940c8d0c,0x670c960c,0x840c8c0c,0x850c880c,0x660c960c,0x960c670c,0x970c940c,0x5d0d9d0c,0x900b5c0b,0x960c660c,0x960c900c,0x910c970c,0x980c900c,0x990c910c,0x910c9a0c,0x990c980c,0x660c9b0c,0x9b0c8f0c,0x660c640c,0x700c7d0c,0x7b0c7e0c,0x7a0c6f0c,0x650ca10c,0xa10ca20c,0xa30ca20c,0xa30ca10c,0x9c0c9e0c,0xa40c9d0c,0xa40ca60c,0xa60ca50c,0xa40c9c0c,0x9b0ca60c,0xa60c9c0c,0x9b0c640c,0xa60ca80c,0xa80ca50c,0xa70ca50c,0xa60ca20c,0xa20ca80c,0xa60c640c,0x650ca20c,0xa20c640c,0xa30ca80c,0xa00c9e0c,0x10ca90c,0x40d050d,0x440b6a0d,0x2b0c460c,0x310d350d,0x4b0d4a0d,0x890d670d,0x860c880c,0x940b9c0c,0x440b930b,0x540c390c,0x9e0bbc0c,0x330b9d0b,0x380ba40b,0x450de80b,0xb20de10e,0xb70cb40c,0xb70cba0c,0xb80cb90c,0xb60cbc0c,0xb90cbc0c,0xb70cb60c,0xb90cb40c,0xb40cb90c,0x890cb60c,0xc80bc60b,0xa20b950b,0x380ba30b,0x980d9a0c,0xb20caf0d,0xc00cb70c,0xc10cc20c,0xc10cc00c,0xaf0cbf0c,0xc00cbd0c,0xaf0cb10c,0xc00cc00c,0xc20cbd0c,0xbe0cbd0c,0xb10cc20c,0xbf0cc00c,0xbe0cc20c,0xc10cc30c,0xc40cc20c,0xc30cc20c,0xbf0cc40c,0xaa0cc10c,0xc40cc10c,0x7f0caa0c,0x800a490a,0x510d5b0a,0xc40d4e0d,0xc50bd10b,0x410b600b,0xb30b610c,0xf40cf30c,0xa20b990c,0x8e0b980b,0x920d110c,0x50c7b0c,0x710c7c0d,0xcf0acc0a,0x140c0c0a,0x730c2c0c,0x720d090c,0xf30cf40c,0xcc0cda0c,0xda0cf40c,0xf80cf60c,0xf60cf70c,0xf50cf70c,0xf40cb30c,0xb50cf60c,0xf60cb30c,0xf40cf60c,0xf40cf80c,0xf80ccc0c,0xf60cb50c,0xae0cf50c,0xaf0cb20c,0xfb0cfa0c,0xfb0cb80c,0xb80cbc0c,0xfc0cfd0c,0xfa0cf10c,0xfb0cfe0c,0xfd0cfe0c,0xfd0cfb0c,0xfb0cf10c,0xff0d000c,0xd010c,0x20d010d,0xc30e310d,0x30dc50d,0xfc0d020d,0xf10cde0c,0x30cfc0c,0xfd0cfc0d,0xf00d040c,0x420cde0c,0x100b450b,0xde0d040b,0x50d010c,0x40d070d,0x80d070d,0x40d040d,0xf00d080d,0xaa0d090c,0x90cc40c,0xa0cc40d,0x3c0d3e0d,0xb0d2e0d,0x60d0a0d,0xf00cc30d,0xb0d060c,0x80d060d,0x60d080d,0x890cf00d,0x8a0cfe0c,0x30c890c,0xa70cfd0d,0x9f0d180c,0xc840c,0x9e0d020d,0xae0d9c0d,0x9a0d160d,0x980d0d0c,0x990d0c0c,0x720d730c,0x930d6a0d,0x950d0f0c,0xf0c980c,0x10d0e0d,0x70bb40b,0xba0caf0b,0x930cbd0c,0x100d110c,0xb0c7a0d,0xd0d080d,0x130d0c0d,0xe0d0c0d,0xe0d130d,0x130ccd0d,0xf90d110d,0x110d140c,0x100d140d,0xaa0ba30d,0xf0ba90b,0x120d100d,0xcd0cce0d,0xf0d120c,0xe0d120d,0x120d0e0d,0xf80ccd0d,0xce0ccc0c,0xf80cf70c,0xf80d140c,0x140cce0c,0xf70cf50d,0xf70cf90c,0xf90d140c,0xcd0d130c,0x6b0cc80c,0x730d740d,0xc80d130d,0x840d150c,0x860d030c,0x90c750c,0x1b0d0a0d,0x1c0ccf0d,0x170cad0d,0x740d1d0d,0xd20acf0a,0x1c0d1d0a,0x1a0cd00d,0x150d160d,0xf40bdf0d,0x150bf50b,0xcf0cc80d,0xcf0d190c,0x180d1b0c,0x1c0d1b0d,0xd00ccf0d,0xd00d1c0c,0x1e0cda0c,0xd00d1d0d,0x330d1e0c,0x160c170c,0xae0cf30c,0x1e0d1f0c,0xab0d1f0d,0x1e0cac0c,0xae0cab0d,0x1f0cb00c,0xb00d1f0d,0xec0cab0c,0xfe0af60a,0xeb0b370a,0xe00b250c,0xe40b290c,0x220cdc0c,0xd90cdd0b,0x200ccb0c,0x120ccb0b,0x320b200b,0x290ce40b,0xd80cdc0b,0xd80b230c,0x230b1f0c,0x280cdf0b,0xd50ce00b,0xca0b130c,0xd90b190c,0x1a0b200c,0xd30b1d0b,0xd70b1d0c,0x110cd30c,0xc70b1a0b,0xd30b1a0c,0x1b0cc70c,0x180cd20b,0xf0b150b,0xf0cc50b,0xc50cc90b,0x1d0c1b0c,0x990bee0c,0x9a0d0d0c,0x7d0bda0c,0xbf0bdb0b,0xac0c730c,0x290d330c,0xa30d300d,0x9e0ca00c,0x3d0b450c,0x2f0b160b,0x370d300d,0x360d300d,0x200d370d,0xed0bf00c,0xca0e130b,0x620e140d,0x550d600d,0xc40bc80d,0x430bc50b,0xdb0de40e,0x920b9c0d,0x1e0b9d0b,0xd60b140b,0xc60b140c,0x1b0cd60c,0xd40b1e0b,0xd60b1e0c,0xe30cd40c,0x170e180d,0x180b190e,0x180cd10b,0xd10cd20b,0xc50d230c,0x230cc60c,0x3e0cc60d,0x230d250d,0x250d3e0d,0x3b0d3e0d,0x250d270d,0x360d3b0d,0x420d340d,0x440d280d,0x280d430d,0x440d200d,0x3a0d270d,0x660d220d,0x440c410b,0x310d360c,0x2a0d350d,0x400d410d,0x2a0d290d,0x2d0d400d,0x300ce90b,0xea0cef0b,0xea0b340c,0x340b320c,0x120cca0b,0x340ccb0b,0x330b590c,0x6c0db00c,0xdf0d960c,0x270ce50c,0x2d0ce50b,0xab0b270b,0x830d810d,0x180c050d,0x2a0c290c,0xe20b300b,0xe90b300c,0x2a0ce20c,0xe10ce20b,0x2a0b2b0c,0x2b0ce10b,0xe30ce10b,0x2b0b2c0c,0x2e0ce30b,0xe70b2c0b,0xe30b2c0c,0x7f0ce70c,0x510a570a,0xd60a7e0a,0x4e0ad90a,0x450d550d,0x580d560d,0x570d590d,0x590d560d,0x190ca70d,0x4e0d1b0d,0x5a0d4c0d,0x5a0d4e0d,0x520d5b0d,0x5d0d5c0d,0x510d520d,0xc50d5c0d,0x260d220c,0x300c170d,0x950c1e0c,0x970b960b,0x3d0b150b,0x240b140d,0x3d0d3c0d,0x5a0b810d,0x310c5b0c,0xe80b2f0b,0xe60b2f0c,0x310ce80c,0xed0ce80b,0x310b350c,0x350ced0b,0xec0ced0b,0x350b360c,0x370cec0b,0xee0b360b,0xec0b360c,0x4f0cee0c,0xc70bce0b,0x270db60b,0xb10db80e,0xb00cab0c,0xd50b100c,0x4b0b420b,0xce0bcf0b,0xda0add0b,0x540adb0a,0x660d670d,0x450d540d,0x530d670d,0x680d660d,0x540d530d,0x4d0d660d,0x630d530d,0x680d530d,0x500d630d,0x640d650d,0x500d4f0d,0x460d640d,0x470b3f0b,0x370d690b,0x6a0c490c,0x490d690d,0x490d6a0c,0x6b0c5c0c,0x5f0c5e0d,0x6b0d6c0c,0x6c0c5f0d,0x560c5f0d,0x560d6d0c,0x6e0c520c,0x520d6d0d,0x8f0db00c,0x7f0d8d0d,0x7c0c700c,0x410d330c,0x4a0d2a0d,0x4b0b410b,0x9a0d970b,0xdd0d990d,0xdb0b210c,0xbc0a630c,0x7c0ac30a,0x320c6d0d,0xa70bac0c,0xf90ba60b,0xfb0bfc0b,0x7a0d800b,0x810d790d,0x790d800d,0x770d7f0d,0x820d780d,0x780d7f0d,0x810d830d,0x810d7c0d,0x7c0d790d,0x30c000d,0x850bff0c,0x7b0d840d,0x830d860d,0x830d700d,0x700d7c0d,0x860d870d,0x860d6f0d,0x6f0d700d,0x870d880d,0x870d710d,0x710d6f0d,0x880d890d,0x880d720d,0x720d710d,0x720d890d,0x8a0d730d,0x730d890d,0x730d8a0d,0x8b0d740d,0x740d8a0d,0x740d8b0d,0x7d0d750d,0x750d8b0d,0x8c0d8e0d,0x8c0d8f0d,0x8f0d8d0d,0x7b0d850d,0x910d900d,0x920d8e0d,0x8f0d8e0d,0xeb0d920d,0xe50be60b,0x910d950b,0x910d960d,0x960d920d,0x960d950d,0x970d7a0d,0x980d930d,0x940d930d,0x800d980d,0x7a0d950d,0xf10bdb0d,0xda0bda0b,0xdc0bf20b,0x9b0d9d0b,0x9b0d9e0d,0x9e0d9c0d,0x9d0d9f0d,0x9d0da00d,0xa00d9e0d,0xa00d9f0d,0xa20da10d,0xa10d9f0d,0xa10da20d,0xa40da30d,0xa30da20d,0xa30da40d,0x8c0d8d0d,0x8d0da40d,0x340d290d,0x440d2b0d,0x220d210d,0x800d880d,0x840b640b,0x610c5b0b,0x910da80c,0xbb0d950d,0xbc0bad0b,0x3a0c380b,0x590dae0c,0x570d4c0d,0x700c030d,0xc80bff0b,0xc20a650a,0x8b0b800a,0xd70daa0d,0xc80cd00c,0x3a0b3d0c,0x620b160b,0x130bff0b,0xe70b8a0c,0x8b0c120b,0xfa0cfe0c,0x160c0e0c,0x210bf80c,0x190c220c,0xb40b040c,0x2f0bb10b,0x2d0d380d,0x2a0db80d,0xc40dbc0e,0xce0bc70b,0xde0b820b,0xb50bdf0b,0x4f0a4a0a,0xa10c740a,0x260c9e0c,0x1d0c270c,0xdb0b1c0c,0xbb0b210c,0xbc0cb90c,0x3a0dae0c,0x6a0c3b0c,0x3c0daf0c,0xb00db10c,0x4a0c6b0d,0x6c0b6e0c,0x670b650b,0x650c430b,0x420c430b,0x760c560c,0x750d750d,0x740c4f0b,0x550b7b0b,0x330b760c,0x580b590c,0x330c350b,0x770b580c,0x750c500b,0x570b5b0b,0x5b0c340b,0x390c340b,0xc20a5d0c,0xa40a650a,0x1a0d160c,0x3f0b5e0d,0x5e0b600c,0x3d0c390b,0x240cef0c,0x70cf20b,0x140c290c,0x7e0c590c,0x6c0b7c0b,0x480b6b0b,0x480b6c0c,0x530c4a0c,0x780b7a0c,0x4f0b720b,0x7c0c4e0c,0x570b7a0b,0x570b7c0c,0x670c590c,0x430c450b,0x630b840c,0x160b850c,0x150d130d,0x600b7f0d,0x7b0c5d0c,0x580c5d0b,0x7f0b7b0c,0xe0c5d0b,0xe60ae80b,0x550b760a,0x770c510c,0x510b760b,0x860d830c,0x4d0b640d,0x710b6f0c,0x720b710b,0x710c4e0b,0x4d0c4e0b,0x630c420c,0xb40b650b,0xa10a960a,0xbd0dc90a,0xd0dc80d,0xdf0de60e,0xd0e0e0d,0xe0ddf0e,0xd60ddf0e,0xe0e0f0d,0xbf0dd60e,0x920b9d0b,0x630ac90b,0x260ac30a,0x300b010b,0x7c0a950b,0x7a0ad80a,0x7b0d070c,0xf40c1a0c,0x170c190b,0xdd0e160e,0xdd0e170d,0xa80de30d,0xff0afc0b,0x930d900a,0x1a0d850d,0xfa0df60e,0x1a0e1b0d,0x1b0dfa0e,0xfe0dfa0e,0x1b0e1c0d,0x1c0dfe0e,0x20dfe0e,0x1c0e1d0e,0x1d0e020e,0x60e020e,0x1d0e1e0e,0x230e060e,0x240db30e,0xb90e200e,0xb50e210d,0xbf0a590a,0x320a830a,0x1e0a840a,0x5e0e1f0e,0x5a0e640e,0x400e5c0e,0x3b0dd40e,0xc90e320e,0x3c0dd20d,0xd20e320e,0xd20e3c0d,0x8a0dd80d,0x610a550a,0x440a860a,0x5a0a870a,0x560df80e,0xec0e500e,0x4e0ded0d,0xed0e500e,0xed0e4e0d,0x440de50d,0xe50e4e0e,0xe50e440d,0x400dd90d,0xd90e440e,0x7d0a900d,0x840a910a,0x850a390a,0xbb0e2d0a,0x110e280d,0x120dc10e,0x790a8f0e,0x220a900a,0x320dc90e,0xb30e240e,0x630e080d,0x80e240e,0x700a8d0e,0x870a8e0a,0x880a4b0a,0xb40e280a,0xbf0e230d,0xc60a5f0a,0xf80e560a,0x540df40d,0xf40e560e,0xf40e540d,0x4a0df00d,0xf00e540e,0xf00e4a0d,0xd0de60d,0xe60e4a0e,0xa10c680d,0xd60c760c,0xd80bd70b,0x3f0ddb0b,0xc0e430e,0x660e650e,0x5e0e050e,0xf90e610e,0x580e5c0d,0x5e0ac00e,0x5b0a580a,0xfd0e010e,0xf70e530d,0xf50df20d,0x550e580d,0xea0e460e,0xba0de00d,0x290dc30d,0x3e0dd50e,0xb0de00e,0x260db50e,0x260e0b0e,0x70e640e,0x640e0b0e,0x640e070e,0x30e620e,0x620e070e,0x620e030e,0xc00e5f0e,0x2b0e2c0d,0x610e090e,0x340e650e,0xce0dc70e,0xce0e380d,0x380dd70d,0x3d0dda0e,0x3d0de10e,0x6a0dda0e,0x670ac70a,0xe00b8d0a,0x370be10b,0xa00a9e0a,0x4e0ab00a,0xc40a450a,0x2b0dc00d,0x2b0dc40e,0xcb0e300e,0x300dc40d,0x300dcb0e,0xcc0e330e,0x330dcb0d,0x330dcc0e,0x250e350e,0xb20db50e,0x5f0d470d,0xe00d5e0d,0x460e3e0d,0x5c0ab20e,0x3a0a500a,0xd30dc50e,0xc40a5a0d,0xdc0ab90a,0x410e480d,0xc10a620e,0xe90ac50a,0x4d0e520d,0x4f0def0e,0x520e520e,0xb70abd0a,0x990a270a,0xb60a980a,0x660e0c0d,0x3f0dd10e,0x390ddb0e,0x2e0dc80e,0x620b850e,0x4d0b830c,0x650d630d,0x7b0a260d,0x770a770a,0x780a740a,0x780a770a,0x240a7c0a,0x770a260a,0x2c0a350a,0x4c0a240a,0x350a430a,0x520a560a,0x5e0a4c0a,0x560a620a,0x580a540a,0x450a5e0a,0x540a4e0a,0x3a0a300a,0x270a450a,0x300a2d0a,0x2a0a7e0a,0x760a270a,0x7e0a7a0a,0x730a6f0a,0x680a760a,0x6f0a6c0a,0x650a5d0a,0x500a680a,0x5d0a5c0a,0x460a420a,0x370a500a,0x420a3c0a,0x330a360a,0x3e0a370a,0x360a3b0a,0x470a4d0a,0x5a0a3e0a,0x4d0a5b0a,0x640a670a,0x6e0a5a0a,0x670a6a0a,0x720a710a,0x6d0a6e0a,0x6e0a710a,0x670a6e0a,0x5a0a5a0a,0x3e0a4d0a,0x360a3e0a,0x370a370a,0x500a420a,0x5d0a500a,0x680a680a,0x760a6f0a,0x7e0a760a,0x270a270a,0x450a300a,0x540a450a,0x5e0a5e0a,0x4c0a560a,0x350a4c0a,0x240a240a,0x7c0a770a,0x7c0a240a,0x5e0a250a,0x240a4c0a,0x450a270a,0x680a5e0a,0x270a760a,0x500a370a,0x5a0a680a,0x370a3e0a,0x6e0a6d0a,0x690a5a0a,0x5a0a6d0a,0x250a240a,0x240a2b0a,0x2f0a2b0a,0x690a630a,0x570a5a0a,0x5a0a630a,0x2f0a240a,0x240a3f0a,0x480a3f0a,0x570a510a,0x490a5a0a,0x5a0a510a,0x240a5e0a,0x5e0a480a,0x530a480a,0x5a0a490a,0x400a370a,0x370a490a,0x530a5e0a,0x5e0a600a,0x5f0a600a,0x400a380a,0x340a370a,0x370a380a,0x5f0a5e0a,0x5e0a590a,0x4f0a590a,0x340a320a,0x390a370a,0x370a320a,0x5e0a270a,0x270a4f0a,0x4a0a4f0a,0x390a3d0a,0x440a370a,0x370a3d0a,0x4a0a270a,0x270a410a,0x310a410a,0x370a440a,0x4b0a680a,0x680a440a,0x310a270a,0x270a2e0a,0x280a2e0a,0x4b0a550a,0x610a680a,0x680a550a,0x280a270a,0x270a290a,0x7d0a290a,0x610a660a,0x6b0a680a,0x680a660a,0x270a680a,0x680a7d0a,0x790a7d0a,0x6b0a700a,0x680a680a,0x750a790a,0xf30e190a,0x630df60d,0x40e080e,0xc10e120e,0x420dbf0d,0xe70dde0e,0xe5d0d,0x210dfc0e,0xbd0db90e,0x7c0ad80d,0x8e0a780a,0x750a700a,0x380a820a,0x780a340a,0xd20a740a,0xf30dee0a,0xf0e190d,0xcd0dd60e,0x6d0acc0d,0x850a690a,0x3d0a390a,0xe70e4c0a,0x9d0dec0d,0x9f0b9e0b,0x710a720b,0x6e0a740a,0x530c4b0b,0x4c0b6f0c,0x600c450c,0xe040e,0x460d4a0e,0x110d550d,0xc90cc70b,0x400a810c,0x100a380a,0xc60dcd0e,0xcf0e360d,0x470dbe0d,0x900d940c,0x7b0d900d,0xf90c540d,0x620bfb0b,0x110b620b,0x1f0bf70c,0xb70e0a0e,0xf80af70d,0x460b3e0a,0x6b0c480c,0xab0aa90b,0xc80a460a,0x6c0aca0a,0xb40ab70a,0x960a4c0a,0x260a970a,0x960a9b0a,0x560a240a,0xc50a620a,0x7e0a2a0a,0x670ad90a,0xc40ac70a,0x290dba0a,0x170e250e,0x1c0d180d,0xd00ad40d,0xf50a720a,0x8e0cf90c,0x8b0c8e0c,0xb80cfa0c,0xf50cb60c,0xfa0c8e0c,0xf10cb80c,0x550df50d,0x3a0e410e,0x970dd30e,0x7b0ad70a,0x330a9e0a,0x3b0a360a,0x9f0aa70a,0xa80a3e0a,0xa80aa70a,0x470a3e0a,0xac0ab10a,0xb80a470a,0x4d0ab10a,0x60b880a,0x80c080c,0x6d0c0a0c,0xa90aa50b,0x240a420a,0xfc0b340b,0x330afc0a,0x6e0b250b,0xcb0ace0a,0x710d6a0a,0x6f0d6f0d,0x370d700d,0x690c370c,0x700d6a0d,0xe60be50b,0xdb0be60b,0x490b730b,0xeb0e4f0e,0xd40ad70d,0xab0a770a,0x500ab20a,0x730a760a,0xca0ad10a,0x6f0acd0a,0x9b0aa10a,0x430a2c0a,0xa30aae0a,0x430aae0a,0x7a0a4c0a,0xd30a760a,0xd10acd0a,0x2f0a730a,0xc20e2c0e,0xe90de20d,0x570e4d0d,0xfb0e590e,0xc00aba0d,0xb60a580a,0x540aba0a,0x30dff0a,0x780e5f0e,0x6f0c7a0c,0x820d840c,0xfd0d780d,0xfa0af90a,0xf30cda0a,0x520d1f0c,0x480b540b,0xed0af60b,0xf80af80a,0xf40af70a,0xf50af40a,0xea0af60a,0x3a0b160a,0xe80ae60b,0xd00ae40a,0x160ddd0d,0xdb0add0e,0xb0ae40a,0x80b0a0b,0x90b080b,0xe30ae30b,0xb0ae20a,0xe70ce60b,0xe10ce30c,0xf10ce20c,0xe30ce60c,0xe80ce10c,0xe10ce60c,0xf10ce10c,0xde0cde0c,0xc30cf00c,0xee0cc30c,0xed0cec0c,0xe10ce80c,0xec0cc30c,0xe10ced0c,0xc30cde0c,0xe30be20c,0x8b0b8b0b,0xe10b8d0b,0xa80ba90b,0x8f0aff0b,0x940b930b,0xa00ca90b,0xff0d170c,0x7c0c7f0c,0xde0de70c,0xe40de40d,0xef0deb0d,0xe90def0d,0xe20de20d,0xd30ddc0d,0xc50dd30d,0xc30dc30d,0xb20dba0d,0xb50db20d,0xb0e0b0d,0x30e070e,0xff0e030e,0xf90df90d,0xf10df50d,0xe80df10d,0xe10de10d,0xd70dda0d,0xce0dd70d,0xc70dc70d,0xc00dc20d,0xc40dc00d,0xcb0dcb0d,0xd50dcc0d,0xe00dd50d,0xea0dea0d,0xf70df20d,0xfb0df70d,0xfd0dfd0d,0x50e010d,0x90e050e,0x50e0a0e,0x60e0a0e,0xfd0df70e,0xd50e050d,0xf70dea0d,0xcb0dc00d,0xd70dd50d,0xc00dc70d,0xe10df10d,0x30dd70d,0xf10df90e,0xb0db20d,0xd30e030e,0xb20dc30d,0xe20def0d,0xe70dd30d,0xef0de40d,0xe70dec0d,0xef0def0d,0xb20dd30d,0x30db20d,0xf10df10e,0xc00dd70d,0xd50dc00d,0xf70df70d,0x60e050d,0x60df70e,0xed0e020e,0xef0dec0d,0xed0de50d,0xf70def0d,0xfe0e020d,0xfe0df70d,0xd90dfa0d,0xef0de50d,0xd90dd40d,0xf70def0d,0xf60dfa0d,0xf60df70d,0xd40df30d,0xb20def0d,0xd40dcf0d,0xf70db20d,0xee0df30d,0xee0df70d,0xbe0de30d,0xb20dcf0d,0xbe0dbb0d,0xc00db20d,0xe30df70d,0xe30dc00d,0xb40ddd0d,0xb20dbb0d,0xb40db30d,0xc00db20d,0xd00ddd0d,0xd00dc00d,0x80dca0d,0xb20db30e,0x80e040d,0xc00db20e,0xbf0dca0d,0xbf0dc00d,0x40dc10d,0xf10db20e,0x40e000d,0xc00df10e,0xc60dc10d,0xc60dc00d,0xfc0dcd0d,0xf10e000d,0xfc0df80d,0xf10df10d,0xcd0dc00d,0xcd0df10d,0xf40dd60d,0xf10df80d,0xf40df00d,0xf10df10d,0xdf0dd60d,0xf00de60d,0x840df10d,0xa70d850d,0xad0da70d,0x720d820d,0xce0ad00a,0x7f0c830a,0x7e0cff0c,0x790d7f0d,0xaa0b790b,0xe70d7d0d,0xe00ae10a,0xe20ae00a,0xe10ae30a,0xde0adf0a,0x620ce60a,0xc0d480d,0xe50b0d0b,0x820b7b0a,0x860b860b,0x8c0b8d0b,0x690b870b,0x860b640b,0x870b8c0b,0x7b0b7f0b,0x800b860b,0x7f0da90b,0x640b870b,0x7f0b800b,0x870b860b,0xd00dca0b,0xb80e150d,0xb30bb20b,0xcb0bc90b,0xc50bd30b,0xd20bd10b,0x620b830b,0x490c600c,0x600d4a0d,0xc10bc00d,0x550bba0b,0xc10b560b,0xc20bc10b,0x890bb90b,0x8d0b8c0b,0x8d0b890b,0x500b8b0b,0x8b0b890b,0x8b0b500b,0x530b8a0b,0x8a0b500b,0x8a0b530b,0x4d0c120b,0x120b530b,0x120b4d0c,0x4e0c100c,0x100b4d0b,0x100b4e0c,0x910b880c,0x880b4e0b,0x880b910b,0x7d0b6d0b,0x7b0b820b,0x760b7b0b,0x770b770b,0x740b750b,0x740b770b,0x7d0b720b,0x770b7b0b,0x7d0b730b,0x770b770b,0x710b720b,0x6f0b710b,0x710b680b,0x670b680b,0x770b730b,0x700b710b,0x710b730b,0x670b710b,0x650b650b,0x5a0b630b,0x580b5a0b,0x590b590b,0x5b0b570b,0x5e0b5b0b,0x600b600b,0x660b610b,0x6a0b660b,0x6c0b6b0b,0x780b6e0b,0x6b0b660b,0x5b0b6c0b,0x660b600b,0x5a0b650b,0x700b590b,0x650b710b,0x700c130b,0x5b0b650b,0x6c0b660b,0x780b6c0b,0x7c0b7a0b,0x810b7e0b,0x7a0b6c0b,0x130b7c0b,0x590b650c,0x130b620b,0x5b0b590c,0x7c0b6c0b,0x810b7c0b,0x840b840b,0x830b850b,0x7f0b830b,0x830da90b,0xaa0da90b,0x840b7c0d,0x110b830b,0x590b620c,0x110b6d0b,0x7c0b590c,0xaa0b830b,0xaa0b7c0d,0x6d0b790d,0x5b0b590b,0x790b7c0b,0x7c0dad0b,0xa70dad0b,0x690b640d,0xac0b5f0b,0x5f0b640d,0x5f0dac0b,0xab0b560b,0x560dac0d,0x560dab0b,0xa80b550b,0x550dab0d,0x550da80b,0x900b8f0b,0x8f0da80b,0x8f0b900b,0xa60b8e0b,0x8e0b900d,0x8e0da60b,0x5d0b910b,0x910da60b,0x7c0b5b0b,0x5b0da70b,0xa50da70b,0x910b5d0d,0x5b0b6d0b,0x5c0da50b,0x6d0b5d0b,0x4f0b5b0b,0x580d640d,0x3b0af00d,0xa00af80b,0x9f0a9e0a,0xa70a9f0a,0xa80aa80a,0xb10aac0a,0xb80ab10a,0xb90ab90a,0xc70ac40a,0xcb0ac70a,0xce0ace0a,0xd40ad00a,0xd70ad40a,0x970a970a,0x9a0a960a,0x9a0a970a,0xce0a950a,0x970ad40a,0xc70ab90a,0xa80ace0a,0xb90ab10a,0x9f0aa00a,0xa90aa80a,0xa00aa50a,0xab0ab20a,0xc20aa90a,0xb20abb0a,0xc80aca0a,0xd10ac20a,0xca0acd0a,0xd30ad60a,0x990ad10a,0xd60ad90a,0x980a9d0a,0xaa0a990a,0x9d0aa20a,0xb00ab60a,0xc00aaa0a,0xb60aba0a,0xc10ac50a,0xb70ac00a,0xc50abd0a,0xb40aaf0a,0xb30ab70a,0xb70aaf0a,0xc50ab70a,0xc00ac00a,0xaa0ab60a,0x9d0aaa0a,0x990a990a,0xd10ad60a,0xca0ad10a,0xc20ac20a,0xa90ab20a,0xa00aa90a,0xa80aa80a,0xce0ab90a,0x970ace0a,0xce0a950a,0xd80a950a,0xc20ad10a,0xaa0aa90a,0xd10a990a,0xc00ab70a,0xbe0aaa0a,0xb70ab30a,0xbe0ac60a,0xce0ab70a,0xd50ad80a,0xd50ace0a,0xc60ad20a,0xaa0ab70a,0xc60abf0a,0xce0aaa0a,0xcf0ad20a,0xcf0ace0a,0xb50acc0a,0xaa0abf0a,0xb50aad0a,0xce0aaa0a,0xc90acc0a,0xc90ace0a,0xa60ac30a,0xaa0aad0a,0xa60a940a,0xa80aaa0a,0xc30ace0a,0xc30aa80a,0x930abc0a,0xaa0a940a,0x930a920a,0xa80aaa0a,0x7f0abc0a,0x7f0aa80a,0x920a800a,0xd10aaa0a,0x920a910a,0xa80ad10a,0x810a800a,0x810aa80a,0x900a820a,0xd10a910a,0x900a8f0a,0xa90ad10a,0x820aa80a,0x820aa90a,0x8e0a830a,0xd10a8f0a,0x8e0a8d0a,0xa90ad10a,0x840a830a,0x840aa90a,0x8c0a850a,0xd10a8d0a,0x8c0a8b0a,0xa90ad10a,0x860a850a,0x860aa90a,0x8b0a870a,0xa90ad10a,0x8b0a8a0a,0xa90aa90a,0x880a870a,0x8a0a890a,0x950aa90a,0xf50ba30b,0x440b480a,0xb90b430b,0x5b0ab80a,0xa40ca50a,0xd1a0c,0xfb0b020b,0x380d2d0a,0x880d390d,0x10c100b,0x60c040c,0xa80b880c,0x800d950d,0x7c0d700d,0xce0c320d,0xd00bcf0b,0xb60bba0b,0xcc0bb50b,0xd30bd20b,0x470b480b,0xb20b3f0b,0xb50cb30c,0xc0b0d0c,0x8e0bd80b,0x810c8d0c,0x3b0b3e0c,0x430b3d0b,0x420b3c0b,0xb10b040b,0x470b0b0b,0xf20e530e,0xba0cbd0d,0x8e0cbb0c,0x900d910d,0xa60b900b,0xd00d8c0d,0xd60bd50b,0xc30b080b,0x490bca0b,0x400b430b,0xb70bb90b,0x1f0bb60b,0xd70cd80b,0x4f0b4b0c,0x8c0b510b,0x810c800c,0xcc0bc50c,0x1f0bcd0b,0xeb0bed0c,0xea0beb0b,0xda0c1e0b,0xfb0adc0a,0x280d320a,0x9b0d430d,0x9a0b990b,0xaf0cae0b,0xc90cb10c,0x90bd40b,0x9f0b9c0b,0x9b0ba00b,0xa10ba00b,0xbe0bb90b,0x300bb30b,0xa20a9d0a,0x60cc30a,0x3b0d0a0d,0x6a0daf0c,0x8d0c6a0c,0xa30da30d,0x3b0da10d,0x150d1a0c,0xac0ccf0d,0x9e0ba60b,0x530b500b,0xde0b520b,0x20cfc0c,0x850da70d,0x930d930d,0xa50d970d,0x7f0b790d,0x510d820d,0x490b520b,0x5e0d470b,0x5d0d5d0d,0x5b0d5c0d,0x590d5a0d,0x470d580d,0x5b0d5d0d,0x580d5a0d,0x470d640d,0x5a0d5b0d,0x670d660d,0x680d470d,0x470d660d,0x640d5a0d,0x630d650d,0x470d680d,0x650d5a0d,0xbc0d630d,0x2e0e2a0d,0x140b150e,0x1e0b1e0b,0x160b100b,0x1d0b160b,0x160b1a0b,0x110b1a0b,0x150b0f0b,0x160b1e0b,0xf0b110b,0x580c350b,0x8a0b5a0b,0xe30b8b0b,0xb0b0a0b,0x880bb20b,0x550a4b0a,0xf80bf70a,0x5d0bfa0b,0x550d5e0d,0x750d7d0d,0x990d760d,0x9c0d9a0d,0xdf0ae60d,0xe10ae10a,0xf60be00b,0xd90bd30b,0x730b0e0b,0x9e0c740c,0xf10cfb0c,0x10cbb0c,0x120c100c,0xe70c120c,0xb60bfe0b,0xac0baf0b,0xb10bb20b,0x540bb00b,0x780d7b0c,0x6d0d780d,0x6e0d6e0d,0x540c520d,0x2b0a9a0c,0x420a250a,0xcf0bd50b,0x820bdd0b,0xc30b7d0b,0xa0b080b,0x490b2e0b,0xf30d610d,0x210bf20b,0x760d7e0c,0xf20d770d,0x250b240c,0x3a0d390b,0xd60d2e0d,0xc50cc60c,0xc70cc90c,0xd60cc80c,0xc90cc50c,0xd60cd40c,0xc90cc90c,0xcd0cc80c,0xce0ccd0c,0xda0ccc0c,0xd80cd00c,0xd80cda0c,0xd40cdc0c,0xcd0cc90c,0xd40cd20c,0xda0ccd0c,0xdd0cdc0c,0xdd0cda0c,0xd10cdb0c,0xcd0cd20c,0xd10cd90c,0xcc0ccd0c,0xdb0cda0c,0xdb0ccc0c,0xd90cd50c,0xcc0ccd0c,0xd90ccb0c,0xcc0ccc0c,0xca0cd50c,0x120cce0c,0x6d0d100d,0x7a0d790c,0xfd0c020d,0xfd0c280b,0xfb0aff0a,0x480a530a,0x8c0ab30a,0x3e0c670c,0xe80c250c,0xf60bf60b,0x1a0bf50b,0x370e350c,0x8c0dd50e,0x5d0da60d,0x9f0b5d0b,0xa40da20d,0x5d0d8c0d,0xbf0bbc0b,0x250bc00b,0xec0c1b0c,0xe80be90b,0x260c250b,0xa70b380b,0xa60ba50b,0x750ba70b,0xb0d0a0c,0x110bf70d,0x6d0b6d0c,0xd0c0a0b,0xf70c0f0c,0x3b0b6d0b,0xcf0dd40e,0x400b630d,0x3c0c360c,0xa00a370a,0x60e1e0a,0xf00e0a0e,0x3a0af30a,0xfd0c280b,0x420bef0b,0xd80e3c0e,0xee0ceb0d,0xf10cc30c,0xe90ce20c,0xe90cf10c,0xeb0ce50c,0xbe0cc30c,0xeb0cf20c,0xbb0cbe0c,0xe50cf10c,0xe50cbb0c,0xef0cdf0c,0xbe0cf20c,0xef0cea0c,0xbb0cbe0c,0xe00cdf0c,0xea0ce40c,0xbb0cbe0c,0xe40ce00c,0x1d0b1f0c,0xe50b160b,0x170b0d0a,0x100b170b,0x170b1e0b,0x1b0b1e0b,0x160b1f0b,0x230aea0b,0xea0b1f0b,0x1b0b170a,0x170b180b,0x190b180b,0x230b220b,0x210aea0b,0xea0b220b,0x170ae50a,0xe50b190b,0x200b190a,0xea0b210b,0x1c0ae50a,0xe50b210b,0x200ae50a,0x130b120b,0xe50b1c0b,0xeb0ae90a,0x990ae40a,0x5c0d9b0d,0xa50b5c0b,0xf10d970d,0x4b0e510d,0x480d4b0e,0x590d620d,0xfd0e5b0e,0x9f0ca00d,0x1e0d180c,0xad0cac0d,0xf90afa0c,0x960aee0a,0xf70af40b,0x3f0d320a,0x930d420d,0x970c950c,0xf50cb50c,0x160cb60c,0x170c2d0c,0xfc0c170c,0xfa0bfa0b,0x160bf80b,0x9c0c9d0c,0xa70c910c,0xa30c9f0c,0x900c980c,0x610c970c,0x8b0a660a,0x8f0c9b0a,0x260c910c,0x2e0d210d,0x860c840d,0x5c0c880c,0x9d0d9b0b,0x9f0d9d0d,0x7d0b5d0d,0x700c6e0c,0x700c7b0c,0x10c6f0c,0x50cff0d,0x660b6a0d,0x2b0c440b,0x350d340d,0x2e0d490d,0xe70ce70b,0x4b0d480c,0x470d4b0d,0x670d670d,0x460d450d,0x490d4a0d,0x670ce70d,0x4a0d460d,0xe70d4a0d,0x890d4b0c,0x880c820c,0x9b0b9c0c,0xb00b940b,0x680c6a0d,0x680db00c,0x6b0c690c,0x690db00c,0x690c6b0c,0x6c0c310c,0x310c6b0c,0x670c3e0c,0x6d0c250c,0x310c6c0c,0x250c3e0c,0x6d0c240c,0x3e0c310c,0x6d0c320c,0x240c3e0c,0x230c1a0c,0x320c370c,0x240c3e0c,0x580c230c,0x3e0c370c,0x490c240c,0x240c370c,0x580c240c,0x5d0c5d0c,0x620c600c,0x630c620c,0x610c610c,0x5a0c5b0c,0x5a0c610c,0x5d0c590c,0x610c620c,0x490c5c0c,0x5e0c240c,0x5c0d6b0c,0x240c5c0c,0x5d0c5d0c,0x590c610c,0x530c570c,0x5d0c4b0c,0x570c590c,0x5c0c5e0c,0x5f0c5d0c,0x5d0c5e0c,0x570c5d0c,0x5d0c4b0c,0x4a0c4b0c,0x5f0c560c,0x520c5d0c,0x5d0c560c,0x4a0c5d0c,0x480c480c,0x440c460c,0x410c440c,0x3f0c3f0c,0x390c3d0c,0x3b0c390c,0x390c3a0c,0x380c3a0c,0x3f0c440c,0x5d0c390c,0x440c480c,0x520c540c,0x390c5d0c,0x470c380c,0x5d0c540c,0x390c440c,0x540c470c,0xad0bbc0c,0x330b9e0b,0xa40ba80b,0x4b0de80b,0x890e450e,0xc60bc70b,0x980b950b,0x940ba20b,0x380c470d,0x9c0c380c,0x980d9a0d,0x380d940d,0x510a7f0c,0x5b0a490a,0x510d5c0d,0xd00bc40d,0x600bd10b,0x410c3f0b,0xae0cb30c,0x990cf30c,0xa20ba10b,0xf90c8e0b,0x7b0d110c,0x50d070c,0x6d0a710d,0xb0acc0a,0x140c090c,0x2b0c140c,0x2c0c2c0c,0xe0c150c,0xb0c0c0c,0x2c0c140c,0xc0c0e0c,0xaa0c730c,0xae0d090c,0xb20cb30c,0x290e310c,0x420dc30e,0x450b3c0b,0x3b0d3a0b,0x3e0d3e0d,0x140cc60d,0x140d3e0b,0x2e0d3d0b,0x3e0d3a0d,0x3d0d3e0d,0x890d3c0d,0xfe0cfd0c,0x860c890c,0xa70d030c,0x180d1b0c,0x830c840d,0xae0d000c,0xa10c3b0d,0xa10dae0d,0x9c0da00d,0xae0c380d,0xa00dae0d,0x160d9e0d,0x9a0c9d0d,0xe0c980c,0x6a0d0c0d,0x730c5c0d,0x710d720d,0x930d6a0d,0xf0d100c,0x950c980d,0x10d0f0c,0xb40b390b,0xb70caf0b,0x930cba0c,0x110c920c,0x780c7a0d,0xa30d0b0c,0xaa0ba20b,0x5c0d730b,0x6b0d6b0c,0x740d750d,0x20c840d,0x750d030d,0x90c720c,0x710a740d,0xdf0acf0a,0xf40bde0b,0xaf0c3c0b,0x390c3b0d,0x330c340c,0x350c330c,0x360c360c,0x420c400c,0x450c430c,0x360c4c0c,0x430c420c,0x3b0c3c0c,0x680c390c,0x3c0c6a0c,0x680c650c,0x3c0c3c0c,0x330c390c,0x360c330c,0x430c430c,0x4d0c4c0c,0x4f0c4e0c,0x430c500c,0x4e0c4d0c,0x670c250c,0x1b0c660c,0x660c250c,0x660c1b0c,0x270c640c,0x640c1b0c,0x270c1d0c,0x280c640c,0x640c1d0c,0x640c280c,0x180c650c,0x650c280c,0x430c330c,0x4e0c4e0c,0x510c500c,0x550c510c,0x580c580c,0x220c230c,0x220c580c,0x4e0c210c,0x580c510c,0x180c290c,0x2b0c650c,0x650c290c,0x4e0c330c,0x580c580c,0x200c210c,0x200c580c,0x2b0c1f0c,0x3c0c650c,0x2b0c2c0c,0x580c3c0c,0x1e0c1f0c,0x580c330c,0x2c0c1e0c,0x330c3c0c,0x2c0c150c,0x330c330c,0x2f0c1e0c,0x2f0c330c,0x160c170c,0x330c150c,0xfa0afe0c,0xec0aec0a,0xf60aed0a,0xee0b370a,0xe00ceb0c,0x290b280c,0x230cdc0b,0x320b220b,0xe40cea0b,0x270cdf0c,0xd50b280b,0x130b1c0c,0xd10b190b,0x1b0cd90c,0xd20cd40b,0xec0bee0c,0x1b0c1b0b,0x1d0c260c,0xef0c1d0c,0x990bee0b,0xd0d0c0c,0xdc0bda0d,0x7d0b7d0b,0xdb0b730b,0xaa0cbf0b,0x730c730c,0xad0ca90c,0xab0cac0c,0x730cbf0c,0xac0cad0c,0x2d0d2f0c,0x2c0d2c0d,0x210d2e0d,0x200d210d,0x210d280d,0x320d280d,0x2c0d2f0d,0x2b0d210d,0x300d310d,0x2f0d300d,0x210d210d,0x330d320d,0x2a0d330d,0x290d290d,0x300d2b0d,0x210d300d,0xa30d330d,0xa00c9f0c,0x3c0b450c,0x1f0b3d0b,0x200c1c0c,0x210c200c,0x200bf20c,0xf10bf20c,0x1f0bed0b,0x200c200c,0xf00bf10c,0xbf0e130b,0x5e0dca0d,0x620d5f0d,0xe60d620d,0x620b2f0c,0x610b2f0d,0x5e0d550d,0x620d620d,0x600d610d,0xc60bc80d,0x430bc40b,0xe40e490e,0x930b9c0d,0xe30b920b,0x180dee0d,0x220d440e,0x3a0d3a0d,0x380d390d,0x380d3a0d,0x430d370d,0x3a0d440d,0x430d3f0d,0x3a0d3a0d,0x360d370d,0x350d360d,0x340d340d,0x410d400d,0x3f0d420d,0x340d3a0d,0x420d410d,0x3a0d420d,0x270d360d,0x3a0d3b0d,0x610b660d,0x360c410b,0x310d300d,0xe50b2d0d,0xca0ce90c,0x120b130c,0x570c340b,0x960b590b,0xb00d920d,0xb10db00d,0x6c0c6c0d,0x960d7a0c,0xac0d830d,0xab0dab0d,0x810d800d,0x20c050d,0x7f0c180c,0x570abc0a,0x7a0a7e0a,0x4d0ad60a,0x4f0d500d,0x560d4f0d,0x4f0d570d,0x4c0d570d,0x4f0d4d0d,0x4e0d4c0d,0x520d510d,0x4c0d4d0d,0x450d4e0d,0x530d540d,0x4d0d530d,0x4e0d4e0d,0x550d520d,0x460d550d,0x450d450d,0x4e0d530d,0xa50ca70d,0x240d190c,0xc50b150d,0x230cc50c,0x250d250d,0x220d270d,0x210d220d,0x260d260d,0xc50d240d,0x250cc50c,0x1e0d220d,0xbea0c,0xfc0c000c,0x170c170b,0x300c2e0c,0x2f0c300c,0x1e0c1e0c,0x170c000c,0xf40b950c,0x150b960a,0x3d0d240b,0x260d240d,0x810d3c0d,0x5a0b7e0b,0x4b0b4f0c,0xb60bce0b,0x270e660d,0xbf0cb10e,0x100cab0c,0xd50bd70b,0x410b4b0b,0xdd0bcf0b,0xda0adc0a,0x3e0b460a,0x8d0b3f0b,0xb00c6a0d,0x920db00d,0x7f0d8f0d,0x700c7e0c,0x420d330c,0x4a0d410d,0x410b400b,0x980d970b,0xdd0d9a0d,0x210b220c,0x570a630b,0x7c0abc0a,0x6d0d790d,0xab0bac0c,0xf90ba70b,0xfc0bfa0b,0xea0c000b,0xeb0c030b,0xe60bed0b,0xf00bdb0b,0xda0bf10b,0xf20bf10b,0x400d290b,0x440d340d,0x210d200d,0x870b640d,0x880d880d,0x800d890d,0x810b840b,0xa80c5b0b,0x910b900d,0xb50bbb0d,0x590bad0b,0x4c0d5a0d,0xe50c030d,0x700b700b,0xff0c130b,0x680ac80b,0xaa0a650a,0x800da90d,0x890b800b,0x8b0d8a0d,0xaa0d7d0d,0x8a0b800d,0xc80d8b0d,0xd30cc70c,0xd80cd70c,0xc80cd00c,0xd70cd30c,0xcf0cd00c,0x3d0cc80c,0x3a0b3b0b,0xfb0b620b,0x8a0bff0b,0xe70be40b,0x8a0c8b0b,0xe0cfe0c,0x160c150c,0x70b040c,0x2f0bb40b,0x380d370d,0x270db80d,0xc40e2a0e,0xc70bc60b,0x860be00b,0x820b820b,0xde0bdd0b,0xe00bdf0b,0xb50b820b,0x4a0aad0a,0x760c740a,0x1c0ca10c,0xdb0cd50b,0xba0cbb0c,0x4a0cb90c,0x6e0c4b0c,0x6c0d6b0b,0x560c560d,0x780d6d0c,0x780c560d,0x750d770d,0x560d6b0d,0x770c560c,0x750d760d,0x4f0c500b,0x580b7b0c,0x770c550c,0x500c510b,0xbb0a5d0c,0xa40ac20a,0x160c9d0c,0x3d0b5e0d,0x5e0c3f0c,0x390b5b0b,0x340cef0c,0x140b240b,0x70c090c,0x50c070c,0x290c290c,0x140c2a0c,0x5a0c590c,0x530b7e0c,0x7a0c570c,0x740b720b,0x670c4f0b,0x450b680b,0x610b840c,0x160c630c,0x130d0d0d,0xc0b0e0d,0x640ae80b,0x830dac0b,0x870d860d,0x4d0b640d,0x6f0c4c0c,0x400c420b,0xa30b630c,0xb40aae0a,0xaf0ab40a,0x9c0aa40a,0x960a9a0a,0xa40ab40a,0xa10a9c0a,0xb40aa30a,0x9b0a960a,0xb40aa10a,0x960a9c0a,0xe40ddb0a,0xdb0dde0d,0xd80dde0d,0xd10dc80d,0xb80ddb0d,0xc80dbc0d,0xb60e0c0d,0xa0db80d,0xc0e090e,0xa0db70e,0xc0e0c0e,0xc80db80e,0xdb0dc80d,0xc80dd80d,0xd20dd80d,0xc0db70d,0xb90dc80e,0xc80db70d,0xd20dc80d,0xbd0dc90d,0xc80db90d,0xbc0bbf0d,0xc90b9d0b,0x630a690a,0x2e0b2c0a,0x2c0b2f0b,0x310b2f0b,0x2c0b2b0b,0x2b0b310b,0x350b310b,0x250b370b,0x330b330b,0x260b380b,0x390b260b,0x10b010b,0x340afc0b,0x340b010b,0x360b320b,0x330b370b,0x360b350b,0x10b330b,0x290b320b,0x290b010b,0x350b280b,0x260b330b,0x350b2b0b,0x10b260b,0x270b280b,0x270b010b,0x2a0b2d0b,0x260b2b0b,0x2d0b010b,0x300b300b,0x260b2a0b,0x250a950b,0x7a0a7c0a,0x70d080c,0x230c190d,0x1a0c1a0c,0xf40bf50c,0xf30bf40b,0xa80c190b,0xfc0b330b,0x940d900a,0x230d930d,0xb30db40e,0xb70e200d,0xb50db90d,0x590a4f0a,0x340a830a,0x450a320a,0x510e4b0e,0x550e510e,0x580e580e,0x540e560e,0x540e580e,0x450e4a0e,0x580e510e,0x3d0e380e,0x2f0e450e,0x380e340e,0x2c0e2b0e,0x330e2f0e,0x2b0e300e,0x350e370e,0x460e330e,0x370e3e0e,0x470e530e,0x590e460e,0x530e570e,0x5b0e5e0e,0x650e590e,0x5e0e610e,0x660e270e,0x2e0e650e,0x270e2a0e,0x390e3f0e,0x490e2e0e,0x3f0e430e,0x4f0e520e,0x480e490e,0x520e4d0e,0x410e3a0e,0x290e480e,0x3a0e310e,0x250e260e,0x630e290e,0x260e640e,0x630e240e,0x260e260e,0x3a0e290e,0x480e3a0e,0x520e520e,0x3f0e490e,0x2e0e3f0e,0x270e270e,0x5e0e650e,0x590e5e0e,0x530e530e,0x370e460e,0x330e370e,0x2b0e2b0e,0x380e2f0e,0x450e380e,0x580e580e,0xd0e4a0e,0xd0e580e,0x370e0e0e,0x380e2b0e,0x530e5e0e,0x3f0e370e,0x5e0e270e,0x520e3a0e,0x240e3f0e,0x3a0e260e,0x240e230e,0x380e3a0e,0xe0e580e,0xe0e380e,0x280e0f0e,0x3a0e230e,0x280e2d0e,0x380e3a0e,0x100e0f0e,0x100e380e,0x360e110e,0x3a0e2d0e,0x360e3b0e,0x370e3a0e,0x110e380e,0x110e370e,0x400e120e,0x3a0e3b0e,0x400e440e,0x370e3a0e,0x130e120e,0x130e370e,0x440e140e,0x3f0e3a0e,0x440e4e0e,0x370e3f0e,0x150e140e,0x150e370e,0x500e160e,0x3f0e4e0e,0x500e4c0e,0x370e3f0e,0x170e160e,0x170e370e,0x420e180e,0x3f0e4c0e,0x420e3c0e,0x5e0e3f0e,0x180e370e,0x180e5e0e,0x320e190e,0x3f0e3c0e,0x320e220e,0x5e0e3f0e,0x1a0e190e,0x1a0e5e0e,0x210e1b0e,0x3f0e220e,0x210e200e,0x5e0e3f0e,0x1c0e1b0e,0x1c0e5e0e,0x200e1d0e,0x5e0e3f0e,0x200e1f0e,0x5e0e5e0e,0x1e0e1d0e,0x620e5f0e,0x640e640e,0x600e630e,0x600e640e,0x5c0e5d0e,0x640e5f0e,0x580e560e,0x640e5c0e,0x5a0e5d0e,0x560e5a0e,0x400e5c0e,0xd40dd90e,0x890a8a0d,0x860a550a,0x440a3d0a,0xfc0e5a0a,0x900df80d,0x7d0a790a,0x320a840a,0x2d0a390a,0xbb0dbe0e,0xc60e110d,0x8f0dc10d,0x790a750a,0xbd0e220a,0x8d0dc90d,0x700a6b0a,0x440a870a,0x280a4b0a,0xb40dbb0e,0x590abf0d,0x680a5f0a,0xa10c650c,0xd50bd60c,0xc0bd70b,0x650e090e,0x10e050e,0xf90e5e0e,0x5c0dff0d,0xc10ac00e,0x5b0a5e0a,0x10e5e0e,0x570e530e,0xf50df70e,0x580df90d,0x470e460e,0xd50dea0e,0x3e0e370d,0xc20dc00e,0x90e2c0d,0x610e050e,0x2f0e340e,0x380dc70e,0xce0e340e,0xd70e380d,0xe10dda0d,0x3d0e450d,0xcb0a6a0e,0x8d0ac70a,0xe00b860b,0x330a370b,0xb00a9e0a,0x4e0ab60a,0x260e250a,0x470db50e,0x5f0d4b0d,0xbb0ab20d,0x3a0a5c0a,0xc50e310e,0x640a5a0d,0xdc0ac40a,0x480de20d,0x5e0a620e,0xe90ac10a,0x520def0d,0xeb0def0e,0x520e4f0d,0xbd0a560a,0x2a0a270a,0xd10a990a,0x3f0e390d,0xd10e390e,0x850dc80d,0x620c630b,0x700e6f0c,0xf40e6e0e,0xfe11ff11,0x6a12b011,0xbb0e690e,0x7b0e7c12,0xbe0e830e,0xbe0e9712,0x970e8412,0x6e0e6d0e,0xee0e6c0e,0xfb11fd11,0x860e8511,0xea0e840e,0x3511fc11,0xd50ed812,0xec0ed70e,0x1120211,0x820e8112,0x870e800e,0x860e880e,0x760e750e,0x810e740e,0x7a107910,0xfe11f010,0x6b11fd11,0x6a0e6c0e,0xea12330e,0x78123511,0xb70e790e,0x811fb0e,0x3811fc12,0x3a102710,0x8f0e9710,0x880e830e,0x860ea10e,0x8110800e,0xa0108210,0x8c0e9e0e,0x970e9c0e,0x880e840e,0x89128512,0x980e9e12,0x9e0e8f0e,0x970e8f0e,0x2d12300e,0x3122a12,0x20103f10,0x66126f10,0xa9127d12,0xaf0e6a0e,0x900e980e,0x900e8f0e,0x8f0e830e,0x711fd0e,0x8f11fb12,0x74108e10,0x670ea410,0x1d0e950e,0x28122212,0x920ea412,0x10e880e,0x150f130f,0x44131d0f,0x91131f13,0x950ea40e,0x920e910e,0x540ea40e,0x320f330f,0xbc10f40f,0xad10f610,0x710ea50e,0xaa10f20e,0x1110f310,0x16120312,0xb20e7012,0x430ea512,0x22132513,0xb10eb013,0x330e960e,0x2e123112,0x9f0e8012,0x7e0e7e0e,0x7c0e990e,0x770f4f0e,0x760f4c0f,0x740eb50e,0x21122d0e,0x86122f12,0x840e9c0e,0xb20ea80e,0xb70eb50e,0x760eac0e,0x790eb70e,0xa50e8e0e,0x700ea60e,0x8313730e,0xab138213,0xa60eb60e,0xb70eaa0e,0xaa0e8e0e,0xb70eac0e,0xe010f00e,0xde10f110,0xdc12df12,0xfa10c212,0x9910f910,0x7f129712,0x73118112,0xb5118211,0xd40fd60f,0xc310c20f,0x1210c510,0x22112311,0xd90ed711,0xd80ed80e,0xd90fba0f,0x580f830f,0xbc0f570f,0xcd0fae0f,0x912020f,0xd3120112,0xd412f712,0xb50fd212,0x870fd40f,0x88116511,0x30e8b11,0x560ede0f,0x820f790f,0x290efb0f,0xea0f2b0f,0xeb12fc12,0x6f117b12,0x52117a11,0x75107610,0x51106b10,0x6b106c10,0x60135c13,0x920f9013,0x590f8f0f,0x5a124212,0x69118912,0x4f118a11,0x51138513,0x95119313,0xa5119411,0x89118811,0x510f6311,0x7c0f800f,0x5d136813,0xa3118713,0xab119611,0xcb0fc90f,0x112e80f,0xa12e713,0x9120112,0xe90fec12,0x9c0ff40f,0x91119011,0x480f6f11,0x910f420f,0x7b116c11,0xe012e311,0xdb12e112,0xd910ef10,0xb20fd010,0x5d0fd10f,0x600f590f,0xab0eb30f,0x230eb40e,0xd911d812,0xfe12e511,0x3112ec12,0x30102e10,0x7a11b510,0x89117c11,0xa5119a11,0x22103611,0xb0102410,0x84118311,0x7b126111,0x71127312,0x430f440f,0x72117a0f,0x51117c11,0x8c128412,0x812fd12,0x5b12fe13,0x6b127612,0x8c125012,0x86128b12,0x58125712,0x6e118512,0x55118611,0x56124712,0x73126012,0x51127212,0x52124a12,0x49138712,0xcf138913,0xce0faf0f,0x830f4a0f,0x6e0f570f,0x700f450f,0x3a0f6c0f,0x670f670f,0x660f380f,0x612fb0f,0x7f12fc13,0x6b136a13,0x820f5313,0x620f7c0f,0x650f370f,0xfa12ea0f,0x6512fb12,0x5b0f2f0f,0x720f460f,0x3d0f740f,0x400f6d0f,0x112ed0f,0x7f12f913,0x8d128a12,0x310f5f12,0x840f330f,0x330f5f0f,0x330f840f,0xd20f580f,0xce12f012,0x770f4712,0xa00f730f,0x9c0fbd0f,0x400f6f0f,0xf50f6d0f,0xeb0fe50f,0xa70fc10f,0x410fc30f,0x430f710f,0x9c0fbf0f,0xeb0fbd0f,0xd211f211,0x4f0f7d11,0x760f490f,0x490f7d0f,0x7e0f4e0f,0x440f7b0f,0x1f131513,0x530f5013,0x500f7c0f,0x7f0f7c0f,0x7f12c00f,0xd40e7d0e,0xf512f812,0x1103412,0xa102210,0xf80f130f,0xf80f0a0e,0x720ef20e,0x60125f12,0x240ed112,0x230ed30f,0x260ed60f,0xab0fc60f,0xd50fcb0f,0xb60fb80f,0x160f010f,0xea0f000f,0xe10fed0f,0x5c10720f,0x4b107410,0x790f730f,0x850f8c0f,0x8f0f8b0f,0x90139113,0xb70fbb13,0x7d0fb40f,0x7e117611,0x63118c11,0xf2118d11,0xe70fe60f,0x9e0fd90f,0xc50fbf0f,0xd10fcf0f,0xed11110f,0xd3110f10,0xd40f250e,0xbe0f9f0e,0xca0f9d0f,0xc80fa80f,0x390f5b0f,0xed0f5a0f,0xe10fe00f,0xa30fa40f,0x990fc50f,0xda0fa40f,0xda0f9b0f,0x9b0ecf0f,0xda0f990f,0xbe0f0c0f,0x140ec10e,0xc10f0c0f,0x1f0ef30e,0xc00ef70f,0xc20fa10f,0xb0ebe0f,0x120ebc0f,0xbb0ecb0f,0x120f0d0e,0xcb0ebb0f,0xdb0fdd0e,0xe20fe40f,0xb20fe00f,0xa50e7112,0xd110eb0e,0xf310d210,0xec0fe20f,0xdf0ff30f,0x7a0ff50f,0xb112ae0e,0xe60fef12,0xa70ff10f,0xac0eb50e,0xe00fe30e,0x8c0fee0f,0x8d0ed813,0x44100d13,0x1d100b10,0xdc0ef40f,0x1d0f1b0e,0xbd0edc0f,0xbb0f0d0e,0xe0ebc0e,0x200ebd0f,0xf70efb0f,0x200f1f0e,0x9d0ef70f,0xa20fc40f,0xb00fcd0f,0xeb0fcf0f,0xf30fe80f,0xf40fe40f,0xcc0fe90f,0xcb12f212,0xfb11e912,0xc911fc11,0xc512db12,0xce0fb112,0x6a0faf0f,0x6c0f3f0f,0x3e0f700f,0x5b0f6b0f,0x5c123912,0xad0fc812,0xd70fbc0f,0xbb0fcc0f,0xbb0fd70f,0x9c0fb80f,0x9d117b11,0xd60fcc11,0xcc0fb70f,0xbb0fb70f,0xac0fd30f,0x590fb40f,0x58107810,0xb20fd110,0xd30fac0f,0xac0fd10f,0x12132c0f,0x35130d13,0x3c0f690f,0x3c0f6b0f,0xdd0f690f,0xdc11e011,0x98118f11,0xe119511,0x17121312,0x290f2a12,0x3b0f680f,0x680f2a0f,0xa100b0f,0xfb100c10,0xfc0ff90f,0xfb0ffd0f,0xfd0ffc0f,0xfe0ffc0f,0xfd0fff0f,0xff0ffe0f,0xffe0f,0xb40eaf10,0x30eb00e,0x4102010,0x5100610,0x6100710,0x8100710,0x8100910,0xde100a10,0xe010e110,0xb100d10,0xf100e10,0xe100d10,0xe100f10,0x11101010,0x10100f10,0x10101110,0xe6101310,0x8210800e,0x140ff710,0x150ff810,0x16101710,0x15101810,0x18101610,0x19101610,0x1a101b10,0x1a101c10,0x1c101910,0x1b101d10,0x1d101c10,0x1e101c10,0x1d101f10,0x1f101e10,0x20101e10,0xd510d410,0x110d710,0x21100210,0x23102210,0x6b102410,0x77127d12,0x25102612,0xde102810,0xda0ff60f,0x2c102b0e,0x2e102d10,0x2f102d10,0x2e103010,0x2e101710,0x17102f10,0x30101510,0x45101710,0x46100f10,0xfa120510,0x28121a11,0x27102910,0x9a106e10,0xc109810,0xa112d11,0x8d0f8711,0x3a0f8e0f,0x3b102910,0x9b0eaa10,0x9a0ea70e,0x210f9b0f,0x52114f0f,0x3b114c11,0x2b102910,0xf512d010,0x3c12cf12,0x2e102d10,0x2a131610,0x3d131713,0xf7101410,0xb90fd50f,0x240fd80f,0x27122c12,0xb411b612,0x4711b811,0x3d101410,0x8104210,0x19100910,0x13101610,0xd310ed0f,0xf210b710,0xab10c710,0xc012bb10,0x890e7d12,0x8a12bc0e,0xf310fe0e,0x6010f710,0x61123712,0x52128512,0x8c125312,0x890f8a0f,0x6d12630f,0x126a12,0xf90f110f,0x310f600e,0x540f5f0f,0x4f135013,0x64106513,0x9c105a10,0xaa12ab12,0x180ed712,0x30120d12,0x310f0211,0x10112e11,0x1b112f11,0x1e110711,0x5111e11,0xeb111f11,0x61115f0e,0x58111b11,0x71111911,0x4e106a10,0x57106510,0x5106710,0x1f112011,0x360f8111,0x910f630f,0x94109010,0x930e9410,0xdf0e980e,0xe111e711,0x9b109811,0xc6109510,0xc410fa10,0xcd10e910,0xe210cf10,0x7b107e0e,0x7b108010,0x63107f10,0x64135f13,0x63109d13,0xc2106610,0xc112d612,0x81106f12,0x83107a10,0x6f108110,0xed108210,0x830ee60e,0x81108210,0x83108410,0xa9106f10,0xa711ab11,0x12112f11,0x16112211,0x46115711,0xf60ff011,0x3f0fee0f,0x40113d11,0x70108511,0xa0107210,0x67106510,0x83108210,0x8a108510,0x72108510,0x51112110,0xc6114f11,0xc912df12,0xf6108c12,0x750eed0e,0x89108d10,0xc4108b10,0x740ec30e,0x72108a10,0x74108f10,0x87106410,0x6810a510,0x850ef610,0x19108a10,0xc812e20f,0x76109012,0x37107710,0x20101f10,0xfd0f2b10,0x480f2c0e,0x63106610,0x30eb410,0x320e960f,0x2d113011,0xae0ea611,0xc00eab0e,0xc110bf10,0x6d105110,0xfa106c10,0x1a120611,0x6109b12,0xe40f080f,0x2f12100e,0x1d113d12,0x1a112511,0x19103710,0x61104910,0x58106e10,0x19111811,0x74127111,0xa1126d12,0x66109d10,0x7131710,0xa3130513,0x9d109e10,0x710a310,0x110f060f,0x28111611,0xc40ec311,0x250f9b0e,0x26110411,0xce10a211,0x680ee00e,0x6610a110,0x6b10a410,0x87106c10,0x6a106810,0x6a104b10,0x7106810,0xa1109d0f,0xfd111510,0x9c10fc10,0x9b109e10,0xa610a810,0x61106c10,0x60115e11,0x78109311,0xa9107e10,0xce0ec010,0x2411110e,0x3112311,0x720efc0f,0xa90ec013,0xab109610,0xaa10ac10,0xad10ae10,0xad10af10,0xaf10aa10,0xae10b010,0xb010af10,0xb110af10,0xb010b210,0xb210b110,0xb310b110,0xb210b410,0xb410b310,0xb610b310,0xd310b710,0xba10b910,0xbb10b810,0xba10bc10,0xbc10bb10,0xbd10bb10,0xbc10be10,0xbe10bd10,0xbf10bd10,0x47114b10,0xe114a11,0xa121912,0xbf10c112,0xf010c310,0xf112200e,0xc510c40e,0xc710c610,0xc810c610,0xdc10d910,0xcb10db10,0xce10cc10,0xcb10cd10,0xcf10ce10,0xce10cd10,0xce10cf10,0xd110d010,0xd010cf10,0xd010d110,0xdb10d210,0xc312d712,0xb610b512,0xd610d510,0xd810d710,0xd810d910,0xdb10da10,0xdd10dc10,0xdd10de10,0xe010df10,0xe210e110,0xe210e310,0xe310e410,0x7a13790e,0xb210f513,0x2910f710,0x40114411,0xfb103e11,0xc40ffd0f,0x9410910e,0xff104110,0x2210000f,0xd20ec60f,0x79128f0e,0x40126812,0x6100510,0xcb10e610,0x4410e910,0x42114811,0x15121e11,0x970ef112,0xb011a711,0x21110111,0xda114d11,0xc10f170f,0x4610120e,0x9100f10,0x110ef90f,0x2110220f,0x5102310,0x4911450f,0x1c0ef411,0x600ef50f,0x6d136c13,0x20116013,0x40114e11,0x42100810,0xc610fb10,0xac10c710,0xb811aa11,0x70108411,0xd9108510,0xf812ed12,0x5f107012,0xb4107210,0xd30fd20f,0x5510670f,0x90106910,0x91116d11,0xb111811,0x25111911,0x3d114011,0xb911ad11,0x6911a211,0x6b105310,0xb810b910,0xd210b710,0xd311bb11,0x7b107c11,0x25107810,0x2111d11,0x14120711,0xc9121512,0x5b11560e,0x52107311,0x61107510,0x810f5e0f,0x8c0e9c0f,0x750e970e,0x77137413,0x7d107f13,0x59107910,0x7c107d10,0x90edd10,0x1a121112,0x2132613,0x940f9213,0x160f960f,0x18110d11,0x2f121d11,0x35121012,0x2e113411,0x30113611,0x35113411,0x2f112e11,0x950ec011,0x37109910,0x2f113511,0x2f113711,0x38112211,0x360eb911,0x37113911,0x8d112211,0x9b0e9a0e,0x2311390e,0xdd112411,0xef10f010,0x3a113c10,0x3c113711,0x39113711,0x5a115711,0xc5114611,0x7f137e0e,0xa2109f13,0x71108f10,0x86108910,0x39113c10,0x41113b11,0x24113b11,0x1c132f11,0x32132313,0x610f5e0f,0x3c11430f,0xe0113b11,0x92108e0e,0x27114110,0x43112811,0xba0ec811,0xe911420e,0x9d0ee80e,0xa30e9a0e,0x5e107a0e,0x46106f10,0x16112811,0xa70ece11,0xc810a910,0x41113b0e,0xb211b311,0x4711ae11,0x2b112a11,0x58115f11,0xa9115c11,0xa810a610,0x6d10a810,0x6109610,0xa3109e0f,0x2114b10,0x4e0ee90f,0x4c114d11,0x4b0f0211,0x74113111,0x460f520f,0x4913550f,0x71134d13,0x73105010,0x7b0ee210,0x340ee610,0x640f610f,0x66104b0f,0x3b104a10,0x390f5a0f,0x6912670f,0x52127412,0x500eca11,0x12101311,0x8d101110,0x89108b10,0x17115310,0x64111a11,0x8f109f10,0x3c0eba10,0x88114311,0x89108610,0x2b133210,0xec134013,0xd910d810,0xe210f110,0x5910e310,0x1a115511,0x56115b11,0xa5115511,0xc3108810,0x1c11590e,0x5b115d11,0xc90ecd11,0xa010690e,0x2106710,0x112f913,0xeb115a13,0x4d0f050e,0x97106e10,0x1e115c10,0x111f11,0x21111411,0x1c113e11,0x46111d11,0x28114511,0x550ecd11,0x95115911,0x960eb00e,0xa010a70e,0x6010a410,0x1f115e11,0x2d114a11,0x61113111,0xeb0edb11,0x480ee90e,0x96114b11,0x95109710,0x610edb10,0x54114e11,0x55124512,0x71118012,0x56118111,0x57124912,0x58107712,0x4e107810,0x50124612,0x4c125212,0x78125312,0x810f540f,0x50134d0f,0x8e134b13,0x8f116811,0x67118811,0x5e118911,0x5f123f12,0xe310e612,0xed10c910,0xe612fa12,0x3b125c12,0x8b125d12,0x8c116211,0xca10c911,0x7a10cb10,0x790e7b0e,0x9710980e,0x7b106e10,0x9d11ad11,0x95119411,0x17119811,0x1a10fe11,0xf510ad11,0x9d10aa10,0x9811a111,0xa6118d11,0x5d11a011,0xe8113f11,0x9711a40e,0x8a119611,0x890f880f,0x95118e0f,0x9211a611,0xa411a711,0x9911a811,0x73119f11,0x6e127912,0x412f912,0x7c12fa13,0xb511b711,0x7b137d11,0xee137c13,0xf011f611,0xae117d11,0x9b11b711,0x8b118a11,0xa5119e11,0x85119a11,0x89125412,0x8411b112,0xb1118511,0x97118611,0x92119911,0x5a119e11,0x6c126b12,0x480f7612,0xab0f750f,0xb011ac11,0x7e11af11,0x4a117f11,0x4c134913,0xaf12b113,0x8212aa12,0xb811ac11,0x68127311,0xa2127c12,0xad119d11,0xa70efc11,0xb90e9b0e,0xa211a111,0xbe11ce11,0xea11cf11,0x1f12210e,0x6f125d12,0x70127a12,0xde137413,0x6a12680e,0x81126912,0xb411b811,0x64127011,0x70126512,0x71124f12,0xb911c012,0xc311b611,0xc60fa50f,0x43124f0f,0x2d124e12,0x380f660f,0xd711cb0f,0xc711e011,0xc311bc11,0xc711c811,0xc811c311,0xc411c311,0xc811c911,0xc911c411,0xbd11c411,0xc911ca11,0xca11bd11,0xba11bd11,0xca11cb11,0xcb11ba11,0xc611ba11,0xcb11cc11,0xcc11c611,0xc211c611,0xcc11cd11,0xcd11c211,0xbf11c211,0xcd11ce11,0xa511bf11,0xa6129b12,0xc511d112,0xcf11d211,0xd011c011,0x9912a011,0xd012a112,0xd111c111,0x9f129311,0xc7129e12,0xbc11d411,0x7f11b311,0x82118011,0x6c136d13,0x4d125813,0xce125912,0xcc12ef12,0x79118412,0xf9118511,0xfa11ef11,0xf211ed11,0xd911ec11,0xe211d811,0xdc11df11,0x7511e011,0x7712ae0e,0xf811f10e,0xe311f311,0xe511de11,0xd511f411,0xe811f711,0xd711e411,0xe611dd11,0x6111d611,0x9c106210,0xbc0e6810,0xb912b612,0xbe12bf12,0xe911ee12,0xf111da11,0xf211ec11,0xb712b011,0x540e6b12,0x76107710,0xf011f410,0xe411f611,0xd711e711,0xac0e8111,0xf912ba12,0xeb11f511,0xf711ed11,0x9411d511,0x950f900f,0x311f10f,0xed120212,0x120111,0x3411e612,0xf5123012,0x4120511,0x11f712,0xde11ff12,0x22122a11,0x3011e312,0xdf122a12,0x26122911,0x2211d912,0x88122312,0xa40e8a0e,0x670e8a0e,0x230ea40e,0x6120f12,0xd7120c12,0xdd120d0e,0xe0edf0e,0x2a110812,0x91112911,0x8b0e960e,0x8d0e7c0e,0xfe0e7b0e,0xfd121311,0xef11d811,0x1211e211,0xdd0ed512,0x1812050e,0x14120412,0x150edf12,0xa20ea312,0x40e900e,0x3121612,0x33110e12,0xff113211,0xfe121711,0x19120011,0xb11ff12,0x16121112,0xd5120b12,0xe12120e,0x140edf12,0xad0e7212,0x290e710e,0x26122412,0x16120b12,0x86121812,0x80127812,0x6121a12,0x26120f12,0x25121b12,0xd121a12,0xa3120512,0x9f0e990e,0x1a120c0e,0xc120f12,0x1a120d12,0xd50ed712,0x69120b0e,0x670e950e,0xad0e6d0e,0xa0e6f12,0x2b112c11,0xf811f511,0x2a11eb11,0x22122812,0xa20e8212,0x100e800e,0x1d120f12,0xea122712,0x2e121f0e,0x29122b12,0xb410f712,0x7010b610,0x6e0eb60e,0x7a0f510e,0x2f0f800f,0xe40eea12,0x3212340e,0x5d123012,0x7d107910,0xaf0e6c10,0x740e6a0e,0x720eb20e,0x1c12250e,0xf8123412,0xf90ffa0f,0x780e760f,0x350eb70e,0x33122012,0xfc123512,0x6e120811,0x6c0eb30e,0x35121e0e,0x1e120812,0x35122012,0x2e11e112,0x73122912,0x720e740e,0x7e0e7d0e,0xdd0e7c0e,0x34122511,0x2611dc12,0xe4122512,0x2e123311,0x800e7f12,0xb40e7e0e,0x710e7212,0x8312ba0e,0x380e820e,0x42125a12,0x48125012,0x53125112,0x54124412,0x36125f12,0x7f126012,0x80117011,0x4b125711,0x82125812,0x83117511,0x74117c11,0x5d117d11,0x5e123d12,0x6b118a12,0x61118b11,0x62123a12,0x920f9712,0x630f960f,0x64123e12,0x66118d12,0x62118e11,0x63123c12,0x250ed212,0x6f0f220f,0x70106010,0x82124f10,0x69127112,0x6d126a12,0x9b119e12,0x4a119f11,0x43103e10,0x66127910,0x8c126e12,0x8b0e920e,0xdc12c80e,0x5512c712,0x8a128d12,0x5c127a12,0x8b125d12,0x50124e12,0x76127d12,0x9b127a12,0x9f118c11,0xad0eae11,0x660eb20e,0x7d127712,0x4d114f12,0x54112111,0x89128a12,0x58128712,0x87125912,0x6c125a12,0x4f109712,0xf4104d10,0xf312f212,0xa0118c12,0x78119f11,0x6c128712,0x71127512,0x62128212,0x7b126a12,0x83127f12,0x8e128912,0x75127412,0xf810c212,0x6010c010,0x35105e10,0x81125610,0x88128d12,0x84128c12,0x8d127e12,0x95128112,0x970ed60f,0x7f12800f,0x83127e12,0x88128e12,0x15115112,0xbb115311,0xd311d411,0x1d10ff11,0x64111c11,0x6e118611,0x6c137311,0x8f136e13,0x90116a11,0x98129d11,0x9e129412,0x94129d12,0x94129e12,0x99129312,0xa112a212,0x8f12a712,0xa612a812,0xa7129612,0xa9128f12,0xa312a812,0x9212a212,0x9212a312,0xa4129112,0x9112a312,0x9112a412,0xa5129a12,0x9a12a412,0x1c132312,0x9f132413,0xa0129712,0x88128b12,0xdf127512,0xdb0fe70f,0xa912aa0f,0xaa129012,0x9c129012,0xff111a12,0x9d111c10,0x9812ab12,0x3114d12,0x63110111,0x48104910,0x41126410,0x34126512,0x2e113311,0x770e7811,0xc212ae0e,0xca0faa0f,0x6812b00f,0xb412b60e,0xb512b212,0xe511d912,0x6d11de11,0xb70e6b0e,0x730e7512,0xe312af0e,0xe611d611,0xca12f211,0xb312cb12,0xad0e6f12,0xdb11e812,0xe911ea11,0xda11db11,0xba12b911,0xbb12ac12,0xb10e7a12,0xb512b312,0xef12b212,0xf0122c0e,0xbe0e850e,0x3e12bf12,0x1c115d11,0xaf12b411,0x810e7312,0xbd0e7f0e,0x870e8912,0x8512b80e,0x8712b80e,0x1510310e,0xc4101810,0x270f0f12,0xc412c10f,0xc60f2712,0x1812c912,0xc512c90f,0xc70f1812,0x1812c612,0xcd12ca0f,0xca0f1a12,0xcb0f1a12,0x1912cd12,0xcf0f1a0f,0x1012d212,0xcf12d00f,0xd00f1012,0xd10f1012,0xce12d212,0x910f1012,0x980f970f,0x2c10290f,0xd6102b10,0xc112c412,0xd612d312,0x5c12d912,0x74106410,0xd612d510,0xd712d312,0xc312c212,0xf0122b12,0xc4122c0e,0xa8119211,0xd812de11,0xdb12da12,0xda12de12,0xa311a412,0xde119e11,0xe012dd12,0xc612dc12,0xdb12c712,0x50114c0e,0x1f123211,0x90122112,0xe2107e10,0xe112dd0e,0xdc12e012,0xdd12e112,0x9104412,0xdc100b10,0xe112e212,0x77118312,0xd6118411,0xd410ea10,0x412fb10,0x26130513,0x29110611,0x5e137311,0x47137113,0x4d134813,0x640f2d13,0x280f5c0f,0xfd0ef20f,0xb911ae0e,0xee11b511,0xf312f812,0xf312ee12,0xf012ef12,0xef12ee12,0x8b0f8612,0xf10f870f,0xca12cd12,0xf112e312,0xc412f412,0xf12d512,0xf112e40f,0xf412e312,0xe912f312,0xef12f212,0x3b12f312,0x3c102d10,0xd212f510,0xee12cf12,0xf812f512,0x2f132012,0xf0132313,0xee12f512,0xd012f612,0x1212d112,0x20132e13,0x5d0f3013,0x4e0f5e0f,0x52135013,0x3e0ff713,0xc9103d10,0xc70fa60f,0x812ff0f,0xf3130013,0x3120411,0x5f126f12,0xff126e12,0x1130212,0xfc12e513,0xfd12fd12,0x7130612,0x25103613,0xee102610,0xba10b810,0x9311a110,0x80119411,0xb311b411,0x680e6911,0x7e12b00e,0x7f117811,0x30131b11,0x16132813,0x28131b13,0x28131613,0x17132913,0x2b132a13,0x17130d13,0xd132b13,0x2c132b13,0xc133313,0xc130913,0x10133813,0x3a131413,0xe8131313,0xff12fe12,0x1c131b12,0x65133013,0x4f124012,0x19103212,0x58103510,0x57138813,0xb510e813,0x4b10d410,0x55134e13,0x10120c13,0xe30ed712,0xe412e212,0x53135112,0x59135413,0x84138513,0xa312a213,0x8812b812,0x890f8d0f,0x1f121b0f,0x86121c12,0x97119611,0x5e135711,0xbe135b13,0xbc10f810,0x62137710,0x64136313,0x66136513,0x66136413,0x64136313,0x65136113,0x67136113,0x61136513,0x68135d13,0xa811a613,0x5c119f11,0x69136a13,0x5c135d13,0xc7136913,0xab10ac10,0x6d136010,0x5b136b13,0x6e135e13,0x5b136c13,0x5f136e13,0x6f136213,0x5f135e13,0x70136f13,0x71137213,0x6f137413,0x4136213,0x3100510,0x56115310,0x70115211,0x30ede13,0x5e13710f,0x72136f13,0x71137313,0x71137413,0x75136f13,0xde0efa13,0x7713760e,0x67137813,0x65137813,0xee137613,0x790efa0e,0x67137813,0x76137913,0xee137813,0x7913760e,0x63137713,0x78136613,0x66137713,0x75137613,0x78137713,0x65136613,0xfa137613,0x7a13750e,0x61136713,0x7a0ee313,0x7d137b13,0x6a136913,0xa30fc413,0x7b0fa20f,0xe30ee513,0xe5137e0e,0x7c137d0e,0x69135d13,0x7a137b13,0x7d137c13,0x69137c13,0xd412d513,0x7f12f612,0x7d137e13,0x690f0f13,0x80116711,0x810ec513,0xfc138013,0x800ec50e,0x82138113,0x80138313,0x19138213,0x1b110911,0x2104311,0x5d100110,0x52136113,0x8e0e7b13,0x860e790e,0x71106a10,0x88138410,0xcd138613,0x1912e412,0x5813860f,0x56135913,0x87138813,0x85135313,0x89135a13,0x56134a13,0xed108c13,0x2410820e,0x47132713,0x47132413,0x21134513,0x45132413,0x45132113,0x1e134213,0x42132113,0x42131e13,0x22134313,0x43131e13,0xe012e513,0x2612e912,0x46132513,0x46132613,0x27134813,0x48132613,0x48132713,0x11134713,0x3b131513,0x3b131113,0xf133713,0x37131113,0x37130f13,0x18133613,0x36130f13,0x18131913,0x18133d13,0x3d133613,0x3d131913,0x1a133e13,0x3e131913,0x3e131a13,0x1d134113,0x41131a13,0x3a113513,0xe113611,0x34133913,0xe130b13,0xb133413,0x32133413,0xb130a13,0xa133213,0x31133213,0xa130913,0x9133113,0x33133113,0x6b138113,0xda136d13,0xd612d912,0xd112d512,0x100f0f12,0x14133c13,0x13130e13,0x13133913,0x39133a13,0xd8138a13,0x8b0ed90e,0xd80f0413,0xff138c0e,0x8b0f040e,0x4138c13,0xe7138d0f,0x8c0eff0e,0xff138d13,0xd9138a0e,0x8d0ee70e,0xe7138a13,0xd8138d0e,0x8f138a0e,0xbf0ee113,0x8f138e0e,0x900ebf13,0xe10ec713,0x90138f0e,0x910ee113,0xc70eb813,0x9113900e,0x8e0ec713,0xb80ebf13,0x8e13910e,0xf50eb813,0xf30f1e0e,0xb30e6f0e,0xf40e7012,0xff11f711,0x6b12b011,0xbb0e6a0e,0x7c0e7d12,0xb90e830e,0xbe12be12,0x840e8512,0x6f0e6d0e,0xee0e6e0e,0xfd11f011,0x870e8511,0xea0e860e,0xfc11e911,0x40ed811,0xec0ed50f,0x211f111,0xba0e8112,0x870e8212,0x880e890e,0x770e750e,0x810e760e,0x79107f10,0xf411f010,0x6b11fe11,0x6c0e6d0e,0xe812330e,0x7811ea11,0x790e7a0e,0x711fb0e,0x38120812,0x27102610,0x920e8810,0x800ea10e,0x81107f10,0x980ea010,0x890e9e0e,0x88128312,0x84128812,0x30128512,0x2d123212,0x5100312,0x3f103f10,0x20103910,0x7a127d10,0x6f126f12,0x66126e12,0x690ea912,0x980e6a0e,0x900e930e,0x820e900e,0xfd0e830e,0x7121311,0x92108f12,0x1d108e10,0x22122312,0xf80f0112,0x1d0f130e,0x44134113,0x390f3b13,0x370f2f0f,0x3c0f350f,0x2f0f3b0f,0x550f370f,0x2a0f2b0f,0x3b0f2a0f,0x370f370f,0x3e0f3c0f,0x410f450f,0x2a0f430f,0x3e0f370f,0x430f450f,0x2a0f440f,0x450f3e0f,0x550f500f,0x4b0f2a0f,0x530f560f,0x500f530f,0x2a0f2a0f,0x440f450f,0x440f2a0f,0x470f460f,0x530f4b0f,0x470f4c0f,0x2a0f530f,0x520f460f,0x870f4e0f,0x520f8e0f,0x8e0f4e0f,0x8e0f520f,0x4f0f4d0f,0x530f4c0f,0x480f420f,0x490f490f,0x530f4f0f,0x4d0f520f,0x2a0f510f,0x510f520f,0x490f420f,0x3d0f530f,0x420f400f,0x3d0f3f0f,0x530f420f,0x510f2a0f,0x510f530f,0x3f0f360f,0x530f420f,0x380f2d0f,0x3a0f3a0f,0x530f3f0f,0x360f530f,0x540f540f,0x570f4a0f,0x570f540f,0x3a0f580f,0x540f530f,0x2d0f340f,0x320f3a0f,0x3a0f340f,0x580f540f,0x310f330f,0x2e0f590f,0x310f330f,0x330f2e0f,0x300f2e0f,0x3a0f320f,0x330f540f,0x320f300f,0xba10f40f,0xf210bc10,0xaa10ab10,0x2121110,0x70120312,0xb212b30e,0x46134312,0x33132513,0x31122012,0xa20e8012,0x7e0e9f0e,0x990e9f0e,0x7d0f4f0e,0x760f770f,0xb50eac0e,0x28122f0e,0x2d122d12,0x21123212,0xa10e8612,0x730e9c0e,0x83137213,0xde10f013,0xdc10e010,0xde12dd12,0xdb12de12,0xc212df12,0xfa10c410,0x90129c10,0x67126712,0x8e127412,0x83128e12,0x7f127f12,0x78128012,0x77127812,0x66126612,0x9b129612,0x9b126612,0x98129a12,0x67129c12,0x67129812,0x78128e12,0x9a126612,0x9a127812,0x94129112,0x8e129812,0x94129312,0x78128e12,0x92129112,0x78127f12,0x95129212,0x8e129312,0x8e129512,0x7f127f12,0x99129212,0x95129712,0x81127f12,0x73117111,0xb70fb511,0xc50fd60f,0xc210c410,0xc110c210,0x1210c310,0x23111311,0xb90fd811,0x830fba0f,0x580f840f,0xad0fbc0f,0x20fae0f,0x9121112,0xd912d312,0xd212f712,0xb50fb30f,0x6411870f,0x56116511,0x790f4b0f,0x2c0f2b0f,0xfb0efb0f,0x290f200e,0x2a0f290f,0xea0f2b0f,0xfc12fb12,0x6c117b12,0x52116f11,0x76105410,0x53106b10,0x6b105110,0x5c136a13,0x910f8f13,0xec0eec0f,0x900f090e,0x930f900f,0x8f0f920f,0x900eec0f,0x4d12590f,0x89124212,0x69116711,0x84134f11,0x93138513,0x9511a611,0xa311a511,0x63118811,0x510f360f,0x7a137c0f,0x87136813,0xa3118811,0xa90fab11,0xe80fc90f,0x112ff12,0x120a13,0xec120112,0xe90fe20f,0x98119c0f,0x6f119011,0x480f750f,0x6d11910f,0xe3116c11,0xe012f412,0xdd10db12,0xef10ef10,0xd910ec10,0xb10fd010,0x5d0fb20f,0x590f2e0f,0xb60eb30f,0x230eab0e,0xd8120612,0xfd12e511,0x3112fe12,0x2e103c10,0xad11b510,0x89117a11,0x9a118a11,0x34103611,0xb0102210,0x8311ac11,0x62126111,0x71127b12,0x440f720f,0x6f117a0f,0x51117211,0x84125212,0x712fd12,0x5b130813,0x76125c12,0x51125012,0x86128c12,0x57128112,0x79118512,0x55116e11,0x47124512,0x61126012,0x51127312,0x4a124812,0x4d138712,0xcf134913,0xaf0fb00f,0x780f4a0f,0x6e0f830f,0x450f410f,0x3f0f6c0f,0x670f3a0f,0x380f3a0f,0x512fb0f,0x7f130613,0x6a137d13,0x560f5313,0x620f820f,0x370f350f,0xe612ea0f,0x6512fa12,0x2f0f370f,0x440f460f,0x3d0f720f,0x6d0f6a0f,0xe712ed0f,0x8d130112,0x7f127e12,0x89127f12,0xd2128a12,0xf012f512,0x4c0f4712,0xa00f770f,0xbd0fc10f,0x420f6f0f,0xf50f400f,0xe50fea0f,0xa00fc10f,0x410fa70f,0x710f6e0f,0x9e0fbf0f,0xc80f9c0f,0xd611c911,0xe511d611,0xe211e211,0xeb11ef11,0xf811eb11,0xf211f211,0xf611d511,0xda11f611,0xf611cd11,0xce11cd11,0xd611c811,0xc711e211,0xe211c811,0xce11f611,0xf611cf11,0xd011cf11,0xe211c711,0xd411eb11,0xeb11c711,0xf611f211,0xf211d011,0xd111d011,0xd411d311,0xf211eb11,0xd211d111,0xd311d211,0x4e11eb11,0x7e0f520f,0x3b13440f,0xc0131513,0x7f12bd12,0xf612f50e,0xd412d412,0xf812f712,0x33103412,0x72100110,0x5f126e12,0x230ed112,0x230f240f,0xd60ed10f,0xa50fc60e,0xd50fab0f,0xb80fd70f,0x150f010f,0xea0f160f,0xed0ff50f,0x5f10720f,0x4b105c10,0x730f470f,0x8d0f8c0f,0x8f0f850f,0x91138e13,0x9f0fa113,0x9d0f9d0f,0xa30fa20f,0xa40fa30f,0xa30f990f,0xa60f990f,0x9d0fa10f,0xad0fa30f,0xaa0fa80f,0xa10faa0f,0xa30fa30f,0xa90fa60f,0xab0fa90f,0xa70fa50f,0x9c0fa00f,0xa50fa90f,0xaa0fa70f,0xa90fa30f,0xad0fae0f,0xb10faa0f,0xb00faf0f,0xae0fb00f,0xa90faa0f,0x9c0fa70f,0x9c0fa90f,0xb00f9e0f,0xa90faa0f,0xb10fb20f,0xac0fb00f,0xb00fb20f,0x9e0fa90f,0xba0fba0f,0xb60fb90f,0xb60fba0f,0xac0fb80f,0xa90fb00f,0xb30fb50f,0xb40fb40f,0xa90fac0f,0xba0fa90f,0xa90fb80f,0xbb0fb80f,0xb50fb70f,0xb40fb40f,0xbb0fa90f,0x74117d0f,0x8c117611,0x63116211,0xf10ff211,0xd90fe60f,0x9e0fba0f,0xbd0fbf0f,0xc30fc10f,0xcb0fc60f,0xc10fbf0f,0xd50fc30f,0xd90fd80f,0xbf0fd90f,0xc30fc30f,0xc90fcb0f,0x9a0fc70f,0xc30f170f,0xc70fc90f,0xd50fd70f,0xd90fd90f,0xc70fc30f,0x170fc70f,0xc50fc50f,0xbe0fc40f,0xc00fbe0f,0xca0fc20f,0xbc0fc80f,0xbe0fc50f,0xca0fc20f,0xcd0fbc0f,0xc20fc50f,0xd90fca0f,0xc50fc70f,0xd70fcc0f,0xd20fd90f,0xd60fd40f,0xd90fcc0f,0xd20fc50f,0xcc0fd60f,0xd20fd30f,0xc50fcc0f,0xcd0fca0f,0xce0fcf0f,0xc50fd00f,0xcf0fcd0f,0xcc0fd30f,0xcf0fc50f,0xd10fd00f,0xd30fd10f,0x110fc50f,0xed10eb11,0x240ed310,0x9f0f250f,0xbe0fc00f,0xaa0fca0f,0x5b0fa80f,0x390f2f0f,0xee0fed0f,0xf30fe00f,0x1f0f1e0e,0x9f0fc00f,0xbe0fa10f,0xb0f0c0e,0xde0fdc0f,0xcb0ecb0f,0xdd0f120e,0xdf0fdd0f,0xdb0fdb0f,0xcb0fdc0f,0xf60fe30e,0xe30fdc0f,0xdb0fdc0f,0xe10fea0f,0xe00fe00f,0xdb0fe30f,0xe60fe70f,0xe00fe40f,0xe70fdb0f,0xea0fe50f,0xe80fe00f,0xe00fe50f,0xe70fe00f,0xe40fe40f,0xe20fe90f,0xe80fe20f,0xb20fe00f,0x7112b412,0xed10d20e,0xeb10eb10,0xd110cf10,0xe80ff310,0xec0fe20f,0xef0ff40f,0xf10fef0f,0xdf0ff20f,0xf00fdd0f,0xf20fef0f,0xec0fdf0f,0xdf0fef0f,0xf00fdf0f,0xee0fee0f,0xf50fed0f,0xeb0ff50f,0xf30ff30f,0xdf0fec0f,0xee0fdf0f,0x7a0ff50f,0xae0e780e,0xe40fef12,0xa70fe60f,0xb50ea80e,0x8b138c0e,0xd0ed813,0x44104510,0xe0ebd10,0xbc0f0d0f,0xe0f0b0e,0xbe0f9d0f,0xcd0fc40f,0xb00fae0f,0xe50feb0f,0xe40fe80f,0xf40fef0f,0xef12cc0f,0xe912f212,0xfb11ee11,0xdf12c911,0xb112db12,0xce0fd00f,0x3d0f6a0f,0x700f3f0f,0x3e0f450f,0x38125b0f,0xc8123912,0xad0fa80f,0x91119c0f,0x59117b11,0x78107c10,0x2d132c10,0x35131213,0x690f620f,0x3e0f6b0f,0xdd0f3c0f,0xe011d611,0x90118f11,0xe119811,0x13121412,0x9100b12,0xc100a10,0xb100e10,0xa90eb010,0xaf0eaf0e,0xb40eb30e,0xdf10de0e,0xe610e110,0x80107b0e,0xd610d710,0xd410d410,0xd510b510,0x6c127810,0x6b126b12,0x7d127612,0x78127712,0xde126b12,0xf60fdc0f,0xd10450f,0x5100f10,0xfa11f912,0x2a102811,0x27102910,0x28102610,0x61106e10,0xc109a10,0x2d113211,0x850f8711,0x3a0f8d0f,0x29102710,0x8e0eaa10,0xa70e9b0e,0xaa0eac0e,0xc70f9a0e,0xa60fa60f,0x9b0f990f,0xc60f9b0f,0x9a0f210e,0x9b0fa60f,0x51114f0f,0x52115211,0x4c115011,0xf612d011,0x1612f512,0x2a132913,0xb60fd513,0x270fb90f,0x24121b12,0x2b122412,0xb8122c12,0xb611aa11,0xb311b611,0x4711b411,0x14101210,0x8124b10,0x4b100710,0x5100712,0x4d0f1a10,0xcb124b12,0x4b0f1a12,0x5124b12,0xcb100410,0x4124b12,0xcb12cc10,0xcc100412,0x20100412,0x6c116f10,0xd812ce11,0x77117910,0xd810da11,0xda117710,0x75117710,0xda10dc11,0xdc117510,0x73117510,0xdc10dd11,0xdd117310,0x71117310,0xdd10df11,0xdf117110,0x70117110,0xdf10e111,0xe1117010,0x78117010,0xe110e211,0xe2117810,0x76117810,0xe210e411,0xe4117610,0x74117610,0xe410ca11,0xca117410,0x72117410,0xca10cc11,0xcc117210,0x6f117210,0xcc10ce11,0xce116f10,0xce116f10,0xce10d012,0xd212ce10,0xce10d010,0xd210d312,0x1b12ce10,0xbf10c30f,0x1c0f1e10,0x1d0f1d0f,0xbf0f1b0f,0xbf0f1d10,0x1f10bd10,0x1d0f1e0f,0x290f280f,0x200f200f,0x1d0f1f0f,0xbd0f1d0f,0x1d10bb10,0xb910bb0f,0x200f2810,0xa0f1d0f,0x1d0f280f,0xb90f1d0f,0x1d10d310,0xce10d30f,0xa0f1312,0x160f1d0f,0x130f150f,0x160f110f,0x130f130f,0xce0f1d0f,0xce0f1312,0x912cc12,0x130f110f,0x900f950f,0x2d0f090f,0x95102c10,0x2d102f0f,0x950f9510,0x130f090f,0xcc0f130f,0x13102012,0x1e10200f,0x95102f10,0x170f130f,0x13102f10,0x1e0f130f,0x13101c10,0x19101c0f,0x17101610,0xb70f1310,0xed10ee10,0xd210ed10,0xf210d310,0xc710fb10,0xb112bb10,0x8912c012,0xbc12b80e,0xe510f112,0xe610e610,0xeb10e910,0x1110eb10,0xeb111311,0x12111310,0xf110f011,0xec10e610,0xf010ef10,0xea10e710,0xf710ec10,0xe710e810,0xf510f310,0xfb10f710,0xf310f210,0xfa10f910,0xf610fb10,0xf910f810,0xf410ee10,0xf10f610,0xee10ed11,0xf110d10,0xe610ee11,0x1210eb10,0x1210e611,0xd111011,0xf610ee11,0xd110b10,0xe610f611,0xe111010,0xe610f011,0x9110e10,0xf6110b11,0x9110710,0xf010f611,0xc110e10,0xc10f011,0x7110a11,0xf910f611,0x7110510,0xec10f911,0xa10f010,0xa10ec11,0x3110811,0xf9110511,0x3110110,0xec10f911,0x6110810,0x610ec11,0x1110411,0xfb10f911,0x1110010,0xe710fb11,0x410ec10,0x410e711,0x110211,0xf310fb11,0x10fd10,0xf710f311,0x210e710,0x210f711,0xfc10ff11,0xf310fd10,0xff10f710,0xfe10fe10,0xf310fc10,0x36126010,0x85123712,0x52128412,0x8b0f8c12,0x630f8a0f,0x6d126412,0x160f0012,0x600f110f,0x310f590f,0x51134f0f,0x54135413,0x50135213,0x98129c13,0xd712ab12,0x18120b0e,0x36113012,0x2e0f0211,0x10110e11,0x9111b11,0x1e110711,0x5110711,0x5a0eeb11,0x1b115f11,0x58115c11,0x5a106511,0x5105710,0x20110311,0x540f8111,0x910f360f,0x90108d10,0xa30e9410,0xdf0e930e,0xe711e011,0x9a109811,0x9b109b10,0x95109910,0xfb10c610,0xcf10fa10,0xe910eb10,0xcb10e910,0x6310cd10,0x5f136213,0x9c109d13,0xc2106310,0xd612d712,0x2712c112,0xa912c20f,0xab11aa11,0x10112f11,0x16111211,0x57111811,0x1b0ff011,0xdc0edc0f,0xf60eda0e,0xe30ff60f,0xf00fee0f,0xf60edc0f,0x4211400f,0x3f113f11,0x3d113e11,0x9f10a011,0x85106510,0x82108c10,0x84108310,0x21108510,0x51111411,0xdc12c611,0x8912df12,0x75107310,0x76107510,0x74108d10,0x8a108e10,0x88108710,0x8e10a510,0xf60efe10,0x8c0ef60e,0x8a108510,0xf6108e10,0xe40f190e,0x7712e212,0x90109310,0x8d109010,0x20107610,0x37103910,0x1d103710,0x2b101f10,0xfd0f550f,0x4a10480e,0x96106610,0xb00eb10e,0xab0eb40e,0x960f030e,0xb40eb00e,0x8b0f030e,0x320e960e,0x30113311,0x31113011,0xa6112d11,0xae0ea50e,0xbe10c00e,0x5110bf10,0x6d104f10,0xd811fa10,0xe4120611,0x100ed70e,0x3e113d12,0x1b111d11,0x37101d10,0x35103710,0x1a101910,0x37101b10,0x4c106e10,0x49104910,0x61106210,0x57115810,0x6d111811,0x71127012,0x75127112,0x74127412,0x6d126912,0xa130b12,0x7130713,0x5130613,0x16130513,0x17131713,0x7130b13,0x27112813,0x11111111,0x16110f11,0x520eca11,0xca115411,0xc911540e,0xde0ecb0e,0xbc0eca0f,0xbb0ebd0e,0xcb0ebb0e,0xbb0eca0e,0xc90eca0e,0xbc0ebe0e,0x9b0ebb0e,0xc10ecf0f,0xbe0ec10e,0xbb0ebb0e,0xcd0ec90e,0xcd0ebb0e,0x9b0ed00e,0xbb0ec10f,0xd00ebb0e,0xd30ee80e,0xd20ed40e,0xd30ed10e,0xd10ed20e,0xc60ed20e,0x980f910e,0xd60ed60f,0xc60ed10e,0x380eb90e,0xb9113a11,0xba113a0e,0xcc0ec80e,0xc80ec70e,0xb80ec70e,0xc80eba0e,0xbf0eb80e,0x150ee10e,0xba0eb912,0xb80eb80e,0x150ebf0e,0x150eb812,0x360edf12,0xb80eb911,0xb811360e,0xdd0edf0e,0x40ed50e,0xdf11360f,0x20edd0e,0xdd11360f,0x40edd0e,0x20eff0f,0xff0edd0f,0x20ee90e,0xe90eff0f,0xe70eff0e,0xe90ee80e,0xd90ee70e,0xe30ed70e,0xe80ebb0e,0xd90ee70e,0xe50ee30e,0xe70ebb0e,0x910ed90e,0xc60ed60f,0xed0ee60e,0xe20f910e,0x910ee60e,0x910ee20f,0x940ec60f,0xc60ee210,0xbb0f9b0e,0xd90ed90e,0xc50ee50e,0x70ec50e,0xc50ec20f,0xc30ec20e,0xd90f9b0e,0x940ec50e,0x9b0ec610,0x940ec40f,0x9b0f9b10,0xc30ec50f,0x211250e,0x68110411,0xa110a510,0xa6106c10,0xa410a410,0x6b106910,0x4e104b10,0xa5106a10,0x70ec210,0xa30f070f,0xa1109d10,0x710a510,0x1710fc0f,0x15111511,0xfd111411,0x9a109b10,0x9c109c10,0x9e109d10,0x4e116010,0x61116111,0x5e115f11,0x77109311,0x23107810,0x11111311,0x27111111,0xfc112411,0x8313800e,0x70137213,0xfc0f0313,0x7213830e,0x31114a13,0x4b114b11,0x47114811,0xdd120a11,0xe120e0e,0x19121712,0x310ef012,0xd9122012,0xdc10da10,0xc512c310,0xdb12db12,0xd712da12,0xee0ee312,0xf513790e,0xb210b010,0x26114010,0x29112911,0x44112a11,0x410ffd11,0x3e103e10,0xfb0ff910,0x8b0ec40f,0x109110,0x41104310,0xfd104110,0x220fff0f,0xc60f210f,0x6712680e,0x8f129012,0x66129612,0x90126812,0x79128f12,0x68127c12,0x66128f12,0x40127912,0x5103f10,0xc910e610,0x4210cb10,0x44114011,0x47114411,0x1e114811,0x15120812,0x200ef112,0xb0121e12,0x9711b111,0xa4119711,0xa711a711,0xb011ab11,0x110111,0xc1112111,0xda0ecf0e,0xa40fda0f,0x170fc50f,0xc10f140f,0xc50fda0e,0xf0f170f,0x12101110,0x47101210,0x9104610,0xf90eec0f,0x110220e,0x5102110,0x450ecc0f,0x5a114911,0xf40f0511,0x1c0f1d0e,0x5b13600f,0x60136c13,0x20111f11,0x6104011,0xac100810,0xaa11ab11,0x6f108411,0xf8107010,0xd912f712,0xd812d912,0xde12de12,0xe812e012,0xde12d912,0xe912e812,0xf812f312,0xea12e612,0xe612e912,0xf812e912,0xe812d912,0xed12e712,0xf812e612,0xe712d912,0x7012ed12,0x5f106010,0xb30fb410,0x670fd20f,0x55105710,0x6a119010,0x18116d11,0xb110d11,0x26112511,0xad114011,0xb911b511,0x55106911,0xb9105310,0xb810bb10,0xc511d210,0x7c11bb11,0x7b107d10,0x7e107b10,0x15107810,0x7120812,0x13120712,0xc9121412,0x5611540e,0x50107311,0x72105210,0x6e0f710f,0x6e0f720f,0x740f700f,0x700f720f,0x690f6b0f,0x740f620f,0x6b0f700f,0x6b0f740f,0x650f620f,0x5a0f5b0f,0x620f740f,0x740f650f,0x5a0f650f,0x290f680f,0x740f280f,0x680f5a0f,0x740f7e0f,0x680f680f,0x7f0f280f,0x820f7c0f,0x680f790f,0x7c0f7f0f,0x790f7c0f,0x7c0f730f,0x770f730f,0x860f880f,0x7a0f7b0f,0x7b0f880f,0x7b0f7a0f,0x800f7e0f,0x7e0f7a0f,0x770f7c0f,0x760f7d0f,0x6f0f750f,0x7d0f7c0f,0x800f760f,0x680f7e0f,0x800f630f,0x7c0f680f,0x6f0f760f,0x6d0f6f0f,0x6f0f6a0f,0x6c0f6a0f,0x680f630f,0x830f7c0f,0x810f780f,0x630f810f,0x7c0f7c0f,0x6c0f6f0f,0x660f670f,0x7c0f5c0f,0x670f6c0f,0x830f840f,0x5d0f810f,0x5f0f600f,0x840f5f0f,0x810f810f,0x670f7c0f,0x5c0f670f,0x670f640f,0x610f640f,0x5f0f5d0f,0x5e0f810f,0x810f5d0f,0x670f810f,0x9c0f610f,0x8c0ea10e,0x9e0e8c0e,0x750e970e,0x740ede13,0x7b107f13,0x59107d10,0x7d105b10,0x12121110,0xdd0edd12,0x9120a0e,0x130212,0x2131813,0x19131813,0x3132613,0x1d130213,0x26132513,0x19130213,0x1a131a13,0x26131d13,0x930f9213,0x160f940f,0xd110f11,0x28121d11,0xc0122f12,0x9510960e,0x8e0e9b10,0x8d0e8d0e,0x9a0e990e,0x3b11240e,0x39113911,0x23112211,0xde10dd11,0x5710f010,0x5a115811,0x49115a11,0xc5114611,0x7e0ee50e,0x81137f13,0x9f0ec513,0xa210a010,0x9210a210,0x71108f10,0x89107310,0x30132f10,0x32131c13,0x5e0f300f,0xfe0ee00f,0x92108e0e,0xe010a210,0x4511280e,0x41114111,0x27112411,0x9b0e9d11,0x7a0e9a0e,0x5e105d10,0xa20ece10,0x4510a710,0xc80ecc11,0x430ec80e,0x41113b11,0xc8114511,0xaf11ae0e,0xb311b311,0xb211b611,0x4a112c11,0x47114711,0x2a114411,0x2c112b11,0x5f114711,0x58115a11,0x5e115c11,0xa8115f11,0xa9109610,0xa710a910,0xa810a610,0x6d106c10,0x9b0f0610,0x4e109e10,0x4d112011,0x7e0f7411,0x4d0f520f,0x55134b13,0x4c135513,0x71134913,0x50104e10,0x320f3410,0x4b0f610f,0x66106810,0x680f3b10,0x670f5a0f,0x69126812,0x14101312,0x8d101210,0x8b109110,0x55111a10,0x53115311,0x17111511,0x65106411,0xba109f10,0x3c113a0e,0x8b108911,0x88108810,0x86108710,0x3b133710,0x37133a13,0x3c133a13,0x37133613,0x36133c13,0x38133c13,0x4d134f13,0x3f133f13,0x38133613,0x38133f13,0x84133513,0x3f134f13,0x47134513,0x30134013,0x40134513,0x3f138413,0x84133513,0x33133513,0x30132813,0x29134013,0x40132813,0x33138413,0x32133113,0x2c133413,0x31138413,0x2a133213,0x40132913,0x2c133213,0x2b132b13,0x40132a13,0x84134013,0xec133213,0xd810ea10,0xe510e310,0xf110f110,0xe210e010,0xc20ec310,0x8810a50e,0xc3108b10,0x1a11590e,0x69111c11,0xa010a410,0x3130210,0x4d12f913,0x6e104c10,0x5e111f10,0x5c115c11,0x1e111b11,0xfd110011,0x46111410,0x45114911,0xd0115d11,0xcd0ecd0e,0x55115b0e,0x5d115911,0x950ecd11,0xb00ea90e,0xa210a70e,0xa410a010,0xa710a610,0x2c114a10,0xe9112d11,0x4811420e,0x6d109611,0x54109710,0x45124412,0x70118012,0x56117111,0x49124712,0x56107712,0x4e105810,0x46124312,0x4a125212,0x78124c12,0x540f4a0f,0x4f134d0f,0x8e135013,0x68116611,0x65118811,0x5e116711,0x3f123d12,0xe510e612,0xed10e310,0xfa12f912,0x39125c12,0x8b123b12,0x62116b11,0xe310c911,0xca10e410,0xcb10cc10,0xe410c910,0x7a10ca10,0x7b12bb0e,0x9510980e,0x7b109710,0xad117a11,0xfc111711,0xae10fe10,0xf510b010,0xf310f510,0xad10aa10,0xf510ae10,0x9c119810,0x9d119d11,0xa111a211,0x9411a111,0x8d119811,0xa6118e11,0xd00ee811,0x3f115d0e,0xe8114211,0x860f8a0e,0x8e0f880f,0x95118f11,0x72126e11,0x73127312,0x79127c12,0x312f912,0x7c130413,0xb7117d11,0xe5137d11,0xee137b0e,0xf611da11,0x7e117d11,0x9b11ae11,0x8a119a11,0x53128511,0xb1125412,0x8411b011,0x8511b111,0x5a118611,0x6b125b12,0x490f7612,0xaf0f480f,0x7e11ae11,0x89134a11,0xa0134913,0xbf12a112,0xac12bf12,0xbd12bd12,0xb112c012,0xae12b112,0xaf12af12,0xad12b512,0xb712ad12,0xb612b612,0xa512a412,0xa512b612,0xa012a612,0xbd12bf12,0xa0129f12,0xad12bd12,0xa612b612,0xa612ad12,0x9e12a712,0xbd129f12,0x9e129d12,0xad12bd12,0xa812a712,0xad12af12,0x9d12a812,0xb112bd12,0x9d12ab12,0xaf12b112,0xa912a812,0xab12aa12,0xaf12b112,0xaa12a912,0x83118212,0x7311ac11,0x68127b12,0xca115012,0xde0fde0e,0xdc0eda0f,0xf50ef40e,0xde0ef30e,0xf40edc0f,0x500edb0e,0xdb0fde11,0xf40fde0e,0xf30ef40e,0xfb0ef70e,0xfd0f2c0e,0xf70ef40e,0xeb0efb0e,0xf40edb0e,0xcc0ec70e,0x50f050e,0xf40eeb0f,0xfb0ef40e,0xc70efd0e,0xf40f050e,0x150ef10e,0xc70ee112,0xfd0ef40e,0xc70ee10e,0xe10efd0e,0xf20efd0e,0xf20ee10e,0xf80ef80e,0xf010e,0xef80f,0xe30ef90f,0xe40ed70e,0xe40ee30e,0xe30eea0e,0x270eea0e,0xe30eee12,0xee12270e,0xef12270e,0xef0eee0e,0xee0ef00e,0xf10ef00e,0xee0efa0e,0xe10ef10e,0xf90ef80e,0x910eec0e,0xe10eed0f,0xec0ef90e,0xf10efa0e,0xde0ee10e,0xe10efa0e,0xed0eec0e,0xec0ef60e,0xfe0ef60e,0xe10ede0e,0xec0eec0e,0xe00efe0e,0xec0ede0e,0x8b0ee00e,0xe00ede0e,0xe00e8b0e,0x8c0ece0e,0xce0e8b0e,0xce0e8c0e,0xa00ec00e,0xc00e8c0e,0x9b10990e,0xa00f0810,0x990ec00e,0xa00e9810,0x9810990e,0x810990e,0x980e940f,0x60f080e,0xc50f070f,0x80e940e,0xa30f060f,0x60e940e,0xc50f060f,0xfc0efc0e,0xab0f030e,0xab0efc0e,0x9d0eae0e,0x60ea30e,0x9d0e9b0f,0xfc0f060e,0xa80eae0e,0xa80efc0e,0x9b0ea70e,0xfc0f060e,0xbf11ce0e,0xea11be11,0x21122f0e,0x5e125d12,0x70126f12,0x74137113,0x7b126813,0x81126a12,0xb8118211,0x6d127011,0x70126412,0x4f126512,0xa111bf12,0xb911b911,0xb611b211,0xaa11b611,0xa911a911,0xc111c511,0xa911b611,0xbe11c111,0xb911bf11,0xc111b611,0xc011c011,0xb911be11,0xa70fc311,0x4f0fa50f,0x43124012,0x5c0f2d12,0xcc0f660f,0xda11cd11,0xdb11da11,0xd711d711,0xe011e711,0xd611e011,0xe011c911,0xca11c911,0xda11cc11,0xe011d711,0xcb11ca11,0xcc11cb11,0xa511d711,0x9b129a12,0xc111d112,0xcf11c511,0xc011be11,0x9712a011,0xd0129912,0xc111c011,0x95129311,0xb3129f12,0x7f11af11,0x81138211,0x58136d13,0x4d124b12,0xf012ce12,0x8412ef12,0x79117711,0xeb11f911,0xed11ef11,0xf211d511,0xaf0e7511,0xf112ae12,0xf811f211,0xf611f411,0x9c11d511,0x61109a10,0x63106210,0x68109c10,0xbc0e8a0e,0xac12b912,0xb012bf12,0xb712b612,0x56105412,0xe4107710,0xe711e111,0xbd0e8111,0x9412ac12,0x900f930f,0xf311f10f,0xed120311,0x111ec11,0xdd11e612,0xf5123411,0x511f911,0xed11f712,0xde120011,0x2a11e311,0xe611e312,0xdf123011,0x2911e111,0xde11d912,0x88122211,0x8a0e890e,0x680e8a0e,0x230e670e,0xf121d12,0x6112912,0x8110811,0x2a112b11,0x950e9111,0x8b0e960e,0x910e920e,0x990e7c0e,0xfe0e8d0e,0x13121711,0xfa11d812,0x511ef11,0x18120d12,0x930e9012,0xa30ea30e,0xa20e9f0e,0x1812040e,0x32121612,0xe110c11,0x2e110e11,0xff113311,0x17121911,0xa120012,0xb121912,0x11121212,0xb20e7212,0x290ead0e,0x24122b12,0x81127e12,0x86128612,0x78128712,0x7e128012,0x26128612,0x1b122412,0x9a0ea312,0x690e990e,0x950ea90e,0xb70e6d0e,0x2b12ad12,0xa110811,0x2d110a11,0xf5112c11,0xf811f311,0x2d122a11,0x82122812,0xa20e900e,0x31122e0e,0xb6122b12,0xf710e810,0xb210f710,0x7010b410,0xb60ea60e,0x4d0f510e,0x340f7a0f,0x32121c12,0x5b107d12,0x5d105d10,0x79107a10,0xb30e6c10,0x740eaf0e,0xb20eb50e,0x1b12250e,0xf9121c12,0xf80ff70f,0xfc0ffa0f,0x760ff90f,0x780e770e,0xb60e6e0e,0xe10eb30e,0x2e11e411,0x750e7312,0x7d0e740e,0x7e0e7f0e,0xdc11dd0e,0xdc122511,0x2611df11,0xe811e412,0x7f123311,0x800e810e,0x7312b40e,0xba0e720e,0x8312b912,0x5b12380e,0x50125a12,0x48124612,0x4c125312,0x5f124412,0x36123f12,0x78117f12,0x57117011,0x4b124912,0x73118212,0x7c117511,0x74117211,0x3b125d11,0x8a123d12,0x6b116911,0x37126111,0x97123a12,0x920f8f0f,0x3c12630f,0x8d123e12,0x66116311,0x3a126211,0xd2123c12,0x250ed40e,0x5e106f0f,0x4f106010,0x82124e12,0x99119f12,0x9e119e11,0x9b119a11,0x5a105711,0x3f103f10,0x42104010,0x44104210,0x45104510,0x47104610,0x3d104710,0x3e103e10,0x43104110,0x33104310,0x34103410,0x38103610,0x3a103810,0x3b103b10,0x5d103c10,0x5d103b10,0x57105b10,0x42103f10,0x57105510,0x3b104210,0x59105b10,0x59103b10,0x53105810,0x42105510,0x53105110,0x38104210,0x58103b10,0x58103810,0x51105610,0x45104210,0x51104f10,0x38104510,0x54105610,0x54103810,0x4f105210,0x47104510,0x4f104d10,0x34104710,0x52103810,0x52103410,0x4c105010,0x47104d10,0x4c104910,0x43104710,0x50103410,0x50104310,0x49104e10,0x3e104710,0x49104810,0x43103e10,0x4b104e10,0x48104a10,0x43103e10,0x4a104b10,0xa10e8c10,0xc80e920e,0xdc12e212,0x1812c712,0x5512c80f,0x8d125612,0x76127a12,0x8b125c12,0x4e128212,0x8b119b12,0xb2118c11,0xae0ea80e,0xa50eae0e,0x4f0ead0e,0x4d114c11,0x55125411,0x87128a12,0x58128612,0x59128712,0x97125a12,0x4f106d10,0xf112f410,0x8c12f212,0xa0118d11,0x63126211,0xc0126a12,0xc210c110,0xf910c210,0x3f10f810,0x5c105a10,0x3f103910,0x35105c10,0x39103710,0x32103110,0x5d103510,0x31103c10,0x5d105e10,0x35103110,0x5c103910,0x5c103510,0x5e105f10,0x35103110,0x5f103510,0x56106010,0x81125712,0x960f9712,0x950f940f,0xd60f260f,0x940f970e,0xd60f950f,0x970f980e,0x1411510f,0xbb111511,0xd411bc11,0x210ff11,0x64111d11,0x86118711,0x82137311,0x8f136c13,0x6a116811,0x92129911,0xa712a212,0x8f129612,0x9b12a612,0x8f129612,0xa9129012,0x7130812,0x8130a13,0x9130a13,0x131813,0xf130813,0x8131813,0x9130813,0xf130c13,0xc130813,0xf131113,0x11130c13,0x10130c13,0x11131513,0x15131013,0x14131013,0x1d132513,0x1f131f13,0x14131513,0x14131f13,0x22131313,0x1f132513,0x22131e13,0x1f131f13,0xe131313,0xb130e13,0xe131713,0xd131713,0x1f131e13,0x21130e13,0xe131e13,0xd130e13,0xe131213,0x20131213,0x21132413,0x3130e13,0x27132613,0xe132413,0x3132013,0x24132713,0x4130513,0x1b130313,0x5131613,0x1b131c13,0x5130513,0x24130313,0x20132413,0x1c132313,0x24130513,0x95129f13,0x75129712,0x8b128212,0x8c128b12,0x88128812,0x75128e12,0xf20fdf12,0x1a0fe70f,0xff10fe11,0x20114d10,0x63110311,0x49106210,0x3e126410,0x34124112,0x33113011,0xa10fc211,0xd90faa0f,0xe511e211,0xe511e311,0xf211d611,0xca12f112,0xd711e812,0xe911db11,0xdb11ea11,0xad12b311,0xef12b512,0x2c12270e,0x3f113e12,0xb4115d11,0xaf12b512,0xbf0e8512,0x1812b812,0x31103210,0x30103110,0x91101510,0x970f8f0f,0x2a10290f,0x5c102c10,0x64105a10,0x31122b10,0xa80ef012,0xa1119311,0xbf11a111,0xa111c211,0xc611c211,0x99119211,0xa911a811,0x9211a711,0xc511bb11,0xbc11a911,0xa911bb11,0xa111a811,0xa811c611,0xba11c611,0xa911bc11,0xc3119211,0x9211bc11,0xba11a811,0xc411bd11,0x9211c311,0xbd11a811,0x9e11c411,0xa4119211,0x9611a411,0xa311a311,0x9e11a511,0x4e0edb11,0x32114c11,0x1f121c12,0x940ee212,0x90109010,0x7e109310,0x42104410,0x83100910,0x77117511,0xd810d611,0xea10ea10,0xd410e710,0xfa12fb10,0x26130412,0x6110411,0x6e137311,0x42135e13,0x30134513,0x30134213,0x43132f13,0x2f134213,0x2f134313,0x43132e13,0x2d132e13,0x2c132d13,0x39133413,0x3b133a13,0x34132d13,0x43133913,0x39132d13,0x3b133913,0x43134413,0x44133913,0x43134613,0x46134413,0x41134413,0x41134613,0x3d133e13,0x3f133613,0x3d133e13,0x87133f13,0x40138413,0x40138713,0x3e134713,0x4d133f13,0x3e134613,0x4d134d13,0x47138713,0x46134813,0x2d134d13,0x640f340f,0x550efd0f,0x500f500f,0x280f7f0f,0xa0f280f,0xfd0ef20f,0x280f500e,0xb711b50f,0xae11ae11,0xb911b211,0x7b0f4e11,0x860f860f,0x8b0f8a0f,0x850f8b0f,0x870f870f,0x860f4e0f,0xd612c40f,0x3b12d512,0x2d102b10,0x2e132010,0x12132f13,0x2e132d13,0x2e0f3013,0x4e0f5d0f,0x50134b13,0xf90ff713,0xc9103e0f,0xa60fa90f,0xfe12ff0f,0xf3130812,0x411f511,0x5e126f12,0xff125f12,0x2130012,0xeb12e513,0xfd12fc12,0x612fc12,0x38102613,0x36103610,0x25102410,0xf410ba10,0xee10ee10,0xb810b710,0x81118010,0x6911b411,0x680e670e,0x76117e0e,0x33117811,0xc133513,0x35130c13,0x14133813,0x3a133c13,0xec12e813,0x6512fe12,0x40124112,0x18103212,0x58101910,0x88138613,0xe710d413,0xe810e810,0xb510b610,0xf120c10,0xe3121012,0xe212e112,0x86138412,0x59135913,0x85135a13,0xa412a313,0xb612b612,0xb812bc12,0xbf12b812,0xb812a112,0xa212a112,0xb612a312,0x8812b812,0x4d0f7a0f,0x8e0f4d0f,0x8d0f8d0f,0x890f8c0f,0x4d0f880f,0x1b0f8d0f,0x1f122712,0x87118612,0x57119611,0x5f135613,0x60135b13,0x5b135913,0x58135913,0x5f135713,0x5b135e13,0x57135813,0xc010be13,0xf810f810,0xbc10f610,0x74137710,0x9f136213,0xa611a011,0x9311a611,0xc711a811,0xac10c810,0x51115210,0x53115311,0x56115511,0x54115611,0x61115211,0x7a136813,0x79137a13,0xc4136713,0xa30fc50f,0xd312d50f,0x2612d412,0x2c0f950f,0x2c0f2610,0x25102a10,0x230f240f,0x260f230f,0x23102a0f,0x28102a0f,0x250f2210,0x170f230f,0x210f9a0f,0x220f210f,0x230f230f,0x2510280f,0x250f2310,0x17102410,0x230f210f,0x170f140f,0x230f230f,0x2310240f,0x230f2310,0xc102110,0x230f140f,0xb0f0e0f,0xd0f0c0f,0xc0f0e0f,0x210f230f,0x12100210,0xc0f0d0f,0xdd0ff00f,0xc30f120f,0xf00f1b10,0xc310c50f,0xf00ff010,0xc0f120f,0x8100a0f,0xa124b10,0x49124b10,0xa100c12,0xc124910,0x47124910,0xc100e12,0xe124710,0x45124710,0xe101012,0x10124510,0x44124510,0x10101312,0x13124410,0x4c124410,0x13101412,0x14124c10,0x4a124c10,0x140ff812,0xf8124a10,0x48124a0f,0xf80ffa12,0xfa12480f,0x4612480f,0xfa0ffc12,0xfc12460f,0x4312460f,0xfc0ffe12,0xfe12430f,0x4012430f,0xfe100012,0x12400f,0x41124010,0x4d124212,0x420f1a12,0x190f1a12,0x4212380f,0x390f1912,0x19123812,0x39123b0f,0x3d0f1912,0x19123b12,0x3d123f0f,0x3f0f1912,0xc80f1912,0x3f123612,0x3712c812,0xc8123612,0x37123a12,0x3a12c812,0x1812c812,0x3a123c0f,0x3e0f1812,0x18123c12,0x3e12410f,0xf1812,0x18124110,0x10020f,0x20f1810,0xc50f1810,0xf010c512,0xc60f0c0f,0xc10c510,0x20f230f,0xc12c510,0xc50f230f,0xc610c812,0xac0f0c10,0xc10c810,0xc50f0c0f,0xc12c312,0xc212c30f,0xac10aa12,0xaf0f0c10,0xc10aa10,0xc20f0c0f,0xc0f2712,0xf0f270f,0xaf10b10f,0xb30f0c10,0xc10b110,0xce0f100f,0x10116c12,0x6d116c0f,0x1012d111,0xd1116d0f,0x6a116d12,0xb310b611,0xd50f0c10,0xc10b610,0x6a12d10f,0xd1116811,0x66116812,0xc10d511,0x790f0f0f,0xd710d811,0xd510d710,0xf0f0f10,0x6612d10f,0x660f0f11,0x79116311,0xf10d711,0x79116e0f,0xf0f0f11,0x6211630f,0x620f0f11,0x64116b11,0xf116e11,0x6411650f,0xf0f0f11,0x69116b0f,0x65116711,0x190f0f11,0x9110b11,0x33100111,0x43104310,0x2100010,0x56135f10,0x5f134a13,0x4c134a13,0x59135a13,0x53136013,0x60135a13,0x5f136413,0x64134c13,0x55134c13,0x60135313,0x54135c13,0x5c135313,0x64136113,0x61135513,0x4e135513,0x5c135413,0x61135d13,0x52134e13,0x54135213,0x7b135d13,0x8e0e8d0e,0x8710860e,0x84106a10,0x88138713,0xf112cd13,0x8712e412,0x56138913,0x57135613,0x53138813,0x85135113,0xe812ec13,0xe012e012,0xe912f412,0xea12e912,0xe512eb12,0xe012ec12,0xeb12e912,0x3512e512,0x3a113711,0x38113a11,0x36113611,0x35113411,0x7f138111,0xd6136b13,0xda12d712,0xd812da12,0xd512d912,0xd112f612,0x38131012,0xf5133c13,0x1e0f1c0e,0x9713960f,0x9b139213,0x9a139913,0x27139613,0xa3139714,0xa413a213,0xa713a613,0xa313a813,0xa213aa13,0x2c13a613,0xad13a714,0xae13ac13,0xac13ae13,0xb613af13,0xb013ba13,0xb613b713,0xde13b913,0xe413e313,0xb913b713,0xc5144413,0xc413c613,0xc613c413,0xa813c713,0xa513a213,0xbe13b313,0xd013b813,0xcf13cb13,0x3513d013,0xd013d114,0xd413d113,0xdb13d213,0xd913d513,0xdd13d013,0x4a142813,0x3d144c14,0xd513d214,0xc513b713,0x3713c413,0xc313b114,0x1f13cd13,0xac141d14,0xed13b313,0x9413fc13,0xcb139c13,0xcf143413,0xef13ee13,0xee139a13,0xef13f013,0xda142413,0xf113d613,0xef139a13,0x9a139b13,0x9913f213,0xf3139b13,0x99139f13,0xf313f313,0x9f13f413,0xc1142913,0xd7142313,0xd8141413,0xf6139d13,0x4313a013,0xee13ec14,0xd7140b13,0xf913d313,0xf7139e13,0x9e139513,0xf913f913,0x9513fa13,0x2313c013,0xe213c114,0xe6144613,0x213b413,0xfd13b214,0x94139213,0xe613e813,0xc913e913,0xca13cd13,0xc6140d13,0x5413c513,0x5a145914,0xf313f214,0xa139b13,0xf4141714,0x27139313,0x30139614,0xa6142c14,0x32143913,0xd5143a14,0x3d143813,0x140114,0x45140414,0x3513d114,0x3b13b914,0x49144414,0x4813ec14,0x9a139514,0xa4139f13,0xa3140113,0x1513eb13,0x28144314,0x2d144b14,0xf913fd14,0x3a143f13,0xf0144d14,0x4d144a13,0xea144c14,0xe913eb13,0xcc141e13,0x3913c913,0x4913f014,0xee13a214,0x2d139713,0x2f144b14,0x4b142f14,0x144d14,0x53145214,0xf813a014,0x18139813,0xcc13c814,0xa313aa13,0xa5140113,0x113aa13,0x42140114,0x9813a514,0x9e13f713,0x3013a813,0xad13a614,0x1913ae13,0xad13be14,0x19141913,0xbe141214,0x32144d13,0x4142f14,0x26144e14,0x60146114,0xc144014,0xb8140514,0xb813b413,0xdf140513,0xe013e313,0x16140213,0xb213bc14,0xbc140213,0xbc13bb13,0xd9141613,0xd6142413,0xb5141113,0xab13bd13,0x41144213,0xef142a14,0x29144a13,0xc2143114,0x61145c13,0x3c144014,0xba13b014,0xc13b513,0x2213b814,0x2113ef14,0xe413e714,0xb613fe13,0xb9143b13,0xd13c613,0xc913c714,0xd13c713,0x1e140d14,0x5013c914,0x4f145314,0x2013bf14,0xec13c014,0x48141313,0x25141d14,0x1d13ca14,0xcd13ca14,0xfa13a113,0xd113fb13,0xd4144513,0xd413d313,0x45144513,0xd3140b14,0xf4139d13,0xff13f513,0xe313e113,0x10140a13,0xdc13dd14,0x1013dd13,0xdc13d914,0xdc141b13,0x1b141013,0x1b13d914,0x9c142b14,0xfc13fb13,0xee13e913,0x33145d13,0x3613da14,0xdb143314,0xdb13da13,0x38143313,0x3813db14,0xd213d514,0x5d13de13,0x1213bd14,0x25141114,0xca13cb14,0xe513fe13,0xa8140913,0x30142e13,0xe413fe14,0xd813e513,0xdd140a13,0x52144f13,0x53145014,0x4f145214,0x3713b014,0x5413c314,0x4e145014,0xed145614,0x5d145713,0x5c13ee14,0xe813e214,0xde145d13,0x5d13e213,0xf113f214,0x59142213,0xd013cb14,0xc4145913,0x13cb13,0x51145614,0xb713ba14,0xb3145913,0xed145913,0xba13b313,0x1c145913,0x5c145e14,0xe913e814,0x46145d13,0xe613e914,0x5b145113,0x56140414,0x51145714,0x54145b14,0xcf144e14,0xd0143513,0x4113a913,0x31142e14,0xc213ba14,0x5a145f13,0x55140e14,0x60145f14,0x55145814,0x5a146014,0xe141714,0xb1143b14,0x3f143e13,0x60144014,0x3f140e14,0x3f145f14,0x5f146014,0xde13df14,0x16140313,0xbb13bf14,0xe5144713,0x2613e113,0x50144e14,0x26140814,0x8145014,0x52145014,0x39144814,0x4144914,0x51140014,0x93139214,0xc3139613,0xb613b113,0xb713b613,0xb013ba13,0xb613c313,0xe013de13,0xe313e313,0xe513e113,0xe213e413,0xe313de13,0xe413e513,0xa913ab13,0xa813a813,0xa213a713,0xaa13a213,0xa513a513,0xa813ab13,0xc213c113,0xc113ba13,0xb313ba13,0xc013bf13,0xb213c113,0xbb13bc13,0xbf13bb13,0xbb13c113,0xb313c113,0xb413b813,0xbd13b213,0xb813b513,0xad13ac13,0xbe13be13,0xb813bd13,0xbb13b213,0xb313b313,0xbe13ac13,0xb213b813,0xd913b313,0xda13d613,0xd213db13,0xd913d013,0xdb13da13,0xdc13dd13,0xd713d913,0xdd13d813,0xd413d013,0xd313d313,0xdd13d713,0xdb13d913,0xd013d013,0xdd13d313,0x2a142813,0xb7144a14,0xc5144413,0x5913c413,0x3713b714,0xb1143e14,0xc813cd13,0xfc141f13,0x9413fd13,0xce13cb13,0x24143413,0xda143614,0xc2142913,0xd713c113,0x14140613,0xf5139d14,0xee13f613,0x4313eb13,0xf013ec14,0xb13ee13,0xd7140614,0x2013c013,0xe2142314,0x4613e713,0x513b414,0xe8140214,0xe613e213,0xcb13ca13,0xc413c413,0xc913c713,0xcc13c913,0xc913c813,0xcd13c813,0xc413ca13,0x5513c913,0x53145814,0x5b145414,0x55145914,0x54145314,0x5e145914,0x5a145a14,0x54145514,0xe7144614,0xfe140f13,0x47140913,0xf144614,0x1513fe14,0x4613ea14,0x43141314,0x2f141514,0x39143214,0x15141314,0x39144614,0x46141314,0xfe144614,0xff144713,0x313df13,0x47144614,0x2f13ff14,0x46143914,0x2d142814,0x22142f14,0x2a142114,0x28142a14,0x2f142f14,0xff144614,0xff142f13,0x22140313,0x2f142a14,0x2f142214,0x3d140314,0x33143814,0x3142214,0xf2143d14,0x3d142213,0x36143314,0xf2142414,0x33143d13,0xf213f314,0x33143313,0x2b142414,0x1b142b14,0xa141014,0x6141414,0x10142b14,0xf3140a14,0x2b143313,0xf513f614,0xf413f413,0x2b13f313,0x6140a14,0xf4140b14,0xa142b13,0xf613f814,0x4013f413,0xf813f714,0x40141c13,0xa13f814,0x45140b14,0xe144514,0x1c141714,0xf413f814,0x45140a13,0x17141714,0xf4141c14,0x20142313,0x16141a14,0x5140214,0x1a142314,0x31141614,0x23142914,0x37143e14,0x3c143c14,0x23143114,0x16142314,0xc140514,0x11140714,0x5142314,0x3e140c14,0x23143c14,0x3e143b14,0x23142314,0x11140c14,0x19141214,0x2313ae14,0x12141114,0x3b144414,0xc5142314,0x23144413,0x12142314,0x2313ae14,0xaf13ae14,0xc5140d13,0x1f142313,0x1e141814,0xd141e14,0x23142314,0x2c13af14,0x2e143014,0x23144114,0x30142c14,0x1e141f14,0xce142314,0x1d142513,0x1f141d14,0x23142314,0x41143014,0x41142314,0xce144214,0x23141d13,0x34142614,0x413ce14,0xce142614,0x2313ce13,0x1144214,0x813a414,0x4213ce14,0x4140114,0x113ce14,0x8140114,0x49140014,0xec13f014,0x9e139813,0x95139513,0x9c13a113,0x9c139513,0x9d139413,0x9813a013,0x94139513,0x9f139213,0x98139d13,0x92139513,0x9f139713,0x95139813,0x99139a13,0x95139f13,0x9a139713,0x4c142813,0xe144b14,0x35144514,0x34143514,0x26142614,0xa4140814,0x93142713,0x2613fd13,0x2713a414,0x35140e14,0xf7142614,0x3f144013,0xe143f14,0x26142614,0xfd142714,0xfc13fd13,0xfd13fb13,0xfa13fb13,0x26143f13,0xf913fd14,0x3f13f713,0xfa13fd14,0xef13f913,0x4d13f013,0x4b144d14,0x4a144c14,0x4d13ef14,0x1513ea14,0x1e13eb14,0xcc141814,0x3a143913,0xa713f014,0xaf142c13,0xed13ac13,0xa713ee13,0xac13af13,0xa4142713,0xa213a213,0xac13a713,0x9a13ee13,0x97139713,0xa2142713,0xac13a213,0x5313ee13,0x145614,0x8140014,0xa0145214,0xf813f613,0x1f141813,0x9813c814,0xf713f813,0x3a144d13,0x4143214,0x4e145b14,0x58146114,0xdf146014,0xe313ff13,0x2b13d913,0x11142414,0xb5140714,0xa513ab13,0x2a144213,0xef142114,0x1c144013,0x5c145c14,0x61145814,0x713b514,0x22140c14,0xef13f114,0xf13fe13,0xe713e714,0xe413e213,0x54145013,0xbf145314,0x20141a13,0x4313ec14,0xa1141314,0xfa139513,0x9f139d13,0xff13f413,0xe1144713,0xa1139c13,0xe913fb13,0xee13eb13,0x59145d13,0xd213d014,0x3143d13,0xd0145d14,0xd213d213,0xde140313,0xbe13bd13,0x25141213,0xcb13ce14,0xa913a813,0xd8142e13,0xa141413,0x3c13b014,0x56143714,0x58145314,0x5913ed14,0xed145b14,0x57145b13,0x58145614,0x5e13ed14,0x5d145914,0xed13ee14,0x5c145813,0x5d145e14,0x5813ee14,0xf2145c14,0xf1139a13,0x17141c13,0x46145e14,0xe913ea14,0x57145113,0xcf145b14,0x35143413,0xab13a914,0x31144113,0xba143c14,0x55145f13,0x5a145a14,0x17145e14,0xb6143b14,0xdf13b113,0xde13e013,0x1a141613,0x4713bf14,0xe5140914,0x13144813,0x92143914,0x9313fd13,0x1f14ff13,0x8f152115,0x8b148c14,0x29150b14,0xa5150a15,0xa8155214,0x93147d14,0x1c146314,0xe6151215,0xd0155114,0x69155a14,0x73147b14,0xac14af14,0x7614ab14,0x86148214,0x68146f14,0x6f146b14,0x77148314,0x20154b14,0xc5152715,0xea14eb14,0x8914ac14,0x9f149b14,0x90149414,0x514d514,0x9a14dc15,0x8e157714,0xb4155c14,0x6614b314,0x63156515,0xa5149815,0x3314a914,0xe150f15,0xc7155e15,0x21151914,0x2c152015,0xb714b615,0x6814c014,0xd3148915,0x9d14da14,0xe414d414,0xbc14e314,0xc014e514,0x614e614,0xf614db15,0xc014e614,0xe714c314,0xc314e614,0xc314e714,0xe814be14,0xbe14e714,0xbe14e814,0x5f14bf14,0x60151715,0xd9150715,0xcd150614,0xf714fa14,0xd014aa14,0xf214ab14,0xed14ef14,0x9c156f14,0xcd156814,0xe214ca14,0x9514a214,0x3149f14,0xf8150a15,0x74147614,0xb4146914,0xb914c714,0xeb151a14,0xae151614,0xaf157714,0xef153d14,0x1e153014,0xf2151d15,0x40152214,0x50154815,0x4e155815,0x77146d15,0x2f147814,0x3a153d15,0xe214ac15,0x3414aa14,0xf151415,0xb914e315,0x1a14bc14,0x38153915,0x1a153b15,0x18153815,0x11153f15,0x47153c15,0x43154315,0x48154c15,0x68151d15,0xe014f214,0xfa14fb14,0x914ce14,0xdc14d515,0xcb14f814,0xc9154e14,0xee14f814,0x3d14ed14,0x3d14ee15,0xc7154015,0x19151614,0xef153015,0xcc14f314,0xdf156814,0xf114f014,0xf1152514,0x25152214,0x44152f15,0x31154615,0x45154315,0xf0151e15,0x65152514,0x6414f314,0x23150414,0x6514fc15,0xd214d115,0x114ad14,0x6d152b15,0x54155315,0x41152615,0x154215,0x2a152815,0x98149915,0x5b149614,0x5814ca15,0x75148e15,0xa1148b15,0x9514b214,0x6a148114,0x5c147e15,0x55155715,0xb7155e15,0x9514c614,0x94147d14,0x70156314,0x13150814,0xba14bb15,0x78148c14,0x9f147a14,0xa0147f14,0x37151c14,0xe9153a15,0xea14c514,0x2914fe14,0x8f152815,0x78147914,0x70150214,0x6214ff14,0x60155f15,0xd8156415,0xb514d114,0xa414b014,0xb614e414,0xde14e514,0xf9150314,0x49152714,0x77154b15,0x7a148a14,0xfc152e14,0xc1152314,0xeb14ec14,0x73148d14,0x6a148015,0x6c156b15,0x32151115,0x6e151515,0xa914a715,0xb114a214,0x5b14a114,0x4f155015,0x32151b15,0x10153715,0xc814c215,0xc4156114,0x9714bd14,0x70148014,0xa6149615,0x8b156b14,0x84157414,0x72157714,0x71157415,0x74148415,0x72148515,0x67148d15,0xf4150815,0x46153e14,0xcc154815,0x6f14d414,0x5d155715,0x5b155615,0x5a155115,0xd14c215,0x79151315,0x6d146e14,0x7f155414,0x4156a14,0x2d152115,0x45153515,0x6b154415,0x6c14a715,0x4c152415,0x2154115,0x714d715,0xbd156215,0x314b714,0xf714cd15,0xd4149b14,0xf6149e14,0xcf14db14,0xf614f514,0xf514cf14,0xd614cf14,0xf514f914,0xf914d614,0xde14d614,0xe914bf14,0x2c14e814,0x4c154a15,0xdd156615,0x114d814,0x2b152a15,0xfb150215,0x7314da14,0x76148214,0x8a147a14,0x86148c14,0x76147514,0x74148714,0x74147514,0x67146614,0xb3155614,0xff14b514,0x1f146b14,0x80148d15,0x7e148114,0x90147f14,0x8d148514,0x7e148114,0x7d149014,0x81148514,0x7e147e14,0x63147d14,0x66146314,0x63148814,0x87148814,0x7e148514,0x84146314,0x63148514,0x63148414,0x8b148714,0x87148414,0x87148b14,0x89148614,0x8e149114,0x86148b14,0x89148214,0x8b148e14,0x71147214,0x83148914,0x89147214,0x82148b14,0x83147b14,0x8b148914,0x83148a14,0x8b148b14,0x6a147b14,0x6e146a14,0x6a147c14,0x8f147c14,0x8a148c14,0x8b148b14,0x8f146a14,0x2e150b14,0xa5152915,0x52157014,0x92147d15,0xe7149314,0x1814e814,0x11151815,0xe7151515,0x15151814,0xe5151915,0xe614e614,0x1514e714,0x1514e615,0x12151b15,0xe6151915,0x17146214,0xe6151215,0x1c151b14,0x62151c15,0x51151214,0xab14ad15,0xca14d014,0x51155a14,0xd014ab15,0x6a146914,0xad147b14,0xaf14ae14,0x9a14af14,0xac14ac14,0xab14aa14,0xad14ab14,0x7014af14,0xd2156514,0xd314d214,0x71147114,0x6f147214,0x6e146d14,0x6d146a14,0x69146a14,0x66146714,0x6d146314,0x67146914,0x93146314,0xc414c414,0x17156014,0x1c146215,0x63153a15,0x1714c414,0x63146715,0x62151714,0x65153a14,0x17146714,0x6d146215,0x62146714,0x65146214,0x68146414,0x1f146c14,0x64146215,0x6f146814,0x62146d14,0xd2147014,0x6f147114,0x68146214,0x71147014,0x68146f14,0x6b151f14,0x70146b14,0x6f146f14,0x83147214,0x4a154b14,0xc5152015,0xeb14c114,0x9e149b14,0xac149d14,0x91149a14,0x9c148914,0xac149b14,0x89149114,0x9d149b14,0xd514ac14,0x5150914,0xaf149a15,0x77157714,0x8e157615,0x91148e14,0xb3149a14,0x5c155d14,0xc8155c15,0x6314b414,0x66156715,0x64156615,0xa7156515,0x9814a614,0x97149814,0xa514a514,0xa914a814,0xa714a914,0x33149814,0xf153415,0x5f151215,0x5e155e15,0xc714c615,0x12151914,0x23155e15,0x21152d15,0x1f152115,0x6c146c15,0x1e151d14,0x22152515,0x6c152715,0x25151e14,0x29152815,0x2b152e15,0x28152a15,0x26152415,0x2b152b15,0x2e152815,0x2e152b15,0x24152315,0x23152b15,0x6c152115,0x21152514,0x27152515,0x23152415,0x2c152115,0x21152415,0x27152115,0xb6152015,0xb714c614,0x9c156814,0x89148914,0xd3147114,0xdf14d314,0xca156814,0xde14e114,0xde14ca14,0xcb14d614,0xca14c914,0xdc14d514,0xdd14cb14,0xd514ce14,0xdd14d814,0xd514d514,0xca14cb14,0xca14d514,0xd514d614,0xcf14d614,0xcf14d514,0xd814db14,0xdb14d514,0xdb14d814,0xd314d914,0xd114d214,0xd814d114,0xd114d914,0xd714d914,0xd314df14,0xcc14d114,0xd114df14,0xd714d114,0xe014da14,0x9d14cd14,0xd114cc14,0xda14da14,0x9d14e014,0x9e149d14,0xd414d414,0xda14cc14,0xb614e514,0x614c014,0xdb14d915,0x12155f14,0x7151715,0xd914d715,0xe014cd14,0xaa14fa14,0xd014e214,0xee14ed14,0xf114f114,0xf214f014,0x6814f214,0xf2146414,0xf3146414,0xf114ed14,0xf214f214,0xef14f314,0x9b156f14,0xe2149c14,0xcd149d14,0xe114cd14,0xca14ca14,0xe214d014,0xa0149f14,0xa314a314,0xa214a414,0xa114a214,0x95149514,0x9f149414,0xa3149f14,0x7014a214,0xf6150614,0x70150814,0x914f614,0x814f415,0x514f815,0x150915,0xfd150115,0x14fe14,0xf814fd15,0x8150914,0xfd14fe15,0xfb14f814,0xa150b14,0xfe150a15,0x814f814,0xf514f615,0x814f814,0xfa14f515,0xa14fb14,0xfa14f715,0xf8150a14,0xf914f514,0xf7150314,0xf8150a14,0x314f914,0x73146915,0x76147614,0x74147514,0x67147414,0xc3146914,0xb714c014,0xc414bd14,0xc3149314,0xbd14b714,0xc314be14,0xbd14bd14,0x92149314,0xbd14be14,0xbf149214,0x9214be14,0x9214bf14,0xb814b214,0xb214bf14,0xb014b114,0xb814b414,0xb114b214,0xb814c514,0xb414b114,0xc214c814,0xb114c514,0xc114b414,0xb414c514,0xc214b414,0xba14ba14,0xc714bb14,0xc614c714,0xc714b614,0xbc14b614,0xba14b414,0xb914c714,0xb414c114,0xbc14c714,0x1014b914,0xf150e15,0xf151015,0x13151415,0xc150d15,0x10150c15,0x1a151415,0xe8151815,0x14150c14,0x16151a15,0xc151315,0x1914e515,0xe4151615,0x1614e514,0xc151615,0x1a151a15,0xe914e815,0xe9151a14,0xe314ea14,0x1614e414,0xe314ec15,0x1a151614,0xeb14ea15,0xec14eb14,0xae151614,0x77154d14,0xed153d15,0x2214ef14,0xee14f115,0x3e154014,0x22154815,0x4014ee15,0x49154815,0x50152215,0x58155915,0x79147815,0x6d146d14,0x77146f14,0x7a147714,0x37147814,0x3f153215,0x38153b15,0x3a153915,0x3f153715,0x39153b15,0x3f153415,0x34153b15,0x33153415,0x34153615,0x3c153615,0x34153f15,0x3f153c15,0x31153c15,0x65153015,0x3e153a14,0x3d154015,0x30153d15,0x3a153a15,0x31153f15,0x31153a15,0x2f153515,0x3d153e15,0x35153a15,0xac152f15,0xe2149d14,0x39153414,0xe3151415,0xb914ec14,0x14151a14,0x3b153915,0x1a151815,0x3b151815,0x3c153f15,0x47153615,0x46154815,0x44154415,0x43154515,0x47154315,0x42154215,0x4c154115,0x4a154c15,0x4c154b15,0x49154b15,0x42154315,0x48154c15,0x43154415,0x49154c15,0x1d154815,0x68146c15,0xda14e014,0xce14fb14,0x914f414,0x514dc15,0xf814f815,0x4e14fd14,0x58154e15,0xc914c915,0xf814cb14,0xbb14c714,0xcc151614,0x68156f14,0x35152f15,0x31154415,0x43153c15,0xf2151e15,0x6514f014,0xf3153014,0x2d150414,0x65152315,0xd1156415,0x5414a314,0xa9155315,0x5214a814,0x5314a315,0x5614a915,0xa414b515,0xa314a414,0xa414a914,0x5214a914,0x56155715,0x1014a415,0x57155515,0x33153615,0xe150e15,0x57151015,0x57150e15,0x4214a415,0x36154715,0xe153615,0x3614a415,0x5214a415,0x42152615,0x4e153615,0x114fd15,0x50154f15,0xad154e15,0x4f155114,0xae154d15,0x3614ad14,0x4d155215,0x36152615,0xad154d15,0x4e154f14,0x26152b15,0xad154d15,0x1154e14,0x4d152b15,0x6d14ad15,0x53156e15,0x24152615,0x154115,0x2814fe15,0x97149915,0x58149814,0x5b155915,0x5a155b15,0xca14ca15,0x5814c914,0x76148e15,0xa1157515,0xb214b114,0x69148114,0x5e156a15,0xb7156215,0xb2149514,0x7d149214,0x94149014,0x92149514,0x63147d14,0x70156515,0x16151314,0x8c14bb15,0x78148f14,0x90149f14,0x1c147f14,0x37151b15,0xb814e915,0xfe14c514,0x29150a14,0x7c148f15,0x4147914,0xb14fc15,0xfb150b15,0x7150214,0x70150615,0xb150414,0x2150215,0x70150715,0x6b147014,0xff14ff14,0x2150414,0x61156015,0x62156215,0x5f155e15,0x66156415,0xb514d815,0xb414b314,0xa214b014,0xb514a414,0xb014b414,0xbc14e414,0xde14b614,0x314e114,0x22152715,0x77154915,0x8a148314,0xb152e14,0xc114fc15,0xec14b914,0x72148d14,0x6a157315,0x99156915,0x99156a14,0x6e149614,0x6a156d15,0x6e156c15,0x6a156a15,0x6b149615,0x3f151115,0xa9153215,0x6e155314,0x6c156e15,0xa214a715,0xb114b014,0x59155b14,0x1b155015,0x32151515,0x55155c15,0x10151015,0xc2150c15,0x5c14c814,0x61151015,0xc4156015,0x99149714,0x69156914,0x80148115,0x73148014,0x70157015,0x9714a515,0x69149714,0x96148015,0xa6149814,0x75148b14,0x75157415,0x77157615,0x4d157715,0x70155215,0x72157315,0x52157715,0x74157015,0x77157515,0x71157215,0x77157415,0x72157015,0x85157115,0x85148414,0x72157114,0xce14f415,0x6714dd14,0x8156315,0xdd14f415,0x3e156714,0x46152f15,0x5c155715,0x5b155d15,0x51154f15,0xba151315,0xc214c214,0xd150c14,0x7c147915,0x6a146e14,0x54156d15,0xa3155415,0x7f14a014,0x6a147e14,0xa0155415,0x4147f14,0x2114ff15,0x31153515,0x6b154515,0xa714a615,0x2c152414,0x2154c15,0xd714da15,0x61156214,0x314bd15,0xcd14e115,0x6f149b14,0xbf14d415,0xe914b814,0x20152c14,0x66154a15,0xdd156715,0x150114,0x73152a15,0x82147b14,0x87148614,0x87147514,0x74148814,0x88147414,0x56146614,0xb3155d15,0x6b177614,0xbf177117,0xc015a617,0x7b15fc17,0x7f157e15,0xd8157815,0x9815ba15,0xc7159715,0xc015c615,0x6616ef15,0xe0165b16,0x8a17c216,0x8a158917,0x89158b15,0x8c158b15,0x89158815,0x88158c15,0x8d158c15,0xb3179315,0x2217a717,0x24172317,0x68166717,0xe2165f16,0xdd16de16,0x4d168a16,0xc0168216,0xbf17be17,0xa6159217,0x9815bb15,0xa0179f17,0x78157d17,0x7a157f15,0xb515b616,0xb116a915,0xf416ad16,0xf515f215,0xa9159c15,0x8e15a815,0x84165116,0xa3159316,0x26159215,0x5b175917,0x3d174117,0xec173717,0xeb15ed15,0xb415b315,0x6715ab15,0x64165b16,0x8b164e16,0x7d168316,0x82178317,0x9a164817,0x35167f16,0x36163816,0x9017ae16,0xee17a417,0xed16ea16,0x93165316,0x4d167d16,0x82168316,0xe315e716,0x7d15e015,0x7c169616,0xce158a16,0x8a15cf15,0x8b15cf15,0xd015d215,0xd215d115,0xd315d115,0x4316ac15,0xbf16ab16,0xda15d917,0x12175f15,0xe116a517,0xe416e316,0xd315d716,0xca15d615,0xa215d815,0xa215ca15,0xb9159015,0x9015ca15,0x6c170d15,0x14166a16,0xc616c716,0x5c172916,0xa8172817,0xa616a716,0xb815f316,0xbe15c315,0xb615bd15,0x3b173815,0x59173617,0x60166216,0x42174416,0xac174317,0xb3161f16,0xef15ea16,0x4b15ec15,0x80168116,0x72171e16,0x1a167116,0x1b171717,0x16171717,0xbc15b017,0x9415c115,0x7e173f15,0x70174017,0x74177517,0xc3160017,0x7c160716,0x7a174917,0x8d15e817,0x7b158c15,0x78157a15,0x2e162915,0x88162b16,0xf7158d15,0xa315a915,0xf515a415,0xf415f315,0xa215a115,0xf7157a15,0x87158215,0xfb15fc15,0xfc15f815,0x8615f815,0x2c172515,0x6b172b17,0x4f174e17,0x8515de17,0x1615df15,0x19171a17,0x8415a517,0x415a417,0xf17c616,0x99179c16,0xed179b17,0xef16ec16,0xfb16fc16,0x1116fd16,0x7e162216,0xf4160a17,0x2916f516,0x2c162b16,0x2d160216,0xb3162e16,0xcf161b16,0x5163417,0x39162f16,0x3c163616,0x12165b16,0x3d16f016,0x5160216,0x5163d16,0x58163316,0x69176817,0xaa162117,0x3716af16,0x3f163116,0x8d158316,0x7015e215,0x76170716,0x23164116,0x2a162a16,0x44162916,0x2a163a16,0xe164416,0xf16c416,0x34173516,0xd7173317,0xd515d415,0x45162e15,0x46164316,0x43164716,0xb0171316,0x46171515,0x50164f16,0xf616f516,0x3816f716,0xbb173317,0xc1160416,0x2117c816,0x75167317,0xcf15d016,0x6e15d115,0x61165916,0x61166c16,0xbd165f16,0x9a159115,0x2317cf15,0x72164216,0x58167316,0xb5167a16,0x52167915,0x85168f16,0x6f165716,0x42165516,0x43174017,0x79171317,0x6f171917,0x86168416,0x1b171916,0x7c171417,0x4a174b17,0xba17b817,0x8717b717,0x9a17a117,0x88164d17,0x4d164a16,0x88168916,0x8e168316,0x51168416,0x84168516,0xb515b316,0x9015b415,0x8f169216,0x87164a16,0x51168116,0x4e168c16,0x8d165116,0x85168c16,0x86169216,0x9217a716,0x88179317,0x87168a16,0x90165416,0x54165216,0x90169116,0xba17a916,0x5317aa17,0x86167d16,0x86165316,0x93165416,0x96169516,0x94169316,0x56169516,0x53169416,0x95165616,0xa0169416,0x9b179c17,0x7c165517,0x55165616,0x7c166f16,0x99164b16,0x4b164816,0x99169816,0x4b169716,0x9a168016,0x97169816,0x99169a16,0x7f169816,0x97169a16,0x97167f16,0x9d168016,0x9f172716,0x4f16a216,0x96169f16,0x7c165616,0xa217bd16,0xab17be17,0xa816a916,0xa916aa16,0x4716ab16,0xab16aa16,0xdb16d316,0x4015fa16,0x3416bc17,0xaf165017,0x71164716,0x76177317,0xe0161d17,0x7f16e116,0xa115da15,0x9d15c715,0xa715c615,0xa1164f16,0x9417b616,0xec17a817,0xea15c415,0x8b17c515,0xce178c17,0xcc162817,0xbc16b517,0xe4162116,0xe1158615,0x2e16ba15,0xf816a017,0xfc16ff16,0x316ff16,0x3016fc17,0xa016ba17,0xc815fa16,0x4c17ca17,0x4f169f16,0xbe172e16,0x15169d16,0xe816e516,0x81178316,0xe178217,0xd170017,0x1916e417,0x50161a16,0x13174a17,0xe116e217,0x6416e016,0x8c17c516,0xfc170217,0x80170316,0xfa178317,0x1170515,0xa9170d17,0x95179417,0xeb16f017,0x1516ee16,0xe916ec16,0x7e164c16,0x40169b16,0x37163816,0xd315cd16,0xf315d115,0xf116f216,0xf116f316,0xda160d16,0xd16f316,0x3216b816,0xab16b717,0xb015aa15,0x2d167e15,0x6f169b17,0x73177217,0xf716fa17,0xfc16fb16,0xf816fd16,0xfe170016,0xe216ff16,0x84157b15,0x4170515,0x96170317,0xf6159c15,0x6c170c15,0xd816fd16,0x816d716,0x816d816,0xf9160a16,0xa16d816,0xef15ee16,0xfa15e915,0xf916f216,0x43162c16,0x8164116,0xb170c17,0xb915a617,0x15158a15,0x8170917,0xb170817,0x81170a17,0x82168a16,0x46174516,0x60174a17,0x5e16f616,0xca161e16,0xd716c716,0x8160b16,0x9315c916,0xe15a015,0x1170d17,0x65171217,0xf4176717,0xf115c315,0xb915ce15,0x9e15cb15,0x9a158f15,0xa3178615,0xdc15d915,0x88178716,0x37174217,0xab173917,0xb1171915,0x2d163e15,0x77163d16,0xbb17bc16,0x8f15a617,0x5b15b715,0x26172a17,0x71171d17,0x27167416,0x26172517,0x2b172117,0x80172c17,0x8615f917,0xe515e415,0x7b15e615,0x4b177917,0x27169b17,0x7b169e17,0x75172116,0xd1162616,0x24162716,0x22172b17,0xa0169d17,0x25172e16,0xca17cb16,0xf916f317,0xe616f216,0x8615e715,0xd215cc15,0xcc15d415,0xcd15d615,0x9615c815,0x3159f15,0xd616d116,0x1016cd16,0x9d16cb17,0xc615c515,0x2f162d15,0x22162e16,0x59172017,0xf516f917,0x3f16f716,0xbb173917,0xbb173f16,0x2c16b516,0x29163b16,0x8215e816,0x3b15e015,0x39163e16,0x9615bd16,0x7415bf15,0x1d15b116,0x2d172717,0x92167317,0x86165416,0x37174816,0x6c173d17,0x57175a17,0xa815ac17,0x6215a715,0xb160116,0xdb158516,0x615df15,0xf216f417,0x4c165116,0xb0165716,0xab16ac16,0x56175516,0x55174d17,0x4c174d17,0x55175717,0xf5174c17,0xf615f015,0xd315fe15,0xe9161016,0x16161716,0x52173a16,0x60175417,0xb516c917,0xb5176016,0x7c16a516,0xdc15e215,0xcc16cd15,0xdd176116,0xde158115,0x5f173515,0xe0176217,0xe115e415,0x32173115,0x6416a017,0x63173b17,0x5a175817,0x66175017,0x67176917,0x68176917,0x66176717,0x65176717,0x6b176a17,0x5a174f17,0x4f176a17,0x4f175a17,0x87175017,0x78179417,0xda161316,0x74160d16,0x70176e17,0x1016cc17,0x57176117,0x4e174c17,0x57176c17,0x6c174e17,0x77174e17,0x8617a217,0x5c17be17,0x66176917,0xed15c417,0x28159415,0x5f176317,0x49171d17,0xb0175517,0x17171b15,0x78177c17,0x6f177b17,0x2d167316,0xa170817,0x15171517,0xaa15af17,0x1515a715,0xa715aa17,0xac15aa15,0xdb15a415,0xdb170916,0x8415a416,0x7b171f17,0x167216,0xff177e16,0x2a175d15,0xad175e17,0xb515b415,0xdc15fb15,0x7116dd16,0x6e176d17,0x9e179917,0x99179817,0x9e179d17,0x9d179f17,0x9f179c17,0x9d179e17,0xa160917,0xa2160816,0xaa17a617,0x54174d17,0x82175117,0x7d177e17,0x78167717,0x8d178e16,0x7717a317,0x77178d16,0xab178e16,0xae17ad17,0xac17ab17,0x9017ad17,0x8d17ac17,0xad179017,0xa317ac17,0xae17ab17,0xae17a317,0xb417a417,0xb317b617,0xb0179217,0x92179117,0xb017b117,0xb617a717,0xe017a817,0xc416de16,0x9217b217,0xe617a617,0xe516e816,0xb4179416,0x94179317,0xb417b517,0x9017a517,0x91179117,0xa517af17,0xb217b017,0x9717af17,0x9517b817,0xb9179717,0xa517b817,0xa617b217,0xa0179817,0x9817aa17,0x9717aa17,0xe3178917,0x7916e216,0xbb167716,0xbc17bb17,0x7917bd17,0xbd17bb16,0xbd167917,0x4917be17,0x7a177817,0xb9173117,0xba16b616,0xaa179717,0x79167a17,0xa617c016,0xc0167a15,0xd715d217,0x9515d515,0xa917b717,0x8f15b717,0xbb159215,0x9215b715,0xd415fe15,0x8516d516,0xa315a517,0x72177615,0x8d177517,0xa317ab17,0x9b179a17,0x9a179917,0x9b17a117,0x8a17c117,0x8a178917,0xe016e217,0x56175316,0x8a174617,0xe217c117,0xcf162416,0x8c16ce16,0x8b168e16,0xc416e016,0x96178f17,0xe217c417,0x96178916,0x5217c117,0x4d174517,0xc315f217,0x32159415,0x36163516,0xc316e716,0xb917c517,0x9d169e16,0xb216ad16,0xf916af16,0xdc178415,0xf915e115,0x1015dc15,0xb171117,0xd915fd17,0x3d16d416,0x40174317,0xd2161017,0xc4162816,0xf16c116,0xcc162516,0x12162817,0x13165d16,0x615ff16,0x417c916,0xc715ff16,0xc917c717,0xc717c617,0xc915ff17,0xc8160417,0xbc16c017,0xb4173e16,0xd0162416,0xff162616,0x1170e16,0xd6160917,0x1c16d916,0xca16c216,0xc2160716,0x160c16,0xbf16c016,0xca162516,0xd216cf17,0x2817cb16,0x45165916,0x18162f16,0xe16c516,0x81178016,0x6c177f17,0x6a176d17,0xa2157817,0xc915d815,0xc6160f17,0x11162217,0x2517ce16,0xcd162216,0xce17cd17,0xcd17cc17,0xce162217,0xa816ab17,0xaa16a616,0xa9161f16,0x9170716,0xc5170617,0xbe159e15,0xae15b515,0x4615ad15,0xae165016,0xae164616,0x48164716,0x7e167f16,0x7e164816,0xc2164916,0xe6178b17,0x9f15b816,0xb8159115,0x9f15c815,0x9715c015,0xc0159315,0x9715ba15,0xa015c215,0xc2159815,0xa015c915,0xbe15c715,0x9e159515,0xbe159515,0xb9159915,0xc6159015,0x14161816,0x77177616,0xbf176b17,0xa615da17,0x8615fc15,0xe715e715,0x83158215,0x8315e715,0x81158415,0xfc158015,0x81158515,0xfc15fc15,0x8415e715,0x79157b15,0xfc157d15,0x7b158415,0x85157e15,0x7b15fc15,0x7e157d15,0xc215ba15,0xc9159815,0xc115c215,0xbc15c115,0xc115be15,0xc715be15,0xc915c015,0xc615c115,0xbb15b715,0xc115c015,0xc615c715,0xc015bb15,0xec16ef15,0xe0166616,0xc2178f16,0xb4179317,0x2217b317,0x23175917,0x69166717,0x5f166816,0x67165c16,0xc416e216,0x8a16de17,0x4d168916,0x7917c016,0x9217be16,0xa6158e15,0x9e179815,0x7d179f17,0x78157915,0xa6167a15,0xa915b615,0xb116b016,0xf115f416,0x8e15f215,0x51168d16,0xa0159d16,0x93159315,0x99159715,0xa2159015,0x9315a315,0x90159915,0x9d159b15,0xa3159315,0x92158e15,0x9b159215,0x93159315,0xa3159015,0x23172615,0x41175917,0x3d174417,0xef15ec17,0x6415ed15,0x67166516,0x5c166716,0x5b165b16,0x64166616,0x8c164e16,0x7d168b16,0x8315fa17,0x99164817,0x35169a16,0x38163716,0xad17ae16,0xee179017,0xea16eb16,0x94165316,0x4d169316,0x83164e16,0xe515e716,0x7d15e315,0x96169316,0xb316ac16,0xcf17cf16,0x43164217,0x47164316,0xac16ab16,0x4317cf16,0xbe17bf16,0xa515d917,0x5f16a416,0x60171217,0xe416a517,0xe1161a16,0xe216e116,0x16e316,0x6c16f817,0x5166a16,0xd170d17,0x6c170017,0x1e161416,0x2916c716,0x5c175d17,0x5016a817,0xf316a716,0xb815c815,0xc615b715,0xb715c515,0xbe15c515,0xa615b615,0xf315b715,0xb615ae15,0xc815bf15,0xc315f315,0xbd15b815,0xf315bf15,0xbc15b615,0xbd15c315,0xbf15bd15,0xb615b615,0xbe15b715,0xbc15be15,0x3815bd15,0x3b173a17,0x5a165d17,0x5c165b16,0x61165f16,0x5b165d16,0x9165c16,0x5d16db17,0x9165e16,0x5d165d17,0x61165c16,0x2f165916,0x5d163016,0x59166116,0x5d165e16,0x59165916,0x62163016,0xcb166216,0x60166316,0x59165e16,0x63166216,0x44166016,0x42174117,0xa916ac17,0x1f161f16,0xb3162016,0xe915ea16,0x4b15ef15,0x81164a16,0x1f171e16,0x1a167217,0x17171817,0x18171717,0x3f171617,0x7e177d17,0x3e177e17,0x40174017,0x3f173917,0x6d177017,0x177517,0xc316bf16,0x4a177c16,0x78174917,0x7b157915,0x7c157b15,0x29157a15,0x2e160216,0x915a416,0xa7171517,0xa915a815,0x1515a415,0xa315a717,0xa415a515,0x8e15a915,0xa415a315,0xa915a715,0xf615f515,0xa115f315,0xa215a315,0x88158715,0xf715f715,0x82158315,0x73172515,0x6b172c16,0x4e177717,0x8115de17,0x16158515,0x1a171817,0x8515a517,0x4178417,0xc617c716,0x9d179c17,0xed179917,0xec16ea16,0xfa16fc16,0xa16fb16,0xf416f116,0x2016b316,0x34161b16,0x32163116,0x33163216,0x5160516,0x30160116,0x30160516,0x34162f16,0x5163216,0x3d163916,0x33163316,0x36163216,0x38163616,0x3c163c16,0x44163a16,0x44163c16,0x39163b16,0x36163316,0x3b163c16,0xf0163916,0xed16ee16,0xed16f016,0x1216ef16,0xf0161716,0x5a165b16,0xf0161216,0x5b16ef16,0x50175816,0xaf176817,0x2116b216,0x1f162116,0x4116aa16,0x37164016,0x35163716,0x31163116,0x2d163416,0x2d163116,0x2c163e16,0x37164116,0x3e163116,0x3f163f16,0x37162c16,0x8415e216,0x83158315,0x8d15f715,0xc167015,0x2a170717,0x3c163a16,0x40163c16,0x43164116,0x23164216,0x3c162a16,0x41164116,0x23164316,0xc5160e16,0x3516c416,0x34173c17,0xd615d717,0x4315d415,0x2e162b16,0x2f162e16,0x45164516,0x43164616,0xf170a16,0x13171317,0xb0171417,0xaf15b015,0x15171515,0x13170a17,0xf416f517,0x3616f616,0x12176417,0x12173617,0x48173517,0x38175217,0x35173617,0x37173317,0x38174817,0x36173817,0x33173317,0xb6173117,0x3916bb16,0xbb173717,0x38173716,0xb6173317,0x416bb16,0xc1160f16,0x2c172116,0xd0167317,0xcf159915,0x58166e15,0x6c165916,0x6e166d16,0x68165f16,0x5f166b16,0x6a166b16,0x6e166c16,0x5f166116,0x6c166a16,0xb815bd16,0xcf159115,0x23161b17,0x79167716,0xb515b516,0x7415b215,0x7415b516,0x78167116,0xb5167716,0x68166b15,0x69166916,0xb5167816,0x69166b15,0x7615b516,0xb5166b16,0xb5167615,0x6e167115,0x70166d16,0x76167016,0x72167116,0x75167b16,0x71167016,0x58167216,0x70166e16,0x57166f16,0x72165816,0x73167516,0x6f167316,0x58165816,0x72167016,0x90165216,0x42168f16,0x40173917,0x4b171317,0x79177917,0x19171c17,0x14171917,0x7e171317,0x80167f16,0x81168016,0x82168216,0x84168316,0x85168416,0x86168616,0x7c167d16,0x7e166f16,0x6f168016,0x82168016,0x7c168616,0x6f166f16,0x84168216,0x1a171916,0x7c171b17,0x4b177b17,0xb917b817,0x8717ba17,0xa117a217,0x8b168317,0x51168e16,0x85165216,0xb215b316,0x9015b515,0x92169116,0x88164a16,0x85168716,0x92168f16,0xa617a716,0x88179217,0x8a168916,0xb717a916,0xa017ba17,0x9c179f17,0x98169717,0x9f164b16,0x9b169c16,0xa0169b16,0x9d169d16,0x27169e16,0x9b169f17,0x9f169d16,0xa2172716,0xa116a216,0x96164f16,0x56169516,0xbc17bd16,0xd517a217,0xd916d416,0xd116d616,0xce16d016,0xca16cf16,0xc117ca17,0xca16c416,0xc516c417,0xca16ce16,0xc816c517,0xc716c616,0xc516ce16,0xd016c816,0xc816ce16,0xc816d016,0xd616c716,0xc716d016,0xc216ca16,0xd616c316,0xca16c716,0xc016bf16,0xc817c816,0x3f177d17,0xb5173f17,0xc916c916,0xcd16cc16,0x6216cb16,0xc916d716,0xcb16cd16,0xc816bf16,0xc3173f17,0x3f16bf16,0xcb16c917,0xc916d716,0xd816d716,0x3f16c316,0xca16c917,0xc916c316,0xc916ca16,0xd616d816,0xd816ca16,0xd816d616,0xd916f316,0xf316d616,0x5d16da16,0xd916db16,0xda16f316,0xd916d516,0xdb16da16,0xf9178416,0xda16d515,0xcb16db16,0xd316d217,0xd516d316,0xdb16db16,0xfa15f916,0xcb15fa15,0x6216d317,0x3b176317,0x53173a17,0x3c174717,0x3b176217,0x47173a17,0x34173d17,0x3b173c17,0x3d173a17,0x3b174017,0x40173a17,0xb716bc17,0x34173216,0x40173b17,0x3216bc17,0x47173417,0x5016ae16,0xa8165016,0x5016a916,0xad16a916,0xaa16af16,0x50164716,0xaf16ad16,0x6f177116,0x1d177317,0xe016df16,0xdb15a116,0x7e157e15,0x7f157d15,0xa6157f15,0xda15da15,0xa315d915,0x7e15a115,0xda157f15,0xa115a315,0x9515c715,0xa7159d15,0x4f165016,0xb517b616,0xec179417,0xc415eb15,0xc317c515,0xce178b17,0x28161117,0xb2162116,0x2116b116,0xb016b116,0xb416bc16,0xb8162116,0xbc16b716,0xba16bd16,0xb916b816,0xbd16be16,0xbd16b916,0x2116b816,0xa616b016,0xa716a616,0xa116a116,0xa316a216,0xa416a316,0xa316a516,0xb516a516,0xa116a616,0xb616a316,0xb816b916,0xb616bb16,0xa616b816,0xb516a316,0xb816bb16,0x2116bc16,0xb516a616,0xbb16b516,0xe416bc16,0x8615e615,0xbd16ba15,0xf8172e16,0xff170016,0x116ff16,0x30170317,0xba16b817,0xcb17ca16,0xfa15fa17,0xc8177d15,0xc117c817,0x4c17ca16,0x9f169c16,0xbd172e16,0x1516be16,0xe5161916,0x7f178316,0xe178117,0x16fe17,0xe516e417,0x50161916,0x4e174f17,0x4d174c17,0x50174517,0x4c174e17,0x68171117,0x13175017,0x11170f17,0x4b174a17,0x4c171317,0x4a174517,0x11171317,0x50175017,0x4a174c17,0x65178c17,0x64166416,0xc516e716,0xfa170217,0x8016fc16,0x83177f17,0x3170517,0xa9170117,0x9417a817,0xe916f017,0xe916eb16,0x15161616,0xe8161516,0xec166616,0xeb16ea16,0x66161516,0xec16ec16,0xe916eb16,0x9c169b16,0x4c164c16,0x7e164916,0x3c164016,0xd1163816,0xce15cf15,0xd615cd15,0xd115d315,0xcd15ce15,0x3016b815,0xab173217,0xae15ad15,0xf315ae15,0x9c15f615,0xaa15ac15,0xf615ae15,0xb0159c15,0xab171615,0xae15ab15,0xaa159c15,0xb015af15,0x9c15ab15,0x7e15aa15,0x2d166f16,0x6e176f17,0xe2177217,0x7b157c15,0x9f15f615,0x96159615,0x9c15a915,0xf716fb15,0x60166016,0xb166316,0x70170c17,0xfb166d16,0xb166016,0xf8166c17,0xfd16fd16,0xb16fb16,0x6d170c17,0xfd166c16,0xc170b16,0xed15ee17,0xfa15ef15,0xf2170216,0x2b162c16,0x8164316,0xc170717,0xea158717,0xc415c415,0xc215c115,0xc4158715,0x8915c215,0x87158815,0x89158a15,0x87158715,0xba15c215,0xbb15c015,0x8a15a615,0xba158715,0xc015ba15,0xa615a615,0xd8157f15,0xd815a615,0x8a15ca15,0xa615ba15,0xca15a615,0x8115b915,0x8a168716,0x48174516,0x3d173d17,0x46174717,0x49174617,0x45174a17,0x46173d17,0xf7166017,0x1e16f616,0xca161c16,0x6216d716,0xc9160b16,0x9315c015,0x11176815,0x12171217,0x65176417,0x68176717,0xf4171217,0xc315f315,0xcd15cc15,0xce15ce15,0xb9158a15,0xcc15cb15,0x9115ce15,0xf6159f15,0xf015f615,0x94159415,0xe915ee15,0xe815e915,0x8b158c15,0x9915cf15,0x8c15e915,0x91158b15,0x9415f615,0xe9159415,0x8b158b15,0x97159915,0x97158b15,0x9a159815,0x94159115,0x8b159415,0xa0159815,0x95159d15,0x98159415,0xa915a015,0x9a159615,0xa0159415,0x9e159515,0x92159b15,0x95159415,0x8e159e15,0x9a15a915,0x94159a15,0x9e159e15,0x8f159215,0x8e158f15,0x86159a15,0xa3178517,0x8616dc15,0x42178717,0x37174117,0xb315b217,0xab15ab15,0x19171615,0x1c171917,0xb115b117,0xab15b215,0x39163d15,0x2d163e16,0x3d160216,0xa2167716,0xa617bc17,0x8f158e15,0x5e175b15,0x1d172a17,0x71171e17,0x29172a16,0x28172817,0xa216a317,0xa2172816,0x2a172716,0x27172817,0x24172517,0x26172317,0x27172a17,0x23172517,0x21172617,0x2b172217,0xf8158617,0x80178015,0xf915fa17,0xe115f915,0xe4158615,0xe515e315,0x78177b15,0x7b177917,0x21172016,0xd0162617,0x2416d116,0x2b172517,0x28162517,0xf317cb16,0xf916d816,0xe515e616,0xcc15e715,0x9915cb15,0xd0159915,0xd215d215,0xd415d515,0x9915cc15,0xcc15d215,0xd615d415,0xbf15c815,0x3159615,0xd1162716,0x6116cd16,0x9d171017,0xc5159b15,0x34162d15,0x22162f16,0x20172117,0xfa16f717,0xf916f916,0xf5160a16,0x3f162c16,0x3b163b16,0x29164416,0xe915e816,0xea15ea15,0x82158715,0xe7158215,0xe815e015,0x8215ea15,0x3f163b15,0xbd163e16,0x96159a15,0xb2167415,0x7315b115,0x27172516,0x9b172717,0x92172d16,0x54169116,0x6a176c16,0xac175a17,0xa8159c15,0x30166215,0x85160116,0xdb157e15,0x3170215,0x6170417,0xf416f617,0x4170216,0xf4170617,0xf216f116,0x216f216,0x56170617,0x54165316,0x52165416,0x51165116,0x4d164e16,0x4a164d16,0x4b164b16,0x49164816,0x4f164c16,0x4b164616,0x4c164916,0x4d165116,0x56164b16,0x51165416,0x55165716,0x59165616,0x57165816,0x46164c16,0x45164516,0x57165916,0x56165716,0x51165116,0x4c164b16,0x45164c16,0xab165716,0xb016a616,0xa916b016,0xf516ac16,0xf015f215,0xd515fe15,0xe916d316,0x1716f016,0x53175416,0x3a173a17,0x52173817,0x51175217,0xdb175417,0x7a15a115,0x7a15db15,0xdd157c15,0xdf15de15,0xdb15df15,0xe2157c15,0xe8158d15,0xe815e215,0xe015e015,0xdc15e115,0xdd15dc15,0xdc15df15,0x7c15df15,0xe015e215,0xdd15dc15,0x81158015,0x3c176215,0x35173517,0x5f171217,0xe315e017,0x9b15e415,0x2f169e16,0x33173117,0xa0173417,0x2f169b16,0x34173117,0xa0173217,0x31172f16,0x30173217,0x6316a017,0x65176617,0x36176417,0x63173b17,0x64176517,0x8c166517,0x65178b17,0x8f178b16,0x67166917,0x8d166516,0x78178e17,0x69167816,0x78166516,0x8f166516,0x8d179017,0x92167817,0x90179117,0x93179417,0x97179217,0x94179517,0x98179917,0x87179717,0x99179a17,0x88178917,0x78178717,0x96178f16,0x89179617,0x87178717,0x97179917,0x92179417,0x87179017,0x94179717,0x96167817,0x94178717,0x78179017,0x5d161316,0x7416da16,0x6e177217,0xc916cc17,0xa2171016,0x86178717,0xd9178617,0xc417be15,0xed15eb15,0xee15ed15,0x94159415,0xc415c115,0xa4175f15,0x2816a316,0x66175c17,0xa3175f17,0x63172816,0x5f176217,0x66172817,0x5d176317,0x5b175e17,0x5b175d17,0x69175917,0x5d175c17,0x69175817,0x58175d17,0x59175d17,0x58175a17,0x20175917,0x1e171f17,0x59175a17,0x57172017,0x20175a17,0x1e172017,0x1d171d17,0x1c15b117,0x79171c17,0x49174917,0x56174617,0x57175517,0x49172017,0x55175617,0x1c171d17,0x55174917,0x1d172017,0x1415b017,0x7c171b17,0x78177a17,0x20171f17,0xff167b17,0x160415,0x7160016,0xb416b416,0x7e173e16,0x22177e17,0x25162516,0x6162416,0x25177e16,0x160616,0x7e16b416,0x6177e17,0x5d15ff16,0x2a172917,0xab15ad17,0xdf15b415,0xfb161d16,0xfc15fb15,0x80158015,0xdc15dd15,0x85178415,0xfb178617,0xdc158015,0x86178415,0xfb16dc17,0x8415dc15,0xde16dd17,0xfb16df16,0xdc178415,0xdf16dd16,0x6e15fb16,0x71176f17,0x6b177117,0x6d176a17,0x6e177017,0x6a177117,0x1e176d17,0x18161416,0xf160e16,0xe160616,0x24160616,0x27162616,0xe160316,0x26162416,0xe161816,0x18162616,0x3162616,0x18161e16,0x9160316,0xfe15fd16,0x3161e15,0x7160916,0x1c160c16,0x716b416,0x1f161c16,0xb4162116,0x1f162016,0x1016b416,0x11162816,0x7e161116,0x80178017,0xfb15f817,0x1d15fb15,0xfb16e116,0x1a16e115,0x11161016,0xfe178016,0x80161015,0xfb178017,0x80161a15,0x19161a17,0xfe160916,0x9178015,0x19178016,0x16161516,0x9161716,0x15161916,0x17161516,0x12161216,0xd161316,0x12161516,0x1b160d16,0xb4162016,0x2a162916,0x1b162316,0x1c16b416,0x29160216,0x23162316,0x1c161b16,0x1c162316,0x1161e16,0x2160516,0x23160216,0x9161e16,0xd161516,0xd160916,0x216f116,0x9161e16,0xb160816,0x1160116,0x9160216,0xf1160916,0x8160a16,0x9160116,0xa017aa16,0x9b179b17,0xa217a117,0xa3167717,0xa417a417,0xa617a517,0xa717a617,0xa817a817,0xaa17a917,0x9b17aa17,0xa217a217,0xa4167717,0xa817a617,0xa217aa17,0xa617a417,0x56174d17,0x82175417,0x7e178117,0xb517b417,0xa717b617,0xb617b317,0xdf16e017,0xb216de16,0x9217b117,0x6416e717,0xe5166616,0xe316e416,0x8a16e316,0xe317c217,0xe617c216,0x6616e716,0xe516e816,0xe616e316,0xe716e616,0xa516e816,0x9017a417,0xb0179117,0xb017af17,0xb217b117,0xaf17a517,0xe217b217,0xdc16dd16,0x8816dc16,0x89178917,0xe3178a17,0xdc16e216,0x49178916,0x78177917,0x2f173117,0xba16b917,0x9717b917,0xd315d217,0x9515d715,0xb717b817,0xfd15fe17,0x6c16d415,0x76177717,0x73177617,0x72177217,0x75177417,0x6c177517,0x8d177617,0xab17ac17,0x47174617,0x53175317,0x56175417,0x25162417,0x8c16cf16,0x8e168d16,0xc116e216,0x96179617,0xc4178f17,0x51174d17,0x52175217,0x45174817,0xf0159417,0xf215f215,0xc315f115,0xbc15c315,0x32159415,0x35163116,0xe616e716,0x9d17c316,0xb916be16,0x2f16b916,0xad169e17,0xb216b116,0xcb166316,0x10171016,0x6016c917,0x12176017,0x11171117,0xa170f17,0x63170b17,0x11171016,0xb170a17,0x60171017,0xfd171117,0xd9160915,0x44173d16,0x10174317,0xd216d316,0xcd162516,0x1217cc17,0x5d165a16,0x4016bc16,0x24173e17,0xd016ce16,0xfe16ff16,0x9170e16,0xd6160316,0xc161c16,0x716c216,0xc216c316,0x4160016,0x1816c016,0xc516c816,0x7e178016,0x6c178117,0x6d177517,0x7a157817,0xc915a215,0xf160617,0x6b166a16,0x7167616,0x9170817,0x76166a17,0x4170716,0x6a170517,0xf6165e16,0x4170616,0x7166a17,0x5e170917,0x6170616,0x7170417,0x9b15c517,0xb5159e15,0xae15b615,0x8f17c215,0x8b178b17,0xe617c317,0xcb159916,0xc615b915,0x1816c816,0xe2183516,0xfc17df17,0x281b2519,0x1f18511b,0x3e182218,0x99229622,0xc617fd22,0x5a19c819,0x24185718,0xf205718,0x2c205620,0x2a190c19,0x5d186019,0x23182818,0x22190b19,0x30191019,0xe5191219,0xe1211c20,0x2d186920,0xea182e18,0x79197b17,0x69183019,0x6182e18,0xb220522,0x6f187022,0x73186e18,0x72187118,0x6e186c18,0x92186f18,0x94259325,0x6b196325,0xee186818,0xed1d531b,0xa01d9f1b,0x931da11d,0x94181d18,0x2198f18,0x89199118,0x4c188818,0x8a188b18,0x33183418,0x8c189118,0xc20ac18,0x8f205720,0x1b188d18,0x5b185f18,0x31185c18,0x76207720,0x91189220,0x93183518,0x1c189018,0xc018c118,0x97184a18,0x36189518,0xa220a318,0xbc203020,0xba26ce26,0x1520e926,0x9f20e821,0xa218a318,0xae18b318,0x118af18,0xff192819,0xad18a818,0x2518ac18,0xab1aae1c,0xb41c2b1a,0x461ab11a,0x4418eb19,0x2620de19,0x9120e021,0x931d921d,0x2120d71d,0x4e20dc21,0x4b20ea21,0xf271121,0x8727cb27,0x631a691a,0xc218c31a,0xba184a18,0xb518b418,0xc418c518,0x8d184e18,0x1b181a18,0xc6183218,0x3118c718,0xc818c718,0x82228f18,0xa0227e22,0x6d227022,0xc722c922,0xd022ca22,0xcc189a18,0xad22ae18,0xc322b022,0xc422c122,0x8c222922,0x44223022,0x4218d518,0x4018d618,0x2c184218,0xcd18cf18,0xca182918,0x2718ce18,0xd018ce18,0xd0182518,0x4818d118,0x4418d418,0xd3184b18,0xd5184818,0x841dd61d,0xdb18391f,0x3518dc18,0x32263b26,0x3c263026,0x42263626,0xd618d518,0x7d1c8018,0x5c1c761c,0x571b5b1b,0xd8183e1b,0x8218d918,0x83217821,0x3818da21,0x84183c18,0x87188618,0x8b17fa18,0x8d198919,0x8f180019,0x1f184f19,0xd2185018,0xb318b518,0x9818dc18,0x8c183918,0xe4189118,0x36189218,0xbe189518,0xbc26cd26,0x791bca26,0x821c7e1c,0xd188418,0x87188419,0x93190f18,0x10189618,0x88188719,0x90191118,0x12189318,0x1818f919,0x60191919,0x64275e27,0xc4184a27,0xfb18c318,0xfa191718,0xa1189d18,0x7918a018,0x781b7b1b,0x2918ff1b,0x1518fd19,0x971a9a1c,0x28185a1a,0x25185d18,0x231aa81c,0xb618bb1c,0xaf18b718,0xab18aa18,0x3518f018,0x3218ee19,0xaf20a220,0xfc27b220,0x7427c026,0x75202f20,0x3718dd20,0xd218de19,0xae20ad20,0xf20ee20,0xea20eb21,0x39193618,0x3818de19,0xa018e119,0xa418a518,0x2d186318,0x74186618,0x76187718,0x3f18fc18,0xb5194119,0xb318b118,0x4118fe18,0x194319,0x4318fe19,0x9d259c19,0x2259e25,0x45190019,0xd20be19,0xbf20bf21,0xba18b918,0xe7194218,0x4e194018,0x4c18f319,0xf7192b19,0x32195018,0x69213021,0x7194d21,0x45194b19,0x4220e421,0xb7219421,0x7721961f,0x76217f21,0x54195521,0x6d195619,0x6f1d6e1d,0x2018d11d,0x81182518,0x80217121,0xcf182f21,0xcd182c18,0x2c182918,0x5a184318,0x40195b19,0x3e18d818,0x5d183f18,0x1195e19,0x1c1a181a,0xcb20111a,0x9a20151f,0x73227822,0x5022b622,0xde224c22,0x72197117,0xcd22d419,0xa222d122,0xa1229e22,0x83195822,0x5d188118,0x5a1d571d,0x4c1c5a1d,0x4d1d501d,0x57188618,0x7917e819,0x78197719,0x7a187b18,0xe3197318,0xe117e617,0x71197317,0x801d7f19,0x781d811d,0xdd197519,0x711bd917,0x7e1bd61c,0x80188118,0x8a1d8918,0x821d8b1d,0x84188518,0x861d8518,0x761d871d,0x78187918,0x8017d718,0x81197e19,0xf417f219,0x8e1d8d17,0x821d8f1d,0xd117d319,0x84198617,0xb117d019,0xb31db21d,0xae1dad1d,0x411daf1d,0xcb222c22,0x88198a22,0x2517d419,0x2219f81b,0x8a198c1b,0x8317d619,0x6a1a6d1a,0x8c198e1a,0x9417d819,0x95180719,0x8e199019,0x8b17da19,0x8d17fe19,0x9e1d9d19,0x721d9f1d,0xde199219,0x51275017,0xf1275d27,0xf025f725,0xe2181025,0x5519e019,0x58185918,0x9217da18,0xf0199019,0x7f198117,0x1819e719,0xee199918,0xf618a618,0xc6268718,0xa268626,0xd719d918,0x13205819,0xad205a20,0xab26d626,0xd81ad426,0x641b3f1a,0xa91aa61b,0x1419e81a,0x6719e518,0x6a186b18,0xe419ab18,0x88197617,0x8726c526,0xc4268a26,0x24268826,0x99269a27,0xec19a926,0xbb19ed19,0xee19eb19,0xed19a719,0xc119ef19,0xf019be19,0xfd260519,0x92260a25,0x861f8a1e,0x5926e51f,0x2a26ef27,0x22273027,0x3b1b3927,0xfc1b3e1b,0xfa19cc19,0x9b199a19,0x4619fb19,0x411b441b,0xcf19d21b,0x2719fd19,0x291c2c1c,0xb61b081c,0x4e19e919,0x54275027,0xa21a0227,0xb71a0119,0xba1c471b,0xa619a81b,0x51a0419,0x419a81a,0x719b01a,0xe71a081a,0x49224521,0xc11cd622,0xc1cd51c,0xf919fb1a,0xc1a0f19,0x101a091a,0xf1a0c1a,0xbf27c81a,0x1127c627,0xb1a0f1a,0x311be31a,0xb81be21c,0x541b4a1a,0x1119ff1b,0xff1a131a,0x1119fe19,0x131a171a,0x1a151a,0x171a131a,0xff1a001a,0x181a1319,0x161a151a,0x161a181a,0x181a191a,0x151a171a,0x6a1c681a,0x1a1c731c,0x1b1a191a,0xe825e21a,0x1c25ec25,0x11a021a,0x2b1abc1a,0x201b261b,0x221a211a,0x831bca1a,0x231bc71c,0x221a201a,0x681c741a,0x271c721c,0x261a281a,0x2b1a2a1a,0xa01a271a,0xa21a0119,0x2b1a2d19,0x2d1a2a1a,0x2b1a2e1a,0xc21c131a,0x381bc51b,0x3e273227,0x2e1a3127,0x311a2d1a,0x2e1a321a,0x7a1b791a,0x151b7c1b,0x1c271427,0x371a3627,0x361a321a,0x311a321a,0x331a3a1a,0x3a1a381a,0x331a361a,0x361a3c1a,0x3c1a3a1a,0x361a371a,0xfe26091a,0x96260b25,0x16246d24,0xb1b0825,0x401b0e1b,0x3f1a3b1a,0x411a401a,0x371a3c1a,0x3c1e381e,0x411a451e,0x451a401a,0x3f1a401a,0xf821ac1a,0x46220c22,0x421a451a,0x481a4d1a,0x4e1a4a1a,0x461a4c1a,0x4626fb1a,0x61264726,0xa91bab1c,0x511a4e1b,0x521a4c1a,0x4e1a511a,0x4e1a521a,0x521a4a1a,0x511a551a,0xa21faf1a,0x81e911f,0x12249625,0x621b6625,0x5a1b671b,0x551a591a,0x571a5b1a,0xa11a581a,0xc224c124,0x89275f24,0x7b269026,0x3a203820,0x611a6020,0x601a5d1a,0x5c1a5d1a,0x5c1a601a,0x641a5f1a,0x601a611a,0xdc24de1a,0x6524d824,0x631a621a,0x621a661a,0x661a651a,0x6419ec1a,0x661a671a,0xc21a651a,0xc7269f27,0x671a6827,0xef1a651a,0x6719ed19,0x6719ef1a,0xf11a681a,0x6b1a6819,0xef19f11a,0x901a6819,0xa61eba1f,0xf119f31f,0x771a6b19,0xf91a0c1a,0xd1a8919,0x731a8b1c,0x6f1a6c1a,0x6e19f51a,0xf51a731a,0x6e19f319,0x731a761a,0xe81a711a,0xdb25d425,0xf51a7625,0x771a7319,0x751a741a,0xf4251c1a,0x6b24ca24,0x6c1e5b1e,0x7d1a701e,0x721a721a,0x7e217b21,0xa192a21,0x1a194f19,0x1c1a1f1a,0x5419521a,0x51195519,0x54195619,0xcb25d319,0x8b25d125,0x221a8c1a,0x8f1a8e1a,0x931a8c1a,0x581a901a,0x931a961a,0x991a541a,0x501a961a,0x981a9a1a,0x9d1a971a,0x9a1a9b1a,0x9c1a441a,0xa01a4b1a,0x9e1aa11a,0x9f1a3e1a,0xa41a441a,0xa21aa11a,0xa41aa71a,0x351aa51a,0xa61aa91a,0xaa1aab1a,0x341aa81a,0xa91aac1a,0xad1aae1a,0xb11aab1a,0xae1ab01a,0x561a551a,0x291a5a1a,0xb21ab51a,0xbc1ac01a,0xe1abd1a,0xd1a8b1c,0xc41ac51c,0x5a1ac11a,0x5b25ca25,0xd11ad425,0xd81ad51a,0xd91ad51a,0x7726651a,0xcd266a26,0xc424f224,0xdb1cdd24,0xde1cde1c,0xdf1ae11a,0xe21ae31a,0xc1add1a,0x4b1b4f1c,0xda1ae41b,0xe51ad61a,0xe01ae61a,0xe41ae81a,0xe61ae71a,0xe81ae31a,0xe51ae61a,0xec1ae31a,0xe71ae81a,0xa01b9d1a,0x481b9c1b,0x441a3e1a,0x831b871a,0x11b881b,0x31b001b,0xed1af01b,0xf01aee1a,0xed1aea1a,0xef1af01a,0x7e1aea1a,0x821c7f1c,0xee1af31c,0xf31af11a,0xee1af01a,0x381c3a1a,0x51c3d1c,0x61afe1a,0xf31af51a,0xf71af41a,0xf51af81a,0xf51af71a,0xf91af41a,0xe1abf1a,0x4a27441a,0xfa274e27,0xf91ac21a,0xfa1afb1a,0x201a261a,0x211c241c,0x681d671c,0xfb1d691d,0xf61af71a,0x76267a1a,0x10267b26,0x121c0f1c,0x951b051c,0xff1a981a,0xfd1afe1a,0x61aff1a,0xff1afe1a,0x61a071a,0xdf25de1a,0x125e325,0xfd1aff1b,0x631e5f1a,0x11e681e,0x71a081b,0x71b011a,0xf61aff1a,0x85198717,0x81b0419,0x41b011a,0x31b011b,0xd219861b,0x7198817,0x51b021b,0x31b071b,0x81b021b,0x71b031b,0x41b081b,0x81b031b,0x419e91b,0x8d1a811b,0xb1a7f1b,0x91b061b,0x71b0b1b,0x4d1b061b,0x491a461a,0xea19eb1a,0x4b1b0819,0x73265526,0xb1b0e26,0x151b0d1b,0x581e571f,0x9b19f91e,0x10199c19,0xf1b0c1b,0x9d1c1b1b,0x111c1a1a,0xd1b0e1b,0xee1b111b,0x111b0e19,0x101b0d1b,0xf01b111b,0x1219ee19,0xf1b101b,0xfc1dfe1b,0x111dfa1d,0x121b101b,0x82277b1b,0x5d26d827,0x54276727,0xf01b1627,0x161b1119,0xf019f21b,0x171b1819,0x161b151b,0x171b141b,0x151b1c1b,0x1a1aaa1b,0xf219f41b,0xf21b1a19,0x1a1b1619,0x171b161b,0x181b1b1b,0x1b1b151b,0x191b151b,0x1a1b1b1b,0x601b181b,0xa71ba91c,0xf61b1b1b,0x2519f419,0x291a0d1a,0x1b1b1e1a,0x1e1b191b,0x1d1b1c1b,0x1b19f61b,0x201b1e1b,0x1d1b1e1b,0xf61b201b,0x201b1e19,0xf619f71b,0xe8203019,0xcc1ff21f,0xc91ac51a,0x201b211a,0x221b1f1b,0x2019f71b,0xf81b221b,0x2619f719,0xb91b231b,0xa31a3d1a,0x931a3e1a,0x94180619,0xf91a7419,0x961a7119,0x98259725,0x241b2825,0x291b271b,0x261b271b,0x281d291b,0x291ce41d,0x271b281b,0x4f1a521b,0x2a1a561a,0xc01abc1b,0x6719ec1a,0x2a19ed1a,0xc41ac01b,0x2b1b2d1a,0x2d1b2a1b,0x2c1b2e1b,0x2c1b2d1b,0xc81b2b1b,0xc41b2a1a,0x311b301a,0x301b2e1b,0x2f1b2d1b,0x2e1b301b,0x41b2d1b,0x51a241a,0x341b331a,0x121b311b,0x14193219,0x391b3819,0x381b341b,0x331b341b,0x8d1c5f1b,0x3d1c911c,0x361b371b,0x3a1b3d1b,0x3e1b3c1b,0x3d1b371b,0x3b1b3e1b,0x401b371b,0x3c1b3d1b,0x401add1b,0xdf1b3f1b,0x3d1b3e1a,0x3d1adf1b,0xdf1b401b,0x3e1ae11a,0x401adf1b,0xc71add1b,0x371a3219,0xd619db1a,0x731b2c19,0x37249b24,0x4619bf24,0xbc1a4c1a,0x511a4c19,0xb91a551a,0xb41a5119,0x5919b719,0xb41a5d1a,0x611a5919,0x5d19b11a,0xe119971a,0x681ae01a,0x6a1b691b,0xe319e11b,0xde1af219,0xf519e119,0xd819d31a,0xcd1a2819,0x2719d019,0xcd19ca1a,0x411a2b19,0x4d274327,0x23251a27,0x4b24c625,0x4d1b4c1b,0x441b4e1b,0x4e1b491b,0x441a821b,0x841b4e1b,0x501a821a,0x891b4f1b,0xfa25ea1a,0x5025e825,0x861a891b,0x251e201a,0x791e291e,0x6e257525,0x541b5626,0x571b511b,0x551b511b,0xd71c261b,0x801c291b,0x7d1c561c,0x571b5a1c,0xb21b581b,0x2c1a301a,0xb51ab21a,0x5e1b561a,0x3f183d19,0xf7202f18,0x20203a1f,0x19261426,0xaf1b5e26,0x691ab21a,0x68276127,0x5d1b5c27,0x981b621b,0xe8181619,0x17199619,0x61199818,0x5c1b5f1b,0xf19e41b,0x6419df18,0x611b5f1b,0x611b621b,0x651b5c1b,0x631b621b,0xe519ad1b,0x9f19ab17,0x9c1b6c1a,0xa31b6b1a,0x1e1b671a,0x1f1c1c1c,0x9627321c,0xb0273626,0xb224a724,0x781c7724,0x991c7e1c,0x6f1b6c1a,0x9c1a991b,0x211b6c1a,0x241ab31b,0x711b731b,0x3b1b741b,0x3c1bf71c,0x1425161c,0x76251f25,0x771b741b,0x931b751b,0x751a961a,0x721a961b,0x101a8e1b,0x7c1a911c,0x7d1b7a1b,0xbd1c331b,0x7e1c321a,0x7c1b791b,0x111bb91b,0x5f1c0c1c,0x62255b25,0x321aba25,0x801abd1c,0x7c1b7e1b,0x1c051b,0x691c071c,0x3a249f24,0x37189724,0x85189818,0x881a871b,0x801b851a,0x871b821b,0x851a871b,0x41c071b,0x411c0a1c,0x431a7e1b,0x861b8b1b,0x8c1b891b,0x8a1b891b,0x7b1a901b,0x8d1a8d1b,0x891b8b1b,0xcc1f8b1b,0x7f1f981e,0x7d1b901a,0x8c1b901a,0x911b8e1b,0x8f1b8e1b,0x781a931b,0x921a901b,0x8e1b901b,0x94276f1b,0xcf269726,0x531c511b,0x626fa1c,0x7027bd27,0x711a741a,0x931b961a,0x971b941b,0x7a1a781b,0x7a1b971a,0x971b921a,0x951b921b,0x951b961b,0x9a1b931b,0x961b951b,0xe1e051b,0x7b1e021e,0x961b9a1a,0x961a7b1b,0x7b1b9b1b,0x9a1a791a,0x1727031b,0x7027bb27,0xb3267226,0x7c1b9e25,0x9e1a7b1a,0x9b1a7b1b,0xe618121b,0x3a19e219,0x61196018,0x7c1b4319,0xad1b9e1a,0xb11ec11f,0xa11b461f,0xb01b481b,0x841bae1b,0xd01c021b,0x21ad31a,0x31ad31c,0x21c001c,0x51c011c,0x21ad01c,0x3f1a391c,0x61a3b1a,0xe81bec1c,0xbe27ac1b,0x727a427,0xcb1ac71c,0xa918a41a,0xa18a818,0x81c041c,0xf5199f1c,0x821a7619,0xba1eb61f,0x6118651e,0x81186218,0x88278027,0x9f1bb227,0xe1c4a1c,0xc1c0d1c,0xda25d51c,0x1025c925,0xc1c0e1c,0xcc27021c,0xfd27c127,0xfb191618,0x13262518,0x13261c26,0xbf1bbc1c,0xaa25d01b,0x925b625,0x81c0b1c,0x941c151c,0x151c121a,0x141c121c,0x141c161c,0xba1c131c,0xbb1cb81c,0x151c181c,0x2d1c141c,0x2b18f819,0x161c1719,0x9c1c131c,0xf91a7619,0xf6192f19,0xd0192d18,0xd825ce25,0x851b8825,0x1c1b871a,0xcb1bc81c,0x5b274e1b,0x1e277227,0x1b1aa01c,0x671aa61c,0x471aa31b,0xba1bbd1c,0x2920701b,0x23207220,0x211c1f1c,0xa51c231c,0x231c1f1a,0xa51aa81c,0x58185c1a,0x25185918,0x241c211c,0xf419311c,0xb2192f18,0xad18ac18,0x3318f218,0x5d18f019,0x5f201b20,0x31207520,0x2b207620,0x291c261c,0xdd23f51c,0xb823f723,0xbd18bc18,0x291c2e18,0x1e1c2c1c,0x3a263326,0x2d1be226,0xb71bdf1c,0x2e1ab41a,0x2e1ab71c,0xb71c2c1c,0x2f1c2c1a,0xba1c301c,0x301ab71a,0x2f1ab71c,0x321c331c,0x3d1c311c,0x441ee61f,0x7e1a8d1f,0x351a8a1b,0x311c331c,0x311c351c,0x221c341c,0x1c271527,0x5a1d1e27,0xcd1d551d,0xce211820,0x351c3920,0x391c371c,0x351ac51c,0x391c3a1c,0x211c371c,0x26200720,0x6419ae20,0x3d19ac1a,0x3b1c381c,0xd11c3d1c,0x21acd1a,0x31a1f1a,0xb627b01a,0x4227ac27,0x401c3c1c,0xd91c421c,0x411ad51a,0x3e1c401c,0xd91c441c,0x441c421a,0x401c421c,0x401c441c,0x881c411c,0x8c238923,0xd71c4623,0x2b1adb1a,0x301f241f,0x421b431f,0x4f1b411b,0x571a501a,0x481bc01a,0xc01c491c,0x481bbd1b,0x491bc31c,0x4d1c4c1c,0x4b1bb01c,0x4c1bc61c,0x6e1c4e1c,0x731a6c1a,0x2f272b1a,0xaa272927,0x521c4f1b,0x561ba41c,0x5b1c581c,0xa21ba31c,0xcf1c551b,0xa81c531b,0x541c521b,0xd21bd51c,0x591c571b,0x571bd51c,0x501bcc1c,0xa21c511c,0x5b1c581b,0xdb1bdd1c,0x901c5c1b,0xb5279327,0x661bb727,0xff1c671c,0x51e091d,0xad1baf1e,0x651c631b,0x641baf1c,0xaf1bb11c,0x491c651b,0x46195918,0x26202918,0x4f1ff720,0x6b1c4d1c,0x681b6b1c,0xd11b6c1b,0xc9213120,0x691ed420,0x751f651f,0x761c6f1c,0xab279a1c,0x54278827,0x6f1c521c,0x6f1c541c,0x7a1c751c,0x7c1c7b1c,0x191d3f1c,0x661d181d,0xf81cf91c,0x741c791c,0xd51c721c,0xd724d624,0x9f1bb824,0xec1bb51c,0xe225e025,0x801c8425,0x851c811c,0x861c821c,0x581c5b1c,0x5b1c801c,0x841c801c,0x871c851c,0x5d1c831c,0x841c5b1c,0x871c8c1c,0x5d1c851c,0x881c841c,0x851c8c1c,0x8d1c8a1c,0x891c881c,0x5d1c5f1c,0x8f1c881c,0x8a1c8c1c,0x161d3c1c,0x8f1d3f1d,0x8c1c901c,0xe425da1c,0xc325e925,0xe025d225,0x8e1c9525,0x8a1c931c,0x8e1c8b1c,0x3f207b1c,0x9c216e20,0x931c951c,0x911c611c,0xa71c961c,0xa51cad1c,0xca26d21c,0x8274126,0x3c233722,0xa21c1f23,0x571c1e1a,0x631e5b1e,0xa11c7a1e,0xa41ca01c,0x621c631c,0x1a1d461c,0xa51d261d,0x9a1c9f1c,0xac1cab1c,0xaa1c7a1c,0x981ca61c,0x7a1cab1c,0x641ca01c,0x651c971c,0x631c641c,0x971ca41c,0xf91c991c,0xaa1c641c,0x641c971c,0xaa1ca41c,0x819b31c,0xb019e91a,0xa81cab1c,0x331b371c,0xb01b321b,0xac1cb11c,0x771e6b1c,0x6e1e681e,0x691caf1c,0x4d1c6b1c,0x6e1c4b1c,0xb11c711c,0xb11c6e1c,0x5a1cb01c,0x70266926,0x7d277426,0xd1278627,0xcf1cce1c,0xc11cb91c,0x561cd41c,0x4a264026,0xda1ae326,0xd91ae81a,0xd81cca1c,0xeb1d0a1c,0xda1cec1c,0xdd221721,0x3e1bfe21,0xdb1d421d,0xb61cc81c,0x781b731c,0xdf1b701b,0xcb1cb41c,0x125f61c,0x8225fa26,0x811b7c1b,0x3e27461b,0xf2273927,0xf51af31a,0x1a18c51a,0xde188e18,0xdc1cac1b,0xea1ce91b,0xa71ce11c,0xa6248724,0xf21cf324,0xf71cf11c,0xf61cf51c,0xe224e71c,0x9251924,0x41d051d,0xc1d0f1d,0x121d0b1d,0xc21cb91d,0xce25c51c,0x3225c825,0x371acc1b,0x3b1a3c1b,0xf21a401a,0xed25eb25,0x9b278925,0xa1279227,0xf519f319,0x221d2919,0x2b1d211d,0x21ce21d,0x1d2b1d,0x1f1ce31d,0xe81cee1d,0x371b351c,0xd21acc1b,0xdb1ada1a,0x2f1d2c1a,0x2c1d2d1d,0x141d301d,0xfb1c491d,0x491d2e1c,0xfb1c481c,0x4b1bf61c,0x331bf41d,0x141d2c1d,0x2e1d321d,0x331d231d,0x311d141d,0x841d831d,0x321d851d,0x491c4c1d,0x491d321c,0x981d2e1c,0x96249b24,0xb522ba24,0x3722b822,0x351d311d,0x151d391d,0x4e1d171d,0x321c4c1c,0x381d3b1d,0x3b1d371d,0x351d371d,0x351d3b1d,0x501d391d,0x3a1d361c,0x31d471d,0x501d491d,0x361c4e1c,0xff1d3d1d,0x3c1cfe1c,0x3b1d3e1d,0x3b1d3c1d,0x511d391d,0x29250325,0xed253525,0x41253824,0x3c1d3e1d,0x3c1d411d,0x531d3f1d,0x3d1c511c,0x421d451d,0x451d411d,0x431d3f1d,0x531c551d,0x551d401c,0x441d401c,0x81d491d,0x7d1d071d,0x6a264226,0x441d4726,0x471d011d,0x551c571d,0x551d471c,0x4a1d441c,0x481d4b1d,0x571d4c1d,0x4c1d471c,0x491d471d,0x71d501d,0x241d541d,0x271b231b,0x591d4c1b,0x4e1c571c,0x4a1d4b1d,0x261d4e1d,0xe61d4d1d,0xed1aec1a,0x71d511a,0x521d0e1d,0x1c1d4d1d,0x131d351d,0x541d151d,0x501c5a1d,0x71d541d,0x661d511d,0x971c651c,0x331eeb1c,0x561f2d1f,0xd1d0e1d,0x521d571d,0x571d1c1d,0x551d1c1d,0x581d571d,0x5e1d531d,0x541c5c1c,0x511c5e1d,0xcc1d561d,0xcd1e471d,0x551d1e1d,0x1e1d1b1d,0xa11ca21d,0x921f911c,0x5a1f9b1e,0x551d571d,0xcf1ad01d,0x5c1ad21a,0x561c5e1d,0xa11d5a1d,0x5c1c7c1c,0x591d561d,0x7b1d5a1d,0xf21d5d1c,0xef250524,0x471d5e24,0xfb1c671c,0xfc1d5b1c,0x5c1d2d1c,0x2d1d591d,0x301d591d,0x5b1c481d,0x481cfb1d,0x5b1d5e1c,0xd61bd31d,0x851c711b,0xd01ed21f,0xd31bd01e,0x2d1c701b,0x5c1be41d,0xe41be71d,0xe21d2d1b,0xec1dd91d,0xe71d2f1d,0x1a1d2d1b,0x1b1c171c,0xeb1d341c,0x381d2f1b,0x341bf01d,0xc41bc11d,0xe01c871b,0x5e1c5c1b,0xf21bf81c,0xeb1d381b,0xf31dfc1d,0xf81bfc1d,0x4f1d3b1b,0x531d521d,0x921c911d,0x8b1c961c,0x9327b527,0x141c1127,0x721c121c,0x90277427,0x531be927,0xe61d581d,0x5d1d581b,0xe61be11d,0x1b1d5d1b,0x1c1c191c,0xdc1bd91c,0x751cac1b,0x771d761d,0xf1ec31d,0xdd1f101f,0x78197a17,0x7a1d7919,0x621d7b1d,0x6e186919,0x7e1d7d18,0xd91d7f1d,0x7c197e17,0x95259419,0x77259625,0x791d781d,0x821d811d,0x7b1d831d,0x7d1d7c1d,0x7f17ee1d,0x6f197d19,0x711d701d,0xf422e71d,0x8f22e323,0x911d901d,0x6a1d691d,0x871d6b1d,0x891d881d,0x9a1d991d,0xf41d9b1d,0x83198517,0xb01daf19,0x971db11d,0x991d981d,0x7424781d,0x95246f24,0x971d961d,0x941d931d,0xdf1d951d,0xdc180d19,0x8d258c19,0xa3258e25,0xa51da41d,0xaa1da91d,0xb91dab1d,0xbb1dba1d,0xb41db31d,0xa51db51d,0xa71da61d,0xa81da71d,0xc1da91d,0xd919dd18,0xa21da119,0x981da31d,0x9a259925,0x8917f825,0xd1198719,0xd31dde1d,0xb61db71d,0xb71db81d,0xb61db51d,0xbc1dbd1d,0xce1dbe1d,0xd01dcf1d,0xd31dd11d,0xfb1dd21d,0x46264326,0xd71dcb26,0xdb1dcc1d,0xdd1ddc1d,0xe01ddf1d,0xc61de11d,0xf41afa1a,0xd01de41a,0x6e1de31d,0x711c701c,0xe31de91c,0x6f1de21d,0x6d278127,0xe61df027,0xf21dea1d,0xec1de81d,0xed1df61d,0xf71df01d,0xef1df41d,0xf51df81d,0xfa1df11d,0xee1deb1d,0xfb1e001d,0x9a1df91d,0x9c259b25,0xfe1e0525,0x61dff1d,0x11e041e,0x5a18461e,0xb184319,0x31dfd1e,0xc1e0d1e,0xf1e041e,0xa1e091e,0xf519501e,0x7a194e18,0xcf1de31e,0x111e171d,0xc41e151e,0xf426f827,0x1c1e1e26,0x211e181e,0x1d1e1a1e,0x1f1e221e,0xb61e231e,0xb7267f25,0x1d1e2625,0x2a1e201e,0x241e201e,0x271e2b1e,0x81e281e,0x91c061c,0x241e2d1c,0x2e1e291e,0x2a1e261e,0x2b1e2f1e,0x321e2c1e,0x311e2f1e,0x361e3a1e,0x291e2f1e,0x341e351e,0x2e1e3d1e,0x3e1e331e,0x301e391e,0x9327811e,0x44277d27,0x3c1e371e,0x341e451e,0x461e3b1e,0x481e471e,0x421e4c1e,0x4b1e431e,0x401e3b1e,0x3c1e4d1e,0x4e1e421e,0x4f1e411e,0x491e501e,0x571e3f1e,0xdf1de01e,0x8025b01d,0x88279426,0x801e461e,0x4a1e591f,0xfc1e4e1e,0xfa270a26,0x551e5c26,0xe1e4c1e,0x141e0f1e,0x511e5e1e,0x761e561e,0xa926ac27,0x5d1e6226,0x71e541e,0x1f269b27,0x521e6427,0x291e5a1e,0x3b262e26,0x671e6926,0x691e5d1e,0x671d901e,0x199e1e,0x6f19a01a,0x601e6a1e,0x6b1e711e,0xb21e6c1e,0x5e1b591a,0x461c431b,0x7c1c441c,0x741e6f1e,0x791e7d1e,0x821e721e,0x791e801e,0x7d1e841e,0xd91e751e,0x7b1e7a1d,0x7e1dcc1e,0x861e761e,0x821e801e,0xc51e861e,0xd71e851d,0x7e1e841d,0x811dd41e,0x61dcf1e,0xff25fe26,0x471dcd25,0x951e461e,0xd7180a19,0x4c188a19,0xda183418,0xd5180919,0xac279f19,0xf9279d27,0x225fb25,0xcf26ba26,0xa326b926,0xba1ec41e,0x9526961e,0xe274626,0xdd19e018,0x319d119,0xc619ce18,0x471dc81d,0x4e1a861e,0xf31b501b,0xbd19ba17,0x1519e619,0xf919e718,0xc519c317,0xc517fb19,0x9919c619,0x96181919,0xc017f719,0xff19c319,0xc919c817,0x2f263f19,0x5e263626,0x5f265426,0xca1af126,0x601ac61a,0x63182b18,0x801a8a18,0x4f1a881b,0x4a266e26,0x5f1b5e26,0xf51b601b,0xc019bd17,0x601aaf19,0xf11aac1b,0xba19b817,0xe919b219,0xe519af17,0xe4181119,0x1eaa19,0xa91ea61f,0x641b601a,0xf11ed51b,0x841ef21e,0x8226c926,0xd11ecf26,0xa21ef31e,0x9126c125,0xf61ecb26,0x201ef71e,0x1f191119,0xcc26c019,0xb826be26,0xb626d126,0xff1eac26,0xb21eaa1e,0xb026d426,0xd526b026,0xb426ad26,0xb21efd1e,0xfa1ec01e,0xcd1ebd1e,0xce1ef51e,0xc1eb91e,0x611ebb1f,0x621d601d,0xa025a31d,0x85259f25,0x8426c826,0x91ead26,0xbb1eaf1f,0xbe1f0d1e,0xe0191c1e,0xaf191b18,0xb51f0a1e,0x4f1f551e,0x2b1f511f,0x2920da21,0x9f259e21,0x9e25a025,0x9c1b981b,0x41e971b,0x111f051f,0x151f121f,0x121e181f,0x9c1e191e,0x481e461e,0x1927211e,0x23272327,0x201f1b1f,0xfc25f21f,0x2625e925,0x191f1f1f,0x1c1f271f,0x281f181f,0x1d1f221f,0x1a1f2a1f,0x491f231f,0x51263c26,0xfa1d4226,0x2e1bfe1b,0xb31eb71f,0x2c1f2f1e,0x321f251f,0x2d1f291f,0x5e1cf81f,0x351c671d,0x2b1f311f,0x301f371f,0x381f321f,0x2e1f341f,0x2d1f391f,0x331f331f,0x35273b27,0x3b1f3c27,0x3d1eb11f,0xeb1f3a1f,0x3a1f3f1e,0x431f3d1f,0xab1f401f,0xb1abb1e,0x461b4a1c,0x431f401f,0x701b721f,0x491b751b,0x461f451f,0x261d4a1f,0x4b1d4e1d,0x491f481f,0xde1f501f,0x6c1edc1e,0x6d1b6a1b,0x4e1f4f1b,0x241f511f,0x28262f26,0x861b8826,0x5a1b8b1b,0x531f571f,0x581f5c1f,0xa41f541f,0x9b27bb27,0x5d1f6127,0x621ed91f,0x5c1f581f,0xf01f621f,0x1f5e1e,0xd27c927,0x5f1f6427,0x661f5b1f,0xae1f601f,0x661f681e,0x6b1eb01f,0x651f611f,0xb1b0c1f,0x701b0a1b,0x681f661f,0x6a1f711f,0xe01f641f,0xe11ec91d,0x691f781d,0x791f6d1f,0x731f071f,0x761f7a1f,0x7b1ed41f,0x6c1f751f,0x741f7c1f,0x7d1f6b1f,0x741f6e1f,0x6d1f7e1f,0x7f1f761f,0x721f7c1f,0x461f801f,0x811e9c1e,0x7a1f761f,0xeb1dda1f,0x831dd81d,0x7b1f751f,0x3926531f,0x86265426,0x9c1f801f,0x7e1f881e,0x4d1f811f,0x4b275827,0x7a1f8927,0x1d1f851f,0x1c18df19,0xf21f8e19,0x961f8d1e,0x99189a18,0xc2267318,0xa425c725,0xaa1ca61c,0xff22061c,0x97230022,0x8c1f941f,0xf51c411f,0x9e1c451b,0x911f991f,0x901fa01f,0xe41f951f,0xe125dd25,0x3c18d925,0xa3183e18,0x941f9d1f,0x3b1f3e1f,0xa51f421f,0x9a1f951f,0x351e401f,0xa71e411e,0xca1f9f1f,0x9c1faa1e,0xab1fa11f,0xa31f9d1f,0x591b571f,0xae1b561b,0x9e1fa91f,0x521f561f,0xb21f5b1f,0xb01eef1f,0xac1f161f,0xa71f131f,0xa318a218,0xc91f1518,0x191de01e,0xbf1f211f,0x1b1f201e,0x121fb11f,0x151ec91f,0x31272c1f,0x62272b27,0x5f185e18,0xc71fa618,0xc31f121e,0xa1c071a,0xd19221c,0x6192119,0x5192519,0xb91fb719,0x261fb41f,0x25190519,0x2200619,0x9d200a20,0x1a1c181a,0xc31c0b1c,0x31c0a1a,0x1192719,0x6c1c6b19,0x101c6d1c,0x1a260026,0x1824d826,0x1824e325,0x15201920,0xaf24b220,0x1824ae24,0xd1201520,0xd1201c1f,0x320221f,0x41a231a,0x3426351a,0x2e264426,0x2a1fe820,0x221bd120,0x321c201c,0x2a202e20,0x871bc720,0xac1bc41c,0xaa19ec19,0x2f272d19,0x12273a27,0x17272827,0xa250727,0x3b250b25,0x39203c20,0x39203b20,0x3d1fbb20,0xe9203a20,0x3f203d1f,0x5f203a20,0xa51ba71c,0xe920401b,0x4a20461f,0xb4204920,0x7826681f,0x2825ad26,0x261c241c,0xe1ebe1c,0xd71ec31f,0xd525dc25,0x1e1a1d25,0xb51a201a,0xb91f0b1e,0x5620101e,0x8f200f20,0x90181c18,0x71ea318,0x5d1ea71f,0x17205b20,0xdd212920,0x14212520,0xdd193419,0x1d206318,0x67201f20,0x23202120,0x6b206d20,0x28202620,0xae1ab11c,0x2b20721a,0x73207320,0x74202d20,0x3020aa20,0x30200d20,0x331b321b,0x7720781b,0x7a203620,0x38207920,0xed1ce720,0x871ce61c,0x4c188618,0xa620a818,0x48203020,0x431a471a,0xaa20ac1a,0x8b200d20,0x8c183318,0xe192e18,0x2e192c19,0xaf203220,0x2e202c20,0x7320b020,0x74187518,0x22202018,0x1e20b320,0xb4202020,0x39209620,0x52203c20,0xb520a520,0x3a18ea20,0x3818e819,0xf71bf11c,0x391acd1b,0xee1c3a1c,0xec193618,0x3b18e118,0xe318e319,0xe5193d18,0x9320c318,0xc120d320,0xc5211020,0x9d20d920,0xd520db20,0x3f1c3d1a,0xb018b71c,0xe418b218,0xe2191a18,0xe5194018,0xca193d18,0x66206420,0x3c18e820,0x4418e619,0x4218e919,0x5a1bd819,0x21bdb1c,0x4208521,0x86210421,0x92210620,0x7210520,0x1920e821,0x8920e521,0x820bb20,0x2220e221,0xd620df21,0xd7211e20,0xeb20e920,0xbf210f20,0xc1210e20,0x38207820,0x68207920,0x65186418,0x1620cc18,0xc520cd21,0xcc211220,0x3e18e620,0xdf18e419,0xdd212520,0x3520ca20,0x1620c421,0x5c205920,0xf1194c20,0xe1194a18,0xe2211f20,0xd8212d20,0x2f212b20,0x2d20d421,0x4194b21,0xdc194919,0xde212420,0x3320c920,0xce20ca21,0xd6211b20,0x2820e020,0xc020e321,0xbe213920,0xec215120,0xc4214e20,0xc0213720,0xc018be20,0x5518c118,0x5120ed21,0xe7214b21,0x48214820,0x4618ed19,0x14205a19,0x48205c20,0x4520e621,0xd020cb21,0x49214920,0x47190219,0xe3214219,0xf1212820,0x5520f020,0xf120f321,0xf5215720,0x5b215920,0x5b20f721,0x7a215d21,0x721a751a,0xef194a1a,0x6a194818,0x5d215f21,0x8194f21,0x6c194d19,0x6d216b21,0x3d203f21,0x6c216e20,0x67216a21,0x6a186d21,0x74186b18,0x7c217d21,0x7a206b21,0x6b217e21,0x69216721,0x79218321,0x21218421,0xcc18cb18,0x7c1a1618,0x711a7e1a,0x80217e21,0x7c217321,0xab217b21,0xad1dac1d,0x58184d1d,0x7a184919,0x81217021,0x87218821,0x891fcd21,0xc31fc621,0x9521971f,0x981fde21,0xb5219621,0xb521981f,0x9c1fb31f,0xb81fb621,0xb8219e1f,0xa01fba1f,0xbd1fba21,0xbd21a21f,0xa61fc01f,0xc41fc221,0x861a1e1f,0x1b1a211a,0x841a821a,0x941a951a,0xb61a971a,0xb426d226,0x70185226,0x92196e19,0xb721b521,0xcb21ce21,0xe1221021,0x53224e21,0xc021be22,0xd4221321,0x1221d121,0x68246222,0xbc24b324,0x1421be21,0x1521d722,0xf221622,0xee234122,0x3c220a22,0xde234123,0x7a1c7b1b,0x3422021c,0xfe233723,0x34233121,0xec21ef23,0x1f221e21,0x1e21ef22,0xb721b922,0x22222021,0x2121bb22,0xbd21bf22,0xf6222321,0x30221f21,0x6d276723,0xc8277427,0x2521c521,0x27222d22,0x2e222922,0x2a221d22,0x30223122,0x37223222,0x33223622,0x34223822,0x3a223522,0x39223822,0x3b223c22,0x48223d22,0x43224422,0x46224d22,0x52224a22,0x4f225122,0x55225b22,0x5d225822,0x59225722,0x5f226222,0x65225e22,0x63226222,0x67226b22,0x6c226822,0x6d226922,0x6f227122,0x77226c22,0x78227322,0x75227922,0x7d227422,0x7e227b22,0x7c228022,0x85227f22,0x83228122,0x84228622,0x88228722,0x28228722,0x28228922,0x8d228722,0x84228a22,0x56185322,0x95185518,0x7a227b22,0xeb22e922,0x9422e822,0x39223b22,0x90223522,0x9e229222,0x9b229c22,0x381d3322,0x691d341d,0x6d22a322,0xa822a722,0x6422a522,0x6922a622,0xab22aa22,0xdb22a822,0xdf22da22,0xac22af22,0xb2225a22,0xb022b122,0xb3225422,0xb522af22,0xb222b422,0x6422ac22,0x4b226022,0x4c22b922,0xba22bd22,0xc022bb22,0xbe22bd22,0x341d2c22,0x411d2f1d,0x4322c222,0x7d187a22,0xd6187c18,0xd222d322,0xd422d822,0xdd22d522,0xd922dc22,0xe322e222,0xe422e022,0xe122de22,0xe422e822,0xbf22e522,0x47224b22,0xed22ec22,0xf322ee22,0xf122ef22,0xf222f522,0xf622e622,0xf222f022,0xf522fa22,0xfd22f722,0xf922fb22,0xee24ff22,0x2250724,0xfe230123,0x2230522,0x7230423,0xcf22d223,0x4230922,0xd230823,0xc230b23,0x10230e23,0x11222622,0x10230f23,0x12231423,0x17231323,0x12221523,0x16231822,0x1c231523,0x19231a23,0x1b231e23,0x20231d23,0x1f231e23,0x18232223,0x25232022,0x23232123,0x24232723,0x29232623,0x28232723,0x2a232e23,0x2f232d23,0x2b232c23,0x32233523,0x3622d823,0x33233423,0xdc233823,0x3e22de22,0x3a233b23,0x39234023,0x43233d23,0x42233f23,0xe721e423,0xc224921,0x622fc22,0x4021f022,0xdd223f22,0xe0221821,0x3021fc21,0x233123,0xfa230622,0xdb21d821,0x93225c21,0x991f8f1f,0xd821d51f,0xd2226121,0x6621d521,0x1a21e322,0xcf21e622,0x6a21d221,0x1121d122,0x6e221222,0x6a21cf22,0x911c1222,0xc91c101a,0x7221cc21,0xf21ab22,0xc622ee22,0x7621c921,0xab21ac22,0xac22ed21,0xf422ed21,0xdd1ade22,0x131ae21a,0xd200f20,0x4230320,0x62230022,0x9d1c961c,0x2421c51c,0x40222522,0xa21f822,0x3f21ed23,0xea224222,0x45224221,0x1b21e622,0x4821e922,0x49234723,0x4a234c23,0x4f234d23,0x4b234e23,0x53235423,0x5a235523,0x58235623,0x5c235f23,0x61236023,0x5b235d23,0x61236323,0x66235e23,0xb322af23,0x69236c22,0x6d236723,0x6b236a23,0x6d236f23,0x71236e23,0x70236f23,0x98237923,0x7b237522,0x97229523,0x79237b22,0x7c237723,0x7d237a23,0x7e237f23,0x82238023,0x83238123,0xda1c2a23,0x8a1c2d1b,0x84238723,0x85238b23,0x44238823,0x8e238c23,0x8e234523,0x47228c22,0x90234623,0x83188023,0x7c188218,0x7e187f18,0xbc23bf18,0xf4236023,0xee1d4f1b,0xeb1aec1b,0xf71aed1a,0xf81afc1a,0x2118941a,0x6b18cc18,0x6d1d6c1d,0x7517e41d,0x65197619,0x671d661d,0x741d731d,0xdb1d751d,0x7a197c17,0x7d17ec19,0x63197b19,0x651d641d,0x7717e61d,0x71197419,0x731d721d,0xb523ba1d,0xf623b823,0xe022db23,0xdb23f822,0xfa23f622,0xd923f723,0xfb23fc23,0xff23f923,0xfe23fd23,0xa7240123,0x422a422,0x2240024,0x3240524,0x623b424,0x2240424,0xb2240824,0x922b022,0xbd240724,0xc240e23,0xf240a24,0xb240d24,0xc6241024,0x1423c923,0xf241124,0xcc241624,0x1723cf23,0x12241424,0x15241824,0x19241324,0xdb23d724,0x1a241c23,0x1d241924,0xe1241b24,0xd9241e23,0x2222d522,0x1f22dd24,0x22242424,0x25242024,0x23242124,0xe5242624,0x27242422,0xe922ea24,0xea242922,0x8b242722,0x8d1d8c1d,0x2823f31d,0xb223f224,0x2b23af23,0xb223b524,0x9d242c23,0x2d239f23,0xbe23c124,0x2f242e23,0x2e23c124,0xc423c724,0x32243023,0x3123ca24,0x33239e24,0x43243424,0x3f243e24,0x41244724,0x4a244224,0x4b244824,0x4d245124,0x53245224,0x4f244e24,0x59245f24,0x65245824,0x5a245d24,0x5c246724,0x6a246424,0x6c246b24,0x46246e24,0x75246b24,0x61246224,0x6a247624,0x7c247224,0x76247724,0x7a243824,0x35247824,0x36243924,0x80247f24,0x7f248124,0x84248124,0x80248524,0x68247f24,0x73276527,0x8f248e27,0x17248624,0x7201420,0x2b19fd20,0xe31b2c1b,0xf625e525,0x96249525,0x4a248f24,0x4f1a4b1a,0x1826091a,0x69260e26,0x72266c26,0x5f1a5b26,0x3e1a571a,0x451fbb20,0xc271820,0x1271627,0x1e260e26,0xe924ec26,0x8f24e424,0x92278e27,0x31261f27,0xda262626,0xd524d224,0x6c1e7a24,0x5d1e7b1e,0x5c1a5a1a,0xf19fe1a,0xcd1a111a,0x791c741b,0x6826611c,0x75265726,0x76266d26,0xc8205326,0xd920331f,0xd81dda1d,0x8624b11d,0xb324ae24,0x4d245624,0x6a1a6b24,0xb61a6e1a,0xb71ab41a,0x1125091a,0x68251025,0x6a1a691a,0x461a471a,0xb81a421a,0x8624b724,0x241afd24,0x381a231a,0x44265b26,0xa7248d26,0xbd24ab24,0xa924ad24,0x8324be24,0xc024bf24,0xbb24bc24,0xd21ae724,0xfe1aeb1a,0xfb199a19,0x51264219,0xb5265926,0xb624ae24,0xef19a524,0xc319f119,0xc524c424,0xc424cc24,0xd124c924,0x8624ae24,0xe21f4a24,0x81f4c1e,0x8f24fd25,0xfc1b2924,0x6e1b2819,0x73264825,0xb624da25,0x3a24ae24,0x37263126,0x161b1226,0xa21b111b,0x37244424,0x49244f24,0x42249a24,0x471a3d1a,0xf524f41a,0xaf24f624,0xab26fa27,0x101d5f27,0xa41d601f,0xa61a0319,0x911b9219,0xbf1b931b,0xbe1ac31a,0x1d1d4d1a,0x631d1c1d,0x621bab1c,0xf625011c,0x45250924,0xc419c21a,0x80248b19,0xc1248d24,0xbe1c901b,0x41195b1b,0xee184318,0xf11acf1a,0xdf24e01a,0x9d251b24,0x9e19ff19,0x251d19,0xce24fc25,0xd11acd1a,0x301c311a,0x321c2d1c,0x361cfd1d,0x2124c81d,0x2224db25,0x20251925,0xa025c025,0x2427b427,0xc524c625,0xbf25b424,0x1a267925,0x27271e27,0x8f251e27,0xf7249624,0xf6260425,0x901bbb25,0x2b1c951c,0x6250725,0x2d253125,0x33252b25,0x30252c25,0x2f253425,0x3a250b25,0xfd1d361d,0x3425371c,0x3b250d25,0xec253825,0x3d253c24,0x3e253925,0x3b253825,0xf1254025,0x4124f024,0x3a253c25,0x3f254225,0x45250f25,0x42254325,0x4a254925,0x4b254625,0x44254725,0x49254d25,0x50254825,0x13251425,0x32254f25,0x51243124,0xff254c25,0x4f255424,0x52254c25,0x4d254e25,0x221b2425,0x571b211b,0xe624e025,0x46255624,0x44244524,0xfe1d401d,0x2a252a1c,0x25255924,0x29252625,0xe5252725,0xc2251b24,0x3b243c23,0x3b23bf24,0xdc244024,0x2823d823,0xdc23e225,0xe4252e23,0x3223e223,0x5023b025,0xea245524,0x36253223,0x3623ee25,0xda253925,0x4e23de23,0xda23d625,0xd1255323,0x45255823,0x7723c824,0x86247d24,0x87258525,0x88258a25,0x91258925,0x93180419,0x8e259019,0x76258f25,0x75217d21,0xc9180121,0x519cb19,0x2261a26,0x91259026,0x9b259225,0x9d1d9c1d,0x31e9a1d,0x981f041f,0x941b961b,0xa525a41b,0xa725a625,0xa825ad25,0xcd24cf25,0xa424cc24,0xb025a625,0x3c1c3f25,0xb81c421c,0xbc25bb25,0x9e279c25,0x9e27aa27,0xa3249f24,0xc025bf24,0xbf25c125,0xc025bc25,0xa725c225,0x4725a925,0xfb264b26,0xb825bf26,0x5525bc25,0xcb1fbf20,0x541b521f,0x201b4a1b,0x26271f27,0xc225c727,0x325be25,0xce19cb18,0x64266c19,0x3b266d26,0x35274327,0xa0279627,0x9625bb27,0x721b6f1a,0xbb26db1b,0x4226df27,0x38273427,0x191e1d27,0xca1e201e,0xcc1f981e,0x7a25ac1e,0x8525ab26,0x91259925,0xd925d825,0x6225d225,0xe124b624,0x44264f24,0x6f265b26,0x771eb61f,0x561ab81f,0x241ab51b,0x2d1e8a1f,0x8b1a831f,0xae1a811b,0xef18b118,0x519d418,0x5d19d118,0xa31ba51c,0x131b141b,0xa81b171b,0xa91ca01c,0x101d301c,0xfe1d141d,0xff1dee1d,0x361c371d,0xf91c381c,0xee25f425,0x4b204c25,0x8f1fda20,0x951c8e1c,0x21e9f1c,0x251e9a1f,0xf91afa1a,0x4727301a,0xf8272227,0xf725fe25,0x9f25c125,0x41259b25,0x3f195d18,0xa260f18,0x3c260326,0x3b273f27,0xf261427,0x16260826,0x17261226,0x8c275626,0x19268926,0xd261426,0x6d276326,0x1b275f27,0x1d261726,0xc125a326,0x4426c125,0x411a801b,0x5d275f1b,0x23275627,0x1d261f26,0x4d24ac26,0x71244824,0x75276e27,0x3a273127,0x44272f27,0x471ee41f,0xa627af1f,0xdc27b927,0x591f5d1e,0xd625d41f,0x3125db25,0x361a2f1a,0xa1a091a,0x271a0b1a,0x29272127,0x32263527,0xc7262726,0xca1ac61a,0x3126371a,0x38262826,0x2d263426,0x451c0326,0x7c1c021c,0x811b7f1b,0x83277a1b,0x46277c27,0x41264326,0xae25af26,0x48279625,0x45274027,0x4b1b5027,0x571b4f1b,0x61275527,0x46264c27,0x83264126,0x851c821c,0xb2202c1c,0x52202820,0xca255b26,0xe625df25,0xc225f025,0x24222321,0x6d1e7222,0x941e7e1e,0x931c9a1c,0xef1c341c,0x5c1c361b,0x5d264e26,0xeb19b526,0xe719b217,0xe425e925,0x1e1f1d25,0x711f1c1f,0x6f25b426,0x7f278226,0xdc278f27,0xb624df24,0x5f266324,0x3c266426,0x3e1bfb1c,0x6226711c,0x9b266726,0x9f189c18,0x3d1c5018,0xc81c511d,0x2a1b2d1a,0xe21ae01b,0xba1ae51a,0x7225b925,0x2d1c2f26,0xc91c301c,0x501c4e1b,0x231a1d1c,0x7c1a1f1a,0x74266726,0x451d4626,0x2a1d431d,0x2c1a291a,0x541c7d1a,0x7d1c751c,0x7a1b921a,0x1d1c1f1a,0xb21c211c,0xa5267425,0x6625b125,0x5a267026,0x661e531e,0xb19dc1e,0x7819da18,0xb1a791a,0xc226911a,0xe0268e26,0xe41d5c1b,0x24272a1b,0xcf273427,0xcd1ef41e,0xc726861e,0xc2268526,0xc01ef91e,0xe719af1e,0x8319ad17,0xc026cb26,0xc3268e26,0x4c268a26,0x51268c27,0xfb1ebd27,0xa61eb81e,0xa426da26,0x819d526,0x5119d418,0x59264d26,0xf81ec626,0xb21ec21e,0xac1efe1e,0xed19b81e,0xaa19b517,0xa826d826,0xfc1eb826,0xb41eb41e,0xb226d326,0xde26a326,0xab26a226,0xaa26d726,0xa826a626,0xa726d926,0xad1f081e,0xda26a41e,0xa626db26,0x9f1f011e,0xa226a01e,0xfb26df26,0xfd26fc26,0x3b195f26,0xfb183d18,0x43270126,0x15260b26,0x5c260926,0x53274827,0xd026b927,0xaf26b826,0xa425bb25,0x52270a25,0xc270626,0x5270e27,0x52270627,0x2125ca26,0xf71d201d,0xaf1cb01c,0x61c6e1c,0xf925ca27,0x8c1b8d26,0x661b901b,0x4f245724,0x81271d24,0x7826bf26,0x7c277027,0x92276b27,0x83269426,0x861b841b,0xe01f151b,0x4b1e571d,0x481b471b,0xf11deb1b,0x661dec1d,0x71276027,0xf425f227,0x2b25f925,0x1d272327,0x51ea027,0x331f061f,0xbb26bd27,0x701b6e26,0x731b6d1b,0x75278527,0x69265e27,0xb265326,0x3270827,0x4c264b27,0x79265726,0x7e1c771c,0x411b9f1c,0x131b421b,0x141fa81f,0x5e1a8d1f,0x821a5b1a,0x8324bf24,0x40274524,0x7c26b727,0x8325f325,0x47274e25,0x49274427,0xb326b527,0x24185426,0x3f185718,0x43274d27,0xb127b427,0x327b727,0x927b627,0x511b5327,0x91b521b,0xcb27c727,0x571a5627,0x271a5a1a,0x2a1a251a,0xf119a31a,0x4a19f319,0x50274c27,0x52275527,0x926b127,0x521be51c,0x4f1c6f1b,0xe01c6d1c,0xe3221921,0x55275a21,0x4626af27,0x4c268f27,0x9e189927,0x63189d18,0x671f5d1f,0x9827961f,0x11279c27,0x12260c26,0x871f8e26,0xb81f881f,0x9c1c951b,0xfa25f31c,0xfa260125,0xf8230a21,0x471b4921,0x491b4b1b,0x45275327,0xae276a27,0x3526ac26,0x391fbb20,0xea24e920,0x35251b24,0x331ac11c,0x927b81c,0xc727b627,0xcd25c625,0x97277725,0x16269826,0x1b270427,0xb1a1327,0xcb1a121a,0x11269d27,0xe224f327,0xe224ff24,0xe0191b18,0xcc25c318,0x8025d225,0x98277927,0x341a3826,0x971a351a,0x781a791b,0x7e27871a,0xa426a727,0xac1f9b1f,0xef25661f,0x63256d25,0x92269027,0xa7278c26,0xe826a526,0x25202c1f,0x7c278e20,0x91278327,0x7e278927,0x1c21e927,0x1f21ec22,0x1e191319,0x91279519,0x96278727,0x9425b027,0x121e0f27,0xb41e151e,0x661c651b,0x8d27981c,0xc5268b26,0xc026c126,0x270225,0x9d270d27,0x8c279527,0xbc25c027,0xfc25bb25,0x281a261a,0x9a249d1a,0x1e249924,0x1d191519,0x16261519,0xb7261b26,0xbf27ae27,0xa527b127,0x1e27a827,0x171e8a1f,0x651b671f,0xb81b681b,0xa425b225,0xbc27c625,0x2126ff27,0x20190f19,0x4d1bac19,0x181c4f1c,0x26262226,0xb927c026,0xd027ad27,0xc01cbf1c,0x541ba61c,0x901c561c,0x93249224,0x4d1ede24,0xd1f4c1f,0xe24fa25,0xc425c525,0x5c25b525,0x60266f26,0xa618ab26,0x6418a718,0x661a621a,0xba26751a,0x4b266c25,0x4a1bb21c,0x9d279b1c,0x4527a727,0xfa1bf61d,0x5321de1b,0x2a225622,0x32262126,0xe260426,0x9260126,0x6192419,0x9d270719,0x82269c26,0x8326ca26,0xfa19fc26,0x991b2519,0x3e229b22,0x3d223e22,0xfd229622,0xc617fb17,0xc205719,0x2c200f20,0xc190e19,0x9192319,0x10190b19,0x30192e19,0x1920e519,0xea211c21,0x7b17ec17,0x4220619,0x6c220522,0x6e186d18,0x91259218,0x56259325,0x6e185218,0x6d196e19,0x6c196c19,0x6a196b19,0x6a196c19,0x56196919,0x6c196e18,0x56185919,0x59196c18,0x69196c18,0x59185c19,0x5c196918,0x68196918,0x5c185f19,0x5f196818,0x67196818,0x5f186219,0x66196718,0x64196519,0x67186219,0x65196619,0x66186218,0x64196619,0x63196319,0x6e196219,0x6e196318,0x65186d18,0x63196618,0x65186819,0x63196318,0x6b186d19,0x4f1bee18,0x9f1d531d,0xa01d9e1d,0x9618941d,0x93189318,0x1d181c18,0x198f18,0x33180218,0x91183518,0xd20ac18,0x5f200c20,0x5b185e18,0x36203118,0x4a207720,0xc118c218,0x4518c018,0x30184a18,0xa320a620,0x2a20a220,0xbc203020,0xce26cd26,0x1120e926,0x9f211521,0xa3189c18,0xb118b318,0x118ae18,0x28192719,0xa918a819,0x2518ad18,0xae1c281c,0x2e1c2b1a,0x461ab41c,0xeb18ed19,0x2420de18,0x91212621,0x921d901d,0x1e20d71d,0x4e212121,0xea20ec21,0x7271120,0xf270f27,0xcb271027,0x881a6327,0x871a871a,0x691a851a,0x651a691a,0xba1a631a,0xb418b918,0x8e188d18,0x7e181a18,0x8f229122,0x8d228f22,0xa0228222,0x70229d22,0xcc22cd22,0xc922c922,0xc722c622,0xcd22ca22,0xcf22c922,0xc818c918,0xc718c818,0xc618c618,0xbb18bc18,0xbb18c618,0xcf18b718,0xc618c818,0xcf18cd18,0xc618c618,0xb218b718,0xb218c618,0xca18ad18,0xc618cd18,0xca18ce18,0xc618c618,0xa918ad18,0xa918c618,0xce18a518,0xa518c618,0xa518ce18,0xcb18a118,0xd018d118,0xce18d018,0xd018a118,0x9e18a118,0xcb18cc18,0x9a18d018,0xcc189418,0x9e18d018,0xae189a18,0xad22ab22,0xc022c322,0x3022c122,0x29222f22,0x8b222922,0x44228c22,0xd518d418,0xd718d618,0x48184018,0xd418d318,0xd2184b18,0xd518d318,0xd61dcb1d,0x3818391d,0x3518db18,0x4a263e26,0x40264a26,0x3b263b26,0x25262e26,0x25263b26,0x35262a26,0x3b264a26,0x2a263b26,0x30263226,0x3c263d26,0x5a1b5726,0x5c1b5c1b,0x5b1b5f1b,0x7721821b,0xda217821,0x3818db18,0x85188418,0xfa188618,0x8b17fc17,0xfe198d19,0x4f180017,0x1f181e18,0xda18db18,0xdb18d918,0xd818d918,0xdc189818,0x9c18db18,0xdb189818,0xd818db18,0x9c18d718,0xd718db18,0x9c18a318,0xa318d718,0xd618d718,0xa318a718,0xd518d618,0xd318d418,0xd618a718,0xab18d518,0xd518a718,0xd318d518,0xd218d218,0xbf18c018,0xbf18d218,0xab18ba18,0xd218d518,0xab18af18,0xd218d218,0xb518ba18,0xaf18b318,0x9218d218,0x36183518,0xcc26be18,0xca26cd26,0x791bcd1b,0x5727601c,0x4a275e27,0xc4184e18,0x1618fb18,0x9d191719,0xa1189e18,0x761b7818,0x791b791b,0x7b1b7e1b,0x2818ff1b,0x15192919,0x9a1c181c,0x26185a1a,0x25182818,0xa81aab1c,0xb818bb1a,0xaf18b618,0xaa18ae18,0x3318f018,0x32193519,0xa2202a20,0xfd27b220,0x7426fc26,0x2f202d20,0x3418dd20,0x8e193719,0x7208f20,0x9210721,0xb620b621,0xba20b720,0xbc20ba20,0xc220c220,0xc820c620,0xcf20c820,0xd220d220,0xa420d520,0xa420d220,0xc220a720,0xd220c820,0xba20b620,0x8e20c220,0xb6210720,0x8e208c20,0xb620b620,0xd220c220,0xa720d220,0xd220a920,0xab20a920,0xb6208c20,0x8d20d220,0xd2208c20,0xab20d220,0xae20ad20,0xd2208d20,0xc20ee20,0xde210f21,0x38193718,0xa118a019,0x6318a518,0x2d182b18,0x75187418,0xb5187718,0xb118b418,0x9b259c18,0xbe259d25,0xd213920,0xbe18bf21,0x4218b918,0xe718e919,0xf5194e18,0x2b18f318,0xf718f819,0x47214918,0x67216821,0x2b212d21,0x2b216721,0x4d212921,0x68214921,0x4d214f21,0x69216821,0x29216721,0x29216921,0x4f212521,0x69216821,0x4f215221,0x69216921,0x22212521,0x22216921,0x54211f21,0x69215221,0x54211321,0x69216921,0x1c211f21,0x1c216921,0x14211921,0x69211321,0x14211721,0x69216921,0x15211921,0x15216921,0x1a211121,0x69211721,0x1a211d21,0x69216921,0xf211121,0xf216921,0x20210c21,0x69211d21,0x20212321,0x69216921,0xb210c21,0xb216921,0x27213821,0x69212321,0x27212a21,0x69216921,0x36213821,0x36216921,0x2c213421,0x69212a21,0x2c212e21,0x69216921,0x32213421,0x2e213021,0x4d216921,0x7190819,0xe6214519,0x9420e420,0xb71fb921,0x8221771f,0x6d217f21,0x6e1d6c1d,0xcb18d11d,0x81182018,0x71217021,0xc9182f21,0xcd18cf18,0x2918ca18,0xd7184018,0x118d818,0x181a171a,0x1220151a,0x11201120,0xcb200e20,0xd11fcb1f,0x9a20151f,0x78229822,0xb322b622,0xde225022,0x7117e117,0xd022d419,0xa122cd22,0xa222a422,0x9f22a222,0x75229e22,0x61187218,0x60196119,0x61195f19,0x5e195f19,0x75187719,0x79196118,0x61187718,0x5e196119,0x61195d19,0x5c195d19,0x79187b19,0x7d196118,0x61187b18,0x5c196119,0x5a195b19,0x58195919,0x61187d19,0x5b195b19,0x58195a19,0x57195819,0x58188619,0x85188619,0x5b187d18,0x7f195819,0x58187d18,0x85195819,0x81188318,0x58187f18,0x581d5d19,0x5a1d571d,0x4c1c591c,0x47184d1d,0xe8188618,0x7917ea17,0x79187819,0xe1187b18,0x7317e317,0x7e1d7f19,0xd91d801d,0x711cb11b,0x7f187e1c,0x89188118,0x8a1d881d,0x8318821d,0x85188518,0x861d841d,0x7718761d,0xd7187918,0x8017d517,0x8c1d8d19,0xb11d8e1d,0xb21db01d,0xac1dad1d,0xc81dae1d,0x4122c522,0x2b224122,0x2c222c22,0xce22cf22,0xc822cb22,0x2c224122,0xcb22ce22,0xfa1b2522,0x8319f819,0x6d1a811a,0x619941a,0x8b180718,0xfe17fc19,0x9c1d9d17,0x5d1d9e1d,0x50275427,0x4c275027,0x51275127,0x5d275627,0xf825f127,0x1025f725,0xe2181218,0x56185519,0xda185918,0x9217dc17,0xf217f019,0xe7198117,0x18181519,0xf418f618,0xf218f218,0xee18f018,0x9b18ee18,0xee189f18,0xa2189f18,0xf218f618,0xa618ee18,0xf618aa18,0xa218ee18,0x8718a618,0xc626c526,0xc180a26,0x5819d918,0x13201020,0xd526ad20,0x3a26d626,0x351b361b,0xce1b351b,0x3a1ad41a,0xd41b351b,0x3c1b3f1a,0xda1b3a1b,0x3f1add1a,0xda1adc1b,0x3f1b3f1a,0xd41b3a1b,0xdc1ad81a,0x641b3f1a,0xa61b661b,0x1619e81a,0x67181418,0x6b186818,0xe519ab18,0x8817e417,0xc526c426,0xc3268a26,0x9926c426,0x24272e26,0x1f272427,0x5269a27,0xfd25fb26,0x991f8625,0x921e921e,0x8a1f8f1e,0xe826e91f,0xe726e726,0xe526e626,0xe426e526,0xe326e326,0xe126e226,0x1726e126,0xe1272827,0x47272826,0xe326e527,0xe926e126,0xe526e726,0xea26eb26,0xed26e926,0xeb26ec26,0xee26ef26,0x8426ed26,0xef26f027,0x84277226,0xef26ef27,0xeb26ed26,0xe926eb26,0xe526e526,0x4726e126,0x72275927,0xe526ef27,0x59274726,0xeb26ef27,0x2226e526,0x2a272627,0x34272a27,0x39273027,0x3b1b381b,0x451b411b,0x461b461b,0x441b491b,0x2a1c271b,0x291c2c1c,0x271bd71c,0xea1b081c,0x5419b619,0x4e275b27,0x4a274e27,0xb7275027,0x471c671b,0xea21e71c,0xc7224521,0xd61cc61c,0xc51cd61c,0xc41cc41c,0xc11cc31c,0xd41cc11c,0xd51cd51c,0xbb1cb91c,0xc71cbb1c,0xd61cd61c,0xc11cc41c,0xbb1cd51c,0xc61cd61c,0xc8270227,0xb727c827,0xe327bf27,0x311c341b,0xbb1ab81c,0x731b4a1a,0x681c721c,0x691c681c,0xe21c6a1c,0xe825d825,0x2a1abc25,0x2b1b2b1b,0x261b291b,0x7e1bca1b,0x741c831c,0x681c701c,0x19a01c,0xc51a011a,0x131c171b,0xbf1c131c,0x3e1bc21b,0x38273d27,0x2e273827,0x32273227,0x3e273627,0x771b7927,0x151b7a1b,0x14270727,0x4260927,0x1625fe26,0x96251225,0x9b249624,0x6d246d24,0x16246c24,0xeb1b0e25,0x81b0819,0xb1b071b,0x311e371b,0xac1e381e,0xf822f421,0x621c6122,0x8d1bab1c,0xaf1f1e1e,0xa81faf1f,0xa21fa21f,0x911f9b1f,0x8d1e911e,0x121faf1e,0x8250925,0x1e250825,0x66249625,0x621b611b,0xa424aa1b,0xa1249f24,0xbc249e24,0x9f24aa24,0xa524a124,0xaa24ab24,0x81248424,0xa524c224,0xa124aa24,0x8424c124,0xc224c224,0xa124a524,0xbc24a124,0x5f24c124,0x89275627,0x7a207b26,0xe3203820,0xe424e224,0xe924de24,0xe324dd24,0xde24e424,0xd524dc24,0xd824d824,0xde24e324,0xdd24de24,0xc224dc24,0x9f26a127,0x951f9a26,0x901f901f,0xba1f8c1f,0xc41eba1e,0xa61fa61e,0x901f9a1f,0x91a771f,0x891a0c1a,0xd1b4f1a,0xe325de1c,0xe825e825,0xce25d825,0xce25e825,0xdb25d425,0xe825de25,0xf9251c25,0x6b24f424,0x5b1e631e,0x7321721e,0x2a217b21,0xa190c19,0x1d1a1a19,0x1c1a1f1a,0x1a1a181a,0x5119521a,0x51195419,0x56195319,0xcd25d319,0x5525cb25,0x561a521a,0x8e1c0e1a,0x5a1a8b1a,0xca26f925,0x6f266525,0xcd267726,0xf224fb24,0xc524f224,0xdd24c424,0xc91cd81c,0xc91cdd1c,0xde1cd71c,0xdd1cd91c,0xdc1cdb1c,0xdd1cde1c,0xdb1cd71c,0x4d1b4b1c,0xc1c0c1b,0x4f1c0d1c,0xa11ba01b,0x451b451b,0x9c1b9f1b,0x991b9c1b,0xa01b9d1b,0x9c1b451b,0x4a1a441b,0x481a481a,0x3e1a431a,0x821b871a,0x11b831b,0x1afd1b,0x781c7e1b,0x3a1c7f1c,0x381c371c,0x241a051c,0x441afe1a,0x4a273e27,0x221c2027,0x211c241c,0x201c1d1c,0x661d671c,0x7f1d681d,0x7a25ab26,0x75267a26,0x7b267626,0x7a267f26,0xc1c1026,0xc1c0f1c,0x91b0a1b,0x61b091b,0x51b051b,0x1b021b,0x221afd1b,0xfd1a8c1a,0x8f1a8c1a,0xf1aa11a,0x9e1b0c1b,0xc1aa11a,0xfd1b001b,0x1a8f1a,0x921a8f1b,0xc1a9e1a,0x9b1b091b,0x91a9e1a,0x921b001b,0x981a951a,0x91a9b1a,0x1b051b,0x981a951b,0x51b091a,0xd625de1b,0x5f25df25,0x631e571e,0xf817f61e,0x86198717,0xd217d019,0x8b1a8117,0x4d1b8d1b,0x461a4e1a,0x5226731a,0x55264b26,0x73266826,0xfb19f926,0x1b199b19,0x9d1aa01c,0x21dfe1a,0xd71dfc1e,0xd526d626,0xd426d526,0xd5277126,0x7b277126,0xd726d827,0xa226d526,0xd826d927,0xa2278f26,0xd826d827,0x7b26d526,0x8f278227,0x5d26d827,0x67276227,0x5b276727,0x1f275427,0x1c1b1d1b,0x191b1c1b,0x151b151b,0xf1b131b,0xa11b0f1b,0xf1aa41a,0xa71aa41b,0xb31ab01a,0xad1b1f1a,0x1f1ab01a,0xf1b151b,0xaa1aa71b,0x1f1aad1a,0xa71b151b,0xaa1aaa1a,0x1c1b1f1a,0x611c601b,0x251ba91c,0xd1a0e1a,0xd1ff21a,0x30203020,0xe8202a20,0xc81acc1f,0x231ac51a,0xb61ab31b,0xbc1ab91a,0x231b261a,0xb91ab61b,0x431a3e1a,0x3d1a3d1a,0xa31a391a,0x419931a,0x74180618,0xf91a771a,0x7619f919,0x961a711a,0x97259525,0x2a1ce425,0x291d291d,0x281d271d,0x4a1a521d,0xec1a4f1a,0x671a6619,0x231a041a,0x121a241a,0x32193019,0x601c9119,0x5f1c5f1c,0x8d1c881c,0x7b24361c,0x73247324,0x9b246d24,0x99249b24,0x37243724,0x73243624,0x651b6824,0x4d1b691b,0x41274b27,0x3a274127,0xef274327,0x1a24e724,0x22251a25,0x23252325,0xc624c725,0xef24c624,0xea251a24,0xfa25f625,0xec25fa25,0x2925e825,0x201e241e,0x191e201e,0x6e1e251e,0x7b25b126,0x7a257b25,0x79257925,0x77257825,0x76257725,0x75257525,0x73257425,0x58257325,0x6e266e26,0x79257b26,0x77257925,0x75257525,0x6e257325,0x221c2626,0x801bd71c,0x561c581c,0xaf1ab21c,0x5e1a301a,0x3d195f19,0x38203a18,0x36203620,0x2f203120,0x2d202f20,0xf71ff720,0x3a1fe91f,0x36203a20,0x25202f20,0x20262e26,0x1a262026,0x19261426,0x20262526,0x6e276826,0x69276927,0x61275e27,0x5a1b5c27,0x981b5d1b,0x16181719,0x19199618,0xe4181718,0xf181119,0xe719ad18,0x9f17e517,0x6c1b6b1a,0x1b1c1e1b,0x321c1c1c,0x96269927,0xac24b026,0xaa24aa24,0xa724ab24,0xa824a724,0xb224b224,0xb424b324,0xaa24b024,0xb224a724,0xb024b424,0x731c7724,0x211c781c,0xb31b1f1b,0x381c3b1a,0x91bf71c,0x16251225,0x13251625,0x14251425,0x1f251525,0x9251f25,0x8e251625,0x101c0e1a,0xc11c331c,0xbc1abd1a,0x111c131b,0xf1c111c,0xc1c0c1c,0xb31b4d1c,0xb31c0c1b,0xb91bb61b,0x111bbc1b,0xb61c0c1c,0x611bb91b,0x5f256025,0x5e255f25,0x5d255d25,0x5b255c25,0x52255b25,0x73267326,0x6225c926,0x61256225,0x5f255f25,0x5b255d25,0x73255b25,0xba256226,0x321c301a,0x21c051c,0x3a1c001c,0x79247e24,0x71247924,0x69246924,0x9f24a024,0xa4249f24,0x3a243a24,0x69247924,0x9b189824,0x97189718,0x37183618,0x1c0718,0x411c041c,0x7e1a801b,0x781a901a,0x981b7b1b,0x8b1f921f,0xd01f8b1f,0x7f1ecc1e,0x901b8d1a,0x751a931b,0x6f1b781b,0x94276b27,0xcc1bcf26,0xfa1c511b,0x6270a26,0xc4270627,0x7127bd27,0x6c1a6f1a,0x6d1a6c1a,0x701a701a,0x741a721a,0x6c1a711a,0x21a701a,0x51dfe1e,0x91e051e,0xe1e0e1e,0x21e081e,0xbe27bb1e,0x3270327,0x17270827,0x69267027,0x12267226,0xe6181318,0x3b183a19,0xad196018,0xc11ec51f,0x381a3b1e,0x391a391a,0x3f1a3d1a,0xa727a41a,0xac27ac27,0xbe27b627,0xa518a427,0x9f18a918,0xf519a119,0x8c1eba19,0x821f821f,0xb61f771f,0x6418651e,0x88186118,0x81278b27,0x79278127,0xb2278027,0x9f1bb51b,0xcd25c91c,0xd525d325,0xda25dc25,0xd325c925,0xc125d525,0xc527ba27,0xc527c127,0xcc27c827,0xc127ca27,0x1a26fe27,0xc127cc27,0x227c827,0xfe270227,0xfd27cc26,0x16192918,0x19262519,0xb5261326,0xd025c425,0xcc25d025,0xaa25aa25,0xb625ab25,0xb525b625,0x925d025,0xb1b4a1c,0xb91cbb1c,0xd31cd31c,0xd11cd21c,0xcf1cda1c,0xd31ccc1c,0xda1cd11c,0xb61cb51c,0xb71cbb1c,0xb51cde1c,0xb71cb21c,0xbb1cb51c,0xda1cd31c,0xcc1cda1c,0xbd1cba1c,0xc01ccd1c,0xda1cbb1c,0xba1cba1c,0xc01cbd1c,0xb31cbc1c,0xba1cb81c,0xbc1cc01c,0xb51cb21c,0xba1cbb1c,0xb81cbc1c,0xb21cb81c,0x2d1cbb1c,0xf818f619,0x9f199c18,0x2f1a7619,0xf618f419,0xc825d018,0x8825ce25,0x851a831b,0x1d1bce1a,0x1c1c1c1c,0xc51c191c,0xc51c1c1b,0xcb1bc81b,0x1c1bce1b,0x5927721c,0x5b274e27,0x72276727,0x661aa627,0x471b671b,0xbd1c481c,0x6d20701b,0x5c202920,0x58185b18,0xf2193118,0xb218f418,0xac18b018,0x3118f218,0x5d193319,0x1b201a20,0x2f207520,0xf5203120,0xdd23df23,0xbb18b823,0x4218bc18,0x1e265026,0x18261e26,0x3a263326,0x1e264226,0x411f4426,0x3d1f3d1f,0xe61ee91f,0x7b1a8d1e,0x201b7e1b,0x22272627,0x12272227,0x22271027,0xf271027,0x20271c27,0x22272227,0x15270f27,0xa11d1e27,0xcd1d5a1c,0x18211620,0x23202421,0x21202120,0x1d201f20,0x1b201d20,0x7200720,0x26200220,0x24202620,0x21202120,0x7201d20,0x6119ae20,0x21a641a,0x1f1a1c1a,0xa927ac1a,0xb027b027,0xb627b827,0x86238827,0x2b238923,0x241f171f,0x9e1b431f,0x571b421b,0x4f1a531a,0x4b1a4f1a,0x501a501a,0x571a541a,0x6a1a6e1a,0x291a6c1a,0x2b272327,0x31272b27,0xaa272f27,0x4f1bac1b,0xa61ba41c,0x5b1c561b,0xa31c5d1c,0xaa1ba81b,0xcc1c521b,0x501bc91b,0xa41ba21c,0xb51c581b,0x9027c427,0x8d279027,0xb7279327,0x661bb41b,0xa1dff1c,0x491e091e,0x59195818,0x2b202d19,0x29202920,0x26202720,0x2202620,0xf71ff720,0x29202d1f,0x671b6b20,0xd11b681b,0x31212f20,0xd61f6521,0xd41ed41e,0x691f6d1e,0xa1279a1f,0xab27ab27,0x88278b27,0x431d1827,0x3f1d3f1d,0x191d161d,0x671cf81d,0x661c661c,0xf91c971c,0xd824d91c,0xd624d524,0x1724d424,0xd924d725,0xd624d524,0xd7251724,0x9c1bb824,0xec1c9f1c,0xe025f325,0x171d3c25,0xe91d161d,0xda25ef25,0xdc25da25,0xe025e425,0xb925b125,0xb925e025,0xd225c325,0xe025d925,0x861c8a25,0x7b1c8b1c,0x3f203a20,0x6c1cae20,0xa51cad1c,0xa71c9e1c,0xae1ca71c,0x661cad1c,0xd4276c27,0xd326d426,0xd226d226,0xd026d126,0xcf26d026,0xce26ce26,0xcc26cd26,0xcb26cc26,0xca26ca26,0xc826c926,0xc726c826,0xc626c626,0xcc26c526,0xcc26c627,0xca271a27,0xc626c826,0xcc26ce26,0xd226ca26,0xce26d026,0xd4276626,0x5826d226,0xd2276627,0xce26d226,0xca26ca26,0x1a26c626,0x1a26ca27,0x4b272d27,0xd2275827,0x2d26ca26,0x41274127,0xd2274b27,0x2220826,0x1f233722,0xa21aa51c,0xdf1e571a,0x461e5b1d,0x1a1d181d,0x9e1c9a1d,0xa51ca51c,0x9f1c4a1c,0x9c1c9f1c,0x971c9a1c,0x991c981c,0xb019b31c,0x371a0819,0x331b381b,0x711e6b1b,0x771e771e,0x681e701e,0x631e681e,0x701e6b1e,0x5a266626,0x5b265a26,0x74266926,0x7d276d27,0x48265627,0xe3264026,0xda1add1a,0xea1d0a1a,0xda1ceb1c,0x17221621,0xfc1bfe22,0x731d3e1b,0x781b761b,0x751b781b,0xf61b701b,0x1260425,0x831b8126,0x821b821b,0x7c1b801b,0x4a27461b,0xf2273e27,0xf31af01a,0x4e18c51a,0xde181a18,0xac1c7a1b,0xa824a91c,0xa724a724,0x87248a24,0xa924a624,0x1924a724,0xe7251a25,0xef24e724,0xee24ee24,0xe224e824,0xe324e224,0xe7251924,0xe224ee24,0xcf25c524,0x3225ce25,0xcc1ac81b,0x3a1a3c1a,0xf21a3b1a,0xeb25e925,0x91278925,0x9b279b27,0x92279927,0x83279227,0xa1278927,0xf319a319,0xf41cf619,0x1f1d1f1c,0xf01cf11d,0xef1cf01c,0xee1cee1c,0xe81cb91c,0xf61ce81c,0x1f1d1f1c,0xee1cf01d,0x361b351c,0xd71b371b,0xd21ad31a,0xd61ad21a,0xda1ada1a,0xdb1adc1a,0xd71adb1a,0xf61ad21a,0x4b1d481b,0x821d831d,0x961d841d,0x98249524,0x99249824,0xba249b24,0xb522b722,0x11d4722,0x291d031d,0x51255525,0xfe255125,0x35250324,0xed24ea25,0x31d4924,0x771d081d,0x7d267e26,0x50267d26,0x6a264226,0x7d267726,0x491d5026,0x241d071d,0x231ab31b,0xea1aed1b,0xe61ae61a,0xec1ae81a,0x311d351a,0x2d1d131d,0xeb1eed1f,0x3a1eeb1e,0xcc1f331f,0x471e761d,0x961f9b1e,0x911f911f,0x921f8f1f,0x911e921e,0xd01f9b1e,0xcf1acb1a,0xfb24f21a,0xfa24fa24,0x5250a24,0xee250525,0xef24ef24,0xf2252424,0xfa24f224,0xd0250524,0x851f8b1e,0x7a1f851f,0xec1ed21f,0xe21de81d,0xe31de21d,0xd91dd91d,0xec1dd81d,0x161c1a1d,0xe01c171c,0x5c1bdd1b,0xfa1deb1c,0x4f1dfc1d,0x521d4e1d,0x8d1c911d,0x8b1c921c,0xb527ab27,0x131c1127,0x8a1c141c,0x72278427,0x67277227,0x74277427,0x90278627,0x8a279027,0x1b277227,0x191c171c,0x741d751c,0x101d761d,0xc31ec81f,0xe1ec31e,0xdd1f0f1f,0x7a17db17,0x781d7919,0x621d7a1d,0x69196f19,0x7c1d7d18,0xd91d7e1d,0x7e17d717,0x93259419,0x77259525,0x781d761d,0x801d811d,0x7b1d821d,0x7c1d7a1d,0xf017ee1d,0x6f197f17,0x701d6e1d,0x2922e71d,0x8f23f424,0x901d8e1d,0x681d691d,0x871d6a1d,0x881d861d,0x981d991d,0xf41d9a1d,0x8517f617,0xae1daf19,0x971db01d,0x981d961d,0x7a24781d,0x95247424,0x961d941d,0x921d931d,0xdf1d941d,0xd180f19,0x8b258c18,0xa3258d25,0xa41da21d,0xa81da91d,0xb91daa1d,0xba1db81d,0xb21db31d,0xa51db41d,0xa61da41d,0xa61da71d,0xc1da81d,0xdd180e18,0xa01da119,0x981da21d,0x99259725,0xfa17f825,0xd1198917,0xde1de51d,0xc21ac61d,0xfa1afa1a,0xf41af61a,0xf11af41a,0x6e1ac61a,0x701c681c,0x77276f1c,0x81278127,0x6d277d27,0x6b276d27,0x9a276f27,0x9b259925,0x59184625,0x50195a19,0xf518f719,0x811dcf18,0x771e771e,0x7a1e711e,0xd91e7a1e,0xe31de31d,0xcf1dd01d,0x771dcf1d,0xf41e7a1e,0xf226f326,0xf126f226,0xf026f026,0x90278a26,0x627c427,0xf026f927,0xc4279026,0xf226f427,0xf626f026,0xf426f526,0xf726f826,0xc426f626,0xf826f927,0xf026f426,0xf827c426,0xf426f626,0xab25b626,0x8267f25,0x61c041c,0x301e341c,0x291e291e,0x351e251e,0x3b1e351e,0x811e341e,0x93278b27,0x8d279327,0xb0277d27,0x8025a625,0xcd1e8826,0xfa1e461d,0xfc27c026,0xfb26fc26,0x14270a26,0xe1e101e,0x91e0e1e,0xf1e0f1e,0x141e111e,0x7027761e,0x1f26ac27,0x7271427,0x9c270727,0x3b269b26,0x29264826,0x20262926,0x9e262e26,0x19ff19,0x561ab21a,0x441b591b,0x431c411c,0x31c431c,0x61c461c,0xfe260b26,0x7199525,0x8a180a18,0x4c188918,0xb19da18,0x9d180918,0x9f279727,0xa9279f27,0xac27ac27,0x9d27a727,0xf525f927,0xba25fb25,0xcf26ce26,0x471e4826,0xc81dc81e,0xca1dc91d,0xa21dca1d,0x9d1e9d1e,0x941e981e,0x931e941e,0x901e901e,0x8e1e8f1e,0x8b1e8e1e,0x8c1e8c1e,0xec1eee1e,0xea1eec1e,0xe81ee81e,0xe51ee71e,0xe31ee51e,0xe11ee11e,0xdd1edf1e,0xda1edd1e,0xd81ed81e,0xd51ed71e,0xd31ed51e,0xd11ed11e,0xcd1ecf1e,0xce1ecd1e,0xcb1ecb1e,0xc21ec61e,0xc01ec21e,0xbd1ebd1e,0xb41eb81e,0xb21eb41e,0xac1eac1e,0xa61eaa1e,0x9f1ea61e,0x9a1e9a1e,0x971e951e,0xa01e971e,0xa31ea31e,0xad1ea71e,0xaf1ead1e,0xb51eb51e,0xbb1eb91e,0xbe1ebb1e,0xc31ec31e,0x5f1ec81e,0x611d5f1d,0x631d631d,0x671d651d,0x691d671d,0x6b1d6b1d,0x6f1d6d1d,0x711d6f1d,0x731d731d,0x771d751d,0x791d771d,0x7b1d7b1d,0x7f1d7d1d,0x811d7f1d,0x831d831d,0x871d851d,0x891d871d,0x8b1d8b1d,0x8f1d8d1d,0x911d8f1d,0x931d931d,0x971d951d,0x991d971d,0x9b1d9b1d,0x9f1d9d1d,0xa11d9f1d,0xa31da31d,0xa71da51d,0xa91da71d,0xab1dab1d,0xaf1dad1d,0xb11daf1d,0xb31db31d,0xb71db51d,0xb91db71d,0xbb1dbb1d,0xbf1dbd1d,0xc01dbf1d,0xc11dc11d,0xc31dc21d,0xc41dc31d,0xc61dc61d,0x6d1e761d,0x6d1dc61e,0xc11e611e,0xc61dc31d,0xbf1dbb1d,0xb31dc11d,0xbb1db71d,0xaf1dab1d,0xa31db31d,0xab1da71d,0x9f1d9b1d,0x931da31d,0x9b1d971d,0x8f1d8b1d,0x831d931d,0x8b1d871d,0x7f1d7b1d,0x731d831d,0x7b1d771d,0x6f1d6b1d,0x631d731d,0x6b1d671d,0x5f1ec31d,0xb51d631d,0xc31ebb1e,0xad1ea31e,0x9a1eb51e,0xa31e971e,0xa61eac1e,0xbd1e9a1e,0xac1eb41e,0xc21ecb1e,0xd11ebd1e,0xcb1ecd1e,0xd51ed81e,0xe11ed11e,0xd81edd1e,0xe51ee81e,0x8c1ee11e,0xe81eec1e,0x8e1e901e,0x9d1e8c1e,0x901e941e,0xca1dc81e,0x9c1e9d1d,0xc81e481e,0x9c1e991d,0xc81dc81e,0x901e9d1d,0x8c1e901e,0xe81ee81e,0xd81ee11e,0xd11ed81e,0xcb1ecb1e,0xac1ebd1e,0x9a1eac1e,0xa31ea31e,0xc31eb51e,0x631ec31e,0x6b1d6b1d,0x7b1d731d,0x831d7b1d,0x8b1d8b1d,0x9b1d931d,0xa31d9b1d,0xab1dab1d,0xbb1db31d,0xc11dbb1d,0xc61dc61d,0x531e611d,0x531dc61e,0xab1e431e,0xc61dbb1d,0x9b1d8b1d,0x6b1dab1d,0x8b1d7b1d,0xc31ea31d,0xcb1d6b1e,0xa31eac1e,0xd81ee81e,0xc81ecb1e,0xe81e901d,0x991e921e,0x911dc81e,0xc81e921e,0x431dc61d,0xc61e381e,0x311e381d,0xc81e911e,0x8d1ee81d,0xe81e911e,0xc61dab1e,0xab1e311d,0x2c1e311d,0x8d1e8a1e,0x891ee81e,0xe81e8a1e,0x2c1dab1e,0xab1e281e,0x231e281d,0x891eed1e,0xeb1ee81e,0xe81eed1e,0x231dab1e,0xab1e1f1e,0x1b1e1f1d,0xeb1ee91e,0xe61ee81e,0xe81ee91e,0x1b1dab1e,0xab1e161e,0x131e161d,0xe61ee41e,0xe21ee81e,0xe81ee41e,0x131dab1e,0xab1e071e,0x11e071d,0xe21ee01e,0xde1ee81e,0xe81ee01e,0x11dab1e,0xab1df91e,0xef1df91d,0xe81ede1d,0xdc1ecb1e,0xcb1ede1e,0xef1dab1e,0xab1de71d,0xdd1de71d,0xdc1edb1d,0xd91ecb1e,0xcb1edb1e,0xdd1dab1e,0xab1e871d,0x831e871d,0xd91ed61e,0xd41ecb1e,0xcb1ed61e,0xab1d8b1e,0x8b1e831d,0x7f1e831d,0xd41ed21e,0xd01ecb1e,0xcb1ed21e,0x7f1d8b1e,0x8b1e781e,0x731e781d,0xd01ecc1e,0xca1ecb1e,0xcb1ecc1e,0x731d8b1e,0x8b1e6e1e,0x651e6e1d,0xca1ec51e,0xc11ecb1e,0xcb1ec51e,0x651d8b1e,0x8b1e4f1e,0x411e4f1d,0xc11ebf1e,0xbc1ecb1e,0xcb1ebf1e,0x411d8b1e,0x8b1e351e,0x251e351d,0xbc1eb71e,0xb31ecb1e,0xcb1eb71e,0x251d8b1e,0x8b1e191e,0x121e191d,0xcb1eb31e,0xb11ea31e,0xa31eb31e,0x8b1d6b1e,0x6b1e121d,0xa1e121d,0xb11eab1e,0xa91ea31e,0xa31eab1e,0xa1d6b1e,0x6b1dff1e,0xee1dff1d,0xa91ea51d,0x9e1ea31e,0xa31ea51e,0xee1d6b1e,0x6b1dda1d,0x7b1dda1d,0x9e1e9b1e,0x961ea31e,0xa31e9b1e,0x7b1d6b1e,0x6b1e6c1e,0x5b1e6c1d,0x961ea11e,0xa41ea31e,0xa31ea11e,0x5b1d6b1e,0x6b1ddf1e,0xe11ddf1d,0xa41ea81d,0xae1ea31e,0xa31ea81e,0x6b1ea31e,0xa31de11d,0xc91de11e,0xae1eb01e,0xb61ea31e,0xa31eb01e,0xc91ea31e,0xa31ec71e,0xc41ec71e,0xb61eba1e,0x461ea31e,0x96273927,0x93269526,0xe274626,0xe0181018,0x519d119,0x47180318,0xc61e761e,0xc71dc61d,0x861dc81d,0x4e1a841a,0xf117f31b,0xe619ba17,0x15181319,0xf717f918,0xfb19c317,0xc517f917,0x18199919,0xf7181918,0xc017f517,0xfd17ff19,0x3f19c817,0x2f263726,0x53265e26,0xf1265426,0xca1acf1a,0x2a18601a,0x8a182b18,0x801b7e1a,0x66265a1b,0x6e266e26,0x4a265826,0x5a264f26,0x5e266e26,0x5f1b5b1b,0xf317f51b,0xaf19bd17,0x601b5e1a,0xef17f11b,0xb219b817,0xe917eb19,0x1419e517,0xaa181118,0x1eff1e,0xac1aa91f,0x841b601a,0xc926c826,0xa325a226,0x2026c125,0x11190f19,0xcb26c019,0xb826cc26,0xd126d026,0xfe1eac26,0xb21eff1e,0xd426d326,0xd426b026,0xb426d526,0xfd1efc1e,0xf91ec01e,0xcd1efa1e,0xf51ef41e,0xb1eb91e,0x621f0c1f,0x611d631d,0x5f1d611d,0x9f1d601d,0xa325a125,0xa225a325,0x8525a025,0xc826c726,0x81ead26,0xbb1f091f,0xd1f0c1e,0xdf191c1f,0xaf18e018,0xa1f091e,0x531f551f,0x2b1f4f1f,0xda20d821,0x9d259e20,0x9c259f25,0x9e1b421b,0x9b1b9e1b,0x971b981b,0x41e951e,0x1a1e191f,0x181e181e,0x121e151e,0x1327211e,0xf2271927,0xfc260025,0xef25fc25,0x4925e925,0x3c263626,0x451d4226,0xf81bfa1d,0x5e1d5b1c,0x3727331d,0xbb273b27,0xb1abe1a,0x6d1b721c,0x4a1b701b,0x261d461d,0x6f1b6d1d,0x6c1b6c1b,0x6a1b681b,0x4d1f4f1b,0x241f4e1f,0x2f263026,0x831b8826,0xa41b861b,0xbb27be27,0xa327bb27,0x279b27,0xc927c327,0xd1b0c27,0xda1b0b1b,0xeb1dee1d,0x3826531d,0x4d263926,0x58275c27,0x15191d27,0x9618df19,0x9a189418,0xc925cd18,0x73267325,0xad266826,0xad267325,0xc725a725,0x7325cd25,0xa7267326,0xa425c225,0xa61c9d1c,0xfc22061c,0x4522ff22,0x411c431c,0x3e1c411c,0x411bfb1c,0xff1bfb1c,0x11c001b,0xf31c451c,0x1c041b,0xf31bf51c,0x411c001b,0xfd1bff1c,0xfd1c411b,0xf51bf91b,0x451c001b,0xf91c411c,0xe41bf51b,0xdd25dc25,0xda18d925,0x3e183c18,0x3b1f361f,0x4a1e411f,0x401e401e,0x351e3b1e,0x511b561e,0x571b571b,0x591b5b1b,0x501f561b,0xa71f521f,0xa218a618,0xc71f1218,0x2b1ec91e,0x2c272527,0x35272c27,0x62273127,0x5e186118,0xc41fa618,0xc31ec71e,0x71ac71a,0xb19221c,0x6190d19,0x25192419,0x9200819,0x7200720,0xf21ffc20,0xe81ff21f,0xe11fe11f,0xcb1fd11f,0xbf1fcb1f,0xb41fb41f,0xc51fbb1f,0xc81fc51f,0xe91fce1f,0x21ff71f,0x200220,0x21ffe20,0xfb1ffe20,0xce1fc51f,0x51fda1f,0x7200820,0x5200120,0x2200720,0xf91ffb20,0x21fe91f,0xff1ff920,0x720011f,0xff1ffd20,0xe920071f,0xf51ff91f,0xf51fe91f,0xfd1ff41f,0xf220071f,0xfd1ffa1f,0xe91ff21f,0xf11ff41f,0xf11fe91f,0xf81fef1f,0xf21ffa1f,0xf81ff61f,0xe91ff21f,0xed1fef1f,0xed1fe91f,0xf31feb1f,0xf21ff61f,0xf31ff01f,0xda1ff21f,0xeb1fe91f,0xeb1fda1f,0xf01fe71f,0xe11ff21f,0xf01fee1f,0xda1fe11f,0xe51fe71f,0xe51fda1f,0xec1fe31f,0xe11fee1f,0xec1fea1f,0xda1fe11f,0xe01fe31f,0xe01fda1f,0xe61fde1f,0xe11fea1f,0xe61fe41f,0xda1fe11f,0xdc1fde1f,0xdc1fda1f,0xe21fd91f,0xe11fe41f,0xe21fdf1f,0xda1fe11f,0xd71fd91f,0xd71fda1f,0xdd1fd51f,0xe11fdf1f,0xdd1fdb1f,0xda1fe11f,0xd31fd51f,0xd31fda1f,0xd81fd01f,0xe11fdb1f,0xd81fd61f,0xc51fe11f,0xd01fda1f,0xd01fc51f,0xd61fcd1f,0xcb1fe11f,0xd61fd41f,0xc51fcb1f,0xc91fcd1f,0xc91fc51f,0xd21fc71f,0xcb1fd41f,0xd21fcf1f,0xc51fcb1f,0xc41fc71f,0xc41fc51f,0xcc1fc21f,0xcb1fcf1f,0xcc1fca1f,0xc51fcb1f,0xc01fc21f,0xc01fc51f,0xc61fbd1f,0xcb1fca1f,0xc61fc31f,0xb41fcb1f,0xbd1fc51f,0xbd1fb41f,0xc31fba1f,0xb41fcb1f,0xc31fc11f,0xb41fb41f,0xb81fba1f,0xb81fb41f,0xbe1fb61f,0xb41fc11f,0xbe1fbc1f,0xb41fb41f,0xb31fb61f,0xb31fb41f,0xb91fb51f,0xb41fbc1f,0xb51fb41f,0x261fb71f,0x5190319,0x200319,0x2200220,0x9200720,0x9200220,0x4200b20,0x2200320,0x4200620,0x2200220,0xa200b20,0x9a1a9d20,0xb1c181a,0xc31abe1c,0x2619031a,0x6d192719,0x6b1c4f1c,0xad1c6b1c,0x1a1c6c1c,0x10262926,0xfc261026,0xd8260025,0x1824db24,0xb524ae25,0xb224b224,0xad24a824,0xb124af24,0xb224ae24,0xaf24ad24,0x1e202024,0x1c201c20,0xd1201820,0xe11fd11f,0x2220251f,0x1c202020,0x251fd120,0x3202220,0x231a1f1a,0x3e26441a,0x35263526,0x34262c26,0xd71bd426,0x201c221b,0xd11bce1c,0xd41bd11b,0xc71c221b,0x871c831b,0x6419ac1c,0x3a19ec1a,0x2d274127,0x29272d27,0x12272f27,0x28272227,0x6250b27,0x7250725,0xa250525,0xd250a25,0x5f250b25,0xa71c601c,0x4220441b,0x40204020,0xe9203d20,0xda1fe91f,0x4620481f,0x40204420,0x481fe920,0xbf204620,0x4a20511f,0x52204a20,0x4e204e20,0x49204d20,0x47204920,0xb41fb420,0x4a1fbf1f,0x4e204a20,0x68204920,0x78266b26,0x251c2826,0xbe1c241c,0xe1f0d1e,0xd125d51f,0xd725d725,0xdc25dd25,0x1b1a1d25,0xb51a1e1a,0xb1f0a1e,0x5820101f,0x8f205620,0x1c181b18,0x61ea318,0x291f071f,0xdd20da21,0x32191420,0x28193419,0xb11c2b1c,0x2920721a,0x73202b20,0x2d202b20,0xa820aa20,0x30203020,0x321b2f1b,0xb91ce81b,0x121d121c,0x251d0f1d,0xb1d251d,0x251d091d,0x241d091d,0x121ce81d,0xe41d251d,0xe81ce51c,0xe31ce21c,0xe61ce41c,0xe01ce11c,0xe21ce01c,0xe81ce41c,0x241d251c,0x41ce71d,0xe81d061d,0xe71d241c,0xe41ce01c,0xed1ce81c,0xe61ce91c,0xe01ce61c,0xe71ce81c,0xed1d061c,0xe81ce61c,0x4c1ce71c,0x87188818,0x47188618,0x48184c18,0x471a491a,0x34188b1a,0x2e183318,0xe191019,0x72187319,0x52187518,0xa5204a20,0x3918ea20,0x38193a19,0xf11bef1c,0xc91acd1b,0xee1c391a,0x36193518,0x3818e119,0xe3193b19,0x3d193b18,0xd020d319,0xcb20cb20,0xc320c720,0xbd20c320,0xc3209020,0x91209020,0xcb20d320,0x9520c320,0xd3209820,0x9120c320,0x93209320,0xd3209520,0xe20c120,0xd5211021,0x3d1ad11a,0xb618b71c,0xe418b018,0x1a193e18,0xe7194019,0x8318e518,0x2208420,0x210221,0xfe20fe21,0xfa20fb20,0xf820fa20,0xf620f620,0xf220f420,0xef20f220,0xee20ee20,0xe920eb20,0xe820e920,0xe520e520,0xe220e120,0xdf20e220,0xdd20dd20,0xd820da20,0xd420d820,0xd120d120,0xca20c920,0xc420ca20,0xc020c020,0xbf20be20,0xc120bf20,0xc520c520,0xcd20cc20,0xce20cd20,0xd620d620,0xdc20d720,0xde20dc20,0xe020e020,0xe420e320,0xe620e420,0xe720e720,0xec20ea20,0xed20ec20,0xf020f020,0xf320f120,0xf520f320,0xf720f720,0xfc20f920,0xfd20fc20,0xff20ff20,0x3210120,0x5210321,0x3209421,0x97209421,0xff20fc20,0xf3210320,0xfc20f720,0xf020ec20,0xe420f320,0xec20e720,0xe020dc20,0xcd20e420,0xdc20d620,0xc520bf20,0xca20cd20,0xbf20c020,0xd120d820,0xe220ca20,0xd820dd20,0xe520e920,0xf220e220,0xe920ee20,0xf620fa20,0x220f220,0xfa20fe21,0x83208220,0x81210220,0x2208220,0xfa210221,0xf220f220,0xe220e920,0xd820e220,0xca20ca20,0xcd20bf20,0xdc20cd20,0xe420e420,0xf320ec20,0xfc20f320,0x3210320,0x99209721,0x99210320,0xe4209a20,0x320f320,0xcd20ca21,0xf220e420,0xca20e220,0x2208120,0x8020f221,0xf2208120,0x9a210320,0x3209b20,0x9c209b21,0x80207f20,0x7e20f220,0xf2207f20,0x320e420,0xe4209c21,0x9e209c20,0x7e207d20,0x7c20f220,0xf2207d20,0x9e20e420,0xe4209f20,0xa0209f20,0x7c207a20,0x7920f220,0xf2207a20,0xa020e420,0xe420a120,0xa320a120,0x79207820,0x7720f220,0xf2207820,0xa320e420,0xe420a620,0xa820a620,0xf2207720,0x7620ca20,0xca207720,0xa820e420,0xe420aa20,0xac20aa20,0x76207520,0x7420ca20,0xca207520,0xac20e420,0xe4205720,0x56205720,0x74207320,0x7220ca20,0xca207320,0x5620e420,0xe4205820,0x5a205820,0x72207120,0x6f20ca20,0xca207120,0x5a20e420,0xe4205c20,0x5e205c20,0x6f206e20,0x6c20ca20,0xca206e20,0xe420ca20,0xca205e20,0x60205e20,0x6c206a20,0x6820ca20,0xca206a20,0x6020ca20,0xca206220,0x64206220,0x68206620,0xe820ca20,0x3c193a18,0xeb194419,0xd818e918,0x5a1c591b,0x1520e81c,0x8211921,0x87210621,0x87210820,0xb8208820,0x8210a20,0xb920bb21,0x8b20b820,0xbb20bd20,0x8b208a20,0xbb20bb20,0x820b820,0x88210821,0x89208920,0xbb208a20,0x1f20e220,0xd6212221,0x1e211b20,0xd20bf21,0x78210e21,0x38203620,0x67186820,0xcc186418,0x16211220,0x1020c521,0xe6211221,0x3e193c18,0x2220df19,0xca212521,0x35213320,0x14205c21,0x59201620,0x5c205e20,0xf3194c20,0xe118f118,0x1f211c20,0xd4212d21,0x2f20d820,0xd420d121,0x7194b20,0xdc190419,0x24212120,0x3120c921,0xce213321,0x1b211820,0x2620e021,0xc0212821,0x39213720,0xed215121,0xc420ec20,0x37213520,0xbf18be21,0x5518c018,0xed20f021,0xea214b20,0x4820e720,0xed18ef19,0x13205a18,0x48201420,0xe620e721,0x4194920,0x42190219,0xe320e421,0x781a7a20,0x4a1a751a,0xef18f119,0x2d212f18,0x68216721,0x44214721,0x44216821,0x31214121,0x67212f21,0x31213321,0x68216721,0x3f214121,0x3f216821,0x35213d21,0x67213321,0x35213721,0x68216721,0x3b213d21,0x3b216821,0x39216621,0x67213721,0x39210d21,0x68216721,0x64216621,0x64216821,0xe216221,0x67210d21,0xe211021,0x68216721,0x60216221,0x60216821,0x12215e21,0x67211021,0x12211621,0x68216721,0x5c215e21,0x5c216821,0x18215a21,0x67211621,0x18211b21,0x68216721,0x58215a21,0x58216821,0x1e215621,0x67211b21,0x1e212121,0x6a216721,0x56216821,0x56216a21,0x21215321,0x6a216721,0x21212421,0x6a216a21,0x50215321,0x50216a21,0x26214c21,0x6a212421,0x26212821,0x6a216a21,0x4a214c21,0x4a216a21,0x42214621,0x6a212821,0x42214521,0x6a216a21,0x43214621,0x43216a21,0x48214021,0x6a214521,0x48214b21,0x6a216a21,0x3e214021,0x3e216a21,0x4e213c21,0x6a214b21,0x4e215121,0x6a216a21,0x3a213c21,0x3a216a21,0x55216521,0x6a215121,0x55215721,0x6a216a21,0x63216521,0x63216a21,0x59216121,0x6a215721,0x59215b21,0x6a216a21,0x5f216121,0x5b215d21,0x4f216a21,0x8190a19,0x6d216c19,0x6d216a21,0x6a186c18,0x75217418,0x82217d21,0x84218321,0x59218421,0x84205b20,0x5d205b21,0x82217f20,0x7d218421,0x84217f21,0x5d218421,0x84205f20,0x61205f21,0x7d217c20,0x7b218421,0x84217c21,0x61218421,0x84206320,0x65206321,0x84217b20,0x7b206521,0x67206521,0x80218120,0x7e217e21,0x67217b21,0x67217e20,0x7a206920,0x7e218121,0x6d206b21,0x7e217a20,0x6b206921,0x6c216b20,0x83216721,0x79217821,0x20182121,0x7e18cb18,0x161a801a,0x141a161a,0x711a7c1a,0x7e217221,0x74217321,0xab217c21,0xac1daa1d,0x57184d1d,0x7a195819,0x70216f21,0x841a1e21,0x1b1a861a,0x821a191a,0x921a951a,0xb61a941a,0xd226d126,0x4f185226,0xe197018,0x7220922,0x1220722,0xfd21fd22,0xf521fb21,0xf421f521,0xf121f121,0xeb21ee21,0xe821eb21,0xe521e521,0xdf21e221,0xdc21df21,0xd921d921,0xd321d621,0xd021d321,0xcd21cd21,0xc721ca21,0xc421c721,0xc121c121,0x89218a21,0x8c218921,0x8e218e21,0x92219021,0x94219221,0x96219621,0x9a219821,0x9c219a21,0x9e219e21,0xa221a021,0xa421a221,0xa621a621,0x85218621,0x87218521,0x88218821,0x8d218b21,0x8f218d21,0x91219121,0x95219321,0x97219521,0x99219921,0x9d219b21,0x9f219d21,0xa121a121,0xa521a321,0xa721a521,0xa821a821,0xf721a921,0xf921f721,0xff21ff21,0x5220321,0x4220522,0x5220022,0xfa220022,0xff21f721,0xa5220521,0xf721a821,0xa1219d21,0x9521a521,0x9d219921,0x91218d21,0x85219521,0x8d218821,0xa621a221,0x9a218521,0xa2219e21,0x96219221,0x89219a21,0x92218e21,0xc121c721,0xd3218921,0xc721cd21,0xd921df21,0xeb21d321,0xdf21e521,0xf121f521,0x721eb21,0xf521fd22,0xe21ad21,0xae220722,0xad21aa21,0xd220b21,0xc21ae22,0xb220622,0xc21ac22,0xb220b22,0xad21ae22,0x721ad21,0xf521f522,0xdf21eb21,0xd321df21,0xc721c721,0x92218921,0x9a219221,0xa221a221,0x8d218521,0x95218d21,0x9d219d21,0xf721a521,0x521f721,0xf721fa22,0xf821fa21,0xb21ac21,0xab21ad22,0xad21ac21,0xf821f721,0xf721f321,0xf021f321,0xab220f21,0xa21ad21,0xad220f22,0xf021f721,0xf721ed21,0xea21ed21,0xa220821,0x221ad22,0xad220822,0xf7219d21,0x9d21ea21,0xe721ea21,0xad220221,0xfe21f521,0xf5220221,0xe7219d21,0x9d21e421,0xe121e421,0xfe21fc21,0xf621f521,0xf521fc21,0xe1219d21,0x9d21de21,0xdb21de21,0xf621f221,0xef21f521,0xf521f221,0xdb219d21,0x9d21d821,0xd521d821,0xef21ec21,0xe921f521,0xf521ec21,0x9d218d21,0x8d21d521,0xd221d521,0xf521e921,0xe621df21,0xdf21e921,0xd2218d21,0x8d21cf21,0xcc21cf21,0xe621e321,0xe021df21,0xdf21e321,0xcc218d21,0x8d21c921,0xc621c921,0xe021dd21,0xda21df21,0xdf21dd21,0xc6218d21,0x8d21c321,0xc021c321,0xda21d721,0xd421df21,0xdf21d721,0x8d21a221,0xa221c021,0xbe21c021,0xdf21d421,0xd121c721,0xc721d421,0xbe21a221,0xa221bc21,0xba21bc21,0xd121ce21,0xcb21c721,0xc721ce21,0xba21a221,0xa221b821,0xb621b821,0xcb21c821,0xc521c721,0xc721c821,0xb621a221,0xa221b421,0xb121b421,0xc521c221,0xbf21c721,0xc721c221,0xb121a221,0xa221b021,0xaf21b021,0xc721bf21,0xbd219221,0x9221bf21,0xa2219221,0x9221af21,0xb221af21,0xbd21bb21,0xb9219221,0x9221bb21,0xb2219221,0x9221b321,0xb521b321,0xb921b721,0xe1219221,0x4e21e421,0xb524b222,0x62246224,0x68247024,0x60246824,0xb3245b24,0x6224b224,0x5b246824,0xd724b324,0x1521d421,0xa220f22,0xa234122,0x3c220822,0xe11bde23,0x21c7b1b,0x3421fe22,0xfc21fe23,0xf6233121,0x1f21f221,0x62276722,0x53276d27,0x56185218,0x93229518,0xe9227b22,0xeb22ea22,0x32223522,0x33229022,0x381d371d,0xd722db1d,0xac22da22,0x6422a922,0x331d2c22,0x7a1d341d,0x7d187b18,0xbc22bf18,0x7224b22,0x3250225,0xfe250325,0xff24ff24,0xee24e824,0x524ee24,0x7250725,0xff250325,0xf8220c24,0xf022fc22,0x4021f321,0x1721dd22,0x221822,0x6230322,0x8a1f9323,0xe31f8f1f,0x1a221921,0xce21d122,0x12221121,0x911a941c,0xdf1ade1a,0xd1add1a,0xfc1ff220,0x141ffc1f,0x13201320,0xf201020,0xc200f20,0xd200d20,0x131ffc20,0xa41c9d20,0x621c621c,0x961c611c,0xc221c51c,0xe6222421,0x1b221a21,0x271c2a22,0x801bda1c,0x83188118,0x7d187c18,0xd9187f18,0xdf23dd23,0xe523df23,0xdf23e023,0xde23e023,0xd923d523,0x5223df23,0xd5235123,0x53235523,0x59235223,0x55235723,0x5c236023,0x64235923,0x60236223,0x65236823,0x6e236423,0x68236b23,0x70237223,0x74236e23,0x72237323,0x76237823,0xa1237423,0x78239f23,0xa123a423,0x78237823,0x72237423,0x6e237223,0x68236823,0x60236423,0x59236023,0x55235523,0xd5235223,0xdf23d523,0xd523de23,0xda23de23,0x55236023,0x7223d523,0x60236823,0x7823a423,0xa7237223,0x7223a423,0xda23d523,0xd523d623,0xd123d623,0xa723aa23,0xad237223,0x7223aa23,0xd123d523,0xd523ce23,0xcb23ce23,0xad23b023,0xb3237223,0x7223b023,0xcb23d523,0x6023c823,0xc823d523,0x7223b323,0xb6236023,0x6023b323,0xc8236023,0x6023c523,0xc223c523,0xb623b923,0xbc236023,0x6023b923,0xc2236023,0xf423bf23,0x4f1d4b1b,0xe91aec1d,0xf71aeb1a,0xfc1afb1a,0x1d18941a,0x6b182118,0x6c1d6a1d,0xe017e41d,0x65197517,0x661d641d,0x721d731d,0xdb1d741d,0x7c17d917,0xee17ec19,0x63197d17,0x641d621d,0xe817e61d,0x71197717,0x721d701d,0xed23f11d,0xe923e923,0xe123e323,0xdb23e123,0xd723d723,0xd223d323,0xcf23d223,0xcc23cc23,0xc623c923,0xc323c623,0xc023c023,0xba23bd23,0xb723ba23,0xb423b423,0xae23b123,0xab23ae23,0xa823a823,0xa223a523,0x5023a223,0x4d234d23,0x49234a23,0x90234923,0x8f238f23,0x89238d23,0x86238923,0x83238323,0x80238123,0x7e238023,0x7d237d23,0x78237a23,0x9d237823,0x78239b23,0x99239b23,0x7d238023,0x89237823,0x80238323,0x8f234923,0xa2238923,0x49234d23,0xa823ae23,0xba23a223,0xae23b423,0xc023c623,0xd223ba23,0xc623cc23,0xd723e123,0xf123d223,0xe123e923,0xef23eb23,0xe523f123,0xeb23e723,0xe023e623,0xe823e523,0xe523e623,0xeb23e523,0xf123f123,0xd223e123,0xc623d223,0xba23ba23,0xa223ae23,0x4923a223,0x89238923,0x78238023,0x99237823,0x78239723,0x95239723,0xe523e823,0xec23f123,0xf123e823,0x78238923,0x89239523,0x93239523,0xec23f023,0xee23f123,0xf123f023,0x93238923,0x89239123,0x92239123,0xee23ea23,0xe423f123,0xf123ea23,0x92238923,0x89239423,0x96239423,0xe423e223,0xdc23f123,0xf123e223,0x96238923,0x89239823,0x9a239823,0xf123dc23,0xd823d223,0xd223dc23,0x8923a223,0xa2239a23,0x9c239a23,0xd823d423,0xd023d223,0xd223d423,0x9c23a223,0xa2239e23,0xa0239e23,0xd023cd23,0xca23d223,0xd223cd23,0xa023a223,0xa223a323,0xa623a323,0xca23c723,0xc423d223,0xd223c723,0xa623a223,0xa223a923,0xac23a923,0xd223c423,0xc123ba23,0xba23c423,0xa223ba23,0xba23ac23,0xaf23ac23,0xc123be23,0xbb23ba23,0xba23be23,0xaf23ba23,0xba23b223,0xb523b223,0xbb23b823,0x8b23ba23,0x8c1d8a1d,0x5a27681d,0x1b276527,0x17201a20,0x16201720,0x14201420,0x71ffc20,0x1b200720,0xfd201720,0x2b1b2919,0xea25f61b,0xe525e325,0xf625f025,0x441a4a25,0x91a4b1a,0x18261526,0x63266926,0x5e266c26,0x5f1a621a,0x5c1a5f1a,0x5b1a571a,0x5f1a5e1a,0x4120431a,0x3e203e20,0xbb203b20,0xb41fbb1f,0x4520471f,0x3e204320,0x471fbb20,0x1b204520,0x18271e27,0xd271827,0x16270c27,0x18271b27,0x7261e27,0xe260126,0x1e261826,0xf124e426,0xec24ec24,0xe924ed24,0xde24e924,0x9924e424,0x8f27a227,0x85278f27,0x92278e27,0x8f279927,0x23261f27,0x31263126,0x26262b26,0x1b262626,0xd5261f26,0xda24dc24,0xae24da24,0xd224d124,0xd424d324,0xd124da24,0xd224d224,0xd524d424,0x711e7a24,0x5d1e6c1e,0x5a1a591a,0x1019fe1a,0xcd1a0f1a,0x741bd01b,0x6b26611c,0x68266826,0x57265526,0x6c267526,0x33266d26,0x53203420,0xce205320,0xc81fc81f,0x3320351f,0x7b1dd920,0x4d1dda1e,0xb324b424,0x5b24b324,0x56245624,0x4d245224,0x681a6b24,0xb61a6a1a,0xb41ab31a,0xe25101a,0x9250925,0x11251f25,0xf251125,0x68251025,0x691a651a,0x491a471a,0x231a461a,0xfd1a221a,0xfe1afd1a,0x381a241a,0x5b265326,0xe91aeb26,0xe71ae71a,0xd21ad61a,0xee1ad21a,0xfb1aeb1a,0xfe1a1019,0x9d19fe19,0x60199a19,0x42266a26,0x3f264226,0x42264926,0x51264926,0x60265926,0xa5264226,0xef19a719,0xe41f4a19,0x8f1ee21e,0x8251e24,0xf5250825,0xf924f924,0xfd24fc24,0x24fd24,0x8250425,0xfd24f925,0x424fd24,0x29248f25,0xfc19fd1b,0x6f257019,0x6e256e25,0x10256d25,0x10256e26,0x71262926,0x6e257025,0x72257325,0x48257125,0x73265626,0x29256e25,0x73264826,0x6e257125,0x42263f25,0x3a263a26,0x31262b26,0x3f263726,0x12263a26,0x161b141b,0x9924371b,0xa224a224,0x44244924,0x3f244424,0x9c243724,0x4f24a324,0x4c244f24,0x49244924,0x9a24a224,0x9c249a24,0x42244f24,0x3d1a3f1a,0xc027b91a,0xfa26fa27,0xab27bd26,0xb927af27,0x5f26fa27,0x101ec81d,0x219a41f,0x931a031a,0x921b951b,0x8e1b921b,0xbf1b911b,0xc31ac21a,0x261d4d1a,0x631d1d1d,0xab1bad1c,0xfa25011b,0xf624fb24,0x824f524,0xfb250125,0x924f624,0x1250e25,0x824f625,0xc4250925,0x451a4119,0x461a451a,0x8b19c21a,0xa524ab24,0x8124a524,0x80248024,0x8d248924,0x8c248d24,0x8b248b24,0x8024a524,0x8c1bc124,0x5b1c901c,0x41195c19,0xd21aee18,0xe51acf1a,0xe024e624,0xe124e024,0xdf24df24,0x1b24dd24,0xe5251b25,0x9d24e024,0xff19fe19,0xcc1ace19,0x2d1acd1a,0x311be21c,0x321c311c,0x321c301c,0xfd1d231d,0xcb24d91c,0xc824c824,0x2124c724,0x20252125,0xdb24db25,0xc824d924,0xc127b424,0xc025c027,0xa025bb25,0xb825b427,0xbf25bf25,0x79267e25,0x2d272926,0x1a271a27,0x1826fe27,0x18271a27,0x27271e27,0x1a272927,0xf025f627,0xf725f725,0x425fe25,0xbe1bbb26,0x241c901b,0x221b251b,0x219911b,0x76180418,0x7d217f21,0xff180121,0xa19c917,0x1a260f26,0x261a26,0x1a25f926,0x225f926,0xa260526,0x90261a26,0x91258f25,0x9a1d9b25,0x41d9c1d,0x9a1e951f,0x21e9a1e,0xcc1f031f,0xf624d024,0xfb24f624,0xcf24cf24,0xcd24ce24,0xf624cc24,0x3f24cf24,0x3c1c3b1c,0x98279c1c,0xa3279e27,0x9d249c24,0xbb249d24,0x9e249e24,0x9f24a124,0xa0249f24,0xa324a324,0x9e249d24,0x46264724,0x4b264b26,0xfb270a26,0xe1fcb26,0x55205520,0xbf205120,0x91b4a1f,0x521b521c,0x541b511b,0x1427201b,0x3271f27,0xcb180118,0x63266c19,0x3b266426,0x43273f27,0x3a274327,0x96273527,0xa0279c27,0x991a9627,0xdf1b6f1a,0xdd26de26,0xdc26dd26,0xdb26db26,0xd926da26,0xa326d926,0xbb27bb27,0xe1271727,0xe026e126,0xdf26df26,0xdb26dd26,0xd926db26,0xbb27bb26,0xdf26e127,0x44273d26,0x42274227,0x34273027,0x3d273827,0x1d274227,0x191e1a1e,0x9f1eca1e,0xac1f981f,0x7a25ba25,0x8b258d26,0x89258925,0x85258725,0x84258525,0x85260725,0x1e260725,0x89258d26,0x91258525,0x8d258f25,0x93259525,0x99259125,0x95259725,0x9b267d25,0x85259925,0x50261e25,0x7d265026,0x99259926,0x91259525,0x8d259125,0x85258525,0x99265025,0xd025d225,0xd825d825,0xd925e225,0x6324e125,0x62246224,0xb624b524,0xdf24b624,0x5b24e124,0x4f265a26,0x3e264f26,0x6f264426,0xb61eb01f,0x541ab81e,0x2d1b561b,0x241f291f,0x171f241f,0x8a1e8a1f,0x2d1e891e,0x881a831f,0xef1b8b1b,0xf318f118,0xf518f318,0xf718f718,0xaa18f818,0xaa18f718,0xef18ae18,0xf718f318,0xbe18b918,0xb418ef18,0xef18b918,0xf718ef18,0xb118ae18,0xef18b418,0x819d418,0x5d180518,0xa51c5f1c,0xf1b141b,0xa01b131b,0xa31ca21c,0xaf1ca91c,0xa01ca81c,0xa91ca31c,0x111d301c,0xfe1d101d,0xee1dfa1d,0x341c371d,0xce1c361c,0x4c20531f,0x54204c20,0x50205020,0x4b204f20,0x48204b20,0xda1fda20,0x4c1fce1f,0x50204c20,0x8f204b20,0x8e1c8a1c,0x11e9f1c,0xf91f021f,0x251a0e1a,0x261a251a,0x301afa1a,0x47274227,0x28274727,0xf8272227,0xfe25ff25,0xbf267e25,0xc125c125,0x9f25a125,0x9d259f25,0x9b259b25,0xc1267e25,0x5c184125,0x3b195d19,0x3c273727,0x40273c27,0x56273f27,0x8c275127,0x6b276326,0x6d276d27,0x5f276227,0xa125a327,0x4425c125,0x801a821b,0x62275f1a,0x42275d27,0x3a243d24,0xa4243a24,0xac24aa24,0xb424b024,0xaa243a24,0x4824ac24,0x3a244224,0x4b244d24,0xac244824,0x4d24b424,0x3a244824,0x7524ac24,0x71277b27,0x69277127,0x31276e27,0x3a273527,0xe61f4427,0xaf1ee41e,0xa627a127,0x521f5927,0xdc1edc1f,0x5d1edb1e,0xcf25d41f,0x3125d625,0x2f1a2c1a,0x771a091a,0x271a0a1a,0x21271b27,0xc31ac727,0x31ac61a,0x451c431c,0x7d1b7c1c,0x7c1b7f1b,0x7a277627,0x89277a27,0xaf278327,0xae25a425,0x3f274825,0x50274027,0x4b1b491b,0x5e27611b,0x57275727,0x55275227,0x7e1c8327,0x2c1c821c,0xb220b120,0xe525f020,0xe625df25,0xf025f125,0xbf21c225,0x7e222321,0x721e751e,0x661e721e,0x6d1e6d1e,0x7e1e761e,0x9e1c9b1e,0x931c9a1c,0x941c8e1c,0x9b1c941c,0x341c9a1c,0xef1bea1c,0xed19b51b,0xe417eb17,0xe725e125,0xeb25e725,0x1d25e925,0x1e1faf1f,0xb2267c1f,0xb425b425,0x6f267925,0x7c267126,0x8225b426,0x7f277527,0xda24b627,0xdc24dc24,0xdf24dd24,0x5e266324,0x3c265f26,0xfb1bf71c,0x98189b1b,0x50189c18,0x3d1d3a1c,0x2f1ac81d,0xe01b2d1b,0xe21ade1a,0xac25ba1a,0xb925b925,0x7225b325,0x2a1c2f26,0xc91c2d1c,0x4e1bc61b,0x201a1d1c,0x461a231a,0x451d481d,0x2d1a2c1d,0x2a1a2a1a,0x291a251a,0x561c7d1a,0x7d1c541c,0x921b901a,0x1c1c1f1b,0xb31c1d1c,0xb125b925,0x6e25b125,0x70266626,0xb125b326,0x601e6625,0x5a1e5a1e,0x531e521e,0x611e531e,0xdc1e661e,0xb180d19,0xa1a0b18,0x791a781a,0xb1a7b1a,0xc126911a,0xe026c226,0x5c1c5e1b,0x1f272a1d,0xcf272427,0xf41ef31e,0xc626861e,0xc226c726,0xf91ef81e,0xe919af1e,0x8317e717,0xcb26ca26,0xc2268e26,0x4c26c326,0x8c268f27,0xfa1ebd26,0xa61efb1e,0xda26d926,0x919d526,0x51180818,0x4d264526,0xf71ec626,0xb21ef81e,0xfe1efd1e,0xef19b81e,0xaa17ed17,0xd826d726,0xfb1eb826,0xb41efc1e,0xd326d226,0xdd26a326,0xab26de26,0xd726d626,0x71ea726,0xa61f081f,0x11f001e,0x60195f1f,0xb183b19,0x15261126,0x4d275c26,0xb9274827,0xd026cf26,0x9625af26,0xbb25bb27,0xa425b825,0x4b270a25,0xf7265226,0x211d271c,0xfa1d211d,0xb01d201c,0xaf1ca81c,0x891b8d1c,0x4f1b8c1b,0xa024a324,0x6924a024,0x66246624,0x57245e24,0x54245724,0x4f244f24,0x6624a024,0x6a277824,0x6b277027,0x92276327,0x811b8326,0xec1b841b,0xeb1dd81d,0xf31deb1d,0x711df11d,0x66276c27,0x5c276627,0x60276027,0x71276427,0x25f927,0xf225f226,0xf425ed25,0xa31f0625,0xa01ea01e,0x51e971e,0x711b6e1f,0x6d1b701b,0x6e1b6a1b,0x7c27781b,0x85278527,0x75277f27,0x68277527,0x73277327,0x85277827,0x63265e27,0x69266926,0x53265b26,0x9270326,0xb270b27,0x8271227,0x55265727,0x4b264b26,0x4c264626,0x721c7926,0x9f1c771c,0x411b451b,0xa21f131b,0x8d1fa81f,0x5e1a8a1a,0xc124821a,0x8224bf24,0x80258125,0x7f258025,0x7e257e25,0x7c257d25,0x7b257c25,0x7c25b125,0xe025b125,0x7e258025,0x83257c25,0x80258225,0x84260725,0x7c258325,0xf325e025,0x725f325,0x83258326,0x7c258025,0x59274e25,0x54274727,0x24182318,0x48273f18,0xc5274d27,0xb427ba27,0xa027b427,0xb4279c27,0xaa279c27,0xc527b727,0xb427b427,0xb127aa27,0xbe270327,0x5327b627,0x511b551b,0xb27cb1b,0x9270927,0xc727c227,0x531a5627,0x271a571a,0x251a261a,0xa519a31a,0x4a19f119,0x4c274627,0xe81c0927,0x6f1be51b,0x4f1c521c,0x1821e01c,0x46221922,0x8f269327,0x9a189926,0x63189e18,0x5d1f591f,0x9427961f,0x11279827,0xc260b26,0x8d1f8e26,0xb81f871f,0x951bbb1b,0x726011c,0xf325f326,0xfa25ec25,0x621fa25,0x49230a23,0x471b461b,0x4f27491b,0x53275327,0x45274827,0x37203927,0x35203520,0xbb1fc520,0xdd251b1f,0xe924e924,0xea24ed24,0xeb24ea24,0x35251b24,0xc11ac51c,0xc227b81a,0xc7270927,0xc625bd25,0x5271625,0x14270427,0x131a151a,0x111a131a,0x121a0b1a,0x131a141a,0x9e27cb1a,0xf7269d26,0xf324f824,0xf024f324,0xf124f124,0xe224e424,0xe824e224,0xff24ff24,0xf324f724,0xf124f324,0xe224e224,0x1b191a18,0xaa25c319,0x3825cc25,0x2f1a331a,0x2c1a2f1a,0x2f1a301a,0x341a301a,0x391a351a,0x381a381a,0x341a2f1a,0x9a1b971a,0xa41a791b,0x9b1f961f,0x6b256c1f,0x6a256a25,0x68256925,0x67256825,0x66256625,0x64256525,0x63256425,0x62256225,0xda25c925,0xda256225,0x6625ef25,0x62256425,0x68256a25,0x6d256625,0x6a256c25,0x1025fc25,0x66256d26,0xef256225,0xfc25ef25,0x6d256d25,0x66256a25,0x5f276325,0x25269027,0xe81fe120,0x2e1fe81f,0x2c202c20,0x25202820,0x1b21e920,0x1f221c22,0x13191119,0x111e1519,0xf1e0f1e,0x121e0a1e,0xb11bb41e,0xc11c651b,0xc527ca27,0xc426c526,0xc326c326,0xc126c226,0xc126c126,0xc025c025,0xc527c125,0xc326c526,0xd26c126,0x226fe27,0xff270227,0xfc270026,0x261afb1a,0x9824991a,0x9d249d24,0x9a249c24,0xa2249a24,0x1e249924,0x15191319,0x22261b19,0x15261526,0x16261126,0xa827b726,0x1727ae27,0x1e1f181f,0x8d1f1e1f,0x671e8a1e,0x651b621b,0xb425b81b,0xc625b225,0xbc27b327,0xd192127,0xac190f19,0x4d1bae1b,0x33262b1c,0x18261826,0x22261526,0x2b262626,0xd0261826,0xbf1cbe1c,0xa81ba61c,0x9d1c541b,0x95249824,0x8f249524,0x90248e24,0x92249124,0x8e249524,0xba249024,0x95249d24,0xbe249724,0x8824ba24,0x97248324,0x88249424,0x97249724,0x9524ba24,0x95249724,0x94249024,0x90249724,0xb9249224,0x93249324,0x90249424,0xe01f4c24,0xde1ede1e,0x4d1f4e1e,0xc25101f,0xd250d25,0xfa250a25,0x124fa24,0xe250e25,0xd251025,0xb725b525,0xc525c525,0xc425c825,0x4d266025,0x5c265c26,0x6f266226,0x65266f26,0xab266026,0xa618aa18,0x5f1a6418,0x751a621a,0xba267a26,0x7225ba25,0x4b266c26,0xb21bb01c,0xa427a71b,0x9b279b27,0x9d279527,0x481d4527,0xde1bf61d,0x5321e121,0x1c262a22,0x4262126,0xe260926,0x23190926,0x82192419,0xca26c926,0xaa2fab26,0x5c2fa82f,0x60315e31,0xc629bf31,0xd729bc29,0xd627d527,0xd927db27,0xdd27da27,0xdc27db27,0x52305327,0x1530c430,0x1627d428,0x5355028,0x1d350035,0x1e281f28,0x7282128,0x46280928,0x22e432e,0xad2c582e,0x242caf2c,0x12281028,0x11282828,0x29281028,0x19280f28,0xbd309c28,0x10308d2f,0x4a2d492c,0xcd27ce2d,0x2e282f27,0x2927ee28,0x19282e28,0xc7282328,0xce313130,0x87288430,0x35289928,0x28281d28,0x652e1b28,0x372ce52d,0x2d27d828,0xf0283928,0x3f282e27,0x2a283728,0x3a284128,0x43283028,0x3a283528,0x62323d28,0x4731f732,0x3d283228,0x1f313028,0x12312531,0x142e132e,0x46284d2e,0x4f283b28,0x4a283d28,0x7d2f7a28,0x532f7e2f,0x42284d28,0x4a285528,0xed285128,0xef2af02a,0x49285a2a,0x1b285028,0x512d4f2c,0xad2db12d,0xd72d552d,0xd12d722c,0x5e28642c,0xb3285828,0xb9296229,0x61286729,0xf7285628,0x5c2f5a2d,0x5d28692f,0x69286328,0x6727f328,0x242cc028,0x552cc32e,0x542b822b,0x6a28722b,0x75286428,0x6e286628,0x62287628,0x60286d28,0xb929bc29,0x6c287929,0x31287528,0x352de82e,0xe12fde2e,0x9b2fd72f,0x9f2f9e2f,0x7828832f,0xf6287f28,0xf12ff42f,0x14291a2f,0x8b281328,0x86287f28,0xa42b9b28,0xcc2ba32b,0xc729d529,0x922d9829,0x192d952d,0xed2ce82e,0x9228952c,0xc3288a28,0x552ea62d,0x4828562e,0x66284e28,0x77286f28,0x752e5828,0x9c2e742e,0x8e289528,0x93289d28,0xb3289828,0xb428a128,0xe328a228,0xcf289c27,0xcc2e9a2d,0x8f2ab52d,0xa42ab42b,0x9728a028,0x3f29da28,0xac29e229,0x9e28a428,0xa828ae28,0xba28a028,0xbb2a922a,0xf52a642a,0xb22bf72b,0xa328ac28,0xae28b528,0x3d28a428,0xdf2ce22e,0xb828b72c,0x5d28b928,0x63285428,0x5a29eb28,0xbe295829,0xac28b528,0x5232ea28,0xc4335333,0xbe27e628,0xb128c528,0xc528ba28,0xbd27fb28,0x7f357128,0xf2357d35,0xef2e802d,0x4028362d,0xd8283128,0xd730d430,0x8b2e8730,0xcc2e8a2e,0xcb28ce28,0x1b28cf28,0x828d028,0x392b352b,0xc228d52b,0x2528c828,0x302f522f,0xc128d92f,0x2928ca28,0x2a303430,0x2e4e30,0xcf2e4d2d,0xd127d027,0xc728de27,0xdd28d128,0xd428df28,0xe828e228,0xe328d527,0xd828d228,0xda28e528,0x6928e628,0xb62db82e,0x4835ac2d,0x3352235,0x52f422e,0xd328ed2e,0x9028de28,0x8d325532,0xec28f232,0xf328db28,0xe628eb28,0x742f7328,0x9e2f752f,0xa2299329,0xe528f729,0xf928eb28,0xed27fd28,0xff28fa28,0x41291428,0x3e298029,0xf2290029,0xfd28e428,0xf52ff02f,0xee29092f,0xdf28f828,0xdc30de30,0xf4290b30,0xf728fb28,0x182a0529,0x229102a,0x1328f229,0x528fd29,0x291529,0x60290929,0x39328532,0x12291932,0x1b290629,0xd28fb29,0x502f3029,0x82f4c2f,0x7291728,0x95307b29,0xe3308b30,0xe02a482b,0xa28172b,0x21291729,0x19291229,0x292129,0xe292028,0xb291928,0x10300f29,0xc3301630,0xcd2fb92f,0x16280f2f,0x90281a29,0xc9281c29,0xb8280628,0x1928b728,0x152b142b,0x4528362b,0x16284c28,0x17291828,0x482a2e28,0x2299529,0x32d012d,0xb929b72d,0xf829be29,0xfc30fe30,0x78295b30,0x1c295929,0x1e319732,0x3d31fe32,0x8931fd32,0x87325332,0x752b5b32,0x942b5a2b,0x92325732,0x56329232,0xde329032,0xdf2aa02a,0x9c2ad52a,0xa92adb2a,0xab2d552c,0x84339b2c,0xb5339d33,0x75337733,0x272b2d33,0x682b282b,0x66297029,0x56345c29,0x7b345434,0x7e343534,0x1c2b2134,0x762b1d2b,0x77347434,0x862f8434,0x6e2f872f,0x6f2f712f,0x9c2e962f,0x792e9b2e,0x8e348634,0xaa30c834,0xab30ab30,0xac2b462a,0x82b042a,0xe62b072b,0x622e602d,0x6e29272e,0xc8292529,0xcb2e522d,0x522b6d2d,0x7b2b512b,0x792b572b,0x52d072b,0x7a2d062d,0x782b632b,0x8929432b,0x7d298a29,0x7a2b622b,0x662b762b,0x4e2b672b,0x482b852b,0x812f802b,0x572f822f,0x53297a29,0x542f3f29,0x522f3a2e,0x562b742b,0x8c29492b,0x96294e29,0x982f972f,0x7c2e7b2f,0x882e722e,0x3a323c32,0x8d294e32,0x5c294f29,0x5b2b722b,0x542b832b,0x372b822b,0xc62bc82a,0x1031192b,0xfb311f31,0x702c6c2b,0x25298e2c,0xc9298f2a,0xc62ea62d,0x9c29a02d,0x69299929,0x20280429,0x5d358228,0xa4358135,0x2329a129,0x26282729,0xa8281328,0x9e29a529,0xa729aa29,0x6229a129,0x1d346434,0xab29ac34,0xb029a729,0xac29ab29,0x9c2c9729,0x7c2c952c,0x87287728,0x6b293528,0x5a292c29,0x5d2e782e,0xc429c32e,0x3529cc29,0xc42bc62a,0x2f29c42b,0x8c29cd29,0x8e2f8d2f,0x8f2cb92f,0x892cb62d,0x8b2f8a2f,0x762f752f,0xd32f772f,0xdc2fd02f,0xbb29c12f,0xf829be29,0x628f428,0x942e8a29,0xe92e682e,0xdf2ff92f,0x892ddb2f,0xe72dd82e,0xfb28d728,0xfe2a6e28,0xa12c012b,0x94289a28,0x76297828,0xae29e929,0xb3296529,0x88288929,0x61288128,0x652d642d,0xf230b92d,0x9730f430,0x9d299529,0x782c0f29,0x112c0d2a,0x1f292229,0xcb29d429,0x7b29ce29,0xce2ccb2d,0x94288f2c,0xdb289a28,0xd329ce29,0x70305729,0xe9306430,0xe72a522b,0x512e642b,0xde2f542f,0xd829d329,0x7429de29,0x1929db29,0x23280a28,0xa6289b28,0x7328ad28,0x74286828,0xe029ea28,0xfe29e529,0x5b2f5f2e,0x3a2c342f,0xae2d3c2d,0xb02c9b2c,0xe529ed2c,0xcb29e829,0xcc2eb82e,0xe72eb62e,0xf92ecf2e,0xec29f129,0x652c6929,0xfd2c6a2c,0xf029f929,0x722cd429,0x692c6e2c,0x7f2f8830,0xfd2a062f,0x929f529,0xf92a012a,0x5a2f2429,0xc2f532f,0xff29fa2a,0x62a0d29,0xba29fb2a,0xbd29cf29,0xff2a1029,0x122a0429,0x32a0b2a,0xa22ea02a,0x172ea52e,0x22a0d2a,0x7b2bf22a,0x92bf02c,0x1f291c28,0x892a1a28,0x1f2a1329,0xc2a172a,0x672c032a,0x2e2c662c,0xd22ccf2d,0xe2a222c,0x312a142a,0x342e372e,0x122a272e,0x292a192a,0x162a232a,0x8a2a2a2a,0x2c2a2629,0x152a212a,0x282a2d2a,0x162a1c2a,0x4b2ce92d,0xcd2cc72c,0x992cd22c,0x98299a29,0xda319a29,0x31319931,0x2d2a282a,0x30299a2a,0x3229262a,0x2f2a272a,0x2c29912a,0x6298e2a,0xbc30c031,0x26299430,0x3c292429,0x1d2f1b2f,0x492a8e2f,0x972a4e2a,0x8a2a8d2a,0x982a862a,0x832a8a2a,0x862a992a,0x9a2a9b2a,0x7b2a812a,0x7e2a9c2a,0xa02a742a,0xa52a762a,0x422a452a,0xa82a6a2a,0xb62a6d2a,0x542a572a,0xb82a4b2a,0xbc2a4f2a,0x902a8f2a,0x9132932a,0xba329b32,0xbc2abf2a,0xcd2ad12a,0x3c2ace2a,0x40328e32,0x4b285132,0xc1285228,0xc42ac52a,0x5c295a2a,0xd3296129,0xd62ad72a,0xa62fa52a,0xe92fa72f,0xeb2aec2a,0xd02ad42a,0xe72ad12a,0xe92aea2a,0xe82ae62a,0xcb2ae72a,0xc82ac72a,0x7e32d32a,0xdd331e31,0xde2a9f2a,0xb82af92a,0xba2afc2a,0xc729c329,0xc833c729,0xe233c933,0xe32aa82a,0x9e2adc2a,0xf72add2a,0xfa2af92a,0xd433d72a,0xeb33d833,0xed2aee2a,0x9732202a,0xfd319631,0xb82afc2a,0xa82ae42a,0xfa2ae52a,0x46294429,0xa42afe29,0xa62aa32a,0xe02ae12a,0xe12d3d2a,0x122d402c,0xf2a7a2c,0x702bf92c,0x132c732c,0xa283128,0xa2b0928,0x6d2b0d2b,0x6f2f6e2f,0x1f2b232f,0x902b212b,0x21342834,0x7e294a34,0x37294529,0x3b298629,0x9028a629,0x2e27e728,0x2d2b2c2b,0x2b2b2f2b,0x62b2a2b,0x462aac2b,0x6d29292b,0x3a292729,0x32298229,0x72296329,0x26296129,0x2b2b2a2b,0x74295f2b,0xb2297529,0x402b3f2a,0xb62e682b,0x162db42d,0x1c31b832,0x532dd132,0xbd2e542e,0xbb2e5d2d,0x212b232d,0x7d2b3b2b,0x7e2f802f,0x2aff2f,0xca2b482b,0xc72b4b2a,0x32b012a,0xc72b4e2b,0xc42b4d2a,0xcd294f2a,0x927ce27,0x542b0d2b,0x7b29532b,0x30295429,0x37298529,0x79295929,0x86295729,0x3b294029,0x81293e29,0x6c293a29,0x66285f28,0x6c292c28,0xe1292929,0x5c2ae22a,0xfa2af72b,0xfa2b652a,0x662afb2a,0xfc2afb2b,0xfc2b672a,0x682afd2a,0x6a2b5f2b,0x782b5e2b,0x652b642b,0x8329322b,0x28292e29,0x232b222b,0x9a2f972b,0x72f982f,0x4f2d502d,0x8829402d,0x5a294329,0x582b772b,0x5232732b,0x82325132,0x80325d32,0x962f9332,0x592f942f,0x742b562b,0x7e2b4f2b,0x792b4c2b,0x7b2f7a2f,0x8b29472f,0x73294929,0x712b682b,0x7c2b532b,0x792b4f2b,0x772b582b,0x7332502b,0x60325132,0x5f2b692b,0x7129662b,0x8a296329,0x882b862b,0x5829fe2b,0xa2295629,0xa92b982b,0xa02baa2b,0xb12bab2b,0xae322b31,0x8f2ab431,0xab2b902b,0xa9322a31,0x922ab131,0xe92b932b,0x428f628,0x11290a29,0xe8290129,0x932b962a,0xfd28f72b,0xe528f028,0x962aae2a,0xc82acb2b,0x872ba12a,0x892f882f,0xa12bab2f,0xb92bac2b,0xb72b8d2a,0x682f672a,0x972f6a2f,0xda2ad52b,0x1b29522a,0xb72a082a,0xb52b8e2a,0xa52b9c2a,0x432ba42b,0xb12bb42a,0xe028cd2b,0xb528ea28,0x532a512b,0x362bbc2a,0x5b2bbe2a,0xbd2bbf2a,0xb82a3e2b,0xbd2bb62b,0x5b2bbb2b,0x7329612a,0x36295f29,0xbe2bc02a,0x76295d2b,0xd2297729,0x6531ce31,0xc52a6131,0x3b2bc32b,0xca2bcc2a,0xc12a5d2b,0xc22bbf2b,0xc42a352b,0x632bc52b,0x3a2a652a,0xba2bbc2a,0xa52b9e2b,0xcb2b9d2b,0x692bc92b,0x712bcf2a,0xcd2bd02a,0x6c2bcb2b,0x6c2bcd2a,0xd02a6f2a,0xd12a722b,0xd82fd52b,0xe32fcd2f,0xe12be02b,0xec2bee2b,0xfa2bbd2b,0xf82bf72b,0x32c052b,0x142bd02c,0x112c152c,0xb2a772c,0x72c092c,0x62a732c,0xf72a662c,0x682bfa2b,0xfc2bfa2a,0x162a7f2b,0xb2c142c,0x7c2a792c,0xce2a3d2a,0x1e2bcc2b,0xd62a8b2c,0xb52a4d2b,0x262bb32b,0xca2d282d,0x822c162c,0x272a842a,0x1d310331,0xeb2a5a31,0x392bed2b,0x3e283428,0x64307c28,0xd2307030,0x8c2bd62b,0x882bd52a,0xd22c202a,0x892a8c2b,0xed2a5c2a,0x602bef2b,0xf32bf12a,0xfc2a6b2b,0x1a2bfe2b,0x852c202c,0xf32a622a,0x1c2bf52b,0x1e2a872c,0x672bc72c,0x202bc92a,0x1b2b1a2b,0x7d2c182b,0xea2c122a,0xb22eae2d,0xdc2bdb2e,0xa2c2a2b,0xd334433,0x2e2c3033,0xd72ca12c,0x352c332b,0xff2c362c,0x372c342b,0x362c022c,0xda2c3c2c,0x472c3b2b,0x332c352c,0x472c462c,0xed2c482c,0x8f2ff22f,0x462c4d2f,0xa92c432c,0xa72da22d,0xac30d52d,0x4d30dc30,0x352c382c,0x432c502c,0x502c4e2c,0x4d2c382c,0x4d2c502c,0x502c432c,0x382c392c,0x8b31af2c,0x53318931,0x502c392c,0x3a2c532c,0x562c392c,0x512c532c,0x512c562c,0x562c542c,0x532c3a2c,0xd231322c,0x5730d630,0x582c552c,0x3835332c,0x6e353a35,0x6d2c742c,0x3c2c5d2c,0xb32c3b2c,0xb129b729,0x4c354929,0x1f354e35,0x1d2d0d2c,0xa291a2c,0x61291628,0x632c622c,0xe430e02c,0x3e30dd30,0x602c3d2c,0x352e392c,0x832deb2e,0x8b307230,0xee29f030,0x6d2a0229,0x6e2c6b2c,0x5332ed2c,0x6f335433,0x6d2c6a2c,0x6c2c702c,0x702c6a2c,0x6f2c6a2c,0x702c732c,0x732c6f2c,0x712c6f2c,0x4a2e462c,0x142e482e,0x152d132d,0x812bee2d,0x782bec2c,0x762c792c,0x332d352c,0x4f2d322d,0x5e2e602f,0x372cd92e,0x7c2e3a2e,0x792c7b2c,0x8a2d892c,0xcc2d8c2d,0x59305230,0x6c2b5e30,0x812b5d2b,0x7c2c7e2c,0x802c822c,0xf12c832c,0xf52f5e2d,0x502e072d,0x1d2f522f,0x50354d35,0xdf2e3035,0x412e312d,0x3f2c362d,0x202a0a2d,0xe229922a,0xee294429,0x5232e529,0x8d32e733,0xa3289b28,0xf12d4b28,0x572d4e2c,0x5c284528,0x2a2c9928,0x772c282c,0x742c782c,0x962aad2c,0x9c2aae2b,0x2a2c2c2c,0x2a2c9c2c,0x1c2c992c,0x1b295028,0x9c2ca128,0xa12c9d2c,0x9c2c2c2c,0xa02ca22c,0x752c9d2c,0x742eb32e,0x16300f2e,0x61302430,0x64309e2f,0xa22c492f,0x492c462c,0x302c332c,0x302c492c,0x5e2ca42c,0xbf29c229,0x332c4829,0xa52c492c,0xa32c442c,0x452ca62c,0xa72c442c,0x9f2ca32c,0xa92c452c,0x722c552c,0x42f6a2f,0xb02cb230,0x922c962c,0x942cb42c,0x592dda2c,0xd92e5b2e,0xd72ad62a,0x7a28712a,0xbf286528,0x862cbc2c,0xc12cc02c,0x292cbe2c,0xae31ab32,0x55305131,0xbb305f30,0xcf2fc82f,0xc82c7a2f,0x172c7d2c,0x1a2cb82d,0x152c112d,0xa92c0c2d,0xa82b992b,0x5c2d5b2b,0xf72d5d2d,0xfa2cf32c,0xd82cd92c,0x912cd62c,0x96288c28,0xda2cdd28,0xe02c6e2c,0xe32c682c,0xcc31262c,0x312130,0x692c662c,0x572c562c,0xeb2c592c,0xe72cea2c,0x762de12c,0xcd2e7c2e,0xc628f128,0xfe2cfd28,0xff2cfa2c,0xfc2cfb2c,0xff2d032c,0x52d002c,0x92d082d,0x92d052d,0xb72d062d,0x612e5f2d,0xa92e6d2e,0xd2e6e2e,0xc2d0a2d,0xb2d0d2d,0xe2d0a2d,0xf32cf92d,0xf52cfc2c,0xf2e4a2c,0xc2d0d2d,0x392f372d,0x102f3c2f,0xec2cf32d,0x122d132c,0x612d102d,0x862e822e,0xde30d52e,0x6030d330,0x5e2c5c2c,0x622cb82c,0x3c2c642c,0x3e2d3b2d,0x632d182d,0x182d172c,0x3f2c402d,0xa12caa2c,0x1a2da42d,0x192cb82d,0x402d1b2d,0x1b2d182c,0x402c412d,0xbb2d192c,0x1c2cbe2c,0x192d1a2d,0x422d1d2d,0x1d2c412c,0x1b2c412d,0x3d31bd2d,0x1f31c131,0x192d1c2d,0xb428c32d,0x1f28e128,0x1d2c422d,0x1d2d1f2d,0x1f2d1c2d,0x422c222d,0x2e2cc92c,0x232ccd2e,0x222d1f2d,0x232d232d,0x232c222c,0x1f2c222d,0x612c3e2d,0x242c632c,0x212d222d,0x242d252d,0x962c232c,0x2b2a1829,0x232d252a,0x252d222d,0x232c232d,0xca2d262d,0x272ccc2c,0xca2d242d,0x272d292c,0x292c242c,0x242d222d,0x2a2d2b2d,0x2c2ccc2d,0x282d292d,0x272d2c2d,0x2c2d292c,0x272c292d,0x2b2d282c,0x492d2d2d,0xd731bb31,0x772de431,0xd52e762e,0x9b314d31,0x292d2d31,0x2d2d2c2c,0x292c2b2d,0x762e732c,0x332eb22e,0x2b2c2d2d,0x4632dc2c,0xc632d933,0x2b2e282c,0x2f2d332e,0x9c2c2d2c,0x9a2d972d,0x2f2d362d,0x362d332c,0x2f2c312d,0x352d372c,0x382d342d,0x372d352d,0x6b2d692d,0xce2d602d,0x772c7a2c,0x372d392c,0x492d342d,0x4c2d4b2d,0x152f592d,0xd62f192f,0xd92e362c,0x629f22c,0x3f28b728,0x342c362d,0x5c2de02c,0x3c2e5e2e,0x3d2c602c,0x402cea2c,0x1b2ce62d,0xb300630,0xe928ff30,0x44290328,0xee2cea2d,0x8a2e632c,0x472e662e,0xf12cee2d,0x94307d2c,0x37306930,0x39355635,0xc730c935,0x4930ce30,0x452d462d,0x4d2d4c2d,0xa82d4a2d,0xa22da72d,0x4a2d4c2d,0x4f2d492d,0x4c2d4d2d,0x4b2d4f2d,0x502d4e2d,0x4f2d512d,0x5b35582d,0x9f356435,0xa231a931,0xaf2b4431,0x62b432a,0x502d512d,0x92d062d,0x422d512d,0x442cea2d,0x372c082d,0x252d432c,0x932c912c,0x432c0e2c,0xa92d462d,0xa82db12d,0x9f2da12c,0x42da22d,0x3e333c33,0x102c1333,0x192d4a2c,0x4f2d4d2c,0x2830a42d,0xb7312331,0xb52e632d,0x212bd32d,0xd02d092c,0xd32e322c,0xc29f32c,0x73280528,0x782c742c,0x872bea2c,0x2b2be82c,0x9b2a2e2a,0x2731a329,0x21322832,0xbd2e1e2e,0xc42ac82c,0xaf2ac52a,0x562d542c,0xc529d82d,0xc629c629,0xd029c829,0xaf2d5a29,0xac2d562c,0xaa2da02c,0x572dd72c,0xb22e592e,0x3c293d29,0x622d6029,0xe22d632d,0xe330e130,0x672c6530,0x672d162c,0x592f552e,0x642d672f,0x792d602d,0x7b2d7e2d,0xa031a62d,0xdb319531,0x2e2ca12b,0x6c2d6e2c,0xb22d6f2d,0xae2d992c,0xfc29312c,0x2e293429,0xc6312331,0x612c5f30,0x702c582c,0xda2cd72d,0x702d722c,0xbd2d6e2d,0x9d34a134,0xc12e5534,0xc92dc32d,0xcc2a982a,0x5c35532a,0x43350935,0x402f482f,0x7f2ddb2f,0x7c2e842e,0x7d2d7a2d,0x702d6b2d,0xb82d6d2d,0xb229c329,0xa72da629,0x852caa2c,0x9b289028,0x7e2d8028,0xfc2d7c2d,0x2e4d2c,0x3929b82d,0x84293629,0x822d812d,0x822d842d,0x422d852d,0x402ce72e,0x4e2f4a2e,0x842f482f,0x872d852d,0x862d882d,0x172d842d,0x152ced2e,0x862d8b2e,0x892d882d,0x842d882d,0x112e492d,0x8f2e4c2e,0x8c2d892d,0x8d2d8c2d,0x622d902d,0x78286528,0x8f2d9128,0x402d8c2d,0x3e2d412d,0xb42d962d,0x6b2d942c,0xba2dbc2e,0x932d922d,0xa52d952d,0xa62da92c,0x942d962c,0x8c2d922d,0x922d932d,0x142cfe2d,0x782cfa2e,0x7b2d762d,0x3f2e3c2d,0xfa2e392e,0xf72e132c,0x992d9b2c,0x3c2d972d,0x45305430,0xfe290d30,0x59291e28,0x74306830,0x9b2d9e30,0x9e2d972d,0x9c2d972d,0x842c7f2d,0xaa2c7c2c,0x9e2da02c,0xa72e802d,0xa62ead2e,0xa22da42d,0x6b30682d,0x7d307a30,0x85286f28,0x6c339c28,0xc2336733,0xbf2d862c,0xe2d0f2c,0xdd2d122d,0x282c262b,0x3a32fc2c,0xad333b33,0xaa2dac2d,0x1233292d,0x83332f34,0x812d7c2d,0x1e2dca2d,0x552dc72e,0x532dad2d,0xf22aef2d,0xb42af12a,0xa82dab2d,0xb02dba2d,0xbb2db82d,0x9d2db92d,0xbf2dc12d,0xc42d952d,0xc22d5f2d,0xc32dc62d,0x872d8d2d,0x8a2dc92d,0xcd2dce2d,0xd22dcb2d,0x822dcf2d,0xd02dd32d,0xd52dd12d,0x7f2dd22d,0xd82d7a2d,0xde2d7d2d,0x772ddb2d,0xde2de12d,0xe72d742d,0x6f2de42d,0xeb2dec2d,0xf62de92d,0x622df22d,0xfb2dfe2d,0x2dfa2d,0xfe2dff2e,0xfd2e022d,0xa2e032d,0xb2e052e,0xeb2e442e,0x3a2e422c,0x3c2d392d,0xce2d752d,0x672d722c,0xdd2cda2d,0x4d2e492c,0xb02e4b2e,0xba28c128,0x7f2c7d28,0xf22c772c,0xf42ef12e,0xc82d802e,0xc82ccb2c,0xd9295c29,0x5e2e1f29,0x212e1d2d,0x1f2cb72e,0x7d2e792e,0x72e742e,0xb2b0c2b,0xba2cbd2b,0xbd2e212c,0x222e1e2c,0x202e242e,0x242e232e,0x222cbd2e,0xd730e02e,0xda30d930,0xd229e029,0xd02e2729,0x6a2dd32d,0x682d602d,0x252e282d,0xa62e272e,0x552ea52e,0x332cd32e,0x292e362e,0x272e282e,0x45330d2e,0x2b331033,0x292e282e,0x272e2c2e,0x2c2e2a2e,0x272e292e,0xac34a92e,0x2e34b134,0x2c2e292e,0x2a2e2f2e,0xdd2e2d2e,0xb330e430,0x2e2ccd30,0xab2e2c2e,0xaf2d522c,0xc732352c,0x3931c931,0x2e352f35,0x542d5235,0x6f2caf2d,0x582e9d2e,0x322cd32f,0x342e302e,0x312e332e,0x892d8e2e,0xa92d8f2d,0x9535a735,0x2e2d2d35,0x42d302d,0x1429462a,0x4735282a,0xd934fd35,0x342e362c,0x372e382e,0x2b2e352e,0x34282228,0xc4311b28,0x3b312630,0x352e382e,0x352e3b2e,0xdf2e392e,0x382e3a2c,0x382cdf2e,0x552e3b2e,0x6b306030,0xf02e3e30,0x3e2df32d,0xf02e3c2e,0x502c512d,0xda2c4e2c,0x702d6d2c,0xc331332d,0xbf30c130,0xbc2d8b2c,0x3f2e402c,0xb52e3e2e,0xb42d942c,0x192e1b2c,0xda2e1a2e,0xdd2e5c2d,0x622e1a2d,0x82d602d,0xd42d0b2d,0xef2e472b,0x492e442c,0xa2e042e,0xf22cf52e,0xf52e472c,0x482e452c,0xa2e492e,0x4a2e0e2e,0x482cf52e,0x4a2e4b2e,0x862e492e,0x93288828,0x912cb628,0x8c2cb52d,0x912d942d,0x432e402d,0x4e2e442e,0x4c2e4d2e,0x1a2d1b2e,0x9a2d1d2d,0xb8319631,0xf2b0b31,0xc52b0e2b,0xc22d832c,0xd12dd42c,0x6d2e542d,0xbf35be35,0xbf2dbd35,0x962e582d,0xa929a329,0x529f429,0xb929eb2a,0x5d2dbb2d,0xe02e602e,0x432e5e2d,0x462d452d,0xe62de92d,0x652e642d,0x642de92e,0x632db32e,0xc22e662e,0xc52e702d,0x662db42d,0x9b2e682e,0xc628ad28,0x802b4c28,0xb32b492b,0x5e2d5b2c,0x6a2dba2d,0x122e6b2e,0x11301f30,0x58305430,0x4a306930,0x5e304730,0xbe2e6c30,0x952dbc2d,0xa6294229,0xc52dc829,0xce2e702d,0x532e522d,0xb12eae2e,0xf62eb22e,0x762c732b,0x122d112c,0x3e2d142d,0x422f402f,0x1e2d1f2f,0x902d202d,0x932e912e,0x5f2e612e,0x602e7d2e,0x58285f28,0xec29e228,0x8629e529,0x612e632e,0x7d2e5d2e,0xca2e5f2e,0xa230a330,0x8b2e8e30,0x312e8f2e,0x322d2f2d,0x422c372d,0x32d432d,0xbd2fc231,0x1e2f462f,0x312f212f,0x2d2c2b2d,0x8e2e942d,0x5e2e922e,0x372f192f,0x692e6a2f,0x982e942e,0x992e932e,0x942e6a2e,0xe72e922e,0xe430042f,0x932e9a2f,0x5d2e982e,0x5c2b6f2b,0x9e2e9d2b,0xa12e9f2e,0x6a2e6b2e,0xff2f572e,0xfa2efe2e,0xfb319b31,0xc328c731,0xad28db28,0xa929ba29,0x522c5129,0xdc2c542c,0xdf2e3a2c,0x6c2e6d2c,0xe32ea42e,0xdc29f729,0xa52e5529,0x9e2eaa2e,0xab2ea92e,0xaa2eaf2e,0xa92eac2e,0x9f28ab28,0x632c3f28,0x742d182c,0x582e5a2e,0x831022e,0xe8311331,0xe62c8a2b,0x3e2f762b,0xa304530,0x4d354a35,0xc32ec235,0xc62ebb2e,0xc52ec42e,0xac31002e,0x6a2fb42f,0xa12e962e,0x902be42e,0xba2be22c,0xbd2eb42e,0xce2edf2e,0xc02ede2e,0xd02ed52e,0xd92ebb2e,0xe22ee12e,0xd72ed32e,0x8281e2e,0x15291d29,0x112d142c,0xdf2ee62c,0x352ee42e,0xb2eeb2f,0x952dd22f,0xe22dcf2e,0xdf2c252b,0xda2ef52b,0x652ebb2e,0x682c4a2c,0x2b2a032c,0xfc2a0f29,0xda2edb2e,0xa628bb2e,0x1a28c028,0xc32ebb2f,0x9e2e6e2e,0x292e9d2e,0xfd2efb2f,0x32eeb2e,0xf32f2b2f,0x122f0e2e,0x6330802f,0x1a305930,0xbb2f2e2f,0x172f1a2e,0x2f2f2e2f,0x142f0d2f,0xfd2f312f,0x972eec2e,0xa0309530,0xd92e2d30,0xbb2ddc2d,0xe82ee92e,0x8b2c8a2e,0xf22c902c,0x812f5c2d,0x852e842e,0xf92e882e,0x282ef82e,0x792bf62f,0x32bf22c,0x1a290e29,0x2e1529,0x5a2e162e,0x812f262f,0x542f3a2e,0x472e532e,0xa2f062f,0x9f297e2f,0x3c298129,0x362f3e2f,0x82e4f2f,0xe22e512e,0x3b2ce62c,0x2c2f3f2d,0x502f3d2f,0x4e2b842b,0xbd29a92b,0x85299629,0x92359e35,0x96299235,0x59299f29,0x3f2e572e,0x892b882f,0x452b8a2b,0x402f422f,0x2a35292f,0x4c34fe35,0x222f202f,0x5b2f492f,0x492f442e,0x5b2e5c2f,0x662fd22e,0xad2f642f,0xb229af29,0x492e5e29,0x4d2f472f,0x92f0a2f,0x722d732f,0xb2d6e2d,0xa2d042d,0x4e2f502d,0x1b2f4c2f,0x2e294b2a,0x622e642a,0xf2f4f2e,0x102f512f,0x512f542f,0x672f0f2f,0x542e652e,0x152cf72f,0x672cf02e,0xf2f542e,0x702f582f,0x592e6f2e,0x162f552f,0x2f30d02f,0x5b30cc31,0xfe2f572f,0x582f5b2e,0x5b2f572f,0x702e712f,0x582dc12e,0xf02dbf2e,0xee2c7e2b,0x452e472b,0x702cf52e,0x712f732f,0x192f382f,0x2f182f,0x12f5d2f,0x192f372f,0xcd2f382f,0xcc29d729,0x532f3b29,0x3b2e522e,0x5d2f5f2f,0x92f4e2f,0x252e0d2e,0xdf2bde2c,0x8d2dd22b,0x172e902e,0x152d112c,0xfd2f3e2c,0xa82f362d,0x262e812e,0x422e0b2f,0x4c2f452f,0x48285428,0x482e1028,0xcc2f4b2f,0xc92ea32d,0xd2f4b2d,0xe72e102e,0x772eb22d,0x532dff2e,0xfb2f562f,0x5a2f562d,0x802ded2f,0x1d2eae2e,0x172d0f2c,0x642f652c,0x832f662f,0x2e293029,0x562c3b29,0x6b2c5a2c,0x6c2f6a2f,0x522f5b2f,0x472e712e,0xb22bb12a,0x4c2be52b,0x772be32a,0x792f782f,0x9b2f9a2f,0x992f9c2f,0xa82ba62b,0xaf2a442b,0xd22bad2b,0xd327d527,0xa32b9a27,0x412ba62b,0xae2bad2a,0x81287b2b,0xd2287a28,0xd52a9b2a,0x6f29252a,0x46296829,0xaf2bb02a,0x7c29542b,0x82294d29,0x842f832f,0xa22fa12f,0x902fa32f,0x922f912f,0xba2a3c2f,0x532bb82b,0xb72bb92a,0xb32a4a2b,0x922bb02b,0x942f932f,0xbb2a562f,0x352bb92b,0x6a296929,0xa42fa329,0x4d2fa52f,0x4a297d29,0x902f8d29,0xb62f8e2f,0xc728a928,0xa72fa928,0x342fa62f,0xc02bc22a,0xc32a5f2b,0x7a2bc12b,0x78288628,0xb62a4028,0x3f2bb42b,0xce2bae2a,0xad2fac2b,0x392fb42f,0xde2cdb2d,0xb92fb82c,0xaa2fba2f,0xac2c9e2c,0xca2a392c,0xbe2bc82b,0xbf2fb72f,0x5930cc2f,0xcd305b30,0xd130cb30,0xac2fbd30,0xc72fb32f,0xa02fa62f,0x9a35a130,0xc235a635,0xb62fc62f,0xb02fc82f,0xca2fc52f,0xcb2fba2f,0x6931742f,0xd0316731,0xb12fc92f,0xce2fd32f,0xd32fbe2f,0x882f8a2f,0xcd2fd52f,0xd82fb82f,0xc32fcf2f,0x962c942f,0xdb2c932c,0xd12fca2f,0xd72fde2f,0x7a2fcc2f,0x7c30542f,0xfa30022f,0xe430052f,0xdb2fd52f,0x4c2e4f2f,0xe92e112e,0xd62fdf2f,0xe52feb2f,0x9f2fda2f,0xa12fa02f,0xbd2cba2f,0x32cb82c,0x72d042d,0xde2fed2d,0xef2fe52f,0xe02fe92f,0xe32ff02f,0x322fea2f,0x382d362c,0xef2ff42d,0x872fec2f,0x8f309e30,0x702c0630,0xfa2c042a,0xee2ff52f,0x752c0d2f,0x6d2c072a,0xbe2dc02e,0xf32ffe2d,0x912ff82f,0x9930242f,0xf630002f,0x922ffc2f,0x97308330,0x23302630,0xc302b30,0xfe300530,0x6c2e9b2f,0xf22e962e,0xf72feb2f,0x8300e2f,0xf300130,0xff300730,0xe30122f,0x4300a30,0x12a6e2c,0x3629c42c,0x73293329,0x7d307530,0x13301930,0xec301530,0xeb30f330,0x502be730,0xb02be52a,0xb2318631,0xef2a5e31,0x1d2bf12b,0x14301630,0x9d2fa030,0x8c305e2f,0x89307f30,0x1d302130,0x23301830,0x20301a30,0xed2ce930,0x72ce82c,0xa334233,0x5132e333,0x2532e533,0x1f301c30,0x16291430,0x2e280d29,0x27302230,0x27303130,0x32302c30,0x28302b30,0x472be030,0x372bb22a,0x30302c30,0x2e303830,0x39303130,0x33302d30,0x30303c30,0x3e303530,0x37303130,0x8e2c9030,0x432c912c,0x3a303630,0x9f28a530,0x4b28af28,0x44303d30,0xa92fab30,0x4d2fc72f,0xc02fc130,0x47304e2f,0x23303f30,0xba31b532,0xc72d2031,0x592d242c,0x562c5d2c,0x562eaf2c,0x552e552e,0xc0304d30,0x5230592f,0xf8305130,0xc281829,0x1f31d928,0xae31d532,0xa02d9b2c,0x5b30632d,0xe1305930,0xa29dc29,0x4235312a,0x6a353635,0x5c305030,0x732d7730,0x1a2d742d,0x182a802c,0x6b306f2c,0x9a306c30,0x93289828,0x33282428,0x76284a28,0x6a306130,0x882e8930,0x7b2e902e,0x6d306630,0x592dee30,0xf92df12f,0xfd2f362d,0x42f3d2d,0x7e2f442f,0x81306e30,0xab28af30,0x8428ba28,0x6f307a30,0xe128e430,0x8d28f828,0x78308830,0x892dd530,0x842e8d2e,0x7a308730,0x82309630,0x9b308e30,0x8d308830,0x8d309c30,0x9d307e30,0x8a309130,0x38283230,0xb2282c28,0x8c309a2f,0x472d4830,0xd52d4b2d,0xe629d729,0xb52fb729,0xbc30982f,0x9a30a12f,0x552beb30,0xc52be92a,0xc4309d2f,0x8430862f,0xd02f852f,0xd127d327,0x4f304d27,0xc430c430,0x53304f30,0xe429e330,0xa929eb29,0x42304130,0xf2280630,0xcc29f329,0x5230c430,0x32312230,0xd0311d31,0x65305b30,0xcc30d030,0xc4305b30,0xc62cc32c,0x652dee2c,0xd62e672e,0xe329d929,0x2a2a1e29,0x18292829,0x14312b31,0xf2a1931,0xd52a212a,0xd62cd32c,0xd82fe22c,0xd62fe62f,0x2e321931,0x5331d232,0xb131d731,0x25322431,0x182a0832,0x402a052a,0xe22ce42e,0x922ab32c,0xf12ab12b,0xef2ceb2c,0xc031292c,0x5e312030,0x71305a30,0xe630e730,0x130e530,0x532f522e,0x372df52f,0xf02df92f,0xea30ed30,0xf030f230,0xf430ee30,0xef30f230,0xd330d430,0xbf30d730,0xc12ac22a,0xf730fa2a,0xfc30f530,0xf630fa30,0x4130ff30,0x3f30a930,0x412d3e2d,0xff31022d,0x330a930,0x2fb331,0xfb310431,0xfc30fd30,0x9c319b31,0xfd310931,0xd310130,0xa8310831,0x1310f30,0xe2310731,0xdf2e312d,0xba31122d,0x67310b30,0xe52ce32d,0xc31142c,0x15310531,0xc310731,0x79307731,0x18307f30,0xa311431,0x16311831,0x32312631,0xd52cd22d,0xc311e2c,0xd2311431,0xd130cd30,0x17312530,0xaf311c31,0xb030912f,0x3829cd2f,0x9029da29,0x9c2fac30,0xdc2cdb30,0x112cde2c,0x2b2a1b2a,0x22312a2a,0xcd311931,0x322e2f2c,0x692bfd2e,0x302c6c2c,0x38282428,0x5d2d5e28,0xb92e1c2d,0x892c8f2c,0xf329012c,0x48290a28,0x472b6e2b,0xab30c82b,0xcb2fc130,0xa430cf30,0x8300b30,0xfc301130,0xf290828,0x5a2cb129,0xdb2cb32d,0xda319931,0x832cc231,0x492c7d2c,0x50284028,0x282bdc28,0xa62c2a2c,0xaf293d29,0xd4306529,0xd830d02f,0xdb2ada2a,0x5535532a,0x3b355835,0x42283128,0xaa31ac28,0xad319231,0x8e31ac31,0x852c8731,0xf2c882c,0x482f452e,0xb530942f,0x1d2fb72f,0x122a0b2a,0xc431c32a,0xc331c131,0x3d31c131,0x2f3b31,0x102f3f2f,0x13334733,0x62286333,0x85286b28,0x80288728,0xd02e2528,0xf62e272d,0x39333832,0x7c2dde33,0xd32e7f2e,0x3b31cd31,0x32302431,0xdc303930,0xde319d31,0xde31e031,0xf6319d31,0xbc31d731,0xd9322231,0x19319831,0x1f31d532,0x18321b32,0x7c321932,0x812d7f2d,0xa72b052d,0xa52b062a,0xff2b002a,0x9c31ff2a,0xd6320031,0xd3322f31,0xb22d5731,0xcf2d592d,0xcd323131,0x2b31ae31,0xcb322932,0xc9323431,0xb02b9331,0xa92ab12a,0x2c322a31,0x3031d332,0x31cf32,0x2831a332,0x672c0a32,0x2d2c052c,0xa731a232,0x62ffb31,0xcb2ff430,0x3231cd31,0x3131cd32,0x96323232,0x8f2e922e,0xa7322c2e,0xc931a931,0x35323431,0x3731c332,0x3f323832,0xe9324132,0xeb323e31,0x331ed31,0x44324832,0x52328732,0x39328332,0x8320632,0x3c284132,0x1f284428,0x21282a28,0xf1325c28,0x5e325e31,0x5f31f332,0xf4325f32,0x93326131,0x91324332,0xf5326132,0x50326231,0x70326e32,0xf42af132,0x4d2af32a,0x6d2b6b2b,0x5b32802b,0x95327e32,0x93324732,0x8e2cbc32,0x812cb92d,0x7f324f32,0x58329632,0x61329432,0x602b7f2b,0xae31e22b,0x4932a332,0x4b2b6b2b,0x54328d2b,0x91328932,0x8e324032,0x472b7132,0x4d2b6e2b,0x4a328432,0x4e327f32,0x99329932,0x97324c32,0x59329832,0x7e329632,0x98325a32,0x49329732,0xbb329532,0xbd2a932a,0x9d32a02a,0x9a329a32,0x76327832,0xf231d832,0x9b32a231,0x9e32a132,0xa1329f32,0xec32a032,0xac31ee31,0x972ac632,0xc32ac92a,0xc62a962a,0xb732b92a,0xbd315732,0x5f315d32,0xc732c931,0xcb316b32,0x70316e32,0x7032cd31,0xd1317331,0x7632cf32,0x942abd31,0xc02ac02a,0xc32a952a,0xca2ace2a,0xcc2acb2a,0xcf2a992a,0xdc32de2a,0xe032d032,0xa12aa02a,0x9a2acf2a,0xef2ad22a,0xfc32f932,0xb32c332,0x26330833,0xd2331f33,0x2a318432,0x28332633,0x2f332933,0x88323933,0x26323a32,0x84332033,0x2c333231,0xd8318c33,0x94319332,0xd432d731,0x36319132,0x8d319033,0x4e32dd31,0xdb32df33,0xdd334d32,0x4c32da32,0xff32db33,0x3c333b32,0x4832da33,0xe0334b33,0x3f333d32,0x3932f933,0xdc333a33,0x4132de32,0x5532f333,0xb5333833,0x6c31ab31,0x5032e131,0x5e32e333,0xb32cb72d,0x1333162c,0xa0334933,0x9a2ea32e,0xf42e3e2e,0x192df82d,0x4a331633,0x14333733,0x9533e134,0x9a2e932e,0xdf32e12e,0xf0334f32,0x55335432,0x15310f33,0xb9313331,0xc0317b31,0x46335831,0x5c335933,0x58334833,0x5e335f33,0x61335d33,0x62336033,0x64336833,0x69336333,0x65334e33,0x66336a33,0x6d336733,0x6f336c33,0x73337633,0x7c337233,0x7a337b33,0x80338133,0x88338233,0x87338633,0x8c338e33,0x91338d33,0x90335633,0x90339233,0x93338f33,0x91335733,0x92339533,0x89338b33,0x8a339733,0x62339833,0x85339633,0x87339933,0xf82af533,0xf32af72a,0xf52af62a,0x83339e2a,0xa5338233,0xa733a433,0xa3337e33,0x7d337f33,0x7e33a633,0xa833a933,0xac33a733,0xaa33ad33,0xab33ae33,0xb0337933,0x7833ae33,0xb633b733,0x7433b433,0xb833bb33,0xb933bc33,0xbe33ba33,0xbd33bc33,0xc133c233,0x7033bf33,0x7133c033,0xa52b0333,0xa22aa72a,0x302b2a2a,0xc933cb2b,0xcf33ca33,0xcd33d033,0xd133d233,0x5a33ce33,0xc333c633,0xd633d933,0xdb33d533,0xdc33d833,0xda33dd33,0xdf33d933,0xde33dc33,0xe233e433,0xe533e333,0x6d336e33,0xe633e833,0xea33e533,0xe933e733,0xeb33ec33,0xee33a833,0xed33ec33,0xf233f333,0xf433ef33,0xf0333a33,0xf133f533,0xf633b133,0xb333b133,0xf733f933,0xfc33f833,0xfb33fa33,0xfe340033,0x133fd33,0xff340034,0x2340533,0x6340434,0x3334734,0xc4340734,0xc33c733,0xcb340934,0xa340e33,0x13340d34,0x10341134,0x19331d34,0x23334a33,0x8331d33,0x23332534,0xc6340b33,0xc228d228,0x40330428,0xd5330733,0xe033e132,0x19341833,0x29341a34,0x27342534,0x2e343134,0x34342c34,0x32342f34,0x36343734,0x3f343834,0x3b343d34,0x45344a34,0x4b344834,0x46344834,0x4e345234,0x55345034,0x54345334,0x94345734,0x15339333,0x16341734,0x102b1534,0xd2b112b,0x102b112b,0x4f345b2b,0xe344734,0x122b132b,0xa72b9f2b,0x472b9e2b,0x65344334,0x172b1234,0x672b162b,0x3e344134,0x182b1d34,0x6c2b192b,0x6f343c34,0x6e346d34,0x72347134,0x39343a34,0x78343634,0x16343834,0x1a2b1b2b,0x84342d2b,0x81343034,0x30343334,0x2b348734,0x94342a34,0xa9349834,0x9d349e34,0x2534a234,0x202b1e2b,0xa634a52b,0x2934a234,0x252b242b,0xae34b02b,0xbe34b734,0xbb34bc34,0x2034c034,0xc1342334,0x1f341e34,0xc434c634,0xc634c234,0xa033a134,0xc334c733,0xc934c534,0x7334c834,0xca34cb34,0xce34c934,0xac33af34,0xce34d133,0xd234cc34,0xcd34cf34,0xd234d334,0xd434d034,0xd334d234,0xd534d734,0xdb34d634,0xd934d834,0x9434dd34,0xde349734,0xda34dc34,0xdf34e034,0xe3349f34,0xcc33ce34,0xe134e433,0xe534e234,0xb334b734,0xe634ba34,0x7434af34,0xe7347134,0xe9347a34,0x6334ea34,0xec34eb34,0xee345f34,0x8934ef34,0xf0348634,0x8c34f334,0x5934f134,0xf2345b34,0x8f349234,0x5a34f434,0xf5345934,0x5e346034,0x6e34f834,0xfb34fa34,0x2350434,0xe350535,0xc350b35,0xf7351035,0x1234f634,0x13350f35,0x14351b35,0x1e351535,0x17351635,0xf9352035,0x24351c34,0x26351f35,0x21352535,0xa9352735,0x9c2ea42e,0x2f352d2e,0x72353235,0x76357035,0x842bec35,0xc32bea2c,0x282e262c,0x412e592e,0x402e5b2f,0x47354335,0xaf2fb235,0x162fb02f,0x182dfe2e,0xf52cf62e,0x922cf82c,0xa02fa430,0x6f2dc02f,0x352dc22e,0x342cd52d,0x94359c2d,0x65359835,0x67356635,0x572d5a35,0x5a2d582d,0x5b353435,0xa22ca135,0x152c492c,0xe92cec2d,0xbf28ca2c,0x7828d328,0x85357d35,0x3f355e35,0x90353e35,0xb42ab32b,0xd82ed72a,0x952ee12e,0x942ab02b,0x5935632b,0x67356235,0x60356135,0x51356935,0xd8354e35,0xd52d342c,0x3235302c,0x6a356835,0x6d356c35,0x73357235,0x99356b35,0x972d922d,0x3531c32d,0xb431cb31,0xb7318131,0x162c0c31,0x532c0a2d,0x542daf2d,0x62e122d,0x172e002e,0x1c30a631,0xa629a331,0xb629ad29,0x8c358535,0x142e4f35,0x512e4e2e,0x92f4f2f,0x4b305a2f,0x93306430,0x95359435,0x282c9535,0x9d2c262c,0x462ca32c,0x852c8b2c,0x22c892c,0xfe2e502d,0x6531c22c,0x31c831,0x3311d31,0x8d2be631,0xfc2be42c,0xfa310630,0x7a35b230,0xd935b135,0xe4295a29,0x91358e29,0x19359935,0x13351f35,0x9b357535,0x75357435,0x95357635,0xa035b835,0x5e35b735,0x4d2f0a2e,0xd52ec12f,0xbc2ebe2e,0xbd356e35,0xb335bc35,0xed357f35,0xe630e230,0xe835c430,0xcb35c534,0xc635c835,0xc935ce35,0xcf35cd35,0xa835cc35,0xcd35d035,0xd1358d35,0xd035cd35,0xd235d435,0xd335aa35,0xd134ed35,0xd535d635,0xd7358f35,0x97359235,0xf435d835,0xd934f334,0x9f359635,0x1835da35,0xdb351a35,0xda351835,0xfa35dc35,0xdd35db34,0x87358235,0xc235c335,0xc535a135,0xde34e735,0xa434aa35,0xb235c734,0xca34ac34,0x7f294535,0xa8294129,0xab2fa92f,0xad2fab2f,0x3b2faa30,0x3d313531,0x46313d31,0x49314931,0x51314f31,0x51314931,0x52314e31,0x3b314d31,0x95319231,0x8b317f31,0x92318e31,0x89318631,0x87318b31,0x86318431,0x87318a31,0x86318631,0x92318b31,0x49313d31,0x3d314e31,0x4a314e31,0x86318a31,0x8c319231,0x92318a31,0x4a313d31,0x3d314831,0x45314831,0x8c318f31,0x93319231,0x92318f31,0x45313d31,0x3d314331,0x41314331,0x93319431,0x91319231,0x92319431,0x41313d31,0x3d313f31,0x3c313f31,0x92319131,0x90317f31,0x7f319131,0x3c313d31,0x3d313931,0x37313931,0x90318d31,0x88317f31,0x7f318d31,0x3d313b31,0x3b313731,0x34313731,0x88318531,0x83317f31,0x7f318531,0x34313b31,0x3b313631,0x38313631,0x83318031,0x7c317f31,0x7f318031,0x38313b31,0x3b313a31,0x3e313a31,0x7f317c31,0x7a316c31,0x6c317c31,0x3e313b31,0x3b314031,0x42314031,0x7a317731,0x75316c31,0x6c317731,0x42313b31,0x3b314431,0x47314431,0x75317231,0x6f316c31,0x6c317231,0x3b315231,0x52314731,0x4b314731,0x6f316d31,0x6a316c31,0x6c316d31,0x4b315231,0x52314c31,0x50314c31,0x6c316a31,0x68316031,0x60316a31,0x50315231,0x52315431,0x56315431,0x68316631,0x63316031,0x60316631,0x52316031,0x60315631,0x59315631,0x63316131,0x5e316031,0x60316131,0x59316031,0xbf315c31,0xc629c229,0xbe29c629,0x5329bc29,0x52305130,0x4f355030,0x51354e35,0x5355635,0x4e355035,0x2c355135,0x50352a35,0xff350035,0x5352c34,0x350235,0x51355035,0x350535,0x50352c35,0x492e0435,0x462e462e,0x432e452e,0xf82e432e,0x22dfc2d,0x462e042e,0xfc2e432e,0xaf2e022d,0x582cb12c,0x552c582c,0x9c2cad2c,0xbd2fac30,0xb62fbd2f,0x10308d2f,0x492d462c,0x2830c72d,0x99313131,0x84288e28,0x8d288728,0xe5289928,0x1b2ce82c,0x642d652e,0xf72ce52d,0x3d31f831,0x3b323d32,0x62326232,0xf731f632,0xc9312e31,0x30313030,0x1f312a31,0x2e312531,0x14313031,0x122e512e,0x152e122e,0x7e2e132e,0x7a2f7b2f,0x7c2f7a2f,0xed2f7d2f,0xf02aee2a,0x192c1b2a,0xb12d4f2c,0xad2dac2d,0xd42cd12d,0xd72cd72c,0x722d702c,0xb529b92d,0xb329b329,0x62296429,0xfb2df729,0xc02f5a2d,0x242cbd2c,0x812b552e,0xb92b822b,0x60296229,0xbf296029,0x3129bc29,0xe82de52e,0xe82fde2d,0x9f2fe12f,0x9b2f9c2f,0x9d2f9b2f,0xf62f9e2f,0xf42ffb2f,0xb28132f,0x1a291a28,0x14290e29,0x9c2b9b28,0xcc2ba42b,0xd529d129,0xca29d529,0x9829c729,0x922d972d,0x1b2e192d,0xc32ce82e,0xa62dc62d,0x5028562e,0x77284828,0x66286e28,0x60286628,0x58286f28,0x752e562e,0xbc28b42e,0xb328b328,0xa128a928,0x952dcf28,0xb52e9a2e,0x8f2b8e2a,0xdd29e22b,0xda29da29,0x3f293829,0x912aba29,0x642a922a,0xf52a622a,0x3b2cdf2b,0x3d2e3d2e,0xe22e3f2e,0x4e285d2c,0x58285428,0xeb29f429,0xe429eb29,0xea295a29,0x5232e732,0x6e357133,0xf2357f35,0x802e812d,0x2628312e,0x36283628,0x40284828,0xda30d728,0xd830d830,0xd430d130,0x862e8a30,0x822e822e,0x872e832e,0x8e2e8b2e,0x8a2e8a2e,0x872e822e,0x312b322e,0x302b302b,0x292b2a2b,0x292b302b,0x382b252b,0x302b322b,0x382b362b,0x302b302b,0x202b252b,0x202b302b,0x332b1b2b,0x302b362b,0x332b372b,0x302b302b,0x172b1b2b,0x172b302b,0x372b132b,0x132b302b,0x132b372b,0x342b0f2b,0x392b3a2b,0x372b392b,0x392b0f2b,0xc2b0f2b,0x342b352b,0x82b392b,0x352b022b,0xc2b392b,0x252b082b,0x522f532f,0x2e30292f,0x34303430,0x2a302f30,0x1f302a30,0x4e302930,0x2d022e,0xce27cf2d,0x6927d027,0xb82e6a2e,0xb035222d,0xad35ad35,0xaf35ae35,0xbb35af35,0xac35ba35,0x4535c135,0xba35af35,0x2235ac35,0xaf35ad35,0x23354835,0xac352235,0x48354535,0xaf352235,0x335ac35,0x422f3e2e,0x5632902f,0x73325532,0x742f722f,0x94299e2f,0xfa299329,0xff28f128,0x7f294128,0xfd298029,0xf02ff72f,0xe130df2f,0x1830de30,0xf72a202a,0xef29f729,0x602a0529,0x85328232,0x222f4c32,0x302f302f,0x502f522f,0x88307b2f,0xe3309530,0x482a4c2b,0x9300f2a,0xc3301030,0xb92fc42f,0x182b192f,0x362b142b,0x45282728,0x9b299528,0x2e2a2e29,0x48294b2a,0xfe2d0229,0xbe2d012c,0xb729bb29,0xb529b729,0xb929b929,0xbe29bc29,0xfb30f829,0x5b30fe30,0x78297729,0xb8321c29,0xfe319731,0x3d324231,0x54328932,0x5b325332,0x752b722b,0x5832942b,0x92325732,0x56325732,0x9f2ade32,0xdb2aa02a,0xd52ada2a,0x9b2ad52a,0x9c2a9c2a,0xdb2adc2a,0xb12ca92a,0x9b2d552d,0x84338533,0xb233b533,0x2d337733,0x272b2c2b,0x6f29682b,0x54297029,0x5a345134,0x5e345c34,0x54345634,0x5c345a34,0x36347b34,0x21343534,0x1c2b1f2b,0x7334762b,0x87347434,0x842f852f,0x832f842f,0x6e2f862f,0x712f702f,0x972e962f,0x8b2e9c2e,0x85348834,0x82348534,0x7f347f34,0x79347c34,0x77347934,0x79347a34,0x7d347a34,0x7f348534,0x8e347934,0x85348b34,0x91348f34,0x8c348e34,0x8e348f34,0x85348e34,0x79347934,0x80347d34,0x80347934,0x89348334,0x8e348c34,0x83347934,0x86348634,0x8e348934,0x1b30c834,0xab30aa31,0x462b452a,0x22b042b,0xe62b082b,0x602de32d,0x6d29272e,0xc8296e29,0x522e712d,0x702b6d2e,0x7b2b522b,0x572b532b,0x42d072b,0x7a2d052d,0x632b622b,0x47298a2b,0x43294329,0x89298829,0x612b7d29,0x672b622b,0x762b732b,0x652b762b,0x4e2b662b,0x852b842b,0x7f2f802b,0x572f812f,0x7a297929,0x572f3f29,0x522e542e,0x742b702b,0x8b29492b,0x96298c29,0x972f952f,0x7e2e7b2f,0x842e842e,0x7c2e7f2e,0x762e7c2e,0x7b2e722e,0x7c2e842e,0x8c32882e,0x4e323c32,0x8d298c29,0x6f2b5c29,0x832b722b,0x542b502b,0x392a372b,0x192bc82a,0x10310d31,0xfd2bfb31,0x8e2c6c2b,0x252a1e29,0xa32dc92a,0x862ea62e,0x82358735,0x83358235,0x1a351a35,0x5c351935,0x64355c35,0x5d355b35,0x80357e35,0x5b355c35,0x82355d35,0x5c351a35,0x8635b635,0x5d358235,0x81358035,0xb6358135,0x82358235,0x5d355c35,0x14281335,0x27282728,0x26283628,0x1b341c28,0x58345834,0x60345634,0x60345834,0x1d346234,0x58341c34,0x1f346834,0x66341d34,0x1d346834,0x58341d34,0x64346234,0x1d346634,0x9d2c9a34,0x9c2c9c2c,0x952c992c,0x9a2c972c,0x872c9c2c,0x7c288428,0x6e287c28,0x77287728,0x87287d28,0x6a293528,0x5a296b29,0x782e742e,0xc729cc2e,0xc329c329,0xc429c029,0xc929c429,0x3529cc29,0xc62a372a,0xc929cd2b,0xc429c429,0x2f293329,0x8b2f8c29,0xb92f8d2f,0x8f2d8e2c,0x8c2f8b2d,0x892f892f,0x8a2f882f,0x742f752f,0xd32f762f,0xd02fc92f,0xe728f82f,0x6828f428,0x8a2e662e,0x8e2e8a2e,0xef2e942e,0xf92ff42f,0xe72ff92f,0xe92fdf2f,0xf92fef2f,0x842ddb2f,0xfb2e892e,0xe728f428,0xe128e728,0xd728d728,0xfb28e828,0x6b2a6e28,0xa12bfe2a,0x9a28a928,0x29e928,0x7829782a,0x76297729,0xb129b329,0xae29ae29,0x65296729,0x64296529,0x8129b329,0x89288228,0x8f288928,0x61288828,0x642d602d,0xf930f42d,0xb930b930,0xf230b830,0xa3299d30,0x97299729,0x95299b29,0x7a2c0f29,0x112a782a,0x22291829,0x782cce29,0x7b2d7b2d,0xcb2d7e2d,0x89288f2c,0x57289428,0x70306130,0x552be930,0x642a522a,0x512f4f2e,0x1a28192f,0x9b280a28,0xa6289028,0x63287328,0xfe286828,0x5f2f5d2e,0x322c342f,0xae2d3a2c,0x9b2cac2c,0x982c9b2c,0xe32cb02c,0xde2ee52e,0xcd2ede2e,0xde2edd2e,0xcc2edd2e,0xde2ee32e,0xca2ecc2e,0xcb2ec92e,0xe32eb82e,0xcc2ecc2e,0xcb2eca2e,0xb92ecf2e,0xb62eb62e,0xe72ed02e,0x6c2c6a2e,0x692c692c,0x652c662c,0xd12cd42c,0x942c722c,0x882fce30,0x862f882f,0x832f832f,0x7f2f812f,0x7d2f7f2f,0x7c2f7c2f,0x6930672f,0x94306930,0x882f8830,0x7f2f832f,0x7c2f7f2f,0x2430692f,0x5a2f232f,0x562f5a2f,0x532f532f,0x242f252f,0xca29ba2f,0xa029cf29,0xa22e992e,0x792bf22e,0x92c7b2c,0x1c290f28,0x52c0329,0xd22c672c,0x2e2d2f2c,0x2b2d2e2d,0x312ccf2d,0x372e352e,0x152d162e,0xd22ce92d,0xcc2ccf2c,0xca2ccc2c,0xc72cc72c,0xc92cc62c,0xd02ccd2c,0xc72cd22c,0xcd2cc92c,0xcc2cd22c,0x992cc72c,0x9a2a3029,0xdc319a29,0xbc31da31,0xeb30bb30,0xeb30bc30,0xbe30f330,0xbc30bd30,0xbf30c030,0x1130be30,0xc0311a31,0xf330bc30,0x6310630,0xc0311131,0xbe30c030,0x4330bc30,0x3c2f402f,0x392f3c2f,0x3c2f182f,0x1c2f182f,0x432f1f2f,0x1d2f3c2f,0x3c2f1f2f,0x1c2f3c2f,0x672f1b2f,0x9a326532,0x6f329c32,0x9c326c32,0x69326c32,0x67326a32,0x6e329a32,0x9a326a32,0x69329c32,0x9c326632,0x64326632,0x9a326e32,0x70329d32,0x9d326e32,0x64329c32,0x9c326332,0x7c326332,0x70327332,0x83329d32,0x9d327332,0x7c329c32,0x9c327a32,0x77327a32,0x83328732,0x89329d32,0x9d328732,0x77329c32,0x9c327532,0x72327532,0x89328d32,0x90329d32,0x9d328d32,0x72329c32,0x9c326d32,0x6b326d32,0x90329232,0x94329d32,0x9d329232,0x9c329b32,0x9b326b32,0x68326b32,0x94329632,0x98329d32,0x9d329632,0x68329b32,0x9b328f32,0x8b328f32,0x98327e32,0x80329d32,0x9d327e32,0x8b329b32,0x9b328a32,0x86328a32,0x80328232,0x85329d32,0x9d328232,0x86329b32,0x9b328432,0x81328432,0x9d328532,0x88329b32,0x9b328532,0x81329b32,0x9b327f32,0x99327f32,0x88328c32,0x8e329b32,0x9b328c32,0x99329b32,0x9b329732,0x95329732,0x8e329132,0x9b329b32,0x93329532,0x902abc32,0xba2a912a,0xbf2abe2a,0x912abc2a,0xd12aba2a,0xcd2ad02a,0x8c323c2a,0x59328e32,0x51285828,0x4a285128,0x52284b28,0x51285928,0xc22ac128,0xde2ac52a,0xe027df27,0x6027e027,0xe0285928,0x52285927,0xde27dd28,0xd927e027,0xdd27db27,0xd727d527,0xd127d927,0xd527d327,0xcf294f27,0x4927d127,0x4f294e29,0x47294329,0x3b294929,0x43294029,0x37293029,0x32293b29,0x30292e29,0x3a293e29,0x45293229,0x3e294129,0x4a294d29,0x53294529,0x4d295429,0x57295929,0x5d295329,0x59295b29,0x5f296129,0x66295d29,0x61296329,0x68292529,0x29296629,0x25292729,0x2c293529,0x2292929,0x35280328,0x127ff29,0xfc280228,0xff27fe27,0xfa27f927,0xf727fc27,0xf927f827,0xf627f527,0xf227f727,0xf527f427,0xf127ef27,0x427f227,0xef27ed29,0x4290e27,0xef27ef29,0xf527f227,0xf727f527,0xf927f927,0xff27fc27,0x227ff27,0x35293528,0x25292929,0x66292529,0x61296129,0x59295d29,0x53295929,0x4d294d29,0x3e294529,0x32293e29,0x30293029,0x43293b29,0x49294329,0x4f294f29,0xd527d129,0xd927d527,0xdd27dd27,0x5227e027,0x5227dd28,0x4f284b28,0xdd27d529,0x43293027,0x4d294f29,0x30293e29,0x59296129,0x35294d29,0x61292529,0xff27f929,0xef293527,0xf927f527,0xe281427,0x2727ef29,0xef281428,0x4b27dd27,0xdd283328,0x25283327,0xef282728,0x4527f927,0xf9282728,0xdd294f27,0x4f282527,0x12282529,0x45285c28,0x7127f928,0xf9285c28,0x12294f27,0x4f291d28,0x8291d29,0x71287b29,0x8227f928,0xf9287b28,0x8294f27,0x4f28f529,0xe628f529,0x82288928,0x9427f928,0xf9288928,0xe6294f27,0x4f28da28,0xd028da29,0x9428a128,0xb427f928,0xf928a128,0xd0294f27,0x4f281b28,0x50281b29,0xf928b429,0xd7293527,0x3528b428,0x4f293029,0x30295029,0x4c295029,0xd728e829,0xfe293528,0x3528e828,0x4c293029,0x30294629,0x44294629,0xfe291e29,0xb8293528,0x35291e28,0x44293029,0x30293f29,0x38293f29,0xb828b929,0x34293528,0x3528b929,0x38293029,0x30292f29,0x33292f29,0x34293129,0x2d293529,0x35293129,0x33293029,0x30293629,0x39293629,0x2d292b29,0x2a293529,0x35292b29,0x30294d29,0x4d293929,0x3c293929,0x35292a29,0x28296129,0x61292a29,0x3c294d29,0x4d293d29,0x42293d29,0x28292629,0x24296129,0x61292629,0x42294d29,0x4d294829,0x4b294829,0x24292329,0x67296129,0x61292329,0x4b294d29,0x4d295129,0x52295129,0x67296529,0x64296129,0x61296529,0x52294d29,0x4d295529,0x56295529,0x64296229,0x60296129,0x61296229,0x4d296129,0x61295629,0x58295629,0x60295e29,0x5c296129,0x61295e29,0x58296129,0xd3295a29,0xd72ad42a,0xa42fa52a,0xe92fa62f,0xec2aea2a,0xd32ad42a,0xe72ad02a,0xea2ae82a,0xe52ae62a,0xcb2ae82a,0xc72aca2a,0x7932d32a,0xdd317e31,0x9f2a9e2a,0xfb2afc2a,0xf92afa2a,0xb82ab62a,0xfa2afc2a,0xc72af92a,0xba29ca29,0xb629ba29,0xc729c329,0xc833c533,0xa62ae233,0xdc2aa82a,0x9e2a9c2a,0xf82af72a,0xd72af92a,0xd433d333,0xec2aeb33,0x962aee2a,0x2031db31,0x1e322032,0xe5319732,0xe42ae62a,0xe32ae42a,0xa82aa82a,0xe52aaa2a,0xff29462a,0xfa29fa29,0x4429ee29,0xff2aa329,0xfe2afe2a,0xa42afd2a,0xa12ae02a,0xa62aa62a,0xe12ae22a,0x3b2d3d2a,0x122ce12d,0x7a2a7d2c,0xfb2bf92a,0x132c702b,0x31282628,0x22283128,0xa280a28,0x13280b28,0x62b0928,0x6d2b0a2b,0x6e2f6c2f,0x222b232f,0x212b1f2b,0x96349934,0x96342134,0x24349334,0x21342234,0x26342834,0x8d342434,0x28342a34,0x93342134,0x90349034,0x28348d34,0x24342834,0x4a342134,0x7e297d29,0x85293729,0xe7298629,0xea27e927,0xeb27ea27,0xec27ec27,0xf6290427,0xf627ec28,0xe728ea28,0xec27ea27,0xe527e427,0xe127e727,0xe427e227,0xe0286027,0x6f27e127,0xe1286028,0xe427e127,0xe727e727,0xea27ec27,0xea27e728,0x6f28e028,0xe727e128,0x6f287e27,0xe727e728,0xc028e027,0xc027e728,0x9028a628,0xe7287e28,0xa92b0627,0x292aac2a,0x6d296c29,0x81293a29,0x63298229,0x72297129,0x292b2629,0x752b2a2b,0x5f295d29,0x73295f29,0x68297429,0xb62e692e,0x1a321c2d,0x16321632,0xb831b332,0xce2dd131,0xbd2e532d,0x5d2e5a2d,0x62b0a2e,0x462b462b,0x442b452b,0x432b442b,0x442b422b,0x412b422b,0x462b0a2b,0x112b442b,0x442b0a2b,0x442b112b,0x152b412b,0x412b112b,0x412b152b,0x192b402b,0x402b152b,0x402b192b,0x1d2b3f2b,0x3f2b192b,0x3d2b3e2b,0x1d2b3c2b,0x3e2b3f2b,0x1d2b212b,0x3e2b3e2b,0x3b2b3c2b,0x2e2b3b2b,0x3b2b2d2b,0x282b2d2b,0x3e2b212b,0x3b2b3b2b,0x232b282b,0x7f2f7d2b,0xce2f802f,0x4f27cf27,0x8d294f29,0x5327cd29,0x7b297a29,0x84293029,0x59298529,0x79297829,0x87298629,0x3e294029,0x81298029,0x64286c29,0x2c285f28,0x6c296b29,0xf72af529,0x642b642a,0x622b632b,0x612b622b,0x602b602b,0x5e2b5f2b,0x5d2b5e2b,0x5c2b5c2b,0x5a2b5b2b,0x582b5a2b,0x572b572b,0x4f2b532b,0x4c2b4f2b,0x492b492b,0xcd2b4a2b,0xcd2b492a,0x572ad02a,0x492b4f2b,0x5a2b5c2b,0x602b572b,0x5c2b5e2b,0x622b642b,0xf32b602b,0x642af52a,0xf32af12b,0x642b642a,0x5c2b602b,0x572b5c2b,0x492b492b,0xd32ad02b,0xd32b492a,0xf12ad62a,0x5c2b642a,0xf12aef2b,0x492b5c2a,0xd82ad62b,0xd82b492a,0xed2adb2a,0x5c2aef2a,0xed2aeb2b,0x5c2b5c2a,0xdb2b492b,0xdb2b5c2a,0xe92adc2a,0x5c2aeb2a,0xe92ae72b,0x5c2b5c2a,0xdd2adc2b,0xdd2b5c2a,0xe62ade2a,0x5c2ae72a,0xe62ae42b,0x5c2b5c2a,0xdf2ade2b,0xdf2b5c2a,0xe32ae02a,0x5c2ae42a,0xe32ae22b,0x5c2b5c2a,0xe12ae02b,0x692b5f2a,0x652b6a2b,0x782b762b,0x632b782b,0x322b642b,0x83298229,0x272b2829,0x972b222b,0x9a2f992f,0x4e2d4f2f,0x72d072d,0x502d062d,0x8729402d,0x5a298829,0x772b752b,0x8332732b,0x82325232,0x5d326032,0x952f9332,0x4f2f962f,0x7e2b7c2b,0x782f792b,0x472f7a2f,0x8b298a29,0x672b7329,0x532b682b,0x7c2b7b2b,0x572b792b,0x502b582b,0x73327032,0x7f2b6032,0x662b692b,0x71297029,0x8b2b8a29,0x552b862b,0xfe2a0829,0xf429fe29,0x56295829,0xfe295529,0x972ba229,0xaa2b982b,0xa02b9f2b,0x2531b12b,0xab322b32,0x2a322631,0x3290432,0xe928e929,0xf628ea28,0x18290a28,0x8e291129,0x8c2b8d2b,0xf92b8c2b,0x8c2af82a,0xf62af82b,0x8e2b8f2a,0x902b8c2b,0x8c2b8f2b,0xf62b8c2b,0x8c2af42a,0xf22af42b,0x902b912a,0x922b8c2b,0x8c2b912b,0xf22b8c2b,0x8c2af02a,0xee2af02b,0x8c2b922a,0x922aee2b,0xec2aee2b,0x942b952a,0x932b932b,0xec2b922b,0xec2b932a,0x962aea2a,0x932b952b,0xe52ae82b,0x932b962a,0xe82aea2b,0x528f72a,0xe528fd29,0xae2aaa2a,0x992b9a2a,0x982b982b,0xda2b972b,0xda2b982a,0x9b2ad92a,0x982b9a2b,0x9b2b9c2b,0x982b982b,0xd72ad92b,0xd72b982a,0x9c2ad42a,0xd42b982b,0xd42b9c2a,0x9d2ad12a,0xd12b9c2b,0xd12b9d2a,0xa02ace2a,0x9e2b9f2b,0x9d2b9e2b,0x9e2ace2b,0xcb2ace2b,0xa02ba12a,0xc22b9e2b,0xa12abe2a,0xc22ac52b,0xa12ba12a,0xcb2b9e2b,0xc52ac82a,0x872ba12a,0x882f862f,0xa02bab2f,0xb92ba12b,0x8d2b8c2a,0x692f6a2b,0x672f672f,0x682f662f,0xa22b972f,0x522ad52b,0x1b295129,0x112a1b2a,0x82a082a,0x5229552a,0x8d2ab729,0x9c2b8e2b,0xa52b9d2b,0x402a432b,0xea2bb42a,0xcd28e928,0xc028cd28,0xbc28e028,0x362a382b,0x5d2a5b2a,0x3e2bbf2a,0xb82a3c2a,0x7229612b,0x36297329,0xc02a342a,0x5b29772b,0x5d295d29,0x76297529,0x5b316529,0xd231d231,0xd431d831,0xd131d431,0xcc31ce31,0x6531ca31,0xd431d231,0xce31ce31,0x6531cc31,0x632a6131,0x3b2bc52a,0xcc2a3d2a,0x5f2a5d2b,0xc22bc12a,0x352a332b,0x382a3a2a,0x9e2bbc2a,0xa52ba72b,0x6f2bcf2b,0xd02a712a,0x722a712b,0xdd2fd52a,0x772fd82f,0xb2a792a,0x752c072c,0x662a732a,0xf72a642a,0x662a682b,0x7f2bfa2a,0x162a822a,0x3f2a3d2c,0x1e2bce2a,0x8b2a872c,0x512a4d2a,0x262bb52a,0x282d2a2d,0xc631272d,0x5a31032f,0xeb2a582a,0x2b28392b,0x76283428,0x7c308530,0x71307c30,0x70306430,0x7c307630,0x892bd530,0x5c2a882a,0xed2a5a2a,0x5e2a602b,0x6b2bf12a,0xfc2a682a,0x602a622b,0x1c2bf32a,0x872a842c,0x652bc72a,0x202a672a,0x1a2b1e2b,0x802c182b,0xea2a7d2a,0xae2ded2d,0x42330a2e,0xa1334433,0x302ca42c,0xd82c302c,0x482c2e2b,0x462c492c,0x4d2c462c,0x8d2c472c,0x8a2f8b2f,0xdc2f8a2f,0x8a2fe12f,0xe82fe12f,0x8d2f8f2f,0xfd2f8a2f,0x8f30022f,0xfd2ff72f,0x8f2f8f2f,0xe82f8a2f,0xe82f8f2f,0xf22fed2f,0x8f2ff72f,0xac2da72f,0xa92da92d,0xa22da62d,0xa230d52d,0xaf30ac30,0x8b31ad31,0xdd30da31,0x32313230,0xc9313031,0xc9313230,0xd830c530,0x3230da30,0xd830d631,0x32313230,0xd230c531,0x5b2c5830,0x572c572c,0x552c542c,0x37353a2c,0x33353335,0x38353535,0x752c7235,0x742c742c,0x6d2c712c,0x722c6e2c,0xb32c742c,0xb729b529,0xb429b729,0x4f29b129,0x49354d35,0x4b354935,0x4c356035,0x32356135,0x60354935,0x4e354c35,0x49354f35,0x32354c35,0x1f354e35,0xd2d0b2c,0x3290c2d,0x1a291a29,0xa280b29,0x1a280a28,0x16291628,0x1a290c29,0xdb30dd29,0xe030e030,0xe430e230,0x3c2deb30,0x352e392e,0xeb2de82e,0x6a30832d,0xfb307230,0xf029f529,0xec29f029,0xee29e729,0x229fa29,0xe729f02a,0x229ee29,0xf029fb2a,0xea32ed29,0x46335332,0x4a2e492e,0x122d142e,0xee2d132d,0x812c7e2b,0x362d352c,0x5e2d332d,0x4f2f4d2e,0x622f4f2f,0xd92e602e,0x372e342c,0x772c792e,0x7c2c7c2c,0x7b2c7e2c,0x842d892c,0x8a2d872d,0x8c2d8d2d,0x872d892d,0x5e2d8a2d,0x6c2b6a2b,0x592df12b,0x72f5e2f,0x502e092e,0x2a35502f,0x27352735,0x1d352135,0x15351d35,0x4d354d35,0x50354f35,0x27355035,0x31351d35,0x302e332e,0x2d2e302e,0x412ddf2e,0x362c372d,0xf72a0a2c,0xee2a2029,0xe229e729,0x3f29e229,0xe5294429,0x52335132,0x97289e33,0x8d288d28,0x9b288528,0xaa289b28,0xa328a328,0x8d289e28,0x472d4b28,0x5c2cf12d,0x57286528,0x4c285728,0x74284528,0x772c752c,0x792c772c,0xad2c782c,0x962b952a,0xb02e752b,0x242eb32e,0x3300d30,0x3302430,0x1d300730,0x24302130,0x1d301630,0x24302430,0xf300730,0x622f6330,0x612f612f,0x632fd42f,0x632f6130,0x64308f30,0x612f632f,0xbc30a12f,0x612f642f,0x9e308f2f,0xa1309e30,0xbf2f6430,0x5e296029,0xc8295e29,0x5229c229,0x452c4f2c,0xa82c452c,0xa92ca92c,0x552cab2c,0x522c552c,0x252c452c,0x76302a30,0x742f762f,0x722f722f,0x6e2f702f,0x6c2f6e2f,0x6a2f6a2f,0xd92f682f,0xd92f6a2f,0x722fe22f,0x6a2f6e2f,0x7630252f,0x1b2f722f,0x72302530,0xe22f6a2f,0x42fe62f,0x72301b30,0xe62f6a2f,0xda30042f,0x592dd72d,0xd82ad92e,0x652ad62a,0x71285c28,0x7b287128,0x7a287a28,0x65287028,0x26322928,0x5f31ab32,0x51306830,0x4d305130,0xd9305530,0xbb2fd22f,0xbc2fbb2f,0xbb2fb22f,0xae2fb22f,0xd92fcf2f,0xbb2fbb2f,0xc82fae2f,0x622d172f,0x112cb82c,0x152d142c,0x982ba92d,0x5b2b992b,0x5c2d582d,0x5f2d5c2d,0xf72d5d2d,0xf32cf42c,0xf92cf32c,0x912cfa2c,0x8c288628,0x6b2c6e28,0xda2cdd2c,0x6e2cd72c,0xdd2ce02c,0x682c682c,0xe32c4a2c,0xc431262c,0xcc30cc30,0x21312f30,0x32c0031,0x562c662c,0x572c542c,0xe42de12c,0xc62e762d,0xcd28bb28,0xe928cd28,0xf128f128,0xc628dc28,0xb92db728,0x6d2e5f2d,0xa92ea42e,0x4b2e4a2e,0xfc2cfc2e,0xf52cf82c,0x362f3c2c,0x372f372f,0x392f382f,0x132cec2f,0x102d102d,0xf32d0e2d,0x7d2e612c,0xd52e822e,0xde30dc30,0xd930de30,0x5c30d330,0x5b2c572c,0x612c5e2c,0x5c2c602c,0x5e2c5b2c,0x392d3c2c,0xaa2d3b2d,0xa12d9e2c,0x1e2cc12d,0x192d192d,0xbb2cb82d,0xc12cbe2c,0xc12d192c,0xbd31bf31,0x4631bd31,0xe1313d31,0xc328d628,0xbc28c328,0xb428b428,0xe128d728,0x2b2cc928,0x3e2e2e2e,0x612c602c,0x972a2b2c,0x96299629,0x182a2029,0x282d272a,0x292d292d,0x222d252d,0x272d242d,0x2d2d292d,0x282d2c2d,0x2a2d282d,0xd72d2b2d,0x49314f31,0xbd314931,0xbb31bb31,0xd731bc31,0xe72de431,0x982e772d,0xd531d931,0x3b31d531,0x4d314d31,0x9b319c31,0x98319b31,0xb231d531,0x732eb12e,0x722e732e,0x762e762e,0xb22e772e,0x4332dc2e,0xc6334633,0x282cc32c,0x9f2d9d2e,0x972d9c2d,0x9a2d982d,0x9d2d9a2d,0x6c2d9c2d,0x6b2d6e2d,0x682d6b2d,0x602d602d,0x662d632d,0x6c2d692d,0x602d6b2d,0x692d662d,0x752c772d,0xce2cce2c,0x7a2ccb2c,0x482d492c,0x592d4b2d,0x152f162f,0xd32cd62f,0xe02e362c,0x5c2ddd2d,0x5d2c3c2e,0x112c602c,0x1b301c30,0x4301b30,0xb300630,0x1b301130,0xc290330,0xff28ff29,0xe928f128,0x862e6328,0x692e8a2e,0x73305d30,0x96307d30,0x69309430,0x7d307330,0xc530ce30,0xc930c930,0xc730c630,0xae2dab30,0xad2dad2d,0xa72daa2d,0x9f2da22d,0xa22da32d,0xa52da32d,0xad2dab2d,0xa22da72d,0xa82da52d,0xab2da82d,0x582da72d,0x5b355a35,0x9c319f35,0x52315231,0xa9316031,0xa731a931,0xa231a231,0x9f31a331,0x52319f31,0x4431a931,0xaf2aab2b,0x452d482a,0x422d422d,0xea2d402d,0x482d442c,0x932d422d,0x252c262c,0x902c252c,0xa82c912c,0xa92ca62c,0xac2da92d,0xa22db12d,0xa12da42d,0x9c2da12d,0x42d9f2d,0x3c32ff33,0xa5312333,0xa430a430,0x28313130,0x612db731,0xd02e632e,0x322ccd2c,0x762c782e,0x732c732c,0x742c712c,0x842bea2c,0x9b2c872c,0x2b299729,0x242a2b2a,0xa32a2e2a,0x2731a231,0x1d2e2132,0xc82e1e2e,0xc42ac72a,0xdc29d62a,0xd829d829,0xce29d329,0xcb29ce29,0xc529c529,0xc629be29,0xd629c629,0xd829d829,0xc529ce29,0xd629d029,0xc629c629,0xc829c229,0xae2cac29,0xd72da02c,0x572dd42d,0xb8293c2e,0xb229b229,0x3d29af29,0xe630e329,0xe230e230,0xe130e030,0x4b2d1630,0x652c652c,0x672c662c,0xf2e672c,0x792f552f,0x7e2d7c2d,0xa831aa2d,0xa631a631,0xa431a531,0xa131a431,0xa031a031,0x9d319e31,0x7f319d31,0x95319531,0xa631aa31,0xa431a631,0xa031a031,0x95319d31,0xd92c2e31,0xdb2bdb2b,0xa12c2c2b,0xb02cae2c,0xb22cb22c,0x992d962c,0x2d29312d,0xfc29fc29,0x3429f629,0x1c312e29,0x5f312331,0x612c622c,0x5e2c612c,0x9d2c582c,0xbd34bf34,0xa534bd34,0x5534a134,0xc12e562e,0x972ac92d,0x52a982a,0x3a355635,0x54355335,0x5356435,0x53353a35,0x7350935,0xf350535,0x9350c35,0x13355c35,0x53350f35,0x5c356435,0x5350935,0x5c355335,0x9350f35,0x462f4335,0x482f482f,0x402f452f,0xde2ddb2f,0x6b2e7f2d,0x702d6e2d,0xc029b82d,0xc329c329,0xb229b629,0xa42caa29,0xa62da62d,0xa72ca52d,0x7e28852c,0xfc289028,0x4d2e4b2c,0xc029362e,0xb829b829,0x39293c29,0xeb2e4229,0x4a2ce72c,0x4e2f4c2f,0x4b2f4e2f,0x482f482f,0x4a2f462f,0x192e172f,0xed2ced2e,0x152cf02c,0xe2e492e,0x782e112e,0x62286d28,0x57286228,0x65286528,0x78287028,0x3d2d3e28,0x402d402d,0x412d422d,0xb22d962d,0x6b2cb42c,0xbc2e6c2e,0xa62ca52d,0x8c2da92d,0x932d902d,0x502cfe2d,0x782e142e,0x762d732d,0x3e2e3c2d,0x3f2e3f2e,0x392e3d2e,0x142cfa2e,0x3c2e132e,0x54304830,0x49305430,0x45304530,0x3c303730,0x628b830,0xd290d28,0xfe28fb29,0xb8291e28,0x74290d28,0x59308030,0x51305930,0x82306830,0x842c852c,0x812c842c,0x7f2c7c2c,0x842c822c,0xae2ead2c,0x802e802e,0xa72e812e,0x74307a2e,0x68306830,0x6b305f30,0x80288530,0x7d287d28,0x6f287728,0x7e286f28,0x67288528,0x9c339a33,0x6f339c33,0x6c336c33,0x67336b33,0x832cc233,0xf2d862d,0xe2d0c2d,0xde2bdd2d,0xfc2c262b,0x3a32f932,0xf332933,0x84341234,0x832d862d,0x802d832d,0x812d7c2d,0x832d842d,0xcd2dca2d,0x232e232d,0x1e2e202e,0x5f2e1c2e,0x1c2dc42d,0xc72dc42e,0x232dca2d,0x1e2e1e2e,0xc72e1c2e,0xf02aef2d,0x442af22a,0xeb2cef2e,0x372d3a2c,0x752d392d,0xce2d782d,0xd12cce2c,0xdd2d722c,0x672ce02c,0x6a2d672d,0x492cda2d,0x4d2e4c2e,0xb628b02e,0x7728c128,0x7d2c7a2c,0x802c7d2c,0x7f2c7f2c,0x772c7c2c,0xf32ef42c,0xf22ef22e,0xf12f122e,0xf02ef12e,0xcb2ef42e,0x802d7e2c,0xc52d802d,0xd92cc82c,0xc829d029,0x5e29c829,0x7a295c29,0x7d2e822e,0x782e7d2e,0x742e742e,0x792eb32e,0x7a2e792e,0x72e7d2e,0xc2b082b,0x262e252b,0x242e242e,0x202e222e,0x252e232e,0xde2e242e,0xe030e130,0xdb30e030,0xd930d730,0xe030de30,0xdd29da30,0xe029e029,0xd229d729,0x6d2d6829,0x6a2d6a2d,0x602d672d,0xa02ea62d,0xd32ea52e,0x332e302c,0x44330d2e,0xb1334533,0xa934ab34,0xaa34a934,0xb134ac34,0xaf30b030,0xae30af30,0xad30ad30,0x272fc630,0x2730ad31,0xb1312c31,0xad30af30,0xb230b330,0xb530b130,0xb330b430,0xb630b730,0xf030b530,0xb730b830,0xf030ed30,0xb730b730,0xb330b530,0xb130b330,0xad30ad30,0x32312c30,0xad30b331,0xed313230,0xb330b730,0xed30e430,0xb330b330,0xdd313230,0xad2caf30,0xab2cab2c,0x522d552c,0x3632352d,0x3931c732,0x2f355135,0x532d5235,0x6f2d542d,0x9d2e6e2e,0x882d8e2e,0xb92d892d,0xac35c135,0xbb35ba35,0xb935ab35,0xba35ac35,0x94359535,0x9935b935,0x95359b35,0xa835a735,0x9a359a35,0x95359935,0xb9359535,0xba35ba35,0xa935ab35,0xaa35a935,0xa735a735,0x95359a35,0xba359535,0x2d35a935,0x2e2d2b2d,0xe2a142d,0x42a042a,0x4629ff2a,0x4c294629,0xfc2a1429,0x28352b34,0x23352835,0x48354835,0x47354535,0x6354735,0x3350335,0xfd350135,0xfc34fd34,0x28352834,0x47354835,0x3354735,0x2b34fd35,0x22280a28,0xc8311b28,0x6b30c430,0x55305f30,0x56305530,0x51306030,0x502c532c,0x6a2cda2c,0x332d6d2d,0xd430d031,0x602fd42f,0xc330c32f,0xc130c230,0x2d30c130,0x33313331,0xc32fd431,0x862cbf30,0xb52d8b2d,0x942d912c,0x162e192d,0x1a2e182e,0x1b2d612e,0x182e192e,0xda2e1a2e,0x5c2e5b2d,0x612d602e,0x1a2e1a2d,0x622df62e,0x52d082d,0xb2d0b2d,0xd42c1f2d,0xd32bd42b,0x932d082b,0x86288c28,0x81288628,0xb6288828,0x912d8f2c,0x922d8c2d,0x442d942d,0x402e422e,0x3e2e402e,0x432e412e,0x442e452e,0x412e402e,0x1b2e432e,0x1a2d172d,0x6c31b82d,0x7f317f31,0x9a319d31,0x99319a31,0x96319631,0xb8319731,0x7f31b831,0xb319a31,0xf2b0c2b,0x802cc52b,0x6d2d832d,0xbe35b535,0x97299635,0xf429a329,0x529fe29,0xef2a052a,0x4329eb29,0x452d422d,0x6f2dc22d,0xc62e702e,0x9b28aa28,0xbb28ad28,0x4c28c628,0x802b7e2b,0x5a2cb32b,0x122d5b2d,0x1f301730,0x1c301f30,0x11301130,0x12300e30,0x67306930,0x54305430,0x58304c30,0x43304a30,0x6c304730,0xbe2e6d2e,0x9d29a62d,0x95299529,0x42294829,0xad2eae29,0xf62eb12e,0x732bf92b,0xf2d112c,0x3e2d122d,0x402f3c2f,0x222d202f,0x1f2d1f2d,0x1e2d192d,0x8c2e902d,0x582e912e,0x60285928,0x66286028,0xe0285f28,0xe229dd29,0xe729e229,0xec29ec29,0xe529e829,0xe029e529,0x5d29e229,0x7d2e782e,0xd330a22e,0xca30ca30,0xa330cb30,0x302d3130,0x372d2f2d,0x422d412c,0x4a2f212d,0x462f462f,0x1e2f1f2f,0x302d2d2f,0x312d312d,0x2b2d332d,0x592f5e2c,0xf92f192f,0x430062f,0xe6300430,0x42fdd2f,0xe42fdd30,0xf92fe72f,0x5d30042f,0x6f2b6c2b,0x9f2f572b,0xfb2eff2e,0xfa31f931,0x9831fa31,0xdb319b31,0xc728d128,0xbc28c728,0xc328c328,0xdb28e428,0xa329a928,0xad29ad29,0xba29b629,0x4f2c5129,0xdc2c522c,0x3a2cd92c,0xd629dc2e,0xe329e329,0xf729ef29,0x9a289f29,0xa928a928,0xab28b028,0xa728ab28,0x3f289f28,0x632c3e2c,0x31132c,0x1330ff31,0x230ff31,0xd310831,0xe8311331,0x8a2c872b,0x782f7a2c,0x762f762f,0x34302f2f,0x342f7630,0x45303830,0x762f7a30,0x382f762f,0x4d303e30,0x11351535,0xd351135,0xa350a35,0x6350835,0x47350635,0x4a354a35,0x4d354935,0x11354d35,0xa350a35,0x4a350635,0x922e6a35,0xe42e962e,0x902c8d2b,0xc92ebd2c,0xc82ec82e,0xc62ec72e,0xc52edc2e,0xc82ec22e,0xdc2ec62e,0xb82ee42e,0xbd2ebd2e,0xdc2ec82e,0xc22edc2e,0xbb2ebb2e,0xe02ee12e,0xd82ee02e,0xd62ed62e,0xd12ed42e,0xd22ed12e,0xd12ec12e,0xbf2ec12e,0xd62ee02e,0xbd2ed12e,0xbb2edc2e,0xe42ee62e,0xb42ebd2e,0xb72eb92e,0xe62eb72e,0xbd2ebd2e,0xe02ebb2e,0xd12ee02e,0xe02ebf2e,0xbc2ebf2e,0xb72eb42e,0xb52ebd2e,0xb42eb62e,0xc02ebe2e,0xe02eb52e,0xba2ebc2e,0xbe2eba2e,0xba2eb52e,0xb42eb52e,0xe02ebd2e,0x122eba2e,0x1e281128,0x1c281e28,0x1d290829,0x1e281229,0x112c1528,0xe62d142d,0xdf2eb92e,0xe52edf2e,0x352ee42e,0xeb2f082f,0xea2eeb2e,0xd22f0b2e,0x952e902d,0x902be22e,0x652c252c,0xe92c4b2c,0xe92c652c,0x6b2c4c2c,0x6a2c6d2c,0x6b2c682c,0x652c6a2c,0x4a2c4c2c,0x6a2c682c,0xf2c652c,0x32a072a,0x2d2a032a,0xc0292b29,0xbb28cd28,0xad28bb28,0x6e28a628,0x9e2ea92e,0x8f30802e,0xa0306330,0x97309f30,0x8b309730,0x2d309530,0x272e2a2e,0xd32e272e,0x272dd62d,0xd92dd62e,0xdf2ddc2d,0x2d2e2d2d,0xd92e272e,0xec2f322d,0xef2eef2e,0x272f282e,0xf72f272f,0xf62ef62e,0xbb2ef52e,0x2e2ebb2e,0x2d2f2d2f,0x142f172f,0x142f2d2f,0x272f132f,0xbb2ef62f,0x272eef2e,0xbb2ebb2f,0x132f2d2e,0xd2f112f,0xbb2f0c2f,0x112f132e,0xef2f322f,0x2a2ebb2e,0x312f292f,0x312f2a2f,0x2b2f322f,0x2a2f022f,0x2b2f332f,0x332f2a2f,0x322f2a2f,0xeb2ee82f,0x342f342e,0x322f332f,0xe2f0c2f,0xc2ef42f,0xee2ef42f,0x322f342e,0xf12ebb2f,0xe82eea2e,0x342ee82e,0x112ebb2f,0xee2f0c2f,0xf02eed2e,0xbb2ee92e,0xee2f112e,0xee2ebb2e,0xe92eed2e,0xe82ef12e,0xed2ebb2e,0x902ee92e,0x8a2c8d2c,0x882c8a2c,0xf22c8b2c,0x5c2df72d,0x7e2e842f,0x282e852e,0xfb2eef2f,0xfb2f282e,0xf82efa2e,0x282ef72e,0xfa2f282f,0xf22ef92e,0xf62bf42b,0x762bf62b,0x32c792c,0xe290429,0x172e1629,0x152e152e,0x2e122e,0x5c2e812e,0x5a2f5a2f,0x262f232f,0x72f472f,0x802f062f,0x7e297f29,0x7d297e29,0x7c297c29,0x7a297b29,0x79297a29,0x78297829,0x922a0a29,0x78297a29,0x7e299229,0x7a297c29,0x80298129,0x83297e29,0x81298229,0xcf29bd29,0x7a298329,0x9f299229,0x8329bd29,0x7e298129,0x9f297a29,0xbd299f29,0x4f298129,0x82e0c2e,0xde2d3b2e,0xe22cdf2c,0xe62ce42c,0xdf2d3b2c,0xe62ce22c,0x3b2ce12c,0x832b502d,0xa92b842b,0xbd29ba29,0x9f29bd29,0x8f299629,0x85359035,0x84358535,0x88358835,0x9e35a235,0x9f359e35,0x96359635,0x92359735,0x8f359235,0x85358535,0x9e358835,0x96359e35,0x92359235,0x962a2029,0x872b8829,0x292b892b,0x2a352735,0x212f4c35,0x642f202f,0xd22fbb2f,0x682fd22f,0xb22f662f,0xad29b629,0xa629ad29,0x7329af29,0x722d752d,0x52d0b2d,0x2e2d042d,0x1b2a242a,0x512a1b2a,0xf0294b29,0xf72cf42c,0x132cf72c,0xd02e152e,0x2f313330,0x562dc131,0xf02e582e,0x7e2c7b2b,0x442e472c,0x702e452e,0x732f722f,0xc929cc2f,0xcd29cd29,0xd729d229,0xd129d729,0x4e29cc29,0x92f502f,0x262c252e,0xd22bde2c,0x8d2dd52d,0xf2c172e,0xa82d112d,0x812ea72e,0x57284c2e,0x62286228,0x54285b28,0x4e285428,0x48284828,0x4c283628,0x62284c28,0x10285428,0x482e0f2e,0x9a2dcc2f,0x4b2ea32e,0xd2f4e2f,0xea2de72e,0xff2eb22d,0x532e012d,0xff2dfb2f,0xed2f562d,0x802def2d,0xd2c1d2e,0x832d0f2d,0x30298429,0x3a2c3b29,0x5b2c562c,0x522f5f2f,0x432a472e,0xe52bb12a,0x4c2a502b,0x762f772a,0x9a2f782f,0x9b2f992f,0x9a2b992f,0x442ba62b,0xaf2a462a,0xd427d22b,0x9a27d527,0xa32b9b2b,0x442a412b,0x7b2bad2a,0x81288228,0x9a2ad228,0x252a9b2a,0x6f296e29,0x4a2a4629,0x542bb02a,0x7c297b29,0x812f8229,0xa12f832f,0xa22fa02f,0x8f2f902f,0x3c2f912f,0xba2a3a2a,0x562a532b,0x4a2bb92a,0xb32a4d2a,0x912f922b,0x562f932f,0xbb2a592a,0x329352b,0xa3296928,0xa42fa22f,0x7c294d2f,0x8d297d29,0x902f8f2f,0xbf28c72f,0xb628b628,0xa928b028,0xb328a928,0xa928c728,0xa72fa82f,0x332a342f,0x5f2bc22a,0xc32a612a,0x81287a2b,0x86288628,0x78287f28,0x70287828,0x40287a28,0xb62a3e2a,0x412a3f2b,0xde2bae2a,0x392d3b2c,0x342d392d,0xaa2cdb2d,0x9e2c9f2c,0x3b2a392c,0xcd2bca2a,0xcb30cf30,0xad2fc630,0xc72fc730,0xa62fa92f,0xa42fa62f,0xa030a02f,0xc72fc630,0xa535a42f,0xa135a135,0x8835a235,0x99358835,0x9a359a35,0xa635a835,0xa435a635,0xa135a135,0x9a358835,0x32fc235,0xc62fc631,0x9b30a02f,0xbd2fb630,0xc62fc22f,0xb6309b2f,0x5131552f,0x4f314f31,0x58315331,0x5b315831,0x65316531,0x74317131,0x7b317431,0x7d317d31,0x86318131,0x84318631,0x86318231,0x7e318231,0x7d317431,0x58318631,0x74316531,0x4f315531,0x57315831,0x58315531,0x86317431,0x74317e31,0x79317e31,0x57315a31,0x5d315831,0x58315a31,0x79317431,0x74317831,0x76317831,0x5d315f31,0x62315831,0x58315f31,0x76317431,0x74317331,0x70317331,0x62316431,0x67315831,0x58316431,0x70317431,0x74316e31,0x6b316e31,0x58316731,0x74317431,0x69316b31,0x982c9631,0x972c972c,0x932c952c,0x912c932c,0x8e2c8e2c,0x922c8f2c,0x8e2c932c,0x962c922c,0x932c972c,0x922c932c,0x7a2c942c,0x5430492f,0xf5300230,0x9f2ffa2f,0xa02f9e2f,0x642cb82f,0xb82cb32c,0xb72cb32c,0xbb2cbd2c,0xb82cb82c,0xba2cb72c,0xe2cf92c,0xc2d0c2d,0x42d0a2d,0xf12d4e2d,0x4e2cf62c,0xfb2cf62d,0xf92cfd2c,0x12d0c2c,0xc2cfd2d,0x4e2d072d,0x72cfb2d,0xff2cfb2d,0xc2d012c,0x72d042d,0x32cff2d,0x12d032d,0x382d042d,0x322d3a2d,0x312c322c,0x872d362c,0x9e309330,0x732c0630,0xd2a702a,0x752a782c,0x6e2e6d2a,0x992dc02e,0x952f972f,0x932f952f,0x912f912f,0x52f8f2f,0x52f9130,0x99300c30,0x912f952f,0x9b2f9d2f,0x242f992f,0x9d304030,0xc2f912f,0x24300d30,0x992f9d30,0xd2f912f,0x92302430,0x83307630,0x1e302630,0x9b302330,0x6c2ea42e,0xa12e6c2e,0xf22e962e,0xeb2fe52f,0x702c042f,0xc42a6e2a,0x3629c029,0x62307329,0xeb307530,0xec30e830,0xf130ec30,0xe730f330,0x502a522b,0x8931b02a,0x5e318631,0xef2a5c2a,0x71305e2b,0xa02fa030,0x9d2f9e2f,0x4a2f9d2f,0x89305e30,0x8c309930,0x77308c30,0xe5307f30,0xe92c4c2c,0xec2ce92c,0xf32cf32c,0xed2cf02c,0xe52ce82c,0xe92ce92c,0xed2cf32c,0x4033072c,0xe3334233,0x51335032,0xc291433,0x2e291629,0x22302930,0x482be030,0x902a472a,0x8e2c8b2c,0x9828a52c,0x23289f28,0xb5322432,0x212d2431,0x202d202d,0xc42cc12d,0xca2cc72c,0x202d242c,0xc72cc42d,0x602c5c2c,0x5d2c5d2c,0x562c5a2c,0x5c2c592c,0x552c5d2c,0xaf2eaa2e,0x752eaf2e,0xd92e562e,0x1f322131,0x992cae32,0x2d9b2d,0xe129e92a,0xd829e129,0xdc29dc29,0xa29f729,0x2a0a2a,0x3129e12a,0x42354435,0x7c2d7a35,0x792d792d,0x732d762d,0x6f2d6e2d,0x6e2d712d,0x742d712d,0x7a2d772d,0x732d792d,0x742d6e2d,0x792d772d,0x1a2d732d,0x802a852c,0x8f28932a,0x9a289a28,0x98289f28,0x3d284a28,0x32283228,0x24282c28,0x25282428,0x33283328,0x4a284b28,0x32284a28,0x90282428,0x892e8d2e,0x842e892e,0x882e882e,0x902e8c2e,0x672dee2e,0xf92f592e,0x362f372d,0x412f442f,0x3d2f3d2f,0x52f2c2f,0x72f042f,0x3d2f442f,0x42f052f,0xb128ba2f,0xaf28af28,0xab28a728,0xee28f828,0xe428e428,0xe128d628,0xd82dd528,0x842e892d,0x87309330,0x3c283230,0x48283828,0x472d442d,0xdf29e62d,0xd529d529,0xd729d129,0xe029d729,0xeb29e629,0x552a582b,0xd227d02a,0xc427d327,0x4d30c830,0x51304d30,0xeb304f30,0xe329ef29,0xd929e329,0x2229e429,0x32312a31,0x2c313231,0xc4311d31,0xc32cc12c,0xec2dee2c,0xd62e652d,0xd929d029,0x152a1e29,0x18292a2a,0x2b312131,0x24312b31,0x19311431,0xf2a072a,0xd22cd52a,0xe22cd32c,0xd82fcf2f,0xd031d62f,0xd2321931,0x53315831,0xb531b131,0x5322431,0x829fe2a,0x112a082a,0xe22a182a,0x402e3f2c,0xe72e402e,0xb32ce42c,0x922b912a,0xf22cef2b,0xf12cf12c,0xeb2cee2c,0xc131292c,0x5e30c030,0x5a304e30,0x72e0130,0xf52f522e,0x372f5e2d,0xca30d42f,0xbf30d330,0xc22abe2a,0x3c2d3f2a,0xfc2d3e2d,0x9b31fb31,0xe52de231,0xe52e312d,0x672d642c,0xe02d672d,0x772ce32c,0x79306c30,0x21312630,0x18311831,0x16310e31,0x2f2d3231,0xd12cd22d,0xd230d630,0xce30d230,0xaf30cd30,0x9130892f,0xd229da30,0xcd29cd29,0x38292f29,0xad309029,0xdb2fac2f,0xdc2cd92c,0x182a2b2c,0x1b2a112a,0x2b2a242a,0x2c2ccd2a,0xfd2e2f2e,0x692c002b,0x1028302c,0x1e282428,0x5e2e1d2e,0x5b2d5e2d,0x1c2d5d2d,0x5e2e1e2e,0xbc2c892d,0xb92cb92c,0x8f2cb62c,0x8c2c8f2c,0x12c892c,0xf328eb29,0x852b4828,0xb2b6e2b,0x8300030,0x7290f30,0xfc28fc29,0x828f528,0xaf2cb129,0xdb2d5a2c,0x99319631,0xc52c7d31,0xc22cc22c,0x832cbf2c,0x802c832c,0x492c7d2c,0x40283128,0xdd2bdc28,0xa62c282b,0x3d294229,0x63306529,0xd82fd430,0xda2ad92a,0x5435582a,0x53355335,0x55355235,0x57355535,0x3b355835,0x31282228,0x8a2c8828,0x872c872c,0x852c842c,0xb2e0f2c,0xb72f452e,0x942fce2f,0x96309430,0x1d2fb530,0xb2a162a,0x3a2f3f2a,0x3b2f3b2f,0x2f5d2f,0x2c2f002f,0x102f3f2f,0x47334533,0x68286b33,0x63286328,0x62285b28,0x8d288528,0x25288728,0xd02dcd2e,0xf332f62d,0xde333832,0x7c2de12d,0xd5313b2e,0xd031d031,0xd331d631,0xcf31d331,0xcd31cd31,0x3b313531,0xd0313b31,0x4a31d331,0x24304030,0x21302430,0x24302630,0x2b302630,0x4a303b30,0x39302430,0x24303b30,0x2b302430,0xdc303230,0x9d319a31,0xfa319831,0x22322231,0xd9322132,0x1d321f31,0x19321b32,0xd531d032,0x1b321f31,0x7c321932,0x7f2d7d2d,0x92b062d,0x52b052b,0xa72b032b,0xa92aa72a,0xff2b062a,0xa52aa32a,0x12aa52a,0x2b002b,0xff320232,0xfc31ff31,0x9c319c31,0x319f31,0x2e31d632,0x57322f32,0xaf2d542d,0xae2daf2d,0xaf2db02d,0xb22db02d,0x582d592d,0x572d572d,0xb22daf2d,0x3031cf2d,0xcb323132,0x34323331,0x942b9332,0xd32ab02b,0x30322f31,0x9f320032,0xa31a331,0x672d162c,0x27322d2c,0xfb31a232,0x630002f,0xf9300630,0x2c2ff42f,0xa7322d32,0x3f323e31,0x4431eb32,0x1324232,0x5320332,0x44324832,0x3320132,0x53328732,0x54325232,0x56325532,0x57325632,0x58325832,0x5a325932,0x5b325a32,0x5d325d32,0x39326032,0x3a323932,0x3c323c32,0x43324032,0x47324332,0x49324932,0x4e324c32,0x4f324e32,0x4d324d32,0x48324a32,0x7324832,0x48320932,0xb320932,0x4d324e32,0x43324832,0x4e324932,0x3c323932,0x5a324332,0x39325d32,0x58325632,0x53325a32,0x56325432,0x52325132,0x4b325332,0x51325032,0x46324532,0xe7324b32,0x45324131,0xe731e532,0x45324531,0x51324b32,0x53325132,0x56325632,0x39325a32,0x43323932,0x4e324e32,0xb324832,0xb324e32,0x45320d32,0x56325132,0xe531e332,0xe0324531,0x4531e331,0xd324e32,0x4e320f32,0x11320f32,0xe031de32,0xdc324531,0x4531de31,0x11324e32,0x4e321232,0x15321232,0x4531dc32,0xda325632,0x5631dc31,0x4e323932,0x39321532,0x18321532,0xda31db32,0x20325631,0x5631db32,0x18323932,0x39321b32,0x1d321b32,0x20321e32,0x1c325632,0x56321e32,0x1d323932,0x39321f32,0x21321f32,0x1c321a32,0x17325632,0x56321a32,0x21323932,0x39322232,0xfa322232,0x17321431,0x13325632,0x56321432,0xfa323932,0x3931f931,0xfb31f932,0x13321031,0xe325632,0x56321032,0xfb323932,0x3931fc31,0xff31fc32,0x56320e31,0xc323932,0x39320e32,0xff323932,0x39320231,0x4320232,0xc320a32,0x8323932,0x39320a32,0x4323932,0x41320632,0x3c283828,0x1d281f28,0x93282a28,0x43324732,0xf22af132,0x6d2af42a,0x4d2b512b,0x4b2b4d2b,0x802b6b2b,0x5b325d32,0x49329532,0xbc324732,0x8e2d8b2c,0x4d32812d,0x96324f32,0x58325932,0x7d2b6132,0xe22b7f2b,0xae31dd31,0x4a2b4b32,0x492b492b,0x6b2b802b,0x55328d2b,0x91325432,0x40324332,0x682b7132,0x4d2b472b,0x84328132,0x4f327f32,0x99324e32,0x4c324e32,0x5a329832,0x7e325932,0x5a325b32,0x4c329732,0xbb324932,0x932a922a,0xa132a02a,0x71329d32,0x9c326f32,0x65329a32,0x9a327d32,0x7b327d32,0x9c327132,0x74329a32,0x9a327132,0x7b329a32,0x9a327932,0x78327932,0x74327632,0xd8329a32,0xf231d231,0x9d329b31,0x9f32a132,0xa1329e32,0xdd32ae32,0xae31df31,0xe131df32,0xad32ab31,0xa932ae32,0xae32ab32,0xe132ae32,0xae31e431,0xe631e432,0xa932a731,0xa632ae32,0xae32a732,0xe632ae32,0xae31e831,0xea31e832,0xa632a531,0xac32ae32,0xa832aa32,0xae32a532,0xac31ea32,0xa532a832,0xa431f032,0xef32ac32,0xac31f031,0xa532ac32,0xac31ea32,0xec31ea32,0xef31ee31,0xc632ac31,0x972a962a,0x952ac32a,0xbd2a962a,0x942a932a,0x942ac02a,0xce2a952a,0xca2acd2a,0x982acc2a,0xbf2a992a,0xf732fa32,0xf732bf32,0xbb32f432,0xbf32bd32,0xb932b732,0xb232bb32,0xb732b532,0xb132af32,0xd032b232,0xaf32b032,0xce32cc32,0xc832d032,0xcc32ca32,0xc632c432,0xc032c832,0xc432c232,0xbe32bc32,0xb832c032,0xbc32ba32,0xb632b332,0xe932b832,0xb332b432,0xea32e732,0xe532e932,0xe932e732,0xb332e932,0xb832b832,0xc032bc32,0xc432c032,0xc832c832,0xd032cc32,0xaf32d032,0xb232b232,0xbb32b732,0xbf32bb32,0xbb32f432,0xf132f432,0xb232d032,0xc032bb32,0xd032c832,0xb832e932,0xe332c032,0xe932e532,0xe332e132,0xbb32e932,0xee32f132,0xee32bb32,0xe132eb32,0xc032e932,0xe132df32,0xd032c032,0xeb32bb32,0xeb32d032,0xdd32e832,0xc032df32,0xdd32db32,0xd032c032,0xe632e832,0xe632d032,0xda32e432,0xc032db32,0xda32d932,0xd032c032,0xe232e432,0xe232d032,0xd932e032,0xd032c032,0xd932dc32,0xd032d032,0xde32e032,0xdf2ae032,0xcf2aa02a,0x9a2a992a,0xf232f52a,0xef32ef32,0xea32ec32,0xea32ef32,0xf832ed32,0xef32f532,0xfb32fe32,0x332f832,0xfe330133,0x6330932,0x7330333,0x9330a33,0x7330433,0x9330933,0xfe330333,0xf832fe32,0xef32ef32,0xf032ed32,0xf032ef32,0x932f332,0xef32fe33,0x432ff32,0xfc330933,0x932ff32,0xf332ef33,0xef32f632,0xf932f632,0x932fc32,0x32ef33,0xbf32fd33,0xc132bf32,0xc332c332,0xc732c532,0xc932c732,0xcb32cb32,0xcf32cd32,0xd132cf32,0xd232d232,0x14331732,0x1432d233,0xcb331133,0xd232cf32,0xc732c332,0x32cb32,0xc332bf33,0x330232,0xc332c333,0xd232cb32,0x1132d232,0xd2330e33,0xb330e32,0x2330533,0x832c333,0xc3330533,0xd232c332,0xd2330b32,0x1e32d332,0x20331e33,0x26332633,0x27332a33,0x27332633,0xd2332133,0x26331e32,0x1a331f33,0x2632d233,0x1f332133,0x87318433,0x2d332a31,0x2a332b33,0x2c332a33,0x32333233,0xd8333433,0xd432d832,0xd732d732,0x30333632,0x2e333033,0x28332833,0x22332433,0x1c332233,0x1b331b33,0x15331833,0x12331533,0xf330f33,0xa330c33,0xa330f33,0x1b330d33,0xf331533,0x22332833,0xd7331b33,0x28333032,0xd8333233,0x2d32d732,0x32332a33,0x2d333333,0x32333233,0x2832d733,0x1b332833,0xf330f33,0x10330d33,0x10330f33,0x35331333,0x32333333,0x3532d633,0xf333233,0x16331333,0x16330f33,0xd5331933,0x3232d632,0xd5333733,0x28333232,0x19330f33,0x19332833,0x37331d33,0x28333233,0x37333133,0x28332833,0x23331d33,0x23332833,0x2f332533,0x28333133,0x25332833,0x39332933,0x88328532,0x4d32dd32,0xdb334e33,0x4d334c32,0x4b32da33,0xff334c33,0x3b32fc32,0xd932da33,0xf9334832,0x3932f632,0xf032f333,0x6c335532,0xb331b831,0xba31b331,0xb531b531,0xae31b131,0xa931ab31,0xb5316031,0xab31ae31,0xb3316c31,0xab31b531,0x6c316031,0x4f32e131,0x5e335033,0xb72e1f2d,0x982e9a2c,0xa02ea02e,0xa32ea62e,0x412df82e,0x3e2e3e2e,0xf42df32e,0x3133372d,0x95341433,0x932e902e,0xed32f02e,0x33335432,0x29312d31,0x20312931,0x1a311a31,0x4311131,0x4311a31,0x33310931,0x1a312931,0x2b312431,0x1e313331,0x33312431,0x1a313331,0x33310931,0xf310931,0x1e311531,0xc0313331,0xb931be31,0xb731b931,0x7b317b31,0xc0317431,0xf62af531,0xf32af82a,0xf62af42a,0x9f33822a,0x9e339e33,0x83339d33,0xa233a533,0x333a433,0xa52b012b,0x9d2aa22a,0x5a2b2a2a,0xc6335b33,0xaa28b233,0xc628c628,0xef28dc28,0xd828ef28,0xd228d228,0xc228c828,0xb228c228,0xc628c628,0xd228ef28,0x3e330428,0x15334033,0x102b142b,0xa2b0d2b,0x592b112b,0x4f345a34,0x4d344f34,0x4c344c34,0x47344934,0x5f344734,0x5b345d34,0x4f345934,0x5d344734,0x4f345b34,0x47344c34,0xf2b0e34,0x9f2b132b,0xa72baa2b,0x6134632b,0x47344734,0x43344434,0x42344334,0x65346534,0x47346334,0x132b1234,0x3e2b172b,0x67346934,0x42346734,0x41344134,0x3e344034,0x1c2b1d34,0x6c2b182b,0x3c343e34,0x70347334,0x6d346d34,0x68346a34,0x68346d34,0x71346b34,0x6d347334,0x6b346d34,0x39346e34,0x75343834,0x6f347234,0x39343a34,0x72347534,0x172b1634,0x812b1b2b,0x33347e34,0x8a342a34,0x87348734,0x2b342d34,0x9b349f34,0x9a349a34,0x94349734,0x91349434,0x94349234,0x95349234,0x9a349f34,0xa9349434,0x9f34a334,0xa434a034,0x9c34a934,0xa934a034,0x9f34a934,0x94349434,0x98349534,0x9c349834,0x9e34a934,0x9d349934,0xa1349d34,0x2534a234,0x1e2b242b,0x262b292b,0xb92b242b,0xb134b534,0xb234b134,0xb134b634,0xb834b634,0xb934b734,0xaf34b134,0xb734b334,0xad34a734,0xa834af34,0xa734a634,0xa834ae34,0xa734a734,0xb734af34,0xb134b734,0xb734b834,0xb434b834,0xa734ae34,0xb734b734,0xb034b434,0x6f357234,0xec357035,0x842c812b,0x242cc32c,0x592e262e,0x412f3d2e,0x4535472f,0xc135c135,0x9d35b935,0xa0359d35,0x3c35a335,0x3e353b35,0xa3359d35,0x47353c35,0x9d35c135,0x4a354935,0x46354735,0x4b355f35,0x49354b35,0x47354735,0x3c359d35,0x3e353c35,0x3d353d35,0x40353f35,0x41354035,0x43354235,0x4b354635,0x42354035,0x47354335,0x3d353c35,0x3d354735,0x43354035,0x47354b35,0xae2fb035,0xb22fb22f,0xaf30992f,0x2e162f,0xf62dfe2e,0xf52cf12c,0x9f30972c,0xa42fa430,0xa02fa22f,0x7c2fa02f,0x92308530,0xa4309730,0x852fa02f,0xc0309230,0x6f2e6e2d,0x322d352e,0x9c2cd52d,0x94359d35,0x31356535,0x58356635,0x5a2d5b2d,0x562d5a2d,0x492d572d,0xa12ca42c,0xa02ca12c,0x152ca22c,0xec2d132d,0xb628ca2c,0x8528bf28,0x80358135,0x7e358035,0x5b355b35,0x79357735,0x7a357935,0x78357835,0x7c357b35,0xb3357d35,0x7835b435,0x7d357c35,0x79355b35,0x85357835,0x5b358035,0x8435b435,0x7d358535,0x8535b435,0x5b358535,0x90357835,0xb32b912b,0xd92ee12a,0xd72ed72e,0xd82ed62e,0xad2b952e,0xd82ab02a,0x342cdb2c,0x962d992d,0xc92d922d,0xc331c731,0x3d31c331,0x35313531,0xcb31cd31,0xc931cb31,0xb731c331,0xb431b631,0xb231b431,0x81318131,0xb7317d31,0x152c0c31,0x532d162d,0xaf2dad2d,0x82e122d,0x172e062e,0xa630a731,0x9d29a330,0x8c29a629,0x8a358d35,0x8b358a35,0xb635b635,0x85358135,0x90358535,0x8c358c35,0xb6358a35,0x512e4f35,0x142e142e,0x4e2e502e,0x4c2e4e2e,0x5a2e4f2e,0x4b304630,0x932c2630,0x952c952c,0x282c992c,0xa22c462c,0x9d2c9d2c,0x982c9a2c,0x982c9d2c,0x4e2c9b2c,0x462c432c,0x4f2c452c,0x452c4e2c,0x462c4e2c,0x9b2c9d2c,0x9d2c9e2c,0x9f2c9e2c,0x452c442c,0x9d2c462c,0xa32c9f2c,0x442ca32c,0x8c2c462c,0x8b2c8e2c,0x882c8b2c,0x852c852c,0x832c822c,0x832c852c,0x892c862c,0x8b2c8c2c,0x862c852c,0x22c892c,0x502e4e2d,0xc531c82e,0xc231c631,0x7131c031,0xc631c831,0x6531c231,0xc831ca31,0x7131c231,0x316531,0x1d311331,0x8a2be631,0xfe2c8d2c,0x6310430,0xf3310631,0x630f130,0xf730f131,0xfe30fc30,0x6310630,0xfa30f731,0x5c29d930,0x99295a29,0x84358835,0xb5358435,0x89358935,0x8e356d35,0xc0358e35,0x91359135,0x73356c35,0x9b357335,0x99359935,0x89358435,0x89359935,0x91358e35,0x99357335,0x5c351335,0x19351935,0x1f352635,0x17351f35,0x5e351335,0xa2f472e,0xe930e72f,0xed30ed30,0xe230e430,0xe730e630,0x4530ed30,0x7f297e29,0x29,}; +#include +#include +inline void uncompress_t265_obj(std::vector& vertex_data, std::vector& normals, std::vector& index_data) +{ + std::vector uncompressed(0x47760, 0); + LZ4_decompress_fast((const char*)t265_obj_data, uncompressed.data(), 0x47760); + const int vertex_size = 0x35df * sizeof(float3); + const int index_size = 0x52d2 * sizeof(short3); + vertex_data.resize(0x35df); + memcpy(vertex_data.data(), uncompressed.data(), vertex_size); + index_data.resize(0x52d2); + memcpy(index_data.data(), uncompressed.data() + vertex_size, index_size); + //normals.resize(0x35df); + //memcpy(normals.data(), uncompressed.data() + vertex_size + index_size, vertex_size); +} diff --git a/common/rs-config.cpp b/common/rs-config.cpp new file mode 100644 index 00000000000..ff3a75775d2 --- /dev/null +++ b/common/rs-config.cpp @@ -0,0 +1,133 @@ +#include "rs-config.h" + +#include "../third-party/json.hpp" + +#include "model-views.h" + +#include + +#include "os.h" + +using json = nlohmann::json; + +using namespace rs2; + +void config_file::set(const char* key, const char* value) +{ + _values[key] = value; + save(); +} + +void config_file::set_default(const char* key, const char* calculate) +{ + _defaults[key] = calculate; +} + +void config_file::reset() +{ + _values.clear(); + save(); +} + +std::string config_file::get(const char* key, const char* def) const +{ + auto it = _values.find(key); + if (it != _values.end()) + { + return it->second; + } + return get_default(key, def); +} + +bool config_file::contains(const char* key) const +{ + auto it = _values.find(key); + return it != _values.end(); +} + +std::string config_file::get_default(const char* key, const char* def) const +{ + auto it = _defaults.find(key); + if (it == _defaults.end()) return def; + return it->second; +} + +config_value config_file::get(const char* key) const +{ + if (!contains(key)) return config_value(get_default(key, "")); + return config_value(get(key, "")); +} + +void config_file::save(const char* filename) +{ + json j; + for(auto kvp : _values) + { + j[kvp.first] = kvp.second; + } + std::string s = j.dump(2); + try + { + std::ofstream out(filename); + out << s; + out.close(); + } + catch (...) + { + } +} + +config_file& config_file::instance() +{ + static config_file inst(get_folder_path(rs2::special_folder::app_data) + + std::string("realsense-config.json")); + return inst; +} + +config_file::config_file(std::string filename) + : _filename(std::move(filename)), _values() +{ + try + { + + std::ifstream t(_filename); + if (!t.good()) return; + std::string str((std::istreambuf_iterator(t)), + std::istreambuf_iterator()); + auto j = json::parse(str); + for (json::iterator it = j.begin(); it != j.end(); ++it) + { + _values[it.key()] = it.value(); + } + } + catch(...) + { + + } +} + +void config_file::save() +{ + save(_filename.c_str()); +} + +config_file::config_file() + : _filename(""), _values() +{ +} + +config_file& config_file::operator=(const config_file& other) +{ + if (this != &other) + { + _values = other._values; + _defaults = other._defaults; + save(); + } + return *this; +} + +bool config_file::operator==(const config_file& other) const +{ + return _values == other._values; +} \ No newline at end of file diff --git a/common/rs-config.h b/common/rs-config.h new file mode 100644 index 00000000000..3532cff1766 --- /dev/null +++ b/common/rs-config.h @@ -0,0 +1,96 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once + +#include +#include +#include +#include + +namespace rs2 +{ + class config_value + { + public: + template + operator T() + { + std::stringstream ss; + ss.str(_val); + T res; + ss >> res; + return res; + } + + // When converting config_value to string, we can't use >> operator since it reads until first whitespace rather than the whole string; + // Therefore we use a different overload for strings + operator std::string() + { + return _val; + } + + config_value(std::string val) : _val(std::move(val)) {} + + private: + std::string _val; + }; + + class config_file + { + public: + config_file(); + config_file(std::string filename); + + void set_default(const char* key, const char* calculate); + + template + void set_default(const char* key, T val) + { + std::stringstream ss; + ss << val; + set_default(key, ss.str().c_str()); + } + + bool operator==(const config_file& other) const; + + config_file& operator=(const config_file& other); + + void set(const char* key, const char* value); + std::string get(const char* key, const char* def) const; + + config_value get(const char* key) const; + + template + T get_or_default(const char* key, T def) const + { + if (contains(key)) return get(key); + return def; + } + + template + void set(const char* key, T val) + { + std::stringstream ss; + ss << val; + set(key, ss.str().c_str()); + } + + bool contains(const char* key) const; + + void save(const char* filename); + + void reset(); + + static config_file& instance(); + + private: + std::string get_default(const char* key, const char* def) const; + + void save(); + + std::map _values; + std::map _defaults; + std::string _filename; + }; +} \ No newline at end of file diff --git a/common/tiny-profiler.h b/common/tiny-profiler.h new file mode 100644 index 00000000000..a68e19daf41 --- /dev/null +++ b/common/tiny-profiler.h @@ -0,0 +1,92 @@ +#pragma once + +#include +#include +#include +#include // strlen + +class scoped_timer +{ +public: + void tocout(long a) + { + long c = 1; + + if (a<0) { a *= -1; std::cout << "-"; } + while ((c *= 1000)1) + { + int t = (a%c) / (c / 1000); + std::cout << (((c>a) || (t>99)) ? "" : ((t>9) ? "0" : "00")) << t; + std::cout << (((c /= 1000) == 1) ? "" : ","); + } + } + + struct profiler + { + std::unordered_map duration; + std::unordered_map counts; + std::unordered_map lasts; + int scope = 0; + + static profiler& instance() + { + static profiler inst; + return inst; + } + }; + + scoped_timer(const char* key) : key(key) + { + _started = std::chrono::high_resolution_clock::now(); + + auto& lasts = profiler::instance().lasts; + + if (lasts.find(key) == lasts.end()) + lasts[key] = std::chrono::high_resolution_clock::now(); + + auto since_last = _started - lasts[key]; + auto sec = std::chrono::duration_cast(since_last).count(); + + if (sec >= 2) + { + if (!profiler::instance().scope) + { + for (int i = 0; i < 50; i++) std::cout << "="; + std::cout << "\n"; + } + lasts[key] = _started; + for (int i = 0; i < profiler::instance().scope; i++) + std::cout << " "; + auto l = strlen(key); + std::cout << key; + std::cout << " "; + for (int i = 0; i < 50 - int(l) - profiler::instance().scope * 2; i++) + std::cout << "."; + auto avg = (profiler::instance().duration[key] + / profiler::instance().counts[key]); + std::cout << " "; + tocout(long(avg)); + std::cout << " usec,\t" << (profiler::instance().counts[key] / 2) << " Hz\n"; + profiler::instance().duration[key] = 0; + profiler::instance().counts[key] = 1; + } + + profiler::instance().scope++; + } + + ~scoped_timer() + { + auto ended = std::chrono::high_resolution_clock::now(); + auto duration = ended - _started; + auto usec = std::chrono::duration_cast(duration).count(); + profiler::instance().duration[key] += usec; + profiler::instance().counts[key]++; + profiler::instance().scope--; + } + +private: + std::chrono::high_resolution_clock::time_point _started; + const char* key; +}; diff --git a/common/ux-alignment.cpp b/common/ux-alignment.cpp new file mode 100644 index 00000000000..ce57dcca311 --- /dev/null +++ b/common/ux-alignment.cpp @@ -0,0 +1,114 @@ +#include "ux-alignment.h" +#include +#include +#include +#include + +#ifdef _WIN32 +#undef APIENTRY +#define GLFW_EXPOSE_NATIVE_WIN32 +#define GLFW_EXPOSE_NATIVE_WGL +#include + +#include +#endif + +#define MAGIC 250 + +bool is_gui_aligned(GLFWwindow *win) +{ +#ifdef _WIN32 + try + { + auto hwn = glfwGetWin32Window(win); + if (hwn == nullptr) + return true; + + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoBringToFrontOnFocus; + + ImGui::SetNextWindowPos({ 0, 0 }); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); + ImGui::Begin("is_gui_aligned", nullptr, flags); + + auto DrawList = ImGui::GetWindowDrawList(); + if (DrawList == nullptr) + return true; + + DrawList->AddRectFilled({ 0,0 }, { 1,1 }, ImColor(MAGIC / 255.f, 0.f, 0.f, 1.f)); + + ImGui::End(); + ImGui::PopStyleVar(); + + ImGui::Render(); + + glfwSwapBuffers(win); + + ImGui_ImplGlfw_NewFrame(1.f); + + SetFocus(hwn); + + int width = 1; + int height = 1; + + HDC hdc = GetDC(hwn); + if (hdc == nullptr) + return true; + + std::shared_ptr shared_hdc(&hdc, [&](HDC* hdc) {ReleaseDC(hwn, *hdc); DeleteDC(*hdc);}); + + HDC hCaptureDC = CreateCompatibleDC(hdc); + if (hCaptureDC == nullptr) + return true; + + std::shared_ptr shared_capture_hdc(&hCaptureDC, [&](HDC* hdc) {ReleaseDC(hwn, *hdc); DeleteDC(*hdc);}); + + HBITMAP hCaptureBitmap = CreateCompatibleBitmap(hdc, width, height); + if (hCaptureBitmap == nullptr) + return true; + + std::shared_ptr shared_bmp(&hCaptureBitmap, [&](HBITMAP* bmp) {DeleteObject(bmp);}); + + auto original = SelectObject(hCaptureDC, hCaptureBitmap); + if (original == nullptr) + return true; + + if (!BitBlt(hCaptureDC, 0, 0, width, height, hdc, 0, 0, SRCCOPY | CAPTUREBLT)) + return true; + + BITMAPINFO bmi = { 0 }; + bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader); + bmi.bmiHeader.biWidth = width; + bmi.bmiHeader.biHeight = height; + bmi.bmiHeader.biPlanes = 1; + bmi.bmiHeader.biBitCount = 32; + bmi.bmiHeader.biCompression = BI_RGB; + + std::vector pPixels(width * height); + + auto res = GetDIBits( + hCaptureDC, + hCaptureBitmap, + 0, + height, + pPixels.data(), + &bmi, + DIB_RGB_COLORS + ); + + if (res <= 0 || res == ERROR_INVALID_PARAMETER) + return true; + + auto ret = pPixels[0].rgbRed == MAGIC; + return ret; + } + catch (...) + { + return true; + } +#else + return true; +#endif +} \ No newline at end of file diff --git a/common/ux-alignment.h b/common/ux-alignment.h new file mode 100644 index 00000000000..e83ca332aa4 --- /dev/null +++ b/common/ux-alignment.h @@ -0,0 +1,16 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once + +#define GLFW_INCLUDE_GLU +#include + +//This function checks whether there is UI misalignment, +//sometimes caused by outdated graphics card drivers, +//it puts a red pixel (1x1 rect) on the top left corner of the window, +//take a snapshot and check the value of the top left corner pixel +//if its red - there is no misalignment +//otherwise - there is misalignment + +bool is_gui_aligned(GLFWwindow *win); diff --git a/common/ux-window.cpp b/common/ux-window.cpp index 99a70d31948..e64928602a9 100644 --- a/common/ux-window.cpp +++ b/common/ux-window.cpp @@ -1,26 +1,217 @@ +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include + #include "ux-window.h" #include "model-views.h" +#include "os.h" // We use STB image to load the splash-screen from memory #define STB_IMAGE_IMPLEMENTATION #include // int-rs-splash.hpp contains the PNG image from res/int-rs-splash.png #include "res/int-rs-splash.hpp" +#include "res/icon.h" + +#include "ux-alignment.h" + +#include + +#include namespace rs2 { + void prepare_config_file() + { + config_file::instance().set_default(configurations::update::allow_rc_firmware, false); + config_file::instance().set_default(configurations::update::recommend_calibration, true); + config_file::instance().set_default(configurations::update::recommend_updates, true); + + config_file::instance().set_default(configurations::window::is_fullscreen, false); + config_file::instance().set_default(configurations::window::saved_pos, false); + config_file::instance().set_default(configurations::window::saved_size, false); + + config_file::instance().set_default(configurations::viewer::log_filename, get_folder_path(special_folder::user_documents) + "librealsense.log"); + config_file::instance().set_default(configurations::viewer::log_to_console, true); + config_file::instance().set_default(configurations::viewer::log_to_file, false); + config_file::instance().set_default(configurations::viewer::log_severity, 2); + config_file::instance().set_default(configurations::viewer::metric_system, true); + + config_file::instance().set_default(configurations::record::compression_mode, 2); // Let the device decide + config_file::instance().set_default(configurations::record::default_path, get_folder_path(special_folder::user_documents)); + config_file::instance().set_default(configurations::record::file_save_mode, 0); // Auto-select name + + config_file::instance().set_default(configurations::performance::show_fps, false); + config_file::instance().set_default(configurations::performance::vsync, true); + + config_file::instance().set_default(configurations::ply::mesh, true); + config_file::instance().set_default(configurations::ply::use_normals, false); + config_file::instance().set_default(configurations::ply::encoding, configurations::ply::binary); + +#ifdef __APPLE__ + config_file::instance().set_default(configurations::performance::font_oversample, 8); + config_file::instance().set_default(configurations::performance::enable_msaa, true); + config_file::instance().set_default(configurations::performance::msaa_samples, 4); + // On Mac-OS, mixing OpenGL 2 with OpenGL 3 is not supported by the driver + // while this can be worked-around, this will take more development time, + // so for now Macs should not use the GLSL stuff + config_file::instance().set_default(configurations::performance::glsl_for_processing, false); + config_file::instance().set_default(configurations::performance::glsl_for_rendering, false); +#else + auto vendor = (const char*)glGetString(GL_VENDOR); + auto renderer = (const char*)glGetString(GL_RENDERER); + auto version = (const char*)glGetString(GL_VERSION); + auto glsl = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION); + + bool use_glsl = false; + + // Absolutely arbitrary list of manufacturers that are likely to benefit from GLSL optimisation + if (starts_with(to_lower(vendor), "intel") || + starts_with(to_lower(vendor), "ati") || + starts_with(to_lower(vendor), "nvidia")) + { + use_glsl = true; + } + + // Double-check that GLSL 1.3+ is supported + if (starts_with(to_lower(vendor), "1.1") || starts_with(to_lower(vendor), "1.2")) + { + use_glsl = false; + } + + if (use_glsl) + { + config_file::instance().set_default(configurations::performance::font_oversample, 2); + config_file::instance().set_default(configurations::performance::enable_msaa, false); + config_file::instance().set_default(configurations::performance::msaa_samples, 2); + config_file::instance().set_default(configurations::performance::glsl_for_processing, true); + config_file::instance().set_default(configurations::performance::glsl_for_rendering, true); + } + else + { + config_file::instance().set_default(configurations::performance::font_oversample, 1); + config_file::instance().set_default(configurations::performance::enable_msaa, false); + config_file::instance().set_default(configurations::performance::msaa_samples, 2); + config_file::instance().set_default(configurations::performance::glsl_for_processing, false); + config_file::instance().set_default(configurations::performance::glsl_for_rendering, false); + } +#endif + } + + void ux_window::reload() + { + _reload = true; + } + + void ux_window::refresh() + { + if (_use_glsl_proc) rs2::gl::shutdown_processing(); + rs2::gl::shutdown_rendering(); + + _use_glsl_render = config_file::instance().get(configurations::performance::glsl_for_rendering); + _use_glsl_proc = config_file::instance().get(configurations::performance::glsl_for_processing); + + rs2::gl::init_rendering(_use_glsl_render); + if (_use_glsl_proc) rs2::gl::init_processing(_win, _use_glsl_proc); + } + + void ux_window::link_hovered() + { + _link_hovered = true; + } + + void ux_window::setup_icon() + { + GLFWimage icon[4]; + + int x, y, comp; + + auto icon_16 = stbi_load_from_memory(icon_16_png_data, (int)icon_16_png_size, &x, &y, &comp, false); + icon[0].width = x; icon[0].height = y; + icon[0].pixels = icon_16; + + auto icon_24 = stbi_load_from_memory(icon_24_png_data, (int)icon_24_png_size, &x, &y, &comp, false); + icon[1].width = x; icon[1].height = y; + icon[1].pixels = icon_24; + + auto icon_64 = stbi_load_from_memory(icon_64_png_data, (int)icon_64_png_size, &x, &y, &comp, false); + icon[2].width = x; icon[2].height = y; + icon[2].pixels = icon_64; + + auto icon_256 = stbi_load_from_memory(icon_256_png_data, (int)icon_256_png_size, &x, &y, &comp, false); + icon[3].width = x; icon[3].height = y; + icon[3].pixels = icon_256; + + glfwSetWindowIcon(_win, 4, icon); + + stbi_image_free(icon_16); + stbi_image_free(icon_24); + stbi_image_free(icon_64); + stbi_image_free(icon_256); + } + void ux_window::open_window() { if (_win) { + rs2::gl::shutdown_rendering(); + if (_use_glsl_proc) rs2::gl::shutdown_processing(); + ImGui::GetIO().Fonts->ClearFonts(); // To be refactored into Viewer theme object ImGui_ImplGlfw_Shutdown(); glfwDestroyWindow(_win); + glfwDestroyCursor(_hand_cursor); + glfwTerminate(); } + if (!glfwInit()) + exit(1); + + _hand_cursor = glfwCreateStandardCursor(GLFW_HAND_CURSOR); + + { + glfwWindowHint(GLFW_VISIBLE, 0); + auto ctx = glfwCreateWindow(640, 480, "Offscreen Context", nullptr, nullptr); + if (!ctx) throw std::runtime_error("Could not initialize offscreen context!"); + glfwMakeContextCurrent(ctx); + + gladLoadGLLoader((GLADloadproc)glfwGetProcAddress); + + // OpenGL 2.1 backward-compatibility fixes. + // On macOS, the compatibility profile is OpenGL 2.1 + extensions. + if (!GLAD_GL_VERSION_3_0 && !GLAD_GL_ARB_vertex_array_object) { + if (GLAD_GL_APPLE_vertex_array_object) { + glBindVertexArray = glBindVertexArrayAPPLE; + glDeleteVertexArrays = glDeleteVertexArraysAPPLE; + glGenVertexArrays = glGenVertexArraysAPPLE; + glIsVertexArray = glIsVertexArrayAPPLE; + } else { + throw std::runtime_error("OpenGL 3.0 or ARB_vertex_array_object extension required!"); + } + } + + prepare_config_file(); + + glfwDestroyWindow(ctx); + } + + _use_glsl_render = config_file::instance().get(configurations::performance::glsl_for_rendering); + _use_glsl_proc = config_file::instance().get(configurations::performance::glsl_for_processing); + + _enable_msaa = config_file::instance().get(configurations::performance::enable_msaa); + _msaa_samples = config_file::instance().get(configurations::performance::msaa_samples); + + _fullscreen = config_file::instance().get(configurations::window::is_fullscreen); + rs2_error* e = nullptr; _title_str = to_string() << _title << " v" << api_version_to_string(rs2_get_api_version(&e)); + auto debug = is_debug(); + if (debug) + { + _title_str = _title_str + ", DEBUG"; + } _width = 1024; _height = 768; @@ -41,6 +232,11 @@ namespace rs2 _height = int(mode->height * 0.7f); } } + + if (_enable_msaa) + glfwWindowHint(GLFW_SAMPLES, _msaa_samples); + + glfwWindowHint(GLFW_VISIBLE, 0); // Create GUI Windows _win = glfwCreateWindow(_width, _height, _title_str.c_str(), @@ -48,9 +244,63 @@ namespace rs2 if (!_win) throw std::runtime_error("Could not open OpenGL window, please check your graphic drivers or use the textual SDK tools"); + if (config_file::instance().get(configurations::window::saved_pos)) + { + int x = config_file::instance().get(configurations::window::position_x); + int y = config_file::instance().get(configurations::window::position_y); + + int count; + GLFWmonitor** monitors = glfwGetMonitors(&count); + if (count > 0) + { + bool legal_position = false; + for (int i = 0; i < count; i++) + { + auto rect = get_monitor_rect(monitors[i]); + if (rect.contains({ (float)x, (float)y })) + { + legal_position = true; + } + } + if (legal_position) glfwSetWindowPos(_win, x, y); + } + } + + if (config_file::instance().get(configurations::window::saved_size)) + { + int w = config_file::instance().get(configurations::window::width); + int h = config_file::instance().get(configurations::window::height); + glfwSetWindowSize(_win, w, h); + + if (config_file::instance().get(configurations::window::maximized)) + glfwMaximizeWindow(_win); + } + glfwMakeContextCurrent(_win); + gladLoadGLLoader((GLADloadproc)glfwGetProcAddress); + + glfwSetWindowPosCallback(_win, [](GLFWwindow* w, int x, int y) + { + config_file::instance().set(configurations::window::saved_pos, true); + config_file::instance().set(configurations::window::position_x, x); + config_file::instance().set(configurations::window::position_y, y); + }); + + glfwSetWindowSizeCallback(_win, [](GLFWwindow* window, int width, int height) + { + config_file::instance().set(configurations::window::saved_size, true); + config_file::instance().set(configurations::window::width, width); + config_file::instance().set(configurations::window::height, height); + config_file::instance().set(configurations::window::maximized, glfwGetWindowAttrib(window, GLFW_MAXIMIZED)); + }); + + setup_icon(); + ImGui_ImplGlfw_Init(_win, true); + if (_use_glsl_render) + _2d_vis = std::make_shared(std::make_shared()); + // Load fonts to be used with the ImGui - TODO move to RAII imgui_easy_theming(_font_14, _font_18); @@ -87,28 +337,33 @@ namespace rs2 data->on_file_drop(paths[i]); } }); - } - ux_window::ux_window(const char* title) : - _win(nullptr), _width(0), _height(0), _output_height(0), - _font_14(nullptr), _font_18(nullptr), _app_ready(false), - _first_frame(true), _query_devices(true), _missing_device(false), - _hourglass_index(0), _dev_stat_message{}, _keep_alive(true), _title(title) - { - if (!glfwInit()) - exit(1); + rs2::gl::init_rendering(_use_glsl_render); + if (_use_glsl_proc) rs2::gl::init_processing(_win, _use_glsl_proc); - open_window(); + glfwShowWindow(_win); + glfwFocusWindow(_win); + + _show_fps = config_file::instance().get(configurations::performance::show_fps); + _vsync = config_file::instance().get(configurations::performance::vsync); // Prepare the splash screen and do some initialization in the background int x, y, comp; auto r = stbi_load_from_memory(splash, (int)splash_size, &x, &y, &comp, false); _splash_tex.upload_image(x, y, r); stbi_image_free(r); + } + + ux_window::ux_window(const char* title, context &ctx) : + _win(nullptr), _width(0), _height(0), _output_height(0), + _font_14(nullptr), _font_18(nullptr), _app_ready(false), + _first_frame(true), _query_devices(true), _missing_device(false), + _hourglass_index(0), _dev_stat_message{}, _keep_alive(true), _title(title), _ctx(ctx) + { + open_window(); // Apply initial UI state reset(); - } void ux_window::add_on_load_message(const std::string& msg) @@ -117,20 +372,121 @@ namespace rs2 _on_load_message.push_back(msg); } + void ux_window::imgui_config_pop() + { + ImGui::PopFont(); + ImGui::End(); + + ImGui::PopStyleColor(3); + ImGui::PopStyleVar(2); + end_frame(); + + glPopMatrix(); + } + + void ux_window::imgui_config_push() + { + glPushMatrix(); + glViewport(0, 0, _fb_width, _fb_height); + glClearColor(0.036f, 0.044f, 0.051f, 1.f); + glClear(GL_COLOR_BUFFER_BIT); + + glLoadIdentity(); + glOrtho(0, _width, _height, 0, -1, +1); + + // Fade-in the logo + auto opacity = smoothstep(float(_splash_timer.elapsed_ms()), 100.f, 2500.f); + auto ox = 0.7f - smoothstep(float(_splash_timer.elapsed_ms()), 200.f, 1900.f) * 0.4f; + auto oy = 0.5f; + auto power = std::sin(smoothstep(float(_splash_timer.elapsed_ms()), 150.f, 2200.f) * 3.14f) * 0.96f; + + if (_use_glsl_render) + { + auto shader = ((splash_screen_shader*)&_2d_vis->get_shader()); + shader->begin(); + shader->set_power(power); + shader->set_ray_center(float2{ ox, oy }); + shader->end(); + _2d_vis->draw_texture(_splash_tex.get_gl_handle(), opacity); + } + else + { + _splash_tex.show({ 0.f,0.f,float(_width),float(_height) }, opacity); + } + + std::string hourglass = u8"\uf250"; + static periodic_timer every_200ms(std::chrono::milliseconds(200)); + bool do_200ms = every_200ms; + if (_query_devices && do_200ms) + { + _missing_device = _ctx.query_devices(RS2_PRODUCT_LINE_ANY).size() == 0; + _hourglass_index = (_hourglass_index + 1) % 5; + + if (!_missing_device) + { + _dev_stat_message = u8"\uf287 RealSense device detected."; + _query_devices = false; + } + } + + hourglass[2] += _hourglass_index; + + auto flags = ImGuiWindowFlags_NoResize | + ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | + ImGuiWindowFlags_NoTitleBar; + + auto text_color = light_grey; + text_color.w = opacity; + ImGui::PushStyleColor(ImGuiCol_Text, text_color); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 5, 5 }); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + ImGui::PushStyleColor(ImGuiCol_WindowBg, transparent); + ImGui::SetNextWindowPos({ (float)_width / 2 - 150, (float)_height / 2 + 70 }); + + ImGui::SetNextWindowSize({ (float)_width, (float)_height }); + ImGui::Begin("Splash Screen Banner", nullptr, flags); + ImGui::PushFont(_font_18); + + ImGui::Text("%s Loading %s...", hourglass.c_str(), _title_str.c_str()); + } + // Check that the graphic subsystem is valid and start a new frame ux_window::operator bool() { end_frame(); + if (_show_fps) + { + std::stringstream temp_title; + temp_title << _title_str; + + auto fps = ImGui::GetIO().Framerate; + + temp_title << ", FPS: " << fps; + glfwSetWindowTitle(_win, temp_title.str().c_str()); + } + // Yield the CPU - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + if (!_vsync) + { + std::this_thread::yield(); + glfwSwapInterval(0); + } + else + { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } auto res = !glfwWindowShouldClose(_win); + if (_first_frame) { assert(!_first_load.joinable()); // You must call to reset() before initiate new thread + _first_load = std::thread([&]() { while (_keep_alive && !_app_ready) { @@ -144,68 +500,27 @@ namespace rs2 } } }); - _first_frame = false; } // If we are just getting started, render the Splash Screen instead of normal UI - while (res && (!_app_ready || _splash_timer.elapsed_ms() < 1500.f)) + while (res && (!_app_ready || _splash_timer.elapsed_ms() < 2000.f)) { res = !glfwWindowShouldClose(_win); glfwPollEvents(); begin_frame(); - glPushMatrix(); - glViewport(0, 0, _fb_width, _fb_height); - glClearColor(0.036f, 0.044f, 0.051f, 1.f); - glClear(GL_COLOR_BUFFER_BIT); - - glLoadIdentity(); - glOrtho(0, _width, _height, 0, -1, +1); - - // Fade-in the logo - auto opacity = smoothstep(float(_splash_timer.elapsed_ms()), 100.f, 2000.f); - _splash_tex.show({ 0.f,0.f,float(_width),float(_height) }, opacity); - - std::string hourglass = u8"\uf250"; - static periodic_timer every_200ms(std::chrono::milliseconds(200)); - bool do_200ms = every_200ms; - if (_query_devices && do_200ms) + if (_first_frame) { - _missing_device = rs2::context().query_devices().size() == 0; - _hourglass_index = (_hourglass_index + 1) % 5; - - if (!_missing_device) - { - _dev_stat_message = u8"\uf287 RealSense device detected."; - _query_devices = false; - } + _is_ui_aligned = is_gui_aligned(_win); + _first_frame = false; } - hourglass[2] += _hourglass_index; - - bool blink = sin(_splash_timer.elapsed_ms() / 150.f) > -0.3f; - - auto flags = ImGuiWindowFlags_NoResize | - ImGuiWindowFlags_NoMove | - ImGuiWindowFlags_NoCollapse | - ImGuiWindowFlags_NoTitleBar; - - ImGui::PushStyleColor(ImGuiCol_Text, light_grey); - ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 5, 5 }); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); - ImGui::PushStyleColor(ImGuiCol_WindowBg, transparent); - ImGui::SetNextWindowPos({ (float)_width / 2 - 150, (float)_height / 2 + 70 }); - ImGui::PushFont(_font_18); - ImGui::SetNextWindowSize({ (float)_width, (float)_height }); - ImGui::Begin("Splash Screen Banner", nullptr, flags); - - ImGui::Text("%s Loading %s...", hourglass.c_str(), _title_str.c_str()); + imgui_config_push(); { std::lock_guard lock(_on_load_message_mtx); - if (_on_load_message.empty() && blink) + if (_on_load_message.empty()) { ImGui::Text("%s", _dev_stat_message.c_str()); } @@ -215,7 +530,7 @@ namespace rs2 for (auto& msg : _on_load_message) { auto is_last_msg = (msg == _on_load_message.back()); - if (is_last_msg && blink) + if (is_last_msg) ImGui::Text("%s", msg.c_str()); else if (!is_last_msg) ImGui::Text("%s", msg.c_str()); @@ -223,14 +538,8 @@ namespace rs2 } } - ImGui::End(); - ImGui::PopFont(); - ImGui::PopStyleColor(3); - ImGui::PopStyleVar(2); - - end_frame(); + imgui_config_pop(); - glPopMatrix(); // Yield the CPU std::this_thread::sleep_for(std::chrono::milliseconds(10)); @@ -239,6 +548,12 @@ namespace rs2 // reset graphic pipe begin_frame(); + if (_link_hovered) + glfwSetCursor(_win, _hand_cursor); + else + glfwSetCursor(_win, nullptr); + _link_hovered = false; + return res; } @@ -250,9 +565,17 @@ namespace rs2 _first_load.join(); } + end_frame(); + + rs2::gl::shutdown_rendering(); + if (_use_glsl_proc) rs2::gl::shutdown_processing(); + ImGui::GetIO().Fonts->ClearFonts(); // To be refactored into Viewer theme object ImGui_ImplGlfw_Shutdown(); glfwDestroyWindow(_win); + + glfwDestroyCursor(_hand_cursor); + glfwTerminate(); } @@ -270,11 +593,18 @@ namespace rs2 if (_fullscreen_pressed) { _fullscreen = !_fullscreen; + config_file::instance().set(configurations::window::is_fullscreen, _fullscreen); open_window(); } _fullscreen_pressed = false; } + if (_reload) + { + open_window(); + _reload = false; + } + int w = _width; int h = _height; glfwGetWindowSize(_win, &_width, &_height); @@ -318,6 +648,7 @@ namespace rs2 _mouse.ui_wheel = 0.f; ImGui_ImplGlfw_NewFrame(_scale_factor); + //ImGui::NewFrame(); } void ux_window::begin_viewport() @@ -326,6 +657,10 @@ namespace rs2 glViewport(0, 0, static_cast(ImGui::GetIO().DisplaySize.x * _scale_factor), static_cast(ImGui::GetIO().DisplaySize.y * _scale_factor)); + + if (_enable_msaa) glEnable(GL_MULTISAMPLE); + else glDisable(GL_MULTISAMPLE); + glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); } diff --git a/common/ux-window.h b/common/ux-window.h index 5aa9adab786..b34d4cb6de5 100644 --- a/common/ux-window.h +++ b/common/ux-window.h @@ -1,17 +1,21 @@ #pragma once #define GLFW_INCLUDE_GLU - #include + #include "imgui.h" #include #include #include #include "rendering.h" #include +#include namespace rs2 { + class visualizer_2d; + class context; + class viewer_ui_traits { public: @@ -31,7 +35,7 @@ namespace rs2 std::function on_file_drop = [](std::string) {}; std::function on_load = []() { return false; }; - ux_window(const char* title); + ux_window(const char* title, context &ctx); float width() const { return float(_width); } float height() const { return float(_height); } @@ -44,7 +48,7 @@ namespace rs2 ~ux_window(); - operator GLFWwindow*() { return _win; } + operator GLFWwindow*() const { return _win; } void begin_frame(); @@ -62,9 +66,23 @@ namespace rs2 void add_on_load_message(const std::string& msg); + bool is_ui_aligned() { return _is_ui_aligned; } + bool is_fullscreen() { return _fullscreen; } + + texture_buffer& get_splash() { return _splash_tex; } + + void reload(); + void refresh(); + + void link_hovered(); private: void open_window(); + void setup_icon(); + + void imgui_config_push(); + void imgui_config_pop(); + GLFWwindow *_win; int _width, _height, _output_height; int _fb_width, _fb_height; @@ -91,6 +109,21 @@ namespace rs2 std::string _dev_stat_message; bool _fullscreen_pressed = false; bool _fullscreen = false; + bool _reload = false; + bool _show_fps = false; + bool _vsync = true; + bool _use_glsl_proc = false; + bool _use_glsl_render = false; + bool _enable_msaa = false; + int _msaa_samples = 0; + + bool _link_hovered = false; + GLFWcursor* _hand_cursor = nullptr; + std::string _title; + std::shared_ptr _2d_vis; + context &_ctx; + + bool _is_ui_aligned = false; }; } diff --git a/common/viewer.cpp b/common/viewer.cpp new file mode 100644 index 00000000000..e578c8e1cd7 --- /dev/null +++ b/common/viewer.cpp @@ -0,0 +1,2905 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#ifdef _MSC_VER +#ifndef NOMINMAX +#define NOMINMAX +#endif +#endif + +#include + +#include "viewer.h" +#include "os.h" + +#include "udev-rules.h" + +#include + +#include +#include + +#define ARCBALL_CAMERA_IMPLEMENTATION +#include + +namespace rs2 +{ + // Allocates a frameset from points and texture frames + frameset_allocator::frameset_allocator(viewer_model* viewer) : owner(viewer), + filter([this](frame f, frame_source& s) + { + std::vector frame_vec; + auto tex = owner->get_last_texture()->get_last_frame(true); + if (tex) + { + frame_vec.push_back(tex); + frame_vec.push_back(f); + auto frame = s.allocate_composite_frame(frame_vec); + if (frame) + s.frame_ready(std::move(frame)); + } + else + s.frame_ready(std::move(f)); + }) {} + + void viewer_model::render_pose(rs2::rect stream_rect, float buttons_heights) + { + int num_of_pose_buttons = 2; // trajectory, info + + // Draw selection buttons on the pose header, the buttons are global to all the streaming devices + ImGui::SetCursorPos({ stream_rect.w - 32 * num_of_pose_buttons - 5, buttons_heights }); + + bool color_icon = pose_info_object_button.is_pressed(); //draw trajectory is on - color the icon + if (color_icon) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + } + + // Draw info object button (is not synchronized with the info buttons in the 2D view) + if (ImGui::Button(pose_info_object_button.get_icon().c_str(), { 24, buttons_heights })) + { + show_pose_info_3d = !show_pose_info_3d; + pose_info_object_button.toggle_button(); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", pose_info_object_button.get_tooltip().c_str()); + } + if (color_icon) + { + ImGui::PopStyleColor(2); + } + + // Draw grid object button + ImGui::SameLine(); + + color_icon = trajectory_button.is_pressed(); //draw trajectory is on - color the icon + if (color_icon) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + } + if (ImGui::Button(trajectory_button.get_icon().c_str(), { 24, buttons_heights })) + { + trajectory_button.toggle_button(); + for (auto&& s : streams) + { + if (s.second.profile.stream_type() == RS2_STREAM_POSE) + streams[s.second.profile.unique_id()].dev->tm2.record_trajectory(trajectory_button.is_pressed()); + } + } + if (color_icon) + { + ImGui::PopStyleColor(2); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", trajectory_button.get_tooltip().c_str()); + } + + //ImGui::End(); + } + + // Need out of class declaration to take reference + const rs2_option save_to_ply::OPTION_IGNORE_COLOR; + const rs2_option save_to_ply::OPTION_PLY_MESH; + const rs2_option save_to_ply::OPTION_PLY_BINARY; + const rs2_option save_to_ply::OPTION_PLY_NORMALS; + + void viewer_model::set_export_popup(ImFont* large_font, ImFont* font, rect stream_rect, std::string& error_message, config_file& temp_cfg) + { + float w = 520; // hardcoded size to keep popup layout + float h = 325; + float x0 = stream_rect.x + stream_rect.w / 3; + float y0 = stream_rect.y + stream_rect.h / 3; + ImGui::SetNextWindowPos({ x0, y0 }); + ImGui::SetNextWindowSize({ w, h }); + + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings; + + ImGui_ScopePushFont(font); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(15, 15)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + + static export_type tab = export_type::ply; + if (ImGui::BeginPopupModal("Export", nullptr, flags)) + { + ImGui::SetCursorScreenPos({ (float)(x0), (float)(y0 + 30) }); + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushFont(large_font); + for (auto& exporter : exporters) + { + ImGui::PushStyleColor(ImGuiCol_Text, tab != exporter.first ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, tab != exporter.first ? light_grey : light_blue); + ImGui::SameLine(); + if (ImGui::Button(exporter.second.name.c_str(), { w / exporters.size() - 50, 30 })) + { + config_file::instance().set(configurations::viewer::settings_tab, tab); + temp_cfg.set(configurations::viewer::settings_tab, tab); + tab = exporter.first; + } + ImGui::PopStyleColor(2); + } + + ImGui::PopFont(); + if (tab == export_type::ply) + { + bool mesh = temp_cfg.get(configurations::ply::mesh); + bool use_normals = temp_cfg.get(configurations::ply::use_normals); + if (!mesh) use_normals = false; + int encoding = temp_cfg.get(configurations::ply::encoding); + + ImGui::PushStyleColor(ImGuiCol_Text, grey); + ImGui::Text("Polygon File Format defines a flexible systematic scheme for storing 3D data"); + ImGui::PopStyleColor(); + ImGui::NewLine(); + ImGui::SetCursorScreenPos({ (float)(x0 + 15), (float)(y0 + 90) }); + ImGui::Separator(); + if (ImGui::Checkbox("Meshing", &mesh)) + { + temp_cfg.set(configurations::ply::mesh, mesh); + } + ImGui::PushStyleColor(ImGuiCol_Text, grey); + ImGui::Text(" Use faces for meshing by connecting each group of 3 adjacent points"); + ImGui::PopStyleColor(); + ImGui::Separator(); + + if (!mesh) + { + ImGui::PushStyleVar(ImGuiStyleVar_Alpha, ImGui::GetStyle().Alpha * 0.5f); + ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, black); + ImGui::PushStyleColor(ImGuiCol_FrameBgActive, black); + } + if (ImGui::Checkbox("Normals", &use_normals)) + { + if (!mesh) + use_normals = false; + else + temp_cfg.set(configurations::ply::use_normals, use_normals); + } + if (!mesh) + { + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Enable meshing to allow vertex normals calculation"); + } + ImGui::PopStyleColor(2); + ImGui::PopStyleVar(); + } + + ImGui::PushStyleColor(ImGuiCol_Text, grey); + ImGui::Text(" Calculate vertex normals and add them to the PLY"); + ImGui::PopStyleColor(); + ImGui::Separator(); + + ImGui::Text("Encoding:"); + ImGui::PushStyleColor(ImGuiCol_Text, grey); + ImGui::Text("Save PLY as binary, or as a larger textual human-readable file"); + ImGui::PopStyleColor(); + if (ImGui::RadioButton("Textual", encoding == configurations::ply::textual)) + { + encoding = configurations::ply::textual; + temp_cfg.set(configurations::ply::encoding, encoding); + } + if (ImGui::RadioButton("Binary", encoding == configurations::ply::binary)) + { + encoding = configurations::ply::binary; + temp_cfg.set(configurations::ply::encoding, encoding); + } + + auto curr_exporter = exporters.find(tab); + if (curr_exporter == exporters.end()) // every tab should have a corresponding exporter + error_message = "Exporter not implemented"; + else + { + curr_exporter->second.options[rs2::save_to_ply::OPTION_PLY_MESH] = mesh; + curr_exporter->second.options[rs2::save_to_ply::OPTION_PLY_NORMALS] = use_normals; + curr_exporter->second.options[rs2::save_to_ply::OPTION_PLY_BINARY] = encoding; + } + } + + ImGui::PopStyleColor(2); // button color + + auto apply = [&]() { + config_file::instance() = temp_cfg; + update_configuration(); + }; + + ImGui::PushStyleColor(ImGuiCol_Button, button_color); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, button_color + 0.1f); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, button_color + 0.1f); + + ImGui::SetCursorScreenPos({ (float)(x0 + w / 2), (float)(y0 + h - 30) }); + + if (ImGui::Button("Export", ImVec2(120, 0))) + { + apply(); + if (!last_points) + error_message = "No depth data available"; + else + { + auto curr_exporter = exporters.find(tab); + if (curr_exporter == exporters.end()) // every tab should have a corresponding exporter + error_message = "Exporter not implemented"; + else if (auto ret = file_dialog_open(save_file, curr_exporter->second.filters.data(), NULL, NULL)) + { + auto model = ppf.get_points(); + frame tex; + if (selected_tex_source_uid >= 0 && streams.find(selected_tex_source_uid) != streams.end()) + { + tex = streams[selected_tex_source_uid].texture->get_last_frame(true); + if (tex) ppf.update_texture(tex); + } + + std::string fname(ret); + if (!ends_with(to_lower(fname), curr_exporter->second.extension)) fname += curr_exporter->second.extension; + + std::unique_ptr exporter; + if (tab == export_type::ply) + exporter = std::unique_ptr(new rs2::save_to_ply(fname)); + auto data = frameset_alloc.process(last_points); + + for (auto& option : curr_exporter->second.options) + { + exporter->set_option(option.first, option.second); + } + + export_frame(fname, std::move(exporter), not_model, data); + } + } + ImGui::CloseCurrentPopup(); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Save settings and export file"); + } + ImGui::SameLine(); + if (ImGui::Button("Cancel", ImVec2(120, 0))) + { + ImGui::CloseCurrentPopup(); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Close window without saving any changes to the settings"); + } + + ImGui::PopStyleColor(3); + ImGui::EndPopup(); + } + ImGui::PopStyleVar(2); + ImGui::PopStyleColor(3); + } + + // Get both font and large_font for the export pop-up + void viewer_model::show_3dviewer_header(ImFont* large_font, ImFont* font, rs2::rect stream_rect, bool& paused, std::string& error_message) + { + int combo_boxes = 0; + const float combo_box_width = 200; + + // Draw pose header if pose stream exists + bool pose_render = false; + + for (auto&& s : streams) + { + if (s.second.is_stream_visible() && + s.second.profile.stream_type() == RS2_STREAM_POSE) + { + pose_render = true; + break; + } + } + + // Initialize and prepare depth and texture sources + int selected_depth_source = -1; + std::vector depth_sources_str; + std::vector depth_sources; + int i = 0; + for (auto&& s : streams) + { + if (s.second.is_stream_visible() && + s.second.profile.stream_type() == RS2_STREAM_DEPTH) + { + if (selected_depth_source_uid == -1) + { + if (streams_origin.find(s.second.profile.unique_id()) != streams_origin.end() && + streams.find(streams_origin[s.second.profile.unique_id()]) != streams.end()) + { + selected_depth_source_uid = streams_origin[s.second.profile.unique_id()]; + } + } + if (streams_origin.find(s.second.profile.unique_id()) != streams_origin.end() && streams_origin[s.second.profile.unique_id()] == selected_depth_source_uid) + { + selected_depth_source = i; + } + + depth_sources.push_back(s.second.profile.unique_id()); + + auto dev_name = s.second.dev ? s.second.dev->dev.get_info(RS2_CAMERA_INFO_NAME) : "Unknown"; + auto stream_name = rs2_stream_to_string(s.second.profile.stream_type()); + + depth_sources_str.push_back(to_string() << dev_name << " " << stream_name); + + i++; + } + } + if (depth_sources_str.size() > 0 && allow_3d_source_change) combo_boxes++; + + int selected_tex_source = 0; + std::vector tex_sources_str; + std::vector tex_sources; + i = 0; + for (auto&& s : streams) + { + if (s.second.is_stream_visible() && + (s.second.profile.stream_type() == RS2_STREAM_COLOR || + s.second.profile.stream_type() == RS2_STREAM_INFRARED || + s.second.profile.stream_type() == RS2_STREAM_DEPTH || + s.second.profile.stream_type() == RS2_STREAM_FISHEYE)) + { + if (selected_tex_source_uid == -1 && selected_depth_source_uid != -1) + { + if (streams_origin.find(s.second.profile.unique_id()) != streams_origin.end() && + streams.find(streams_origin[s.second.profile.unique_id()]) != streams.end()) + { + selected_tex_source_uid = streams_origin[s.second.profile.unique_id()]; + } + } + if ((streams_origin.find(s.second.profile.unique_id()) != streams_origin.end() &&streams_origin[s.second.profile.unique_id()] == selected_tex_source_uid)) + { + selected_tex_source = i; + } + + // The texture source shall always refer to the raw (original) streams + tex_sources.push_back(streams_origin[s.second.profile.unique_id()]); + + auto dev_name = s.second.dev ? s.second.dev->dev.get_info(RS2_CAMERA_INFO_NAME) : "Unknown"; + std::string stream_name = rs2_stream_to_string(s.second.profile.stream_type()); + if (s.second.profile.stream_index()) + stream_name += "_" + std::to_string(s.second.profile.stream_index()); + tex_sources_str.push_back(to_string() << dev_name << " " << stream_name); + + i++; + } + } + + if (tex_sources_str.size() && depth_sources_str.size()) + { + combo_boxes++; + if(streams.find(selected_tex_source_uid)!= streams.end()) + if (RS2_STREAM_COLOR == streams[selected_tex_source_uid].profile.stream_type()) + combo_boxes++; + } + + auto top_bar_height = 32.f; + const auto buttons_heights = top_bar_height; + const auto num_of_buttons = 5; + + if (num_of_buttons * 40 + combo_boxes * (combo_box_width + 100) > stream_rect.w || pose_render) + top_bar_height = 2 * top_bar_height; + + ImGui::PushFont(font); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); + + std::string label = to_string() << "header of 3dviewer"; + + ImGui::GetWindowDrawList()->AddRectFilled({ stream_rect.x, stream_rect.y }, + { stream_rect.x + stream_rect.w, stream_rect.y + top_bar_height }, ImColor(sensor_bg)); + + if (depth_sources_str.size() > 0 && allow_3d_source_change) + { + ImGui::SetCursorPos({ 7, 7 }); + ImGui::Text("Depth Source:"); ImGui::SameLine(); + + ImGui::SetCursorPosY(7); + ImGui::PushItemWidth(combo_box_width); + draw_combo_box("##Depth Source", depth_sources_str, selected_depth_source); + i = 0; + for (auto&& s : streams) + { + if (s.second.is_stream_visible() && + s.second.texture->get_last_frame() && + s.second.profile.stream_type() == RS2_STREAM_DEPTH) + { + if (i == selected_depth_source) + { + selected_depth_source_uid = streams_origin[s.second.profile.unique_id()]; + } + i++; + } + } + + ImGui::PopItemWidth(); + + if (buttons_heights == top_bar_height) ImGui::SameLine(); + } + + if (!allow_3d_source_change) ImGui::SetCursorPos({ 7, 7 }); + + // Only allow to change texture if we have something to put it on: + if (tex_sources_str.size() && depth_sources_str.size()) + { + if (buttons_heights == top_bar_height) ImGui::SetCursorPosY(7); + else ImGui::SetCursorPos({ 7, buttons_heights + 7 }); + + ImGui::Text("Texture Source:"); ImGui::SameLine(); + + if (buttons_heights == top_bar_height) ImGui::SetCursorPosY(7); + else ImGui::SetCursorPosY(buttons_heights + 7); + + ImGui::PushItemWidth(combo_box_width); + draw_combo_box("##Tex Source", tex_sources_str, selected_tex_source); + if (streams.find(tex_sources[selected_tex_source]) != streams.end()) + selected_tex_source_uid = tex_sources[selected_tex_source]; + + ImGui::PopItemWidth(); + + ImGui::SameLine(); + + // Occlusion control for RGB UV-Map uses option's description as label + // Position is dynamically adjusted to avoid overlapping on resize + if (streams.find(selected_tex_source_uid) != streams.end()) + if (RS2_STREAM_COLOR==streams[selected_tex_source_uid].profile.stream_type()) + { + ImGui::PushItemWidth(combo_box_width); + ppf.get_pc_model()->get_option(rs2_option::RS2_OPTION_FILTER_MAGNITUDE).draw(error_message, + not_model, stream_rect.w < 1000, false); + ImGui::PopItemWidth(); + } + } + + ImGui::SetCursorPos({ stream_rect.w - 32 * num_of_buttons - 5, 0 }); + + if (paused) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + label = to_string() << textual_icons::play << "##Resume 3d"; + if (ImGui::Button(label.c_str(), { 24, buttons_heights })) + { + paused = false; + for (auto&& s : streams) + { + if (s.second.dev) s.second.dev->resume(); + } + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Resume All"); + } + ImGui::PopStyleColor(2); + } + else + { + label = to_string() << textual_icons::pause << "##Pause 3d"; + if (ImGui::Button(label.c_str(), { 24, buttons_heights })) + { + paused = true; + for (auto&& s : streams) + { + if (s.second.dev) s.second.dev->pause(); + } + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Pause All"); + } + } + + static config_file temp_cfg; + set_export_popup(large_font, font, stream_rect, error_message, temp_cfg); + + ImGui::SameLine(); + if (ImGui::Button(textual_icons::floppy, { 24, buttons_heights })) + { + temp_cfg = config_file::instance(); + ImGui::OpenPopup("Export"); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Export 3D model to PLY format"); + + ImGui::SameLine(); + + if (ImGui::Button(textual_icons::refresh, { 24, buttons_heights })) + { + reset_camera(); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Reset View"); + + ImGui::SameLine(); + + if (render_quads) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + label = to_string() << textual_icons::cubes << "##Render Quads"; + if (ImGui::Button(label.c_str(), { 24, buttons_heights })) + { + render_quads = false; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Render Quads"); + } + ImGui::PopStyleColor(2); + } + else + { + label = to_string() << textual_icons::cubes << "##Render Points"; + if (ImGui::Button(label.c_str(), { 24, buttons_heights })) + { + render_quads = true; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Render Points"); + } + } + ImGui::SameLine(); + + if (support_non_syncronized_mode) + { + if (synchronization_enable) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + if (ImGui::Button(textual_icons::lock, { 24, buttons_heights })) + { + synchronization_enable = false; + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Disable syncronization between the pointcloud and the texture"); + ImGui::PopStyleColor(2); + } + else + { + if (ImGui::Button(textual_icons::unlock, { 24, buttons_heights })) + { + synchronization_enable = true; + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Keep the pointcloud and the texture sycronized"); + } + } + + + //ImGui::End(); + + if (pose_render) + { + render_pose(stream_rect, buttons_heights); + } + + auto total_top_bar_height = top_bar_height * (1 + pose_render); // may include single bar or additional bar for pose + ImGui::PopStyleColor(5); + + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleColor(ImGuiCol_Button, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, header_window_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, header_window_bg); + + auto old_pos = ImGui::GetCursorScreenPos(); + ImVec2 pos { stream_rect.x + stream_rect.w - 215, stream_rect.y + total_top_bar_height + 5 }; + ImGui::SetCursorScreenPos(pos); + ImGui::GetWindowDrawList()->AddRectFilled(pos, { pos.x + 260, pos.y + 65 }, ImColor(dark_sensor_bg)); + + ImGui::SetCursorScreenPos({ pos.x + 5, pos.y + 2 }); + ImGui::Text("Rotate:"); + ImGui::SetCursorScreenPos({ pos.x + 5, pos.y + 22 }); + ImGui::Text("Pan:"); + ImGui::SetCursorScreenPos({ pos.x + 5, pos.y + 42 }); + ImGui::Text("Zoom:"); + + ImGui::SetCursorScreenPos({ pos.x + 65, pos.y + 2 }); + ImGui::Text("Left Mouse Button"); + ImGui::SetCursorScreenPos({ pos.x + 65, pos.y + 22 }); + ImGui::Text("Middle Mouse Button"); + ImGui::SetCursorScreenPos({ pos.x + 65, pos.y + 42 }); + ImGui::Text("Mouse Wheel"); + + ImGui::SetCursorScreenPos(old_pos); + ImGui::PopStyleColor(5); + + + ImGui::PopFont(); + } + + void viewer_model::check_permissions() + { +#ifdef __linux__ + + if (directory_exists("/etc/udev/rules.d") || directory_exists("/lib/udev/rules.d/")) + { + const std::string udev_rules_man("/etc/udev/rules.d/99-realsense-libusb.rules"); + const std::string udev_rules_deb("/lib/udev/rules.d/60-librealsense2-udev-rules.rules"); + std::ifstream f_man(udev_rules_man); + std::ifstream f_deb(udev_rules_deb); + + std::string message = "UDEV-Rules permissions configuration \n for RealSense devices.`\n" + "Missing/outdated UDEV-Rules will cause 'Permissions Denied' errors\nunless the application is running under 'sudo' (not recommended)\n" + "In case of Debians use: \n" + "sudo apt-get upgrade/install librealsense2-udev-rules\n" + "To manually install UDEV-Rules in terminal run:\n" + "$ sudo cp ~/.99-realsense-libusb.rules /etc/udev/rules.d/99-realsense-libusb.rules && sudo udevadm control --reload-rules && udevadm trigger\n"; + + bool create_file = false; + + if(!(f_man.good() || f_deb.good())) + { + message = "RealSense UDEV-Rules are missing!\n" + message; + not_model.add_notification({ message, + RS2_LOG_SEVERITY_WARN, + RS2_NOTIFICATION_CATEGORY_COUNT }); + create_file = true; + } + else + { + std::ifstream f; + std::string udev_fname; + if(f_man.good()) + { + if (f_deb.good()) + { + std::string duplicates = "Multiple realsense udev-rules were found! :\n1:" + udev_rules_man + + "\n2: " + udev_rules_deb+ "\nMake sure to remove redundancies!"; + not_model.add_notification({ duplicates, + RS2_LOG_SEVERITY_WARN, + RS2_NOTIFICATION_CATEGORY_COUNT }); + } + f.swap(f_man); + udev_fname = udev_rules_man; + create_file = true; + } + else + { + f.swap(f_deb); + udev_fname = udev_rules_deb; + } + + std::string str((std::istreambuf_iterator(f)), + std::istreambuf_iterator()); + + std::string udev = realsense_udev_rules; + udev.erase(udev.find_last_of("\n") + 1); + + if (udev != str) + { + message = "RealSense UDEV-Rules file:\n " + udev_fname +"\n is not up-to date!\n" + message; + not_model.add_notification({ + message, + RS2_LOG_SEVERITY_WARN, + RS2_NOTIFICATION_CATEGORY_COUNT }); + } + } + + if (create_file) + { + std::string tmp_filename = to_string() << get_folder_path(special_folder::app_data) << "/.99-realsense-libusb.rules"; + + std::ofstream out(tmp_filename.c_str()); + out << realsense_udev_rules; + out.close(); + } + } + +#endif + } + + void viewer_model::update_configuration() + { + rs2_error* e = nullptr; + auto version = rs2_get_api_version(&e); + if (e) rs2::error::handle(e); + + int saved_version = config_file::instance().get_or_default( + configurations::viewer::sdk_version, 0); + + // Great the user once upon upgrading to a new version + if (version > saved_version) + { + auto n = std::make_shared(version); + not_model.add_notification(n); + + config_file::instance().set(configurations::viewer::sdk_version, version); + } + + continue_with_ui_not_aligned = config_file::instance().get_or_default( + configurations::viewer::continue_with_ui_not_aligned, false); + + continue_with_current_fw = config_file::instance().get_or_default( + configurations::viewer::continue_with_current_fw, false); + + is_3d_view = config_file::instance().get_or_default( + configurations::viewer::is_3d_view, false); + + metric_system = config_file::instance().get_or_default( + configurations::viewer::metric_system, true); + + auto min_severity = (rs2_log_severity)config_file::instance().get_or_default( + configurations::viewer::log_severity, 2); + + if (config_file::instance().get_or_default( + configurations::viewer::log_to_console, false)) + { + rs2::log_to_console(min_severity); + } + if (config_file::instance().get_or_default( + configurations::viewer::log_to_file, false)) + { + std::string filename = config_file::instance().get( + configurations::viewer::log_filename); + + rs2::log_to_file(min_severity, filename.c_str()); + } + } + + viewer_model::viewer_model(context &ctx_) + : ppf(*this), + ctx(ctx_), + synchronization_enable(true), + zo_sensors(0), + frameset_alloc(this) + { + syncer = std::make_shared(); + reset_camera(); + rs2_error* e = nullptr; + not_model.add_log(to_string() << "librealsense version: " << api_version_to_string(rs2_get_api_version(&e)) << "\n"); + + update_configuration(); + + check_permissions(); + export_model exp_model = export_model::make_exporter("PLY", ".ply", "Polygon File Format (PLY)\0*.ply\0"); + exporters.insert(std::pair(export_type::ply, exp_model)); + } + + void viewer_model::gc_streams() + { + std::lock_guard lock(streams_mutex); + std::vector streams_to_remove; + for (auto&& kvp : streams) + { + if (!kvp.second.is_stream_visible() && + (!kvp.second.dev || (!kvp.second.dev->is_paused() && !kvp.second.dev->streaming))) + { + if (kvp.first == selected_depth_source_uid) + { + ppf.depth_stream_active = false; + } + streams_to_remove.push_back(kvp.first); + } + } + for (auto&& i : streams_to_remove) { + if(selected_depth_source_uid == i) + selected_depth_source_uid = -1; + if(selected_tex_source_uid == i) + selected_tex_source_uid = -1; + streams.erase(i); + + if(ppf.frames_queue.find(i) != ppf.frames_queue.end()) + { + ppf.frames_queue.erase(i); + } + } + } + + void viewer_model::show_event_log(ImFont* font_14, float x, float y, float w, float h) + { + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysVerticalScrollbar; + + ImGui::PushFont(font_14); + ImGui::SetNextWindowPos({ x, y }); + ImGui::SetNextWindowSize({ w, h }); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); + + is_output_collapsed = ImGui::Begin("Output", nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_ShowBorders); + + int i = 0; + not_model.foreach_log([&](const std::string& line) { + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_blue); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + + auto rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x + 10, rc.y + 4 }); + + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::Icon(textual_icons::minus); ImGui::SameLine(); + ImGui::PopStyleColor(); + + rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x, rc.y - 4 }); + + std::string label = to_string() << "##log_entry" << i++; + ImGui::InputTextEx(label.c_str(), + (char*)line.data(), + static_cast(line.size() + 1), + ImVec2(-1, ImGui::GetTextLineHeight() * 1.5f * float(std::max(1,(int)std::count(line.begin(),line.end(), '\n')))), + ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(2); + + rc = ImGui::GetCursorPos(); + ImGui::SetCursorPos({ rc.x, rc.y - 6 }); + }); + + ImGui::End(); + ImGui::PopStyleVar(); + ImGui::PopFont(); + } + + void rs2::viewer_model::show_popup(const ux_window& window, const popup& p) + { + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | + ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_AlwaysVerticalScrollbar; + + auto font_14 = window.get_font(); + + ImGui_ScopePushFont(font_14); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(10, 10)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + + ImGui::SetNextWindowSize({520, 180}); + + ImGui::OpenPopup(p.header.c_str()); + + if (ImGui::BeginPopupModal(p.header.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize)) + { + ImGui::PushStyleColor(ImGuiCol_Button, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, transparent); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, transparent); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + p.custom_command(); + + ImGui::EndPopup(); + } + + ImGui::PopStyleColor(3); + ImGui::PopStyleVar(2); + } + + void viewer_model::popup_if_error(const ux_window& window, std::string& message) + { + if (message == "") + return; + + // The list of errors the user asked not to show again: + static std::set errors_not_to_show; + static bool dont_show_this_error = false; + auto simplify_error_message = [](const std::string& s) { + std::regex e("\\b(0x)([^ ,]*)"); + return std::regex_replace(s, e, "address"); + }; + + auto it = std::find_if(_active_popups.begin(), _active_popups.end(), [&](const popup& p) { return message == p.message; }); + if (it != _active_popups.end()) + return; + + auto simplified_error_message = simplify_error_message(message); + if (errors_not_to_show.count(simplified_error_message)) + { + not_model.add_notification({ message, + RS2_LOG_SEVERITY_ERROR, + RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR }); + return; + } + + std::string header = std::string(textual_icons::exclamation_triangle) + " Oops, something went wrong!"; + + auto custom_command = [&]() + { + auto msg = _active_popups.front().message; + ImGui::Text("RealSense error calling:"); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, regular_blue); + ImGui::InputTextMultiline("##error", const_cast(msg.c_str()), + msg.size() + 1, { 500,95 }, ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_ReadOnly); + ImGui::PopStyleColor(); + + //ImGui::SetCursorPos({ 10, 130 }); + ImGui::PopStyleColor(5); + + if (ImGui::Button("OK", ImVec2(120, 0))) + { + if (dont_show_this_error) + { + errors_not_to_show.insert(simplify_error_message(msg)); + } + ImGui::CloseCurrentPopup(); + _active_popups.erase(_active_popups.begin()); + dont_show_this_error = false; + } + + ImGui::SameLine(); + ImGui::Checkbox("Don't show this error again", &dont_show_this_error); + }; + + popup p = {header, message, custom_command }; + _active_popups.push_back(p); + } + + std::vector read_fw_file(std::string file_path) + { + std::vector rv; + + std::ifstream file(file_path, std::ios::in | std::ios::binary | std::ios::ate); + if (file.is_open()) + { + rv.resize(file.tellg()); + + file.seekg(0, std::ios::beg); + file.read((char*)rv.data(), rv.size()); + file.close(); + } + + return rv; + } + + void rs2::viewer_model::popup_firmware_update_progress(const ux_window& window, const float progress) + { + std::string header = "Firmware update in progress"; + std::stringstream message; + message << std::endl << "Progress: " << (int)(progress * 100.0) << " [%]"; + + auto custom_command = [&]() + { + ImGui::SetCursorPos({ 10, 100 }); + ImGui::PopStyleColor(5); + + + ImGui::ProgressBar(progress, { 300 , 25 }, "Firmware update"); + }; + + popup p = { header, message.str(), custom_command }; + _active_popups.push_back(p); + } + + void viewer_model::show_icon(ImFont* font_18, const char* label_str, const char* text, int x, int y, int id, + const ImVec4& text_color, const std::string& tooltip) + { + ImGui_ScopePushFont(font_18); + + std::string label = to_string() << label_str << id; + + ImGui::SetCursorScreenPos({(float)x, (float)y}); + ImGui::PushStyleColor(ImGuiCol_Text, text_color); + ImGui::Text("%s", text); + ImGui::PopStyleColor(); + if (ImGui::IsItemHovered() && tooltip != "") + ImGui::SetTooltip("%s", tooltip.c_str()); + + } + void viewer_model::show_paused_icon(ImFont* font_18, int x, int y, int id) + { + show_icon(font_18, "paused_icon", textual_icons::pause, x, y, id, white); + } + void viewer_model::show_recording_icon(ImFont* font_18, int x, int y, int id, float alpha_delta) + { + show_icon(font_18, "recording_icon", textual_icons::circle, x, y, id, from_rgba(255, 46, 54, static_cast(alpha_delta * 255))); + } + + void viewer_model::show_no_stream_overlay(ImFont* font_18, int min_x, int min_y, int max_x, int max_y) + { + ImGui::PushFont(font_18); + + auto pos = ImGui::GetCursorScreenPos(); + ImGui::SetCursorScreenPos({ (min_x + max_x) / 2.f - 150, (min_y + max_y) / 2.f - 20 }); + + ImGui::PushStyleColor(ImGuiCol_Text, sensor_header_light_blue); + std::string text = to_string() << "Nothing is streaming! Toggle " << textual_icons::toggle_off << " to start"; + ImGui::Text("%s", text.c_str()); + ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos(pos); + + ImGui::PopFont(); + } + + void viewer_model::show_rendering_not_supported(ImFont* font_18, int min_x, int min_y, int max_x, int max_y, rs2_format format) + { + static periodic_timer update_string(std::chrono::milliseconds(200)); + static int counter = 0; + static std::string to_print; + auto pos = ImGui::GetCursorScreenPos(); + + ImGui::PushFont(font_18); + ImGui::SetCursorScreenPos({ min_x + max_x / 2.f - 210, min_y + max_y / 2.f - 20 }); + ImGui::PushStyleColor(ImGuiCol_Text, yellowish); + std::string text = to_string() << textual_icons::exclamation_triangle; + ImGui::Text("%s", text.c_str()); + ImGui::SetCursorScreenPos({ min_x + max_x / 2.f - 180, min_y + max_y / 2.f - 20 }); + text = to_string() << " The requested format " << format << " is not supported for rendering "; + + if (update_string) + { + to_print.clear(); + for (int i = 0; i < text.size(); i++) + to_print += text[(i + counter) % text.size()]; + counter++; + } + + ImGui::Text("%s", to_print.c_str()); + ImGui::PopStyleColor(); + + ImGui::SetCursorScreenPos(pos); + + ImGui::PopFont(); + } + + void viewer_model::show_no_device_overlay(ImFont* font_18, int x, int y) + { + auto pos = ImGui::GetCursorScreenPos(); + ImGui::SetCursorScreenPos({ float(x), float(y) }); + + ImGui::PushFont(font_18); + ImGui::PushStyleColor(ImGuiCol_Text, from_rgba(0x70, 0x8f, 0xa8, 0xff)); + ImGui::Text("Connect a RealSense Camera\nor Add Source"); + ImGui::PopStyleColor(); + ImGui::PopFont(); + + ImGui::SetCursorScreenPos(pos); + } + + // Generate streams layout, creates a grid-like layout with factor amount of columns + std::map generate_layout(const rect& r, + int top_bar_height, size_t factor, + const std::set& active_streams, + std::map& stream_index + ) + { + std::map results; + if (factor == 0) return results; + + // Calc the number of rows + auto complement = ceil((float)active_streams.size() / factor); + + auto cell_width = static_cast(r.w / factor); + auto cell_height = static_cast(r.h / complement); + + auto it = active_streams.begin(); + for (auto x = 0; x < factor; x++) + { + for (auto y = 0; y < complement; y++) + { + // There might be spare boxes at the end (3 streams in 2x2 array for example) + if (it == active_streams.end()) break; + + rect rxy = { r.x + x * cell_width, r.y + y * cell_height + top_bar_height, + cell_width, cell_height - top_bar_height }; + // Generate box to display the stream in + results[stream_index[*it]] = rxy.adjust_ratio((*it)->size); + ++it; + } + } + + return results; + } + + // Return the total display area of the layout + // The bigger it is, the more details we can see + float evaluate_layout(const std::map& l) + { + float res = 0.f; + for (auto&& kvp : l) res += kvp.second.area(); + return res; + } + + std::map viewer_model::calc_layout(const rect& r) + { + const int top_bar_height = 32; + + std::set active_streams; + std::map stream_index; + for (auto&& stream : streams) + { + if (stream.second.is_stream_visible()) + { + active_streams.insert(&stream.second); + stream_index[&stream.second] = stream.first; + } + } + + if (fullscreen) + { + if (active_streams.count(selected_stream) == 0) fullscreen = false; + } + + std::map results; + + if (fullscreen) + { + results[stream_index[selected_stream]] = { r.x, r.y + top_bar_height, + r.w, r.h - top_bar_height }; + } + else + { + // Go over all available fx(something) layouts + for (size_t f = 1; f <= active_streams.size(); f++) + { + auto l = generate_layout(r, top_bar_height, f, + active_streams, stream_index); + + // Keep the "best" layout in result + if (evaluate_layout(l) > evaluate_layout(results)) + results = l; + } + } + + return get_interpolated_layout(results); + } + + rs2::frame viewer_model::handle_ready_frames(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message) + { + std::shared_ptr texture_frame = nullptr; + points p; + frame f{}; + + std::map last_frames; + try + { + size_t index = 0; + while (ppf.resulting_queue.poll_for_frame(&f) && ++index < ppf.resulting_queue_max_size) + { + last_frames[f.get_profile().unique_id()] = f; + } + + for(auto&& frame : last_frames) + { + auto f = frame.second; + frameset frames; + if ((frames = f.as())) + { + for (auto&& frame : frames) + { + if (frame.is() && !paused) // find and store the 3d points frame for later use + { + p = frame.as(); + continue; + } + + if (frame.is()) // Aggregate the trajectory in pause mode to make the path consistent + { + auto dev = streams[frame.get_profile().unique_id()].dev; + if (dev) + { + dev->tm2.update_model_trajectory(frame.as(), !paused); + } + } + + auto texture = upload_frame(std::move(frame)); + + if ((selected_tex_source_uid == -1 && frame.get_profile().format() == RS2_FORMAT_Z16) || + (frame.get_profile().format() != RS2_FORMAT_ANY && is_3d_texture_source(frame))) + { + texture_frame = texture; + } + } + } + else if (!p) + { + upload_frame(std::move(f)); + } + } + } + catch (const error& ex) + { + error_message = error_to_string(ex); + } + catch (const std::exception& ex) + { + error_message = ex.what(); + } + + + gc_streams(); + + window.begin_viewport(); + + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove + | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar + | ImGuiWindowFlags_NoSavedSettings + | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse; + + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 5, 5 }); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0); + + ImGui::SetNextWindowPos({ viewer_rect.x, viewer_rect.y }); + ImGui::SetNextWindowSize({ viewer_rect.w, viewer_rect.h }); + + ImGui::Begin("Viewport", nullptr, { viewer_rect.w, viewer_rect.h }, 0.f, flags); + + draw_viewport(viewer_rect, window, devices, error_message, texture_frame, p); + + not_model.draw(window, + static_cast(window.width()), static_cast(window.height()), + error_message); + + popup_if_error(window, error_message); + + if (!_active_popups.empty()) + show_popup(window, _active_popups.front()); + + ImGui::End(); + ImGui::PopStyleVar(2); + + error_message = ""; + + return f; + } + + void viewer_model::reset_camera(float3 p) + { + target = { 0.0f, 0.0f, 0.0f }; + pos = p; + + // initialize "up" to be tangent to the sphere! + // up = cross(cross(look, world_up), look) + { + float3 look = { target.x - pos.x, target.y - pos.y, target.z - pos.z }; + look = look.normalize(); + + float world_up[3] = { 0.0f, 1.0f, 0.0f }; + + float across[3] = { + look.y * world_up[2] - look.z * world_up[1], + look.z * world_up[0] - look.x * world_up[2], + look.x * world_up[1] - look.y * world_up[0], + }; + + up.x = across[1] * look.z - across[2] * look.y; + up.y = across[2] * look.x - across[0] * look.z; + up.z = across[0] * look.y - across[1] * look.x; + + float up_len = up.length(); + up.x /= -up_len; + up.y /= -up_len; + up.z /= -up_len; + } + } + + void viewer_model::draw_color_ruler(const mouse_info& mouse, + const stream_model& s_model, + const rect& stream_rect, + std::vector rgb_per_distance_vec, + float ruler_length, + const std::string& ruler_units) + { + if (rgb_per_distance_vec.empty() || (ruler_length <= 0.f)) + return; + + ruler_length = std::ceil(ruler_length); + std::sort(rgb_per_distance_vec.begin(), rgb_per_distance_vec.end(), [](const rgb_per_distance& a, + const rgb_per_distance& b) { + return a.depth_val < b.depth_val; + }); + + const auto stream_height = stream_rect.y + stream_rect.h; + const auto stream_width = stream_rect.x + stream_rect.w; + + static const auto ruler_distance_offset = 10; + auto bottom_y_ruler = stream_height - ruler_distance_offset; + if (s_model.texture->zoom_preview) + { + bottom_y_ruler = s_model.texture->curr_preview_rect.y - ruler_distance_offset; + } + + static const auto top_y_offset = 50; + auto top_y_ruler = stream_rect.y + top_y_offset; + if (s_model.show_stream_details) + { + top_y_ruler = s_model.curr_info_rect.y + s_model.curr_info_rect.h + ruler_distance_offset; + } + + static const auto left_x_colored_ruler_offset = 50; + static const auto colored_ruler_width = 20; + const auto left_x_colored_ruler = stream_width - left_x_colored_ruler_offset; + const auto right_x_colored_ruler = stream_width - (left_x_colored_ruler_offset - colored_ruler_width); + const auto first_rgb = rgb_per_distance_vec.begin()->rgb_val; + assert((bottom_y_ruler - top_y_ruler) != 0.f); + const auto ratio = (bottom_y_ruler - top_y_ruler) / ruler_length; + + // Draw numbered ruler + float y_ruler_val = top_y_ruler; + static const auto numbered_ruler_width = 20.f; + const auto numbered_ruler_height = bottom_y_ruler - top_y_ruler; + + const auto right_x_numbered_ruler = right_x_colored_ruler + numbered_ruler_width; + static const auto hovered_numbered_ruler_opac = 0.8f; + static const auto unhovered_numbered_ruler_opac = 0.6f; + float colored_ruler_opac = unhovered_numbered_ruler_opac; + float numbered_ruler_background_opac = unhovered_numbered_ruler_opac; + bool is_ruler_hovered = false; + if (mouse.cursor.x >= left_x_colored_ruler && + mouse.cursor.x <= right_x_numbered_ruler && + mouse.cursor.y >= top_y_ruler && + mouse.cursor.y <= bottom_y_ruler) + is_ruler_hovered = true; + + if (is_ruler_hovered) + { + std::stringstream ss; + auto relative_mouse_y = ImGui::GetMousePos().y - top_y_ruler; + auto y = (bottom_y_ruler - top_y_ruler) - relative_mouse_y; + ss << std::fixed << std::setprecision(2) << (y / ratio) << ruler_units; + ImGui::SetTooltip("%s", ss.str().c_str()); + colored_ruler_opac = 1.f; + numbered_ruler_background_opac = hovered_numbered_ruler_opac; + } + + // Draw a background to the numbered ruler + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glColor4f(0.0, 0.0, 0.0, numbered_ruler_background_opac); + glBegin(GL_POLYGON); + glVertex2f(right_x_colored_ruler, top_y_ruler); + glVertex2f(right_x_numbered_ruler , top_y_ruler); + glVertex2f(right_x_numbered_ruler , bottom_y_ruler); + glVertex2f(right_x_colored_ruler, bottom_y_ruler); + glEnd(); + + + const float x_ruler_val = right_x_colored_ruler + 4.0f; + ImGui::SetCursorScreenPos({ x_ruler_val, y_ruler_val }); + const auto font_size = ImGui::GetFontSize(); + ImGui::TextUnformatted(std::to_string(static_cast(ruler_length)).c_str()); + const auto skip_numbers = ((ruler_length / 10.f) - 1.f); + auto to_skip = (skip_numbers < 0.f)?0.f: skip_numbers; + for (int i = static_cast(ruler_length - 1); i > 0; --i) + { + y_ruler_val += ((bottom_y_ruler - top_y_ruler) / ruler_length); + ImGui::SetCursorScreenPos({ x_ruler_val, y_ruler_val - font_size / 2 }); + if (((to_skip--) > 0)) + continue; + + ImGui::TextUnformatted(std::to_string(i).c_str()); + to_skip = skip_numbers; + } + y_ruler_val += ((bottom_y_ruler - top_y_ruler) / ruler_length); + ImGui::SetCursorScreenPos({ x_ruler_val, y_ruler_val - font_size }); + ImGui::Text("0"); + + auto total_depth_scale = rgb_per_distance_vec.back().depth_val - rgb_per_distance_vec.front().depth_val; + static const auto sensitivity_factor = 0.01f; + auto sensitivity = sensitivity_factor * total_depth_scale; + + // Draw colored ruler + auto last_y = bottom_y_ruler; + auto last_depth_value = 0.f; + size_t last_index = 0; + for (size_t i = 1; i < rgb_per_distance_vec.size(); ++i) + { + auto curr_depth = rgb_per_distance_vec[i].depth_val; + if ((((curr_depth - last_depth_value) < sensitivity) && (i != rgb_per_distance_vec.size() - 1))) + continue; + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBegin(GL_QUADS); + glColor4f(rgb_per_distance_vec[last_index].rgb_val.r / 255.f, + rgb_per_distance_vec[last_index].rgb_val.g / 255.f, + rgb_per_distance_vec[last_index].rgb_val.b / 255.f, + colored_ruler_opac); + glVertex2f(left_x_colored_ruler, last_y); + glVertex2f(right_x_colored_ruler, last_y); + + last_depth_value = curr_depth; + last_index = i; + + auto y = bottom_y_ruler - ((rgb_per_distance_vec[i].depth_val) * ratio); + if ((i == (rgb_per_distance_vec.size() - 1)) || (std::ceil(curr_depth) > ruler_length)) + y = top_y_ruler; + + glColor4f(rgb_per_distance_vec[i].rgb_val.r / 255.f, + rgb_per_distance_vec[i].rgb_val.g / 255.f, + rgb_per_distance_vec[i].rgb_val.b / 255.f, + colored_ruler_opac); + + glVertex2f(right_x_colored_ruler, y); + glVertex2f(left_x_colored_ruler, y); + last_y = y; + glEnd(); + } + + // Draw ruler border + static const auto top_line_offset = 0.5f; + static const auto right_line_offset = top_line_offset / 2; + glColor4f(0.0, 0.0, 0.0, colored_ruler_opac); + glBegin(GL_LINE_LOOP); + glVertex2f(left_x_colored_ruler - top_line_offset, top_y_ruler - top_line_offset); + glVertex2f(right_x_numbered_ruler + right_line_offset / 2, top_y_ruler - top_line_offset); + glVertex2f(right_x_numbered_ruler + right_line_offset / 2, bottom_y_ruler + top_line_offset); + glVertex2f(left_x_colored_ruler - top_line_offset, bottom_y_ruler + top_line_offset); + glEnd(); + } + + float viewer_model::calculate_ruler_max_distance(const std::vector& distances) const + { + assert(!distances.empty()); + + float mean = std::accumulate(distances.begin(), + distances.end(), 0.0f) / distances.size(); + + float e = 0; + float inverse = 1.f / distances.size(); + for (auto elem : distances) + { + e += pow(elem - mean, 2); + } + + auto standard_deviation = sqrt(inverse * e); + static const auto length_jump = 4.f; + return std::ceil((mean + 1.5f * standard_deviation) / length_jump) * length_jump; + } + + void viewer_model::render_2d_view(const rect& view_rect, + ux_window& win, int output_height, + ImFont *font1, ImFont *font2, size_t dev_model_num, + const mouse_info &mouse, std::string& error_message) + { + static periodic_timer every_sec(std::chrono::seconds(1)); + static bool icon_visible = false; + if (every_sec) icon_visible = !icon_visible; + float alpha = icon_visible ? 1.f : 0.2f; + + glViewport(0, 0, + static_cast(win.framebuf_width()), static_cast(win.framebuf_height())); + glLoadIdentity(); + glOrtho(0, win.width(), win.height(), 0, -1, +1); + + auto layout = calc_layout(view_rect); + + if ((layout.size() == 0) && (dev_model_num > 0)) + { + show_no_stream_overlay(font2, static_cast(view_rect.x), static_cast(view_rect.y), static_cast(win.width()), static_cast(win.height() - output_height)); + } + + for (auto &&kvp : layout) + { + auto&& view_rect = kvp.second; + auto stream = kvp.first; + auto&& stream_mv = streams[stream]; + auto&& stream_size = stream_mv.size; + auto stream_rect = view_rect.adjust_ratio(stream_size).grow(-3); + + stream_mv.show_frame(stream_rect, mouse, error_message); + + auto p = stream_mv.dev->dev.as(); + float posX = stream_rect.x + 9; + float posY = stream_rect.y - 26; + + if (!stream_mv.is_stream_alive()) + { + std::string message = to_string() << textual_icons::exclamation_triangle << " No Frames Received!"; + show_icon(font2, "warning_icon", message.c_str(), + static_cast(stream_rect.center().x - 100), + static_cast(stream_rect.center().y - 25), + stream_mv.profile.unique_id(), + blend(dark_red, alpha), + "Did not receive frames from the platform within a reasonable time window,\nplease try reducing the FPS or the resolution"); + } + + stream_mv.show_stream_header(font1, stream_rect, *this); + stream_mv.show_stream_footer(font1, stream_rect, mouse, *this); + + if (val_in_range(stream_mv.profile.format(), { RS2_FORMAT_RAW10 , RS2_FORMAT_RAW16, RS2_FORMAT_MJPEG })) + { + show_rendering_not_supported(font2, static_cast(stream_rect.x), static_cast(stream_rect.y), static_cast(stream_rect.w), + static_cast(stream_rect.h), stream_mv.profile.format()); + } + + if (stream_mv.dev->_is_being_recorded) + { + show_recording_icon(font2, static_cast(posX), static_cast(posY), stream_mv.profile.unique_id(), alpha); + posX += 23; + } + if (stream_mv.dev->is_paused() || (p && p.current_status() == RS2_PLAYBACK_STATUS_PAUSED)) + show_paused_icon(font2, static_cast(posX), static_cast(posY), stream_mv.profile.unique_id()); + + auto stream_type = stream_mv.profile.stream_type(); + + if (streams[stream].is_stream_visible()) + switch (stream_type) + { + { + case RS2_STREAM_GYRO: /* Fall Through */ + case RS2_STREAM_ACCEL: + { + auto motion = streams[stream].texture->get_last_frame().as(); + if (motion.get()) + { + auto axis = motion.get_motion_data(); + stream_mv.show_stream_imu(font1, stream_rect, axis, mouse); + } + break; + } + case RS2_STREAM_POSE: + { + if (streams[stream].show_stream_details) + { + auto pose = streams[stream].texture->get_last_frame().as(); + if (pose.get()) + { + auto pose_data = pose.get_pose_data(); + if (stream_rect.contains(win.get_mouse().cursor)) + stream_mv.show_stream_pose(font1, + stream_rect, pose_data, + stream_type, (*this).fullscreen, 30.0f, *this); + } + } + + break; + } + } + } + + glColor3f(header_window_bg.x, header_window_bg.y, header_window_bg.z); + stream_rect.y -= 32; + stream_rect.h += 32; + stream_rect.w += 1; + draw_rect(stream_rect); + + auto frame = streams[stream].texture->get_last_frame().as(); + auto textured_frame = streams[stream].texture->get_last_frame(true).as(); + if (streams[stream].show_map_ruler && frame && textured_frame && + RS2_STREAM_DEPTH == stream_mv.profile.stream_type() && + RS2_FORMAT_Z16 == stream_mv.profile.format()) + { + if(RS2_FORMAT_RGB8 == textured_frame.get_profile().format()) + { + static const std::string depth_units = "m"; + float ruler_length = 0.f; + auto depth_vid_profile = stream_mv.profile.as(); + auto depth_width = depth_vid_profile.width(); + auto depth_height = depth_vid_profile.height(); + auto num_of_pixels = depth_width * depth_height; + auto depth_data = static_cast(frame.get_data()); + auto textured_depth_data = static_cast(textured_frame.get_data()); + static const auto skip_pixels_factor = 30; + std::vector rgb_per_distance_vec; + std::vector distances; + for (uint64_t i = 0; i < depth_height; i+= skip_pixels_factor) + { + for (uint64_t j = 0; j < depth_width; j+= skip_pixels_factor) + { + auto depth_index = i*depth_width + j; + auto length = depth_data[depth_index] * stream_mv.dev->depth_units; + if (length > 0.f) + { + auto textured_depth_index = depth_index * 3; + auto r = textured_depth_data[textured_depth_index]; + auto g = textured_depth_data[textured_depth_index + 1]; + auto b = textured_depth_data[textured_depth_index + 2]; + rgb_per_distance_vec.push_back({ length, { r, g, b } }); + distances.push_back(length); + } + } + } + + if (!distances.empty()) + { + ruler_length = calculate_ruler_max_distance(distances); + draw_color_ruler(mouse, streams[stream], stream_rect, rgb_per_distance_vec, ruler_length, depth_units); + } + } + } + } + } + + void viewer_model::render_3d_view(const rect& viewer_rect, + std::shared_ptr texture, rs2::points points, ImFont *font1) + { + auto top_bar_height = 32.f; + + if (points) + { + last_points = points; + } + if (texture) + { + last_texture = texture; + } + + glViewport(static_cast(viewer_rect.x), static_cast(viewer_rect.y), + static_cast(viewer_rect.w), static_cast(viewer_rect.h)); + + glClearColor(0, 0, 0, 1); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + matrix4 perspective_mat = create_perspective_projection_matrix(viewer_rect.w, viewer_rect.h, 60, 0.001f, 100.f); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadMatrixf((float*)perspective_mat.mat); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(view); + + matrix4 view_mat; + memcpy(&view_mat, view, sizeof(matrix4)); + + glDisable(GL_TEXTURE_2D); + + glEnable(GL_DEPTH_TEST); + + auto r1 = matrix4::identity(); + auto r2 = matrix4::identity(); + + if (draw_plane && !paused) + { + glPushAttrib(GL_LINE_BIT); + glLineWidth(2); + glBegin(GL_LINES); + + if (is_valid(roi_rect)) + { + glColor4f(yellow.x, yellow.y, yellow.z, 1.f); + + auto rects = subdivide(roi_rect); + for (auto&& r : rects) + { + for (int i = 0; i < 4; i++) + { + auto j = (i + 1) % 4; + glVertex3f(r[i].x, r[i].y, r[i].z); + glVertex3f(r[j].x, r[j].y, r[j].z); + } + } + } + + glEnd(); + glPopAttrib(); + } + + auto x = static_cast(-M_PI / 2); + float _rx[4][4] = { + { 1 , 0, 0, 0 }, + { 0, std::cos(x), -std::sin(x), 0 }, + { 0, std::sin(x), std::cos(x), 0 }, + { 0, 0, 0, 1 } + }; + auto z = static_cast(M_PI); + float _rz[4][4] = { + { std::cos(z), -std::sin(z),0, 0 }, + { std::sin(z), std::cos(z), 0, 0 }, + { 0 , 0, 1, 0 }, + { 0, 0, 0, 1 } + }; + rs2::matrix4 rx(_rx); + rs2::matrix4 rz(_rz); + + int stream_num = 0; // counter to locate the pose info window correctly (currently works for up to 3 streaming devices) + pose_frame pose = frame{}; + for (auto&& stream : streams) + { + if (stream.second.profile.stream_type() == RS2_STREAM_POSE) + { + auto f = stream.second.texture->get_last_frame(); + if (!f.is()) + { + continue; + } + + pose = f; + rs2_pose pose_data = pose.get_pose_data(); + if (show_pose_info_3d) + { + auto stream_type = stream.second.profile.stream_type(); + auto stream_rect = viewer_rect; + stream_rect.x += 460 * stream_num; + stream_rect.y += 2 * top_bar_height + 5; + stream.second.show_stream_pose(font1, stream_rect, pose_data, stream_type, true, 0, *this); + } + + auto t = tm2_pose_to_world_transformation(pose_data); + float model[4][4]; + t.to_column_major((float*)model); + auto m = model; + + r1 = m * rx; + r2 = rz * m * rx; + + // set the pose transformation as the model matrix to draw the axis + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(view); + + glMultMatrixf((float*)_rx); + + streams[f.get_profile().unique_id()].dev->tm2.draw_trajectory(trajectory_button.is_pressed()); + + // remove model matrix from the rest of the render + glPopMatrix(); + + _cam_renderer.set_matrix(RS2_GL_MATRIX_CAMERA, r2 * view_mat); + _cam_renderer.set_matrix(RS2_GL_MATRIX_PROJECTION, perspective_mat); + + if (f) + { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + + glBlendFunc(GL_ONE, GL_ONE); + + // Render camera model (based on source_frame camera type) + f.apply_filter(_cam_renderer); + + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } + + stream_num++; + } + } + + { + auto tiles = 12; + if (!metric_system) tiles *= 1.f / FEET_TO_METER; + + // Render "floor" grid + glLineWidth(1); + glBegin(GL_LINES); + + auto T = tiles * 0.5f; + + if (!metric_system) T *= FEET_TO_METER; + + glTranslatef(0, 0, -1); + + for (int i = 0; i <= ceil(tiles); i++) + { + float I = i; + if (!metric_system) I *= FEET_TO_METER; + + if (i == tiles / 2) glColor4f(0.7f, 0.7f, 0.7f, 1.f); + else glColor4f(0.4f, 0.4f, 0.4f, 1.f); + + glVertex3f(I - T, 1, -T); + glVertex3f(I - T, 1, T); + glVertex3f(-T, 1, I - T); + glVertex3f(T, 1, I - T); + } + glEnd(); + } + + if (!pose) + { + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(r1 * view_mat); + texture_buffer::draw_axes(0.4f, 1); + glPopMatrix(); + } + + glColor4f(1.f, 1.f, 1.f, 1.f); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadMatrixf(r1 * view_mat); + if (draw_frustrum && last_points) + { + glLineWidth(1.f); + glBegin(GL_LINES); + + auto intrin = last_points.get_profile().as().get_intrinsics(); + + glColor4f(sensor_bg.x, sensor_bg.y, sensor_bg.z, 0.5f); + + for (float d = 1; d < 6; d += 2) + { + auto get_point = [&](float x, float y) -> float3 + { + float point[3]; + float pixel[2]{ x, y }; + rs2_deproject_pixel_to_point(point, &intrin, pixel, d); + glVertex3f(0.f, 0.f, 0.f); + glVertex3fv(point); + return{ point[0], point[1], point[2] }; + }; + + auto top_left = get_point(0, 0); + auto top_right = get_point(static_cast(intrin.width), 0); + auto bottom_right = get_point(static_cast(intrin.width), static_cast(intrin.height)); + auto bottom_left = get_point(0, static_cast(intrin.height)); + + glVertex3fv(&top_left.x); glVertex3fv(&top_right.x); + glVertex3fv(&top_right.x); glVertex3fv(&bottom_right.x); + glVertex3fv(&bottom_right.x); glVertex3fv(&bottom_left.x); + glVertex3fv(&bottom_left.x); glVertex3fv(&top_left.x); + } + + glEnd(); + + glColor4f(1.f, 1.f, 1.f, 1.f); + } + + if (last_points && last_texture) + { + auto vf_profile = last_points.get_profile().as(); + // Non-linear correspondence customized for non-flat surface exploration + glPointSize(std::sqrt(viewer_rect.w / vf_profile.width())); + + auto tex = last_texture->get_gl_handle(); + glBindTexture(GL_TEXTURE_2D, tex); + glEnable(GL_TEXTURE_2D); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, texture_border_mode); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, texture_border_mode); + + _pc_renderer.set_option(gl::pointcloud_renderer::OPTION_FILLED, render_quads ? 1.f : 0.f); + + _pc_renderer.set_matrix(RS2_GL_MATRIX_CAMERA, r2 * view_mat); + _pc_renderer.set_matrix(RS2_GL_MATRIX_PROJECTION, perspective_mat); + + // Render Point-Cloud + last_points.apply_filter(_pc_renderer); + + glDisable(GL_TEXTURE_2D); + + _cam_renderer.set_matrix(RS2_GL_MATRIX_CAMERA, r2 * view_mat); + _cam_renderer.set_matrix(RS2_GL_MATRIX_PROJECTION, perspective_mat); + + if (streams.find(selected_depth_source_uid) != streams.end()) + { + auto source_frame = streams[selected_depth_source_uid].texture->get_last_frame(); + if (source_frame) + { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + + glBlendFunc(GL_ONE, GL_ONE); + + // Render camera model (based on source_frame camera type) + source_frame.apply_filter(_cam_renderer); + + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } + } + } + + glPopMatrix(); + + glPopMatrix(); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glPopAttrib(); + + glDisable(GL_DEPTH_TEST); + + if (ImGui::IsKeyPressed('R') || ImGui::IsKeyPressed('r')) + { + reset_camera(); + } + } + + void viewer_model::show_top_bar(ux_window& window, const rect& viewer_rect, const device_models_list& devices) + { + auto flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | + ImGuiWindowFlags_NoSavedSettings; + + ImGui::SetNextWindowPos({ panel_width, 0 }); + ImGui::SetNextWindowSize({ window.width() - panel_width, panel_y }); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0)); + ImGui::PushStyleColor(ImGuiCol_WindowBg, button_color); + ImGui::Begin("Toolbar Panel", nullptr, flags); + + ImGui::PushFont(window.get_large_font()); + ImGui::PushStyleColor(ImGuiCol_Border, black); + + int buttons = window.is_fullscreen() ? 4 : 3; + + ImGui::SetCursorPosX(window.width() - panel_width - panel_y * (buttons)); + ImGui::PushStyleColor(ImGuiCol_Text, is_3d_view ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, is_3d_view ? light_grey : light_blue); + if (ImGui::Button("2D", { panel_y, panel_y })) + { + is_3d_view = false; + config_file::instance().set(configurations::viewer::is_3d_view, is_3d_view); + } + ImGui::PopStyleColor(2); + ImGui::SameLine(); + + ImGui::SetCursorPosX(window.width() - panel_width - panel_y * (buttons - 1)); + auto pos1 = ImGui::GetCursorScreenPos(); + + ImGui::PushStyleColor(ImGuiCol_Text, !is_3d_view ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, !is_3d_view ? light_grey : light_blue); + if (ImGui::Button("3D", { panel_y,panel_y })) + { + is_3d_view = true; + config_file::instance().set(configurations::viewer::is_3d_view, is_3d_view); + update_3d_camera(window, viewer_rect, true); + } + + ImGui::PopStyleColor(2); + ImGui::SameLine(); + + ImGui::SetCursorPosX(window.width() - panel_width - panel_y * (buttons - 2)); + + static bool settings_open = false; + ImGui::PushStyleColor(ImGuiCol_Text, !settings_open ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, !settings_open ? light_grey : light_blue); + + if (ImGui::Button(u8"\uf013\uf0d7", { panel_y,panel_y })) + { + ImGui::OpenPopup("More Options"); + } + + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "More Options..."); + } + + if (window.is_fullscreen()) + { + ImGui::SameLine(); + ImGui::SetCursorPosX(window.width() - panel_width - panel_y * (buttons - 4)); + + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, button_color); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, light_red); + if (ImGui::Button(textual_icons::exit, { panel_y,panel_y })) + { + exit(0); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("Exit the App"); + window.link_hovered(); + } + ImGui::PopStyleColor(3); + } + + ImGui::PopFont(); + + ImGui::PushStyleColor(ImGuiCol_Text, black); + ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + + ImGui::PushFont(window.get_font()); + + auto settings = "Settings"; + auto about = "About"; + bool open_settings_popup = false; + bool open_about_popup = false; + + ImGui::SetNextWindowPos({ window.width() - 100, panel_y }); + ImGui::SetNextWindowSize({ 100, 90 }); + + if (ImGui::BeginPopup("More Options")) + { + settings_open = true; + + if (ImGui::Selectable("Report Issue")) + { + open_issue(devices); + } + + if (ImGui::Selectable("Intel Store")) + { + open_url("https://store.intelrealsense.com/"); + } + + if (ImGui::Selectable(settings)) + { + open_settings_popup = true; + } + + ImGui::Separator(); + + if (ImGui::Selectable(about)) + { + open_about_popup = true; + } + + ImGui::EndPopup(); + } + else + { + settings_open = false; + } + + static config_file temp_cfg; + static bool reload_required = false; + static bool refresh_required = false; + static bool refresh_updates = false; + + static int tab = 0; + + if (open_settings_popup) + { + temp_cfg = config_file::instance(); + ImGui::OpenPopup(settings); + reload_required = false; + refresh_required = false; + tab = config_file::instance().get_or_default(configurations::viewer::settings_tab, 0); + } + + { + float w = window.width() * 0.6f; + float h = window.height() * 0.6f; + float x0 = window.width() * 0.2f; + float y0 = window.height() * 0.2f; + ImGui::SetNextWindowPos({ x0, y0 }); + ImGui::SetNextWindowSize({ w, h }); + + flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings; + + ImGui_ScopePushFont(window.get_font()); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(15, 15)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + + if (ImGui::BeginPopupModal(settings, nullptr, flags)) + { + ImGui::SetCursorScreenPos({ (float)(x0 + w / 2 - 280), (float)(y0 + 27) }); + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushFont(window.get_large_font()); + + ImGui::PushStyleColor(ImGuiCol_Text, tab != 0 ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, tab != 0 ? light_grey : light_blue); + if (ImGui::Button("Playback & Record", { 170, 30})) + { + tab = 0; + config_file::instance().set(configurations::viewer::settings_tab, tab); + temp_cfg.set(configurations::viewer::settings_tab, tab); + } + ImGui::PopStyleColor(2); + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Text, tab != 1 ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, tab != 1 ? light_grey : light_blue); + if (ImGui::Button("Performance", { 150, 30})) + { + tab = 1; + config_file::instance().set(configurations::viewer::settings_tab, tab); + temp_cfg.set(configurations::viewer::settings_tab, tab); + } + ImGui::PopStyleColor(2); + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Text, tab != 2 ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, tab != 2 ? light_grey : light_blue); + if (ImGui::Button("General", { 100, 30})) + { + tab = 2; + config_file::instance().set(configurations::viewer::settings_tab, tab); + temp_cfg.set(configurations::viewer::settings_tab, tab); + } + ImGui::PopStyleColor(2); + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Text, tab != 3 ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, tab != 3 ? light_grey : light_blue); + if (ImGui::Button("Updates", { 120, 30 })) + { + tab = 3; + config_file::instance().set(configurations::viewer::settings_tab, tab); + temp_cfg.set(configurations::viewer::settings_tab, tab); + } + ImGui::PopStyleColor(2); + + ImGui::PopFont(); + ImGui::PopStyleColor(2); // button color + + ImGui::SetCursorScreenPos({ (float)(x0 + 15), (float)(y0 + 65) }); + ImGui::Separator(); + + if (tab == 0) + { + int recording_setting = temp_cfg.get(configurations::record::file_save_mode); + ImGui::Text("When starting a new recording:"); + if (ImGui::RadioButton("Select filename automatically", recording_setting == 0)) + { + recording_setting = 0; + temp_cfg.set(configurations::record::file_save_mode, recording_setting); + } + if (ImGui::RadioButton("Ask me every time", recording_setting == 1)) + { + recording_setting = 1; + temp_cfg.set(configurations::record::file_save_mode, recording_setting); + } + ImGui::Text("Default recording folder: "); + ImGui::SameLine(); + static char path[256]; + memset(path, 0, 256); + std::string path_str = temp_cfg.get(configurations::record::default_path); + memcpy(path, path_str.c_str(), std::min(255, (int)path_str.size())); + + if (ImGui::InputText("##default_record_path", path, 255)) + { + path_str = path; + temp_cfg.set(configurations::record::default_path, path_str); + } + + ImGui::Separator(); + + ImGui::Text("ROS-bag Compression:"); + int recording_compression = temp_cfg.get(configurations::record::compression_mode); + if (ImGui::RadioButton("Always Compress (might cause frame drops)", recording_compression == 0)) + { + recording_compression = 0; + temp_cfg.set(configurations::record::compression_mode, recording_compression); + } + if (ImGui::RadioButton("Never Compress (larger .bag file size)", recording_compression == 1)) + { + recording_compression = 1; + temp_cfg.set(configurations::record::compression_mode, recording_compression); + } + if (ImGui::RadioButton("Use device defaults", recording_compression == 2)) + { + recording_compression = 2; + temp_cfg.set(configurations::record::compression_mode, recording_compression); + } + } + + if (tab == 1) + { + int font_samples = temp_cfg.get(configurations::performance::font_oversample); + ImGui::Text("Font Samples: "); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Increased font samples produce nicer text, but require more GPU memory, sometimes resulting in boxes instead of font characters"); + ImGui::SameLine(); + ImGui::PushItemWidth(80); + if (ImGui::SliderInt("##font_samples", &font_samples, 1, 8)) + { + reload_required = true; + temp_cfg.set(configurations::performance::font_oversample, font_samples); + } + ImGui::PopItemWidth(); + +#ifndef __APPLE__ // Not available at the moment on Mac + bool gpu_rendering = temp_cfg.get(configurations::performance::glsl_for_rendering); + if (ImGui::Checkbox("Use GLSL for Rendering", &gpu_rendering)) + { + refresh_required = true; + temp_cfg.set(configurations::performance::glsl_for_rendering, gpu_rendering); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Using OpenGL 3 shaders is a widely supported way to boost rendering speeds on modern GPUs."); + + bool gpu_processing = temp_cfg.get(configurations::performance::glsl_for_processing); + if (ImGui::Checkbox("Use GLSL for Processing", &gpu_processing)) + { + refresh_required = true; + temp_cfg.set(configurations::performance::glsl_for_processing, gpu_processing); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Using OpenGL 3 shaders for depth data processing can reduce CPU utilisation."); + + if (gpu_processing && !gpu_rendering) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::Text(u8"\uf071 Using GLSL for processing but not for rendering can reduce CPU utilisation, but is likely to hurt overall performance!"); + ImGui::PopStyleColor(); + } +#endif + bool msaa = temp_cfg.get(configurations::performance::enable_msaa); + if (ImGui::Checkbox("Enable Multisample Anti-Aliasing (MSAA)", &msaa)) + { + reload_required = true; + temp_cfg.set(configurations::performance::enable_msaa, msaa); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("MSAA will improve the rendering quality of edges at expense of greater GPU memory utilisation."); + + if (msaa) + { + int samples = temp_cfg.get(configurations::performance::msaa_samples); + ImGui::Text("MSAA Samples: "); ImGui::SameLine(); + ImGui::PushItemWidth(160); + if (ImGui::SliderInt("##samples", &samples, 2, 16)) + { + reload_required = true; + temp_cfg.set(configurations::performance::msaa_samples, samples); + } + ImGui::PopItemWidth(); + } + + bool show_fps = temp_cfg.get(configurations::performance::show_fps); + if (ImGui::Checkbox("Show Application FPS (rendering FPS)", &show_fps)) + { + reload_required = true; + temp_cfg.set(configurations::performance::show_fps, show_fps); + } + + bool vsync = temp_cfg.get(configurations::performance::vsync); + if (ImGui::Checkbox("Enable VSync", &vsync)) + { + reload_required = true; + temp_cfg.set(configurations::performance::vsync, vsync); + } + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Vertical sync will try to synchronize application framerate to the monitor refresh-rate (usually limiting the framerate to 60)"); + + bool fullscreen = temp_cfg.get(configurations::window::is_fullscreen); + if (ImGui::Checkbox("Fullscreen (F8)", &fullscreen)) + { + reload_required = true; + temp_cfg.set(configurations::window::is_fullscreen, fullscreen); + } + } + + if (tab == 2) + { + ImGui::Text("Units of Measurement: "); + ImGui::SameLine(); + + int metric_system = temp_cfg.get(configurations::viewer::metric_system); + std::vector unit_systems; + unit_systems.push_back("Imperial System"); + unit_systems.push_back("Metric System"); + + ImGui::PushItemWidth(150); + if (draw_combo_box("##units_system", unit_systems, metric_system)) + { + temp_cfg.set(configurations::viewer::metric_system, metric_system); + } + ImGui::PopItemWidth(); + + ImGui::Separator(); + + ImGui::Text("librealsense has built-in logging capabilities."); + ImGui::Text("Logs may contain API calls, timing of frames, OS error messages and file-system links, but no actual frame content."); + + bool log_to_console = temp_cfg.get(configurations::viewer::log_to_console); + if (ImGui::Checkbox("Output librealsense log to console", &log_to_console)) + { + temp_cfg.set(configurations::viewer::log_to_console, log_to_console); + } + bool log_to_file = temp_cfg.get(configurations::viewer::log_to_file); + if (ImGui::Checkbox("Output librealsense log to file", &log_to_file)) + { + temp_cfg.set(configurations::viewer::log_to_file, log_to_file); + } + if (log_to_file) + { + ImGui::Text("Log file name:"); + ImGui::SameLine(); + static char logpath[256]; + memset(logpath, 0, 256); + std::string path_str = temp_cfg.get(configurations::viewer::log_filename); + memcpy(logpath, path_str.c_str(), std::min(255, (int)path_str.size())); + + if (ImGui::InputText("##default_log_path", logpath, 255)) + { + path_str = logpath; + temp_cfg.set(configurations::viewer::log_filename, path_str); + } + } + if (log_to_console || log_to_file) + { + int new_severity = temp_cfg.get(configurations::viewer::log_severity); + + std::vector severities; + for (int i = 0; i < RS2_LOG_SEVERITY_COUNT; i++) + severities.push_back(rs2_log_severity_to_string((rs2_log_severity)i)); + + ImGui::Text("Minimal log severity:"); + ImGui::SameLine(); + + ImGui::PushItemWidth(150); + if (draw_combo_box("##log_severity", severities, new_severity)) + { + temp_cfg.set(configurations::viewer::log_severity, new_severity); + } + ImGui::PopItemWidth(); + } + + + ImGui::Separator(); + + ImGui::Text("RealSense tools settings capture the state of UI, and not of the hardware:"); + + if (ImGui::Button(" Restore Defaults ")) + { + reload_required = true; + temp_cfg = config_file(); + } + ImGui::SameLine(); + if (ImGui::Button(" Export Settings ")) + { + auto ret = file_dialog_open(save_file, "JavaScript Object Notation (JSON)\0*.json\0", NULL, NULL); + if (ret) + { + try + { + std::string filename = ret; + filename = to_lower(filename); + if (!ends_with(filename, ".json")) filename += ".json"; + temp_cfg.save(filename.c_str()); + } + catch (...){} + } + } + ImGui::SameLine(); + if (ImGui::Button(" Import Settings ")) + { + auto ret = file_dialog_open(open_file, "JavaScript Object Notation (JSON)\0*.json\0", NULL, NULL); + if (ret) + { + try + { + config_file file(ret); + temp_cfg = file; + reload_required = true; + } + catch (...){} + } + } + } + + if (tab == 3) + { + bool recommend_calibration = temp_cfg.get(configurations::update::recommend_calibration); + if (ImGui::Checkbox("Recommend Camera Calibration", &recommend_calibration)) + { + temp_cfg.set(configurations::update::recommend_calibration, recommend_calibration); + refresh_updates = true; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "When checked, the Viewer / DQT will post weekly remainders for on-chip calibration"); + } + + bool recommend_fw_updates = temp_cfg.get(configurations::update::recommend_updates); + if (ImGui::Checkbox("Recommend Firmware Updates", &recommend_fw_updates)) + { + temp_cfg.set(configurations::update::recommend_updates, recommend_fw_updates); + refresh_updates = true; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "When firmware of the device is below the version bundled with this software release\nsuggest firmware update"); + } + + bool allow_rc_firmware = temp_cfg.get(configurations::update::allow_rc_firmware); + if (ImGui::Checkbox("Access Pre-Release Firmware Updates", &allow_rc_firmware)) + { + temp_cfg.set(configurations::update::allow_rc_firmware, allow_rc_firmware); + refresh_updates = true; + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Firmware Releases recommended for production-use are published at dev.intelrealsense.com/docs/firmware-releases\n" + "After firmware version passes basic regression tests and until it is published on the site, it is available as a Pre-Release\n"); + } + } + + ImGui::Separator(); + + ImGui::GetWindowDrawList()->AddRectFilled({ (float)x0, (float)(y0 + h - 60) }, + { (float)(x0 + w), (float)(y0 + h) }, ImColor(sensor_bg)); + + ImGui::SetCursorScreenPos({ (float)(x0 + 15), (float)(y0 + h - 60) }); + if (reload_required) + { + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::Text(u8"\uf071 The application will be restarted in order for new settings to take effect"); + ImGui::PopStyleColor(); + } + + auto apply = [&](){ + config_file::instance() = temp_cfg; + if (reload_required) window.reload(); + else if (refresh_required) window.refresh(); + update_configuration(); + + if (refresh_updates) + for (auto&& dev : devices) + dev->refresh_notifications(*this); + }; + + ImGui::SetCursorScreenPos({ (float)(x0 + w / 2 - 190), (float)(y0 + h - 30) }); + if (ImGui::Button("OK", ImVec2(120, 0))) + { + ImGui::CloseCurrentPopup(); + apply(); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Save settings and close"); + } + ImGui::SameLine(); + + auto configs_same = temp_cfg == config_file::instance(); + ImGui::PushStyleColor(ImGuiCol_Text, configs_same ? light_grey : light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, configs_same ? light_grey : light_blue); + if (ImGui::Button("Apply", ImVec2(120, 0))) + { + apply(); + } + ImGui::PopStyleColor(2); + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Save settings"); + } + ImGui::SameLine(); + if (ImGui::Button("Cancel", ImVec2(120, 0))) + { + ImGui::CloseCurrentPopup(); + } + if (ImGui::IsItemHovered()) + { + ImGui::SetTooltip("%s", "Close window without saving any changes to the settings"); + } + + ImGui::EndPopup(); + } + + ImGui::PopStyleColor(3); + ImGui::PopStyleVar(2); + } + + if (open_about_popup) + { + ImGui::OpenPopup(about); + } + + { + float w = 590.f; + float h = 300.f; + float x0 = (window.width() - w) / 2.f; + float y0 = (window.height() - h) / 2.f; + ImGui::SetNextWindowPos({ x0, y0 }); + ImGui::SetNextWindowSize({ w, h }); + + flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | + ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings; + + ImGui_ScopePushFont(window.get_font()); + ImGui::PushStyleColor(ImGuiCol_PopupBg, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_Text, light_grey); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(15, 15)); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 1); + + if (ImGui::BeginPopupModal(about, nullptr, flags)) + { + ImGui::Image((void*)(intptr_t)window.get_splash().get_gl_handle(), + ImVec2(w - 30, 100), {0.20f, 0.38f}, {0.80f, 0.56f}); + + auto realsense_pos = ImGui::GetCursorPos(); + ImGui::Text("Intel RealSense is a suite of depth-sensing and motion-tracking technologies."); + + ImGui::Text("librealsense is an open-source cross-platform SDK for working with RealSense devices."); + + ImGui::Text("Full source code is available at"); ImGui::SameLine(); + auto github_pos = ImGui::GetCursorPos(); + ImGui::Text("github.com/IntelRealSense/librealsense."); + + ImGui::Text("This software is distributed under the"); ImGui::SameLine(); + auto license_pos = ImGui::GetCursorPos(); + ImGui::Text("Apache License, Version 2.0."); + + ImGui::Text("RealSense is a registered trademark of Intel Corporation."); + + ImGui::Text("Copyright 2018 Intel Corporation."); + + ImGui::PushStyleColor(ImGuiCol_Button, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, sensor_bg); + ImGui::PushStyleColor(ImGuiCol_Text, light_blue); + + ImGui::SetCursorPos({ realsense_pos.x - 4, realsense_pos.y - 3 }); + + hyperlink(window, "Intel RealSense", "https://realsense.intel.com/"); + + ImGui::SetCursorPos({ github_pos.x - 4, github_pos.y - 3 }); + hyperlink(window, "github.com/IntelRealSense/librealsense", "https://github.com/IntelRealSense/librealsense/"); + + ImGui::SetCursorPos({ license_pos.x - 4, license_pos.y - 3 }); + + hyperlink(window, "Apache License, Version 2.0", "https://raw.githubusercontent.com/IntelRealSense/librealsense/master/LICENSE"); + + ImGui::PopStyleColor(4); + + + ImGui::SetCursorScreenPos({ (float)(x0 + w / 2 - 60), (float)(y0 + h - 30) }); + if (ImGui::Button("OK", ImVec2(120, 0))) ImGui::CloseCurrentPopup(); + + ImGui::EndPopup(); + } + + ImGui::PopStyleColor(3); + ImGui::PopStyleVar(2); + } + + ImGui::PopStyleVar(); + ImGui::PopStyleColor(7); + + ImGui::GetWindowDrawList()->AddLine({ pos1.x, pos1.y + 10 }, { pos1.x,pos1.y + panel_y - 10 }, ImColor(light_grey)); + + + ImGui::SameLine(); + ImGui::SetCursorPosX(window.width() - panel_width - panel_y); + + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + ImGui::PushStyleColor(ImGuiCol_PopupBg, almost_white_bg); + ImGui::PushStyleColor(ImGuiCol_HeaderHovered, light_blue); + ImGui::PushStyleColor(ImGuiCol_TextSelectedBg, white); + + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(5, 5)); + + ImGui::PopStyleVar(); + ImGui::PopStyleColor(4); + ImGui::PopFont(); + + ImGui::End(); + ImGui::PopStyleColor(); + ImGui::PopStyleVar(); + } + + void viewer_model::update_3d_camera( + ux_window& win, + const rect& viewer_rect, bool force) + { + mouse_info& mouse = win.get_mouse(); + auto now = std::chrono::high_resolution_clock::now(); + static auto view_clock = std::chrono::high_resolution_clock::now(); + auto sec_since_update = std::chrono::duration(now - view_clock).count() / 1000; + view_clock = now; + + if (fixed_up) + up = { 0.f, -1.f, 0.f }; + + auto dir = target - pos; + auto x_axis = cross(dir, up); + auto step = sec_since_update * 0.3f; + + if (ImGui::IsKeyPressed('w') || ImGui::IsKeyPressed('W')) + { + pos = pos + dir * step; + target = target + dir * step; + } + if (ImGui::IsKeyPressed('s') || ImGui::IsKeyPressed('S')) + { + pos = pos - dir * step; + target = target - dir * step; + } + if (ImGui::IsKeyPressed('d') || ImGui::IsKeyPressed('D')) + { + pos = pos + x_axis * step; + target = target + x_axis * step; + } + if (ImGui::IsKeyPressed('a') || ImGui::IsKeyPressed('A')) + { + pos = pos - x_axis * step; + target = target - x_axis * step; + } + + if (viewer_rect.contains(mouse.cursor) || force) + { + // Whenever the mouse reaches the end of the window + // and jump back to the start, it will add to the overflow + // counter, so by adding the overflow value + // we essentially emulate an infinite display + auto cx = mouse.cursor.x + overflow.x; + auto px = mouse.prev_cursor.x + overflow.x; + auto cy = mouse.cursor.y + overflow.y; + auto py = mouse.prev_cursor.y + overflow.y; + + // Limit how much user mouse can jump between frames + // This can work poorly when the app FPS is really terrible (< 10) + // but overall works resonably well + const auto MAX_MOUSE_JUMP = 200; + if (std::abs(cx - px) < MAX_MOUSE_JUMP && + std::abs(cy - py) < MAX_MOUSE_JUMP ) + arcball_camera_update( + (float*)&pos, (float*)&target, (float*)&up, view, + sec_since_update, + 0.2f, // zoom per tick + -0.1f, // pan speed + 3.0f, // rotation multiplier + static_cast(viewer_rect.w), static_cast(viewer_rect.h), // screen (window) size + static_cast(px), static_cast(cx), + static_cast(py), static_cast(cy), + (ImGui::GetIO().MouseDown[2] || ImGui::GetIO().MouseDown[1]) ? 1 : 0, + ImGui::GetIO().MouseDown[0] ? 1 : 0, + mouse.mouse_wheel, + 0); + + // If we are pressing mouse button + // inside the 3D viewport + // we should remember that we + // are in the middle of manipulation + // and adjust when mouse leaves the area + if (ImGui::GetIO().MouseDown[0] || + ImGui::GetIO().MouseDown[1] || + ImGui::GetIO().MouseDown[2]) + { + manipulating = true; + } + } + + auto rect = viewer_rect; + rect.w -= 10; + + // If we started manipulating the camera + // and left the viewport + if (manipulating && !rect.contains(mouse.cursor)) + { + // If mouse is no longer pressed, + // abort the manipulation + if (!ImGui::GetIO().MouseDown[0] && + !ImGui::GetIO().MouseDown[1] && + !ImGui::GetIO().MouseDown[2]) + { + manipulating = false; + overflow = float2{ 0.f, 0.f }; + } + else + { + // Wrap-around the mouse in X direction + auto startx = (mouse.cursor.x - rect.x); + if (startx < 0) + { + overflow.x -= rect.w; + startx += rect.w; + } + if (startx > rect.w) + { + overflow.x += rect.w; + startx -= rect.w; + } + startx += rect.x; + + // Wrap-around the mouse in Y direction + auto starty = (mouse.cursor.y - rect.y); + if (starty < 0) + { + overflow.y -= rect.h; + starty += rect.h; + } + if (starty > rect.h) + { + overflow.y += rect.h; + starty -= rect.h; + } + starty += rect.y; + + // Set new cursor position + glfwSetCursorPos(win, startx, starty); + } + } + else overflow = float2{ 0.f, 0.f }; + + mouse.prev_cursor = mouse.cursor; + } + + void viewer_model::begin_stream(std::shared_ptr d, rs2::stream_profile p) + { + // Starting post processing filter rendering thread + ppf.start(); + streams[p.unique_id()].begin_stream(d, p); + ppf.frames_queue.emplace(p.unique_id(), rs2::frame_queue(5)); + } + + bool viewer_model::is_3d_texture_source(frame f) + { + auto profile = f.get_profile().as(); + auto index = profile.unique_id(); + auto mapped_index = streams_origin[index]; + + if (!is_rasterizeable(profile.format())) + return false; + + if (index == selected_tex_source_uid || mapped_index == selected_tex_source_uid || selected_tex_source_uid == -1) + return true; + return false; + } + + std::shared_ptr viewer_model::get_last_texture() + { + return last_texture; + } + + std::vector rs2::viewer_model::get_frames(frame frame) + { + std::vector res; + + if (auto set = frame.as()) + for (auto&& f : set) + res.push_back(f); + + else + res.push_back(frame); + + return res; + } + + frame viewer_model::get_3d_depth_source(frame f) + { + auto frames = get_frames(f); + + for (auto&& f : frames) + { + if (is_3d_depth_source(f)) + return f; + } + return nullptr; + } + + frame rs2::viewer_model::get_3d_texture_source(frame f) + { + auto frames = get_frames(f); + + for (auto&& f : frames) + { + if (is_3d_texture_source(f)) + return f; + } + return nullptr; + } + + bool viewer_model::is_3d_depth_source(frame f) + { + + auto index = f.get_profile().unique_id(); + auto mapped_index = streams_origin[index]; + + if(index == selected_depth_source_uid || mapped_index == selected_depth_source_uid + ||(selected_depth_source_uid == -1 && f.get_profile().stream_type() == RS2_STREAM_DEPTH)) + return true; + return false; + } + + std::shared_ptr viewer_model::upload_frame(frame&& f) + { + if (f.get_profile().stream_type() == RS2_STREAM_DEPTH) + ppf.depth_stream_active = true; + + auto index = f.get_profile().unique_id(); + + std::lock_guard lock(streams_mutex); + if (streams.find(streams_origin[index]) != streams.end()) + return streams[streams_origin[index]].upload_frame(std::move(f)); + else return nullptr; + } + + void viewer_model::draw_viewport(const rect& viewer_rect, + ux_window& window, int devices, std::string& error_message, + std::shared_ptr texture, points points) + { + static bool first = true; + if (first) + { + update_3d_camera(window, viewer_rect, true); + first = false; + } + + if (!is_3d_view) + { + render_2d_view(viewer_rect, window, + static_cast(get_output_height()), window.get_font(), window.get_large_font(), + devices, window.get_mouse(), error_message); + } + else + { + if (paused) + show_paused_icon(window.get_large_font(), static_cast(panel_width + 15), static_cast(panel_y + 15 + 32), 0); + + show_3dviewer_header(window.get_large_font(), window.get_font(), viewer_rect, paused, error_message); + + update_3d_camera(window, viewer_rect); + + rect window_size{ 0, 0, (float)window.width(), (float)window.height() }; + rect fb_size{ 0, 0, (float)window.framebuf_width(), (float)window.framebuf_height() }; + rect new_rect = viewer_rect.normalize(window_size).unnormalize(fb_size); + + render_3d_view(new_rect, texture, points, window.get_font()); + } + + if (ImGui::IsKeyPressed(' ')) + { + if (paused) + { + for (auto&& s : streams) + { + if (s.second.dev) + { + s.second.dev->resume(); + if (auto p = s.second.dev->dev.as()) + { + p.resume(); + } + } + } + } + else + { + for (auto&& s : streams) + { + if (s.second.dev) + { + s.second.dev->pause(); + if (s.second.dev->dev.is()) + { + auto p = s.second.dev->dev.as(); + p.pause(); + } + } + } + } + paused = !paused; + } + } + + std::map viewer_model::get_interpolated_layout(const std::map& l) + { + using namespace std::chrono; + auto now = high_resolution_clock::now(); + if (l != _layout) // detect layout change + { + _transition_start_time = now; + _old_layout = _layout; + _layout = l; + } + + //if (_old_layout.size() == 0 && l.size() == 1) return l; + + auto diff = now - _transition_start_time; + auto ms = duration_cast(diff).count(); + auto t = smoothstep(static_cast(ms), 0, 100); + + std::map results; + for (auto&& kvp : l) + { + auto stream = kvp.first; + if (_old_layout.find(stream) == _old_layout.end()) + { + _old_layout[stream] = _layout[stream].center(); + } + results[stream] = _old_layout[stream].lerp(t, _layout[stream]); + } + + return results; + } +} diff --git a/common/viewer.h b/common/viewer.h new file mode 100644 index 00000000000..6be12b30694 --- /dev/null +++ b/common/viewer.h @@ -0,0 +1,227 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "model-views.h" +#include "notifications.h" +#include "viewer.h" +#include + +namespace rs2 +{ + struct popup + { + const std::string header; + const std::string message; + std::function custom_command; + + bool operator =(const popup& p) + { + return p.message == message; + } + }; + + class viewer_model; + + class frameset_allocator : public filter + { + public: + frameset_allocator(viewer_model* viewer); + private: + viewer_model* owner; + }; + + struct export_model + { + template + static export_model make_exporter(std::string name, std::string extension, T (&filters_str)[sz]) + { + return export_model(name, extension, filters_str, sz); + + } + std::string name; + std::string extension; + std::vector filters; + std::map options; + + private: + export_model(std::string name, std::string extension, const char* filters_str, size_t filters_size) : name(name), + extension(extension), filters(filters_str, filters_str + filters_size) {}; + }; + + class viewer_model + { + public: + void reset_camera(float3 pos = { 0.0f, 0.0f, -1.0f }); + + void update_configuration(); + + const float panel_width = 340.f; + const float panel_y = 50.f; + const float default_log_h = 110.f; + + float get_output_height() const { return (is_output_collapsed ? default_log_h : 15); } + + rs2::frame handle_ready_frames(const rect& viewer_rect, ux_window& window, int devices, std::string& error_message); + + viewer_model(context &ctx_); + + ~viewer_model() + { + // Stopping post processing filter rendering thread + ppf.stop(); + streams.clear(); + } + + void begin_stream(std::shared_ptr d, rs2::stream_profile p); + + std::shared_ptr get_last_texture(); + + std::vector get_frames(frame set); + frame get_3d_depth_source(frame f); + frame get_3d_texture_source(frame f); + + bool is_3d_depth_source(frame f); + bool is_3d_texture_source(frame f); + + std::shared_ptr upload_frame(frame&& f); + + std::map calc_layout(const rect& r); + + void show_no_stream_overlay(ImFont* font, int min_x, int min_y, int max_x, int max_y); + void show_no_device_overlay(ImFont* font, int min_x, int min_y); + void show_rendering_not_supported(ImFont* font_18, int min_x, int min_y, int max_x, int max_y, rs2_format format); + + void show_paused_icon(ImFont* font, int x, int y, int id); + void show_recording_icon(ImFont* font_18, int x, int y, int id, float alpha_delta); + + void popup_if_error(const ux_window& window, std::string& error_message); + + void show_popup(const ux_window& window, const popup& p); + + void popup_firmware_update_progress(const ux_window& window, const float progress); + + void show_event_log(ImFont* font_14, float x, float y, float w, float h); + + void render_pose(rs2::rect stream_rect, float buttons_heights); + + void show_3dviewer_header(ImFont* large_font, ImFont* font, rs2::rect stream_rect, bool& paused, std::string& error_message); + + void update_3d_camera(ux_window& win, const rect& viewer_rect, bool force = false); + + void show_top_bar(ux_window& window, const rect& viewer_rect, const device_models_list& devices); + + void render_3d_view(const rect& view_rect, + std::shared_ptr texture, rs2::points points, ImFont *font1); + + void render_2d_view(const rect& view_rect, ux_window& win, int output_height, + ImFont *font1, ImFont *font2, size_t dev_model_num, const mouse_info &mouse, std::string& error_message); + + void gc_streams(); + + std::mutex streams_mutex; + std::map streams; + std::map streams_origin; + bool fullscreen = false; + stream_model* selected_stream = nullptr; + std::shared_ptr syncer; + post_processing_filters ppf; + + context &ctx; + notifications_model not_model; + bool is_output_collapsed = false; + bool is_3d_view = false; + bool paused = false; + bool metric_system = true; + + enum export_type + { + ply + }; + std::map exporters; + frameset_allocator frameset_alloc; + + void draw_viewport(const rect& viewer_rect, + ux_window& window, int devices, std::string& error_message, + std::shared_ptr texture, rs2::points f = rs2::points()); + + bool allow_3d_source_change = true; + bool allow_stream_close = true; + + std::array roi_rect; + bool draw_plane = false; + + bool draw_frustrum = true; + bool support_non_syncronized_mode = true; + std::atomic synchronization_enable; + std::atomic zo_sensors; + + int selected_depth_source_uid = -1; + int selected_tex_source_uid = -1; + + float dim_level = 1.f; + + bool continue_with_ui_not_aligned = false; + bool continue_with_current_fw = false; + + press_button_model trajectory_button{ u8"\uf1b0", u8"\uf1b0","Draw trajectory", "Stop drawing trajectory", true }; + press_button_model grid_object_button{ u8"\uf1cb", u8"\uf1cb", "Configure Grid", "Configure Grid", false }; + press_button_model pose_info_object_button{ u8"\uf05a", u8"\uf05a", "Show pose stream info overlay", "Hide pose stream info overlay", false }; + + bool show_pose_info_3d = false; + + private: + void check_permissions(); + + std::vector _active_popups; + + struct rgb { + uint32_t r, g, b; + }; + + struct rgb_per_distance { + float depth_val; + rgb rgb_val; + }; + + friend class post_processing_filters; + std::map get_interpolated_layout(const std::map& l); + void show_icon(ImFont* font_18, const char* label_str, const char* text, int x, int y, + int id, const ImVec4& color, const std::string& tooltip = ""); + void draw_color_ruler(const mouse_info& mouse, + const stream_model& s_model, + const rect& stream_rect, + std::vector rgb_per_distance_vec, + float ruler_length, + const std::string& ruler_units); + float calculate_ruler_max_distance(const std::vector& distances) const; + + void set_export_popup(ImFont* large_font, ImFont* font, rect stream_rect, std::string& error_message, config_file& temp_cfg); + + streams_layout _layout; + streams_layout _old_layout; + std::chrono::high_resolution_clock::time_point _transition_start_time; + + // 3D-Viewer state + float3 pos = { 0.0f, 0.0f, -0.5f }; + float3 target = { 0.0f, 0.0f, 0.0f }; + float3 up; + bool fixed_up = true; + bool render_quads = true; + + float view[16]; + bool texture_wrapping_on = true; + GLint texture_border_mode = GL_CLAMP_TO_EDGE; // GL_CLAMP_TO_BORDER + + rs2::points last_points; + std::shared_ptr last_texture; + + // Infinite pan / rotate feature: + bool manipulating = false; + float2 overflow = { 0.f, 0.f }; + + rs2::gl::camera_renderer _cam_renderer; + rs2::gl::pointcloud_renderer _pc_renderer; + }; +} diff --git a/common/windows-app-bootstrap.cpp b/common/windows-app-bootstrap.cpp index a809a46a4cb..1805605de2c 100644 --- a/common/windows-app-bootstrap.cpp +++ b/common/windows-app-bootstrap.cpp @@ -11,6 +11,8 @@ #include #include +#include "metadata-helper.h" + int main(int argv, const char** argc); int CALLBACK WinMain( @@ -30,6 +32,17 @@ int CALLBACK WinMain( { std::wstring ws = szArgList.get()[i]; std::string s(ws.begin(), ws.end()); + + if (s == rs2::metadata_helper::get_command_line_param()) + { + try + { + rs2::metadata_helper::instance().enable_metadata(); + exit(0); + } + catch (...) { exit(-1); } + } + args.push_back(s); } diff --git a/config/99-realsense-libusb.rules b/config/99-realsense-libusb.rules index ac9c30dc66d..014432252fd 100644 --- a/config/99-realsense-libusb.rules +++ b/config/99-realsense-libusb.rules @@ -12,6 +12,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad3", MODE:="066 SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad4", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad6", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af6", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aff", MODE:="0666", GROUP:="plugdev" @@ -21,10 +22,29 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b03", MODE:="066 SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b07", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b0c", MODE:="0666", GROUP:="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b0d", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b48", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b49", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b52", MODE:="0666", GROUP:="plugdev" + +# Intel RealSense recovery devices (DFU) +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ab3", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0adb", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0adc", MODE:="0666", GROUP:="plugdev" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b55", MODE:="0666", GROUP:="plugdev" + +# Intel RealSense devices (Movidius, T265) SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0af3", MODE="0666", GROUP="plugdev" +SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0b37", MODE="0666", GROUP="plugdev" SUBSYSTEMS=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="03e7", ATTRS{idProduct}=="2150", MODE="0666", GROUP="plugdev" + KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0ad5", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" +KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" +DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0af2", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0afe", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0aff", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" @@ -33,3 +53,11 @@ KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b00", MODE:="0777", DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b00", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b01", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" DRIVER=="hid_sensor_custom", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b01", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" +KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" +DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" +KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" +DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3d", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" +KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" +DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4b", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" +KERNEL=="iio*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", MODE:="0777", GROUP:="plugdev", RUN+="/bin/sh -c 'chmod -R 0777 /sys/%p'" +DRIVER=="hid_sensor*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b4d", RUN+="/bin/sh -c ' chmod -R 0777 /sys/%p && chmod 0777 /dev/%k'" diff --git a/config/librealsense-gl.pc.in b/config/librealsense-gl.pc.in new file mode 100644 index 00000000000..626795a8b66 --- /dev/null +++ b/config/librealsense-gl.pc.in @@ -0,0 +1,17 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix} +includedir=${prefix}/include +#TODO: libdir=${exec_prefix}/lib@MULTI_ARCH_SUFFIX@ +libdir= ${prefix}/lib/x86_64-linux-gnu + +Name: realsense2-gl +Description: Intel(R) RealSense(tm) GLSL Extension Module +Version: @REALSENSE-GL_VERSION_STRING@ +URL: https://github.com/IntelRealSense/librealsense +Requires.private: @LRS_LIB_NAME@ +Libs: -L${libdir} -l@LRS_LIB_NAME@ +Libs.private: @LRS_PKG_LIBS@ +Cflags: -I${includedir} + +#TODO check -Wl -Bdynamic +#Libs: -L${libdir} -Wl,-Bdynamic -lrealsense diff --git a/doc/android.md b/doc/android.md new file mode 100644 index 00000000000..0441330ae29 --- /dev/null +++ b/doc/android.md @@ -0,0 +1,29 @@ +>:pushpin: The SDK 2.0 delivers cross-platform open source libraries & tools that allow users to develop on multiple Operating Systems & development environments. Intel has validated SDK2.0 on Windows and Linux platforms. Please check [latest Release](https://github.com/IntelRealSense/librealsense/releases) for the build versions. While Intel has not explicitly validated SDK2.0 on Android platforms, it is expected to work on Android as well. Please refer to the build instructions in the section below. Calibration and firmware update tools that would be used in production and manufacturing processes are not available on Android at this time. Please contact your Intel representative for additional information. + +>:pushpin: The T265 tracking module is not yet supported on Android via librealsense. Support is planned to be added in a future release. + +# Intel® RealSense™ SDK 2.0 for Android OS + +Using the Android wrapper allows you to build both native (C/C++) and Java applications for Android. +In order to do that a RealSense Android App need to include `librealsense.aar` (Android Archive) in it's dependencies. +The AAR file is responsible to acquire camera access permissions and it also provides a JNI based RealSense Java API. + +> Previous Android solution was limited to rooted devices only, but is still available [here](https://github.com/IntelRealSense/librealsense/tree/v2.18.1/doc/android) + +## Ingredients +Before jumping to the instructions section please ensure you have all the required accessories. +1. Android target device with Android version >= 4.4 that supports OTG feature. +2. [Android Studio IDE](https://developer.android.com/studio). +3. [USB3 OTG](https://en.wikipedia.org/wiki/USB_On-The-Go) cable. + +## Build A RealSense Application +We provide two stand alone examples that demonstrates how to link with librealsense AAR from the maven repository. +These two examples focus on the grudle configuration and contains minimal code. +Follow the [Java example](../wrappers/android/examples/java_example/readme.md) or [Native example](../wrappers/android/examples/native_example/readme.md) for more details. +You can also [build RealSense AAR from source](../wrappers/android/readme.md) and add the generated AAR as a dependency as described [here](https://developer.android.com/studio/projects/android-library#AddDependency). +Graphical Java examples such as 'capture', 'recording' and 'playback' are available in the examples folder as part of the Android wrapper project. + +Below is an [example](https://play.google.com/store/apps/details?id=com.intel.realsense.camera) of an application with librealsense on the android platform. + +![](img/realsense-android.png) + diff --git a/doc/android/Android.md b/doc/android/Android.md deleted file mode 100644 index f9bcc8cd7b9..00000000000 --- a/doc/android/Android.md +++ /dev/null @@ -1,17 +0,0 @@ ->:pushpin: The SDK 2.0 delivers cross-platform open source libraries & tools that allow users to develop on multiple Operating Systems & development environments. Intel has validated SDK2.0 on Windows and Linux platforms. Please check [latest Release](https://github.com/IntelRealSense/librealsense/releases) for the build versions. While Intel has not explicitly validated SDK2.0 on Android platforms, it is expected to work on Android as well. Please refer to the build instructions in the section below. Calibration and firmware update tools that would be used in production and manufacturing processes are not available on Android at this time. Please contact your Intel representative for additional information. - - -# Build Intel® RealSense™ SDK 2.0 for Android OS -This document describes how to build the [Intel® RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense) including headless tools and examples for Android devices. - -> **Disclaimer:** There is a limitation in access to the camera from a native code due to Android USB permissions policy. Therefore, building Intel® RealSense™ SDK 2.0 for Android devices will run only on [rooted](https://en.wikipedia.org/wiki/Rooting_(Android)) devices. - -## Ingredients -Before jumping to the instructions section please ensure you have all the required accessories. -1. Linux host machine with [Ubuntu 16.04](https://www.ubuntu.com/download/desktop). -2. [Rooted Android target device](https://en.wikipedia.org/wiki/Rooting_(Android)) that supports OTG feature. -3. [USB3 OTG](https://en.wikipedia.org/wiki/USB_On-The-Go) cable. - -## Instructions of how to build SDK Headless Samples & Android Application -* [Build RealSense SDK headless tools and examples](./AndroidNativeSamples.md) -* [Build an Android application for RealSense SDK](./AndroidJavaApp.md) diff --git a/doc/android/AndroidJavaApp.md b/doc/android/AndroidJavaApp.md deleted file mode 100644 index 689cba619b1..00000000000 --- a/doc/android/AndroidJavaApp.md +++ /dev/null @@ -1,73 +0,0 @@ -# Build an Android Application for RealSense SDK -This document describes how to build an Android application to stream Depth data with RealSense cameras. - -> Read about Android support [here](./Android.md). - -## Instructions -1. [Root](https://www.wikihow.tech/Root-Android-Phones) your Android device. -2. Install [Android Studio](https://developer.android.com/studio/install.html) IDE for Linux. - -3. Open Android Studio. -```shell -./android-studio/bin/studio.sh -``` -

- -Click on `configure` and choose `SDK Manager`. -[Install LLDB, CMake and NDK](https://developer.android.com/ndk/guides/index.html#download-ndk) for Android Studio. Go to section "Download the NDK and Tools" and start with the second step (2. Click the SDK Tools tab). - -5. Click on `Start a new Android Studio project`. - -6. Change the Application Name and the Company Domain to `realsense_app` and `example.com` respectively, tick the checkbox `Include C++ support` and click on the `Next` button. -

- -7. Choose `API 19: Android 4.4 (KitKat)` in the first listbox and click on the `Next` button. -

- -8. Choose `Empty Activity` and click on the `Next` button. -

- -9. Ensure that the `Activity Name` and the `Layout Name` are containing `MainActivity` and `activity_main` respectively and click on the `Next` button. -

- -10. Choose `C++11` at the `C++ Standard` list box, tick the checkbox `Exception Support` and click on the `Next` button. -

- -11. Clone the latest [RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense/releases) to your host machine and place the librealsense folder in the Android application folder under `./realsense_app/app/src/main/cpp/`. - -12. Replace the content of `MainActivity`, `native-lib.cpp`, `activity_main.xml` and `CMakeLists.txt` with [MainActivity](MainActivity.java_), [native-lib.cpp](./native-lib.cpp_), [activity_main.xml](./activity_main.xml_) and [CMakeLists.txt](./CMakeLists.txt_) respectively. -

- -13. In the `Gradle Scripts` section, go to the module-level `build.gradle` file. In the `defaultConfig` block, add an `ndk` block and configure the `abiFilters` option with `armeabi-v7a`: -``` -android { - ... - defaultConfig { - ... - ndk { - abiFilters 'armeabi-v7a' - } - } -} -``` - -14. Connect the Android device to the host machine. -Click on `Run` and choose `Run 'app'`. Choose your Android device and click on the `OK` button. At the end of this process a new application supposed to appear at the Android device. -

- -15. Install [Terminal Emulator](https://en.wikipedia.org/wiki/Terminal_emulator) on your Android device from Google Play Store. -16. Use the USB OTG cable to connect the RealSense camera to your Android device. -17. Open the Terminal Emulator application and type below lines in order to move to Super User mode and change the USB permissions. -```shell -su -setenforce 0 -lsusb -chmod 0777 /dev/bus/usb// -``` -

- -18. Open the `realsense_app` application. - -## Expected Output -* Streaming Depth data using rooted Samsung Galaxy S4 device. -

diff --git a/doc/android/AndroidNativeSamples.md b/doc/android/AndroidNativeSamples.md deleted file mode 100644 index 82188dfdab7..00000000000 --- a/doc/android/AndroidNativeSamples.md +++ /dev/null @@ -1,66 +0,0 @@ -# Build RealSense SDK Samples for Android OS -This document describes how to build the Intel® RealSenseâ„¢ SDK 2.0 including headless tools and examples for Android devices. - -> Read about Android support [here](./Android.md). - -## Instructions -1. [Root](https://www.wikihow.tech/Root-Android-Phones) your Android device. -2. Download the [Native Development Kit (NDK)](https://developer.android.com/ndk/downloads/index.html) for Linux to your host machine. -3. Install [CMake](https://cmake.org/) 3.6.1 or newer. -4. Download [ADB](https://developer.android.com/studio/command-line/adb.html) to the host machine by typing `sudo apt-get install adb`. -5. Clone the latest [RealSense™ SDK 2.0](https://github.com/IntelRealSense/librealsense/releases) to your host machine. -6. Change the streaming width and height to 480 and 270 respectively in [rs-depth](https://github.com/IntelRealSense/librealsense/blob/7724c1d8717f4e6b4486ae7b106559a889de4a1c/examples/C/depth/rs-depth.c#L21) and [rs-distance](https://github.com/IntelRealSense/librealsense/blob/7724c1d8717f4e6b4486ae7b106559a889de4a1c/examples/C/distance/rs-distance.c#L21) examples using Linux text editor. - -7. Open Terminal on the host machine, navigate to *librealsense* root directory and type the following lines: -```shell -mkdir build && cd build -cmake .. -DANDROID_ABI= -DCMAKE_TOOLCHAIN_FILE=/build/cmake/android.toolchain.cmake -DFORCE_LIBUVC=TRUE -DBUILD_SHARED_LIBS=false -make -``` - -> Initialize ANDROID_ABI with one of the [supported ABIs](https://developer.android.com/ndk/guides/abis.html#sa) (`armeabi-v7a` for example). - -8. When compilation done type the following lines to store the binaries at the same location to easily copy them to your Android device. -```shell -mkdir lrs_binaries && cd lrs_binaries -cp ../examples/C/color/rs-color ./ -cp ../examples/C/depth/rs-depth ./ -cp ../examples/C/distance/rs-distance ./ -cp ../examples/save-to-disk/rs-save-to-disk ./ -cp ../tools/data-collect/rs-data-collect ./ -cp ../tools/enumerate-devices/rs-enumerate-devices ./ -cp ../tools/fw-logger/rs-fw-logger ./ -cp ../tools/terminal/rs-terminal ./ -``` -9. Connect your Android device to the host machine using USB OTG cable. -10. Create new folder and copy the binaries to your Android device using ADB by the following lines: -```shell -adb shell mkdir -p /storage/emulated/legacy/lrs_binaries -adb push . /storage/emulated/legacy/lrs_binaries/ -``` - -11. Open ADB Shell and move to Super User mode by the following line: -```shell -adb shell su -``` - -12. Copy the binaries to the internal storage and change their permission to be executables by the following lines: -```shell -cp -R /storage/emulated/legacy/lrs_binaries /data/ -cd /data/lrs_binaries -chown root:root * -chmod +x * -``` - -13. Use the USB OTG cable to connect the RealSense camera to your Android device. -14. Install [Terminal Emulator](https://en.wikipedia.org/wiki/Terminal_emulator) on your Android device from Google Play Store. -15. Open the Terminal Emulator application and type below lines in order to move to Super User mode and run one of the RealSense examples/tools. -```shell -su -cd /data/lrs_binaries -./rs-depth -``` - -## Expected Output -* Streaming Depth data using [rs-depth sample](https://github.com/IntelRealSense/librealsense/tree/master/examples/C/depth) on rooted Samsung Galaxy S4 device. -

diff --git a/doc/android/CMakeLists.txt_ b/doc/android/CMakeLists.txt_ deleted file mode 100644 index 7b8b1cbdc08..00000000000 --- a/doc/android/CMakeLists.txt_ +++ /dev/null @@ -1,55 +0,0 @@ -# For more information about using CMake with Android Studio, read the -# documentation: https://d.android.com/studio/projects/add-native-code.html - -# Sets the minimum version of CMake required to build the native library. - -cmake_minimum_required(VERSION 3.4.1) - -set(ANDROID on CACHE BOOL "ANDROID") -set(APP_PLATFORM "android-16" CACHE STRING "ANDROID") -set(BUILD_UNIT_TESTS off CACHE BOOL "BUILD_UNIT_TESTS") -set(BUILD_EXAMPLES off CACHE BOOL "BUILD_EXAMPLES") -set(FORCE_LIBUVC on CACHE BOOL "FORCE_LIBUVC") - -add_subdirectory(src/main/cpp/librealsense) - -# Creates and names a library, sets it as either STATIC -# or SHARED, and provides the relative paths to its source code. -# You can define multiple libraries, and CMake builds them for you. -# Gradle automatically packages shared libraries with your APK. - -add_library( # Sets the name of the library. - native-lib - - # Sets the library as a shared library. - SHARED - - # Provides a relative path to your source file(s). - src/main/cpp/native-lib.cpp ) - -# Searches for a specified prebuilt library and stores the path as a -# variable. Because CMake includes system libraries in the search path by -# default, you only need to specify the name of the public NDK library -# you want to add. CMake verifies that the library exists before -# completing its build. - -find_library( # Sets the name of the path variable. - log-lib - - # Specifies the name of the NDK library that - # you want CMake to locate. - log ) - -# Specifies libraries CMake should link to your target library. You -# can link multiple libraries, such as libraries you define in this -# build script, prebuilt third-party libraries, or system libraries. - -target_link_libraries( # Specifies the target library. - native-lib - - realsense2 - - # Links the target library to the log library - # included in the NDK. - ${log-lib} ) - diff --git a/doc/android/MainActivity.java_ b/doc/android/MainActivity.java_ deleted file mode 100644 index bf2413303f6..00000000000 --- a/doc/android/MainActivity.java_ +++ /dev/null @@ -1,120 +0,0 @@ -package com.example.realsense_app; - -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.widget.Toast; -import java.util.concurrent.atomic.AtomicBoolean; - - -public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback { - - // Used to load the 'native-lib' library on application startup. - static { - System.loadLibrary("native-lib"); - } - - static String className; - static SurfaceView mSurfaceView; - static SurfaceHolder mSurfaceHolder; - static Paint paint = new Paint(); - static AtomicBoolean surfaceExists = new AtomicBoolean(false); - - public static void onFrame(Object frameBuff, int width, int height) - { - if (!surfaceExists.get()) - return; - - byte[] data = (byte[])frameBuff; - int intByteCount = data.length; - int[] intColors = new int[intByteCount / 3]; - final int intAlpha = 255; - if ((intByteCount / 3) != (width * height)) { - throw new ArrayStoreException(); - } - - for (int intIndex = 0; intIndex < intByteCount - 2; intIndex = intIndex + 3) { - intColors[intIndex / 3] = (intAlpha << 24) | (data[intIndex] << 16) | (data[intIndex + 1] << 8) | data[intIndex + 2]; - } - - Bitmap bitmap = Bitmap.createBitmap(intColors, width, height, Bitmap.Config.ARGB_8888); - bitmap = Bitmap.createScaledBitmap(bitmap, mSurfaceView.getWidth(), - mSurfaceView.getHeight(), - true); - Canvas rCanvas = mSurfaceHolder.lockCanvas(); - - rCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); - - // draw the bitmap - rCanvas.drawBitmap(bitmap, 0, 0, paint); - mSurfaceHolder.unlockCanvasAndPost(rCanvas); - } - - - @Override - protected void onCreate(Bundle savedInstanceState) { - try{ - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - className = getClass().getName().replace('.', '/'); - - paint.setColor(0xFFFFFFFF); - paint.setStyle(Paint.Style.STROKE); - - mSurfaceView = (SurfaceView) this.findViewById(R.id.camera_surface_view); - mSurfaceHolder = mSurfaceView.getHolder(); - mSurfaceHolder.addCallback(this); - - startStreaming(className); - } - catch (Exception ex) - { - Toast.makeText(getBaseContext(), ex.getMessage(), - Toast.LENGTH_LONG).show(); - } - } - - @Override - protected void onDestroy() { - try { - mSurfaceHolder.removeCallback(this); - stopStreaming(); - super.onDestroy(); - } - catch (Exception ex) - { - Toast.makeText(getBaseContext(), ex.getMessage(), - Toast.LENGTH_LONG).show(); - } - } - - - /** - * A native method that is implemented by the 'native-lib' native library, - * which is packaged with this application. - */ - public native void startStreaming(String className); - public native void stopStreaming(); - - @Override - public void surfaceCreated(SurfaceHolder surfaceHolder) { - surfaceExists.set(true); - } - - @Override - public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { - - } - - @Override - public void surfaceDestroyed(SurfaceHolder surfaceHolder) { - surfaceExists.set(false); - } -} diff --git a/doc/android/native-lib.cpp_ b/doc/android/native-lib.cpp_ deleted file mode 100644 index 291a100512b..00000000000 --- a/doc/android/native-lib.cpp_ +++ /dev/null @@ -1,111 +0,0 @@ -#include -#include -#include -#include -#include -#include "librealsense/include/librealsense2/rs.hpp" -#include "librealsense/include/librealsense2/hpp/rs_context.hpp" -#include "librealsense/include/librealsense2/hpp/rs_pipeline.hpp" -#include "librealsense/include/librealsense2/hpp/rs_internal.hpp" - -static rs2::context ctx; -static std::atomic streaming(false); -static std::thread frame_thread; - -extern "C" -JNIEXPORT void JNICALL -Java_com_example_realsense_1app_MainActivity_startStreaming(JNIEnv *env, jobject jobj, jstring className) { - try { - if (streaming) - return; - - const char* nativeClassName = env->GetStringUTFChars(className, 0); - jclass localClass = env->FindClass(nativeClassName); - if (localClass == NULL) { - throw std::runtime_error("FindClass(...) failed!"); - } - - jclass handlerClass = reinterpret_cast(env->NewGlobalRef(localClass)); - env->ReleaseStringUTFChars(className, nativeClassName); - - jmethodID onFrame = env->GetStaticMethodID(handlerClass, "onFrame", - "(Ljava/lang/Object;II)V"); - if (onFrame == NULL) { - env->DeleteGlobalRef(handlerClass); - throw std::runtime_error("GetStaticMethodID(...) failed!"); - } - - auto list = ctx.query_devices(); - if (0 == list.size()) { - env->DeleteGlobalRef(handlerClass); - throw std::runtime_error("No RealSense devices where found!"); - } - - JavaVM* vm; - env->GetJavaVM(&vm); - frame_thread = std::thread([vm, handlerClass, onFrame](){ - static const rs2_format format = RS2_FORMAT_Z16; - static const rs2_stream stream = RS2_STREAM_DEPTH; - static const int width = 480, height = 270, bpp = 3, fps = 30; - static const int rgb_frame_size = width * height * bpp; - JNIEnv* env; - vm->AttachCurrentThread(&env, NULL); - jbyteArray arr = env->NewByteArray(rgb_frame_size); - - try { - rs2::pipeline pipe; - rs2::config config; - rs2::pipeline_profile profile; - rs2::colorizer colorizer; - - config.enable_stream(stream, width, height, format, fps); - profile = pipe.start(config); - - streaming = true; - while (streaming) { - rs2::frameset data = pipe.wait_for_frames(); - auto rgb_vid_frame = colorizer.colorize(data.get_depth_frame()); - - env->SetByteArrayRegion(arr, 0, rgb_frame_size, - reinterpret_cast(rgb_vid_frame.get_data())); - - env->CallStaticVoidMethod(handlerClass, onFrame, arr, width, - height); - } - pipe.stop(); - } - catch (const std::exception& ex) - { - throw; - } - - env->DeleteLocalRef(arr); - env->DeleteGlobalRef(handlerClass); - vm->DetachCurrentThread(); - }); - } - catch (const std::exception& ex) - { - jclass jcls = env->FindClass("java/lang/Exception"); - env->ThrowNew(jcls, ex.what()); - } -} - -extern "C" -JNIEXPORT void JNICALL -Java_com_example_realsense_1app_MainActivity_stopStreaming(JNIEnv *env, jobject instance) { - try { - if (!streaming) - return; - - streaming = false; - if (frame_thread.joinable()) - frame_thread.join(); - - } - catch (const std::exception& ex) - { - jclass jcls = env->FindClass("java/lang/Exception"); - env->ThrowNew(jcls, ex.what()); - } -} diff --git a/doc/api_arch.md b/doc/api_arch.md index 3c162176ad4..09dfdf0630b 100644 --- a/doc/api_arch.md +++ b/doc/api_arch.md @@ -1,6 +1,6 @@ # API Architecture -RealSense API provides access to configure, control and access the streaming data of RealSense depth cameras. The API allows getting started with the camera basic functionality using the high level API, or get full control of all camera settings using the low level API. Choose the API best suited to your needs: +RealSense API provides access to configuration, control and streaming of data from RealSense depth cameras. You can get started with the basic functionality using the high level API, or get full control of all camera settings using the low level API: 1. [High-Level Pipeline API](#high-level-pipeline-api) The Pipeline interface configures the Intel® RealSense™ device with the best recommended settings and manages hardware resources and threading. It is accompanied by processing blocks, which abstract and simplify common processing of the camera raw data. Use this API when you require the Camera to work but do not need to fine tune the camera settings or control the streamings threads. Recommended for **Application Developers**. diff --git a/doc/d435i.md b/doc/d435i.md new file mode 100644 index 00000000000..b594bdbda25 --- /dev/null +++ b/doc/d435i.md @@ -0,0 +1,72 @@ +# D435i + +The **Intel® RealSense™ D435i** is a depth camera which includes a [Bosch BMI055](https://www.bosch-sensortec.com/bst/products/all_products/bmi055) 6-axis inertial sensor in addition to the depth camera which measures linear accelerations and angular velocities. Each IMU data packet is timestamped using the depth sensor hardware clock to allow temporal synchronization between gyro, accel and depth frames. + +## Should I use a T265 in addition to or instead of the D435i? + +The [T265](./t265.md) is designed to produce high accuracy, low latency 6 degree of freedom position data without using any additional computational resources. It does not contain a depth camera but can be used in combination with any of the D400 series depth cameras (including the D435i). + +## Sensor origin and coordinate system +The IMU sensor location and orientation relative to the depth sensors are conveniently embedded into the sensor's extrinsic data. In order to align and them with SDK-wide established [orientation convention](https://github.com/IntelRealSense/librealsense/wiki/Projection-in-RealSense-SDK-2.0#point-coordinates) using the depth sensor as coordinate system origin, each IMU sample is multiplied internally by the extrinsic matrix. + +The resulting orientation angles and acceleration vectors share the coordinate system with the depth sensor. +![D400 Depth Sensor Orientation angles](./img/LRS_CS_axis_base.png) +1. The positive x-axis points to the right. +2. The positive y-axis points down. +3. The positive z-axis points forward + +The coordinate system is also compatible with the [OpenCV pinhole camera model](https://docs.opencv.org/3.4.0/d9/d0c/group__calib3d.html) + +## IMU calibration +The D435i IMU sensor does not include internal calibration, which may manifest itself with non-zero angular velocities produced at idle mode and the gravity (accel) force measured being not equal to 9.80665. + +A [complementary calibration tool](https://github.com/IntelRealSense/librealsense/tree/development/tools/rs-imu-calibration#rs-imu-calibration-tool) has been developed and published as part of the SDK. + +Running the calibration routine will calculate IMU intrinsics and store them on device's NVRAM for later use in SDK. + +The depth<->IMU sensor extrinsic (rigid body transformation) is precalculated based on mechanical drawings and cannot be modified. + +When initialized, the SDK will query the device for the existance of the IMU calibration data, and if present - apply it to the raw IMU samples produced by the device. + +## Integration with the SDK +The following `librealsense` tools and demos are IMU ready: + - `rs-capture` - 2D Visualization + - `rs-enumerate-devices` - list the IMU and tracking profiles (FPS rates and formats). + - `rs-data-collect` - Store and serialize IMU in Excel-friendly csv format. The tool uses low-level sensor API to minimize software-imposed latencies. Useful for performance profiling. + - `realsense-viewer` - Provides 2D visualization of IMU data. + +The IMU and data streams are fully compatible with SDK's embedded recorder utility. + +## API +The IMU is treated by the SDK like any other supported sensor. Therefore the sensor access and invocation API calls are similar to those of the depth/rgb sensors of D400 and SR300: + +```cpp +rs2::pipeline pipe; + +rs2::config cfg; +cfg.enable_stream(RS2_STREAM_GYRO); +cfg.enable_stream(RS2_STREAM_ACCEL); + +pipe.start(cfg); + +while (app) // Application still alive? +{ + rs2::frameset frameset = pipe.wait_for_frames(); + + // Find and retrieve IMU data + if (rs2::motion_frame accel_frame = frameset.first_or_default(RS2_STREAM_ACCEL)) + { + rs2_vector accel_sample = accel_frame.get_motion_data(); + //std::cout << "Accel:" << accel_sample.x << ", " << accel_sample.y << ", " << accel_sample.z << std::endl; + //... + } + + if (rs2::motion_frame gyro_frame = frameset.first_or_default(RS2_STREAM_GYRO)) + { + rs2_vector gyro_sample = gyro_frame.get_motion_data(); + //std::cout << "Gyro:" << gyro_sample.x << ", " << gyro_sample.y << ", " << gyro_sample.z << std::endl; + //... + } +} +``` + diff --git a/doc/distribution_linux.md b/doc/distribution_linux.md index a68bea01bff..4c61051ec13 100644 --- a/doc/distribution_linux.md +++ b/doc/distribution_linux.md @@ -1,12 +1,12 @@ # Linux Distribution #### Using pre-build packages -**Intel® RealSense™ SDK 2.0** provides installation packages in [`dpkg`](https://en.wikipedia.org/wiki/Dpkg) format for Ubuntu 16/18 LTS. -The Realsense [DKMS](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) kernel drivers package (`librealsense2-dkms`) supports Ubuntu LTS kernels 4.4, 4.10, 4.13 and 4.15. +**Intel® RealSense™ SDK 2.0** provides installation packages for Intel X86/AMD64-based Debian distributions in [`dpkg`](https://en.wikipedia.org/wiki/Dpkg) format for Ubuntu 16/18 [LTS](https://wiki.ubuntu.com/LTS). +The Realsense [DKMS](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) kernel drivers package (`librealsense2-dkms`) supports Ubuntu LTS kernels 4.4, 4.8, 4.10, 4.13, 4.15, 4.18* 5.0* and 5.3*. Please refer to [Ubuntu Kernel Release Schedule](https://wiki.ubuntu.com/Kernel/Support) for further details. #### Configuring and building from the source code While we strongly recommend to use DKMS package whenever possible, there are certain cases where installing and patching the system manually is necessary: - - Using SDK with linux kernel **version 4.16+** + - Using SDK with non-LTS Ubuntu kernel versions: **4.16 and 5.0** - Integration of user-specific patches/modules with `librealsense` SDK. - Adjusting the patches for alternative kernels/distributions. @@ -14,42 +14,49 @@ The steps are described in [Linux manual installation guide](./installation.md) ## Installing the packages: -- Register the server's public key : -`sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE` +- Register the server's public key: +`sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE` In case the public key still cannot be retrieved, check and specify proxy settings: `export http_proxy="http://:"` , and rerun the command. See additional methods in the following [link](https://unix.stackexchange.com/questions/361213/unable-to-add-gpg-key-with-apt-key-behind-a-proxy). -- Add the server to the list of repositories : +- Add the server to the list of repositories: Ubuntu 16 LTS: `sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u` Ubuntu 18 LTS: `sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u` - When upgrading, remove the old records: - - `sudo rm -f /etc/apt/sources.list.d/realsense-public.list`. - - `sudo apt-get update`. - -- In order to run demos install: +- Install the libraries (see section below if upgrading packages): `sudo apt-get install librealsense2-dkms` `sudo apt-get install librealsense2-utils` The above two lines will deploy librealsense2 udev rules, build and activate kernel modules, runtime library and executable demos and tools. - Reconnect the Intel RealSense depth camera and run: `realsense-viewer` to verify the installation. - -- Developers shall install additional packages: +- Optionally install the developer and debug packages: `sudo apt-get install librealsense2-dev` `sudo apt-get install librealsense2-dbg` With `dev` package installed, you can compile an application with **librealsense** using `g++ -std=c++11 filename.cpp -lrealsense2` or an IDE of your choice. +Reconnect the Intel RealSense depth camera and run: `realsense-viewer` to verify the installation. + +Verify that the kernel is updated : +`modinfo uvcvideo | grep "version:"` should include `realsense` string + +## Upgrading the Packages: +Refresh the local packages cache by invoking: + `sudo apt-get update` + +Upgrade all the installed packages, including `librealsense` with: + `sudo apt-get upgrade` - Verify that the kernel is updated : - `modinfo uvcvideo | grep "version:"` should include `realsense` string +To upgrade selected packages only a more granular approach can be applied: + `sudo apt-get --only-upgrade install ` + E.g: + `sudo apt-get --only-upgrade install librealsense2-utils librealsense2-dkms` ## Uninstalling the Packages: **Important** Removing Debian package is allowed only when no other installed packages directly refer to it. For example removing `librealsense2-udev-rules` requires `librealsense2` to be removed first. Remove a single package with: - `sudo apt-get --purge ` + `sudo apt-get purge ` Remove all RealSense™ SDK-related packages with: `dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge` diff --git a/doc/img/LRS_CS_axis_base.png b/doc/img/LRS_CS_axis_base.png new file mode 100644 index 00000000000..7df373bd3a1 Binary files /dev/null and b/doc/img/LRS_CS_axis_base.png differ diff --git a/doc/img/T265_Robot1.png b/doc/img/T265_Robot1.png new file mode 100644 index 00000000000..e0bbbcd3345 Binary files /dev/null and b/doc/img/T265_Robot1.png differ diff --git a/doc/img/T265_Robot2.png b/doc/img/T265_Robot2.png new file mode 100644 index 00000000000..21240e8f4a6 Binary files /dev/null and b/doc/img/T265_Robot2.png differ diff --git a/doc/img/T265_orientation_axis.png b/doc/img/T265_orientation_axis.png new file mode 100644 index 00000000000..12e1eb16843 Binary files /dev/null and b/doc/img/T265_orientation_axis.png differ diff --git a/doc/img/T265_sensor_extrinsics.png b/doc/img/T265_sensor_extrinsics.png new file mode 100644 index 00000000000..423ab689fff Binary files /dev/null and b/doc/img/T265_sensor_extrinsics.png differ diff --git a/doc/img/install-jetson.png b/doc/img/install-jetson.png new file mode 100644 index 00000000000..8d4e46fc0e6 Binary files /dev/null and b/doc/img/install-jetson.png differ diff --git a/doc/img/jetson-d400.png b/doc/img/jetson-d400.png new file mode 100644 index 00000000000..32fd1a7f53d Binary files /dev/null and b/doc/img/jetson-d400.png differ diff --git a/doc/img/jetson-t265.png b/doc/img/jetson-t265.png new file mode 100644 index 00000000000..85941112d4f Binary files /dev/null and b/doc/img/jetson-t265.png differ diff --git a/doc/img/jetson.jpg b/doc/img/jetson.jpg new file mode 100644 index 00000000000..7191b05234f Binary files /dev/null and b/doc/img/jetson.jpg differ diff --git a/doc/img/latest_release.png b/doc/img/latest_release.png new file mode 100644 index 00000000000..8123b6db996 Binary files /dev/null and b/doc/img/latest_release.png differ diff --git a/doc/img/prerelease.png b/doc/img/prerelease.png new file mode 100644 index 00000000000..d463c8b3420 Binary files /dev/null and b/doc/img/prerelease.png differ diff --git a/doc/img/realsense-android.png b/doc/img/realsense-android.png new file mode 100644 index 00000000000..018560397a2 Binary files /dev/null and b/doc/img/realsense-android.png differ diff --git a/doc/img/t265_pose_orientation.png b/doc/img/t265_pose_orientation.png new file mode 100644 index 00000000000..c3c8b00b2d9 Binary files /dev/null and b/doc/img/t265_pose_orientation.png differ diff --git a/doc/img/t265_snapshot.png b/doc/img/t265_snapshot.png new file mode 100644 index 00000000000..e70844a5836 Binary files /dev/null and b/doc/img/t265_snapshot.png differ diff --git a/doc/img/t265_trajectory_tracker.gif b/doc/img/t265_trajectory_tracker.gif new file mode 100644 index 00000000000..f7bfa209b88 Binary files /dev/null and b/doc/img/t265_trajectory_tracker.gif differ diff --git a/doc/img/win7/device_manager.png b/doc/img/win7/device_manager.png new file mode 100644 index 00000000000..670d817b087 Binary files /dev/null and b/doc/img/win7/device_manager.png differ diff --git a/doc/img/win7/device_manager_after.png b/doc/img/win7/device_manager_after.png new file mode 100644 index 00000000000..726398aaa9a Binary files /dev/null and b/doc/img/win7/device_manager_after.png differ diff --git a/doc/img/win7/driver_setup.png b/doc/img/win7/driver_setup.png new file mode 100644 index 00000000000..fed49e6b58a Binary files /dev/null and b/doc/img/win7/driver_setup.png differ diff --git a/doc/img/win7/installer.png b/doc/img/win7/installer.png new file mode 100644 index 00000000000..83a1e4c34ac Binary files /dev/null and b/doc/img/win7/installer.png differ diff --git a/doc/installation.md b/doc/installation.md index 4b511d02621..c16821619f8 100644 --- a/doc/installation.md +++ b/doc/installation.md @@ -23,11 +23,14 @@ The scripts and commands below invoke `wget, git, add-apt-repository` which may * Complete the boot, login and verify that a supported kernel version (4.**[4,8,10,13,15,16]**]) is in place with `uname -r` - **Download/Clone librealsense github repository:** - 1. Navigate to *librealsense* root directory to run the following scripts.
- Unplug any connected Intel RealSense camera.
+**Download/Clone librealsense github repository:** + * Get *librealsense* sources in one of the following ways:
+ - Download the complete source tree with *git*
+ `git clone https://github.com/IntelRealSense/librealsense.git`
+ - Download and unzip the latest stable version from `master` branch: + https://github.com/IntelRealSense/librealsense/archive/master.zip **Prepare Linux Backend and the Dev. Environment:** 1. Navigate to *librealsense* root directory to run the following scripts.
@@ -49,12 +52,11 @@ The scripts and commands below invoke `wget, git, add-apt-repository` which may > **Cmake Note**: certain librealsense CMAKE flags (e.g. CUDA) require version 3.8+ which is currently not made available via apt manager for Ubuntu LTS. Go to the [official CMake site](https://cmake.org/download/) to download and install the application - **Note** on graphic sub-system utilization:
+ **Note** on graphic sub-system utilization:
*glfw3*, *mesa* and *gtk* packages are required if you plan to build the SDK's OpenGl-enabled examples. The *librealsense* core library and a range of demos/tools are designed for headless environment deployment. - 3. Install Intel Realsense permission scripts located in librealsense source directory:
- `sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/`
- `sudo udevadm control --reload-rules && udevadm trigger` + 3. Run Intel Realsense permissions script located from librealsense root directory:
+ `./scripts/setup_udev_rules.sh`
4. Build and apply patched kernel modules for:
@@ -71,15 +73,19 @@ The scripts and commands below invoke `wget, git, add-apt-repository` which may Based on the custom kernel provided by Canonical Ltd. `./scripts/patch-realsense-ubuntu-xenial-joule.sh`
- * **Arch-based distributions** - * You need to install the [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) package group. - * You also need to install the matching linux-headers as well (i.e.: linux-lts-headers for the linux-lts kernel).
- * Navigate to the scripts folder `cd ./scripts/`
- * Then run the following script to patch the uvc module: `./patch-arch.sh`

- * **Odroid XU4 with Ubuntu 16.04 4.14 image** - Based on the custom kernel provided by Hardkernel + * **Arch-based distributions** + * Install the [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) package group. + * Install the matching linux-headers as well (i.e.: linux-lts-headers for the linux-lts kernel).
+ * Navigate to the scripts folder
+ `cd ./scripts/`
+ * Then run the following script to patch the uvc module:
+ `./patch-arch.sh`

+ + * **Odroid XU4 with Ubuntu 16.04 4.14 image** + Based on the custom kernel provided by Hardkernel
`./scripts/patch-realsense-ubuntu-odroid.sh`
+ Some additional details on the Odroid installation can also be found in [installation_odroid.md](installation_odroid.md) > Check the patched modules installation by examining the generated log as well as inspecting the latest entries in kernel log:
@@ -122,7 +128,8 @@ The scripts and commands below invoke `wget, git, add-apt-repository` which may `sudo make uninstall && make clean && make **-j8** && sudo make install`
This enhancement may significantly improve the build time. The side-effect, however, is that it may cause a low-end platform to hang randomly.
**Note:** Linux build configuration is presently configured to use the V4L2 backend by default.
- **Note:** If you encounter the following error during compilation `gcc: internal compiler error` it might indicate that you do not have enough memory or swap space on your machine. Try closing memory consuming applications, and if you are running inside a VM increase available RAM to at least 2 GB. + **Note:** If you encounter the following error during compilation `gcc: internal compiler error` it might indicate that you do not have enough memory or swap space on your machine. Try closing memory consuming applications, and if you are running inside a VM increase available RAM to at least 2 GB.
+ **Note:** You can find more information about the available configuration options on [this wiki page](https://github.com/IntelRealSense/librealsense/wiki/Build-Configuration). 2. Install IDE (Optional): We use QtCreator as an IDE for Linux development on Ubuntu diff --git a/doc/installation_jetson.md b/doc/installation_jetson.md index cb08d10a2c5..978c85db1a5 100644 --- a/doc/installation_jetson.md +++ b/doc/installation_jetson.md @@ -1,14 +1,55 @@ -# Jetson TX2 Installation +# NVidia Jetson Devices -> Check out [www.jetsonhacks.com](http://www.jetsonhacks.com/) for more great content regarding RealSense on the Jetson +**NOTE**: See [support-matrix.md](./support-matrix.md) to learn more about Jetson support for RealSense devices. -**NOTE: Intel does not officially support the Jetson line of devices. Furthermore, there are several [known issues](../../../issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20jetson) with running librealsense on jetson.**

-To install librealsense on the Jetson TX2 Developer Kit, Follow the [regular instructions](installation.md) for Ubuntu 16.04. +> Check out [www.jetsonhacks.com](http://www.jetsonhacks.com/) for great content on everything Jetson! (not affiliated with Intel RealSense) -A couple things of note: -1. Make sure you are running the [latest L4T release](https://developer.nvidia.com/embedded/linux-tegra) as published by NVIDIA. -2. The `./scripts/patch-realsense-ubuntu-xenial.sh` script will *NOT* work as is. The following are the minimal changes necessary to make the script run. - * Change [line #26](../scripts/patch-realsense-ubuntu-xenial.sh#L26) to `kernel_name="kernel-4.4"` - * Replace [line #29](../scripts/patch-realsense-ubuntu-xenial.sh#L29) with: `[ ! -d ${kernel_name} ] && git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git && cd buildJetsonTX2Kernel && ./getKernelSources.sh && ./scripts/fixMakeFiles.sh && cd .. && cp /usr/src/kernel/${kernel_name} ./${kernel_name}` - * Comment out [lines #33-53](../scripts/patch-realsense-ubuntu-xenial.sh#L33-L53). This is necessary because the original script grabs the kernel sources from a git repository, which NVIDIA does not provide for L4T, and this segment was written with that assumption in mind. -3. QtCreator won't work out of the box on the Jetson. JetsonHacks has posted a [helpful tutorial](http://www.jetsonhacks.com/2017/01/31/install-qt-creator-nvidia-jetson-tx1/) explaining how to properly configure it. +## Getting started + +1. **Prerequisites:** + + * **Jetson Nano** or **Jetson TX2** board (may also work on other Jetson devices) + * RealSense **D415**, **D435**, **D435i**, **SR300** or **T265** Camera + + +2. Follow [official instructions](https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit) to get your board ready. This guide will assume you are using official **Ubuntu 16.04** image from NVidia. We strongly recommend enabling the Barrel Jack connector for extra power (See [jetsonhacks.com/jetson-nano-use-more-power/](https://www.jetsonhacks.com/2019/04/10/jetson-nano-use-more-power/) to learn how) + + ![Jetson Nano](./img/jetson.jpg) + +> **Kernel Patches?** - There is a lot of confusion surrounding kernel patching for NVidia Jetson. [Previous versions](https://github.com/IntelRealSense/librealsense/blob/v2.29.0/doc/installation_jetson.md) of this document as well as [jetsonhacks.com guide](https://www.jetsonhacks.com/2019/05/16/jetson-nano-realsense-depth-camera/) are suggesting different patching strategies. While manual patching is still viable, starting with librealsense 2.24 (and 2.26 for the D435i) there is a better way: + +3. Register the server's public key: +``` +sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE +``` + +> In case the public key cannot be retrieved, check and specify proxy settings: `export http_proxy="http://:"`, and rerun the command. See additional methods in the following [link](https://unix.stackexchange.com/questions/361213/unable-to-add-gpg-key-with-apt-key-behind-a-proxy). + +4. Add the server to the list of repositories: + + * Ubuntu 16: + ``` + sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u + ``` + + * Ubuntu 18: + ``` + sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u + ``` + +5. Install the SDK: +``` +sudo apt-get install librealsense2-utils +sudo apt-get install librealsense2-dev +``` +![installation](./img/install-jetson.png) + +> With `dev` package installed, you can compile an application with **librealsense** using `g++ -std=c++11 filename.cpp -lrealsense2` or an IDE of your choice. To get started with RealSense using **CMake** check out [librealsense/examples/cmake](https://github.com/IntelRealSense/librealsense/tree/master/examples/cmake) + +6. Reconnect the RealSense device and run: `realsense-viewer` to verify the installation: + + ![d400](./img/jetson-d400.png) ![t265](./img/jetson-t265.png) + + You can also double-TAB after typing `rs-` to see the full list of SDK examples. + +> **What about Building from Source?** - you can still build the SDK from source. To avoid kernel patching prerequisites we recommend building with `-DFORCE_LIBUVC=true` CMake flag. See [libuvc_installation.sh](https://github.com/IntelRealSense/librealsense/blob/master/scripts/libuvc_installation.sh). If you have CUDA dev-kit installed, don't forget to add `-DBUILD_WITH_CUDA=true` for better performance. diff --git a/doc/installation_osx.md b/doc/installation_osx.md index 53a657d9910..ddd12b9bedb 100644 --- a/doc/installation_osx.md +++ b/doc/installation_osx.md @@ -2,27 +2,33 @@ **Note:** macOS support for the full range of functionality offered by the SDK is not yet complete. If you need support for R200 or the ZR300, [legacy librealsense](https://github.com/IntelRealSense/librealsense/tree/legacy) offers a subset of SDK functionality. +**Note:** The T265 tracking module is not yet fully supported on macOS via librealsense. Support is planned to be added in a future release. + ## Building from Source -1. Install XCode 6.0+ via the AppStore +1. Install CommantLineTools `sudo xcode-select --install` or download XCode 6.0+ via the AppStore 2. Install the Homebrew package manager via terminal - [link](http://brew.sh/) 3. Install the following packages via brew: - * `brew install libusb pkg-config` - * `brew install homebrew/core/glfw3` - * `brew install cmake` + * `brew install cmake libusb pkg-config` + * `brew cask install apenngrace/vulkan/vulkan-sdk` -**Note** *librealsense* requires CMake version 3.8+ that can be obtained via the [official CMake site](https://cmake.org/download/). +**Note** *librealsense* requires CMake version 3.8+ that can also be obtained via the [official CMake site](https://cmake.org/download/). 4. Generate XCode project: * `mkdir build && cd build` * `sudo xcode-select --reset` - * `cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false -G Xcode` -5. Open and build the XCode project + * `cmake .. -DBUILD_EXAMPLES=true -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false` +5. Build the Project + * `make -j2` + +> **Note:** On some Mac systems you might encounter `ld: library not found for -lusb-1.0` error (either in the terminal during make or in XCode) This can be worked-around by setting environment variable: `/bin/launchctl setenv LIBRARY_PATH /usr/local/lib` -## What works? -* SR300, D415 and D435 will stream depth, infrared and color at all supported resolutions -* The Viewer, Depth-Quality Tool and most of the examples should work + **Note:** You can find more information about the available configuration options on [this wiki page](https://github.com/IntelRealSense/librealsense/wiki/Build-Configuration). -## What are the known issues? -* Changing configurations will often result in a crash or the new configuration not being applied (WIP) +## Packaging your application +1. librealsense requires libusb to be bundled in the application. To fix the real-time linking, use `install_name_tool` +``` +install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib librealsense2.dylib +``` +2. Copy `libusb-1.0.0.dylib` and `librealsense2.dylib` to your application's `Frameworks` folder diff --git a/doc/installation_raspbian.md b/doc/installation_raspbian.md new file mode 100644 index 00000000000..eb5748eadaa --- /dev/null +++ b/doc/installation_raspbian.md @@ -0,0 +1,168 @@ +# Raspbian(RaspberryPi3) Installation +This is a setup guide for Realsense with RaspberryPi + +These steps are for D435 with Raspberry Pi3 and 3+. + +### Check versions +``` +$ uname -a +Linux raspberrypi 4.14.34-v7+ + +$ sudo apt update;sudo apt upgrade +$ sudo reboot +$ uname -a + + +$ gcc -v +gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1) + +$ cmake --version +cmake version 3.7.2 +``` + +### Add swap +Initial value is 100MB, but we need to build libraries so initial value isn't enough for that. +In this case, need to switch from 100 to `2048` (2GB). +``` +$ sudo vim /etc/dphys-swapfile +CONF_SWAPSIZE=2048 + +$ sudo /etc/init.d/dphys-swapfile restart swapon -s +``` + +### Install packages +``` +$ sudo apt-get install -y libdrm-amdgpu1 libdrm-amdgpu1-dbg libdrm-dev libdrm-exynos1 libdrm-exynos1-dbg libdrm-freedreno1 libdrm-freedreno1-dbg libdrm-nouveau2 libdrm-nouveau2-dbg libdrm-omap1 libdrm-omap1-dbg libdrm-radeon1 libdrm-radeon1-dbg libdrm-tegra0 libdrm-tegra0-dbg libdrm2 libdrm2-dbg + +$ sudo apt-get install -y libglu1-mesa libglu1-mesa-dev glusterfs-common libglu1-mesa libglu1-mesa-dev libglui-dev libglui2c2 + +$ sudo apt-get install -y libglu1-mesa libglu1-mesa-dev mesa-utils mesa-utils-extra xorg-dev libgtk-3-dev libusb-1.0-0-dev +``` + +### update udev rule +Now we need to get librealsense from the repo(https://github.com/IntelRealSense/librealsense). +``` +$ cd ~ +$ git clone https://github.com/IntelRealSense/librealsense.git +$ cd librealsense +$ sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ +$ sudo udevadm control --reload-rules && udevadm trigger + +``` + +### update `cmake` version (if your cmake is 3.7.2 or before 3.11.4) +If you don't use zsh, please switch `.zshrc` to `.bashrc`. +``` +$ cd ~ +$ wget https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz +$ tar -zxvf cmake-3.11.4.tar.gz;rm cmake-3.11.4.tar.gz +$ cd cmake-3.11.4 +$ ./configure --prefix=/home/pi/cmake-3.11.4 +$ make -j1 +$ sudo make install +$ export PATH=/home/pi/cmake-3.11.4/bin:$PATH +$ source ~/.zshrc +$ cmake --version +cmake version 3.11.4 +``` + +### set path +``` +$ vim ~/.zshrc +export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH + +$ source ~/.zshrc + +``` + +### install `protobuf` +``` +$ cd ~ +$ git clone --depth=1 -b v3.5.1 https://github.com/google/protobuf.git +$ cd protobuf +$ ./autogen.sh +$ ./configure +$ make -j1 +$ sudo make install +$ cd python +$ export LD_LIBRARY_PATH=../src/.libs +$ python3 setup.py build --cpp_implementation +$ python3 setup.py test --cpp_implementation +$ sudo python3 setup.py install --cpp_implementation +$ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp +$ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=3 +$ sudo ldconfig +$ protoc --version +``` + +### install `TBB` +``` +$ cd ~ +$ wget https://github.com/PINTO0309/TBBonARMv7/raw/master/libtbb-dev_2018U2_armhf.deb +$ sudo dpkg -i ~/libtbb-dev_2018U2_armhf.deb +$ sudo ldconfig +$ rm libtbb-dev_2018U2_armhf.deb +``` + +### install `OpenCV` +You can build from source code, but it takes so much time. In this case, we will use pre-build version to save time. +``` +Remove previous version +$ sudo apt autoremove libopencv3 + +Install +$ wget https://github.com/mt08xx/files/raw/master/opencv-rpi/libopencv3_3.4.3-20180907.1_armhf.deb +$ sudo apt install -y ./libopencv3_3.4.3-20180907.1_armhf.deb +$ sudo ldconfig +``` + +### install `RealSense` SDK/librealsense +``` +$ cd ~/librealsense +$ mkdir build && cd build +$ cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release -DFORCE_LIBUVC=true +$ make -j1 +$ sudo make install +``` + +### install `pyrealsense2` +``` +$ cd ~/librealsense/build + +for python2 +$ cmake .. -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=$(which python) + +for python3 +$ cmake .. -DBUILD_PYTHON_BINDINGS=bool:true -DPYTHON_EXECUTABLE=$(which python3) + +$ make -j1 +$ sudo make install + +add python path +$ vim ~/.zshrc +export PYTHONPATH=$PYTHONPATH:/usr/local/lib + +$ source ~/.zshrc + +``` + +### change `pi` settings (enable OpenGL) +``` +$ sudo apt-get install python-opengl +$ sudo -H pip3 install pyopengl +$ sudo -H pip3 install pyopengl_accelerate +$ sudo raspi-config +"7.Advanced Options" - "A7 GL Driver" - "G2 GL (Fake KMS)" +``` + +Finally, need to reboot pi +``` +$ sudo reboot +``` + + +### Try RealSense D435 +Connected D435 to the pi and open terminal +``` +$ realsense-viewer +``` diff --git a/doc/installation_win7.md b/doc/installation_win7.md new file mode 100644 index 00000000000..70d40304252 --- /dev/null +++ b/doc/installation_win7.md @@ -0,0 +1,31 @@ +# Windows 7 Installation + +> **Note:** Intel RealSense products are being regularly validated and receive official support for Windows 10 and Linux eco-systems. Not all product features are enabled on Windows 7. + +> We are constantly expanding the list of supported platforms, devices and features based on customer and community feedback. If your use case is not yet covered, please open [a new issue](https://github.com/IntelRealSense/librealsense/issues/new) + +## Getting Started + +1. Download [Intel RealSense SDK Installer for Windows 7](https://github.com/IntelRealSense/librealsense/releases/download/v2.16.1/Intel.RealSense.SDK.Win7.exe) +2. Connect the camera (the device must be connected to install the driver) +3. Check the device manager:
![dev_man](img/win7/device_manager.png)
+> Out of the box Windows 7 will not recognize the D4xx cameras using the inbox driver. +4. Run the installer and make sure to check **Win7 Drivers**:
+![install](img/win7/installer.png) +5. The installer will prompt to install the driver. This is a one-time step:
+![after](img/win7/driver_setup.png) +![after](img/win7/device_manager_after.png) + +## Supported Devices: +1. Intel(R) RealSense(TM) D410 Module +2. Intel(R) RealSense(TM) D415 Camera +3. Intel(R) RealSense(TM) D430 Module +4. Intel(R) RealSense(TM) D435 Camera + +## Known Limitations: +1. Multiple cameras are likely not to work at the moment (not validated) + +## Building from Source +The binaries supporting Win7 differ from ones supporting Win10. When building on Win7, CMake will automatically generate binaries for Win7. +You can also build for Win7 from Win10 by adding `-DFORCE_WINUSB_UVC=true` to CMake flags. +Signed drivers are still required when building from source (can be extracted from the Win7 installer and freely redistributed) diff --git a/doc/libuvc_installation.md b/doc/libuvc_installation.md new file mode 100644 index 00000000000..89ddb088f71 --- /dev/null +++ b/doc/libuvc_installation.md @@ -0,0 +1,22 @@ +# LibUVC-backend installation + +> If kernel patching is not possible, or any steps during official [installation.md](./installation.md) fail, +> you should try **libuvc-backend** version of librealsense +> This method is not officially validated but can run on wider range of platforms including older / newer kernel version + +> This script requires internet connection. Please make sure network proxy settings are correct + +1. Make sure no RealSense device is connected +2. Open the terminal, run: +```sh +$ wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh +$ chmod +x ./libuvc_installation.sh +$ ./libuvc_installation.sh +``` +3. Wait until `Librealsense script completed` message is displayed (may take some time) +4. Connect RealSense device +5. Run `rs-enumerate-devices` from the terminal to verify the installation + +> At the moment, the script assumes Ubuntu 16 with graphic subsystem + +> If you encounter any problems or would like to extend the script to additional system, please [let us know via a new GitHub issue](https://github.com/IntelRealSense/librealsense/issues/new) diff --git a/doc/readme.md b/doc/readme.md index 5916879b96d..89c05b3d1fc 100644 --- a/doc/readme.md +++ b/doc/readme.md @@ -3,7 +3,7 @@ * [Intel RealSense Community](https://communities.intel.com/community/tech/realsense) - Official support, Q&A and other useful content * [Support Site](http://www.intel.com/content/www/us/en/support/emerging-technologies/intel-realsense-technology.html) - Contains content and web ticket capability for 1:1 interaction * [Intel RealSense Stereoscopic Depth Cameras](https://arxiv.org/abs/1705.05548) - A technical paper describing the R200, LR200, SR300 and RS400 in detail. Includes theoretical background, performance expectations, post-processing suggestions, etc. -* [Build an Autonomous Mobile Robot with the Intel® RealSense™ Camera, ROS*, and SAWR](https://software.intel.com/en-us/articles/build-an-autonomous-mobile-robot-with-the-intel-realsense-camera-ros-and-sawr) +* [Build an Autonomous Mobile Robot with the Intel® RealSense™ D400 Series Camera, ROS*, and SAWR](https://software.intel.com/en-us/articles/build-an-autonomous-mobile-robot-with-the-intel-realsense-camera-ros-and-sawr) ## librealsense Wiki * [API How-To](https://github.com/IntelRealSense/librealsense/wiki/API-How-To) - List ot questions and answers related to the camera API @@ -19,7 +19,8 @@ * [Latest Doxygen Output](http://intelrealsense.github.io/librealsense/doxygen/annotated.html) * To build documentation locally from sources, on Ubuntu run the following commands: * `sudo apt-get install doxygen` - * `doxygen doc/doxygen/doxyfile` + * `cd doc/doxygen` + * `doxygen doxyfile` * Please also refer to [API How-To](https://github.com/IntelRealSense/librealsense/wiki/API-How-To) for further doc how to use the APIs * [Frame Management](frame_lifetime.md) - Frame Memory Management, Threading Model and Synchronization * [Frame Metadata](frame_metadata.md) - Support for frame-metadata attributes @@ -30,5 +31,7 @@ * [D400 at realsense.intel.com/](https://realsense.intel.com/stereo) - Camera specifications * [D400 Advanced Mode](rs400/rs400_advanced_mode.md) - Overview of the Advanced Mode APIs * [D400 cameras with Raspberry Pi](./RaspberryPi3.md) - Example of low-end system without USB3 interface - * [D400 cameras on **rooted** Android device](./android/Android.md) - Instructions of how to build the RealSense SDK for Android OS. + * [D400 cameras on **rooted** Android devices](./android.md) - Instructions of how to build the RealSense SDK for Android OS. + * [D435i depth camera with IMU](./d435i.md) - An introduction to the D435i depth camera and it's IMU + * [T265 tracking module](./t265.md) - An introduction to the T265 tracking module * [Record and Playback](../src/media/readme.md) - SDK Record and Playback functionality using ROS-bag file format diff --git a/doc/sample-data.md b/doc/sample-data.md index 37968f9b7c6..0978dcc3e79 100644 --- a/doc/sample-data.md +++ b/doc/sample-data.md @@ -22,4 +22,4 @@ pipe.start(cfg); // Load from file | ![](http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/stairs-preview.png) | Flight of stairs captured D435 pre-production sample (Depth from Stereo) | | ![](http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/structured-preview.png) | Short-range scene captured with the SR300 Depth Camera (Structured Light technology) | | ![](http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/depth_under_water.png) | Scene captured with pre-production D415 device (Depth from Stereo) with objects submerged under water [![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/IntelRealSense/librealsense/jupyter?filepath=notebooks/depth_under_water.ipynb) | - +| ![](http://realsense-hw-public.s3.amazonaws.com/rs-tests/TestData/d435i_preview.png) | Outdoor scene with D435i pre-production sample (Depth from Stereo with IMU) | diff --git a/doc/stepbystep/getting_started_with_openCV.md b/doc/stepbystep/getting_started_with_openCV.md index 8e599d195a6..8c9be061a1a 100644 --- a/doc/stepbystep/getting_started_with_openCV.md +++ b/doc/stepbystep/getting_started_with_openCV.md @@ -57,7 +57,7 @@ int main() Compile and run the application from terminal using the following command line: ```shell -g++ -std=c++11 BGR_sample.cpp -lrealsense2 –lopencv_core -lopencv_highgui -o BGR && ./BGR +g++ -std=c++11 BGR_sample.cpp -lrealsense2 -lopencv_core -lopencv_highgui -o BGR && ./BGR ``` **Result:** @@ -127,7 +127,7 @@ int main() Compile and run the program from the terminal, with the following command: ```shell -g++ -std=c++11 IR_sample.cpp -lrealsense2 -lopencv_core -lopencv_imgproc -o ir && ./ir +g++ -std=c++11 IR_sample.cpp -lrealsense2 -lopencv_core -lopencv_imgproc -lopencv_highgui -o ir && ./ir ``` **Result :** diff --git a/doc/support-matrix.md b/doc/support-matrix.md new file mode 100644 index 00000000000..b16bf536aab --- /dev/null +++ b/doc/support-matrix.md @@ -0,0 +1,50 @@ +# Software Support Matrix + +## Release Process + +RealSense devices pass validation and stability cycles. Every firmware + librealsense release is going through several levels of validation, from automated unit-tests to longer validation cycles. + +After passing unit-tests and basic functional testing release is made available under [librealsense/releases](https://github.com/IntelRealSense/librealsense/releases) and marked as a ![pre-release](./img/prerelease.png). + +Once full validation report is internally reviewed and approved, release is promoted to ![latest](./img/latest_release.png) and published at [www.intelrealsense.com/developers/](https://www.intelrealsense.com/developers/). + +We recommend certain combinations (see **RECOMMENDED CONFIGURATIONS** at the link above) of firmware and software we have tested, but there is significant effort to keep maximum backward and forward compatibility between firmware and software versions. + +Validation is done on x86 NUC machines running Windows 10 and Ubuntu 16.04 LTS. + +Additional platforms are tested and supported on demand, driven by community requests and feedback. + +## D400 Stereoscopic Depth Cameras + +| | Win 7 | Win 10 & 8.1 | Ubuntu 16/18 LTS x64 | Ubuntu Arm (Raspberry Pi, RK3399…) | NVidia Jetson Series | Android (7+) & JAVA | Mac OS | Viewer | C/C++ | Python | C# | ROS | Node.js | LabView | Unity | Matlab | OpenNi2| Unreal| +|--------------------------------|------------------------|-----------------------------------|--------------------------------------------|-----------------------------|-------------------------|-------------------------|-------------------|----------------|-------------|-------------|-----|--------------------|---------------------|----------------|--------|---------|--------|------| +| **Precompiled Binaries** | Yes | Yes | Yes | No | Yes (2.24+) | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes (outdated 2.16) | Yes | Yes | Yes | No | No | +| **Depth Data Access** | Yes | Yes | Yes | Yes (Kernel 4.4+ or LIBUVC) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Infrared Streaming** | Yes | Yes | Yes | Yes (Kernel 4.4+ or LIBUVC) | Yes (via LibUVC) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Advanced Mode API** | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | +| **Advanced Mode JSON Loading** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | No | +| **Preset Control** | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Per-frame Frame Metadata** | Yes | Yes (requires [script](./installation_windows.md#use-automation-script))| Yes (via DKMS or patch)| Yes (via LIBUVC) | Yes | Yes | Yes | Yes (2.26+) | Yes | Yes | Yes | N/A | Yes | N/A | No | Yes | No | No | +| **Depth Post-Processing** | Yes | Yes | Yes | Unoptimised | Unoptimised | Unoptimised | Yes | Yes | Yes | Yes | Yes | Yes | No | N/A | Yes | N/A | No | No | +| **Pointcloud Calculation** | Yes | Yes | Yes | Unoptimised | Yes (2.13+ with CUDA) | Unoptimised | Yes | Yes | Yes | Yes | Yes | Yes | Yes | N/A | Yes | Yes | N/A | N/A | +| **Stream Alignment** | Yes | Yes | Yes | Unoptimised | Yes (2.13+ with CUDA) | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | N/A | Yes | N/A | N/A | N/A | +| **RGB Streaming** | Yes | Yes | Yes | Unoptimised | Yes (2.13+ with CUDA) | Unoptimised | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **MPEG Decoding** | Unoptimised | Unoptimised | Unoptimised | No | No | No | No | Yes (2.26.1?+) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Accelerometer & Gyro** | No | Yes | Yes | Yes (via LIBUVC, 2.26+) | Yes (via LIBUVC, 2.26+) | Yes (via LIBUVC, 2.26+) | No (WIP) | Yes | Yes | Yes | Yes | Yes | Yes | N/A | N/A | Yes | No | No | +| **IMU Hardware Timestamps** | No | Yes | Yes (via DKMS or patch) | Yes (via LIBUVC, 2.26+) | Yes (via LIBUVC, 2.26+) | Yes (via LIBUVC, 2.26+) | No (WIP) | Yes | Yes | Yes | Yes | Yes | Yes | N/A | N/A | Yes | No | No | +| **Hardware Timestamps** | Yes | Yes (requires script or DMFT INF) | Yes (via DKMS or patch or Kernel >= 4.18) | Yes (via LIBUVC) | Yes (via LibUVC) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **Global Timestamps** | Yes | Yes (requires script or DMFT INF) | Yes (via DKMS or patch or Kernel >= 4.18) | Yes (via LIBUVC) | Yes (via LIBUVC) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | +| **On-Chip Calibration** | Yes (2.26+) | Yes (2.26+) | Yes (2.26+) | Yes (2.26+) | Yes (2.26+) | No | Yes (2.26+) | Yes (2.26+) | No | No | No | No | No | No | No | No | No | No | +| **Firmware Update** | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | Yes (2.24+) | No | No | No | No | No | No | No | No | +| **Multicamera Support** | Not tested | Yes | Yes | Not tested | Not tested | Not tested | Not tested | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | N/A | N/A | + +### SR300 Notes: + +* Global Timestamp mechanism is not yet available for the SR300 +* D400 JSON presets are not applicable to SR300 devices, since they rely on completely different technology +* Multicamera is technically supported similar to D400 but SR300 devices suffer from destructive interference, hence should not share field of view +* On-Chip Calibration is not applicable to the SR300 since the structured light module does not lose depth calibration over time + +### T265 Tracking Module Notes: + +* Tracking module is currently not available on Android diff --git a/doc/t265.md b/doc/t265.md new file mode 100644 index 00000000000..fcf30ddfab4 --- /dev/null +++ b/doc/t265.md @@ -0,0 +1,309 @@ +# T265 Tracking Camera + +The **Intel® RealSense™ Tracking Camera T265** includes two greyscale cameras with fisheye lens, an IMU, and an Intel® Movidius™ Myriad™ 2 VPU. All of the V‑SLAM algorithms run directly on the VPU, allowing for very low latency and extremely efficient power consumption (1.5W). + +RealSense SDK currently supports T265 on Windows and Linux as well as via our ROS wrapper. + +## Notes / known issues + +- For wheeled robots, odometer input is a requirement for robust and accurate tracking. The relevant APIs will be added to librealsense and ROS/realsense in upcoming releases. Currently, the API is available in the [underlying device driver](https://github.com/IntelRealSense/librealsense/blob/master/third-party/libtm/libtm/include/TrackingDevice.h#L508-L515). +- The relocalization API should be considered unstable, and is planned to be updated in a future release +- Android support will come in a future release, as well as OpenVR integration. + +## Sensor origin and coordinate system +To aid AR/VR integration, the T265 tracking device uses the defacto VR framework standard coordinate system instead of the SDK standard: + +![T265 Pose orientation](./img/T265_orientation_axis.png) +1. Positive X direction is towards right imager +2. Positive Y direction is upwards toward the top of the device +3. Positive Z direction is inwards toward the back of the device + +The center of tracking corresponds to the center location between the right and left monochrome imagers on the PCB. + +When T265 tracking starts, an origin coordinate system is created and RealSense SDK provides T265 poses relative to it. World's Y axis is always aligned with gravity and points to the sky. World's X and Z axes are not globally set, but determined when tracking starts based on the initial orientation of the T265 device with the initial -Z world axis as the projection of the camera axis to the ground plane. This does mean that the initial yaw can seem random when the device is started in a downward facing configuration, say on the drone. All T265 (and librealsense) coordinate systems are right-handed. + +## Calibration + +The T265's sensors (including the IMU) are calibrated on the production line, so no further calibration process is required (unlike the IMU on the D435i). Refer to the [rs-ar-basic](../examples/ar-basic) example to see how to get and use sensor intrinsics and extrinsics for the cameras and IMU. + +For reference, this is the orientation of each sensor: +![T265 Sensor extrinsics](./img/T265_sensor_extrinsics.png) + +## Timestamps + +The T265 always reports the time for all sensors in `RS2_TIMESTAMP_DOMAIN_GLOBAL_TIME`. This uses a time synchronization mechanism between the host computer and the T265 to provide all sensor data timestamps in millisecond accurate host clock time. + +## Examples and tools + +The following `librealsense` examples and tools work with T265 (see the full of [C++ examples](../examples/), [Python examples](../wrappers/python/examples/) and [tools](../tools/)): + +### C++ Examples + - [rs-pose](../examples/pose/) - A basic pose retrieval example + - [rs-pose-predict](../examples/pose-predict) - Demonstrates pose prediction using librealsense global time and the callback API + - [rs-pose-and-image](../examples/pose-and-image) - Demonstrates how to use tracking camera asynchroniously to obtain 200Hz poses and 30Hz images + - [rs-pose-apriltag](../examples/pose-apriltag) - Demonstrates how to compute [Apriltag](https://github.com/AprilRobotics/apriltag/tree/3.1.1) pose from T265 fisheye image stream + - [rs-ar-basic](../examples/ar-basic) - Shows how to use pose and fisheye frames to display a simple virtual object on the fisheye image + - [rs-tracking-and-depth](../examples/tracking-and-depth) - Shows how to use the tracking camera together with a depth camera to display a 3D pointcloud with respect to a static reference frame + - [rs-trajectory](../examples/trajectory) - This sample demonstrates how to draw the 3D trajectory of the device's movement based on pose data. + - [rs-capture](../examples/capture) - 2D visualization of sensor data. + - [rs-save-to-disk](../examples/save-to-disk) - Shows how to configure the camera and save PNGs + - [rs-multicam](../examples/multicam) - Work multiple cameras streams simultaneously, in separate windows + - [rs-software-device](../examples/software-device) Shows how to create a custom `rs2::device` + - [rs-sensor-control](../examples/sensor-control) - A tutorial for using the `rs2::sensor` API + +### Python examples + + - [T265 Basic](../wrappers/python/examples/t265_example.py) - Demonstrates how to retrieve pose data from a T265 + - [T265 Coordinates](../wrappers/python/examples/t265_rpy.py) - This example shows how to change coordinate systems of a T265 pose + - [T265 Stereo](../wrappers/python/examples/t265_stereo.py) - This example shows how to use T265 intrinsics and extrinsics in OpenCV to asynchronously compute depth maps from T265 fisheye images on the host. + +### Tools + + - [enumerate-devices](../tools/enumerate-devices) - Console application providing information about connected devices + - [recorder](../tools/recorder) - Simple command line raw data recorder + - [data-collect](../tools/data-collect) - Collect statistics about various streams. + +### Realsense viewer + +As with all Realsense cameras, T265 works with [realsense-viewer](../tools/realsense-viewer). It provides visualization of all sensor streams, including a 3D visualization for pose samples: + +![T265 2D Sensors](./img/t265_snapshot.png) + +The IMU and tracking data streams are fully compatible with SDK's embedded recorder utility. + +![T265 3D Pose Tracking](./img/t265_trajectory_tracker.gif) + +If you want to record raw sensor data including images in ROS `.bag` format, we recommend using [recorder](../tools/recorder) + +## API +The pose and IMU data are treated by the SDK like any other supported sensor. Therefore the sensor access and invocation API calls are similar to those of the depth/rgb sensors of D400 and SR300: + +```cpp +rs2::pipeline pipe; + +rs2::config cfg; +cfg.enable_stream(RS2_STREAM_GYRO); +cfg.enable_stream(RS2_STREAM_ACCEL); +cfg.enable_stream(RS2_STREAM_POSE); + +pipe.start(cfg); + +while (app) // Application still alive? +{ + rs2::frameset frameset = pipe.wait_for_frames(); + + // Find and retrieve IMU and/or tracking data + if (rs2::motion_frame accel_frame = frameset.first_or_default(RS2_STREAM_ACCEL)) + { + rs2_vector accel_sample = accel_frame.get_motion_data(); + //std::cout << "Accel:" << accel_sample.x << ", " << accel_sample.y << ", " << accel_sample.z << std::endl; + //... + } + + if (rs2::motion_frame gyro_frame = frameset.first_or_default(RS2_STREAM_GYRO)) + { + rs2_vector gyro_sample = gyro_frame.get_motion_data(); + //std::cout << "Gyro:" << gyro_sample.x << ", " << gyro_sample.y << ", " << gyro_sample.z << std::endl; + //... + } + + if (rs2::pose_frame pose_frame = frameset.first_or_default(RS2_STREAM_POSE)) + { + rs2_pose pose_sample = pose_frame.get_pose_data(); + //std::cout << "Pose:" << pose_sample.translation.x << ", " << pose_sample.translation.y << ", " << pose_sample.translation.z << std::endl; + //... + } +} +``` + +## FAQ + +### Is this a depth camera? +No, the T265 does not offer any Depth information. It can provide position and orientation (6-DOF), IMU (accelerometer and gyroscope), and two monochrome fisheye streams. + +### Can I use it together with a depth camera? +Yes, this device can be used with RealSense (and most likely any 3rd-party) depth cameras. It is passive and comes with an IR-cut filter. + +### How can I use the camera intrinsics and extrinsics? + +The T265 uses the [Kanalla-Brandt distortion model](http://www.ee.oulu.fi/research/mvmp/mvg/files/pdf/pdf_697.pdf). This model is supported in OpenCV as part of the fisheye model. There is a python example which uses the camera intrinsics and extrinsics to [compute depth from T265 images on the host using OpenCV](../wrappers/python/examples/t265_stereo.py). There is also a C++ example which uses the camera intrinsics and extrinsics to [display a virtual object](../examples/ar-basic). + +### What platforms are supported? +The T265 is supported via librealsense on Windows, Linux, macOS and via ros-realsense. Android support are planned but not scheduled yet, as well as OpenVR integration. + +### What are the system requirements? +Any board with USB2 capable of receiving pose data at 200 times a second should be sufficient. The device was validated on Intel NUC platform. To access the fisheye streams, USB3 is required. + +### Will the same SLAM be available for the D435i as a software package? +We are still looking into it, please stay tuned. + +### What is wheel odometry and how does it help T265 navigate? + +Wheel odometry is the use of sensors to measure how much a wheel turns, it can be used to estimate changes in a wheeled robots position. T265 has wheel odometry support built in, allowing it to use the data from these sensors to refine the position data of the robot. Providing robotic wheel odometer or velocimeter data over USB to TM2 and the corresponding calibration data will make the tracking much more robust on wheeled robots, which otherwise can experience many tracking failures. The calibration file format is described in the [section below](#wheel-odometry-calibration-file-format). We consider odometer input to be a requirement for robust tracking on wheeled robots. + +### Can T265 work indoors and outdoors? + +Yes, T265 can work both indoors and outdoors. Just like a person, it can be blinded by light that shines straight into its eyes, and it can’t see in absolute darkness. + +### Do multiple T265 devices interfere with each other? + +No, you can use as many T265 devices in a space as you like. + +### Are there any T265 specific options? + +Yes, there are. + + - `RS2_OPTION_ENABLE_MAPPING` - The internal map allows the device to recognize places it's been before so that it can give a consistent pose for that location. The map has a fixed finite size and will keep the most often/recently seen locations. Without this it will be operating completely open loop (i.e. just doing VIO) and will have more drift. The device will use the map to close modest loops and recover from small drifts. Enabling this option will not cause pose jumps without `RS2_OPTION_ENABLE_POSE_JUMPING`. + - `RS2_OPTION_ENABLE_POSE_JUMPING` - This option allows the device to discontinuously jump its pose whenever it discovers its pose is inconsistent with one it has given before. For example, after walking in a circle or covering the camera (getting a small drift) and uncovering it. Currently this will only affect the translation and not the rotation nor any of the velocities or accelerations. + - `RS2_OPTION_ENABLE_RELOCALIZATION` - This allows the device to solve the Kidnapped Robot Problem, i.e. it will allow connecting the current map to a loaded map or connecting the current map to itself after accumulating a large drift, say after closing a large loop or covering the camera and walking around. This is independent of jumping the pose. When fooled this feature can lead to much larger errors than are likely via the basic mapping. + - `RS2_OPTION_ENABLE_MAP_PRESERVATION` - This option will allow the device to preserve its current map across stop/start calls. The device will act as if the map was saved after stop and loaded back before the subsequent start. This was the default in versions <= 2.29.0. + +## Appendix + +### Wheel odometry calibration file format +Below is a sample calibration file with inline comments (not a valid file format! Remove "//comments" to make valid) that explain each field. Please note that this is an intermediate solution and a more unified interface will be coming. +``` +{ + "velocimeters": [ // array of velocity sensors (currently max. 2 supported) + { + "scale_and_alignment": [ // 3-by-3 matrix, row-major (multiplies measurement) + 1.0, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 1.0, + 0.0000000000000000, + 0.0000000000000000, + 0.0000000000000000, + 1.0 + ], + "noise_variance": 0.004445126050420168, // measurement covariance (to be determined/tuned) + "extrinsics": { // relative transformation of sensor frame w.r.t. T265 body frame + "T": [ // translation (in meters) + -0.5059, + -0.6294, + -0.6873 + ], + "T_variance": [ // currently not used, please ignore + 9.999999974752427e-7, + 9.999999974752427e-7, + 9.999999974752427e-7 + ], + "W": [ // orientation in axis-angle representation, axis x angle (in rad) + -1.1155, + -1.1690, + -1.2115 + ], + "W_variance": [ // currently not used, please ignore + 9.999999974752427e-5, + 9.999999974752427e-5, + 9.999999974752427e-5 + ] + } + } + ] +} +``` +### Extrinsic Calibration for Wheeled Odometry Examples + + - All calibration metrics are relative to T265 origin frame. I.e.: They are offsets/rotations *from* the T265 origin *to* the robot's origin. Said another way, we transform a point from frame B (Robot Odometry) to frame A (T265 Pose) or A_p = H_AB * B_p, where A_p is the point expressed in frame A, B_p is the point expressed in frame B, and H_AB is the corresponding homogeneous transformation. + + - In order for the T265 to consume and use odometry data correctly it must know where the robot's origin is relative to itself. This is accomplished by feeding a calibration (json) file into the librealsense API with this initial data. + + + In this basic sample robot setup, for simplicity, we assume the X-axis of the camera and robot's coordinate system are aligned (+X coming out of the screen) and only concern ourselves with the Y and Z axis. + +![T265 Robot 1](./img/T265_Robot1.png) + + Corresponsing JSON: + ``` + { + "velocimeters": [ + { + "scale_and_alignment": [ + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "noise_variance": 0.00004445126050420168, + "extrinsics": { + "T": [ + 0.0, // No Translation. + -0.92, // 0.92m below (-Y) the camera. + 0.44 // 0.44m behind (+Z) the camera. + ], + "T_variance": [ + 9.999999974752427e-7, + 9.999999974752427e-7, + 9.999999974752427e-7 + ], + "W": [ + 0.0, + 0.0, + 0.0 + ], + "W_variance": [ + 9.999999974752427e-5, + 9.999999974752427e-5, + 9.999999974752427e-5 + ] + } + } + ] +} +``` + + In this example, we take the above setup and add a rotation around the camera's X-axis. + +![T265 Robot 2](./img/T265_Robot2.png) + + Corresponding JSON: + + ``` + { + "velocimeters": [ + { + "scale_and_alignment": [ + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "noise_variance": 0.00004445126050420168, + "extrinsics": { + "T": [ + 0.0, // No Translation. + -0.92, // 0.92m below (-Y) the camera. + 0.44 // 0.44m behind (+Z) the camera. + ], + "T_variance": [ + 9.999999974752427e-7, + 9.999999974752427e-7, + 9.999999974752427e-7 + ], + "W": [ + -0.7853982, // -0.78rad (-pi/4) around the camera x-axis. + 0.0, + 0.0 + ], + "W_variance": [ + 9.999999974752427e-5, + 9.999999974752427e-5, + 9.999999974752427e-5 + ] + } + } + ] +} + ``` diff --git a/examples/C/color/CMakeLists.txt b/examples/C/color/CMakeLists.txt index 331019162e0..c00a018dd40 100644 --- a/examples/C/color/CMakeLists.txt +++ b/examples/C/color/CMakeLists.txt @@ -1,3 +1,5 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) @@ -12,12 +14,5 @@ set_target_properties (rs-color PROPERTIES FOLDER "Examples/C" ) -install( -TARGETS - -rs-color - -RUNTIME DESTINATION -${CMAKE_INSTALL_PREFIX}/bin -) +install(TARGETS rs-color RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/examples/C/color/rs-color.c b/examples/C/color/rs-color.c index edf119a784f..da7ce89edba 100644 --- a/examples/C/color/rs-color.c +++ b/examples/C/color/rs-color.c @@ -78,8 +78,8 @@ int main() { // This call waits until a new composite_frame is available // composite_frame holds a set of frames. It is used to prevent frame drops - // The retunred object should be released with rs2_release_frame(...) - rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, 5000, &e); + // The returned object should be released with rs2_release_frame(...) + rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, RS2_DEFAULT_TIMEOUT, &e); check_error(e); // Returns the number of frames embedded within the composite frame diff --git a/examples/C/depth/CMakeLists.txt b/examples/C/depth/CMakeLists.txt index 9c1b7b60a6e..adb504a2aa5 100644 --- a/examples/C/depth/CMakeLists.txt +++ b/examples/C/depth/CMakeLists.txt @@ -1,3 +1,5 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) @@ -12,12 +14,5 @@ set_target_properties (rs-depth PROPERTIES FOLDER "Examples/C" ) -install( -TARGETS - -rs-depth - -RUNTIME DESTINATION -${CMAKE_INSTALL_PREFIX}/bin -) +install(TARGETS rs-depth RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/examples/C/depth/rs-depth.c b/examples/C/depth/rs-depth.c index 555c5ec0b01..fd950e80bbb 100644 --- a/examples/C/depth/rs-depth.c +++ b/examples/C/depth/rs-depth.c @@ -18,20 +18,14 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define STREAM RS2_STREAM_DEPTH // rs2_stream is a types of data provided by RealSense device // #define FORMAT RS2_FORMAT_Z16 // rs2_format is identifies how binary data is encoded within a frame // -#define WIDTH 640 // Defines the number of columns for each frame // -#define HEIGHT 480 // Defines the number of lines for each frame // +#define WIDTH 640 // Defines the number of columns for each frame or zero for auto resolve// +#define HEIGHT 0 // Defines the number of lines for each frame or zero for auto resolve // #define FPS 30 // Defines the rate of frames per second // #define STREAM_INDEX 0 // Defines the stream index, used for multiple streams of the same type // #define HEIGHT_RATIO 20 // Defines the height ratio between the original frame to the new frame // #define WIDTH_RATIO 10 // Defines the width ratio between the original frame to the new frame // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#define ROWS (HEIGHT / HEIGHT_RATIO) // Each row represented by 20 rows in the original frame -#define ROW_LENGTH (WIDTH / WIDTH_RATIO) // Each column represented by 10 columns in the original frame -#define DISPLAY_SIZE ((ROWS + 1) * (ROW_LENGTH + 1)) -#define BUFFER_SIZE (DISPLAY_SIZE * sizeof(char)) - - // The number of meters represented by a single depth unit float get_depth_unit_value(const rs2_device* const dev) { @@ -128,14 +122,49 @@ int main() exit(EXIT_FAILURE); } - char buffer[BUFFER_SIZE]; + rs2_stream_profile_list* stream_profile_list = rs2_pipeline_profile_get_streams(pipeline_profile, &e); + if (e) + { + printf("Failed to create stream profile list!\n"); + exit(EXIT_FAILURE); + } + + rs2_stream_profile* stream_profile = (rs2_stream_profile*)rs2_get_stream_profile(stream_profile_list, 0, &e); + if (e) + { + printf("Failed to create stream profile!\n"); + exit(EXIT_FAILURE); + } + + rs2_stream stream; rs2_format format; int index; int unique_id; int framerate; + rs2_get_stream_profile_data(stream_profile, &stream, &format, &index, &unique_id, &framerate, &e); + if (e) + { + printf("Failed to get stream profile data!\n"); + exit(EXIT_FAILURE); + } + + int width; int height; + rs2_get_video_stream_resolution(stream_profile, &width, &height, &e); + if (e) + { + printf("Failed to get video stream resolution data!\n"); + exit(EXIT_FAILURE); + } + int rows = height / HEIGHT_RATIO; + int row_length = width / WIDTH_RATIO; + int display_size = (rows + 1) * (row_length + 1); + int buffer_size = display_size * sizeof(char); + + char* buffer = calloc(display_size, sizeof(char)); char* out = NULL; + while (1) { // This call waits until a new composite_frame is available // composite_frame holds a set of frames. It is used to prevent frame drops - // The retunred object should be released with rs2_release_frame(...) - rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, 5000, &e); + // The returned object should be released with rs2_release_frame(...) + rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, RS2_DEFAULT_TIMEOUT, &e); check_error(e); // Returns the number of frames embedded within the composite frame @@ -163,10 +192,12 @@ int main() /* Print a simple text-based representation of the image, by breaking it into 10x5 pixel regions and approximating the coverage of pixels within one meter */ out = buffer; - int coverage[ROW_LENGTH] = { 0 }, x, y, i; - for (y = 0; y < HEIGHT; ++y) + int x, y, i; + int* coverage = calloc(row_length, sizeof(int)); + + for (y = 0; y < height; ++y) { - for (x = 0; x < WIDTH; ++x) + for (x = 0; x < width; ++x) { // Create a depth histogram to each row int coverage_index = x / WIDTH_RATIO; @@ -177,7 +208,7 @@ int main() if ((y % HEIGHT_RATIO) == (HEIGHT_RATIO-1)) { - for (i = 0; i < (ROW_LENGTH); ++i) + for (i = 0; i < (row_length); ++i) { static const char* pixels = " .:nhBXWW"; int pixel_index = (coverage[i] / (HEIGHT_RATIO * WIDTH_RATIO / sizeof(pixels))); @@ -190,6 +221,7 @@ int main() *out++ = 0; printf("\n%s", buffer); + free(coverage); rs2_release_frame(frame); } @@ -201,7 +233,10 @@ int main() check_error(e); // Release resources + free(buffer); rs2_delete_pipeline_profile(pipeline_profile); + rs2_delete_stream_profiles_list(stream_profile_list); + rs2_delete_stream_profile(stream_profile); rs2_delete_config(config); rs2_delete_pipeline(pipeline); rs2_delete_device(dev); diff --git a/examples/C/distance/CMakeLists.txt b/examples/C/distance/CMakeLists.txt index 5b3da1439aa..2e2214e3b0b 100644 --- a/examples/C/distance/CMakeLists.txt +++ b/examples/C/distance/CMakeLists.txt @@ -1,3 +1,5 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) @@ -12,12 +14,5 @@ set_target_properties (rs-distance PROPERTIES FOLDER "Examples/C" ) -install( -TARGETS - -rs-distance - -RUNTIME DESTINATION -${CMAKE_INSTALL_PREFIX}/bin -) +install(TARGETS rs-distance RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/examples/C/distance/rs-distance.c b/examples/C/distance/rs-distance.c index a5e8c84e6a4..5f653934fce 100644 --- a/examples/C/distance/rs-distance.c +++ b/examples/C/distance/rs-distance.c @@ -18,8 +18,8 @@ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define STREAM RS2_STREAM_DEPTH // rs2_stream is a types of data provided by RealSense device // #define FORMAT RS2_FORMAT_Z16 // rs2_format is identifies how binary data is encoded within a frame // -#define WIDTH 640 // Defines the number of columns for each frame // -#define HEIGHT 480 // Defines the number of lines for each frame // +#define WIDTH 640 // Defines the number of columns for each frame or zero for auto resolve// +#define HEIGHT 0 // Defines the number of lines for each frame or zero for auto resolve // #define FPS 30 // Defines the rate of frames per second // #define STREAM_INDEX 0 // Defines the stream index, used for multiple streams of the same type // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -79,8 +79,8 @@ int main() { // This call waits until a new composite_frame is available // composite_frame holds a set of frames. It is used to prevent frame drops - // The retunred object should be released with rs2_release_frame(...) - rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, 5000, &e); + // The returned object should be released with rs2_release_frame(...) + rs2_frame* frames = rs2_pipeline_wait_for_frames(pipeline, RS2_DEFAULT_TIMEOUT, &e); check_error(e); // Returns the number of frames embedded within the composite frame diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 3169a8bbbd5..cf04932166f 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,3 +1,5 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) @@ -8,55 +10,8 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) # View the makefile commands during build #set(CMAKE_VERBOSE_MAKEFILE on) -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) - find_package(OpenGL) - if(NOT OPENGL_FOUND) - message(FATAL_ERROR "\n\n OpenGL package is missing!\n\n") - endif() - - set(DEPENDENCIES realsense2 ${OPENGL_LIBRARIES}) - - if(WIN32) - list(APPEND DEPENDENCIES glfw3) - else() - # Find glfw header - find_path(GLFW_INCLUDE_DIR NAMES GLFW/glfw3.h - PATHS /usr/X11R6/include - /usr/include/X11 - /opt/graphics/OpenGL/include - /opt/graphics/OpenGL/contrib/libglfw - /usr/local/include - /usr/include/GL - /usr/include - ) - # Find glfw library - find_library(GLFW_LIBRARIES NAMES glfw glfw3 - PATHS /usr/lib64 - /usr/lib - /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} - /usr/local/lib64 - /usr/local/lib - /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE} - /usr/X11R6/lib - ) - if(APPLE) - find_library(COCOA_LIBRARY Cocoa) - find_library(IOKIT_LIBRARY IOKit) - find_library(COREVIDEO_LIBRARY CoreVideo) - LIST(APPEND DEPENDENCIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY}) - endif() - list(APPEND DEPENDENCIES m ${GLFW_LIBRARIES} ${LIBUSB1_LIBRARIES}) - include_directories(${GLFW_INCLUDE_DIR}) - endif() + include(${CMAKE_SOURCE_DIR}/CMake/opengl_config.cmake) else() if(ANDROID_NDK_TOOLCHAIN_INCLUDED) find_library(log-lib log) @@ -64,17 +19,17 @@ else() else() set(DEPENDENCIES realsense2) endif() - if(NOT WIN32) - list(APPEND DEPENDENCIES m ${LIBUSB1_LIBRARIES}) - endif() endif() +add_subdirectory(hello-realsense) add_subdirectory(software-device) add_subdirectory(capture) +add_subdirectory(callback) add_subdirectory(save-to-disk) add_subdirectory(multicam) add_subdirectory(pointcloud) add_subdirectory(align) +add_subdirectory(align-advanced) add_subdirectory(sensor-control) add_subdirectory(measure) add_subdirectory(C/depth) @@ -82,3 +37,13 @@ add_subdirectory(C/color) add_subdirectory(C/distance) add_subdirectory(post-processing) add_subdirectory(record-playback) +add_subdirectory(motion) +add_subdirectory(gl) +add_subdirectory(pose) +add_subdirectory(pose-predict) +add_subdirectory(pose-and-image) +add_subdirectory(trajectory) +add_subdirectory(ar-basic) +add_subdirectory(ar-advanced) +add_subdirectory(pose-apriltag) +add_subdirectory(tracking-and-depth) diff --git a/examples/align-advanced/CMakeLists.txt b/examples/align-advanced/CMakeLists.txt new file mode 100644 index 00000000000..ce2d99dce0d --- /dev/null +++ b/examples/align-advanced/CMakeLists.txt @@ -0,0 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesAlignAdvanced) + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-align-advanced rs-align-advanced.cpp ../../third-party/imgui/imgui.cpp ../../third-party/imgui/imgui_draw.cpp ../../third-party/imgui/imgui_impl_glfw.cpp) + set_property(TARGET rs-align-advanced PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-align-advanced ${DEPENDENCIES}) + include_directories(rs-align-advanced ../../common ../../third-party/imgui) + set_target_properties (rs-align-advanced PROPERTIES FOLDER Examples) + install(TARGETS rs-align-advanced RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/align-advanced/readme.md b/examples/align-advanced/readme.md new file mode 100644 index 00000000000..72f7c46dcfa --- /dev/null +++ b/examples/align-advanced/readme.md @@ -0,0 +1,239 @@ +# rs-align-advanced Sample + +## Overview + +This sample demonstrates one possible use-case of the `rs2::align` object, which allows users to align between the depth and other streams and vice versa.
+ +The alignment utility performs per-pixel geometric transformation based on the depth data provided and is not suited for aligning images that are intrinsically 2D, such Color, IR or Fisheye. In addition the transformation requires undistorted (rectified) images to proceed, and therefore is not applicable to the IR calibration streams. + + +In this example, we align depth frames to their corresponding color frames. +We generate a new frame sized as color stream but the content being depth data calculated in the color sensor coordinate system. In other word to reconstruct a depth image being "captured" using the origin and dimensions of the color sensor. +Then, we use the original color and the re-projected depth frames (which are aligned at this stage) to determine the depth value of each color pixel. + +Using this information, we "remove" the background of the color frame that is further (away from the camera) than some user-define distance. + +The example displays a GUI for controlling the maximum distance to show from the original color image. + +## Expected Output + +The application should open a window and display a video stream from the camera. + +

screenshot gif

+ +The window should have the following elements: +- On the left side of the window is a vertical slider for controlling the depth clipping distance. +- A color image with grayed out background +- A corresponding (colorized) depth image. + + + +## Code Overview + +As with any SDK application we include the Intel RealSense Cross Platform API: + +```cpp +#include +``` + +In this example we will also use the auxiliary library of `example.hpp`: + +```cpp +#include "../example.hpp" +``` + +`examples.hpp` lets us easily open a new window and prepare textures for rendering. + +We include 2 more header files which will help us to render GUI controls in our window application: + +```cpp +#include +#include "imgui_impl_glfw.h" +``` + +These headers are part of the [ImGui](https://github.com/ocornut/imgui) library which we use to render GUI elements. + +Next, we declare several functions to help the code look clearer: +```cpp +void render_slider(rect location, float& clipping_dist); +void remove_background(rs2::video_frame& color, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist); +float get_depth_scale(rs2::device dev); +rs2_stream find_stream_to_align(const std::vector& streams); +bool profile_changed(const std::vector& current, const std::vector& prev); +``` + +`render_slider(..)` is where all the GUI code goes, and we will not cover this function in this overview. + +`remove_background(..)` takes depth and color images (that are assumed to be aligned to one another), the depth scale units, and the maximum distance the user wishes to show, and updates the color frame so that its background (any pixel with depth distance larger than the maximum allowed) is removed. + +`get_depth_scale(..)` tries to find a depth sensor from the pipeline's device and retrieves its depth scale units. + +`find_stream_to_align(..)` goes over the given streams and verify that it has a depth profile and tries to find another profile to which depth should be aligned. + +`profile_changed()` checks if the current streaming profiles contains all the previous one. + + +Heading to `main`: + +We first define some variables that will be used to show the window and render the images and GUI to the screen: + +```cpp +// Create and initialize GUI related objects +window app(1280, 720, "CPP - Align Example"); // Simple window handling +ImGui_ImplGlfw_Init(app, false); // ImGui library intializition +rs2::colorizer c; // Helper to colorize depth images +texture renderer; // Helper for renderig images +``` + +Next, we define a `rs2::pipeline` which is a top level API for using RealSense depth cameras. +`rs2::pipeline` automatically chooses a camera from all connected cameras, so we can simply call `pipeline::start()` and the camera is configured and streaming: + +```cpp +// Create a pipeline to easily configure and start the camera +rs2::pipeline pipe; +//Calling pipeline's start() without any additional parameters will start the first device +// with its default streams. +//The start function returns the pipeline profile which the pipeline used to start the device +rs2::pipeline_profile profile = pipe.start(); +``` + +At this point of the program the camera is configured and streams are available from the pipeline. + +Before actually using the frames, we try to get the depth scale units of the depth camera. Depth scale units are used to convert the depth pixel data (16-bit unsigned) into metric units. + +```cpp +// Each depth camera might have different units for depth pixels, so we get it here +// Using the pipeline's profile, we can retrieve the device that the pipeline uses +float depth_scale = get_depth_scale(profile.get_device()); +``` + +These units are expressed as depth in meters corresponding to a depth value of 1. For example if we have a depth pixel with a value of 2 and the depth scale units are 0.5 then that pixel is `2 X 0.5 = 1` meter away from the camera. + +Then, we create an `align` object: + +```cpp +//Pipeline could choose a device that does not have a color stream +//If there is no color stream, choose to align depth to another stream +rs2_stream align_to = find_stream_to_align(profile.get_streams()); + +// Create a rs2::align object. +// rs2::align allows us to perform alignment of depth frames to others frames +//The "align_to" is the stream type to which we plan to align depth frames. +rs2::align align(align_to); +``` + +`rs2::align` is a utility class that performs image alignment (registration) of 2 frames. +Basically, each pixel from the first image will be transformed so that it matches its corresponding pixel in the second image. +A `rs2::align` object transforms between two input images, from a source image to some target image which is specified with the `align_to` parameter. + +Now comes the interesting part of the application. We start our main loop, which breaks only when the window is closed: + + +```cpp +while (app) // Application still alive? +{ +``` + +Inside the loop, the first thing we do is block the program until the `align` object returns a `rs2::frameset`. A `rs2::frameset` is an object that holds a set of frames and provides an interface for easily accessing them. + +```cpp + // Using the align object, we block the application until a frameset is available + rs2::frameset frameset = pipe.wait_for_frames(); +``` + +The `frameset` returned from `wait_for_frames` should contain a set of aligned frames. In case of an error getting the frames an exception could be thrown, but if the pipeline manages to reconfigure itself with a new device it will do that and return a frame from the new device. +In the next lines we check if the pipeline switched its device and if so update the align object and the rest of objects required for the sample. + +```cpp +// rs2::pipeline::wait_for_frames() can replace the device it uses in case of device error or disconnection. +// Since rs2::align is aligning depth to some other stream, we need to make sure that the stream was not changed +// after the call to wait_for_frames(); +if (profile_changed(pipe.get_active_profile().get_streams(), profile.get_streams())) +{ + //If the profile was changed, update the align object, and also get the new device's depth scale + profile = pipe.get_active_profile(); + align_to = find_stream_to_align(profile.get_streams()); + align = rs2::align(align_to); + depth_scale = get_depth_scale(profile.get_device()); +} +``` + +At this point the `align` object is valid and will be able to align depth frames with other frames. + +```cpp + //Get processed aligned frame + auto processed = align.process(frameset); + + // Trying to get both color and aligned depth frames + rs2::video_frame other_frame = processed.first_or_default(align_to); + rs2::depth_frame aligned_depth_frame = processed.get_depth_frame(); + + //If one of them is unavailable, continue iteration + if (!aligned_depth_frame || !other_frame) + { + continue; + } +``` +Notice that the color frame is of type `rs2::video_frame` and the depth frame if of type `rs2::depth_frame` (which derives from `rs2::video_frame` and adds special depth related functionality). + +After getting the two aligned color and depth frames, we call the `remove_background(..)` function to strip the background from the color image. +This is a simple function that performs a naive algorithm for background segmentation. +```cpp + // Passing both frames to remove_background so it will "strip" the background + // NOTE: in this example, we alter the buffer of the color frame, instead of copying it and altering the copy + // This behavior is not recommended in real application since the color frame could be used elsewhere + remove_background(color_frame, aligned_depth_frame, depth_scale, depth_clipping_distance); + +``` + +The rest of the loop contains code that takes care of rendering and GUI controls. We will not elaborate on it. Let's go over `remove_background(..)` instead: + + +```cpp +void remove_background(rs2::video_frame& other_frame, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist) +{ +``` + +In the beginning of function, we take a pointer to the raw buffer of both frames, so that we could alter the color image (instead of creating a new buffer). + +```cpp + const uint16_t* p_depth_frame = reinterpret_cast(depth_frame.get_data()); + uint8_t* p_other_frame = reinterpret_cast(const_cast(other_frame.get_data())); +``` + +Next, we go over each pixel of the frame. + +```cpp + //Using OpenMP to try to parallelise the loop + #pragma omp parallel for schedule(dynamic) + for (int y = 0; y < height; y++) + { + auto depth_pixel_index = y * width; + for (int x = 0; x < width; x++, ++depth_pixel_index) + { +``` +Calculate the depth distance of that pixel: +```cpp + // Get the depth value of the current pixel + auto pixels_distance = depth_scale * p_depth_frame[depth_pixel_index]; + +``` + +If that distance is invalid (`pixels_distance <= 0.f`) or further away than the maximum distance that the user requested (`pixels_distance > clipping_dist`) then we should strip off that pixel from the resulted color image. +```cpp + // Check if the depth value is invalid (<=0) or greater than the threashold + if (pixels_distance <= 0.f || pixels_distance > clipping_dist) + { +``` +By "strip off" we mean that we simply paint that pixel with a gray color. + +```cpp + // Calculate the offset in other frame's buffer to current pixel + auto offset = depth_pixel_index * other_bpp; + + // Set pixel to "background" color (0x999999) + std::memset(&p_other_frame[offset], 0x99, other_bpp); + } + } + } +``` diff --git a/examples/align-advanced/rs-align-advanced.cpp b/examples/align-advanced/rs-align-advanced.cpp new file mode 100644 index 00000000000..978b5dd8777 --- /dev/null +++ b/examples/align-advanced/rs-align-advanced.cpp @@ -0,0 +1,258 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#include +#include "../example.hpp" +#include +#include "imgui_impl_glfw.h" + +#include +#include +#include +#include +#include + +void render_slider(rect location, float& clipping_dist); +void remove_background(rs2::video_frame& other, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist); +float get_depth_scale(rs2::device dev); +rs2_stream find_stream_to_align(const std::vector& streams); +bool profile_changed(const std::vector& current, const std::vector& prev); + +int main(int argc, char * argv[]) try +{ + // Create and initialize GUI related objects + window app(1280, 720, "RealSense Align (Advanced) Example"); // Simple window handling + ImGui_ImplGlfw_Init(app, false); // ImGui library intializition + rs2::colorizer c; // Helper to colorize depth images + texture renderer; // Helper for renderig images + + // Create a pipeline to easily configure and start the camera + rs2::pipeline pipe; + //Calling pipeline's start() without any additional parameters will start the first device + // with its default streams. + //The start function returns the pipeline profile which the pipeline used to start the device + rs2::pipeline_profile profile = pipe.start(); + + // Each depth camera might have different units for depth pixels, so we get it here + // Using the pipeline's profile, we can retrieve the device that the pipeline uses + float depth_scale = get_depth_scale(profile.get_device()); + + //Pipeline could choose a device that does not have a color stream + //If there is no color stream, choose to align depth to another stream + rs2_stream align_to = find_stream_to_align(profile.get_streams()); + + // Create a rs2::align object. + // rs2::align allows us to perform alignment of depth frames to others frames + //The "align_to" is the stream type to which we plan to align depth frames. + rs2::align align(align_to); + + // Define a variable for controlling the distance to clip + float depth_clipping_distance = 1.f; + + while (app) // Application still alive? + { + // Using the align object, we block the application until a frameset is available + rs2::frameset frameset = pipe.wait_for_frames(); + + // rs2::pipeline::wait_for_frames() can replace the device it uses in case of device error or disconnection. + // Since rs2::align is aligning depth to some other stream, we need to make sure that the stream was not changed + // after the call to wait_for_frames(); + if (profile_changed(pipe.get_active_profile().get_streams(), profile.get_streams())) + { + //If the profile was changed, update the align object, and also get the new device's depth scale + profile = pipe.get_active_profile(); + align_to = find_stream_to_align(profile.get_streams()); + align = rs2::align(align_to); + depth_scale = get_depth_scale(profile.get_device()); + } + + //Get processed aligned frame + auto processed = align.process(frameset); + + // Trying to get both other and aligned depth frames + rs2::video_frame other_frame = processed.first(align_to); + rs2::depth_frame aligned_depth_frame = processed.get_depth_frame(); + + //If one of them is unavailable, continue iteration + if (!aligned_depth_frame || !other_frame) + { + continue; + } + // Passing both frames to remove_background so it will "strip" the background + // NOTE: in this example, we alter the buffer of the other frame, instead of copying it and altering the copy + // This behavior is not recommended in real application since the other frame could be used elsewhere + remove_background(other_frame, aligned_depth_frame, depth_scale, depth_clipping_distance); + + // Taking dimensions of the window for rendering purposes + float w = static_cast(app.width()); + float h = static_cast(app.height()); + + // At this point, "other_frame" is an altered frame, stripped form its background + // Calculating the position to place the frame in the window + rect altered_other_frame_rect{ 0, 0, w, h }; + altered_other_frame_rect = altered_other_frame_rect.adjust_ratio({ static_cast(other_frame.get_width()),static_cast(other_frame.get_height()) }); + + // Render aligned image + renderer.render(other_frame, altered_other_frame_rect); + + // The example also renders the depth frame, as a picture-in-picture + // Calculating the position to place the depth frame in the window + rect pip_stream{ 0, 0, w / 5, h / 5 }; + pip_stream = pip_stream.adjust_ratio({ static_cast(aligned_depth_frame.get_width()),static_cast(aligned_depth_frame.get_height()) }); + pip_stream.x = altered_other_frame_rect.x + altered_other_frame_rect.w - pip_stream.w - (std::max(w, h) / 25); + pip_stream.y = altered_other_frame_rect.y + (std::max(w, h) / 25); + + // Render depth (as picture in pipcture) + renderer.upload(c.process(aligned_depth_frame)); + renderer.show(pip_stream); + + // Using ImGui library to provide a slide controller to select the depth clipping distance + ImGui_ImplGlfw_NewFrame(1); + render_slider({ 5.f, 0, w, h }, depth_clipping_distance); + ImGui::Render(); + + } + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception & e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} + +float get_depth_scale(rs2::device dev) +{ + // Go over the device's sensors + for (rs2::sensor& sensor : dev.query_sensors()) + { + // Check if the sensor if a depth sensor + if (rs2::depth_sensor dpt = sensor.as()) + { + return dpt.get_depth_scale(); + } + } + throw std::runtime_error("Device does not have a depth sensor"); +} + +void render_slider(rect location, float& clipping_dist) +{ + // Some trickery to display the control nicely + static const int flags = ImGuiWindowFlags_NoCollapse + | ImGuiWindowFlags_NoScrollbar + | ImGuiWindowFlags_NoSavedSettings + | ImGuiWindowFlags_NoTitleBar + | ImGuiWindowFlags_NoResize + | ImGuiWindowFlags_NoMove; + const int pixels_to_buttom_of_stream_text = 25; + const float slider_window_width = 30; + + ImGui::SetNextWindowPos({ location.x, location.y + pixels_to_buttom_of_stream_text }); + ImGui::SetNextWindowSize({ slider_window_width + 20, location.h - (pixels_to_buttom_of_stream_text * 2) }); + + //Render the vertical slider + ImGui::Begin("slider", nullptr, flags); + ImGui::PushStyleColor(ImGuiCol_FrameBg, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); + ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); + ImGui::PushStyleColor(ImGuiCol_SliderGrabActive, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); + auto slider_size = ImVec2(slider_window_width / 2, location.h - (pixels_to_buttom_of_stream_text * 2) - 20); + ImGui::VSliderFloat("", slider_size, &clipping_dist, 0.0f, 6.0f, "", 1.0f, true); + if (ImGui::IsItemHovered()) + ImGui::SetTooltip("Depth Clipping Distance: %.3f", clipping_dist); + ImGui::PopStyleColor(3); + + //Display bars next to slider + float bars_dist = (slider_size.y / 6.0f); + for (int i = 0; i <= 6; i++) + { + ImGui::SetCursorPos({ slider_size.x, i * bars_dist }); + std::string bar_text = "- " + std::to_string(6-i) + "m"; + ImGui::Text("%s", bar_text.c_str()); + } + ImGui::End(); +} + +void remove_background(rs2::video_frame& other_frame, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist) +{ + const uint16_t* p_depth_frame = reinterpret_cast(depth_frame.get_data()); + uint8_t* p_other_frame = reinterpret_cast(const_cast(other_frame.get_data())); + + int width = other_frame.get_width(); + int height = other_frame.get_height(); + int other_bpp = other_frame.get_bytes_per_pixel(); + + #pragma omp parallel for schedule(dynamic) //Using OpenMP to try to parallelise the loop + for (int y = 0; y < height; y++) + { + auto depth_pixel_index = y * width; + for (int x = 0; x < width; x++, ++depth_pixel_index) + { + // Get the depth value of the current pixel + auto pixels_distance = depth_scale * p_depth_frame[depth_pixel_index]; + + // Check if the depth value is invalid (<=0) or greater than the threashold + if (pixels_distance <= 0.f || pixels_distance > clipping_dist) + { + // Calculate the offset in other frame's buffer to current pixel + auto offset = depth_pixel_index * other_bpp; + + // Set pixel to "background" color (0x999999) + std::memset(&p_other_frame[offset], 0x99, other_bpp); + } + } + } +} + +rs2_stream find_stream_to_align(const std::vector& streams) +{ + //Given a vector of streams, we try to find a depth stream and another stream to align depth with. + //We prioritize color streams to make the view look better. + //If color is not available, we take another stream that (other than depth) + rs2_stream align_to = RS2_STREAM_ANY; + bool depth_stream_found = false; + bool color_stream_found = false; + for (rs2::stream_profile sp : streams) + { + rs2_stream profile_stream = sp.stream_type(); + if (profile_stream != RS2_STREAM_DEPTH) + { + if (!color_stream_found) //Prefer color + align_to = profile_stream; + + if (profile_stream == RS2_STREAM_COLOR) + { + color_stream_found = true; + } + } + else + { + depth_stream_found = true; + } + } + + if(!depth_stream_found) + throw std::runtime_error("No Depth stream available"); + + if (align_to == RS2_STREAM_ANY) + throw std::runtime_error("No stream found to align with Depth"); + + return align_to; +} + +bool profile_changed(const std::vector& current, const std::vector& prev) +{ + for (auto&& sp : prev) + { + //If previous profile is in current (maybe just added another) + auto itr = std::find_if(std::begin(current), std::end(current), [&sp](const rs2::stream_profile& current_sp) { return sp.unique_id() == current_sp.unique_id(); }); + if (itr == std::end(current)) //If it previous stream wasn't found in current + { + return true; + } + } + return false; +} diff --git a/examples/align/CMakeLists.txt b/examples/align/CMakeLists.txt index 9895ef1d43a..1270b29d649 100644 --- a/examples/align/CMakeLists.txt +++ b/examples/align/CMakeLists.txt @@ -1,36 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesAlign) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) - #align add_executable(rs-align rs-align.cpp ../../third-party/imgui/imgui.cpp ../../third-party/imgui/imgui_draw.cpp ../../third-party/imgui/imgui_impl_glfw.cpp) + set_property(TARGET rs-align PROPERTY CXX_STANDARD 11) target_link_libraries(rs-align ${DEPENDENCIES}) include_directories(rs-align ../../common ../../third-party/imgui) - set_target_properties (rs-align PROPERTIES - FOLDER Examples - ) - - install( - TARGETS - - rs-align - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-align PROPERTIES FOLDER Examples) + install(TARGETS rs-align RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/align/readme.md b/examples/align/readme.md index 7ec1cd2e984..74d4cdb9d96 100644 --- a/examples/align/readme.md +++ b/examples/align/readme.md @@ -2,238 +2,93 @@ ## Overview -This sample demonstrates usage of the `rs2::align` object, which allows users to align between the depth and some other streams (projection wise) and vice versa.
- -The alignment utility performs per-pixel geometric transformation based on the depth data provided and is not suited for aligning images that are intrinsically 2D, such Color, IR or Fisheye. In addition the transformation requires undistorted (rectified) images to proceed, and therefore is not applicable to the IR calibration streams. - - -In this example, we align depth frames to their corresponding color frames. -We generate a new frame sized as color stream but the content being depth data calculated in the color sensor coordinate system. In other word to reconstruct a depth image being "captured" using the origin and dimensions of the color sensor. -Then, we use the original color and the re-projected depth frames (which are aligned at this stage) to determine the depth value of each color pixel. - -Using this information, we "remove" the background of the color frame that is further (away from the camera) than some user-define distance. - -The example displays a GUI for controlling the maximum distance to show from the original color image. - +This example introduces the concept of spatial stream alignment. +For example usecase of alignment, please check out align-advanced and measure demos. +The need for spatial alignment (from here "align") arises from the fact +that not all camera streams are captured from a single viewport. + + +Align process lets the user translate images from one viewport to another. +That said, results of align are synthetic streams, and suffer from several artifacts: +1. **Sampling** - mapping stream to a different viewport will modify the resolution of the frame + to match the resolution of target viewport. This will either cause downsampling or + upsampling via interpolation. The interpolation used needs to be of type + Nearest Neighbor to avoid introducing non-existing values. +2. **Occlussion** - Some pixels in the resulting image correspond to 3D coordinates that the original + sensor did not see, because these 3D points were occluded in the original viewport. + Such pixels may hold invalid texture values. + ## Expected Output -The application should open a window and display a video stream from the camera. - -

screenshot gif

- -The window should have the following elements: -- On the left side of the window is a vertical slider for controlling the depth clipping distance. -- A color image with grayed out background -- A corresponding (colorized) depth image. - +The application should open a window and display video stream from the color camera overlayed on top of depth stream data. +The slider in bottom of the window control the transparancy of the overlayed stream. +Checkboxes below allow toggling between depth to color vs color to depth alignment. +

screenshot gif

## Code Overview -As with any SDK application we include the Intel RealSense Cross Platform API: - +This example is using standard `librealsense` API and `IMGUI` library for simple UI rendering: ```cpp #include -``` - -In this example we will also use the auxiliary library of `example.hpp`: - -```cpp -#include "../example.hpp" -``` - -`examples.hpp` lets us easily open a new window and prepare textures for rendering. - -We include 2 more header files which will help us to render GUI controls in our window application: - -```cpp -#include +#include "../example.hpp" +#include "imgui.h" #include "imgui_impl_glfw.h" ``` -These headers are part of the [ImGui](https://github.com/ocornut/imgui) library which we use to render GUI elements. - -Next, we declare three functions to help the code look clearer: -```cpp -void render_slider(rect location, float& clipping_dist); -void remove_background(rs2::video_frame& color, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist); -float get_depth_scale(rs2::device dev); -rs2_stream find_stream_to_align(const std::vector& streams); -bool profile_changed(const std::vector& current, const std::vector& prev); -``` - -`render_slider(..)` is where all the GUI code goes, and we will not cover this function in this overview. - -`remove_background(..)` takes depth and color images (that are assumed to be aligned to one another), the depth scale units, and the maximum distance the user wishes to show, and updates the color frame so that its background (any pixel with depth distance larger than the maximum allowed) is removed. - -`get_depth_scale(..)` tries to find a depth sensor from the pipeline's device and retrieves its depth scale units. - -`find_stream_to_align(..)` goes over the given streams and verify that it has a depth profile and tries to find another profile to which depth should be aligned. - -`profile_changed()` checks if the current streaming profiles contains all the previous one. - - -Heading to `main`: - -We first define some variables that will be used to show the window and render the images and GUI to the screen: - -```cpp -// Create and initialize GUI related objects -window app(1280, 720, "CPP - Align Example"); // Simple window handling -ImGui_ImplGlfw_Init(app, false); // ImGui library intializition -rs2::colorizer c; // Helper to colorize depth images -texture renderer; // Helper for renderig images -``` - -Next, we define a `rs2::pipeline` which is a top level API for using RealSense depth cameras. -`rs2::pipeline` automatically chooses a camera from all connected cameras, so we can simply call `pipeline::start()` and the camera is configured and streaming: - +In this example we are interested in `RS2_STREAM_DEPTH` and `RS2_STREAM_COLOR` streams: ```cpp // Create a pipeline to easily configure and start the camera rs2::pipeline pipe; -//Calling pipeline's start() without any additional parameters will start the first device -// with its default streams. -//The start function returns the pipeline profile which the pipeline used to start the device -rs2::pipeline_profile profile = pipe.start(); -``` - -At this point of the program the camera is configured and streams are available from the pipeline. - -Before actually using the frames, we try to get the depth scale units of the depth camera. Depth scale units are used to convert the depth pixel data (16-bit unsigned) into metric units. +rs2::config cfg; +cfg.enable_stream(RS2_STREAM_DEPTH); +cfg.enable_stream(RS2_STREAM_COLOR); +pipe.start(cfg); -```cpp -// Each depth camera might have different units for depth pixels, so we get it here -// Using the pipeline's profile, we can retrieve the device that the pipeline uses -float depth_scale = get_depth_scale(profile.get_device()); ``` -These units are expressed as depth in meters corresponding to a depth value of 1. For example if we have a depth pixel with a value of 2 and the depth scale units are 0.5 then that pixel is `2 X 0.5 = 1` meter away from the camera. - -Then, we create an `align` object: - -```cpp -//Pipeline could choose a device that does not have a color stream -//If there is no color stream, choose to align depth to another stream -rs2_stream align_to = find_stream_to_align(profile.get_streams()); - -// Create a rs2::align object. -// rs2::align allows us to perform alignment of depth frames to others frames -//The "align_to" is the stream type to which we plan to align depth frames. -rs2::align align(align_to); -``` - -`rs2::align` is a utility class that performs image alignment (registration) of 2 frames. -Basically, each pixel from the first image will be transformed so that it matches its corresponding pixel in the second image. -A `rs2::align` object transforms between two input images, from a source image to some target image which is specified with the `align_to` parameter. - -Now comes the interesting part of the application. We start our main loop, which breaks only when the window is closed: - - +SDK class responsible for stream alignment is called `rs2::align`. The user initializes it with desired target stream and applies it to framesets via `process` method. ```cpp -while (app) // Application still alive? -{ +// Define two align objects. One will be used to align +// to depth viewport and the other to color. +// Creating align object is an expensive operation +// that should not be performed in the main loop +rs2::align align_to_depth(RS2_STREAM_DEPTH); +rs2::align align_to_color(RS2_STREAM_COLOR); +// ... +frameset = align_to_depth.process(frameset); ``` -Inside the loop, the first thing we do is block the program until the `align` object returns a `rs2::frameset`. A `rs2::frameset` is an object that holds a set of frames and provides an interface for easily accessing them. +Next, we render the two stream overlayed on top of each other using OpenGL blending feature: ```cpp - // Using the align object, we block the application until a frameset is available - rs2::frameset frameset = pipe.wait_for_frames(); -``` - -The `frameset` returned from `wait_for_frames` should contain a set of aligned frames. In case of an error getting the frames an exception could be thrown, but if the pipeline manages to reconfigure itself with a new device it will do that and return a frame from the new device. -In the next lines we check if the pipeline switched its device and if so update the align object and the rest of objects required for the sample. +glEnable(GL_BLEND); +// Use the Alpha channel for blending +glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -```cpp -// rs2::pipeline::wait_for_frames() can replace the device it uses in case of device error or disconnection. -// Since rs2::align is aligning depth to some other stream, we need to make sure that the stream was not changed -// after the call to wait_for_frames(); -if (profile_changed(pipe.get_active_profile().get_streams(), profile.get_streams())) +if (dir == direction::to_depth) { - //If the profile was changed, update the align object, and also get the new device's depth scale - profile = pipe.get_active_profile(); - align_to = find_stream_to_align(profile.get_streams()); - align = rs2::align(align_to); - depth_scale = get_depth_scale(profile.get_device()); + // When aligning to depth, first render depth image + // and then overlay color on top with transparancy + depth_image.render(colorized_depth, { 0, 0, app.width(), app.height() }); + color_image.render(color, { 0, 0, app.width(), app.height() }, alpha); } -``` - -At this point the `align` object is valid and will be able to align depth frames with other frames. - -```cpp - //Get processed aligned frame - auto processed = align.process(frameset); - - // Trying to get both color and aligned depth frames - rs2::video_frame other_frame = processed.first_or_default(align_to); - rs2::depth_frame aligned_depth_frame = processed.get_depth_frame(); - - //If one of them is unavailable, continue iteration - if (!aligned_depth_frame || !other_frame) - { - continue; - } -``` -Notice that the color frame is of type `rs2::video_frame` and the depth frame if of type `rs2::depth_frame` (which derives from `rs2::video_frame` and adds special depth related functionality). - -After getting the two aligned color and depth frames, we call the `remove_background(..)` function to strip the background from the color image. -This is a simple function that performs a naive algorithm for background segmentation. -```cpp - // Passing both frames to remove_background so it will "strip" the background - // NOTE: in this example, we alter the buffer of the color frame, instead of copying it and altering the copy - // This behavior is not recommended in real application since the color frame could be used elsewhere - remove_background(color_frame, aligned_depth_frame, depth_scale, depth_clipping_distance); - -``` - -The rest of the loop contains code that takes care of rendering and GUI controls. We will not elaborate on it. Let's go over `remove_background(..)` instead: - - -```cpp -void remove_background(rs2::video_frame& other_frame, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist) +else { -``` - -In the beginning of function, we take a pointer to the raw buffer of both frames, so that we could alter the color image (instead of creating a new buffer). - -```cpp - const uint16_t* p_depth_frame = reinterpret_cast(depth_frame.get_data()); - uint8_t* p_other_frame = reinterpret_cast(const_cast(other_frame.get_data())); -``` - -Next, we go over each pixel of the frame. - -```cpp - //Using OpenMP to try to parallelise the loop - #pragma omp parallel for schedule(dynamic) - for (int y = 0; y < height; y++) - { - auto depth_pixel_index = y * width; - for (int x = 0; x < width; x++, ++depth_pixel_index) - { -``` -Calculate the depth distance of that pixel: -```cpp - // Get the depth value of the current pixel - auto pixels_distance = depth_scale * p_depth_frame[depth_pixel_index]; - -``` + // When aligning to color, first render color image + // and then overlay depth image on top + color_image.render(color, { 0, 0, app.width(), app.height() }); + depth_image.render(colorized_depth, { 0, 0, app.width(), app.height() }, 1 - alpha); +} -If that distance is invalid (`pixels_distance <= 0.f`) or further away than the maximum distance that the user requested (`pixels_distance > clipping_dist`) then we should strip off that pixel from the resulted color image. -```cpp - // Check if the depth value is invalid (<=0) or greater than the threashold - if (pixels_distance <= 0.f || pixels_distance > clipping_dist) - { +glColor4f(1.f, 1.f, 1.f, 1.f); +glDisable(GL_BLEND); ``` -By "strip off" we mean that we simply paint that pixel with a gray color. +IMGUI is used to render the slider and two checkboxes: ```cpp - // Calculate the offset in other frame's buffer to current pixel - auto offset = depth_pixel_index * other_bpp; - - // Set pixel to "background" color (0x999999) - std::memset(&p_other_frame[offset], 0x99, other_bpp); - } - } - } -``` +// Render the UI: +ImGui_ImplGlfw_NewFrame(1); +render_slider({ 15.f, app.height() - 60, app.width() - 30, app.height() }, &alpha, &dir); +ImGui::Render(); +``` \ No newline at end of file diff --git a/examples/align/rs-align.cpp b/examples/align/rs-align.cpp index 098d4a503a6..09c0a5e15b0 100644 --- a/examples/align/rs-align.cpp +++ b/examples/align/rs-align.cpp @@ -1,117 +1,112 @@ // License: Apache 2.0. See LICENSE file in root directory. -// Copyright(c) 2017 Intel Corporation. All Rights Reserved. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. #include #include "../example.hpp" -#include +#include "imgui.h" #include "imgui_impl_glfw.h" -#include -#include -#include -#include -#include +/* + This example introduces the concept of spatial stream alignment. + For example usecase of alignment, please check out align-advanced and measure demos. + The need for spatial alignment (from here "align") arises from the fact + that not all camera streams are captured from a single viewport. + Align process lets the user translate images from one viewport to another. + That said, results of align are synthetic streams, and suffer from several artifacts: + 1. Sampling - mapping stream to a different viewport will modify the resolution of the frame + to match the resolution of target viewport. This will either cause downsampling or + upsampling via interpolation. The interpolation used needs to be of type + Nearest Neighbor to avoid introducing non-existing values. + 2. Occlussion - Some pixels in the resulting image correspond to 3D coordinates that the original + sensor did not see, because these 3D points were occluded in the original viewport. + Such pixels may hold invalid texture values. +*/ + +// This example assumes camera with depth and color +// streams, and direction lets you define the target stream +enum class direction +{ + to_depth, + to_color +}; -void render_slider(rect location, float& clipping_dist); -void remove_background(rs2::video_frame& other, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist); -float get_depth_scale(rs2::device dev); -rs2_stream find_stream_to_align(const std::vector& streams); -bool profile_changed(const std::vector& current, const std::vector& prev); +// Forward definition of UI rendering, implemented below +void render_slider(rect location, float* alpha, direction* dir); int main(int argc, char * argv[]) try { // Create and initialize GUI related objects - window app(1280, 720, "CPP - Align Example"); // Simple window handling + window app(1280, 720, "RealSense Align Example"); // Simple window handling ImGui_ImplGlfw_Init(app, false); // ImGui library intializition - rs2::colorizer c; // Helper to colorize depth images - texture renderer; // Helper for renderig images + rs2::colorizer c; // Helper to colorize depth images + texture depth_image, color_image; // Helpers for renderig images // Create a pipeline to easily configure and start the camera rs2::pipeline pipe; - //Calling pipeline's start() without any additional parameters will start the first device - // with its default streams. - //The start function returns the pipeline profile which the pipeline used to start the device - rs2::pipeline_profile profile = pipe.start(); - - // Each depth camera might have different units for depth pixels, so we get it here - // Using the pipeline's profile, we can retrieve the device that the pipeline uses - float depth_scale = get_depth_scale(profile.get_device()); + rs2::config cfg; + cfg.enable_stream(RS2_STREAM_DEPTH); + cfg.enable_stream(RS2_STREAM_COLOR); + pipe.start(cfg); - //Pipeline could choose a device that does not have a color stream - //If there is no color stream, choose to align depth to another stream - rs2_stream align_to = find_stream_to_align(profile.get_streams()); + // Define two align objects. One will be used to align + // to depth viewport and the other to color. + // Creating align object is an expensive operation + // that should not be performed in the main loop + rs2::align align_to_depth(RS2_STREAM_DEPTH); + rs2::align align_to_color(RS2_STREAM_COLOR); - // Create a rs2::align object. - // rs2::align allows us to perform alignment of depth frames to others frames - //The "align_to" is the stream type to which we plan to align depth frames. - rs2::align align(align_to); - - // Define a variable for controlling the distance to clip - float depth_clipping_distance = 1.f; + float alpha = 0.5f; // Transparancy coefficient + direction dir = direction::to_depth; // Alignment direction while (app) // Application still alive? { // Using the align object, we block the application until a frameset is available rs2::frameset frameset = pipe.wait_for_frames(); - // rs2::pipeline::wait_for_frames() can replace the device it uses in case of device error or disconnection. - // Since rs2::align is aligning depth to some other stream, we need to make sure that the stream was not changed - // after the call to wait_for_frames(); - if (profile_changed(pipe.get_active_profile().get_streams(), profile.get_streams())) + if (dir == direction::to_depth) { - //If the profile was changed, update the align object, and also get the new device's depth scale - profile = pipe.get_active_profile(); - align_to = find_stream_to_align(profile.get_streams()); - align = rs2::align(align_to); - depth_scale = get_depth_scale(profile.get_device()); + // Align all frames to depth viewport + frameset = align_to_depth.process(frameset); } - - //Get processed aligned frame - auto processed = align.process(frameset); - - // Trying to get both other and aligned depth frames - rs2::video_frame other_frame = processed.first(align_to); - rs2::depth_frame aligned_depth_frame = processed.get_depth_frame(); - - //If one of them is unavailable, continue iteration - if (!aligned_depth_frame || !other_frame) + else { - continue; + // Align all frames to color viewport + frameset = align_to_color.process(frameset); } - // Passing both frames to remove_background so it will "strip" the background - // NOTE: in this example, we alter the buffer of the other frame, instead of copying it and altering the copy - // This behavior is not recommended in real application since the other frame could be used elsewhere - remove_background(other_frame, aligned_depth_frame, depth_scale, depth_clipping_distance); - // Taking dimensions of the window for rendering purposes - float w = static_cast(app.width()); - float h = static_cast(app.height()); + // With the aligned frameset we proceed as usual + auto depth = frameset.get_depth_frame(); + auto color = frameset.get_color_frame(); + auto colorized_depth = c.colorize(depth); - // At this point, "other_frame" is an altered frame, stripped form its background - // Calculating the position to place the frame in the window - rect altered_other_frame_rect{ 0, 0, w, h }; - altered_other_frame_rect = altered_other_frame_rect.adjust_ratio({ static_cast(other_frame.get_width()),static_cast(other_frame.get_height()) }); + glEnable(GL_BLEND); + // Use the Alpha channel for blending + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - // Render aligned image - renderer.render(other_frame, altered_other_frame_rect); - - // The example also renders the depth frame, as a picture-in-picture - // Calculating the position to place the depth frame in the window - rect pip_stream{ 0, 0, w / 5, h / 5 }; - pip_stream = pip_stream.adjust_ratio({ static_cast(aligned_depth_frame.get_width()),static_cast(aligned_depth_frame.get_height()) }); - pip_stream.x = altered_other_frame_rect.x + altered_other_frame_rect.w - pip_stream.w - (std::max(w, h) / 25); - pip_stream.y = altered_other_frame_rect.y + altered_other_frame_rect.h - pip_stream.h - (std::max(w, h) / 25); + if (dir == direction::to_depth) + { + // When aligning to depth, first render depth image + // and then overlay color on top with transparancy + depth_image.render(colorized_depth, { 0, 0, app.width(), app.height() }); + color_image.render(color, { 0, 0, app.width(), app.height() }, alpha); + } + else + { + // When aligning to color, first render color image + // and then overlay depth image on top + color_image.render(color, { 0, 0, app.width(), app.height() }); + depth_image.render(colorized_depth, { 0, 0, app.width(), app.height() }, 1 - alpha); + } - // Render depth (as picture in pipcture) - renderer.upload(c.process(aligned_depth_frame)); - renderer.show(pip_stream); + glColor4f(1.f, 1.f, 1.f, 1.f); + glDisable(GL_BLEND); - // Using ImGui library to provide a slide controller to select the depth clipping distance + // Render the UI: ImGui_ImplGlfw_NewFrame(1); - render_slider({ 5.f, 0, w, h }, depth_clipping_distance); + render_slider({ 15.f, app.height() - 60, app.width() - 30, app.height() }, &alpha, &dir); ImGui::Render(); - } + return EXIT_SUCCESS; } catch (const rs2::error & e) @@ -125,134 +120,40 @@ catch (const std::exception & e) return EXIT_FAILURE; } -float get_depth_scale(rs2::device dev) +void render_slider(rect location, float* alpha, direction* dir) { - // Go over the device's sensors - for (rs2::sensor& sensor : dev.query_sensors()) - { - // Check if the sensor if a depth sensor - if (rs2::depth_sensor dpt = sensor.as()) - { - return dpt.get_depth_scale(); - } - } - throw std::runtime_error("Device does not have a depth sensor"); -} - -void render_slider(rect location, float& clipping_dist) -{ - // Some trickery to display the control nicely static const int flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove; - const int pixels_to_buttom_of_stream_text = 25; - const float slider_window_width = 30; - ImGui::SetNextWindowPos({ location.x, location.y + pixels_to_buttom_of_stream_text }); - ImGui::SetNextWindowSize({ slider_window_width + 20, location.h - (pixels_to_buttom_of_stream_text * 2) }); + ImGui::SetNextWindowPos({ location.x, location.y }); + ImGui::SetNextWindowSize({ location.w, location.h }); - //Render the vertical slider + // Render transparency slider: ImGui::Begin("slider", nullptr, flags); - ImGui::PushStyleColor(ImGuiCol_FrameBg, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); - ImGui::PushStyleColor(ImGuiCol_SliderGrab, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); - ImGui::PushStyleColor(ImGuiCol_SliderGrabActive, ImColor(215.f / 255, 215.0f / 255, 215.0f / 255)); - auto slider_size = ImVec2(slider_window_width / 2, location.h - (pixels_to_buttom_of_stream_text * 2) - 20); - ImGui::VSliderFloat("", slider_size, &clipping_dist, 0.0f, 6.0f, "", 1.0f, true); + ImGui::PushItemWidth(-1); + ImGui::SliderFloat("##Slider", alpha, 0.f, 1.f); + ImGui::PopItemWidth(); if (ImGui::IsItemHovered()) - ImGui::SetTooltip("Depth Clipping Distance: %.3f", clipping_dist); - ImGui::PopStyleColor(3); - - //Display bars next to slider - float bars_dist = (slider_size.y / 6.0f); - for (int i = 0; i <= 6; i++) - { - ImGui::SetCursorPos({ slider_size.x, i * bars_dist }); - std::string bar_text = "- " + std::to_string(6-i) + "m"; - ImGui::Text("%s", bar_text.c_str()); - } - ImGui::End(); -} - -void remove_background(rs2::video_frame& other_frame, const rs2::depth_frame& depth_frame, float depth_scale, float clipping_dist) -{ - const uint16_t* p_depth_frame = reinterpret_cast(depth_frame.get_data()); - uint8_t* p_other_frame = reinterpret_cast(const_cast(other_frame.get_data())); + ImGui::SetTooltip("Texture Transparancy: %.3f", *alpha); - int width = other_frame.get_width(); - int height = other_frame.get_height(); - int other_bpp = other_frame.get_bytes_per_pixel(); + // Render direction checkboxes: + bool to_depth = (*dir == direction::to_depth); + bool to_color = (*dir == direction::to_color); - #pragma omp parallel for schedule(dynamic) //Using OpenMP to try to parallelise the loop - for (int y = 0; y < height; y++) + if (ImGui::Checkbox("Align To Depth", &to_depth)) { - auto depth_pixel_index = y * width; - for (int x = 0; x < width; x++, ++depth_pixel_index) - { - // Get the depth value of the current pixel - auto pixels_distance = depth_scale * p_depth_frame[depth_pixel_index]; - - // Check if the depth value is invalid (<=0) or greater than the threashold - if (pixels_distance <= 0.f || pixels_distance > clipping_dist) - { - // Calculate the offset in other frame's buffer to current pixel - auto offset = depth_pixel_index * other_bpp; - - // Set pixel to "background" color (0x999999) - std::memset(&p_other_frame[offset], 0x99, other_bpp); - } - } + *dir = to_depth ? direction::to_depth : direction::to_color; } -} - -rs2_stream find_stream_to_align(const std::vector& streams) -{ - //Given a vector of streams, we try to find a depth stream and another stream to align depth with. - //We prioritize color streams to make the view look better. - //If color is not available, we take another stream that (other than depth) - rs2_stream align_to = RS2_STREAM_ANY; - bool depth_stream_found = false; - bool color_stream_found = false; - for (rs2::stream_profile sp : streams) + ImGui::SameLine(); + ImGui::SetCursorPosX(location.w - 140); + if (ImGui::Checkbox("Align To Color", &to_color)) { - rs2_stream profile_stream = sp.stream_type(); - if (profile_stream != RS2_STREAM_DEPTH) - { - if (!color_stream_found) //Prefer color - align_to = profile_stream; - - if (profile_stream == RS2_STREAM_COLOR) - { - color_stream_found = true; - } - } - else - { - depth_stream_found = true; - } + *dir = to_color ? direction::to_color : direction::to_depth; } - if(!depth_stream_found) - throw std::runtime_error("No Depth stream available"); - - if (align_to == RS2_STREAM_ANY) - throw std::runtime_error("No stream found to align with Depth"); - - return align_to; -} - -bool profile_changed(const std::vector& current, const std::vector& prev) -{ - for (auto&& sp : prev) - { - //If previous profile is in current (maybe just added another) - auto itr = std::find_if(std::begin(current), std::end(current), [&sp](const rs2::stream_profile& current_sp) { return sp.unique_id() == current_sp.unique_id(); }); - if (itr == std::end(current)) //If it previous stream wasn't found in current - { - return true; - } - } - return false; + ImGui::End(); } diff --git a/examples/ar-advanced/CMakeLists.txt b/examples/ar-advanced/CMakeLists.txt new file mode 100644 index 00000000000..e56532a41e8 --- /dev/null +++ b/examples/ar-advanced/CMakeLists.txt @@ -0,0 +1,26 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesAR_Advanced) + +# Save the command line compile commands in the build output +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +endif() + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-ar-advanced rs-ar-advanced.cpp ../example.hpp) + target_include_directories(rs-ar-advanced PUBLIC ../) + target_link_libraries(rs-ar-advanced ${DEPENDENCIES}) + set_target_properties (rs-ar-advanced PROPERTIES FOLDER Examples) + install(TARGETS rs-ar-advanced RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/ar-advanced/readme.md b/examples/ar-advanced/readme.md new file mode 100644 index 00000000000..8a7382f5b03 --- /dev/null +++ b/examples/ar-advanced/readme.md @@ -0,0 +1,88 @@ +# rs-ar-advanced Sample + +> In order to run this example, a device supporting pose stream (T265) is required. + +## Overview +This sample demonstrates how to extend the [`rs-ar-basic` Sample](../ar-basic) with `rs2::pose_sensor` API to: +* Import/export localization data file(s), +* Receive a relocalization event callback, +* Set/get static node to add/read landmark to/from the localization map. + +## Command Line Inputs + +Users should specify the path(s) to the localization map data file(s) by using command line arguments. For example, to load a map file, users can run the application `rs-ar-advanced` followed by a command line option `--load_map` and file path `src_map.raw` which is located at the same directory as `rs-ar-advanced`: + +```cpp +>>rs-ar-advanced --load_map src_map.raw +``` + +To set both input map file `src_map.raw` and output map file `dst_map.raw` at same directory of the application: + +```cpp +>>rs-ar-advanced --load_map src_map.raw --save_map dst_map.raw` +``` + +Then, the application will import localization map data from `src_map.raw` file at the beginning of tracking and will export the modified map including a virtual object as a static node to `dst_map.raw` file. + +>Note: if neither input nor output path is given, this application will behave exactly the same as the `rs-ar-basic` example. + +## Expected Output +Same as the [`rs-ar-basic` Sample](../ar-basic), the application should open a window in which it shows one of the fisheye streams with a virtual object in the scene. The virtual object is 3 red, green and blue segments. + +![](../ar-basic/example.gif "Example") + +## Code Overview + +Please refer to code overview of the [rs-ar-basic Sample](../ar-basic/readme.md). + +## Additions to the `rs-ar-basic` + +Before start running the pipe, we import the localization map using the file path (if available) from command line input and a `tm_sensor` object from the pipeline: + +```cpp +// Get pose sensor +auto tm_sensor = cfg.resolve(pipe).get_device().first(); + +tm_sensor.import_localization_map(bytes_from_raw_file(in_map_filepath)); +std::cout << "Map loaded from " << in_map_filepath << std::endl; +``` + +Then, we set a relocalization notification callback using the same `tm_sensor` object: + +```cpp + +// Add relocalization callback +tm_sensor.set_notifications_callback([&](const rs2::notification& n) { + if (n.get_category() == RS2_NOTIFICATION_CATEGORY_POSE_RELOCALIZATION) { + std::cout << "Relocalization Event Detected." << std::endl; +``` + +Continue within the callback is that we load the virtual object which had been saved as a static node in the map file in previous run: + +```cpp + // Get static node if available + if (tm_sensor.get_static_node(virtual_object_guid, object_pose_in_world.translation, object_pose_in_world.rotation)) { + std::cout << "Virtual object loaded: " << object_pose_in_world.translation << std::endl; + object_pose_in_world_initialized = true; + } +``` + +The rest of the main body is similar to the [`rs-ar-basic` Sample](../ar-basic), except, at the end of the application, we save the modified virtual object as a static node: + +```cpp +// Exit if user presses escape +if (tm_sensor.set_static_node(virtual_object_guid, object_pose_in_world.translation, object_pose_in_world.rotation)) { + std::cout << "Saved virtual object as static node. " << std::endl; +} +``` + +Finally, we also save the modified localization map to file path given by the command line inputs (if available): + +```cpp +// Export map to a raw file +if (!out_map_filepath.empty()) { + pipe.stop(); + raw_file_from_bytes(out_map_filepath, tm_sensor.export_localization_map()); + std::cout << "Saved map to " << out_map_filepath << std::endl; +} +``` diff --git a/examples/ar-advanced/rs-ar-advanced.cpp b/examples/ar-advanced/rs-ar-advanced.cpp new file mode 100644 index 00000000000..5870e04d911 --- /dev/null +++ b/examples/ar-advanced/rs-ar-advanced.cpp @@ -0,0 +1,436 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include +#include +#include +#include +#include +#include +#include "example.hpp" + +struct point3d { + float f[3]; + + point3d() {} + point3d(float x, float y, float z) : f{x, y, z} {} + float x() const { return f[0]; } + float y() const { return f[1]; } + float z() const { return f[2]; } +}; + +struct pixel { + float f[2]; + + pixel() {} + pixel(float x, float y) : f{x, y} {} + float x() const { return f[0]; } + float y() const { return f[1]; } +}; + +// We define a virtual object as a collection of vertices that will be connected by lines +typedef std::array object; + +static rs2_pose identity_pose(); +static rs2_pose reset_object_pose(const rs2_pose& device_pose_in_world = identity_pose()); +static rs2_pose pose_inverse(const rs2_pose& p); +static rs2_pose pose_multiply(const rs2_pose& ref2_in_ref1, const rs2_pose& ref3_in_ref2); +static rs2_quaternion quaternion_conjugate(const rs2_quaternion& q); +static rs2_quaternion quaternion_multiply(const rs2_quaternion& a, const rs2_quaternion& b); +static rs2_vector quaternion_rotate_vector(const rs2_quaternion& q, const rs2_vector& v); +static rs2_vector pose_transform_point(const rs2_pose& pose, const rs2_vector& p); +static rs2_vector vector_addition(const rs2_vector& a, const rs2_vector& b); +static rs2_vector vector_negate(const rs2_vector& v); + +static object convert_object_coordinates(const object& obj, const rs2_pose& object_pose); + +static std::vector raster_line(const point3d& a, const point3d& b, float step); +static void render_line(const std::vector& line, int color_code); +static void render_text(int win_height, const std::string& text); + +void raw_file_from_bytes(const std::string& filename, const std::vector bytes); +std::vector bytes_from_raw_file(const std::string& filename); + +int main(int argc, char * argv[]) try +{ + std::string out_map_filepath, in_map_filepath, default_filepath = "map.raw"; + for (int c = 1; c < argc; ++c) { + if (!std::strcmp(argv[c], "-m") || !std::strcmp(argv[c], "--load_map")) { + in_map_filepath = (++c < argc) ? std::string(argv[c]) : default_filepath; + } + else if (!std::strcmp(argv[c], "-s") || !std::strcmp(argv[c], "--save_map")) { + out_map_filepath = (++c < argc) ? std::string(argv[c]) : default_filepath; + } + else { + std::cout << + " usages : [-m|--load_map IN_FILEPATH][-s|--save_map OUT_FILEPATH] \n" << + " -m load raw map from IN_FILEPATH at start. \n" << + " -s save raw map to OUT_FILEPATH at the end. \n"; + } + } + + std::cout << "Waiting for device..." << std::endl; + + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Enable fisheye and pose streams + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + cfg.enable_stream(RS2_STREAM_FISHEYE, 1); + cfg.enable_stream(RS2_STREAM_FISHEYE, 2); + + // Create the vertices of a simple virtual object. + // This virtual object is 4 points in 3D space that describe 3 XYZ 20cm long axes. + // These vertices are relative to the object's own coordinate system. + const float length = 0.20f; + const object virtual_object = { { + { 0, 0, 0 }, // origin + { length, 0, 0 }, // X + { 0, length, 0 }, // Y + { 0, 0, length } // Z + } }; + // Set Guid of virtual object + const std::string virtual_object_guid = "node0"; + + // This variable will hold the pose of the virtual object in world coordinates. + // We we initialize it once we get the first pose frame. + rs2_pose object_pose_in_world; + bool object_pose_in_world_initialized = false; + + // Get pose sensor + auto tm_sensor = cfg.resolve(pipe).get_device().first(); + + // Load raw map on request + if (!in_map_filepath.empty()) { + try { + tm_sensor.import_localization_map(bytes_from_raw_file(in_map_filepath)); + std::cout << "Map loaded from " << in_map_filepath << std::endl; + } + catch (std::runtime_error e) { std::cout << e.what() << std::endl; } + } + + // Add relocalization callback + tm_sensor.set_notifications_callback([&](const rs2::notification& n) { + if (n.get_category() == RS2_NOTIFICATION_CATEGORY_POSE_RELOCALIZATION) { + std::cout << "Relocalization Event Detected." << std::endl; + // Get static node if available + if (tm_sensor.get_static_node(virtual_object_guid, object_pose_in_world.translation, object_pose_in_world.rotation)) { + std::cout << "Virtual object loaded: " << object_pose_in_world.translation << std::endl; + object_pose_in_world_initialized = true; + } + } + }); + + // Start pipeline with chosen configuration + rs2::pipeline_profile pipe_profile = pipe.start(cfg); + + // T265 has two fisheye sensors, we can choose any of them (index 1 or 2) + const int fisheye_sensor_idx = 1; + + // Get fisheye sensor intrinsics parameters + rs2::stream_profile fisheye_stream = pipe_profile.get_stream(RS2_STREAM_FISHEYE, fisheye_sensor_idx); + rs2_intrinsics intrinsics = fisheye_stream.as().get_intrinsics(); + + rs2_extrinsics pose_to_fisheye_extrinsics = pipe_profile.get_stream(RS2_STREAM_POSE).get_extrinsics_to(fisheye_stream); + + std::cout << "Device got. Streaming data" << std::endl; + + // Create an OpenGL display window and a texture to draw the fisheye image + window app(intrinsics.width, intrinsics.height, "Intel RealSense T265 Augmented Reality Example"); + window_key_listener key_watcher(app); + texture fisheye_image; + + // Main loop + while (app) + { + rs2_pose device_pose_in_world; // This will contain the current device pose + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the fisheye stream + rs2::video_frame fisheye_frame = frames.get_fisheye_frame(fisheye_sensor_idx); + // Get a frame from the pose stream + rs2::pose_frame pose_frame = frames.get_pose_frame(); + + // Copy current camera pose + device_pose_in_world = pose_frame.get_pose_data(); + + // Render the fisheye image + fisheye_image.render(fisheye_frame, { 0, 0, app.width(), app.height() }); + + // By closing the current scope we let frames be deallocated, so we do not fill up librealsense queues while we do other computation. + } + + // If we have not set the virtual object in the world yet, set it in front of the camera now. + if (!object_pose_in_world_initialized && in_map_filepath.empty()) + { + object_pose_in_world = reset_object_pose(device_pose_in_world); + object_pose_in_world_initialized = true; + } + + // Compute the pose of the object relative to the current pose of the device + rs2_pose world_pose_in_device = pose_inverse(device_pose_in_world); + rs2_pose object_pose_in_device = pose_multiply(world_pose_in_device, object_pose_in_world); + + // Get the object vertices in device coordinates + object object_in_device = convert_object_coordinates(virtual_object, object_pose_in_device); + + // Convert object vertices from device coordinates into fisheye sensor coordinates using extrinsics + object object_in_sensor; + for (size_t i = 0; i < object_in_device.size(); ++i) + { + rs2_transform_point_to_point(object_in_sensor[i].f, &pose_to_fisheye_extrinsics, object_in_device[i].f); + } + + for (size_t i = 1; i < object_in_sensor.size(); ++i) + { + // Discretize the virtual object line into smaller 1cm long segments + std::vector points_in_sensor = raster_line(object_in_sensor[0], object_in_sensor[i], 0.01f); + std::vector projected_line; + projected_line.reserve(points_in_sensor.size()); + for (auto& point : points_in_sensor) + { + // A 3D point is visible in the image if its Z coordinate relative to the fisheye sensor is positive. + if (point.z() > 0) + { + // Project 3D sensor coordinates to 2D fisheye image coordinates using intrinsics + projected_line.emplace_back(); + rs2_project_point_to_pixel(projected_line.back().f, &intrinsics, point.f); + } + } + // Display the line in the image + render_line(projected_line, i); + } + + // Display text in the image + render_text((int)app.height(), device_pose_in_world.tracker_confidence > 2 ? + "Press spacebar to reset the pose of the virtual object. Press ESC to exit" : + "Move the camera around for saving the virtual object. Press ESC to exit" ); + + // Check if some key is pressed + switch (key_watcher.get_key()) + { + case GLFW_KEY_SPACE: + // Reset virtual object pose if user presses spacebar + object_pose_in_world = reset_object_pose(device_pose_in_world); + std::cout << "Setting new pose for virtual object: " << object_pose_in_world.translation << std::endl; + break; + case GLFW_KEY_ESCAPE: + // Exit if user presses escape + if (tm_sensor.set_static_node(virtual_object_guid, object_pose_in_world.translation, object_pose_in_world.rotation)) { + std::cout << "Saved virtual object as static node. " << std::endl; + } + + // Export map to a raw file + if (!out_map_filepath.empty()) { + pipe.stop(); + raw_file_from_bytes(out_map_filepath, tm_sensor.export_localization_map()); + std::cout << "Saved map to " << out_map_filepath << std::endl; + } + case GLFW_KEY_Q: + app.close(); + break; + } + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} + +rs2_pose identity_pose() +{ + // Return an identity pose (no translation, no rotation) + rs2_pose pose; + pose.translation.x = 0; + pose.translation.y = 0; + pose.translation.z = 0; + pose.rotation.x = 0; + pose.rotation.y = 0; + pose.rotation.z = 0; + pose.rotation.w = 1; + return pose; +} + +rs2_pose reset_object_pose(const rs2_pose& device_pose_in_world) +{ + // Set the object 50 centimeter away in front of the camera. + // T265 coordinate system is defined here: https://github.com/IntelRealSense/librealsense/blob/master/doc/t265.md#sensor-origin-and-coordinate-system + rs2_pose object_pose_in_device; + object_pose_in_device.translation.x = 0; + object_pose_in_device.translation.y = 0; + object_pose_in_device.translation.z = -0.50; + object_pose_in_device.rotation.x = 0; + object_pose_in_device.rotation.y = 0; + object_pose_in_device.rotation.z = 0; + object_pose_in_device.rotation.w = 1; + + // Convert the pose of the virtual object from camera coordinates into world coordinates + rs2_pose object_pose_in_world = pose_multiply(device_pose_in_world, object_pose_in_device); + return object_pose_in_world; +} + +rs2_pose pose_inverse(const rs2_pose& p) +{ + rs2_pose i; + i.rotation = quaternion_conjugate(p.rotation); + i.translation = vector_negate(quaternion_rotate_vector(i.rotation, p.translation)); + return i; +} + +rs2_pose pose_multiply(const rs2_pose& ref2_in_ref1, const rs2_pose& ref3_in_ref2) +{ + rs2_pose ref3_in_ref1; + ref3_in_ref1.rotation = quaternion_multiply(ref2_in_ref1.rotation, ref3_in_ref2.rotation); + ref3_in_ref1.translation = vector_addition(quaternion_rotate_vector(ref2_in_ref1.rotation, ref3_in_ref2.translation), ref2_in_ref1.translation); + return ref3_in_ref1; +} + +rs2_vector pose_transform_point(const rs2_pose& pose, const rs2_vector& p) +{ + return vector_addition(quaternion_rotate_vector(pose.rotation, p), pose.translation); +} + +rs2_quaternion quaternion_multiply(const rs2_quaternion& a, const rs2_quaternion& b) +{ + return rs2_quaternion { + a.x * b.w + a.w * b.x - a.z * b.y + a.y * b.z, + a.y * b.w + a.z * b.x + a.w * b.y - a.x * b.z, + a.z * b.w - a.y * b.x + a.x * b.y + a.w * b.z, + a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z, + }; +} + +rs2_vector quaternion_rotate_vector(const rs2_quaternion& q, const rs2_vector& v) +{ + rs2_quaternion v_as_quaternion = { v.x, v.y, v.z, 0 }; + rs2_quaternion rotated_v = quaternion_multiply(quaternion_multiply(q, v_as_quaternion), quaternion_conjugate(q)); + return rs2_vector { rotated_v.x, rotated_v.y, rotated_v.z }; +} + +rs2_quaternion quaternion_conjugate(const rs2_quaternion& q) +{ + return rs2_quaternion { -q.x, -q.y, -q.z, q.w }; +} + +rs2_vector vector_addition(const rs2_vector& a, const rs2_vector& b) +{ + return rs2_vector { a.x + b.x, a.y + b.y, a.z + b.z }; +} + +rs2_vector vector_negate(const rs2_vector& v) +{ + return rs2_vector { -v.x, -v.y, -v.z }; +} + +object convert_object_coordinates(const object& obj, const rs2_pose& object_pose) +{ + object transformed_obj; + for (size_t i = 0; i < obj.size(); ++i) { + rs2_vector v { obj[i].x(), obj[i].y(), obj[i].z() }; + v = pose_transform_point(object_pose, v); + transformed_obj[i].f[0] = v.x; + transformed_obj[i].f[1] = v.y; + transformed_obj[i].f[2] = v.z; + } + return transformed_obj; +} + +std::vector raster_line(const point3d& a, const point3d& b, float step) +{ + rs2_vector direction = { b.x() - a.x(), b.y() - a.y(), b.z() - a.z() }; + float distance = std::sqrt(direction.x*direction.x + direction.y*direction.y + direction.z*direction.z); + int npoints = (int)(distance / step + 1); + + std::vector points; + if (npoints > 0) + { + direction.x = direction.x * step / distance; + direction.y = direction.y * step / distance; + direction.z = direction.z * step / distance; + + points.reserve(npoints); + points.emplace_back(a); + for (int i = 1; i < npoints; ++i) + { + points.emplace_back(a.x() + direction.x * i, + a.y() + direction.y * i, + a.z() + direction.z * i); + } + } + return points; +} + +void render_line(const std::vector& line, int color_code) +{ + if (!line.empty()) + { + GLfloat current_color[4]; + glGetFloatv(GL_CURRENT_COLOR, current_color); + + glLineWidth(5); + glColor3f(color_code == 1 ? 1.f : 0.f, + color_code == 2 ? 1.f : 0.f, + color_code == 3 ? 1.f : 0.f); + + glBegin(GL_LINE_STRIP); + for (auto& pixel : line) + { + glVertex3f(pixel.x(), pixel.y(), 0.f); + } + glEnd(); + + glColor4fv(current_color); + } +} + +void render_text(int win_height, const std::string& text) +{ + GLfloat current_color[4]; + glGetFloatv(GL_CURRENT_COLOR, current_color); + glColor3f(0, 0.5, 1); + glScalef(2, 2, 2); + draw_text(15, (win_height - 10) / 2, text.c_str()); + glScalef(1, 1, 1); + glColor4fv(current_color); +} + +void raw_file_from_bytes(const std::string& filename, const std::vector bytes) +{ + std::ofstream file(filename, std::ios::binary | std::ios::trunc); + if (!file.good()) + throw std::runtime_error("Invalid binary file specified. Verify the target path and location permissions"); + file.write((char*)bytes.data(), bytes.size()); +} + +std::vector bytes_from_raw_file(const std::string& filename) +{ + std::ifstream file(filename.c_str(), std::ios::binary); + if (!file.good()) + throw std::runtime_error("Invalid binary file specified. Verify the source path and location permissions"); + + // Determine the file length + file.seekg(0, std::ios_base::end); + std::size_t size = file.tellg(); + if (!size) + throw std::runtime_error("Invalid binary file -zero-size"); + file.seekg(0, std::ios_base::beg); + + // Create a vector to store the data + std::vector v(size); + + // Load the data + file.read((char*)&v[0], size); + + return v; +} diff --git a/examples/ar-basic/CMakeLists.txt b/examples/ar-basic/CMakeLists.txt new file mode 100644 index 00000000000..d1ef5245c75 --- /dev/null +++ b/examples/ar-basic/CMakeLists.txt @@ -0,0 +1,26 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesAR) + +# Save the command line compile commands in the build output +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +endif() + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-ar-basic rs-ar-basic.cpp ../example.hpp) + target_include_directories(rs-ar-basic PUBLIC ../) + target_link_libraries(rs-ar-basic ${DEPENDENCIES}) + set_target_properties (rs-ar-basic PROPERTIES FOLDER Examples) + install(TARGETS rs-ar-basic RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/ar-basic/coordinates.jpg b/examples/ar-basic/coordinates.jpg new file mode 100644 index 00000000000..d5a0a441c51 Binary files /dev/null and b/examples/ar-basic/coordinates.jpg differ diff --git a/examples/ar-basic/example.gif b/examples/ar-basic/example.gif new file mode 100644 index 00000000000..081fd423c06 Binary files /dev/null and b/examples/ar-basic/example.gif differ diff --git a/examples/ar-basic/readme.md b/examples/ar-basic/readme.md new file mode 100644 index 00000000000..51a7a228df7 --- /dev/null +++ b/examples/ar-basic/readme.md @@ -0,0 +1,243 @@ +# rs-ar-basic Sample + +> In order to run this example, a device supporting pose stream (T265) is required. + +## Overview +This sample demonstrates how to obtain pose and fisheye data from a T265 device to create +a simple augmented reality application. +It also shows how to use the camera intrinsics and extrinsics API. + +## Expected Output +The application should open a window in which it shows one of the fisheye streams with a virtual object in the scene. The virtual object is 3 red, green and blue segments. + +![](example.gif "Example") + +## Code Overview + +First, we include the Intel® RealSense™ Cross-Platform API. +```cpp +#include // Include RealSense Cross Platform API +#include +``` + +Then, we define some auxiliary types and functions. We define a "virtual object" as a +collection of vertices that will be connected by lines. Since our object are 3 segments, +we can describe them with 4 vertices: one at the origin, and one at the end of each segment. +```cpp +// We define a virtual object as a collection of vertices that will be connected by lines +typedef std::array object; +``` + +In the `main` function, we declare the pipeline and configure it with `RS2_STREAM_POSE` and `RS2_STREAM_FISHEYE` streams. Then, we start the pipeline. +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Enable fisheye and pose streams +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); +cfg.enable_stream(RS2_STREAM_FISHEYE, 1); +cfg.enable_stream(RS2_STREAM_FISHEYE, 2); +// Start pipeline with chosen configuration +rs2::pipeline_profile pipe_profile = pipe.start(cfg); +``` + +T265 provides two fisheye sensors we can use. We choose index 1 (left sensor), but it could be index 2 as well. +```cpp +// T265 has two fisheye sensors, we can choose any of them (index 1 or 2) +const int fisheye_sensor_idx = 1; +``` + +The intrinsics parameters of the sensor contain information about the fisheye distortion. +We will use these data to correctly project a virtual image on our image: +```cpp +// Get fisheye sensor intrinsics parameters +rs2::stream_profile fisheye_stream = pipe_profile.get_stream(RS2_STREAM_FISHEYE, fisheye_sensor_idx); +rs2_intrinsics intrinsics = fisheye_stream.as().get_intrinsics(); +``` + +The extrinsics give the relative poses of different sensors. +We will use them to compute the pose of a virtual object as seen from the sensor. +```cpp +rs2_extrinsics pose_to_fisheye_extrinsics = pipe_profile.get_stream(RS2_STREAM_POSE).get_extrinsics_to(fisheye_stream); +``` + +We create an OpenGL window where we will show the fisheye image and the rendered virtual object. +```cpp +// Create an OpenGL display window and a texture to draw the fisheye image +window app(intrinsics.width, intrinsics.height, "Intel RealSense T265 Augmented Reality Example"); +window_key_listener key_watcher(app); +texture fisheye_image; +``` + +Next, we define the shape of the virtual object we want to display. In this example, it is 4 vertices +that describe 3 segments. +```cpp +// Create the vertices of a simple virtual object. +// This virtual object is 4 points in 3D space that describe 3 XYZ 20cm long axes. +// These vertices are relative to the object's own coordinate system. +const float length = 0.20; +const object virtual_object = {{ + { 0, 0, 0 }, // origin + { length, 0, 0 }, // X + { 0, length, 0 }, // Y + { 0, 0, length } // Z +}}; +``` + +We create a placeholder to store the pose of the virtual object in world coordinates, +which will be initialized after getting the first pose frame. +```cpp +// This variable will hold the pose of the virtual object in world coordinates. +// We we initialize it once we get the first pose frame. +rs2_pose object_pose_in_world; +bool object_pose_in_world_initialized = false; +``` + +After setting up the device and the scene, we run the main loop and iterate to get new poses and images +from the streams. +```cpp +// Main loop +while (app) +{ + rs2_pose device_pose_in_world; // This will contain the current device pose +``` + +We wait until new synchronized fisheye and pose frames are available. +```cpp + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the fisheye stream + rs2::video_frame fisheye_frame = frames.get_fisheye_frame(fisheye_sensor_idx); + // Get a frame from the pose stream + rs2::pose_frame pose_frame = frames.get_pose_frame(); +``` + +We get the current pose of the T265 device. +```cpp + // Copy current camera pose + device_pose_in_world = pose_frame.get_pose_data(); +``` + +And we render the fisheye image in the application window. +```cpp + // Render the fisheye image + fisheye_image.render(fisheye_frame, { 0, 0, app.width(), app.height() }); +``` + +Since we already have a copy of the data, we can deallocate frames so the Intel® RealSense™ framework can reuse them. +```cpp + // By closing the current scope we let frames be deallocated, + // so we do not fill up librealsense queues while we do other computation. + } +``` + +We set the initial pose of the virtual object in world coordinates. This only happens in the first iteration of the main loop. Specifically, `reset_object_pose` sets the object 50cm in front of the camera. +```cpp + // If we have not set the virtual object in the world yet, set it in front of the camera now. + if (!object_pose_in_world_initialized) + { + object_pose_in_world = reset_object_pose(device_pose_in_world); + object_pose_in_world_initialized = true; + } +``` + +Once we have the current pose of the T265 device in world coordinates, we can compute +the pose of the virtual object relative to the fisheye sensor. To understand the necessary steps, +we have to pay attention to the coordinate systems involved in the problem: + +![](coordinates.jpg "Coordinate systems") + +We created a virtual object and set it in the world. Intel® RealSense™ provides us with the pose of the T265 device in world coordinates and the extrinsics give us the pose of the fisheye sensor relative to the T265 device. Now, we need to compute the pose of the virtual object relative to the fisheye sensor. + +We proceed step by step. First, we compute the pose of the object relative to the device. +```cpp + // Compute the pose of the object relative to the current pose of the device + rs2_pose world_pose_in_device = pose_inverse(device_pose_in_world); + rs2_pose object_pose_in_device = pose_multiply(world_pose_in_device, object_pose_in_world); +``` + +We convert the object vertices from object reference system into device reference system. +```cpp + // Get the object vertices in device coordinates + object object_in_device = convert_object_coordinates(virtual_object, object_pose_in_device); +``` + +Now we can use the extrinsics information to transform vertices from +device reference system into fisheye reference system. For that, the API provides `rs2_transform_point_to_point`: +```cpp + // Convert object vertices from device coordinates into fisheye sensor coordinates using extrinsics + object object_in_sensor; + for (size_t i = 0; i < object_in_device.size(); ++i) + { + rs2_transform_point_to_point(object_in_sensor[i].f, &pose_to_fisheye_extrinsics, object_in_device[i].f); + } +``` + +Before rendering the segments of the virtual object in the image, we are going to split the +segment into smaller pieces of 1cm in length. This way, we will be able to observe the fisheye distortion when +the virtual object is close to the device. +```cpp + for (size_t i = 1; i < object_in_sensor.size(); ++i) + { + // Discretize the virtual object line into smaller 1cm long segments + std::vector points_in_sensor = raster_line(object_in_sensor[0], object_in_sensor[i], 0.01); +``` + +Once the object vertices are in sensor coordinates, we can check if they are in front or behind the camera. If they are behind the camera, we will not render them in the image. According to the figure above, if the Z coordinate is positive, then the vertex is in front of the sensor and we can use it. +```cpp + for (auto& point : points_in_sensor) + { + // A 3D point is visible in the image if its Z coordinate relative to the fisheye sensor is positive. + if (point.z() > 0) +``` + +If the point is visible, we can project it into the image by using the lens distortion information encoded by the intrinsics object. The function the API provides for this is `rs2_project_point_to_pixel`, which gives the pixel coordinates of a 3D point: +```cpp + { + // Project 3D sensor coordinates to 2D fisheye image coordinates using intrinsics + projected_line.emplace_back(); + rs2_project_point_to_pixel(projected_line.back().f, &intrinsics, point.f); + } + } +``` + +Since we have the pixel coordinates of the segments, we can now draw them on the image. +```cpp + // Display the line in the image + render_line(projected_line, i); + } +``` + +Finally, we render some text on the image. +```cpp + // Display text in the image + render_text(app.height(), "Press spacebar to reset the pose of the virtual object. Press ESC to exit"); +``` + +At this point, our application has shown the current fisheye image with a rendered virtual object on it to the user. To control the flow of the program, we check if the user presses any key. +```cpp + // Check if some key is pressed + switch (key_watcher.get_key()) + { +``` + +If the user presses spacebar, we move the virtual object in front of the camera again. +```cpp + case GLFW_KEY_SPACE: + // Reset virtual object pose if user presses spacebar + object_pose_in_world = reset_object_pose(device_pose_in_world); + std::cout << "Setting new pose for virtual object: " << object_pose_in_world.translation << std::endl; + break; +``` + +If the user presses escape, we close the window to exit the application. +```cpp + case GLFW_KEY_ESCAPE: + // Exit if user presses escape + app.close(); + break; + } +} +``` diff --git a/examples/ar-basic/rs-ar-basic.cpp b/examples/ar-basic/rs-ar-basic.cpp new file mode 100644 index 00000000000..468506fdb15 --- /dev/null +++ b/examples/ar-basic/rs-ar-basic.cpp @@ -0,0 +1,345 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include +#include +#include +#include +#include "example.hpp" + +struct point3d { + float f[3]; + + point3d() {} + point3d(float x, float y, float z) : f{x, y, z} {} + float x() const { return f[0]; } + float y() const { return f[1]; } + float z() const { return f[2]; } +}; + +struct pixel { + float f[2]; + + pixel() {} + pixel(float x, float y) : f{x, y} {} + float x() const { return f[0]; } + float y() const { return f[1]; } +}; + +// We define a virtual object as a collection of vertices that will be connected by lines +typedef std::array object; + +static rs2_pose identity_pose(); +static rs2_pose reset_object_pose(const rs2_pose& device_pose_in_world = identity_pose()); +static rs2_pose pose_inverse(const rs2_pose& p); +static rs2_pose pose_multiply(const rs2_pose& ref2_in_ref1, const rs2_pose& ref3_in_ref2); +static rs2_quaternion quaternion_conjugate(const rs2_quaternion& q); +static rs2_quaternion quaternion_multiply(const rs2_quaternion& a, const rs2_quaternion& b); +static rs2_vector quaternion_rotate_vector(const rs2_quaternion& q, const rs2_vector& v); +static rs2_vector pose_transform_point(const rs2_pose& pose, const rs2_vector& p); +static rs2_vector vector_addition(const rs2_vector& a, const rs2_vector& b); +static rs2_vector vector_negate(const rs2_vector& v); + +static object convert_object_coordinates(const object& obj, const rs2_pose& object_pose); + +static std::vector raster_line(const point3d& a, const point3d& b, float step); +static void render_line(const std::vector& line, int color_code); +static void render_text(int win_height, const std::string& text); + +int main(int argc, char * argv[]) try +{ + std::cout << "Waiting for device..." << std::endl; + + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Enable fisheye and pose streams + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + cfg.enable_stream(RS2_STREAM_FISHEYE, 1); + cfg.enable_stream(RS2_STREAM_FISHEYE, 2); + // Start pipeline with chosen configuration + rs2::pipeline_profile pipe_profile = pipe.start(cfg); + + // T265 has two fisheye sensors, we can choose any of them (index 1 or 2) + const int fisheye_sensor_idx = 1; + + // Get fisheye sensor intrinsics parameters + rs2::stream_profile fisheye_stream = pipe_profile.get_stream(RS2_STREAM_FISHEYE, fisheye_sensor_idx); + rs2_intrinsics intrinsics = fisheye_stream.as().get_intrinsics(); + + rs2_extrinsics pose_to_fisheye_extrinsics = pipe_profile.get_stream(RS2_STREAM_POSE).get_extrinsics_to(fisheye_stream); + + std::cout << "Device got. Streaming data" << std::endl; + + // Create an OpenGL display window and a texture to draw the fisheye image + window app(intrinsics.width, intrinsics.height, "Intel RealSense T265 Augmented Reality Example"); + window_key_listener key_watcher(app); + texture fisheye_image; + + // Create the vertices of a simple virtual object. + // This virtual object is 4 points in 3D space that describe 3 XYZ 20cm long axes. + // These vertices are relative to the object's own coordinate system. + const float length = 0.20; + const object virtual_object = {{ + { 0, 0, 0 }, // origin + { length, 0, 0 }, // X + { 0, length, 0 }, // Y + { 0, 0, length } // Z + }}; + + // This variable will hold the pose of the virtual object in world coordinates. + // We we initialize it once we get the first pose frame. + rs2_pose object_pose_in_world; + bool object_pose_in_world_initialized = false; + + // Main loop + while (app) + { + rs2_pose device_pose_in_world; // This will contain the current device pose + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the fisheye stream + rs2::video_frame fisheye_frame = frames.get_fisheye_frame(fisheye_sensor_idx); + // Get a frame from the pose stream + rs2::pose_frame pose_frame = frames.get_pose_frame(); + + // Copy current camera pose + device_pose_in_world = pose_frame.get_pose_data(); + + // Render the fisheye image + fisheye_image.render(fisheye_frame, { 0, 0, app.width(), app.height() }); + + // By closing the current scope we let frames be deallocated, so we do not fill up librealsense queues while we do other computation. + } + + // If we have not set the virtual object in the world yet, set it in front of the camera now. + if (!object_pose_in_world_initialized) + { + object_pose_in_world = reset_object_pose(device_pose_in_world); + object_pose_in_world_initialized = true; + } + + // Compute the pose of the object relative to the current pose of the device + rs2_pose world_pose_in_device = pose_inverse(device_pose_in_world); + rs2_pose object_pose_in_device = pose_multiply(world_pose_in_device, object_pose_in_world); + + // Get the object vertices in device coordinates + object object_in_device = convert_object_coordinates(virtual_object, object_pose_in_device); + + // Convert object vertices from device coordinates into fisheye sensor coordinates using extrinsics + object object_in_sensor; + for (size_t i = 0; i < object_in_device.size(); ++i) + { + rs2_transform_point_to_point(object_in_sensor[i].f, &pose_to_fisheye_extrinsics, object_in_device[i].f); + } + + for (size_t i = 1; i < object_in_sensor.size(); ++i) + { + // Discretize the virtual object line into smaller 1cm long segments + std::vector points_in_sensor = raster_line(object_in_sensor[0], object_in_sensor[i], 0.01); + std::vector projected_line; + projected_line.reserve(points_in_sensor.size()); + for (auto& point : points_in_sensor) + { + // A 3D point is visible in the image if its Z coordinate relative to the fisheye sensor is positive. + if (point.z() > 0) + { + // Project 3D sensor coordinates to 2D fisheye image coordinates using intrinsics + projected_line.emplace_back(); + rs2_project_point_to_pixel(projected_line.back().f, &intrinsics, point.f); + } + } + // Display the line in the image + render_line(projected_line, i); + } + + // Display text in the image + render_text(app.height(), "Press spacebar to reset the pose of the virtual object. Press ESC to exit"); + + // Check if some key is pressed + switch (key_watcher.get_key()) + { + case GLFW_KEY_SPACE: + // Reset virtual object pose if user presses spacebar + object_pose_in_world = reset_object_pose(device_pose_in_world); + std::cout << "Setting new pose for virtual object: " << object_pose_in_world.translation << std::endl; + break; + case GLFW_KEY_ESCAPE: + // Exit if user presses escape + app.close(); + break; + } + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} + +rs2_pose identity_pose() +{ + // Return an identity pose (no translation, no rotation) + rs2_pose pose; + pose.translation.x = 0; + pose.translation.y = 0; + pose.translation.z = 0; + pose.rotation.x = 0; + pose.rotation.y = 0; + pose.rotation.z = 0; + pose.rotation.w = 1; + return pose; +} + +rs2_pose reset_object_pose(const rs2_pose& device_pose_in_world) +{ + // Set the object 50 centimeter away in front of the camera. + // T265 coordinate system is defined here: https://github.com/IntelRealSense/librealsense/blob/master/doc/t265.md#sensor-origin-and-coordinate-system + rs2_pose object_pose_in_device; + object_pose_in_device.translation.x = 0; + object_pose_in_device.translation.y = 0; + object_pose_in_device.translation.z = -0.50; + object_pose_in_device.rotation.x = 0; + object_pose_in_device.rotation.y = 0; + object_pose_in_device.rotation.z = 0; + object_pose_in_device.rotation.w = 1; + + // Convert the pose of the virtual object from camera coordinates into world coordinates + rs2_pose object_pose_in_world = pose_multiply(device_pose_in_world, object_pose_in_device); + return object_pose_in_world; +} + +rs2_pose pose_inverse(const rs2_pose& p) +{ + rs2_pose i; + i.rotation = quaternion_conjugate(p.rotation); + i.translation = vector_negate(quaternion_rotate_vector(i.rotation, p.translation)); + return i; +} + +rs2_pose pose_multiply(const rs2_pose& ref2_in_ref1, const rs2_pose& ref3_in_ref2) +{ + rs2_pose ref3_in_ref1; + ref3_in_ref1.rotation = quaternion_multiply(ref2_in_ref1.rotation, ref3_in_ref2.rotation); + ref3_in_ref1.translation = vector_addition(quaternion_rotate_vector(ref2_in_ref1.rotation, ref3_in_ref2.translation), ref2_in_ref1.translation); + return ref3_in_ref1; +} + +rs2_vector pose_transform_point(const rs2_pose& pose, const rs2_vector& p) +{ + return vector_addition(quaternion_rotate_vector(pose.rotation, p), pose.translation); +} + +rs2_quaternion quaternion_multiply(const rs2_quaternion& a, const rs2_quaternion& b) +{ + return rs2_quaternion { + a.x * b.w + a.w * b.x - a.z * b.y + a.y * b.z, + a.y * b.w + a.z * b.x + a.w * b.y - a.x * b.z, + a.z * b.w - a.y * b.x + a.x * b.y + a.w * b.z, + a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z, + }; +} + +rs2_vector quaternion_rotate_vector(const rs2_quaternion& q, const rs2_vector& v) +{ + rs2_quaternion v_as_quaternion = { v.x, v.y, v.z, 0 }; + rs2_quaternion rotated_v = quaternion_multiply(quaternion_multiply(q, v_as_quaternion), quaternion_conjugate(q)); + return rs2_vector { rotated_v.x, rotated_v.y, rotated_v.z }; +} + +rs2_quaternion quaternion_conjugate(const rs2_quaternion& q) +{ + return rs2_quaternion { -q.x, -q.y, -q.z, q.w }; +} + +rs2_vector vector_addition(const rs2_vector& a, const rs2_vector& b) +{ + return rs2_vector { a.x + b.x, a.y + b.y, a.z + b.z }; +} + +rs2_vector vector_negate(const rs2_vector& v) +{ + return rs2_vector { -v.x, -v.y, -v.z }; +} + +object convert_object_coordinates(const object& obj, const rs2_pose& object_pose) +{ + object transformed_obj; + for (size_t i = 0; i < obj.size(); ++i) { + rs2_vector v { obj[i].x(), obj[i].y(), obj[i].z() }; + v = pose_transform_point(object_pose, v); + transformed_obj[i].f[0] = v.x; + transformed_obj[i].f[1] = v.y; + transformed_obj[i].f[2] = v.z; + } + return transformed_obj; +} + +std::vector raster_line(const point3d& a, const point3d& b, float step) +{ + rs2_vector direction = { b.x() - a.x(), b.y() - a.y(), b.z() - a.z() }; + float distance = std::sqrt(direction.x*direction.x + direction.y*direction.y + direction.z*direction.z); + int npoints = distance / step + 1; + + std::vector points; + if (npoints > 0) + { + direction.x = direction.x * step / distance; + direction.y = direction.y * step / distance; + direction.z = direction.z * step / distance; + + points.reserve(npoints); + points.emplace_back(a); + for (int i = 1; i < npoints; ++i) + { + points.emplace_back(a.x() + direction.x * i, + a.y() + direction.y * i, + a.z() + direction.z * i); + } + } + return points; +} + +void render_line(const std::vector& line, int color_code) +{ + if (!line.empty()) + { + GLfloat current_color[4]; + glGetFloatv(GL_CURRENT_COLOR, current_color); + + glLineWidth(5); + glColor3f(color_code == 1 ? 1.f : 0.f, + color_code == 2 ? 1.f : 0.f, + color_code == 3 ? 1.f : 0.f); + + glBegin(GL_LINE_STRIP); + for (auto& pixel : line) + { + glVertex3f(pixel.x(), pixel.y(), 0.f); + } + glEnd(); + + glColor4fv(current_color); + } +} + +void render_text(int win_height, const std::string& text) +{ + GLfloat current_color[4]; + glGetFloatv(GL_CURRENT_COLOR, current_color); + glColor3f(0, 0.5, 1); + glScalef(2, 2, 2); + draw_text(15, (win_height - 10) / 2, text.c_str()); + glScalef(1, 1, 1); + glColor4fv(current_color); +} diff --git a/examples/callback/CMakeLists.txt b/examples/callback/CMakeLists.txt new file mode 100644 index 00000000000..501c049f938 --- /dev/null +++ b/examples/callback/CMakeLists.txt @@ -0,0 +1,16 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(rs-callback) + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp) + set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11) + target_link_libraries(${PROJECT_NAME} ${DEPENDENCIES}) + include_directories(${PROJECT_NAME} ../ ../../third-party/tclap/include) + set_target_properties (${PROJECT_NAME} PROPERTIES FOLDER "Examples") + + install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/callback/readme.md b/examples/callback/readme.md new file mode 100644 index 00000000000..3f191fddf13 --- /dev/null +++ b/examples/callback/readme.md @@ -0,0 +1,90 @@ +# rs-callback Sample + +## Overview + +This sample demonstrates how to configure the camera for streaming frames using the pipeline's callback API. +This API is recommended when streaming high frequency data such as IMU ([Inertial measurement unit](https://en.wikipedia.org/wiki/Inertial_measurement_unit)) since the callback is invoked immediately once the a frame is ready. +This sample prints a frame counter for each stream, the code demonstrates how it can be done correctly by synchronizing the callbacks. + +## Expected Output +![rs-callback](https://user-images.githubusercontent.com/18511514/48921401-37a0c680-eea8-11e8-9ab4-18e566d69a8a.PNG) + +## Code Overview + +First, we include the Intel® RealSense™ Cross-Platform API. +All but advanced functionality is provided through a single header: +```cpp +#include // Include RealSense Cross Platform API +``` + +We define frame counters that will be updated every time a frame arrives. +This counters will be used in the application main loop to print how many frames arrived from each stream. +```cpp +std::map counters; +std::map stream_names; +``` + +The mutex object is a synchronization primitive that will be used to protect our frame counters from being simultaneously accessed by multiple threads. +```cpp +std::mutex mutex; +``` + +Define the frame callback which will be invoked by the pipeline on the sensors thread once a frame (or synchronised frameset) is ready. +```cpp +// Define frame callback +// The callback is executed on a sensor thread and can be called simultaneously from multiple sensors. +// Therefore any modification to shared data should be done under lock. +auto callback = [&](const rs2::frame& frame) +{ + std::lock_guard lock(mutex); + if (rs2::frameset fs = frame.as()) + { + // With callbacks, all synchronized stream will arrive in a single frameset + for (rs2::frame& f : fs) + counters[f.get_profile().unique_id()]++; + } + else + { + // Stream that bypass synchronization (such as IMU) will produce single frames + counters[frame.get_profile().unique_id()]++; + } +}; +``` + +The SDK API entry point is the `pipeline` class: +```cpp +// Declare the RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; + +// Start streaming through the callback with default recommended configuration +// The default video configuration contains Depth and Color streams +// If a device is capable to stream IMU data, both Gyro and Accelerometer are enabled by default +rs2::pipeline_profile profiles = pipe.start(callback); +``` + +Collect the stream names from the returned `pipeline_profile` object: +```cpp +// Collect the enabled streams names +for (auto p : profiles.get_streams()) + stream_names[p.unique_id()] = p.stream_name(); +``` + +Finally, print the frame counters once every second. +After calling `start`, the main thread will continue to execute work, so even when no other action is required, we need to keep the application alive. +In order to protect our counters from being accessed simultaneously, access the counters using the mutex. +```cpp +std::cout << "RealSense callback sample" << std::endl << std::endl; + +while (true) +{ + std::this_thread::sleep_for(std::chrono::seconds(1)); + + std::lock_guard lock(mutex); + + std::cout << "\r"; + for (auto p : counters) + { + std::cout << stream_names[p.first] << "[" << p.first << "]: " << p.second << " [frames] || "; + } +} +``` diff --git a/examples/callback/rs-callback.cpp b/examples/callback/rs-callback.cpp new file mode 100644 index 00000000000..7c90ff22bc5 --- /dev/null +++ b/examples/callback/rs-callback.cpp @@ -0,0 +1,78 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#include // Include RealSense Cross Platform API +#include +#include +#include +#include +#include + +// The callback example demonstrates asynchronous usage of the pipeline +int main(int argc, char * argv[]) try +{ + //rs2::log_to_console(RS2_LOG_SEVERITY_ERROR); + + std::map counters; + std::map stream_names; + std::mutex mutex; + + // Define frame callback + // The callback is executed on a sensor thread and can be called simultaneously from multiple sensors + // Therefore any modification to common memory should be done under lock + auto callback = [&](const rs2::frame& frame) + { + std::lock_guard lock(mutex); + if (rs2::frameset fs = frame.as()) + { + // With callbacks, all synchronized stream will arrive in a single frameset + for (const rs2::frame& f : fs) + counters[f.get_profile().unique_id()]++; + } + else + { + // Stream that bypass synchronization (such as IMU) will produce single frames + counters[frame.get_profile().unique_id()]++; + } + }; + + // Declare RealSense pipeline, encapsulating the actual device and sensors. + rs2::pipeline pipe; + + // Start streaming through the callback with default recommended configuration + // The default video configuration contains Depth and Color streams + // If a device is capable to stream IMU data, both Gyro and Accelerometer are enabled by default + // + rs2::pipeline_profile profiles = pipe.start(callback); + + // Collect the enabled streams names + for (auto p : profiles.get_streams()) + stream_names[p.unique_id()] = p.stream_name(); + + std::cout << "RealSense callback sample" << std::endl << std::endl; + + while (true) + { + std::this_thread::sleep_for(std::chrono::seconds(1)); + + std::lock_guard lock(mutex); + + std::cout << "\r"; + for (auto p : counters) + { + std::cout << stream_names[p.first] << "[" << p.first << "]: " << p.second << " [frames] || "; + } + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/capture/CMakeLists.txt b/examples/capture/CMakeLists.txt index b25d5ea2950..5af6d40a168 100644 --- a/examples/capture/CMakeLists.txt +++ b/examples/capture/CMakeLists.txt @@ -1,34 +1,16 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesCapture) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) add_executable(rs-capture rs-capture.cpp ../example.hpp) + set_property(TARGET rs-capture PROPERTY CXX_STANDARD 11) target_link_libraries(rs-capture ${DEPENDENCIES}) include_directories(rs-capture ../ ../../third-party/tclap/include) - set_target_properties (rs-capture PROPERTIES - FOLDER "Examples" - ) - - install( - TARGETS - - rs-capture + set_target_properties (rs-capture PROPERTIES FOLDER "Examples") - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + install(TARGETS rs-capture RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/capture/readme.md b/examples/capture/readme.md index fb243a1c047..afd5a49b7b8 100644 --- a/examples/capture/readme.md +++ b/examples/capture/readme.md @@ -23,12 +23,9 @@ Next, we include a [very short helper library](../example.hpp) to encapsulate Op ``` This header lets us easily open a new window and prepare textures for rendering. -The `texture` class is designed to hold video frame data for rendering. ```cpp // Create a simple OpenGL window for rendering: window app(1280, 720, "RealSense Capture Example"); -// Declare two textures on the GPU, one for depth and one for color -texture depth_image, color_image; ``` Depth data is usually provided on a 12-bit grayscale which is not very useful for visualization. @@ -38,28 +35,34 @@ To enhance visualization, we provide an API that converts the grayscale image to rs2::colorizer color_map; ``` +The sample prints frame rates of each enabled stream, this is done by rates_printer filter._ +```cpp +// Declare rates printer for showing streaming rates of the enabled streams. +rs2::rates_printer printer; +``` + The SDK API entry point is the `pipeline` class: ```cpp // Declare the RealSense pipeline, encapsulating the actual device and sensors rs2::pipeline pipe; -// Start streaming with the default recommended configuration -pipe.start(); -``` -Next, we wait for the next set of frames, effectively blocking the program: -```cpp -rs2::frameset data = pipe.wait_for_frames(); // Wait for next set of frames from the camera +// Start streaming with default recommended configuration +// The default video configuration contains Depth and Color streams +// If a device is capable to stream IMU data, both Gyro and Accelerometer are enabled by default +pipe.start(); ``` -Using the `frameset` object we find the first depth frame and the first color frame in the set: +Next, we wait for the next set of frames, effectively blocking the program. +Once a frameset arrives, apply both the colorizer and the rates_printer filters._ ```cpp -rs2::frame depth = color_map(data.get_depth_frame()); // Find and colorize the depth data -rs2::frame color = data.get_color_frame(); // Find the color data +rs2::frameset data = pipe.wait_for_frames(). // Wait for next set of frames from the camera + apply_filter(printer). // Print each enabled stream frame rate + apply_filter(color_map); // Find and colorize the depth data ``` -Finally, depth and color rendering is implemented by the `texture` class from [example.hpp](../example.hpp) +Finally, render the images by the `window` class from [example.hpp](../example.hpp) ```cpp -// Render depth on to the first half of the screen and color on to the second -depth_image.render(depth, { 0, 0, app.width() / 2, app.height() }); -color_image.render(color, { app.width() / 2, 0, app.width() / 2, app.height() }); +// Show method, when applied on frameset, break it to frames and upload each frame into a gl textures +// Each texture is displayed on different viewport according to it's stream unique id +app.show(data); ``` diff --git a/examples/capture/rs-capture.cpp b/examples/capture/rs-capture.cpp index c472718770a..8df0e1fc205 100644 --- a/examples/capture/rs-capture.cpp +++ b/examples/capture/rs-capture.cpp @@ -11,31 +11,29 @@ int main(int argc, char * argv[]) try rs2::log_to_console(RS2_LOG_SEVERITY_ERROR); // Create a simple OpenGL window for rendering: window app(1280, 720, "RealSense Capture Example"); - // Declare two textures on the GPU, one for color and one for depth - texture depth_image, color_image; // Declare depth colorizer for pretty visualization of depth data rs2::colorizer color_map; + // Declare rates printer for showing streaming rates of the enabled streams. + rs2::rates_printer printer; // Declare RealSense pipeline, encapsulating the actual device and sensors rs2::pipeline pipe; + // Start streaming with default recommended configuration + // The default video configuration contains Depth and Color streams + // If a device is capable to stream IMU data, both Gyro and Accelerometer are enabled by default pipe.start(); - while(app) // Application still alive? + while (app) // Application still alive? { - rs2::frameset data = pipe.wait_for_frames(); // Wait for next set of frames from the camera - - rs2::frame depth = color_map.process(data.get_depth_frame()); // Find and colorize the depth data - rs2::frame color = data.get_color_frame(); // Find the color data + rs2::frameset data = pipe.wait_for_frames(). // Wait for next set of frames from the camera + apply_filter(printer). // Print each enabled stream frame rate + apply_filter(color_map); // Find and colorize the depth data - // For cameras that don't have RGB sensor, we'll render infrared frames instead of color - if (!color) - color = data.get_infrared_frame(); - - // Render depth on to the first half of the screen and color on to the second - depth_image.render(depth, { 0, 0, app.width() / 2, app.height() }); - color_image.render(color, { app.width() / 2, 0, app.width() / 2, app.height() }); + // The show method, when applied on frameset, break it to frames and upload each frame into a gl textures + // Each texture is displayed on different viewport according to it's stream unique id + app.show(data); } return EXIT_SUCCESS; @@ -49,4 +47,4 @@ catch (const std::exception& e) { std::cerr << e.what() << std::endl; return EXIT_FAILURE; -} +} \ No newline at end of file diff --git a/examples/cmake/CMakeLists.txt b/examples/cmake/CMakeLists.txt new file mode 100644 index 00000000000..682b9a76d65 --- /dev/null +++ b/examples/cmake/CMakeLists.txt @@ -0,0 +1,18 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +cmake_minimum_required(VERSION 3.1.0) + +project(hello_librealsense2) + +# Find librealsense2 installed package +find_package(realsense2 REQUIRED) + +# Enable C++11 +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +# Add the application sources to the target +add_executable(${PROJECT_NAME} hello_librealsense2.cpp) + +# Link librealsense2 to the target +target_link_libraries(${PROJECT_NAME} ${realsense2_LIBRARY}) diff --git a/examples/cmake/hello_librealsense2.cpp b/examples/cmake/hello_librealsense2.cpp new file mode 100644 index 00000000000..6d91482af4d --- /dev/null +++ b/examples/cmake/hello_librealsense2.cpp @@ -0,0 +1,17 @@ + +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#include +#include +#include + +int main() +{ + rs2::context ctx; + + std::cout << "hello from librealsense - " << RS2_API_VERSION_STR << std::endl; + std::cout << "You have " << ctx.query_devices().size() << " RealSense devices connected" << std::endl; + + return 0; +} diff --git a/examples/cmake/readme.md b/examples/cmake/readme.md new file mode 100644 index 00000000000..a0bf81110e7 --- /dev/null +++ b/examples/cmake/readme.md @@ -0,0 +1,50 @@ +# CMake Sample + +## Overview + +This sample demonstrates how to create a basic librealsense application using CMake. +Currently this sample is supported only by Linux OS. + +## Prerequisite +Install the SDK or build it from source ([Linux](https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md)) + +## Expected Output +![cmake_example](https://user-images.githubusercontent.com/18511514/48919868-06bb9400-ee9e-11e8-9c93-5bca41d5954c.PNG) + +## Code Overview + +Set minimum required CMake version +``` +cmake_minimum_required(VERSION 3.1.0) +``` + +Name the project, in this sample the project name will be also the executable name +``` +project(hello_librealsense2) +``` + +Find librealsense installation, this feature is currently available only for Linux +``` +# Find librealsense2 installed package +find_package(realsense2 REQUIRED) +``` + +Enable C++ 11 standard in the applicatoin +``` +# Enable C++11 +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +``` + +Point to the source files, in this simple example we have only one cpp file +``` +# Add the application sources to the target +add_executable(${PROJECT_NAME} hello_librealsense2.cpp) +``` + +Link librealsense, the variable ${realsense2_LIBRARY} is set by "find_package" +``` +# Link librealsense2 to the target +target_link_libraries(${PROJECT_NAME} ${realsense2_LIBRARY}) +``` + diff --git a/examples/depth.md b/examples/depth.md new file mode 100644 index 00000000000..262f023e493 --- /dev/null +++ b/examples/depth.md @@ -0,0 +1,31 @@ + + +# Sample Code for Intel® RealSense™ **Depth** cameras + +This is a subset of SDK examples, for full list see [readme.md](./readme.md) + +## List of Examples: + +|Name | Language | Description | Experience Level | Technology | +|---|---|---|---|---| +|[Hello-RealSense](./hello-realsense) | C++ | Demonstrates the basics of connecting to a RealSense device and using depth data | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Distance](./C/distance) | C | Equivalent to `hello-realsense` but rewritten for C users | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Color](./C/color) | C | Demonstrate how to stream color data and prints some frame information | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Capture](./capture)| C++ | Shows how to synchronize and render multiple streams: left, right, depth and RGB streams | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[Save To Disk](./save-to-disk)| C++ | Demonstrate how to render and save video streams on headless systems without graphical user interface (GUI) | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[Pointcloud](./pointcloud)| C++ | Showcase Projection API while generating and rendering 3D pointcloud | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[ImShow](../wrappers/opencv/imshow) | C++ & OpenCV | Minimal OpenCV application for visualizing depth data | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Multicam](./multicam)| C++ | Present multiple cameras depth streams simultaneously, in separate windows | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Depth](./C/depth) | C | Demonstrates how to stream depth data and prints a simple text-based representation of the depth image | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Spatial Alignment](./align)| C++ | Introduces the concept of spatial stream alignment, using depth-color mapping | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Advanced Alignment](./align-advanced)| C++ | Show a simple method for dynamic background removal from video | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Measure](./measure)| C++ | Lets the user measure the dimensions of 3D objects in a stream | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Post Processing](./post-processing)| C++ | Demonstrating usage of post processing filters for depth images | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Record & Playback](./record-playback)| C++ | Demonstrating usage of the recorder and playback devices | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Motion](./motion)| C++ | Demonstrates how to use data from gyroscope and accelerometer to compute the rotation of the camera | :star::star: | [![Depth with IMU](https://img.shields.io/badge/-D435i-5bc3ff.svg)](./depth.md) | +|[DNN](../wrappers/opencv/dnn)| C++ & OpenCV | Intel RealSense camera used for real-time object-detection | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Tracking and Depth](./tracking-and-depth)| C++ | Shows how to use the tracking camera T265 together with a depth camera to display a 3D pointcloud with respect to a static reference frame | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) +|[Software Device](./software-device)| C++ | Shows how to create a custom `rs2::device` | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[Sensor Control](./sensor-control)| C++ | A tutorial for using the `rs2::sensor` API | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[GrabCuts](../wrappers/opencv/grabcuts)| C++ & OpenCV | Simple background removal using the GrabCut algorithm | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Latency](../wrappers/opencv/latency-tool)| C++ & OpenCV | Basic latency estimation using computer vision | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | diff --git a/examples/example.hpp b/examples/example.hpp index fe3b0d9a9a9..ac0f24a1b37 100644 --- a/examples/example.hpp +++ b/examples/example.hpp @@ -3,19 +3,65 @@ #pragma once +#include + +#define GL_SILENCE_DEPRECATION #define GLFW_INCLUDE_GLU #include +#include // Include RealSense Cross Platform API + #include #include #include #include - +#include +#include +#include +#include + +#ifndef PI +const double PI = 3.14159265358979323846; +#endif +const size_t IMU_FRAME_WIDTH = 1280; +const size_t IMU_FRAME_HEIGHT = 720; ////////////////////////////// // Basic Data Types // ////////////////////////////// -struct float3 { float x, y, z; }; +struct float3 { + float x, y, z; + float3 operator*(float t) + { + return { x * t, y * t, z * t }; + } + + float3 operator-(float t) + { + return { x - t, y - t, z - t }; + } + + void operator*=(float t) + { + x = x * t; + y = y * t; + z = z * t; + } + + void operator=(float3 other) + { + x = other.x; + y = other.y; + z = other.z; + } + + void add(float t1, float t2, float t3) + { + x += t1; + y += t2; + z += t3; + } +}; struct float2 { float x, y; }; struct rect @@ -53,57 +99,309 @@ inline void draw_text(int x, int y, const char * text) glDisableClientState(GL_VERTEX_ARRAY); } -//////////////////////// -// Image display code // -//////////////////////// -class texture +void set_viewport(const rect& r) +{ + glViewport( (int)r.x, (int)r.y, (int)r.w, (int)r.h); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glOrtho(0, r.w, r.h, 0, -1, +1); +} + +class imu_renderer { public: - void render(const rs2::frameset& frames, int window_width, int window_height) + void render(const rs2::motion_frame& frame, const rect& r) { - std::vector supported_frames; - for (auto f : frames) + draw_motion(frame, r.adjust_ratio({ IMU_FRAME_WIDTH, IMU_FRAME_HEIGHT })); + } + + GLuint get_gl_handle() { return _gl_handle; } + +private: + GLuint _gl_handle = 0; + + void draw_motion(const rs2::motion_frame& f, const rect& r) + { + if (!_gl_handle) + glGenTextures(1, &_gl_handle); + + set_viewport(r); + draw_text(int(0.05f * r.w), int(0.05f * r.h), f.get_profile().stream_name().c_str()); + + auto md = f.get_motion_data(); + auto x = md.x; + auto y = md.y; + auto z = md.z; + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + + glOrtho(-2.8, 2.8, -2.4, 2.4, -7, 7); + + glRotatef(25, 1.0f, 0.0f, 0.0f); + + glTranslatef(0, -0.33f, -1.f); + + glRotatef(-135, 0.0f, 1.0f, 0.0f); + + glRotatef(180, 0.0f, 0.0f, 1.0f); + glRotatef(-90, 0.0f, 1.0f, 0.0f); + + draw_axes(1,2); + + draw_circle(1, 0, 0, 0, 1, 0); + draw_circle(0, 1, 0, 0, 0, 1); + draw_circle(1, 0, 0, 0, 0, 1); + + const auto canvas_size = 230; + const auto vec_threshold = 0.01f; + float norm = std::sqrt(x * x + y * y + z * z); + if (norm < vec_threshold) { - if (can_render(f)) - supported_frames.push_back(f); + const auto radius = 0.05; + static const int circle_points = 100; + static const float angle = 2.0f * 3.1416f / circle_points; + + glColor3f(1.0f, 1.0f, 1.0f); + glBegin(GL_POLYGON); + double angle1 = 0.0; + glVertex2d(radius * cos(0.0), radius * sin(0.0)); + int i; + for (i = 0; i < circle_points; i++) + { + glVertex2d(radius * cos(angle1), radius *sin(angle1)); + angle1 += angle; + } + glEnd(); } - if (supported_frames.empty()) - return; + else + { + auto vectorWidth = 3.f; + glLineWidth(vectorWidth); + glBegin(GL_LINES); + glColor3f(1.0f, 1.0f, 1.0f); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(x / norm, y / norm, z / norm); + glEnd(); + + // Save model and projection matrix for later + GLfloat model[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, model); + GLfloat proj[16]; + glGetFloatv(GL_PROJECTION_MATRIX, proj); + + glLoadIdentity(); + glOrtho(-canvas_size, canvas_size, -canvas_size, canvas_size, -1, +1); + + std::ostringstream s1; + const auto precision = 3; + + glRotatef(180, 1.0f, 0.0f, 0.0f); + + s1 << "(" << std::fixed << std::setprecision(precision) << x << "," << std::fixed << std::setprecision(precision) << y << "," << std::fixed << std::setprecision(precision) << z << ")"; + print_text_in_3d(x, y, z, s1.str().c_str(), false, model, proj, 1 / norm); + + std::ostringstream s2; + s2 << std::setprecision(precision) << norm; + print_text_in_3d(x / 2, y / 2, z / 2, s2.str().c_str(), true, model, proj, 1 / norm); + } + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + } - std::sort(supported_frames.begin(), supported_frames.end(), [](rs2::frame first, rs2::frame second) - { return first.get_profile().stream_type() < second.get_profile().stream_type(); }); + //IMU drawing helper functions + void multiply_vector_by_matrix(GLfloat vec[], GLfloat mat[], GLfloat* result) + { + const auto N = 4; + for (int i = 0; i < N; i++) + { + result[i] = 0; + for (int j = 0; j < N; j++) + { + result[i] += vec[j] * mat[N*j + i]; + } + } + return; + } - auto image_grid = calc_grid(float2{ (float)window_width, (float)window_height }, supported_frames); + float2 xyz_to_xy(float x, float y, float z, GLfloat model[], GLfloat proj[], float vec_norm) + { + GLfloat vec[4] = { x, y, z, 0 }; + float tmp_result[4]; + float result[4]; - int image_index = 0; - for (auto f : supported_frames) + const auto canvas_size = 230; + + multiply_vector_by_matrix(vec, model, tmp_result); + multiply_vector_by_matrix(tmp_result, proj, result); + + return{ canvas_size * vec_norm *result[0], canvas_size * vec_norm *result[1] }; + } + + void print_text_in_3d(float x, float y, float z, const char* text, bool center_text, GLfloat model[], GLfloat proj[], float vec_norm) + { + auto xy = xyz_to_xy(x, y, z, model, proj, vec_norm); + auto w = (center_text) ? stb_easy_font_width((char*)text) : 0; + glColor3f(1.0f, 1.0f, 1.0f); + draw_text((int)(xy.x - w / 2), (int)xy.y, text); + } + + static void draw_axes(float axis_size = 1.f, float axisWidth = 4.f) + { + // Triangles For X axis + glBegin(GL_TRIANGLES); + glColor3f(1.0f, 0.0f, 0.0f); + glVertex3f(axis_size * 1.1f, 0.f, 0.f); + glVertex3f(axis_size, -axis_size * 0.05f, 0.f); + glVertex3f(axis_size, axis_size * 0.05f, 0.f); + glVertex3f(axis_size * 1.1f, 0.f, 0.f); + glVertex3f(axis_size, 0.f, -axis_size * 0.05f); + glVertex3f(axis_size, 0.f, axis_size * 0.05f); + glEnd(); + + // Triangles For Y axis + glBegin(GL_TRIANGLES); + glColor3f(0.f, 1.f, 0.f); + glVertex3f(0.f, axis_size * 1.1f, 0.0f); + glVertex3f(0.f, axis_size, 0.05f * axis_size); + glVertex3f(0.f, axis_size, -0.05f * axis_size); + glVertex3f(0.f, axis_size * 1.1f, 0.0f); + glVertex3f(0.05f * axis_size, axis_size, 0.f); + glVertex3f(-0.05f * axis_size, axis_size, 0.f); + glEnd(); + + // Triangles For Z axis + glBegin(GL_TRIANGLES); + glColor3f(0.0f, 0.0f, 1.0f); + glVertex3f(0.0f, 0.0f, 1.1f * axis_size); + glVertex3f(0.0f, 0.05f * axis_size, 1.0f * axis_size); + glVertex3f(0.0f, -0.05f * axis_size, 1.0f * axis_size); + glVertex3f(0.0f, 0.0f, 1.1f * axis_size); + glVertex3f(0.05f * axis_size, 0.f, 1.0f * axis_size); + glVertex3f(-0.05f * axis_size, 0.f, 1.0f * axis_size); + glEnd(); + + glLineWidth(axisWidth); + + // Drawing Axis + glBegin(GL_LINES); + // X axis - Red + glColor3f(1.0f, 0.0f, 0.0f); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(axis_size, 0.0f, 0.0f); + + // Y axis - Green + glColor3f(0.0f, 1.0f, 0.0f); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(0.0f, axis_size, 0.0f); + + // Z axis - Blue + glColor3f(0.0f, 0.0f, 1.0f); + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(0.0f, 0.0f, axis_size); + glEnd(); + } + + // intensity is grey intensity + static void draw_circle(float xx, float xy, float xz, float yx, float yy, float yz, float radius = 1.1, float3 center = { 0.0, 0.0, 0.0 }, float intensity = 0.5f) + { + const auto N = 50; + glColor3f(intensity, intensity, intensity); + glLineWidth(2); + glBegin(GL_LINE_STRIP); + + for (int i = 0; i <= N; i++) { - upload(f); - show(image_grid.at(image_index)); - image_index++; + const double theta = (2 * PI / N) * i; + const auto cost = static_cast(cos(theta)); + const auto sint = static_cast(sin(theta)); + glVertex3f( + center.x + radius * (xx * cost + yx * sint), + center.y + radius * (xy * cost + yy * sint), + center.z + radius * (xz * cost + yz * sint) + ); } + glEnd(); } - void render(const rs2::video_frame& frame, const rect& r) +}; + +class pose_renderer +{ +public: + void render(const rs2::pose_frame& frame, const rect& r) + { + draw_pose(frame, r.adjust_ratio({ IMU_FRAME_WIDTH, IMU_FRAME_HEIGHT })); + } + + GLuint get_gl_handle() { return _gl_handle; } + +private: + mutable GLuint _gl_handle = 0; + + // Provide textual representation only + void draw_pose(const rs2::pose_frame& f, const rect& r) { - upload(frame); - show(r.adjust_ratio({ float(width), float(height) })); + if (!_gl_handle) + glGenTextures(1, &_gl_handle); + + set_viewport(r); + std::string caption(f.get_profile().stream_name()); + if (f.get_profile().stream_index()) + caption += std::to_string(f.get_profile().stream_index()); + draw_text(int(0.05f * r.w), int(0.05f * r.h), caption.c_str()); + + auto pose = f.get_pose_data(); + std::stringstream ss; + ss << "Pos (meter): \t\t" << std::fixed << std::setprecision(2) << pose.translation.x << ", " << pose.translation.y << ", " << pose.translation.z; + draw_text(int(0.05f * r.w), int(0.2f*r.h), ss.str().c_str()); + ss.clear(); ss.str(""); + ss << "Orient (quaternion): \t" << pose.rotation.x << ", " << pose.rotation.y << ", " << pose.rotation.z << ", " << pose.rotation.w; + draw_text(int(0.05f * r.w), int(0.3f*r.h), ss.str().c_str()); + ss.clear(); ss.str(""); + ss << "Lin Velocity (m/sec): \t" << pose.velocity.x << ", " << pose.velocity.y << ", " << pose.velocity.z; + draw_text(int(0.05f * r.w), int(0.4f*r.h), ss.str().c_str()); + ss.clear(); ss.str(""); + ss << "Ang. Velocity (rad/sec): \t" << pose.angular_velocity.x << ", " << pose.angular_velocity.y << ", " << pose.angular_velocity.z; + draw_text(int(0.05f * r.w), int(0.5f*r.h), ss.str().c_str()); } +}; + +/// \brief Print flat 2D text over openGl window +struct text_renderer +{ + // Provide textual representation only + void put_text(const std::string& msg, float norm_x_pos, float norm_y_pos, const rect& r) + { + set_viewport(r); + draw_text(int(norm_x_pos * r.w), int(norm_y_pos * r.h), msg.c_str()); + } +}; + +//////////////////////// +// Image display code // +//////////////////////// +/// \brief The texture class +class texture +{ +public: void upload(const rs2::video_frame& frame) { if (!frame) return; - if (!gl_handle) - glGenTextures(1, &gl_handle); + if (!_gl_handle) + glGenTextures(1, &_gl_handle); GLenum err = glGetError(); auto format = frame.get_profile().format(); - width = frame.get_width(); - height = frame.get_height(); - stream = frame.get_profile().stream_type(); + auto width = frame.get_width(); + auto height = frame.get_height(); + _stream_type = frame.get_profile().stream_type(); + _stream_index = frame.get_profile().stream_index(); - glBindTexture(GL_TEXTURE_2D, gl_handle); + glBindTexture(GL_TEXTURE_2D, _gl_handle); switch (format) { @@ -116,6 +414,9 @@ class texture case RS2_FORMAT_Y8: glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, frame.get_data()); break; + case RS2_FORMAT_Y10BPACK: + glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, width, height, 0, GL_LUMINANCE, GL_UNSIGNED_SHORT, frame.get_data()); + break; default: throw std::runtime_error("The requested format is not supported by this demo!"); } @@ -128,92 +429,54 @@ class texture glBindTexture(GL_TEXTURE_2D, 0); } - GLuint get_gl_handle() { return gl_handle; } - - void show(const rect& r) const + void show(const rect& r, float alpha = 1.f) const { - if (!gl_handle) + if (!_gl_handle) return; - glBindTexture(GL_TEXTURE_2D, gl_handle); + set_viewport(r); + + glBindTexture(GL_TEXTURE_2D, _gl_handle); + glColor4f(1.0f, 1.0f, 1.0f, alpha); glEnable(GL_TEXTURE_2D); - glBegin(GL_QUAD_STRIP); - glTexCoord2f(0.f, 1.f); glVertex2f(r.x, r.y + r.h); - glTexCoord2f(0.f, 0.f); glVertex2f(r.x, r.y); - glTexCoord2f(1.f, 1.f); glVertex2f(r.x + r.w, r.y + r.h); - glTexCoord2f(1.f, 0.f); glVertex2f(r.x + r.w, r.y); + glBegin(GL_QUADS); + glTexCoord2f(0, 0); glVertex2f(0, 0); + glTexCoord2f(0, 1); glVertex2f(0, r.h); + glTexCoord2f(1, 1); glVertex2f(r.w, r.h); + glTexCoord2f(1, 0); glVertex2f(r.w, 0); glEnd(); glDisable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, 0); - - draw_text((int)r.x + 15, (int)r.y + 20, rs2_stream_to_string(stream)); + draw_text(int(0.05f * r.w), int(0.05f * r.h), rs2_stream_to_string(_stream_type)); } -private: - GLuint gl_handle = 0; - int width = 0; - int height = 0; - rs2_stream stream = RS2_STREAM_ANY; + GLuint get_gl_handle() { return _gl_handle; } - bool can_render(const rs2::frame& f) const + void render(const rs2::frame& frame, const rect& rect, float alpha = 1.f) { - auto format = f.get_profile().format(); - switch (format) + if (auto vf = frame.as()) { - case RS2_FORMAT_RGB8: - case RS2_FORMAT_RGBA8: - case RS2_FORMAT_Y8: - return true; - default: - return false; + upload(vf); + show(rect.adjust_ratio({ (float)vf.get_width(), (float)vf.get_height() }), alpha); } - } - - rect calc_grid(float2 window, int streams) - { - if (window.x <= 0 || window.y <= 0 || streams <= 0) - throw std::runtime_error("invalid window configuration request, failed to calculate window grid"); - float ratio = window.x / window.y; - auto x = sqrt(ratio * (float)streams); - auto y = (float)streams / x; - auto w = round(x); - auto h = round(y); - if (w == 0 || h == 0) - throw std::runtime_error("invalid window configuration request, failed to calculate window grid"); - while (w*h > streams) - h > w ? h-- : w--; - while (w*h < streams) - h > w ? w++ : h++; - auto new_w = round(window.x / w); - auto new_h = round(window.y / h); - // column count, line count, cell width cell height - return rect{ static_cast(w), static_cast(h), static_cast(new_w), static_cast(new_h) }; - } - - std::vector calc_grid(float2 window, std::vector& frames) - { - auto grid = calc_grid(window, frames.size()); - - int index = 0; - std::vector rv; - int curr_line = -1; - for (auto f : frames) + else if (auto mf = frame.as()) { - auto mod = index % (int)grid.x; - auto fw = (float)frames[index].get_width(); - auto fh = (float)frames[index].get_height(); - - float cell_x_postion = (float)(mod * grid.w); - if (mod == 0) curr_line++; - float cell_y_position = curr_line * grid.h; - - auto r = rect{ cell_x_postion, cell_y_position, grid.w, grid.h }; - rv.push_back(r.adjust_ratio(float2{ fw, fh })); - index++; + _imu_render.render(frame, rect.adjust_ratio({ IMU_FRAME_WIDTH, IMU_FRAME_HEIGHT })); } - - return rv; + else if (auto pf = frame.as()) + { + _pose_render.render(frame, rect.adjust_ratio({ IMU_FRAME_WIDTH, IMU_FRAME_HEIGHT })); + } + else + throw std::runtime_error("Rendering is currently supported for video, motion and pose frames only"); } + +private: + GLuint _gl_handle = 0; + rs2_stream _stream_type = RS2_STREAM_ANY; + int _stream_index{}; + imu_renderer _imu_render; + pose_renderer _pose_render; }; class window @@ -234,27 +497,27 @@ class window glfwMakeContextCurrent(win); glfwSetWindowUserPointer(win, this); - glfwSetMouseButtonCallback(win, [](GLFWwindow * win, int button, int action, int mods) + glfwSetMouseButtonCallback(win, [](GLFWwindow * w, int button, int action, int mods) { - auto s = (window*)glfwGetWindowUserPointer(win); + auto s = (window*)glfwGetWindowUserPointer(w); if (button == 0) s->on_left_mouse(action == GLFW_PRESS); }); - glfwSetScrollCallback(win, [](GLFWwindow * win, double xoffset, double yoffset) + glfwSetScrollCallback(win, [](GLFWwindow * w, double xoffset, double yoffset) { - auto s = (window*)glfwGetWindowUserPointer(win); + auto s = (window*)glfwGetWindowUserPointer(w); s->on_mouse_scroll(xoffset, yoffset); }); - glfwSetCursorPosCallback(win, [](GLFWwindow * win, double x, double y) + glfwSetCursorPosCallback(win, [](GLFWwindow * w, double x, double y) { - auto s = (window*)glfwGetWindowUserPointer(win); + auto s = (window*)glfwGetWindowUserPointer(w); s->on_mouse_move(x, y); }); - glfwSetKeyCallback(win, [](GLFWwindow * win, int key, int scancode, int action, int mods) + glfwSetKeyCallback(win, [](GLFWwindow * w, int key, int scancode, int action, int mods) { - auto s = (window*)glfwGetWindowUserPointer(win); + auto s = (window*)glfwGetWindowUserPointer(w); if (0 == action) // on key release { s->on_key_release(key); @@ -262,6 +525,17 @@ class window }); } + ~window() + { + glfwDestroyWindow(win); + glfwTerminate(); + } + + void close() + { + glfwSetWindowShouldClose(win, 1); + } + float width() const { return float(_width); } float height() const { return float(_height); } @@ -287,22 +561,189 @@ class window return res; } - ~window() + void show(rs2::frame frame) { - glfwDestroyWindow(win); - glfwTerminate(); + show(frame, { 0, 0, (float)_width, (float)_height }); + } + + void show(const rs2::frame& frame, const rect& rect) + { + if (auto fs = frame.as()) + render_frameset(fs, rect); + if (auto vf = frame.as()) + render_video_frame(vf, rect); + if (auto mf = frame.as()) + render_motion_frame(mf, rect); + if (auto pf = frame.as()) + render_pose_frame(pf, rect); + } + + void show(const std::map frames) + { + // Render openGl mosaic of frames + if (frames.size()) + { + int cols = int(std::ceil(std::sqrt(frames.size()))); + int rows = int(std::ceil(frames.size() / static_cast(cols))); + + float view_width = float(_width / cols); + float view_height = float(_height / rows); + int stream_no =0; + for (auto& frame : frames) + { + rect viewport_loc{ view_width * (stream_no % cols), view_height * (stream_no / cols), view_width, view_height }; + show(frame.second, viewport_loc); + stream_no++; + } + } + else + { + _main_win.put_text("Connect one or more Intel RealSense devices and rerun the example", + 0.4f, 0.5f, { 0.f,0.f, float(_width) , float(_height) }); + } } operator GLFWwindow*() { return win; } private: GLFWwindow * win; + std::map _textures; + std::map _imus; + std::map _poses; + text_renderer _main_win; int _width, _height; + + void render_video_frame(const rs2::video_frame& f, const rect& r) + { + auto& t = _textures[f.get_profile().unique_id()]; + t.render(f, r); + } + + void render_motion_frame(const rs2::motion_frame& f, const rect& r) + { + auto& i = _imus[f.get_profile().unique_id()]; + i.render(f, r); + } + + void render_pose_frame(const rs2::pose_frame& f, const rect& r) + { + auto& i = _poses[f.get_profile().unique_id()]; + i.render(f, r); + } + + void render_frameset(const rs2::frameset& frames, const rect& r) + { + std::vector supported_frames; + for (auto f : frames) + { + if (can_render(f)) + supported_frames.push_back(f); + } + if (supported_frames.empty()) + return; + + std::sort(supported_frames.begin(), supported_frames.end(), [](rs2::frame first, rs2::frame second) + { return first.get_profile().stream_type() < second.get_profile().stream_type(); }); + + auto image_grid = calc_grid(r, supported_frames); + + int image_index = 0; + for (auto f : supported_frames) + { + auto r = image_grid.at(image_index); + show(f, r); + image_index++; + } + } + + bool can_render(const rs2::frame& f) const + { + auto format = f.get_profile().format(); + switch (format) + { + case RS2_FORMAT_RGB8: + case RS2_FORMAT_RGBA8: + case RS2_FORMAT_Y8: + case RS2_FORMAT_MOTION_XYZ32F: + case RS2_FORMAT_Y10BPACK: + return true; + default: + return false; + } + } + + rect calc_grid(rect r, size_t streams) + { + if (r.w <= 0 || r.h <= 0 || streams <= 0) + throw std::runtime_error("invalid window configuration request, failed to calculate window grid"); + float ratio = r.w / r.h; + auto x = sqrt(ratio * (float)streams); + auto y = (float)streams / x; + auto w = round(x); + auto h = round(y); + if (w == 0 || h == 0) + throw std::runtime_error("invalid window configuration request, failed to calculate window grid"); + while (w*h > streams) + h > w ? h-- : w--; + while (w*h < streams) + h > w ? w++ : h++; + auto new_w = round(r.w / w); + auto new_h = round(r.h / h); + // column count, line count, cell width cell height + return rect{ static_cast(w), static_cast(h), static_cast(new_w), static_cast(new_h) }; + } + + std::vector calc_grid(rect r, std::vector& frames) + { + auto grid = calc_grid(r, frames.size()); + + std::vector rv; + int curr_line = -1; + + for (int i = 0; i < frames.size(); i++) + { + auto mod = i % (int)grid.x; + float fw = IMU_FRAME_WIDTH; + float fh = IMU_FRAME_HEIGHT; + if (auto vf = frames[i].as()) + { + fw = (float)vf.get_width(); + fh = (float)vf.get_height(); + } + float cell_x_postion = (float)(mod * grid.w); + if (mod == 0) curr_line++; + float cell_y_position = curr_line * grid.h; + float2 margin = { grid.w * 0.02f, grid.h * 0.02f }; + auto r = rect{ cell_x_postion + margin.x, cell_y_position + margin.y, grid.w - 2 * margin.x, grid.h }; + rv.push_back(r.adjust_ratio(float2{ fw, fh })); + } + + return rv; + } +}; + +// Struct to get keys pressed on window +struct window_key_listener { + int last_key = GLFW_KEY_UNKNOWN; + + window_key_listener(window& win) { + win.on_key_release = std::bind(&window_key_listener::on_key_release, this, std::placeholders::_1); + } + + void on_key_release(int key) { + last_key = key; + } + + int get_key() { + int key = last_key; + last_key = GLFW_KEY_UNKNOWN; + return key; + } }; // Struct for managing rotation of pointcloud view struct glfw_state { - glfw_state() : yaw(15.0), pitch(15.0), last_x(0.0), last_y(0.0), + glfw_state(float yaw = 15.0, float pitch = 15.0) : yaw(yaw), pitch(pitch), last_x(0.0), last_y(0.0), ml(false), offset_x(2.f), offset_y(2.f), tex() {} double yaw; double pitch; @@ -314,7 +755,6 @@ struct glfw_state { texture tex; }; - // Handles all the OpenGL calls needed to display the point cloud void draw_pointcloud(float width, float height, glfw_state& app_state, rs2::points& points) { @@ -322,7 +762,7 @@ void draw_pointcloud(float width, float height, glfw_state& app_state, rs2::poin return; // OpenGL commands that prep screen for the pointcloud - glPopMatrix(); + glLoadIdentity(); glPushAttrib(GL_ALL_ATTRIB_BITS); glClearColor(153.f / 255, 153.f / 255, 153.f / 255, 1); @@ -371,7 +811,99 @@ void draw_pointcloud(float width, float height, glfw_state& app_state, rs2::poin glMatrixMode(GL_PROJECTION); glPopMatrix(); glPopAttrib(); +} + +void quat2mat(rs2_quaternion& q, GLfloat H[16]) // to column-major matrix +{ + H[0] = 1 - 2*q.y*q.y - 2*q.z*q.z; H[4] = 2*q.x*q.y - 2*q.z*q.w; H[8] = 2*q.x*q.z + 2*q.y*q.w; H[12] = 0.0f; + H[1] = 2*q.x*q.y + 2*q.z*q.w; H[5] = 1 - 2*q.x*q.x - 2*q.z*q.z; H[9] = 2*q.y*q.z - 2*q.x*q.w; H[13] = 0.0f; + H[2] = 2*q.x*q.z - 2*q.y*q.w; H[6] = 2*q.y*q.z + 2*q.x*q.w; H[10] = 1 - 2*q.x*q.x - 2*q.y*q.y; H[14] = 0.0f; + H[3] = 0.0f; H[7] = 0.0f; H[11] = 0.0f; H[15] = 1.0f; +} + +// Handles all the OpenGL calls needed to display the point cloud w.r.t. static reference frame +void draw_pointcloud_wrt_world(float width, float height, glfw_state& app_state, rs2::points& points, rs2_pose& pose, float H_t265_d400[16], std::vector& trajectory) +{ + if (!points) + return; + + // OpenGL commands that prep screen for the pointcloud + glLoadIdentity(); + glPushAttrib(GL_ALL_ATTRIB_BITS); + + glClearColor(153.f / 255, 153.f / 255, 153.f / 255, 1); + glClear(GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + gluPerspective(60, width / height, 0.01f, 10.0f); + + + // viewing matrix + glMatrixMode(GL_MODELVIEW); glPushMatrix(); + + // rotated from depth to world frame: z => -z, y => -y + glTranslatef(0, 0, -0.75f-app_state.offset_y*0.05f); + glRotated(app_state.pitch, 1, 0, 0); + glRotated(app_state.yaw, 0, -1, 0); + glTranslatef(0, 0, 0.5f); + + // draw trajectory + glEnable(GL_DEPTH_TEST); + glLineWidth(2.0f); + glBegin(GL_LINE_STRIP); + for (auto&& v : trajectory) + { + glColor3f(0.0f, 1.0f, 0.0f); + glVertex3f(v.x, v.y, v.z); + } + glEnd(); + glLineWidth(0.5f); + glColor3f(1.0f, 1.0f, 1.0f); + + // T265 pose + GLfloat H_world_t265[16]; + quat2mat(pose.rotation, H_world_t265); + H_world_t265[12] = pose.translation.x; + H_world_t265[13] = pose.translation.y; + H_world_t265[14] = pose.translation.z; + + glMultMatrixf(H_world_t265); + + // T265 to D4xx extrinsics + glMultMatrixf(H_t265_d400); + + + glPointSize(width / 640); + glEnable(GL_DEPTH_TEST); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, app_state.tex.get_gl_handle()); + float tex_border_color[] = { 0.8f, 0.8f, 0.8f, 0.8f }; + glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, tex_border_color); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, 0x812F); // GL_CLAMP_TO_EDGE + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, 0x812F); // GL_CLAMP_TO_EDGE + glBegin(GL_POINTS); + + /* this segment actually prints the pointcloud */ + auto vertices = points.get_vertices(); // get vertices + auto tex_coords = points.get_texture_coordinates(); // and texture coordinates + for (int i = 0; i < points.size(); i++) + { + if (vertices[i].z) + { + // upload the point and texture coordinates only for points we have depth data for + glVertex3fv(vertices[i]); + glTexCoord2fv(tex_coords[i]); + } + } + + // OpenGL cleanup + glEnd(); + glPopMatrix(); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glPopAttrib(); } // Registers the state variable and callbacks to allow mouse control of the pointcloud diff --git a/examples/gl/CMakeLists.txt b/examples/gl/CMakeLists.txt new file mode 100644 index 00000000000..e80136c209e --- /dev/null +++ b/examples/gl/CMakeLists.txt @@ -0,0 +1,27 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesGL) + +# Save the command line compile commands in the build output +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +endif() + +if(BUILD_GRAPHICAL_EXAMPLES AND NOT APPLE) + #pointcloud + add_executable(rs-gl rs-gl.cpp ../example.hpp) + target_link_libraries(rs-gl ${DEPENDENCIES} realsense2-gl) + include_directories(rs-gl ../) + set_target_properties (rs-gl PROPERTIES FOLDER Examples) + install(TARGETS rs-gl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/gl/output.PNG b/examples/gl/output.PNG new file mode 100644 index 00000000000..ed07d4aeb55 Binary files /dev/null and b/examples/gl/output.PNG differ diff --git a/examples/gl/readme.md b/examples/gl/readme.md new file mode 100644 index 00000000000..c1187fc133b --- /dev/null +++ b/examples/gl/readme.md @@ -0,0 +1,147 @@ +# rs-gl Sample + +## Overview + +> Due to driver limitations built-in GPU capabilities are not available at the moment on Mac-OS + +This sample demonstrates how one could utilize the GPU for processing of depth data. + +## Expected Output +The application should open a window with a pointcloud. Using your mouse, you should be able to interact with the pointcloud, rotating and zooming. + +**In addition, you can switch between CPU / GPU processing mode and see the difference in FPS** + +![expected output](output.PNG) + +## Code Overview + +In addition to core `realsense2` this example also depends on an auxiliary `realsense2-gl` library. +This is not strictly part of core RealSense functionality, but rather a useful extension. + +### Setup + +To enable this functionality, in addition to standard `#include ` you need to include: +```cpp +#include // Include GPU-Processing API +``` + +> In order to allow texture sharing between processing and rendering application, `rs_processing_gl.hpp` needs to be included **after** including `GLFW`. + +After defining some helper functions and `window` object, we need to initialize GL processing and rendering subsystems: +```cpp +// Once we have a window, initialize GL module +// Pass our window to enable sharing of textures between processed frames and the window +rs2::gl::init_processing(app, use_gpu_processing); +// Initialize rendering module: +rs2::gl::init_rendering(); +``` + +When using GL-processing, resulting frames will be stored in GPU memory as an OpenGL texture. + +These frames can still be tracked via regular `rs2::frame` objects. The fact that these frames reside on the GPU is transparent to the application. Once `get_frame_data()` on a GPU-frame gets called frame content will be copied to main memory. + +> To maintain optimal performance, it is best to reduce copying data between main and GPU memory. Combining multiple GPU processing blocks together will ensure data is kept on the GPU, while mixing GPU and CPU processing blocks will create potentially costly copy operations. + +We define two frames for pointcloud and texture data: +```cpp +// Every iteration the demo will render 3D pointcloud that will be stored in points object: +rs2::points points; +// The pointcloud will use colorized depth as a texture: +rs2::frame depth_texture; +``` + +Next, we define GL processing blocks: +```cpp +rs2::gl::pointcloud pc; // similar to rs2::pointcloud +rs2::gl::colorizer colorizer; // similar to rs2::colorizer +rs2::gl::uploader upload; // used to explicitly copy frame to the GPU +``` +`rs2::gl::pointcloud` and `rs2::gl::colorizer` behave exactly like their CPU counterparts. +`rs2::gl::upload` is a new processing block that is designed to convert regular frames into GPU-frames (copy data to the GPU). + +If you don't use the `upload` block, the `pointcloud` and the `colorizer` will **both** implicitly copy depth frame to the GPU. +Using `upload` explicitly lets you preemptively convert depth frame to a GPU-frame, saving future conversions. + +Next, we define a new type of processing-block that takes `rs2::points` object and renders it to the screen. +```cpp +rs2::gl::pointcloud_renderer pc_renderer; // Will handle rendering points object to the screen +``` +Rendering blocks are designed to offer optimized common building blocks that take advantage of GPU processing. + +Rendering blocks are controlled via a set of standard matrices defining how to render the data: +```cpp +// We will manage two matrices - projection and view +// to handle mouse input and perspective +float proj_matrix[16]; +float view_matrix[16]; +``` + +### Frame Loop + +Since this application is trying to show the effect of GPU / CPU processing on performance, we don't want to be using `wait_for_frame` as it will limit application's rendering rate to the camera FPS. +Instead we will use **non-blocking** `poll_for_frames`: +```cpp +// Any new frames? +rs2::frameset frames; +if (pipe.poll_for_frames(&frames)) +{ + auto depth = frames.get_depth_frame(); + + // Since both colorizer and pointcloud are going to use depth + // It helps to explicitly upload it to the GPU + // Otherwise, each block will upload the same depth to GPU separately + // [ This step is optional, but can speed things up on some cards ] + // The result of this step is still a rs2::depth_frame, + // but now it is also extendible to rs2::gl::gpu_frame + depth = upload.process(depth); + + // Apply color map with histogram equalization + depth_texture = colorizer.colorize(depth); + + // Tell pointcloud object to map to this color frame + pc.map_to(depth_texture); + + // Generate the pointcloud and texture mappings + points = pc.calculate(depth); +} +``` +> **Note:** Invoking GPU processing and rendering blocks is done via standard `process` and `apply_filter` methods. + +Next, we check if the `depth_texture` is already in GPU memory: +```cpp +if (auto gpu_frame = depth_texture.as()) +``` +> **Note:** If we would skip this check and try to use it as a regular frame, `depth_texture` would be implicitly converted to a "regular" frame. Everything would work, but we would have lost the opportunity to take advantage of it being a GPU-frame. + +Each GPU-frame holds-on to several OpenGL textures. The exact layout of these depends on frame type. +To access the first texture (colorized depth data) we use `get_texture_id`: +```cpp +texture_id = gpu_frame.get_texture_id(0); +``` + +Rendering the pointcloud is handled by `pc_renderer`: +```cpp +// Inform pointcloud-renderer of the projection and view matrices: +pc_renderer.set_matrix(RS2_GL_MATRIX_PROJECTION, proj_matrix); +pc_renderer.set_matrix(RS2_GL_MATRIX_TRANSFORMATION, view_matrix); + +// If we have something to render, use pointcloud-renderer to do it +if (points) pc_renderer.process(points); +``` + +If during the application we decide to switch between GPU / CPU modes, we first need to shutdown previous GL subsystem: +```cpp +rs2::gl::shutdown_rendering(); +rs2::gl::shutdown_processing(); +``` +And reinitialize it with updated settings: +```cpp +rs2::gl::init_processing(app, use_gpu_processing); +rs2::gl::init_rendering(); +``` +> **Note:** No need to destroy existing `rs2::gl` objects prior to this operation. When processing / rendering is shut-down or `use_gpu_processing` becomes `false`, GL processing blocks will fall-back to their default CPU implementation, while GL rendering blocks will do nothing. + +Depending on the CPU & GPU hardware, you can expect different results when running this demo. + +In addition, take note of the CPU and GPU utilization counters. Since we are using `poll_for_frames` and `glfwSwapInterval` the demo will always try to max-out utilization of both resources. If you constrain the FPS, however, this technique can be used to control CPU / GPU utilization. + diff --git a/examples/gl/rs-gl.cpp b/examples/gl/rs-gl.cpp new file mode 100644 index 00000000000..c602e9c2a38 --- /dev/null +++ b/examples/gl/rs-gl.cpp @@ -0,0 +1,250 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015-2017 Intel Corporation. All Rights Reserved. + +#include // Include RealSense Cross Platform API +#include "example.hpp" // Include short list of convenience functions for rendering +#include // Include GPU-Processing API + +// Helper functions +void register_glfw_callbacks(window& app, glfw_state& app_state); +void prepare_matrices(glfw_state& app_state, float width, float height, float* projection, float* view); +bool handle_input(window& app, bool& use_gpu_processing); +// This helper class will be used to keep track of FPS and print instructions: +struct instructions_printer +{ + instructions_printer(); + void print_instructions(window& app, bool use_gpu_processing); + + std::chrono::high_resolution_clock::time_point last_clock; + int rendered_frames; + int last_fps; +}; + +int main(int argc, char * argv[]) try +{ + // The following toggle is going to control + // if we will use CPU or GPU for depth data processing + bool use_gpu_processing = true; + + // Create a simple OpenGL window for rendering: + window app(1280, 720, "RealSense GPU-Processing Example"); + + // Once we have a window, initialize GL module + // Pass our window to enable sharing of textures between processed frames and the window + rs2::gl::init_processing(app, use_gpu_processing); + // Initialize rendering module: + rs2::gl::init_rendering(); + + // Construct an object to manage view state + glfw_state app_state; + // register callbacks to allow manipulation of the pointcloud + register_glfw_callbacks(app, app_state); + + texture tex; // For when not using GPU frames, we will need standard texture object + // to render pointcloud texture (similar to pointcloud example) + + instructions_printer printer; + + // Every iteration the demo will render 3D pointcloud that will be stored in points object: + rs2::points points; + // The pointcloud will use colorized depth as a texture: + rs2::frame depth_texture; + + // ---- Declare GL processing blocks ---- + rs2::gl::pointcloud pc; // similar to rs2::pointcloud + rs2::gl::colorizer colorizer; // similar to rs2::colorizer + rs2::gl::uploader upload; // used to explicitly copy frame to the GPU + + // ---- Declare rendering block ---- + rs2::gl::pointcloud_renderer pc_renderer; // Will handle rendering points object to the screen + + // We will manage two matrices - projection and view + // to handle mouse input and perspective + float proj_matrix[16]; + float view_matrix[16]; + + // Enable pipeline + rs2::pipeline pipe; + rs2::config cfg; + // For this example, we are only interested in depth: + cfg.enable_stream(RS2_STREAM_DEPTH, RS2_FORMAT_Z16); + pipe.start(cfg); + + while (app) // Application still alive? + { + // Any new frames? + rs2::frameset frames; + if (pipe.poll_for_frames(&frames)) + { + auto depth = frames.get_depth_frame(); + + // Since both colorizer and pointcloud are going to use depth + // It helps to explicitly upload it to the GPU + // Otherwise, each block will upload the same depth to GPU separately + // [ This step is optional, but can speed things up on some cards ] + // The result of this step is still a rs2::depth_frame, + // but now it is also extendible to rs2::gl::gpu_frame + depth = upload.process(depth); + + // Apply color map with histogram equalization + depth_texture = colorizer.colorize(depth); + + // Tell pointcloud object to map to this color frame + pc.map_to(depth_texture); + + // Generate the pointcloud and texture mappings + points = pc.calculate(depth); + } + + // Populate projection and view matrices based on user input + prepare_matrices(app_state, + app.width(), app.height(), + proj_matrix, view_matrix); + + // We need to get OpenGL texture ID for pointcloud texture + uint32_t texture_id = 0; + // First, check if the frame is already a GPU-frame + if (auto gpu_frame = depth_texture.as()) + { + // If it is (and you have passed window for sharing to init_processing + // you can just get the texture ID of the GPU frame + texture_id = gpu_frame.get_texture_id(0); + } + else + { + // Otherwise, we need to upload texture like in all other examples + tex.upload(depth_texture); + texture_id = tex.get_gl_handle(); + } + + // Clear screen + glClearColor(0.2f, 0.2f, 0.2f, 1.f); + glClear(GL_DEPTH_BUFFER_BIT); + + // We need Depth-Test unless you want pointcloud to intersect with itself + glEnable(GL_DEPTH_TEST); + + // Set texture to our selected texture ID + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, texture_id); + + // Inform pointcloud-renderer of the projection and view matrices: + pc_renderer.set_matrix(RS2_GL_MATRIX_PROJECTION, proj_matrix); + pc_renderer.set_matrix(RS2_GL_MATRIX_TRANSFORMATION, view_matrix); + + // If we have something to render, use pointcloud-renderer to do it + if (points) pc_renderer.process(points); + + // Disable texturing + glDisable(GL_TEXTURE_2D); + + // Print textual information + printer.print_instructions(app, use_gpu_processing); + + // Handle user input and check if reset is required + if (handle_input(app, use_gpu_processing)) + { + // First, shutdown processing and rendering + rs2::gl::shutdown_rendering(); + rs2::gl::shutdown_processing(); + + // Next, reinitialize processing and rendering with new settings + rs2::gl::init_processing(app, use_gpu_processing); + rs2::gl::init_rendering(); + } + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception & e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} + +instructions_printer::instructions_printer() +{ + // Initialize running clock to keep track of time (for FPS calculation) + auto last_clock = std::chrono::high_resolution_clock::now(); + int rendered_frames = 0; // Counts number of frames since last update + int last_fps = 0; // Stores last calculated FPS + glfwSwapInterval(0); // This is functionally disabling V-Sync, + // allowing application FPS to go beyond monitor refresh rate +} + +void instructions_printer::print_instructions(window& app, bool use_gpu_processing) +{ + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glOrtho(0, app.width(), app.height(), 0, -1, +1); + + glColor3f(1.f, 1.f, 1.f); + std::stringstream ss; + ss << "Performing Point-Cloud and Histogram-Equalization (Colorize) on the " << (use_gpu_processing ? "GPU" : "CPU"); + draw_text(20, 20, ss.str().c_str()); + + ss.str(""); + ss << "( Press " << (use_gpu_processing ? "[C] - Switch to processing on the CPU )" : "[G] - Switch to processing on the GPU )"); + draw_text(20, 36, ss.str().c_str()); + + ss.str(""); + ss << "This demo is being rendered at " << last_fps << " frames per second, ~" << (1000 / (last_fps + 1)) << "ms for single rendered frame"; + draw_text(20, 52, ss.str().c_str()); + + rendered_frames++; + + auto since_last_clock = std::chrono::high_resolution_clock::now() - last_clock; + auto sec_elapsed = std::chrono::duration_cast(since_last_clock).count(); + if (sec_elapsed > 0) + { + last_clock = std::chrono::high_resolution_clock::now(); + last_fps = rendered_frames; + rendered_frames = 0; + } +} + +bool handle_input(window& app, bool& use_gpu_processing) +{ + bool reset = false; + + if (glfwGetKey(app, GLFW_KEY_C) == GLFW_PRESS) + { + reset = use_gpu_processing; + use_gpu_processing = false; + } + if (glfwGetKey(app, GLFW_KEY_G) == GLFW_PRESS) + { + reset = !use_gpu_processing; + use_gpu_processing = true; + } + + return reset; +} + +void prepare_matrices(glfw_state& app_state, float width, float height, float* projection, float* view) +{ + glLoadIdentity(); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + gluPerspective(60, width / height, 0.01f, 10.0f); + glGetFloatv(GL_PROJECTION_MATRIX, projection); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + gluLookAt(0, 0, 0, 0, 0, 1, 0, -1, 0); + glTranslatef(0, 0, 0.5f + app_state.offset_y * 0.05f); + glRotated(app_state.pitch, 1, 0, 0); + glRotated(app_state.yaw, 0, 1, 0); + glTranslatef(0, 0, -0.5f); + glGetFloatv(GL_MODELVIEW_MATRIX, view); + + glPopMatrix(); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); +} diff --git a/examples/hello-realsense/CMakeLists.txt b/examples/hello-realsense/CMakeLists.txt new file mode 100644 index 00000000000..d3aff88e2e8 --- /dev/null +++ b/examples/hello-realsense/CMakeLists.txt @@ -0,0 +1,14 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesHelloRealSense) + +add_executable(rs-hello-realsense rs-hello-realsense.cpp) +set_property(TARGET rs-hello-realsense PROPERTY CXX_STANDARD 11) +target_link_libraries(rs-hello-realsense ${DEPENDENCIES}) +include_directories(rs-hello-realsense) +set_target_properties (rs-hello-realsense PROPERTIES FOLDER "Examples") + +install(TARGETS rs-hello-realsense RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/examples/hello-realsense/readme.md b/examples/hello-realsense/readme.md new file mode 100644 index 00000000000..7cb64f1744a --- /dev/null +++ b/examples/hello-realsense/readme.md @@ -0,0 +1,53 @@ +# rs-hello-realsense Sample + +## Overview + +Hello RealSense example demonstrates the basics of connecting to a RealSense device and taking advantage of depth data by printing the distance to object in the center of camera feild of view. + +## Expected Output +Assuming camera is connected you should see `"The camera is facing an object X meters away"` line being continously updated. X is the distance in meters to the object in the center of camera feild of view. + +## Code Overview + +First, we include the Intel® RealSense™ Cross-Platform API. +All but advanced functionality is provided through a single header: +```cpp +#include // Include RealSense Cross Platform API +``` + +Next, we create and start RealSense pipeline. Pipeline is the primary high level primitive controlling camera enumeration and streaming. +```cpp +// Create a Pipeline - this serves as a top-level API for streaming and processing frames +rs2::pipeline p; + +// Configure and start the pipeline +p.start(); +``` +Once pipeline is configured, we can loop waiting for new frames. + +RealSense cameras usually offer multiple video, motion or pose streams. `wait_for_frames` function will block until next set of coherent frames from various configured streams. +```cpp +// Block program until frames arrive +rs2::frameset frames = p.wait_for_frames(); +``` +To get first frame from the depth data stream, you can use `get_depth_frame` helper function: +``` +// Try to get a frame of a depth image +rs2::depth_frame depth = frames.get_depth_frame(); +``` +Next we query the default depth frame dimensions (these may differ from sensor to sensor): +```cpp +// Get the depth frame's dimensions +float width = depth.get_width(); +float height = depth.get_height(); +``` +To get distance at specific pixel (center of the frame), you can use `get_distance` function: +``` +// Query the distance from the camera to the object in the center of the image +float dist_to_center = depth.get_distance(width / 2, height / 2); +``` +The only thing left is to print the resulting distance to the screen: +```cpp +// Print the distance +std::cout << "The camera is facing an object " << dist_to_center << " meters away \r"; +``` \ No newline at end of file diff --git a/examples/hello-realsense/rs-hello-realsense.cpp b/examples/hello-realsense/rs-hello-realsense.cpp new file mode 100644 index 00000000000..13cf8dc4007 --- /dev/null +++ b/examples/hello-realsense/rs-hello-realsense.cpp @@ -0,0 +1,47 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include // Include RealSense Cross Platform API +#include // for cout + +// Hello RealSense example demonstrates the basics of connecting to a RealSense device +// and taking advantage of depth data +int main(int argc, char * argv[]) try +{ + // Create a Pipeline - this serves as a top-level API for streaming and processing frames + rs2::pipeline p; + + // Configure and start the pipeline + p.start(); + + while (true) + { + // Block program until frames arrive + rs2::frameset frames = p.wait_for_frames(); + + // Try to get a frame of a depth image + rs2::depth_frame depth = frames.get_depth_frame(); + + // Get the depth frame's dimensions + float width = depth.get_width(); + float height = depth.get_height(); + + // Query the distance from the camera to the object in the center of the image + float dist_to_center = depth.get_distance(width / 2, height / 2); + + // Print the distance + std::cout << "The camera is facing an object " << dist_to_center << " meters away \r"; + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/measure/CMakeLists.txt b/examples/measure/CMakeLists.txt index eed0e1f1a85..66201dd4f51 100644 --- a/examples/measure/CMakeLists.txt +++ b/examples/measure/CMakeLists.txt @@ -1,34 +1,19 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesMeasure) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) if(BUILD_GRAPHICAL_EXAMPLES) add_executable(rs-measure rs-measure.cpp ../example.hpp) - target_link_libraries(rs-measure ${DEPENDENCIES}) + set_property(TARGET rs-measure PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-measure ${DEPENDENCIES} Threads::Threads) include_directories(rs-measure ../) - set_target_properties (rs-measure PROPERTIES - FOLDER "Examples" - ) - - install( - TARGETS - - rs-measure + set_target_properties (rs-measure PROPERTIES FOLDER "Examples") - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + install(TARGETS rs-measure RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/measure/readme.md b/examples/measure/readme.md index 4e0a321cec5..d5127332a34 100644 --- a/examples/measure/readme.md +++ b/examples/measure/readme.md @@ -2,9 +2,9 @@ ## Overview -This tutorial is designed to explain some of the more advanced SDK topics by writing a simple "Ruler" app. -> **Note:** Measuring dimensions of real-world objects is one of the obvious applications of a depth camera. This sample is not indented to be a proper measurement tool, but rather to showcase critical concepts. -> Both the algorithm and the performance of this app can be considerably improved +This tutorial shows simple method for measuring real-world distances using depth data. +> **Note:** Measuring dimensions of real-world objects is one of the obvious applications of a depth camera. This sample is not intended to be a proper measurement tool, but rather to showcase critical concepts. +> With better algorithms measurement results can be improved considerably. In this tutorial you will learn how to: @@ -16,15 +16,11 @@ In this tutorial you will learn how to: ## Expected Output -![expected output](https://raw.githubusercontent.com/wiki/IntelRealSense/librealsense/res/measure-expected.png) +![expected output](https://raw.githubusercontent.com/wiki/dorodnic/librealsense/expected.png) This demo lets the user measure distance between two points in the physical world. -We calculate two simple distance metrics: -* **Euclidean Distance** - very fast to calculate, but cuts through air and solid objects -* **Geodesic Distance** - distance along the surface, approximated by a shortest path on the depth lattice - -## Code Overview +## Code Overview ### Depth Processing Pipeline @@ -33,6 +29,8 @@ We start this example by defining all the processing blocks we are going to use: ```cpp // Colorizer is used to visualize depth data rs2::colorizer color_map; +// Use black to white color map +color_map.set_option(RS2_OPTION_COLOR_SCHEME, 2.f); // Decimation filter reduces the amount of data (while preserving best samples) rs2::decimation_filter dec; // If the demo is too slow, make sure you run in Release (-DCMAKE_BUILD_TYPE=Release) @@ -45,7 +43,7 @@ rs2::disparity_transform disparity2depth(false); rs2::spatial_filter spat; // Enable hole-filling // Hole filling is an aggressive heuristic and it gets the depth wrong many times -// However, this demo is not built to handle holes +// However, this demo is not built to handle holes // (the shortest-path will always prefer to "cut" through the holes since they have zero 3D distance) spat.set_option(RS2_OPTION_HOLES_FILL, 5); // 5 = fill all the zero pixels // Define temporal filter @@ -72,22 +70,15 @@ auto profile = pipe.start(cfg); Our goal is to generate depth without any holes, since these are going to pose an immediate problem to our algorithm. The best way to reduce the number of missing pixels is by letting the hardware do it. The D400 cameras have a **High Density** preset we can take advantage of. -Until the presets are finalized, the way to apply this preset is by name: ```cpp auto sensor = profile.get_device().first(); - -// TODO: At the moment the SDK does not offer a closed enum for D400 visual presets -// (because they keep changing) -// As a work-around we try to find the High-Density preset by name -// We do this to reduce the number of black pixels -// The hardware can perform hole-filling much better and much more power efficient then our software -auto range = sensor.get_option_range(RS2_OPTION_VISUAL_PRESET); -for (auto i = range.min; i < range.max; i += range.step) - if (std::string(sensor.get_option_value_description(RS2_OPTION_VISUAL_PRESET, i)) == "High Density") - sensor.set_option(RS2_OPTION_VISUAL_PRESET, i); + +// Set the device to High Accuracy preset +auto sensor = profile.get_device().first(); +sensor.set_option(RS2_OPTION_VISUAL_PRESET, RS2_RS400_VISUAL_PRESET_HIGH_ACCURACY); ``` -Given a frame-set, we are going to apply all the processing blocks in order. +Given a frame-set, we are going to apply all the processing blocks in order. First we apply the `align` processing block to align color frame to depth viewport: ```cpp // First make the frames spatially aligned @@ -99,7 +90,7 @@ Next, we invoke the depth post-processing flow: rs2::frame depth = data.get_depth_frame(); // Decimation will reduce the resultion of the depth image, // closing small holes and speeding-up the algorithm -depth = dec.process(depth); +depth = dec.process(depth); // To make sure far-away objects are filtered proportionally // we try to switch to disparity domain depth = depth2disparity.process(depth); @@ -131,7 +122,7 @@ auto stream = profile.get_stream(RS2_STREAM_DEPTH).as auto intrinsics = stream.get_intrinsics(); // Calibration data ``` -Distance in meters can be acquired using `get_distance` function of `depth_frame` class. +Distance in meters can be acquired using `get_distance` function of `depth_frame` class. > Calling `get_distance` excessively can result in bad performance, since the compiler can't optimize across module boundaries, so it could be beneficial to read the `DEPTH_UNITS` option directly from the `depth_sensor` and use it to convert raw depth pixels to meters. @@ -172,85 +163,27 @@ float dist_3d(const rs2_intrinsics& intr, const rs2::depth_frame& frame, pixel u ### Running Processing on a Background Thread -Both the post-processing and the shortest-path calculations in this example can be relatively slow. To not block the main (UI) thread, we are going to have a dedicated thread for both the post-processing and the algorithm. - -

+Post-processing calculations in this example can be relatively slow. To not block the main (UI) thread, we are going to have a dedicated thread for post-processing. #### Video-Processing Thread -This thread will consume full frame-sets from the camera, and will produce: - -* Frameset containing color and colorized depth frames (for rendering on the main thread) -* Post-processed depth frame for the shortest-path calculation - -In order to create a new `frameset` we must wrap our code in a `processing_block` object: - -```cpp -rs2::processing_block frame_processor( - [&](rs2::frameset data, // Input frameset (from the pipeline) - rs2::frame_source& source) // Frame pool that can allocate new frames -{ - ... - - // Group the two frames together (to make sure they are rendered in sync) - rs2::frameset combined = source.allocate_composite_frame({ colorized, color }); - // Send the composite frame for rendering - source.frame_ready(combined); -}); -``` -This object will both invoke our lambda (in a safe way) and manage the frame-pool for the resulting framesets. - -We can tie the output of a processing block directly into a `frame_queue`: -```cpp -// Indicate that we want the results of frame_processor -// to be pushed into postprocessed_frames queue -frame_processor >> postprocessed_frames; -``` - -Next, the thread will poll for frames from `pipeline` and send them into our processing block: +This thread will consume full frame-sets from the camera, and will produce frame-sets containing color and colorized depth frames (for rendering on the main thread): ```cpp while (alive) { - // Fetch frames from the pipeline and send them for processing - rs2::frameset fs; - if (pipe.poll_for_frames(&fs)) frame_processor.invoke(fs); + // Fetch frames from the pipeline and send them for processing + rs2::frameset fs; + if (pipe.poll_for_frames(&fs)) + { + // Apply post processing + // ... + + // Send resulting frames for visualization in the main thread + postprocessed_frames.enqueue(data); + } } ``` -In addition, the processing block will send individual post-processed depth frames to `pathfinding_queue` to be picked-up by the Shortest-Path thread. -```cpp -// Send the post-processed depth for path-finding -pathfinding_queue.enqueue(depth); -``` - -#### Shortest-Path Thread - -This thread will consume depth frames from `pathfinding_queue` and will update a global `path` variable with the shortest path. -We don't need to define a processing block since no new frames are being created. - -```cpp -// Shortest-path thread is receiving depth frame and -// runs classic Dijkstra on it to find the shortest path (in 3D) -// between the two points the user have chosen -std::thread shortest_path_thread([&]() { - while (alive) - { - // Try to fetch frames from the pathfinding_queue - rs2::frame depth; - if (pathfinding_queue.poll_for_frame(&depth)) - { - ... - - { - // Write the shortest-path to the path variable - std::lock_guard lock(path_mutex); - path = ... - } - } - } -}); -``` - #### Main Thread The main thread is the only one allowed to render to the screen. @@ -280,20 +213,13 @@ while(app) // Application still alive? // pixels out of FOV will appear transparent) color_image.render(color, { 0, 0, app.width(), app.height() }); - { - // Take the lock, to make sure the path is not modified - // while we are rendering it - std::lock_guard lock(path_mutex); + // Render the simple pythagorean distance + render_simple_distance(depth, app_state, app, intrinsics); - // Render the shortest-path as calculated - render_shortest_path(depth, path, app, total_dist); - // Render the simple pythagorean distance - render_simple_distance(depth, app_state, app, intrinsics); + // Render the ruler + app_state.ruler_start.render(app); + app_state.ruler_end.render(app); - // Render the ruler - app_state.ruler_start.render(app); - app_state.ruler_end.render(app); - } glDisable(GL_BLEND); } } @@ -302,8 +228,5 @@ We use `glBlendFunc` to overlay aligned-color on top of depth using colors alpha ---------------------------------- -This example demonstrates a short yet complex processing flow. Each thread has somewhat different rate and they all need to synchronize but not block one another. +This example demonstrates a short yet complex processing flow. Each thread has somewhat different rate and they all need to synchronize but not block one another. This is achieved using thread-safe `frame_queue`s as synchronization primitives and `rs2::frame` reference counting for object lifetime management across threads. - - - diff --git a/examples/measure/rs-measure.cpp b/examples/measure/rs-measure.cpp index 16972485e4c..d14170e2325 100644 --- a/examples/measure/rs-measure.cpp +++ b/examples/measure/rs-measure.cpp @@ -17,51 +17,51 @@ using pixel = std::pair; -// Neighbors function returns 12 fixed neighboring pixels in an image -std::array neighbors(rs2::depth_frame frame, pixel p); - // Distance 3D is used to calculate real 3D distance between two pixels float dist_3d(const rs2::depth_frame& frame, pixel u, pixel v); -// Distance 2D returns the distance in pixels between two pixels -float dist_2d(const pixel& a, const pixel& b); // Toggle helper class will be used to render the two buttons // controlling the edges of our ruler struct toggle { toggle() : x(0.f), y(0.f) {} - toggle(float x, float y) - : x(std::min(std::max(x, 0.f), 1.f)), - y(std::min(std::max(y, 0.f), 1.f)) + toggle(float xl, float yl) + : x(std::min(std::max(xl, 0.f), 1.f)), + y(std::min(std::max(yl, 0.f), 1.f)) {} // Move from [0,1] space to pixel space of specific frame - pixel get_pixel(rs2::depth_frame frame) const + pixel get_pixel(rs2::depth_frame frm) const { - int px = x * frame.get_width(); - int py = y * frame.get_height(); + int px = x * frm.get_width(); + int py = y * frm.get_height(); return{ px, py }; } void render(const window& app) { - // Render a circle - const float r = 10; + glColor4f(0.f, 0.0f, 0.0f, 0.2f); + render_circle(app, 10); + render_circle(app, 8); + glColor4f(1.f, 0.9f, 1.0f, 1.f); + render_circle(app, 6); + } + + void render_circle(const window& app, float r) + { const float segments = 16; - glEnable(GL_BLEND); - glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); - glColor3f(0.f, 1.0f, 0.0f); - glLineWidth(2); - glBegin(GL_LINE_STRIP); + glBegin(GL_TRIANGLE_STRIP); for (auto i = 0; i <= segments; i++) { auto t = 2 * M_PI * float(i) / segments; - glVertex2f(x * app.width() + cos(t) * r, - y * app.height() + sin(t) * r); + + glVertex2f(x * app.width() + cos(t) * r, + y * app.height() + sin(t) * r); + + glVertex2f(x * app.width(), + y * app.height()); } glEnd(); - glDisable(GL_BLEND); - glColor3f(1.f, 1.f, 1.f); } // This helper function is used to find the button @@ -97,13 +97,6 @@ void render_simple_distance(const rs2::depth_frame& depth, const state& s, const window& app); -// Shortest-path distance approximates the geodesic. -// Given two points on a surface it will follow with that surface -void render_shortest_path(const rs2::depth_frame& depth, - const std::vector& path, - const window& app, - float total_dist); - int main(int argc, char * argv[]) try { // OpenGL textures for the color and depth frames @@ -111,6 +104,8 @@ int main(int argc, char * argv[]) try // Colorizer is used to visualize depth data rs2::colorizer color_map; + // Use black to white color map + color_map.set_option(RS2_OPTION_COLOR_SCHEME, 2.f); // Decimation filter reduces the amount of data (while preserving best samples) rs2::decimation_filter dec; // If the demo is too slow, make sure you run in Release (-DCMAKE_BUILD_TYPE=Release) @@ -146,15 +141,11 @@ int main(int argc, char * argv[]) try auto sensor = profile.get_device().first(); - // TODO: At the moment the SDK does not offer a closed enum for D400 visual presets - // (because they keep changing) - // As a work-around we try to find the High-Density preset by name - // We do this to reduce the number of black pixels - // The hardware can perform hole-filling much better and much more power efficient then our software - auto range = sensor.get_option_range(RS2_OPTION_VISUAL_PRESET); - for (auto i = range.min; i < range.max; i += range.step) - if (std::string(sensor.get_option_value_description(RS2_OPTION_VISUAL_PRESET, i)) == "High Density") - sensor.set_option(RS2_OPTION_VISUAL_PRESET, i); + // Set the device to High Accuracy preset of the D400 stereoscopic cameras + if (sensor && sensor.is()) + { + sensor.set_option(RS2_OPTION_VISUAL_PRESET, RS2_RS400_VISUAL_PRESET_HIGH_ACCURACY); + } auto stream = profile.get_stream(RS2_STREAM_DEPTH).as(); @@ -170,160 +161,53 @@ int main(int argc, char * argv[]) try // After initial post-processing, frames will flow into this queue: rs2::frame_queue postprocessed_frames; - // In addition, depth frames will also flow into this queue: - rs2::frame_queue pathfinding_queue; - // Alive boolean will signal the worker threads to finish-up std::atomic_bool alive{ true }; - // The pathfinding thread will write its output to this memory: - std::vector path; - float total_dist = 0.f; - std::mutex path_mutex; // It is protected by a mutex - // Video-processing thread will fetch frames from the camera, // apply post-processing and send the result to the main thread for rendering // It recieves synchronized (but not spatially aligned) pairs // and outputs synchronized and aligned pairs std::thread video_processing_thread([&]() { - // In order to generate new composite frames, we have to wrap the processing - // code in a lambda - rs2::processing_block frame_processor( - [&](rs2::frameset data, // Input frameset (from the pipeline) - rs2::frame_source& source) // Frame pool that can allocate new frames + while (alive) { - // First make the frames spatially aligned - data = data.apply_filter(align_to); - - // Decimation will reduce the resultion of the depth image, - // closing small holes and speeding-up the algorithm - data = data.apply_filter(dec); - - // To make sure far-away objects are filtered proportionally - // we try to switch to disparity domain - data = data.apply_filter(depth2disparity); - - // Apply spatial filtering - data = data.apply_filter(spat); - - // Apply temporal filtering - data = data.apply_filter(temp); + // Fetch frames from the pipeline and send them for processing + rs2::frameset data; + if (pipe.poll_for_frames(&data)) + { + // First make the frames spatially aligned + data = data.apply_filter(align_to); - // If we are in disparity domain, switch back to depth - data = data.apply_filter(disparity2depth); + // Decimation will reduce the resultion of the depth image, + // closing small holes and speeding-up the algorithm + data = data.apply_filter(dec); - // Send the post-processed depth for path-finding - pathfinding_queue.enqueue(data.get_depth_frame()); + // To make sure far-away objects are filtered proportionally + // we try to switch to disparity domain + data = data.apply_filter(depth2disparity); - //Apply color map for visualization of depth - data = data.apply_filter(color_map); + // Apply spatial filtering + data = data.apply_filter(spat); - // Send the composite frame for rendering - source.frame_ready(data); - }); - // Indicate that we want the results of frame_processor - // to be pushed into postprocessed_frames queue - frame_processor >> postprocessed_frames; + // Apply temporal filtering + data = data.apply_filter(temp); - while (alive) - { - // Fetch frames from the pipeline and send them for processing - rs2::frameset fs; - if (pipe.poll_for_frames(&fs)) frame_processor.invoke(fs); - } - }); + // If we are in disparity domain, switch back to depth + data = data.apply_filter(disparity2depth); - // Shortest-path thread is recieving depth frame and - // runs classic Dijkstra on it to find the shortest path (in 3D) - // between the two points the user have chosen - std::thread shortest_path_thread([&]() { - while (alive) - { - // Try to fetch frames from the pathfinding_queue - rs2::frame depth; - if (pathfinding_queue.poll_for_frame(&depth)) - { - // Define vertex+distance struct - using dv = std::pair; - - // Define source, target and a terminator pixel - pixel src = app_state.ruler_start.get_pixel(depth); - pixel trg = app_state.ruler_end.get_pixel(depth); - pixel token{ -1, -1 }; // When we see this value we know we reached source - - // Dist holds distances of every pixel from source - std::map dist; - // Parent map is used to reconsturct the shortest-path - std::map parent; - // Priority queue holds pixels (ordered by their distance) - std::priority_queue, std::greater> q; - - // Initialize the source pixel: - dist[src] = 0.f; - parent[src] = token; - q.emplace(0.f, src); - - // To save calculation we apply a heuristic - // Don't visit pixels that are too far away in 2D space - // It is very rare for objects in 3D space to violate this - auto max_2d_dist = dist_2d(src, trg) * 1.2; - - while (!q.empty() && alive) - { - // Fetch the closest pixel from the queue - pixel u = q.top().second; q.pop(); - - // If we reached the max radius, don't continue to expand - if (dist_2d(src, u) > max_2d_dist) continue; - - // Fetch the list of neighboring pixels - auto n = neighbors(depth, u); - for (auto&& v : n) - { - // If this pixel was not yet visited, initialize - // its distance as +INF - if (dist.find(v) == dist.end()) dist[v] = INFINITY; - - // Calculate distance in 3D between the two neighboring pixels - auto d = dist_3d(depth, u, v); - // Calculate total distance from source - auto total_dist = dist[u] + d; - - // If we encounter a potential improvement, - if (dist[v] > total_dist) - { - // Update parent and distance - parent[v] = u; - dist[v] = total_dist; - // And re-visit that pixel by re-introducing it to the queue - q.emplace(total_dist, v); - } - } - } + //// Apply color map for visualization of depth + data = data.apply_filter(color_map); - { - // Write the shortest-path to the path variable - std::lock_guard lock(path_mutex); - total_dist = dist[trg]; - path.clear(); - // Iterate until encounter token special pixel - while (trg != token) - { - // Handle the case we didn't find a path - if (trg == parent[trg]) break; - - path.emplace_back(trg); - trg = parent[trg]; - } - } + // Send resulting frames for visualization in the main thread + postprocessed_frames.enqueue(data); } } }); + rs2::frameset current_frameset; while(app) // Application still alive? { // Fetch the latest available post-processed frameset - static rs2::frameset current_frameset; postprocessed_frames.poll_for_frame(¤t_frameset); if (current_frameset) @@ -338,32 +222,19 @@ int main(int argc, char * argv[]) try // First render the colorized depth image depth_image.render(colorized_depth, { 0, 0, app.width(), app.height() }); - // Next, set global alpha for the color image to 90% - // (to make it slightly translucent) - //glColor4f(1.f, 1.f, 1.f, 0.9f); + // Render the color frame (since we have selected RGBA format // pixels out of FOV will appear transparent) color_image.render(color, { 0, 0, app.width(), app.height() }); - { - // Take the lock, to make sure the path is not modified - // while we are rendering it - std::lock_guard lock(path_mutex); - - // Use 1-Color model to invert background colors - glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR); - - // Render the shortest-path as calculated - render_shortest_path(depth, path, app, total_dist); - // Render the simple pythagorean distance - render_simple_distance(depth, app_state, app); + // Render the simple pythagorean distance + render_simple_distance(depth, app_state, app); - // Render the ruler - app_state.ruler_start.render(app); - app_state.ruler_end.render(app); + // Render the ruler + app_state.ruler_start.render(app); + app_state.ruler_end.render(app); - glColor3f(1.f, 1.f, 1.f); - } + glColor3f(1.f, 1.f, 1.f); glDisable(GL_BLEND); } } @@ -371,7 +242,6 @@ int main(int argc, char * argv[]) try // Signal threads to finish and wait until they do alive = false; video_processing_thread.join(); - shortest_path_thread.join(); return EXIT_SUCCESS; } @@ -386,33 +256,6 @@ catch (const std::exception& e) return EXIT_FAILURE; } -std::array neighbors(rs2::depth_frame frame, pixel p) -{ - // Define 12 neighboring pixels in some fixed pattern - int px = p.first; - int py = p.second; - std::array res{ - pixel{ px, py - 1 }, - pixel{ px - 1, py }, - pixel{ px + 1, py }, - pixel{ px, py + 1 }, - pixel{ px - 1, py - 2 }, - pixel{ px + 1, py - 2 }, - pixel{ px - 1, py + 2 }, - pixel{ px + 1, py + 2 }, - pixel{ px - 2, py - 1 }, - pixel{ px + 2, py - 1 }, - pixel{ px - 2, py + 1 }, - pixel{ px + 2, py + 1 } - }; - for (auto&& r : res) - { - r.first = std::min(std::max(r.first, 0), frame.get_width() - 1); - r.second = std::min(std::max(r.second, 0), frame.get_height() - 1); - } - return res; -} - float dist_3d(const rs2::depth_frame& frame, pixel u, pixel v) { float upixel[2]; // From pixel @@ -446,9 +289,17 @@ float dist_3d(const rs2::depth_frame& frame, pixel u, pixel v) pow(upoint[2] - vpoint[2], 2)); } -float dist_2d(const pixel& a, const pixel& b) +void draw_line(float x0, float y0, float x1, float y1, int width) { - return pow(a.first - b.first, 2) + pow(a.second - b.second, 2); + glPushAttrib(GL_ENABLE_BIT); + glLineStipple(1, 0x00ff); + glEnable(GL_LINE_STIPPLE); + glLineWidth(width); + glBegin(GL_LINE_STRIP); + glVertex2f(x0, y0); + glVertex2f(x1, y1); + glEnd(); + glPopAttrib(); } void render_simple_distance(const rs2::depth_frame& depth, @@ -456,18 +307,24 @@ void render_simple_distance(const rs2::depth_frame& depth, const window& app) { pixel center; - glColor3f(1.f, 0.0f, 1.0f); - glPushAttrib(GL_ENABLE_BIT); - glLineStipple(1, 0x00ff); - glEnable(GL_LINE_STIPPLE); - glLineWidth(5); - glBegin(GL_LINE_STRIP); - glVertex2f(s.ruler_start.x * app.width(), - s.ruler_start.y * app.height()); - glVertex2f(s.ruler_end.x * app.width(), - s.ruler_end.y * app.height()); - glEnd(); - glPopAttrib(); + + glColor4f(0.f, 0.0f, 0.0f, 0.2f); + draw_line(s.ruler_start.x * app.width(), + s.ruler_start.y * app.height(), + s.ruler_end.x * app.width(), + s.ruler_end.y * app.height(), 9); + + glColor4f(0.f, 0.0f, 0.0f, 0.3f); + draw_line(s.ruler_start.x * app.width(), + s.ruler_start.y * app.height(), + s.ruler_end.x * app.width(), + s.ruler_end.y * app.height(), 7); + + glColor4f(1.f, 1.0f, 1.0f, 1.f); + draw_line(s.ruler_start.x * app.width(), + s.ruler_start.y * app.height(), + s.ruler_end.x * app.width(), + s.ruler_end.y * app.height(), 3); auto from_pixel = s.ruler_start.get_pixel(depth); auto to_pixel = s.ruler_end.get_pixel(depth); @@ -479,39 +336,25 @@ void render_simple_distance(const rs2::depth_frame& depth, std::stringstream ss; ss << int(air_dist * 100) << " cm"; auto str = ss.str(); - auto x = (float(center.first) / depth.get_width()) * app.width(); - auto y = (float(center.second) / depth.get_height()) * app.height(); - draw_text(x + 15, y + 15, str.c_str()); -} - -void render_shortest_path(const rs2::depth_frame& depth, - const std::vector& path, - const window& app, - float total_dist) -{ - pixel center; - glColor3f(0.f, 1.0f, 0.0f); - glLineWidth(5); - glBegin(GL_LINE_STRIP); - - for (int i = 0; i < path.size(); i++) - { - auto&& pixel = path[i]; - auto x = (float(pixel.first) / depth.get_width()) * app.width(); - auto y = (float(pixel.second) / depth.get_height()) * app.height(); - glVertex2f(x, y); - - if (i == path.size() / 2) center = { x, y }; - } + auto x = (float(center.first) / depth.get_width()) * app.width() + 15; + auto y = (float(center.second) / depth.get_height()) * app.height() + 15; + + auto w = stb_easy_font_width((char*)str.c_str()); + + // Draw dark background for the text label + glColor4f(0.f, 0.f, 0.f, 0.4f); + glBegin(GL_TRIANGLES); + glVertex2f(x - 3, y - 10); + glVertex2f(x + w + 2, y - 10); + glVertex2f(x + w + 2, y + 2); + glVertex2f(x + w + 2, y + 2); + glVertex2f(x - 3, y + 2); + glVertex2f(x - 3, y - 10); glEnd(); - if (path.size() > 1) - { - std::stringstream ss; - ss << int(total_dist * 100) << " cm"; - auto str = ss.str(); - draw_text(center.first + 15, center.second + 15, str.c_str()); - } + // Draw white text label + glColor4f(1.f, 1.f, 1.f, 1.f); + draw_text(x, y, str.c_str()); } // Implement drag&drop behaviour for the buttons: diff --git a/examples/motion/CMakeLists.txt b/examples/motion/CMakeLists.txt new file mode 100644 index 00000000000..b99e0f5afad --- /dev/null +++ b/examples/motion/CMakeLists.txt @@ -0,0 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesMotion) + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-motion rs-motion.cpp ../example.hpp ../../common/res/d435.h ${LZ4_DIR}/lz4.c) + set_property(TARGET rs-motion PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-motion ${DEPENDENCIES}) + include_directories(../ ../../common/res ${LZ4_DIR}) + set_target_properties (rs-motion PROPERTIES FOLDER Examples) + install(TARGETS rs-motion RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/motion/readme.md b/examples/motion/readme.md new file mode 100644 index 00000000000..e2fbf41aa0b --- /dev/null +++ b/examples/motion/readme.md @@ -0,0 +1,202 @@ +# rs-motion Sample + +> In order to run this example, a device supporting IMU (D435i) is required. + +## Overview +This sample demonstrates how to use data from gyroscope and accelerometer to compute the rotation ([Euler Angles](https://en.wikipedia.org/wiki/Euler_angles)) of the camera, denoted by `theta`. + +> The example is based on [code](https://github.com/GruffyPuffy/imutest) by @GruffyPuffy. + +In this example, we use complemetary filter to aggregate data from gyroscope and accelerometer. For more information, you can look at this [tutorial](http://www.pieter-jan.com/node/11) by Pieter-Jan or this [presentation](https://github.com/jcarrus/MakeMITSelfBalancingRobot/blob/master/segspecs/filter.pdf) by Shane Colton, among other resources available online. + +## Expected Output +![expected output](https://raw.githubusercontent.com/wiki/IntelRealSense/librealsense/res/imu.gif) + +The application should open a window with a 3D model of the camera, approximating the physical orientation. In addition, you should be able to interact with the camera using your mouse, for rotating, zooming, and panning. + +## Code Overview + +First, we include the Intel® RealSenseâ„¢ Cross-Platform API. +All but advanced functionality is provided through a single header: +```cpp +#include // Include RealSense Cross Platform API +``` + +In this example we will also use the auxiliary library of `example.hpp`: +```cpp +#include "../example.hpp" +``` + +We define 3 auxilary functions: `draw_axes` and `draw_floor`, which draw axes and floor grid respectively; and `render_scene` which prepares the general set-up of the scence, handles user manipulation etc. + +Rendering the 3D model of the camera is encapsulated inside `camera_renderer` class. It holds vertexes of the camera model and applies rotation according to `theta`. + +Calculation of the rotation angle, based on gyroscope and accelerometer data, is handled by the class `rotation_estimator`. +The class holds `theta` itself, which is updated on each IMU frame. We will process IMU frames asynchronously and therefore a mutex `theta_mtx` is needed ([learn more](https://github.com/IntelRealSense/librealsense/tree/master/examples/callback)). + +`rotation_estimator` also holds the parameter `alpha`, which is used to combine gyroscope and accelerometer data in the calculation of `theta`. +The first iteration needs separate handling and therfore `first` is defined. +`last_ts_gyro` is needed to calculate the time elapsed between arrival of subsequent frames from gyroscope stream. +```cpp +// theta is the angle of camera rotation in x, y and z components +float3 theta; +std::mutex theta_mtx; +/* alpha indicates the part that gyro and accelerometer take in computation of theta; higher alpha gives more +weight to gyro, but too high values cause drift; lower alpha gives more weight to accelerometer, which is more +sensitive to disturbances */ +float alpha = 0.98; +bool first = true; +// Keeps the arrival time of previous gyro frame +double last_ts_gyro = 0; +``` + + +The function `process_gyro` computes the change in rotation angle, based on gyroscope measurements. It accepts `gyro_data`, an `rs2_vector` containing measurements retrieved from gyroscope, and `ts`, the timestamp of the current frame from gyroscope stream. + +In order to compute the change in the direction of motion, we multiply gyroscope measurements by the length of the time period they correspond to (which equals the time passed since we processed the previous gyro frame). Then, we add or subtract from the current `theta` the retrieved angle difference. The sign is determined by the defined positive direction of the axis. + +Note that gyroscope data is ignored until accelerometer data arrives, since the initial position is retrieved from the accelerometer (and afterwards, gyroscope allows us to calculate the direction of motion ). + +```cpp +void process_gyro(rs2_vector gyro_data, double ts) +{ + if (first) // On the first iteration, use only data from accelerometer to set the camera's initial position + { + last_ts_gyro = ts; + return; + } + // Holds the change in angle, as calculated from gyro + float3 gyro_angle; + + // Initialize gyro_angle with data from gyro + gyro_angle.x = gyro_data.x; // Pitch + gyro_angle.y = gyro_data.y; // Yaw + gyro_angle.z = gyro_data.z; // Roll + + // Compute the difference between arrival times of previous and current gyro frames + double dt_gyro = (ts - last_ts_gyro) / 1000.0; + last_ts_gyro = ts; + + // Change in angle equals gyro measurements * time passed since last measurement + gyro_angle = gyro_angle * dt_gyro; + + // Apply the calculated change of angle to the current angle (theta) + std::lock_guard lock(theta_mtx); + theta.add(-gyro_angle.z, -gyro_angle.y, gyro_angle.x); +} +``` + + +The function `process_accel` computes the rotation angle from accelerometer data and updates the current `theta`. `accel_data` is an `rs2_vector` that holds the measurements retrieved from the accelerometer stream. + +The angles in the z and x axis are computed from acclerometer data, using trigonometric calculations. Note that motion around Y axis cannot be estimated using accelerometer. +```cpp +void process_accel(rs2_vector accel_data) +{ + // Holds the angle as calculated from accelerometer data + float3 accel_angle; + // Calculate rotation angle from accelerometer data + accel_angle.z = atan2(accel_data.y, accel_data.z); + accel_angle.x = atan2(accel_data.x, sqrt(accel_data.y * accel_data.y + accel_data.z * accel_data.z)); +``` + + +If it is the first time we handle accelerometer data, we intiailize `theta` with the angles computed above. `theta` in Y direction is set to `PI` (180 degrees), facing the user. +```cpp + // If it is the first iteration, set initial pose of camera according to accelerometer data + // (note the different handling for Y axis) + std::lock_guard lock(theta_mtx); + if (first) + { + first = false; + theta = accel_angle; + // Since we can't infer the angle around Y axis using accelerometer data, we'll use PI as a convetion + // for the initial pose + theta.y = PI; + } +``` + + +Otherwise, we use an approximate version of Complementary Filter to balance gyroscope and accelerometer results. Gyroscope gives generally accurate motion data, but it tends to drift, not returning to zero when the system goes back to its original position. Accelerometer, on the other hand, doesn't have this problem, but its signals are not as smooth and are easily affected by noises and disturbances. We use `alpha` to aggregate the data. New `theta` is the combination of the previous angle adjusted by difference computed from gyroscope data, and the angle calculated from accelerometer data. Note that this calculation does not apply to the Y component of `theta`, since it is measured by gyroscope only. +```cpp + else + { + /* + Apply Complementary Filter: + - "high-pass filter" = theta * alpha: allows short-duration signals to pass through while + filtering out signals that are steady over time, is used to cancel out drift. + - "low-pass filter" = accel * (1- alpha): lets through long term changes, filtering out short + term fluctuations + */ + theta.x = theta.x * alpha + accel_angle.x * (1 - alpha); + theta.z = theta.z * alpha + accel_angle.z * (1 - alpha); + } + } +``` + + +The main function handels frames arriving from IMU streams. + +First, we check that a device that supports IMU is connected by calling the function `check_imu_is_supported`. This function queries all sensors from all devices and checks if their profiles support IMU streams. If a device that supports the streams `RS2_STREAM_GYRO` and `RS2_STREAM_ACCEL` is not found, we return an error code. + +If the check passed successfully, we start the example. We declare the pipeline and configure it with `RS2_STREAM_ACCEL` and `RS2_STREAM_GYRO`. +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; + +// Add streams of gyro and accelerometer to configuration +cfg.enable_stream(RS2_STREAM_ACCEL, RS2_FORMAT_MOTION_XYZ32F); +cfg.enable_stream(RS2_STREAM_GYRO, RS2_FORMAT_MOTION_XYZ32F); +``` + +Next, we declare objects of the helper classes we defined above. +```cpp +// Declare object for rendering camera motion +camera_renderer camera; +// Declare object that handles camera pose calculations +rotation_estimator algo; +``` + + +To process frames from gyroscope and accelerometer streams asynchronously, we'll use pipeline's callback. This will ensure minimal latency. When a frame arrives, we cast it to `rs2::motion_frame`. If it's a gyro frame, we also find its timestamp using `motion.get_timestamp()`. Then, we can get the IMU data and call the corresponding function to calculate rotation angle. +```cpp +auto profile = pipe.start(cfg, [&](rs2::frame frame) +{ + // Cast the frame that arrived to motion frame + auto motion = frame.as(); + // If casting succeeded and the arrived frame is from gyro stream + if (motion && motion.get_profile().stream_type() == RS2_STREAM_GYRO && + motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F) + { + // Get the timestamp of the current frame + double ts = motion.get_timestamp(); + // Get gyro measurements + rs2_vector gyro_data = motion.get_motion_data(); + // Call function that computes the angle of motion based on the retrieved data + algo.process_gyro(gyro_data, ts); + } + // If casting succeeded and the arrived frame is from accelerometer stream + if (motion && motion.get_profile().stream_type() == RS2_STREAM_ACCEL && + motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F) + { + // Get accelerometer measurements + rs2_vector accel_data = motion.get_motion_data(); + // Call function that computes the angle of motion based on the retrieved data + algo.process_accel(accel_data); + } +}); +``` + + +The main loop renders the camera model, retrieving the current `theta` from the `algo` object in each iteration. +```cpp +while (app) +{ + // Configure scene, draw floor, handle manipultation by the user etc. + render_scene(app_state); + // Draw the camera according to the computed theta + camera.render_camera(algo.get_theta()); +} +``` diff --git a/examples/motion/rs-motion.cpp b/examples/motion/rs-motion.cpp new file mode 100644 index 00000000000..3ca1db59e92 --- /dev/null +++ b/examples/motion/rs-motion.cpp @@ -0,0 +1,297 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include "example.hpp" // Include short list of convenience functions for rendering +#include + +struct short3 +{ + uint16_t x, y, z; +}; + +#include "d435.h" + +void draw_axes() +{ + glLineWidth(2); + glBegin(GL_LINES); + // Draw x, y, z axes + glColor3f(1, 0, 0); glVertex3f(0, 0, 0); glVertex3f(-1, 0, 0); + glColor3f(0, 1, 0); glVertex3f(0, 0, 0); glVertex3f(0, -1, 0); + glColor3f(0, 0, 1); glVertex3f(0, 0, 0); glVertex3f(0, 0, 1); + glEnd(); + + glLineWidth(1); +} + +void draw_floor() +{ + glBegin(GL_LINES); + glColor4f(0.4f, 0.4f, 0.4f, 1.f); + // Render "floor" grid + for (int i = 0; i <= 8; i++) + { + glVertex3i(i - 4, 1, 0); + glVertex3i(i - 4, 1, 8); + glVertex3i(-4, 1, i); + glVertex3i(4, 1, i); + } + glEnd(); +} + +void render_scene(glfw_state app_state) +{ + glClearColor(0.0, 0.0, 0.0, 1.0); + glColor3f(1.0, 1.0, 1.0); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60.0, 4.0 / 3.0, 1, 40); + + glClear(GL_COLOR_BUFFER_BIT); + glMatrixMode(GL_MODELVIEW); + + glLoadIdentity(); + gluLookAt(1, 0, 5, 1, 0, 0, 0, -1, 0); + + glTranslatef(0, 0, +0.5f + app_state.offset_y*0.05f); + glRotated(app_state.pitch, -1, 0, 0); + glRotated(app_state.yaw, 0, 1, 0); + draw_floor(); +} + +class camera_renderer +{ + std::vector positions, normals; + std::vector indexes; +public: + // Initialize renderer with data needed to draw the camera + camera_renderer() + { + uncompress_d435_obj(positions, normals, indexes); + } + + // Takes the calculated angle as input and rotates the 3D camera model accordignly + void render_camera(float3 theta) + { + + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + + glPushMatrix(); + // Set the rotation, converting theta to degrees + glRotatef(theta.x * 180 / PI, 0, 0, -1); + glRotatef(theta.y * 180 / PI, 0, -1, 0); + glRotatef((theta.z - PI / 2) * 180 / PI, -1, 0, 0); + + draw_axes(); + + // Scale camera drawing + glScalef(0.035, 0.035, 0.035); + + glBegin(GL_TRIANGLES); + // Draw the camera + for (auto& i : indexes) + { + glVertex3fv(&positions[i.x].x); + glVertex3fv(&positions[i.y].x); + glVertex3fv(&positions[i.z].x); + glColor4f(0.05f, 0.05f, 0.05f, 0.3f); + } + glEnd(); + + glPopMatrix(); + + glDisable(GL_BLEND); + glFlush(); + } + +}; + +class rotation_estimator +{ + // theta is the angle of camera rotation in x, y and z components + float3 theta; + std::mutex theta_mtx; + /* alpha indicates the part that gyro and accelerometer take in computation of theta; higher alpha gives more weight to gyro, but too high + values cause drift; lower alpha gives more weight to accelerometer, which is more sensitive to disturbances */ + float alpha = 0.98; + bool first = true; + // Keeps the arrival time of previous gyro frame + double last_ts_gyro = 0; +public: + // Function to calculate the change in angle of motion based on data from gyro + void process_gyro(rs2_vector gyro_data, double ts) + { + if (first) // On the first iteration, use only data from accelerometer to set the camera's initial position + { + last_ts_gyro = ts; + return; + } + // Holds the change in angle, as calculated from gyro + float3 gyro_angle; + + // Initialize gyro_angle with data from gyro + gyro_angle.x = gyro_data.x; // Pitch + gyro_angle.y = gyro_data.y; // Yaw + gyro_angle.z = gyro_data.z; // Roll + + // Compute the difference between arrival times of previous and current gyro frames + double dt_gyro = (ts - last_ts_gyro) / 1000.0; + last_ts_gyro = ts; + + // Change in angle equals gyro measures * time passed since last measurement + gyro_angle = gyro_angle * dt_gyro; + + // Apply the calculated change of angle to the current angle (theta) + std::lock_guard lock(theta_mtx); + theta.add(-gyro_angle.z, -gyro_angle.y, gyro_angle.x); + } + + void process_accel(rs2_vector accel_data) + { + // Holds the angle as calculated from accelerometer data + float3 accel_angle; + + // Calculate rotation angle from accelerometer data + accel_angle.z = atan2(accel_data.y, accel_data.z); + accel_angle.x = atan2(accel_data.x, sqrt(accel_data.y * accel_data.y + accel_data.z * accel_data.z)); + + // If it is the first iteration, set initial pose of camera according to accelerometer data (note the different handling for Y axis) + std::lock_guard lock(theta_mtx); + if (first) + { + first = false; + theta = accel_angle; + // Since we can't infer the angle around Y axis using accelerometer data, we'll use PI as a convetion for the initial pose + theta.y = PI; + } + else + { + /* + Apply Complementary Filter: + - high-pass filter = theta * alpha: allows short-duration signals to pass through while filtering out signals + that are steady over time, is used to cancel out drift. + - low-pass filter = accel * (1- alpha): lets through long term changes, filtering out short term fluctuations + */ + theta.x = theta.x * alpha + accel_angle.x * (1 - alpha); + theta.z = theta.z * alpha + accel_angle.z * (1 - alpha); + } + } + + // Returns the current rotation angle + float3 get_theta() + { + std::lock_guard lock(theta_mtx); + return theta; + } +}; + + +bool check_imu_is_supported() +{ + bool found_gyro = false; + bool found_accel = false; + rs2::context ctx; + for (auto dev : ctx.query_devices()) + { + // The same device should support gyro and accel + found_gyro = false; + found_accel = false; + for (auto sensor : dev.query_sensors()) + { + for (auto profile : sensor.get_stream_profiles()) + { + if (profile.stream_type() == RS2_STREAM_GYRO) + found_gyro = true; + + if (profile.stream_type() == RS2_STREAM_ACCEL) + found_accel = true; + } + } + if (found_gyro && found_accel) + break; + } + return found_gyro && found_accel; +} + +int main(int argc, char * argv[]) try +{ + // Before running the example, check that a device supporting IMU is connected + if (!check_imu_is_supported()) + { + std::cerr << "Device supporting IMU (D435i) not found"; + return EXIT_FAILURE; + } + + // Initialize window for rendering + window app(1280, 720, "RealSense Motion Example"); + // Construct an object to manage view state + glfw_state app_state(0.0, 0.0); + // Register callbacks to allow manipulation of the view state + register_glfw_callbacks(app, app_state); + + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + + // Add streams of gyro and accelerometer to configuration + cfg.enable_stream(RS2_STREAM_ACCEL, RS2_FORMAT_MOTION_XYZ32F); + cfg.enable_stream(RS2_STREAM_GYRO, RS2_FORMAT_MOTION_XYZ32F); + + // Declare object for rendering camera motion + camera_renderer camera; + // Declare object that handles camera pose calculations + rotation_estimator algo; + + // Start streaming with the given configuration; + // Note that since we only allow IMU streams, only single frames are produced + auto profile = pipe.start(cfg, [&](rs2::frame frame) + { + // Cast the frame that arrived to motion frame + auto motion = frame.as(); + // If casting succeeded and the arrived frame is from gyro stream + if (motion && motion.get_profile().stream_type() == RS2_STREAM_GYRO && motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F) + { + // Get the timestamp of the current frame + double ts = motion.get_timestamp(); + // Get gyro measures + rs2_vector gyro_data = motion.get_motion_data(); + // Call function that computes the angle of motion based on the retrieved measures + algo.process_gyro(gyro_data, ts); + } + // If casting succeeded and the arrived frame is from accelerometer stream + if (motion && motion.get_profile().stream_type() == RS2_STREAM_ACCEL && motion.get_profile().format() == RS2_FORMAT_MOTION_XYZ32F) + { + // Get accelerometer measures + rs2_vector accel_data = motion.get_motion_data(); + // Call function that computes the angle of motion based on the retrieved measures + algo.process_accel(accel_data); + } + }); + + // Main loop + while (app) + { + // Configure scene, draw floor, handle manipultation by the user etc. + render_scene(app_state); + // Draw the camera according to the computed theta + camera.render_camera(algo.get_theta()); + } + // Stop the pipeline + pipe.stop(); + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/multicam/CMakeLists.txt b/examples/multicam/CMakeLists.txt index fe5f3054534..599040c417a 100644 --- a/examples/multicam/CMakeLists.txt +++ b/examples/multicam/CMakeLists.txt @@ -1,35 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesMulticam) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) - # multicam add_executable(rs-multicam rs-multicam.cpp ../example.hpp) + set_property(TARGET rs-multicam PROPERTY CXX_STANDARD 11) include_directories(rs-multicam ../) target_link_libraries(rs-multicam ${DEPENDENCIES}) - set_target_properties (rs-multicam PROPERTIES - FOLDER Examples - ) - - install( - TARGETS - - rs-multicam - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-multicam PROPERTIES FOLDER Examples) + install(TARGETS rs-multicam RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/multicam/readme.md b/examples/multicam/readme.md index 0704d344868..f1ec88eba52 100644 --- a/examples/multicam/readme.md +++ b/examples/multicam/readme.md @@ -2,20 +2,26 @@ ## Overview -The multicam sample demonstrates the ability to use the SDK for streaming and rendering multiple devices. +The multicam sample demonstrates the ability to use the SDK for streaming and rendering multiple devices simultaneously. ## Expected Output -The application should open a window that is split to a number of view ports (at least one per camera). -Each part of the split window should display a single stream from a different camera, and at the top left should appear the name of the stream. +The application opens and renders a mosaic view of all automatically-selected streams provided by the connected devices. (The selection is device-tailored and takes into account USB-type constrains). +Each tile displays an unique stream produced by a specific camera. The stream name appear at the top left. -In the following example we've used two Intel® RealSenseâ„¢ Depth Cameras pointing at different locations. +In the following snapshot we use five Intel® RealSenseâ„¢ devices to produce the mosaic: D435i, D415, SR300 and two T265 tracking cameras. Those are responsible to generate: + - Three Depth streams (D435i, D415, SR300) + - Three Color streams (D435i, D415, SR300) + - Two Pose streams (T265x2) + - Four Fisheye streams (T265x2) + - Six IMU streams (D435i, T265x2) -

screenshot gif

+ Alltogether the mosaic comprise of 18 simultaneous live feeds: -> Note: The above animation was cropped to display only the depth streams. +

screenshot gif

-## Code Overview + +## Code Overview As with any SDK application we include the Intel RealSense Cross Platform API: @@ -31,11 +37,6 @@ In this example we will also use the auxiliary library of `example.hpp`: `examples.hpp` lets us easily open a new window and prepare textures for rendering. -We define an additional class to help manage the state of the application and the connected devices: -```cpp -class device_container{ ... } -``` -We will elaborate on `device_container` later in this overview. The first object we use is a `window`, that will be used to display the images from all the cameras. @@ -46,173 +47,89 @@ window app(1280, 960, "CPP Multi-Camera Example"); The `window` class resides in `example.hpp` and lets us easily open a new window and prepare textures for rendering. -Next, we declare a `device_container ` object: +Next, we define the objects to be used in the example. + ```cpp -device_container connected_devices; -``` -This object encapsulates the connected cameras. It is used to manage the state of the program, and all of operations related to the cameras and rendering of frames. +rs2::context ctx; // Create librealsense context for managing devices -The last variable we declare is `rs2::context`. +std::map colorizers; // Declare map from device serial number to colorizer (utility class to convert depth data RGB colorspace) -```cpp -rs2::context ctx; // Create librealsense context for managing devices +std::vector pipelines; ``` -`context` encapsulates all of the devices and sensors, and provides some additional functionalities. -In this example we will ask the `context` to notify us on device changes (connections and disconnections). - -```cpp -// Register callback for tracking which devices are currently connected -ctx.set_devices_changed_callback([&](rs2::event_information& info) -{ - connected_devices.remove_devices(info); - for (auto&& dev : info.get_new_devices()) - { - connected_devices.enable_device(dev); - } -}); -``` -Using `set_devices_changed_callback` we can register any callable object that accepts `event_information&` as its parameter. -`event_information` contains a list of devices that were disconnected, and the list of the currently connected devices. -In this case, once the `context` notifies us about a change, we update `connected_devices` about the removed, and order it to start streaming from new devices. +The `rs2::context` encapsulates all of the devices and sensors, and provides some additional functionalities. We employ the `rs2::colorizer ` to convert depth data to RGB format. +In the example we use multiple `rs2::pipeline` objects, each controlling a lifetime of a single HW device. Similarly, we initialize a separate `rs2::colorizer` object for each device. We keep a mapping from the device's serial number to it's `rs2::colorizer` object, this way we'll be able to apply the correct `rs2::colorizer` to each frame. -After we registered to get notification from the `context` we query it for all connected devices, and add each one: +The example's flow starts with listing and activating all the connected Intel® RealSense™ devices: ```cpp -// Initial population of the device list -for (auto&& dev : ctx.query_devices()) // Query the list of connected RealSense devices +// Start a streaming pipe per each connected device +for (auto&& dev : ctx.query_devices()) { - connected_devices.enable_device(dev); + rs2::pipeline pipe(ctx); + rs2::config cfg; + cfg.enable_device(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)); + pipe.start(cfg); + pipelines.emplace_back(pipe); } ``` -`enable_device` adds the device to the internal list of devices in use, and starts it. Each device is wrapped with a `rs2::pipeline` to easily configure and start streaming from it. - -The `pipeline` holds a queue of the latest frames, and allows polling from this queue. We will use it later on. - -After adding the device, we begin our main loop of the application. -In this loop we will display all of the streams from all the devices. - -```cpp -while (app) // Application still alive? -{ -``` - -Every iteration we first try to poll all available frames from all device: +First, we allocate `rs2::pipeline` object per recognized device. Note that we share the `rs2::context` object between all `rs2::pipeline` instances. ```cpp - connected_devices.poll_frames(); +rs2::pipeline pipe(ctx); ``` -Diving into `device_container::poll_frames` : +To map the specific device to the newly-allocated pipeline we define `rs2::config` object, and assign it with the device's serial number. +Then we request `rs::pipeline` to start streaming and produce frames. ```cpp -void poll_frames() -{ - std::lock_guard lock(_mutex); - // Go over all device - for (auto&& view : _devices) - { - // Ask each pipeline if there are new frames available - rs2::frame f; - if (view.second.pipe.poll_for_frame(&f)) - { +pipe.start(cfg); ``` -In the above code, we go over all devices, which are actually `view_port`s. -`view_port` is a helper struct which encapsulates a pipeline, its latest polled frames, and 2 other utilities that allow converting depth stream to color (`colorizer`), and render frames to the window (`texture`). -For each pipeline, we try to poll for frames. +Since we do not specify explicit stream requests, each device is configured internally to run a set of predefined stream profiles recommended for that specific device. +After adding the device, we begin our main loop of the application: ```cpp - for (int i = 0; i < frameset.size(); i++) - { - rs2::frame new_frame = frameset[i]; - int stream_id = new_frame.get_profile().unique_id(); - view.second.frames_per_stream[stream_id] = view.second.colorize_frame(new_frame); //update view port with the new stream - } - } - } -} +while (app) ``` -A frameset is an wrapper to a `composite_frame`, which holds more than a single type of frame. -In the above code, we store each frame separately instead of the previously polled frame. -The stored frames will be used next to count the number of active streams and for rendering to screen. - -Back to main... -After polling for frames, we count the number of active streams and display an appropriate message to the user: -```cpp - auto total_number_of_streams = connected_devices.stream_count(); - if (total_number_of_streams == 0) - { - draw_text(std::max(0.f, (app.width() / 2) - no_cammera_message.length() * 3), app.height() / 2, no_cammera_message.c_str()); - continue; - } - if (connected_devices.device_count() == 1) - { - draw_text(0, 10, "Please connect another camera"); - } -``` -According to the number of streams we calculate the alignment of the view ports in the window: +Every application cycle we traverse the registered devices and retrieve all the available frames: ```cpp - int cols = std::ceil(std::sqrt(total_number_of_streams)); - int rows = std::ceil(total_number_of_streams / static_cast(cols)); - - float view_width = (app.width() / cols); - float view_height = (app.height() / rows); +// Collect the new frames from all the connected devices +std::vector new_frames; +for (auto &&pipe : pipelines) +{ + rs2::frameset fs; + if (pipe.poll_for_frames(&fs)) + { + for (rs2::frame& f : fs) + new_frames.emplace_back(f); + } +} ``` +Each `rs::pipeline` produces a synchronized collection of frames for all streams configured for its allocated device. These are contained in `rs2::frameset` object. +The `rs2::frameset` itself is an wrapper for a `composite_frame`, which can holds more than a single type of frame. -And finally call `render_textures`: +To minimize UI impact we're using non-blocking frames polling method: ```cpp - connected_devices.render_textures(cols, rows, view_width, view_height); + if (pipe.poll_for_frames(&fs)) ``` - - -In `device_container::render_textures` we go over all the stored frames: - +In order to simplify the presentation, we split those `rs2::frameset` containers into separate frames and store them with a standard C++ container for later use: ```cpp -void render_textures(int cols, int rows, float view_width, float view_height) -{ - std::lock_guard lock(_mutex); - int stream_no = 0; - for (auto&& view : _devices) - { - // For each device get its frames - for (auto&& id_to_frame : view.second.frames_per_stream) - { +for (rs2::frame& f : fs) + new_frames.emplace_back(f); ``` -If a new frame was stored, we upload it to the graphics buffer: - +The Depth data is delivered as `uint16_t` type which cannot be rendered directly, therefore we use `rs2::colorizer` to convert the depth representation into human-readable RGB map. We use `rs2::sensor_from_frame` function to retrieve the serial number of the frame's device. Then we can use that device's `rs2::colorizer` to process the frame: ```cpp - // If the frame is available - if (id_to_frame.second) - { - view.second.tex.upload(id_to_frame.second); - } +// Convert the newly-arrived frames to render-friendly format +for (const auto& frame : new_frames) +{ + // Get the serial number of the current frame's device + auto serial = rs2::sensor_from_frame(frame)->get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); + // Apply the colorizer of the matching device and store the colorized frame + render_frames[frame.get_profile().unique_id()] = colorizers[serial].process(frame); +} ``` -Next, we calculate the correct location of the current stream: +And finally send the collected frames to update the openGl mosaic: ```cpp - rect frame_location{ view_width * (stream_no % cols), view_height * (stream_no / cols), view_width, view_height }; -``` - -And finally, since this example shows multi-**camera** streaming, we verify that the stream is of video frames. -Note that the library supports streaming of video, motion information, and other. - -As with the `composite_frame` that we've seen earlier, a `frame` can also be a `rs2::video_frame` which represents a camera image and have additional properties such as width and height. -```cpp - if (rs2::video_frame vid_frame = id_to_frame.second.as()) - { -``` -We use the width and height of the frame to scale it into the view port: -```cpp - rect adjuested = frame_location.adjust_ratio({ static_cast(vid_frame.get_width()) - , static_cast(vid_frame.get_height()) }); + app.show(render_frames); ``` -And finally, call `show` with the position of the stream, to render it to screen. -```cpp - view.second.tex.show(adjuested); - stream_no++; - } - } - } -} -``` - diff --git a/examples/multicam/rs-multicam.cpp b/examples/multicam/rs-multicam.cpp index 4e359dec362..3c59bd91bbc 100644 --- a/examples/multicam/rs-multicam.cpp +++ b/examples/multicam/rs-multicam.cpp @@ -4,192 +4,61 @@ #include // Include RealSense Cross Platform API #include "example.hpp" // Include short list of convenience functions for rendering -#include #include -#include -#include // std::mutex, std::lock_guard -#include // std::ceil +#include -const std::string no_camera_message = "No camera connected, please connect 1 or more"; -const std::string platform_camera_name = "Platform Camera"; - -class device_container +int main(int argc, char * argv[]) try { - // Helper struct per pipeline - struct view_port - { - std::map frames_per_stream; - rs2::colorizer colorize_frame; - texture tex; - rs2::pipeline pipe; - rs2::pipeline_profile profile; - }; - -public: - - void enable_device(rs2::device dev) - { - std::string serial_number(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)); - std::lock_guard lock(_mutex); + // Create a simple OpenGL window for rendering: + window app(1280, 960, "CPP Multi-Camera Example"); - if (_devices.find(serial_number) != _devices.end()) - { - return; //already in - } + rs2::context ctx; // Create librealsense context for managing devices - // Ignoring platform cameras (webcams, etc..) - if (platform_camera_name == dev.get_info(RS2_CAMERA_INFO_NAME)) - { - return; - } - // Create a pipeline from the given device - rs2::pipeline p; - rs2::config c; - c.enable_device(serial_number); - // Start the pipeline with the configuration - rs2::pipeline_profile profile = p.start(c); - // Hold it internally - _devices.emplace(serial_number, view_port{ {},{},{}, p, profile }); + std::map colorizers; // Declare map from device serial number to colorizer (utility class to convert depth data RGB colorspace) - } + std::vector pipelines; - void remove_devices(const rs2::event_information& info) + // Start a streaming pipe per each connected device + for (auto&& dev : ctx.query_devices()) { - std::lock_guard lock(_mutex); - // Go over the list of devices and check if it was disconnected - auto itr = _devices.begin(); - while(itr != _devices.end()) - { - if (info.was_removed(itr->second.profile.get_device())) - { - itr = _devices.erase(itr); - } - else - { - ++itr; - } - } + rs2::pipeline pipe(ctx); + rs2::config cfg; + cfg.enable_device(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)); + pipe.start(cfg); + pipelines.emplace_back(pipe); + // Map from each device's serial number to a different colorizer + colorizers[dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)] = rs2::colorizer(); } - size_t device_count() - { - std::lock_guard lock(_mutex); - return _devices.size(); - } - - int stream_count() - { - std::lock_guard lock(_mutex); - int count = 0; - for (auto&& sn_to_dev : _devices) - { - for (auto&& stream : sn_to_dev.second.frames_per_stream) - { - if (stream.second) - { - count++; - } - } - } - return count; - } + // We'll keep track of the last frame of each stream available to make the presentation persistent + std::map render_frames; - void poll_frames() - { - std::lock_guard lock(_mutex); - // Go over all device - for (auto&& view : _devices) - { - // Ask each pipeline if there are new frames available - rs2::frameset frameset; - if (view.second.pipe.poll_for_frames(&frameset)) - { - for (int i = 0; i < frameset.size(); i++) - { - rs2::frame new_frame = frameset[i]; - int stream_id = new_frame.get_profile().unique_id(); - view.second.frames_per_stream[stream_id] = view.second.colorize_frame.process(new_frame); //update view port with the new stream - } - } - } - } - void render_textures(int cols, int rows, float view_width, float view_height) + // Main app loop + while (app) { - std::lock_guard lock(_mutex); - int stream_no = 0; - for (auto&& view : _devices) + // Collect the new frames from all the connected devices + std::vector new_frames; + for (auto &&pipe : pipelines) { - // For each device get its frames - for (auto&& id_to_frame : view.second.frames_per_stream) + rs2::frameset fs; + if (pipe.poll_for_frames(&fs)) { - // If the frame is available - if (id_to_frame.second) - { - view.second.tex.upload(id_to_frame.second); - } - rect frame_location{ view_width * (stream_no % cols), view_height * (stream_no / cols), view_width, view_height }; - if (rs2::video_frame vid_frame = id_to_frame.second.as()) - { - rect adjuested = frame_location.adjust_ratio({ static_cast(vid_frame.get_width()) - , static_cast(vid_frame.get_height()) }); - view.second.tex.show(adjuested); - stream_no++; - } + for (const rs2::frame& f : fs) + new_frames.emplace_back(f); } } - } -private: - std::mutex _mutex; - std::map _devices; -}; - - -int main(int argc, char * argv[]) try -{ - // Create a simple OpenGL window for rendering: - window app(1280, 960, "CPP Multi-Camera Example"); - device_container connected_devices; - - rs2::context ctx; // Create librealsense context for managing devices - - // Register callback for tracking which devices are currently connected - ctx.set_devices_changed_callback([&](rs2::event_information& info) - { - connected_devices.remove_devices(info); - for (auto&& dev : info.get_new_devices()) + // Convert the newly-arrived frames to render-friendly format + for (const auto& frame : new_frames) { - connected_devices.enable_device(dev); + // Get the serial number of the current frame's device + auto serial = rs2::sensor_from_frame(frame)->get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); + // Apply the colorizer of the matching device and store the colorized frame + render_frames[frame.get_profile().unique_id()] = colorizers[serial].process(frame); } - }); - - // Initial population of the device list - for (auto&& dev : ctx.query_devices()) // Query the list of connected RealSense devices - { - connected_devices.enable_device(dev); - } - - while (app) // Application still alive? - { - connected_devices.poll_frames(); - auto total_number_of_streams = connected_devices.stream_count(); - if (total_number_of_streams == 0) - { - draw_text(int(std::max(0.f, (app.width() / 2) - no_camera_message.length() * 3)), - int(app.height() / 2), no_camera_message.c_str()); - continue; - } - if (connected_devices.device_count() == 1) - { - draw_text(0, 10, "Please connect another camera"); - } - int cols = int(std::ceil(std::sqrt(total_number_of_streams))); - int rows = int(std::ceil(total_number_of_streams / static_cast(cols))); - - float view_width = (app.width() / cols); - float view_height = (app.height() / rows); - connected_devices.render_textures(cols, rows, view_width, view_height); + // Present all the collected frames with openGl mosaic + app.show(render_frames); } return EXIT_SUCCESS; diff --git a/examples/pointcloud/CMakeLists.txt b/examples/pointcloud/CMakeLists.txt index 9270b36f0b7..3d31cd275da 100644 --- a/examples/pointcloud/CMakeLists.txt +++ b/examples/pointcloud/CMakeLists.txt @@ -1,36 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesPointcloud) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) - #pointcloud add_executable(rs-pointcloud rs-pointcloud.cpp ../example.hpp) + set_property(TARGET rs-pointcloud PROPERTY CXX_STANDARD 11) target_link_libraries(rs-pointcloud ${DEPENDENCIES}) include_directories(rs-pointcloud ../) - set_target_properties (rs-pointcloud PROPERTIES - FOLDER Examples - ) - - install( - TARGETS - - rs-pointcloud - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-pointcloud PROPERTIES FOLDER Examples) + install(TARGETS rs-pointcloud RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/pointcloud/readme.md b/examples/pointcloud/readme.md index f7a7abdffed..a3a10408c7d 100644 --- a/examples/pointcloud/readme.md +++ b/examples/pointcloud/readme.md @@ -5,7 +5,8 @@ This sample demonstrates how to generate and visualize textured 3D pointcloud. ## Expected Output -The application should open a window with a pointcloud. Using your mouse, you should be able to interact with the pointcloud, rotating, zooming, and panning. +The application should open a window with a pointcloud. Using your mouse, you should be able to interact with the pointcloud rotating and zooming using the mouse. + ![expected output](https://raw.githubusercontent.com/wiki/IntelRealSense/librealsense/res/point-cloud-expected.png) ## Code Overview diff --git a/examples/pointcloud/rs-pointcloud.cpp b/examples/pointcloud/rs-pointcloud.cpp index 80b90ebf842..bd31199bd26 100644 --- a/examples/pointcloud/rs-pointcloud.cpp +++ b/examples/pointcloud/rs-pointcloud.cpp @@ -33,11 +33,6 @@ int main(int argc, char * argv[]) try // Wait for the next set of frames from the camera auto frames = pipe.wait_for_frames(); - auto depth = frames.get_depth_frame(); - - // Generate the pointcloud and texture mappings - points = pc.calculate(depth); - auto color = frames.get_color_frame(); // For cameras that don't have RGB sensor, we'll map the pointcloud to infrared instead of color @@ -47,6 +42,11 @@ int main(int argc, char * argv[]) try // Tell pointcloud object to map to this color frame pc.map_to(color); + auto depth = frames.get_depth_frame(); + + // Generate the pointcloud and texture mappings + points = pc.calculate(depth); + // Upload the color frame to OpenGL app_state.tex.upload(color); diff --git a/examples/pose-and-image/CMakeLists.txt b/examples/pose-and-image/CMakeLists.txt new file mode 100644 index 00000000000..993b078dda1 --- /dev/null +++ b/examples/pose-and-image/CMakeLists.txt @@ -0,0 +1,25 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesPoseAndImage) + +# Save the command line compile commands in the build output +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +endif() + +if(BUILD_EXAMPLES) + add_executable(rs-pose-and-image rs-pose-and-image.cpp) + target_link_libraries(rs-pose-and-image ${DEPENDENCIES}) + set_target_properties (rs-pose-and-image PROPERTIES FOLDER Examples) + install(TARGETS rs-pose-and-image RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/pose-and-image/readme.md b/examples/pose-and-image/readme.md new file mode 100644 index 00000000000..b3688699a8b --- /dev/null +++ b/examples/pose-and-image/readme.md @@ -0,0 +1,82 @@ +# rs-pose-and-image Sample + +In order to run this example, a T265 is required. + +## Overview + +This sample demonstrates streaming pose data at 200Hz and image data at 30Hz using an asynchronous pipeline configured with a callback. + +## Expected Output + +The application will calculate and print the number of samples received from each sensor per second. + +## Code Overview + +We start by configuring the pipeline to pose stream, similar to `rs-pose-predict`: +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Add pose stream +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); +// Enable both image streams +// Note: It is not currently possible to enable only one +cfg.enable_stream(RS2_STREAM_FISHEYE, 1, RS2_FORMAT_Y8); +cfg.enable_stream(RS2_STREAM_FISHEYE, 2, RS2_FORMAT_Y8); +``` + +Next, we define new frame callback ([learn more about callback API](../callback)) that executes for every new pose or frameset event from the sensor. The implementation of the callback is simple, we just want to keep track of how many of each type of frame are received. + +Approximately once per second, we print the number of poses received in that second. + +```cpp +// The callback is executed on a sensor thread and can be called simultaneously from multiple sensors +// Therefore any modification to common memory should be done under lock +std::mutex data_mutex; +uint64_t pose_counter = 0; +uint64_t frame_counter = 0; +bool first_data = true; +auto last_print = std::chrono::system_clock::now(); +auto callback = [&](const rs2::frame& frame) +{ + std::lock_guard lock(data_mutex); + // Only start measuring time elapsed once we have received the + // first piece of data + if (first_data) { + first_data = false; + last_print = std::chrono::system_clock::now(); + } + + if (auto fp = frame.as()) { + pose_counter++; + } + else if (auto fs = frame.as()) { + frame_counter++; + } + + // Print the approximate pose and image rates once per second + auto now = std::chrono::system_clock::now(); + if (now - last_print >= std::chrono::seconds(1)) { + std::cout << "\r" << std::setprecision(0) << std::fixed + << "Pose rate: " << pose_counter << " " + << "Image rate: " << frame_counter << std::flush; + pose_counter = 0; + frame_counter = 0; + last_print = now; + } +}; +``` + +Two things to note: +1. Image frames arrive as a coordinated pair (a `rs2::frameset`) +2. This is approximate because we use the system time to decide when the interval being measured starts and stops (`now - last_print >= std::chrono::seconds(1)`) and because it measures the number of items received in the interval rather than using the data timestamps, so any system latency can make the number change a little bit. + +Now we can start the pipeline with the callback, and the main thread can sleep until we are done + +```cpp +// Sleep this thread until we are done +while(true) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); +} +``` diff --git a/examples/pose-and-image/rs-pose-and-image.cpp b/examples/pose-and-image/rs-pose-and-image.cpp new file mode 100644 index 00000000000..9c1329c90a4 --- /dev/null +++ b/examples/pose-and-image/rs-pose-and-image.cpp @@ -0,0 +1,80 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include +#include +#include +#include + +int main(int argc, char * argv[]) try +{ + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Add pose stream + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + // Enable both image streams + // Note: It is not currently possible to enable only one + cfg.enable_stream(RS2_STREAM_FISHEYE, 1, RS2_FORMAT_Y8); + cfg.enable_stream(RS2_STREAM_FISHEYE, 2, RS2_FORMAT_Y8); + + // Define frame callback + + // The callback is executed on a sensor thread and can be called simultaneously from multiple sensors + // Therefore any modification to common memory should be done under lock + std::mutex data_mutex; + uint64_t pose_counter = 0; + uint64_t frame_counter = 0; + bool first_data = true; + auto last_print = std::chrono::system_clock::now(); + auto callback = [&](const rs2::frame& frame) + { + std::lock_guard lock(data_mutex); + // Only start measuring time elapsed once we have received the + // first piece of data + if (first_data) { + first_data = false; + last_print = std::chrono::system_clock::now(); + } + + if (auto fp = frame.as()) { + pose_counter++; + } + else if (auto fs = frame.as()) { + frame_counter++; + } + + // Print the approximate pose and image rates once per second + auto now = std::chrono::system_clock::now(); + if (now - last_print >= std::chrono::seconds(1)) { + std::cout << "\r" << std::setprecision(0) << std::fixed + << "Pose rate: " << pose_counter << " " + << "Image rate: " << frame_counter << std::flush; + pose_counter = 0; + frame_counter = 0; + last_print = now; + } + }; + + // Start streaming through the callback + rs2::pipeline_profile profiles = pipe.start(cfg, callback); + + // Sleep this thread until we are done + while(true) { + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/pose-apriltag/CMakeLists.txt b/examples/pose-apriltag/CMakeLists.txt new file mode 100644 index 00000000000..65f14e1a57a --- /dev/null +++ b/examples/pose-apriltag/CMakeLists.txt @@ -0,0 +1,29 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) +project(rs-pose-apriltag) + +if(BUILD_EXAMPLES) + + find_path(APRILTAG_INC NAMES apriltag.h PATH_SUFFIXES apriltag) + find_library(APRILTAG_LIB apriltag) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(apriltag DEFAULT_MSG APRILTAG_INC APRILTAG_LIB) + if(APRILTAG_FOUND AND NOT TARGET apriltag) + add_library(apriltag INTERFACE) + target_include_directories(apriltag INTERFACE ${APRILTAG_INC}) + target_link_libraries(apriltag INTERFACE ${APRILTAG_LIB}) + endif() + + if(TARGET apriltag) + add_executable(rs-pose-apriltag rs-pose-apriltag.cpp) + set_property(TARGET rs-pose-apriltag PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-pose-apriltag ${DEPENDENCIES} apriltag) + set_target_properties (rs-pose-apriltag PROPERTIES FOLDER Examples) + install(TARGETS rs-pose-apriltag RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + else() + message(STATUS "Unable to find apriltag library, skipping pose-apriltag example") + endif() + +endif() diff --git a/examples/pose-apriltag/readme.md b/examples/pose-apriltag/readme.md new file mode 100644 index 00000000000..47809f6fc2c --- /dev/null +++ b/examples/pose-apriltag/readme.md @@ -0,0 +1,100 @@ +# rs-pose-apriltag Sample + +In order to run this example, a T265 is required. + +## Overview + +[Apriltags](https://april.eecs.umich.edu/software/apriltag) are fiducial markers that have been designed to be easily detected in images (other fiducial markers include QR codes and ARTags). Once detected, these markers can be used for a variety of applications. + +This sample demonstrates how to detect the pose of a Apriltag of a known size that is visible in a T265 fisheye frame relative to the camera. Apriltags are detected on every 6th frame (at 5Hz). The sample uses `36h11` tags, though it can be easily modified to work with any tag supported by the Apriltag library. + +A sample `36h11` tag image (tag size is 0.144m on a letter size paper) pdf can be downloaded [here](./tag36_11_00000_out180mm_in144mm.pdf), and other tag images can be found [here](https://github.com/AprilRobotics/apriltag-imgs). + +## Dependency + +This sample requires the [Apriltag library 3.1.1](https://github.com/AprilRobotics/apriltag/tree/3.1.1) installed in the default location suggested by the library or a path specified in cmake variable `CMAKE_PREFIX_PATH`. + +### Installing Apriltag library in a local directory + +First, download [Apriltag library 3.1.1](https://github.com/AprilRobotics/apriltag/tree/3.1.1) and unpack it in a local directory, here we use `~/apriltag-3.1.1` and install it in `~/apriltag`: + +``` +tar -xzf apriltag-3.1.1.tar.gz +mkdir apriltag-build +cd apriltag-build +cmake -DCMAKE_INSTALL_PREFIX=~/apriltag/ ../apriltag-3.1.1 +make install +``` + +Next, switch to your librealsense build directory and add `-DCMAKE_PREFIX_PATH` to your cmake like to tell librealsense where to find the Apriltag library: + +``` +cmake -DCMAKE_PREFIX_PATH=~/apriltag +``` + +Build as you normally would, and pose-apriltag should find the +Apriltag library and build. + +## Expected Output + +The application will calculate and print the detected Apriltag pose relative to the camera. + +## Code Overview + +We start by configuring the pipeline to pose stream, similar to `rs-pose-predict`: +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Add pose stream +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); +// Enable both image streams +// Note: It is not currently possible to enable only one +cfg.enable_stream(RS2_STREAM_FISHEYE, 1, RS2_FORMAT_Y8); +cfg.enable_stream(RS2_STREAM_FISHEYE, 2, RS2_FORMAT_Y8); +``` + +In each iteration, while the application is alive, we wait for new frames from the camera. From the frameset that arrives we get the fisheye frame. +```cpp +// Main loop +while (true) +{ + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + auto fisheye_frame = frames.get_fisheye_frame(fisheye_sensor_idx); +``` + +For every 6th fisheye frame, we run Apriltag detection on that frame and compute the relative pose of the detected tag. +The detection will be done on the separate thread so we need to keep the fisheye frame from the main loop until the detection is completed. +```cpp + if(frame_number % 6 == 0) + { + fisheye_frame.keep(); + std::async(std::launch::async, [img=fisheye_frame,fn=frame_number,pose=camera_pose,&tag_manager](){ + auto tags = tag_manager.detect((unsigned char*)img.get_data(), &pose); +``` + +For each detected Apriltag, we print out the Apriltag pose relative to the fisheye lens as well as the Apriltag pose in the same coordinate of the regular T265 output pose coordinate when T265 output has high confidence. +```cpp + for(int t=0; t +#include +#include +#include +#include +#include +#include +#include + +#include "apriltag.h" +#include "apriltag_pose.h" +#include "common/homography.h" +#include "tag36h11.h" + +#define FORMAT_VALUE std::fixed << std::right << std::setprecision(3) << std::setw(6) + +void homography_compute2(const double c[4][4], matd_t* H); + +typedef rs2_extrinsics transformation; +static transformation to_transform(const double R[9], const double t[3]) { + transformation tf; + for(int r=0; r<9; ++r){ tf.rotation[r] = static_cast(R[r]); } + for(int i=0; i<3; ++i){ tf.translation[i] = static_cast(t[i]); } + return tf; +} + +static transformation to_transform(const rs2_quaternion& q, const rs2_vector& t) { + transformation tf; + tf.rotation[0] = q.w * q.w + q.x * q.x - q.y * q.y - q.z * q.z; + tf.rotation[1] = 2 * (q.x * q.y - q.w * q.z); + tf.rotation[2] = 2 * (q.x * q.z + q.w * q.y); + tf.rotation[3] = 2 * (q.x * q.y + q.w * q.z); + tf.rotation[4] = q.w * q.w - q.x * q.x + q.y * q.y - q.z * q.z; + tf.rotation[5] = 2 * (q.y * q.z - q.w * q.x); + tf.rotation[6] = 2 * (q.x * q.z - q.w * q.y); + tf.rotation[7] = 2 * (q.y * q.z + q.w * q.x); + tf.rotation[8] = q.w * q.w - q.x * q.x - q.y * q.y + q.z * q.z; + tf.translation[0] = t.x; + tf.translation[1] = t.y; + tf.translation[2] = t.z; + return tf; +} + +static transformation operator*(const transformation& a, const transformation& b) { + transformation tf; + tf.rotation[0] = a.rotation[0] * b.rotation[0] + a.rotation[1] * b.rotation[3] + a.rotation[2] * b.rotation[6]; + tf.rotation[1] = a.rotation[0] * b.rotation[1] + a.rotation[1] * b.rotation[4] + a.rotation[2] * b.rotation[7]; + tf.rotation[2] = a.rotation[0] * b.rotation[2] + a.rotation[1] * b.rotation[5] + a.rotation[2] * b.rotation[8]; + tf.rotation[3] = a.rotation[3] * b.rotation[0] + a.rotation[4] * b.rotation[3] + a.rotation[5] * b.rotation[6]; + tf.rotation[4] = a.rotation[3] * b.rotation[1] + a.rotation[4] * b.rotation[4] + a.rotation[5] * b.rotation[7]; + tf.rotation[5] = a.rotation[3] * b.rotation[2] + a.rotation[4] * b.rotation[5] + a.rotation[5] * b.rotation[8]; + tf.rotation[6] = a.rotation[6] * b.rotation[0] + a.rotation[7] * b.rotation[3] + a.rotation[8] * b.rotation[6]; + tf.rotation[7] = a.rotation[6] * b.rotation[1] + a.rotation[7] * b.rotation[4] + a.rotation[8] * b.rotation[7]; + tf.rotation[8] = a.rotation[6] * b.rotation[2] + a.rotation[7] * b.rotation[5] + a.rotation[8] * b.rotation[8]; + + tf.translation[0] = a.rotation[0] * b.translation[0] + a.rotation[1] * b.translation[1] + a.rotation[2] * b.translation[2] + a.translation[0]; + tf.translation[1] = a.rotation[3] * b.translation[0] + a.rotation[4] * b.translation[1] + a.rotation[5] * b.translation[2] + a.translation[1]; + tf.translation[2] = a.rotation[6] * b.translation[0] + a.rotation[7] * b.translation[1] + a.rotation[8] * b.translation[2] + a.translation[2]; + return tf; +} + +static std::string print(const transformation& tf) { + std::stringstream ss; ss << "R:"; + for(const auto& r : tf.rotation){ ss << FORMAT_VALUE << r << ","; } + ss << "|t:"; + for(const auto& t : tf.translation){ ss << FORMAT_VALUE << t << ","; } + return ss.str(); +} + +class apriltag_manager { +public: + apriltag_manager(const rs2_intrinsics& _intr, const rs2_extrinsics _extr_b2f, double tagsize) + : intr(_intr), tf_body_to_fisheye(_extr_b2f) { + tf = tag36h11_create(); + td = apriltag_detector_create(); + apriltag_detector_add_family(td, tf); + + td->quad_decimate = 1.0; + td->quad_sigma = 0.0; + td->nthreads = 1; + td->debug = 0; + td->refine_edges = 1; + + info.tagsize = tagsize; + info.fx = info.fy = 1; //undistorted image with focal length = 1 + info.cx = info.cy = 0; //undistorted image with principal point at (0,0) + } + ~apriltag_manager() { + apriltag_detector_destroy(td); + tag36h11_destroy(tf); + } + + struct apriltag_array_t { + std::shared_ptr det; + std::vector> pose_raw; //tag pose from library + std::vector pose_in_camera; //tag pose in camera coordinate + std::vector pose_in_world; //tag pose in world coordinate + + apriltag_detection_t* get(int t) const { apriltag_detection_t* ptr; zarray_get(det.get(), t, &ptr); return ptr; } + int get_id(int t) const { return get(t)->id; } + int size() const { return pose_in_camera.size(); } + }; + + static void apriltag_pose_destroy(apriltag_pose_t* p){ matd_destroy(p->R); matd_destroy(p->t); delete p;} + + apriltag_array_t detect(unsigned char* gray, const rs2_pose* camera_pose) const { + image_u8_t img{ intr.width, intr.height, intr.width, gray}; + + apriltag_array_t tags; + tags.det = std::shared_ptr(apriltag_detector_detect(td, &img), apriltag_detections_destroy); + tags.pose_in_camera.resize(zarray_size(tags.det.get())); + tags.pose_raw.resize(tags.size()); + + auto info_ = info; + for(int t=0, num_of_tags=(int)tags.size(); t(new apriltag_pose_t(), apriltag_pose_destroy); + + undistort(*(info_.det = tags.get(t)), intr); //recompute tag corners on an undistorted image focal length = 1 + //estimate_tag_pose(&info_, tags.pose_raw[t].get()); //(alternative) estimate tag pose in camera coordinate + estimate_pose_for_tag_homography(&info_, tags.pose_raw[t].get()); //estimate tag pose in camera coordinate + for(auto c : {1,2,4,5,7,8}){ tags.pose_raw[t]->R->data[c] *= -1; } + + tags.pose_in_camera[t] = to_transform(tags.pose_raw[t]->R->data, tags.pose_raw[t]->t->data); + } + + if(camera_pose){ compute_tag_pose_in_world(tags, *camera_pose); } + return tags; + } + +protected: + apriltag_family_t *tf; + apriltag_detector_t *td; + apriltag_detection_info_t info; + rs2_intrinsics intr; + transformation tf_body_to_fisheye; + + void compute_tag_pose_in_world(apriltag_array_t& tags, const rs2_pose& camera_world_pose) const { + tags.pose_in_world.resize(tags.size()); + for(int t=0, num_of_tags=tags.size(); t 1){ cfg.enable_device_from_file(argv[1]); } + + // Start pipe and get camera calibrations + const int fisheye_sensor_idx = 1; //for the left fisheye lens of T265 + auto pipe_profile = pipe.start(cfg); + auto fisheye_stream = pipe_profile.get_stream(RS2_STREAM_FISHEYE, fisheye_sensor_idx); + auto fisheye_intrinsics = fisheye_stream.as().get_intrinsics(); + auto body_fisheye_extr = fisheye_stream.get_extrinsics_to(pipe_profile.get_stream(RS2_STREAM_POSE)); + const double tag_size_m = 0.144; // The expected size of the tag in meters. This is required to get the relative pose + + // Create an Apriltag detection manager + apriltag_manager tag_manager(fisheye_intrinsics, body_fisheye_extr, tag_size_m); + + // Main loop + while (true) + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + auto fisheye_frame = frames.get_fisheye_frame(fisheye_sensor_idx); + auto frame_number = fisheye_frame.get_frame_number(); + auto camera_pose = frames.get_pose_frame().get_pose_data(); + + if(frame_number % 6 == 0) + { + fisheye_frame.keep(); + + std::async(std::launch::async, std::bind([&tag_manager](rs2::frame img, int fn, rs2_pose pose){ + auto tags = tag_manager.detect((unsigned char*)img.get_data(), &pose); + + if(tags.pose_in_camera.size() == 0) { + std::cout << "frame " << fn << "|no Apriltag detections" << std::endl; + } + for(int t=0; t max_val) { + max_val = val; + max_val_idx = row; + } + } + + if (max_val < epsilon) { + fprintf(stderr, "WRN: Matrix is singular.\n"); + } + + // Swap to get best row. + if (max_val_idx != col) { + for (int i = col; i < 9; i++) { + double tmp = A[col*9 + i]; + A[col*9 + i] = A[max_val_idx*9 + i]; + A[max_val_idx*9 + i] = tmp; + } + } + + // Do eliminate. + for (int i = col + 1; i < 8; i++) { + double f = A[i*9 + col]/A[col*9 + col]; + A[i*9 + col] = 0; + for (int j = col + 1; j < 9; j++) { + A[i*9 + j] -= f*A[col*9 + j]; + } + } + } + + // Back solve. + for (int col = 7; col >=0; col--) { + double sum = 0; + for (int i = col + 1; i < 8; i++) { + sum += A[col*9 + i]*A[i*9 + 8]; + } + A[col*9 + 8] = (A[col*9 + 8] - sum)/A[col*9 + col]; + } + H->data[0] = A[8]; + H->data[1] = A[17]; + H->data[2] = A[26]; + H->data[3] = A[35]; + H->data[4] = A[44]; + H->data[5] = A[53]; + H->data[6] = A[62]; + H->data[7] = A[71]; + H->data[8] = 1; +} diff --git a/examples/pose-apriltag/tag36_11_00000_out180mm_in144mm.pdf b/examples/pose-apriltag/tag36_11_00000_out180mm_in144mm.pdf new file mode 100644 index 00000000000..65c3ccefc33 Binary files /dev/null and b/examples/pose-apriltag/tag36_11_00000_out180mm_in144mm.pdf differ diff --git a/examples/pose-predict/CMakeLists.txt b/examples/pose-predict/CMakeLists.txt new file mode 100644 index 00000000000..b23297fc6e1 --- /dev/null +++ b/examples/pose-predict/CMakeLists.txt @@ -0,0 +1,14 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesPosePredict) + +if(BUILD_EXAMPLES) + add_executable(rs-pose-predict rs-pose-predict.cpp) + set_property(TARGET rs-pose-predict PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-pose-predict ${DEPENDENCIES}) + set_target_properties (rs-pose-predict PROPERTIES FOLDER Examples) + install(TARGETS rs-pose-predict RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/pose-predict/readme.md b/examples/pose-predict/readme.md new file mode 100644 index 00000000000..7a0d538543d --- /dev/null +++ b/examples/pose-predict/readme.md @@ -0,0 +1,51 @@ +# rs-pose-predict Sample + +> In order to run this example, a device supporting pose stream (T265) is required. + +## Overview +This sample builds on the concepts presented in [`rs-pose` example](../pose/) and shows how pose data can be used asynchronously to implement simple pose prediction. + +## Expected Output +The application should open a window in which it prints the **predicted** x, y, z values of the device position relative to its initial position. + +## Code Overview + +We start by configuring the pipeline to pose stream, similar to previous example: +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Add pose stream +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); +``` + +Next, we define new frame callback ([learn more about callback API](../callback)) that would execute for every new pose event from the sensor. +```cpp +// Define frame callback +// The callback is executed on a sensor thread and can be called simultaneously from multiple sensors +// Therefore any modification to common memory should be done under lock +std::mutex mutex; +auto callback = [&](const rs2::frame& frame) +{ + std::lock_guard lock(mutex); + if (rs2::pose_frame fp = frame.as()) { + rs2_pose pose_data = fp.get_pose_data(); + rs2_pose predicted_pose = predict_pose(pose_data, dt_us); + std::cout << pose_data.tracker_confidence << " : " << std::setprecision(3) << std::fixed << + predicted_pose.translation.x << " " << + predicted_pose.translation.y << " " << + predicted_pose.translation.z << " (meters)\r"; + } +}; +``` + +Once pipeline is started with a callback, main thread can go to sleep until termination signal is received: +```cpp +// Start streaming through the callback with default recommended configuration +rs2::pipeline_profile profiles = pipe.start(cfg, callback); +std::cout << "started thread\n"; +while(true) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); +} +``` diff --git a/examples/pose-predict/rs-pose-predict.cpp b/examples/pose-predict/rs-pose-predict.cpp new file mode 100644 index 00000000000..cf275134954 --- /dev/null +++ b/examples/pose-predict/rs-pose-predict.cpp @@ -0,0 +1,96 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include +#include +#include +#include + +#include +#include + +inline rs2_quaternion quaternion_exp(rs2_vector v) +{ + float x = v.x/2, y = v.y/2, z = v.z/2, th2, th = sqrtf(th2 = x*x + y*y + z*z); + float c = cosf(th), s = th2 < sqrtf(120*FLT_EPSILON) ? 1-th2/6 : sinf(th)/th; + rs2_quaternion Q = { s*x, s*y, s*z, c }; + return Q; +} + +inline rs2_quaternion quaternion_multiply(rs2_quaternion a, rs2_quaternion b) +{ + rs2_quaternion Q = { + a.x * b.w + a.w * b.x - a.z * b.y + a.y * b.z, + a.y * b.w + a.z * b.x + a.w * b.y - a.x * b.z, + a.z * b.w - a.y * b.x + a.x * b.y + a.w * b.z, + a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z, + }; + return Q; +} + +rs2_pose predict_pose(rs2_pose & pose, float dt_s) +{ + rs2_pose P = pose; + P.translation.x = dt_s * (dt_s/2 * pose.acceleration.x + pose.velocity.x) + pose.translation.x; + P.translation.y = dt_s * (dt_s/2 * pose.acceleration.y + pose.velocity.y) + pose.translation.y; + P.translation.z = dt_s * (dt_s/2 * pose.acceleration.z + pose.velocity.z) + pose.translation.z; + rs2_vector W = { + dt_s * (dt_s/2 * pose.angular_acceleration.x + pose.angular_velocity.x), + dt_s * (dt_s/2 * pose.angular_acceleration.y + pose.angular_velocity.y), + dt_s * (dt_s/2 * pose.angular_acceleration.z + pose.angular_velocity.z), + }; + P.rotation = quaternion_multiply(quaternion_exp(W), pose.rotation); + return P; +} + +int main(int argc, char * argv[]) try +{ + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Add pose stream + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + + // Define frame callback + // The callback is executed on a sensor thread and can be called simultaneously from multiple sensors + // Therefore any modification to common memory should be done under lock + std::mutex mutex; + auto callback = [&](const rs2::frame& frame) + { + std::lock_guard lock(mutex); + if (rs2::pose_frame fp = frame.as()) { + rs2_pose pose_data = fp.get_pose_data(); + auto now = std::chrono::system_clock::now().time_since_epoch(); + double now_ms = std::chrono::duration_cast(now).count(); + double pose_time_ms = fp.get_timestamp(); + float dt_s = static_cast(std::max(0., (now_ms - pose_time_ms)/1000.)); + rs2_pose predicted_pose = predict_pose(pose_data, dt_s); + std::cout << "Predicted " << std::fixed << std::setprecision(3) << dt_s*1000 << "ms " << + "Confidence: " << pose_data.tracker_confidence << " T: " << + predicted_pose.translation.x << " " << + predicted_pose.translation.y << " " << + predicted_pose.translation.z << " (meters) \r"; + } + }; + + // Start streaming through the callback with default recommended configuration + rs2::pipeline_profile profiles = pipe.start(cfg, callback); + std::cout << "started thread\n"; + while(true) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/pose/CMakeLists.txt b/examples/pose/CMakeLists.txt new file mode 100644 index 00000000000..7e71cabc3a3 --- /dev/null +++ b/examples/pose/CMakeLists.txt @@ -0,0 +1,14 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesPose) + +if(BUILD_EXAMPLES) + add_executable(rs-pose rs-pose.cpp) + set_property(TARGET rs-pose PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-pose ${DEPENDENCIES}) + set_target_properties (rs-pose PROPERTIES FOLDER Examples) + install(TARGETS rs-pose RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/pose/readme.md b/examples/pose/readme.md new file mode 100644 index 00000000000..b190f344716 --- /dev/null +++ b/examples/pose/readme.md @@ -0,0 +1,62 @@ +# rs-pose Sample + +> In order to run this example, a device supporting pose stream (T265) is required. + +## Overview +This sample demonstrates how to obtain pose data from a T265 device. + +## Expected Output +The application should open a window in which it prints the current x, y, z values of the device position relative to the initial position. + +## Code Overview + +First, we include the Intel® RealSense™ Cross-Platform API. +All but advanced functionality is provided through a single header: +```cpp +#include // Include RealSense Cross Platform API +``` + +We declare the pipeline and configure it with `RS2_STREAM_POSE` and `RS2_FORMAT_6DOF`. Then, we start the pipeline. +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Add pose stream +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); +// Start pipeline with chosen configuration +pipe.start(cfg); +``` + +In each iteration, while the application is alive, we wait for new frames from the camera. From the frameset that arrives we get the frame of `RS2_STREAM_POSE` type. +```cpp +// Main loop +while (true) +{ + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the pose stream + auto f = frames.first_or_default(RS2_STREAM_POSE); +``` + +We cast the frame that arrives to `pose_frame` in order to access its `pose_data`. +```cpp +// Cast the frame to pose_frame and get its data +auto pose_data = f.as().get_pose_data(); +``` + +Once we have `pose_data`, we can query information on the camera position and movement: +- **Translation** (in meters, relative to initial position) +- **Velocity** (in meter/sec) +- **Rotation** (as represented in quaternion rotation, relative to initial position) +- **Angular velocity** (in radians/sec) +- **Angular acceleration** (in radians/sec^2) +- **Tracker confidence** (pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High) +- **Mapper confidence** (pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High) + +In this example, we obtain the translation data and print it to the console. +```cpp +// Print the x, y, z values of the translation, relative to initial position +std::cout << "\r" << "Device Position: " << std::setprecision(3) << std::fixed << pose_data.translation.x << " " << + pose_data.translation.y << " " << pose_data.translation.z << " (meters)"; +``` diff --git a/examples/pose/rs-pose.cpp b/examples/pose/rs-pose.cpp new file mode 100644 index 00000000000..285a83a311b --- /dev/null +++ b/examples/pose/rs-pose.cpp @@ -0,0 +1,44 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include +#include +#include + +int main(int argc, char * argv[]) try +{ + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Add pose stream + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + // Start pipeline with chosen configuration + pipe.start(cfg); + + // Main loop + while (true) + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the pose stream + auto f = frames.first_or_default(RS2_STREAM_POSE); + // Cast the frame to pose_frame and get its data + auto pose_data = f.as().get_pose_data(); + + // Print the x, y, z values of the translation, relative to initial position + std::cout << "\r" << "Device Position: " << std::setprecision(3) << std::fixed << pose_data.translation.x << " " << + pose_data.translation.y << " " << pose_data.translation.z << " (meters)"; + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/post-processing/CMakeLists.txt b/examples/post-processing/CMakeLists.txt index ed74a0dabb2..4f6e21a830c 100644 --- a/examples/post-processing/CMakeLists.txt +++ b/examples/post-processing/CMakeLists.txt @@ -1,34 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesPost-Processing) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) add_executable(rs-post-processing rs-post-processing.cpp ../example.hpp ../../third-party/imgui/imgui.cpp ../../third-party/imgui/imgui_draw.cpp ../../third-party/imgui/imgui_impl_glfw.cpp) + set_property(TARGET rs-post-processing PROPERTY CXX_STANDARD 11) target_link_libraries(rs-post-processing ${DEPENDENCIES}) include_directories(rs-post-processing ../ ../../third-party/tclap/include ../../third-party/imgui) - set_target_properties (rs-post-processing PROPERTIES - FOLDER "Examples" - ) - - install( - TARGETS - - rs-post-processing - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-post-processing PROPERTIES FOLDER "Examples") + install(TARGETS rs-post-processing RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/post-processing/rs-post-processing.cpp b/examples/post-processing/rs-post-processing.cpp index 3bf425f7ad7..97181c6bc55 100644 --- a/examples/post-processing/rs-post-processing.cpp +++ b/examples/post-processing/rs-post-processing.cpp @@ -34,10 +34,10 @@ Class to encapsulate a filter alongside its options class filter_options { public: - filter_options(const std::string name, rs2::processing_block& filter); + filter_options(const std::string name, rs2::filter& filter); filter_options(filter_options&& other); std::string filter_name; //Friendly name of the filter - rs2::processing_block& filter; //The filter in use + rs2::filter& filter; //The filter in use std::map supported_options; //maps from an option supported by the filter, to the corresponding slider std::atomic_bool is_enabled; //A boolean controlled by the user that determines whether to apply the filter or not }; @@ -65,12 +65,13 @@ int main(int argc, char * argv[]) try rs2::pipeline pipe; rs2::config cfg; // Use a configuration object to request only depth from the pipeline - cfg.enable_stream(RS2_STREAM_DEPTH, 640, 480, RS2_FORMAT_Z16, 30); + cfg.enable_stream(RS2_STREAM_DEPTH, 640, 0, RS2_FORMAT_Z16, 30); // Start streaming with the above configuration pipe.start(cfg); // Declare filters rs2::decimation_filter dec_filter; // Decimation - reduces depth frame density + rs2::threshold_filter thr_filter; // Threshold - removes values outside recommended range rs2::spatial_filter spat_filter; // Spatial - edge-preserving spatial smoothing rs2::temporal_filter temp_filter; // Temporal - reduces temporal noise @@ -84,11 +85,12 @@ int main(int argc, char * argv[]) try // The following order of emplacement will dictate the orders in which filters are applied filters.emplace_back("Decimate", dec_filter); + filters.emplace_back("Threshold", thr_filter); filters.emplace_back(disparity_filter_name, depth_to_disparity); filters.emplace_back("Spatial", spat_filter); filters.emplace_back("Temporal", temp_filter); - // Declaring two concurrent queues that will be used to push and pop frames from different threads + // Declaring two concurrent queues that will be used to enqueue and dequeue frames from different threads rs2::frame_queue original_data; rs2::frame_queue filtered_data; @@ -113,10 +115,11 @@ int main(int argc, char * argv[]) try /* Apply filters. The implemented flow of the filters pipeline is in the following order: 1. apply decimation filter - 2. transform the scence into disparity domain - 3. apply spatial filter - 4. apply temporal filter - 5. revert the results back (if step Disparity filter was applied + 2. apply threshold filter + 3. transform the scene into disparity domain + 4. apply spatial filter + 5. apply temporal filter + 6. revert the results back (if step Disparity filter was applied to depth domain (each post processing block is optional and can be applied independantly). */ bool revert_disparity = false; @@ -180,13 +183,13 @@ int main(int argc, char * argv[]) try // Draw the pointclouds of the original and the filtered frames (if the are available already) if (colored_depth && original_points) { - glViewport(0, h / 2, w / 2, h / 2); - draw_pointcloud(w / 2, h / 2, original_view_orientation, original_points); + glViewport(0, int(h) / 2, int(w) / 2, int(h) / 2); + draw_pointcloud(int(w) / 2, int(h) / 2, original_view_orientation, original_points); } if (colored_filtered && filtered_points) { - glViewport(w / 2, h / 2, w / 2, h / 2); - draw_pointcloud(w / 2, h / 2, filtered_view_orientation, filtered_points); + glViewport(int(w) / 2, int(h) / 2, int(w) / 2, int(h) / 2); + draw_pointcloud(int(w) / 2, int(h) / 2, filtered_view_orientation, filtered_points); } // Update time of current frame's arrival auto curr = std::chrono::high_resolution_clock::now(); @@ -255,7 +258,7 @@ void render_ui(float w, float h, std::vector& filters) // Using ImGui library to provide slide controllers for adjusting the filter options const float offset_x = w / 4; const int offset_from_checkbox = 120; - float offset_y = h / 2 + 20; + float offset_y = h / 2; float elements_margin = 45; for (auto& filter : filters) { @@ -348,31 +351,33 @@ bool filter_slider_ui::is_all_integers(const rs2::option_range& range) /** Constructor for filter_options, takes a name and a filter. */ -filter_options::filter_options(const std::string name, rs2::processing_block& filter) : +filter_options::filter_options(const std::string name, rs2::filter& flt) : filter_name(name), - filter(filter), + filter(flt), is_enabled(true) { - const std::array possible_filter_options = { + const std::array possible_filter_options = { RS2_OPTION_FILTER_MAGNITUDE, RS2_OPTION_FILTER_SMOOTH_ALPHA, + RS2_OPTION_MIN_DISTANCE, + RS2_OPTION_MAX_DISTANCE, RS2_OPTION_FILTER_SMOOTH_DELTA }; //Go over each filter option and create a slider for it for (rs2_option opt : possible_filter_options) { - if (filter.supports(opt)) + if (flt.supports(opt)) { - rs2::option_range range = filter.get_option_range(opt); + rs2::option_range range = flt.get_option_range(opt); supported_options[opt].range = range; supported_options[opt].value = range.def; supported_options[opt].is_int = filter_slider_ui::is_all_integers(range); - supported_options[opt].description = filter.get_option_description(opt); - std::string opt_name = rs2_option_to_string(opt); + supported_options[opt].description = flt.get_option_description(opt); + std::string opt_name = flt.get_option_name(opt); supported_options[opt].name = name + "_" + opt_name; std::string prefix = "Filter "; - supported_options[opt].label = name + " " + opt_name.substr(prefix.length()); + supported_options[opt].label = opt_name; } } } diff --git a/examples/readme.md b/examples/readme.md index d3592d42ac2..f78de1b19b4 100644 --- a/examples/readme.md +++ b/examples/readme.md @@ -1,3 +1,4 @@ + # Sample Code for Intel® RealSense™ cameras **Code Examples to start prototyping quickly:** These simple examples demonstrate how to easily use the SDK to include code snippets that access the camera into your applications. @@ -5,36 +6,42 @@ For mode advanced usages please review the list of [Tools](../tools) we provide. For a detailed explanations and API documentation see our [Documentation](../doc) section -## List of Samples: -### C++ Examples: -#### Basic -1. [Capture](./capture) - Show how to syncronize and render multiple streams: left & right imagers, depth and RGB streams. -2. [Save To Disk](./save-to-disk) - Demonstrate how to render and save video streams on headless systems without graphical user interface (GUI). -3. [Multicam](./multicam) - Present multiple cameras depth streams simultaneously, in separate windows. -4. [Pointcloud](./pointcloud) - Showcase Projection API while generating and rendering 3D pointcloud. -#### Intermediate -5. [Streams Alignment](./align) - Show a simple method for dynamic background removal from video. -6. [Depth Post Processing](./post-processing) - Demonstrating usage of post processing filters for depth images. -7. [Record and Playback](./record-playback) - Demonstrating usage of the recorder and playback devices. -#### Advanced -8. [Software Device](./software-device) - Shows how to create a custom `rs2::device`. - -6. [Sensor Control](./sensor-control) -- A tutorial for using the `rs2::sensor` API -7. [Measure](./measure) - Lets the user measure the dimentions of 3D objects in a stream. - -### C Examples: -1. [Depth](./C/depth) - Demonstrates how to stream depth data and prints a simple text-based representation of the depth image. -2. [Distance](./C/distance) - Print the distance from the camera to the object in the center of the image. -3. [Color](./C/color) - Demonstrate how to stream color data and prints some frame information. - -### CV Examples: - -> See [getting started with OpenCV and RealSense](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv) +## List of Examples: -1. [ImShow](../wrappers/opencv/imshow) - Minimal OpenCV application for visualizing depth data -2. [GrabCuts](../wrappers/opencv/grabcuts) - Simple background removal using the GrabCut algorithm -3. [Latency-Tool](../wrappers/opencv/latency-tool) - Basic latency estimation using computer vision -3. [DNN](../wrappers/opencv/dnn) - Intel RealSense camera used for real-time object-detection +|Name | Language | Description | Experience Level | Technology | +|---|---|---|---|---| +|[Hello-RealSense](./hello-realsense)| C++ | Demonstrates the basics of connecting to a RealSense device and using depth data | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Distance](./C/distance) | C | Equivalent to `hello-realsense` but rewritten for C users | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Color](./C/color) | C | Demonstrate how to stream color data and prints some frame information | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Capture](./capture)| C++ | Shows how to synchronize and render multiple streams: left, right, depth and RGB streams | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[Save To Disk](./save-to-disk)| C++ | Demonstrate how to render and save video streams on headless systems without graphical user interface (GUI) | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[Pointcloud](./pointcloud)| C++ | Showcase Projection API while generating and rendering 3D pointcloud | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Pose](./pose)|C++|Demonstrates how to obtain data from pose frames| :star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[ImShow](../wrappers/opencv/imshow) | C++ & [OpenCV](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv#getting-started) | Minimal OpenCV application for visualizing depth data | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Multicam](./multicam)| C++ | Present multiple cameras depth streams simultaneously, in separate windows | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[Face](../wrappers/dlib/face)| C++ & [Dlib](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/dlib) | Facial recognition with simple anti-spoofing | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Face](../wrappers/openvino/face)| C++ & [OpenVINO](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/openvino) | Facial recognition with OpenVINO™ | :star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Depth](./C/depth) | C | Demonstrates how to stream depth data and prints a simple text-based representation of the depth image | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md)| +|[Spatial Alignment](./align)| C++ | Introduces the concept of spatial stream alignment, using depth-color mapping | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Advanced Alignment](./align-advanced)| C++ | Show a simple method for dynamic background removal from video | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Measure](./measure)| C++ | Lets the user measure the dimensions of 3D objects in a stream | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Post Processing](./post-processing)| C++ | Demonstrating usage of post processing filters for depth images | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Record & Playback](./record-playback)| C++ | Demonstrating usage of the recorder and playback devices | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Motion](./motion)| C++ | Demonstrates how to use data from gyroscope and accelerometer to compute the rotation of the camera | :star::star: | [![Depth with IMU](https://img.shields.io/badge/-D435i-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[Pose Prediction](./pose-predict)|C++|Demonstrates how to use tracking camera asynchroniously to implement simple pose prediction using librealsense global time | :star::star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[Pose and Image](./pose-and-image)|C++|Demonstrates how to use tracking camera asynchroniously to obtain 200Hz poses and 30Hz images | :star::star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[Apriltag Pose](./pose-apriltag)|C++|Demonstrates how to compute [Apriltag](https://github.com/AprilRobotics/apriltag/tree/3.1.1) pose from T265 fisheye image stream. | :star::star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[AR-Basic](./ar-basic)|C++|Shows how to use pose and fisheye frames to display a simple virtual object on the fisheye image | :star::star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[AR-Advanced](./ar-advanced)|C++|Shows how to extend the [AR-Basic](./ar-basic) example with the relocalization API | :star::star::star: |[![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools)| +|[DNN](../wrappers/opencv/dnn)| C++ & [OpenCV](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv#getting-started) | Intel RealSense camera used for real-time object-detection | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[DNN](../wrappers/openvino/dnn)| C++ & [OpenVINO](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/openvino) | Intel RealSense camera used for real-time object-detection | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Tracking and Depth](./tracking-and-depth)| C++ | Shows how to use the tracking camera T265 together with a depth camera to display a 3D pointcloud with respect to a static reference frame | :star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) +|[Trajectory](./trajectory)| C++ | Shows how to calculate and render 3D trajectory based on pose data from a tracking camera | :star::star::star: | [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) +|[Software Device](./software-device)| C++ | Shows how to create a custom `rs2::device` | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[GL](./gl)| C++ | Shows how to perform parts of frame processing using the GPU | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Sensor Control](./sensor-control)| C++ | A tutorial for using the `rs2::sensor` API | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) [![Motion Tracking - T260 and SLAM](https://img.shields.io/badge/-Tracking-0e2356.svg)](../doc/t265.md#examples-and-tools) | +|[GrabCuts](../wrappers/opencv/grabcuts)| C++ & [OpenCV](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv#getting-started) | Simple background removal using the GrabCut algorithm | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | +|[Latency](../wrappers/opencv/latency-tool)| C++ & [OpenCV](https://github.com/IntelRealSense/librealsense/tree/master/wrappers/opencv#getting-started) | Basic latency estimation using computer vision | :star::star::star: | [![Depth Sensing - Structured Light, Stereo and L500](https://img.shields.io/badge/-Depth-5bc3ff.svg)](./depth.md) | ### Community Projects: @@ -42,3 +49,17 @@ For a detailed explanations and API documentation see our [Documentation](../doc 2. [minimal_realsense2](https://github.com/SirDifferential/minimal_realsense2) - Streaming and Presets in C 3. [ANDREASJAKL.COM](https://www.andreasjakl.com/capturing-3d-point-cloud-intel-realsense-converting-mesh-meshlab/) - Capturing a 3D Point Cloud with Intel RealSense and Converting to a Mesh with MeshLab 4. [FluentRealSense](https://www.codeproject.com/Articles/1233892/FluentRealSense-The-First-Steps-to-a-Simpler-RealS) - The First Steps to a Simpler RealSense +5. [RealSense ROS-bag parser](https://github.com/IntelRealSense/librealsense/issues/2215) - code sample for parsing ROS-bag files by [@marcovs](https://github.com/marcovs) +6. [OpenCV threaded depth cleaner](https://github.com/juniorxsound/ThreadedDepthCleaner) - RealSense depth-map cleaning and inpainting using OpenCV +7. [Sample of how to use the IMU of D435i as well as doing PCL rotations based on this](https://github.com/GruffyPuffy/imutest) +8. [realsense-ir-to-vaapi-h264](https://github.com/bmegli/realsense-ir-to-vaapi-h264) - hardware encode infrared stream to H.264 with Intel VAAPI +9. [realsense-depth-to-vaapi-hevc10](https://github.com/bmegli/realsense-depth-to-vaapi-hevc10) - hardware encode depth stream to 10 bit HEVC with Intel VAAPI +10. [EtherSense](https://github.com/krejov100/EtherSense) - Ethernet client and server for RealSense using python's Asyncore +11. [Unofficial OpenVino example + D400](https://github.com/gbr1/ros_openvino) - example of using OpenVino with RealSense and ROS for object detection +12. [keijiro/Rsvfx](https://github.com/keijiro/Rsvfx) - An example that shows how to connect RealSense depth camera to Unity VFX Graph +13. [kougaku/RealSenseOSC](https://github.com/kougaku/RealSenseOSC) - Client-Server project with Processing example for T265 +14. [Vimeo Depth Viewer](https://github.com/vimeo/vimeo-depth-viewer) - A RealSense depth viewer using [nanogui](https://github.com/wjakob/nanogui) +15. [PINTO0309/MobileNet-SSD-RealSense](https://github.com/PINTO0309/MobileNet-SSD-RealSense) - RaspberryPi3 or Ubuntu + Multi Neural Compute Stick(NCS/NCS2) + RealSense D435 + MobileNet-SSD(MobileNetSSD) + Background Multi-transparent(Simple multi-class segmentation) + FaceDetection + MultiGraph + MultiProcessing + MultiClustering +16. [realsenseOnCyber](https://github.com/mickeyouyou/realsenseOnCyber) Realsense module Based on Apollo Cyber RT +17. [Raspberry Pi Handheld 3D Scanner](https://eleccelerator.com/pi-handheld-3d-scanner/) by [Frank Zhao](https://github.com/frank26080115) +18. [Erwhi Hedgehog](https://gbr1.github.io/erwhi_hedgehog.html) by [Giovanni Bruno](https://github.com/gbr1) - Open-Source Hardware and Software design featuring Intel RealSense, UP-Squared and Intel Movidius technologies diff --git a/examples/record-playback/CMakeLists.txt b/examples/record-playback/CMakeLists.txt index 99396665702..6c1eb727647 100644 --- a/examples/record-playback/CMakeLists.txt +++ b/examples/record-playback/CMakeLists.txt @@ -1,34 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesRecord-Playback) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) add_executable(rs-record-playback rs-record-playback.cpp ../example.hpp ../../third-party/imgui/imgui.cpp ../../third-party/imgui/imgui_draw.cpp ../../third-party/imgui/imgui_impl_glfw.cpp) + set_property(TARGET rs-record-playback PROPERTY CXX_STANDARD 11) target_link_libraries(rs-record-playback ${DEPENDENCIES}) include_directories(rs-record-playback ../ ../../third-party/tclap/include ../../third-party/imgui) - set_target_properties (rs-record-playback PROPERTIES - FOLDER "Examples" - ) - - install( - TARGETS - - rs-record-playback - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-record-playback PROPERTIES FOLDER "Examples") + install(TARGETS rs-record-playback RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/record-playback/rs-record-playback.cpp b/examples/record-playback/rs-record-playback.cpp index b7888288519..7736fad1aba 100644 --- a/examples/record-playback/rs-record-playback.cpp +++ b/examples/record-playback/rs-record-playback.cpp @@ -194,7 +194,7 @@ int main(int argc, char * argv[]) try ImGui::Render(); // Render depth frames from the default configuration, the recorder or the playback - depth_image.render(depth, { app.width() / 4, 0, 3 * app.width() / 5, 3 * app.height() / 5 + 50 }); + depth_image.render(depth, { app.width() * 0.25f, app.height() * 0.25f, app.width() * 0.5f, app.height() * 0.75f }); } return EXIT_SUCCESS; } diff --git a/examples/save-to-disk/CMakeLists.txt b/examples/save-to-disk/CMakeLists.txt index e79c21a35a3..d3acea4342b 100644 --- a/examples/save-to-disk/CMakeLists.txt +++ b/examples/save-to-disk/CMakeLists.txt @@ -1,34 +1,13 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesSaveToDisk) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - -# save-to-disk add_executable(rs-save-to-disk rs-save-to-disk.cpp) +set_property(TARGET rs-save-to-disk PROPERTY CXX_STANDARD 11) target_link_libraries(rs-save-to-disk ${DEPENDENCIES}) include_directories(rs-save-to-disk ../../common ../../third-party ../../third-party/tclap/include) -set_target_properties (rs-save-to-disk PROPERTIES - FOLDER "Examples" -) - -install( - TARGETS - - rs-save-to-disk - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin -) +set_target_properties (rs-save-to-disk PROPERTIES FOLDER "Examples") +install(TARGETS rs-save-to-disk RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/examples/sensor-control/CMakeLists.txt b/examples/sensor-control/CMakeLists.txt index 73b7d7b74c3..8f1af64dff6 100644 --- a/examples/sensor-control/CMakeLists.txt +++ b/examples/sensor-control/CMakeLists.txt @@ -1,35 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) project(RealsenseExamplesSensorControl) -# Save the command line compile commands in the build output -set(CMAKE_EXPORT_COMPILE_COMMANDS 1) - -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) - #sensor-control add_executable(rs-sensor-control api_how_to.h rs-sensor-control.cpp) + set_property(TARGET rs-sensor-control PROPERTY CXX_STANDARD 11) target_link_libraries(rs-sensor-control ${DEPENDENCIES}) include_directories(rs-sensor-control) - set_target_properties (rs-sensor-control PROPERTIES - FOLDER Examples - ) - - install( - TARGETS - - rs-sensor-control - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-sensor-control PROPERTIES FOLDER Examples) + install(TARGETS rs-sensor-control RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/sensor-control/helper.h b/examples/sensor-control/helper.h index 73652bed4a8..78dfbbc7dbd 100644 --- a/examples/sensor-control/helper.h +++ b/examples/sensor-control/helper.h @@ -81,7 +81,7 @@ namespace helper { try { - renderer.render(colorize.process(decimate.process(frame)), { 0, 0, view_width, view_height }); + renderer.render(colorize.process(decimate.process(frame)).as(), { 0, 0, view_width, view_height }); } catch (const std::exception& e) { diff --git a/examples/software-device/CMakeLists.txt b/examples/software-device/CMakeLists.txt index 98ed6c55d89..a5d6de06d5a 100644 --- a/examples/software-device/CMakeLists.txt +++ b/examples/software-device/CMakeLists.txt @@ -1,3 +1,5 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. # minimum required cmake version: 3.1.0 cmake_minimum_required(VERSION 3.1.0) @@ -6,29 +8,11 @@ project(RealsenseExamplesSoftwareDevice) # Save the command line compile commands in the build output set(CMAKE_EXPORT_COMPILE_COMMANDS 1) -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -endif() - if(BUILD_GRAPHICAL_EXAMPLES) add_executable(rs-software-device rs-software-device.cpp) + set_property(TARGET rs-software-device PROPERTY CXX_STANDARD 11) target_link_libraries(rs-software-device ${DEPENDENCIES}) include_directories(rs-software-device ../ ../../third-party/tclap/include ../../third-party/ ../../common/res) - set_target_properties (rs-software-device PROPERTIES - FOLDER "Examples" - ) - - install( - TARGETS - - rs-software-device - - RUNTIME DESTINATION - ${CMAKE_INSTALL_PREFIX}/bin - ) + set_target_properties (rs-software-device PROPERTIES FOLDER "Examples") + install(TARGETS rs-software-device RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/examples/software-device/rs-software-device.cpp b/examples/software-device/rs-software-device.cpp index 0dab423c5ad..f2d525f4af4 100644 --- a/examples/software-device/rs-software-device.cpp +++ b/examples/software-device/rs-software-device.cpp @@ -4,8 +4,6 @@ #include // Include RealSense Cross Platform API #include #include "example.hpp" -#include "example.hpp" // Include short list of convenience functions for rendering - #define STB_IMAGE_WRITE_IMPLEMENTATION #include diff --git a/examples/tracking-and-depth/CMakeLists.txt b/examples/tracking-and-depth/CMakeLists.txt new file mode 100644 index 00000000000..5ce02195b11 --- /dev/null +++ b/examples/tracking-and-depth/CMakeLists.txt @@ -0,0 +1,20 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesTrackingAndDepth) + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-tracking-and-depth rs-tracking-and-depth.cpp ../example.hpp) + set_property(TARGET rs-tracking-and-depth PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-tracking-and-depth ${DEPENDENCIES}) + include_directories(rs-tracking-and-depth ../) + set_target_properties (rs-tracking-and-depth PROPERTIES FOLDER Examples) + install(TARGETS rs-tracking-and-depth RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + add_custom_command( + TARGET rs-tracking-and-depth POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/H_t265_d400.cfg + ${CMAKE_CURRENT_BINARY_DIR}/H_t265_d400.cfg) +endif() diff --git a/examples/tracking-and-depth/H_t265_d400.cfg b/examples/tracking-and-depth/H_t265_d400.cfg new file mode 100644 index 00000000000..1ed87b97adc --- /dev/null +++ b/examples/tracking-and-depth/H_t265_d400.cfg @@ -0,0 +1,4 @@ +0.999968402 -0.006753626 -0.004188075 -0.015890727 +-0.006685408 -0.999848172 0.016093893 0.028273059 +-0.004296131 -0.016065384 -0.999861654 -0.009375589 + diff --git a/examples/tracking-and-depth/bracket_t265nd435_external.stl b/examples/tracking-and-depth/bracket_t265nd435_external.stl new file mode 100644 index 00000000000..cfaafe4eb01 Binary files /dev/null and b/examples/tracking-and-depth/bracket_t265nd435_external.stl differ diff --git a/examples/tracking-and-depth/readme.md b/examples/tracking-and-depth/readme.md new file mode 100644 index 00000000000..545e6585a50 --- /dev/null +++ b/examples/tracking-and-depth/readme.md @@ -0,0 +1,179 @@ +# rs-tracking-and-depth Sample + +## Overview + +This sample demonstrates an example use of +the tracking camera T265 +together with a depth camera D4xx to +display a 3D pointcloud as generated by the D4xx +with respect to a static reference frame. +The pose of the depth camera is tracked by the tracking camera which is rigidly attached to it. + +## Expected Output +The application should open a window with a pointcloud. +A static scene should appear static on the screen despite the camera can be moving. +This allows "scanning" the scene (frame-by-frame) by moving the camera. (Currently, no depth data is accumulated or filtered over time.) +Using your mouse, you should be able to interact with the pointcloud rotating and zooming using the mouse. + + + +## Mechanical Setup +The provided [STL](./bracket_t265nd435_external.stl) can be 3D-printed +and used to attach T265 and D435 +using **M3 screws, 10mm & 18mm**, respectively. +![snapshot00](https://user-images.githubusercontent.com/28366639/60457143-2b27dd80-9bf0-11e9-8286-757953d9013e.png) +If the mount is used in the depicted orientation with T265 below and D435 mounted above, +the provided [calibration](./H_t265_d400.txt) can be used to transform between point cloud and pose reference frame. + +In the depicted orientation a **¼-20 nut** can be inserted into the 3D-print in order to mount the assembly on a tripod. + +![IMG_1900_3](https://user-images.githubusercontent.com/28366639/61068929-1271b180-a3c0-11e9-9502-d30092c7506a.png) + +Please note that the homogeneous transformation is expected to be provided as row-major 3x4 matrix of the form `H = [R, t]` where `R` is the rotation matrix and `t` the translation vector of the depth, i.e. infrared 1, frame, with respect to the T265 body frame (see above). + + +## Code Overview + +This example is based on the [pointcloud example](../pointcloud/). Please also refer the respective documentation. + +Similar to the [first tutorial](../capture/) we include the Cross-Platform API: +```cpp +#include // Include RealSense Cross Platform API +``` + +Next, we prepared a [very short helper library](../example.hpp) encapsulating basic OpenGL rendering and window management: +```cpp +#include "example.hpp" // Include short list of convenience functions for rendering +``` + +We also include the STL `` header for `std::min` and `std::max`, +and `` for `std::ifstream` +to parse the homogeneous extrinsic matrix from a text file. + +Next, we define a `state` struct and two helper functions. `state` and `register_glfw_callbacks` handle the pointcloud's rotation in the application, and `draw_pointcloud_wrt_world` makes all the OpenGL calls necessary to display the pointcloud. +```cpp +// Struct for managing rotation of pointcloud view +struct state { double yaw, pitch, last_x, last_y; bool ml; float offset_x, offset_y; texture tex; }; + +// Helper functions +void register_glfw_callbacks(window& app, state& app_state); +draw_pointcloud_wrt_world(float width, float height, glfw_state& app_state, rs2::points& points, rs2_pose& pose, float H_t265_d400[16]); +``` + +The `example.hpp` header lets us easily open a new window and prepare textures for rendering. The `state` class (declared above) is used for interacting with the mouse, with the help of some callbacks registered through glfw. +```cpp +// Create a simple OpenGL window for rendering: +window app(1280, 720, "RealSense Tracking and Depth Example"); +// Construct an object to manage view state +state app_state = { 0, 0, 0, 0, false, 0, 0, 0 }; +// register callbacks to allow manipulation of the pointcloud +register_glfw_callbacks(app, app_state); +``` + +We are going to use classes within the `rs2` namespace: +```cpp +using namespace rs2; +``` + +As part of the API we offer the `pointcloud` class which calculates a pointcloud and corresponding texture mapping from depth and color frames. To make sure we always have something to display, we also make a `rs2::points` object to store the results of the pointcloud calculation. +```cpp +// Declare pointcloud object, for calculating pointclouds and texture mappings +pointcloud pc = rs2::context().create_pointcloud(); +// We want the points object to be persistent so we can display the last cloud when a frame drops +rs2::points points; +``` + +We declare a `rs2_pose` object to store the latest pose as reported by T265. +```cpp +rs2_pose pose; +``` + + +To stream from multiple device please also refer to the [multicam example](../multicam/). +First a common context is created and a (separate) pipeline is started for each of the queried devices. +```cpp +// Start a streaming pipe per each connected device +for (auto&& dev : ctx.query_devices()) +{ + rs2::pipeline pipe(ctx); + rs2::config cfg; + cfg.enable_device(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)); + pipe.start(cfg); + pipelines.emplace_back(pipe); +} +``` + +The extrinsics between the streams, namely depth and pose, are loaded from a configuration file +that has to be provided in form of a *row-major* homogeneous 4-by-4 matrix. + +While the app is running, +we loop over the pipelines, wait for frames, before we collect the respective color, depth and pose frames: +```cpp +for (auto &&pipe : pipelines) // loop over pipelines + { + auto frames = pipe.wait_for_frames(); // Wait for the next set of frames from the camera +``` + +Using helper functions on the `frameset` object we check for new depth and color frames. We pass it to the `pointcloud` object to use as the texture, and also give it to OpenGL with the help of the `texture` class. We generate a new pointcloud. +```cpp +auto depth = frames.get_depth_frame(); + +// Generate the pointcloud and texture mappings +points = pc.calculate(depth); + +auto color = frames.get_color_frame(); + +// Tell pointcloud object to map to this color frame +pc.map_to(color); + +// Upload the color frame to OpenGL +app_state.tex.upload(color); + +``` + +In a similar way we get the pose data from the pose frame +```cpp +auto pose_frame = frames.get_pose_frame(); +if (pose_frame) { + pose = pose_frame.get_pose_data(); +} +``` + +Finally we call `draw_pointcloud_wrt_world` to draw the pointcloud with respect to a common (fixed) world frame. +This is done by moving the observing camera according to the transformation reported by T265 and extrinsics to the depth stream (instead of transforming the scene by the inverse which results in the same relative motion). +```cpp +draw_pointcloud_wrt_world(app.width(), app.height(), app_state, points, pose, H_t265_d400); +``` + +`draw_pointcloud_wrt_world` primarily calls OpenGL, but the critical portion iterates over all the points in the pointcloud, and where we have depth data, we upload the point's coordinates and texture mapping coordinates to OpenGL. +```cpp +/* this segment actually prints the pointcloud */ +auto vertices = points.get_vertices(); // get vertices +auto tex_coords = points.get_texture_coordinates(); // and texture coordinates +for (int i = 0; i < points.size(); i++) +{ + if (vertices[i].z) + { + // upload the point and texture coordinates only for points we have depth data for + glVertex3fv(vertices[i]); + glTexCoord2fv(tex_coords[i]); + } +} +``` + +The second critical portion changes the viewport according to the provided transformation. +```cpp +// viewing matrix +glMatrixMode(GL_MODELVIEW); +glPushMatrix(); + +GLfloat H_world_t265[16]; +quat2mat(pose.rotation, H_world_t265); +H_world_t265[12] = pose.translation.x; +H_world_t265[13] = pose.translation.y; +H_world_t265[14] = pose.translation.z; + +glMultMatrixf(H_world_t265); +glMultMatrixf(H_t265_d400); +``` + diff --git a/examples/tracking-and-depth/rs-tracking-and-depth.cpp b/examples/tracking-and-depth/rs-tracking-and-depth.cpp new file mode 100644 index 00000000000..b33f1a01091 --- /dev/null +++ b/examples/tracking-and-depth/rs-tracking-and-depth.cpp @@ -0,0 +1,140 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015-2017 Intel Corporation. All Rights Reserved. + +#include // Include RealSense Cross Platform API +#include "example.hpp" // Include short list of convenience functions for rendering + +#include // std::min, std::max +#include // std::ifstream + +// Helper functions +void register_glfw_callbacks(window& app, glfw_state& app_state); + +float detR(float H[16]) { + return H[0]*(H[5]*H[10]-H[9]*H[6]) - H[4]*(H[1]*H[10]-H[2]*H[9]) + H[8]*(H[1]*H[6]-H[5]*H[2]); +} + +int main(int argc, char * argv[]) try +{ + // Create a simple OpenGL window for rendering: + window app(1280, 720, "RealSense Tracking and Depth Example"); + // Construct an object to manage view state + glfw_state app_state; + // register callbacks to allow manipulation of the pointcloud + register_glfw_callbacks(app, app_state); + + // Declare pointcloud object, for calculating pointclouds and texture mappings + rs2::pointcloud pc; + // We want the points object to be persistent so we can display the last cloud when a frame drops + rs2::points points; + // store pose and timestamp + rs2::pose_frame pose_frame(nullptr); + std::vector trajectory; + + rs2::context ctx; // Create librealsense context for managing devices + std::vector pipelines; + + // Start a streaming pipe per each connected device + for (auto&& dev : ctx.query_devices()) + { + rs2::pipeline pipe(ctx); + rs2::config cfg; + cfg.enable_device(dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)); + pipe.start(cfg); + pipelines.emplace_back(pipe); + } + + // extrinsics + // depth w.r.t. tracking (column-major) + float H_t265_d400[16] = {1, 0, 0, 0, + 0,-1, 0, 0, + 0, 0,-1, 0, + 0, 0, 0, 1}; + std::string fn = "./H_t265_d400.cfg"; + std::ifstream ifs(fn); + if (!ifs.is_open()) { + std::cerr << "Couldn't open " << fn << std::endl; + return -1; + } + else { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 4; j++) { + ifs >> H_t265_d400[i+4*j]; // row-major to column-major + } + } + } + float det = detR(H_t265_d400); + if (fabs(1-det) > 1e-6) { + std::cerr << "Invalid homogeneous transformation matrix input (det != 1)" << std::endl; + return -1; + } + + while (app) // Application still alive? + { + for (auto &&pipe : pipelines) // loop over pipelines + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + + + auto color = frames.get_color_frame(); + + // For cameras that don't have RGB sensor, we'll map the pointcloud to infrared instead of color + if (!color) + color = frames.get_infrared_frame(); + + // Tell pointcloud object to map to this color frame + if (color) + pc.map_to(color); + + auto depth = frames.get_depth_frame(); + + // Generate the pointcloud and texture mappings + if (depth) + points = pc.calculate(depth); + + // Upload the color frame to OpenGL + if (color) + app_state.tex.upload(color); + + + // pose + auto pose = frames.get_pose_frame(); + if (pose) { + pose_frame = pose; + + // Print the x, y, z values of the translation, relative to initial position + auto pose_data = pose.get_pose_data(); + std::cout << "\r" << "Device Position: " << std::setprecision(3) << std::fixed << pose_data.translation.x << " " << pose_data.translation.y << " " << pose_data.translation.z << " (meters)"; + + // add new point in the trajectory (if motion large enough to reduce size of traj. vector) + if (trajectory.size() == 0) + trajectory.push_back(pose_data.translation); + else { + rs2_vector prev = trajectory.back(); + rs2_vector curr = pose_data.translation; + if (sqrt(pow((curr.x - prev.x), 2) + pow((curr.y - prev.y), 2) + pow((curr.z - prev.z), 2)) > 0.002) + trajectory.push_back(pose_data.translation); + } + } + } + + // Draw the pointcloud + if (points && pose_frame) { + rs2_pose pose = pose_frame.get_pose_data(); + draw_pointcloud_wrt_world(app.width(), app.height(), app_state, points, pose, H_t265_d400, trajectory); + } + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception & e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/examples/trajectory/CMakeLists.txt b/examples/trajectory/CMakeLists.txt new file mode 100644 index 00000000000..308969bdef5 --- /dev/null +++ b/examples/trajectory/CMakeLists.txt @@ -0,0 +1,15 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +# minimum required cmake version: 3.1.0 +cmake_minimum_required(VERSION 3.1.0) + +project(RealsenseExamplesTrajectory) + +if(BUILD_GRAPHICAL_EXAMPLES) + add_executable(rs-trajectory rs-trajectory.cpp ../example.hpp ../../common/res/t265.h ${LZ4_DIR}/lz4.c) + set_property(TARGET rs-trajectory PROPERTY CXX_STANDARD 11) + target_link_libraries(rs-trajectory ${DEPENDENCIES}) + include_directories(../ ../../common/res ${LZ4_DIR}) + set_target_properties (rs-trajectory PROPERTIES FOLDER Examples) + install(TARGETS rs-trajectory RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/trajectory/readme.md b/examples/trajectory/readme.md new file mode 100644 index 00000000000..06b5b59a597 --- /dev/null +++ b/examples/trajectory/readme.md @@ -0,0 +1,341 @@ +# rs-trajectory Sample + +> In order to run this example, a device supporting pose stream (T265) is required. + +## Overview +This sample demonstrates how to draw the trajectory of the device's movement based on pose data. + +## Expected Output +![expected output](https://raw.githubusercontent.com/wiki/dorodnic/librealsense/trajectory.gif) + +The application should open a window split into 4 viewports: top (upper left viewport), front (lower left viewport), side (lower right viewport) and 3D (upper right viewport). In each viewport, a 3D model of the camera and the corresponding 2D trajectory are rendered. +In the 3D view, you should be able to interact with the camera using your mouse, for rotating, zooming and panning. + +## Code Overview + +First, we include the Intel® RealSense™ Cross-Platform API. +```cpp +#include // Include RealSense Cross Platform API +``` + +In this example we will also use the auxiliary library of `example.hpp`: +```cpp +#include "../example.hpp" +``` + +We define a struct `tracked_point` to store a single point of the trajectory with it's confidence level. +```cpp +struct tracked_point +{ + rs2_vector point; + unsigned int confidence; +}; +``` + +We'll use the class `tracker` to keep track of the device's movement: calculate new transformation matrices, store trajectory points and draw them. +This class holds a vector of the trajectory's points and also the minimal and maximal coordinates, to allow zooming out according to the trajectory's size. +```cpp +std::vector trajectory; +rs2_vector max_coord; +rs2_vector min_coord; +``` + +The function `calc_transform` calculates the transformation matrix in relation to the initial state, based on pose data from the device. It uses the rotation data in quaternions and translation data in meters to compute the resulting matrix. Note that we use coulmn-major representation as required by OpenGL. A rotation by 180 degrees in the y axis is applied to set the correct orientation. +```cpp +void calc_transform(rs2_pose& pose_data, float mat[16]) +{ + auto q = pose_data.rotation; + auto t = pose_data.translation; + // Set the matrix as column-major for convenient work with OpenGL and rotate by 180 degress (by negating 1st and 3rd columns) + mat[0] = -(1 - 2 * q.y*q.y - 2 * q.z*q.z); mat[4] = 2 * q.x*q.y - 2 * q.z*q.w; mat[8] = -(2 * q.x*q.z + 2 * q.y*q.w); mat[12] = t.x; + mat[1] = -(2 * q.x*q.y + 2 * q.z*q.w); mat[5] = 1 - 2 * q.x*q.x - 2 * q.z*q.z; mat[9] = -(2 * q.y*q.z - 2 * q.x*q.w); mat[13] = t.y; + mat[2] = -(2 * q.x*q.z - 2 * q.y*q.w); mat[6] = 2 * q.y*q.z + 2 * q.x*q.w; mat[10] = -(1 - 2 * q.x*q.x - 2 * q.y*q.y); mat[14] = t.z; + mat[3] = 0.0f; mat[7] = 0.0f; mat[11] = 0.0f; mat[15] = 1.0f; +} +``` + +The function `add_to trajectory` appends a new point to the trajectory vector. The first point is always added and set as the min and max coordinates. +```cpp +void add_to_trajectory(tracked_point& p) +{ + // If first element, add to trajectory and initialize minimum and maximum coordinates + if (trajectory.size() == 0) + { + trajectory.push_back(p); + max_coord = p.point; + min_coord = p.point; + } + ``` + +If the point is not the first one, check if it's far enough from the previous point. If the two last points are too close (less than 1 mm apart), only the one with higher confidence stays in the trajectory. This way, points which don't add new information are discarded to save space. +If a new point is inserted, maximum and minimum coordinates are updated. + ```cpp +else +{ + // Check if new element is far enough - more than 1 mm (to keep trajectory vector as small as possible) + rs2_vector prev = trajectory.back().point; + rs2_vector curr = p.point; + if (sqrt(pow((curr.x - prev.x), 2) + pow((curr.y - prev.y), 2) + pow((curr.z - prev.z), 2)) < 0.001) + { + // If new point is too close to previous point and has higher confidence, replace the previous point with the new one + if (p.confidence > trajectory.back().confidence) + { + trajectory.back() = p; + update_min_max(p.point); + } + } + else + { + // If new point is far enough, add it to trajectory + trajectory.push_back(p); + update_min_max(p.point); + } +} +``` + +`draw_trajectory` draws all points stored in the trajectory vector. Low confidence points are colored red, medium confidence - yellow, and high confidence is colored green. Grey points indicate failure in pose retrieval. +```cpp +void draw_trajectory() +{ + float3 colors[]{ + { 0.7f, 0.7f, 0.7f }, + { 1.0f, 0.0f, 0.0f }, + { 1.0f, 1.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f }, + }; + + glLineWidth(2.0f); + glBegin(GL_LINE_STRIP); + for (auto&& v : trajectory) + { + auto c = colors[v.confidence]; + glColor3f(c.x, c.y, c.z); + glVertex3f(v.point.x, v.point.y, v.point.z); + } + glEnd(); + glLineWidth(0.5f); +} +``` + +Class `view` is a base class which provides functions for rendering the four views on screen. It holds a reference to `tracker` and `camera_renderer` objects, which allow rendering of the trajectory and the 3D camera model, respectively. +```cpp +protected: + float width, height; + float aspect; + tracker& t; +private: + camera_renderer& renderer; +``` + +The function `load_matrices` sets a viewport, using position (`pos`) and size (`app_width`, `app_height`) passed as parameters. We use `glScissor` to avoid rendering outside of the viewport window. +```cpp +void load_matrices(float2 pos, float app_width, float app_height) +{ + width = app_width; + height = app_height; + aspect = height / width; + + // Set viewport to 1/4 of the app window and enable scissor test to avoid rendering outside the current viewport + glViewport(pos.x, pos.y, width / 2, height / 2); + glEnable(GL_SCISSOR_TEST); + glScissor(pos.x, pos.y, width / 2, height / 2); +``` + +We use `glOrtho` to set the projection matrix. We define the viewport to cover 2 meters in width, the origin being in the middle of the viewport window. This will allow us to conveniently keep track of the viewport scale in meters. +```cpp + // Setup orthogonal projection matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glOrtho(-1.0, 1.0, -1.0 * aspect, 1.0 * aspect, -100.0, 100.0); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); +} +``` + +`clean_matrices` returns the viewport to it's default configuration, by popping matrices pushed in `load_matrices` and setting the viewport back to full size. +```cpp +void clean_matrices() +{ + // Pop LookAt matrix + glPopMatrix(); + // Pop Projection matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + // Set viewport back to full screen + glViewport(0, 0, width, height); + glDisable(GL_SCISSOR_TEST); +} +``` + +`draw_cam_trajectory` renders both the trajectory and the camera model. The parameters `angle` and `axes` define the initial position of the camera and trajectory, to match the direction of the 2 axes shown in each viewport. +```cpp +void draw_cam_trajectory(float angle, float3 axes, float r[16]) +{ + glPushMatrix(); + // Set initial camera position (rotate by given angle) + glRotatef(angle, axes.x, axes.y, axes.z); + t.draw_trajectory(); +``` + +Matrix `r` is the trasnformation matrix calculated from the device. We apply this matrix before rendering the camera, so that the camera model moves according to the device's actual movement. +```cpp + glMultMatrixf(r); + renderer.render_camera(); + glPopMatrix(); +} +``` + +Class `view_2d` inherits from `view` and is responsible for handling the 2D viewports. In addition to fields stored in `view`, `view_2d` also has members needed to zoom-out the view according to trajectory size: `window_borders` stores the maximum coordinates of the viewport window; `scale_factor` holds the current scale in relation to the initial state. `lookat_eye` is used to set a different perspective for each viewport. + +`draw_view` renders the 2D view. It accepts as parameters the position of the viewport, it's size, the position of the scale bar - `scale_pos` and the transformation matrix `r`. +First, we call `display_scale` which calculates the current scale of the viewport in meters and prints it. It also returns the width of the scale bar which matches the calculated scale. +```cpp +void draw_view(float2 pos, float width, float height, float2 scale_pos, float r[16]) +{ + // Calculate and print scale in meters + float bar_width = display_scale(scale_factor, scale_pos.x, scale_pos.y); +``` + +We set `min_coord` and `max_coord` which we'll use to check if zooming-out is needed. +`load_matrices` is called to prepare the viewport for rendering and the scale bar is rendered using `bar_width` we previously obtained. +```cpp +rs2_vector min_coord = t.get_min_coord(); +rs2_vector max_coord = t.get_max_coord(); + +// Prepare viewport for rendering +load_matrices(pos, width, height); +glBegin(GL_LINES); +// Draw scale bar +glColor3f(1.0f, 1.0f, 1.0f); +glVertex3f(0.8, -0.9 * aspect, 0); glVertex3f(0.8 + bar_width, -0.9 * aspect, 0); +glEnd(); +``` + +We define the perspective of the viewport using `gluLookAt` and scale according to the current `scale_factor`. +```cpp +// Set a 2D view using OpenGL's LookAt matrix +gluLookAt(lookat_eye.x, lookat_eye.y, lookat_eye.z, 0, 0, 0, 0, 1, 0); +// Draw axes (only two are visible) +draw_axes(); +// Scale viewport according to current scale factor +glScalef(scale_factor, scale_factor, scale_factor); +``` + +If the trajectory's new maximal or minimal coordinates are beyond the window borders, we zoom out by scaling the viewport, in order to keep the whole trajectory visible. `scale_factor` and `window_borders` are updated accordingly. Then, we render the camera and trajectory using `draw_cam_trajectory` with 180 degrees rotation in the y axis. +```cpp +// If trajectory reached one of the viewport's borders, zoom out and update scale factor +if (min_coord.*a < -window_borders.x || max_coord.*a > window_borders.x + || min_coord.*b < -window_borders.y || max_coord.*b > window_borders.y) +{ + glScalef(0.5, 0.5, 0.5); + scale_factor *= 0.5; + window_borders.x = window_borders.x * 2; + window_borders.y = window_borders.y * 2; +} +// Draw trajectory and camera +draw_cam_trajectory(180, { 0, 1, 0 }, r); +// Return the default configuration of OpenGL's matrices +clean_matrices(); +``` + +Similarly, class `view_3d` handles rendering of the 3D view. We use the function `render_scene` to handle manipulations by the user. `draw_cam_trajectory` is called with a parameter of 90 angles rotation in the x angle. +```cpp +void draw_view(float2 pos, float app_width, float app_height, glfw_state app_state, float r[16]) +{ + // Prepare viewport for rendering + load_matrices(pos, app_width, app_height); + // Set the scene configuration and handle user's manipulations + render_scene(app_state); + // Draw trajectory and camera + draw_cam_trajectory(90, { 1, 0, 0 }, r); + // // Return the default configuration of OpenGL's matrices + clean_matrices(); +} +``` + +The class `split_screen_renderer` handles the 4 viewports. It stores 3 objects of `view_2d`: `top`, `front` and `side`, and one object of `view_3d`: `three_dim`. +`draw_windows` calls each object's `draw_view` function, and also handles some graphical functionalities: drawing the labels of the axes, as well as each viewport's title and the borders between viewports. +```cpp +void draw_windows(float app_width, float app_height, glfw_state app_state, float r[16]) +{ + // Clear screen + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + // Upper left window: top perspective (x and z axes) + top.draw_view({ 0, app_height / 2 }, app_width, app_height, float2{ float(0.457) * app_width, float(0.49) * app_height }, r); + // Lower left window: front perspective (x and y axes) + front.draw_view({ 0, 0 }, app_width, app_height, float2{ float(0.457) * app_width, float(0.99) * app_height }, r); + // Lower right window: side perspective (y and z axes) + side.draw_view({ app_width / 2, 0 }, app_width, app_height, float2{ float(0.957) * app_width, float(0.99) * app_height }, r); + // Upper right window: 3D view + three_dim.draw_view({ app_width / 2, app_height / 2 }, app_width, app_height, app_state, r); +``` + +In the main function, we first initialize the `window` as well as the `camera_renderer`, `tracker` and `split_screen_renderer` objects. +```cpp +int main(int argc, char * argv[]) try +{ + // Initialize window for rendering + window app(1280, 720, "RealSense Trajectory Example"); + + // Construct an object to manage view state + glfw_state app_state(0.0, 0.0); + // Register callbacks to allow manipulation of the view state + register_glfw_callbacks(app, app_state); + + // Create objects for rendering the camera, the trajectory and the split screen + camera_renderer cam_renderer; + tracker tracker; + split_screen_renderer screen_renderer(app.width(), app.height(), tracker, cam_renderer); +``` + +Then, we initialize `rs2::pipeline`. We configure it with `RS2_STREAM_POSE` since we'll only use pose frames, and start the pipeline. +```cpp +// Declare RealSense pipeline, encapsulating the actual device and sensors +rs2::pipeline pipe; +// Create a configuration for configuring the pipeline with a non default profile +rs2::config cfg; +// Add pose stream +cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + +// Start pipeline with chosen configuration +pipe.start(cfg); +``` + +In the main loop, we obtain the next pose frame and get it's `pose_data`. +```cpp +while (app) +{ + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the pose stream + auto f = frames.first_or_default(RS2_STREAM_POSE); + // Cast the frame to pose_frame and get its data + auto pose_data = f.as().get_pose_data(); +``` + +Using the `pose_data`, we can calculate the transformation matrix. We use a one dimensional array of length 16 to store the matrix, for convenient work with OpenGL. +```cpp +float r[16]; +// Calculate current transformation matrix +tracker.calc_transform(pose_data, r); +``` + +The next point of the trajectory is obtained from the computed transformation matrix. Along with it's confidence level, we try adding the new point to the trajectory vector using `add_to_trajectory` function. +```cpp +// From the matrix we found, get the new location point +rs2_vector tr{ r[12], r[13], r[14] }; +// Create a new point to be added to the trajectory +tracked_point p{ tr , pose_data.tracker_confidence }; +// Register the new point +tracker.add_to_trajectory(p); +``` + +Finally, we draw the trajectory of the camera movement so far and render a 3D model of the camera according to it's current pose. The rendering is done from different perspectives in each of the viewports using `draw_windows` as described above. +```cpp +// Draw the trajectory from different perspectives +screen_renderer.draw_windows(app.width(), app.height(), app_state, r); +``` diff --git a/examples/trajectory/rs-trajectory.cpp b/examples/trajectory/rs-trajectory.cpp new file mode 100644 index 00000000000..9c01cd5ece7 --- /dev/null +++ b/examples/trajectory/rs-trajectory.cpp @@ -0,0 +1,498 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "example.hpp" // Include short list of convenience functions for rendering +#include + +struct short3 +{ + uint16_t x, y, z; +}; + +#include "t265.h" + +// Struct to store trajectory points +struct tracked_point +{ + rs2_vector point; + unsigned int confidence; +}; + +// Class to store the trajectory and draw it +class tracker +{ +public: + // Calculates transformation matrix based on pose data from the device + void calc_transform(rs2_pose& pose_data, float mat[16]) + { + auto q = pose_data.rotation; + auto t = pose_data.translation; + // Set the matrix as column-major for convenient work with OpenGL and rotate by 180 degress (by negating 1st and 3rd columns) + mat[0] = -(1 - 2 * q.y*q.y - 2 * q.z*q.z); mat[4] = 2 * q.x*q.y - 2 * q.z*q.w; mat[8] = -(2 * q.x*q.z + 2 * q.y*q.w); mat[12] = t.x; + mat[1] = -(2 * q.x*q.y + 2 * q.z*q.w); mat[5] = 1 - 2 * q.x*q.x - 2 * q.z*q.z; mat[9] = -(2 * q.y*q.z - 2 * q.x*q.w); mat[13] = t.y; + mat[2] = -(2 * q.x*q.z - 2 * q.y*q.w); mat[6] = 2 * q.y*q.z + 2 * q.x*q.w; mat[10] = -(1 - 2 * q.x*q.x - 2 * q.y*q.y); mat[14] = t.z; + mat[3] = 0.0f; mat[7] = 0.0f; mat[11] = 0.0f; mat[15] = 1.0f; + } + + // Updates minimum and maximum coordinates of the trajectory, used in order to scale the viewport accordingly + void update_min_max(rs2_vector point) + { + max_coord.x = std::max(max_coord.x, point.x); + max_coord.y = std::max(max_coord.y, point.y); + max_coord.z = std::max(max_coord.z, point.z); + min_coord.x = std::min(min_coord.x, point.x); + min_coord.y = std::min(min_coord.y, point.y); + min_coord.z = std::min(min_coord.z, point.z); + } + + // Register new point in the trajectory + void add_to_trajectory(tracked_point& p) + { + // If first element, add to trajectory and initialize minimum and maximum coordinates + if (trajectory.size() == 0) + { + trajectory.push_back(p); + max_coord = p.point; + min_coord = p.point; + } + else + { + // Check if new element is far enough - more than 1 mm (to keep trajectory vector as small as possible) + rs2_vector prev = trajectory.back().point; + rs2_vector curr = p.point; + if (sqrt(pow((curr.x - prev.x), 2) + pow((curr.y - prev.y), 2) + pow((curr.z - prev.z), 2)) < 0.001) + { + // If new point is too close to previous point and has higher confidence, replace the previous point with the new one + if (p.confidence > trajectory.back().confidence) + { + trajectory.back() = p; + update_min_max(p.point); + } + } + else + { + // If new point is far enough, add it to trajectory + trajectory.push_back(p); + update_min_max(p.point); + } + } + } + + // Draw trajectory with colors according to point confidence + void draw_trajectory() + { + float3 colors[]{ + { 0.7f, 0.7f, 0.7f }, + { 1.0f, 0.0f, 0.0f }, + { 1.0f, 1.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f }, + }; + + glLineWidth(2.0f); + glBegin(GL_LINE_STRIP); + for (auto&& v : trajectory) + { + auto c = colors[v.confidence]; + glColor3f(c.x, c.y, c.z); + glVertex3f(v.point.x, v.point.y, v.point.z); + } + glEnd(); + glLineWidth(0.5f); + } + + rs2_vector get_max_coord() + { + return max_coord; + } + + rs2_vector get_min_coord() + { + return min_coord; + } +private: + std::vector trajectory; + rs2_vector max_coord; + rs2_vector min_coord; +}; + +// Class that handles rendering of the T265 3D model +class camera_renderer +{ +public: + // Initialize renderer with data needed to draw the camera + camera_renderer() + { + uncompress_t265_obj(positions, normals, indexes); + } + + // Render the camera model + void render_camera() + { + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + + // Scale camera drawing to match view + glScalef(0.001, 0.001, 0.001); + + glBegin(GL_TRIANGLES); + // Draw the camera + for (auto& i : indexes) + { + glVertex3fv(&positions[i.x].x); + glVertex3fv(&positions[i.y].x); + glVertex3fv(&positions[i.z].x); + glColor4f(0.036f, 0.044f, 0.051f, 0.3f); + } + glEnd(); + glDisable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + } +private: + std::vector positions, normals; + std::vector indexes; +}; + +// Renders grid for the 3D view +void draw_grid() +{ + glPushMatrix(); + glBegin(GL_LINES); + glColor4f(0.4f, 0.4f, 0.4f, 1.f); + for (int i = 0; i <= 8; i++) + { + glVertex3i(-i + 4, -4, 0); + glVertex3i(-i + 4, 4, 0); + glVertex3i(4, -i+4, 0); + glVertex3i(-4, -i+4, 0); + } + glEnd(); + glPopMatrix(); +} + +// Sets the 3D view and handles user manipulations +void render_scene(glfw_state app_state) +{ + glClearColor(0.0, 0.0, 0.0, 1.0); + glColor3f(1.0, 1.0, 1.0); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60.0, 4 / 3, 0.5, 100); + + glClear(GL_COLOR_BUFFER_BIT); + glMatrixMode(GL_MODELVIEW); + + glLoadIdentity(); + gluLookAt(1, -1, 4, 0, 1, 0, 0, 0, 1); + glTranslatef(0, 0, app_state.offset_y); + glRotated(app_state.pitch, -1, 0, 0); + glRotated(app_state.yaw, 0, 0, -1); + draw_grid(); +} + + +// Draws seprating lines between viewports +void draw_borders() +{ + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glColor4f(0.4f, 0.4f, 0.4f, 1.f); + glBegin(GL_LINE_STRIP); + glVertex2i(1, 0); + glVertex2i(-1, 0); + glVertex2i(0, 0); + glVertex2i(0, 1); + glVertex2i(0, -1); + glEnd(); +} + +// Calculates and prints the scale of the viewport in meters +float display_scale(float scale_factor, float x_pos, float y_pos) +{ + glColor3f(1.0f, 1.0f, 1.0f); + // Set default width for the scale bar (in OpenGL units) + float bar_width = 0.1; + // Calculate the ratio of the default width to the current scale factor + float bar_scale = bar_width / scale_factor; + // If scale is less than 1 meter, display it as is + if (bar_scale > 1) + { + // If scale is between 1 and 2, round to 1 + bar_scale = floor(bar_scale); + // If scale is above 2, round down to the nearest multiple of 5 + if (bar_scale > 2) + { + int diff = 5 - int(bar_scale) % 5; + bar_scale = bar_scale + diff; + } + // Calculate the bar width matching the calculated scale + bar_width = scale_factor * bar_scale; + } + // Print scale + std::stringstream ss; + ss << bar_scale << " m"; + auto str = ss.str(); + draw_text(x_pos, y_pos, str.c_str()); + ss.clear(); ss.str(""); + return bar_width; +} + +// Draw x, y, z axes +void draw_axes() +{ + glBegin(GL_LINES); + glColor3f(1, 0, 0); glVertex3f(0, 0, 0); glVertex3f(-1, 0, 0); + glColor3f(0, 1, 0); glVertex3f(0, 0, 0); glVertex3f(0, -1, 0); + glColor3f(0, 0, 1); glVertex3f(0, 0, 0); glVertex3f(0, 0, 1); + glEnd(); +} + +typedef float rs2_vector::* pos; + +// Base class for rendering a viewport +class view +{ +public: + view(float width, float height, tracker& tracker, camera_renderer& r) + : width(width), height(height), aspect (height / width), t(tracker), renderer(r) { } + + // Setup viewport + void load_matrices(float2 pos, float app_width, float app_height) + { + width = app_width; + height = app_height; + aspect = height / width; + + // Set viewport to 1/4 of the app window and enable scissor test to avoid rendering outside the current viewport + glViewport(pos.x, pos.y, width / 2, height / 2); + glEnable(GL_SCISSOR_TEST); + glScissor(pos.x, pos.y, width / 2, height / 2); + + // Setup orthogonal projection matrix + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glOrtho(-1.0, 1.0, -1.0 * aspect, 1.0 * aspect, -100.0, 100.0); + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); + } + + // Return to default setup + void clean_matrices() + { + // Pop LookAt matrix + glPopMatrix(); + // Pop Projection matrix + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + // Set viewport back to full screen + glViewport(0, 0, width, height); + glDisable(GL_SCISSOR_TEST); + } + + // Draw trajectoy and render camera according to the given transformation matrix + void draw_cam_trajectory(float angle, float3 axes, float r[16]) + { + glPushMatrix(); + // Set initial camera position (rotate by given angle) + glRotatef(angle, axes.x, axes.y, axes.z); + t.draw_trajectory(); + glMultMatrixf(r); + renderer.render_camera(); + glPopMatrix(); + } +protected: + float width, height; + float aspect; + tracker& t; +private: + camera_renderer& renderer; +}; + +// Class for rendering 2d view of the camera and trajectory +class view_2d : public view +{ +public: + view_2d(float width, float height, tracker& tracker, camera_renderer& renderer, rs2_vector lookat_eye, pos a, pos b, pos c) + : view(width, height, tracker, renderer), a(a), b(b), c(c), lookat_eye(lookat_eye), window_borders{ 1, aspect } + { } + + // Renders a viewport on 1/4 of the app window + void draw_view(float2 pos, float width, float height, float2 scale_pos, float r[16]) + { + // Calculate and print scale in meters + float bar_width = display_scale(scale_factor, scale_pos.x, scale_pos.y); + + rs2_vector min_coord = t.get_min_coord(); + rs2_vector max_coord = t.get_max_coord(); + + // Prepare viewport for rendering + load_matrices(pos, width, height); + + glBegin(GL_LINES); + // Draw scale bar + glColor3f(1.0f, 1.0f, 1.0f); + glVertex3f(0.8, -0.9 * aspect, 0); glVertex3f(0.8 + bar_width, -0.9 * aspect, 0); + glEnd(); + // Set a 2D view using OpenGL's LookAt matrix + gluLookAt(lookat_eye.x, lookat_eye.y, lookat_eye.z, 0, 0, 0, 0, 1, 0); + // Draw axes (only two are visible) + draw_axes(); + // Scale viewport according to current scale factor + glScalef(scale_factor, scale_factor, scale_factor); + // If trajectory reached one of the viewport's borders, zoom out and update scale factor + if (min_coord.*a < -window_borders.x || max_coord.*a > window_borders.x + || min_coord.*b < -window_borders.y || max_coord.*b > window_borders.y) + { + glScalef(0.5, 0.5, 0.5); + scale_factor *= 0.5; + window_borders.x = window_borders.x * 2; + window_borders.y = window_borders.y * 2; + } + // Draw trajectory and camera + draw_cam_trajectory(180, { 0, 1, 0 }, r); + // Return the default configuration of OpenGL's matrices + clean_matrices(); + } +private: + float2 window_borders; + float scale_factor = 1.0; + rs2_vector lookat_eye; + pos a, b, c; +}; + +// Class for rendering 3D view of the camera and trajectory +class view_3d : public view +{ +public: + view_3d(float width, float height, tracker& tracker, camera_renderer& renderer) + : view(width, height, tracker, renderer) { } + + void draw_view(float2 pos, float app_width, float app_height, glfw_state app_state, float r[16]) + { + // Prepare viewport for rendering + load_matrices(pos, app_width, app_height); + // Set the scene configuration and handle user's manipulations + render_scene(app_state); + // Draw trajectory and camera + draw_cam_trajectory(90, { 1, 0, 0 }, r); + // // Return the default configuration of OpenGL's matrices + clean_matrices(); + } +}; + + +class split_screen_renderer +{ +public: + split_screen_renderer(float app_width, float app_height, tracker& tracker, camera_renderer& renderer) + : top(app_width, app_height, tracker, renderer, rs2_vector{ 0, 10, -(1e-3f) }, &rs2_vector::x, &rs2_vector::z, &rs2_vector::y), + front(app_width, app_height, tracker, renderer, rs2_vector{ 0, 0, -10 }, &rs2_vector::x, &rs2_vector::y, &rs2_vector::z), + side(app_width, app_height, tracker, renderer, rs2_vector{ 10, 0, 0 }, &rs2_vector::z, &rs2_vector::y, &rs2_vector::x), + three_dim(app_width, app_height, tracker, renderer) + { } + + void draw_windows(float app_width, float app_height, glfw_state app_state, float r[16]) + { + // Clear screen + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + // Upper left window: top perspective (x and z axes) + top.draw_view({ 0, app_height / 2 }, app_width, app_height, float2{ float(0.457) * app_width, float(0.49) * app_height }, r); + // Lower left window: front perspective (x and y axes) + front.draw_view({ 0, 0 }, app_width, app_height, float2{ float(0.457) * app_width, float(0.99) * app_height }, r); + // Lower right window: side perspective (y and z axes) + side.draw_view({ app_width / 2, 0 }, app_width, app_height, float2{ float(0.957) * app_width, float(0.99) * app_height }, r); + // Upper right window: 3D view + three_dim.draw_view({ app_width / 2, app_height / 2 }, app_width, app_height, app_state, r); + + // Draw viewport titles + glColor3f(1.0f, 1.0f, 1.0f); + draw_text(0.005 * app_width, 0.02 * app_height, "TOP"); + draw_text(0.005 * app_width, 0.52 * app_height, "FRONT"); + draw_text(0.505 * app_width, 0.52 * app_height, "SIDE"); + draw_text(0.505 * app_width, 0.02 * app_height, "3D"); + + // Label axes + glColor3f(1.0f, 0.0f, 0.0f); + draw_text(0.494 * app_width, 0.261 * app_height, "x"); + draw_text(0.494 * app_width, 0.761 * app_height, "x"); + glColor3f(0.0f, 0.0f, 1.0f); + draw_text(0.245 * app_width, 0.01 * app_height, "z"); + draw_text(0.503 * app_width, 0.761 * app_height, "z"); + glColor3f(0.0f, 1.0f, 0.0f); + draw_text(0.245 * app_width, 0.995 * app_height, "y"); + draw_text(0.745 * app_width, 0.995 * app_height, "y"); + + // Draw lines bounding each viewport + draw_borders(); + } +private: + view_2d top, front, side; + view_3d three_dim; +}; + +// In this example, we show how to track the camera's motion using a T265 device +int main(int argc, char * argv[]) try +{ + // Initialize window for rendering + window app(1280, 720, "RealSense Trajectory Example"); + + // Construct an object to manage view state + glfw_state app_state(0.0, 0.0); + // Register callbacks to allow manipulation of the view state + register_glfw_callbacks(app, app_state); + + // Create objects for rendering the camera, the trajectory and the split screen + camera_renderer cam_renderer; + tracker tracker; + split_screen_renderer screen_renderer(app.width(), app.height(), tracker, cam_renderer); + + // Declare RealSense pipeline, encapsulating the actual device and sensors + rs2::pipeline pipe; + // Create a configuration for configuring the pipeline with a non default profile + rs2::config cfg; + // Add pose stream + cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF); + + // Start pipeline with chosen configuration + pipe.start(cfg); + + // Main loop + while (app) + { + // Wait for the next set of frames from the camera + auto frames = pipe.wait_for_frames(); + // Get a frame from the pose stream + auto f = frames.first_or_default(RS2_STREAM_POSE); + // Cast the frame to pose_frame and get its data + auto pose_data = f.as().get_pose_data(); + float r[16]; + // Calculate current transformation matrix + tracker.calc_transform(pose_data, r); + // From the matrix we found, get the new location point + rs2_vector tr{ r[12], r[13], r[14] }; + // Create a new point to be added to the trajectory + tracked_point p{ tr , pose_data.tracker_confidence }; + // Register the new point + tracker.add_to_trajectory(p); + // Draw the trajectory from different perspectives + screen_renderer.draw_windows(app.width(), app.height(), app_state, r); + } + + return EXIT_SUCCESS; +} +catch (const rs2::error & e) +{ + std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what() << std::endl; + return EXIT_FAILURE; +} +catch (const std::exception& e) +{ + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; +} diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt new file mode 100644 index 00000000000..81d8cdc93c2 --- /dev/null +++ b/include/CMakeLists.txt @@ -0,0 +1,37 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +target_sources(${LRS_TARGET} + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/rs.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/rs.h" + + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_types.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_context.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_device.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_frame.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_option.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_processing.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_record_playback.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_sensor.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_internal.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_pipeline.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_config.h" + + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_types.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_context.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_device.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_serializable_device.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_export.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_frame.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_processing.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_record_playback.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_sensor.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_options.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_internal.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/hpp/rs_pipeline.hpp" + + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/rsutil.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/rs_advanced_mode.h" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/rs_advanced_mode.hpp" + "${CMAKE_CURRENT_LIST_DIR}/librealsense2/h/rs_advanced_mode_command.h" +) diff --git a/include/librealsense2-gl/rs_processing_gl.h b/include/librealsense2-gl/rs_processing_gl.h new file mode 100644 index 00000000000..8d2a177dd99 --- /dev/null +++ b/include/librealsense2-gl/rs_processing_gl.h @@ -0,0 +1,226 @@ +/* License: Apache 2.0. See LICENSE file in root directory. + Copyright(c) 2017 Intel Corporation. All Rights Reserved. */ + +/** \file rs_processing_gl.h +* \brief +* Exposes RealSense processing-block functionality for GPU for C compilers +*/ + +#ifndef LIBREALSENSE_RS2_PROCESSING_GL_H +#define LIBREALSENSE_RS2_PROCESSING_GL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "librealsense2/rs.h" + +/* +* GL-specific extension types. +* Used similar to regular RS extensions +*/ +typedef enum rs2_gl_extension +{ + RS2_GL_EXTENSION_VIDEO_FRAME, + RS2_GL_EXTENSION_COUNT +} rs2_gl_extension; +const char* rs2_gl_extension_to_string(rs2_extension type); + +/* +* In addition to "options", GL processing blocks +* expose new type of multidementional options each holding a 4x4 matrix +*/ +typedef enum rs2_gl_matrix_type +{ + RS2_GL_MATRIX_TRANSFORMATION, + RS2_GL_MATRIX_PROJECTION, + RS2_GL_MATRIX_CAMERA, + RS2_GL_MATRIX_COUNT +} rs2_gl_matrix_type; +const char* rs2_gl_matrix_type_to_string(rs2_gl_matrix_type type); + +/* Forward-declare GLFW types */ +typedef struct GLFWwindow GLFWwindow; +typedef struct GLFWmonitor GLFWmonitor; +typedef int(*glfwInitFun)(void); +typedef void(*glfwWindowHintFun)(int, int); +typedef GLFWwindow*(*glfwCreateWindowFun)(int, int, const char*, GLFWmonitor*, GLFWwindow*); +typedef void(*glfwDestroyWindowFun)(GLFWwindow*); +typedef void(*glfwMakeContextCurrentFun)(GLFWwindow*); +typedef GLFWwindow*(*glfwGetCurrentContextFun)(void); +typedef void(*glfwSwapIntervalFun)(int); +typedef void(*GLFWglproc)(void); +typedef GLFWglproc(*glfwGetProcAddressFun)(const char*); + +/* To avoid GLFW version mismatch (mainly can affect Windows), the application passes pointers +* to its version of GLFW, via glfw_bindings struct +*/ +struct glfw_binding +{ + glfwInitFun glfwInit; + glfwWindowHintFun glfwWindowHint; + glfwCreateWindowFun glfwCreateWindow; + glfwDestroyWindowFun glfwDestroyWindow ; + glfwMakeContextCurrentFun glfwMakeContextCurrent; + glfwGetCurrentContextFun glfwGetCurrentContext; + glfwSwapIntervalFun glfwSwapInterval; + glfwGetProcAddressFun glfwGetProcAddress; +}; + +/** +* Creates a processing block that can efficiently convert YUY image format to RGB variants +* This is specifically useful for rendering the RGB frame to the screen (since the output is ready for rendering on the GPU) +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_gl_create_yuy_decoder(int api_version, rs2_error** error); + +/** +* Sets new value to one of processing blocks matrices +* \param[in] block Processing block object +* \param[in] type Matrix type +* \param[in] m4x4 Pointer to 16 floating point values encoding 4x4 matrix +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_set_matrix(rs2_processing_block* block, rs2_gl_matrix_type type, float* m4x4, rs2_error** error); + +/** +* Query if frame is extendable to one of the GL-specific extensions +* \param[in] f Frame pointer +* \param[in] extension_type Extension type +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \returns 1 if true, 0 otherwise +*/ +int rs2_gl_is_frame_extendable_to(const rs2_frame* f, rs2_gl_extension extension_type, rs2_error** error); + +/** +* Assuming frame is extendable to RS2_GL_EXTENSION_VIDEO_FRAME, +* this method will fetch one of frames texture IDs +* Each GPU frame can hold one or more OpenGL textures +* \param[in] f Frame pointer +* \param[in] id Index of texture within the frame +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \returns OpenGL texture +*/ +unsigned int rs2_gl_frame_get_texture_id(const rs2_frame* f, unsigned int id, rs2_error** error); + +/** + * Camera renderer is a rendering block (meaning it has to be called within the main OpenGL rendering context) + * that will render the camera model of the frame provided to it + * \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ +rs2_processing_block* rs2_gl_create_camera_renderer(int api_version, rs2_error** error); + +/** + * Pointcloud renderer will render texture pointcloud as either points + * or connected polygons + * \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ +rs2_processing_block* rs2_gl_create_pointcloud_renderer(int api_version, rs2_error** error); + +/** +* Creates Point-Cloud processing block. This block accepts depth frames and outputs Points frames +* In addition, given non-depth frame, the block will align texture coordinate to the non-depth stream +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_gl_create_pointcloud(int api_version, rs2_error** error); + +/** +* Creates Upload processing block +* This object can explicitly copy frames from the CPU to the GPU +* This allows pre-emptively upload frame to the GPU on a background thread +* To be used directly in future GPU processing +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_gl_create_uploader(int api_version, rs2_error** error); + +/** +* Creates Colorizer processing block +* This block has similar capabilities as the regular librealsense colorizer +* It is capable of applying depth to RGB conversion using various color schemes +* and optional histogram equalization +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_gl_create_colorizer(int api_version, rs2_error** error); + +/** +* Creates Align processing block +* This block has similar capabilities as the regular librealsense align +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[in] align_to stream type to be used as the target of frameset alignment +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_gl_create_align(int api_version, rs2_stream to, rs2_error** error); + +/** + * Initialize rendering pipeline. This function must be called before executing + * any of the rendering blocks. + * Rendering blocks do not handle threading, and assume all calls (including init / shutdown) + * Until initialized, rendering blocks will do nothing (function as bypass filters) + * are serialized and coming from a single rendering thread + * \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. + * \param[in] use_glsl On modern GPUs you can get slightly better performance using GLSL + * However, this assumes the current rendering context is v3+ + * Setting use_glsl to false will use legacy OpenGL calls + * This in turn assumes the rendering context is either version < 3, or is a compatibility context + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_init_rendering(int api_version, int use_glsl, rs2_error** error); + +/** +* In order to use GL rendering with GLFW application +* the user need to initialize rendering by passing GLFW binding information +* C++ wrapper will automatically generate and pass this data +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[in] bindings Pointers to GLFW methods that will be used by the library +* \param[in] use_glsl Use GLSL shaders for rendering +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_init_rendering_glfw(int api_version, glfw_binding bindings, int use_glsl, rs2_error** error); + +/** + * Initialize processing pipeline. This function allows GL processing blocks to + * run on the GPU. Until initialized, all GL processing blocks will fall back + * to their CPU versions. + * When initializing using this method, texture sharing is not available. + * \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ +void rs2_gl_init_processing(int api_version, int use_glsl, rs2_error** error); + +/** +* In order to share GL processing results with GLFW rendering application +* the user need to initialize rendering by passing GLFW binding information +* C++ wrapper will automatically generate and pass this data +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[in] share_with Pointer to GLFW window object. This window will be able to use texture IDs provided inside GPU-frames generated by the library +* \param[in] bindings Pointers to GLFW methods that will be used by the library +* \param[in] use_glsl Use GLSL shaders for processing +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_init_processing_glfw(int api_version, GLFWwindow* share_with, + glfw_binding bindings, int use_glsl, rs2_error** error); + +/** +* Shutdown librealsense rendering. This will disable all rendering blocks +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_shutdown_rendering(int api_version, rs2_error** error); + +/** +* Shutdown librealsense processing. This will switch all GL processing blocks into CPU only mode +* \param[in] api_version Users are expected to pass their version of \c RS2_API_VERSION to make sure they are running the correct librealsense version. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_gl_shutdown_processing(int api_version, rs2_error** error); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/include/librealsense2-gl/rs_processing_gl.hpp b/include/librealsense2-gl/rs_processing_gl.hpp new file mode 100644 index 00000000000..74e1bd430c8 --- /dev/null +++ b/include/librealsense2-gl/rs_processing_gl.hpp @@ -0,0 +1,306 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#ifndef LIBREALSENSE_RS2_PROCESSING_GL_HPP +#define LIBREALSENSE_RS2_PROCESSING_GL_HPP + +#include +#include "rs_processing_gl.h" + +#include + +namespace rs2 +{ + namespace gl + { + class pointcloud; + class yuy_to_rgb; + + inline void shutdown_rendering() + { + rs2_error* e = nullptr; + rs2_gl_shutdown_rendering(RS2_API_VERSION, &e); + error::handle(e); + } + +#ifdef _glfw3_h_ + inline void init_rendering(bool use_glsl = true) + { + rs2_error* e = nullptr; + + glfw_binding binding{ + nullptr, + &glfwWindowHint, + &glfwCreateWindow, + &glfwDestroyWindow, + &glfwMakeContextCurrent, + &glfwGetCurrentContext, + &glfwSwapInterval, + &glfwGetProcAddress + }; + + rs2_gl_init_rendering_glfw(RS2_API_VERSION, binding, use_glsl ? 1 : 0, &e); + error::handle(e); + } +#else + inline void init_rendering(bool use_glsl = true) + { + rs2_error* e = nullptr; + rs2_gl_init_rendering(RS2_API_VERSION, use_glsl ? 1 : 0, &e); + error::handle(e); + } +#endif + + inline void init_processing(bool use_glsl = true) + { + rs2_error* e = nullptr; + rs2_gl_init_processing(RS2_API_VERSION, use_glsl ? 1 : 0, &e); + error::handle(e); + } + + inline void shutdown_processing() + { + rs2_error* e = nullptr; + rs2_gl_shutdown_processing(RS2_API_VERSION, &e); + error::handle(e); + } + +#ifdef _glfw3_h_ + inline void init_processing(GLFWwindow* share_with, bool use_glsl = true) + { + rs2_error* e = nullptr; + + glfw_binding binding{ + nullptr, + &glfwWindowHint, + &glfwCreateWindow, + &glfwDestroyWindow, + &glfwMakeContextCurrent, + &glfwGetCurrentContext, + &glfwSwapInterval, + &glfwGetProcAddress + }; + + rs2_gl_init_processing_glfw(RS2_API_VERSION, share_with, binding, use_glsl ? 1 : 0, &e); + error::handle(e); + } +#endif + + /** + * GPU-Frame extension can be used to recover underlying OpenGL textures from a GPU frame + * and to check if frame data is stored in CPU or GPU memory + */ + class gpu_frame : public frame + { + public: + gpu_frame(const frame& f) + : frame(f) + { + rs2_error* e = nullptr; + if (!f || (rs2_gl_is_frame_extendable_to(f.get(), RS2_GL_EXTENSION_VIDEO_FRAME, &e) == 0 && !e)) + { + reset(); + } + error::handle(e); + } + + uint32_t get_texture_id(unsigned int id = 0) const + { + rs2_error * e = nullptr; + auto r = rs2_gl_frame_get_texture_id(get(), id, &e); + error::handle(e); + return r; + } + }; + + /** + * yuy_decoder can be used for YUY->RGB conversion + * Similar in functionality to rs2::yuy_decoder but performed on the GPU + */ + class yuy_decoder : public rs2::yuy_decoder + { + public: + yuy_decoder() : rs2::yuy_decoder(init()) { } + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_gl_create_yuy_decoder(RS2_API_VERSION, &e), + rs2_delete_processing_block); + error::handle(e); + + // Redirect options API to the processing block + //options::operator=(pb); + + return block; + } + }; + + /** + * Colorizer can be used for Depth->RGB conversion, including histogram equalization + * Similar in functionality to rs2::colorizer but performed on the GPU + */ + class colorizer : public rs2::colorizer + { + public: + colorizer() : rs2::colorizer(init()) { } + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_gl_create_colorizer(RS2_API_VERSION, &e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; + + class uploader : public rs2::filter + { + public: + uploader() : rs2::filter(init()) { } + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_gl_create_uploader(RS2_API_VERSION, &e), + rs2_delete_processing_block); + error::handle(e); + return block; + } + }; + + /** + * Generating the 3D point cloud base on depth frame also create the mapped texture. + * Similar in functionality to rs2::pointcloud but performed on the GPU + */ + class pointcloud : public rs2::pointcloud + { + public: + pointcloud() : rs2::pointcloud(init()) {} + + pointcloud(rs2_stream stream, int index = 0) + : rs2::pointcloud(init()) + { + set_option(RS2_OPTION_STREAM_FILTER, float(stream)); + set_option(RS2_OPTION_STREAM_INDEX_FILTER, float(index)); + } + + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + + auto block = std::shared_ptr( + rs2_gl_create_pointcloud(RS2_API_VERSION, &e), + rs2_delete_processing_block); + + error::handle(e); + + return block; + } + }; + + /** + * Camera Renderer can be used to visualize underlying camera model, given a frame from the camera + * Based on official CAD files + * For proper rendering, set_matrix needs to be used to configure projection and view matrix + */ + class camera_renderer : public rs2::filter + { + public: + camera_renderer() : rs2::filter(init()) {} + + void set_matrix(rs2_gl_matrix_type type, float* m4x4) + { + rs2_error* e = nullptr; + rs2_gl_set_matrix(get(), type, m4x4, &e); + error::handle(e); + } + + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + + auto block = std::shared_ptr( + rs2_gl_create_camera_renderer(RS2_API_VERSION, &e), + rs2_delete_processing_block); + + error::handle(e); + return block; + } + }; + + /** + * Pointcloud renderer can be used to render librealsense points objects to screen + * It can render pointcloud as points (by setting proprietary OPTION_FILLED option to 0) + * or via connected polygons (where every three adjacent points produce a triangle) + * For proper rendering, set_matrix needs to be used to configure projection and view matrix + */ + class pointcloud_renderer : public rs2::filter + { + public: + pointcloud_renderer() : rs2::filter(init()) {} + + void set_matrix(rs2_gl_matrix_type type, float* m4x4) + { + rs2_error* e = nullptr; + rs2_gl_set_matrix(get(), type, m4x4, &e); + error::handle(e); + } + + static const auto OPTION_FILLED = rs2_option(RS2_OPTION_COUNT + 1); + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + + auto block = std::shared_ptr( + rs2_gl_create_pointcloud_renderer(RS2_API_VERSION, &e), + rs2_delete_processing_block); + + error::handle(e); + return block; + } + }; + + /** + */ + class align : public rs2::align + { + public: + align(rs2_stream to) : rs2::align(init(to)) {} + + private: + friend class context; + + std::shared_ptr init(rs2_stream to) + { + rs2_error* e = nullptr; + + auto block = std::shared_ptr( + rs2_gl_create_align(RS2_API_VERSION, to, &e), + rs2_delete_processing_block); + + error::handle(e); + + return block; + } + }; + } +} +#endif // LIBREALSENSE_RS2_PROCESSING_GL_HPP diff --git a/include/librealsense2/h/rs_advanced_mode_command.h b/include/librealsense2/h/rs_advanced_mode_command.h index eead854888e..ce8b46283a3 100644 --- a/include/librealsense2/h/rs_advanced_mode_command.h +++ b/include/librealsense2/h/rs_advanced_mode_command.h @@ -122,6 +122,11 @@ typedef struct uint32_t vDiameter; }STCensusRadius; +typedef struct +{ + float amplitude; +}STAFactor; + #ifdef __cplusplus extern "C"{ #endif diff --git a/include/librealsense2/h/rs_config.h b/include/librealsense2/h/rs_config.h new file mode 100644 index 00000000000..43bff1dbaac --- /dev/null +++ b/include/librealsense2/h/rs_config.h @@ -0,0 +1,200 @@ +/* License: Apache 2.0. See LICENSE file in root directory. +Copyright(c) 2017 Intel Corporation. All Rights Reserved. */ + +/** \file rs_pipeline.h +* \brief +* Exposes RealSense processing-block functionality for C compilers +*/ + + +#ifndef LIBREALSENSE_RS2_CONFIG_H +#define LIBREALSENSE_RS2_CONFIG_H + +#define RS2_DEFAULT_TIMEOUT 15000 + +#ifdef __cplusplus +extern "C" { +#endif + +#include "rs_types.h" +#include "rs_sensor.h" + + /** + * Create a config instance + * The config allows pipeline users to request filters for the pipeline streams and device selection and configuration. + * This is an optional step in pipeline creation, as the pipeline resolves its streaming device internally. + * Config provides its users a way to set the filters and test if there is no conflict with the pipeline requirements + * from the device. It also allows the user to find a matching device for the config filters and the pipeline, in order to + * select a device explicitly, and modify its controls before streaming starts. + * + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return rs2_config* A pointer to a new config instance + */ + rs2_config* rs2_create_config(rs2_error** error); + + /** + * Deletes an instance of a config + * + * \param[in] config A pointer to an instance of a config + */ + void rs2_delete_config(rs2_config* config); + + /** + * Enable a device stream explicitly, with selected stream parameters. + * The method allows the application to request a stream with specific configuration. If no stream is explicitly enabled, the pipeline + * configures the device and its streams according to the attached computer vision modules and processing blocks requirements, or + * default configuration for the first available device. + * The application can configure any of the input stream parameters according to its requirement, or set to 0 for don't care value. + * The config accumulates the application calls for enable configuration methods, until the configuration is applied. Multiple enable + * stream calls for the same stream with conflicting parameters override each other, and the last call is maintained. + * Upon calling \c resolve(), the config checks for conflicts between the application configuration requests and the attached computer + * vision modules and processing blocks requirements, and fails if conflicts are found. Before \c resolve() is called, no conflict + * check is done. + * + * \param[in] config A pointer to an instance of a config + * \param[in] stream Stream type to be enabled + * \param[in] index Stream index, used for multiple streams of the same type. -1 indicates any. + * \param[in] width Stream image width - for images streams. 0 indicates any. + * \param[in] height Stream image height - for images streams. 0 indicates any. + * \param[in] format Stream data format - pixel format for images streams, of data type for other streams. RS2_FORMAT_ANY indicates any. + * \param[in] framerate Stream frames per second. 0 indicates any. + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_stream(rs2_config* config, + rs2_stream stream, + int index, + int width, + int height, + rs2_format format, + int framerate, + rs2_error** error); + + /** + * Enable all device streams explicitly. + * The conditions and behavior of this method are similar to those of \c enable_stream(). + * This filter enables all raw streams of the selected device. The device is either selected explicitly by the application, + * or by the pipeline requirements or default. The list of streams is device dependent. + * + * \param[in] config A pointer to an instance of a config + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_all_stream(rs2_config* config, rs2_error ** error); + + /** + * Select a specific device explicitly by its serial number, to be used by the pipeline. + * The conditions and behavior of this method are similar to those of \c enable_stream(). + * This method is required if the application needs to set device or sensor settings prior to pipeline streaming, to enforce + * the pipeline to use the configured device. + * + * \param[in] config A pointer to an instance of a config + * \param[in] serial device serial number, as returned by RS2_CAMERA_INFO_SERIAL_NUMBER + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_device(rs2_config* config, const char* serial, rs2_error ** error); + + /** + * Select a recorded device from a file, to be used by the pipeline through playback. + * The device available streams are as recorded to the file, and \c resolve() considers only this device and configuration + * as available. + * This request cannot be used if enable_record_to_file() is called for the current config, and vise versa + * By default, playback is repeated once the file ends. To control this, see 'rs2_config_enable_device_from_file_repeat_option'. + * + * \param[in] config A pointer to an instance of a config + * \param[in] file The playback file of the device + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_device_from_file(rs2_config* config, const char* file, rs2_error ** error); + + /** + * Select a recorded device from a file, to be used by the pipeline through playback. + * The device available streams are as recorded to the file, and \c resolve() considers only this device and configuration + * as available. + * This request cannot be used if enable_record_to_file() is called for the current config, and vise versa + * + * \param[in] config A pointer to an instance of a config + * \param[in] file The playback file of the device + * \param[in] repeat_playback if true, when file ends the playback starts again, in an infinite loop; + if false, when file ends playback does not start again, and should by stopped manually by the user. + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_device_from_file_repeat_option(rs2_config* config, const char* file, int repeat_playback, rs2_error ** error); + + /** + * Requires that the resolved device would be recorded to file + * This request cannot be used if enable_device_from_file() is called for the current config, and vise versa + * + * \param[in] config A pointer to an instance of a config + * \param[in] file The desired file for the output record + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_enable_record_to_file(rs2_config* config, const char* file, rs2_error ** error); + + + /** + * Disable a device stream explicitly, to remove any requests on this stream type. + * The stream can still be enabled due to pipeline computer vision module request. This call removes any filter on the + * stream configuration. + * + * \param[in] config A pointer to an instance of a config + * \param[in] stream Stream type, for which the filters are cleared + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_disable_stream(rs2_config* config, rs2_stream stream, rs2_error ** error); + + /** + * Disable a device stream explicitly, to remove any requests on this stream profile. + * The stream can still be enabled due to pipeline computer vision module request. This call removes any filter on the + * stream configuration. + * + * \param[in] config A pointer to an instance of a config + * \param[in] stream Stream type, for which the filters are cleared + * \param[in] index Stream index, for which the filters are cleared + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_disable_indexed_stream(rs2_config* config, rs2_stream stream, int index, rs2_error ** error); + + /** + * Disable all device stream explicitly, to remove any requests on the streams profiles. + * The streams can still be enabled due to pipeline computer vision module request. This call removes any filter on the + * streams configuration. + * + * \param[in] config A pointer to an instance of a config + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + void rs2_config_disable_all_streams(rs2_config* config, rs2_error ** error); + + /** + * Resolve the configuration filters, to find a matching device and streams profiles. + * The method resolves the user configuration filters for the device and streams, and combines them with the requirements of + * the computer vision modules and processing blocks attached to the pipeline. If there are no conflicts of requests, it looks + * for an available device, which can satisfy all requests, and selects the first matching streams configuration. In the absence + * of any request, the rs2::config selects the first available device and the first color and depth streams configuration. + * The pipeline profile selection during \c start() follows the same method. Thus, the selected profile is the same, if no + * change occurs to the available devices occurs. + * Resolving the pipeline configuration provides the application access to the pipeline selected device for advanced control. + * The returned configuration is not applied to the device, so the application doesn't own the device sensors. However, the + * application can call \c enable_device(), to enforce the device returned by this method is selected by pipeline \c start(), + * and configure the device and sensors options or extensions before streaming starts. + * + * \param[in] config A pointer to an instance of a config + * \param[in] pipe The pipeline for which the selected filters are applied + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return A matching device and streams profile, which satisfies the filters and pipeline requests. + */ + rs2_pipeline_profile* rs2_config_resolve(rs2_config* config, rs2_pipeline* pipe, rs2_error ** error); + + /** + * Check if the config can resolve the configuration filters, to find a matching device and streams profiles. + * The resolution conditions are as described in \c resolve(). + * + * \param[in] config A pointer to an instance of a config + * \param[in] pipe The pipeline for which the selected filters are applied + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return True if a valid profile selection exists, false if no selection can be found under the config filters and the available devices. + */ + int rs2_config_can_resolve(rs2_config* config, rs2_pipeline* pipe, rs2_error ** error); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/include/librealsense2/h/rs_context.h b/include/librealsense2/h/rs_context.h index 87d375bb356..cd316cd40b6 100644 --- a/include/librealsense2/h/rs_context.h +++ b/include/librealsense2/h/rs_context.h @@ -54,6 +54,14 @@ void rs2_set_devices_changed_callback(const rs2_context* context, rs2_devices_ch * @return A pointer to a device that plays data from the file, or null in case of failure */ rs2_device* rs2_context_add_device(rs2_context* ctx, const char* file, rs2_error** error); + +/** + * Add an instance of software device to the context + * \param ctx The context to which the new device will be added + * \param dev Instance of software device to register into the context + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ +void rs2_context_add_software_device(rs2_context* ctx, rs2_device* dev, rs2_error** error); /** * Removes a playback device from the context, if exists @@ -63,6 +71,15 @@ rs2_device* rs2_context_add_device(rs2_context* ctx, const char* file, rs2_error */ void rs2_context_remove_device(rs2_context* ctx, const char* file, rs2_error** error); +/** + * Removes tracking module. + * function query_devices() locks the tracking module in the tm_context object. + * If the tracking module device is not used it should be removed using this function, so that other applications could find it. + * This function can be used both before the call to query_device() to prevent enabling tracking modules or afterwards to + * release them. + */ +void rs2_context_unload_tracking_module(rs2_context* ctx, rs2_error** error); + /** * create a static snapshot of all connected devices at the time of the call * \param context Object representing librealsense session @@ -71,11 +88,15 @@ void rs2_context_remove_device(rs2_context* ctx, const char* file, rs2_error** e */ rs2_device_list* rs2_query_devices(const rs2_context* context, rs2_error** error); -#define RS2_PRODUCT_LINE_ANY 0xff -#define RS2_PRODUCT_LINE_ANY_INTEL 0xfe -#define RS2_PRODUCT_LINE_NON_INTEL 0x01 -#define RS2_PRODUCT_LINE_D400 0x02 -#define RS2_PRODUCT_LINE_SR300 0x04 +#define RS2_PRODUCT_LINE_ANY 0xff +#define RS2_PRODUCT_LINE_ANY_INTEL 0xfe +#define RS2_PRODUCT_LINE_NON_INTEL 0x01 +#define RS2_PRODUCT_LINE_D400 0x02 +#define RS2_PRODUCT_LINE_SR300 0x04 +#define RS2_PRODUCT_LINE_L500 0x08 +#define RS2_PRODUCT_LINE_T200 0x10 +#define RS2_PRODUCT_LINE_DEPTH (RS2_PRODUCT_LINE_L500 | RS2_PRODUCT_LINE_SR300 | RS2_PRODUCT_LINE_D400) +#define RS2_PRODUCT_LINE_TRACKING RS2_PRODUCT_LINE_T200 /** * create a static snapshot of all connected devices at the time of the call diff --git a/include/librealsense2/h/rs_device.h b/include/librealsense2/h/rs_device.h index 5ef5de31899..43ba91b8d3b 100644 --- a/include/librealsense2/h/rs_device.h +++ b/include/librealsense2/h/rs_device.h @@ -146,6 +146,213 @@ void rs2_connect_tm2_controller(const rs2_device* device, const unsigned char* m */ void rs2_disconnect_tm2_controller(const rs2_device* device, int id, rs2_error** error); + +/** +* Reset device to factory calibration +* \param[in] device The RealSense device +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_reset_to_factory_calibration(const rs2_device* device, rs2_error** e); + +/** +* Write calibration to device's EEPROM +* \param[in] device The RealSense device +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_write_calibration(const rs2_device* device, rs2_error** e); + +/** +* Update device to the provided firmware, the device must be extendable to RS2_EXTENSION_UPDATABLE. +* This call is executed on the caller's thread and it supports progress notifications via the optional callback. +* \param[in] device Device to update +* \param[in] fw_image Firmware image buffer +* \param[in] fw_image_size Firmware image buffer size +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_update_firmware_cpp(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback* callback, rs2_error** error); + +/** +* Update device to the provided firmware, the device must be extendable to RS2_EXTENSION_UPDATABLE. +* This call is executed on the caller's thread and it supports progress notifications via the optional callback. +* \param[in] device Device to update +* \param[in] fw_image Firmware image buffer +* \param[in] fw_image_size Firmware image buffer size +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] client_data Optional client data for the callback +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_update_firmware(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error); + +/** +* Create backup of camera flash memory. Such backup does not constitute valid firmware image, and cannot be +* loaded back to the device, but it does contain all calibration and device information. +* \param[in] device Device to update +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +const rs2_raw_data_buffer* rs2_create_flash_backup_cpp(const rs2_device* device, rs2_update_progress_callback* callback, rs2_error** error); + +/** +* Create backup of camera flash memory. Such backup does not constitute valid firmware image, and cannot be +* loaded back to the device, but it does contain all calibration and device information. +* \param[in] device Device to update +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] client_data Optional client data for the callback +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +const rs2_raw_data_buffer* rs2_create_flash_backup(const rs2_device* device, rs2_update_progress_callback_ptr callback, void* client_data, rs2_error** error); + +#define RS2_UNSIGNED_UPDATE_MODE_UPDATE 0 +#define RS2_UNSIGNED_UPDATE_MODE_READ_ONLY 1 +#define RS2_UNSIGNED_UPDATE_MODE_FULL 2 + +/** +* Update device to the provided firmware by writing raw data directly to the flash, this command can be executed only on unlocked camera. +* The device must be extendable to RS2_EXTENSION_UPDATABLE. +* This call is executed on the caller's thread and it supports progress notifications via the optional callback. +* \param[in] device Device to update +* \param[in] fw_image Firmware image buffer +* \param[in] fw_image_size Firmware image buffer size +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] update_mode Select one of RS2_UNSIGNED_UPDATE_MODE, WARNING!!! setting to any option other than RS2_UNSIGNED_UPDATE_MODE_UPDATE will make this call unsafe and might damage the camera +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_update_firmware_unsigned_cpp(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback* callback, int update_mode, rs2_error** error); + +/** +* Update device to the provided firmware by writing raw data directly to the flash, this command can be executed only on unlocked camera. +* The device must be extendable to RS2_EXTENSION_UPDATABLE. +* This call is executed on the caller's thread and it supports progress notifications via the optional callback. +* \param[in] device Device to update +* \param[in] fw_image Firmware image buffer +* \param[in] fw_image_size Firmware image buffer size +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] client_data Optional client data for the callback +* \param[in] update_mode Select one of RS2_UNSIGNED_UPDATE_MODE, WARNING!!! setting to any option other than RS2_UNSIGNED_UPDATE_MODE_UPDATE will make this call unsafe and might damage the camera +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_update_firmware_unsigned(const rs2_device* device, const void* fw_image, int fw_image_size, rs2_update_progress_callback_ptr callback, void* client_data, int update_mode, rs2_error** error); + +/** +* Enter the device to update state, this will cause the updatable device to disconnect and reconnect as update device. +* \param[in] device Device to update +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_enter_update_state(const rs2_device* device, rs2_error** error); + +/** +* This will improve the depth noise. +* \param[in] json_content Json string to configure speed on chip calibration parameters: + { + "speed": 3, + "scan parameter": 0, + "data sampling": 0 + } + speed - value can be one of: Very fast = 0, Fast = 1, Medium = 2, Slow = 3, White wall = 4, default is Slow + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters +* \param[out] health Calibration Health-Check captures how far camera calibration is from the optimal one + [0, 0.25) - Good + [0.25, 0.75) - Can be Improved + [0.75, ) - Requires Calibration +* \param[in] callback Optional callback to get progress notifications +* \param[in] timeout_ms Timeout in ms (use 5000 msec unless instructed otherwise) +* \return New calibration table +*/ +const rs2_raw_data_buffer* rs2_run_on_chip_calibration_cpp(rs2_device* device, const void* json_content, int content_size, float* health, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error); + +/** +* This will improve the depth noise. +* \param[in] json_content Json string to configure speed on chip calibration parameters: + { + "speed": 3, + "scan parameter": 0, + "data sampling": 0 + } + speed - value can be one of: Very fast = 0, Fast = 1, Medium = 2, Slow = 3, White wall = 4, default is Slow + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters +* \param[out] health Calibration Health-Check captures how far camera calibration is from the optimal one + [0, 0.25) - Good + [0.25, 0.75) - Can be Improved + [0.75, ) - Requires Calibration +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] client_data Optional client data for the callback +* \param[in] timeout_ms Timeout in ms (use 5000 msec unless instructed otherwise) +* \return New calibration table +*/ +const rs2_raw_data_buffer* rs2_run_on_chip_calibration(rs2_device* device, const void* json_content, int content_size, float* health, rs2_update_progress_callback_ptr callback, void* client_data, int timeout_ms, rs2_error** error); + +/** +* This will adjust camera absolute distance to flat target. User needs to enter the known ground truth. +* \param[in] ground_truth_mm Ground truth in mm must be between 2500 - 2000000 +* \param[in] json_content Json string to configure tare calibration parameters: + { + "average step count": 20, + "step count": 20, + "accuracy": 2, + "scan parameter": 0, + "data sampling": 0 + } + average step count - number of frames to average, must be between 1 - 30, default = 20 + step count - max iteration steps, must be between 5 - 30, default = 10 + accuracy - Subpixel accuracy level, value can be one of: Very high = 0 (0.025%), High = 1 (0.05%), Medium = 2 (0.1%), Low = 3 (0.2%), Default = Very high (0.025%), default is very high (0.025%) + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters +* \param[in] content_size Json string size if its 0 the json will be ignored and calibration will use the default parameters +* \param[in] callback Optional callback to get progress notifications +* \param[in] timeout_ms Timeout in ms (use 5000 msec unless instructed otherwise) +* \return New calibration table +*/ +const rs2_raw_data_buffer* rs2_run_tare_calibration_cpp(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, rs2_update_progress_callback* progress_callback, int timeout_ms, rs2_error** error); + +/** +* This will adjust camera absolute distance to flat target. User needs to enter the known ground truth. +* \param[in] ground_truth_mm Ground truth in mm must be between 2500 - 2000000 +* \param[in] json_content Json string to configure tare calibration parameters: + { + "average_step_count": 20, + "step count": 20, + "accuracy": 2, + "scan parameter": 0, + "data sampling": 0 + } + average step count - number of frames to average, must be between 1 - 30, default = 20 + step count - max iteration steps, must be between 5 - 30, default = 10 + accuracy - Subpixel accuracy level, value can be one of: Very high = 0 (0.025%), High = 1 (0.05%), Medium = 2 (0.1%), Low = 3 (0.2%), Default = Very high (0.025%), default is very high (0.025%) + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters +* \param[in] content_size Json string size if its 0 the json will be ignored and calibration will use the default parameters +* \param[in] callback Optional callback for update progress notifications, the progress value is normailzed to 1 +* \param[in] client_data Optional client data for the callback +* \param[in] timeout_ms Timeout in ms (use 5000 msec unless instructed otherwise) +* \return New calibration table +*/ +const rs2_raw_data_buffer* rs2_run_tare_calibration(rs2_device* dev, float ground_truth_mm, const void* json_content, int content_size, rs2_update_progress_callback_ptr callback, void* client_data, int timeout_ms, rs2_error** error); + +/** +* Read current calibration table from flash. +* \return Calibration table +*/ +const rs2_raw_data_buffer* rs2_get_calibration_table(const rs2_device* dev, rs2_error** error); + +/** +* Set current table to dynamic area. +* \param[in] Calibration table +*/ +void rs2_set_calibration_table(const rs2_device* device, const void* calibration, int calibration_size, rs2_error** error); + +/* Serialize JSON content, returns ASCII-serialized JSON string on success. otherwise nullptr */ +rs2_raw_data_buffer* rs2_serialize_json(rs2_device* dev, rs2_error** error); + +/* Load JSON and apply advanced-mode controls */ +void rs2_load_json(rs2_device* dev, const void* json_content, unsigned content_size, rs2_error** error); + #ifdef __cplusplus } #endif diff --git a/include/librealsense2/h/rs_frame.h b/include/librealsense2/h/rs_frame.h index c2d35fce68b..35a36db2ab9 100644 --- a/include/librealsense2/h/rs_frame.h +++ b/include/librealsense2/h/rs_frame.h @@ -20,11 +20,12 @@ typedef enum rs2_timestamp_domain { RS2_TIMESTAMP_DOMAIN_HARDWARE_CLOCK, /**< Frame timestamp was measured in relation to the camera clock */ RS2_TIMESTAMP_DOMAIN_SYSTEM_TIME, /**< Frame timestamp was measured in relation to the OS system clock */ + RS2_TIMESTAMP_DOMAIN_GLOBAL_TIME, /**< Frame timestamp was measured in relation to the camera clock and converted to OS system clock by constantly measure the difference*/ RS2_TIMESTAMP_DOMAIN_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_timestamp_domain; const char* rs2_timestamp_domain_to_string(rs2_timestamp_domain info); -/** \brief Per-Frame-Metadata are set of read-only properties that might be exposed for each individual frame */ +/** \brief Per-Frame-Metadata is the set of read-only properties that might be exposed for each individual frame. */ typedef enum rs2_frame_metadata_value { RS2_FRAME_METADATA_FRAME_COUNTER , /**< A sequential index managed per-stream. Integer value*/ @@ -40,9 +41,9 @@ typedef enum rs2_frame_metadata_value RS2_FRAME_METADATA_BACKEND_TIMESTAMP , /**< Timestamp get from uvc driver. usec*/ RS2_FRAME_METADATA_ACTUAL_FPS , /**< Actual fps */ RS2_FRAME_METADATA_FRAME_LASER_POWER , /**< Laser power value 0-360. */ - RS2_FRAME_METADATA_FRAME_LASER_POWER_MODE , /**< Laser power mode. Zero corresponds to Laser power switched off and one for switched on. */ + RS2_FRAME_METADATA_FRAME_LASER_POWER_MODE , /**< Laser power mode. Zero corresponds to Laser power switched off and one for switched on. deprecated, replaced by RS2_FRAME_METADATA_FRAME_EMITTER_MODE*/ RS2_FRAME_METADATA_EXPOSURE_PRIORITY , /**< Exposure priority. */ - RS2_FRAME_METADATA_EXPOSURE_ROI_LEFT , /**< Left region of interest for the auto exposure Algorithm. */ + RS2_FRAME_METADATA_EXPOSURE_ROI_LEFT , /**< Left region of interest for the auto exposure Algorithm. */ RS2_FRAME_METADATA_EXPOSURE_ROI_RIGHT , /**< Right region of interest for the auto exposure Algorithm. */ RS2_FRAME_METADATA_EXPOSURE_ROI_TOP , /**< Top region of interest for the auto exposure Algorithm. */ RS2_FRAME_METADATA_EXPOSURE_ROI_BOTTOM , /**< Bottom region of interest for the auto exposure Algorithm. */ @@ -57,49 +58,14 @@ typedef enum rs2_frame_metadata_value RS2_FRAME_METADATA_MANUAL_WHITE_BALANCE , /**< Color image white balance. */ RS2_FRAME_METADATA_POWER_LINE_FREQUENCY , /**< Power Line Frequency for anti-flickering Off/50Hz/60Hz/Auto. */ RS2_FRAME_METADATA_LOW_LIGHT_COMPENSATION , /**< Color lowlight compensation. Zero corresponds to switched off. */ + RS2_FRAME_METADATA_FRAME_EMITTER_MODE , /**< Emitter mode: 0 - all emitters disabled. 1 - laser enabled. 2 - auto laser enabled (opt). 3 - LED enabled (opt).*/ + RS2_FRAME_METADATA_FRAME_LED_POWER , /**< Led power value 0-360. */ + RS2_FRAME_METADATA_RAW_FRAME_SIZE , /**< The number of transmitted payload bytes, not including metadata */ RS2_FRAME_METADATA_COUNT } rs2_frame_metadata_value; const char* rs2_frame_metadata_to_string(rs2_frame_metadata_value metadata); const char* rs2_frame_metadata_value_to_string(rs2_frame_metadata_value metadata); -/** \brief 3D coordinates with origin at topmost left corner of the lense, - with positive Z pointing away from the camera, positive X pointing camera right and positive Y pointing camera down */ -typedef struct rs2_vertex -{ - float xyz[3]; -} rs2_vertex; - -/** \brief Pixel location within 2D image. (0,0) is the topmost, left corner. Positive X is right, positive Y is down */ -typedef struct rs2_pixel -{ - int ij[2]; -} rs2_pixel; - -/** \brief 3D vector in Euclidean coordinate space */ -typedef struct rs2_vector -{ - float x, y, z; -}rs2_vector; - -/** \brief Quaternion used to represent rotation */ -typedef struct rs2_quaternion -{ - float x, y, z, w; -}rs2_quaternion; - -typedef struct rs2_pose -{ - rs2_vector translation; /**< X, Y, Z values of translation, in meters (relative to initial position) */ - rs2_vector velocity; /**< X, Y, Z values of velocity, in meter/sec */ - rs2_vector acceleration; /**< X, Y, Z values of acceleration, in meter/sec^2 */ - rs2_quaternion rotation; /**< Qi, Qj, Qk, Qr components of rotation as represented in quaternion rotation (relative to initial position) */ - rs2_vector angular_velocity; /**< X, Y, Z values of angular velocity, in radians/sec */ - rs2_vector angular_acceleration; /**< X, Y, Z values of angular acceleration, in radians/sec^2 */ - unsigned int tracker_confidence; /**< pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High */ - unsigned int mapper_confidence; /**< pose data confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High */ -} rs2_pose; - - /** * retrieve metadata from frame handle * \param[in] frame handle returned from a callback @@ -136,6 +102,14 @@ rs2_timestamp_domain rs2_get_frame_timestamp_domain(const rs2_frame* frameset, r */ rs2_time_t rs2_get_frame_timestamp(const rs2_frame* frame, rs2_error** error); +/** +* retrieve frame parent sensor from frame handle +* \param[in] frame handle returned from a callback +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return the parent sensor of the frame +*/ +rs2_sensor* rs2_get_frame_sensor(const rs2_frame* frame, rs2_error** error); + /** * retrieve frame number from frame handle * \param[in] frame handle returned from a callback @@ -144,6 +118,14 @@ rs2_time_t rs2_get_frame_timestamp(const rs2_frame* frame, rs2_error** error); */ unsigned long long rs2_get_frame_number(const rs2_frame* frame, rs2_error** error); +/** +* retrieve data size from frame handle +* \param[in] frame handle returned from a callback +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return the size of the frame data +*/ +int rs2_get_frame_data_size(const rs2_frame* frame, rs2_error** error); + /** * retrieve data from frame handle * \param[in] frame handle returned from a callback @@ -276,6 +258,19 @@ int rs2_is_frame_extendable_to(const rs2_frame* frame, rs2_extension extension_t rs2_frame* rs2_allocate_synthetic_video_frame(rs2_source* source, const rs2_stream_profile* new_stream, rs2_frame* original, int new_bpp, int new_width, int new_height, int new_stride, rs2_extension frame_type, rs2_error** error); +/** +* Allocate new motion frame using a frame-source provided form a processing block +* \param[in] source Frame pool to allocate the frame from +* \param[in] new_stream New stream profile to assign to newly created frame +* \param[in] original A reference frame that can be used to fill in auxilary information like format, width, height, bpp, stride (if applicable) +* \param[in] frame_type New value for frame type for the allocated frame +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return reference to a newly allocated frame, must be released with release_frame +* memory for the frame is likely to be re-used from previous frame, but in lack of available frames in the pool will be allocated from the free store +*/ +rs2_frame* rs2_allocate_synthetic_motion_frame(rs2_source* source, const rs2_stream_profile* new_stream, rs2_frame* original, + rs2_extension frame_type, rs2_error** error); + /** * Allocate new points frame using a frame-source provided from a processing block * \param[in] source Frame pool to allocate the frame from diff --git a/include/librealsense2/h/rs_internal.h b/include/librealsense2/h/rs_internal.h index d812c99666b..28a58ab2ff1 100644 --- a/include/librealsense2/h/rs_internal.h +++ b/include/librealsense2/h/rs_internal.h @@ -30,7 +30,7 @@ typedef enum rs2_recording_mode RS2_RECORDING_MODE_COUNT } rs2_recording_mode; -/** \brief All the parameters are requaired to defind video stream*/ +/** \brief All the parameters are required to define video stream*/ typedef struct rs2_video_stream { rs2_stream type; @@ -44,7 +44,28 @@ typedef struct rs2_video_stream rs2_intrinsics intrinsics; } rs2_video_stream; -/** \brief All the parameters are requaired to define video frame*/ +/** \brief All the parameters are required to define motion stream*/ +typedef struct rs2_motion_stream +{ + rs2_stream type; + int index; + int uid; + int fps; + rs2_format fmt; + rs2_motion_device_intrinsic intrinsics; +} rs2_motion_stream; + +/** \brief All the parameters are required to define pose stream*/ +typedef struct rs2_pose_stream +{ + rs2_stream type; + int index; + int uid; + int fps; + rs2_format fmt; +} rs2_pose_stream; + +/** \brief All the parameters are required to define video frame*/ typedef struct rs2_software_video_frame { void* pixels; @@ -57,6 +78,39 @@ typedef struct rs2_software_video_frame const rs2_stream_profile* profile; } rs2_software_video_frame; +/** \brief All the parameters are required to define motion frame*/ +typedef struct rs2_software_motion_frame +{ + void* data; + void(*deleter)(void*); + rs2_time_t timestamp; + rs2_timestamp_domain domain; + int frame_number; + const rs2_stream_profile* profile; +} rs2_software_motion_frame; + +/** \brief All the parameters are required to define pose frame*/ +typedef struct rs2_software_pose_frame +{ + struct pose_frame_info + { + float translation[3]; + float velocity[3]; + float acceleration[3]; + float rotation[4]; + float angular_velocity[3]; + float angular_acceleration[3]; + int tracker_confidence; + int mapper_confidence; + }; + void* data; + void(*deleter)(void*); + rs2_time_t timestamp; + rs2_timestamp_domain domain; + int frame_number; + const rs2_stream_profile* profile; +} rs2_software_pose_frame; + /** * Create librealsense context that will try to record all operations over librealsense into a file * \param[in] api_version realsense API version as provided by RS2_API_VERSION macro @@ -108,13 +162,29 @@ rs2_device* rs2_create_software_device(rs2_error** error); rs2_sensor* rs2_software_device_add_sensor(rs2_device* dev, const char* sensor_name, rs2_error** error); /** - * Inject frame to software sonsor + * Inject video frame to software sonsor * \param[in] sensor the software sensor * \param[in] frame all the frame components * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored */ void rs2_software_sensor_on_video_frame(rs2_sensor* sensor, rs2_software_video_frame frame, rs2_error** error); +/** +* Inject motion frame to software sonsor +* \param[in] sensor the software sensor +* \param[in] frame all the frame components +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_software_sensor_on_motion_frame(rs2_sensor* sensor, rs2_software_motion_frame frame, rs2_error** error); + +/** +* Inject pose frame to software sonsor +* \param[in] sensor the software sensor +* \param[in] frame all the frame components +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_software_sensor_on_pose_frame(rs2_sensor* sensor, rs2_software_pose_frame frame, rs2_error** error); + /** * Set frame metadata for the upcoming frames * \param[in] sensor the software sensor @@ -140,6 +210,22 @@ void rs2_software_device_create_matcher(rs2_device* dev, rs2_matchers matcher, r */ rs2_stream_profile* rs2_software_sensor_add_video_stream(rs2_sensor* sensor, rs2_video_stream video_stream, rs2_error** error); +/** +* Add motion stream to sensor +* \param[in] sensor the software sensor +* \param[in] video_stream all the stream components +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_stream_profile* rs2_software_sensor_add_motion_stream(rs2_sensor* sensor, rs2_motion_stream motion_stream, rs2_error** error); + +/** +* Add pose stream to sensor +* \param[in] sensor the software sensor +* \param[in] video_stream all the stream components +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_stream_profile* rs2_software_sensor_add_pose_stream(rs2_sensor* sensor, rs2_pose_stream pose_stream, rs2_error** error); + /** * Add read only option to sensor * \param[in] sensor the software sensor diff --git a/include/librealsense2/h/rs_option.h b/include/librealsense2/h/rs_option.h index 215da93dc2e..ac911fc552b 100644 --- a/include/librealsense2/h/rs_option.h +++ b/include/librealsense2/h/rs_option.h @@ -17,7 +17,7 @@ extern "C" { #include "rs_types.h" /** \brief Defines general configuration controls. - These can generally be mapped to camera UVC controls, and unless stated otherwise, can be set/queried at any time. + These can generally be mapped to camera UVC controls, and can be set / queried at any time unless stated otherwise. */ typedef enum rs2_option { @@ -34,12 +34,12 @@ extern "C" { RS2_OPTION_ENABLE_AUTO_EXPOSURE, /**< Enable / disable color image auto-exposure*/ RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE, /**< Enable / disable color image auto-white-balance*/ RS2_OPTION_VISUAL_PRESET, /**< Provide access to several recommend sets of option presets for the depth camera */ - RS2_OPTION_LASER_POWER, /**< Power of the F200 / SR300 projector, with 0 meaning projector off*/ + RS2_OPTION_LASER_POWER, /**< Power of the laser emitter, with 0 meaning projector off*/ RS2_OPTION_ACCURACY, /**< Set the number of patterns projected per frame. The higher the accuracy value the more patterns projected. Increasing the number of patterns help to achieve better accuracy. Note that this control is affecting the Depth FPS */ RS2_OPTION_MOTION_RANGE, /**< Motion vs. Range trade-off, with lower values allowing for better motion sensitivity and higher values allowing for better depth range*/ RS2_OPTION_FILTER_OPTION, /**< Set the filter to apply to each depth frame. Each one of the filter is optimized per the application requirements*/ RS2_OPTION_CONFIDENCE_THRESHOLD, /**< The confidence level threshold used by the Depth algorithm pipe to set whether a pixel will get a valid range or will be marked with invalid range*/ - RS2_OPTION_EMITTER_ENABLED, /**< Laser Emitter enabled */ + RS2_OPTION_EMITTER_ENABLED, /**< Emitter select: 0 – disable all emitters. 1 – enable laser. 2 – enable auto laser. 3 – enable LED.*/ RS2_OPTION_FRAMES_QUEUE_SIZE, /**< Number of frames the user is allowed to keep per stream. Trying to hold-on to more frames will cause frame-drops.*/ RS2_OPTION_TOTAL_FRAME_DROPS, /**< Total number of detected frame drops from all streams */ RS2_OPTION_AUTO_EXPOSURE_MODE, /**< Auto-Exposure modes: Static, Anti-Flicker and Hybrid */ @@ -67,8 +67,35 @@ extern "C" { RS2_OPTION_STREAM_FILTER, /**< Select a stream to process */ RS2_OPTION_STREAM_FORMAT_FILTER, /**< Select a stream format to process */ RS2_OPTION_STREAM_INDEX_FILTER, /**< Select a stream index to process */ - RS2_OPTION_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ + RS2_OPTION_EMITTER_ON_OFF, /**< When supported, this option make the camera to switch the emitter state every frame. 0 for disabled, 1 for enabled */ + RS2_OPTION_ZERO_ORDER_POINT_X, /**< Zero order point x*/ + RS2_OPTION_ZERO_ORDER_POINT_Y, /**< Zero order point y*/ + RS2_OPTION_LLD_TEMPERATURE, /**< LLD temperature*/ + RS2_OPTION_MC_TEMPERATURE, /**< MC temperature*/ + RS2_OPTION_MA_TEMPERATURE, /**< MA temperature*/ + RS2_OPTION_HARDWARE_PRESET, /**< Hardware stream configuration */ + RS2_OPTION_GLOBAL_TIME_ENABLED, /**< disable global time */ + RS2_OPTION_APD_TEMPERATURE, /**< APD temperature*/ + RS2_OPTION_ENABLE_MAPPING, /**< Enable an internal map */ + RS2_OPTION_ENABLE_RELOCALIZATION, /**< Enable appearance based relocalization */ + RS2_OPTION_ENABLE_POSE_JUMPING, /**< Enable position jumping */ + RS2_OPTION_ENABLE_DYNAMIC_CALIBRATION, /**< Enable dynamic calibration */ + RS2_OPTION_DEPTH_OFFSET, /**< Offset from sensor to depth origin in millimetrers*/ + RS2_OPTION_LED_POWER, /**< Power of the LED (light emitting diode), with 0 meaning LED off*/ + RS2_OPTION_ZERO_ORDER_ENABLED, /**< Toggle Zero-Order mode */ + RS2_OPTION_ENABLE_MAP_PRESERVATION, /**< Preserve previous map when starting */ + RS2_OPTION_FREEFALL_DETECTION_ENABLED, /**< Enable/disable sensor shutdown when a free-fall is detected (on by default) */ + RS2_OPTION_AVALANCHE_PHOTO_DIODE, /**< Changes the exposure time of Avalanche Photo Diode in the receiver */ + RS2_OPTION_POST_PROCESSING_SHARPENING, /**< Changes the amount of sharpening in the post-processed image */ + RS2_OPTION_PRE_PROCESSING_SHARPENING, /**< Changes the amount of sharpening in the pre-processed image */ + RS2_OPTION_NOISE_FILTERING, /**< Control edges and background noise */ + RS2_OPTION_INVALIDATION_BYPASS, /**< Enable\disable pixel invalidation */ + RS2_OPTION_AMBIENT_LIGHT, /**< Change the depth ambient light see rs2_ambient_light for values */ + RS2_OPTION_SENSOR_MODE, /**< The resolution mode: see rs2_sensor_mode for values */ + RS2_OPTION_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_option; + + // This function is being deprecated. For existing options it will return option name, but for future API additions the user should call rs2_get_option_name instead. const char* rs2_option_to_string(rs2_option option); /** \brief For SR300 devices: provides optimized settings (presets) for specific types of usage. */ @@ -99,13 +126,43 @@ extern "C" { RS2_RS400_VISUAL_PRESET_HIGH_DENSITY, RS2_RS400_VISUAL_PRESET_MEDIUM_DENSITY, RS2_RS400_VISUAL_PRESET_REMOVE_IR_PATTERN, - RS2_RS400_VISUAL_PRESET_COUNT + RS2_RS400_VISUAL_PRESET_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_rs400_visual_preset; const char* rs2_rs400_visual_preset_to_string(rs2_rs400_visual_preset preset); + /** \brief For L500 devices: provides optimized settings (presets) for specific types of usage. */ + typedef enum rs2_l500_visual_preset + { + RS2_L500_VISUAL_PRESET_CUSTOM, + RS2_L500_VISUAL_PRESET_DEFAULT, + RS2_L500_VISUAL_PRESET_NO_AMBIENT, + RS2_L500_VISUAL_PRESET_LOW_AMBIENT, + RS2_L500_VISUAL_PRESET_MAX_RANGE, + RS2_L500_VISUAL_PRESET_SHORT_RANGE, + RS2_L500_VISUAL_PRESET_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ + } rs2_l500_visual_preset; + const char* rs2_l500_visual_preset_to_string(rs2_l500_visual_preset preset); + + /** \brief For setting the camera_mode option */ + typedef enum rs2_sensor_mode + { + RS2_SENSOR_MODE_VGA, + RS2_SENSOR_MODE_XGA, + RS2_SENSOR_MODE_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ + } rs2_sensor_mode; + const char* rs2_sensor_mode_to_string(rs2_sensor_mode preset); + + /** \brief ambient light for RS2_OPTION_AMBIENT_LIGHT option. */ + typedef enum rs2_ambient_light + { + RS2_AMBIENT_LIGHT_NO_AMBIENT = 1, + RS2_AMBIENT_LIGHT_LOW_AMBIENT = 2, + } rs2_ambient_light; + const char* rs2_ambient_light_to_string(rs2_ambient_light preset); + /** * check if an option is read-only - * \param[in] sensor the RealSense sensor + * \param[in] options the options container * \param[in] option option id to be checked * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored * \return true if option is read-only @@ -114,7 +171,7 @@ extern "C" { /** * read option value from the sensor - * \param[in] sensor the RealSense sensor + * \param[in] options the options container * \param[in] option option id to be queried * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored * \return value of the option @@ -123,16 +180,52 @@ extern "C" { /** * write new value to sensor option - * \param[in] sensor the RealSense sensor + * \param[in] options the options container * \param[in] option option id to be queried * \param[in] value new value for the option * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored */ void rs2_set_option(const rs2_options* options, rs2_option option, float value, rs2_error** error); + /** + * get the list of supported options of options container + * \param[in] options the options container + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + rs2_options_list* rs2_get_options_list(const rs2_options* options, rs2_error** error); + + /** + * get the size of options list + * \param[in] options the option list + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + int rs2_get_options_list_size(const rs2_options_list* options, rs2_error** error); + + /** + * get option name + * \param[in] options the options container + * \param[in] option option id to be checked + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return human-readable option name + */ + const char* rs2_get_option_name(const rs2_options* options, rs2_option option, rs2_error** error); + + /** + * get the specific option from options list + * \param[in] i the index of the option + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ + rs2_option rs2_get_option_from_list(const rs2_options_list* options, int i, rs2_error** error); + + /** + * Deletes options list + * \param[in] list list to delete + */ + void rs2_delete_options_list(rs2_options_list* list); + /** * check if particular option is supported by a subdevice - * \param[in] sensor the RealSense sensor + * \param[in] options the options container * \param[in] option option id to be checked * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored * \return true if option is supported @@ -153,7 +246,7 @@ extern "C" { /** * get option description - * \param[in] sensor the RealSense sensor + * \param[in] options the options container * \param[in] option option id to be checked * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored * \return human-readable option description @@ -162,7 +255,7 @@ extern "C" { /** * get option value description (in case specific option value hold special meaning) - * \param[in] device the RealSense device + * \param[in] options the options container * \param[in] option option id to be checked * \param[in] value value of the option * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored diff --git a/include/librealsense2/h/rs_pipeline.h b/include/librealsense2/h/rs_pipeline.h index f617236a796..1018c778d14 100644 --- a/include/librealsense2/h/rs_pipeline.h +++ b/include/librealsense2/h/rs_pipeline.h @@ -16,6 +16,7 @@ extern "C" { #include "rs_types.h" #include "rs_sensor.h" +#include "rs_config.h" /** * Create a pipeline instance @@ -111,7 +112,6 @@ extern "C" { */ rs2_pipeline_profile* rs2_pipeline_start(rs2_pipeline* pipe, rs2_error ** error); - /** * Start the pipeline streaming according to the configuraion. * The pipeline streaming loop captures samples from the device, and delivers them to the attached computer vision modules @@ -132,6 +132,72 @@ extern "C" { */ rs2_pipeline_profile* rs2_pipeline_start_with_config(rs2_pipeline* pipe, rs2_config* config, rs2_error ** error); + /** + * Start the pipeline streaming with its default configuration. + * The pipeline captures samples from the device, and delivers them to the through the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() or \c poll_for_frames() will throw exception. + * + * \param[in] pipe A pointer to an instance of the pipeline + * \param[in] on_frame function pointer to register as per-frame callback + * \param[in] user auxiliary data the user wishes to receive together with every frame callback + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + rs2_pipeline_profile* rs2_pipeline_start_with_callback(rs2_pipeline* pipe, rs2_frame_callback_ptr on_frame, void* user, rs2_error ** error); + + /** + * Start the pipeline streaming with its default configuration. + * The pipeline captures samples from the device, and delivers them to the through the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() or \c poll_for_frames() will throw exception. + * + * \param[in] pipe A pointer to an instance of the pipeline + * \param[in] callback callback object created from c++ application. ownership over the callback object is moved into the relevant streaming lock + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + rs2_pipeline_profile* rs2_pipeline_start_with_callback_cpp(rs2_pipeline* pipe, rs2_frame_callback* callback, rs2_error ** error); + + /** + * Start the pipeline streaming according to the configuraion. + * The pipeline captures samples from the device, and delivers them to the through the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() or \c poll_for_frames() will throw exception. + * The pipeline selects and activates the device upon start, according to configuration or a default configuration. + * When the rs2::config is provided to the method, the pipeline tries to activate the config \c resolve() result. If the application + * requests are conflicting with pipeline computer vision modules or no matching device is available on the platform, the method fails. + * Available configurations and devices may change between config \c resolve() call and pipeline start, in case devices are connected + * or disconnected, or another application acquires ownership of a device. + * + * \param[in] pipe A pointer to an instance of the pipeline + * \param[in] config A rs2::config with requested filters on the pipeline configuration. By default no filters are applied. + * \param[in] on_frame function pointer to register as per-frame callback + * \param[in] user auxiliary data the user wishes to receive together with every frame callback + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + rs2_pipeline_profile* rs2_pipeline_start_with_config_and_callback(rs2_pipeline* pipe, rs2_config* config, rs2_frame_callback_ptr on_frame, void* user, rs2_error ** error); + + /** + * Start the pipeline streaming according to the configuraion. + * The pipeline captures samples from the device, and delivers them to the through the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() or \c poll_for_frames() will throw exception. + * The pipeline selects and activates the device upon start, according to configuration or a default configuration. + * When the rs2::config is provided to the method, the pipeline tries to activate the config \c resolve() result. If the application + * requests are conflicting with pipeline computer vision modules or no matching device is available on the platform, the method fails. + * Available configurations and devices may change between config \c resolve() call and pipeline start, in case devices are connected + * or disconnected, or another application acquires ownership of a device. + * + * \param[in] pipe A pointer to an instance of the pipeline + * \param[in] config A rs2::config with requested filters on the pipeline configuration. By default no filters are applied. + * \param[in] callback callback object created from c++ application. ownership over the callback object is moved into the relevant streaming lock + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + rs2_pipeline_profile* rs2_pipeline_start_with_config_and_callback_cpp(rs2_pipeline* pipe, rs2_config* config, rs2_frame_callback* callback, rs2_error ** error); + /** * Return the active device and streams profiles, used by the pipeline. * The pipeline streams profiles are selected during \c start(). The method returns a valid result only when the pipeline is active - @@ -175,181 +241,6 @@ extern "C" { */ void rs2_delete_pipeline_profile(rs2_pipeline_profile* profile); - /** - * Create a config instance - * The config allows pipeline users to request filters for the pipeline streams and device selection and configuration. - * This is an optional step in pipeline creation, as the pipeline resolves its streaming device internally. - * Config provides its users a way to set the filters and test if there is no conflict with the pipeline requirements - * from the device. It also allows the user to find a matching device for the config filters and the pipeline, in order to - * select a device explicitly, and modify its controls before streaming starts. - * - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - * \return rs2_config* A pointer to a new config instance - */ - rs2_config* rs2_create_config(rs2_error** error); - - /** - * Deletes an instance of a config - * - * \param[in] config A pointer to an instance of a config - */ - void rs2_delete_config(rs2_config* config); - - /** - * Enable a device stream explicitly, with selected stream parameters. - * The method allows the application to request a stream with specific configuration. If no stream is explicitly enabled, the pipeline - * configures the device and its streams according to the attached computer vision modules and processing blocks requirements, or - * default configuration for the first available device. - * The application can configure any of the input stream parameters according to its requirement, or set to 0 for don't care value. - * The config accumulates the application calls for enable configuration methods, until the configuration is applied. Multiple enable - * stream calls for the same stream with conflicting parameters override each other, and the last call is maintained. - * Upon calling \c resolve(), the config checks for conflicts between the application configuration requests and the attached computer - * vision modules and processing blocks requirements, and fails if conflicts are found. Before \c resolve() is called, no conflict - * check is done. - * - * \param[in] config A pointer to an instance of a config - * \param[in] stream Stream type to be enabled - * \param[in] index Stream index, used for multiple streams of the same type. -1 indicates any. - * \param[in] width Stream image width - for images streams. 0 indicates any. - * \param[in] height Stream image height - for images streams. 0 indicates any. - * \param[in] format Stream data format - pixel format for images streams, of data type for other streams. RS2_FORMAT_ANY indicates any. - * \param[in] framerate Stream frames per second. 0 indicates any. - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_stream(rs2_config* config, - rs2_stream stream, - int index, - int width, - int height, - rs2_format format, - int framerate, - rs2_error** error); - - /** - * Enable all device streams explicitly. - * The conditions and behavior of this method are similar to those of \c enable_stream(). - * This filter enables all raw streams of the selected device. The device is either selected explicitly by the application, - * or by the pipeline requirements or default. The list of streams is device dependent. - * - * \param[in] config A pointer to an instance of a config - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_all_stream(rs2_config* config, rs2_error ** error); - - /** - * Select a specific device explicitly by its serial number, to be used by the pipeline. - * The conditions and behavior of this method are similar to those of \c enable_stream(). - * This method is required if the application needs to set device or sensor settings prior to pipeline streaming, to enforce - * the pipeline to use the configured device. - * - * \param[in] config A pointer to an instance of a config - * \param[in] serial device serial number, as returned by RS2_CAMERA_INFO_SERIAL_NUMBER - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_device(rs2_config* config, const char* serial, rs2_error ** error); - - /** - * Select a recorded device from a file, to be used by the pipeline through playback. - * The device available streams are as recorded to the file, and \c resolve() considers only this device and configuration - * as available. - * This request cannot be used if enable_record_to_file() is called for the current config, and vise versa - * By default, playback is repeated once the file ends. To control this, see 'rs2_config_enable_device_from_file_repeat_option'. - * - * \param[in] config A pointer to an instance of a config - * \param[in] file The playback file of the device - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_device_from_file(rs2_config* config, const char* file, rs2_error ** error); - - /** - * Select a recorded device from a file, to be used by the pipeline through playback. - * The device available streams are as recorded to the file, and \c resolve() considers only this device and configuration - * as available. - * This request cannot be used if enable_record_to_file() is called for the current config, and vise versa - * - * \param[in] config A pointer to an instance of a config - * \param[in] file The playback file of the device - * \param[in] repeat_playback if true, when file ends the playback starts again, in an infinite loop; - if false, when file ends playback does not start again, and should by stopped manually by the user. - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_device_from_file_repeat_option(rs2_config* config, const char* file, int repeat_playback, rs2_error ** error); - - /** - * Requires that the resolved device would be recorded to file - * This request cannot be used if enable_device_from_file() is called for the current config, and vise versa - * - * \param[in] config A pointer to an instance of a config - * \param[in] file The desired file for the output record - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_enable_record_to_file(rs2_config* config, const char* file, rs2_error ** error); - - - /** - * Disable a device stream explicitly, to remove any requests on this stream type. - * The stream can still be enabled due to pipeline computer vision module request. This call removes any filter on the - * stream configuration. - * - * \param[in] config A pointer to an instance of a config - * \param[in] stream Stream type, for which the filters are cleared - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_disable_stream(rs2_config* config, rs2_stream stream, rs2_error ** error); - - /** - * Disable a device stream explicitly, to remove any requests on this stream profile. - * The stream can still be enabled due to pipeline computer vision module request. This call removes any filter on the - * stream configuration. - * - * \param[in] config A pointer to an instance of a config - * \param[in] stream Stream type, for which the filters are cleared - * \param[in] index Stream index, for which the filters are cleared - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_disable_indexed_stream(rs2_config* config, rs2_stream stream, int index, rs2_error ** error); - - /** - * Disable all device stream explicitly, to remove any requests on the streams profiles. - * The streams can still be enabled due to pipeline computer vision module request. This call removes any filter on the - * streams configuration. - * - * \param[in] config A pointer to an instance of a config - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - */ - void rs2_config_disable_all_streams(rs2_config* config, rs2_error ** error); - - /** - * Resolve the configuration filters, to find a matching device and streams profiles. - * The method resolves the user configuration filters for the device and streams, and combines them with the requirements of - * the computer vision modules and processing blocks attached to the pipeline. If there are no conflicts of requests, it looks - * for an available device, which can satisfy all requests, and selects the first matching streams configuration. In the absence - * of any request, the rs2::config selects the first available device and the first color and depth streams configuration. - * The pipeline profile selection during \c start() follows the same method. Thus, the selected profile is the same, if no - * change occurs to the available devices occurs. - * Resolving the pipeline configuration provides the application access to the pipeline selected device for advanced control. - * The returned configuration is not applied to the device, so the application doesn't own the device sensors. However, the - * application can call \c enable_device(), to enforce the device returned by this method is selected by pipeline \c start(), - * and configure the device and sensors options or extensions before streaming starts. - * - * \param[in] config A pointer to an instance of a config - * \param[in] pipe The pipeline for which the selected filters are applied - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - * \return A matching device and streams profile, which satisfies the filters and pipeline requests. - */ - rs2_pipeline_profile* rs2_config_resolve(rs2_config* config, rs2_pipeline* pipe, rs2_error ** error); - - /** - * Check if the config can resolve the configuration filters, to find a matching device and streams profiles. - * The resolution conditions are as described in \c resolve(). - * - * \param[in] config A pointer to an instance of a config - * \param[in] pipe The pipeline for which the selected filters are applied - * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored - * \return True if a valid profile selection exists, false if no selection can be found under the config filters and the available devices. - */ - int rs2_config_can_resolve(rs2_config* config, rs2_pipeline* pipe, rs2_error ** error); - #ifdef __cplusplus } #endif diff --git a/include/librealsense2/h/rs_processing.h b/include/librealsense2/h/rs_processing.h index 7836470b189..240b5c565b8 100644 --- a/include/librealsense2/h/rs_processing.h +++ b/include/librealsense2/h/rs_processing.h @@ -16,6 +16,7 @@ extern "C" { #include "rs_types.h" #include "rs_sensor.h" +#include "rs_option.h" /** * Creates Depth-Colorizer processing block that can be used to quickly visualize the depth data @@ -41,6 +42,32 @@ rs2_processing_block* rs2_create_sync_processing_block(rs2_error** error); */ rs2_processing_block* rs2_create_pointcloud(rs2_error** error); +/** +* Creates YUY decoder processing block. This block accepts raw YUY frames and outputs frames of other formats. +* YUY is a common video format used by a variety of web-cams. It benefits from packing pixels into 2 bytes per pixel +* without signficant quality drop. YUY representation can be converted back to more usable RGB form, +* but this requires somewhat costly conversion. +* The SDK will automatically try to use SSE2 and AVX instructions and CUDA where available to get +* best performance. Other implementations (using GLSL, OpenCL, Neon and NCS) should follow. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_create_yuy_decoder(rs2_error** error); + +/** +* Creates depth thresholding processing block +* By controlling min and max options on the block, one could filter out depth values +* that are either too large or too small, as a software post-processing step +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_create_threshold(rs2_error** error); + +/** +* Creates depth units transformation processing block +* All of the pixels are transformed from depth units into meters. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_create_units_transform(rs2_error** error); + /** * This method creates new custom processing block. This lets the users pass frames between module boundaries for processing * This is an infrastructure function aimed at middleware developers, and also used by provided blocks such as sync, colorizer, etc.. @@ -60,6 +87,20 @@ rs2_processing_block* rs2_create_processing_block(rs2_frame_processor_callback* */ rs2_processing_block* rs2_create_processing_block_fptr(rs2_frame_processor_callback_ptr proc, void * context, rs2_error** error); +/** +* This method adds a custom option to a custom processing block. This is a simple float that can be accessed via rs2_set_option and rs2_get_option +* This is an infrastructure function aimed at middleware developers, and also used by provided blocks such as save_to_ply, etc.. +* \param[in] block Processing block +* \param[in] option_id an int ID for referencing the option +* \param[in] min the minimum value which will be accepted for this option +* \param[in] max the maximum value which will be accepted for this option +* \param[in] step the granularity of options which accept discrete values, or zero if the option accepts continuous values +* \param[in] def the default value of the option. This will be the initial value. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return true if adding the option succeeds. false if it fails e.g. an option with this id is already registered +*/ +int rs2_processing_block_register_simple_option(rs2_processing_block* block, rs2_option option_id, float min, float max, float step, float def, rs2_error** error); + /** * This method is used to direct the output from the processing block to some callback or sink object * \param[in] block Processing block @@ -151,6 +192,7 @@ void rs2_enqueue_frame(rs2_frame* frame, void* queue); /** * Creates Align processing block. +* \param[in] align_to stream type to be used as the target of frameset alignment * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored */ rs2_processing_block* rs2_create_align(rs2_stream align_to, rs2_error** error); @@ -187,6 +229,55 @@ rs2_processing_block* rs2_create_disparity_transform_block(unsigned char transfo */ rs2_processing_block* rs2_create_hole_filling_filter_block(rs2_error** error); +/** +* Creates a rates printer block. The printer prints the actual FPS of the invoked frame stream. +* The block ignores reapiting frames and calculats the FPS only if the frame number of the relevant frame was changed. +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +rs2_processing_block* rs2_create_rates_printer_block(rs2_error** error); + +/** +* Creates Depth post-processing zero order fix block. The filter invalidates pixels that has a wrong value due to zero order effect +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return zero order fix processing block +*/ +rs2_processing_block* rs2_create_zero_order_invalidation_block(rs2_error** error); + +/** +* Creates Depth frame decompression module. Decoded frames compressed and transmitted with Z16H variable-lenght Huffman code to +* standartized Z16 Depth data format. Using the compression allows to reduce the Depth frames bandwidth by more than 50 percent +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Huffman-code decompression processing block +*/ +rs2_processing_block* rs2_create_huffman_depth_decompress_block(rs2_error** error); + +/** +* Retrieve processing block specific information, like name. +* \param[in] block The processing block +* \param[in] info processing block info type to retrieve +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return The requested processing block info string, in a format specific to the device model +*/ +const char* rs2_get_processing_block_info(const rs2_processing_block* block, rs2_camera_info info, rs2_error** error); + +/** +* Check if a processing block supports a specific info type. +* \param[in] block The processing block to check +* \param[in] info The parameter to check for support +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return True if the parameter both exist and well-defined for the specific device +*/ +int rs2_supports_processing_block_info(const rs2_processing_block* block, rs2_camera_info info, rs2_error** error); + +/** + * Test if the given processing block can be extended to the requested extension + * \param[in] block processing block + * \param[in] extension The extension to which the sensor should be tested if it is extendable + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return non-zero value iff the processing block can be extended to the given extension + */ +int rs2_is_processing_block_extendable_to(const rs2_processing_block* block, rs2_extension extension_type, rs2_error** error); + #ifdef __cplusplus } #endif diff --git a/include/librealsense2/h/rs_record_playback.h b/include/librealsense2/h/rs_record_playback.h index cddec6da7db..a540e6d735c 100644 --- a/include/librealsense2/h/rs_record_playback.h +++ b/include/librealsense2/h/rs_record_playback.h @@ -24,6 +24,7 @@ typedef enum rs2_playback_status RS2_PLAYBACK_STATUS_STOPPED, /**< All sensors were stopped, or playback has ended (all data was read). This is the initial playback status*/ RS2_PLAYBACK_STATUS_COUNT } rs2_playback_status; + const char* rs2_playback_status_to_string(rs2_playback_status status); typedef void (*rs2_playback_status_changed_callback_ptr)(rs2_playback_status); @@ -37,6 +38,16 @@ typedef void (*rs2_playback_status_changed_callback_ptr)(rs2_playback_status); */ rs2_device* rs2_create_record_device(const rs2_device* device, const char* file, rs2_error** error); +/** +* Creates a recording device to record the given device and save it to the given file +* \param[in] device The device to record +* \param[in] file The desired path to which the recorder should save the data +* \param[in] compression_enabled Indicates if compression is enabled, 0 means false, otherwise true +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return A pointer to a device that records its data to file, or null in case of failure +*/ +rs2_device* rs2_create_record_device_ex(const rs2_device* device, const char* file, int compression_enabled, rs2_error** error); + /** * Pause the recording device without stopping the actual device from streaming. * Pausing will cause the device to stop writing new data to the file, in particular, frames and changes to extensions diff --git a/include/librealsense2/h/rs_sensor.h b/include/librealsense2/h/rs_sensor.h index cb810d9e431..a42035ac117 100644 --- a/include/librealsense2/h/rs_sensor.h +++ b/include/librealsense2/h/rs_sensor.h @@ -30,11 +30,14 @@ typedef enum rs2_camera_info { RS2_CAMERA_INFO_PRODUCT_ID , /**< Product ID as reported in the USB descriptor */ RS2_CAMERA_INFO_CAMERA_LOCKED , /**< True iff EEPROM is locked */ RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR , /**< Designated USB specification: USB2/USB3 */ + RS2_CAMERA_INFO_PRODUCT_LINE , /**< Device product line D400/SR300/L500/T200 */ + RS2_CAMERA_INFO_ASIC_SERIAL_NUMBER , /**< ASIC serial number */ + RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID , /**< Firmware update ID */ RS2_CAMERA_INFO_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_camera_info; const char* rs2_camera_info_to_string(rs2_camera_info info); -/** \brief Streams are different types of data provided by RealSense devices */ +/** \brief Streams are different types of data provided by RealSense devices. */ typedef enum rs2_stream { RS2_STREAM_ANY, @@ -46,12 +49,12 @@ typedef enum rs2_stream RS2_STREAM_ACCEL , /**< Native stream of accelerometer motion data produced by RealSense device */ RS2_STREAM_GPIO , /**< Signals from external device connected through GPIO */ RS2_STREAM_POSE , /**< 6 Degrees of Freedom pose data, calculated by RealSense device */ - RS2_STREAM_CONFIDENCE, + RS2_STREAM_CONFIDENCE , /**< 4 bit per-pixel depth confidence level */ RS2_STREAM_COUNT } rs2_stream; const char* rs2_stream_to_string(rs2_stream stream); -/** \brief Format identifies how binary data is encoded within a frame */ +/** \brief A stream's format identifies how binary data is encoded within a frame. */ typedef enum rs2_format { RS2_FORMAT_ANY , /**< When passed to enable stream, librealsense will try to provide best suited format */ @@ -65,7 +68,7 @@ typedef enum rs2_format RS2_FORMAT_BGRA8 , /**< 8-bit blue, green, and red channels + constant alpha channel equal to FF */ RS2_FORMAT_Y8 , /**< 8-bit per-pixel grayscale image */ RS2_FORMAT_Y16 , /**< 16-bit per-pixel grayscale image */ - RS2_FORMAT_RAW10 , /**< Four 10-bit luminance values encoded into a 5-byte macropixel */ + RS2_FORMAT_RAW10 , /**< Four 10 bits per pixel luminance values packed into a 5-byte macropixel */ RS2_FORMAT_RAW16 , /**< 16-bit raw image */ RS2_FORMAT_RAW8 , /**< 8-bit raw image */ RS2_FORMAT_UYVY , /**< Similar to the standard YUYV pixel format, but packed in a different order */ @@ -74,11 +77,20 @@ typedef enum rs2_format RS2_FORMAT_GPIO_RAW , /**< Raw data from the external sensors hooked to one of the GPIO's */ RS2_FORMAT_6DOF , /**< Pose data packed as floats array, containing translation vector, rotation quaternion and prediction velocities and accelerations vectors */ RS2_FORMAT_DISPARITY32 , /**< 32-bit float-point disparity values. Depth->Disparity conversion : Disparity = Baseline*FocalLength/Depth */ + RS2_FORMAT_Y10BPACK , /**< 16-bit per-pixel grayscale image unpacked from 10 bits per pixel packed ([8:8:8:8:2222]) grey-scale image. The data is unpacked to LSB and padded with 6 zero bits */ + RS2_FORMAT_DISTANCE , /**< 32-bit float-point depth distance value. */ + RS2_FORMAT_MJPEG , /**< Bitstream encoding for video in which an image of each frame is encoded as JPEG-DIB */ + RS2_FORMAT_Y8I , /**< 8-bit per pixel interleaved. 8-bit left, 8-bit right. */ + RS2_FORMAT_Y12I , /**< 12-bit per pixel interleaved. 12-bit left, 12-bit right. Each pixel is stored in a 24-bit word in little-endian order. */ + RS2_FORMAT_INZI , /**< multi-planar Depth 16bit + IR 10bit. */ + RS2_FORMAT_INVI , /**< 8-bit IR stream. */ + RS2_FORMAT_W10 , /**< Grey-scale image as a bit-packed array. 4 pixel data stream taking 5 bytes */ + RS2_FORMAT_Z16H , /**< Variable-length Huffman-compressed 16-bit depth values. */ RS2_FORMAT_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_format; const char* rs2_format_to_string(rs2_format format); -/** \brief Cross-stream extrinsics: encode the topology describing how the different devices are connected. */ +/** \brief Cross-stream extrinsics: encodes the topology describing how the different devices are oriented. */ typedef struct rs2_extrinsics { float rotation[9]; /**< Column-major 3x3 rotation matrix */ @@ -155,12 +167,19 @@ int rs2_is_sensor_extendable_to(const rs2_sensor* sensor, rs2_extension extensio float rs2_get_depth_scale(rs2_sensor* sensor, rs2_error** error); /** -* Retrieve the stereoscopic baseline value. Applicable to stereo-based depth modules +* Retrieve the stereoscopic baseline value from frame. Applicable to stereo-based depth modules * \param[out] float Stereoscopic baseline in millimeters * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored */ float rs2_depth_stereo_frame_get_baseline(const rs2_frame* frame_ref, rs2_error** error); +/** +* Retrieve the stereoscopic baseline value from sensor. Applicable to stereo-based depth modules +* \param[out] float Stereoscopic baseline in millimeters +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +float rs2_get_stereo_baseline(rs2_sensor* sensor, rs2_error** error); + /** * \brief sets the active region of interest to be used by auto-exposure algorithm * \param[in] sensor the RealSense sensor @@ -208,6 +227,8 @@ void rs2_open_multiple(rs2_sensor* device, const rs2_stream_profile** profiles, */ void rs2_close(const rs2_sensor* sensor, rs2_error** error); +int rs2_is_streaming(const rs2_sensor* sensor, rs2_error** error); + /** * start streaming from specified configured sensor * \param[in] sensor RealSense device @@ -345,6 +366,21 @@ void rs2_set_stream_profile_data(rs2_stream_profile* mode, rs2_stream stream, in */ rs2_stream_profile* rs2_clone_stream_profile(const rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, rs2_error** error); +/** +* Creates a copy of stream profile, assigning new values to some of the fields +* \param[in] mode input stream profile +* \param[in] stream stream type for the profile +* \param[in] format binary data format of the profile +* \param[in] width new width for the profile +* \param[in] height new height for the profile +* \param[in] intr new intrinsics for the profile +* \param[in] index stream index the profile in case there are multiple streams of the same type +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return new stream profile, must be deleted by rs2_delete_stream_profile +*/ +rs2_stream_profile* rs2_clone_video_stream_profile(const rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, int width, int height, const rs2_intrinsics* intr, rs2_error** error); + + /** * Delete stream profile allocated by rs2_clone_stream_profile * Should not be called on stream profiles returned by the device @@ -429,8 +465,135 @@ void rs2_register_extrinsics(const rs2_stream_profile* from, */ void rs2_get_video_stream_intrinsics(const rs2_stream_profile* mode, rs2_intrinsics* intrinsics, rs2_error** error); +/** + * Returns the list of recommended processing blocks for a specific sensor. + * Order and configuration of the blocks are decided by the sensor + * \param[in] sensor input sensor + * \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored + * \return list of supported sensor recommended processing blocks +*/ +rs2_processing_block_list* rs2_get_recommended_processing_blocks(rs2_sensor* sensor, rs2_error** error); + +/** +* Returns specific processing blocks from processing blocks list +* \param[in] list the processing blocks list +* \param[in] index the requested processing block +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return processing block +*/ +rs2_processing_block* rs2_get_processing_block(const rs2_processing_block_list* list, int index, rs2_error** error); + +/** +* Returns the processing blocks list size +* \param[in] list the processing blocks list +* \param[out] error if non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return the processing block list size +*/ +int rs2_get_recommended_processing_blocks_count(const rs2_processing_block_list* list, rs2_error** error); + +/** +* Deletes processing blocks list +* \param[in] list list to delete +*/ +void rs2_delete_recommended_processing_blocks(rs2_processing_block_list* list); + +/** +* Imports a localization map from file to tm2 tracking device +* \param[in] sensor TM2 position-tracking sensor +* \param[in] lmap_blob Localization map raw buffer, serialized +* \param[in] blob_size The buffer's size in bytes +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Non-zero if succeeded, otherwise 0 +*/ +int rs2_import_localization_map(const rs2_sensor* sensor, const unsigned char* lmap_blob, unsigned int blob_size, rs2_error** error); + +/** +* Extract and store the localization map of tm2 tracking device to file +* \param[in] sensor TM2 position-tracking sensor +* \param[in] lmap_fname The file name of the localization map +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Device's response in a rs2_raw_data_buffer, which should be released by rs2_delete_raw_data +*/ +//void rs2_export_localization_map(const rs2_sensor* sensor, const char* lmap_fname, rs2_error** error); +const rs2_raw_data_buffer* rs2_export_localization_map(const rs2_sensor* sensor, rs2_error** error); + +/** +* Create a named location tag +* \param[in] sensor T2xx position-tracking sensor +* \param[in] guid Null-terminated string of up to 127 characters +* \param[in] pos Position in meters, relative to the current tracking session +* \param[in] orient Quaternion orientation, expressed the the coordinate system of the current tracking session +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Non-zero if succeeded, otherwise 0 +*/ +int rs2_set_static_node(const rs2_sensor* sensor, const char* guid, const rs2_vector pos, const rs2_quaternion orient, rs2_error** error); + +/** +* Retrieve a named location tag +* \param[in] sensor T2xx position-tracking sensor +* \param[in] guid Null-terminated string of up to 127 characters +* \param[out] pos Position in meters of the tagged (stored) location +* \param[out] orient Quaternion orientation of the tagged (stored) location +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Non-zero if succeeded, otherwise 0 +*/ +int rs2_get_static_node(const rs2_sensor* sensor, const char* guid, rs2_vector *pos, rs2_quaternion *orient, rs2_error** error); + +/** +* Remove a named location tag +* \param[in] sensor T2xx position-tracking sensor +* \param[in] guid Null-terminated string of up to 127 characters +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +* \return Non-zero if succeeded, otherwise 0 +*/ +int rs2_remove_static_node(const rs2_sensor* sensor, const char* guid, rs2_error** error); + +/** Load Wheel odometer settings from host to device +* \param[in] odometry_config_buf odometer configuration/calibration blob serialized from jsom file +* \return true on success +*/ +int rs2_load_wheel_odometry_config(const rs2_sensor* sensor, const unsigned char* odometry_config_buf, unsigned int blob_size, rs2_error** error); + +/** Send wheel odometry data for each individual sensor (wheel) +* \param[in] wo_sensor_id - Zero-based index of (wheel) sensor with the same type within device +* \param[in] frame_num - Monotonocally increasing frame number, managed per sensor. +* \param[in] translational_velocity - Translational velocity of the wheel sensor [meter/sec] +* \return true on success +*/ +int rs2_send_wheel_odometry(const rs2_sensor* sensor, char wo_sensor_id, unsigned int frame_num, + const rs2_vector translational_velocity, rs2_error** error); + +/** +* Set intrinsics of a given sensor +* \param[in] sensor The RealSense device +* \param[in] profile Target stream profile +* \param[in] intrinsics Intrinsics value to be written to the device +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_set_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile , const rs2_intrinsics* intrinsics, rs2_error** error); + +/** + * Set extrinsics between two sensors + * \param[in] from_sensor Origin sensor + * \param[in] from_profile Origin profile + * \param[in] to_sensor Target sensor + * \param[in] to_profile Target profile + * \param[out] extrinsics Extrinsics from origin to target + * \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored + */ +void rs2_set_extrinsics(const rs2_sensor* from_sensor, const rs2_stream_profile* from_profile, rs2_sensor* to_sensor, const rs2_stream_profile* to_profile, const rs2_extrinsics* extrinsics, rs2_error** error); + +/** +* Set motion device intrinsics +* \param[in] sensor Motion sensor +* \param[in] profile Motion stream profile +* \param[out] intrinsics Pointer to the struct to store the data in +* \param[out] error If non-null, receives any error that occurs during this call, otherwise, errors are ignored +*/ +void rs2_set_motion_device_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile, const rs2_motion_device_intrinsic* intrinsics, rs2_error** error); + #ifdef __cplusplus } #endif -#endif +#endif // LIBREALSENSE_RS2_SENSOR_H diff --git a/include/librealsense2/h/rs_types.h b/include/librealsense2/h/rs_types.h index fa088d4ced1..84eab73af72 100644 --- a/include/librealsense2/h/rs_types.h +++ b/include/librealsense2/h/rs_types.h @@ -13,7 +13,7 @@ extern "C" { #endif -/** \brief Category of the librealsense notifications */ +/** \brief Category of the librealsense notification. */ typedef enum rs2_notification_category{ RS2_NOTIFICATION_CATEGORY_FRAMES_TIMEOUT, /**< Frames didn't arrived within 5 seconds */ RS2_NOTIFICATION_CATEGORY_FRAME_CORRUPTED, /**< Received partial/incomplete frame */ @@ -21,11 +21,12 @@ typedef enum rs2_notification_category{ RS2_NOTIFICATION_CATEGORY_HARDWARE_EVENT, /**< General Hardeware notification that is not an error */ RS2_NOTIFICATION_CATEGORY_UNKNOWN_ERROR, /**< Received unknown error from the device */ RS2_NOTIFICATION_CATEGORY_FIRMWARE_UPDATE_RECOMMENDED, /**< Current firmware version installed is not the latest available */ + RS2_NOTIFICATION_CATEGORY_POSE_RELOCALIZATION, /**< A relocalization event has updated the pose provided by a pose sensor */ RS2_NOTIFICATION_CATEGORY_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_notification_category; const char* rs2_notification_category_to_string(rs2_notification_category category); -/** \brief Exception types are the different categories of errors that RealSense API might return */ +/** \brief Exception types are the different categories of errors that RealSense API might return. */ typedef enum rs2_exception_type { RS2_EXCEPTION_TYPE_UNKNOWN, @@ -48,11 +49,12 @@ typedef enum rs2_distortion RS2_DISTORTION_INVERSE_BROWN_CONRADY , /**< Equivalent to Brown-Conrady distortion, except undistorts image instead of distorting it */ RS2_DISTORTION_FTHETA , /**< F-Theta fish-eye distortion model */ RS2_DISTORTION_BROWN_CONRADY , /**< Unmodified Brown-Conrady distortion model */ + RS2_DISTORTION_KANNALA_BRANDT4 , /**< Four parameter Kannala Brandt distortion model */ RS2_DISTORTION_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ } rs2_distortion; const char* rs2_distortion_to_string(rs2_distortion distortion); -/** \brief Video stream intrinsics */ +/** \brief Video stream intrinsics. */ typedef struct rs2_intrinsics { int width; /**< Width of the image in pixels */ @@ -62,10 +64,10 @@ typedef struct rs2_intrinsics float fx; /**< Focal length of the image plane, as a multiple of pixel width */ float fy; /**< Focal length of the image plane, as a multiple of pixel height */ rs2_distortion model; /**< Distortion model of the image */ - float coeffs[5]; /**< Distortion coefficients, order: k1, k2, p1, p2, k3 */ + float coeffs[5]; /**< Distortion coefficients */ } rs2_intrinsics; -/** \brief Motion device intrinsics: scale, bias, and variances */ +/** \brief Motion device intrinsics: scale, bias, and variances. */ typedef struct rs2_motion_device_intrinsic { /* \internal @@ -78,7 +80,44 @@ typedef struct rs2_motion_device_intrinsic float bias_variances[3]; /**< Variance of bias for X, Y, and Z axis */ } rs2_motion_device_intrinsic; -/** \brief Severity of the librealsense logger */ +/** \brief 3D coordinates with origin at topmost left corner of the lense, + with positive Z pointing away from the camera, positive X pointing camera right and positive Y pointing camera down */ +typedef struct rs2_vertex +{ + float xyz[3]; +} rs2_vertex; + +/** \brief Pixel location within 2D image. (0,0) is the topmost, left corner. Positive X is right, positive Y is down */ +typedef struct rs2_pixel +{ + int ij[2]; +} rs2_pixel; + +/** \brief 3D vector in Euclidean coordinate space */ +typedef struct rs2_vector +{ + float x, y, z; +}rs2_vector; + +/** \brief Quaternion used to represent rotation */ +typedef struct rs2_quaternion +{ + float x, y, z, w; +}rs2_quaternion; + +typedef struct rs2_pose +{ + rs2_vector translation; /**< X, Y, Z values of translation, in meters (relative to initial position) */ + rs2_vector velocity; /**< X, Y, Z values of velocity, in meters/sec */ + rs2_vector acceleration; /**< X, Y, Z values of acceleration, in meters/sec^2 */ + rs2_quaternion rotation; /**< Qi, Qj, Qk, Qr components of rotation as represented in quaternion rotation (relative to initial position) */ + rs2_vector angular_velocity; /**< X, Y, Z values of angular velocity, in radians/sec */ + rs2_vector angular_acceleration; /**< X, Y, Z values of angular acceleration, in radians/sec^2 */ + unsigned int tracker_confidence; /**< Pose confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High */ + unsigned int mapper_confidence; /**< Pose map confidence 0x0 - Failed, 0x1 - Low, 0x2 - Medium, 0x3 - High */ +} rs2_pose; + +/** \brief Severity of the librealsense logger. */ typedef enum rs2_log_severity { RS2_LOG_SEVERITY_DEBUG, /**< Detailed information about ordinary operations */ RS2_LOG_SEVERITY_INFO , /**< Terse information about ordinary operations */ @@ -86,11 +125,12 @@ typedef enum rs2_log_severity { RS2_LOG_SEVERITY_ERROR, /**< Indication of definite failure */ RS2_LOG_SEVERITY_FATAL, /**< Indication of unrecoverable failure */ RS2_LOG_SEVERITY_NONE , /**< No logging will occur */ - RS2_LOG_SEVERITY_COUNT /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ -} rs2_log_severity; + RS2_LOG_SEVERITY_COUNT, /**< Number of enumeration values. Not a valid input: intended to be used in for-loops. */ + RS2_LOG_SEVERITY_ALL = RS2_LOG_SEVERITY_DEBUG /**< Include any/all log messages */ + } rs2_log_severity; const char* rs2_log_severity_to_string(rs2_log_severity info); -/** \brief Specifies advanced interfaces (capabilities) objects may implement */ +/** \brief Specifies advanced interfaces (capabilities) objects may implement. */ typedef enum rs2_extension { RS2_EXTENSION_UNKNOWN, @@ -118,6 +158,28 @@ typedef enum rs2_extension RS2_EXTENSION_TM2, RS2_EXTENSION_SOFTWARE_DEVICE, RS2_EXTENSION_SOFTWARE_SENSOR, + RS2_EXTENSION_DECIMATION_FILTER, + RS2_EXTENSION_THRESHOLD_FILTER, + RS2_EXTENSION_DISPARITY_FILTER, + RS2_EXTENSION_SPATIAL_FILTER, + RS2_EXTENSION_TEMPORAL_FILTER, + RS2_EXTENSION_HOLE_FILLING_FILTER, + RS2_EXTENSION_ZERO_ORDER_FILTER, + RS2_EXTENSION_RECOMMENDED_FILTERS, + RS2_EXTENSION_POSE, + RS2_EXTENSION_POSE_SENSOR, + RS2_EXTENSION_WHEEL_ODOMETER, + RS2_EXTENSION_GLOBAL_TIMER, + RS2_EXTENSION_UPDATABLE, + RS2_EXTENSION_UPDATE_DEVICE, + RS2_EXTENSION_L500_DEPTH_SENSOR, + RS2_EXTENSION_TM2_SENSOR, + RS2_EXTENSION_AUTO_CALIBRATED_DEVICE, + RS2_EXTENSION_COLOR_SENSOR, + RS2_EXTENSION_MOTION_SENSOR, + RS2_EXTENSION_FISHEYE_SENSOR, + RS2_EXTENSION_DEPTH_HUFFMAN_DECODER, + RS2_EXTENSION_SERIALIZABLE, RS2_EXTENSION_COUNT } rs2_extension; const char* rs2_extension_type_to_string(rs2_extension type); @@ -130,14 +192,20 @@ typedef enum rs2_matchers RS2_MATCHER_DI_C, //compare depth and ir based on frame number, //compare the pair of corresponding depth and ir with color based on closest timestamp, - //commonlly used by SR300 + //commonly used by SR300 RS2_MATCHER_DLR_C, //compare depth, left and right ir based on frame number, //compare the set of corresponding depth, left and right with color based on closest timestamp, - //commonlly used by RS415, RS435 + //commonly used by RS415, RS435 RS2_MATCHER_DLR, //compare depth, left and right ir based on frame number, - //commonlly used by RS400, RS405, RS410, RS420, RS430 + //commonly used by RS400, RS405, RS410, RS420, RS430 + + RS2_MATCHER_DIC, //compare depth, ir and confidence based on frame number used by RS500 + + RS2_MATCHER_DIC_C, //compare depth, ir and confidence based on frame number, + //compare the set of corresponding depth, ir and confidence with color based on closest timestamp, + //commonly used by RS515 RS2_MATCHER_DEFAULT, //the default matcher compare all the streams based on closest timestamp @@ -147,6 +215,7 @@ typedef enum rs2_matchers typedef struct rs2_device_info rs2_device_info; typedef struct rs2_device rs2_device; typedef struct rs2_error rs2_error; +typedef struct rs2_log_message rs2_log_message; typedef struct rs2_raw_data_buffer rs2_raw_data_buffer; typedef struct rs2_frame rs2_frame; typedef struct rs2_frame_queue rs2_frame_queue; @@ -155,6 +224,7 @@ typedef struct rs2_pipeline_profile rs2_pipeline_profile; typedef struct rs2_config rs2_config; typedef struct rs2_device_list rs2_device_list; typedef struct rs2_stream_profile_list rs2_stream_profile_list; +typedef struct rs2_processing_block_list rs2_processing_block_list; typedef struct rs2_stream_profile rs2_stream_profile; typedef struct rs2_frame_callback rs2_frame_callback; typedef struct rs2_log_callback rs2_log_callback; @@ -164,22 +234,27 @@ typedef struct rs2_source rs2_source; typedef struct rs2_processing_block rs2_processing_block; typedef struct rs2_frame_processor_callback rs2_frame_processor_callback; typedef struct rs2_playback_status_changed_callback rs2_playback_status_changed_callback; +typedef struct rs2_update_progress_callback rs2_update_progress_callback; typedef struct rs2_context rs2_context; typedef struct rs2_device_hub rs2_device_hub; typedef struct rs2_sensor_list rs2_sensor_list; typedef struct rs2_sensor rs2_sensor; typedef struct rs2_options rs2_options; +typedef struct rs2_options_list rs2_options_list; typedef struct rs2_devices_changed_callback rs2_devices_changed_callback; typedef struct rs2_notification rs2_notification; typedef struct rs2_notifications_callback rs2_notifications_callback; +typedef void (*rs2_log_callback_ptr)(rs2_log_severity, rs2_log_message const *, void * arg); typedef void (*rs2_notification_callback_ptr)(rs2_notification*, void*); typedef void (*rs2_devices_changed_callback_ptr)(rs2_device_list*, rs2_device_list*, void*); typedef void (*rs2_frame_callback_ptr)(rs2_frame*, void*); typedef void (*rs2_frame_processor_callback_ptr)(rs2_frame*, rs2_source*, void*); +typedef void(*rs2_update_progress_callback_ptr)(const float, void*); typedef double rs2_time_t; /**< Timestamp format. units are milliseconds */ typedef long long rs2_metadata_type; /**< Metadata attribute type is defined as 64 bit signed integer*/ +rs2_error * rs2_create_error(const char* what, const char* name, const char* args, rs2_exception_type type); rs2_exception_type rs2_get_librealsense_exception_type(const rs2_error* error); const char* rs2_get_failed_function (const rs2_error* error); const char* rs2_get_failed_args (const rs2_error* error); diff --git a/include/librealsense2/hpp/rs_context.hpp b/include/librealsense2/hpp/rs_context.hpp index a1b0fc28001..3d105aa0aa0 100644 --- a/include/librealsense2/hpp/rs_context.hpp +++ b/include/librealsense2/hpp/rs_context.hpp @@ -17,7 +17,7 @@ namespace rs2 :_removed(removed), _added(added) {} /** - * check if specific device was disconnected + * check if a specific device was disconnected * \return true if device disconnected, false if device connected */ bool was_removed(const rs2::device& dev) const @@ -34,7 +34,7 @@ namespace rs2 } /** - * check if specific device was added + * check if a specific device was added * \return true if device added, false otherwise */ bool was_added(const rs2::device& dev) const @@ -49,7 +49,7 @@ namespace rs2 return res > 0; } - + /** * returns a list of all newly connected devices * \return the list of all new connected devices @@ -59,15 +59,6 @@ namespace rs2 return _added; } - /** - * returns a list of all newly removed devices - * \return the list of all newly removed devices - */ - device_list get_removed_devices() const - { - return _removed; - } - private: device_list _removed; device_list _added; @@ -96,6 +87,7 @@ namespace rs2 class pipeline; class device_hub; + class software_device; /** * default librealsense context class @@ -207,15 +199,22 @@ namespace rs2 rs2::error::handle(e); } + void unload_tracking_module() + { + rs2_error* e = nullptr; + rs2_context_unload_tracking_module(_context.get(), &e); + rs2::error::handle(e); + } + context(std::shared_ptr ctx) : _context(ctx) {} explicit operator std::shared_ptr() { return _context; }; -protected: + protected: friend class rs2::pipeline; friend class rs2::device_hub; + friend class rs2::software_device; - std::shared_ptr _context; }; diff --git a/include/librealsense2/hpp/rs_device.hpp b/include/librealsense2/hpp/rs_device.hpp index 9c1ed2a71ac..2ea37487a04 100644 --- a/include/librealsense2/hpp/rs_device.hpp +++ b/include/librealsense2/hpp/rs_device.hpp @@ -144,7 +144,387 @@ namespace rs2 friend class rs2::device_hub; std::shared_ptr _dev; - + + }; + + template + class update_progress_callback : public rs2_update_progress_callback + { + T _callback; + + public: + explicit update_progress_callback(T callback) : _callback(callback) {} + + void on_update_progress(const float progress) override + { + _callback(progress); + } + + void release() override { delete this; } + }; + + class updatable : public device + { + public: + updatable() : device() {} + updatable(device d) + : device(d.get()) + { + rs2_error* e = nullptr; + if (rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_UPDATABLE, &e) == 0 && !e) + { + _dev.reset(); + } + error::handle(e); + } + + // Move the device to update state, this will cause the updatable device to disconnect and reconnect as an update device. + void enter_update_state() const + { + rs2_error* e = nullptr; + rs2_enter_update_state(_dev.get(), &e); + error::handle(e); + } + + // Create backup of camera flash memory. Such backup does not constitute valid firmware image, and cannot be + // loaded back to the device, but it does contain all calibration and device information." + std::vector create_flash_backup() const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_create_flash_backup_cpp(_dev.get(), nullptr, &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + template + std::vector create_flash_backup(T callback) const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_create_flash_backup_cpp(_dev.get(), new update_progress_callback(std::move(callback)), &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + +return results; + } + + // Update an updatable device to the provided unsigned firmware. This call is executed on the caller's thread. + void update_unsigned(const std::vector& image, int update_mode = RS2_UNSIGNED_UPDATE_MODE_UPDATE) const + { + rs2_error* e = nullptr; + rs2_update_firmware_unsigned_cpp(_dev.get(), image.data(), (int)image.size(), nullptr, update_mode, &e); + error::handle(e); + } + + // Update an updatable device to the provided unsigned firmware. This call is executed on the caller's thread and it supports progress notifications via the callback. + template + void update_unsigned(const std::vector& image, T callback, int update_mode = RS2_UNSIGNED_UPDATE_MODE_UPDATE) const + { + rs2_error* e = nullptr; + rs2_update_firmware_unsigned_cpp(_dev.get(), image.data(), image.size(), new update_progress_callback(std::move(callback)), update_mode, &e); + error::handle(e); + } + }; + + class update_device : public device + { + public: + update_device() : device() {} + update_device(device d) + : device(d.get()) + { + rs2_error* e = nullptr; + if (rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_UPDATE_DEVICE, &e) == 0 && !e) + { + _dev.reset(); + } + error::handle(e); + } + + // Update an updatable device to the provided firmware. + // This call is executed on the caller's thread. + void update(const std::vector& fw_image) const + { + rs2_error* e = nullptr; + rs2_update_firmware_cpp(_dev.get(), fw_image.data(), (int)fw_image.size(), NULL, &e); + error::handle(e); + } + + // Update an updatable device to the provided firmware. + // This call is executed on the caller's thread and it supports progress notifications via the callback. + template + void update(const std::vector& fw_image, T callback) const + { + rs2_error* e = nullptr; + rs2_update_firmware_cpp(_dev.get(), fw_image.data(), fw_image.size(), new update_progress_callback(std::move(callback)), &e); + error::handle(e); + } + }; + + typedef std::vector calibration_table; + + class calibrated_device : public device + { + public: + calibrated_device(device d) + : device(d.get()) + {} + + /** + * Write calibration that was set by set_calibration_table to device's EEPROM. + */ + void write_calibration() const + { + rs2_error* e = nullptr; + rs2_write_calibration(_dev.get(), &e); + error::handle(e); + } + + /** + * Reset device to factory calibration + */ + void reset_to_factory_calibration() + { + rs2_error* e = nullptr; + rs2_reset_to_factory_calibration(_dev.get(), &e); + error::handle(e); + } + }; + + class auto_calibrated_device : public calibrated_device + { + public: + auto_calibrated_device(device d) + : calibrated_device(d) + { + rs2_error* e = nullptr; + if (rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_AUTO_CALIBRATED_DEVICE, &e) == 0 && !e) + { + _dev.reset(); + } + error::handle(e); + } + + /** + * This will improve the depth noise. + * \param[in] json_content Json string to configure speed on chip calibration parameters: + { + "speed": 3, + "scan parameter": 0, + "data sampling": 0 + } + speed - value can be one of: Very fast = 0, Fast = 1, Medium = 2, Slow = 3, White wall = 4, default is Slow + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters + * \param[out] health Calibration Health-Check captures how far camera calibration is from the optimal one + [0, 0.25) - Good + [0.25, 0.75) - Can be Improved + [0.75, ) - Requires Calibration + * \param[in] callback Optional callback to get progress notifications + * \param[in] timeout_ms Timeout in ms + * \return New calibration table + */ + template + calibration_table run_on_chip_calibration(std::string json_content, float* health, T callback, int timeout_ms = 5000) const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_run_on_chip_calibration_cpp(_dev.get(), json_content.data(), json_content.size(), health, new update_progress_callback(std::move(callback)), timeout_ms, &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + /** + * This will improve the depth noise. + * \param[in] json_content Json string to configure speed on chip calibration parameters: + { + "speed": 3, + "scan parameter": 0, + "data sampling": 0 + } + speed - value can be one of: Very fast = 0, Fast = 1, Medium = 2, Slow = 3, White wall = 4, default is Slow + scan parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters + * \param[out] health Calibration Health-Check captures how far camera calibration is from the optimal one + [0, 0.25) - Good + [0.25, 0.75) - Can be Improved + [0.75, ) - Requires Calibration + * \param[in] timeout_ms Timeout in ms + * \return New calibration table + */ + calibration_table run_on_chip_calibration(std::string json_content, float* health, int timeout_ms = 5000) const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_run_on_chip_calibration_cpp(_dev.get(), json_content.data(), static_cast< int >( json_content.size() ), health, nullptr, timeout_ms, &e), + rs2_delete_raw_data); + error::handle(e); + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + /** + * This will adjust camera absolute distance to flat target. User needs to enter the known ground truth. + * \param[in] ground_truth_mm Ground truth in mm must be between 2500 - 2000000 + * \param[in] json_content Json string to configure tare calibration parameters: + { + "average step count": 20, + "step count": 20, + "accuracy": 2, + "scan parameter": 0, + "data sampling": 0 + } + average step count - number of frames to average, must be between 1 - 30, default = 20 + step count - max iteration steps, must be between 5 - 30, default = 10 + accuracy - Subpixel accuracy level, value can be one of: Very high = 0 (0.025%), High = 1 (0.05%), Medium = 2 (0.1%), Low = 3 (0.2%), Default = Very high (0.025%), default is very high (0.025%) + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters + * \param[in] content_size Json string size if its 0 the json will be ignored and calibration will use the default parameters + * \param[in] callback Optional callback to get progress notifications + * \param[in] timeout_ms Timeout in ms + * \return New calibration table + */ + template + calibration_table run_tare_calibration(float ground_truth_mm, std::string json_content, T callback, int timeout_ms = 5000) const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_run_tare_calibration_cpp(_dev.get(), ground_truth_mm, json_content.data(), json_content.size(), new update_progress_callback(std::move(callback)), timeout_ms, &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + /** + * This will adjust camera absolute distance to flat target. User needs to enter the known ground truth. + * \param[in] ground_truth_mm Ground truth in mm must be between 2500 - 2000000 + * \param[in] json_content Json string to configure tare calibration parameters: + { + "average step count": 20, + "step count": 20, + "accuracy": 2, + "scan parameter": 0, + "data sampling": 0 + } + average step count - number of frames to average, must be between 1 - 30, default = 20 + step count - max iteration steps, must be between 5 - 30, default = 10 + accuracy - Subpixel accuracy level, value can be one of: Very high = 0 (0.025%), High = 1 (0.05%), Medium = 2 (0.1%), Low = 3 (0.2%), Default = Very high (0.025%), default is very high (0.025%) + scan_parameter - value can be one of: Py scan (default) = 0, Rx scan = 1 + data_sampling - value can be one of:polling data sampling = 0, interrupt data sampling = 1 + if json is nullptr it will be ignored and calibration will use the default parameters + * \param[in] content_size Json string size if its 0 the json will be ignored and calibration will use the default parameters + * \param[in] timeout_ms Timeout in ms + * \return New calibration table + */ + calibration_table run_tare_calibration(float ground_truth_mm, std::string json_content, int timeout_ms = 5000) const + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_run_tare_calibration_cpp(_dev.get(), ground_truth_mm, json_content.data(), static_cast< int >( json_content.size() ), nullptr, timeout_ms, &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + /** + * Read current calibration table from flash. + * \return Calibration table + */ + calibration_table get_calibration_table() + { + std::vector results; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_get_calibration_table(_dev.get(), &e), + rs2_delete_raw_data); + error::handle(e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + error::handle(e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + /** + * Set current table to dynamic area. + * \param[in] Calibration table + */ + void set_calibration_table(const calibration_table& calibration) + { + rs2_error* e = nullptr; + rs2_set_calibration_table(_dev.get(), calibration.data(), static_cast< int >( calibration.size() ), &e); + error::handle(e); + } + + }; class debug_protocol : public device @@ -290,11 +670,20 @@ namespace rs2 std::shared_ptr _list; }; - class tm2 : public device //TODO: add to wrappers + /** + * The tm2 class is an interface for T2XX devices, such as T265. + * + * For T265, it provides RS2_STREAM_FISHEYE (2), RS2_STREAM_GYRO, RS2_STREAM_ACCEL, and RS2_STREAM_POSE streams, + * and contains the following sensors: + * + * - pose_sensor: map and relocalization functions. + * - wheel_odometer: input for odometry data. + */ + class tm2 : public calibrated_device // TODO: add to wrappers [Python done] { public: tm2(device d) - : device(d.get()) + : calibrated_device(d) { rs2_error* e = nullptr; if (rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_TM2, &e) == 0 && !e) @@ -358,6 +747,61 @@ namespace rs2 rs2_disconnect_tm2_controller(_dev.get(), id, &e); error::handle(e); } + + /** + * Set tm2 camera intrinsics + * \param[in] fisheye_senor_id The ID of the fisheye sensor + * \param[in] intrinsics value to be written to the device + */ + void set_intrinsics(int fisheye_sensor_id, const rs2_intrinsics& intrinsics) + { + rs2_error* e = nullptr; + auto fisheye_sensor = get_sensor_profile(RS2_STREAM_FISHEYE, fisheye_sensor_id); + rs2_set_intrinsics(fisheye_sensor.first.get().get(), fisheye_sensor.second.get(), &intrinsics, &e); + error::handle(e); + } + + /** + * Set tm2 camera extrinsics + * \param[in] from_stream only support RS2_STREAM_FISHEYE + * \param[in] from_id only support left fisheye = 1 + * \param[in] to_stream only support RS2_STREAM_FISHEYE + * \param[in] to_id only support right fisheye = 2 + * \param[in] extrinsics extrinsics value to be written to the device + */ + void set_extrinsics(rs2_stream from_stream, int from_id, rs2_stream to_stream, int to_id, rs2_extrinsics& extrinsics) + { + rs2_error* e = nullptr; + auto from_sensor = get_sensor_profile(from_stream, from_id); + auto to_sensor = get_sensor_profile(to_stream, to_id); + rs2_set_extrinsics(from_sensor.first.get().get(), from_sensor.second.get(), to_sensor.first.get().get(), to_sensor.second.get(), &extrinsics, &e); + error::handle(e); + } + + /** + * Set tm2 motion device intrinsics + * \param[in] stream_type stream type of the motion device + * \param[in] motion_intriniscs intrinsics value to be written to the device + */ + void set_motion_device_intrinsics(rs2_stream stream_type, const rs2_motion_device_intrinsic& motion_intriniscs) + { + rs2_error* e = nullptr; + auto motion_sensor = get_sensor_profile(stream_type, 0); + rs2_set_motion_device_intrinsics(motion_sensor.first.get().get(), motion_sensor.second.get(), &motion_intriniscs, &e); + error::handle(e); + } + + private: + + std::pair get_sensor_profile(rs2_stream stream_type, int stream_index) { + for (auto s : query_sensors()) { + for (auto p : s.get_stream_profiles()) { + if (p.stream_type() == stream_type && p.stream_index() == stream_index) + return std::pair(s, p); + } + } + return std::pair(); + } }; } #endif // LIBREALSENSE_RS2_DEVICE_HPP diff --git a/include/librealsense2/hpp/rs_export.hpp b/include/librealsense2/hpp/rs_export.hpp new file mode 100644 index 00000000000..19eff981107 --- /dev/null +++ b/include/librealsense2/hpp/rs_export.hpp @@ -0,0 +1,390 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2017 Intel Corporation. All Rights Reserved. + +#ifndef LIBREALSENSE_RS2_EXPORT_HPP +#define LIBREALSENSE_RS2_EXPORT_HPP + +#include +#include +#include +#include +#include +#include "rs_processing.hpp" +#include "rs_internal.hpp" +#include +#include +#include +namespace rs2 +{ + struct vec3d { + float x, y, z; + float length() const { return sqrt(x * x + y * y + z * z); } + + vec3d normalize() const + { + auto len = length(); + return { x / len, y / len, z / len }; + } + }; + + inline vec3d operator + (const vec3d & a, const vec3d & b) { return{ a.x + b.x, a.y + b.y, a.z + b.z }; } + inline vec3d operator - (const vec3d & a, const vec3d & b) { return{ a.x - b.x, a.y - b.y, a.z - b.z }; } + inline vec3d cross(const vec3d & a, const vec3d & b) { return { a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x }; } + + class save_to_ply : public filter + { + public: + static const auto OPTION_IGNORE_COLOR = rs2_option(RS2_OPTION_COUNT + 10); + static const auto OPTION_PLY_MESH = rs2_option(RS2_OPTION_COUNT + 11); + static const auto OPTION_PLY_BINARY = rs2_option(RS2_OPTION_COUNT + 12); + static const auto OPTION_PLY_NORMALS = rs2_option(RS2_OPTION_COUNT + 13); + static const auto OPTION_PLY_THRESHOLD = rs2_option(RS2_OPTION_COUNT + 14); + + save_to_ply(std::string filename = "RealSense Pointcloud ", pointcloud pc = pointcloud()) : filter([this](frame f, frame_source& s) { func(f, s); }), + _pc(std::move(pc)), fname(filename) + { + register_simple_option(OPTION_IGNORE_COLOR, option_range{ 0, 1, 0, 1 }); + register_simple_option(OPTION_PLY_MESH, option_range{ 0, 1, 1, 1 }); + register_simple_option(OPTION_PLY_NORMALS, option_range{ 0, 1, 0, 1 }); + register_simple_option(OPTION_PLY_BINARY, option_range{ 0, 1, 1, 1 }); + register_simple_option(OPTION_PLY_THRESHOLD, option_range{ 0, 1, 0.05f, 0 }); + } + + private: + void func(frame data, frame_source& source) + { + frame depth, color; + if (auto fs = data.as()) { + for (auto f : fs) { + if (f.is()) depth = f; + else if (!depth && f.is()) depth = f; + else if (!color && f.is()) color = f; + } + } else if (data.is() || data.is()) { + depth = data; + } + + if (!depth) throw std::runtime_error("Need depth data to save PLY"); + if (!depth.is()) { + if (color) _pc.map_to(color); + depth = _pc.calculate(depth); + } + + export_to_ply(depth, color); + source.frame_ready(data); // passthrough filter because processing_block::process doesn't support sinks + } + + void export_to_ply(points p, video_frame color) { + const bool use_texcoords = color && !get_option(OPTION_IGNORE_COLOR); + bool mesh = get_option(OPTION_PLY_MESH); + bool binary = get_option(OPTION_PLY_BINARY); + bool use_normals = get_option(OPTION_PLY_NORMALS); + const auto verts = p.get_vertices(); + const auto texcoords = p.get_texture_coordinates(); + const uint8_t* texture_data; + if (use_texcoords) // texture might be on the gpu, get pointer to data before for-loop to avoid repeated access + texture_data = reinterpret_cast(color.get_data()); + std::vector new_verts; + std::vector normals; + std::vector> new_tex; + std::map idx_map; + std::map> index_to_normals; + + new_verts.reserve(p.size()); + if (use_texcoords) new_tex.reserve(p.size()); + + static const auto min_distance = 1e-6; + + for (size_t i = 0; i < p.size(); ++i) { + if (fabs(verts[i].x) >= min_distance || fabs(verts[i].y) >= min_distance || + fabs(verts[i].z) >= min_distance) + { + idx_map[i] = new_verts.size(); + new_verts.push_back({ verts[i].x, -1 * verts[i].y, -1 * verts[i].z }); + if (use_texcoords) + { + auto rgb = get_texcolor(color, texture_data, texcoords[i].u, texcoords[i].v); + new_tex.push_back(rgb); + } + } + } + + auto profile = p.get_profile().as(); + auto width = profile.width(), height = profile.height(); + static const auto threshold = get_option(OPTION_PLY_THRESHOLD); + std::vector> faces; + if (mesh) + { + for (int x = 0; x < width - 1; ++x) { + for (int y = 0; y < height - 1; ++y) { + auto a = y * width + x, b = y * width + x + 1, c = (y + 1)*width + x, d = (y + 1)*width + x + 1; + if (verts[a].z && verts[b].z && verts[c].z && verts[d].z + && fabs(verts[a].z - verts[b].z) < threshold && fabs(verts[a].z - verts[c].z) < threshold + && fabs(verts[b].z - verts[d].z) < threshold && fabs(verts[c].z - verts[d].z) < threshold) + { + if (idx_map.count(a) == 0 || idx_map.count(b) == 0 || idx_map.count(c) == 0 || + idx_map.count(d) == 0) + continue; + faces.push_back({ idx_map[a], idx_map[d], idx_map[b] }); + faces.push_back({ idx_map[d], idx_map[a], idx_map[c] }); + + if (use_normals) + { + vec3d point_a = { verts[a].x , -1 * verts[a].y, -1 * verts[a].z }; + vec3d point_b = { verts[b].x , -1 * verts[b].y, -1 * verts[b].z }; + vec3d point_c = { verts[c].x , -1 * verts[c].y, -1 * verts[c].z }; + vec3d point_d = { verts[d].x , -1 * verts[d].y, -1 * verts[d].z }; + + auto n1 = cross(point_d - point_a, point_b - point_a); + auto n2 = cross(point_c - point_a, point_d - point_a); + + index_to_normals[idx_map[a]].push_back(n1); + index_to_normals[idx_map[a]].push_back(n2); + + index_to_normals[idx_map[b]].push_back(n1); + + index_to_normals[idx_map[c]].push_back(n2); + + index_to_normals[idx_map[d]].push_back(n1); + index_to_normals[idx_map[d]].push_back(n2); + } + } + } + } + } + + if (mesh && use_normals) + { + for (int i = 0; i < new_verts.size(); ++i) + { + auto normals_vec = index_to_normals[i]; + vec3d sum = { 0, 0, 0 }; + for (auto& n : normals_vec) + sum = sum + n; + if (normals_vec.size() > 0) + normals.push_back((sum.normalize())); + else + normals.push_back({ 0, 0, 0 }); + } + } + + std::ofstream out(fname); + out << "ply\n"; + if (binary) + out << "format binary_little_endian 1.0\n"; + else + out << "format ascii 1.0\n"; + out << "comment pointcloud saved from Realsense Viewer\n"; + out << "element vertex " << new_verts.size() << "\n"; + out << "property float" << sizeof(float) * 8 << " x\n"; + out << "property float" << sizeof(float) * 8 << " y\n"; + out << "property float" << sizeof(float) * 8 << " z\n"; + if (mesh && use_normals) + { + out << "property float" << sizeof(float) * 8 << " nx\n"; + out << "property float" << sizeof(float) * 8 << " ny\n"; + out << "property float" << sizeof(float) * 8 << " nz\n"; + } + if (use_texcoords) + { + out << "property uchar red\n"; + out << "property uchar green\n"; + out << "property uchar blue\n"; + } + if (mesh) + { + out << "element face " << faces.size() << "\n"; + out << "property list uchar int vertex_indices\n"; + } + out << "end_header\n"; + + if (binary) + { + out.close(); + out.open(fname, std::ios_base::app | std::ios_base::binary); + for (int i = 0; i < new_verts.size(); ++i) + { + // we assume little endian architecture on your device + out.write(reinterpret_cast(&(new_verts[i].x)), sizeof(float)); + out.write(reinterpret_cast(&(new_verts[i].y)), sizeof(float)); + out.write(reinterpret_cast(&(new_verts[i].z)), sizeof(float)); + + if (mesh && use_normals) + { + out.write(reinterpret_cast(&(normals[i].x)), sizeof(float)); + out.write(reinterpret_cast(&(normals[i].y)), sizeof(float)); + out.write(reinterpret_cast(&(normals[i].z)), sizeof(float)); + } + + if (use_texcoords) + { + out.write(reinterpret_cast(&(new_tex[i][0])), sizeof(uint8_t)); + out.write(reinterpret_cast(&(new_tex[i][1])), sizeof(uint8_t)); + out.write(reinterpret_cast(&(new_tex[i][2])), sizeof(uint8_t)); + } + } + if (mesh) + { + auto size = faces.size(); + for (int i = 0; i < size; ++i) { + static const int three = 3; + out.write(reinterpret_cast(&three), sizeof(uint8_t)); + out.write(reinterpret_cast(&(faces[i][0])), sizeof(int)); + out.write(reinterpret_cast(&(faces[i][1])), sizeof(int)); + out.write(reinterpret_cast(&(faces[i][2])), sizeof(int)); + } + } + } + else + { + for (int i = 0; i (faces[i]) << " "; + out << std::get<1>(faces[i]) << " "; + out << std::get<2>(faces[i]) << " "; + out << "\n"; + } + } + } + } + + std::array get_texcolor(const video_frame& texture, const uint8_t* texture_data, float u, float v) + { + const int w = texture.get_width(), h = texture.get_height(); + int x = std::min(std::max(int(u*w + .5f), 0), w - 1); + int y = std::min(std::max(int(v*h + .5f), 0), h - 1); + int idx = x * texture.get_bytes_per_pixel() + y * texture.get_stride_in_bytes(); + return { texture_data[idx], texture_data[idx + 1], texture_data[idx + 2] }; + } + + std::string fname; + pointcloud _pc; + }; + + class save_single_frameset : public filter { + public: + save_single_frameset(std::string filename = "RealSense Frameset ") + : filter([this](frame f, frame_source& s) { save(f, s); }), fname(filename) + {} + + private: + void save(frame data, frame_source& source, bool do_signal=true) + { + software_device dev; + + std::vector> sensors; + std::vector> extrinsics; + + if (auto fs = data.as()) { + for (int i = 0; i < fs.size(); ++i) { + frame f = fs[i]; + auto profile = f.get_profile(); + std::stringstream sname; + sname << "Sensor (" << i << ")"; + auto s = dev.add_sensor(sname.str()); + stream_profile software_profile; + + if (auto vf = f.as()) { + auto vp = profile.as(); + rs2_video_stream stream{ vp.stream_type(), vp.stream_index(), i, vp.width(), vp.height(), vp.fps(), vf.get_bytes_per_pixel(), vp.format(), vp.get_intrinsics() }; + software_profile = s.add_video_stream(stream); + if (f.is()) { + auto ds = sensor_from_frame(f)->as(); + s.add_read_only_option(RS2_OPTION_DEPTH_UNITS, ds.get_option(RS2_OPTION_DEPTH_UNITS)); + } + } else if (f.is()) { + auto mp = profile.as(); + rs2_motion_stream stream{ mp.stream_type(), mp.stream_index(), i, mp.fps(), mp.format(), mp.get_motion_intrinsics() }; + software_profile = s.add_motion_stream(stream); + } else if (f.is()) { + rs2_pose_stream stream{ profile.stream_type(), profile.stream_index(), i, profile.fps(), profile.format() }; + software_profile = s.add_pose_stream(stream); + } else { + // TODO: How to handle other frame types? (e.g. points) + assert(false); + } + sensors.emplace_back(s, software_profile, i); + + bool found_extrin = false; + for (auto& root : extrinsics) { + try { + std::get<0>(root).register_extrinsics_to(software_profile, + std::get<1>(root).get_extrinsics_to(profile) + ); + found_extrin = true; + break; + } catch (...) {} + } + if (!found_extrin) { + extrinsics.emplace_back(software_profile, profile); + } + } + + + + // Recorder needs sensors to already exist when its created + std::stringstream name; + name << fname << data.get_frame_number() << ".bag"; + recorder rec(name.str(), dev); + + for (auto group : sensors) { + auto s = std::get<0>(group); + auto profile = std::get<1>(group); + s.open(profile); + s.start([](frame) {}); + frame f = fs[std::get<2>(group)]; + if (auto vf = f.as()) { + s.on_video_frame({ const_cast(vf.get_data()), [](void*) {}, vf.get_stride_in_bytes(), vf.get_bytes_per_pixel(), + vf.get_timestamp(), vf.get_frame_timestamp_domain(), static_cast(vf.get_frame_number()), profile }); + } else if (f.is()) { + s.on_motion_frame({ const_cast(f.get_data()), [](void*) {}, f.get_timestamp(), + f.get_frame_timestamp_domain(), static_cast(f.get_frame_number()), profile }); + } else if (f.is()) { + s.on_pose_frame({ const_cast(f.get_data()), [](void*) {}, f.get_timestamp(), + f.get_frame_timestamp_domain(), static_cast(f.get_frame_number()), profile }); + } + s.stop(); + s.close(); + } + } else { + // single frame + auto set = source.allocate_composite_frame({ data }); + save(set, source, false); + } + + if (do_signal) + source.frame_ready(data); + } + + std::string fname; + }; +} + +#endif \ No newline at end of file diff --git a/include/librealsense2/hpp/rs_frame.hpp b/include/librealsense2/hpp/rs_frame.hpp index 18f68e7ac42..0ecf670af9b 100644 --- a/include/librealsense2/hpp/rs_frame.hpp +++ b/include/librealsense2/hpp/rs_frame.hpp @@ -17,6 +17,7 @@ namespace rs2 class frame; class pipeline_profile; class points; + class video_stream_profile; class stream_profile { @@ -32,7 +33,7 @@ namespace rs2 */ int stream_index() const { return _index; } /** - * Return the stream format + * Return the stream type * \return rs2_stream - stream type */ rs2_stream stream_type() const { return _type; } @@ -53,7 +54,7 @@ namespace rs2 int unique_id() const { return _uid; } /** - * Clone current profile and change the type, index and format to input parameters + * Clone the current profile and change the type, index and format to input parameters * \param[in] type - will change the stream type from the cloned profile. * \param[in] index - will change the stream index from the cloned profile. * \param[in] format - will change the stream format from the cloned profile. @@ -118,13 +119,13 @@ namespace rs2 } /** - * Checking if stream profile is marked/assigned as default, the meaning is that the profile will be selected when the user will request stream configuration using wildcards (RS2_DEPTH, -1,-1,... + * Checks if stream profile is marked/assigned as default, meaning that the profile will be selected when the user requests stream configuration using wildcards (RS2_DEPTH, -1,-1,... * \return bool - true or false. */ bool is_default() const { return _default; } /** - * Parenthesis operator check that the profile is valid + * Checks if the profile is valid * \return bool - true or false. */ operator bool() const { return _profile != nullptr; } @@ -153,8 +154,8 @@ namespace rs2 return res; } /** - * Assign extrinsic transformation parameters to a specific profile (sensor). The extrinsic information is generally available as part of the camera calibration, and librealsense is responsible to retrieve and assign these parameters where appropriate. - * The specific function is intended for synthetic/mock-up (software) devices for which the parameters are produced and injected by the user. + * Assign extrinsic transformation parameters to a specific profile (sensor). The extrinsic information is generally available as part of the camera calibration, and librealsense is responsible for retrieving and assigning these parameters where appropriate. + * This specific function is intended for synthetic/mock-up (software) devices for which the parameters are produced and injected by the user. * \param[in] stream_profile to - which stream profile to be registered with the extrinsic. * \param[in] rs2_extrinsics extrinsics - the extrinsics to be registered. */ @@ -183,7 +184,7 @@ namespace rs2 friend class rs2::sensor; friend class rs2::frame; friend class rs2::pipeline_profile; - friend class software_sensor; + friend class rs2::video_stream_profile; const rs2_stream_profile* _profile; std::shared_ptr _clone; @@ -201,7 +202,7 @@ namespace rs2 { public: /** - * Video stream profile instance which contans additional video attributes + * Stream profile instance which contains additional video attributes * \param[in] stream_profile sp - assign exisiting stream_profile to this instance. */ explicit video_stream_profile(const stream_profile& sp) @@ -231,7 +232,7 @@ namespace rs2 return _height; } /** - * Get stream profile instrinsics attribute + * Get stream profile instrinsics attributes * \return rs2_intrinsics - stream intrinsics. */ rs2_intrinsics get_intrinsics() const @@ -243,6 +244,28 @@ namespace rs2 return intr; } + using stream_profile::clone; + + /** + * Clone current profile and change the type, index and format to input parameters + * \param[in] type - will change the stream type from the cloned profile. + * \param[in] index - will change the stream index from the cloned profile. + * \param[in] format - will change the stream format from the cloned profile. + * \param[in] width - will change the width of the profile + * \param[in] height - will change the height of the profile + * \param[in] intr - will change the intrinsics of the profile + * \return stream_profile - return the cloned stream profile. + */ + stream_profile clone(rs2_stream type, int index, rs2_format format, int width, int height, const rs2_intrinsics& intr) const + { + rs2_error* e = nullptr; + auto ref = rs2_clone_video_stream_profile(_profile, type, index, format, width, height, &intr, &e); + error::handle(e); + stream_profile res(ref); + res._clone = std::shared_ptr(ref, [](rs2_stream_profile* r) { rs2_delete_stream_profile(r); }); + + return res; + } private: int _width = 0; int _height = 0; @@ -253,7 +276,7 @@ namespace rs2 { public: /** - * Video stream profile instance which contans additional motion attributes + * Stream profile instance which contains IMU-specific intrinsics. * \param[in] stream_profile sp - assign exisiting stream_profile to this instance. */ explicit motion_stream_profile(const stream_profile& sp) @@ -268,11 +291,10 @@ namespace rs2 } /** - * Returns scale and bias of a the motion stream profile + * Returns scale/bias/covariances of a the motion sensors * \return rs2_motion_device_intrtinsic - stream motion intrinsics */ rs2_motion_device_intrinsic get_motion_intrinsics() const - { rs2_error* e = nullptr; rs2_motion_device_intrinsic intrin; @@ -282,15 +304,33 @@ namespace rs2 } }; + class pose_stream_profile : public stream_profile + { + public: + /** + * Stream profile instance with an explicit pose extension type. + * \param[in] stream_profile sp - assign exisiting stream_profile to this instance. + */ + explicit pose_stream_profile(const stream_profile& sp) + : stream_profile(sp) + { + rs2_error* e = nullptr; + if ((rs2_stream_profile_is(sp.get(), RS2_EXTENSION_POSE_PROFILE, &e) == 0 && !e)) + { + _profile = nullptr; + } + error::handle(e); + } + }; + /** - Interface for frame processing functionality + Interface for frame filtering functionality */ - class process_interface + class filter_interface { public: virtual rs2::frame process(rs2::frame frame) const = 0; - virtual rs2_processing_block* get() const = 0; - virtual ~process_interface() = default; + virtual ~filter_interface() = default; }; class frame @@ -304,16 +344,16 @@ namespace rs2 * Base class for multiple frame extensions with internal frame handle * \param[in] rs2_frame frame_ref - internal frame instance */ - frame(rs2_frame* frame_ref) : frame_ref(frame_ref) + frame(rs2_frame* ref) : frame_ref(ref) { #ifdef _DEBUG - if (frame_ref) + if (ref) { rs2_error* e = nullptr; - auto r = rs2_get_frame_number(frame_ref, &e); + auto r = rs2_get_frame_number(ref, &e); if (!e) frame_number = r; - auto s = rs2_get_frame_stream_profile(frame_ref, &e); + auto s = rs2_get_frame_stream_profile(ref, &e); if (!e) profile = stream_profile(s); } @@ -390,14 +430,39 @@ namespace rs2 void keep() { rs2_keep_frame(frame_ref); } /** - * Parenthesis operator check internal frame handle is valid. + * Parenthesis operator check if internal frame handle is valid. * \return bool - true or false. */ operator bool() const { return frame_ref != nullptr; } + rs2_sensor* get_sensor() + { + rs2_error* e = nullptr; + auto r = rs2_get_frame_sensor(frame_ref, &e); + error::handle(e); + return r; + } + /** * retrieve the time at which the frame was captured - * \return the timestamp of the frame, in milliseconds since the device was started + * During the frame's lifetime it receives timestamps both at the device and host levels. + * The different timestamps are gathered and managed under the frame's Metadata attributes. + * Chronologically the list of timestamps comprises of: + * SENSOR_TIMESTAMP - Device clock. For video sensors designates the middle of exposure. Requires metadata support. + * FRAME_TIMESTAMP - Device clock. Stamped at the beginning of frame readout and transfer. Requires metadata support. + * BACKEND_TIMESTAMP - Host (EPOCH) clock in Kernel space. Frame transfer from USB Controller to the USB Driver. + * TIME_OF_ARRIVAL - Host (EPOCH) clock in User space. Frame transfer from the USB Driver to Librealsense. + * + * During runtime the SDK dynamically selects the most correct representaion, based on both device and host capabilities: + * In case the frame metadata is not configured: + * - The function call provides the TIME_OF_ARRIVAL stamp. + * In case the metadata is available the function returns: + * - `HW Timestamp` (SENSOR_TIMESTAMP), or + * - `Global Timestamp` Host-corrected derivative of `HW Timestamp` required for multi-sensor/device synchronization + * - The user can select between the unmodified and the host-calculated Hardware Timestamp by toggling + * the `RS2_OPTION_GLOBAL_TIME_ENABLED` option. + * To query which of the three alternatives is active use `get_frame_timestamp_domain()` function call + * \return the timestamp of the frame, in milliseconds according to the elaborated flow */ double get_timestamp() const { @@ -454,6 +519,18 @@ namespace rs2 return r; } + /** + * retrieve data size from frame handle + * \return the number of bytes in frame + */ + const int get_data_size() const + { + rs2_error* e = nullptr; + auto r = rs2_get_frame_data_size(frame_ref, &e); + error::handle(e); + return r; + } + /** * retrieve data from frame handle * \return the pointer to the start of the frame data @@ -506,9 +583,9 @@ namespace rs2 rs2_frame* get() const { return frame_ref; } explicit operator rs2_frame*() { return frame_ref; } - frame apply_filter(process_interface& processing_block) + frame apply_filter(filter_interface& filter) { - return processing_block.process(*this); + return filter.process(*this); } protected: @@ -553,7 +630,7 @@ namespace rs2 { public: /** - * Inherit frame class with additional video related attributs/functions + * Extends the frame class with additional video related attributes and functions * \param[in] frame - existing frame instance */ video_frame(const frame& f) @@ -636,12 +713,12 @@ namespace rs2 { public: /** - * Inherit frame class with additional point cloud related attributs/functions + * Extends the frame class with additional point cloud related attributes and functions */ points() : frame(), _size(0) {} /** - * Inherit frame class with additional point cloud related attributs/functions + * Extends the frame class with additional point cloud related attributes and functions * \param[in] frame - existing frame instance */ points(const frame& f) @@ -656,13 +733,12 @@ namespace rs2 if (get()) { - rs2_error* e = nullptr; _size = rs2_get_frame_points_count(get(), &e); error::handle(e); } } /** - * Retrieve back the vertices + * Retrieve the vertices of the point cloud * \param[in] vertex* - pointer of vertex sturcture */ const vertex* get_vertices() const @@ -674,7 +750,7 @@ namespace rs2 } /** - * Export current point cloud to PLY file + * Export the point cloud to a PLY file * \param[in] string fname - file name of the PLY to be saved * \param[in] video_frame texture - the texture for the PLY. */ @@ -687,7 +763,7 @@ namespace rs2 error::handle(e); } /** - * return the texture coordinate(uv map) for the point cloud + * Retrieve the texture coordinates (uv map) for the point cloud * \return texture_coordinate* - pointer of texture coordinates. */ const texture_coordinate* get_texture_coordinates() const @@ -711,7 +787,7 @@ namespace rs2 { public: /** - * Inherit video_frame class with additional depth related attributs/functions + * Extends the video_frame class with additional depth related attributes and functions * \param[in] frame - existing frame instance */ depth_frame(const frame& f) @@ -726,10 +802,10 @@ namespace rs2 } /** - * Return the distance between two depth pixels - * \param[in] int x - first pixel position. - * \param[in] int y - second pixel position. - * \return float - distance between to points. + * Provide the depth in meters at the given pixel + * \param[in] int x - pixel's x coordinate. + * \param[in] int y - pixel's y coordinate. + * \return float - depth in metric units at given pixel */ float get_distance(int x, int y) const { @@ -744,7 +820,7 @@ namespace rs2 { public: /** - * Inherit depth_frame class with additional disparity related attributs/functions + * Extend depth_frame class with additional disparity related attributes/functions * \param[in] frame - existing frame instance */ disparity_frame(const frame& f) @@ -758,7 +834,7 @@ namespace rs2 error::handle(e); } /** - * Retrieve back the distance between two IR sensors. + * Retrieve the distance between the two IR sensors. * \return float - baseline. */ float get_baseline(void) const @@ -774,7 +850,7 @@ namespace rs2 { public: /** - * Inherit frame class with additional motion related attributs/functions + * Extends the frame class with additional motion related attributes and functions * \param[in] frame - existing frame instance */ motion_frame(const frame& f) @@ -788,10 +864,10 @@ namespace rs2 error::handle(e); } /** - * Retrieve back the motion data from IMU sensor + * Retrieve the motion data from IMU sensor * \return rs2_vector - 3D vector in Euclidean coordinate space. */ - rs2_vector get_motion_data() + rs2_vector get_motion_data() const { auto data = reinterpret_cast(get_data()); return rs2_vector{ data[0], data[1], data[2] }; @@ -802,7 +878,7 @@ namespace rs2 { public: /** - * Inherit frame class with additional pose related attributs/functions + * Extends the frame class with additional pose related attributes and functions * \param[in] frame - existing frame instance */ pose_frame(const frame& f) @@ -816,10 +892,10 @@ namespace rs2 error::handle(e); } /** - * Retrieve back the pose data from IMU sensor + * Retrieve the pose data from T2xx position tracking sensor * \return rs2_pose - orientation and velocity data. */ - rs2_pose get_pose_data() + rs2_pose get_pose_data() const { rs2_pose pose_data; rs2_error* e = nullptr; @@ -833,11 +909,11 @@ namespace rs2 { public: /** - * Inherit frame class with additional frameset related attributs/functions + * Extends the frame class with additional frameset related attributes and functions */ frameset() :_size(0) {}; /** - * Inherit frame class with additional frameset related attributs/functions + * Extends the frame class with additional frameset related attributes and functions * \param[in] frame - existing frame instance */ frameset(const frame& f) @@ -853,14 +929,13 @@ namespace rs2 if (get()) { - rs2_error* e = nullptr; _size = rs2_embedded_frames_count(get(), &e); error::handle(e); } } /** - * Retrieve back the first frame of specific stream and format types, if no frame found, return the default one(frame instance) + * Retrieve the first frame of a specific stream and optionally with a specific format. If no frame is found, return an empty frame instance. * \param[in] rs2_stream s - frame to be retrieved from this stream type. * \param[in] rs2_format f - frame to be retrieved from this format type. * \return frame - first found frame with s stream type. @@ -868,29 +943,29 @@ namespace rs2 frame first_or_default(rs2_stream s, rs2_format f = RS2_FORMAT_ANY) const { frame result; - foreach([&result, s, f](frame frame) { - if (!result && frame.get_profile().stream_type() == s && (f == RS2_FORMAT_ANY || f == frame.get_profile().format())) + foreach_rs([&result, s, f](frame frm) { + if (!result && frm.get_profile().stream_type() == s && (f == RS2_FORMAT_ANY || f == frm.get_profile().format())) { - result = std::move(frame); + result = std::move(frm); } }); return result; } /** - * Retrieve back the first frame of specific stream type, if no frame found, error will be thrown + * Retrieve the first frame of a specific stream type and optionally with a specific format. If no frame is found, an error will be thrown. * \param[in] rs2_stream s - frame to be retrieved from this stream type. * \param[in] rs2_format f - frame to be retrieved from this format type. * \return frame - first found frame with s stream type. */ frame first(rs2_stream s, rs2_format f = RS2_FORMAT_ANY) const { - auto frame = first_or_default(s, f); - if (!frame) throw error("Frame of requested stream type was not found!"); - return frame; + auto frm = first_or_default(s, f); + if (!frm) throw error("Frame of requested stream type was not found!"); + return frm; } /** - * Retrieve back the first depth framee, if no frame found, return the default one(frame instance) + * Retrieve the first depth frame, if no frame is found, return an empty frame instance. * \return depth_frame - first found depth frame. */ depth_frame get_depth_frame() const @@ -899,7 +974,7 @@ namespace rs2 return f.as(); } /** - * Retrieve back the first color frame, if no frame found, search the color frame from IR stream. If still can't find, return the default one(frame instance) + * Retrieve the first color frame, if no frame is found, search for the color frame from IR stream. If one still can't be found, return an empty frame instance. * \return video_frame - first found color frame. */ video_frame get_color_frame() const @@ -915,7 +990,7 @@ namespace rs2 return f; } /** - * Retrieve back the first infrared frame, return the default one(frame instance) + * Retrieve the first infrared frame, if no frame is found, return an empty frame instance. * \param[in] size_t index * \return video_frame - first found infrared frame. */ @@ -928,13 +1003,58 @@ namespace rs2 } else { - foreach([&f, index](const frame& frame) { - if (frame.get_profile().stream_type() == RS2_STREAM_INFRARED && frame.get_profile().stream_index() == index) - f = frame; + foreach_rs([&f, index](const frame& frm) { + if (frm.get_profile().stream_type() == RS2_STREAM_INFRARED && + frm.get_profile().stream_index() == index) f = frm; }); } return f; } + + /** + * Retrieve the fisheye monochrome video frame + * \param[in] size_t index + * \return video_frame - the fisheye frame denoted by index. + */ + video_frame get_fisheye_frame(const size_t index = 0) const + { + frame f; + if (!index) + { + f = first_or_default(RS2_STREAM_FISHEYE); + } + else + { + foreach_rs([&f, index](const frame& frm) { + if (frm.get_profile().stream_type() == RS2_STREAM_FISHEYE && + frm.get_profile().stream_index() == index) f = frm; + }); + } + return f; + } + + /** + * Retrieve the pose frame + * \param[in] size_t index + * \return pose_frame - the sensor's positional data + */ + pose_frame get_pose_frame(const size_t index = 0) const + { + frame f; + if (!index) + { + f = first_or_default(RS2_STREAM_POSE); + } + else + { + foreach_rs([&f, index](const frame& frm) { + if (frm.get_profile().stream_type() == RS2_STREAM_POSE && + frm.get_profile().stream_index() == index) f = frm; + }); + } + return f.as(); + } + /** * Return the size of the frameset * \return size_t - frameset size. @@ -945,11 +1065,11 @@ namespace rs2 } /** - * Template function, extract internal frame handle from the frameset and invoke the action function + * Template function, extract internal frame handles from the frameset and invoke the action function * \param[in] action - instance with () operator implemented will be invoke after frame extraction. */ template - void foreach(T action) const + void foreach_rs(T action) const { rs2_error* e = nullptr; auto count = size(); @@ -979,7 +1099,7 @@ namespace rs2 throw error("Requested index is out of range!"); } - class iterator + class iterator : public std::iterator { public: iterator(const frameset* owner, size_t index = 0) : _index(index), _owner(owner) {} @@ -999,6 +1119,19 @@ namespace rs2 size_t _size; }; + template + class frame_callback : public rs2_frame_callback + { + T on_frame_function; + public: + explicit frame_callback(T on_frame) : on_frame_function(on_frame) {} + + void on_frame(rs2_frame* fref) override + { + on_frame_function(frame{ fref }); + } + void release() override { delete this; } + }; } #endif // LIBREALSENSE_RS2_FRAME_HPP diff --git a/include/librealsense2/hpp/rs_internal.hpp b/include/librealsense2/hpp/rs_internal.hpp index 7cf1048dc1a..69eb6d1139a 100644 --- a/include/librealsense2/hpp/rs_internal.hpp +++ b/include/librealsense2/hpp/rs_internal.hpp @@ -89,7 +89,37 @@ namespace rs2 } /** - * Inject frame into the sensor + * Add motion stream to software sensor + * + * \param[in] motion all the parameters that required to defind motion stream + */ + stream_profile add_motion_stream(rs2_motion_stream motion_stream) + { + rs2_error* e = nullptr; + + stream_profile stream(rs2_software_sensor_add_motion_stream(_sensor.get(), motion_stream, &e)); + error::handle(e); + + return stream; + } + + /** + * Add pose stream to software sensor + * + * \param[in] pose all the parameters that required to defind pose stream + */ + stream_profile add_pose_stream(rs2_pose_stream pose_stream) + { + rs2_error* e = nullptr; + + stream_profile stream(rs2_software_sensor_add_pose_stream(_sensor.get(), pose_stream, &e)); + error::handle(e); + + return stream; + } + + /** + * Inject video frame into the sensor * * \param[in] frame all the parameters that required to define video frame */ @@ -100,6 +130,30 @@ namespace rs2 error::handle(e); } + /** + * Inject motion frame into the sensor + * + * \param[in] frame all the parameters that required to define motion frame + */ + void on_motion_frame(rs2_software_motion_frame frame) + { + rs2_error* e = nullptr; + rs2_software_sensor_on_motion_frame(_sensor.get(), frame, &e); + error::handle(e); + } + + /** + * Inject pose frame into the sensor + * + * \param[in] frame all the parameters that required to define pose frame + */ + void on_pose_frame(rs2_software_pose_frame frame) + { + rs2_error* e = nullptr; + rs2_software_sensor_on_pose_frame(_sensor.get(), frame, &e); + error::handle(e); + } + /** * Set frame metadata for the upcoming frames * \param[in] value metadata key to set @@ -185,6 +239,21 @@ namespace rs2 return software_sensor(sensor); } + + /** + * Add software device to existing context + * Any future queries on the context + * Will return this device + * This operation cannot be undone (except for destroying the context) + * + * \param[in] ctx context to add the device to + */ + void add_to(context& ctx) + { + rs2_error* e = nullptr; + rs2_context_add_software_device(ctx._context.get(), _dev.get(), &e); + error::handle(e); + } /** * Set the wanted matcher type that will be used by the syncer diff --git a/include/librealsense2/hpp/rs_options.hpp b/include/librealsense2/hpp/rs_options.hpp new file mode 100644 index 00000000000..020c17ebec3 --- /dev/null +++ b/include/librealsense2/hpp/rs_options.hpp @@ -0,0 +1,159 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#ifndef LIBREALSENSE_RS2_OPTIONS_HPP +#define LIBREALSENSE_RS2_OPTIONS_HPP + +#include "rs_types.hpp" + +namespace rs2 +{ + class options + { + public: + /** + * check if particular option is supported + * \param[in] option option id to be checked + * \return true if option is supported + */ + bool supports(rs2_option option) const + { + rs2_error* e = nullptr; + auto res = rs2_supports_option(_options, option, &e); + error::handle(e); + return res > 0; + } + + /** + * get option description + * \param[in] option option id to be checked + * \return human-readable option description + */ + const char* get_option_description(rs2_option option) const + { + rs2_error* e = nullptr; + auto res = rs2_get_option_description(_options, option, &e); + error::handle(e); + return res; + } + + /** + * get option name + * \param[in] option option id to be checked + * \return human-readable option name + */ + const char* get_option_name(rs2_option option) const + { + rs2_error* e = nullptr; + auto res = rs2_get_option_name(_options, option, &e); + error::handle(e); + return res; + } + + /** + * get option value description (in case specific option value hold special meaning) + * \param[in] option option id to be checked + * \param[in] val value of the option + * \return human-readable description of a specific value of an option or null if no special meaning + */ + const char* get_option_value_description(rs2_option option, float val) const + { + rs2_error* e = nullptr; + auto res = rs2_get_option_value_description(_options, option, val, &e); + error::handle(e); + return res; + } + + /** + * read option's value + * \param[in] option option id to be queried + * \return value of the option + */ + float get_option(rs2_option option) const + { + rs2_error* e = nullptr; + auto res = rs2_get_option(_options, option, &e); + error::handle(e); + return res; + } + + /** + * retrieve the available range of values of a supported option + * \return option range containing minimum and maximum values, step and default value + */ + option_range get_option_range(rs2_option option) const + { + option_range result; + rs2_error* e = nullptr; + rs2_get_option_range(_options, option, + &result.min, &result.max, &result.step, &result.def, &e); + error::handle(e); + return result; + } + + /** + * write new value to the option + * \param[in] option option id to be queried + * \param[in] value new value for the option + */ + void set_option(rs2_option option, float value) const + { + rs2_error* e = nullptr; + rs2_set_option(_options, option, value, &e); + error::handle(e); + } + + /** + * check if particular option is read-only + * \param[in] option option id to be checked + * \return true if option is read-only + */ + bool is_option_read_only(rs2_option option) const + { + rs2_error* e = nullptr; + auto res = rs2_is_option_read_only(_options, option, &e); + error::handle(e); + return res > 0; + } + + std::vector get_supported_options() + { + std::vector res; + rs2_error* e = nullptr; + std::shared_ptr options_list( + rs2_get_options_list(_options, &e), + rs2_delete_options_list); + + for (auto opt = 0; opt < rs2_get_options_list_size(options_list.get(), &e);opt++) + { + res.push_back(rs2_get_option_from_list(options_list.get(), opt, &e)); + } + return res; + }; + + options& operator=(const options& other) + { + _options = other._options; + return *this; + } + // if operator= is ok, this should be ok too + options(const options& other) : _options(other._options) {} + + virtual ~options() = default; + protected: + explicit options(rs2_options* o = nullptr) : _options(o) + { + } + + template + options& operator=(const T& dev) + { + _options = (rs2_options*)(dev.get()); + return *this; + } + + private: + rs2_options* _options; + }; +} +#endif // LIBREALSENSE_RS2_OIPTIONS_HPP diff --git a/include/librealsense2/hpp/rs_pipeline.hpp b/include/librealsense2/hpp/rs_pipeline.hpp index 670957f5f07..a7f06da8b9a 100644 --- a/include/librealsense2/hpp/rs_pipeline.hpp +++ b/include/librealsense2/hpp/rs_pipeline.hpp @@ -11,7 +11,7 @@ namespace rs2 { /** - * The pipeline profile includes a device and a selection of active streams, with specific profile. + * The pipeline profile includes a device and a selection of active streams, with specific profiles. * The profile is a selection of the above under filters and conditions defined by the pipeline. * Streams may belong to more than one sensor of the device. */ @@ -50,7 +50,7 @@ namespace rs2 } /** - * Return the selected stream profile, which are enabled in this profile. + * Return the stream profile that is enabled for the specified stream in this profile. * * \param[in] stream_type Stream type of the desired profile * \param[in] stream_index Stream index of the desired profile. -1 for any matching. @@ -106,7 +106,7 @@ namespace rs2 pipeline_profile(std::shared_ptr profile) : _pipeline_profile(profile){} private: - + std::shared_ptr _pipeline_profile; friend class config; friend class pipeline; @@ -160,25 +160,51 @@ namespace rs2 error::handle(e); } - //Stream type and possibly also stream index + /** + * Stream type and possibly also stream index. Other parameters are resolved internally. + * + * \param[in] stream_type Stream type to be enabled + * \param[in] stream_index Stream index, used for multiple streams of the same type. -1 indicates any. + */ void enable_stream(rs2_stream stream_type, int stream_index = -1) { enable_stream(stream_type, stream_index, 0, 0, RS2_FORMAT_ANY, 0); } - //Stream type and resolution, and possibly format and frame rate + /** + * Stream type and resolution, and possibly format and frame rate. Other parameters are resolved internally. + * + * \param[in] stream_type Stream type to be enabled + * \param[in] width Stream image width - for images streams. 0 indicates any. + * \param[in] height Stream image height - for images streams. 0 indicates any. + * \param[in] format Stream data format - pixel format for images streams, of data type for other streams. RS2_FORMAT_ANY indicates any. + * \param[in] framerate Stream frames per second. 0 indicates any. + */ void enable_stream(rs2_stream stream_type, int width, int height, rs2_format format = RS2_FORMAT_ANY, int framerate = 0) { enable_stream(stream_type, -1, width, height, format, framerate); } - //Stream type and format + /** + * Stream type and format, and possibly frame rate. Other parameters are resolved internally. + * + * \param[in] stream_type Stream type to be enabled + * \param[in] format Stream data format - pixel format for images streams, of data type for other streams. RS2_FORMAT_ANY indicates any. + * \param[in] framerate Stream frames per second. 0 indicates any. + */ void enable_stream(rs2_stream stream_type, rs2_format format, int framerate = 0) { enable_stream(stream_type, -1, 0, 0, format, framerate); } - //Stream type and format + /** + * Stream type, index, and format, and possibly framerate. Other parameters are resolved internally. + * + * \param[in] stream_type Stream type to be enabled + * \param[in] stream_index Stream index, used for multiple streams of the same type. -1 indicates any. + * \param[in] format Stream data format - pixel format for images streams, of data type for other streams. RS2_FORMAT_ANY indicates any. + * \param[in] framerate Stream frames per second. 0 indicates any. + */ void enable_stream(rs2_stream stream_type, int stream_index, rs2_format format, int framerate = 0) { enable_stream(stream_type, stream_index, 0, 0, format, framerate); @@ -216,7 +242,7 @@ namespace rs2 * Select a recorded device from a file, to be used by the pipeline through playback. * The device available streams are as recorded to the file, and \c resolve() considers only this device and * configuration as available. - * This request cannot be used if enable_record_to_file() is called for the current config, and vise versa + * This request cannot be used if \c enable_record_to_file() is called for the current config, and vice versa. * * \param[in] file_name The playback file of the device */ @@ -228,8 +254,8 @@ namespace rs2 } /** - * Requires that the resolved device would be recorded to file - * This request cannot be used if enable_device_from_file() is called for the current config, and vise versa + * Requires that the resolved device would be recorded to file. + * This request cannot be used if \c enable_device_from_file() is called for the current config, and vice versa. * as available. * * \param[in] file_name The desired file for the output record @@ -320,7 +346,7 @@ namespace rs2 return _config; } - config(std::shared_ptr config) : _config(config) {} + config(std::shared_ptr cfg) : _config(cfg) {} private: std::shared_ptr _config; }; @@ -403,6 +429,54 @@ namespace rs2 return pipeline_profile(p); } + /** + * Start the pipeline streaming with its default configuration. + * The pipeline captures samples from the device, and delivers them to the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() and \c poll_for_frames() will throw exception. + * + * \param[in] callback Stream callback, can be any callable object accepting rs2::frame + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + template + pipeline_profile start(S callback) + { + rs2_error* e = nullptr; + auto p = std::shared_ptr( + rs2_pipeline_start_with_callback_cpp(_pipeline.get(), new frame_callback(callback), &e), + rs2_delete_pipeline_profile); + + error::handle(e); + return pipeline_profile(p); + } + + /** + * Start the pipeline streaming according to the configuraion. + * The pipeline captures samples from the device, and delivers them to the provided frame callback. + * Starting the pipeline is possible only when it is not started. If the pipeline was started, an exception is raised. + * When starting the pipeline with a callback both \c wait_for_frames() and \c poll_for_frames() will throw exception. + * The pipeline selects and activates the device upon start, according to configuration or a default configuration. + * When the rs2::config is provided to the method, the pipeline tries to activate the config \c resolve() result. + * If the application requests are conflicting with pipeline computer vision modules or no matching device is available on + * the platform, the method fails. + * Available configurations and devices may change between config \c resolve() call and pipeline start, in case devices + * are connected or disconnected, or another application acquires ownership of a device. + * + * \param[in] config A rs2::config with requested filters on the pipeline configuration. By default no filters are applied. + * \param[in] callback Stream callback, can be any callable object accepting rs2::frame + * \return The actual pipeline device and streams profile, which was successfully configured to the streaming device. + */ + template + pipeline_profile start(const config& config, S callback) + { + rs2_error* e = nullptr; + auto p = std::shared_ptr( + rs2_pipeline_start_with_config_and_callback_cpp(_pipeline.get(), config.get().get(), new frame_callback(callback), &e), + rs2_delete_pipeline_profile); + + error::handle(e); + return pipeline_profile(p); + } /** * Stop the pipeline streaming. @@ -428,12 +502,12 @@ namespace rs2 * should be called as fast as the device frame rate. * The application can maintain the frames handles to defer processing. However, if the application maintains too long * history, the device may lack memory resources to produce new frames, and the following call to this method shall fail - * to retrieve new frames, until resources are retained. + * to retrieve new frames, until resources become available. * * \param[in] timeout_ms Max time in milliseconds to wait until an exception will be thrown * \return Set of time synchronized frames, one from each active stream */ - frameset wait_for_frames(unsigned int timeout_ms = 5000) const + frameset wait_for_frames(unsigned int timeout_ms = RS2_DEFAULT_TIMEOUT) const { rs2_error* e = nullptr; frame f(rs2_pipeline_wait_for_frames(_pipeline.get(), timeout_ms, &e)); @@ -451,7 +525,7 @@ namespace rs2 * To avoid frame drops, this method should be called as fast as the device frame rate. * The application can maintain the frames handles to defer processing. However, if the application maintains too long * history, the device may lack memory resources to produce new frames, and the following calls to this method shall - * return no new frames, until resources are retained. + * return no new frames, until resources become available. * * \param[out] f Frames set handle * \return True if new set of time synchronized frames was stored to f, false if no new frames set is available @@ -471,7 +545,7 @@ namespace rs2 return res > 0; } - bool try_wait_for_frames(frameset* f, unsigned int timeout_ms = 5000) const + bool try_wait_for_frames(frameset* f, unsigned int timeout_ms = RS2_DEFAULT_TIMEOUT) const { if (!f) { diff --git a/include/librealsense2/hpp/rs_processing.hpp b/include/librealsense2/hpp/rs_processing.hpp index c536a23cbff..a09f477c650 100644 --- a/include/librealsense2/hpp/rs_processing.hpp +++ b/include/librealsense2/hpp/rs_processing.hpp @@ -6,26 +6,27 @@ #include "rs_types.hpp" #include "rs_frame.hpp" -#include "rs_context.hpp" +#include "rs_options.hpp" namespace rs2 { /** - * The source used to generate the frame, which usually generated by low level driver for each sensor. The frame_source is one of the parameter of processing_block callback function, which can be used to re-generate the frame and via frame_ready to invoke another callback function - * to notify application frame is ready. Best understanding please refer to "video_processing_thread" code snippet in rs-measure.cpp. + * The source used to generate frames, which is usually done by the low level driver for each sensor. frame_source is one of the parameters + * of processing_block's callback function, which can be used to re-generate the frame and via frame_ready invoke another callback function + * to notify application frame is ready. Please refer to "video_processing_thread" code snippet in rs-measure.cpp for a detailed usage example. */ class frame_source { public: /** - * Allocate video frame with given params + * Allocate a new video frame with given params * * \param[in] profile Stream profile going to allocate. * \param[in] original Original frame, if new_bpp, new_width, new_height or new_stride is zero, newly created frame will base on original frame's metadata to allocate new frame. If frame_type is RS2_EXTENSION_DEPTH_FRAME, the original of the returned frame will be set to it. * \param[in] new_bpp Frame bit per pixel to create. * \param[in] new_width Frame width to create. * \param[in] new_height Frame height to create. - * \param[in] new_stride Frame stride to crate. + * \param[in] new_stride Frame stride to create. * \param[in] frame_type Which frame type are going to create. * \return The allocated frame */ @@ -44,6 +45,25 @@ namespace rs2 return result; } + /** + * Allocate a new motion frame with given params + * + * \param[in] profile Stream profile going to allocate. + * \param[in] original Original frame. + * \param[in] frame_type Which frame type are going to create. + * \return The allocated frame + */ + frame allocate_motion_frame(const stream_profile& profile, + const frame& original, + rs2_extension frame_type = RS2_EXTENSION_MOTION_FRAME) const + { + rs2_error* e = nullptr; + auto result = rs2_allocate_synthetic_motion_frame(_source, profile.get(), + original.get(), frame_type, &e); + error::handle(e); + return result; + } + frame allocate_points(const stream_profile& profile, const frame& original) const { @@ -118,8 +138,9 @@ namespace rs2 * create frame queue. frame queues are the simplest x-platform synchronization primitive provided by librealsense * to help developers who are not using async APIs * param[in] capacity size of the frame queue + * param[in] keep_frames if set to true, the queue automatically calls keep() on every frame enqueued into it. */ - explicit frame_queue(unsigned int capacity) : _capacity(capacity) + explicit frame_queue(unsigned int capacity, bool keep_frames = false) : _capacity(capacity), _keep(keep_frames) { rs2_error* e = nullptr; _queue = std::shared_ptr( @@ -131,11 +152,12 @@ namespace rs2 frame_queue() : frame_queue(1) {} /** - * enqueue new frame into a queue + * enqueue new frame into the queue * \param[in] f - frame handle to enqueue (this operation passed ownership to the queue) */ void enqueue(frame f) const { + if (_keep) f.keep(); rs2_enqueue_frame(f.frame_ref, _queue.get()); // noexcept f.frame_ref = nullptr; // frame has been essentially moved from } @@ -188,26 +210,35 @@ namespace rs2 enqueue(std::move(f)); } /** - * return the capacity of the queue + * Return the capacity of the queue * \return capacity size */ size_t capacity() const { return _capacity; } + /** + * Return whether or not the queue calls keep on enqueued frames + * \return keeping frames + */ + bool keep_frames() const { return _keep; } + private: std::shared_ptr _queue; size_t _capacity; + bool _keep; }; /** - * Define the processing block flow, inherit this class to generate your own processing_block. Best understanding is to refer to the viewer class in examples.hpp + * Define the processing block flow, inherit this class to generate your own processing_block. Please refer to the viewer class in examples.hpp for a detailed usage example. */ - class processing_block : public process_interface, public options + class processing_block : public options { public: + using options::supports; + /** * Start the processing block with callback function on_frame to inform the application the frame is processed. * - * \param[in] on_frame callback function for noticing the frame to be processed is ready. + * \param[in] on_frame callback function for notifying the frame to be processed is ready. */ template void start(S on_frame) @@ -242,6 +273,76 @@ namespace rs2 rs2_process_frame(get(), ptr, &e); error::handle(e); } + /** + * constructor with already created low level processing block assigned. + * + * \param[in] block - low level rs2_processing_block created before. + */ + processing_block(std::shared_ptr block) + : options((rs2_options*)block.get()), _block(block) + { + } + + /** + * constructor with callback function on_frame in rs2_frame_processor_callback structure assigned. + * + * \param[in] processing_function - function pointer of on_frame function in rs2_frame_processor_callback structure, which will be called back by invoke function . + */ + template + processing_block(S processing_function) + { + rs2_error* e = nullptr; + _block = std::shared_ptr( + rs2_create_processing_block(new frame_processor_callback(processing_function), &e), + rs2_delete_processing_block); + options::operator=(_block); + error::handle(e); + } + + operator rs2_options*() const { return (rs2_options*)get(); } + rs2_processing_block* get() const { return _block.get(); } + + /** + * Check if a specific camera info field is supported. + * \param[in] info the parameter to check for support + * \return true if the parameter both exists and well-defined for the specific processing_block + */ + bool supports(rs2_camera_info info) const + { + rs2_error* e = nullptr; + auto is_supported = rs2_supports_processing_block_info(_block.get(), info, &e); + error::handle(e); + return is_supported > 0; + } + + /** + * Retrieve camera specific information, like versions of various internal components. + * \param[in] info camera info type to retrieve + * \return the requested camera info string, in a format specific to the processing_block model + */ + const char* get_info(rs2_camera_info info) const + { + rs2_error* e = nullptr; + auto result = rs2_get_processing_block_info(_block.get(), info, &e); + error::handle(e); + return result; + } + protected: + void register_simple_option(rs2_option option_id, option_range range) { + rs2_error * e = nullptr; + rs2_processing_block_register_simple_option(_block.get(), option_id, + range.min, range.max, range.step, range.def, &e); + error::handle(e); + } + std::shared_ptr _block; + }; + + /** + * Define the filter workflow, inherit this class to generate your own filter. Refer to the viewer class in examples.hpp for a more detailed example. + */ + class filter : public processing_block, public filter_interface + { + public: /** * Ask processing block to process the frame and poll the processed frame from internal queue * @@ -256,14 +357,17 @@ namespace rs2 throw std::runtime_error("Error occured during execution of the processing block! See the log for more info"); return f; } + /** * constructor with already created low level processing block assigned. * * \param[in] block - low level rs2_processing_block created before. */ - processing_block(std::shared_ptr block) - : _block(block), options((rs2_options*)block.get()) + filter(std::shared_ptr block, int queue_size = 1) + : processing_block(block), + _queue(queue_size) { + start(_queue); } /** @@ -272,42 +376,48 @@ namespace rs2 * \param[in] processing_function - function pointer of on_frame function in rs2_frame_processor_callback structure, which will be called back by invoke function . */ template - processing_block(S processing_function) + filter(S processing_function, int queue_size = 1) : + processing_block(processing_function), + _queue(queue_size) { - rs2_error* e = nullptr; - _block = std::shared_ptr( - rs2_create_processing_block(new frame_processor_callback(processing_function), &e), - rs2_delete_processing_block); - options::operator=(_block); - error::handle(e); + start(_queue); } + frame_queue get_queue() { return _queue; } - operator rs2_options*() const { return (rs2_options*)get(); } - rs2_processing_block* get() const override { return _block.get(); } - protected: - processing_block(std::shared_ptr block, int queue_size) - : _block(block), _queue(queue_size), options((rs2_options*)block.get()) + rs2_processing_block* get() const { return _block.get(); } + + template + bool is() const { - start(_queue); + T extension(*this); + return extension; } - std::shared_ptr _block; + template + T as() const + { + T extension(*this); + return extension; + } + + operator bool() const { return _block.get() != nullptr; } + protected: frame_queue _queue; }; /** - * Generating the 3D point cloud base on depth frame also create the mapped texture. + * Generates 3D point clouds based on a depth frame. Can also map textures from a color frame. */ - class pointcloud : public processing_block + class pointcloud : public filter { public: /** * create pointcloud instance */ - pointcloud() : processing_block(init(), 1) {} + pointcloud() : filter(init(), 1) {} - pointcloud(rs2_stream stream, int index = 0) : processing_block(init(), 1) + pointcloud(rs2_stream stream, int index = 0) : filter(init(), 1) { set_option(RS2_OPTION_STREAM_FILTER, float(stream)); set_option(RS2_OPTION_STREAM_INDEX_FILTER, float(index)); @@ -320,10 +430,22 @@ namespace rs2 */ points calculate(frame depth) { - return process(depth); + auto res = process(depth); + if (res.as()) + return res; + + if (auto set = res.as ()) + { + for (auto f : set) + { + if(f.as()) + return f; + } + } + throw std::runtime_error("Error occured during execution of the processing block! See the log for more info"); } /** - * Map the point cloud to other frame. + * Map the point cloud to the given color frame. * * \param[in] mapped - the frame to be mapped to as texture. */ @@ -332,9 +454,12 @@ namespace rs2 set_option(RS2_OPTION_STREAM_FILTER, float(mapped.get_profile().stream_type())); set_option(RS2_OPTION_STREAM_FORMAT_FILTER, float(mapped.get_profile().format())); set_option(RS2_OPTION_STREAM_INDEX_FILTER, float(mapped.get_profile().stream_index())); - invoke(mapped); + process(mapped); } + protected: + pointcloud(std::shared_ptr block) : filter(block, 1) {} + private: friend class context; @@ -354,13 +479,107 @@ namespace rs2 } }; + class yuy_decoder : public filter + { + public: + /** + * Creates YUY decoder processing block. This block accepts raw YUY frames and outputs frames of other formats. + * YUY is a common video format used by a variety of web-cams. It benefits from packing pixels into 2 bytes per pixel + * without signficant quality drop. YUY representation can be converted back to more usable RGB form, + * but this requires somewhat costly conversion. + * The SDK will automatically try to use SSE2 and AVX instructions and CUDA where available to get + * best performance. Other implementations (using GLSL, OpenCL, Neon and NCS) should follow. + */ + yuy_decoder() : filter(init(), 1) { } + + protected: + yuy_decoder(std::shared_ptr block) : filter(block, 1) {} + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_yuy_decoder(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; + + class threshold_filter : public filter + { + public: + /** + * Creates depth thresholding filter + * By controlling min and max options on the block, one could filter out depth values + * that are either too large or too small, as a software post-processing step + */ + threshold_filter(float min_dist = 0.15f, float max_dist = 4.f) + : filter(init(), 1) + { + set_option(RS2_OPTION_MIN_DISTANCE, min_dist); + set_option(RS2_OPTION_MAX_DISTANCE, max_dist); + } + + threshold_filter(filter f) : filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_THRESHOLD_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } + + protected: + threshold_filter(std::shared_ptr block) : filter(block, 1) {} + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_threshold(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; + + class units_transform : public filter + { + public: + /** + * Creates depth units to meters processing block. + */ + units_transform() : filter(init(), 1) {} + + protected: + units_transform(std::shared_ptr block) : filter(block, 1) {} + + private: + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_units_transform(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; + class asynchronous_syncer : public processing_block { public: /** * Real asynchronous syncer within syncer class */ - asynchronous_syncer() : processing_block(init(), 1) {} + asynchronous_syncer() : processing_block(init()) {} private: std::shared_ptr init() @@ -379,7 +598,7 @@ namespace rs2 { public: /** - * Sync instance to align the different frames from different streams + * Sync instance to align frames from different streams */ syncer(int queue_size = 1) :_results(queue_size) @@ -442,19 +661,21 @@ namespace rs2 /** Auxiliary processing block that performs image alignment using depth data and camera calibration */ - class align : public processing_block + class align : public filter { public: /** - Create align processing block + Create align filter Alignment is performed between a depth image and another image. To perform alignment of a depth image to the other, set the align_to parameter with the other stream type. - To perform alignment of a non depth image to a depth image, set the align_to parameter to RS2_STREAM_DEPTH - Camera calibration and frame's stream type are determined on the fly, according to the first valid frameset passed to process() + To perform alignment of a non depth image to a depth image, set the align_to parameter to RS2_STREAM_DEPTH. + Camera calibration and frame's stream type are determined on the fly, according to the first valid frameset passed to process(). * \param[in] align_to The stream type to which alignment should be made. */ - align(rs2_stream align_to) : processing_block(init(align_to), 1) {} + align(rs2_stream align_to) : filter(init(align_to), 1) {} + + using filter::process; /** * Run the alignment process on the given frames to get an aligned set of frames @@ -464,9 +685,12 @@ namespace rs2 */ frameset process(frameset frames) { - return processing_block::process(frames); + return filter::process(frames); } + protected: + align(std::shared_ptr block) : filter(block, 1) {} + private: friend class context; std::shared_ptr init(rs2_stream align_to) @@ -481,14 +705,14 @@ namespace rs2 } }; - class colorizer : public processing_block + class colorizer : public filter { public: /** - * Create colorizer processing block - * Colorizer generate color image base on input depth frame + * Create colorizer filter + * Colorizer generate color image based on input depth frame */ - colorizer() : processing_block(init(), 1) { } + colorizer() : filter(init(), 1) { } /** * Create colorizer processing block * Colorizer generate color image base on input depth frame @@ -502,8 +726,9 @@ namespace rs2 * 6 - Warm * 7 - Quantized * 8 - Pattern + * 9 - Hue */ - colorizer(float color_scheme) : processing_block(init(), 1) + colorizer(float color_scheme) : filter(init(), 1) { set_option(RS2_OPTION_COLOR_SCHEME, float(color_scheme)); } @@ -517,6 +742,9 @@ namespace rs2 return process(depth); } + protected: + colorizer(std::shared_ptr block) : filter(block, 1) {} + private: std::shared_ptr init() { @@ -533,24 +761,34 @@ namespace rs2 } }; - class decimation_filter : public processing_block + class decimation_filter : public filter { public: /** - * Create decimation filter processing block - * decimation filter performing downsampling by using the median with specific kernel size + * Create decimation filter + * Decimation filter performs downsampling by using the median with specific kernel size */ - decimation_filter() : processing_block(init(), 1) {} + decimation_filter() : filter(init(), 1) {} /** - * Create decimation filter processing block - * decimation filter performing downsampling by using the median with specific kernel size + * Create decimation filter + * Decimation filter performs downsampling by using the median with specific kernel size * \param[in] magnitude - number of filter iterations. */ - decimation_filter(float magnitude) : processing_block(init(), 1) + decimation_filter(float magnitude) : filter(init(), 1) { set_option(RS2_OPTION_FILTER_MAGNITUDE, magnitude); } - + + decimation_filter(filter f) : filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_DECIMATION_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } + private: friend class context; @@ -569,22 +807,22 @@ namespace rs2 } }; - class temporal_filter : public processing_block + class temporal_filter : public filter { public: /** - * Create temporal filter processing block with default settings - * temporal filter smooth the image by calculating multiple frames with alpha and delta settings - * alpha defines the weight of current frame, delta defines threshold for edge classification and preserving. + * Create temporal filter with default settings + * Temporal filter smooths the image by calculating multiple frames with alpha and delta settings + * alpha defines the weight of current frame, and delta defines the threshold for edge classification and preserving. * For more information, check the temporal-filter.cpp */ - temporal_filter() : processing_block(init(), 1) {} + temporal_filter() : filter(init(), 1) {} /** - * Create temporal filter processing block with user settings - * temporal filter smooth the image by calculating multiple frames with alpha and delta settings + * Create temporal filter with user settings + * Temporal filter smooths the image by calculating multiple frames with alpha and delta settings * \param[in] smooth_alpha - defines the weight of current frame. - * \param[in] smooth_delta - delta defines threshold for edge classification and preserving. - * \param[in] persistence_control - A set of predefined rules (masks) that govern when missing pixels will be replace with the last valid value so that the data will remain persistent over time: + * \param[in] smooth_delta - delta defines the threshold for edge classification and preserving. + * \param[in] persistence_control - A set of predefined rules (masks) that govern when missing pixels will be replaced with the last valid value so that the data will remain persistent over time: * 0 - Disabled - Persistency filter is not activated and no hole filling occurs. * 1 - Valid in 8/8 - Persistency activated if the pixel was valid in 8 out of the last 8 frames * 2 - Valid in 2/last 3 - Activated if the pixel was valid in two out of the last 3 frames @@ -594,15 +832,24 @@ namespace rs2 * 6 - Valid in 1/last 5 - Activated if the pixel was valid in one out of the last 5 frames * 7 - Valid in 1/last 8 - Activated if the pixel was valid in one out of the last 8 frames * 8 - Persist Indefinitely - Persistency will be imposed regardless of the stored history(most aggressive filtering) - * For more information, check the temporal-filter.cpp + * For more information, check temporal-filter.cpp */ - temporal_filter(float smooth_alpha, float smooth_delta, int persistence_control) : processing_block(init(), 1) + temporal_filter(float smooth_alpha, float smooth_delta, int persistence_control) : filter(init(), 1) { set_option(RS2_OPTION_HOLES_FILL, float(persistence_control)); set_option(RS2_OPTION_FILTER_SMOOTH_ALPHA, float(smooth_alpha)); set_option(RS2_OPTION_FILTER_SMOOTH_DELTA, float(smooth_delta)); } + temporal_filter(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_TEMPORAL_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } private: friend class context; @@ -621,28 +868,28 @@ namespace rs2 } }; - class spatial_filter : public processing_block + class spatial_filter : public filter { public: /** - * Create spatial filter processing block - * spatial filter smooth the image by calculating frame with alpha and delta settings - * alpha defines he weight of the current pixel for smoothing is bounded within [25..100]%, + * Create spatial filter + * Spatial filter smooths the image by calculating frame with alpha and delta settings + * alpha defines the weight of the current pixel for smoothing, and is bounded within [25..100]%, * delta defines the depth gradient below which the smoothing will occur as number of depth levels * For more information, check the spatial-filter.cpp */ - spatial_filter() : processing_block(init(), 1) { } + spatial_filter() : filter(init(), 1) { } /** - * Create spatial filter processing block - * spatial filter smooth the image by calculating frame with alpha and delta settings + * Create spatial filter + * Spatial filter smooths the image by calculating frame with alpha and delta settings * \param[in] smooth_alpha - defines the weight of the current pixel for smoothing is bounded within [25..100]% * \param[in] smooth_delta - defines the depth gradient below which the smoothing will occur as number of depth levels * \param[in] magnitude - number of filter iterations. - * \param[in] hole_fill - an in-place heuristic symmetric hole-filling mode applied horizontally during the filter passes. + * \param[in] hole_fill - an in-place heuristic symmetric hole-filling mode applied horizontally during the filter passes. * Intended to rectify minor artefacts with minimal performance impact */ - spatial_filter(float smooth_alpha, float smooth_delta, float magnitude, float hole_fill) : processing_block(init(), 1) + spatial_filter(float smooth_alpha, float smooth_delta, float magnitude, float hole_fill) : filter(init(), 1) { set_option(RS2_OPTION_FILTER_SMOOTH_ALPHA, float(smooth_alpha)); set_option(RS2_OPTION_FILTER_SMOOTH_DELTA, float(smooth_delta)); @@ -650,6 +897,15 @@ namespace rs2 set_option(RS2_OPTION_HOLES_FILL, hole_fill); } + spatial_filter(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_SPATIAL_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } private: friend class context; @@ -668,15 +924,24 @@ namespace rs2 } }; - class disparity_transform : public processing_block + class disparity_transform : public filter { public: /** - * Create disparity transform processing block - * the processing convert the depth and disparity from each pixel + * Create disparity transform filter + * Converts from depth representation to disparity representation and vice-versa in depth frames */ - disparity_transform(bool transform_to_disparity = true) : processing_block(init(transform_to_disparity), 1) { } + disparity_transform(bool transform_to_disparity = true) : filter(init(transform_to_disparity), 1) { } + disparity_transform(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_DISPARITY_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } private: friend class context; std::shared_ptr init(bool transform_to_disparity) @@ -693,29 +958,107 @@ namespace rs2 return block; } }; + + class zero_order_invalidation : public filter + { + public: + /** + * Create zero order fix filter + * The filter fixes the zero order artifact + */ + zero_order_invalidation() : filter(init()) + {} + + zero_order_invalidation(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_ZERO_ORDER_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } + + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_zero_order_invalidation_block(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; - class hole_filling_filter : public processing_block + class depth_huffman_decoder : public filter { public: /** - * Create hole filling processing block - * the processing perform the hole filling base on different hole filling mode. + * Create decoder for Huffman-code compressed Depth frames + */ + depth_huffman_decoder() : filter(init()) + {} + + depth_huffman_decoder(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_DEPTH_HUFFMAN_DECODER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } + + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_huffman_depth_decompress_block(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; + + class hole_filling_filter : public filter + { + public: + /** + * Create hole filling filter + * The processing performed depends on the selected hole filling mode. */ - hole_filling_filter() : processing_block(init(), 1) {} + hole_filling_filter() : filter(init(), 1) {} /** - * Create hole filling processing block - * the processing perform the hole filling base on different hole filling mode. + * Create hole filling filter + * The processing performed depends on the selected hole filling mode. * \param[in] mode - select the hole fill mode: * 0 - fill_from_left - Use the value from the left neighbor pixel to fill the hole * 1 - farest_from_around - Use the value from the neighboring pixel which is furthest away from the sensor * 2 - nearest_from_around - - Use the value from the neighboring pixel closest to the sensor */ - hole_filling_filter(int mode) : processing_block(init(), 1) + hole_filling_filter(int mode) : filter(init(), 1) { set_option(RS2_OPTION_HOLES_FILL, float(mode)); } + hole_filling_filter(filter f) :filter(f) + { + rs2_error* e = nullptr; + if (!rs2_is_processing_block_extendable_to(f.get(), RS2_EXTENSION_HOLE_FILLING_FILTER, &e) && !e) + { + _block.reset(); + } + error::handle(e); + } private: friend class context; @@ -733,5 +1076,29 @@ namespace rs2 return block; } }; + + class rates_printer : public filter + { + public: + /** + * Create hole filling processing block + * the processing perform the hole filling base on different hole filling mode. + */ + rates_printer() : filter(init(), 1) {} + + private: + friend class context; + + std::shared_ptr init() + { + rs2_error* e = nullptr; + auto block = std::shared_ptr( + rs2_create_rates_printer_block(&e), + rs2_delete_processing_block); + error::handle(e); + + return block; + } + }; } #endif // LIBREALSENSE_RS2_PROCESSING_HPP diff --git a/include/librealsense2/hpp/rs_record_playback.hpp b/include/librealsense2/hpp/rs_record_playback.hpp index 83520236866..1668ef93175 100644 --- a/include/librealsense2/hpp/rs_record_playback.hpp +++ b/include/librealsense2/hpp/rs_record_playback.hpp @@ -145,7 +145,7 @@ namespace rs2 /** * Register to receive callback from playback device upon its status changes * - * Callbacks are invoked from the reading thread, any heavy processing in the callback handler will affect + * Callbacks are invoked from the reading thread, and as such any heavy processing in the callback handler will affect * the reading thread and may cause frame drops\ high latency * \param[in] callback A callback handler that will be invoked when the playback status changes, can be any callable object accepting rs2_playback_status */ @@ -210,15 +210,31 @@ namespace rs2 * \param[in] file The desired path to which the recorder should save the data * \param[in] device The device to record */ - recorder(const std::string& file, rs2::device device) + recorder(const std::string& file, rs2::device dev) { rs2_error* e = nullptr; _dev = std::shared_ptr( - rs2_create_record_device(device.get().get(), file.c_str(), &e), + rs2_create_record_device(dev.get().get(), file.c_str(), &e), rs2_delete_device); rs2::error::handle(e); } + /** + * Creates a recording device to record the given device and save it to the given file as rosbag format + * \param[in] file The desired path to which the recorder should save the data + * \param[in] device The device to record + * \param[in] compression_enabled Indicates if compression is enabled + */ + recorder(const std::string& file, rs2::device dev, bool compression_enabled) + { + rs2_error* e = nullptr; + _dev = std::shared_ptr( + rs2_create_record_device_ex(dev.get().get(), file.c_str(), compression_enabled, &e), + rs2_delete_device); + rs2::error::handle(e); + } + + /** * Pause the recording device without stopping the actual device from streaming. */ @@ -230,7 +246,7 @@ namespace rs2 } /** - * Unpauses the recording device, making it resume recording + * Unpauses the recording device, making it resume recording. */ void resume() { diff --git a/include/librealsense2/hpp/rs_sensor.hpp b/include/librealsense2/hpp/rs_sensor.hpp index b3995dda9d1..1c0afa7b63c 100644 --- a/include/librealsense2/hpp/rs_sensor.hpp +++ b/include/librealsense2/hpp/rs_sensor.hpp @@ -6,25 +6,26 @@ #include "rs_types.hpp" #include "rs_frame.hpp" - +#include "rs_processing.hpp" +#include "rs_options.hpp" namespace rs2 { class notification { public: - notification(rs2_notification* notification) + notification(rs2_notification* nt) { rs2_error* e = nullptr; - _description = rs2_get_notification_description(notification, &e); + _description = rs2_get_notification_description(nt, &e); error::handle(e); - _timestamp = rs2_get_notification_timestamp(notification, &e); + _timestamp = rs2_get_notification_timestamp(nt, &e); error::handle(e); - _severity = rs2_get_notification_severity(notification, &e); + _severity = rs2_get_notification_severity(nt, &e); error::handle(e); - _category = rs2_get_notification_category(notification, &e); + _category = rs2_get_notification_category(nt, &e); error::handle(e); - _serialized_data = rs2_get_notification_serialized_data(notification, &e); + _serialized_data = rs2_get_notification_serialized_data(nt, &e); error::handle(e); } @@ -97,140 +98,7 @@ namespace rs2 void release() override { delete this; } }; - template - class frame_callback : public rs2_frame_callback - { - T on_frame_function; - public: - explicit frame_callback(T on_frame) : on_frame_function(on_frame) {} - - void on_frame(rs2_frame* fref) override - { - on_frame_function(frame{ fref }); - } - - void release() override { delete this; } - }; - - class options - { - public: - /** - * check if particular option is supported - * \param[in] option option id to be checked - * \return true if option is supported - */ - bool supports(rs2_option option) const - { - rs2_error* e = nullptr; - auto res = rs2_supports_option(_options, option, &e); - error::handle(e); - return res > 0; - } - - /** - * get option description - * \param[in] option option id to be checked - * \return human-readable option description - */ - const char* get_option_description(rs2_option option) const - { - rs2_error* e = nullptr; - auto res = rs2_get_option_description(_options, option, &e); - error::handle(e); - return res; - } - - /** - * get option value description (in case specific option value hold special meaning) - * \param[in] option option id to be checked - * \param[in] val value of the option - * \return human-readable description of a specific value of an option or null if no special meaning - */ - const char* get_option_value_description(rs2_option option, float val) const - { - rs2_error* e = nullptr; - auto res = rs2_get_option_value_description(_options, option, val, &e); - error::handle(e); - return res; - } - - /** - * read option's value - * \param[in] option option id to be queried - * \return value of the option - */ - float get_option(rs2_option option) const - { - rs2_error* e = nullptr; - auto res = rs2_get_option(_options, option, &e); - error::handle(e); - return res; - } - - /** - * retrieve the available range of values of a supported option - * \return option range containing minimum and maximum values, step and default value - */ - option_range get_option_range(rs2_option option) const - { - option_range result; - rs2_error* e = nullptr; - rs2_get_option_range(_options, option, - &result.min, &result.max, &result.step, &result.def, &e); - error::handle(e); - return result; - } - - /** - * write new value to the option - * \param[in] option option id to be queried - * \param[in] value new value for the option - */ - void set_option(rs2_option option, float value) const - { - rs2_error* e = nullptr; - rs2_set_option(_options, option, value, &e); - error::handle(e); - } - - /** - * check if particular option is read-only - * \param[in] option option id to be checked - * \return true if option is read-only - */ - bool is_option_read_only(rs2_option option) const - { - rs2_error* e = nullptr; - auto res = rs2_is_option_read_only(_options, option, &e); - error::handle(e); - return res > 0; - } - - options& operator=(const options& other) - { - _options = other._options; - return *this; - } - // if operator= is ok, this should be ok too - options(const options& other) : _options(other._options) {} - - virtual ~options() = default; - protected: - explicit options(rs2_options* o = nullptr) : _options(o) {} - template - options& operator=(const T& dev) - { - _options = (rs2_options*)(dev.get()); - return *this; - } - - - - private: - rs2_options* _options; - }; class sensor : public options { @@ -332,6 +200,14 @@ namespace rs2 error::handle(e); } + bool is_streaming() const + { + rs2_error* e = nullptr; + bool result = static_cast(rs2_is_streaming(_sensor.get(), &e)); + error::handle(e); + return result; + } + /** * register notifications callback * \param[in] callback notifications callback @@ -347,12 +223,12 @@ namespace rs2 /** - * check if physical sensor is supported - * \return list of stream profiles that given sensor can provide, should be released by rs2_delete_profiles_list + * Retrieves the list of stream profiles supported by the sensor. + * \return list of stream profiles that given sensor can provide */ std::vector get_stream_profiles() const { - std::vector results; + std::vector results{}; rs2_error* e = nullptr; std::shared_ptr list( @@ -373,6 +249,35 @@ namespace rs2 return results; } + /** + * get the recommended list of filters by the sensor + * \return list of filters that recommended by sensor + */ + std::vector get_recommended_filters() const + { + std::vector results{}; + + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_get_recommended_processing_blocks(_sensor.get(), &e), + rs2_delete_recommended_processing_blocks); + error::handle(e); + + auto size = rs2_get_recommended_processing_blocks_count(list.get(), &e); + error::handle(e); + + for (auto i = 0; i < size; i++) + { + auto f = std::shared_ptr( + rs2_get_processing_block(list.get(), i, &e), + rs2_delete_processing_block); + error::handle(e); + results.push_back(f); + } + + return results; + } + sensor& operator=(const std::shared_ptr other) { options::operator=(other); @@ -432,6 +337,12 @@ namespace rs2 }; + inline std::shared_ptr sensor_from_frame(frame f) + { + std::shared_ptr psens(f.get_sensor(), rs2_delete_sensor); + return std::make_shared(psens); + } + inline bool operator==(const sensor& lhs, const sensor& rhs) { if (!(lhs.supports(RS2_CAMERA_INFO_NAME) && lhs.supports(RS2_CAMERA_INFO_SERIAL_NUMBER) @@ -442,6 +353,54 @@ namespace rs2 && std::string(lhs.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)) == rhs.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER); } + class color_sensor : public sensor + { + public: + color_sensor(sensor s) + : sensor(s.get()) + { + rs2_error* e = nullptr; + if (rs2_is_sensor_extendable_to(_sensor.get(), RS2_EXTENSION_COLOR_SENSOR, &e) == 0 && !e) + { + _sensor.reset(); + } + error::handle(e); + } + operator bool() const { return _sensor.get() != nullptr; } + }; + + class motion_sensor : public sensor + { + public: + motion_sensor(sensor s) + : sensor(s.get()) + { + rs2_error* e = nullptr; + if (rs2_is_sensor_extendable_to(_sensor.get(), RS2_EXTENSION_MOTION_SENSOR, &e) == 0 && !e) + { + _sensor.reset(); + } + error::handle(e); + } + operator bool() const { return _sensor.get() != nullptr; } + }; + + class fisheye_sensor : public sensor + { + public: + fisheye_sensor(sensor s) + : sensor(s.get()) + { + rs2_error* e = nullptr; + if (rs2_is_sensor_extendable_to(_sensor.get(), RS2_EXTENSION_FISHEYE_SENSOR, &e) == 0 && !e) + { + _sensor.reset(); + } + error::handle(e); + } + operator bool() const { return _sensor.get() != nullptr; } + }; + class roi_sensor : public sensor { public: @@ -517,18 +476,174 @@ namespace rs2 error::handle(e); } - /** Retrieves mapping between the units of the depth image and meters - * \return depth in meters corresponding to a depth value of 1 + /** + * Retrieve the stereoscopic baseline value from the sensor. */ float get_stereo_baseline() const { rs2_error* e = nullptr; - auto res = rs2_get_depth_scale(_sensor.get(), &e); + auto res = rs2_get_stereo_baseline(_sensor.get(), &e); error::handle(e); return res; } operator bool() const { return _sensor.get() != nullptr; } }; + + + class pose_sensor : public sensor + { + public: + pose_sensor(sensor s) + : sensor(s.get()) + { + rs2_error* e = nullptr; + if (rs2_is_sensor_extendable_to(_sensor.get(), RS2_EXTENSION_POSE_SENSOR, &e) == 0 && !e) + { + _sensor.reset(); + } + error::handle(e); + } + + /** + * Load relocalization map onto device. Only one relocalization map can be imported at a time; + * any previously existing map will be overwritten. + * The imported map exists simultaneously with the map created during the most recent tracking session after start(), + * and they are merged after the imported map is relocalized. + * This operation must be done before start(). + * \param[in] lmap_buf map data as a binary blob + * \return true if success + */ + bool import_localization_map(const std::vector& lmap_buf) const + { + rs2_error* e = nullptr; + auto res = rs2_import_localization_map(_sensor.get(), lmap_buf.data(), uint32_t(lmap_buf.size()), &e); + error::handle(e); + return !!res; + } + + /** + * Get relocalization map that is currently on device, created and updated during most recent tracking session. + * Can be called before or after stop(). + * \return map data as a binary blob + */ + std::vector export_localization_map() const + { + std::vector results; + rs2_error* e = nullptr; + const rs2_raw_data_buffer *map = rs2_export_localization_map(_sensor.get(), &e); + error::handle(e); + std::shared_ptr loc_map(map, rs2_delete_raw_data); + + auto start = rs2_get_raw_data(loc_map.get(), &e); + error::handle(e); + + if (start) + { + auto size = rs2_get_raw_data_size(loc_map.get(), &e); + error::handle(e); + + results = std::vector(start, start + size); + } + return results; + } + + /** + * Creates a named virtual landmark in the current map, known as static node. + * The static node's pose is provided relative to the origin of current coordinate system of device poses. + * This function fails if the current tracker confidence is below 3 (high confidence). + * \param[in] guid unique name of the static node (limited to 127 chars). + * If a static node with the same name already exists in the current map or the imported map, the static node is overwritten. + * \param[in] pos position of the static node in the 3D space. + * \param[in] orient_quat orientation of the static node in the 3D space, represented by a unit quaternion. + * \return true if success. + */ + bool set_static_node(const std::string& guid, const rs2_vector& pos, const rs2_quaternion& orient) const + { + rs2_error* e = nullptr; + auto res = rs2_set_static_node(_sensor.get(), guid.c_str(), pos, orient, &e); + error::handle(e); + return !!res; + } + + + /** + * Gets the current pose of a static node that was created in the current map or in an imported map. + * Static nodes of imported maps are available after relocalizing the imported map. + * The static node's pose is returned relative to the current origin of coordinates of device poses. + * Thus, poses of static nodes of an imported map are consistent with current device poses after relocalization. + * This function fails if the current tracker confidence is below 3 (high confidence). + * \param[in] guid unique name of the static node (limited to 127 chars). + * \param[out] pos position of the static node in the 3D space. + * \param[out] orient_quat orientation of the static node in the 3D space, represented by a unit quaternion. + * \return true if success. + */ + bool get_static_node(const std::string& guid, rs2_vector& pos, rs2_quaternion& orient) const + { + rs2_error* e = nullptr; + auto res = rs2_get_static_node(_sensor.get(), guid.c_str(), &pos, &orient, &e); + error::handle(e); + return !!res; + } + + /** + * Removes a static node from the current map. + * \param[in] guid unique name of the static node (limited to 127 chars). + */ + bool remove_static_node(const std::string& guid) const + { + rs2_error* e = nullptr; + auto res = rs2_remove_static_node(_sensor.get(), guid.c_str(), &e); + error::handle(e); + return !!res; + } + + operator bool() const { return _sensor.get() != nullptr; } + explicit pose_sensor(std::shared_ptr dev) : pose_sensor(sensor(dev)) {} + }; + + class wheel_odometer : public sensor + { + public: + wheel_odometer(sensor s) + : sensor(s.get()) + { + rs2_error* e = nullptr; + if (rs2_is_sensor_extendable_to(_sensor.get(), RS2_EXTENSION_WHEEL_ODOMETER, &e) == 0 && !e) + { + _sensor.reset(); + } + error::handle(e); + } + + /** Load Wheel odometer settings from host to device + * \param[in] odometry_config_buf odometer configuration/calibration blob serialized from jsom file + * \return true on success + */ + bool load_wheel_odometery_config(const std::vector& odometry_config_buf) const + { + rs2_error* e = nullptr; + auto res = rs2_load_wheel_odometry_config(_sensor.get(), odometry_config_buf.data(), uint32_t(odometry_config_buf.size()), &e); + error::handle(e); + return !!res; + } + + /** Send wheel odometry data for each individual sensor (wheel) + * \param[in] wo_sensor_id - Zero-based index of (wheel) sensor with the same type within device + * \param[in] frame_num - Monotonocally increasing frame number, managed per sensor. + * \param[in] translational_velocity - Translational velocity in meter/sec + * \return true on success + */ + bool send_wheel_odometry(uint8_t wo_sensor_id, uint32_t frame_num, const rs2_vector& translational_velocity) + { + rs2_error* e = nullptr; + auto res = rs2_send_wheel_odometry(_sensor.get(), wo_sensor_id, frame_num, translational_velocity, &e); + error::handle(e); + return !!res; + } + + operator bool() const { return _sensor.get() != nullptr; } + explicit wheel_odometer(std::shared_ptr dev) : wheel_odometer(sensor(dev)) {} + }; } #endif // LIBREALSENSE_RS2_SENSOR_HPP diff --git a/include/librealsense2/hpp/rs_serializable_device.hpp b/include/librealsense2/hpp/rs_serializable_device.hpp new file mode 100644 index 00000000000..b221a167cd1 --- /dev/null +++ b/include/librealsense2/hpp/rs_serializable_device.hpp @@ -0,0 +1,57 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2020 Intel Corporation. All Rights Reserved. + +#pragma once +#include "rs_types.hpp" +#include "rs_device.hpp" +#include +#include + +namespace rs2 +{ + class serializable_device : public rs2::device + { + public: + serializable_device(rs2::device d) + : rs2::device(d.get()) + { + rs2_error* e = nullptr; + if (rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_SERIALIZABLE, &e) == 0 && !e) + { + _dev = nullptr; + } + rs2::error::handle(e); + } + + std::string serialize_json() const + { + std::string results; + + rs2_error* e = nullptr; + std::shared_ptr json_data( + rs2_serialize_json(_dev.get(), &e), + rs2_delete_raw_data); + rs2::error::handle(e); + + auto size = rs2_get_raw_data_size(json_data.get(), &e); + rs2::error::handle(e); + + auto start = rs2_get_raw_data(json_data.get(), &e); + rs2::error::handle(e); + + results.insert(results.begin(), start, start + size); + + return results; + } + + void load_json(const std::string& json_content) const + { + rs2_error* e = nullptr; + rs2_load_json(_dev.get(), + json_content.data(), + (unsigned int)json_content.size(), + &e); + rs2::error::handle(e); + } + }; +} diff --git a/include/librealsense2/hpp/rs_types.hpp b/include/librealsense2/hpp/rs_types.hpp index cf6fe840860..d0989661b8b 100644 --- a/include/librealsense2/hpp/rs_types.hpp +++ b/include/librealsense2/hpp/rs_types.hpp @@ -43,9 +43,11 @@ struct rs2_notifications_callback virtual ~rs2_notifications_callback() {} }; +typedef void ( *log_callback_function_ptr )(rs2_log_severity severity, rs2_log_message const * msg ); + struct rs2_log_callback { - virtual void on_event(rs2_log_severity severity, const char * message) = 0; + virtual void on_log( rs2_log_severity severity, rs2_log_message const & msg ) noexcept = 0; virtual void release() = 0; virtual ~rs2_log_callback() {} }; @@ -64,6 +66,13 @@ struct rs2_playback_status_changed_callback virtual ~rs2_playback_status_changed_callback() {} }; +struct rs2_update_progress_callback +{ + virtual void on_update_progress(const float update_progress) = 0; + virtual void release() = 0; + virtual ~rs2_update_progress_callback() {} +}; + namespace rs2 { class error : public std::runtime_error @@ -167,4 +176,7 @@ namespace rs2 }; } +inline std::ostream & operator << (std::ostream & o, rs2_vector v) { return o << v.x << ", " << v.y << ", " << v.z; } +inline std::ostream & operator << (std::ostream & o, rs2_quaternion q) { return o << q.x << ", " << q.y << ", " << q.z << ", " << q.w; } + #endif // LIBREALSENSE_RS2_TYPES_HPP diff --git a/include/librealsense2/rs.h b/include/librealsense2/rs.h index 4db97907ee7..e0bc96d8c52 100644 --- a/include/librealsense2/rs.h +++ b/include/librealsense2/rs.h @@ -23,12 +23,16 @@ extern "C" { #include "h/rs_sensor.h" #define RS2_API_MAJOR_VERSION 2 -#define RS2_API_MINOR_VERSION 16 +#define RS2_API_MINOR_VERSION 33 #define RS2_API_PATCH_VERSION 1 #define RS2_API_BUILD_VERSION 0 +#ifndef STRINGIFY #define STRINGIFY(arg) #arg +#endif +#ifndef VAR_ARG_STRING #define VAR_ARG_STRING(arg) STRINGIFY(arg) +#endif /* Versioning rules : For each release at least one of [MJR/MNR/PTCH] triple is promoted */ /* : Versions that differ by RS2_API_PATCH_VERSION only are interface-compatible, i.e. no user-code changes required */ @@ -71,6 +75,16 @@ void rs2_log_to_console(rs2_log_severity min_severity, rs2_error ** error); void rs2_log_to_file(rs2_log_severity min_severity, const char * file_path, rs2_error ** error); +void rs2_log_to_callback_cpp( rs2_log_severity min_severity, rs2_log_callback * callback, rs2_error ** error ); + +void rs2_log_to_callback( rs2_log_severity min_severity, rs2_log_callback_ptr callback, void * arg, rs2_error** error ); + + +unsigned rs2_get_log_message_line_number( rs2_log_message const * msg, rs2_error** error ); +const char * rs2_get_log_message_filename( rs2_log_message const * msg, rs2_error** error ); +const char * rs2_get_raw_log_message( rs2_log_message const * msg, rs2_error** error ); +const char * rs2_get_full_log_message( rs2_log_message const * msg, rs2_error** error ); + /** * Add custom message into librealsense log * \param[in] severity The log level for the message to be written under diff --git a/include/librealsense2/rs.hpp b/include/librealsense2/rs.hpp index 4b58f1a1983..2a9ee2e334b 100644 --- a/include/librealsense2/rs.hpp +++ b/include/librealsense2/rs.hpp @@ -30,6 +30,101 @@ namespace rs2 error::handle(e); } + /* + Interface to the log message data we expose. + */ + class log_message + { + // Only log_callback should be creating us! + template< class T > friend class log_callback; + + log_message( rs2_log_message const & msg ) : _msg( msg ) {} + + public: + /* Returns the line-number in the file where the LOG() comment was issued */ + size_t line_number() const + { + rs2_error* e = nullptr; + size_t ln = rs2_get_log_message_line_number( &_msg, &e ); + error::handle( e ); + return ln; + } + /* Returns the file in which the LOG() command was issued */ + const char * filename() const + { + rs2_error* e = nullptr; + const char * path = rs2_get_log_message_filename( &_msg, &e ); + error::handle( e ); + return path; + } + /* Returns the raw message, as it was passed to LOG(), before any embelishments like level etc. */ + const char* raw() const + { + rs2_error* e = nullptr; + const char* r = rs2_get_raw_log_message( &_msg, &e ); + error::handle( e ); + return r; + } + /* + Returns a complete log message, as defined by librealsense, with level, timestamp, etc.: + 11/12 13:49:40,153 INFO [10604] (rs.cpp:2271) Framebuffer size changed to 1552 x 919 + */ + const char* full() const + { + rs2_error* e = nullptr; + const char* str = rs2_get_full_log_message( &_msg, &e ); + error::handle( e ); + return str; + } + + private: + rs2_log_message const & _msg; + }; + + /* + Wrapper around any callback function that is given to log_to_callback. + */ + template + class log_callback : public rs2_log_callback + { + T on_log_function; + public: + explicit log_callback( T on_log ) : on_log_function( on_log ) {} + + void on_log( rs2_log_severity severity, rs2_log_message const & msg ) noexcept override + { + on_log_function( severity, log_message( msg )); + } + + void release() override { delete this; } + }; + + /* + Your callback should look like this, for example: + void callback( rs2_log_severity severity, rs2::log_message const & msg ) noexcept + { + std::cout << msg.build() << std::endl; + } + and, when initializing rs2: + rs2::log_to_callback( callback ); + or: + rs2::log_to_callback( + []( rs2_log_severity severity, rs2::log_message const & msg ) noexcept + { + std::cout << msg.build() << std::endl; + }) + */ + template< typename S > + inline void log_to_callback( rs2_log_severity min_severity, S callback ) + { + // We wrap the callback with an interface and pass it to librealsense, who will + // now manage its lifetime. Rather than deleting it, though, it will call its + // release() function, where (back in our context) it can be safely deleted: + rs2_error* e = nullptr; + rs2_log_to_callback_cpp( min_severity, new log_callback< S >( std::move( callback )), &e ); + error::handle( e ); + } + inline void log(rs2_log_severity severity, const char* message) { rs2_error* e = nullptr; @@ -41,8 +136,9 @@ namespace rs2 inline std::ostream & operator << (std::ostream & o, rs2_stream stream) { return o << rs2_stream_to_string(stream); } inline std::ostream & operator << (std::ostream & o, rs2_format format) { return o << rs2_format_to_string(format); } inline std::ostream & operator << (std::ostream & o, rs2_distortion distortion) { return o << rs2_distortion_to_string(distortion); } -inline std::ostream & operator << (std::ostream & o, rs2_option option) { return o << rs2_option_to_string(option); } +inline std::ostream & operator << (std::ostream & o, rs2_option option) { return o << rs2_option_to_string(option); } // This function is being deprecated. For existing options it will return option name, but for future API additions the user should call rs2_get_option_name instead. inline std::ostream & operator << (std::ostream & o, rs2_log_severity severity) { return o << rs2_log_severity_to_string(severity); } +inline std::ostream & operator << (std::ostream & o, rs2::log_message const & msg ) { return o << msg.raw(); } inline std::ostream & operator << (std::ostream & o, rs2_camera_info camera_info) { return o << rs2_camera_info_to_string(camera_info); } inline std::ostream & operator << (std::ostream & o, rs2_frame_metadata_value metadata) { return o << rs2_frame_metadata_to_string(metadata); } inline std::ostream & operator << (std::ostream & o, rs2_timestamp_domain domain) { return o << rs2_timestamp_domain_to_string(domain); } @@ -50,5 +146,7 @@ inline std::ostream & operator << (std::ostream & o, rs2_notification_category n inline std::ostream & operator << (std::ostream & o, rs2_sr300_visual_preset preset) { return o << rs2_sr300_visual_preset_to_string(preset); } inline std::ostream & operator << (std::ostream & o, rs2_exception_type exception_type) { return o << rs2_exception_type_to_string(exception_type); } inline std::ostream & operator << (std::ostream & o, rs2_playback_status status) { return o << rs2_playback_status_to_string(status); } +inline std::ostream & operator << (std::ostream & o, rs2_l500_visual_preset preset) {return o << rs2_l500_visual_preset_to_string(preset);} +inline std::ostream & operator << (std::ostream & o, rs2_sensor_mode mode) { return o << rs2_sensor_mode_to_string(mode); } #endif // LIBREALSENSE_RS2_HPP diff --git a/include/librealsense2/rs_advanced_mode.h b/include/librealsense2/rs_advanced_mode.h index 08492573cb8..a963037e719 100644 --- a/include/librealsense2/rs_advanced_mode.h +++ b/include/librealsense2/rs_advanced_mode.h @@ -88,11 +88,10 @@ void rs2_set_census(rs2_device* dev, const STCensusRadius* group, rs2_error** e void rs2_get_census(rs2_device* dev, STCensusRadius* group, int mode, rs2_error** error); -/* Load JSON and apply advanced-mode controls, returns 0 if success */ -void rs2_load_json(rs2_device* dev, const void* json_content, unsigned content_size, rs2_error** error); +void rs2_set_amp_factor(rs2_device* dev, const STAFactor* group, rs2_error** error); -/* Serialize JSON content, returns 0 if success */ -rs2_raw_data_buffer* rs2_serialize_json(rs2_device* dev, rs2_error** error); +/* Gets new values for STAFactor, returns 0 if success */ +void rs2_get_amp_factor(rs2_device* dev, STAFactor* group, int mode, rs2_error** error); #ifdef __cplusplus } diff --git a/include/librealsense2/rs_advanced_mode.hpp b/include/librealsense2/rs_advanced_mode.hpp index 4570755dba1..6bad55db3f9 100644 --- a/include/librealsense2/rs_advanced_mode.hpp +++ b/include/librealsense2/rs_advanced_mode.hpp @@ -4,19 +4,21 @@ #ifndef R4XX_ADVANCED_MODE_HPP #define R4XX_ADVANCED_MODE_HPP +#include #include "rs.hpp" #include "rs_advanced_mode.h" +#include "hpp/rs_serializable_device.hpp" namespace rs400 { - class advanced_mode : public rs2::device + class advanced_mode : public rs2::serializable_device { public: advanced_mode(rs2::device d) - : rs2::device(d.get()) + : rs2::serializable_device(d) { rs2_error* e = nullptr; - if(rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_ADVANCED_MODE, &e) == 0 && !e) + if(_dev && rs2_is_device_extendable_to(_dev.get(), RS2_EXTENSION_ADVANCED_MODE, &e) == 0 && !e) { _dev = nullptr; } @@ -244,35 +246,21 @@ namespace rs400 return group; } - std::string serialize_json() const + void set_amp_factor(const STAFactor& group) { - std::string results; - rs2_error* e = nullptr; - std::shared_ptr json_data( - rs2_serialize_json(_dev.get(), &e), - rs2_delete_raw_data); - rs2::error::handle(e); - - auto size = rs2_get_raw_data_size(json_data.get(), &e); + rs2_set_amp_factor(_dev.get(), &group, &e); rs2::error::handle(e); - - auto start = rs2_get_raw_data(json_data.get(), &e); - rs2::error::handle(e); - - results.insert(results.begin(), start, start + size); - - return results; } - void load_json(const std::string& json_content) + STAFactor get_amp_factor(int mode = 0) const { rs2_error* e = nullptr; - rs2_load_json(_dev.get(), - json_content.data(), - (unsigned int)json_content.size(), - &e); + STAFactor group{}; + rs2_get_amp_factor(_dev.get(), &group, mode, &e); rs2::error::handle(e); + + return group; } }; } @@ -389,5 +377,10 @@ inline bool operator==(const STCensusRadius& a, const STCensusRadius& b) a.vDiameter == b.vDiameter); } +inline bool operator==(const STAFactor& a, const STAFactor& b) +{ + return (fabs(a.amplitude - b.amplitude) < std::numeric_limits::epsilon()); +} + #endif // R4XX_ADVANCED_MODE_HPP diff --git a/include/librealsense2/rsutil.h b/include/librealsense2/rsutil.h index 43672d47976..f04f0bc9fcb 100644 --- a/include/librealsense2/rsutil.h +++ b/include/librealsense2/rsutil.h @@ -13,16 +13,16 @@ #include #include #include - +#include +#include /* Given a point in 3D space, compute the corresponding pixel coordinates in an image with no distortion or forward distortion coefficients produced by the same camera */ static void rs2_project_point_to_pixel(float pixel[2], const struct rs2_intrinsics * intrin, const float point[3]) { - //assert(intrin->model != RS2_DISTORTION_INVERSE_BROWN_CONRADY); // Cannot project to an inverse-distorted image - float x = point[0] / point[2], y = point[1] / point[2]; - if(intrin->model == RS2_DISTORTION_MODIFIED_BROWN_CONRADY) + if ((intrin->model == RS2_DISTORTION_MODIFIED_BROWN_CONRADY) || + (intrin->model == RS2_DISTORTION_INVERSE_BROWN_CONRADY)) { float r2 = x*x + y*y; @@ -37,10 +37,28 @@ static void rs2_project_point_to_pixel(float pixel[2], const struct rs2_intrinsi if (intrin->model == RS2_DISTORTION_FTHETA) { float r = sqrtf(x*x + y*y); + if (r < FLT_EPSILON) + { + r = FLT_EPSILON; + } float rd = (float)(1.0f / intrin->coeffs[0] * atan(2 * r* tan(intrin->coeffs[0] / 2.0f))); x *= rd / r; y *= rd / r; } + if (intrin->model == RS2_DISTORTION_KANNALA_BRANDT4) + { + float r = sqrtf(x*x + y*y); + if (r < FLT_EPSILON) + { + r = FLT_EPSILON; + } + float theta = atan(r); + float theta2 = theta*theta; + float series = 1 + theta2*(intrin->coeffs[0] + theta2*(intrin->coeffs[1] + theta2*(intrin->coeffs[2] + theta2*intrin->coeffs[3]))); + float rd = theta*series; + x *= rd / r; + y *= rd / r; + } pixel[0] = x * intrin->fx + intrin->ppx; pixel[1] = y * intrin->fy + intrin->ppy; @@ -50,7 +68,6 @@ static void rs2_project_point_to_pixel(float pixel[2], const struct rs2_intrinsi static void rs2_deproject_pixel_to_point(float point[3], const struct rs2_intrinsics * intrin, const float pixel[2], float depth) { assert(intrin->model != RS2_DISTORTION_MODIFIED_BROWN_CONRADY); // Cannot deproject from a forward-distorted image - assert(intrin->model != RS2_DISTORTION_FTHETA); // Cannot deproject to an ftheta image //assert(intrin->model != RS2_DISTORTION_BROWN_CONRADY); // Cannot deproject to an brown conrady model float x = (pixel[0] - intrin->ppx) / intrin->fx; @@ -64,6 +81,43 @@ static void rs2_deproject_pixel_to_point(float point[3], const struct rs2_intrin x = ux; y = uy; } + if (intrin->model == RS2_DISTORTION_KANNALA_BRANDT4) + { + float rd = sqrtf(x*x + y*y); + if (rd < FLT_EPSILON) + { + rd = FLT_EPSILON; + } + + float theta = rd; + float theta2 = rd*rd; + for (int i = 0; i < 4; i++) + { + float f = theta*(1 + theta2*(intrin->coeffs[0] + theta2*(intrin->coeffs[1] + theta2*(intrin->coeffs[2] + theta2*intrin->coeffs[3])))) - rd; + if (std::abs(f) < FLT_EPSILON) + { + break; + } + float df = 1 + theta2*(3 * intrin->coeffs[0] + theta2*(5 * intrin->coeffs[1] + theta2*(7 * intrin->coeffs[2] + 9 * theta2*intrin->coeffs[3]))); + theta -= f / df; + theta2 = theta*theta; + } + float r = tan(theta); + x *= r / rd; + y *= r / rd; + } + if (intrin->model == RS2_DISTORTION_FTHETA) + { + float rd = sqrtf(x*x + y*y); + if (rd < FLT_EPSILON) + { + rd = FLT_EPSILON; + } + float r = (float)(tan(intrin->coeffs[0] * rd) / atan(2 * tan(intrin->coeffs[0] / 2.0f))); + x *= r / rd; + y *= r / rd; + } + point[0] = depth * x; point[1] = depth * y; point[2] = depth; @@ -87,7 +141,7 @@ static void rs2_fov(const struct rs2_intrinsics * intrin, float to_fov[2]) static void next_pixel_in_line(float curr[2], const float start[2], const float end[2]) { float line_slope = (end[1] - start[1]) / (end[0] - start[0]); - if (abs(end[0] - curr[0]) > abs(end[1] - curr[1])) + if (fabs(end[0] - curr[0]) > fabs(end[1] - curr[1])) { curr[0] = end[0] > curr[0] ? curr[0] + 1 : curr[0] - 1; curr[1] = end[1] - line_slope * (end[0] - curr[0]); @@ -108,15 +162,15 @@ static bool is_pixel_in_line(const float curr[2], const float start[2], const fl static void adjust_2D_point_to_boundary(float p[2], int width, int height) { if (p[0] < 0) p[0] = 0; - if (p[0] > width) p[0] = width; + if (p[0] > width) p[0] = (float)width; if (p[1] < 0) p[1] = 0; - if (p[1] > height) p[1] = height; + if (p[1] > height) p[1] = (float)height; } /* Find projected pixel with unknown depth search along line. */ static void rs2_project_color_pixel_to_depth_pixel(float to_pixel[2], const uint16_t* data, float depth_scale, - float depth_min, float depth_max, + float depth_min, float depth_max, const struct rs2_intrinsics* depth_intrin, const struct rs2_intrinsics* color_intrin, const struct rs2_extrinsics* color_to_depth, @@ -142,7 +196,7 @@ static void rs2_project_color_pixel_to_depth_pixel(float to_pixel[2], for (float p[2] = { start_pixel[0], start_pixel[1] }; is_pixel_in_line(p, start_pixel, end_pixel); next_pixel_in_line(p, start_pixel, end_pixel)) { float depth = depth_scale * data[(int)p[1] * depth_intrin->width + (int)p[0]]; - if (depth == 0) + if (depth == 0) continue; float projected_pixel[2] = { 0 }, point[3] = { 0 }, transformed_point[3] = { 0 }; @@ -159,5 +213,4 @@ static void rs2_project_color_pixel_to_depth_pixel(float to_pixel[2], } } } - #endif diff --git a/package.xml b/package.xml index e86bf0fe233..6e728705c74 100644 --- a/package.xml +++ b/package.xml @@ -7,9 +7,9 @@ librealsense2 - 2.16.1 + 2.33.1 - Library for capturing data from the Intel(R) RealSense(TM) SR300 and D400 cameras. This effort was initiated to better support researchers, creative coders, and app developers in domains such as robotics, virtual reality, and the internet of things. Several often-requested features of RealSense(TM); devices are implemented in this project, including multi-camera capture. + Library for capturing data from the Intel(R) RealSense(TM) SR300, D400 Depth cameras and T2xx Tracking devices. This effort was initiated to better support researchers, creative coders, and app developers in domains such as robotics, virtual reality, and the internet of things. Several often-requested features of RealSense(TM); devices are implemented in this project. Sergey Dorodnicov @@ -17,6 +17,7 @@ https://github.com/IntelRealSense/librealsense/ Sergey Dorodnicov + Doron Hirshberg Mark Horn Reagan Lopez Itay Carpis diff --git a/readme.md b/readme.md index e9bca642636..ecc6c7b9a57 100644 --- a/readme.md +++ b/readme.md @@ -2,29 +2,27 @@ ----------------- -Linux/MacOS | Windows | --------- | ------------ | -[![Build Status](https://travis-ci.org/IntelRealSense/librealsense.svg?branch=development)](https://travis-ci.org/IntelRealSense/librealsense) | [![Build status](https://ci.appveyor.com/api/projects/status/6u04bgmpwfejpgo8?svg=true)](https://ci.appveyor.com/project/dorodnic/librealsense-s4xnv) | +**CI State**: [![Build Status](https://travis-ci.org/IntelRealSense/librealsense.svg?branch=development)](https://travis-ci.org/IntelRealSense/librealsense) ----------------- ## Overview -**Intel® RealSense™ SDK 2.0** is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300). +**Intel® RealSense™ SDK 2.0** is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300) and the [T265 tracking camera](./doc/t265.md). > :pushpin: For other Intel® RealSense™ devices (F200, R200, LR200 and ZR300), please refer to the [latest legacy release](https://github.com/IntelRealSense/librealsense/tree/v1.12.1). The SDK allows depth and color streaming, and provides intrinsic and extrinsic calibration information. The library also offers synthetic streams (pointcloud, depth aligned to color and vise-versa), and a built-in support for [record and playback](./src/media/readme.md) of streaming sessions. -Developer kits containing the necessary hardware to use this library are available for purchase at [realsense.intel.com/buy](https://realsense.intel.com/buy). -Information about the Intel® RealSense™ technology at [realsense.intel.com](https://realsense.intel.com) +Developer kits containing the necessary hardware to use this library are available for purchase at [store.intelrealsense.com](https://store.intelrealsense.com/products.html). +Information about the Intel® RealSense™ technology at [www.intelrealsense.com](https://www.intelrealsense.com/) > :open_file_folder: Don't have access to a RealSense camera? Check-out [sample data](./doc/sample-data.md) ## Download and Install * **Download** - The latest releases including the Intel RealSense SDK, Viewer and Depth Quality tools are available at: [**latest releases**](https://github.com/IntelRealSense/librealsense/releases). Please check the [**release notes**](https://github.com/IntelRealSense/librealsense/wiki/Release-Notes) for the supported platforms, new features and capabilities, known issues, how to upgrade the Firmware and more. -* **Install** - You can also install or build from source the SDK (on [Linux](./doc/distribution_linux.md) \ [Windows](./doc/distribution_windows.md) \ [Mac OS](doc/installation_osx.md)), connect your D400 depth camera and you are ready to start writing your first application. (For Android limited support, please refer to [Android](./doc/android/Android.md)) +* **Install** - You can also install or build from source the SDK (on [Linux](./doc/distribution_linux.md) \ [Windows](./doc/distribution_windows.md) \ [Mac OS](doc/installation_osx.md) \ [Android](./doc/android.md)), connect your D400 depth camera and you are ready to start writing your first application. > **Support & Issues**: If you need product support (e.g. ask a question about / are having problems with the device), please check the [FAQ & Troubleshooting](https://github.com/IntelRealSense/librealsense/wiki/Troubleshooting-Q%26A) section. > If not covered there, please search our [Closed GitHub Issues](https://github.com/IntelRealSense/librealsense/issues?utf8=%E2%9C%93&q=is%3Aclosed) page, [Community](https://communities.intel.com/community/tech/realsense) and [Support](https://www.intel.com/content/www/us/en/support/emerging-technologies/intel-realsense-technology.html) sites. @@ -37,7 +35,7 @@ Information about the Intel® RealSense™ technology at [realsense.intel.com](h | **[Depth Quality Tool](./tools/depth-quality)** | This application allows you to test the camera’s depth quality, including: standard deviation from plane fit, normalized RMS – the subpixel accuracy, distance accuracy and fill rate. You should be able to easily get and interpret several of the depth quality metrics and record and save the data for offline analysis. |[**Depth.Quality.Tool.exe**](https://github.com/IntelRealSense/librealsense/releases) | | **[Debug Tools](./tools/)** | Device enumeration, FW logger, etc as can be seen at the tools directory | Included in [**Intel.RealSense.SDK.exe**](https://github.com/IntelRealSense/librealsense/releases)| | **[Code Samples](./examples)** |These simple examples demonstrate how to easily use the SDK to include code snippets that access the camera into your applications. Check some of the [**C++ examples**](./examples) including capture, pointcloud and more and basic [**C examples**](./examples/C) | Included in [**Intel.RealSense.SDK.exe**](https://github.com/IntelRealSense/librealsense/releases) | -| **[Wrappers](https://github.com/IntelRealSense/librealsense/tree/development/wrappers)** | [Python](./wrappers/python), [C#/.NET](./wrappers/csharp), [Node.js](./wrappers/nodejs) API, as well as integration with the following 3rd-party technologies: [ROS](https://github.com/intel-ros/realsense/releases), [LabVIEW](./wrappers/labview), [OpenCV](./wrappers/opencv), [PCL](./wrappers/pcl), [Unity](./wrappers/unity), [Matlab](./wrappers/matlab) and more to come, including OpenNI. | | +| **[Wrappers](https://github.com/IntelRealSense/librealsense/tree/development/wrappers)** | [Python](./wrappers/python), [C#/.NET](./wrappers/csharp), [Node.js](./wrappers/nodejs) API, as well as integration with the following 3rd-party technologies: [ROS](https://github.com/intel-ros/realsense/releases), [ROS2](https://github.com/intel/ros2_intel_realsense), [LabVIEW](./wrappers/labview), [OpenCV](./wrappers/opencv), [PCL](./wrappers/pcl), [Unity](./wrappers/unity), [Matlab](./wrappers/matlab), [OpenNI](./wrappers/openni2), [UnrealEngine4](./wrappers/unrealengine4) and more to come. | | ## Ready to Hack! diff --git a/scripts/01-Backport-streamoff-vb2-core-hotfix.patch b/scripts/01-Backport-streamoff-vb2-core-hotfix.patch new file mode 100644 index 00000000000..0313ad2e6a0 --- /dev/null +++ b/scripts/01-Backport-streamoff-vb2-core-hotfix.patch @@ -0,0 +1,115 @@ +From e97b4ddf1ef9881560bc60f196adc840cc9de3f4 Mon Sep 17 00:00:00 2001 +From: Hans Verkuil +From: Evgeni Raikhel +Signed-off-by: Hans Verkuil +Reported-by: syzbot+736c3aae4af7b50d9683@syzkaller.appspotmail.com +Date: Sun, 3 Nov 2019 12:41:09 +0200 +Subject: [PATCH] Backporting hotfix patch +https://patchwork.kernel.org/patch/11095737/ + +The patch is a backporting of Hans Verkuil proposal to circumvent +video buffer de/allocation sync issues by preventing buffers queue operation +during v4l2_streamoff. Without the patch during streamoff operation +the buffers queue continues to change that results +https://patchwork.kernel.org/patch/11095737/ + +--- + drivers/media/v4l2-core/videobuf2-core.c | 30 ++++++++++++++++++++++++ + include/media/videobuf2-core.h | 1 + + 2 files changed, 31 insertions(+) + +diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c +index 8ce9c63dfc59..09a653dd83a6 100644 +--- a/drivers/media/v4l2-core/videobuf2-core.c ++++ b/drivers/media/v4l2-core/videobuf2-core.c +@@ -581,6 +581,11 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory, + return -EBUSY; + } + ++ if (q->in_stop_streaming) { ++ dprintk(1, "reqbufs while the stream is being stopped\n"); ++ return -EBUSY; ++ } ++ + if (*count == 0 || q->num_buffers != 0 || q->memory != memory) { + /* + * We already have buffers allocated, so first check if they +@@ -1363,6 +1368,11 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb) + struct vb2_buffer *vb; + int ret; + ++ if (q->in_stop_streaming) { ++ dprintk(1, "qbuf while the stream is being stopped\n"); ++ return -EBUSY; ++ } ++ + if (q->error) { + dprintk(1, "fatal error occurred on queue\n"); + return -EIO; +@@ -1454,6 +1464,11 @@ static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking) + return -EINVAL; + } + ++ if (q->in_stop_streaming) { ++ dprintk(1, "the stream is being stopped, will not wait for buffers\n"); ++ return -EINVAL; ++ } ++ + if (q->error) { + dprintk(1, "Queue in error state, will not wait for buffers\n"); + return -EIO; +@@ -1665,12 +1680,18 @@ static void __vb2_queue_cancel(struct vb2_queue *q) + { + unsigned int i; + ++ if (WARN_ON(q->in_stop_streaming)) ++ return; + /* + * Tell driver to stop all transactions and release all queued + * buffers. + */ + if (q->start_streaming_called) ++ { ++ q->in_stop_streaming = 1; + call_void_qop(q, stop_streaming, q); ++ q->in_stop_streaming = 0; ++ } + + /* + * If you see this warning, then the driver isn't cleaning up properly +@@ -1732,6 +1753,11 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type) + return -EINVAL; + } + ++ if (q->in_stop_streaming) { ++ dprintk(1, "streamon while the stream is being stopped\n"); ++ return -EBUSY; ++ } ++ + if (q->streaming) { + dprintk(3, "already streaming\n"); + return 0; +@@ -1795,6 +1821,10 @@ int vb2_core_streamoff(struct vb2_queue *q, unsigned int type) + return -EINVAL; + } + ++ if (q->in_stop_streaming) { ++ dprintk(1, "streamoff while the stream is being stopped\n"); ++ return -EBUSY; ++ } + /* + * Cancel will pause streaming and remove all buffers from the driver + * and videobuf, effectively returning control over them to userspace. +diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h +index d4227a8a2a23..2c2304882b41 100644 +--- a/include/media/videobuf2-core.h ++++ b/include/media/videobuf2-core.h +@@ -475,6 +475,7 @@ struct vb2_queue { + + unsigned int streaming:1; + unsigned int start_streaming_called:1; ++ unsigned int in_stop_streaming:1; + unsigned int error:1; + unsigned int waiting_for_buffers:1; + unsigned int is_multiplanar:1; +2.24.0 diff --git a/scripts/api_check.sh b/scripts/api_check.sh index eb8790e0243..e42d9c1e07d 100755 --- a/scripts/api_check.sh +++ b/scripts/api_check.sh @@ -2,7 +2,7 @@ # This script makes sure every API header can be included in isolation -for filename in $(find ../include -name *.hpp); do +for filename in $(find ../include/librealsense2 -name *.hpp); do echo Checking that $filename is self-contained rm 1.cpp echo "#include \"$filename\"" >> 1.cpp @@ -12,7 +12,7 @@ for filename in $(find ../include -name *.hpp); do echo done -for filename in $(find ../include -name *.h); do +for filename in $(find ../include/librealsense2 -name *.h); do echo Checking that $filename is self-contained rm 1.c echo "#include \"$filename\"" >> 1.c diff --git a/scripts/libuvc_installation.sh b/scripts/libuvc_installation.sh new file mode 100755 index 00000000000..274cd0fe4be --- /dev/null +++ b/scripts/libuvc_installation.sh @@ -0,0 +1,52 @@ +#!/bin/bash -xe + +#Locally suppress stderr to avoid raising not relevant messages +exec 3>&2 +exec 2> /dev/null +con_dev=$(ls /dev/video* | wc -l) +exec 2>&3 + +if [ $con_dev -ne 0 ]; +then + echo -e "\e[32m" + read -p "Remove all RealSense cameras attached. Hit any key when ready" + echo -e "\e[0m" +fi + +lsb_release -a +echo "Kernel version $(uname -r)" +sudo apt-get update +cd ~/ +sudo rm -rf ./librealsense_build +mkdir librealsense_build && cd librealsense_build + +if [ $(sudo swapon --show | wc -l) -eq 0 ]; +then + echo "No swapon - setting up 1Gb swap file" + sudo fallocate -l 2G /swapfile + sudo chmod 600 /swapfile + sudo mkswap /swapfile + sudo swapon /swapfile + sudo swapon --show +fi + +echo Installing Librealsense-required dev packages +sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev unzip -y +rm -f ./master.zip + +wget https://github.com/IntelRealSense/librealsense/archive/master.zip +unzip ./master.zip -d . +cd ./librealsense-master + +echo Install udev-rules +sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ +sudo udevadm control --reload-rules && udevadm trigger +mkdir build && cd build +cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release +make -j2 +sudo make install +echo -e "\e[92m\n\e[1mLibrealsense script completed.\n\e[0m" + + + + diff --git a/scripts/patch-opensuse-leap15.sh b/scripts/patch-opensuse-leap15.sh new file mode 100755 index 00000000000..13ba5e9bdcb --- /dev/null +++ b/scripts/patch-opensuse-leap15.sh @@ -0,0 +1,120 @@ +#!/bin/bash -e + +SRC_VERSION_NAME=linux + +## from +## http://stackoverflow.com/questions/9293887/in-bash-how-do-i-convert-a-space-delimited-string-into-an-array + +FULL_NAME=linux-$( uname -r | sed -e 's/-default//') +read -a VERSION <<< $FULL_NAME + +SRC_VERSION_ID=${VERSION[0]} ## e.g. : 4.5.6 +SRC_VERSION_REL=${VERSION[1]} ## e.g. : 1 +LINUX_TYPE=${VERSION[2]} ## e.g. : ARCH +#remove trailing.0 +SRC_VERSION_ID=$(echo $SRC_VERSION_ID | sed -e 's/\.0$//' ) + +LINUX_BRANCH=opensuse-$SRC_VERSION_ID +KERNEL_NAME=linux-$SRC_VERSION_ID +PATCH_NAME=patch-$SRC_VERSION_ID + +# ARCH Linux -- KERNEL_NAME=linux-$SRC_VERSION_ID-$SRC_VERSION_REL-$ARCH.pkg.tar.xz + + +mkdir kernel +cd kernel + +sudo zypper in kernel-source kernel-default-devel + +mkdir $FULL_NAME +cp -r /usr/src/$FULL_NAME-obj/x86_64/default/* ./$FULL_NAME/ +cp -r /usr/src/$FULL_NAME/* ./$FULL_NAME/ + + +cd $FULL_NAME + + +## Get the patch + +# echo "Patching the kernel..." +### patch not working ? +# xz -dc ../$PATCH_NAME.xz | patch -p1 + + +echo "RealSense patch..." + +# Apply our RealSense specific patch +patch -p1 < ../../realsense-camera-formats-opensuse.patch + +# Prepare to compile modules + +## Get the config +# zcat /proc/config.gz > .config ## Not the good one ? + +cp /lib/modules/`uname -r`/build/.config . +cp /lib/modules/`uname -r`/build/Module.symvers . + +echo "Prepare the build" + +#cat Makefile | sed -e 's/\.\.\/\.\.\/\.\.\/linux-4.12.14-lp150.12.16/\.\.\/linux-4.12.14-lp150.12.16/' > Makefile.temp; mv Makefile.temp Makefile; +make -C . scripts oldconfig modules_prepare + +# Compile UVC modules +echo "Beginning compilation of uvc..." +#make modules +KBASE=`pwd` +cd drivers/media/usb/uvc +cp $KBASE/Module.symvers . +make -C $KBASE M=$KBASE/drivers/media/usb/uvc/ modules + +# Copy to sane location +#sudo cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ~/$LINUX_BRANCH-uvcvideo.ko +cd ../../../../../ + +cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ../uvcvideo.ko + +# Unload existing module if installed +echo "Unloading existing uvcvideo driver..." +sudo modprobe -r uvcvideo + +cd .. + +## Not sure yet about deleting and copying... + +# save the existing module + +MODULE_NAME=/lib/modules/`uname -r`/kernel/drivers/media/usb/uvc/uvcvideo.ko + +if [ -e $MODULE_NAME ]; then + sudo cp $MODULE_NAME $MODULE_NAME.backup + sudo rm $MODULE_NAME + + sudo cp uvcvideo.ko $MODULE_NAME +fi + +if [ -e $MODULE_NAME.xz ]; then + sudo cp $MODULE_NAME.xz $MODULE_NAME.xz.backup + sudo rm $MODULE_NAME.xz + + # compress + xz uvcvideo.ko + sudo cp uvcvideo.ko.xz $MODULE_NAME +fi + +if [ -e $MODULE_NAME.gz ]; then + sudo cp $MODULE_NAME.gz $MODULE_NAME.gz.backup + sudo rm $MODULE_NAME.gz + + # compress + gzip uvcvideo.ko + sudo cp uvcvideo.ko.gz $MODULE_NAME.gz +fi + +# Copy out to module directory + + +sudo modprobe uvcvideo + +rm -rf kernel + +echo "Script has completed. Please consult the installation guide for further instruction." diff --git a/scripts/patch-opensusetumbleweed.sh b/scripts/patch-opensusetumbleweed.sh new file mode 100755 index 00000000000..994dec8f62c --- /dev/null +++ b/scripts/patch-opensusetumbleweed.sh @@ -0,0 +1,118 @@ +#!/bin/bash -e + +SRC_VERSION_NAME=linux + +## from +## http://stackoverflow.com/questions/9293887/in-bash-how-do-i-convert-a-space-delimited-string-into-an-array + +FULL_NAME=$( uname -r | tr "-" "\n") +read -a VERSION <<< $FULL_NAME + +SRC_VERSION_ID=${VERSION[0]} ## e.g. : 4.5.6 +SRC_VERSION_REL=${VERSION[1]} ## e.g. : 1 +LINUX_TYPE=${VERSION[2]} ## e.g. : ARCH +#remove trailing.0 +SRC_VERSION_ID=$(echo $SRC_VERSION_ID | sed -e 's/\.0$//' ) + +LINUX_BRANCH=opensuse-$SRC_VERSION_ID +KERNEL_NAME=linux-$SRC_VERSION_ID +PATCH_NAME=patch-$SRC_VERSION_ID + +# ARCH Linux -- KERNEL_NAME=linux-$SRC_VERSION_ID-$SRC_VERSION_REL-$ARCH.pkg.tar.xz + +mkdir kernel +cd kernel + +## Get the kernel +wget https://www.kernel.org/pub/linux/kernel/v4.x/$KERNEL_NAME.tar.xz +wget https://www.kernel.org/pub/linux/kernel/v4.x/$PATCH_NAME.xz +#wget https://www.kernel.org/pub/linux/kernel/v4.x/$PATCH_NAME.sign + +echo "Extract the kernel" +tar xf $KERNEL_NAME.tar.xz + +cd $KERNEL_NAME + +## Get the patch + +# echo "Patching the kernel..." +### patch not working ? +# xz -dc ../$PATCH_NAME.xz | patch -p1 + + +echo "RealSense patch..." + +# Apply our RealSense specific patch +patch -p1 < ../../realsense-camera-formats-opensuse.patch + +# Prepare to compile modules + +## Get the config +# zcat /proc/config.gz > .config ## Not the good one ? + +cp /lib/modules/`uname -r`/build/.config . +cp /lib/modules/`uname -r`/build/Module.symvers . + +echo "Prepare the build" + +make scripts oldconfig modules_prepare + +# Compile UVC modules +echo "Beginning compilation of uvc..." +#make modules +KBASE=`pwd` +cd drivers/media/usb/uvc +cp $KBASE/Module.symvers . +make -C $KBASE M=$KBASE/drivers/media/usb/uvc/ modules + +# Copy to sane location +#sudo cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ~/$LINUX_BRANCH-uvcvideo.ko +cd ../../../../../ + +cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ../uvcvideo.ko + +# Unload existing module if installed +echo "Unloading existing uvcvideo driver..." +sudo modprobe -r uvcvideo + +cd .. + +## Not sure yet about deleting and copying... + +# save the existing module + +MODULE_NAME=/lib/modules/`uname -r`/kernel/drivers/media/usb/uvc/uvcvideo.ko + +if [ -e $MODULE_NAME ]; then + sudo cp $MODULE_NAME $MODULE_NAME.backup + sudo rm $MODULE_NAME + + sudo cp uvcvideo.ko $MODULE_NAME +fi + +if [ -e $MODULE_NAME.xz ]; then + sudo cp $MODULE_NAME.xz $MODULE_NAME.xz.backup + sudo rm $MODULE_NAME.xz + + # compress + xz uvcvideo.ko + sudo cp uvcvideo.ko.xz $MODULE_NAME +fi + +if [ -e $MODULE_NAME.gz ]; then + sudo cp $MODULE_NAME.gz $MODULE_NAME.gz.backup + sudo rm $MODULE_NAME.gz + + # compress + gzip uvcvideo.ko + sudo cp uvcvideo.ko.gz $MODULE_NAME.gz +fi + +# Copy out to module directory + + +sudo modprobe uvcvideo + +rm -rf kernel + +echo "Script has completed. Please consult the installation guide for further instruction." diff --git a/scripts/patch-realsense-ubuntu-lts.sh b/scripts/patch-realsense-ubuntu-lts.sh index f80e2c8a04b..6330aa19c89 100755 --- a/scripts/patch-realsense-ubuntu-lts.sh +++ b/scripts/patch-realsense-ubuntu-lts.sh @@ -20,15 +20,30 @@ fi source ./scripts/patch-utils.sh # Get the required tools and headers to build the kernel -sudo apt-get install linux-headers-generic build-essential git +sudo apt-get install linux-headers-generic build-essential git bc -y #Packages to build the patched modules require_package libusb-1.0-0-dev require_package libssl-dev +#Parse user inputs +#Reload stock drivers (Developers' option) +[ "$#" -ne 0 -a "$1" == "reset" ] && reset_driver=1 || reset_driver=0 +#Full kernel rebuild with xhci patch is required (4.4 only) +[ "$#" -ne 0 -a "$1" == "xhci-patch" ] && xhci_patch=1 || xhci_patch=0 +#Rebuild USB subsystem w/o kernel rebuild +[ "$#" -ne 0 -a "$1" == "build_usbcore_modules" ] && build_usbcore_modules=1 || build_usbcore_modules=0 +[ ${build_usbcore_modules} -eq 1 ] && xhci_patch=1 + retpoline_retrofit=0 LINUX_BRANCH=$(uname -r) - +#Get kernel major.minor +IFS='.' read -a kernel_version <<< ${LINUX_BRANCH} +k_maj_min=$((${kernel_version[0]}*100 + ${kernel_version[1]})) +if [[ ( ${xhci_patch} -eq 1 ) && ( ${k_maj_min} -ne 404 ) ]]; then + echo -e "\e[43mThe xhci_patch flag is compatible with LTS branch 4.4 only, currently selected kernel is $(uname -r)\e[0m" + exit 1 +fi # Construct branch name from distribution codename {xenial,bionic,..} and kernel version ubuntu_codename=`. /etc/os-release; echo ${UBUNTU_CODENAME/*, /}` @@ -38,6 +53,7 @@ then ubuntu_codename="xenial" retpoline_retrofit=1 fi + kernel_branch=$(choose_kernel_branch ${LINUX_BRANCH} ${ubuntu_codename}) kernel_name="ubuntu-${ubuntu_codename}-$kernel_branch" echo -e "\e[32mCreate patches workspace in \e[93m${kernel_name} \e[32mfolder\n\e[0m" @@ -47,21 +63,38 @@ if [ ${ubuntu_codename} == "bionic" ]; then require_package libelf-dev require_package elfutils + #Ubuntu 18.04 kernel 4.18 + require_package bison + require_package flex fi # Get the linux kernel and change into source tree -[ ! -d ${kernel_name} ] && git clone -b $kernel_branch git://kernel.ubuntu.com/ubuntu/ubuntu-${ubuntu_codename}.git --depth 1 ./${kernel_name} +if [ ! -d ${kernel_name} ]; then + mkdir ${kernel_name} + cd ${kernel_name} + git init + git remote add origin git://kernel.ubuntu.com/ubuntu/ubuntu-${ubuntu_codename}.git + cd .. +fi + cd ${kernel_name} +#if [ $xhci_patch -eq 0 ]; +#then +#Search the repository for the tag that matches the mmaj.min.patch-build of Ubuntu kernel +kernel_full_num=$(echo $LINUX_BRANCH | cut -d '-' -f 1,2) +kernel_git_tag=$(git ls-remote --tags origin | grep ${kernel_full_num} | grep '[^^{}]$' | tail -n 1 | awk -F/ '{print $NF}') +echo -e "\e[32mFetching Ubuntu LTS tag \e[47m${kernel_git_tag}\e[0m \e[32m to the local kernel sources folder\e[0m" +git fetch origin tag ${kernel_git_tag} --no-tags # Verify that there are no trailing changes., warn the user to make corrective action if needed if [ $(git status | grep 'modified:' | wc -l) -ne 0 ]; then echo -e "\e[36mThe kernel has modified files:\e[0m" git status | grep 'modified:' - echo -e "\e[36mProceeding will reset all local kernel changes. Press 'n' within 10 seconds to abort the operation" + echo -e "\e[36mProceeding will reset all local kernel changes. Press 'n' within 3 seconds to abort the operation" set +e - read -n 1 -t 10 -r -p "Do you want to proceed? [Y/n]" response + read -n 1 -t 3 -r -p "Do you want to proceed? [Y/n]" response set -e response=${response,,} # tolower if [[ $response =~ ^(n|N)$ ]]; @@ -70,36 +103,55 @@ then exit 1 else echo -e "\e[0m" - echo -e "\e[32mUpdate the folder content with the latest from mainline branch\e[0m" - git fetch origin $kernel_branch --depth 1 printf "Resetting local changes in %s folder\n " ${kernel_name} - git reset --hard $kernel_branch + git reset --hard fi fi -#Check if we need to apply patches or get reload stock drivers (Developers' option) -[ "$#" -ne 0 -a "$1" == "reset" ] && reset_driver=1 || reset_driver=0 +echo -e "\e[32mSwitching to LTS tag ${kernel_git_tag}\e[0m" +git checkout ${kernel_git_tag} + if [ $reset_driver -eq 1 ]; then echo -e "\e[43mUser requested to rebuild and reinstall ubuntu-${ubuntu_codename} stock drivers\e[0m" else # Patching kernel for RealSense devices + echo -e "\e[32mApplying patches for \e[36m${ubuntu_codename}-${kernel_branch}\e[32m line\e[0m" echo -e "\e[32mApplying realsense-uvc patch\e[0m" - patch -p1 < ../scripts/realsense-camera-formats_ubuntu-${ubuntu_codename}-${kernel_branch}.patch + patch -p1 < ../scripts/realsense-camera-formats-${ubuntu_codename}-${kernel_branch}.patch echo -e "\e[32mApplying realsense-metadata patch\e[0m" - patch -p1 < ../scripts/realsense-metadata-ubuntu-${ubuntu_codename}-${kernel_branch}.patch + patch -p1 < ../scripts/realsense-metadata-${ubuntu_codename}-${kernel_branch}.patch echo -e "\e[32mApplying realsense-hid patch\e[0m" - patch -p1 < ../scripts/realsense-hid-ubuntu-${ubuntu_codename}-${kernel_branch}.patch + patch -p1 < ../scripts/realsense-hid-${ubuntu_codename}-${kernel_branch}.patch echo -e "\e[32mApplying realsense-powerlinefrequency-fix patch\e[0m" patch -p1 < ../scripts/realsense-powerlinefrequency-control-fix.patch # Applying 3rd-party patch that affects USB2 behavior # See reference https://patchwork.kernel.org/patch/9907707/ - echo -e "\e[32mRetrofit uvc bug fix enabled with 4.18+\e[0m" - patch -p1 < ../scripts/v1-media-uvcvideo-mark-buffer-error-where-overflow.patch + if [ ${k_maj_min} -lt 418 ]; + then + echo -e "\e[32mRetrofit UVC bug fix rectified in 4.18+\e[0m" + if patch -N --dry-run -p1 < ../scripts/v1-media-uvcvideo-mark-buffer-error-where-overflow.patch; then + patch -N -p1 < ../scripts/v1-media-uvcvideo-mark-buffer-error-where-overflow.patch + else + echo -e "\e[36m Skip the patch - it is already found in the source tree\e[0m" + fi + fi + if [ $xhci_patch -eq 1 ]; then + echo -e "\e[32mApplying streamoff hotfix patch in videobuf2-core\e[0m" + patch -p1 < ../scripts/01-Backport-streamoff-vb2-core-hotfix.patch + echo -e "\e[32mApplying 01-xhci-Add-helper-to-get-hardware-dequeue-pointer-for patch\e[0m" + patch -p1 < ../scripts/01-xhci-Add-helper-to-get-hardware-dequeue-pointer-for.patch + echo -e "\e[32mApplying 02-xhci-Add-stream-id-to-to-xhci_dequeue_state-structur patch\e[0m" + patch -p1 < ../scripts/02-xhci-Add-stream-id-to-to-xhci_dequeue_state-structur.patch + echo -e "\e[32mApplying 03-xhci-Find-out-where-an-endpoint-or-stream-stopped-fr patch\e[0m" + patch -p1 < ../scripts/03-xhci-Find-out-where-an-endpoint-or-stream-stopped-fr.patch + echo -e "\e[32mApplying 04-xhci-remove-unused-stopped_td-pointer patch\e[0m" + patch -p1 < ../scripts/04-xhci-remove-unused-stopped_td-pointer.patch + fi fi -# Copy configuration +#Copy configuration sudo cp /usr/src/linux-headers-$(uname -r)/.config . sudo cp /usr/src/linux-headers-$(uname -r)/Module.symvers . @@ -112,15 +164,29 @@ if [ ! -f scripts/ubuntu-retpoline-extract-one ]; then for f in $(find . -name 'retpoline-extract-one'); do cp ${f} scripts/ubuntu-retpoline-extract-one; done; echo $$$ fi -sudo make silentoldconfig modules_prepare + +#Reuse current kernel configuration. Assign default values to newly-introduced options. +sudo make olddefconfig modules_prepare +#Replacement of USBcore modules implies usbcore is modular +[ ${build_usbcore_modules} -eq 1 ] && sudo make menuconfig modules_prepare #Vermagic identity is required -IFS='.' read -a kernel_version <<< "$LINUX_BRANCH" sudo sed -i "s/\".*\"/\"$LINUX_BRANCH\"/g" ./include/generated/utsrelease.h sudo sed -i "s/.*/$LINUX_BRANCH/g" ./include/config/kernel.release #Patch for Trusty Tahr (Ubuntu 14.05) with GCC not retrofitted with the retpoline patch. [ $retpoline_retrofit -eq 1 ] && sudo sed -i "s/#ifdef RETPOLINE/#if (1)/g" ./include/linux/vermagic.h + +if [[ ( $xhci_patch -eq 1 ) && ( $build_usbcore_modules -eq 0 ) ]]; then + sudo make -j$(($(nproc)-1)) + sudo make modules -j$(($(nproc)-1)) + sudo make modules_install -j$(($(nproc)-1)) + sudo make install + echo -e "\e[92m\n\e[1m`sudo make kernelrelease` Kernel has been successfully installed." + echo -e "\e[92m\n\e[1mScript has completed. Please reboot and load the newly installed Kernel from GRUB list.\n\e[0m" +exit 0 +fi + # Build the uvc, accel and gyro modules KBASE=`pwd` cd drivers/media/usb/uvc @@ -134,18 +200,66 @@ sudo make -j -C $KBASE M=$KBASE/drivers/iio/gyro modules echo -e "\e[32mCompiling v4l2-core modules\e[0m" sudo make -j -C $KBASE M=$KBASE/drivers/media/v4l2-core modules -# Copy the patched modules to a sane location +# Copy the patched modules to a location sudo cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ~/$LINUX_BRANCH-uvcvideo.ko sudo cp $KBASE/drivers/iio/accel/hid-sensor-accel-3d.ko ~/$LINUX_BRANCH-hid-sensor-accel-3d.ko sudo cp $KBASE/drivers/iio/gyro/hid-sensor-gyro-3d.ko ~/$LINUX_BRANCH-hid-sensor-gyro-3d.ko sudo cp $KBASE/drivers/media/v4l2-core/videodev.ko ~/$LINUX_BRANCH-videodev.ko + +if [ $build_usbcore_modules -eq 1 ]; then + sudo make -j -C $KBASE M=$KBASE/drivers/usb/core modules + sudo make -j -C $KBASE M=$KBASE/drivers/usb/host modules + sudo make -j -C $KBASE M=$KBASE/drivers/hid/usbhid modules + sudo cp $KBASE/drivers/media/v4l2-core/videobuf2-v4l2.ko ~/$LINUX_BRANCH-videobuf2-v4l2.ko + sudo cp $KBASE/drivers/media/v4l2-core/videobuf2-core.ko ~/$LINUX_BRANCH-videobuf2-core.ko + sudo cp $KBASE/drivers/media/v4l2-core/v4l2-common.ko ~/$LINUX_BRANCH-v4l2-common.ko + sudo cp $KBASE/drivers/usb/core/usbcore.ko ~/$LINUX_BRANCH-usbcore.ko + sudo cp $KBASE/drivers/usb/host/ehci-hcd.ko ~/$LINUX_BRANCH-ehci-hcd.ko + sudo cp $KBASE/drivers/usb/host/ehci-pci.ko ~/$LINUX_BRANCH-ehci-pci.ko + sudo cp $KBASE/drivers/usb/host/xhci-hcd.ko ~/$LINUX_BRANCH-xhci-hcd.ko + sudo cp $KBASE/drivers/usb/host/xhci-pci.ko ~/$LINUX_BRANCH-xhci-pci.ko + sudo cp $KBASE/drivers/hid/usbhid/usbhid.ko ~/$LINUX_BRANCH-usbhid.ko +fi + echo -e "\e[32mPatched kernels modules were created successfully\n\e[0m" # Load the newly-built modules +# As a precausion start with unloading the core uvcvideo: +try_unload_module uvcvideo +try_unload_module videodev + +echo $build_usbcore_modules +if [ $build_usbcore_modules -eq 1 ]; then +try_unload_module videobuf2_v4l2 +try_unload_module videobuf2_core +try_unload_module v4l2_common + + + #Replace usb subsystem modules + try_unload_module usbhid + try_unload_module xhci-pci + try_unload_module xhci-hcd + try_unload_module ehci-pci + try_unload_module ehci-hcd + + try_module_insert usbcore ~/$LINUX_BRANCH-usbcore.ko /lib/modules/`uname -r`/kernel/drivers/usb/core/usbcore.ko + try_module_insert ehci-hcd ~/$LINUX_BRANCH-ehci-hcd.ko /lib/modules/`uname -r`/kernel/drivers/usb/host/ehci-hcd.ko + try_module_insert ehci-pci ~/$LINUX_BRANCH-ehci-pci.ko /lib/modules/`uname -r`/kernel/drivers/usb/host/ehci-pci.ko + try_module_insert xhci-hcd ~/$LINUX_BRANCH-xhci-hcd.ko /lib/modules/`uname -r`/kernel/drivers/usb/host/xhci-hcd.ko + try_module_insert xhci-pci ~/$LINUX_BRANCH-xhci-pci.ko /lib/modules/`uname -r`/kernel/drivers/usb/host/xhci-pci.ko + + try_module_insert videodev ~/$LINUX_BRANCH-videodev.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videodev.ko + try_module_insert v4l2-common ~/$LINUX_BRANCH-v4l2-common.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/v4l2-common.ko + + try_module_insert videobuf2_core ~/$LINUX_BRANCH-videobuf2-core.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf2-core.ko + try_module_insert videobuf2_v4l2 ~/$LINUX_BRANCH-videobuf2-v4l2.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf2-v4l2.ko +fi + try_module_insert videodev ~/$LINUX_BRANCH-videodev.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videodev.ko try_module_insert uvcvideo ~/$LINUX_BRANCH-uvcvideo.ko /lib/modules/`uname -r`/kernel/drivers/media/usb/uvc/uvcvideo.ko try_module_insert hid_sensor_accel_3d ~/$LINUX_BRANCH-hid-sensor-accel-3d.ko /lib/modules/`uname -r`/kernel/drivers/iio/accel/hid-sensor-accel-3d.ko try_module_insert hid_sensor_gyro_3d ~/$LINUX_BRANCH-hid-sensor-gyro-3d.ko /lib/modules/`uname -r`/kernel/drivers/iio/gyro/hid-sensor-gyro-3d.ko + echo -e "\e[92m\n\e[1mScript has completed. Please consult the installation guide for further instruction.\n\e[0m" diff --git a/scripts/patch-realsense-ubuntu-odroid-xu4-4.14.sh b/scripts/patch-realsense-ubuntu-odroid-xu4-4.14.sh new file mode 100755 index 00000000000..2d004bdcc99 --- /dev/null +++ b/scripts/patch-realsense-ubuntu-odroid-xu4-4.14.sh @@ -0,0 +1,192 @@ +#!/bin/bash + +#This script is almost an exact copy of the patch-realsense-ubuntu-lts.sh script, tested on 4.14.47-132. +#There only two small additions / checks. Actually, this script also works for normal ubuntu-lts + +#Break execution on any error received +set -e + +#Locally suppress stderr to avoid raising not relevant messages +exec 3>&2 +exec 2> /dev/null +con_dev=$(ls /dev/video* | wc -l) +exec 2>&3 + +if [ $con_dev -ne 0 ]; +then + echo -e "\e[32m" + read -p "Remove all RealSense cameras attached. Hit any key when ready" + echo -e "\e[0m" +fi + +#Include usability functions +source ./scripts/patch-utils.sh + +# Get the required tools and headers to build the kernel +#sudo apt-get install linux-headers-generic build-essential git +sudo apt-get install build-essential git + +#Packages to build the patched modules +require_package libusb-1.0-0-dev +require_package libssl-dev + +retpoline_retrofit=0 + +LINUX_BRANCH=$(uname -r) +PLATFORM=$(uname -n) +#if [ "$PLATFORM" = "odroid" ]; then +# #kernel_branch="hwe" +# #kernel_branch=$LINUX_BRANCH +# kernel_branch="master" +#else +# kernel_branch=$(choose_kernel_branch $LINUX_BRANCH) +#fi +kernel_branch="master" +echo "Kernel branch: " $kernel_branch +# Construct branch name from distribution codename {xenial,bionic,..} and kernel version +#ubuntu_codename=`. /etc/os-release; echo ${UBUNTU_CODENAME/*, /}` +#if [ -z "$UBUNTU_CODENAME" ]; +#then + # Trusty Tahr shall use xenial code base +# ubuntu_codename="xenial" +# retpoline_retrofit=1 +#fi +ubuntu_codename="bionic" + +#kernel_name="ubuntu-${ubuntu_codename}-$kernel_branch" +kernel_name="odroid_bionic" + +#Distribution-specific packages +if [ ${ubuntu_codename} == "bionic" ]; +then + require_package libelf-dev + require_package elfutils +fi + + +# Get the linux kernel and change into source tree +#[ ! -d ${kernel_name} ] && git clone -b $kernel_branch git://#kernel.ubuntu.com/ubuntu/ubuntu-${ubuntu_codename}.git --depth #1 ./${kernel_name} +[ ! -d ${kernel_name} ] && git clone --depth 1 https://github.com/hardkernel/linux -b odroidxu4-4.14.y ./${kernel_name} +cd ${kernel_name} + +# Verify that there are no trailing changes., warn the user to make corrective action if needed +if [ $(git status | grep 'modified:' | wc -l) -ne 0 ]; +then + echo -e "\e[36mThe kernel has modified files:\e[0m" + git status | grep 'modified:' + echo -e "\e[36mProceeding will reset all local kernel changes. Press 'n' within 10 seconds to abort the operation" + set +e + read -n 1 -t 10 -r -p "Do you want to proceed? [Y/n]" response + set -e + response=${response,,} # tolower + if [[ $response =~ ^(n|N)$ ]]; + then + echo -e "\e[41mScript has been aborted on user requiest. Please resolve the modified files are rerun\e[0m" + exit 1 + else + echo -e "\e[0m" + echo -e "\e[32mUpdate the folder content with the latest from mainline branch\e[0m" + #git fetch origin $kernel_branch --depth 1 + git fetch origin odroidxu4-4.14.y --depth 1 + printf "Resetting local changes in %s folder\n " ${kernel_name} + #git reset --hard $kernel_branch + git reset --hard odroidxu4-4.14.y + fi +fi + +#Check if we need to apply patches or get reload stock drivers (Developers' option) +[ "$#" -ne 0 -a "$1" == "reset" ] && reset_driver=1 || reset_driver=0 + +if [ $reset_driver -eq 1 ]; +then + echo -e "\e[43mUser requested to rebuild and reinstall ubuntu-${ubuntu_codename} stock drivers\e[0m" +else + # Patching kernel for RealSense devices + echo -e "\e[32mApplying realsense-uvc patch\e[0m" + patch -p1 < ../scripts/realsense-camera-formats_ubuntu-${ubuntu_codename}-${kernel_branch}.patch + echo -e "\e[32mApplying realsense-metadata patch\e[0m" + patch -p1 < ../scripts/realsense-metadata-ubuntu-${ubuntu_codename}-${kernel_branch}.patch + echo -e "\e[32mApplying realsense-hid patch\e[0m" + patch -p1 < ../scripts/realsense-hid-ubuntu-${ubuntu_codename}-${kernel_branch}.patch + echo -e "\e[32mApplying realsense-powerlinefrequency-fix patch\e[0m" + patch -p1 < ../scripts/realsense-powerlinefrequency-control-fix.patch +fi + +# Copy configuration +sudo cp /lib/modules/$(uname -r)/build/.config . +sudo cp /lib/modules/$(uname -r)/build/Module.symvers . + +# Basic build for kernel modules +echo -e "\e[32mPrepare kernel modules configuration\e[0m" +#Retpoline script manual retrieval. based on https://github.com/IntelRealSense/librealsense/issues/1493 +#Required since the retpoline patches were introduced into Ubuntu kernels +if [ ! -f scripts/ubuntu-retpoline-extract-one ]; then + pwd + for f in $(find . -name 'retpoline-extract-one'); do cp ${f} scripts/ubuntu-retpoline-extract-one; done; + echo $$$ +fi +#sudo make silentoldconfig modules_prepare +sudo make odroidxu4_defconfig modules_prepare + +#Vermagic identity is required +IFS='.' read -a kernel_version <<< "$LINUX_BRANCH" +sudo sed -i "s/\".*\"/\"$LINUX_BRANCH\"/g" ./include/generated/utsrelease.h +sudo sed -i "s/.*/$LINUX_BRANCH/g" ./include/config/kernel.release +#Patch for Trusty Tahr (Ubuntu 14.05) with GCC not retrofitted with the retpoline patch. +[ $retpoline_retrofit -eq 1 ] && sudo sed -i "s/#ifdef RETPOLINE/#if (1)/g" ./include/linux/vermagic.h + +# Build the uvc, accel and gyro modules +KBASE=`pwd` +cd drivers/media/usb/uvc +sudo cp $KBASE/Module.symvers . + +echo -e "\e[32mCompiling uvc module\e[0m" +sudo make -j -C $KBASE M=$KBASE/drivers/media/usb/uvc/ modules +echo -e "\e[32mCompiling accelerometer and gyro modules\e[0m" +sudo make -j -C $KBASE M=$KBASE/drivers/iio/accel modules +sudo make -j -C $KBASE M=$KBASE/drivers/iio/gyro modules +echo -e "\e[32mCompiling v4l2-core modules\e[0m" +sudo make -j -C $KBASE M=$KBASE/drivers/media/v4l2-core modules + +# Copy and load the patched modules to a sane location +if [ -f $KBASE/drivers/media/usb/uvc/uvcvideo.ko ]; then + echo "Copying uvcvideo.ko" + sudo cp $KBASE/drivers/media/usb/uvc/uvcvideo.ko ~/$LINUX_BRANCH-uvcvideo.ko + try_module_insert uvcvideo ~/$LINUX_BRANCH-uvcvideo.ko /lib/modules/`uname -r`/kernel/drivers/media/usb/uvc/uvcvideo.ko +fi + +#if [ -f $KBASE/drivers/iio/accel/hid-sensor-accel-3d.ko ]; then +# echo "Copying hid-sensor-accel-3d.ko" +# sudo cp $KBASE/drivers/iio/accel/hid-sensor-accel-3d.ko ~/$LINUX_BRANCH-hid-sensor-accel-3d.ko +# try_module_insert hid_sensor_accel_3d ~/$LINUX_BRANCH-hid-sensor-accel-3d.ko /lib/modules/#`uname -r`/kernel/drivers/iio/accel/hid-sensor-accel-3d.ko +#fi +#if [ -f $KBASE/drivers/iio/gyro/hid-sensor-gyro-3d.ko ]; then +# echo "Copying hid-sensor-gyro-3d.ko" +# sudo cp $KBASE/drivers/iio/gyro/hid-sensor-gyro-3d.ko ~/$LINUX_BRANCH-hid-sensor-gyro-3d.ko +# try_module_insert hid_sensor_gyro_3d ~/$LINUX_BRANCH-hid-sensor-gyro-3d.ko /lib/modules/`uname -#r`/kernel/drivers/iio/gyro/hid-sensor-gyro-3d.ko +#fi +#if [ -f $KBASE/drivers/media/v4l2-core/videodev.ko ]; then +if [ -f $KBASE/drivers/media/v4l2-core/videobuf-core.ko ]; then + echo "Copying video drivers" + sudo cp $KBASE/drivers/media/v4l2-core/videobuf-core.ko ~/$LINUX_BRANCH-videobuf-core.ko + try_module_insert videobuf-core ~/$LINUX_BRANCH-videobuf-core.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf-core.ko + + sudo cp $KBASE/drivers/media/v4l2-core/videobuf-vmalloc.ko ~/$LINUX_BRANCH-videobuf-vmalloc.ko + try_module_insert videobuf-vmalloc ~/$LINUX_BRANCH-videobuf-vmalloc.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf-vmalloc.ko + + sudo cp $KBASE/drivers/media/v4l2-core/videobuf-dvb.ko ~/$LINUX_BRANCH-videobuf-dvb.ko + try_module_insert videobuf-dvb ~/$LINUX_BRANCH-videobuf-dvb.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf-dvb.ko + + sudo cp $KBASE/drivers/media/v4l2-core/videobuf2-vmalloc.ko ~/$LINUX_BRANCH-videobuf2-vmalloc.ko + try_module_insert videobuf2-vmalloc ~/$LINUX_BRANCH-videobuf2-vmalloc.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/videobuf2-vmalloc.ko + + sudo cp $KBASE/drivers/media/v4l2-core/v4l2-fwnode.ko ~/$LINUX_BRANCH-v4l2-fwnode.ko + try_module_insert v4l2-fwnode ~/$LINUX_BRANCH-v4l2-fwnode.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/v4l2-fwnode.ko + + sudo cp $KBASE/drivers/media/v4l2-core/tuner.ko ~/$LINUX_BRANCH-tuner.ko + try_module_insert tuner ~/$LINUX_BRANCH-tuner.ko /lib/modules/`uname -r`/kernel/drivers/media/v4l2-core/tuner.ko +fi +echo -e "\e[32mPatched kernels modules were created successfully\n\e[0m" + + +echo -e "\e[92m\n\e[1mScript has completed. Please consult the installation guide for further instruction.\n\e[0m" diff --git a/scripts/patch-utils.sh b/scripts/patch-utils.sh index 662fe164f3d..e4e474188d9 100755 --- a/scripts/patch-utils.sh +++ b/scripts/patch-utils.sh @@ -30,9 +30,12 @@ function require_package { # master UBUNTU: Ubuntu-4.4.0-128.154 Stefan Bader 4 weeks # master-next UBUNTU: SAUCE: Redpine: fix soft-ap invisible issue Sanjay Kumar Konduri 2 days +# As of Jan 21, 2020 #Ubuntu bionic repo : http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/ -# master UBUNTU: Ubuntu-4.15.0-23.25 Stefan Bader 4 weeks -# master-next ixgbe/ixgbevf: Free IRQ when PCI error recovery removes the device Mauro S M Rodrigues 2 days +# hwe UBUNTU: Ubuntu-hwe-5.3.0-28.30~18.04.1 Sultan Alsawaf 6 days +# hwe-edge UBUNTU: Ubuntu-hwe-edge-5.3.0-24.26~18.04.2 Kleber Sacilotto de Souza 8 weeks +# master UBUNTU: Ubuntu-4.15.0-74.84 Khalid Elmously 5 weeks +# master-current UBUNTU: Ubuntu-4.15.0-66.75 Khalid Elmously 4 months function choose_kernel_branch { @@ -59,24 +62,32 @@ function choose_kernel_branch { ;; *) #error message shall be redirected to stderr to be printed properly - echo -e "\e[31mUnsupported kernel version $1 . The patches are maintained for Ubuntu LTS with kernel versions 4.4, 4.8, 4.10 and 4.13 only\e[0m" >&2 + echo -e "\e[31mUnsupported kernel version $1 . The patches are maintained for Ubuntu16 (Xenial) with LTS kernel versions 4.4, 4.8, 4.10, 4.13 and 4.15\e[0m" >&2 exit 1 ;; esac else if [ "$2" != "bionic" ]; then - echo -e "\e[31mUnsupported distribution $2 kernel version $1 . The patches are maintained for Ubuntu LTS bionic/xenial with kernel versions 4.4, 4.8, 4.10 and 4.15 only\e[0m" >&2 + echo -e "\e[31mUnsupported distribution $2 kernel version $1 . The patches are maintained for Ubuntu16/18 (Xenial/Bionic) with LTS kernels 4-[4,8,10,13,15,18]\e[0m" >&2 exit 1 fi - - case "${kernel_version[1]}" in - "15") # kernel 4.15 for Ubuntu 18/Bionic Beaver + case "${kernel_version[0]}.${kernel_version[1]}" in + "4.15") # kernel 4.15 for Ubuntu 18/Bionic Beaver echo master ;; + "4.18") # kernel 4.18 for Ubuntu 18/Bionic Beaver + echo Ubuntu-hwe-4.18.0-25.26_18.04.1 + ;; + "5.0") # kernel 5.0 for Ubuntu 18/Bionic Beaver + echo 5 + ;; + "5.3") # kernel 5.3 + echo 5 + ;; *) #error message shall be redirected to stderr to be printed properly - echo -e "\e[31mUnsupported kernel version $1 . The patches are maintained for Ubuntu Bionic LTS with kernel 4.15 only\e[0m" >&2 + echo -e "\e[31mUnsupported kernel version $1 . The Bionic patches are maintained for Ubuntu LTS with kernels 4.15, 4.18, 5.0 and 5.3\e[0m" >&2 exit 1 ;; esac @@ -100,8 +111,12 @@ function try_load_module { load_module_name=$1 op_failed=0 - sudo modprobe ${load_module_name} || op_failed=$? - + if [ $(lsmod | grep ^${load_module_name} | wc -l) -eq 0 ]; then + sudo modprobe ${load_module_name} || op_failed=$? + else + printf "\e[32mn/a\e[0m" + fi + if [ $op_failed -ne 0 ]; then echo -e "\e[31mFailed to reload module $load_module_name. error type $op_failed . Operation is aborted\e[0m" >&2 @@ -116,7 +131,7 @@ function try_module_insert { backup_available=1 dependent_modules="" - printf "\e[32mReplacing \e[93m\e[1m%s \e[32m:\n\e[0m" ${module_name} + printf "\e[32mReplacing \e[93m\e[1m%s \e[32m -\n\e[0m" ${module_name} #Check if the module is loaded, and if does - are there dependent kernel modules. #Unload those first, then unload the requsted module and proceed with replacement @@ -124,17 +139,22 @@ function try_module_insert { #videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2 # In the above scenario videodev cannot be unloaded untill all the modules listed on the right are unloaded # Note that in case of multiple dependencies we'll remove only modules one by one starting with the first on the list + # And that the modules stack unwinding will start from the last (i.e leaf) dependency, + # for instance : videobuf2_core,videobuf2_v4l2,uvcvideo will start with unloading uvcvideo as it should automatically unwind dependent modules if [ $(lsmod | grep ^${module_name} | wc -l) -ne 0 ]; then - dependent_module=$(lsmod | grep ^${module_name} | awk '{printf $4}' | awk -F, '{printf $1}') - + dependencies=$(lsmod | grep ^${module_name} | awk '{printf $4}') + dependent_module=$(lsmod | grep ^${module_name} | awk '{printf $4}' | awk -F, '{printf $NF}') + if [ ! -z "$dependencies" ]; + then + printf "\e[32m\tModule \e[93m\e[1m%s \e[32m\e[21m is used by \e[34m$dependencies\n\e[0m" ${module_name} + fi while [ ! -z "$dependent_module" ] do - printf "\e[32m\tModule \e[93m\e[1m%s \e[32m\e[21m is used by \e[34m$dependent_module\n\e[0m" ${module_name} printf "\e[32m\tUnloading dependency \e[34m$dependent_module\e[0m\n\t" dependent_modules+="$dependent_module " try_unload_module $dependent_module - dependent_module=$(lsmod | grep ^${module_name} | awk '{printf $4}' | awk -F, '{printf $1}') + dependent_module=$(lsmod | grep ^${module_name} | awk '{printf $4}' | awk -F, '{printf $NF}') done # Unload existing modules if resident @@ -156,7 +176,7 @@ function try_module_insert { # try to load the new module modprobe_failed=0 - printf "\e[32mApplying the patched module ... \e[0m" + printf "\e[32m\tApplying the patched module ... \e[0m" sudo modprobe ${module_name} || modprobe_failed=$? # Check and revert the backup module if 'modprobe' operation crashed @@ -173,7 +193,7 @@ function try_module_insert { exit 1 else # Everything went OK, delete backup - printf "\e[32m succeeded\n\e[0m" + printf "\e[32m succeeded\e[0m" sudo rm ${tgt_ko}.bckup fi diff --git a/scripts/pr_check.sh b/scripts/pr_check.sh new file mode 100755 index 00000000000..8ab2c29f238 --- /dev/null +++ b/scripts/pr_check.sh @@ -0,0 +1,143 @@ +#!/bin/bash + +# This script is designed to ensure all relevant header and source files contain correct copyright + +set +e + +sudo apt-get install dos2unix + +ok=0 +fixed=0 + +function check_folder { + for filename in $(find $1 -type f \( -iname \*.cpp -o -iname \*.h -o -iname \*.hpp -o -iname \*.js -o -iname \*.bat -o -iname \*.sh -o -iname \*.txt \)); do + if [[ $(grep -oP "Software License Agreement" $filename | wc -l) -ne 0 ]]; then + echo "[WARNING] $filename contains 3rd-party license agreement" + else + if [[ ! $filename == *"usbhost"* ]]; then + # Only check files that are not .gitignore-d + if [[ $(git check-ignore $filename | wc -l) -eq 0 ]]; then + if [[ $(grep -oP "(?<=\(c\) )(.*)(?= Intel)" $filename | wc -l) -eq 0 ]]; then + echo "[ERROR] $filename is missing the copyright notice" + ok=$((ok+1)) + + if [[ $2 == *"fix"* ]]; then + if [[ $(date +%Y) == "2019" ]]; then + if [[ $filename == *".hpp"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// Copyright(c) 2019 Intel Corporation. All Rights Reserved.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".cpp"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// Copyright(c) 2019 Intel Corporation. All Rights Reserved.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".h"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|/* Copyright(c) 2019 Intel Corporation. All Rights Reserved. */' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".js"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// Copyright(c) 2019 Intel Corporation. All Rights Reserved.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".txt"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|# Copyright(c) 2019 Intel Corporation. All Rights Reserved.' -cx $filename + fixed=$((fixed+1)) + fi + else + echo Please update pr_check to auto-resolve missing copyright + fi + fi + fi + + if [[ $(grep -oP "Apache 2.0" $filename | wc -l) -eq 0 ]]; then + echo "[ERROR] $filename is missing license notice" + ok=$((ok+1)) + + if [[ $2 == *"fix"* ]]; then + if [[ $filename == *".hpp"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// License: Apache 2.0. See LICENSE file in root directory.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".cpp"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// License: Apache 2.0. See LICENSE file in root directory.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".h"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|/* License: Apache 2.0. See LICENSE file in root directory. */' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".js"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|// License: Apache 2.0. See LICENSE file in root directory.' -cx $filename + fixed=$((fixed+1)) + fi + if [[ $filename == *".txt"* ]]; then + echo "Trying to auto-resolve..."; + ex -sc '1i|# License: Apache 2.0. See LICENSE file in root directory.' -cx $filename + fixed=$((fixed+1)) + fi + fi + fi + + if [[ $(grep -o -P '\t' $filename | wc -l) -ne 0 ]]; then + echo "[ERROR] $filename has tabs (this project is using spaces as delimiters)" + ok=$((ok+1)) + + if [[ $2 == *"fix"* ]]; then + echo "Trying to auto-resolve..."; + sed -i.bak $'s/\t/ /g' $filename + fixed=$((fixed+1)) + fi + fi + + if [[ $(file ${filename} | grep -o -P 'CRLF' | wc -l) -ne 0 ]]; then + echo "[ERROR] $filename is using DOS line endings (this project is using Unix line-endings)" + ok=$((ok+1)) + + if [[ $2 == *"fix"* ]]; then + echo "Trying to auto-resolve..."; + dos2unix $filename + fixed=$((fixed+1)) + fi + fi + fi + fi + fi + done +} + +if [[ $1 == *"help"* ]]; then + echo Pull-Request Check tool + echo "Usage: (run from repo scripts directory)" + echo " ./pr_check.sh [--help] [--fix]" + echo " --fix Try to auto-fix defects" + exit 0 +fi + +cd .. +check_folder include $1 +check_folder src $1 +check_folder examples $1 +check_folder third-party/libtm $1 +check_folder tools $1 +cd scripts + +if [[ ${fixed} -ne 0 ]]; then + echo "Re-running pr_check..." + ./pr_check.sh +else + if [[ ${ok} -ne 0 ]]; then + echo Pull-Request check failed, please address ${ok} the errors reported above + exit 1 + fi +fi + +exit 0 diff --git a/scripts/realsense-camera-formats-bionic-5.patch b/scripts/realsense-camera-formats-bionic-5.patch new file mode 100644 index 00000000000..578557034e3 --- /dev/null +++ b/scripts/realsense-camera-formats-bionic-5.patch @@ -0,0 +1,136 @@ +Signed-off-by: Evgeni Raikhel +From aa2b05837765037fedd6d2092adf0ad08a68e9ab Mon Sep 17 00:00:00 2001 +From: Evgeni Raikhel +Date: Mon, 24 Jun 2019 10:25:39 +0300 +Subject: [PATCH] Streaming formats for Ubuntu 18.04 (Bionic Beaver), Kernel 5.0.0 + +--- + drivers/media/usb/uvc/uvc_driver.c | 32 ++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvcvideo.h | 19 +++++++++++++++++ + drivers/media/v4l2-core/v4l2-ioctl.c | 5 +++++ + include/uapi/linux/videodev2.h | 3 +++ + 4 files changed, 59 insertions(+) + +diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c +index 33a22c016..a7b76c987 100644 +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -219,6 +219,43 @@ static struct uvc_format_desc uvc_fmts[] = { + .guid = UVC_GUID_FORMAT_CNF4, + .fcc = V4L2_PIX_FMT_CNF4, + }, ++ { ++ .name = "Depth data 16-bit (D16)", ++ .guid = UVC_GUID_FORMAT_D16, ++ .fcc = V4L2_PIX_FMT_Z16, ++ }, ++ { ++ .name = "Packed raw data 10-bit", ++ .guid = UVC_GUID_FORMAT_W10, ++ .fcc = V4L2_PIX_FMT_W10, ++ }, ++ { ++ .name = "Confidence data (C )", ++ .guid = UVC_GUID_FORMAT_CONFIDENCE_MAP, ++ .fcc = V4L2_PIX_FMT_CONFIDENCE_MAP, ++ }, ++ /* FishEye 8-bit monochrome */ ++ { ++ .name = "Raw data 8-bit (RAW8)", ++ .guid = UVC_GUID_FORMAT_RAW8, ++ .fcc = V4L2_PIX_FMT_GREY, ++ }, ++ /* Legacy formats for backward-compatibility*/ ++ { ++ .name = "Raw data 16-bit (RW16)", ++ .guid = UVC_GUID_FORMAT_RW16, ++ .fcc = V4L2_PIX_FMT_RW16, ++ }, ++ { ++ .name = "16-bit Bayer BGBG/GRGR", ++ .guid = UVC_GUID_FORMAT_BAYER16, ++ .fcc = V4L2_PIX_FMT_SBGGR16, ++ }, ++ { ++ .name = "Z16 Huffman Compression", ++ .guid = UVC_GUID_FORMAT_Z16H, ++ .fcc = V4L2_PIX_FMT_Z16H, ++ }, + }; + + /* ------------------------------------------------------------------------ +diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h +index 9b41b14ce..4b88f31f5 100644 +--- a/drivers/media/usb/uvc/uvcvideo.h ++++ b/drivers/media/usb/uvc/uvcvideo.h +@@ -165,6 +165,28 @@ + {0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + ++ #define UVC_GUID_FORMAT_D16 \ ++ { 'P', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_W10 \ ++ { 'W', '1', '0', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_RAW8 \ ++ { 'R', 'A', 'W', '8', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++ #define UVC_GUID_FORMAT_CONFIDENCE_MAP \ ++ { 'C', ' ', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ /* Legacy formats */ ++ #define UVC_GUID_FORMAT_RW16 \ ++ { 'R', 'W', '1', '6', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_BAYER16 \ ++ { 'R', 'W', '1', '6', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++ #define UVC_GUID_FORMAT_Z16H \ ++ { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + + /* ------------------------------------------------------------------------ + * Driver specific constants. +diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c +index 90aad465f..e2d757e9a 100644 +--- a/drivers/media/v4l2-core/v4l2-ioctl.c ++++ b/drivers/media/v4l2-core/v4l2-ioctl.c +@@ -1302,6 +1302,15 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) + case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; + case V4L2_META_FMT_VSP1_HGT: descr = "R-Car VSP1 2-D Histogram"; break; + case V4L2_META_FMT_UVC: descr = "UVC payload header metadata"; break; ++ /* Librealsense formats*/ ++ case V4L2_PIX_FMT_RW16: descr = "16-bit Raw data"; break; ++ case V4L2_PIX_FMT_W10: descr = "10-bit packed 8888[2222]"; break; ++ case V4L2_META_FMT_D4XX: descr = "D4XX Payload Header metadata"; break; ++ case V4L2_PIX_FMT_CONFIDENCE_MAP: descr = "Packed [44] confidence data"; break; ++ case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; ++ case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; ++ case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; ++ case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; + + default: + /* Compressed formats */ +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h +index b5671ce27..8954f78be 100644 +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -692,6 +692,14 @@ struct v4l2_pix_format { + #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ + #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */ + #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */ ++#define V4L2_PIX_FMT_RW16 v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */ ++#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ ++#define V4L2_PIX_FMT_CONFIDENCE_MAP v4l2_fourcc('C', ' ', ' ', ' ') /* Two pixels in one byte */ ++/* Librealsense development*/ ++#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ ++#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ ++#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ + + /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ + #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ +-- +2.17.1 + diff --git a/scripts/realsense-camera-formats-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch b/scripts/realsense-camera-formats-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch new file mode 100644 index 00000000000..e130292c601 --- /dev/null +++ b/scripts/realsense-camera-formats-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch @@ -0,0 +1,144 @@ +From 5c4ddf193c07013c5b93759f799943561c5f355b Mon Sep 17 00:00:00 2001 +From: Evgeni +Date: Mon, 1 Apr 2019 14:47:28 +0300 +Subject: [PATCH] Streaming formats for Ubuntu 18.04 (Bionic Beaver), Kernel 4.18 + +Signed-off-by: Evgeni Raikhel +--- + drivers/media/usb/uvc/uvc_driver.c | 37 ++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvcvideo.h | 22 +++++++++++++++++ + drivers/media/v4l2-core/v4l2-ioctl.c | 4 ++- + include/uapi/linux/videodev2.h | 3 +++ + 4 files changed, 65 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c +index 8e1382013..6f1dd1a9e 100644 +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -209,6 +209,48 @@ static struct uvc_format_desc uvc_fmts[] = { + .guid = UVC_GUID_FORMAT_INZI, + .fcc = V4L2_PIX_FMT_INZI, + }, ++ { ++ .name = "Luminosity data 8-bit (L8)", ++ .guid = UVC_GUID_FORMAT_L8, ++ .fcc = V4L2_PIX_FMT_GREY, ++ }, ++ { ++ .name = "Depth data 16-bit (D16)", ++ .guid = UVC_GUID_FORMAT_D16, ++ .fcc = V4L2_PIX_FMT_Z16, ++ }, ++ { ++ .name = "Packed raw data 10-bit", ++ .guid = UVC_GUID_FORMAT_W10, ++ .fcc = V4L2_PIX_FMT_W10, ++ }, ++ { ++ .name = "Confidence data (C )", ++ .guid = UVC_GUID_FORMAT_CONFIDENCE_MAP, ++ .fcc = V4L2_PIX_FMT_CONFIDENCE_MAP, ++ }, ++ /* FishEye 8-bit monochrome */ ++ { ++ .name = "Raw data 8-bit (RAW8)", ++ .guid = UVC_GUID_FORMAT_RAW8, ++ .fcc = V4L2_PIX_FMT_GREY, ++ }, ++ /* Legacy formats for backward-compatibility*/ ++ { ++ .name = "Raw data 16-bit (RW16)", ++ .guid = UVC_GUID_FORMAT_RW16, ++ .fcc = V4L2_PIX_FMT_RW16, ++ }, ++ { ++ .name = "16-bit Bayer BGBG/GRGR", ++ .guid = UVC_GUID_FORMAT_BAYER16, ++ .fcc = V4L2_PIX_FMT_SBGGR16, ++ }, ++ { ++ .name = "Z16 Huffman Compression", ++ .guid = UVC_GUID_FORMAT_Z16H, ++ .fcc = V4L2_PIX_FMT_Z16H, ++ }, + }; + + /* ------------------------------------------------------------------------ +diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h +index be5cf1792..f405e5fe6 100644 +--- a/drivers/media/usb/uvc/uvcvideo.h ++++ b/drivers/media/usb/uvc/uvcvideo.h +@@ -158,6 +158,31 @@ + {0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + ++ #define UVC_GUID_FORMAT_L8 \ ++ { '2', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_D16 \ ++ { 'P', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_W10 \ ++ { 'W', '1', '0', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_RAW8 \ ++ { 'R', 'A', 'W', '8', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++ #define UVC_GUID_FORMAT_CONFIDENCE_MAP \ ++ { 'C', ' ', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ /* Legacy formats */ ++ #define UVC_GUID_FORMAT_RW16 \ ++ { 'R', 'W', '1', '6', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++ #define UVC_GUID_FORMAT_BAYER16 \ ++ { 'R', 'W', '1', '6', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++ #define UVC_GUID_FORMAT_Z16H \ ++ { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + + /* ------------------------------------------------------------------------ + * Driver specific constants. +diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c +index dd2100671..050123ae5 100644 +--- a/drivers/media/v4l2-core/v4l2-ioctl.c ++++ b/drivers/media/v4l2-core/v4l2-ioctl.c +@@ -1251,7 +1251,14 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) + case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; + case V4L2_META_FMT_VSP1_HGT: descr = "R-Car VSP1 2-D Histogram"; break; + case V4L2_META_FMT_UVC: descr = "UVC payload header metadata"; break; +- ++ /* Librealsense formats*/ ++ case V4L2_PIX_FMT_RW16: descr = "16-bit Raw data"; break; ++ case V4L2_PIX_FMT_W10: descr = "10-bit packed 8888[2222]"; break; ++ case V4L2_PIX_FMT_CONFIDENCE_MAP: descr = "4-bit per pixel packed"; break; ++ case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; ++ case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; ++ case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; ++ case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; + default: + /* Compressed formats */ + flags = V4L2_FMT_FLAG_COMPRESSED; +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h +index 082dc1439..0bbea2885 100644 +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -680,6 +680,14 @@ struct v4l2_pix_format { + #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ + #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ + #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ ++#define V4L2_PIX_FMT_RW16 v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */ ++#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ ++#define V4L2_PIX_FMT_CONFIDENCE_MAP v4l2_fourcc('C', ' ', ' ', ' ') /* Two pixels in one byte */ ++/* Librealsense development*/ ++#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ ++#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ ++#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ + + /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ + #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ +-- +2.17.1 + diff --git a/scripts/realsense-camera-formats_ubuntu-bionic-master.patch b/scripts/realsense-camera-formats-bionic-master.patch similarity index 81% rename from scripts/realsense-camera-formats_ubuntu-bionic-master.patch rename to scripts/realsense-camera-formats-bionic-master.patch index ebec0c0582b..2ac38bf518a 100644 --- a/scripts/realsense-camera-formats_ubuntu-bionic-master.patch +++ b/scripts/realsense-camera-formats-bionic-master.patch @@ -27,7 +27,7 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 28b91b7d7..f50a2b148 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -203,6 +203,43 @@ static struct uvc_format_desc uvc_fmts[] = { +@@ -203,6 +203,48 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_INZI, .fcc = V4L2_PIX_FMT_INZI, }, @@ -67,6 +67,11 @@ index 28b91b7d7..f50a2b148 100644 + .name = "16-bit Bayer BGBG/GRGR", + .guid = UVC_GUID_FORMAT_BAYER16, + .fcc = V4L2_PIX_FMT_SBGGR16, ++ }, ++ { ++ .name = "Z16 Huffman Compression", ++ .guid = UVC_GUID_FORMAT_Z16H, ++ .fcc = V4L2_PIX_FMT_Z16H, + }, }; @@ -75,7 +80,7 @@ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 05398784d..8c99aabef 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -153,6 +153,28 @@ +@@ -153,6 +153,31 @@ #define UVC_GUID_FORMAT_INVI \ { 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \ 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f} @@ -101,6 +106,9 @@ index 05398784d..8c99aabef 100644 +#define UVC_GUID_FORMAT_BAYER16 \ + { 'R', 'W', '1', '6', 0x66, 0x1a, 0x42, 0xa2, \ + 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++#define UVC_GUID_FORMAT_Z16H \ ++ { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} /* ------------------------------------------------------------------------ * Driver specific constants. @@ -108,13 +116,18 @@ diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2 index 89e0878ce..c422d70a2 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1246,6 +1246,9 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1246,6 +1246,14 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_TCH_FMT_TU08: descr = "8-bit unsigned touch data"; break; case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; case V4L2_META_FMT_VSP1_HGT: descr = "R-Car VSP1 2-D Histogram"; break; + /* Librealsense formats*/ + case V4L2_PIX_FMT_RW16: descr = "16-bit Raw data"; break; + case V4L2_PIX_FMT_W10: descr = "10-bit packed 8888[2222]"; break; ++ case V4L2_PIX_FMT_CONFIDENCE_MAP: descr = "4-bit per pixel packed"; break; ++ case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; ++ case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; ++ case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; ++ case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; default: /* Compressed formats */ @@ -122,13 +135,18 @@ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 1c095b5a9..3e20f2b8a 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h -@@ -668,6 +668,9 @@ struct v4l2_pix_format { +@@ -668,6 +668,14 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ +#define V4L2_PIX_FMT_RW16 v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */ +#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ +#define V4L2_PIX_FMT_CONFIDENCE_MAP v4l2_fourcc('C', ' ', ' ', ' ') /* Two pixels in one byte */ ++/* Librealsense development*/ ++#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ ++#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ ++#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ diff --git a/scripts/realsense-camera-formats-opensuse.patch b/scripts/realsense-camera-formats-opensuse.patch new file mode 100644 index 00000000000..a6c685c25c4 --- /dev/null +++ b/scripts/realsense-camera-formats-opensuse.patch @@ -0,0 +1,173 @@ +diff --git a/drivers/media/usb/uvc/Makefile b/drivers/media/usb/uvc/Makefile +index c26d12f..d86cf22 100644 +--- a/drivers/media/usb/uvc/Makefile ++++ b/drivers/media/usb/uvc/Makefile +@@ -2,3 +2,4 @@ ++CONFIG_MODULE_SIG=n + uvcvideo-objs := uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_ctrl.o \ + uvc_status.o uvc_isight.o uvc_debugfs.o + ifeq ($(CONFIG_MEDIA_CONTROLLER),y) +diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c +index d11fd6a..c819a39 100644 +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -148,6 +148,81 @@ static struct uvc_format_desc uvc_fmts[] = { + .guid = UVC_GUID_FORMAT_H264, + .fcc = V4L2_PIX_FMT_H264, + }, ++ { ++ .name = "Greyscale 8 L/R (Y8I)", ++ .guid = UVC_GUID_FORMAT_Y8I, ++ .fcc = V4L2_PIX_FMT_Y8I, ++ }, ++ { ++ .name = "Greyscale 12 L/R (Y12I)", ++ .guid = UVC_GUID_FORMAT_Y12I, ++ .fcc = V4L2_PIX_FMT_Y12I, ++ }, ++ { ++ .name = "Depth data 16-bit (Z16)", ++ .guid = UVC_GUID_FORMAT_Z16, ++ .fcc = V4L2_PIX_FMT_Z16, ++ }, ++ { ++ .name = "Bayer 10-bit (SRGGB10P)", ++ .guid = UVC_GUID_FORMAT_RW10, ++ .fcc = V4L2_PIX_FMT_SRGGB10P, ++ }, ++ { ++ .name = "Raw data 8-bit (RAW8)", ++ .guid = UVC_GUID_FORMAT_RAW8, ++ .fcc = V4L2_PIX_FMT_RAW8, ++ }, ++ { ++ .name = "Raw data 16-bit (RW16)", ++ .guid = UVC_GUID_FORMAT_RW16, ++ .fcc = V4L2_PIX_FMT_RW16, ++ }, ++ { ++ .name = "Depth 16-bit (INVZ)", ++ .guid = UVC_GUID_FORMAT_INVZ, ++ .fcc = V4L2_PIX_FMT_INVZ, ++ }, ++ { ++ .name = "Depth:IR 16:8 24-bit (INZI)", ++ .guid = UVC_GUID_FORMAT_INZI, ++ .fcc = V4L2_PIX_FMT_INZI, ++ }, ++ { ++ .name = "Depth 16-bit (INVR)", ++ .guid = UVC_GUID_FORMAT_INVR, ++ .fcc = V4L2_PIX_FMT_INVR, ++ }, ++ { ++ .name = "Depth:IR 16:8 24-bit (INRI)", ++ .guid = UVC_GUID_FORMAT_INRI, ++ .fcc = V4L2_PIX_FMT_INRI, ++ }, ++ { ++ .name = "Infrared 8-bit (INVI)", ++ .guid = UVC_GUID_FORMAT_INVI, ++ .fcc = V4L2_PIX_FMT_INVI, ++ }, ++ { ++ .name = "FlickerIR 8-bit (RELI)", ++ .guid = UVC_GUID_FORMAT_RELI, ++ .fcc = V4L2_PIX_FMT_RELI, ++ }, ++ { ++ .name = "Luminosity data 8-bit (L8)", ++ .guid = UVC_GUID_FORMAT_L8, ++ .fcc = V4L2_PIX_FMT_Y8, ++ }, ++ { ++ .name = "Luminosity data 16-bit (L16)", ++ .guid = UVC_GUID_FORMAT_L16, ++ .fcc = V4L2_PIX_FMT_Y16, ++ }, ++ { ++ .name = "Depth data 16-bit (D16)", ++ .guid = UVC_GUID_FORMAT_D16, ++ .fcc = V4L2_PIX_FMT_Z16, ++ }, + }; + + /* ------------------------------------------------------------------------ +diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h +index f0f2391..6704db7 100644 +--- a/drivers/media/usb/uvc/uvcvideo.h ++++ b/drivers/media/usb/uvc/uvcvideo.h +@@ -119,6 +119,51 @@ + #define UVC_GUID_FORMAT_H264 \ + { 'H', '2', '6', '4', 0x00, 0x00, 0x10, 0x00, \ + 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_Y8I \ ++ { 'Y', '8', 'I', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_Y12I \ ++ { 'Y', '1', '2', 'I', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_Z16 \ ++ { 'Z', '1', '6', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_RW10 \ ++ { 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_RAW8 \ ++ { 'R', 'A', 'W', '8', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++#define UVC_GUID_FORMAT_RW16 \ ++ { 'R', 'W', '1', '6', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_INVZ \ ++ { 'I', 'N', 'V', 'Z', 0x90, 0x2d, 0x58, 0x4a, \ ++ 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} ++#define UVC_GUID_FORMAT_INZI \ ++ { 'I', 'N', 'Z', 'I', 0x66, 0x1a, 0x42, 0xa2, \ ++ 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} ++#define UVC_GUID_FORMAT_INVR \ ++ { 'I', 'N', 'V', 'R', 0x90, 0x2d, 0x58, 0x4a, \ ++ 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} ++#define UVC_GUID_FORMAT_INRI \ ++ { 'I', 'N', 'R', 'I', 0x90, 0x2d, 0x58, 0x4a, \ ++ 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} ++#define UVC_GUID_FORMAT_INVI \ ++ { 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \ ++ 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f} ++#define UVC_GUID_FORMAT_RELI \ ++ { 'R', 'E', 'L', 'I', 0x14, 0x13, 0x43, 0xf9, \ ++ 0xa7, 0x5a, 0xee, 0x6b, 0xbf, 0x01, 0x2e, 0x23} ++#define UVC_GUID_FORMAT_L8 \ ++ { '2', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_L16 \ ++ { 'Q', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_D16 \ ++ { 'P', 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} + + /* ------------------------------------------------------------------------ + * Driver specific constants. +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h +index a0e87d1..7e00be4 100644 +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -669,6 +669,17 @@ + #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ + #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ + #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ ++#define V4L2_PIX_FMT_Y8 v4l2_fourcc('Y', '8', ' ', ' ') /* Greyscale 8-bit */ ++#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ') /* Greyscale 10-bit */ ++#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ') /* Greyscale 12-bit */ ++#define V4L2_PIX_FMT_Y16 v4l2_fourcc('Y', '1', '6', ' ') /* Greyscale 16-bit */ ++#define V4L2_PIX_FMT_RAW8 v4l2_fourcc('R', 'A', 'W', '8') /* Raw data 8-bit */ ++#define V4L2_PIX_FMT_RW16 v4l2_fourcc('R', 'W', '1', '6') /* Raw data 16-bit */ ++#define V4L2_PIX_FMT_INVZ v4l2_fourcc('I', 'N', 'V', 'Z') /* 16 Depth */ ++#define V4L2_PIX_FMT_INVR v4l2_fourcc('I', 'N', 'V', 'R') /* 16 Depth */ ++#define V4L2_PIX_FMT_INRI v4l2_fourcc('I', 'N', 'R', 'I') /* 24 Depth/IR 16:8 */ ++#define V4L2_PIX_FMT_INVI v4l2_fourcc('I', 'N', 'V', 'I') /* 8 IR */ ++#define V4L2_PIX_FMT_RELI v4l2_fourcc('R', 'E', 'L', 'I') /* 8 IR alternating on off illumination */ + + /* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */ + #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */ diff --git a/scripts/realsense-camera-formats_ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch b/scripts/realsense-camera-formats-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch similarity index 100% rename from scripts/realsense-camera-formats_ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch rename to scripts/realsense-camera-formats-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch diff --git a/scripts/realsense-camera-formats_ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch b/scripts/realsense-camera-formats-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch similarity index 67% rename from scripts/realsense-camera-formats_ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch rename to scripts/realsense-camera-formats-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch index 979e44bc4a2..b4d79185415 100644 --- a/scripts/realsense-camera-formats_ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch +++ b/scripts/realsense-camera-formats-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch @@ -1,9 +1,12 @@ -From 2fb29ac45b298b1dbea7fca174b6e8b7d22e4fb3 Mon Sep 17 00:00:00 2001 -From: administrator -Date: Sun, 4 Jun 2017 17:30:59 +0300 -Subject: [PATCH] RS4xx and ZR300 Pixel formats patch +From ceb29b08b480a2a6a5e9dccf396a284378268037 Mon Sep 17 00:00:00 2001 +From: aangerma +From: Evgeni Raikhel +From: icarpis -Signed-off-by: administrator +Date: Thu, 30 Aug 2018 16:07:01 +0300 +Subject: [PATCH] [PATCH] RS400 ,SR300, RS500 pixel formats + +Signed-off-by: Evgeni Raikhel --- drivers/media/usb/uvc/Makefile | 1 + drivers/media/usb/uvc/uvc_driver.c | 55 ++++++++++++++++++++++++++++++++++++ @@ -22,10 +25,10 @@ index c26d12f..d86cf22 100644 uvc_status.o uvc_isight.o uvc_debugfs.o ifeq ($(CONFIG_MEDIA_CONTROLLER),y) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c -index 9b8ac20..9d44f8e 100644 +index cde43b6..54bd175 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -168,6 +168,66 @@ static struct uvc_format_desc uvc_fmts[] = { +@@ -168,6 +168,103 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_RW10, .fcc = V4L2_PIX_FMT_SRGGB10P, }, @@ -88,23 +91,52 @@ index 9b8ac20..9d44f8e 100644 + .name = "16-bit Bayer BGBG/GRGR", + .guid = UVC_GUID_FORMAT_BAYER16, + .fcc = V4L2_PIX_FMT_SBGGR16, ++ }, ++ { ++ .name = "Packed raw data 10-bit", ++ .guid = UVC_GUID_FORMAT_W10, ++ .fcc = V4L2_PIX_FMT_W10, ++ }, ++ { ++ .name = "Confidence data (C )", ++ .guid = UVC_GUID_FORMAT_CONFIDENCE_MAP, ++ .fcc = V4L2_PIX_FMT_CONFIDENCE_MAP, ++ }, ++ /* FishEye 8-bit monochrome */ ++ { ++ .name = "Raw data 8-bit (RAW8)", ++ .guid = UVC_GUID_FORMAT_RAW8, ++ .fcc = V4L2_PIX_FMT_GREY, ++ }, ++ /* Legacy/Development formats for backward-compatibility*/ ++ { ++ .name = "Raw data 16-bit (RW16)", ++ .guid = UVC_GUID_FORMAT_RW16, ++ .fcc = V4L2_PIX_FMT_RW16, ++ }, ++ { ++ .name = "Frame Grabber (FG )", ++ .guid = UVC_GUID_FORMAT_FG, ++ .fcc = V4L2_PIX_FMT_FG, ++ }, ++ { ++ .name = "SR300 Depth/Confidence (INZC)", ++ .guid = UVC_GUID_FORMAT_INZC, ++ .fcc = V4L2_PIX_FMT_INZC, ++ }, ++ { ++ .name = "Relative IR (PAIR)", ++ .guid = UVC_GUID_FORMAT_PAIR, ++ .fcc = V4L2_PIX_FMT_PAIR, + }, }; /* ------------------------------------------------------------------------ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h -index 7e4d3ee..020dbb7 100644 +index 7e4d3ee..e517d8f 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -115,7 +115,6 @@ - #define UVC_GUID_FORMAT_M420 \ - { 'M', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \ - 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} -- - #define UVC_GUID_FORMAT_H264 \ - { 'H', '2', '6', '4', 0x00, 0x00, 0x10, 0x00, \ - 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} -@@ -131,6 +130,43 @@ +@@ -131,6 +131,57 @@ #define UVC_GUID_FORMAT_RW10 \ { 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} @@ -144,15 +176,29 @@ index 7e4d3ee..020dbb7 100644 +#define UVC_GUID_FORMAT_BAYER16 \ + { 'R', 'W', '1', '6', 0x66, 0x1a, 0x42, 0xa2, \ + 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} -+ ++#define UVC_GUID_FORMAT_W10 \ ++ { 'W', '1', '0', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_CONFIDENCE_MAP \ ++ { 'C', ' ', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_FG \ ++ { 'F', 'G', ' ', ' ', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} ++#define UVC_GUID_FORMAT_INZC \ ++ { 'I', 'N', 'Z', 'C', 0x02, 0xb6, 0x0f, 0x48, \ ++ 0x97, 0x8c, 0xe4, 0xe8, 0x8a, 0xe8, 0x9b, 0x89} ++#define UVC_GUID_FORMAT_PAIR \ ++ { 'P', 'A', 'I', 'R', 0x36, 0x85, 0x41, 0x48, \ ++ 0xb6, 0xbf, 0x8f, 0xc6, 0xff, 0xb0, 0x83, 0xa8} /* ------------------------------------------------------------------------ * Driver specific constants. diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 7486af2..124dd35 100644 +index 51a0fa1..391c2b3 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1229,6 +1229,11 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1243,6 +1243,16 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_SDR_FMT_CS8: descr = "Complex S8"; break; case V4L2_SDR_FMT_CS14LE: descr = "Complex S14LE"; break; case V4L2_SDR_FMT_RU12LE: descr = "Real U12LE"; break; @@ -161,14 +207,19 @@ index 7486af2..124dd35 100644 + case V4L2_PIX_FMT_Z16: descr = "16-bit Depth data"; break; + case V4L2_PIX_FMT_RW16: descr = "16-bit Raw data"; break; + case V4L2_PIX_FMT_INZI: descr = "32-bit IR:Depth 10:16"; break; ++ case V4L2_PIX_FMT_W10: descr = "10-bit packed 8888[2222]"; break; ++ case V4L2_PIX_FMT_CONFIDENCE_MAP: descr = "4-bit per pixel packed"; break; ++ case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; ++ case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; ++ case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; default: /* Compressed formats */ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 421d274..c41b5c0 100644 +index 724f43e..29bcba5 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h -@@ -624,6 +624,12 @@ struct v4l2_pix_format { +@@ -627,6 +627,18 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ @@ -178,6 +229,12 @@ index 421d274..c41b5c0 100644 +#define V4L2_PIX_FMT_INVR v4l2_fourcc('I', 'N', 'V', 'R') /* 16 Depth */ +#define V4L2_PIX_FMT_INRI v4l2_fourcc('I', 'N', 'R', 'I') /* 24 Depth/IR 16:8 */ +#define V4L2_PIX_FMT_RELI v4l2_fourcc('R', 'E', 'L', 'I') /* 8 IR alternating on off illumination */ ++#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ ++#define V4L2_PIX_FMT_CONFIDENCE_MAP v4l2_fourcc('C', ' ', ' ', ' ') /* Two pixels in one byte */ ++/* Librealsense development*/ ++#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ ++#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ ++#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ diff --git a/scripts/realsense-camera-formats_ubuntu-xenial-hwe-zesty.patch b/scripts/realsense-camera-formats-xenial-hwe-zesty.patch similarity index 100% rename from scripts/realsense-camera-formats_ubuntu-xenial-hwe-zesty.patch rename to scripts/realsense-camera-formats-xenial-hwe-zesty.patch diff --git a/scripts/realsense-camera-formats_ubuntu-xenial-hwe.patch b/scripts/realsense-camera-formats-xenial-hwe.patch similarity index 91% rename from scripts/realsense-camera-formats_ubuntu-xenial-hwe.patch rename to scripts/realsense-camera-formats-xenial-hwe.patch index 03926ba7bfa..684af469a3f 100644 --- a/scripts/realsense-camera-formats_ubuntu-xenial-hwe.patch +++ b/scripts/realsense-camera-formats-xenial-hwe.patch @@ -27,7 +27,7 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 28b91b7..a262064 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -203,6 +203,58 @@ static struct uvc_format_desc uvc_fmts[] = { +@@ -203,6 +203,63 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_INZI, .fcc = V4L2_PIX_FMT_INZI, }, @@ -82,6 +82,11 @@ index 28b91b7..a262064 100644 + .name = "Relative IR (PAIR)", + .guid = UVC_GUID_FORMAT_PAIR, + .fcc = V4L2_PIX_FMT_PAIR, ++ }, ++ { ++ .name = "Z16 Huffman Compression", ++ .guid = UVC_GUID_FORMAT_Z16H, ++ .fcc = V4L2_PIX_FMT_Z16H, + }, }; @@ -90,7 +95,7 @@ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 0539878..401882d 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -153,6 +153,40 @@ +@@ -153,6 +153,43 @@ #define UVC_GUID_FORMAT_INVI \ { 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \ 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f} @@ -128,6 +133,9 @@ index 0539878..401882d 100644 +#define UVC_GUID_FORMAT_PAIR \ + { 'P', 'A', 'I', 'R', 0x36, 0x85, 0x41, 0x48, \ + 0xb6, 0xbf, 0x8f, 0xc6, 0xff, 0xb0, 0x83, 0xa8} ++#define UVC_GUID_FORMAT_Z16H \ ++ { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} /* ------------------------------------------------------------------------ * Driver specific constants. @@ -135,7 +143,7 @@ diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2 index 89e0878..b584ff1 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1246,7 +1246,13 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1246,7 +1246,14 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_TCH_FMT_TU08: descr = "8-bit unsigned touch data"; break; case V4L2_META_FMT_VSP1_HGO: descr = "R-Car VSP1 1-D Histogram"; break; case V4L2_META_FMT_VSP1_HGT: descr = "R-Car VSP1 2-D Histogram"; break; @@ -147,6 +155,7 @@ index 89e0878..b584ff1 100644 + case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; + case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; + case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; ++ case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; default: /* Compressed formats */ flags = V4L2_FMT_FLAG_COMPRESSED; @@ -154,7 +163,7 @@ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 1c095b5..959bf0b 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h -@@ -668,6 +668,14 @@ struct v4l2_pix_format { +@@ -668,6 +668,15 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ @@ -166,6 +175,7 @@ index 1c095b5..959bf0b 100644 +#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ +#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ +#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ diff --git a/scripts/realsense-camera-formats_ubuntu-xenial-master.patch b/scripts/realsense-camera-formats-xenial-master.patch similarity index 90% rename from scripts/realsense-camera-formats_ubuntu-xenial-master.patch rename to scripts/realsense-camera-formats-xenial-master.patch index 703d72b83ab..ba7c5b5fdc4 100644 --- a/scripts/realsense-camera-formats_ubuntu-xenial-master.patch +++ b/scripts/realsense-camera-formats-xenial-master.patch @@ -31,7 +31,7 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 4a07535..ac186a7 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -168,6 +168,92 @@ static struct uvc_format_desc uvc_fmts[] = { +@@ -168,6 +168,97 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_RW10, .fcc = V4L2_PIX_FMT_SRGGB10P, }, @@ -120,6 +120,11 @@ index 4a07535..ac186a7 100644 + .name = "Relative IR (PAIR)", + .guid = UVC_GUID_FORMAT_PAIR, + .fcc = V4L2_PIX_FMT_PAIR, ++ }, ++ { ++ .name = "Z16 Huffman Compression", ++ .guid = UVC_GUID_FORMAT_Z16H, ++ .fcc = V4L2_PIX_FMT_Z16H, + }, }; @@ -128,7 +133,7 @@ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 7e4d3ee..24904e2 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -131,6 +131,57 @@ +@@ -131,6 +131,60 @@ #define UVC_GUID_FORMAT_RW10 \ { 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} @@ -183,6 +188,9 @@ index 7e4d3ee..24904e2 100644 +#define UVC_GUID_FORMAT_PAIR \ + { 'P', 'A', 'I', 'R', 0x36, 0x85, 0x41, 0x48, \ + 0xb6, 0xbf, 0x8f, 0xc6, 0xff, 0xb0, 0x83, 0xa8} ++#define UVC_GUID_FORMAT_Z16H \ ++ { 'Z', '1', '6', 'H', 0x00, 0x00, 0x10, 0x00, \ ++ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} /* ------------------------------------------------------------------------ * Driver specific constants. @@ -190,7 +198,7 @@ diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2 index 5e2a7e5..7ac69b3 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1229,6 +1229,16 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1229,6 +1229,17 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_SDR_FMT_CS8: descr = "Complex S8"; break; case V4L2_SDR_FMT_CS14LE: descr = "Complex S14LE"; break; case V4L2_SDR_FMT_RU12LE: descr = "Real U12LE"; break; @@ -204,6 +212,7 @@ index 5e2a7e5..7ac69b3 100644 + case V4L2_PIX_FMT_FG: descr = "Frame Grabber (FG )"; break; + case V4L2_PIX_FMT_INZC: descr = "Planar Depth/Confidence (INZC)"; break; + case V4L2_PIX_FMT_PAIR: descr = "Relative IR (PAIR)"; break; ++ case V4L2_PIX_FMT_Z16H: descr = "Z16 Huffman Compression"; break; default: /* Compressed formats */ @@ -211,7 +220,7 @@ diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 421d274..c17b625 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h -@@ -624,6 +624,18 @@ struct v4l2_pix_format { +@@ -624,6 +624,19 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y8I v4l2_fourcc('Y', '8', 'I', ' ') /* Greyscale 8-bit L/R interleaved */ #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ @@ -224,9 +233,10 @@ index 421d274..c17b625 100644 +#define V4L2_PIX_FMT_W10 v4l2_fourcc('W', '1', '0', ' ') /* Packed raw data 10-bit */ +#define V4L2_PIX_FMT_CONFIDENCE_MAP v4l2_fourcc('C', ' ', ' ', ' ') /* Two pixels in one byte */ +/* Librealsense development*/ -+#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ -+#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ -+#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_FG v4l2_fourcc('F', 'G', ' ', ' ') /* Frame Grabber */ ++#define V4L2_PIX_FMT_INZC v4l2_fourcc('I', 'N', 'Z', 'C') /* Planar Depth/Confidence */ ++#define V4L2_PIX_FMT_PAIR v4l2_fourcc('P', 'A', 'I', 'R') /* Relative IR */ ++#define V4L2_PIX_FMT_Z16H v4l2_fourcc('Z', '1', '6', 'H') /* Depth Z16 custom Huffman Code compression*/ /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ diff --git a/scripts/realsense-hid-bionic-5.patch b/scripts/realsense-hid-bionic-5.patch new file mode 100644 index 00000000000..4f6e56f9034 --- /dev/null +++ b/scripts/realsense-hid-bionic-5.patch @@ -0,0 +1,110 @@ +From b71db4bf053f68821f70bb1b5c5ec9a7e049e501 Mon Sep 17 00:00:00 2001 +From: Evgeni +Date: Mon, 1 Apr 2019 16:11:59 +0300 +Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. + Ubuntu 18.04 Bionic Beaver with Kernel 4.18 + A symmetric patch for Accelerator was already upstreamed, + this patch was skipped from upstream + The patch was written by Srinivas Pandruvada + Additionally, timestamp conversion is fixed + + +Signed-off-by: Evgeni +--- + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + drivers/iio/gyro/hid-sensor-gyro-3d.c | 31 ++++++++++++++++++------- + 2 files changed, 24 insertions(+), 8 deletions(-) + +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index 41d97faf5..5f5c31a94 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -286,6 +286,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; +diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c +index 36941e69f..13ce56630 100644 +--- a/drivers/iio/gyro/hid-sensor-gyro-3d.c ++++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c +@@ -42,11 +42,13 @@ struct gyro_3d_state { + struct hid_sensor_hub_callbacks callbacks; + struct hid_sensor_common common_attributes; + struct hid_sensor_hub_attribute_info gyro[GYRO_3D_CHANNEL_MAX]; +- u32 gyro_val[GYRO_3D_CHANNEL_MAX]; ++ /* Reserve for 3 channels + padding + timestamp */ ++ u32 gyro_val[GYRO_3D_CHANNEL_MAX + 3]; + int scale_pre_decml; + int scale_post_decml; + int scale_precision; + int value_offset; ++ int64_t timestamp; + }; + + static const u32 gyro_3d_addresses[GYRO_3D_CHANNEL_MAX] = { +@@ -87,7 +89,8 @@ static const struct iio_chan_spec gyro_3d_channels[] = { + BIT(IIO_CHAN_INFO_SAMP_FREQ) | + BIT(IIO_CHAN_INFO_HYSTERESIS), + .scan_index = CHANNEL_SCAN_INDEX_Z, +- } ++ }, ++ IIO_CHAN_SOFT_TIMESTAMP(3) + }; + + /* Adjust channel real bits based on report descriptor */ +@@ -191,11 +194,11 @@ static const struct iio_info gyro_3d_info = { + }; + + /* Function to push data to buffer */ +-static void hid_sensor_push_data(struct iio_dev *indio_dev, const void *data, +- int len) ++static void hid_sensor_push_data(struct iio_dev *indio_dev, void *data, ++ int len, int64_t timestamp) + { + dev_dbg(&indio_dev->dev, "hid_sensor_push_data\n"); +- iio_push_to_buffers(indio_dev, data); ++ iio_push_to_buffers_with_timestamp(indio_dev, data, timestamp); + } + + /* Callback handler to send event after all samples are received and captured */ +@@ -207,11 +210,16 @@ static int gyro_3d_proc_event(struct hid_sensor_hub_device *hsdev, + struct gyro_3d_state *gyro_state = iio_priv(indio_dev); + + dev_dbg(&indio_dev->dev, "gyro_3d_proc_event\n"); +- if (atomic_read(&gyro_state->common_attributes.data_ready)) ++ if (atomic_read(&gyro_state->common_attributes.data_ready)) { ++ if (!gyro_state->timestamp) ++ gyro_state->timestamp = iio_get_time_ns(indio_dev); ++ + hid_sensor_push_data(indio_dev, + gyro_state->gyro_val, +- sizeof(gyro_state->gyro_val)); +- ++ sizeof(gyro_state->gyro_val), ++ gyro_state->timestamp); ++ gyro_state->timestamp = 0; ++ } + return 0; + } + +@@ -235,6 +243,13 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + *(u32 *)raw_data; + ret = 0; + break; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); ++ ret = 0; ++ break; + default: + break; + } +-- +2.17.1 + diff --git a/scripts/realsense-hid-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch b/scripts/realsense-hid-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch new file mode 100644 index 00000000000..4f6e56f9034 --- /dev/null +++ b/scripts/realsense-hid-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch @@ -0,0 +1,110 @@ +From b71db4bf053f68821f70bb1b5c5ec9a7e049e501 Mon Sep 17 00:00:00 2001 +From: Evgeni +Date: Mon, 1 Apr 2019 16:11:59 +0300 +Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. + Ubuntu 18.04 Bionic Beaver with Kernel 4.18 + A symmetric patch for Accelerator was already upstreamed, + this patch was skipped from upstream + The patch was written by Srinivas Pandruvada + Additionally, timestamp conversion is fixed + + +Signed-off-by: Evgeni +--- + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + drivers/iio/gyro/hid-sensor-gyro-3d.c | 31 ++++++++++++++++++------- + 2 files changed, 24 insertions(+), 8 deletions(-) + +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index 41d97faf5..5f5c31a94 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -286,6 +286,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; +diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c +index 36941e69f..13ce56630 100644 +--- a/drivers/iio/gyro/hid-sensor-gyro-3d.c ++++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c +@@ -42,11 +42,13 @@ struct gyro_3d_state { + struct hid_sensor_hub_callbacks callbacks; + struct hid_sensor_common common_attributes; + struct hid_sensor_hub_attribute_info gyro[GYRO_3D_CHANNEL_MAX]; +- u32 gyro_val[GYRO_3D_CHANNEL_MAX]; ++ /* Reserve for 3 channels + padding + timestamp */ ++ u32 gyro_val[GYRO_3D_CHANNEL_MAX + 3]; + int scale_pre_decml; + int scale_post_decml; + int scale_precision; + int value_offset; ++ int64_t timestamp; + }; + + static const u32 gyro_3d_addresses[GYRO_3D_CHANNEL_MAX] = { +@@ -87,7 +89,8 @@ static const struct iio_chan_spec gyro_3d_channels[] = { + BIT(IIO_CHAN_INFO_SAMP_FREQ) | + BIT(IIO_CHAN_INFO_HYSTERESIS), + .scan_index = CHANNEL_SCAN_INDEX_Z, +- } ++ }, ++ IIO_CHAN_SOFT_TIMESTAMP(3) + }; + + /* Adjust channel real bits based on report descriptor */ +@@ -191,11 +194,11 @@ static const struct iio_info gyro_3d_info = { + }; + + /* Function to push data to buffer */ +-static void hid_sensor_push_data(struct iio_dev *indio_dev, const void *data, +- int len) ++static void hid_sensor_push_data(struct iio_dev *indio_dev, void *data, ++ int len, int64_t timestamp) + { + dev_dbg(&indio_dev->dev, "hid_sensor_push_data\n"); +- iio_push_to_buffers(indio_dev, data); ++ iio_push_to_buffers_with_timestamp(indio_dev, data, timestamp); + } + + /* Callback handler to send event after all samples are received and captured */ +@@ -207,11 +210,16 @@ static int gyro_3d_proc_event(struct hid_sensor_hub_device *hsdev, + struct gyro_3d_state *gyro_state = iio_priv(indio_dev); + + dev_dbg(&indio_dev->dev, "gyro_3d_proc_event\n"); +- if (atomic_read(&gyro_state->common_attributes.data_ready)) ++ if (atomic_read(&gyro_state->common_attributes.data_ready)) { ++ if (!gyro_state->timestamp) ++ gyro_state->timestamp = iio_get_time_ns(indio_dev); ++ + hid_sensor_push_data(indio_dev, + gyro_state->gyro_val, +- sizeof(gyro_state->gyro_val)); +- ++ sizeof(gyro_state->gyro_val), ++ gyro_state->timestamp); ++ gyro_state->timestamp = 0; ++ } + return 0; + } + +@@ -235,6 +243,13 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + *(u32 *)raw_data; + ret = 0; + break; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); ++ ret = 0; ++ break; + default: + break; + } +-- +2.17.1 + diff --git a/scripts/realsense-hid-ubuntu-xenial-hwe.patch b/scripts/realsense-hid-bionic-master.patch similarity index 75% rename from scripts/realsense-hid-ubuntu-xenial-hwe.patch rename to scripts/realsense-hid-bionic-master.patch index 66a74d557fa..dceffe49b79 100644 --- a/scripts/realsense-hid-ubuntu-xenial-hwe.patch +++ b/scripts/realsense-hid-bionic-master.patch @@ -8,12 +8,27 @@ Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. A symmetric patch for Accelerator was already upstreamed, this patch was skipped from upstream The patch was written by Srinivas Pandruvada + Additionally, timestamp management is fixed + --- - drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 ++++++++++++++++++++------- - 1 file changed, 21 insertions(+), 7 deletions(-) + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + drivers/iio/gyro/hid-sensor-gyro-3d.c | 31 ++++++++++++++++++++++++------- + 2 files changed, 25 insertions(+), 7 deletions(-) +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index c066a3b..3346631 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -286,6 +286,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c -index f59995a90..e3f2a8357 100644 +index f59995a..98cec98 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -42,11 +42,13 @@ struct gyro_3d_state { @@ -76,17 +91,21 @@ index f59995a90..e3f2a8357 100644 return 0; } -@@ -235,6 +245,10 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, +@@ -235,6 +245,13 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, *(u32 *)raw_data; ret = 0; break; + case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); + ret = 0; + break; default: break; } -- -2.17.0 +2.7.4 + diff --git a/scripts/realsense-hid-ubuntu-xenial-v4.16.patch b/scripts/realsense-hid-ubuntu-xenial-v4.16.patch index 66a74d557fa..7096cb7f35a 100644 --- a/scripts/realsense-hid-ubuntu-xenial-v4.16.patch +++ b/scripts/realsense-hid-ubuntu-xenial-v4.16.patch @@ -9,11 +9,11 @@ Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. this patch was skipped from upstream The patch was written by Srinivas Pandruvada --- - drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 ++++++++++++++++++++------- - 1 file changed, 21 insertions(+), 7 deletions(-) + drivers/iio/gyro/hid-sensor-gyro-3d.c | 30 +++++++++++++++++++++++------- + 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c -index f59995a90..e3f2a8357 100644 +index f59995a..a4a5e9c 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -42,11 +42,13 @@ struct gyro_3d_state { @@ -76,17 +76,19 @@ index f59995a90..e3f2a8357 100644 return 0; } -@@ -235,6 +245,10 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, +@@ -235,6 +245,12 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, *(u32 *)raw_data; ret = 0; break; + case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; -+ ret = 0; ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); + break; default: break; } -- -2.17.0 +2.7.4 diff --git a/scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch b/scripts/realsense-hid-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch similarity index 74% rename from scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch rename to scripts/realsense-hid-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch index 9baf4e28728..b07b21d7c12 100644 --- a/scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch +++ b/scripts/realsense-hid-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch @@ -1,17 +1,32 @@ From 5ef00171f95a150a912f1d14645bcae25df203c9 Mon Sep 17 00:00:00 2001 From: Srinivas Pandruvada +From: Evgeni Raikhel Date: Tue, 13 Feb 2018 12:06:44 +0200 Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. A symmetric patch for Accelerator was already upstreamed, this patch was skipped from upstream The patch was written by Srinivas Pandruvada + Additionally, timestamp management is fixed --- - drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 +++++++++++++++++++++------- - 1 file changed, 21 insertions(+), 7 deletions(-) + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + drivers/iio/gyro/hid-sensor-gyro-3d.c | 31 ++++++++++++++++++++++++------- + 2 files changed, 25 insertions(+), 7 deletions(-) +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index 2238a26..bbbd268 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -287,6 +287,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c -index c67ce2a..7ff0dfe 100644 +index c67ce2a..7ffa8d6 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -42,11 +42,13 @@ struct gyro_3d_state { @@ -27,7 +42,7 @@ index c67ce2a..7ff0dfe 100644 int value_offset; + int64_t timestamp; }; - + static const u32 gyro_3d_addresses[GYRO_3D_CHANNEL_MAX] = { @@ -87,7 +89,8 @@ static const struct iio_chan_spec gyro_3d_channels[] = { BIT(IIO_CHAN_INFO_SAMP_FREQ) | @@ -37,11 +52,11 @@ index c67ce2a..7ff0dfe 100644 + }, + IIO_CHAN_SOFT_TIMESTAMP(3) }; - + /* Adjust channel real bits based on report descriptor */ @@ -192,11 +195,11 @@ static const struct iio_info gyro_3d_info = { }; - + /* Function to push data to buffer */ -static void hid_sensor_push_data(struct iio_dev *indio_dev, const void *data, - int len) @@ -52,11 +67,11 @@ index c67ce2a..7ff0dfe 100644 - iio_push_to_buffers(indio_dev, data); + iio_push_to_buffers_with_timestamp(indio_dev, data, timestamp); } - + /* Callback handler to send event after all samples are received and captured */ @@ -208,10 +211,17 @@ static int gyro_3d_proc_event(struct hid_sensor_hub_device *hsdev, struct gyro_3d_state *gyro_state = iio_priv(indio_dev); - + dev_dbg(&indio_dev->dev, "gyro_3d_proc_event\n"); - if (atomic_read(&gyro_state->common_attributes.data_ready)) + if (atomic_read(&gyro_state->common_attributes.data_ready)) { @@ -74,17 +89,20 @@ index c67ce2a..7ff0dfe 100644 return 0; } -@@ -236,6 +246,10 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, +@@ -236,6 +246,13 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, *(u32 *)raw_data; ret = 0; break; + case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); + ret = 0; + break; default: break; } --- +-- 2.7.4 diff --git a/scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch b/scripts/realsense-hid-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch similarity index 79% rename from scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch rename to scripts/realsense-hid-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch index 007c5677617..bec11b3ef80 100644 --- a/scripts/realsense-hid-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch +++ b/scripts/realsense-hid-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch @@ -1,5 +1,22 @@ +From 5ef00171f95a150a912f1d14645bcae25df203c9 Mon Sep 17 00:00:00 2001 +From: Srinivas Pandruvada +From: Evgeni Raikhel +Date: Tue, 13 Feb 2018 12:06:44 +0200 +Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. + A symmetric patch for Accelerator was already upstreamed, + this patch was skipped from upstream + The patch was written by Srinivas Pandruvada + The version tag has been added to accel module so it will be also replaced regardless + of the target kernel version + +--- + drivers/iio/accel/hid-sensor-accel-3d.c | 30 ++++++++++++++++++++++-------- + drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 +++++++++++++++++++++------- + include/linux/hid-sensor-ids.h | 1 + + 3 files changed, 44 insertions(+), 15 deletions(-) + diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c -index ab1e238..28262c4 100644 +index ab1e238..15b55a3 100644 --- a/drivers/iio/accel/hid-sensor-accel-3d.c +++ b/drivers/iio/accel/hid-sensor-accel-3d.c @@ -42,11 +42,13 @@ struct accel_3d_state { @@ -47,14 +64,13 @@ index ab1e238..28262c4 100644 dev_dbg(&indio_dev->dev, "accel_3d_proc_event\n"); - if (atomic_read(&accel_state->common_attributes.data_ready)) -- hid_sensor_push_data(indio_dev, -- accel_state->accel_val, -- sizeof(accel_state->accel_val)); + if (atomic_read(&accel_state->common_attributes.data_ready)) { + if (!accel_state->timestamp) + accel_state->timestamp = iio_get_time_ns(indio_dev); + -+ hid_sensor_push_data(indio_dev, + hid_sensor_push_data(indio_dev, +- accel_state->accel_val, +- sizeof(accel_state->accel_val)); + accel_state->accel_val, + sizeof(accel_state->accel_val), + accel_state->timestamp); @@ -68,15 +84,15 @@ index ab1e238..28262c4 100644 *(u32 *)raw_data; ret = 0; break; -+ case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ accel_state->timestamp = *(int64_t *)raw_data; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: // usec->nsec ++ accel_state->timestamp = (*(int64_t *)raw_data)*1000; + ret = 0; + break; default: break; } diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c -index c67ce2a..f45c5a2 100644 +index c67ce2a..859cdde 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -42,11 +42,13 @@ struct gyro_3d_state { @@ -92,7 +108,7 @@ index c67ce2a..f45c5a2 100644 int value_offset; + int64_t timestamp; }; - + static const u32 gyro_3d_addresses[GYRO_3D_CHANNEL_MAX] = { @@ -87,7 +89,8 @@ static const struct iio_chan_spec gyro_3d_channels[] = { BIT(IIO_CHAN_INFO_SAMP_FREQ) | @@ -102,11 +118,11 @@ index c67ce2a..f45c5a2 100644 + }, + IIO_CHAN_SOFT_TIMESTAMP(3) }; - + /* Adjust channel real bits based on report descriptor */ @@ -192,11 +195,11 @@ static const struct iio_info gyro_3d_info = { }; - + /* Function to push data to buffer */ -static void hid_sensor_push_data(struct iio_dev *indio_dev, const void *data, - int len) @@ -117,11 +133,11 @@ index c67ce2a..f45c5a2 100644 - iio_push_to_buffers(indio_dev, data); + iio_push_to_buffers_with_timestamp(indio_dev, data, timestamp); } - + /* Callback handler to send event after all samples are received and captured */ @@ -208,10 +211,17 @@ static int gyro_3d_proc_event(struct hid_sensor_hub_device *hsdev, struct gyro_3d_state *gyro_state = iio_priv(indio_dev); - + dev_dbg(&indio_dev->dev, "gyro_3d_proc_event\n"); - if (atomic_read(&gyro_state->common_attributes.data_ready)) + if (atomic_read(&gyro_state->common_attributes.data_ready)) { @@ -129,30 +145,29 @@ index c67ce2a..f45c5a2 100644 + gyro_state->timestamp = iio_get_time_ns(indio_dev); + hid_sensor_push_data(indio_dev, -- gyro_state->gyro_val, + gyro_state->gyro_val, - sizeof(gyro_state->gyro_val)); -+ gyro_state->gyro_val, -+ sizeof(gyro_state->gyro_val), -+ gyro_state->timestamp); ++ sizeof(gyro_state->gyro_val), ++ gyro_state->timestamp); + + gyro_state->timestamp = 0; + } - + return 0; } @@ -236,6 +246,10 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, *(u32 *)raw_data; ret = 0; break; -+ case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: // usec->nsec ++ gyro_state->timestamp = (*(int64_t *)raw_data)*1000; + ret = 0; + break; default: break; } diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h -index f2ee90a..9a3a9db 100644 +index f2ee90a..063aa1f 100644 --- a/include/linux/hid-sensor-ids.h +++ b/include/linux/hid-sensor-ids.h @@ -95,6 +95,7 @@ @@ -160,6 +175,8 @@ index f2ee90a..9a3a9db 100644 #define HID_USAGE_SENSOR_TIME_MINUTE 0x200526 #define HID_USAGE_SENSOR_TIME_SECOND 0x200527 +#define HID_USAGE_SENSOR_TIME_TIMESTAMP 0x200529 - + /* Units */ #define HID_USAGE_SENSOR_UNITS_NOT_SPECIFIED 0x00 +-- +2.7.4 diff --git a/scripts/realsense-hid-ubuntu-xenial-hwe-zesty.patch b/scripts/realsense-hid-xenial-hwe-zesty.patch similarity index 98% rename from scripts/realsense-hid-ubuntu-xenial-hwe-zesty.patch rename to scripts/realsense-hid-xenial-hwe-zesty.patch index 9baf4e28728..394876439a5 100644 --- a/scripts/realsense-hid-ubuntu-xenial-hwe-zesty.patch +++ b/scripts/realsense-hid-xenial-hwe-zesty.patch @@ -79,7 +79,7 @@ index c67ce2a..7ff0dfe 100644 ret = 0; break; + case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ gyro_state->timestamp = (*(int64_t *)raw_data)*1000; + ret = 0; + break; default: diff --git a/scripts/realsense-hid-ubuntu-bionic-master.patch b/scripts/realsense-hid-xenial-hwe.patch similarity index 74% rename from scripts/realsense-hid-ubuntu-bionic-master.patch rename to scripts/realsense-hid-xenial-hwe.patch index 66a74d557fa..b539edd98c1 100644 --- a/scripts/realsense-hid-ubuntu-bionic-master.patch +++ b/scripts/realsense-hid-xenial-hwe.patch @@ -4,16 +4,31 @@ From: Evgeni Date: Sun, 13 May 2018 10:49:26 -0400 Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. - Ubuntu 18.04 Bionic Beaver with KErnel 4.15 + Ubuntu 18.04 Bionic Beaver with Kernel 4.15 A symmetric patch for Accelerator was already upstreamed, this patch was skipped from upstream The patch was written by Srinivas Pandruvada + Additionally, timestamp management is fixed + --- - drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 ++++++++++++++++++++------- - 1 file changed, 21 insertions(+), 7 deletions(-) + drivers/iio/accel/hid-sensor-accel-3d.c | 1 + + drivers/iio/gyro/hid-sensor-gyro-3d.c | 31 ++++++++++++++++++++++++------- + 2 files changed, 25 insertions(+), 7 deletions(-) +diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c +index c066a3b..3346631 100644 +--- a/drivers/iio/accel/hid-sensor-accel-3d.c ++++ b/drivers/iio/accel/hid-sensor-accel-3d.c +@@ -286,6 +286,7 @@ static int accel_3d_capture_sample(struct hid_sensor_hub_device *hsdev, + hid_sensor_convert_timestamp( + &accel_state->common_attributes, + *(int64_t *)raw_data); ++ ret = 0; + break; + default: + break; diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c -index f59995a90..e3f2a8357 100644 +index f59995a..98cec98 100644 --- a/drivers/iio/gyro/hid-sensor-gyro-3d.c +++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c @@ -42,11 +42,13 @@ struct gyro_3d_state { @@ -76,17 +91,21 @@ index f59995a90..e3f2a8357 100644 return 0; } -@@ -235,6 +245,10 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, +@@ -235,6 +245,13 @@ static int gyro_3d_capture_sample(struct hid_sensor_hub_device *hsdev, *(u32 *)raw_data; ret = 0; break; + case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ gyro_state->timestamp = ++ hid_sensor_convert_timestamp( ++ &gyro_state->common_attributes, ++ *(int64_t *)raw_data); + ret = 0; + break; default: break; } -- -2.17.0 +2.7.4 + diff --git a/scripts/realsense-hid-ubuntu-xenial-master.patch b/scripts/realsense-hid-xenial-master.patch similarity index 85% rename from scripts/realsense-hid-ubuntu-xenial-master.patch rename to scripts/realsense-hid-xenial-master.patch index e258e11d1d5..a81db305163 100644 --- a/scripts/realsense-hid-ubuntu-xenial-master.patch +++ b/scripts/realsense-hid-xenial-master.patch @@ -1,3 +1,18 @@ +From 5ef00171f95a150a912f1d14645bcae25df203c9 Mon Sep 17 00:00:00 2001 +From: Srinivas Pandruvada +From: Evgeni Raikhel +Date: Tue, 13 Feb 2018 12:06:44 +0200 +Subject: [PATCH] Adding missing HID timestamp patch for Gyro sensor. + A symmetric patch for Accelerator was already upstreamed, + this patch was skipped from upstream + The patch was written by Srinivas Pandruvada + Additionally, timestamp management is fixed + +--- + drivers/iio/gyro/hid-sensor-gyro-3d.c | 28 ++++++++++++++++++++------- + drivers/iio/gyro/hid-sensor-accel-3d.c | 28 ++++++++++++++++++++------- + 2 file changed, 56 insertions(+), 14 deletions(-) + diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c index ab1e238..28262c4 100644 --- a/drivers/iio/accel/hid-sensor-accel-3d.c @@ -68,8 +83,8 @@ index ab1e238..28262c4 100644 *(u32 *)raw_data; ret = 0; break; -+ case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ accel_state->timestamp = *(int64_t *)raw_data; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: // usec->nsec ++ accel_state->timestamp = (*(int64_t *)raw_data)*1000; + ret = 0; + break; default: @@ -144,8 +159,8 @@ index c67ce2a..f45c5a2 100644 *(u32 *)raw_data; ret = 0; break; -+ case HID_USAGE_SENSOR_TIME_TIMESTAMP: -+ gyro_state->timestamp = *(int64_t *)raw_data; ++ case HID_USAGE_SENSOR_TIME_TIMESTAMP: // usec->nsec ++ gyro_state->timestamp = (*(int64_t *)raw_data)*1000; + ret = 0; + break; default: diff --git a/scripts/realsense-metadata-bionic-5.patch b/scripts/realsense-metadata-bionic-5.patch new file mode 100644 index 00000000000..f3d2a387223 --- /dev/null +++ b/scripts/realsense-metadata-bionic-5.patch @@ -0,0 +1,263 @@ +Signed-off-by: Evgeni +From 69225e1b8b955cefdc9dd8bdccb43b3c78697e9b Mon Sep 17 00:00:00 2001 +From: Evgeni Raikhel +Date: Mon, 24 Jun 2019 15:53:44 +0300 +Subject: [PATCH] Enabling UVC Metadata attributes with Ubuntu 18.04. Kernel 5.0 + +--- + drivers/media/usb/uvc/uvc_driver.c | 207 +++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvcvideo.h | 2 +- + 2 files changed, 208 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c +index a7b76c987..26c1b0cf5 100644 +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -2906,6 +2906,231 @@ static const struct usb_device_id uvc_ids[] = { + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D400/PSR depth camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad1, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D410/ASR depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D415/ASRC depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad3, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430/AWG depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad4, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D450/AWGT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* USB2 Descriptor, Depth Sensor */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad6, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D420/PWG depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af6, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D420_MM/PWGT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0afe, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D410_MM/ASRT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aff, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D400_MM/PSRT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b00, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430_MM/AWGCT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b01, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D460/DS5U depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b03, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D435/AWGC depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b07, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D405 S depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel L500 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) }, + /* Generic USB Video Class */ + { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) }, + { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) }, +diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h +index 4b88f31f5..98dde695f 100644 +--- a/drivers/media/usb/uvc/uvcvideo.h ++++ b/drivers/media/usb/uvc/uvcvideo.h +@@ -196,7 +196,7 @@ + /* Maximum number of packets per URB. */ + #define UVC_MAX_PACKETS 32 + /* Maximum status buffer size in bytes of interrupt URB. */ +-#define UVC_MAX_STATUS_SIZE 16 ++#define UVC_MAX_STATUS_SIZE 32 + + #define UVC_CTRL_CONTROL_TIMEOUT 500 + #define UVC_CTRL_STREAMING_TIMEOUT 5000 +-- +2.17.1 + diff --git a/scripts/realsense-metadata-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch b/scripts/realsense-metadata-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch new file mode 100644 index 00000000000..b059cb94475 --- /dev/null +++ b/scripts/realsense-metadata-bionic-Ubuntu-hwe-4.18.0-25.26_18.04.1.patch @@ -0,0 +1,284 @@ +From 2be737f3c795751dcab548e0d8dbd7b1c2c89a49 Mon Sep 17 00:00:00 2001 +From: Evgeni +Date: Mon, 1 Apr 2019 15:54:03 +0300 +Subject: [PATCH] Enabling UVC Metadata attributes with Ubuntu 18.04. Kernel 4.18 + +Signed-off-by: Evgeni +--- + drivers/media/usb/uvc/uvc_driver.c | 172 +++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvcvideo.h | 2 +- + include/uapi/linux/videodev2.h | 1 + + 3 files changed, 174 insertions(+), 1 deletion(-) + +diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c +index 8e1382013..880765a5e 100644 +--- a/drivers/media/usb/uvc/uvc_driver.c ++++ b/drivers/media/usb/uvc/uvc_driver.c +@@ -2340,6 +2340,8 @@ static const struct uvc_device_info uvc_quirk_force_y8 = { + }; + + #define UVC_QUIRK_INFO(q) (kernel_ulong_t)&(struct uvc_device_info){.quirks = q} ++#define UVC_QUIRK_META(m) (kernel_ulong_t)&(struct uvc_device_info) \ ++ {.meta_format = m} + + /* + * The Logitech cameras listed below have their interface class set to +@@ -2813,6 +2815,231 @@ static const struct usb_device_id uvc_ids[] = { + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8 }, ++ /* Intel D400/PSR depth camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad1, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D410/ASR depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D415/ASRC depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad3, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430/AWG depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad4, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D450/AWGT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* USB2 Descriptor, Depth Sensor */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad6, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D420/PWG depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af6, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D420_MM/PWGT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0afe, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D410_MM/ASRT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aff, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D400_MM/PSRT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b00, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430_MM/AWGCT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b01, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D460/DS5U depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b03, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D435/AWGC depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b07, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D405 S depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel L500 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, + /* Generic USB Video Class */ + { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) }, + { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) }, +diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h +index be5cf1792..42c82f3d3 100644 +--- a/drivers/media/usb/uvc/uvcvideo.h ++++ b/drivers/media/usb/uvc/uvcvideo.h +@@ -170,7 +170,7 @@ + /* Maximum number of packets per URB. */ + #define UVC_MAX_PACKETS 32 + /* Maximum status buffer size in bytes of interrupt URB. */ +-#define UVC_MAX_STATUS_SIZE 16 ++#define UVC_MAX_STATUS_SIZE 32 + + #define UVC_CTRL_CONTROL_TIMEOUT 500 + #define UVC_CTRL_STREAMING_TIMEOUT 5000 +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h +index 082dc1439..fab1e7a37 100644 +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -707,6 +707,7 @@ struct v4l2_pix_format { + #define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */ + #define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */ + #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ ++#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ + + /* priv field value to indicates that subsequent fields are valid. */ + #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe +-- +2.17.1 diff --git a/scripts/realsense-metadata-ubuntu-xenial-hwe.patch b/scripts/realsense-metadata-bionic-master.patch similarity index 67% rename from scripts/realsense-metadata-ubuntu-xenial-hwe.patch rename to scripts/realsense-metadata-bionic-master.patch index 50aaa5a9528..315557ab9fc 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-hwe.patch +++ b/scripts/realsense-metadata-bionic-master.patch @@ -9,7 +9,7 @@ Subject: [PATCH] Enabling UVC Metadata attributes with Ubuntu 18.04 Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 135 +++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 144 +++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvc_video.c | 18 +++- drivers/media/usb/uvc/uvcvideo.h | 3 +- 3 files changed, 151 insertions(+), 5 deletions(-) @@ -18,10 +18,19 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index f50a2b148..534f49135 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2771,6 +2771,141 @@ static const struct usb_device_id uvc_ids[] = { +@@ -2771,6 +2771,249 @@ static const struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -67,6 +76,15 @@ index f50a2b148..534f49135 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -130,29 +148,119 @@ index f50a2b148..534f49135 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel L500 depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, diff --git a/scripts/realsense-metadata-ubuntu-xenial-joule.patch b/scripts/realsense-metadata-ubuntu-xenial-joule.patch index c9bc95f59c2..cf0f7eaa11f 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-joule.patch +++ b/scripts/realsense-metadata-ubuntu-xenial-joule.patch @@ -13,88 +13,252 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 9b8ac20..227f23a 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2674,6 +2674,85 @@ static struct usb_device_id uvc_ids[] = { +@@ -2674,6 +2674,249 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, -+ /* Intel RS450 depth camera */ ++ /* Intel SR300 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, -+ .idProduct = 0x0ad5, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS440 depth camera */ ++ /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, -+ .idProduct = 0x0af6, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad1, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS430 depth camera */ ++ /* Intel D410/ASR depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, -+ .idProduct = 0x0ad4, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad2, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS420 depth camera */ ++ /* Intel D415/ASRC depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, ++ .idVendor = 0x8086, + .idProduct = 0x0ad3, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS410 depth camera */ ++ /* Intel D430/AWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, -+ .idProduct = 0x0ad2, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad4, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS400 depth camera */ ++ /* Intel D450/AWGT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, -+ .idProduct = 0x0ad1, ++ .idVendor = 0x8086, ++ .idProduct = 0x0ad5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel RS400 depth camera */ ++ /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af6, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D420_MM/PWGT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, + .idProduct = 0x0afe, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D410_MM/ASRT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aff, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400_MM/PSRT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b00, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430_MM/AWGCT depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, + .idProduct = 0x0b01, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D460/DS5U depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, -+ .idVendor = 0x8086, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b03, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/AWGC depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, + .idProduct = 0x0b07, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 S depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L500 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b0d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D410/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, /* Generic USB Video Class */ { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) }, diff --git a/scripts/realsense-metadata-ubuntu-xenial-v4.16.patch b/scripts/realsense-metadata-ubuntu-xenial-v4.16.patch index bfac4f96ca4..0e8a830ff2f 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-v4.16.patch +++ b/scripts/realsense-metadata-ubuntu-xenial-v4.16.patch @@ -11,7 +11,7 @@ Subject: [PATCH] D4M metadata enablement w/metanode kernel 4.16 This patchs drops the documentation chapter as unnecessary --- - drivers/media/usb/uvc/uvc_driver.c | 137 +++++++++++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 146 +++++++++++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvcvideo.h | 2 +- include/uapi/linux/videodev2.h | 1 + 3 files changed, 139 insertions(+), 1 deletion(-) @@ -29,10 +29,19 @@ index fd387bf..3219519 100644 /* * The Logitech cameras listed below have their interface class set to -@@ -2819,6 +2821,141 @@ static const struct usb_device_id uvc_ids[] = { +@@ -2819,6 +2821,249 @@ static const struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = (kernel_ulong_t)&uvc_quirk_force_y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -41,7 +50,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D410/ASR depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -50,7 +59,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D415/ASRC depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -59,7 +68,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D430/AWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -68,7 +77,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D450/AWGT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -77,7 +86,16 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -86,7 +104,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420_MM/PWGT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -95,7 +113,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D410_MM/ASRT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -104,7 +122,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400_MM/PSRT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -113,7 +131,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D430_MM/AWGCT depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -122,7 +140,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D460/DS5U depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -131,7 +149,7 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D435/AWGC depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -140,34 +158,124 @@ index fd387bf..3219519 100644 + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, -+ /* Intel SR300 depth camera */ ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, -+ /* Intel D405 S depth camera */ ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, -+ /* Intel L500 depth camera */ ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, -+ .driver_info = UVC_QUIRK_META(V4L2_META_FMT_D4XX) }, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, /* Generic USB Video Class */ { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) }, { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) }, diff --git a/scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch b/scripts/realsense-metadata-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch similarity index 67% rename from scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch rename to scripts/realsense-metadata-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch index b0b22ad05ef..4b81ebc59ac 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch +++ b/scripts/realsense-metadata-xenial-Ubuntu-hwe-4.13.0-45.50_16.04.1.patch @@ -6,7 +6,7 @@ Subject: [PATCH] added support for uvc metadata Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 135 +++++++++++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 144 +++++++++++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvc_video.c | 18 +++-- drivers/media/usb/uvc/uvcvideo.h | 4 +- 3 files changed, 151 insertions(+), 6 deletions(-) @@ -15,10 +15,19 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 70842c5..9cdc50a 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2742,6 +2742,141 @@ static struct usb_device_id uvc_ids[] = { +@@ -2742,6 +2742,249 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -64,6 +73,15 @@ index 70842c5..9cdc50a 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -127,29 +145,119 @@ index 70842c5..9cdc50a 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel L500 depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, diff --git a/scripts/realsense-metadata-ubuntu-xenial-master.patch b/scripts/realsense-metadata-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch similarity index 64% rename from scripts/realsense-metadata-ubuntu-xenial-master.patch rename to scripts/realsense-metadata-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch index 69d55466e59..e1383fa625c 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-master.patch +++ b/scripts/realsense-metadata-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch @@ -1,24 +1,34 @@ From 6a837242353bf4f8d3ee19e6ff06983f345a7412 Mon Sep 17 00:00:00 2001 From: Elad Zucker From: icarpis -Date: Mon, 25 Sep 2017 11:36:52 +0300 +From: aangerma +Date: Thu, 30 Aug 2018 16:07:01 +0300 Subject: [PATCH] added support for uvc metadata Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 126 +++++++++++++++++++++++++++++++++++++ - drivers/media/usb/uvc/uvc_video.c | 19 ++++-- - drivers/media/usb/uvc/uvcvideo.h | 4 +- + drivers/media/usb/uvc/uvc_driver.c | 268 ++++++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_video.c | 20 ++- + drivers/media/usb/uvc/uvcvideo.h | 55 ++++++- 3 files changed, 142 insertions(+), 7 deletions(-) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 04bf350..5fd10f0 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2699,6 +2699,141 @@ static struct usb_device_id uvc_ids[] = { +@@ -2699,6 +2699,249 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -64,6 +74,15 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -127,11 +146,11 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, @@ -145,11 +164,101 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, @@ -161,7 +270,7 @@ diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video index f3c1c85..f69d749 100644 --- a/drivers/media/usb/uvc/uvc_video.c +++ b/drivers/media/usb/uvc/uvc_video.c -@@ -1228,8 +1228,13 @@ static void uvc_video_decode_bulk(struct urb *urb, struct uvc_streaming *stream, +@@ -1228,8 +1229,13 @@ static void uvc_video_decode_bulk(struct urb *urb, struct uvc_streaming *stream, do { ret = uvc_video_decode_start(stream, buf, mem, len); if (ret == -EAGAIN) @@ -177,7 +286,7 @@ index f3c1c85..f69d749 100644 } while (ret == -EAGAIN); /* If an error occurred skip the rest of the payload. */ -@@ -1261,9 +1266,13 @@ static void uvc_video_decode_bulk(struct urb *urb, struct uvc_streaming *stream, +@@ -1261,9 +1267,13 @@ static void uvc_video_decode_bulk(struct urb *urb, struct uvc_streaming *stream, if (!stream->bulk.skip_payload && buf != NULL) { uvc_video_decode_end(stream, buf, stream->bulk.header, stream->bulk.payload_size); @@ -198,7 +307,7 @@ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 3d6cc62..e24b763 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h -@@ -155,8 +155,7 @@ +@@ -143,8 +194,7 @@ /* Maximum number of packets per URB. */ #define UVC_MAX_PACKETS 32 /* Maximum status buffer size in bytes of interrupt URB. */ @@ -208,7 +317,7 @@ index 3d6cc62..e24b763 100644 #define UVC_CTRL_CONTROL_TIMEOUT 300 #define UVC_CTRL_STREAMING_TIMEOUT 5000 -@@ -176,6 +175,7 @@ +@@ -164,6 +214,7 @@ #define UVC_QUIRK_RESTRICT_FRAME_RATE 0x00000200 #define UVC_QUIRK_RESTORE_CTRLS_ON_INIT 0x00000400 #define UVC_QUIRK_FORCE_Y8 0x00000800 diff --git a/scripts/realsense-metadata-ubuntu-xenial-hwe-zesty.patch b/scripts/realsense-metadata-xenial-hwe-zesty.patch similarity index 67% rename from scripts/realsense-metadata-ubuntu-xenial-hwe-zesty.patch rename to scripts/realsense-metadata-xenial-hwe-zesty.patch index aa7c040647e..3326b87184a 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-hwe-zesty.patch +++ b/scripts/realsense-metadata-xenial-hwe-zesty.patch @@ -6,7 +6,7 @@ Subject: [PATCH] added support for uvc metadata Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 126 +++++++++++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 135 +++++++++++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvc_video.c | 19 ++++-- drivers/media/usb/uvc/uvcvideo.h | 4 +- 3 files changed, 142 insertions(+), 7 deletions(-) @@ -15,10 +15,19 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 04bf350..5fd10f0 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2699,6 +2699,141 @@ static struct usb_device_id uvc_ids[] = { +@@ -2699,6 +2699,249 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -64,6 +73,15 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -127,29 +145,119 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel L500 depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, diff --git a/scripts/realsense-metadata-ubuntu-bionic-master.patch b/scripts/realsense-metadata-xenial-hwe.patch similarity index 67% rename from scripts/realsense-metadata-ubuntu-bionic-master.patch rename to scripts/realsense-metadata-xenial-hwe.patch index 50aaa5a9528..315557ab9fc 100644 --- a/scripts/realsense-metadata-ubuntu-bionic-master.patch +++ b/scripts/realsense-metadata-xenial-hwe.patch @@ -9,7 +9,7 @@ Subject: [PATCH] Enabling UVC Metadata attributes with Ubuntu 18.04 Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 135 +++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 144 +++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvc_video.c | 18 +++- drivers/media/usb/uvc/uvcvideo.h | 3 +- 3 files changed, 151 insertions(+), 5 deletions(-) @@ -18,10 +18,19 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index f50a2b148..534f49135 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2771,6 +2771,141 @@ static const struct usb_device_id uvc_ids[] = { +@@ -2771,6 +2771,249 @@ static const struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -67,6 +76,15 @@ index f50a2b148..534f49135 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -130,29 +148,119 @@ index f50a2b148..534f49135 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel L500 depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, diff --git a/scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch b/scripts/realsense-metadata-xenial-master.patch similarity index 67% rename from scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch rename to scripts/realsense-metadata-xenial-master.patch index aa7c040647e..3326b87184a 100644 --- a/scripts/realsense-metadata-ubuntu-xenial-Ubuntu-hwe-4.8.0-58.63_16.04.1.patch +++ b/scripts/realsense-metadata-xenial-master.patch @@ -6,7 +6,7 @@ Subject: [PATCH] added support for uvc metadata Signed-off-by: Evgeni Raikhel --- - drivers/media/usb/uvc/uvc_driver.c | 126 +++++++++++++++++++++++++++++++++++++ + drivers/media/usb/uvc/uvc_driver.c | 135 +++++++++++++++++++++++++++++++++++++ drivers/media/usb/uvc/uvc_video.c | 19 ++++-- drivers/media/usb/uvc/uvcvideo.h | 4 +- 3 files changed, 142 insertions(+), 7 deletions(-) @@ -15,10 +15,19 @@ diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driv index 04bf350..5fd10f0 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c -@@ -2699,6 +2699,141 @@ static struct usb_device_id uvc_ids[] = { +@@ -2699,6 +2699,249 @@ static struct usb_device_id uvc_ids[] = { .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_FORCE_Y8 }, ++ /* Intel SR300 depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0aa5, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D400/PSR depth camera*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -64,6 +73,15 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D400 IMU Module */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0af2, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, + /* Intel D420/PWG depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, @@ -127,29 +145,119 @@ index 04bf350..5fd10f0 100644 + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel SR300 depth camera */ ++ /* Intel D405 S depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0aa5, ++ .idProduct = 0x0b0c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel D405 S depth camera */ ++ /* Intel L500 depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0c, ++ .idProduct = 0x0b0d, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, -+ /* Intel L500 depth camera */ ++ /* Intel D410/USB2 Depth camera */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x8086, -+ .idProduct = 0x0b0d, ++ .idProduct = 0x0b15, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D415/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b16, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435/USB2 Depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b17, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D435i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3a, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel L515 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b3d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel SR305 Depth Camera*/ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b48, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D416 Depth Camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b49, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D430i depth camera */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D465 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b4d, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D405 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5b, ++ .bInterfaceClass = USB_CLASS_VIDEO, ++ .bInterfaceSubClass = 1, ++ .bInterfaceProtocol = 0, ++ .driver_info = UVC_QUIRK_APPEND_UVC_HEADER }, ++ /* Intel D455 */ ++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE ++ | USB_DEVICE_ID_MATCH_INT_INFO, ++ .idVendor = 0x8086, ++ .idProduct = 0x0b5c, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, diff --git a/scripts/realsense_metadata_win10.ps1 b/scripts/realsense_metadata_win10.ps1 index 606e1ec5520..973dc1688d5 100644 --- a/scripts/realsense_metadata_win10.ps1 +++ b/scripts/realsense_metadata_win10.ps1 @@ -67,7 +67,15 @@ $MultiPinDevices = "USB\VID_8086&PID_0B03&MI_00",# D460(DS5U) "USB\VID_8086&PID_0B07&MI_00",# D430+RGB(AWGC) "USB\VID_8086&PID_0B0C&MI_00",# D405 - "USB\VID_8086&PID_0B0D&MI_00" # L500 + "USB\VID_8086&PID_0B0D&MI_00",# L500 + "USB\VID_8086&PID_0B3A&MI_00",# D435i + "USB\VID_8086&PID_0B3D&MI_00",# L515 + "USB\VID_8086&PID_0B49&MI_00",# F416 + "USB\VID_8086&PID_0B4B&MI_00",# D430i + "USB\VID_8086&PID_0B4D&MI_00" # D465 + "USB\VID_8086&PID_0B52&MI_00" # F416+RGB + "USB\VID_8086&PID_0B5B&MI_00" # D405 + "USB\VID_8086&PID_0B5C&MI_00" # D455 #Inhibit system warnings and erros, such as permissions or missing values $ErrorActionPreference = "silentlycontinue" diff --git a/scripts/setup_udev_rules.sh b/scripts/setup_udev_rules.sh new file mode 100755 index 00000000000..03af41c2592 --- /dev/null +++ b/scripts/setup_udev_rules.sh @@ -0,0 +1,20 @@ +#!/bin/bash -e + +echo "Setting-up permissions for RealSense devices" + +exec 3>&2 +exec 2> /dev/null +con_dev=$(ls /dev/video* | wc -l) +exec 2>&3 + +if [ $con_dev -ne 0 ]; +then + echo -e "\e[32m" + read -p "Remove all RealSense cameras attached. Hit any key when ready" + echo -e "\e[0m" +fi + +sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ +sudo udevadm control --reload-rules && udevadm trigger + +echo "udev-rules successfully installed" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 00000000000..5887b1723c5 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,125 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +string(REPLACE ${PROJECT_SOURCE_DIR}/ "" _rel_path ${CMAKE_CURRENT_LIST_DIR}) +include(${_rel_path}/core/CMakeLists.txt) +include(${_rel_path}/ds5/CMakeLists.txt) +include(${_rel_path}/ivcam/CMakeLists.txt) +include(${_rel_path}/l500/CMakeLists.txt) +include(${_rel_path}/media/CMakeLists.txt) +include(${_rel_path}/mock/CMakeLists.txt) +include(${_rel_path}/proc/CMakeLists.txt) +include(${_rel_path}/res/CMakeLists.txt) +include(${_rel_path}/pipeline/CMakeLists.txt) +include(${_rel_path}/usb/CMakeLists.txt) +include(${_rel_path}/fw-update/CMakeLists.txt) + +message(STATUS "using ${BACKEND}") + +if(UNIX OR (ANDROID_NDK_TOOLCHAIN_INCLUDED AND (${BACKEND} STREQUAL RS2_USE_V4L2_BACKEND))) + include(${_rel_path}/libusb/CMakeLists.txt) +endif() + +if(WIN32) + include(${_rel_path}/win/CMakeLists.txt) + include(${_rel_path}/winusb/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_ANDROID_BACKEND) + include(${_rel_path}/usbhost/CMakeLists.txt) + include(${_rel_path}/android/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_V4L2_BACKEND) + include(${_rel_path}/linux/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_WMF_BACKEND) + include(${_rel_path}/mf/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_WINUSB_UVC_BACKEND) + include(${_rel_path}/win7/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_LIBUVC_BACKEND OR ${BACKEND} STREQUAL RS2_USE_ANDROID_BACKEND OR ${BACKEND} STREQUAL RS2_USE_WINUSB_UVC_BACKEND) + include(${_rel_path}/hid/CMakeLists.txt) + include(${_rel_path}/uvc/CMakeLists.txt) + include(${_rel_path}/rsusb-backend/CMakeLists.txt) +endif() + +if(${BACKEND} STREQUAL RS2_USE_LIBUVC_BACKEND) + include(${_rel_path}/libuvc/CMakeLists.txt) +endif() + +if (BUILD_WITH_TM2) + include(${_rel_path}/tm2/CMakeLists.txt) +endif() + +if(BUILD_WITH_CUDA) + include(${_rel_path}/cuda/CMakeLists.txt) +endif() + +if(LRS_TRY_USE_AVX) + set_source_files_properties(image-avx.cpp PROPERTIES COMPILE_FLAGS -mavx2) +endif() + +if(BUILD_SHARED_LIBS) + target_sources(${LRS_TARGET} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/realsense.def") +endif() + +target_sources(${LRS_TARGET} + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/algo.cpp" + "${CMAKE_CURRENT_LIST_DIR}/archive.cpp" + "${CMAKE_CURRENT_LIST_DIR}/backend.cpp" + "${CMAKE_CURRENT_LIST_DIR}/context.cpp" + "${CMAKE_CURRENT_LIST_DIR}/device.cpp" + "${CMAKE_CURRENT_LIST_DIR}/device_hub.cpp" + "${CMAKE_CURRENT_LIST_DIR}/environment.cpp" + "${CMAKE_CURRENT_LIST_DIR}/error-handling.cpp" + "${CMAKE_CURRENT_LIST_DIR}/global_timestamp_reader.cpp" + "${CMAKE_CURRENT_LIST_DIR}/hw-monitor.cpp" + "${CMAKE_CURRENT_LIST_DIR}/image.cpp" + "${CMAKE_CURRENT_LIST_DIR}/image-avx.cpp" + "${CMAKE_CURRENT_LIST_DIR}/log.cpp" + "${CMAKE_CURRENT_LIST_DIR}/option.cpp" + "${CMAKE_CURRENT_LIST_DIR}/rs.cpp" + "${CMAKE_CURRENT_LIST_DIR}/sensor.cpp" + "${CMAKE_CURRENT_LIST_DIR}/software-device.cpp" + "${CMAKE_CURRENT_LIST_DIR}/source.cpp" + "${CMAKE_CURRENT_LIST_DIR}/stream.cpp" + "${CMAKE_CURRENT_LIST_DIR}/sync.cpp" + "${CMAKE_CURRENT_LIST_DIR}/types.cpp" + "${CMAKE_CURRENT_LIST_DIR}/verify.c" + "${CMAKE_CURRENT_LIST_DIR}/frame-validator.cpp" + + "${CMAKE_CURRENT_LIST_DIR}/algo.h" + "${CMAKE_CURRENT_LIST_DIR}/api.h" + "${CMAKE_CURRENT_LIST_DIR}/archive.h" + "${CMAKE_CURRENT_LIST_DIR}/backend.h" + "${CMAKE_CURRENT_LIST_DIR}/concurrency.h" + "${CMAKE_CURRENT_LIST_DIR}/context.h" + "${CMAKE_CURRENT_LIST_DIR}/device.h" + "${CMAKE_CURRENT_LIST_DIR}/device_hub.h" + "${CMAKE_CURRENT_LIST_DIR}/environment.h" + "${CMAKE_CURRENT_LIST_DIR}/log.h" + "${CMAKE_CURRENT_LIST_DIR}/error-handling.h" + "${CMAKE_CURRENT_LIST_DIR}/frame-archive.h" + "${CMAKE_CURRENT_LIST_DIR}/global_timestamp_reader.h" + "${CMAKE_CURRENT_LIST_DIR}/hw-monitor.h" + "${CMAKE_CURRENT_LIST_DIR}/image.h" + "${CMAKE_CURRENT_LIST_DIR}/image-avx.h" + "${CMAKE_CURRENT_LIST_DIR}/metadata.h" + "${CMAKE_CURRENT_LIST_DIR}/metadata-parser.h" + "${CMAKE_CURRENT_LIST_DIR}/option.h" + "${CMAKE_CURRENT_LIST_DIR}/sensor.h" + "${CMAKE_CURRENT_LIST_DIR}/software-device.h" + "${CMAKE_CURRENT_LIST_DIR}/source.h" + "${CMAKE_CURRENT_LIST_DIR}/stream.h" + "${CMAKE_CURRENT_LIST_DIR}/sync.h" + "${CMAKE_CURRENT_LIST_DIR}/types.h" + "${CMAKE_CURRENT_LIST_DIR}/command_transfer.h" + "${CMAKE_CURRENT_LIST_DIR}/frame-validator.h" + "${CMAKE_CURRENT_LIST_DIR}/auto-calibrated-device.h" + "${CMAKE_CURRENT_LIST_DIR}/serializable-interface.h" +) diff --git a/src/algo.cpp b/src/algo.cpp index c8897a3ac30..73f1cd920cf 100644 --- a/src/algo.cpp +++ b/src/algo.cpp @@ -63,8 +63,8 @@ auto_exposure_mechanism::auto_exposure_mechanism(option& gain_option, option& ex if (!_keep_alive) return; - frame_and_callback frame_callback; - auto frame_sts = _data_queue.dequeue(&frame_callback); + frame_holder f_holder; + auto frame_sts = _data_queue.dequeue(&f_holder, RS2_DEFAULT_TIMEOUT); lk.unlock(); @@ -75,7 +75,7 @@ auto_exposure_mechanism::auto_exposure_mechanism(option& gain_option, option& ex } try { - auto frame = std::move(frame_callback.f_holder); + auto frame = std::move(f_holder); double values[2] = {}; @@ -147,7 +147,7 @@ void auto_exposure_mechanism::update_auto_exposure_roi(const region_of_interest& _auto_exposure_algo.update_roi(roi); } -void auto_exposure_mechanism::add_frame(frame_holder frame, callback_invocation_holder callback) +void auto_exposure_mechanism::add_frame(frame_holder frame) { if (!_keep_alive || (_skip_frames && (_frames_counter++) != _skip_frames)) @@ -159,7 +159,7 @@ void auto_exposure_mechanism::add_frame(frame_holder frame, callback_invocation_ { std::lock_guard lk(_queue_mtx); - _data_queue.enqueue({std::move(frame), std::move(callback)}); + _data_queue.enqueue(std::move(frame)); } _cv.notify_one(); } diff --git a/src/algo.h b/src/algo.h index c7fcb0f471a..e23af666fac 100644 --- a/src/algo.h +++ b/src/algo.h @@ -102,16 +102,11 @@ namespace librealsense std::recursive_mutex state_mutex; }; - struct frame_and_callback{ - frame_holder f_holder; - callback_invocation_holder callback; - }; - class auto_exposure_mechanism { public: auto_exposure_mechanism(option& gain_option, option& exposure_option, const auto_exposure_state& auto_exposure_state); ~auto_exposure_mechanism(); - void add_frame(frame_holder frame, callback_invocation_holder callback); + void add_frame(frame_holder frame); void update_auto_exposure_state(const auto_exposure_state& auto_exposure_state); void update_auto_exposure_roi(const region_of_interest& roi); @@ -129,8 +124,6 @@ namespace librealsense }; private: - bool try_pop_front_data(frame_and_callback* data); - static const int queue_size = 2; option& _gain_option; option& _exposure_option; @@ -138,7 +131,7 @@ namespace librealsense std::shared_ptr _exposure_thread; std::condition_variable _cv; std::atomic _keep_alive; - single_consumer_queue _data_queue; + single_consumer_queue _data_queue; std::mutex _queue_mtx; std::atomic _frames_counter; std::atomic _skip_frames; diff --git a/src/android/CMakeLists.txt b/src/android/CMakeLists.txt new file mode 100644 index 00000000000..fa69e5ccaec --- /dev/null +++ b/src/android/CMakeLists.txt @@ -0,0 +1,39 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +target_sources(${LRS_TARGET} + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/rsusb-backend-android.cpp" + "${CMAKE_CURRENT_LIST_DIR}/rsusb-backend-android.h" + "${CMAKE_CURRENT_LIST_DIR}/device_watcher.h" + "${CMAKE_CURRENT_LIST_DIR}/device_watcher.cpp" + + "${CMAKE_CURRENT_LIST_DIR}/jni/error.h" + "${CMAKE_CURRENT_LIST_DIR}/jni/error.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/context.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/debug_protocol.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/device.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/sensor.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/device_list.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/pipeline.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/config.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/stream_profile.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/frame.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/frameset.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/fw_logger.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/frame_queue.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/processing.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/options.cpp" + "${CMAKE_CURRENT_LIST_DIR}/jni/advanced_mode.cpp" + + "${CMAKE_CURRENT_LIST_DIR}/fw-logger/rs-fw-logger.cpp" + "${CMAKE_CURRENT_LIST_DIR}/../../tools/fw-logger/fw-log-data.cpp" + "${CMAKE_CURRENT_LIST_DIR}/../../tools/fw-logger/fw-logs-parser.cpp" + "${CMAKE_CURRENT_LIST_DIR}/../../tools/fw-logger/fw-logs-xml-helper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/../../tools/fw-logger/string-formatter.cpp" + "${CMAKE_CURRENT_LIST_DIR}/../../tools/fw-logger/fw-logs-formating-options.cpp" +) + +message(STATUS "Prepare RealSense SDK for Android OS (${ANDROID_NDK_ABI_NAME})") + + diff --git a/src/android/device_watcher.cpp b/src/android/device_watcher.cpp new file mode 100644 index 00000000000..61f5dc84c35 --- /dev/null +++ b/src/android/device_watcher.cpp @@ -0,0 +1,54 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. +#include "device_watcher.h" +#include +#include +#include +#include "../usb/usb-device.h" +#include "../usbhost/device-usbhost.h" +#include "../backend.h" +#include "../usb/usb-enumerator.h" +#include "../hid/hid-device.h" +#include "../uvc/uvc-device.h" + +using namespace std; +using namespace librealsense; +using namespace librealsense::platform; + +std::shared_ptr device_watcher_usbhost::instance() +{ + static std::shared_ptr instance = std::make_shared(); + return instance; +} + +void device_watcher_usbhost::notify() +{ + backend_device_group curr; + backend_device_group prev; + librealsense::platform::device_changed_callback callback; + + curr.uvc_devices = query_uvc_devices_info(); + curr.hid_devices = query_hid_devices_info(); + + { + std::lock_guard lk(_mutex); + prev = _prev_group; + _prev_group = curr; + callback = _callback; + } + + if(callback) + callback(prev, curr); +} + +void device_watcher_usbhost::start(librealsense::platform::device_changed_callback callback) +{ + std::lock_guard lk(_mutex); + _callback = callback; +} + +void device_watcher_usbhost::stop() +{ + std::lock_guard lk(_mutex); + _callback = nullptr; +} diff --git a/src/android/device_watcher.h b/src/android/device_watcher.h new file mode 100644 index 00000000000..2cabb4d981c --- /dev/null +++ b/src/android/device_watcher.h @@ -0,0 +1,31 @@ +/* License: Apache 2.0. See LICENSE file in root directory. */ +/* Copyright(c) 2019 Intel Corporation. All Rights Reserved. */ +#pragma once + +#include "../types.h" +#include "../backend.h" +#include "../usb/usb-device.h" + +#include + +namespace librealsense +{ + namespace platform + { + class device_watcher_usbhost : public device_watcher + { + public: + virtual void start(device_changed_callback callback) override; + virtual void stop() override; + + void notify(); + static std::shared_ptr instance(); + + private: + std::mutex _mutex; + device_changed_callback _callback = nullptr; + backend_device_group _prev_group; + std::vector update_uvc_devices(); + }; + } +} diff --git a/src/android/fw-logger/rs-fw-logger.cpp b/src/android/fw-logger/rs-fw-logger.cpp new file mode 100644 index 00000000000..6d0c691da97 --- /dev/null +++ b/src/android/fw-logger/rs-fw-logger.cpp @@ -0,0 +1,131 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015 Intel Corporation. All Rights Reserved. + +#include "rs-fw-logger.h" + +#include +#include +#include +#include +#include + +#include "../../../tools/fw-logger/fw-logs-parser.h" +#include "../../../include/librealsense2/hpp/rs_context.hpp" + +#define TAG "rs_fw_log" + +void log(std::string message) +{ + __android_log_print(ANDROID_LOG_INFO, TAG, "%s", message.c_str()); +} + +std::string hexify(unsigned char n) +{ + std::string res; + + do + { + res += "0123456789ABCDEF"[n % 16]; + n >>= 4; + } while (n); + + std::reverse(res.begin(), res.end()); + + if (res.size() == 1) + { + res.insert(0, "0"); + } + + return res; +} + +void android_fw_logger::read_log_loop() +{ + _active = true; + + std::unique_ptr fw_log_parser; + auto use_xml_file = false; + if (!_xml_path.empty()) + { + std::ifstream f(_xml_path); + if (f.good()) + { + fw_log_parser = std::unique_ptr(new fw_logger::fw_logs_parser(_xml_path)); + use_xml_file = true; + } + } + + while(_active) + { try + { + rs2::context ctx; + auto devs = ctx.query_devices(); + if(devs.size() == 0){ + _active = false; + break; + } + auto dev = ctx.query_devices()[0]; + + std::vector input; + auto str_op_code = dev.get_info(RS2_CAMERA_INFO_DEBUG_OP_CODE); + auto op_code = static_cast(std::stoi(str_op_code)); + input = {0x14, 0x00, 0xab, 0xcd, op_code, 0x00, 0x00, 0x00, + 0xf4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + std::stringstream dev_info; + dev_info << "Device Name: " << dev.get_info(RS2_CAMERA_INFO_NAME) << "\nDevice Location: " << dev.get_info(RS2_CAMERA_INFO_PHYSICAL_PORT) << "\n\n"; + log(dev_info.str()); + + while (_active) + { + std::this_thread::sleep_for(std::chrono::milliseconds(_sample_rate)); + + auto raw_data = dev.as().send_and_receive_raw_data(input); + std::vector fw_log_lines = {""}; + if (raw_data.size() <= 4) + continue; + + if (use_xml_file) + { + fw_logger::fw_logs_binary_data fw_logs_binary_data = {raw_data}; + fw_logs_binary_data.logs_buffer.erase(fw_logs_binary_data.logs_buffer.begin(),fw_logs_binary_data.logs_buffer.begin()+4); + fw_log_lines = fw_log_parser->get_fw_log_lines(fw_logs_binary_data); + } + else + { + std::stringstream sstr; + sstr << "FW_Log_Data:"; + for (size_t i = 0; i < raw_data.size(); ++i) + sstr << hexify(raw_data[i]) << " "; + + fw_log_lines.push_back(sstr.str()); + } + + for (auto& line : fw_log_lines) + log(line); + + } + } + catch (const rs2::error & e) + { + std::stringstream cerr; + cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n " << e.what(); + + log(cerr.str()); + } + } +} + +android_fw_logger::android_fw_logger(std::string xml_path, int sample_rate) : _xml_path(xml_path), _sample_rate(sample_rate) +{ + log("StartReadingFwLogs"); + _thread = std::thread(&android_fw_logger::read_log_loop, this); +} + +android_fw_logger::~android_fw_logger() +{ + log("StopReadingFwLogs"); + _active = false; + _thread.join(); +} diff --git a/src/android/fw-logger/rs-fw-logger.h b/src/android/fw-logger/rs-fw-logger.h new file mode 100644 index 00000000000..f322838a72f --- /dev/null +++ b/src/android/fw-logger/rs-fw-logger.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015 Intel Corporation. All Rights Reserved. + +#include +#include + +class android_fw_logger +{ +public: + android_fw_logger(std::string xml_path = "", int sample_rate = 100); + ~android_fw_logger(); + +private: + bool _active = false; + std::thread _thread; + std::string _xml_path; + + void read_log_loop(); + int _sample_rate; +}; diff --git a/src/android/jni/advanced_mode.cpp b/src/android/jni/advanced_mode.cpp new file mode 100644 index 00000000000..11214524df8 --- /dev/null +++ b/src/android/jni/advanced_mode.cpp @@ -0,0 +1,51 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" +#include "../../../include/librealsense2/rs_advanced_mode.h" +#include "../../api.h" + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Device_nToggleAdvancedMode(JNIEnv *env, jclass type, + jlong handle, jboolean enable) { + rs2_error* e = NULL; + rs2_toggle_advanced_mode(reinterpret_cast(handle), enable, &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Device_nIsInAdvancedMode(JNIEnv *env, jclass type, + jlong handle) { + rs2_error* e = NULL; + int rv = -1; + rs2_is_enabled(reinterpret_cast(handle), &rv, &e); + handle_error(env, e); + return rv > 0; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Device_nLoadPresetFromJson(JNIEnv *env, jclass type, + jlong handle, jbyteArray data_) { + jbyte *data = env->GetByteArrayElements(data_, NULL); + jsize length = env->GetArrayLength(data_); + rs2_error* e = NULL; + rs2_load_json(reinterpret_cast(handle), data, length, &e); + handle_error(env, e); + env->ReleaseByteArrayElements(data_, data, 0); +} + +extern "C" JNIEXPORT jbyteArray JNICALL +Java_com_intel_realsense_librealsense_Device_nSerializePresetToJson(JNIEnv *env, jclass type, + jlong handle) { + rs2_error* e = NULL; + std::shared_ptr raw_data_buffer( + rs2_serialize_json(reinterpret_cast(handle), &e), + [](rs2_raw_data_buffer* buff){ if(buff) delete buff;}); + handle_error(env, e); + jbyteArray rv = env->NewByteArray(raw_data_buffer->buffer.size()); + env->SetByteArrayRegion(rv, 0, raw_data_buffer->buffer.size(), + reinterpret_cast(raw_data_buffer->buffer.data())); + return rv; +} diff --git a/src/android/jni/config.cpp b/src/android/jni/config.cpp new file mode 100644 index 00000000000..0aac6f024b8 --- /dev/null +++ b/src/android/jni/config.cpp @@ -0,0 +1,117 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" +#include "../../../include/librealsense2/h/rs_config.h" + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Config_nCreate(JNIEnv *env, jclass type) { + rs2_error *e = NULL; + rs2_config *rv = rs2_create_config(&e); + handle_error(env, e); + return (jlong) rv; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nDelete(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_config((rs2_config *) handle); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nEnableStream(JNIEnv *env, jclass type_, jlong handle, + jint type, jint index, jint width, + jint height, jint format, + jint framerate) { + rs2_error *e = NULL; + rs2_config_enable_stream(reinterpret_cast(handle), static_cast(type), index, width, height, + static_cast(format), framerate, &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nEnableDeviceFromFile(JNIEnv *env, jclass type, + jlong handle, + jstring filePath_) { + const char *filePath = env->GetStringUTFChars(filePath_, 0); + + rs2_error *e = NULL; + rs2_config_enable_device_from_file(reinterpret_cast(handle), filePath, &e); + handle_error(env, e); + + env->ReleaseStringUTFChars(filePath_, filePath); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nEnableDevice(JNIEnv *env, jclass type, + jlong handle, + jstring serial_) { + const char *serial = env->GetStringUTFChars(serial_, 0); + + rs2_error *e = NULL; + rs2_config_enable_device(reinterpret_cast(handle), serial, &e); + handle_error(env, e); + + env->ReleaseStringUTFChars(serial_, serial); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nEnableRecordToFile(JNIEnv *env, jclass type, + jlong handle, jstring filePath_) { + const char *filePath = env->GetStringUTFChars(filePath_, 0); + + rs2_error *e = NULL; + rs2_config_enable_record_to_file(reinterpret_cast(handle), filePath, &e); + handle_error(env, e); + + env->ReleaseStringUTFChars(filePath_, filePath); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nDisableStream(JNIEnv *env, jclass type, jlong handle, + jint streamType) { + rs2_error *e = NULL; + rs2_config_disable_stream(reinterpret_cast(handle), + static_cast(streamType), &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nEnableAllStreams(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + rs2_config_enable_all_stream(reinterpret_cast(handle), &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Config_nDisableAllStreams(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + rs2_config_disable_all_streams(reinterpret_cast(handle), &e); + handle_error(env, e); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Config_nResolve(JNIEnv *env, jclass type, jlong handle, + jlong pipelineHandle) { + rs2_error *e = NULL; + rs2_pipeline_profile* rv = rs2_config_resolve(reinterpret_cast(handle), + reinterpret_cast(pipelineHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Config_nCanResolve(JNIEnv *env, jclass type, jlong handle, + jlong pipelineHandle) { + rs2_error *e = NULL; + auto rv = rs2_config_can_resolve(reinterpret_cast(handle), + reinterpret_cast(pipelineHandle), &e); + handle_error(env, e); + return rv > 0; +} diff --git a/src/android/jni/context.cpp b/src/android/jni/context.cpp new file mode 100644 index 00000000000..fe533d975f8 --- /dev/null +++ b/src/android/jni/context.cpp @@ -0,0 +1,36 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" + +#include "../../../include/librealsense2/hpp/rs_context.hpp" + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_RsContext_nCreate(JNIEnv *env, jclass type) { + rs2_error* e = NULL; + rs2_context* handle = rs2_create_context(RS2_API_VERSION, &e); + handle_error(env, e); + return (jlong) handle; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_RsContext_nDelete(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_context((rs2_context *) handle); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_RsContext_nQueryDevices(JNIEnv *env, jclass type, + jlong handle, jint mask) { + rs2_error* e = NULL; + rs2_device_list* device_list_handle = rs2_query_devices_ex((rs2_context *) handle, mask, &e); + handle_error(env, e); + return (jlong) device_list_handle; +} + +extern "C" +JNIEXPORT jstring JNICALL +Java_com_intel_realsense_librealsense_RsContext_nGetVersion(JNIEnv *env, jclass type) { + return env->NewStringUTF(RS2_API_VERSION_STR); +} diff --git a/src/android/jni/debug_protocol.cpp b/src/android/jni/debug_protocol.cpp new file mode 100644 index 00000000000..9437e0ea37e --- /dev/null +++ b/src/android/jni/debug_protocol.cpp @@ -0,0 +1,202 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include +#include +#include "error.h" +#include +#include +#include + +#include "../../../include/librealsense2/rs.h" +#include "../../../include/librealsense2/hpp/rs_device.hpp" +#include "../../api.h" +#include "../../../common/parser.hpp" + +using std::string; +using std::hex; + +std::vector send_and_receive_raw_data(JNIEnv *env, rs2_device * dev, const std::vector& input) +{ + std::vector results; + + rs2_error *e = NULL; + std::shared_ptr list( + rs2_send_and_receive_raw_data(dev, (void*)input.data(), (uint32_t)input.size(), &e), + rs2_delete_raw_data); + handle_error(env, e); + + auto size = rs2_get_raw_data_size(list.get(), &e); + handle_error(env, e); + + auto start = rs2_get_raw_data(list.get(), &e); + + results.insert(results.begin(), start, start + size); + + return results; +} + +std::string hex_mode(JNIEnv *env, rs2_device * dev, const std::string& line) +{ + std::vector raw_data; + std::stringstream ss(line); + std::string word; + while (ss >> word) + { + std::stringstream converter; + int temp; + converter << std::hex << word; + converter >> temp; + raw_data.push_back(temp); + } + if (raw_data.empty()) + throw std::runtime_error("Wrong input!"); + + auto result = send_and_receive_raw_data(env, dev, raw_data); + + std::stringstream rv; + for (auto& elem : result) + rv << std::setfill('0') << std::setw(2) << std::hex << static_cast(elem) << " "; + + return rv.str(); +} + +std::vector build_raw_command_data(const command& command, const std::vector& params) +{ + if (params.size() > command.parameters.size() && !command.is_cmd_write_data) + throw std::runtime_error("Input string was not in a correct format!"); + + std::vector vec_parameters; + for (auto param_index = 0; param_index < params.size(); ++param_index) + { + auto is_there_write_data = param_index >= int(command.parameters.size()); + auto name = (is_there_write_data) ? "" : command.parameters[param_index].name; + auto is_reverse_bytes = (is_there_write_data) ? false : command.parameters[param_index].is_reverse_bytes; + auto is_decimal = (is_there_write_data) ? false : command.parameters[param_index].is_decimal; + auto format_length = (is_there_write_data) ? -1 : command.parameters[param_index].format_length; + vec_parameters.push_back(parameter(name, params[param_index], is_decimal, is_reverse_bytes, format_length)); + } + + std::vector raw_data; + encode_raw_data_command(command, vec_parameters, raw_data); + return raw_data; +} + +std::string xml_mode(const std::string& line, const commands_xml& cmd_xml, std::map& format_type_to_lambda, JNIEnv *env, jlong handle) +{ + try { + std::vector tokens; + std::stringstream ss(line); + std::string word; + while (ss >> word) { + std::stringstream converter; + converter << hex << word; + tokens.push_back(word); + } + + if (tokens.empty()) + throw std::runtime_error("Wrong input!"); + + auto command_str = tokens.front(); + auto it = cmd_xml.commands.find(command_str); + if (it == cmd_xml.commands.end()) + throw std::runtime_error("Command not found!"); + + auto command = it->second; + std::vector params; + for (auto i = 1; i < tokens.size(); ++i) + params.push_back(tokens[i]); + + auto raw_data = build_raw_command_data(command, params); + + auto result = send_and_receive_raw_data(env, reinterpret_cast(handle), + raw_data); + + unsigned returned_opcode = *result.data(); + // check returned opcode + if (command.op_code != returned_opcode) { + std::stringstream msg; + msg << "OpCodes do not match! Sent 0x" << hex << command.op_code << " but received 0x" + << hex << (returned_opcode) << "!"; + throw std::runtime_error(msg.str()); + } + + if(!command.is_read_command) + return "Executed Successfully"; + + std::string rv; + decode_string_from_raw_data(command, cmd_xml.custom_formatters, result.data(), + result.size(), rv, format_type_to_lambda); + return rv; + }catch(std::exception& e){ + return e.what(); + } +} + +extern "C" +JNIEXPORT jbyteArray JNICALL +Java_com_intel_realsense_librealsense_DebugProtocol_nSendAndReceiveRawData(JNIEnv *env, jclass type, + jlong handle, + jbyteArray buffer_) { + jbyte *buffer = env->GetByteArrayElements(buffer_, NULL); + jsize length = env->GetArrayLength(buffer_); + std::vector buff(reinterpret_cast(buffer), reinterpret_cast(buffer) + length); + auto ret = send_and_receive_raw_data(env, reinterpret_cast(handle), buff); + env->ReleaseByteArrayElements(buffer_, buffer, 0); + jbyteArray rv = env->NewByteArray(ret.size()); + env->SetByteArrayRegion (rv, 0, ret.size(), reinterpret_cast(ret.data())); + return rv; +} + +extern "C" +JNIEXPORT jbyteArray JNICALL +Java_com_intel_realsense_librealsense_DebugProtocol_nSendAndReceiveData(JNIEnv *env, jclass clazz, + jlong handle, + jstring filePath, + jstring command) { + const char *file_path = env->GetStringUTFChars(filePath, 0); + const char *line = env->GetStringUTFChars(command, 0); + + std::map format_type_to_lambda; + commands_xml cmd_xml; + + std::string result = "failed to open commands file"; + bool sts = parse_xml_from_file(file_path, cmd_xml); + if(sts){ + update_format_type_to_lambda(format_type_to_lambda); + + result = xml_mode(line, cmd_xml, format_type_to_lambda, env, handle); + } + + env->ReleaseStringUTFChars(command, line); + env->ReleaseStringUTFChars(filePath, file_path); + + jbyteArray rv = env->NewByteArray(result.size()); + env->SetByteArrayRegion(rv, 0, result.size(), + reinterpret_cast(result.c_str())); + return rv; +} + +extern "C" +JNIEXPORT jobjectArray JNICALL +Java_com_intel_realsense_librealsense_DebugProtocol_nGetCommands(JNIEnv *env, jclass clazz, + jstring filePath) { + const char *file_path = env->GetStringUTFChars(filePath, 0); + + jobjectArray rv; + commands_xml cmd_xml; + bool sts = parse_xml_from_file(file_path, cmd_xml); + if(sts) + { + rv = (jobjectArray)env->NewObjectArray(cmd_xml.commands.size(), env->FindClass("java/lang/String"),env->NewStringUTF("")); + int i = 0; + for(auto&& c : cmd_xml.commands) + env->SetObjectArrayElement(rv, i++, env->NewStringUTF(c.first.c_str())); + } + env->ReleaseStringUTFChars(filePath, file_path); + + return(rv); +} + diff --git a/src/android/jni/device.cpp b/src/android/jni/device.cpp new file mode 100644 index 00000000000..938e7f0678f --- /dev/null +++ b/src/android/jni/device.cpp @@ -0,0 +1,147 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" +#include "../../../include/librealsense2/hpp/rs_device.hpp" +#include "../../api.h" + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Device_nSupportsInfo(JNIEnv *env, jclass type, jlong handle, + jint info) { + rs2_error *e = NULL; + auto rv = rs2_supports_device_info(reinterpret_cast(handle), + static_cast(info), &e); + handle_error(env, e); + return rv > 0; +} + +extern "C" JNIEXPORT jstring JNICALL +Java_com_intel_realsense_librealsense_Device_nGetInfo(JNIEnv *env, jclass type, jlong handle, + jint info) { + rs2_error *e = NULL; + const char* rv = rs2_get_device_info(reinterpret_cast(handle), + static_cast(info), &e); + handle_error(env, e); + if (NULL == rv) + rv = ""; + return env->NewStringUTF(rv); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Device_nRelease(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_device(reinterpret_cast(handle)); +} + +extern "C" +JNIEXPORT jlongArray JNICALL +Java_com_intel_realsense_librealsense_Device_nQuerySensors(JNIEnv *env, jclass type, jlong handle) { + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_query_sensors(reinterpret_cast(handle), &e), + rs2_delete_sensor_list); + handle_error(env, e); + + auto size = rs2_get_sensors_count(list.get(), &e); + handle_error(env, e); + + std::vector sensors; + for (auto i = 0; i < size; i++) + { + auto s = rs2_create_sensor(list.get(), i, &e); + handle_error(env, e); + sensors.push_back(s); + } + jlongArray rv = env->NewLongArray(sensors.size()); + env->SetLongArrayRegion(rv, 0, sensors.size(), reinterpret_cast(sensors.data())); + return rv; +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Updatable_nEnterUpdateState(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + rs2_enter_update_state(reinterpret_cast(handle), &e); + handle_error(env, e); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Updatable_nUpdateFirmwareUnsigned(JNIEnv *env, + jobject instance, + jlong handle, + jbyteArray image_, + jint update_mode) { + jbyte *image = env->GetByteArrayElements(image_, NULL); + auto length = env->GetArrayLength(image_); + rs2_error *e = NULL; + jclass cls = env->GetObjectClass(instance); + jmethodID id = env->GetMethodID(cls, "onProgress", "(F)V"); + auto cb = [&](float progress){ env->CallVoidMethod(instance, id, progress); }; + rs2_update_firmware_unsigned_cpp(reinterpret_cast(handle), image, length, + new rs2::update_progress_callback(cb), update_mode, &e); + handle_error(env, e); + env->ReleaseByteArrayElements(image_, image, 0); +} + +extern "C" +JNIEXPORT jbyteArray JNICALL +Java_com_intel_realsense_librealsense_Updatable_nCreateFlashBackup(JNIEnv *env, jobject instance, + jlong handle) { + rs2_error* e = NULL; + jclass cls = env->GetObjectClass(instance); + jmethodID id = env->GetMethodID(cls, "onProgress", "(F)V"); + auto cb = [&](float progress){ env->CallVoidMethod(instance, id, progress); }; + + std::shared_ptr raw_data_buffer( + rs2_create_flash_backup_cpp(reinterpret_cast(handle), new rs2::update_progress_callback(cb), &e), + [](const rs2_raw_data_buffer* buff){ if(buff) delete buff;}); + handle_error(env, e); + + jbyteArray rv = env->NewByteArray(raw_data_buffer->buffer.size()); + env->SetByteArrayRegion(rv, 0, raw_data_buffer->buffer.size(), + reinterpret_cast(raw_data_buffer->buffer.data())); + return rv; +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_UpdateDevice_nUpdateFirmware(JNIEnv *env, jobject instance, + jlong handle, + jbyteArray image_) { + jbyte *image = env->GetByteArrayElements(image_, NULL); + auto length = env->GetArrayLength(image_); + rs2_error *e = NULL; + jclass cls = env->GetObjectClass(instance); + jmethodID id = env->GetMethodID(cls, "onProgress", "(F)V"); + auto cb = [&](float progress){ env->CallVoidMethod(instance, id, progress); }; + rs2_update_firmware_cpp(reinterpret_cast(handle), image, length, + new rs2::update_progress_callback(cb), &e); + handle_error(env, e); + env->ReleaseByteArrayElements(image_, image, 0); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Device_nHardwareReset(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + rs2_hardware_reset(reinterpret_cast(handle), &e); + handle_error(env, e); +} + +extern "C" +JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Device_nIsDeviceExtendableTo(JNIEnv *env, jclass type, + jlong handle, jint extension) { + rs2_error *e = NULL; + int rv = rs2_is_device_extendable_to(reinterpret_cast(handle), + static_cast(extension), &e); + handle_error(env, e); + return rv > 0; +} diff --git a/src/android/jni/device_list.cpp b/src/android/jni/device_list.cpp new file mode 100644 index 00000000000..4ad82fd611c --- /dev/null +++ b/src/android/jni/device_list.cpp @@ -0,0 +1,40 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_DeviceList_nGetDeviceCount(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + auto rv = rs2_get_device_count(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_DeviceList_nCreateDevice(JNIEnv *env, jclass type, + jlong handle, jint index) { + rs2_error *e = NULL; + rs2_device* rv = rs2_create_device(reinterpret_cast(handle), index, &e); + handle_error(env, e); + return (jlong)rv; +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_DeviceList_nContainsDevice(JNIEnv *env, jclass type, + jlong handle, jlong deviceHandle) { + rs2_error *e = NULL; + auto rv = rs2_device_list_contains(reinterpret_cast(handle), + reinterpret_cast(deviceHandle), &e); + handle_error(env, e); + return rv > 0; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_DeviceList_nRelease(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_device_list((rs2_device_list *) handle); +} diff --git a/src/android/jni/error.cpp b/src/android/jni/error.cpp new file mode 100644 index 00000000000..c3287c275c0 --- /dev/null +++ b/src/android/jni/error.cpp @@ -0,0 +1,12 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include "error.h" + +void handle_error(JNIEnv *env, rs2_error* error){ + if (error) + { + const char* message = rs2_get_error_message(error); + env->ThrowNew(env->FindClass("java/lang/RuntimeException"), message); + } +} diff --git a/src/android/jni/error.h b/src/android/jni/error.h new file mode 100644 index 00000000000..62865035589 --- /dev/null +++ b/src/android/jni/error.h @@ -0,0 +1,11 @@ +/* License: Apache 2.0. See LICENSE file in root directory. */ +/* Copyright(c) 2019 Intel Corporation. All Rights Reserved. */ + +#ifndef LIBREALSENSE_JNI_ERROR_H +#define LIBREALSENSE_JNI_ERROR_H + +#include +#include "../../../include/librealsense2/rs.h" + +void handle_error(JNIEnv *env, rs2_error* error); +#endif diff --git a/src/android/jni/frame.cpp b/src/android/jni/frame.cpp new file mode 100644 index 00000000000..558420b7aaa --- /dev/null +++ b/src/android/jni/frame.cpp @@ -0,0 +1,188 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Frame_nAddRef(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + rs2_frame_add_ref((rs2_frame *) handle, &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Frame_nRelease(JNIEnv *env, jclass type, jlong handle) { + rs2_release_frame((rs2_frame *) handle); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetStreamProfile(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + const rs2_stream_profile *rv = rs2_get_frame_stream_profile( + reinterpret_cast(handle), &e); + handle_error(env, e); + return (jlong) rv; +} + +extern "C" +JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetDataSize(JNIEnv *env, jclass type, jlong handle) { + + rs2_error *e = NULL; + auto rv = rs2_get_frame_data_size(reinterpret_cast(handle), &e); + handle_error(env, e); + return (jint)rv; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetData(JNIEnv *env, jclass type, jlong handle, + jbyteArray data_) { + jsize length = env->GetArrayLength(data_); + rs2_error *e = NULL; + env->SetByteArrayRegion(data_, 0, length, static_cast(rs2_get_frame_data( + reinterpret_cast(handle), &e))); + handle_error(env, e); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Points_nGetData(JNIEnv *env, jclass type, jlong handle, + jfloatArray data_) { + jsize length = env->GetArrayLength(data_); + rs2_error *e = NULL; + env->SetFloatArrayRegion(data_, 0, length, static_cast(rs2_get_frame_data( + reinterpret_cast(handle), &e))); + handle_error(env, e); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Points_nGetTextureCoordinates(JNIEnv *env, jclass type, + jlong handle, + jfloatArray data_) { + jsize length = env->GetArrayLength(data_); + rs2_error *e = NULL; + env->SetFloatArrayRegion(data_, 0, length, reinterpret_cast(rs2_get_frame_texture_coordinates( + reinterpret_cast(handle), &e))); + handle_error(env, e); +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Frame_nIsFrameExtendableTo(JNIEnv *env, jclass type, + jlong handle, jint extension) { + rs2_error *e = NULL; + int rv = rs2_is_frame_extendable_to(reinterpret_cast(handle), + static_cast(extension), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_VideoFrame_nGetWidth(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_width(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_VideoFrame_nGetHeight(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_height(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_VideoFrame_nGetStride(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_stride_in_bytes(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_VideoFrame_nGetBitsPerPixel(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_bits_per_pixel(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetNumber(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + unsigned long long rv = rs2_get_frame_number(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jfloat JNICALL +Java_com_intel_realsense_librealsense_DepthFrame_nGetDistance(JNIEnv *env, jclass type, + jlong handle, jint x, jint y) { + rs2_error *e = NULL; + float rv = rs2_depth_frame_get_distance(reinterpret_cast(handle), x, y, &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_Points_nGetCount(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_points_count(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Points_nExportToPly(JNIEnv *env, jclass type, jlong handle, + jstring filePath_, jlong textureHandle) { + const char *filePath = env->GetStringUTFChars(filePath_, 0); + rs2_error *e = NULL; + rs2_export_to_ply(reinterpret_cast(handle), filePath, + reinterpret_cast(textureHandle), &e); + handle_error(env, e); + env->ReleaseStringUTFChars(filePath_, filePath); +} + +extern "C" JNIEXPORT jdouble JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetTimestamp(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + double rv = rs2_get_frame_timestamp(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetTimestampDomain(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + int rv = rs2_get_frame_timestamp_domain(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Frame_nGetMetadata(JNIEnv *env, jclass type, jlong handle, + jint metadata_type) { + rs2_error *e = NULL; + long rv = rs2_get_frame_metadata(reinterpret_cast(handle), + static_cast(metadata_type), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Frame_nSupportsMetadata(JNIEnv *env, jclass type, jlong handle, + jint metadata_type) { + rs2_error *e = NULL; + int rv = rs2_supports_frame_metadata(reinterpret_cast(handle), + static_cast(metadata_type), &e); + handle_error(env, e); + return rv > 0; +} diff --git a/src/android/jni/frame_queue.cpp b/src/android/jni/frame_queue.cpp new file mode 100644 index 00000000000..9c88b3081b1 --- /dev/null +++ b/src/android/jni/frame_queue.cpp @@ -0,0 +1,48 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_FrameQueue_nCreate(JNIEnv *env, jclass type, jint capacity) { + rs2_error *e = NULL; + rs2_frame_queue *rv = rs2_create_frame_queue(capacity, &e); + handle_error(env, e); + return (jlong) rv; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FrameQueue_nDelete(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_frame_queue((rs2_frame_queue *) handle); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_FrameQueue_nPollForFrame(JNIEnv *env, jclass type, + jlong handle) { + rs2_frame *output_frame = NULL; + rs2_error *e = NULL; + int rv = rs2_poll_for_frame((rs2_frame_queue *) handle, &output_frame, &e); + handle_error(env, e); + return (jlong) (rv ? output_frame : 0); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_FrameQueue_nWaitForFrames(JNIEnv *env, jclass type, + jlong handle, jint timeout) { + rs2_error *e = NULL; + rs2_frame *rv = rs2_wait_for_frame((rs2_frame_queue *) handle, (unsigned int) timeout, &e); + handle_error(env, e); + return (jlong) rv; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FrameQueue_nEnqueue(JNIEnv *env, jclass type, jlong handle, + jlong frameHandle) { + rs2_error *e = NULL; + rs2_frame_add_ref((rs2_frame *) frameHandle, &e); + handle_error(env, e); + rs2_enqueue_frame((rs2_frame *) frameHandle, (void *) handle); +} diff --git a/src/android/jni/frameset.cpp b/src/android/jni/frameset.cpp new file mode 100644 index 00000000000..354d81a8f74 --- /dev/null +++ b/src/android/jni/frameset.cpp @@ -0,0 +1,37 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FrameSet_nAddRef(JNIEnv *env, jclass type, jlong handle) { + rs2_error *e = NULL; + rs2_frame_add_ref((rs2_frame *) handle, &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FrameSet_nRelease(JNIEnv *env, jclass type, + jlong handle) { + rs2_release_frame(reinterpret_cast(handle)); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_FrameSet_nExtractFrame(JNIEnv *env, jclass type, + jlong handle, jint index) { + rs2_error *e = NULL; + rs2_frame *rv = rs2_extract_frame(reinterpret_cast(handle), index, &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT jint JNICALL +Java_com_intel_realsense_librealsense_FrameSet_nFrameCount(JNIEnv *env, jclass type, + jlong handle) { + rs2_error *e = NULL; + int rv = rs2_embedded_frames_count(reinterpret_cast(handle), &e); + handle_error(env, e); + return rv; +} \ No newline at end of file diff --git a/src/android/jni/fw_logger.cpp b/src/android/jni/fw_logger.cpp new file mode 100644 index 00000000000..485d1f5223d --- /dev/null +++ b/src/android/jni/fw_logger.cpp @@ -0,0 +1,28 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include + +#include "error.h" +#include "../../../include/librealsense2/rs.h" +#include "../fw-logger/rs-fw-logger.h" + +std::shared_ptr g_fw_logger; +#define TAG "rs_fw_log" + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FwLogger_nStartReadingFwLogs(JNIEnv *env, jclass clazz, + jstring file_path) { + const char *filePath = env->GetStringUTFChars(file_path, 0); + g_fw_logger = std::make_shared(filePath); + + env->ReleaseStringUTFChars(file_path, filePath); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_FwLogger_nStopReadingFwLogs(JNIEnv *env, jclass clazz) { + g_fw_logger.reset(); +} diff --git a/src/android/jni/options.cpp b/src/android/jni/options.cpp new file mode 100644 index 00000000000..a70cc2e0cdf --- /dev/null +++ b/src/android/jni/options.cpp @@ -0,0 +1,92 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Options_nSupports(JNIEnv *env, jclass type, jlong handle, jint option) { + rs2_error* e = NULL; + auto rv = rs2_supports_option((const rs2_options *) handle, (rs2_option) option, &e); + handle_error(env, e); + return rv > 0; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Options_nSetValue(JNIEnv *env, jclass type, jlong handle, + jint option, jfloat value) { + rs2_error* e = NULL; + rs2_set_option(reinterpret_cast(handle), static_cast(option), value, &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT jfloat JNICALL +Java_com_intel_realsense_librealsense_Options_nGetValue(JNIEnv *env, jclass type, jlong handle, + jint option) { + rs2_error* e = NULL; + float rv = rs2_get_option(reinterpret_cast(handle), + static_cast(option), &e); + handle_error(env, e); + return rv; +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Options_nGetRange(JNIEnv *env, jclass type, jlong handle, + jint option, jobject outParams) { + float min = -1; + float max = -1; + float step = -1; + float def = -1; + rs2_error *e = NULL; + jclass clazz = env->GetObjectClass(outParams); + + rs2_get_option_range(reinterpret_cast(handle), + static_cast(option), &min, &max, &step, &def, &e); + handle_error(env, e); + + if(e) + return; + + jfieldID minField = env->GetFieldID(clazz, "min", "F"); + jfieldID maxField = env->GetFieldID(clazz, "max", "F"); + jfieldID stepField = env->GetFieldID(clazz, "step", "F"); + jfieldID defField = env->GetFieldID(clazz, "def", "F"); + + env->SetFloatField(outParams, minField, min); + env->SetFloatField(outParams, maxField, max); + env->SetFloatField(outParams, stepField, step); + env->SetFloatField(outParams, defField, def); +} + +extern "C" JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Options_nIsReadOnly(JNIEnv *env, jclass type, jlong handle, + jint option) { + rs2_error* e = NULL; + int rv = rs2_is_option_read_only(reinterpret_cast(handle), + static_cast(option), &e); + handle_error(env, e); + return rv > 0; +} + +extern "C" JNIEXPORT jstring JNICALL +Java_com_intel_realsense_librealsense_Options_nGetDescription(JNIEnv *env, jclass type, + jlong handle, jint option) { + rs2_error* e = NULL; + const char *rv = rs2_get_option_description(reinterpret_cast(handle), + static_cast(option), &e); + handle_error(env, e); + return env->NewStringUTF(rv); +} + +extern "C" JNIEXPORT jstring JNICALL +Java_com_intel_realsense_librealsense_Options_nGetValueDescription(JNIEnv *env, jclass type, + jlong handle, jint option, + jfloat value) { + rs2_error* e = NULL; + const char *rv = rs2_get_option_value_description(reinterpret_cast(handle), + static_cast(option), value, &e); + handle_error(env, e); + return env->NewStringUTF(rv); +} diff --git a/src/android/jni/pipeline.cpp b/src/android/jni/pipeline.cpp new file mode 100644 index 00000000000..a072d412d6d --- /dev/null +++ b/src/android/jni/pipeline.cpp @@ -0,0 +1,71 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" +#include "../../../include/librealsense2/h/rs_pipeline.h" + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nCreate(JNIEnv *env, jclass type, + jlong context) { + rs2_error* e = NULL; + rs2_pipeline* rv = rs2_create_pipeline(reinterpret_cast(context), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nStart(JNIEnv *env, jclass type, jlong handle) { + rs2_error* e = NULL; + auto rv = rs2_pipeline_start(reinterpret_cast(handle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nStartWithConfig(JNIEnv *env, jclass type, + jlong handle, jlong configHandle) { + rs2_error *e = NULL; + auto rv = rs2_pipeline_start_with_config(reinterpret_cast(handle), + reinterpret_cast(configHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nStop(JNIEnv *env, jclass type, jlong handle) { + rs2_error* e = NULL; + rs2_pipeline_stop(reinterpret_cast(handle), &e); + handle_error(env, e); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nDelete(JNIEnv *env, jclass type, + jlong handle) { + rs2_delete_pipeline(reinterpret_cast(handle)); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Pipeline_nWaitForFrames(JNIEnv *env, jclass type, + jlong handle, jint timeout) { + rs2_error* e = NULL; + rs2_frame *rv = rs2_pipeline_wait_for_frames(reinterpret_cast(handle), timeout, &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_PipelineProfile_nDelete(JNIEnv *env, jclass type, + jlong handle) { + rs2_delete_pipeline_profile(reinterpret_cast(handle)); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_PipelineProfile_nGetDevice(JNIEnv *env, jclass type, + jlong handle) { + rs2_error* e = NULL; + rs2_device *rv = rs2_pipeline_profile_get_device(reinterpret_cast(handle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} diff --git a/src/android/jni/processing.cpp b/src/android/jni/processing.cpp new file mode 100644 index 00000000000..0f02439d40d --- /dev/null +++ b/src/android/jni/processing.cpp @@ -0,0 +1,141 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_ProcessingBlock_nDelete(JNIEnv *env, jclass type, + jlong handle) { + rs2_delete_processing_block(reinterpret_cast(handle)); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_ProcessingBlock_nInvoke(JNIEnv *env, jclass type, + jlong handle, jlong frameHandle) { + rs2_error *e = NULL; + rs2_frame_add_ref(reinterpret_cast(frameHandle), &e); + handle_error(env, e); + rs2_process_frame(reinterpret_cast(handle), + reinterpret_cast(frameHandle), &e); + handle_error(env, e); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Align_nCreate(JNIEnv *env, jclass type, jlong queueHandle, + jint alignTo) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_align(static_cast(alignTo), &e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Colorizer_nCreate(JNIEnv *env, jclass type, jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_colorizer(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_DecimationFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_decimation_filter_block(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_DisparityTransformFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle, + jboolean transformToDisparity) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_disparity_transform_block(transformToDisparity, &e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_HoleFillingFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_hole_filling_filter_block(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_Pointcloud_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_pointcloud(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_SpatialFilter_nCreate(JNIEnv *env, jclass type, jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_spatial_filter_block(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_TemporalFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_temporal_filter_block(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_ThresholdFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_threshold(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} + +extern "C" +JNIEXPORT jlong JNICALL +Java_com_intel_realsense_librealsense_ZeroOrderInvalidationFilter_nCreate(JNIEnv *env, jclass type, + jlong queueHandle) { + rs2_error *e = NULL; + rs2_processing_block *rv = rs2_create_zero_order_invalidation_block(&e); + handle_error(env, e); + rs2_start_processing_queue(rv, reinterpret_cast(queueHandle), &e); + handle_error(env, e); + return reinterpret_cast(rv); +} diff --git a/src/android/jni/sensor.cpp b/src/android/jni/sensor.cpp new file mode 100644 index 00000000000..c332aa2f6e1 --- /dev/null +++ b/src/android/jni/sensor.cpp @@ -0,0 +1,100 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include +#include +#include "error.h" + +#include "../../../include/librealsense2/rs.h" + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_Sensor_nRelease(JNIEnv *env, jclass type, jlong handle) { + rs2_delete_sensor(reinterpret_cast(handle)); +} + +extern "C" +JNIEXPORT jlongArray JNICALL +Java_com_intel_realsense_librealsense_Sensor_nGetStreamProfiles(JNIEnv *env, jclass type, + jlong handle) { + rs2_error* e = nullptr; + std::shared_ptr list( + rs2_get_stream_profiles(reinterpret_cast(handle), &e), + rs2_delete_stream_profiles_list); + handle_error(env, e); + + auto size = rs2_get_stream_profiles_count(list.get(), &e); + handle_error(env, e); + + std::vector profiles; + + for (auto i = 0; i < size; i++) + { + auto sp = rs2_get_stream_profile(list.get(), i, &e); + handle_error(env, e); + profiles.push_back(sp); + } + + jlongArray rv = env->NewLongArray(profiles.size()); + env->SetLongArrayRegion(rv, 0, profiles.size(), reinterpret_cast(profiles.data())); + return rv; +} + +extern "C" +JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_Sensor_nIsSensorExtendableTo(JNIEnv *env, jclass type, + jlong handle, jint extension) { + rs2_error *e = NULL; + int rv = rs2_is_sensor_extendable_to(reinterpret_cast(handle), + static_cast(extension), &e); + handle_error(env, e); + return rv > 0; +} + + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_RoiSensor_nSetRegionOfInterest(JNIEnv *env, jclass clazz, + jlong handle, jint min_x, + jint min_y, jint max_x, + jint max_y) { + rs2_error* e = nullptr; + rs2_set_region_of_interest(reinterpret_cast(handle), min_x, min_y, max_x, max_y, &e); + handle_error(env, e); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_RoiSensor_nGetRegionOfInterest(JNIEnv *env, jclass type, + jlong handle, jobject roi) { + int min_x, min_y, max_x, max_y; + rs2_error *e = nullptr; + rs2_get_region_of_interest(reinterpret_cast(handle), &min_x, &min_y, &max_x, &max_y, &e); + handle_error(env, e); + + if(e) + return; + + jclass clazz = env->GetObjectClass(roi); + + jfieldID min_x_field = env->GetFieldID(clazz, "minX", "I"); + jfieldID min_y_field = env->GetFieldID(clazz, "minY", "I"); + jfieldID max_x_field = env->GetFieldID(clazz, "maxX", "I"); + jfieldID max_y_field = env->GetFieldID(clazz, "maxY", "I"); + + env->SetIntField(roi, min_x_field, min_x); + env->SetIntField(roi, min_y_field, min_y); + env->SetIntField(roi, max_x_field, max_x); + env->SetIntField(roi, max_y_field, max_y); +} + +extern "C" +JNIEXPORT jfloat JNICALL +Java_com_intel_realsense_librealsense_DepthSensor_nGetDepthScale(JNIEnv *env, jclass clazz, + jlong handle) { + rs2_error* e = nullptr; + float depthScale = rs2_get_depth_scale(reinterpret_cast(handle), &e); + handle_error(env, e); + return depthScale; +} \ No newline at end of file diff --git a/src/android/jni/stream_profile.cpp b/src/android/jni/stream_profile.cpp new file mode 100644 index 00000000000..155e9725501 --- /dev/null +++ b/src/android/jni/stream_profile.cpp @@ -0,0 +1,72 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#include +#include "error.h" +#include "../../../include/librealsense2/rs.h" + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_StreamProfile_nGetProfile(JNIEnv *env, jclass type, + jlong handle, jobject params) { + rs2_stream stream_type = RS2_STREAM_ANY; + rs2_format format = RS2_FORMAT_ANY; + int index = -1; + int uniqueId = -1; + int frameRate = -1; + rs2_error *e = NULL; + + rs2_get_stream_profile_data((const rs2_stream_profile *) handle, &stream_type, &format, &index, &uniqueId, &frameRate, &e); + handle_error(env, e); + + jclass clazz = env->GetObjectClass(params); + + jfieldID typeField = env->GetFieldID(clazz, "type", "I"); + jfieldID formatField = env->GetFieldID(clazz, "format", "I"); + jfieldID indexField = env->GetFieldID(clazz, "index", "I"); + jfieldID uniqueIdField = env->GetFieldID(clazz, "uniqueId", "I"); + jfieldID frameRateField = env->GetFieldID(clazz, "frameRate", "I"); + + env->SetIntField(params, typeField, stream_type); + env->SetIntField(params, formatField, format); + env->SetIntField(params, indexField, index); + env->SetIntField(params, uniqueIdField, uniqueId); + env->SetIntField(params, frameRateField, frameRate); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_VideoStreamProfile_nGetResolution(JNIEnv *env, jclass type, + jlong handle, + jobject params) { + int width = -1; + int height = -1; + rs2_error *e = NULL; + + rs2_get_video_stream_resolution((const rs2_stream_profile *) handle, &width, &height, &e); + handle_error(env, e); + + jclass clazz = env->GetObjectClass(params); + + jfieldID widthField = env->GetFieldID(clazz, "width", "I"); + jfieldID heightField = env->GetFieldID(clazz, "height", "I"); + + env->SetIntField(params, widthField, width); + env->SetIntField(params, heightField, height); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_intel_realsense_librealsense_StreamProfile_nDelete(JNIEnv *env, jclass type, + jlong handle) { + rs2_delete_stream_profile((rs2_stream_profile *) handle); +} + +extern "C" +JNIEXPORT jboolean JNICALL +Java_com_intel_realsense_librealsense_StreamProfile_nIsProfileExtendableTo(JNIEnv *env, jclass type, + jlong handle, + jint extension) { + rs2_error *e = NULL; + int rv = rs2_stream_profile_is(reinterpret_cast(handle), + static_cast(extension), &e); + handle_error(env, e); + return rv; +} diff --git a/src/android/rsusb-backend-android.cpp b/src/android/rsusb-backend-android.cpp new file mode 100644 index 00000000000..30c9130a31a --- /dev/null +++ b/src/android/rsusb-backend-android.cpp @@ -0,0 +1,21 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015 Intel Corporation. All Rights Reserved. + +#include "rsusb-backend-android.h" +#include "device_watcher.h" + +namespace librealsense +{ + namespace platform + { + std::shared_ptr create_backend() + { + return std::make_shared(); + } + + std::shared_ptr android_backend::create_device_watcher() const + { + return device_watcher_usbhost::instance(); + } + } +} diff --git a/src/android/rsusb-backend-android.h b/src/android/rsusb-backend-android.h new file mode 100644 index 00000000000..1e0bc3ee7d7 --- /dev/null +++ b/src/android/rsusb-backend-android.h @@ -0,0 +1,20 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "../rsusb-backend/rsusb-backend.h" + +namespace librealsense +{ + namespace platform + { + class android_backend : public rs_backend + { + public: + android_backend() {} + + std::shared_ptr create_device_watcher() const override; + }; + } +} diff --git a/src/api.h b/src/api.h index f311c52ed48..36b820198ff 100644 --- a/src/api.h +++ b/src/api.h @@ -15,13 +15,7 @@ struct rs2_raw_data_buffer std::vector buffer; }; -struct rs2_error -{ - std::string message; - const char* function; - std::string args; - rs2_exception_type exception_type; -}; +typedef struct rs2_error rs2_error; struct rs2_notification { @@ -38,6 +32,8 @@ struct rs2_device std::shared_ptr device; }; +rs2_error * rs2_create_error(const char* what, const char* name, const char* args, rs2_exception_type type); + namespace librealsense { // Facilities for streaming function arguments @@ -107,12 +103,14 @@ namespace librealsense stream_args(out, names, rest...); } + + static void translate_exception(const char * name, std::string args, rs2_error ** error) { try { throw; } - catch (const librealsense_exception& e) { if (error) *error = new rs2_error{ e.what(), name, move(args), e.get_exception_type() }; } - catch (const std::exception& e) { if (error) *error = new rs2_error{ e.what(), name, move(args) }; } - catch (...) { if (error) *error = new rs2_error{ "unknown error", name, move(args) }; } + catch (const librealsense_exception& e) { if (error) *error = rs2_create_error(e.what(), name, args.c_str(), e.get_exception_type() ); } + catch (const std::exception& e) { if (error) *error = rs2_create_error(e.what(), name, args.c_str(), RS2_EXCEPTION_TYPE_COUNT); } + catch (...) { if (error) *error = rs2_create_error("unknown error", name, args.c_str(), RS2_EXCEPTION_TYPE_COUNT); } } #ifdef TRACE_API @@ -406,6 +404,7 @@ return __p.invoke(func);\ #define VALIDATE_NOT_NULL(ARG) if(!(ARG)) throw std::runtime_error("null pointer passed for argument \"" #ARG "\""); #define VALIDATE_ENUM(ARG) if(!librealsense::is_valid(ARG)) { std::ostringstream ss; ss << "invalid enum value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } + #define VALIDATE_OPTION(OBJ, OPT_ID) if(!OBJ->options->supports_option(OPT_ID)) { std::ostringstream ss; ss << "object doesn't support option #" << std::to_string(OPT_ID); throw librealsense::invalid_value_exception(ss.str()); } #define VALIDATE_RANGE(ARG, MIN, MAX) if((ARG) < (MIN) || (ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw librealsense::invalid_value_exception(ss.str()); } #define VALIDATE_LE(ARG, MAX) if((ARG) > (MAX)) { std::ostringstream ss; ss << "out of range value for argument \"" #ARG "\""; throw std::runtime_error(ss.str()); } #define VALIDATE_INTERFACE_NO_THROW(X, T) \ @@ -433,3 +432,59 @@ return __p.invoke(func);\ return p; \ })() } + +inline int lrs_major(int version) +{ + return version / 10000; +} +inline int lrs_minor(int version) +{ + return (version % 10000) / 100; +} +inline int lrs_patch(int version) +{ + return (version % 100); +} + +inline std::string api_version_to_string(int version) +{ + if (lrs_major(version) == 0) return librealsense::to_string() << version; + return librealsense::to_string() << lrs_major(version) << "." << lrs_minor(version) << "." << lrs_patch(version); +} + +inline void report_version_mismatch(int runtime, int compiletime) +{ + throw librealsense::invalid_value_exception(librealsense::to_string() << "API version mismatch: librealsense.so was compiled with API version " + << api_version_to_string(runtime) << " but the application was compiled with " + << api_version_to_string(compiletime) << "! Make sure correct version of the library is installed (make install)"); +} + +inline void verify_version_compatibility(int api_version) +{ + rs2_error* error = nullptr; + auto runtime_api_version = rs2_get_api_version(&error); + if (error) + throw librealsense::invalid_value_exception(rs2_get_error_message(error)); + + if ((runtime_api_version < 10) || (api_version < 10)) + { + // when dealing with version < 1.0.0 that were still using single number for API version, require exact match + if (api_version != runtime_api_version) + report_version_mismatch(runtime_api_version, api_version); + } + else if ((lrs_major(runtime_api_version) == 1 && lrs_minor(runtime_api_version) <= 9) + || (lrs_major(api_version) == 1 && lrs_minor(api_version) <= 9)) + { + // when dealing with version < 1.10.0, API breaking changes are still possible without minor version change, require exact match + if (api_version != runtime_api_version) + report_version_mismatch(runtime_api_version, api_version); + } + else + { + // starting with 1.10.0, versions with same patch are compatible + // Incompatible versions differ on major, or with the executable's minor bigger than the library's one. + if ((lrs_major(api_version) != lrs_major(runtime_api_version)) + || (lrs_minor(api_version) > lrs_minor(runtime_api_version))) + report_version_mismatch(runtime_api_version, api_version); + } +} diff --git a/src/archive.cpp b/src/archive.cpp index 7e23aa34f22..04ef1d66939 100644 --- a/src/archive.cpp +++ b/src/archive.cpp @@ -1,7 +1,11 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. #include "metadata-parser.h" #include "archive.h" #include #include "core/processing.h" +#include "core/video.h" +#include "frame-archive.h" #define MIN_DISTANCE 1e-6 @@ -21,6 +25,7 @@ namespace librealsense float3* points::get_vertices() { + get_frame_data(); // call GetData to ensure data is in main memory auto xyz = (float3*)data.data(); return xyz; } @@ -39,12 +44,19 @@ namespace librealsense return std::make_tuple(texture_data[idx], texture_data[idx + 1], texture_data[idx + 2]); } + void points::export_to_ply(const std::string& fname, const frame_holder& texture) { + auto stream_profile = get_stream().get(); + auto video_stream_profile = dynamic_cast(stream_profile); + if (!video_stream_profile) + throw librealsense::invalid_value_exception("stream must be video stream"); const auto vertices = get_vertices(); const auto texcoords = get_texture_coordinates(); std::vector new_vertices; std::vector> new_tex; + std::map index2reducedIndex; + new_vertices.reserve(get_vertex_count()); new_tex.reserve(get_vertex_count()); assert(get_vertex_count()); @@ -52,7 +64,8 @@ namespace librealsense if (fabs(vertices[i].x) >= MIN_DISTANCE || fabs(vertices[i].y) >= MIN_DISTANCE || fabs(vertices[i].z) >= MIN_DISTANCE) { - new_vertices.push_back(vertices[i]); + index2reducedIndex[i] = new_vertices.size(); + new_vertices.push_back({ vertices[i].x, -1*vertices[i].y, -1*vertices[i].z }); if (texture) { auto color = get_texcolor(texture, texcoords[i].x, texcoords[i].y); @@ -60,9 +73,29 @@ namespace librealsense } } + const auto threshold = 0.05f; + auto width = video_stream_profile->get_width(); + std::vector> faces; + for (int x = 0; x < width - 1; ++x) { + for (int y = 0; y < video_stream_profile->get_height() - 1; ++y) { + auto a = y * width + x, b = y * width + x + 1, c = (y + 1)*width + x, d = (y + 1)*width + x + 1; + if (vertices[a].z && vertices[b].z && vertices[c].z && vertices[d].z + && abs(vertices[a].z - vertices[b].z) < threshold && abs(vertices[a].z - vertices[c].z) < threshold + && abs(vertices[b].z - vertices[d].z) < threshold && abs(vertices[c].z - vertices[d].z) < threshold) + { + if (index2reducedIndex.count(a) == 0 || index2reducedIndex.count(b) == 0 || index2reducedIndex.count(c) == 0 || + index2reducedIndex.count(d) == 0) + continue; + + faces.emplace_back(index2reducedIndex[a], index2reducedIndex[d], index2reducedIndex[b]); + faces.emplace_back(index2reducedIndex[d], index2reducedIndex[a], index2reducedIndex[c]); + } + } + } + std::ofstream out(fname); out << "ply\n"; - out << "format binary_little_endian 1.0\n" /*"format ascii 1.0\n"*/; + out << "format binary_little_endian 1.0\n"; out << "comment pointcloud saved from Realsense Viewer\n"; out << "element vertex " << new_vertices.size() << "\n"; out << "property float" << sizeof(float) * 8 << " x\n"; @@ -74,6 +107,8 @@ namespace librealsense out << "property uchar green\n"; out << "property uchar blue\n"; } + out << "element face " << faces.size() << "\n"; + out << "property list uchar int vertex_indices\n"; out << "end_header\n"; out.close(); @@ -94,6 +129,14 @@ namespace librealsense out.write(reinterpret_cast(&z), sizeof(uint8_t)); } } + auto size = faces.size(); + for (int i = 0; i < size; ++i) { + int three = 3; + out.write(reinterpret_cast(&three), sizeof(uint8_t)); + out.write(reinterpret_cast(&(std::get<0>(faces[i]))), sizeof(int)); + out.write(reinterpret_cast(&(std::get<1>(faces[i]))), sizeof(int)); + out.write(reinterpret_cast(&(std::get<2>(faces[i]))), sizeof(int)); + } } size_t points::get_vertex_count() const @@ -103,236 +146,17 @@ namespace librealsense float2* points::get_texture_coordinates() { + get_frame_data(); // call GetData to ensure data is in main memory auto xyz = (float3*)data.data(); auto ijs = (float2*)(xyz + get_vertex_count()); return ijs; } - // Defines general frames storage model - template - class frame_archive : public std::enable_shared_from_this>, public archive_interface - { - std::atomic* max_frame_queue_size; - std::atomic published_frames_count; - small_heap published_frames; - std::shared_ptr _metadata_parsers = nullptr; - callbacks_heap callback_inflight; - - std::vector freelist; // return frames here - std::atomic recycle_frames; - int pending_frames = 0; - std::recursive_mutex mutex; - std::shared_ptr _time_service; - - std::weak_ptr _sensor; - std::shared_ptr get_sensor() const override { return _sensor.lock(); } - void set_sensor(std::shared_ptr s) override { _sensor = s; } - - T alloc_frame(const size_t size, const frame_additional_data& additional_data, bool requires_memory) - { - T backbuffer; - //const size_t size = modes[stream].get_image_size(stream); - { - std::lock_guard guard(mutex); - - if (requires_memory) - { - // Attempt to obtain a buffer of the appropriate size from the freelist - for (auto it = begin(freelist); it != end(freelist); ++it) - { - if (it->data.size() == size) - { - backbuffer = std::move(*it); - freelist.erase(it); - break; - } - } - } - - // Discard buffers that have been in the freelist for longer than 1s - for (auto it = begin(freelist); it != end(freelist);) - { - if (additional_data.timestamp > it->additional_data.timestamp + 1000) it = freelist.erase(it); - else ++it; - } - } - - if (requires_memory) - { - backbuffer.data.resize(size, 0); // TODO: Allow users to provide a custom allocator for frame buffers - } - backbuffer.additional_data = additional_data; - return backbuffer; - } - - frame_interface* track_frame(T& f) - { - std::unique_lock lock(mutex); - - auto published_frame = f.publish(this->shared_from_this()); - if (published_frame) - { - published_frame->acquire(); - return published_frame; - } - - LOG_DEBUG("publish(...) failed"); - return nullptr; - } - - void unpublish_frame(frame_interface* frame) - { - if (frame) - { - auto f = (T*)frame; - log_frame_callback_end(f); - std::unique_lock lock(mutex); - - frame->keep(); - - if (recycle_frames) - { - freelist.push_back(std::move(*f)); - } - lock.unlock(); - - if (f->is_fixed()) - published_frames.deallocate(f); - else - delete f; - } - } - - void keep_frame(frame_interface* frame) - { - --published_frames_count; - } - - frame_interface* publish_frame(frame_interface* frame) - { - auto f = (T*)frame; - - unsigned int max_frames = *max_frame_queue_size; - - if (published_frames_count >= max_frames - && max_frames) - { - LOG_DEBUG("User didn't release frame resource."); - return nullptr; - } - auto new_frame = (max_frames ? published_frames.allocate() : new T()); - - if (new_frame) - { - if (max_frames) new_frame->mark_fixed(); - } - else - { - new_frame = new T(); - } - - ++published_frames_count; - *new_frame = std::move(*f); - - return new_frame; - } - - void log_frame_callback_end(T* frame) const - { - if (frame && frame->get_stream()) - { - auto callback_ended = _time_service ? _time_service->get_time() : 0; - auto callback_warning_duration = 1000 / (frame->get_stream()->get_framerate() + 1); - auto callback_duration = callback_ended - frame->get_frame_callback_start_time_point(); - - LOG_DEBUG("CallbackFinished," << librealsense::get_string(frame->get_stream()->get_stream_type()) << "," << frame->get_frame_number() - << ",DispatchedAt," << callback_ended); - - if (callback_duration > callback_warning_duration) - { - LOG_DEBUG("Frame Callback [" << librealsense::get_string(frame->get_stream()->get_stream_type()) - << "#" << std::dec << frame->additional_data.frame_number - << "] overdue. (Duration: " << callback_duration - << "ms, FPS: " << frame->get_stream()->get_framerate() << ", Max Duration: " << callback_warning_duration << "ms)"); - } - } - } - - std::shared_ptr get_md_parsers() const { return _metadata_parsers; }; - - friend class frame; - - public: - explicit frame_archive(std::atomic* in_max_frame_queue_size, - std::shared_ptr ts, - std::shared_ptr parsers) - : max_frame_queue_size(in_max_frame_queue_size), - mutex(), recycle_frames(true), _time_service(ts), - _metadata_parsers(parsers) - { - published_frames_count = 0; - } - - callback_invocation_holder begin_callback() - { - return { callback_inflight.allocate(), &callback_inflight }; - } - - void release_frame_ref(frame_interface* ref) - { - ref->release(); - } - - frame_interface* alloc_and_track(const size_t size, const frame_additional_data& additional_data, bool requires_memory) - { - auto frame = alloc_frame(size, additional_data, requires_memory); - return track_frame(frame); - } - - void flush() - { - published_frames.stop_allocation(); - callback_inflight.stop_allocation(); - recycle_frames = false; - - auto callbacks_inflight = callback_inflight.get_size(); - if (callbacks_inflight > 0) - { - LOG_WARNING(callbacks_inflight << " callbacks are still running on some other threads. Waiting until all callbacks return..."); - } - // wait until user is done with all the stuff he chose to borrow - callback_inflight.wait_until_empty(); - - { - std::lock_guard guard(mutex); - freelist.clear(); - } - - pending_frames = published_frames.get_size(); - if (pending_frames > 0) - { - LOG_INFO("The user was holding on to " - << std::dec << pending_frames << " frames after stream 0x" - << std::hex << this << " stopped" << std::dec); - } - // frames and their frame refs are not flushed, by design - } - - ~frame_archive() - { - if (pending_frames > 0) - { - LOG_INFO("All frames from stream 0x" - << std::hex << this << " are now released by the user"); - } - } - - }; std::shared_ptr make_archive(rs2_extension type, std::atomic* in_max_frame_queue_size, std::shared_ptr ts, - std::shared_ptr parsers) + std::shared_ptr parsers) { switch (type) { @@ -366,6 +190,7 @@ namespace librealsense { if (ref_count.fetch_sub(1) == 1) { + unpublish(); on_release(); owner->unpublish_frame(this); } @@ -415,6 +240,11 @@ namespace librealsense return it->second->supports(*this); } + int frame::get_frame_data_size() const + { + return data.size(); + } + const byte* frame::get_frame_data() const { const byte* frame_data = data.data(); @@ -460,7 +290,7 @@ namespace librealsense void frame::log_callback_start(rs2_time_t timestamp) { update_frame_callback_start_ts(timestamp); - LOG_DEBUG("CallbackStarted," << std::dec << librealsense::get_string(get_stream()->get_stream_type()) << "," << get_frame_number() << ",DispatchedAt," << timestamp); + LOG_DEBUG("CallbackStarted," << std::dec << librealsense::get_string(get_stream()->get_stream_type()) << "," << get_frame_number() << ",DispatchedAt," << std::fixed << timestamp); } void frame::log_callback_end(rs2_time_t timestamp) const @@ -468,7 +298,8 @@ namespace librealsense auto callback_warning_duration = 1000.f / (get_stream()->get_framerate() + 1); auto callback_duration = timestamp - get_frame_callback_start_time_point(); - LOG_DEBUG("CallbackFinished," << librealsense::get_string(get_stream()->get_stream_type()) << "," << get_frame_number() << ",DispatchedAt," << timestamp); + LOG_DEBUG("CallbackFinished," << librealsense::get_string(get_stream()->get_stream_type()) << "," + << std::dec << get_frame_number() << ",DispatchedAt," << std::fixed << timestamp); if (callback_duration > callback_warning_duration) { diff --git a/src/archive.h b/src/archive.h index b582e9e58ac..f4159d63e53 100644 --- a/src/archive.h +++ b/src/archive.h @@ -14,29 +14,34 @@ namespace librealsense class archive_interface; class md_attribute_parser_base; class frame; -} - -namespace librealsense -{ typedef std::map> metadata_parser_map; + /* + Each frame is attached with a static header + This is a quick and dirty way to manage things like timestamp, + frame-number, metadata, etc... Things shared between all frame extensions + The point of this class is to be **fixed-sized**, avoiding per frame allocations + */ struct frame_additional_data { - rs2_time_t timestamp = 0; - unsigned long long frame_number = 0; + rs2_time_t timestamp = 0; + unsigned long long frame_number = 0; rs2_timestamp_domain timestamp_domain = RS2_TIMESTAMP_DOMAIN_HARDWARE_CLOCK; - rs2_time_t system_time = 0; - rs2_time_t frame_callback_started = 0; - uint32_t metadata_size = 0; - bool fisheye_ae_mode = false; + rs2_time_t system_time = 0; // sys-clock at the time the frame was received from the backend + rs2_time_t frame_callback_started = 0; // time when the frame was sent to user callback + uint32_t metadata_size = 0; + bool fisheye_ae_mode = false; // TODO: remove in future release std::array metadata_blob; - rs2_time_t backend_timestamp = 0; - rs2_time_t last_timestamp = 0; - unsigned long long last_frame_number = 0; - bool is_blocking = false; + rs2_time_t backend_timestamp = 0; // time when the frame arrived to the backend (OS dependent) + rs2_time_t last_timestamp = 0; + unsigned long long last_frame_number = 0; + bool is_blocking = false; // when running from recording, this bit indicates + // if the recorder was configured to realtime mode or not + // if true, this will force any queue receiving this frame not to drop it + uint32_t raw_size = 0; // The frame transmitted size (payload only) - frame_additional_data() {}; + frame_additional_data() {} frame_additional_data(double in_timestamp, unsigned long long in_frame_number, @@ -46,7 +51,8 @@ namespace librealsense double backend_time, rs2_time_t last_timestamp, unsigned long long last_frame_number, - bool in_is_blocking) + bool in_is_blocking, + uint32_t transmitted_size = 0) : timestamp(in_timestamp), frame_number(in_frame_number), system_time(in_system_time), @@ -54,7 +60,8 @@ namespace librealsense backend_timestamp(backend_time), last_timestamp(last_timestamp), last_frame_number(last_frame_number), - is_blocking(in_is_blocking) + is_blocking(in_is_blocking), + raw_size(transmitted_size) { // Copy up to 255 bytes to preserve metadata as raw data if (metadata_size) @@ -77,7 +84,6 @@ namespace librealsense virtual void unpublish_frame(frame_interface* frame) = 0; virtual void keep_frame(frame_interface* frame) = 0; virtual ~archive_interface() = default; - }; std::shared_ptr make_archive(rs2_extension type, @@ -86,7 +92,7 @@ namespace librealsense std::shared_ptr parsers); // Define a movable but explicitly noncopyable buffer type to hold our frame data - class frame : public frame_interface + class LRS_EXTENSION_API frame : public frame_interface { public: std::vector data; @@ -121,6 +127,7 @@ namespace librealsense virtual ~frame() { on_release.reset(); } rs2_metadata_type get_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const override; bool supports_frame_metadata(const rs2_frame_metadata_value& frame_metadata) const override; + int get_frame_data_size() const override; const byte* get_frame_data() const override; rs2_time_t get_frame_timestamp() const override; rs2_timestamp_domain get_frame_timestamp_domain() const override; @@ -144,6 +151,7 @@ namespace librealsense void keep() override; frame_interface* publish(std::shared_ptr new_owner) override; + void unpublish() override {} void attach_continuation(frame_continuation&& continuation) override { on_release = std::move(continuation); } void disable_continuation() override { on_release.reset(); } @@ -225,6 +233,10 @@ namespace librealsense { return first()->supports_frame_metadata(frame_metadata); } + int get_frame_data_size() const override + { + return first()->get_frame_data_size(); + } const byte* get_frame_data() const override { return first()->get_frame_data(); @@ -328,18 +340,6 @@ namespace librealsense return _depth_units.value(); } - const frame_interface* get_original_depth() const - { - auto res = _original.frame; - auto df = dynamic_cast(res); - if (df) - { - auto prev = df->get_original_depth(); - if (prev) return prev; - } - return res; - } - void set_original(frame_holder h) { _original = std::move(h); @@ -348,7 +348,7 @@ namespace librealsense { _original = {}; } - }, get_frame_data())); + }, nullptr)); } protected: @@ -478,16 +478,16 @@ namespace librealsense pose_frame() : frame() {} - float3 get_translation() const { return reinterpret_cast(data.data())->translation; } - float3 get_velocity() const { return reinterpret_cast(data.data())->velocity; } - float3 get_acceleration() const { return reinterpret_cast(data.data())->acceleration; } - float4 get_rotation() const { return reinterpret_cast(data.data())->rotation; } - float3 get_angular_velocity() const { return reinterpret_cast(data.data())->angular_velocity; } - float3 get_angular_acceleration() const { return reinterpret_cast(data.data())->angular_acceleration; } - uint32_t get_tracker_confidence() const { return reinterpret_cast(data.data())->tracker_confidence; } - uint32_t get_mapper_confidence() const { return reinterpret_cast(data.data())->mapper_confidence; } + float3 get_translation() const { return reinterpret_cast(get_frame_data())->translation; } + float3 get_velocity() const { return reinterpret_cast(get_frame_data())->velocity; } + float3 get_acceleration() const { return reinterpret_cast(get_frame_data())->acceleration; } + float4 get_rotation() const { return reinterpret_cast(get_frame_data())->rotation; } + float3 get_angular_velocity() const { return reinterpret_cast(get_frame_data())->angular_velocity; } + float3 get_angular_acceleration() const { return reinterpret_cast(get_frame_data())->angular_acceleration; } + uint32_t get_tracker_confidence() const { return reinterpret_cast(get_frame_data())->tracker_confidence; } + uint32_t get_mapper_confidence() const { return reinterpret_cast(get_frame_data())->mapper_confidence; } }; MAP_EXTENSION(RS2_EXTENSION_POSE_FRAME, librealsense::pose_frame); - -} \ No newline at end of file + +} diff --git a/src/auto-calibrated-device.h b/src/auto-calibrated-device.h new file mode 100644 index 00000000000..c643ff50512 --- /dev/null +++ b/src/auto-calibrated-device.h @@ -0,0 +1,22 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2019 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "types.h" +#include "core/streaming.h" + +namespace librealsense +{ + class auto_calibrated_interface + { + public: + virtual void write_calibration() const = 0; + virtual std::vector run_on_chip_calibration(int timeout_ms, std::string json, float* health, update_progress_callback_ptr progress_callback) = 0; + virtual std::vector run_tare_calibration( int timeout_ms, float ground_truth_mm, std::string json, update_progress_callback_ptr progress_callback) = 0; + virtual std::vector get_calibration_table() const = 0; + virtual void set_calibration_table(const std::vector& calibration) = 0; + virtual void reset_to_factory_calibration() const = 0; + }; + MAP_EXTENSION(RS2_EXTENSION_AUTO_CALIBRATED_DEVICE, auto_calibrated_interface); +} diff --git a/src/backend.cpp b/src/backend.cpp index 36478fb33c8..76eea015639 100644 --- a/src/backend.cpp +++ b/src/backend.cpp @@ -1,14 +1,16 @@ // License: Apache 2.0. See LICENSE file in root directory. // Copyright(c) 2015 Intel Corporation. All Rights Reserved. -#if defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) +#if defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) && !defined(RS2_USE_ANDROID_BACKEND) // UVC support will be provided via libuvc / libusb backend -#elif !defined(RS2_USE_LIBUVC_BACKEND) && defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) +#elif !defined(RS2_USE_LIBUVC_BACKEND) && defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) && !defined(RS2_USE_ANDROID_BACKEND) // UVC support will be provided via Windows Media Foundation / WinUSB backend -#elif !defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && defined(RS2_USE_WINUSB_UVC_BACKEND) +#elif !defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && defined(RS2_USE_WINUSB_UVC_BACKEND)&&!defined(RS2_USE_ANDROID_BACKEND) // UVC support will be provided via WinUSB / WinUSB backend -#elif !defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) +#elif !defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND)&&!defined(RS2_USE_ANDROID_BACKEND) // UVC support will be provided via Video 4 Linux 2 / libusb backend +#elif !defined(RS2_USE_LIBUVC_BACKEND) && !defined(RS2_USE_WMF_BACKEND) && !defined(RS2_USE_V4L2_BACKEND) && !defined(RS2_USE_WINUSB_UVC_BACKEND) && defined(RS2_USE_ANDROID_BACKEND) +// UVC support will be provided via Android backend #else #error No UVC backend selected. Please #define exactly one of RS2_USE_LIBUVC_BACKEND, RS2_USE_WMF_BACKEND, RS2_USE_WINUSB_UVC_BACKEND or RS2_USE_V4L2_BACKEND #endif diff --git a/src/backend.h b/src/backend.h index 2c0388a9b0c..a402e3dfb53 100644 --- a/src/backend.h +++ b/src/backend.h @@ -7,6 +7,10 @@ #include "../include/librealsense2/h/rs_types.h" // Inherit all type definitions in the public API #include "../include/librealsense2/h/rs_option.h" +#include "usb/usb-types.h" +#include "usb/usb-device.h" +#include "hid/hid-types.h" +#include "command_transfer.h" #include // For shared_ptr #include // For function @@ -20,10 +24,10 @@ #include #include #include +#include const uint16_t MAX_RETRIES = 100; -const uint16_t VID_INTEL_CAMERA = 0x8086; const uint8_t DEFAULT_V4L2_FRAME_BUFFERS = 4; const uint16_t DELAY_FOR_RETRIES = 50; @@ -93,7 +97,7 @@ namespace librealsense { public: virtual double get_time() const = 0; - ~time_service() = default; + virtual ~time_service() = default; }; class os_time_service: public time_service @@ -107,18 +111,7 @@ namespace librealsense struct guid { uint32_t data1; uint16_t data2, data3; uint8_t data4[8]; }; // subdevice and node fields are assigned by Host driver; unit and GUID are hard-coded in camera firmware - struct extension_unit { int subdevice, unit, node; guid id; }; - - class command_transfer - { - public: - virtual std::vector send_receive( - const std::vector& data, - int timeout_ms = 5000, - bool require_response = true) = 0; - - virtual ~command_transfer() = default; - }; + struct extension_unit { int subdevice; uint8_t unit; int node; guid id; }; enum power_state { @@ -160,9 +153,17 @@ namespace librealsense uint32_t timestamp; uint8_t source_clock[6]; }; + + struct hid_header + { + uint8_t length; // HID report total size. Limited to 255 + uint8_t report_type; // Curently supported: IMU/Custom Temperature + uint64_t timestamp; // Driver-produced/FW-based timestamp. Note that currently only the lower 32bit are used + }; #pragma pack(pop) constexpr uint8_t uvc_header_size = sizeof(uvc_header); + constexpr uint8_t hid_header_size = sizeof(hid_header); struct frame_object { @@ -175,29 +176,6 @@ namespace librealsense typedef std::function)> frame_callback; - // Binary-coded decimal represent the USB specification to which the UVC device complies - enum usb_spec : uint16_t { - usb_undefined = 0, - usb1_type = 0x0100, - usb1_1_type = 0x0110, - usb2_type = 0x0200, - usb2_1_type = 0x0210, - usb3_type = 0x0300, - usb3_1_type = 0x0310, - usb3_2_type = 0x0320, - }; - - static const std::map usb_spec_names = { - { usb_undefined,"Undefined" }, - { usb1_type, "1.0" }, - { usb1_1_type, "1.1" }, - { usb2_type, "2.0" }, - { usb2_1_type, "2.1" }, - { usb3_type, "3.0" }, - { usb3_1_type, "3.1" }, - { usb3_2_type, "3.2" } - }; - struct uvc_device_info { std::string id = ""; // to distinguish between different pins of the same device @@ -206,6 +184,7 @@ namespace librealsense uint16_t mi = 0; std::string unique_id = ""; std::string device_path = ""; + std::string serial = ""; usb_spec conn_spec = usb_undefined; uint32_t uvc_capabilities = 0; bool has_metadata_node = false; @@ -245,30 +224,6 @@ namespace librealsense (a.conn_spec == b.conn_spec); } - struct usb_device_info - { - std::string id; - - uint16_t vid; - uint16_t pid; - uint16_t mi; - std::string unique_id; - usb_spec conn_spec; - - operator std::string() - { - std::stringstream s; - - s << "vid- " << std::hex << vid << - "\npid- " << std::hex << pid << - "\nmi- " << mi << - "\nsusb specification- " << std::hex << (uint16_t)conn_spec << std::dec << - "\nunique_id- " << unique_id; - - return s.str(); - } - }; - inline bool operator==(const usb_device_info& a, const usb_device_info& b) { @@ -280,36 +235,7 @@ namespace librealsense (a.conn_spec == b.conn_spec); } - struct hid_device_info - { - std::string id; - std::string vid; - std::string pid; - std::string unique_id; - std::string device_path; - operator std::string() - { - std::stringstream s; - s << "id- " << id << - "\nvid- " << std::hex << vid << - "\npid- " << std::hex << pid << - "\nunique_id- " << unique_id << - "\npath- " << device_path; - - return s.str(); - } - }; - - inline bool operator==(const hid_device_info& a, - const hid_device_info& b) - { - return (a.id == b.id) && - (a.vid == b.vid) && - (a.pid == b.pid) && - (a.unique_id == b.unique_id) && - (a.device_path == b.device_path); - } struct playback_device_info { @@ -331,7 +257,7 @@ namespace librealsense { void* device_ptr; - operator std::string() + operator std::string() const { std::ostringstream oss; oss << device_ptr; @@ -384,6 +310,7 @@ namespace librealsense value }; +#pragma pack(push, 1) struct hid_sensor_data { short x; @@ -395,6 +322,7 @@ namespace librealsense uint32_t ts_low; uint32_t ts_high; }; +#pragma pack(pop) typedef std::function hid_callback; @@ -402,6 +330,7 @@ namespace librealsense { public: virtual ~hid_device() = default; + virtual void register_profiles(const std::vector& hid_profiles) = 0;// TODO: this should be queried from the device virtual void open(const std::vector& hid_profiles) = 0; virtual void close() = 0; virtual void stop_capture() = 0; @@ -575,13 +504,6 @@ namespace librealsense std::shared_ptr _dev; }; - class usb_device : public command_transfer - { - public: - // interupt endpoint and any additional USB specific stuff - }; - - class device_watcher; @@ -604,14 +526,12 @@ namespace librealsense std::vector usb_devices; std::vector hid_devices; std::vector playback_devices; - std::vector tm2_devices; bool operator == (const backend_device_group& other) { return !list_changed(uvc_devices, other.uvc_devices) && !list_changed(hid_devices, other.hid_devices) && - !list_changed(playback_devices, other.playback_devices) && - !list_changed(tm2_devices, other.tm2_devices); + !list_changed(playback_devices, other.playback_devices); } operator std::string() @@ -659,7 +579,7 @@ namespace librealsense virtual std::shared_ptr create_uvc_device(uvc_device_info info) const = 0; virtual std::vector query_uvc_devices() const = 0; - virtual std::shared_ptr create_usb_device(usb_device_info info) const = 0; + virtual std::shared_ptr create_usb_device(usb_device_info info) const = 0; virtual std::vector query_usb_devices() const = 0; virtual std::shared_ptr create_hid_device(hid_device_info info) const = 0; @@ -669,12 +589,19 @@ namespace librealsense virtual std::shared_ptr create_device_watcher() const = 0; + virtual std::string get_device_serial(uint16_t device_vid, uint16_t device_pid, const std::string& device_uid) const + { + std::string empty_str; + return empty_str; + } + virtual ~backend() = default; }; class multi_pins_hid_device : public hid_device { public: + void register_profiles(const std::vector& hid_profiles) override { _hid_profiles = hid_profiles; } void open(const std::vector& sensor_iio) override { for (auto&& dev : _dev) dev->open(sensor_iio); @@ -714,6 +641,7 @@ namespace librealsense private: std::vector> _dev; + std::vector _hid_profiles; }; class multi_pins_uvc_device : public uvc_device diff --git a/src/command_transfer.h b/src/command_transfer.h new file mode 100644 index 00000000000..032456cd43b --- /dev/null +++ b/src/command_transfer.h @@ -0,0 +1,71 @@ +// License: Apache 2.0. See LICENSE file in root directory. +// Copyright(c) 2015 Intel Corporation. All Rights Reserved. + +#pragma once + +#include "usb/usb-device.h" + +#include +#include +#include + +namespace librealsense +{ + namespace platform + { + class command_transfer + { + public: + virtual std::vector send_receive( + const std::vector& data, + int timeout_ms = 5000, + bool require_response = true) = 0; + + virtual ~command_transfer() = default; + }; + + class command_transfer_usb : public command_transfer + { + public: + command_transfer_usb(const rs_usb_device& device) : _device(device) {} + ~command_transfer_usb() {}; + + std::vector send_receive( + const std::vector& data, + int timeout_ms, + bool require_response = true) override + { + auto intfs = _device->get_interfaces(); + auto it = std::find_if(intfs.begin(), intfs.end(), + [](const rs_usb_interface& i) { return i->get_class() == RS2_USB_CLASS_VENDOR_SPECIFIC; }); + if (it == intfs.end()) + throw std::runtime_error("can't find VENDOR_SPECIFIC interface of device: " + _device->get_info().id); + + auto hwm = *it; + + std::vector output; + if (const auto& m = _device->open(hwm->get_number())) + { + uint32_t transfered_count = 0; + auto sts = m->bulk_transfer(hwm->first_endpoint(RS2_USB_ENDPOINT_DIRECTION_WRITE), const_cast(data.data()), static_cast(data.size()), transfered_count, timeout_ms); + + if (sts != RS2_USB_STATUS_SUCCESS) + throw std::runtime_error("command transfer failed to execute bulk transfer, error: " + usb_status_to_string.at(sts)); + + output.resize(DEFAULT_BUFFER_SIZE); + sts = m->bulk_transfer(hwm->first_endpoint(RS2_USB_ENDPOINT_DIRECTION_READ), output.data(), static_cast(output.size()), transfered_count, timeout_ms); + + if (sts != RS2_USB_STATUS_SUCCESS) + throw std::runtime_error("command transfer failed to execute bulk transfer, error: " + usb_status_to_string.at(sts)); + + output.resize(transfered_count); + } + return output; + } + + private: + rs_usb_device _device; + static const uint32_t DEFAULT_BUFFER_SIZE = 1024; + }; + } +} diff --git a/src/concurrency.h b/src/concurrency.h index d8b01c12bc5..33512ebe3fb 100644 --- a/src/concurrency.h +++ b/src/concurrency.h @@ -48,7 +48,7 @@ class single_consumer_queue void blocking_enqueue(T&& item) { - auto pred = [this]()->bool { return _queue.size() <= _cap; }; + auto pred = [this]()->bool { return _queue.size() < _cap || _need_to_flush; }; std::unique_lock lock(_mutex); if (_accepting) @@ -61,7 +61,7 @@ class single_consumer_queue } - bool dequeue(T* item ,unsigned int timeout_ms = 5000) + bool dequeue(T* item ,unsigned int timeout_ms) { std::unique_lock lock(_mutex); _accepting = true; @@ -116,6 +116,7 @@ class single_consumer_queue _accepting = false; _need_to_flush = true; + _enq_cv.notify_all(); while (_queue.size() > 0) { auto item = std::move(_queue.front()); @@ -154,7 +155,7 @@ class single_consumer_frame_queue _queue.enqueue(std::move(item)); } - bool dequeue(T* item, unsigned int timeout_ms = 5000) + bool dequeue(T* item, unsigned int timeout_ms) { return _queue.dequeue(item, timeout_ms); } @@ -179,11 +180,6 @@ class single_consumer_frame_queue _queue.start(); } - void flush() - { - _queue.flush(); - } - size_t size() { return _queue.size(); @@ -200,7 +196,7 @@ class dispatcher : _owner(owner) {} - bool try_sleep(int ms) + bool try_sleep(std::chrono::milliseconds::rep ms) { using namespace std::chrono; @@ -221,11 +217,12 @@ class dispatcher { _thread = std::thread([&]() { + int timeout_ms = 5000; while (_is_alive) { std::function item; - if (_queue.dequeue(&item)) + if (_queue.dequeue(&item, timeout_ms)) { cancellable_timer time(this); @@ -260,6 +257,25 @@ class dispatcher } } + template + void invoke_and_wait(T item, std::function exit_condition, bool is_blocking = false) + { + bool done = false; + + //action + auto func = std::move(item); + invoke([&, func](dispatcher::cancellable_timer c) + { + func(c); + done = true; + _blocking_invoke_cv.notify_one(); + }, is_blocking); + + //wait + std::unique_lock lk(_blocking_invoke_mutex); + while(_blocking_invoke_cv.wait_for(lk, std::chrono::milliseconds(10), [&](){ return !done && !exit_condition(); })); + } + void start() { std::unique_lock lock(_was_stopped_mutex); @@ -338,6 +354,9 @@ class dispatcher std::condition_variable _was_flushed_cv; std::mutex _was_flushed_mutex; + std::condition_variable _blocking_invoke_cv; + std::mutex _blocking_invoke_mutex; + std::atomic _is_alive; }; @@ -385,3 +404,43 @@ class active_object dispatcher _dispatcher; std::atomic _stopped; }; + +class watchdog +{ +public: + watchdog(std::function operation, uint64_t timeout_ms) : + _operation(std::move(operation)), _timeout_ms(timeout_ms) + { + _watcher = std::make_shared>([this](dispatcher::cancellable_timer cancellable_timer) + { + if(cancellable_timer.try_sleep(_timeout_ms)) + { + if(!_kicked) + _operation(); + std::lock_guard lk(_m); + _kicked = false; + } + }); + } + + ~watchdog() + { + if(_running) + stop(); + } + + void start() { std::lock_guard lk(_m); _watcher->start(); _running = true; } + void stop() { { std::lock_guard lk(_m); _running = false; } _watcher->stop(); } + bool running() { std::lock_guard lk(_m); return _running; } + void set_timeout(uint64_t timeout_ms) { std::lock_guard lk(_m); _timeout_ms = timeout_ms; } + void kick() { std::lock_guard lk(_m); _kicked = true; } + +private: + std::mutex _m; + uint64_t _timeout_ms; + bool _kicked = false; + bool _running = false; + bool _blocker = true; + std::function _operation; + std::shared_ptr> _watcher; +}; \ No newline at end of file diff --git a/src/context.cpp b/src/context.cpp index 8bb3443a4e6..8bdecb08cfc 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -8,9 +8,10 @@ #include #include -#include "l500/l500.h" +#include "l500/l500-depth.h" #include "ivcam/sr300.h" #include "ds5/ds5-factory.h" +#include "l500/l500-factory.h" #include "ds5/ds5-timestamp.h" #include "backend.h" #include "mock/recorder.h" @@ -19,6 +20,7 @@ #include "stream.h" #include "environment.h" #include "context.h" +#include "fw-update/fw-update-factory.h" #ifdef WITH_TRACKING #include "tm2/tm-info.h" @@ -78,18 +80,20 @@ bool contains(const std::shared_ptr& first, second_data.playback_devices.end()) return false; } - for (auto&& tm : first_data.tm2_devices) - { - if (std::find(second_data.tm2_devices.begin(), - second_data.tm2_devices.end(), tm) == - second_data.tm2_devices.end()) - return false; - } return true; } namespace librealsense { + const std::map platform_color_fourcc_to_rs2_format = { + {rs_fourcc('Y','U','Y','2'), RS2_FORMAT_YUYV}, + {rs_fourcc('U','Y','V','Y'), RS2_FORMAT_UYVY} + }; + const std::map platform_color_fourcc_to_rs2_stream = { + {rs_fourcc('Y','U','Y','2'), RS2_STREAM_COLOR}, + {rs_fourcc('U','Y','V','Y'), RS2_STREAM_COLOR} + }; + context::context(backend_type type, const char* filename, const char* section, @@ -97,7 +101,12 @@ namespace librealsense std::string min_api_version) : _devices_changed_callback(nullptr, [](rs2_devices_changed_callback*){}) { - LOG_DEBUG("Librealsense " << std::string(std::begin(rs2_api_version),std::end(rs2_api_version))); + static bool version_logged=false; + if (!version_logged) + { + version_logged = true; + LOG_DEBUG("Librealsense " << std::string(std::begin(rs2_api_version),std::end(rs2_api_version))); + } switch(type) { @@ -109,27 +118,13 @@ namespace librealsense break; case backend_type::playback: _backend = std::make_shared(filename, section, min_api_version); - break; - default: throw invalid_value_exception(to_string() << "Undefined backend type " << static_cast(type)); + // Strongly-typed enum. Default is redundant } environment::get_instance().set_time_service(_backend->create_time_service()); _device_watcher = _backend->create_device_watcher(); -#if WITH_TRACKING - _tm2_context = std::make_shared(this); - _tm2_context->on_device_changed += [this](std::shared_ptr removed, std::shared_ptr added)-> void - { - std::vector rs2_devices_info_added; - std::vector rs2_devices_info_removed; - if(removed) - rs2_devices_info_removed.push_back({ shared_from_this(), removed }); - if (added) - rs2_devices_info_added.push_back({ shared_from_this(), added }); - raise_devices_changed(rs2_devices_info_removed, rs2_devices_info_added); - }; -#endif } @@ -208,14 +203,12 @@ namespace librealsense std::vector _uvcs; }; - class platform_camera_sensor : public uvc_sensor + class platform_camera_sensor : public synthetic_sensor { public: - platform_camera_sensor(const std::shared_ptr& ctx, - device* owner, - std::shared_ptr uvc_device, - std::unique_ptr timestamp_reader) - : uvc_sensor("RGB Camera", uvc_device, move(timestamp_reader), owner), + platform_camera_sensor(device* owner, + std::shared_ptr uvc_sensor) + : synthetic_sensor("RGB Camera", uvc_sensor, owner), _default_stream(new stream(RS2_STREAM_COLOR)) { } @@ -224,9 +217,9 @@ namespace librealsense { auto lock = environment::get_instance().get_extrinsics_graph().lock(); - auto results = uvc_sensor::init_stream_profiles(); + auto results = synthetic_sensor::init_stream_profiles(); - for (auto p : results) + for (auto&& p : results) { // Register stream types assign_stream(_default_stream, p); @@ -253,9 +246,11 @@ namespace librealsense std::vector> devs; for (auto&& info : uvc_infos) devs.push_back(ctx->get_backend().create_uvc_device(info)); - auto color_ep = std::make_shared(ctx, this, - std::make_shared(devs), - std::unique_ptr(new ds5_timestamp_reader(environment::get_instance().get_time_service()))); + auto raw_color_ep = std::make_shared("Raw RGB Camera", + std::make_shared(devs), + std::unique_ptr(new ds5_timestamp_reader(environment::get_instance().get_time_service())), + this); + auto color_ep = std::make_shared(this, raw_color_ep); add_sensor(color_ep); register_info(RS2_CAMERA_INFO_NAME, "Platform Camera"); @@ -266,23 +261,23 @@ namespace librealsense register_info(RS2_CAMERA_INFO_PHYSICAL_PORT, uvc_infos.front().device_path); register_info(RS2_CAMERA_INFO_PRODUCT_ID, pid_str); - color_ep->register_pixel_format(pf_yuy2); - color_ep->register_pixel_format(pf_yuyv); - - color_ep->try_register_pu(RS2_OPTION_BACKLIGHT_COMPENSATION); - color_ep->try_register_pu(RS2_OPTION_BRIGHTNESS); - color_ep->try_register_pu(RS2_OPTION_CONTRAST); - color_ep->try_register_pu(RS2_OPTION_EXPOSURE); - color_ep->try_register_pu(RS2_OPTION_GAMMA); - color_ep->try_register_pu(RS2_OPTION_HUE); - color_ep->try_register_pu(RS2_OPTION_SATURATION); - color_ep->try_register_pu(RS2_OPTION_SHARPNESS); - color_ep->try_register_pu(RS2_OPTION_WHITE_BALANCE); - color_ep->try_register_pu(RS2_OPTION_ENABLE_AUTO_EXPOSURE); - color_ep->try_register_pu(RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE); + color_ep->register_processing_block(processing_block_factory::create_pbf_vector(RS2_FORMAT_UYVY, map_supported_color_formats(RS2_FORMAT_UYVY), RS2_STREAM_COLOR)); + color_ep->register_processing_block(processing_block_factory::create_pbf_vector(RS2_FORMAT_YUYV, map_supported_color_formats(RS2_FORMAT_YUYV), RS2_STREAM_COLOR)); + + raw_color_ep->try_register_pu(RS2_OPTION_BACKLIGHT_COMPENSATION); + raw_color_ep->try_register_pu(RS2_OPTION_BRIGHTNESS); + raw_color_ep->try_register_pu(RS2_OPTION_CONTRAST); + raw_color_ep->try_register_pu(RS2_OPTION_EXPOSURE); + raw_color_ep->try_register_pu(RS2_OPTION_GAMMA); + raw_color_ep->try_register_pu(RS2_OPTION_HUE); + raw_color_ep->try_register_pu(RS2_OPTION_SATURATION); + raw_color_ep->try_register_pu(RS2_OPTION_SHARPNESS); + raw_color_ep->try_register_pu(RS2_OPTION_WHITE_BALANCE); + raw_color_ep->try_register_pu(RS2_OPTION_ENABLE_AUTO_EXPOSURE); + raw_color_ep->try_register_pu(RS2_OPTION_ENABLE_AUTO_WHITE_BALANCE); } - virtual rs2_intrinsics get_intrinsics(unsigned int subdevice, const stream_profile& profile) const + virtual rs2_intrinsics get_intrinsics(unsigned int, const stream_profile&) const { return rs2_intrinsics {}; } @@ -292,13 +287,12 @@ namespace librealsense std::vector markers; markers.push_back({ RS2_STREAM_COLOR, -1, 640, 480, RS2_FORMAT_RGB8, 30, profile_tag::PROFILE_TAG_SUPERSET | profile_tag::PROFILE_TAG_DEFAULT }); return markers; - }; + } }; std::shared_ptr platform_camera_info::create(std::shared_ptr ctx, bool register_device_notifications) const { - auto&& backend = ctx->get_backend(); return std::make_shared(ctx, _uvcs, this->get_device_data(), register_device_notifications); } @@ -311,7 +305,6 @@ namespace librealsense { platform::backend_device_group devices(_backend->query_uvc_devices(), _backend->query_usb_devices(), _backend->query_hid_devices()); - return create_devices(devices, _playback_devices, mask); } @@ -325,28 +318,34 @@ namespace librealsense // to allow them to modify context later on auto ctx = t->shared_from_this(); -#ifdef WITH_TRACKING - auto tm2_devices = tm2_info::pick_tm2_devices(ctx, _tm2_context->get_manager(), _tm2_context->query_devices()); - std::copy(begin(tm2_devices), end(tm2_devices), std::back_inserter(list)); -#endif - - auto l500_devices = l500_info::pick_l500_devices(ctx, devices.uvc_devices, devices.usb_devices); - std::copy(begin(l500_devices), end(l500_devices), std::back_inserter(list)); - if (mask & RS2_PRODUCT_LINE_D400) { auto ds5_devices = ds5_info::pick_ds5_devices(ctx, devices); std::copy(begin(ds5_devices), end(ds5_devices), std::back_inserter(list)); } + auto l500_devices = l500_info::pick_l500_devices(ctx, devices); + std::copy(begin(l500_devices), end(l500_devices), std::back_inserter(list)); + if (mask & RS2_PRODUCT_LINE_SR300) { auto sr300_devices = sr300_info::pick_sr300_devices(ctx, devices.uvc_devices, devices.usb_devices); std::copy(begin(sr300_devices), end(sr300_devices), std::back_inserter(list)); } - auto recovery_devices = recovery_info::pick_recovery_devices(ctx, devices.usb_devices); - std::copy(begin(recovery_devices), end(recovery_devices), std::back_inserter(list)); +#ifdef WITH_TRACKING + if (mask & RS2_PRODUCT_LINE_T200) + { + auto tm2_devices = tm2_info::pick_tm2_devices(ctx, devices.usb_devices); + std::copy(begin(tm2_devices), end(tm2_devices), std::back_inserter(list)); + } +#endif + + if (mask & RS2_PRODUCT_LINE_D400 || mask & RS2_PRODUCT_LINE_SR300)//supported recovery devices + { + auto recovery_devices = fw_update_info::pick_recovery_devices(ctx, devices.usb_devices, mask); + std::copy(begin(recovery_devices), end(recovery_devices), std::back_inserter(list)); + } if (mask & RS2_PRODUCT_LINE_NON_INTEL) { @@ -438,6 +437,12 @@ namespace librealsense return callback_id; } + void context::unregister_internal_device_callback(uint64_t cb_id) + { + std::lock_guard lock(_devices_changed_callbacks_mtx); + _devices_changed_callbacks.erase(cb_id); + } + void context::set_devices_changed_callback(devices_changed_callback_ptr callback) { _device_watcher->stop(); @@ -449,12 +454,6 @@ namespace librealsense }); } - void context::unregister_internal_device_callback(uint64_t cb_id) - { - std::lock_guard lock(_devices_changed_callbacks_mtx); - _devices_changed_callbacks.erase(cb_id); - } - std::vector filter_by_product(const std::vector& devices, const std::set& pid_list) { std::vector result; @@ -483,21 +482,34 @@ namespace librealsense const std::vector& hids) { std::vector, std::vector>> results; + uint16_t vid; + uint16_t pid; + for (auto&& dev : devices) { std::vector hid_group; auto unique_id = dev.front().unique_id; + auto device_serial = dev.front().serial; + for (auto&& hid : hids) { - if (hid.unique_id == unique_id || hid.unique_id == "*") - hid_group.push_back(hid); + if( ! hid.unique_id.empty() ) + { + std::stringstream(hid.vid) >> std::hex >> vid; + std::stringstream(hid.pid) >> std::hex >> pid; + + if (hid.unique_id == unique_id) + { + hid_group.push_back(hid); + } + } } results.push_back(std::make_pair(dev, hid_group)); } return results; } - std::shared_ptr context::add_device(const std::string& file) + std::shared_ptr context::add_device(const std::string& file) { auto it = _playback_devices.find(file); if (it != _playback_devices.end() && it->second.lock()) @@ -510,7 +522,22 @@ namespace librealsense auto prev_playback_devices = _playback_devices; _playback_devices[file] = dinfo; on_device_changed({}, {}, prev_playback_devices, _playback_devices); - return playback_dev; + return std::move(dinfo); + } + + void context::add_software_device(std::shared_ptr dev) + { + auto file = dev->get_device_data().playback_devices.front().file_path; + + auto it = _playback_devices.find(file); + if (it != _playback_devices.end() && it->second.lock()) + { + //Already exists + throw librealsense::invalid_value_exception(to_string() << "File \"" << file << "\" already loaded to context"); + } + auto prev_playback_devices = _playback_devices; + _playback_devices[file] = dev; + on_device_changed({}, {}, prev_playback_devices, _playback_devices); } void context::remove_device(const std::string& file) @@ -526,6 +553,12 @@ namespace librealsense on_device_changed({},{}, prev_playback_devices, _playback_devices); } +#if WITH_TRACKING + void context::unload_tracking_module() + { + } +#endif + std::vector> group_devices_by_unique_id(const std::vector& devices) { std::map> map; @@ -598,3 +631,5 @@ namespace librealsense return results; } } + +using namespace librealsense; diff --git a/src/context.h b/src/context.h index d044bbe51a1..545e1c308fc 100644 --- a/src/context.h +++ b/src/context.h @@ -7,9 +7,6 @@ #include "backend.h" #include "mock/recorder.h" #include "core/streaming.h" -#if WITH_TRACKING - #include "tm2/tm-context.h" -#endif #include #include @@ -115,22 +112,26 @@ namespace librealsense rs2_recording_mode mode = RS2_RECORDING_MODE_COUNT, std::string min_api_version = "0.0.0"); - void stop(){_device_watcher->stop();} + void stop(){ if (!_devices_changed_callbacks.size()) _device_watcher->stop();} ~context(); std::vector> query_devices(int mask) const; const platform::backend& get_backend() const { return *_backend; } uint64_t register_internal_device_callback(devices_changed_callback_ptr callback); - void set_devices_changed_callback(devices_changed_callback_ptr callback); void unregister_internal_device_callback(uint64_t cb_id); + void set_devices_changed_callback(devices_changed_callback_ptr callback); - std::vector> create_devices(platform::backend_device_group devices, + std::vector> create_devices(platform::backend_device_group devices, const std::map>& playback_devices, int mask) const; + std::shared_ptr add_device(const std::string& file); + void remove_device(const std::string& file); + void add_software_device(std::shared_ptr software_device); - std::shared_ptr add_device(const std::string& file); - void remove_device(const std::string& file); +#if WITH_TRACKING + void unload_tracking_module(); +#endif private: void on_device_changed(platform::backend_device_group old, @@ -142,14 +143,10 @@ namespace librealsense std::shared_ptr> fetch_edge(int from, int to); std::shared_ptr _backend; -#if WITH_TRACKING - std::shared_ptr _tm2_context; -#endif std::shared_ptr _device_watcher; std::map> _playback_devices; std::map _devices_changed_callbacks; - devices_changed_callback_ptr _devices_changed_callback; std::map> _streams; std::map>>> _extrinsics; diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt new file mode 100644 index 00000000000..754b7a3bc48 --- /dev/null +++ b/src/core/CMakeLists.txt @@ -0,0 +1,16 @@ +# License: Apache 2.0. See LICENSE file in root directory. +# Copyright(c) 2019 Intel Corporation. All Rights Reserved. +target_sources(${LRS_TARGET} + PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/streaming.h" + "${CMAKE_CURRENT_LIST_DIR}/debug.h" + "${CMAKE_CURRENT_LIST_DIR}/advanced_mode.h" + "${CMAKE_CURRENT_LIST_DIR}/roi.h" + "${CMAKE_CURRENT_LIST_DIR}/motion.h" + "${CMAKE_CURRENT_LIST_DIR}/video.h" + "${CMAKE_CURRENT_LIST_DIR}/options.h" + "${CMAKE_CURRENT_LIST_DIR}/info.h" + "${CMAKE_CURRENT_LIST_DIR}/extension.h" + "${CMAKE_CURRENT_LIST_DIR}/processing.h" + "${CMAKE_CURRENT_LIST_DIR}/serialization.h" +) diff --git a/src/core/advanced_mode.h b/src/core/advanced_mode.h index 8efd0fd0073..e74f0b8307c 100644 --- a/src/core/advanced_mode.h +++ b/src/core/advanced_mode.h @@ -9,6 +9,8 @@ #define RS400_ADVANCED_MODE_HPP #include "ds5/advanced_mode/presets.h" #include "../../include/librealsense2/h/rs_advanced_mode_command.h" +#include "serializable-interface.h" + #undef RS400_ADVANCED_MODE_HPP @@ -26,7 +28,8 @@ typedef enum etDepthTableControl = 9, etAEControl = 10, etCencusRadius9 = 11, - etLastAdvancedModeGroup = 12, // Must be last + etAFactor = 12, + etLastAdvancedModeGroup = 13, // Must be last } EtAdvancedModeRegGroup; @@ -51,9 +54,10 @@ namespace librealsense MAP_ADVANCED_MODE(STDepthTableControl, etDepthTableControl); MAP_ADVANCED_MODE(STAEControl, etAEControl); MAP_ADVANCED_MODE(STCensusRadius, etCencusRadius9); + MAP_ADVANCED_MODE(STAFactor, etAFactor); - class ds5_advanced_mode_interface : public recordable + class ds5_advanced_mode_interface : public serializable_interface, public recordable { public: virtual bool is_enabled() const = 0; @@ -76,6 +80,7 @@ namespace librealsense virtual void get_depth_table_control(STDepthTableControl* ptr, int mode = 0) const = 0; virtual void get_ae_control(STAEControl* ptr, int mode = 0) const = 0; virtual void get_census_radius(STCensusRadius* ptr, int mode = 0) const = 0; + virtual void get_amp_factor(STAFactor* ptr, int mode = 0) const = 0; virtual void set_depth_control_group(const STDepthControlGroup& val) = 0; virtual void set_rsm(const STRsm& val) = 0; @@ -89,9 +94,7 @@ namespace librealsense virtual void set_depth_table_control(const STDepthTableControl& val) = 0; virtual void set_ae_control(const STAEControl& val) = 0; virtual void set_census_radius(const STCensusRadius& val) = 0; - - virtual std::vector serialize_json() const = 0; - virtual void load_json(const std::string& json_content) = 0; + virtual void set_amp_factor(const STAFactor& val) = 0; virtual ~ds5_advanced_mode_interface() = default; }; @@ -104,7 +107,7 @@ namespace librealsense { public: explicit ds5_advanced_mode_base(std::shared_ptr hwm, - uvc_sensor& depth_sensor); + synthetic_sensor& depth_sensor); void create_snapshot(std::shared_ptr& snapshot) const override {}; void enable_recording(std::function recording_function) override {}; @@ -129,6 +132,7 @@ namespace librealsense void get_depth_table_control(STDepthTableControl* ptr, int mode = 0) const override; void get_ae_control(STAEControl* ptr, int mode = 0) const override; void get_census_radius(STCensusRadius* ptr, int mode = 0) const override; + void get_amp_factor(STAFactor* ptr, int mode = 0) const override; void set_depth_control_group(const STDepthControlGroup& val) override; void set_rsm(const STRsm& val) override; @@ -142,15 +146,20 @@ namespace librealsense void set_depth_table_control(const STDepthTableControl& val) override; void set_ae_control(const STAEControl& val) override; void set_census_radius(const STCensusRadius& val) override; + void set_amp_factor(const STAFactor& val) override; - std::vector serialize_json() const; - void load_json(const std::string& json_content); + std::vector serialize_json() const override; + void load_json(const std::string& json_content) override; + + static const uint16_t HW_MONITOR_COMMAND_SIZE = 1000; + static const uint16_t HW_MONITOR_BUFFER_SIZE = 1024; private: - void set_exposure(uvc_sensor& sensor, const exposure_control& val); - void set_auto_exposure(uvc_sensor& sensor, const auto_exposure_control& val); - void get_exposure(uvc_sensor& sensor, exposure_control* ptr) const; - void get_auto_exposure(uvc_sensor& sensor, auto_exposure_control* ptr) const; + friend class auto_calibrated; + void set_exposure(synthetic_sensor& sensor, const exposure_control& val); + void set_auto_exposure(synthetic_sensor& sensor, const auto_exposure_control& val); + void get_exposure(synthetic_sensor& sensor, exposure_control* ptr) const; + void get_auto_exposure(synthetic_sensor& sensor, auto_exposure_control* ptr) const; void get_laser_power(laser_power_control* ptr) const; void get_laser_state(laser_state_control* ptr) const; @@ -192,16 +201,15 @@ namespace librealsense void set_color_auto_white_balance(const auto_white_balance_control& val); void set_color_power_line_frequency(const power_line_frequency_control& val); - bool supports_option(const uvc_sensor& sensor, rs2_option opt) const; + bool supports_option(const synthetic_sensor& sensor, rs2_option opt) const; std::shared_ptr _hw_monitor; - uvc_sensor& _depth_sensor; + synthetic_sensor& _depth_sensor; lazy _color_sensor; lazy _enabled; std::shared_ptr _preset_opt; - - static const uint16_t HW_MONITOR_COMMAND_SIZE = 1000; - static const uint16_t HW_MONITOR_BUFFER_SIZE = 1024; + lazy _rgb_exposure_gain_bind; + lazy _amplitude_factor_support; preset get_all() const; void set_all(const preset& p); @@ -250,7 +258,7 @@ namespace librealsense class advanced_mode_preset_option : public option_base { public: - advanced_mode_preset_option(ds5_advanced_mode_base& advanced, uvc_sensor& ep, + advanced_mode_preset_option(ds5_advanced_mode_base& advanced, synthetic_sensor& ep, const option_range& opt_range); static rs2_rs400_visual_preset to_preset(float x); @@ -265,7 +273,7 @@ namespace librealsense firmware_version get_firmware_version(const uvc_sensor& sensor) const; std::mutex _mtx; - uvc_sensor& _ep; + synthetic_sensor& _ep; ds5_advanced_mode_base& _advanced; rs2_rs400_visual_preset _last_preset; }; diff --git a/src/core/extension.h b/src/core/extension.h index cdec44b5def..fac9c4054fa 100644 --- a/src/core/extension.h +++ b/src/core/extension.h @@ -15,7 +15,7 @@ template<> struct TypeToExtension { \ static constexpr rs2_extension value = E; \ static constexpr const char* to_string() { return #T; }; \ - } + } \ namespace librealsense { diff --git a/src/core/info.h b/src/core/info.h index be55bff6bde..4e8f3486dbf 100644 --- a/src/core/info.h +++ b/src/core/info.h @@ -19,7 +19,7 @@ namespace librealsense MAP_EXTENSION(RS2_EXTENSION_INFO, librealsense::info_interface); - class info_container : public virtual info_interface , public extension_snapshot + class LRS_EXTENSION_API info_container : public virtual info_interface, public extension_snapshot { public: const std::string& get_info(rs2_camera_info info) const override; diff --git a/src/core/motion.h b/src/core/motion.h index c6c2eedd5f7..d19e529b4c3 100644 --- a/src/core/motion.h +++ b/src/core/motion.h @@ -23,10 +23,30 @@ namespace librealsense MAP_EXTENSION(RS2_EXTENSION_POSE_PROFILE, librealsense::pose_stream_profile_interface); + class pose_sensor_interface : public recordable + { + public: + virtual bool export_relocalization_map(std::vector& lmap_buf) const = 0; + virtual bool import_relocalization_map(const std::vector& lmap_buf) const = 0; + virtual bool set_static_node(const std::string& guid, const float3& pos, const float4& orient_quat) const = 0; + virtual bool get_static_node(const std::string& guid, float3& pos, float4& orient_quat) const = 0; + virtual bool remove_static_node(const std::string& guid) const = 0; + virtual ~pose_sensor_interface() = default; + }; + MAP_EXTENSION(RS2_EXTENSION_POSE_SENSOR, librealsense::pose_sensor_interface); + + class wheel_odometry_interface : public recordable + { + public: + virtual bool load_wheel_odometery_config(const std::vector& odometry_config_buf) const = 0; + virtual bool send_wheel_odometry(uint8_t wo_sensor_id, uint32_t frame_num, const float3& translational_velocity) const = 0; + virtual ~wheel_odometry_interface() = default; + }; + MAP_EXTENSION(RS2_EXTENSION_WHEEL_ODOMETER, librealsense::wheel_odometry_interface); + class tm2_extensions { public: - //Empty for now virtual void enable_loopback(const std::string& input) = 0; virtual void disable_loopback() = 0; virtual bool is_enabled() const = 0; @@ -35,4 +55,15 @@ namespace librealsense virtual ~tm2_extensions() = default; }; MAP_EXTENSION(RS2_EXTENSION_TM2, librealsense::tm2_extensions); + + class tm2_sensor_interface + { + public: + virtual void set_intrinsics(const stream_profile_interface& stream_profile, const rs2_intrinsics& intr) = 0; + virtual void set_extrinsics(const stream_profile_interface& from_profile, const stream_profile_interface& to_profile, const rs2_extrinsics& extr) = 0; + virtual void set_motion_device_intrinsics(const stream_profile_interface& stream_profile, const rs2_motion_device_intrinsic& intr) = 0; + virtual void reset_to_factory_calibration() = 0; + virtual void write_calibration() = 0; + }; + MAP_EXTENSION(RS2_EXTENSION_TM2_SENSOR, librealsense::tm2_sensor_interface); } diff --git a/src/core/options.h b/src/core/options.h index 3cf65242f78..9207e057f76 100644 --- a/src/core/options.h +++ b/src/core/options.h @@ -9,7 +9,7 @@ namespace librealsense { - struct option_range + struct LRS_EXTENSION_API option_range { float min; float max; @@ -17,7 +17,7 @@ namespace librealsense float def; }; - class option : public recordable