commit 483576b78f1644a5788210e7643e344719e7fc30 Author: InviseDivine Date: Wed Apr 1 23:25:51 2026 +0200 init diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..0926c6b --- /dev/null +++ b/.clang-format @@ -0,0 +1,80 @@ +# https://clang.llvm.org/docs/ClangFormatStyleOptions.html +SpacesBeforeTrailingComments: 1 +AlignConsecutiveMacros: Consecutive +# AlignEscapedNewlines: LeftWithLastLine +AlignOperands: Align +AlignTrailingComments: + Kind: Always +AllowShortLambdasOnASingleLine: Empty +IndentWidth: 4 +ColumnLimit: 180 +UseTab: Never +AllowShortIfStatementsOnASingleLine: Never +UseCRLF: false +AlignArrayOfStructures: None +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: true +AllowShortEnumsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AlwaysBreakTemplateDeclarations: Yes +PointerAlignment: Left +QualifierAlignment: Left +ReferenceAlignment: Left +ReflowComments: IndentOnly # ? +SpaceAroundPointerQualifiers: Before +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesInAngles: Never +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: false +NamespaceIndentation: All +SortIncludes: Never +AlwaysBreakBeforeMultilineStrings: false +BinPackArguments: true +# BinPackLongBracedList: true # ? +BinPackParameters: BinPack # ? +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: MultiLine + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false +BreakAdjacentStringLiterals: true +BreakArrays: false +BreakStringLiterals: true +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +IndentAccessModifiers: false +IndentPPDirectives: BeforeHash +InsertBraces: true +KeepEmptyLines: # ? + AtEndOfFile: false + AtStartOfBlock: false + AtStartOfFile: false +LineEnding: LF +PPIndentWidth: 4 +PackConstructorInitializers: BinPack +RemoveBracesLLVM: false +RemoveEmptyLinesInUnwrappedLines: true # ? +RemoveParentheses: MultipleParentheses +RemoveSemicolon: true +# SeparateDefinitionBlocks: Always # dont use +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +AccessModifierOffset: -4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4fa0ad6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/.vscode/ +/.vs/ +/.cache/ +/build/ +/build_linux/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0cfdc10 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.5.0) +project(KolyahGame) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake) + +CPMAddPackage("gh:raysan5/raylib#5.5") +CPMAddPackage("gh:lsalzman/enet#v1.3.18") +CPMAddPackage("gh:nemtrif/utfcpp#v4.0.6") +# CPMAddPackage("gh:zpl-c/enet#dfe906c400a2d68c61f7b5f40f51f7566503a6f6") + +file(GLOB SOURCES + ${CMAKE_SOURCE_DIR}/src/*.cpp +) + +add_executable(${PROJECT_NAME} ${SOURCES}) + +cmake_policy(SET CMP0079 NEW) +# target_link_libraries(${PROJECT_NAME} PUBLIC raylib enet_static) +if (WIN32) + target_link_libraries(enet PUBLIC winmm ws2_32) + if (MSVC) + target_link_options(${PROJECT_NAME} PUBLIC /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup) + endif() +endif() +target_link_libraries(${PROJECT_NAME} PUBLIC raylib enet utf8cpp) +target_include_directories(${PROJECT_NAME} PUBLIC + ${CMAKE_SOURCE_DIR}/src + ${enet_SOURCE_DIR}/include +) + +# if(EXISTS ${CMAKE_SOURCE_DIR}/assets) +# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/assets" "$/assets") +# else() +# message("-- WARNING: Don't forget to copy resources from .jar file to a directory with the game before launching!") +# endif() \ No newline at end of file diff --git a/assets/citrim.png b/assets/citrim.png new file mode 100644 index 0000000..7b11936 Binary files /dev/null and b/assets/citrim.png differ diff --git a/assets/danilka22ah.png b/assets/danilka22ah.png new file mode 100644 index 0000000..5ee013c Binary files /dev/null and b/assets/danilka22ah.png differ diff --git a/assets/fullharmony.png b/assets/fullharmony.png new file mode 100644 index 0000000..de06c06 Binary files /dev/null and b/assets/fullharmony.png differ diff --git a/assets/gradient.png b/assets/gradient.png new file mode 100644 index 0000000..24f7fa9 Binary files /dev/null and b/assets/gradient.png differ diff --git a/assets/invisedivine.png b/assets/invisedivine.png new file mode 100644 index 0000000..e67e1c4 Binary files /dev/null and b/assets/invisedivine.png differ diff --git a/assets/jaan.png b/assets/jaan.png new file mode 100644 index 0000000..58ccb89 Binary files /dev/null and b/assets/jaan.png differ diff --git a/assets/kolyah35.png b/assets/kolyah35.png new file mode 100644 index 0000000..f78881f Binary files /dev/null and b/assets/kolyah35.png differ diff --git a/assets/level.png b/assets/level.png new file mode 100644 index 0000000..2127a66 Binary files /dev/null and b/assets/level.png differ diff --git a/assets/minecraft.ttf b/assets/minecraft.ttf new file mode 100644 index 0000000..93c7491 Binary files /dev/null and b/assets/minecraft.ttf differ diff --git a/assets/player.pdn b/assets/player.pdn new file mode 100644 index 0000000..0bd0ba5 Binary files /dev/null and b/assets/player.pdn differ diff --git a/assets/playertest.png b/assets/playertest.png new file mode 100644 index 0000000..6b784c9 Binary files /dev/null and b/assets/playertest.png differ diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake new file mode 100644 index 0000000..eea2921 --- /dev/null +++ b/cmake/CPM.cmake @@ -0,0 +1,1291 @@ +# CPM.cmake - CMake's missing package manager +# =========================================== +# See https://github.com/cpm-cmake/CPM.cmake for usage and update instructions. +# +# MIT License +# ----------- +#[[ + Copyright (c) 2019-2023 Lars Melchior and contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + 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. +]] + +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) + +# Initialize logging prefix +if(NOT CPM_INDENT) + set(CPM_INDENT + "CPM:" + CACHE INTERNAL "" + ) +endif() + +if(NOT COMMAND cpm_message) + function(cpm_message) + message(${ARGV}) + endfunction() +endif() + +if(DEFINED EXTRACTED_CPM_VERSION) + set(CURRENT_CPM_VERSION "${EXTRACTED_CPM_VERSION}${CPM_DEVELOPMENT}") +else() + set(CURRENT_CPM_VERSION 0.40.8) +endif() + +get_filename_component(CPM_CURRENT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}" REALPATH) +if(CPM_DIRECTORY) + if(NOT CPM_DIRECTORY STREQUAL CPM_CURRENT_DIRECTORY) + if(CPM_VERSION VERSION_LESS CURRENT_CPM_VERSION) + message( + AUTHOR_WARNING + "${CPM_INDENT} \ +A dependency is using a more recent CPM version (${CURRENT_CPM_VERSION}) than the current project (${CPM_VERSION}). \ +It is recommended to upgrade CPM to the most recent version. \ +See https://github.com/cpm-cmake/CPM.cmake for more information." + ) + endif() + if(${CMAKE_VERSION} VERSION_LESS "3.17.0") + include(FetchContent) + endif() + return() + endif() + + get_property( + CPM_INITIALIZED GLOBAL "" + PROPERTY CPM_INITIALIZED + SET + ) + if(CPM_INITIALIZED) + return() + endif() +endif() + +if(CURRENT_CPM_VERSION MATCHES "development-version") + message( + WARNING "${CPM_INDENT} Your project is using an unstable development version of CPM.cmake. \ +Please update to a recent release if possible. \ +See https://github.com/cpm-cmake/CPM.cmake for details." + ) +endif() + +set_property(GLOBAL PROPERTY CPM_INITIALIZED true) + +macro(cpm_set_policies) + # the policy allows us to change options without caching + cmake_policy(SET CMP0077 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) + + # the policy allows us to change set(CACHE) without caching + if(POLICY CMP0126) + cmake_policy(SET CMP0126 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0126 NEW) + endif() + + # The policy uses the download time for timestamp, instead of the timestamp in the archive. This + # allows for proper rebuilds when a projects url changes + if(POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0135 NEW) + endif() + + # treat relative git repository paths as being relative to the parent project's remote + if(POLICY CMP0150) + cmake_policy(SET CMP0150 NEW) + set(CMAKE_POLICY_DEFAULT_CMP0150 NEW) + endif() +endmacro() +cpm_set_policies() + +option(CPM_USE_LOCAL_PACKAGES "Always try to use `find_package` to get dependencies" + $ENV{CPM_USE_LOCAL_PACKAGES} +) +option(CPM_LOCAL_PACKAGES_ONLY "Only use `find_package` to get dependencies" + $ENV{CPM_LOCAL_PACKAGES_ONLY} +) +option(CPM_DOWNLOAD_ALL "Always download dependencies from source" $ENV{CPM_DOWNLOAD_ALL}) +option(CPM_DONT_UPDATE_MODULE_PATH "Don't update the module path to allow using find_package" + $ENV{CPM_DONT_UPDATE_MODULE_PATH} +) +option(CPM_DONT_CREATE_PACKAGE_LOCK "Don't create a package lock file in the binary path" + $ENV{CPM_DONT_CREATE_PACKAGE_LOCK} +) +option(CPM_INCLUDE_ALL_IN_PACKAGE_LOCK + "Add all packages added through CPM.cmake to the package lock" + $ENV{CPM_INCLUDE_ALL_IN_PACKAGE_LOCK} +) +option(CPM_USE_NAMED_CACHE_DIRECTORIES + "Use additional directory of package name in cache on the most nested level." + $ENV{CPM_USE_NAMED_CACHE_DIRECTORIES} +) + +set(CPM_VERSION + ${CURRENT_CPM_VERSION} + CACHE INTERNAL "" +) +set(CPM_DIRECTORY + ${CPM_CURRENT_DIRECTORY} + CACHE INTERNAL "" +) +set(CPM_FILE + ${CMAKE_CURRENT_LIST_FILE} + CACHE INTERNAL "" +) +set(CPM_PACKAGES + "" + CACHE INTERNAL "" +) +set(CPM_DRY_RUN + OFF + CACHE INTERNAL "Don't download or configure dependencies (for testing)" +) + +if(DEFINED ENV{CPM_SOURCE_CACHE}) + set(CPM_SOURCE_CACHE_DEFAULT $ENV{CPM_SOURCE_CACHE}) +else() + set(CPM_SOURCE_CACHE_DEFAULT OFF) +endif() + +set(CPM_SOURCE_CACHE + ${CPM_SOURCE_CACHE_DEFAULT} + CACHE PATH "Directory to download CPM dependencies" +) + +if(NOT CPM_DONT_UPDATE_MODULE_PATH AND NOT DEFINED CMAKE_FIND_PACKAGE_REDIRECTS_DIR) + set(CPM_MODULE_PATH + "${CMAKE_BINARY_DIR}/CPM_modules" + CACHE INTERNAL "" + ) + # remove old modules + file(REMOVE_RECURSE ${CPM_MODULE_PATH}) + file(MAKE_DIRECTORY ${CPM_MODULE_PATH}) + # locally added CPM modules should override global packages + set(CMAKE_MODULE_PATH "${CPM_MODULE_PATH};${CMAKE_MODULE_PATH}") +endif() + +if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + set(CPM_PACKAGE_LOCK_FILE + "${CMAKE_BINARY_DIR}/cpm-package-lock.cmake" + CACHE INTERNAL "" + ) + file(WRITE ${CPM_PACKAGE_LOCK_FILE} + "# CPM Package Lock\n# This file should be committed to version control\n\n" + ) +endif() + +include(FetchContent) + +# Try to infer package name from git repository uri (path or url) +function(cpm_package_name_from_git_uri URI RESULT) + if("${URI}" MATCHES "([^/:]+)/?.git/?$") + set(${RESULT} + ${CMAKE_MATCH_1} + PARENT_SCOPE + ) + else() + unset(${RESULT} PARENT_SCOPE) + endif() +endfunction() + +# Try to infer package name and version from a url +function(cpm_package_name_and_ver_from_url url outName outVer) + if(url MATCHES "[/\\?]([a-zA-Z0-9_\\.-]+)\\.(tar|tar\\.gz|tar\\.bz2|zip|ZIP)(\\?|/|$)") + # We matched an archive + set(filename "${CMAKE_MATCH_1}") + + if(filename MATCHES "([a-zA-Z0-9_\\.-]+)[_-]v?(([0-9]+\\.)*[0-9]+[a-zA-Z0-9]*)") + # We matched - (ie foo-1.2.3) + set(${outName} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + set(${outVer} + "${CMAKE_MATCH_2}" + PARENT_SCOPE + ) + elseif(filename MATCHES "(([0-9]+\\.)+[0-9]+[a-zA-Z0-9]*)") + # We couldn't find a name, but we found a version + # + # In many cases (which we don't handle here) the url would look something like + # `irrelevant/ACTUAL_PACKAGE_NAME/irrelevant/1.2.3.zip`. In such a case we can't possibly + # distinguish the package name from the irrelevant bits. Moreover if we try to match the + # package name from the filename, we'd get bogus at best. + unset(${outName} PARENT_SCOPE) + set(${outVer} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + else() + # Boldly assume that the file name is the package name. + # + # Yes, something like `irrelevant/ACTUAL_NAME/irrelevant/download.zip` will ruin our day, but + # such cases should be quite rare. No popular service does this... we think. + set(${outName} + "${filename}" + PARENT_SCOPE + ) + unset(${outVer} PARENT_SCOPE) + endif() + else() + # No ideas yet what to do with non-archives + unset(${outName} PARENT_SCOPE) + unset(${outVer} PARENT_SCOPE) + endif() +endfunction() + +function(cpm_find_package NAME VERSION) + string(REPLACE " " ";" EXTRA_ARGS "${ARGN}") + find_package(${NAME} ${VERSION} ${EXTRA_ARGS} QUIET) + if(${CPM_ARGS_NAME}_FOUND) + if(DEFINED ${CPM_ARGS_NAME}_VERSION) + set(VERSION ${${CPM_ARGS_NAME}_VERSION}) + endif() + cpm_message(STATUS "${CPM_INDENT} Using local package ${CPM_ARGS_NAME}@${VERSION}") + CPMRegisterPackage(${CPM_ARGS_NAME} "${VERSION}") + set(CPM_PACKAGE_FOUND + YES + PARENT_SCOPE + ) + else() + set(CPM_PACKAGE_FOUND + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Create a custom FindXXX.cmake module for a CPM package This prevents `find_package(NAME)` from +# finding the system library +function(cpm_create_module_file Name) + if(NOT CPM_DONT_UPDATE_MODULE_PATH) + if(DEFINED CMAKE_FIND_PACKAGE_REDIRECTS_DIR) + # Redirect find_package calls to the CPM package. This is what FetchContent does when you set + # OVERRIDE_FIND_PACKAGE. The CMAKE_FIND_PACKAGE_REDIRECTS_DIR works for find_package in CONFIG + # mode, unlike the Find${Name}.cmake fallback. CMAKE_FIND_PACKAGE_REDIRECTS_DIR is not defined + # in script mode, or in CMake < 3.24. + # https://cmake.org/cmake/help/latest/module/FetchContent.html#fetchcontent-find-package-integration-examples + string(TOLOWER ${Name} NameLower) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config.cmake + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${NameLower}-extra.cmake\" OPTIONAL)\n" + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${Name}Extra.cmake\" OPTIONAL)\n" + ) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config-version.cmake + "set(PACKAGE_VERSION_COMPATIBLE TRUE)\n" "set(PACKAGE_VERSION_EXACT TRUE)\n" + ) + else() + file(WRITE ${CPM_MODULE_PATH}/Find${Name}.cmake + "include(\"${CPM_FILE}\")\n${ARGN}\nset(${Name}_FOUND TRUE)" + ) + endif() + endif() +endfunction() + +# Find a package locally or fallback to CPMAddPackage +function(CPMFindPackage) + set(oneValueArgs NAME VERSION GIT_TAG FIND_PACKAGE_ARGUMENTS) + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "" ${ARGN}) + + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + set(downloadPackage ${CPM_DOWNLOAD_ALL}) + if(DEFINED CPM_DOWNLOAD_${CPM_ARGS_NAME}) + set(downloadPackage ${CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + elseif(DEFINED ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + set(downloadPackage $ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + endif() + if(downloadPackage) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(NOT CPM_PACKAGE_FOUND) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + endif() + +endfunction() + +# checks if a package has been added before +function(cpm_check_if_package_already_added CPM_ARGS_NAME CPM_ARGS_VERSION) + if("${CPM_ARGS_NAME}" IN_LIST CPM_PACKAGES) + CPMGetPackageVersion(${CPM_ARGS_NAME} CPM_PACKAGE_VERSION) + if("${CPM_PACKAGE_VERSION}" VERSION_LESS "${CPM_ARGS_VERSION}") + message( + WARNING + "${CPM_INDENT} Requires a newer version of ${CPM_ARGS_NAME} (${CPM_ARGS_VERSION}) than currently included (${CPM_PACKAGE_VERSION})." + ) + endif() + cpm_get_fetch_properties(${CPM_ARGS_NAME}) + set(${CPM_ARGS_NAME}_ADDED NO) + set(CPM_PACKAGE_ALREADY_ADDED + YES + PARENT_SCOPE + ) + cpm_export_variables(${CPM_ARGS_NAME}) + else() + set(CPM_PACKAGE_ALREADY_ADDED + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Parse the argument of CPMAddPackage in case a single one was provided and convert it to a list of +# arguments which can then be parsed idiomatically. For example gh:foo/bar@1.2.3 will be converted +# to: GITHUB_REPOSITORY;foo/bar;VERSION;1.2.3 +function(cpm_parse_add_package_single_arg arg outArgs) + # Look for a scheme + if("${arg}" MATCHES "^([a-zA-Z]+):(.+)$") + string(TOLOWER "${CMAKE_MATCH_1}" scheme) + set(uri "${CMAKE_MATCH_2}") + + # Check for CPM-specific schemes + if(scheme STREQUAL "gh") + set(out "GITHUB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "gl") + set(out "GITLAB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "bb") + set(out "BITBUCKET_REPOSITORY;${uri}") + set(packageType "git") + # A CPM-specific scheme was not found. Looks like this is a generic URL so try to determine + # type + elseif(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Fall back to a URL + set(out "URL;${arg}") + set(packageType "archive") + + # We could also check for SVN since FetchContent supports it, but SVN is so rare these days. + # We just won't bother with the additional complexity it will induce in this function. SVN is + # done by multi-arg + endif() + else() + if(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Give up + message(FATAL_ERROR "${CPM_INDENT} Can't determine package type of '${arg}'") + endif() + endif() + + # For all packages we interpret @... as version. Only replace the last occurrence. Thus URIs + # containing '@' can be used + string(REGEX REPLACE "@([^@]+)$" ";VERSION;\\1" out "${out}") + + # Parse the rest according to package type + if(packageType STREQUAL "git") + # For git repos we interpret #... as a tag or branch or commit hash + string(REGEX REPLACE "#([^#]+)$" ";GIT_TAG;\\1" out "${out}") + elseif(packageType STREQUAL "archive") + # For archives we interpret #... as a URL hash. + string(REGEX REPLACE "#([^#]+)$" ";URL_HASH;\\1" out "${out}") + # We don't try to parse the version if it's not provided explicitly. cpm_get_version_from_url + # should do this at a later point + else() + # We should never get here. This is an assertion and hitting it means there's a problem with the + # code above. A packageType was set, but not handled by this if-else. + message(FATAL_ERROR "${CPM_INDENT} Unsupported package type '${packageType}' of '${arg}'") + endif() + + set(${outArgs} + ${out} + PARENT_SCOPE + ) +endfunction() + +# Check that the working directory for a git repo is clean +function(cpm_check_git_working_dir_is_clean repoPath gitTag isClean) + + find_package(Git REQUIRED) + + if(NOT GIT_EXECUTABLE) + # No git executable, assume directory is clean + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + # check for uncommitted changes + execute_process( + COMMAND ${GIT_EXECUTABLE} status --porcelain + RESULT_VARIABLE resultGitStatus + OUTPUT_VARIABLE repoStatus + OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + WORKING_DIRECTORY ${repoPath} + ) + if(resultGitStatus) + # not supposed to happen, assume clean anyway + message(WARNING "${CPM_INDENT} Calling git status on folder ${repoPath} failed") + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + if(NOT "${repoStatus}" STREQUAL "") + set(${isClean} + FALSE + PARENT_SCOPE + ) + return() + endif() + + # check for committed changes + execute_process( + COMMAND ${GIT_EXECUTABLE} diff -s --exit-code ${gitTag} + RESULT_VARIABLE resultGitDiff + OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_QUIET + WORKING_DIRECTORY ${repoPath} + ) + + if(${resultGitDiff} EQUAL 0) + set(${isClean} + TRUE + PARENT_SCOPE + ) + else() + set(${isClean} + FALSE + PARENT_SCOPE + ) + endif() + +endfunction() + +# Add PATCH_COMMAND to CPM_ARGS_UNPARSED_ARGUMENTS. This method consumes a list of files in ARGN +# then generates a `PATCH_COMMAND` appropriate for `ExternalProject_Add()`. This command is appended +# to the parent scope's `CPM_ARGS_UNPARSED_ARGUMENTS`. +function(cpm_add_patches) + # Return if no patch files are supplied. + if(NOT ARGN) + return() + endif() + + # Find the patch program. + find_program(PATCH_EXECUTABLE patch) + if(CMAKE_HOST_WIN32 AND NOT PATCH_EXECUTABLE) + # The Windows git executable is distributed with patch.exe. Find the path to the executable, if + # it exists, then search `../usr/bin` and `../../usr/bin` for patch.exe. + find_package(Git QUIET) + if(GIT_EXECUTABLE) + get_filename_component(extra_search_path ${GIT_EXECUTABLE} DIRECTORY) + get_filename_component(extra_search_path_1up ${extra_search_path} DIRECTORY) + get_filename_component(extra_search_path_2up ${extra_search_path_1up} DIRECTORY) + find_program( + PATCH_EXECUTABLE patch HINTS "${extra_search_path_1up}/usr/bin" + "${extra_search_path_2up}/usr/bin" + ) + endif() + endif() + if(NOT PATCH_EXECUTABLE) + message(FATAL_ERROR "Couldn't find `patch` executable to use with PATCHES keyword.") + endif() + + # Create a temporary + set(temp_list ${CPM_ARGS_UNPARSED_ARGUMENTS}) + + # Ensure each file exists (or error out) and add it to the list. + set(first_item True) + foreach(PATCH_FILE ${ARGN}) + # Make sure the patch file exists, if we can't find it, try again in the current directory. + if(NOT EXISTS "${PATCH_FILE}") + if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + message(FATAL_ERROR "Couldn't find patch file: '${PATCH_FILE}'") + endif() + set(PATCH_FILE "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + endif() + + # Convert to absolute path for use with patch file command. + get_filename_component(PATCH_FILE "${PATCH_FILE}" ABSOLUTE) + + # The first patch entry must be preceded by "PATCH_COMMAND" while the following items are + # preceded by "&&". + if(first_item) + set(first_item False) + list(APPEND temp_list "PATCH_COMMAND") + else() + list(APPEND temp_list "&&") + endif() + # Add the patch command to the list + list(APPEND temp_list "${PATCH_EXECUTABLE}" "-p1" "<" "${PATCH_FILE}") + endforeach() + + # Move temp out into parent scope. + set(CPM_ARGS_UNPARSED_ARGUMENTS + ${temp_list} + PARENT_SCOPE + ) + +endfunction() + +# method to overwrite internal FetchContent properties, to allow using CPM.cmake to overload +# FetchContent calls. As these are internal cmake properties, this method should be used carefully +# and may need modification in future CMake versions. Source: +# https://github.com/Kitware/CMake/blob/dc3d0b5a0a7d26d43d6cfeb511e224533b5d188f/Modules/FetchContent.cmake#L1152 +function(cpm_override_fetchcontent contentName) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "SOURCE_DIR;BINARY_DIR" "") + if(NOT "${arg_UNPARSED_ARGUMENTS}" STREQUAL "") + message(FATAL_ERROR "${CPM_INDENT} Unsupported arguments: ${arg_UNPARSED_ARGUMENTS}") + endif() + + string(TOLOWER ${contentName} contentNameLower) + set(prefix "_FetchContent_${contentNameLower}") + + set(propertyName "${prefix}_sourceDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_SOURCE_DIR}") + + set(propertyName "${prefix}_binaryDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_BINARY_DIR}") + + set(propertyName "${prefix}_populated") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} TRUE) +endfunction() + +# Download and add a package from source +function(CPMAddPackage) + cpm_set_policies() + + list(LENGTH ARGN argnLength) + if(argnLength EQUAL 1) + cpm_parse_add_package_single_arg("${ARGN}" ARGN) + + # The shorthand syntax implies EXCLUDE_FROM_ALL and SYSTEM + set(ARGN "${ARGN};EXCLUDE_FROM_ALL;YES;SYSTEM;YES;") + endif() + + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + CUSTOM_CACHE_KEY + ) + + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND PATCHES) + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}") + + # Set default values for arguments + + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + if(CPM_ARGS_DOWNLOAD_ONLY) + set(DOWNLOAD_ONLY ${CPM_ARGS_DOWNLOAD_ONLY}) + else() + set(DOWNLOAD_ONLY NO) + endif() + + if(DEFINED CPM_ARGS_GITHUB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://github.com/${CPM_ARGS_GITHUB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_GITLAB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://gitlab.com/${CPM_ARGS_GITLAB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_BITBUCKET_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://bitbucket.org/${CPM_ARGS_BITBUCKET_REPOSITORY}.git") + endif() + + if(DEFINED CPM_ARGS_GIT_REPOSITORY) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_REPOSITORY ${CPM_ARGS_GIT_REPOSITORY}) + if(NOT DEFINED CPM_ARGS_GIT_TAG) + set(CPM_ARGS_GIT_TAG v${CPM_ARGS_VERSION}) + endif() + + # If a name wasn't provided, try to infer it from the git repo + if(NOT DEFINED CPM_ARGS_NAME) + cpm_package_name_from_git_uri(${CPM_ARGS_GIT_REPOSITORY} CPM_ARGS_NAME) + endif() + endif() + + set(CPM_SKIP_FETCH FALSE) + + if(DEFINED CPM_ARGS_GIT_TAG) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_TAG ${CPM_ARGS_GIT_TAG}) + # If GIT_SHALLOW is explicitly specified, honor the value. + if(DEFINED CPM_ARGS_GIT_SHALLOW) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW ${CPM_ARGS_GIT_SHALLOW}) + endif() + endif() + + if(DEFINED CPM_ARGS_URL) + # If a name or version aren't provided, try to infer them from the URL + list(GET CPM_ARGS_URL 0 firstUrl) + cpm_package_name_and_ver_from_url(${firstUrl} nameFromUrl verFromUrl) + # If we fail to obtain name and version from the first URL, we could try other URLs if any. + # However multiple URLs are expected to be quite rare, so for now we won't bother. + + # If the caller provided their own name and version, they trump the inferred ones. + if(NOT DEFINED CPM_ARGS_NAME) + set(CPM_ARGS_NAME ${nameFromUrl}) + endif() + if(NOT DEFINED CPM_ARGS_VERSION) + set(CPM_ARGS_VERSION ${verFromUrl}) + endif() + + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}") + endif() + + # Check for required arguments + + if(NOT DEFINED CPM_ARGS_NAME) + message( + FATAL_ERROR + "${CPM_INDENT} 'NAME' was not provided and couldn't be automatically inferred for package added with arguments: '${ARGN}'" + ) + endif() + + # Check if package has been added before + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + if(CPM_PACKAGE_ALREADY_ADDED) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for manual overrides + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_${CPM_ARGS_NAME}_SOURCE}" STREQUAL "") + set(PACKAGE_SOURCE ${CPM_${CPM_ARGS_NAME}_SOURCE}) + set(CPM_${CPM_ARGS_NAME}_SOURCE "") + CPMAddPackage( + NAME "${CPM_ARGS_NAME}" + SOURCE_DIR "${PACKAGE_SOURCE}" + EXCLUDE_FROM_ALL "${CPM_ARGS_EXCLUDE_FROM_ALL}" + SYSTEM "${CPM_ARGS_SYSTEM}" + PATCHES "${CPM_ARGS_PATCHES}" + OPTIONS "${CPM_ARGS_OPTIONS}" + SOURCE_SUBDIR "${CPM_ARGS_SOURCE_SUBDIR}" + DOWNLOAD_ONLY "${DOWNLOAD_ONLY}" + FORCE True + ) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for available declaration + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_DECLARATION_${CPM_ARGS_NAME}}" STREQUAL "") + set(declaration ${CPM_DECLARATION_${CPM_ARGS_NAME}}) + set(CPM_DECLARATION_${CPM_ARGS_NAME} "") + CPMAddPackage(${declaration}) + cpm_export_variables(${CPM_ARGS_NAME}) + # checking again to ensure version and option compatibility + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + return() + endif() + + if(NOT CPM_ARGS_FORCE) + if(CPM_USE_LOCAL_PACKAGES OR CPM_LOCAL_PACKAGES_ONLY) + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(CPM_PACKAGE_FOUND) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + if(CPM_LOCAL_PACKAGES_ONLY) + message( + SEND_ERROR + "${CPM_INDENT} ${CPM_ARGS_NAME} not found via find_package(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION})" + ) + endif() + endif() + endif() + + CPMRegisterPackage("${CPM_ARGS_NAME}" "${CPM_ARGS_VERSION}") + + if(DEFINED CPM_ARGS_GIT_TAG) + set(PACKAGE_INFO "${CPM_ARGS_GIT_TAG}") + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + set(PACKAGE_INFO "${CPM_ARGS_SOURCE_DIR}") + else() + set(PACKAGE_INFO "${CPM_ARGS_VERSION}") + endif() + + if(DEFINED FETCHCONTENT_BASE_DIR) + # respect user's FETCHCONTENT_BASE_DIR if set + set(CPM_FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR}) + else() + set(CPM_FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/_deps) + endif() + + cpm_add_patches(${CPM_ARGS_PATCHES}) + + if(DEFINED CPM_ARGS_DOWNLOAD_COMMAND) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS DOWNLOAD_COMMAND ${CPM_ARGS_DOWNLOAD_COMMAND}) + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${CPM_ARGS_SOURCE_DIR}) + if(NOT IS_ABSOLUTE ${CPM_ARGS_SOURCE_DIR}) + # Expand `CPM_ARGS_SOURCE_DIR` relative path. This is important because EXISTS doesn't work + # for relative paths. + get_filename_component( + source_directory ${CPM_ARGS_SOURCE_DIR} REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + set(source_directory ${CPM_ARGS_SOURCE_DIR}) + endif() + if(NOT EXISTS ${source_directory}) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild") + endif() + elseif(CPM_SOURCE_CACHE AND NOT CPM_ARGS_NO_CACHE) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + set(origin_parameters ${CPM_ARGS_UNPARSED_ARGUMENTS}) + list(SORT origin_parameters) + if(CPM_ARGS_CUSTOM_CACHE_KEY) + # Application set a custom unique directory name + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${CPM_ARGS_CUSTOM_CACHE_KEY}) + elseif(CPM_USE_NAMED_CACHE_DIRECTORIES) + string(SHA1 origin_hash "${origin_parameters};NEW_CACHE_STRUCTURE_TAG") + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}/${CPM_ARGS_NAME}) + else() + string(SHA1 origin_hash "${origin_parameters}") + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}) + endif() + # Expand `download_directory` relative path. This is important because EXISTS doesn't work for + # relative paths. + get_filename_component(download_directory ${download_directory} ABSOLUTE) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${download_directory}) + + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock) + endif() + + if(EXISTS ${download_directory}) + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} "${download_directory}" + "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + ) + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + + if(DEFINED CPM_ARGS_GIT_TAG AND NOT (PATCH_COMMAND IN_LIST CPM_ARGS_UNPARSED_ARGUMENTS)) + # warn if cache has been changed since checkout + cpm_check_git_working_dir_is_clean(${download_directory} ${CPM_ARGS_GIT_TAG} IS_CLEAN) + if(NOT ${IS_CLEAN}) + message( + WARNING "${CPM_INDENT} Cache for ${CPM_ARGS_NAME} (${download_directory}) is dirty" + ) + endif() + endif() + + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + set(PACKAGE_INFO "${PACKAGE_INFO} at ${download_directory}") + + # As the source dir is already cached/populated, we override the call to FetchContent. + set(CPM_SKIP_FETCH TRUE) + cpm_override_fetchcontent( + "${lower_case_name}" SOURCE_DIR "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + BINARY_DIR "${${CPM_ARGS_NAME}_BINARY_DIR}" + ) + + else() + # Enable shallow clone when GIT_TAG is not a commit hash. Our guess may not be accurate, but + # it should guarantee no commit hash get mis-detected. + if(NOT DEFINED CPM_ARGS_GIT_SHALLOW) + cpm_is_git_tag_commit_hash("${CPM_ARGS_GIT_TAG}" IS_HASH) + if(NOT ${IS_HASH}) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW TRUE) + endif() + endif() + + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE ${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild) + set(PACKAGE_INFO "${PACKAGE_INFO} to ${download_directory}") + endif() + endif() + + if(NOT "${DOWNLOAD_ONLY}") + cpm_create_module_file(${CPM_ARGS_NAME} "CPMAddPackage(\"${ARGN}\")") + endif() + + if(CPM_PACKAGE_LOCK_ENABLED) + if((CPM_ARGS_VERSION AND NOT CPM_ARGS_SOURCE_DIR) OR CPM_INCLUDE_ALL_IN_PACKAGE_LOCK) + cpm_add_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + elseif(CPM_ARGS_SOURCE_DIR) + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "local directory") + else() + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + endif() + endif() + + cpm_message( + STATUS "${CPM_INDENT} Adding package ${CPM_ARGS_NAME}@${CPM_ARGS_VERSION} (${PACKAGE_INFO})" + ) + + if(NOT CPM_SKIP_FETCH) + # CMake 3.28 added EXCLUDE, SYSTEM (3.25), and SOURCE_SUBDIR (3.18) to FetchContent_Declare. + # Calling FetchContent_MakeAvailable will then internally forward these options to + # add_subdirectory. Up until these changes, we had to call FetchContent_Populate and + # add_subdirectory separately, which is no longer necessary and has been deprecated as of 3.30. + # A Bug in CMake prevents us to use the non-deprecated functions until 3.30.3. + set(fetchContentDeclareExtraArgs "") + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(${CPM_ARGS_EXCLUDE_FROM_ALL}) + list(APPEND fetchContentDeclareExtraArgs EXCLUDE_FROM_ALL) + endif() + if(${CPM_ARGS_SYSTEM}) + list(APPEND fetchContentDeclareExtraArgs SYSTEM) + endif() + if(DEFINED CPM_ARGS_SOURCE_SUBDIR) + list(APPEND fetchContentDeclareExtraArgs SOURCE_SUBDIR ${CPM_ARGS_SOURCE_SUBDIR}) + endif() + # For CMake version <3.28 OPTIONS are parsed in cpm_add_subdirectory + if(CPM_ARGS_OPTIONS AND NOT DOWNLOAD_ONLY) + foreach(OPTION ${CPM_ARGS_OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + endif() + cpm_declare_fetch( + "${CPM_ARGS_NAME}" ${fetchContentDeclareExtraArgs} "${CPM_ARGS_UNPARSED_ARGUMENTS}" + ) + + cpm_fetch_package("${CPM_ARGS_NAME}" ${DOWNLOAD_ONLY} populated ${CPM_ARGS_UNPARSED_ARGUMENTS}) + if(CPM_SOURCE_CACHE AND download_directory) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + if(${populated} AND ${CMAKE_VERSION} VERSION_LESS "3.30.3") + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + endif() + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + endif() + + set(${CPM_ARGS_NAME}_ADDED YES) + cpm_export_variables("${CPM_ARGS_NAME}") +endfunction() + +# Fetch a previously declared package +macro(CPMGetPackage Name) + if(DEFINED "CPM_DECLARATION_${Name}") + CPMAddPackage(NAME ${Name}) + else() + message(SEND_ERROR "${CPM_INDENT} Cannot retrieve package ${Name}: no declaration available") + endif() +endmacro() + +# export variables available to the caller to the parent scope expects ${CPM_ARGS_NAME} to be set +macro(cpm_export_variables name) + set(${name}_SOURCE_DIR + "${${name}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${name}_BINARY_DIR + "${${name}_BINARY_DIR}" + PARENT_SCOPE + ) + set(${name}_ADDED + "${${name}_ADDED}" + PARENT_SCOPE + ) + set(CPM_LAST_PACKAGE_NAME + "${name}" + PARENT_SCOPE + ) +endmacro() + +# declares a package, so that any call to CPMAddPackage for the package name will use these +# arguments instead. Previous declarations will not be overridden. +macro(CPMDeclarePackage Name) + if(NOT DEFINED "CPM_DECLARATION_${Name}") + set("CPM_DECLARATION_${Name}" "${ARGN}") + endif() +endmacro() + +function(cpm_add_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN false ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} "# ${Name}\nCPMDeclarePackage(${Name}\n${PRETTY_ARGN})\n") + endif() +endfunction() + +function(cpm_add_comment_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN true ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} + "# ${Name} (unversioned)\n# CPMDeclarePackage(${Name}\n${PRETTY_ARGN}#)\n" + ) + endif() +endfunction() + +# includes the package lock file if it exists and creates a target `cpm-update-package-lock` to +# update it +macro(CPMUsePackageLock file) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + get_filename_component(CPM_ABSOLUTE_PACKAGE_LOCK_PATH ${file} ABSOLUTE) + if(EXISTS ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + include(${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + endif() + if(NOT TARGET cpm-update-package-lock) + add_custom_target( + cpm-update-package-lock COMMAND ${CMAKE_COMMAND} -E copy ${CPM_PACKAGE_LOCK_FILE} + ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH} + ) + endif() + set(CPM_PACKAGE_LOCK_ENABLED true) + endif() +endmacro() + +# registers a package that has been added to CPM +function(CPMRegisterPackage PACKAGE VERSION) + list(APPEND CPM_PACKAGES ${PACKAGE}) + set(CPM_PACKAGES + ${CPM_PACKAGES} + CACHE INTERNAL "" + ) + set("CPM_PACKAGE_${PACKAGE}_VERSION" + ${VERSION} + CACHE INTERNAL "" + ) +endfunction() + +# retrieve the current version of the package to ${OUTPUT} +function(CPMGetPackageVersion PACKAGE OUTPUT) + set(${OUTPUT} + "${CPM_PACKAGE_${PACKAGE}_VERSION}" + PARENT_SCOPE + ) +endfunction() + +# declares a package in FetchContent_Declare +function(cpm_declare_fetch PACKAGE) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package not declared (dry run)") + return() + endif() + + FetchContent_Declare(${PACKAGE} ${ARGN}) +endfunction() + +# returns properties for a package previously defined by cpm_declare_fetch +function(cpm_get_fetch_properties PACKAGE) + if(${CPM_DRY_RUN}) + return() + endif() + + set(${PACKAGE}_SOURCE_DIR + "${CPM_PACKAGE_${PACKAGE}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + "${CPM_PACKAGE_${PACKAGE}_BINARY_DIR}" + PARENT_SCOPE + ) +endfunction() + +function(cpm_store_fetch_properties PACKAGE source_dir binary_dir) + if(${CPM_DRY_RUN}) + return() + endif() + + set(CPM_PACKAGE_${PACKAGE}_SOURCE_DIR + "${source_dir}" + CACHE INTERNAL "" + ) + set(CPM_PACKAGE_${PACKAGE}_BINARY_DIR + "${binary_dir}" + CACHE INTERNAL "" + ) +endfunction() + +# adds a package as a subdirectory if viable, according to provided options +function( + cpm_add_subdirectory + PACKAGE + DOWNLOAD_ONLY + SOURCE_DIR + BINARY_DIR + EXCLUDE + SYSTEM + OPTIONS +) + + if(NOT DOWNLOAD_ONLY AND EXISTS ${SOURCE_DIR}/CMakeLists.txt) + set(addSubdirectoryExtraArgs "") + if(EXCLUDE) + list(APPEND addSubdirectoryExtraArgs EXCLUDE_FROM_ALL) + endif() + if("${SYSTEM}" AND "${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.25") + # https://cmake.org/cmake/help/latest/prop_dir/SYSTEM.html#prop_dir:SYSTEM + list(APPEND addSubdirectoryExtraArgs SYSTEM) + endif() + if(OPTIONS) + foreach(OPTION ${OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + set(CPM_OLD_INDENT "${CPM_INDENT}") + set(CPM_INDENT "${CPM_INDENT} ${PACKAGE}:") + add_subdirectory(${SOURCE_DIR} ${BINARY_DIR} ${addSubdirectoryExtraArgs}) + set(CPM_INDENT "${CPM_OLD_INDENT}") + endif() +endfunction() + +# downloads a previously declared package via FetchContent and exports the variables +# `${PACKAGE}_SOURCE_DIR` and `${PACKAGE}_BINARY_DIR` to the parent scope +function(cpm_fetch_package PACKAGE DOWNLOAD_ONLY populated) + set(${populated} + FALSE + PARENT_SCOPE + ) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package ${PACKAGE} not fetched (dry run)") + return() + endif() + + FetchContent_GetProperties(${PACKAGE}) + + string(TOLOWER "${PACKAGE}" lower_case_name) + + if(NOT ${lower_case_name}_POPULATED) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(DOWNLOAD_ONLY) + # MakeAvailable will call add_subdirectory internally which is not what we want when + # DOWNLOAD_ONLY is set. Populate will only download the dependency without adding it to the + # build + FetchContent_Populate( + ${PACKAGE} + SOURCE_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-src" + BINARY_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + SUBBUILD_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild" + ${ARGN} + ) + else() + FetchContent_MakeAvailable(${PACKAGE}) + endif() + else() + FetchContent_Populate(${PACKAGE}) + endif() + set(${populated} + TRUE + PARENT_SCOPE + ) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} ${${lower_case_name}_SOURCE_DIR} ${${lower_case_name}_BINARY_DIR} + ) + + set(${PACKAGE}_SOURCE_DIR + ${${lower_case_name}_SOURCE_DIR} + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + ${${lower_case_name}_BINARY_DIR} + PARENT_SCOPE + ) +endfunction() + +# splits a package option +function(cpm_parse_option OPTION) + string(REGEX MATCH "^[^ ]+" OPTION_KEY "${OPTION}") + string(LENGTH "${OPTION}" OPTION_LENGTH) + string(LENGTH "${OPTION_KEY}" OPTION_KEY_LENGTH) + if(OPTION_KEY_LENGTH STREQUAL OPTION_LENGTH) + # no value for key provided, assume user wants to set option to "ON" + set(OPTION_VALUE "ON") + else() + math(EXPR OPTION_KEY_LENGTH "${OPTION_KEY_LENGTH}+1") + string(SUBSTRING "${OPTION}" "${OPTION_KEY_LENGTH}" "-1" OPTION_VALUE) + endif() + set(OPTION_KEY + "${OPTION_KEY}" + PARENT_SCOPE + ) + set(OPTION_VALUE + "${OPTION_VALUE}" + PARENT_SCOPE + ) +endfunction() + +# guesses the package version from a git tag +function(cpm_get_version_from_git_tag GIT_TAG RESULT) + string(LENGTH ${GIT_TAG} length) + if(length EQUAL 40) + # GIT_TAG is probably a git hash + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + string(REGEX MATCH "v?([0123456789.]*).*" _ ${GIT_TAG}) + set(${RESULT} + ${CMAKE_MATCH_1} + PARENT_SCOPE + ) + endif() +endfunction() + +# guesses if the git tag is a commit hash or an actual tag or a branch name. +function(cpm_is_git_tag_commit_hash GIT_TAG RESULT) + string(LENGTH "${GIT_TAG}" length) + # full hash has 40 characters, and short hash has at least 7 characters. + if(length LESS 7 OR length GREATER 40) + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + if(${GIT_TAG} MATCHES "^[a-fA-F0-9]+$") + set(${RESULT} + 1 + PARENT_SCOPE + ) + else() + set(${RESULT} + 0 + PARENT_SCOPE + ) + endif() + endif() +endfunction() + +function(cpm_prettify_package_arguments OUT_VAR IS_IN_COMMENT) + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + ) + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND) + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + foreach(oneArgName ${oneValueArgs}) + if(DEFINED CPM_ARGS_${oneArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + if(${oneArgName} STREQUAL "SOURCE_DIR") + string(REPLACE ${CMAKE_SOURCE_DIR} "\${CMAKE_SOURCE_DIR}" CPM_ARGS_${oneArgName} + ${CPM_ARGS_${oneArgName}} + ) + endif() + string(APPEND PRETTY_OUT_VAR " ${oneArgName} ${CPM_ARGS_${oneArgName}}\n") + endif() + endforeach() + foreach(multiArgName ${multiValueArgs}) + if(DEFINED CPM_ARGS_${multiArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ${multiArgName}\n") + foreach(singleOption ${CPM_ARGS_${multiArgName}}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " \"${singleOption}\"\n") + endforeach() + endif() + endforeach() + + if(NOT "${CPM_ARGS_UNPARSED_ARGUMENTS}" STREQUAL "") + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ") + foreach(CPM_ARGS_UNPARSED_ARGUMENT ${CPM_ARGS_UNPARSED_ARGUMENTS}) + string(APPEND PRETTY_OUT_VAR " ${CPM_ARGS_UNPARSED_ARGUMENT}") + endforeach() + string(APPEND PRETTY_OUT_VAR "\n") + endif() + + set(${OUT_VAR} + ${PRETTY_OUT_VAR} + PARENT_SCOPE + ) + +endfunction() diff --git a/file_to_header.py b/file_to_header.py new file mode 100644 index 0000000..5403075 --- /dev/null +++ b/file_to_header.py @@ -0,0 +1,9 @@ +import sys +import pathlib + +fname = pathlib.Path(sys.argv[1]).stem + +data = open(sys.argv[1], 'rb').read() + +print(f'inline uint8_t {fname}_data[{hex(len(data))}] = {{{",".join(map(hex, data))}}};') +print(f'\nconstexpr auto {fname}_data_size = {hex(len(data))};') \ No newline at end of file diff --git a/src/Game.cpp b/src/Game.cpp new file mode 100644 index 0000000..7aba885 --- /dev/null +++ b/src/Game.cpp @@ -0,0 +1,219 @@ +#include "Game.hpp" +#include +#include +#include "Multiplayer.hpp" +#include "assets.hpp" + +Game::Game() : camPos(0, 0), spawnPointChangedTime(0), chatOpen(false), entered(false) {} + +void Game::start(std::string name) { + InitWindow(1280, 720, "SFF Sandbox..?"); + SetTargetFPS(60); + + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + player = Player(skinFromName(name), name); + // player.spawnPoint = {2100, -1088}; // middle + // player.spawnPoint = {3821, -1728}; // end + player.spawnPoint = {-66, -448}; // start + player.pos = player.spawnPoint; + level.load(); + + auto lastTime = GetTime(); + + SetExitKey(KEY_NULL); + + std::vector codepoints; + for (int i = 0x20; i <= 0x7e; i++) { + codepoints.push_back(i); + } + for (int i = 0x401; i <= 0x451; i++) { + codepoints.push_back(i); + } + + const auto myFont = LoadFontFromMemory(".ttf", minecraft_data, minecraft_data_size, 20, codepoints.data(), codepoints.size()); + + // const auto gradText = LoadTexture("assets/gradient.png"); + const auto gradText = texFromMem(gradient_data, gradient_data_size); + + while (!WindowShouldClose()) { + auto time = GetTime(); + float dt = time - lastTime; + + serverTime += dt; + +#ifdef _WIN32 + if (dt > (1 / 30.f)) { + lastTime = time; + continue; + } +#endif + + if (chatOpen) { + // Get char pressed (unicode character) on the queue + int key = GetCharPressed(); + + // Check if more characters have been pressed on the same frame + while (key > 0) { + // printf("%i\n", key); + // NOTE: Only allow keys in range [32..125] + // if ((key >= 32) && (key <= 125)) { + // chatMsg.append({(char)key}); + // } + utf8::append(key, chatMsg); + + key = GetCharPressed(); // Check next character in the queue + } + + if (IsKeyPressedRepeat(KEY_BACKSPACE) || IsKeyPressed(KEY_BACKSPACE)) { + if (chatMsg.size() != 0) { + // chatMsg.pop_back(); + auto it = chatMsg.end(); + auto lastCP = utf8::prior(it, chatMsg.begin()); + chatMsg = chatMsg.substr(0, it - chatMsg.begin()); + } + } + + if (IsKeyPressed(KEY_ENTER) && !chatMsg.empty()) { + char* packetData = new char[1 + 2 + chatMsg.size()]; + packetData[0] = Header::MESSAGE; + *(uint16_t*)(packetData + 1) = chatMsg.size(); + memcpy(packetData + 3, chatMsg.c_str(), chatMsg.size()); + + Multiplayer::get().sendPacket(packetData, 1 + 2 + chatMsg.size()); + + chatMsg.clear(); + + delete[] packetData; + // chatOpen = false; + } + } + + if (IsKeyPressed(KEY_T) && !chatOpen) { + chatOpen = true; + } + + if (IsKeyPressed(KEY_ESCAPE) && chatOpen) { + chatOpen = false; + } + + level.update(dt); + + player.update(dt); + + auto& mp = Multiplayer::get(); + if (mp.m_state != MultiplayerState::CONNECTING) { + mp.update(dt); + } + + if (spawnPointChangedTime != 0) { + if (GetTime() - spawnPointChangedTime >= 0.5f) { + spawnPointChangedTime = 0; + } + } + + for (auto& [_, p] : otherPlayers) { + if (p.vel.x != 0) { + p.animTime += dt; + if (p.animTime >= p.targetFrameTime) { + p.animTime -= p.targetFrameTime; + p.curFrame = (p.curFrame + 1) % (p.totalFrames - 1); + // printf("%i\n", curFrame); + } + } else { + p.curFrame = 0; + p.animTime = 0; + } + } + + //////////////////////////// + + BeginDrawing(); + + ClearBackground(GRAY); + level.drawBack(); + + for (auto& [_, player] : otherPlayers) { + player.draw(); + auto p = worldToScreen(player.pos); + auto w = MeasureText(player.name.c_str(), 20); + + DrawText(player.name.c_str(), p.x + 32 - w / 2, p.y - 25, 20, RAYWHITE); + } + + player.draw(); + level.draw(); + + if (!entered) { + auto p = worldToScreen({71 * 64, -30 * 64 - 720}); + DrawRectangle(p.x, p.y, 11 * 64, 6 * 64 + 720, {0, 0, 0, 255}); + for (int y = -25; y > -40; y--) { + p = worldToScreen({70 * 64, y * 64.f}); + DrawTexture(gradText, p.x, p.y, WHITE); + } + } else { + DrawTextEx(myFont, "Нажми T, чтобы открыть чат!", worldToScreen({73.5f * 64.f - MeasureTextEx(myFont, "Нажми T, чтобы открыть чат!", 40, 1).x / 2.0f, -23 * 64.f}), 40, + 1, RAYWHITE); + } + + // DrawText((std::to_string(player.pos.x) + " " + std::to_string(player.pos.y)).c_str(), 0, 0, 20, RAYWHITE); + // DrawText(("Tile: " + std::to_string((int)player.pos.x / 64) + " " + std::to_string((int)player.pos.y / 64)).c_str(), 0, 20, 20, RAYWHITE); + // DrawText(("FPS: " + std::to_string(GetFPS())).c_str(), 0, 40, 20, RAYWHITE); + + if (spawnPointChangedTime != 0) { + // printf("%i\n", (uint8_t)(255 - 255 * (GetTime() - spawnPointChangedTime) / 0.5f)); + DrawText("Checkpoint!", 640 - MeasureText("Checkpoint!", 40) / 2, 500, 40, Color {245, 245, 245, (uint8_t)(255 - 255 * (GetTime() - spawnPointChangedTime) / 0.5f)}); + } + + int msgY = 720; + + if (chatOpen) { + DrawRectangle(0, 720 - 30 - 4, 1280, 30 + 4, {0, 0, 0, 100}); + + // DrawText(("> " + chatMsg).c_str(), 10, 720 - 30 + 2, 30, RAYWHITE); + DrawTextEx(myFont, ("> " + chatMsg).c_str(), {10, 720 - 30 + 2}, 20, 1, RAYWHITE); + msgY -= 36; + + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + } else { + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // if (GetTime() - msg.time <= 2) { + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, {245, 245, 245, (uint8_t)(255 - (GetTime() - msg.time) / 2.f * 255.f)}); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + // } + + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + } + + for (auto i = chatMessages.size(); i--;) { + auto& msg = chatMessages[i]; + DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + msgY -= 22; + } + + // DrawText((std::to_string(player.vel.x) + " " + std::to_string(player.vel.y)).c_str(), 0, 20, 20, RAYWHITE); + + EndDrawing(); + + lastTime = time; + } + + CloseWindow(); +} \ No newline at end of file diff --git a/src/Game.hpp b/src/Game.hpp new file mode 100644 index 0000000..f6075f0 --- /dev/null +++ b/src/Game.hpp @@ -0,0 +1,62 @@ +#pragma once +#include "saferaylib.h" +#include "Player.hpp" +#include "Level.hpp" +#include "unordered_map" +#include "cmath" +#include "utf8.h" +#include "assets.hpp" +#include "algorithm" + +inline Texture2D texFromMem(unsigned char* data, int size) { + return LoadTextureFromImage(LoadImageFromMemory(".png", data, size)); +} + +inline Texture2D skinFromName(std::string name) { + std::string lowerName = name; + std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), ::tolower); + + if (lowerName == "citrim") { + return texFromMem(citrim_data, citrim_data_size); + } else if (lowerName == "danilka22ah") { + return texFromMem(danilka22ah_data, danilka22ah_data_size); + } else if (lowerName == "invisedivine") { + return texFromMem(invisedivine_data, invisedivine_data_size); + } else if (lowerName == "jaan") { + return texFromMem(jaan_data, jaan_data_size); + } else if (lowerName == "fullharmony") { + return texFromMem(fullharmony_data, fullharmony_data_size); + } else { + return texFromMem(kolyah35_data, kolyah35_data_size); + } +} + +struct ChatMsg { + std::string text; + float time; +}; + +class Game { +public: + inline static Game& get() { + static Game inst; + return inst; + } + + void start(std::string name); + inline Vector2 worldToScreen(const Vector2& p) { return Vector2 {p.x - camPos.x, p.y - camPos.y}; } + + Vector2 camPos; + Level level; + Player player; + std::unordered_map otherPlayers; + std::string chatMsg; + std::vector chatMessages; + float spawnPointChangedTime; + float serverTime; + bool chatOpen; + bool entered; + +private: + Game(); +}; \ No newline at end of file diff --git a/src/Level.cpp b/src/Level.cpp new file mode 100644 index 0000000..3ebf498 --- /dev/null +++ b/src/Level.cpp @@ -0,0 +1,363 @@ +#include "Level.hpp" + +#include "assets.hpp" +#include "Game.hpp" + +Level::Level() {} + +void Level::load() { + // tex = LoadTexture("assets/level.png"); + tex = texFromMem(level_data, level_data_size); + + for (short y = 4; y > -45; y--) { + for (short x = -10; x < 130; x++) { + background.push_back({BRICKGRAY, x, y, GRAY}); + } + } + // Start room + for (short i = -11; i < 10; i++) { + tiles.push_back({BRICKGRAY, i, -5}); + } + for (short i = -6; i > -15; i--) { + tiles.push_back({BRICKGRAY, -11, i}); + } + for (short i = -9; i > -17; i--) { + tiles.push_back({BRICKGRAY, 9, i}); + } + + for (short y = -5; y < 15; y++) { + tiles.push_back({BRICKGRAY, 9, y}); + tiles.push_back({BRICKGRAY, -11, y}); + } + for (short x = -7; x < 6; x += 3) { + background.push_back({TORCH, x, -10}); + } + background.push_back({SIGN, 6, -6}); + background.push_back({BRICKGRAY, 9, -7, GRAY}); + background.push_back({BRICKGRAY, 9, -6, GRAY}); + background.push_back({BANNERBASEMENT, -10, -10}); + background.push_back({BANNERBASEMENT, 8, -10}); + + // Main level + // First platforms + background.push_back({TORCH, 11, -8}); + tiles.push_back({PLATFORMBIGLEFT, 11, -5}); + tiles.push_back({PLATFORMBIGRIGHT, 12, -5}); + + background.push_back({TORCH, 15, -10}); + tiles.push_back({PLATFORMBIGLEFT, 15, -7}); + tiles.push_back({PLATFORMBIGRIGHT, 16, -7}); + + background.push_back({TORCH, 19, -6}); + tiles.push_back({PLATFORMBIGLEFT, 19, -3}); + tiles.push_back({PLATFORMBIGRIGHT, 20, -3}); + + background.push_back({TORCH, 24, -8}); + tiles.push_back({PLATFORMBIGLEFT, 24, -5}); + tiles.push_back({PLATFORMBIGRIGHT, 25, -5}); + for (short x = 10; x < 30; x++) { + tiles.push_back({LAVA, x, 4}); + } + // Checkpoint 1 + background.push_back({BANNERSFF, 30, -10}); + background.push_back({BANNERSFF, 36, -10}); + checkpoints.push_back({CHECKPOINT, 33, -7}); + background.push_back({TORCH, 33, -10}); + + for (short x = 30; x < 36; x++) { + tiles.push_back({BRICKGRAY, x, -6}); + } + for (short y = -6; y < 15; y++) { + tiles.push_back({BRICKGRAY, 30, y}); + tiles.push_back({BRICKGRAY, 36, y}); + } + // Moving platforms + background.push_back({TORCH, 40, -9}); + background.push_back({BANNERDOOMETERNAL, 41, -9}); + background.push_back({TORCH, 42, -9}); + + background.push_back({TORCH, 45, -9}); + background.push_back({BANNERDOOMETERNAL, 46, -9}); + background.push_back({TORCH, 47, -9}); + + for (short x = 37; x < 53; x++) { + tiles.push_back({LAVA, x, 4}); + } + // for (short x = 38; x < 49; x += 5) { + // tiles.push_back({PLATFORMBIGLEFT, x, -7}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -7}); + // tiles.push_back({PLATFORMBIGLEFT, x, -10}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -10}); + // tiles.push_back({PLATFORMBIGLEFT, x, -12}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -12}); + // } + plats.push_back({{38 * 64.f, -12 * 64.f}, 0}); + plats.push_back({{43 * 64.f, -12 * 64.f}, 1}); + plats.push_back({{48 * 64.f, -12 * 64.f}, 0}); + // Checkpoint 2 + checkpoints.push_back({CHECKPOINT, 56, -7}); + background.push_back({BANNERDOOMETERNAL, 53, -10}); + background.push_back({BANNERDOOMETERNAL, 59, -10}); + background.push_back({TORCH, 56, -10}); + for (short x = 53; x < 60; x++) { + tiles.push_back({BRICKGRAY, x, -6}); + } + for (short y = -6; y < 15; y++) { + tiles.push_back({BRICKGRAY, 53, y}); + tiles.push_back({BRICKGRAY, 59, y}); + } + // Way to upper platform + background.push_back({TORCH, 76, -9}); + background.push_back({TORCH, 76, -8}); + background.push_back({TORCH, 76, -7}); + background.push_back({TORCH, 76, -6}); + background.push_back({TORCH, 76, -5}); + background.push_back({TORCH, 76, -4}); + + background.push_back({TORCH, 75, -8}); + background.push_back({TORCH, 74, -7}); + + background.push_back({TORCH, 77, -8}); + background.push_back({TORCH, 78, -7}); + + for (short x = 60; x < 80; x++) { + tiles.push_back({LAVA, x, 4}); + } + + for (short y = 4; y > -40; y--) { + tiles.push_back({BRICKGRAY, 80, y}); + } + background.push_back({TORCH, 67, -8}); + background.push_back({TORCH, 62, -10}); + background.push_back({TORCH, 58, -12}); + + tiles.push_back({PLATFORMBIGLEFT, 64, -6}); + tiles.push_back({PLATFORMBIGRIGHT, 65, -6}); + + tiles.push_back({PLATFORMBIGLEFT, 69, -8}); + tiles.push_back({PLATFORMBIGRIGHT, 70, -8}); + + tiles.push_back({PLATFORMBIGLEFT, 64, -10}); + tiles.push_back({PLATFORMBIGRIGHT, 65, -10}); + + tiles.push_back({PLATFORMBIGLEFT, 60, -12}); + tiles.push_back({PLATFORMBIGRIGHT, 61, -12}); + + tiles.push_back({PLATFORMBIGLEFT, 56, -14}); + tiles.push_back({PLATFORMBIGRIGHT, 57, -14}); + + // Upper platform + for (short x = 54; x > 0; x--) { + tiles.push_back({BRICKGRAY, x, -15}); + } + background.push_back({BANNBERHL, 54, -19}); + checkpoints.push_back({CHECKPOINT, 52, -16}); + background.push_back({BANNBERHL, 50, -19}); + background.push_back({TORCH, 52, -19}); + + tiles.push_back({BRICKGRAY, 30, -16}); + tiles.push_back({BRICKGRAY, 10, -16}); + for (short x = 47; x > 34; x -= 2) { + // tiles.push_back({SAW, x, -19}); + // Vector2 pos = {x * 64.f, -19 * 64.f + 3 * 64 * (x - 34) / 2 / 7.f}; + // Vector2 pos = {x * 64.f, -19 * 64.f}; + // saws.push_back({pos, pos}); + saws.push_back({{x * 64.f, -19 * 64.f}, (x - 34) / 2 / 7.f}); + } + for (short x = 46; x > 34; x -= 2) { + background.push_back({TORCH, x, -19}); + } + // for (short x = 46; x > 33; x -= 4) { + // tiles.push_back({TORCH, x, -19}); + // } + for (short x = 29; x > 10; x--) { + tiles.push_back({LAVA, x, -16}); + } + background.push_back({BANNERNIRVANA, 31, -19}); + background.push_back({BANNERNIRVANA, 33, -19}); + background.push_back({TORCH, 32, -19}); + checkpoints.push_back({CHECKPOINT, 32, -16}); + + // Way to final corridor + background.push_back({TORCH, 24, -26}); + background.push_back({TORCH, 24, -25}); + background.push_back({TORCH, 24, -24}); + background.push_back({TORCH, 24, -23}); + background.push_back({TORCH, 24, -22}); + background.push_back({TORCH, 24, -21}); + background.push_back({TORCH, 24, -20}); + + background.push_back({TORCH, 25, -25}); + background.push_back({TORCH, 26, -24}); + + background.push_back({TORCH, 23, -25}); + background.push_back({TORCH, 22, -24}); + + tiles.push_back({PLATFORM, 27, -18}); + background.push_back({TORCH, 30, -22}); + tiles.push_back({PLATFORM, 30, -20}); + tiles.push_back({PLATFORM, 33, -22}); + tiles.push_back({PLATFORM, 35, -23}); + background.push_back({TORCH, 35, -25}); + tiles.push_back({PLATFORM, 32, -25}); + tiles.push_back({PLATFORM, 36, -27}); + tiles.push_back({PLATFORM, 40, -25}); + background.push_back({TORCH, 40, -27}); + tiles.push_back({PLATFORM, 44, -27}); + tiles.push_back({PLATFORM, 48, -23}); + background.push_back({TORCH, 48, -25}); + tiles.push_back({PLATFORM, 52, -25}); + + // final corridor + for (short x = 56; x < 81; x++) { + tiles.push_back({BRICKGRAY, x, -25}); + } + background.push_back({BANNERBASEMENT, 56, -28}); + background.push_back({TORCH, 57, -28}); + background.push_back({TORCH, 58, -28}); + background.push_back({BANNERSFF, 59, -28}); + background.push_back({TORCH, 60, -28}); + background.push_back({TORCH, 61, -28}); + background.push_back({BANNERDOOMETERNAL, 62, -28}); + background.push_back({TORCH, 63, -28}); + background.push_back({TORCH, 64, -28}); + background.push_back({BANNBERHL, 65, -28}); + background.push_back({TORCH, 66, -28}); + background.push_back({TORCH, 67, -28}); + background.push_back({BANNERNIRVANA, 68, -28}); + checkpoints.push_back({CHECKPOINT, 68, -26}); + + // tiles.push_back({BRICKGRAY, 70, -28}); + // tiles.push_back({BRICKGRAY, 70, -29}); + for (short y = -28; y > -40; y--) { + tiles.push_back({BRICKGRAY, 70, y}); + } + for (short x = 71; x < 80; x++) { + tiles.push_back({BRICKGRAY, x, -31}); + } + tiles.push_back({TABLELEFT, 75, -26}); + tiles.push_back({TABLERIGHT, 76, -26}); + + background.push_back({TORCH, 71, -29}); + background.push_back({BALOON1, 72, -29}); + background.push_back({BALOON2, 77, -30}); + background.push_back({BALOON3, 73, -28}); + background.push_back({TORCH, 79, -29}); + background.push_back({BALOON4, 78, -29}); +} + +void Level::update(float dt) { + for (auto& saw : saws) { + saw.pos.y = -19 * 64.f + 3 * 64.f * (sinf(Game::get().serverTime * 2.2f + saw.offset * 2.f) / 2.f + 0.5f); + } + for (auto& plat : plats) { + plat.pos.y = -12 * 64.f + 4 * 64.f * (sinf((Game::get().serverTime + plat.offset * PI / 2) * 2.2f) / 2.f + 0.5f); + } +} + +// #define ROUND_POS(x) (float)((int)(x)) +#define ROUND_POS(x) floorf(x) + +void Level::drawBack() { + // Behind player + for (const auto& tile : background) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + auto tid = tile.id; + if (Game::get().entered && tile.id == BRICKGRAY) { + tid = WOOD; + } + DrawTexturePro(tex, {32.0f * (tid % 10), 32.0f * (tid / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } + for (const auto& tile : checkpoints) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + DrawTexturePro(tex, {32.0f * (tile.id % 10), 32.0f * (tile.id / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } +} + +void Level::draw() { + for (const auto& tile : tiles) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + // DrawTexturePro(tex, {32.0f * (tile.id % 10), 32.0f * (tile.id / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + auto tid = tile.id; + if (Game::get().entered && tile.id == BRICKGRAY) { + tid = WOOD; + } + DrawTexturePro(tex, {32.0f * (tid % 10), 32.0f * (tid / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } + for (const auto& saw : saws) { + auto p = Game::get().worldToScreen(saw.pos); + DrawTexturePro(tex, {32.0f * (SAW % 10), 32.0f * (SAW / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + } + auto c = Game::get().worldToScreen({4810, -1690}); + + DrawTexturePro(tex, {32.0f * (CAKE % 10), 32.0f * (CAKE / 10), 32.0f, 32.0f}, {ROUND_POS(c.x), ROUND_POS(c.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + for (const auto& plat : plats) { + auto p = Game::get().worldToScreen(plat.pos); + DrawTexturePro(tex, {32.0f * (PLATFORMBIGLEFT % 10), 32.0f * (PLATFORMBIGLEFT / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + DrawTexturePro(tex, {32.0f * (PLATFORMBIGRIGHT % 10), 32.0f * (PLATFORMBIGRIGHT / 10), 32.0f, 32.0f}, {ROUND_POS(p.x + 64.f), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, + WHITE); + } +} + +float Level::collides(const Rectangle& rect, bool y) { + for (const auto& plat : plats) { + Rectangle tileRect = Rectangle {plat.pos.x, plat.pos.y + 44.f, 96.f, 64.f - 44.f}; + + if (CheckCollisionRecs(rect, tileRect)) { + auto colRect = GetCollisionRec(rect, tileRect); + if (colRect.height > 0 && y) { + return colRect.height; + } + if (colRect.width > 0 && !y) { + return colRect.width; + } + } + } + + for (const auto& tile : tiles) { + Rectangle tileRect = Rectangle {tile.x * 64.0f, tile.y * 64.0f, 64.0, 64.0f}; + if (tile.id == TABLELEFT) { + tileRect.y += 26.f; + tileRect.height -= 26.f; + } else if (tile.id == TABLERIGHT) { + tileRect.y += 26.f; + tileRect.height -= 26.f; + tileRect.width -= 32.f; + } else if (tile.id == PLATFORM) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + tileRect.width -= 32.f; + } else if (tile.id == PLATFORMBIGLEFT) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + } else if (tile.id == PLATFORMBIGRIGHT) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + // tileRect.width -= 32.f; + } else if (tile.id == LAVA) { + tileRect.y += 24.f; + tileRect.height -= 24.f; + } + + if (CheckCollisionRecs(rect, tileRect)) { + auto colRect = GetCollisionRec(rect, tileRect); + if (colRect.height > 0 && y) { + return colRect.height; + } + if (colRect.width > 0 && !y) { + return colRect.width; + } + } + } + + return 0; +} \ No newline at end of file diff --git a/src/Level.hpp b/src/Level.hpp new file mode 100644 index 0000000..19165c9 --- /dev/null +++ b/src/Level.hpp @@ -0,0 +1,78 @@ +#pragma once +#include "saferaylib.h" +#include +#include + +enum TextureTilePos { + BRICKGRAY = 0, + BRICKRED, + TORCH, + SAW, + CAKE, + + TABLELEFT, + TABLERIGHT, + + PLATFORMBIGLEFT, + PLATFORMBIGRIGHT, + + PLATFORM, + CHECKPOINT, + BANNERBASEMENT, + BANNERSFF, + BANNERDOOMETERNAL, + SIGN, + BANNBERHL, + BANNERNIRVANA, + LAVA, + + WHITEBRICKS, + BALOON1, + BALOON2, + BALOON3, + BALOON4, + + WOOD +}; + +// 64x64 pxl +struct Tile { + uint8_t id; + int16_t x; + int16_t y; + Color col = WHITE; + // Vector2 size = {0, 0}; +}; + +struct Saw { + // Vector2 startPos; + Vector2 pos; + float offset; +}; + +struct Platform { + // Vector2 startPos; + Vector2 pos; + float offset; +}; + +class Level { +public: + Level(); + + void load(); + float collides(const Rectangle& rect, bool y); + void update(float dt); + void draw(); + void drawBack(); + + std::vector checkpoints; + std::vector background; + std::vector tiles; + std::vector saws; + std::vector plats; + +private: + Texture2D tex; + // std::vector tilesBig; +}; \ No newline at end of file diff --git a/src/Multiplayer.cpp b/src/Multiplayer.cpp new file mode 100644 index 0000000..a14b770 --- /dev/null +++ b/src/Multiplayer.cpp @@ -0,0 +1,247 @@ +#include "Multiplayer.hpp" + +#include +#include +#include +#include +#include "Game.hpp" + +// #define SERVER_ADDRESS "127.0.0.1" +#define SERVER_ADDRESS "sffnetwork.su" + +void Multiplayer::connect(const char* name) { + printf("name %s\n", name); + m_name = name; + + m_state = MultiplayerState::CONNECTING; + + client = enet_host_create(nullptr, 1, LAST_CHANNEL, 0, 0); + if (!client) { + printf("client null\n"); + exit(1); + } + + ENetAddress address; + enet_address_set_host(&address, SERVER_ADDRESS); + address.port = 7777; + + peer = enet_host_connect(client, &address, LAST_CHANNEL, 0); + if (peer == nullptr) { + printf("peer null\n"); + enet_host_destroy(client); + exit(1); + } + + ENetEvent event; + auto res = enet_host_service(client, &event, 5000); + + if (res <= 0 || event.type != ENET_EVENT_TYPE_CONNECT) { + enet_peer_reset(peer); + printf("Failed to connect to server!\n"); + exit(1); + } + + auto packet_size = 1 + 2 + strlen(name); + auto login_packet = new char[packet_size]; + login_packet[0] = Header::IDENTIFICATION; + *(uint16_t*)(login_packet + 1) = strlen(name); + memcpy(login_packet + 3, name, strlen(name)); + + if (sendPacket(login_packet, packet_size)) { + printf("trying to reg!!\n"); + m_state = MultiplayerState::LOGGING_IN; + } +} + +int Multiplayer::sendPacket(char* data, int size, Channel channel, bool reliable) { + auto enetPacket = enet_packet_create(data, size, reliable ? ENET_PACKET_FLAG_RELIABLE : ENET_PACKET_FLAG_UNRELIABLE_FRAGMENT); + + return enet_peer_send(peer, channel, enetPacket) == 0; +} + +void Multiplayer::update(float dt) { + ENetEvent event; + while (enet_host_service(client, &event, 0) > 0) { + switch (event.type) { + case ENET_EVENT_TYPE_RECEIVE: { + // printf("packet received\n"); + + auto bytes = event.packet->data; + + // for (int i = 0; i < event.packet->dataLength; i++) { + // printf("%02X ", bytes[i]); + // } + // printf("\n"); + + switch (bytes[0]) { + case LOAD_PLAYER: { // all players get this when a new player connects + bytes++; + + uint16_t nameLen = *(uint16_t*)bytes; + bytes += 2; + + auto name = new char[nameLen + 1]; + memcpy(name, bytes, nameLen); + bytes += nameLen; + name[nameLen] = 0; + + uint32_t playerID = *(uint32_t*)bytes; + bytes += 4; + float serverTime = *(float*)bytes; + + printf("- load player name %s id %i server time %f\n", name, playerID, serverTime); + + Game::get().chatMessages.push_back({"Player " + std::string(name) + " has joined.", (float)GetTime()}); + + if (m_name == name) { + printf("- its me!\n"); + m_id = playerID; + m_state = MultiplayerState::PLAYING; + Game::get().serverTime = serverTime; + + char packet = Header::LOAD_PLAYERS; + + sendPacket(&packet, 1); + } else { + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + auto p = Player(skinFromName(name), name); + p.pos.y = -400; + Game::get().otherPlayers[playerID] = p; + } + + break; + } + + case LOAD_PLAYERS: { // get list of all players on server with their id,pos,name + printf("- load players packet size %i\n", event.packet->dataLength); + + bytes++; + + auto num = *bytes; + bytes++; + + for (int i = 0; i < num; i++) { + auto id = *(uint32_t*)bytes; + bytes += 4; + auto x = *(float*)bytes; + bytes += 4; + auto y = *(float*)bytes; + bytes += 4; + + auto nameLen = *(uint16_t*)bytes; + bytes += 2; + + auto name = new char[nameLen + 1]; + name[nameLen] = 0; + memcpy(name, bytes, nameLen); + bytes += nameLen; + + printf("- - player: x %f y %f name %s id %i\n", x, y, name, id); + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + auto p = Player(skinFromName(name), name); + // auto p = Player(texture.c_str(), name); + p.pos = {x, y}; + Game::get().otherPlayers[id] = p; + } + + break; + } + + case PLAYER: { // pos of all players + bytes++; + + auto num = *bytes; + bytes++; + + for (int i = 0; i < num; i++) { + auto id = *(uint32_t*)bytes; + bytes += 4; + auto x = *(float*)bytes; + bytes += 4; + auto y = *(float*)bytes; + bytes += 4; + + if (id == peer->connectID) { + continue; + } + + if (Game::get().otherPlayers.contains(id)) { + auto& p = Game::get().otherPlayers[id]; + // Game::get().otherPlayers[id].pos = {x, y}; + auto delta_x = x - p.pos.x; + p.pos = {x, y}; + p.vel.x = delta_x; + // p.walkRight = delta_x > 0; + if (delta_x > 0) { + p.walkRight = true; + } else if (delta_x < 0) { + p.walkRight = false; + } + } + } + + break; + } + + case MESSAGE: { + bytes++; + + auto len = *(uint16_t*)bytes; + bytes += 2; + + auto msg = new char[len + 1]; + msg[len] = 0; + + memcpy(msg, bytes, len); + + Game::get().chatMessages.push_back({msg, (float)GetTime()}); + + delete[] msg; + + break; + } + + default: { + printf("- unk packet %i\n", bytes[0]); + break; + } + } + + break; + } + + case ENET_EVENT_TYPE_DISCONNECT: { + printf("Connection closed.\n"); + break; + } + + default: break; + } + } + + m_updateTime += dt; + + const auto POS_TIME = 1 / 30.f; + if (m_updateTime > POS_TIME) { + // printf("sending pos\n"); + m_updateTime -= POS_TIME; + + auto data = new char[1 + 4 + 4]; + + data[0] = Header::PLAYER; + *(float*)(data + 1) = Game::get().player.pos.x; + *(float*)(data + 1 + 4) = Game::get().player.pos.y; + + sendPacket(data, 1 + 4 + 4); + + delete[] data; + } +} \ No newline at end of file diff --git a/src/Multiplayer.hpp b/src/Multiplayer.hpp new file mode 100644 index 0000000..891d75d --- /dev/null +++ b/src/Multiplayer.hpp @@ -0,0 +1,98 @@ +#pragma once +#include "saferaylib.h" +#include "cstdio" +#include "cstdint" +#include "string" + +enum Channel : uint8_t { + EVERYTHING, + BLOCKS, + LAST_CHANNEL +}; + +enum Header : uint8_t { + // World headers (also uses in mp) + PLAYER, + BLOCK, + CHUNK, + WORLD, + ENTITY, + INVENTORY_ITEM, + + // Multiplayer headers + IDENTIFICATION, + DISCONNECT, + LOAD_CHUNK, + UNLOAD_CHUNK, + LOAD_PLAYER, + UNLOAD_PLAYER, + BLOCK_PLACE, + BLOCK_DESTROY, + + NETWORK_ERROR, + ARRAY, + TERRAIN, + LOAD_TERRAIN, + LOAD_PLAYERS, + MESSAGE, + LOAD_MESSAGE, + NULL_PACKET = 0xFF +}; + +enum MultiplayerState { + CONNECTING, + LOGGING_IN, + LOADING_TERRAIN, + PLAYING, + ERROR +}; + +class Multiplayer { +public: + static Multiplayer& get() { + static Multiplayer inst; + return inst; + } + + // ~Multiplayer() { + // printf("MP distr\n"); + + // char data = Header::DISCONNECT; + + // sendPacket(&data, 1); + + // if (peer) { + // enet_peer_reset(peer); + // peer = nullptr; + // } + + // if (client) { + // enet_host_destroy(client); + // client = nullptr; + // } + // } + + Multiplayer() : m_state(MultiplayerState::CONNECTING), client(nullptr), peer(nullptr), m_updateTime(0) { + printf("MP constr\n"); + if (enet_initialize() != 0) { + printf("An error occurred while initializing ENet.\n"); + exit(1); + } + atexit(enet_deinitialize); + } + + void connect(const char* name); + + int sendPacket(char* data, int size, Channel channel = EVERYTHING, bool reliable = true); + void update(float dt); + + MultiplayerState m_state; + +private: + ENetHost* client; + ENetPeer* peer; + std::string m_name; + uint32_t m_id; + float m_updateTime; + bool connected = false; +}; diff --git a/src/Player.cpp b/src/Player.cpp new file mode 100644 index 0000000..cab3ab6 --- /dev/null +++ b/src/Player.cpp @@ -0,0 +1,131 @@ +#include "Player.hpp" +#include "Game.hpp" +#include + +Player::Player(const char* texName, std::string name, const Vector2& frameSize, int fps) : Player(LoadTexture(texName), name, frameSize, fps) {} + +Player::Player(Texture2D tex, std::string name, const Vector2& frameSize, int fps) + : pos(0, 0), animTime(0), targetFrameTime(1.0f / fps), curFrame(0), vel(0, 0), onGround(false), walkRight(true), name(name), tex(tex) { + totalFrames = (int)(tex.width / frameSize.x); +} + +void Player::update(float dt) { + bool co = Game::get().chatOpen; + + // // Should be removed from release build + // if (IsKeyDown(KEY_R) && !co) { + // // pos = {-66, -400}; + // pos = spawnPoint; + // } + if (IsKeyDown(KEY_A) && !co) { + vel.x = -500; + walkRight = false; + } else if (IsKeyDown(KEY_D) && !co) { + vel.x = 500; + walkRight = true; + } else { + vel.x = 0; + } + + if ((IsKeyDown(KEY_SPACE) || IsKeyDown(KEY_W)) && !co +#if 1 + && onGround +#endif + ) { + onGround = false; + // vel.y = -47000 * dt; + // vel.y = -(47000 * (1.f / 60)); + vel.y = -(49000 * (1.f / 60)); + } + + // vel.y += 2000 * dt; + vel.y += 2300 * dt; + + pos.y += vel.y * dt; + auto playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + auto colY = Game::get().level.collides(playerRect, true); + if (colY != 0) { + pos.y -= colY * (vel.y > 0 ? 1 : -1); + if (vel.y > 0) { + onGround = true; + } + vel.y = 0; + } else { + onGround = false; + } + + pos.x += vel.x * dt; + playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + auto colX = Game::get().level.collides(playerRect, false); + pos.x -= colX * (vel.x > 0 ? 1 : -1); + if (vel.x != 0) { + animTime += dt; + if (animTime >= targetFrameTime) { + animTime -= targetFrameTime; + curFrame = (curFrame + 1) % (totalFrames - 1); + // printf("%i\n", curFrame); + } + } + + if (vel.x == 0) { + curFrame = 0; + animTime = 0; + } + + playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + + for (auto& tile : Game::get().level.checkpoints) { + Rectangle tileRect = Rectangle {tile.x * 64.0f, tile.y * 64.0f, 64.0, 64.0f}; + + if (CheckCollisionRecs(playerRect, tileRect) && Game::get().spawnPointChangedTime == 0) { + spawnPoint = {tile.x * 64.0f - 32.f, tile.y * 64.0f}; + Game::get().spawnPointChangedTime = GetTime(); + break; + } + } + + for (auto& tile : Game::get().level.tiles) { + if (tile.id == LAVA) { + Rectangle tileRect = Rectangle {tile.x * 64.0f - 2, tile.y * 64.0f - 2, 64.0 + 4, 64.0f + 4}; + tileRect.x += 2; + tileRect.width -= 4; + tileRect.y += 24.f; + tileRect.height -= 24.f; + if (CheckCollisionRecs(tileRect, playerRect)) { + pos = spawnPoint; + vel = {0, 0}; + break; + } + } + } + + for (auto& saw : Game::get().level.saws) { + Rectangle tileRect = Rectangle {saw.pos.x + 2, saw.pos.y + 2, 64.0 - 4, 64.0f - 4}; + if (CheckCollisionRecs(tileRect, playerRect)) { + pos = spawnPoint; + vel = {0, 0}; + break; + } + } + + if (pos.y > -1900 && pos.y < -1700 && pos.x > 4500) { + Game::get().entered = true; + } + + // Game::get().camPos.x = fmax(pos.x - 640 + 32, -11 * 64.f); + Game::get().camPos.x = std::clamp(pos.x - 640 + 32, -11 * 64.f, 81 * 64.f - 1280); + Game::get().camPos.y = fmin(pos.y - 360 + 64, 4 * 64.f - 720 + 64); +} + +void Player::draw() { + // DrawTextureRec(tex, {(float)tex.width / totalFrames * curFrame, 0, (float)tex.width / totalFrames, (float)tex.height}, pos, WHITE); + auto p = Game::get().worldToScreen(pos); + auto ffframe = (vel.x != 0) ? curFrame + 1 : curFrame; + if (walkRight) { + DrawTexturePro(tex, {(float)tex.width / totalFrames * ffframe, 0, (float)tex.width / totalFrames, (float)tex.height}, + {p.x, p.y, (float)tex.width / totalFrames * 2, (float)tex.height * 2}, {0, 0}, 0, WHITE); + } else { + DrawTexturePro(tex, {(float)tex.width / totalFrames * (ffframe), 0, -(float)tex.width / totalFrames, (float)tex.height}, + {p.x, p.y, (float)tex.width / totalFrames * 2, (float)tex.height * 2}, {0, 0}, 0, WHITE); + } +} \ No newline at end of file diff --git a/src/Player.hpp b/src/Player.hpp new file mode 100644 index 0000000..cf4607a --- /dev/null +++ b/src/Player.hpp @@ -0,0 +1,27 @@ +#pragma once +#include "saferaylib.h" +#include "string" + +class Player { +public: + Player() {} + Player(const char* texName, std::string name, const Vector2& frameSize = {32, 64}, int fps = 7); + Player(Texture2D tex, std::string name, const Vector2& frameSize = {32, 64}, int fps = 7); + + void update(float dt); + void draw(); + + Vector2 pos; + Vector2 vel; + std::string name; + Vector2 spawnPoint; + bool walkRight; + float animTime; + int curFrame; + int totalFrames; + float targetFrameTime; + +private: + Texture2D tex; + bool onGround; +}; \ No newline at end of file diff --git a/src/assets.hpp b/src/assets.hpp new file mode 100644 index 0000000..fb9ab81 --- /dev/null +++ b/src/assets.hpp @@ -0,0 +1,1528 @@ +#pragma once +#include "cstdint" + +inline uint8_t minecraft_data[0x5530] = { + 0x0, 0x1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x80, 0x0, 0x3, 0x0, 0x20, 0x4f, 0x53, 0x2f, 0x32, 0x56, 0x30, 0xf5, 0xd8, 0x0, 0x0, 0x1, 0x28, 0x0, 0x0, 0x0, 0x60, 0x63, + 0x6d, 0x61, 0x70, 0x97, 0x66, 0x8e, 0xa4, 0x0, 0x0, 0x5, 0xc8, 0x0, 0x0, 0x1, 0xda, 0x67, 0x6c, 0x79, 0x66, 0x79, 0xff, 0xef, 0x38, 0x0, 0x0, 0x9, 0xc8, 0x0, 0x0, + 0x47, 0x4c, 0x68, 0x65, 0x61, 0x64, 0xfc, 0xdd, 0xed, 0xf4, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x36, 0x68, 0x68, 0x65, 0x61, 0x8, 0x3, 0x5, 0x10, 0x0, 0x0, 0x0, + 0xe4, 0x0, 0x0, 0x0, 0x24, 0x68, 0x6d, 0x74, 0x78, 0xf0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x1, 0x88, 0x0, 0x0, 0x4, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x4a, 0x89, 0x5c, 0x76, + 0x0, 0x0, 0x7, 0xa4, 0x0, 0x0, 0x2, 0x24, 0x6d, 0x61, 0x78, 0x70, 0x1, 0x1c, 0x0, 0x28, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3e, + 0xdd, 0xe1, 0x61, 0x0, 0x0, 0x51, 0x14, 0x0, 0x0, 0x3, 0xfc, 0x70, 0x6f, 0x73, 0x74, 0x0, 0x69, 0x0, 0x33, 0x0, 0x0, 0x55, 0x10, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x1, 0x19, 0x9a, 0xd5, 0xce, 0x45, 0x37, 0x5f, 0xf, 0x3c, 0xf5, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0xa0, 0x51, 0xa0, 0x0, 0x0, 0x0, + 0x0, 0xcc, 0xa9, 0x3e, 0xbd, 0x0, 0x0, 0xff, 0x80, 0x4, 0x80, 0x3, 0x80, 0x0, 0x0, 0x0, 0x8, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, + 0x3, 0x80, 0xff, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0xff, 0x80, 0x4, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xf, 0x0, 0x1, 0x0, 0x0, 0x1, 0x11, 0x0, 0x28, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x2, 0x67, 0x1, 0x90, 0x0, 0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x2, 0x0, 0x2, 0x0, 0x0, + 0x0, 0x2, 0x0, 0x0, 0x33, 0x0, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x2, 0x7, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x47, 0x44, 0x4e, 0x0, 0x40, 0x0, 0xd, 0x21, 0x22, 0x3, 0x80, 0xff, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x80, 0x0, 0xe, 0x0, + 0x5, 0x2, 0x2, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, + 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, + 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x80, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x80, 0x3, + 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, + 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x5, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, + 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1c, + 0x0, 0x4, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x20, 0x0, 0x4, 0x0, 0xa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x7e, 0x0, 0xa6, 0x0, 0xde, 0x0, 0xef, 0x0, 0xff, 0x1, + 0x53, 0x1, 0x78, 0x4, 0x1, 0x4, 0x4f, 0x4, 0x51, 0x20, 0x14, 0x20, 0x1e, 0x20, 0x20, 0x20, 0x22, 0x20, 0x26, 0x20, 0x3a, 0x20, 0xac, 0x21, 0x22, 0xff, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xd, 0x0, 0x20, 0x0, 0xa1, 0x0, 0xa8, 0x0, 0xe0, 0x0, 0xf1, 0x1, 0x52, 0x1, 0x78, 0x4, 0x1, 0x4, 0x10, 0x4, 0x51, 0x20, 0x14, 0x20, 0x18, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x26, 0x20, 0x39, 0x20, 0xac, 0x21, 0x22, 0xff, 0xff, 0x0, 0x0, 0xff, 0xf4, 0xff, 0xe2, 0xff, 0xc0, 0xff, 0xbf, 0xff, 0xbe, 0xff, 0xbd, 0xff, 0x6b, + 0xff, 0x47, 0xfd, 0xf, 0xfc, 0xbf, 0xfc, 0xbe, 0xe0, 0xac, 0xe0, 0xa9, 0xe0, 0xa8, 0xe0, 0xa7, 0xe0, 0xa4, 0xe0, 0x92, 0xe0, 0x21, 0xdf, 0xac, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x26, 0x0, 0x56, 0x0, 0x84, + 0x0, 0xb6, 0x0, 0xf6, 0x1, 0xa, 0x1, 0x2e, 0x1, 0x52, 0x1, 0x76, 0x1, 0x8e, 0x1, 0x9a, 0x1, 0xa6, 0x1, 0xb2, 0x1, 0xd4, 0x2, 0x4, 0x2, 0x1a, 0x2, 0x4c, 0x2, + 0x80, 0x2, 0xa4, 0x2, 0xca, 0x2, 0xf2, 0x3, 0x10, 0x3, 0x46, 0x3, 0x72, 0x3, 0x86, 0x3, 0x9a, 0x3, 0xc8, 0x3, 0xdc, 0x4, 0x8, 0x4, 0x34, 0x4, 0x5a, 0x4, 0x76, + 0x4, 0x9c, 0x4, 0xc0, 0x4, 0xda, 0x4, 0xf0, 0x5, 0x4, 0x5, 0x26, 0x5, 0x3e, 0x5, 0x52, 0x5, 0x6a, 0x5, 0x98, 0x5, 0xa6, 0x5, 0xca, 0x5, 0xee, 0x6, 0xe, 0x6, + 0x2a, 0x6, 0x56, 0x6, 0x78, 0x6, 0xa4, 0x6, 0xb6, 0x6, 0xd0, 0x6, 0xf8, 0x7, 0x1c, 0x7, 0x56, 0x7, 0x7a, 0x7, 0xa2, 0x7, 0xb4, 0x7, 0xdc, 0x7, 0xee, 0x8, 0x10, + 0x8, 0x1c, 0x8, 0x28, 0x8, 0x48, 0x8, 0x6c, 0x8, 0x90, 0x8, 0xb2, 0x8, 0xd2, 0x8, 0xee, 0x9, 0x12, 0x9, 0x32, 0x9, 0x44, 0x9, 0x64, 0x9, 0x8e, 0x9, 0xa0, 0x9, + 0xc4, 0x9, 0xda, 0x9, 0xfa, 0xa, 0x20, 0xa, 0x44, 0xa, 0x64, 0xa, 0x86, 0xa, 0xa2, 0xa, 0xb8, 0xa, 0xdc, 0xa, 0xf6, 0xb, 0x2e, 0xb, 0x4e, 0xb, 0x6e, 0xb, 0x94, + 0xb, 0xa0, 0xb, 0xc6, 0xb, 0xe4, 0xb, 0xf6, 0xc, 0x10, 0xc, 0x30, 0xc, 0x52, 0xc, 0x86, 0xc, 0x9a, 0xc, 0xc8, 0xc, 0xe8, 0xc, 0xfa, 0xd, 0x38, 0xd, 0x48, 0xd, + 0x56, 0xd, 0x7a, 0xd, 0x86, 0xd, 0x9a, 0xd, 0xb8, 0xd, 0xcc, 0xd, 0xde, 0xd, 0xec, 0xe, 0x0, 0xe, 0x20, 0xe, 0x2c, 0xe, 0x3e, 0xe, 0x4c, 0xe, 0x60, 0xe, 0x9c, + 0xe, 0xd6, 0xf, 0xa, 0xf, 0x42, 0xf, 0x6a, 0xf, 0x8e, 0xf, 0xb0, 0xf, 0xde, 0x10, 0x10, 0x10, 0x38, 0x10, 0x5a, 0x10, 0x7c, 0x10, 0xae, 0x10, 0xcc, 0x10, 0xea, 0x11, + 0x16, 0x11, 0x38, 0x11, 0x54, 0x11, 0x70, 0x11, 0x98, 0x11, 0xb8, 0x11, 0xdc, 0x12, 0xe, 0x12, 0x36, 0x12, 0x5e, 0x12, 0x90, 0x12, 0xc6, 0x12, 0xf2, 0x13, 0x2a, 0x13, 0x54, + 0x13, 0x74, 0x13, 0x94, 0x13, 0xc0, 0x13, 0xe6, 0x14, 0x12, 0x14, 0x38, 0x14, 0x5e, 0x14, 0x84, 0x14, 0xb6, 0x14, 0xec, 0x15, 0x18, 0x15, 0x3e, 0x15, 0x6a, 0x15, 0x9c, 0x15, + 0xc4, 0x15, 0xea, 0x16, 0x1c, 0x16, 0x48, 0x16, 0x5c, 0x16, 0x6e, 0x16, 0x8e, 0x16, 0xa6, 0x16, 0xce, 0x16, 0xf6, 0x17, 0x1e, 0x17, 0x50, 0x17, 0x86, 0x17, 0xb2, 0x17, 0xcc, + 0x17, 0xf4, 0x18, 0x10, 0x18, 0x2c, 0x18, 0x54, 0x18, 0x74, 0x18, 0x9c, 0x18, 0xc2, 0x18, 0xee, 0x19, 0xe, 0x19, 0x3c, 0x19, 0x6c, 0x19, 0x78, 0x19, 0x8a, 0x19, 0x9c, 0x19, + 0xae, 0x19, 0xc2, 0x19, 0xe0, 0x19, 0xfe, 0x1a, 0x1c, 0x1a, 0x32, 0x1a, 0x40, 0x1a, 0x56, 0x1a, 0x6c, 0x1a, 0x82, 0x1a, 0xac, 0x1a, 0xce, 0x1a, 0xee, 0x1b, 0xc, 0x1b, 0x34, + 0x1b, 0x44, 0x1b, 0x62, 0x1b, 0x7a, 0x1b, 0xae, 0x1b, 0xe4, 0x1c, 0x6, 0x1c, 0x34, 0x1c, 0x6c, 0x1c, 0x88, 0x1c, 0xac, 0x1c, 0xc4, 0x1c, 0xe6, 0x1c, 0xf8, 0x1d, 0x16, 0x1d, + 0x3c, 0x1d, 0x4e, 0x1d, 0x74, 0x1d, 0xa0, 0x1d, 0xde, 0x1d, 0xf6, 0x1e, 0xe, 0x1e, 0x26, 0x1e, 0x44, 0x1e, 0x64, 0x1e, 0x88, 0x1e, 0xa4, 0x1e, 0xd0, 0x1e, 0xfc, 0x1f, 0x28, + 0x1f, 0x4a, 0x1f, 0x7a, 0x1f, 0x9c, 0x1f, 0xac, 0x1f, 0xd4, 0x1f, 0xf6, 0x20, 0x28, 0x20, 0x4e, 0x20, 0x66, 0x20, 0x8a, 0x20, 0xb4, 0x20, 0xd2, 0x20, 0xf4, 0x21, 0xc, 0x21, + 0x2e, 0x21, 0x40, 0x21, 0x5e, 0x21, 0x86, 0x21, 0x98, 0x21, 0xb8, 0x21, 0xe0, 0x22, 0x18, 0x22, 0x30, 0x22, 0x4a, 0x22, 0x62, 0x22, 0x7e, 0x22, 0x9c, 0x22, 0xc2, 0x22, 0xde, + 0x23, 0x8, 0x23, 0x34, 0x23, 0x56, 0x23, 0x84, 0x23, 0xa6, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x35, 0x33, + 0x15, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x3, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x11, + 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, + 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x1b, 0x0, + 0x0, 0x21, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x13, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, + 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, + 0x11, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, + 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x1, 0x35, 0x23, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0xff, 0x0, 0x2, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x13, 0x11, 0x33, 0x11, + 0x3, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, + 0x3d, 0x1, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, + 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x2, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, + 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0xb, 0x0, 0x0, 0x25, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, + 0x11, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x80, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x2, 0x80, 0x2, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x2, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x31, 0x11, + 0x33, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, + 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x21, 0x11, + 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, + 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x21, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, + 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x1, 0x0, 0x80, + 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, + 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0x13, 0x0, 0x0, 0x13, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x13, 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x11, 0x23, 0x35, 0x21, 0x11, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, + 0x33, 0x11, 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x35, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x19, 0x1, 0x35, 0x33, + 0x15, 0x3d, 0x1, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, + 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x0, 0x21, + 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x21, 0x15, 0x23, 0x11, 0x21, 0x11, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, + 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, + 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, + 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x0, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x2, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x3d, 0x1, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x2, 0x80, + 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x37, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x2, + 0x0, 0xfd, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x3, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x3, 0x35, 0x33, 0x15, + 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, + 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x5, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x3, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x80, 0xfe, + 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0x0, + 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x0, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11, + 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfd, 0x80, + 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x11, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfc, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x5, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x3, + 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x15, 0x80, 0x2, 0x0, 0x3, 0x80, 0xfd, + 0x0, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, + 0x15, 0x23, 0x11, 0x21, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, + 0x0, 0x3, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0xb, 0x0, 0x13, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x0, + 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, + 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, + 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, + 0x33, 0x35, 0x21, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, + 0xff, 0x0, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x3, + 0x35, 0x33, 0x15, 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, + 0x0, 0x0, 0x21, 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0xff, 0x0, 0x3, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, 0xfe, + 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x1, 0x11, 0x33, 0x11, 0x21, 0x11, + 0x33, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, + 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x21, 0x35, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x31, 0x11, 0x33, + 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, + 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, + 0x17, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x35, 0x21, 0x11, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x1, 0x80, 0xff, 0x0, + 0x1, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xff, 0x0, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x31, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x1, 0x0, 0xff, 0x0, + 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x15, 0x35, 0x21, 0x15, 0x2, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, + 0x11, 0x35, 0x21, 0x15, 0x1, 0x0, 0x3, 0x0, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x3d, + 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x11, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, + 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0x11, 0x0, 0x0, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, + 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, + 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x15, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x0, + 0xff, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xf, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, + 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x4, + 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x3, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x0, 0x21, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, + 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x0, 0x80, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x80, 0x80, 0xff, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x1, + 0x11, 0x33, 0x11, 0x13, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x23, 0x11, 0x1, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, + 0x80, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, + 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x1, 0x11, 0x33, 0x11, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x15, 0x21, 0x15, 0x21, 0x11, 0x13, 0x35, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, 0xfe, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x19, 0x1, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, + 0x13, 0x11, 0x21, 0x35, 0x21, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, + 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x13, 0x35, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x0, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, + 0x35, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x23, 0x35, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xfe, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x80, + 0x1, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0xfe, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x31, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, + 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x3d, + 0x1, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x21, + 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x21, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2, 0x80, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x21, 0x15, 0x25, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, + 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, + 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, + 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x21, 0x35, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, + 0x15, 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, + 0x31, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, + 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x23, 0x35, 0x21, 0x15, 0x23, 0x15, 0x13, 0x35, 0x33, 0x15, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x11, 0x21, 0x15, 0x23, 0x15, 0x33, 0x15, 0x17, 0x11, 0x21, + 0x11, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x1, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, + 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, + 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, + 0x1, 0x80, 0x0, 0x5, 0x0, 0x0, 0x25, 0x35, 0x21, 0x35, 0x21, 0x11, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x0, 0x0, 0x1, 0x0, 0x80, 0x1, + 0x0, 0x2, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x0, 0x13, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x3, 0x80, 0x0, 0x5, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x1, 0x11, 0x21, 0x11, 0x23, 0x15, 0x5, 0x35, 0x23, 0x35, 0x33, 0x11, 0x21, 0x11, 0x7, 0x11, 0x21, + 0x11, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x1, 0x0, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, + 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x2, 0x80, 0x3, + 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, + 0x80, 0x80, 0x1, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0xf, 0x0, + 0x0, 0x15, 0x35, 0x21, 0x15, 0x1, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x5, 0x0, + 0x9, 0x0, 0x0, 0x19, 0x1, 0x33, 0x15, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x1, + 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x80, 0x3, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x1, 0x35, 0x21, 0x15, 0x1, 0x80, 0x1, 0x0, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x9, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x80, + 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x0, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0xd, + 0x0, 0x11, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x13, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x0, 0x80, + 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x80, 0xff, 0x80, 0x2, 0x0, 0x0, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x80, 0x2, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, 0x80, 0x80, 0x1, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, + 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, + 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, + 0x19, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x15, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x35, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, + 0x19, 0x0, 0x1d, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x5, 0x35, 0x23, 0x11, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x25, 0x11, + 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x7, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, + 0x11, 0x5, 0x35, 0x23, 0x11, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x21, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, + 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x19, 0x1, + 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, + 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, + 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, + 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, 0x3, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, + 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, + 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, + 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, + 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x15, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x33, 0x35, 0x23, 0x35, 0x21, 0x15, 0x21, 0x15, 0x33, 0x15, + 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x2, 0x80, + 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, + 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x15, + 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x1, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, + 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x80, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x33, 0x11, 0x23, + 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, + 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, + 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x5, 0x11, 0x23, 0x35, + 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x2, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x2, + 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, + 0x0, 0x3, 0x0, 0xb, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x35, 0x23, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x11, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xfe, + 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x0, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, + 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, + 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, + 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x33, + 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, + 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, + 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, + 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, + 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x17, 0x0, 0x0, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x23, 0x11, 0x33, 0x11, 0x33, 0x15, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x35, + 0x21, 0x15, 0x33, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, + 0x2, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, + 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, + 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, + 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, + 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x1, 0x80, + 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, + 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x21, 0x15, + 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, + 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, + 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, + 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, + 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, + 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, + 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, + 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, + 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, + 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, + 0x15, 0x11, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x3, 0x35, + 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, + 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, + 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, + 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, + 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x35, 0x21, 0x15, 0x80, 0x80, + 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, + 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x80, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xb, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, + 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, + 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, + 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, + 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x7, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, + 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, + 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x3, + 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x25, 0x35, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x2, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, + 0x17, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x35, 0x23, 0x11, 0x33, 0x11, 0x33, 0x15, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x35, 0x21, 0x15, 0x33, 0x11, 0x1, 0x0, + 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, + 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, + 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, + 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, + 0x21, 0x15, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfd, 0x80, 0x4, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, + 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, + 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x13, 0x0, + 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x21, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, + 0x19, 0x1, 0x33, 0x15, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x3, 0x0, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x3, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x2, 0x0, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x35, 0x11, + 0x33, 0x11, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x1, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, + 0x0, 0x15, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x13, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x33, 0x11, + 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, + 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x15, 0x35, + 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0xb, 0x0, 0x0, 0x33, 0x11, 0x23, 0x35, 0x33, 0x11, + 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, + 0x80, 0x1, 0x0, 0x2, 0x80, 0x0, 0x3, 0x0, 0x0, 0x19, 0x1, 0x21, 0x11, 0x1, 0x0, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x0, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0xff, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, + 0x35, 0x21, 0x15, 0x25, 0x35, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x1, 0x0, + 0x1, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x4, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x35, 0x21, 0x15, + 0x23, 0x11, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x35, 0x23, 0x11, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, + 0x0, 0x11, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x80, + 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0xfc, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x11, 0x33, 0x11, 0x23, 0x2, 0x0, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x1, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, + 0x1, 0x0, 0xff, 0x0, 0xfe, 0x0, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x5, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x11, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x37, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x5, 0x15, 0x80, 0x80, 0x80, 0x80, 0x1, + 0xff, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0xfd, 0x0, 0xff, 0x0, 0x7b, 0x2, 0x79, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, 0xff, 0x2, 0x81, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x19, 0x1, 0x15, 0x23, 0x13, 0x7, 0x3, 0x23, 0x35, 0x33, 0x11, 0x33, + 0x3, 0x5, 0x11, 0x23, 0x13, 0x80, 0x1, 0x81, 0x2, 0x80, 0x7f, 0x81, 0x1, 0x80, 0x1, 0x7f, 0x7f, 0x81, 0x1, 0x1, 0x1, 0x81, 0x1, 0x1, 0x1, 0x80, 0xfe, 0x80, 0x3, + 0x7f, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x1, 0x81, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xe, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1c, 0x0, 0x20, 0x0, 0x0, 0x11, 0x33, + 0x15, 0x23, 0x33, 0x21, 0x15, 0x21, 0x25, 0x31, 0x11, 0x31, 0x33, 0x11, 0x31, 0x1, 0x21, 0x15, 0x21, 0x25, 0x11, 0x33, 0x31, 0x11, 0x1, 0x21, 0x31, 0x15, 0x21, 0x23, 0x33, + 0x15, 0x23, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x9, 0x0, 0x11, 0x0, 0x0, 0x19, 0x1, 0x21, 0x35, 0x23, 0x11, 0x13, 0x33, 0x15, 0x23, 0x1, 0x11, 0x23, 0x11, 0x33, 0x11, 0x33, 0x11, + 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x80, 0x80, 0x3, 0x0, 0xfe, 0x80, 0xff, 0x0, 0xff, 0x0, + 0x3, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x6, 0x0, 0xa, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, + 0x15, 0x21, 0x31, 0x1, 0x33, 0x15, 0x23, 0x1, 0x11, 0x23, 0x15, 0x33, 0x11, 0x33, 0x11, 0x25, 0x33, 0x15, 0x31, 0x23, 0x13, 0x33, 0x15, 0x23, 0x80, 0x80, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, 0xff, + 0x0, 0x2, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x8, 0x0, 0xc, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1c, 0x0, + 0x20, 0x0, 0x24, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x15, 0x31, 0x23, 0x11, 0x23, 0x1, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x31, 0x23, 0x31, 0x13, 0x33, 0x31, 0x15, 0x23, + 0x3, 0x15, 0x23, 0x35, 0x31, 0x5, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x4, 0x0, 0x9, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x33, 0x31, 0x19, 0x1, 0x33, + 0x15, 0x23, 0x31, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x1, 0x0, 0xfc, 0x80, + 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x19, 0x0, 0x0, 0x31, 0x11, 0x31, 0x33, 0x15, 0x33, 0x31, 0x15, 0x23, + 0x11, 0x31, 0x1, 0x23, 0x15, 0x33, 0x13, 0x15, 0x23, 0x31, 0x15, 0x33, 0x31, 0x11, 0x33, 0x31, 0x11, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, 0x0, + 0x0, 0x11, 0x33, 0x11, 0x21, 0x31, 0x11, 0x33, 0x11, 0x23, 0x31, 0x11, 0x21, 0x11, 0x23, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0xfc, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x15, 0x21, + 0x35, 0x5, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x15, 0x21, 0x35, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x3, 0x80, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x8, 0x0, + 0x0, 0x31, 0x11, 0x21, 0x11, 0x23, 0x31, 0x11, 0x21, 0x11, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x39, 0x1, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x11, 0x23, 0x11, 0x2, 0x0, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x3, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x5, 0x15, 0x23, + 0x35, 0x11, 0x15, 0x21, 0x35, 0x25, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x3, 0x0, 0xfd, 0x80, 0x2, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, + 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x2, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x11, 0x21, 0x11, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x1, 0x80, 0xfd, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x13, + 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x23, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x1d, + 0x1, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, 0x2, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x3, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x3, 0x80, + 0x0, 0xe, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x31, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x31, 0x21, 0x31, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0xff, 0x0, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x23, + 0x33, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x1, 0x80, 0x0, 0x0, + 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x31, 0x33, 0x11, 0x33, 0x31, 0x11, 0x21, 0x80, 0x80, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfc, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x3, 0x80, 0x0, + 0x13, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x31, 0x11, 0x39, 0x1, 0x33, 0x11, 0x31, 0x23, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0xfd, 0x80, 0x3, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x0, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x31, 0x11, 0x23, 0x1, 0x11, 0x23, 0x11, 0x1, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x3, 0x0, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, 0x11, + 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x1, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, + 0xff, 0x0, 0x1, 0x0, 0x2, 0x0, 0xfc, 0x80, 0x3, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, + 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x18, + 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, 0x11, 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x13, 0x21, 0x11, 0x33, 0x11, 0x23, 0x31, 0x11, 0x21, 0x80, 0x80, + 0x2, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, + 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x3, 0x80, 0x80, 0x80, + 0xfd, 0x0, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, + 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x37, 0x21, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x35, 0x23, 0x35, 0x21, 0x11, 0x21, 0x13, 0x15, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x80, + 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0xfc, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, + 0x0, 0x1, 0x15, 0x21, 0x35, 0x11, 0x15, 0x23, 0x35, 0x37, 0x21, 0x35, 0x33, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, + 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, + 0x15, 0x31, 0x21, 0x15, 0x13, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x5, 0x0, 0x0, 0x31, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0x15, 0x0, 0x0, 0x21, 0x15, 0x21, 0x35, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x35, 0x31, 0x2, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x1, 0x15, 0x21, + 0x35, 0x1, 0x15, 0x21, 0x35, 0x3, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x23, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x25, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x1, 0x15, 0x21, 0x35, 0x5, + 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x1d, 0x1, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, + 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, + 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x21, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfe, 0x0, + 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, + 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x21, 0x1, 0x15, 0x23, 0x35, 0x25, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, + 0x80, 0x1, 0x0, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x1, 0x15, 0x23, 0x35, + 0x25, 0x15, 0x23, 0x35, 0x11, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x23, 0x35, 0x37, 0x21, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x1, 0x15, 0x23, 0x35, 0x37, 0x33, 0x35, 0x33, 0x11, + 0x23, 0x11, 0x23, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, + 0x1, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, + 0x23, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x15, 0x21, 0x35, 0x5, 0x11, 0x23, 0x19, 0x1, 0x15, 0x21, 0x35, 0x19, 0x1, 0x23, + 0x11, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x2, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x0, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x23, 0x11, 0x5, 0x11, 0x23, 0x11, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, + 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, + 0x0, 0x0, 0x21, 0x15, 0x21, 0x35, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0x17, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x25, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x23, 0x35, + 0x33, 0x11, 0x23, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, + 0x1d, 0x1, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0xc, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x31, + 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xc, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x31, 0x33, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x2, 0x80, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, + 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x2, 0x80, 0x0, 0xf, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, + 0x2, 0x0, 0xfe, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x21, 0x15, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x5, 0x11, 0x23, 0x11, 0x1, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x80, 0x2, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x12, 0x0, 0x0, + 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x11, 0x23, 0x11, 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x2, + 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0xff, 0x0, 0xff, 0x0, 0x1, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x2, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, + 0x11, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, 0x11, + 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x13, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, + 0x80, 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x14, 0x0, 0x18, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x35, 0x33, 0x11, 0x23, 0x35, 0x23, 0x11, 0x23, 0x11, 0x21, + 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, + 0x21, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0xff, 0x0, 0xff, 0x0, 0x1, 0x0, 0x1, 0x80, + 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x1, + 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x3, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x23, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x2, 0x0, 0xfe, 0x80, + 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, + 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x80, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x1, 0xfe, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0x0, 0x60, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xd, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x0, 0x7, 0x0, 0x94, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x15, 0x0, 0x86, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0xb, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x9, 0x0, 0x19, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8, 0x0, 0xf, 0x0, 0x9b, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x6, 0x0, 0x77, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x4d, + 0x0, 0xb, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x8, 0x0, 0x58, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x26, 0x0, 0x60, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x20, 0x0, 0x1, 0x0, 0xd, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x2, 0x0, 0x7, 0x0, 0x94, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x3, + 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x4, 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x5, 0x0, 0xb, 0x0, 0x0, 0x0, + 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x6, 0x0, 0x9, 0x0, 0x19, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x8, 0x0, 0xf, 0x0, 0x9b, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, + 0x0, 0x9, 0x0, 0x6, 0x0, 0x77, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0xa, 0x0, 0x4d, 0x0, 0xb, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x0, 0x0, 0x4c, 0x1, + 0x94, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x1, 0x0, 0x1a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x2, 0x0, 0xe, 0x0, 0xc6, 0x0, 0x3, 0x0, 0x1, + 0x4, 0x9, 0x0, 0x3, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x4, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x5, 0x0, + 0x16, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x6, 0x0, 0x12, 0x1, 0x6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x8, 0x0, 0x1e, 0x1, 0xe0, 0x0, 0x3, + 0x0, 0x1, 0x4, 0x9, 0x0, 0x9, 0x0, 0xc, 0x1, 0xc2, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0xa, 0x0, 0x9a, 0x0, 0xea, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x1, + 0x0, 0x0, 0x10, 0x1, 0x84, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x0, 0x0, 0x4c, 0x1, 0x94, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x1, 0x0, 0x1a, 0x0, 0xaa, + 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x2, 0x0, 0xe, 0x0, 0xc6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x3, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, + 0x19, 0x0, 0x4, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x5, 0x0, 0x16, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x6, 0x0, 0x12, + 0x1, 0x6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x8, 0x0, 0x1e, 0x1, 0xe0, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x9, 0x0, 0xc, 0x1, 0xc2, 0x0, 0x3, 0x0, + 0x1, 0x4, 0x19, 0x0, 0xa, 0x0, 0x9a, 0x0, 0xea, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0xd0, 0xf3, 0xf1, 0xf1, 0xea, 0xe8, 0xe9, 0x20, 0xf8, + 0xf0, 0xe8, 0xf4, 0xf2, 0x20, 0x4d, 0x69, 0x6e, 0x65, 0x63, 0x72, 0x61, 0x66, 0x74, 0x2e, 0x20, 0xd1, 0xe4, 0xe5, 0xeb, 0xe0, 0xed, 0xee, 0x20, 0xf1, 0x20, 0xed, 0xf3, 0xeb, + 0xff, 0x20, 0xe8, 0xe7, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2b, 0x20, 0xe4, 0xee, 0xe1, 0xe0, 0xe2, 0xeb, 0xe5, 0xed, 0xfb, 0x20, 0xe3, 0xeb, 0xe8, + 0xf4, 0xfb, 0x20, 0xe8, 0xe7, 0x20, 0xe0, 0xed, 0xe3, 0xeb, 0x41, 0x51, 0x41, 0x4d, 0x64, 0x46, 0x70, 0x6e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xa9, + 0x20, 0x32, 0x30, 0x30, 0x34, 0x2d, 0x32, 0x30, 0x31, 0x32, 0x2c, 0x20, 0x42, 0x4f, 0x47, 0x44, 0x41, 0x4e, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x65, 0x63, 0x72, 0x61, 0x66, 0x74, 0x20, 0x52, 0x75, 0x73, 0x20, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x6f, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x20, 0x36, 0x2e, 0x30, 0x0, 0x4d, 0x0, 0x69, 0x0, 0x6e, 0x0, 0x65, 0x0, 0x63, 0x0, 0x72, 0x0, 0x61, 0x0, 0x66, 0x0, 0x74, 0x0, 0x20, 0x0, 0x52, 0x0, 0x75, + 0x0, 0x73, 0x0, 0x20, 0x0, 0x52, 0x0, 0x65, 0x0, 0x67, 0x0, 0x75, 0x0, 0x6c, 0x0, 0x61, 0x0, 0x72, 0x0, 0x56, 0x0, 0x65, 0x0, 0x72, 0x0, 0x73, 0x0, 0x69, 0x0, + 0x6f, 0x0, 0x6e, 0x0, 0x20, 0x0, 0x31, 0x0, 0x2e, 0x0, 0x31, 0x4, 0x20, 0x4, 0x43, 0x4, 0x41, 0x4, 0x41, 0x4, 0x3a, 0x4, 0x38, 0x4, 0x39, 0x0, 0x20, 0x4, 0x48, + 0x4, 0x40, 0x4, 0x38, 0x4, 0x44, 0x4, 0x42, 0x0, 0x20, 0x0, 0x4d, 0x0, 0x69, 0x0, 0x6e, 0x0, 0x65, 0x0, 0x63, 0x0, 0x72, 0x0, 0x61, 0x0, 0x66, 0x0, 0x74, 0x0, + 0x2e, 0x0, 0x20, 0x4, 0x21, 0x4, 0x34, 0x4, 0x35, 0x4, 0x3b, 0x4, 0x30, 0x4, 0x3d, 0x4, 0x3e, 0x0, 0x20, 0x4, 0x41, 0x0, 0x20, 0x4, 0x3d, 0x4, 0x43, 0x4, 0x3b, + 0x4, 0x4f, 0x0, 0x20, 0x4, 0x38, 0x4, 0x37, 0x0, 0x20, 0x0, 0x66, 0x0, 0x6f, 0x0, 0x6e, 0x0, 0x74, 0x0, 0x2e, 0x0, 0x70, 0x0, 0x6e, 0x0, 0x67, 0x0, 0x20, 0x0, + 0x2b, 0x0, 0x20, 0x4, 0x34, 0x4, 0x3e, 0x4, 0x31, 0x4, 0x30, 0x4, 0x32, 0x4, 0x3b, 0x4, 0x35, 0x4, 0x3d, 0x4, 0x4b, 0x0, 0x20, 0x4, 0x33, 0x4, 0x3b, 0x4, 0x38, + 0x4, 0x44, 0x4, 0x4b, 0x0, 0x20, 0x4, 0x38, 0x4, 0x37, 0x0, 0x20, 0x4, 0x30, 0x4, 0x3d, 0x4, 0x33, 0x4, 0x3b, 0x0, 0x41, 0x0, 0x51, 0x0, 0x41, 0x0, 0x4d, 0x0, + 0x64, 0x0, 0x46, 0x0, 0x70, 0x0, 0x6e, 0x0, 0x43, 0x0, 0x6f, 0x0, 0x70, 0x0, 0x79, 0x0, 0x72, 0x0, 0x69, 0x0, 0x67, 0x0, 0x68, 0x0, 0x74, 0x0, 0x20, 0x0, 0xa9, + 0x0, 0x20, 0x0, 0x32, 0x0, 0x30, 0x0, 0x30, 0x0, 0x34, 0x0, 0x2d, 0x0, 0x32, 0x0, 0x30, 0x0, 0x31, 0x0, 0x32, 0x0, 0x2c, 0x0, 0x20, 0x0, 0x42, 0x0, 0x4f, 0x0, + 0x47, 0x0, 0x44, 0x0, 0x41, 0x0, 0x4e, 0x0, 0x20, 0x0, 0x53, 0x0, 0x6f, 0x0, 0x66, 0x0, 0x74, 0x0, 0x77, 0x0, 0x61, 0x0, 0x72, 0x0, 0x65, 0x0, 0x46, 0x0, 0x6f, + 0x0, 0x6e, 0x0, 0x74, 0x0, 0x43, 0x0, 0x72, 0x0, 0x65, 0x0, 0x61, 0x0, 0x74, 0x0, 0x6f, 0x0, 0x72, 0x0, 0x20, 0x0, 0x36, 0x0, 0x2e, 0x0, 0x30, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; + +constexpr auto minecraft_data_size = 0x5530; + +inline uint8_t citrim_data[0x9ae] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0x68, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4f, 0x68, 0x15, 0x47, 0x1c, 0xfe, 0x9e, 0x28, 0x2f, 0x51, 0x42, 0xb4, 0xa9, 0xa2, 0xb5, 0x98, 0x4b, 0x5b, 0x4c, 0x83, 0x39, 0x54, 0x14, 0xf5, 0xd0, 0x82, 0xd5, 0x48, 0x49, + 0xc0, 0x22, 0x54, 0x28, 0xe6, 0x90, 0x22, 0x1e, 0x7a, 0x91, 0x5a, 0xa3, 0x98, 0x2a, 0x58, 0xa1, 0x6d, 0x44, 0x6d, 0x2b, 0x3d, 0xb4, 0x7, 0x29, 0x6d, 0xc1, 0x22, 0x54, 0xea, + 0x29, 0x52, 0xea, 0x9f, 0x4b, 0xe, 0x62, 0x6d, 0x6d, 0x45, 0x9, 0x85, 0x9a, 0x83, 0x91, 0x5a, 0xc4, 0x90, 0xa8, 0xd8, 0x98, 0x3c, 0x4c, 0xdd, 0x1e, 0xe2, 0x8c, 0xb3, 0xfb, + 0x66, 0x77, 0x67, 0x76, 0x67, 0xf6, 0x37, 0xef, 0xbd, 0xfd, 0x20, 0xe4, 0xed, 0xbe, 0x9d, 0xfd, 0xbe, 0xf9, 0xfd, 0x99, 0xf9, 0xed, 0xec, 0x7b, 0xfb, 0xa, 0xc8, 0x91, 0x43, + 0x1, 0x87, 0x3a, 0xe1, 0x45, 0xbd, 0xff, 0xb0, 0x34, 0x3, 0xb3, 0x8b, 0x8f, 0xb1, 0xbb, 0x1f, 0x85, 0xac, 0x34, 0x55, 0x3, 0xb4, 0x8d, 0x45, 0xe9, 0x8, 0xea, 0x20, 0xa0, + 0xe6, 0xa7, 0xd2, 0x70, 0xa8, 0x13, 0x1e, 0x3b, 0xaf, 0x8c, 0x2b, 0x88, 0x6a, 0xf4, 0xbd, 0x2d, 0xd, 0x5a, 0x62, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x54, 0x1a, 0xc4, + 0xa0, 0xbb, 0xf7, 0xa8, 0x11, 0x73, 0x67, 0xdd, 0xc7, 0xc3, 0xd2, 0xc, 0x6c, 0x3b, 0xf8, 0x33, 0x3f, 0xe6, 0xd8, 0x9e, 0xd, 0x0, 0xe0, 0xd3, 0x50, 0x4d, 0xbe, 0xb7, 0xa9, + 0x41, 0x59, 0x28, 0xa5, 0x23, 0xa8, 0x83, 0x80, 0x9a, 0x9f, 0x4a, 0x3, 0xe3, 0x1c, 0x9b, 0xa8, 0xc3, 0x33, 0xf5, 0x93, 0x0, 0x50, 0xc6, 0x29, 0x72, 0xe7, 0xb6, 0xd7, 0xd7, + 0x30, 0x43, 0x47, 0xc0, 0xd8, 0x44, 0x1d, 0x0, 0x48, 0x5, 0x0, 0x90, 0x3a, 0x26, 0x2d, 0x28, 0xb9, 0x5d, 0xe0, 0xa7, 0xd4, 0xc0, 0xf8, 0x58, 0xf2, 0x1, 0x90, 0x8e, 0xf6, + 0x22, 0x1e, 0x96, 0xa6, 0x43, 0x2a, 0xae, 0x5c, 0x53, 0x41, 0x2d, 0xd8, 0x5e, 0x29, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x54, 0x1a, 0xe, 0x75, 0xc2, 0x13, 0xf9, + 0xd8, 0x39, 0xb7, 0x1c, 0x38, 0x2b, 0x3d, 0xde, 0x46, 0x12, 0xd4, 0x82, 0xed, 0x63, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0xef, 0x82, 0x86, 0x7b, 0x8f, 0x1a, 0x8d, + 0x9e, 0x4f, 0x15, 0xd4, 0xfd, 0xce, 0x4a, 0x83, 0xd2, 0xc, 0x8, 0xd0, 0x39, 0x82, 0x9a, 0xdb, 0x5, 0x7e, 0x2a, 0xd, 0x63, 0x13, 0x75, 0x98, 0x3b, 0xeb, 0x3e, 0x80, 0xe9, + 0xc0, 0xdb, 0x7f, 0xe6, 0x3f, 0xb4, 0xbe, 0xfe, 0x16, 0xfe, 0xe8, 0xf8, 0xce, 0x77, 0xdc, 0x73, 0xaf, 0xac, 0x43, 0x57, 0xcf, 0x27, 0x78, 0xf9, 0xb7, 0x2e, 0x7e, 0xac, 0x29, + 0x54, 0xbb, 0xed, 0x95, 0x4b, 0x50, 0x2a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0x85, 0x86, 0xf, 0x36, 0x34, 0xf2, 0xd2, 0x89, 0x95, 0x60, 0x43, 0xf7, 0xeb, 0xf9, 0xfb, 0xd, + 0x85, 0x62, 0x59, 0x9b, 0x1b, 0x37, 0x6e, 0xa0, 0xa1, 0x50, 0x8c, 0x2d, 0xcf, 0x74, 0x50, 0xb, 0xb6, 0x8f, 0x3c, 0x8a, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0xe1, + 0xf1, 0x54, 0x89, 0xbf, 0x66, 0x25, 0x58, 0xdb, 0x82, 0x71, 0xbe, 0x6f, 0xe3, 0xc4, 0x8f, 0x65, 0x6d, 0xee, 0xde, 0xbd, 0x2b, 0xdd, 0x9f, 0x4, 0xb5, 0x64, 0xfb, 0xc8, 0x4, + 0xa4, 0x74, 0x4, 0x75, 0x10, 0x50, 0xf3, 0xbb, 0xa2, 0x41, 0xc4, 0x3f, 0xbf, 0x9f, 0xc3, 0xe0, 0xf9, 0x93, 0x18, 0x3c, 0x7f, 0x32, 0x76, 0x7f, 0x9a, 0x59, 0xc8, 0x85, 0x7e, + 0x67, 0xa5, 0x61, 0x66, 0x12, 0x71, 0xcc, 0xe0, 0x51, 0xfb, 0xbf, 0xdf, 0xbf, 0x1e, 0x0, 0x73, 0x84, 0xb9, 0xb2, 0x84, 0x92, 0xdb, 0x5, 0xfe, 0xac, 0x34, 0xb0, 0x51, 0x9f, + 0x21, 0x6c, 0xe1, 0x21, 0x88, 0x2d, 0x7, 0xce, 0xf2, 0x7b, 0x62, 0xa6, 0x51, 0x8d, 0xb6, 0x8f, 0x1d, 0xa6, 0xd2, 0x38, 0x22, 0x2d, 0x28, 0xb9, 0x5d, 0xe0, 0x77, 0x45, 0x3, + 0x5, 0x5c, 0xe8, 0x77, 0x16, 0x1a, 0xcc, 0x5d, 0xad, 0xe6, 0xc8, 0x21, 0xc0, 0xe4, 0x62, 0x4c, 0x35, 0x23, 0x51, 0x9, 0xaa, 0x3, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x7f, + 0x1a, 0xd, 0xe2, 0xfd, 0xaf, 0x8b, 0x37, 0x8b, 0xd8, 0x22, 0x39, 0x66, 0xf1, 0xf2, 0xf5, 0xfc, 0xf5, 0xad, 0xcb, 0x4f, 0x47, 0xfd, 0x4a, 0xee, 0x77, 0xd6, 0x1a, 0x62, 0x13, + 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0x61, 0x6c, 0xa2, 0xe, 0x7f, 0x8d, 0x78, 0x9c, 0x43, 0x3c, 0x77, 0x90, 0x4b, 0xd4, 0x72, 0xa8, 0x13, 0xd8, 0x7a, 0xad, + 0x17, 0xbb, 0xd1, 0x97, 0x98, 0xbb, 0x56, 0x6c, 0xaf, 0x7c, 0x1f, 0xf0, 0xe2, 0xcd, 0x62, 0x19, 0xa1, 0x48, 0xcc, 0xfe, 0x82, 0xc2, 0xb6, 0x5e, 0xeb, 0x55, 0x12, 0xe2, 0x22, + 0xb7, 0xb, 0xfc, 0x14, 0x1a, 0x76, 0xd, 0xed, 0x0, 0xe0, 0xf, 0xc0, 0x4d, 0x6d, 0x45, 0x29, 0xb7, 0x88, 0xc5, 0xcb, 0xd7, 0x63, 0x53, 0x5b, 0xf9, 0xf2, 0x7c, 0x52, 0xd4, + 0x82, 0xed, 0x23, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0x41, 0x16, 0x3c, 0x8c, 0x3b, 0xec, 0x8f, 0x71, 0x6e, 0xbd, 0xd6, 0x8b, 0xa6, 0xe1, 0xbe, 0xc4, + 0xdf, 0x46, 0xa8, 0x25, 0xdb, 0x47, 0x1a, 0x69, 0xb4, 0xb9, 0xd7, 0x3, 0x80, 0xaf, 0x97, 0xf5, 0xf1, 0x51, 0x80, 0xe1, 0xd4, 0xd5, 0x92, 0xb4, 0xd, 0x13, 0xa, 0x0, 0xc7, + 0xee, 0xbf, 0x9f, 0xd8, 0x11, 0x94, 0xdc, 0x2e, 0xf0, 0x53, 0x6b, 0x60, 0xdc, 0xdb, 0x1a, 0x3f, 0x2b, 0x7b, 0xef, 0xd4, 0xd5, 0x52, 0xd9, 0x88, 0xff, 0xe9, 0xc2, 0xe, 0xbe, + 0xdd, 0x5d, 0x6c, 0xcb, 0x6d, 0xaf, 0xa8, 0x21, 0xf6, 0x0, 0x17, 0x1c, 0x41, 0xc1, 0xed, 0x2, 0x3f, 0xb5, 0x86, 0xd1, 0xe6, 0x5e, 0x2f, 0xc8, 0xcb, 0x82, 0xef, 0xbd, 0x37, + 0x3e, 0xe2, 0xfb, 0x8e, 0xfe, 0xb4, 0xf, 0x0, 0x38, 0xf7, 0xce, 0xdb, 0xa7, 0x2b, 0xba, 0xdf, 0x59, 0x6a, 0x88, 0x5d, 0x84, 0x69, 0x1a, 0xee, 0x2b, 0x30, 0x21, 0x41, 0x1, + 0x0, 0x70, 0x78, 0xdf, 0x2f, 0xbe, 0xfd, 0x3b, 0x6f, 0x9f, 0xe6, 0x42, 0xd2, 0x1a, 0x81, 0x92, 0xdb, 0x5, 0x7e, 0x6a, 0xd, 0x42, 0x7b, 0xa5, 0xaf, 0xf6, 0xec, 0xbc, 0x7d, + 0x9a, 0xbd, 0xf4, 0x90, 0xe0, 0x71, 0x27, 0x41, 0xee, 0x5a, 0xb0, 0xbd, 0xd2, 0x6d, 0x8, 0x6a, 0x47, 0x50, 0x71, 0xbb, 0xc0, 0x4f, 0xa8, 0x81, 0x73, 0x89, 0xb3, 0x9d, 0xc, + 0x3f, 0xec, 0xb8, 0xe0, 0xdb, 0xde, 0xfc, 0xf9, 0x1a, 0xb1, 0x7d, 0x62, 0x1b, 0xd4, 0x82, 0xed, 0x55, 0x44, 0x2a, 0x3b, 0x62, 0xcd, 0xd2, 0xb5, 0xbe, 0xed, 0x27, 0x8e, 0xd0, + 0xe1, 0x72, 0x89, 0xdb, 0x5, 0x7e, 0x2a, 0xd, 0x9e, 0xa, 0x9f, 0x8c, 0x53, 0xc2, 0x9f, 0xdb, 0x3e, 0x42, 0x43, 0x9c, 0x38, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0xa5, + 0x6, 0x4f, 0x85, 0xd3, 0x2, 0x2f, 0xe7, 0x7, 0x6a, 0xc3, 0xf6, 0xb1, 0xf7, 0x1, 0x55, 0x1d, 0x61, 0x3, 0x94, 0xdc, 0x2e, 0xf0, 0xbb, 0xa2, 0x21, 0xc, 0x51, 0x81, 0x97, + 0x16, 0x2e, 0xf4, 0x3b, 0xb, 0xd, 0x46, 0x3e, 0xb, 0x6a, 0xd3, 0x11, 0x2e, 0x73, 0xbb, 0xc0, 0x6f, 0x5b, 0x3, 0x5b, 0xe1, 0xd4, 0x41, 0xa0, 0xfc, 0xb2, 0x86, 0x6a, 0xb0, + 0xbd, 0x72, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x5d, 0xd1, 0x40, 0x1, 0x17, 0xfa, 0x6d, 0x53, 0x43, 0xfe, 0x6d, 0x88, 0x1c, 0x39, 0x8, 0x61, 0xfd, 0xdb, 0x10, + 0x39, 0x2a, 0x13, 0xeb, 0xe6, 0x4e, 0x7f, 0xa2, 0xe3, 0xa8, 0xf0, 0x3a, 0x88, 0x55, 0xa5, 0x91, 0xd0, 0xf6, 0x6b, 0x23, 0xde, 0xcb, 0xf1, 0x14, 0xb1, 0x9, 0x48, 0xe9, 0x8, + 0xea, 0x20, 0xa0, 0xe6, 0x77, 0x45, 0x43, 0xe7, 0x89, 0x5d, 0xe8, 0x7f, 0xfb, 0x70, 0xea, 0xf3, 0xe8, 0xc0, 0x85, 0x7e, 0x67, 0xa1, 0x41, 0xab, 0x4, 0xed, 0x3c, 0xb1, 0x4b, + 0xe7, 0x70, 0xa3, 0xa0, 0xe4, 0x76, 0x81, 0xdf, 0x15, 0xd, 0x14, 0x70, 0xa1, 0xdf, 0xb6, 0x34, 0xe4, 0xd7, 0x80, 0x39, 0x72, 0x10, 0x22, 0x4f, 0xc0, 0x1c, 0x39, 0x8, 0x91, + 0x27, 0x60, 0xe, 0x15, 0x14, 0x54, 0x4b, 0xb0, 0x67, 0xbf, 0xdc, 0x68, 0x59, 0x4a, 0x75, 0x41, 0x37, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0xae, 0x68, 0x0, 0x0, + 0xac, 0x9a, 0xf7, 0x92, 0xd5, 0xf3, 0x7, 0xe0, 0x42, 0xbf, 0xad, 0x68, 0x48, 0x3d, 0x3, 0x66, 0xec, 0x8, 0x67, 0xb8, 0x5d, 0xe0, 0x77, 0x45, 0x3, 0x5, 0x5c, 0xe8, 0xb7, + 0x9, 0xd, 0x79, 0x9, 0x9a, 0x23, 0x7, 0x21, 0xf2, 0x4, 0xcc, 0x91, 0x83, 0x10, 0x79, 0x2, 0xe6, 0xc8, 0x41, 0x88, 0xfc, 0xa3, 0x68, 0x39, 0xa4, 0x48, 0x7b, 0xe3, 0x39, + 0x5f, 0xd, 0x55, 0x43, 0x6c, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x29, 0x35, 0xb0, 0x7, 0xe, 0x85, 0x3d, 0x86, 0x2f, 0xee, 0xbc, 0xb7, 0x2e, 0x9f, 0x8d, 0x7d, + 0x84, 0x5f, 0x14, 0x6a, 0xc5, 0xf6, 0xb1, 0x9, 0x28, 0x73, 0x84, 0x8e, 0xb0, 0x34, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x6a, 0xd, 0xf, 0xfe, 0x1d, 0xf7, 0x6d, 0xcb, 0xfc, + 0x3e, 0xda, 0x3c, 0xfd, 0xfc, 0xd0, 0x3, 0x23, 0xe7, 0xb0, 0x7f, 0xfe, 0x3a, 0x0, 0x40, 0xd3, 0x70, 0x5f, 0x59, 0x5b, 0x5d, 0xd4, 0x8a, 0xed, 0x95, 0x4a, 0xd0, 0xa0, 0x31, + 0xfb, 0x9b, 0xbb, 0x71, 0x66, 0x64, 0x10, 0xed, 0xf3, 0x5b, 0xb1, 0x1a, 0x8b, 0x7c, 0xc6, 0x67, 0xaf, 0x9b, 0x86, 0xfb, 0xa4, 0x6d, 0x75, 0x41, 0x19, 0x4, 0x2e, 0xf0, 0x53, + 0x69, 0x8, 0xb, 0x1c, 0xe6, 0xfb, 0xfd, 0xf3, 0xd7, 0xe1, 0xc0, 0xc8, 0x39, 0xbe, 0x9f, 0x6d, 0x33, 0xee, 0xa5, 0xaf, 0xbd, 0x99, 0x88, 0x57, 0x44, 0x2d, 0xd8, 0x3e, 0x76, + 0x11, 0x66, 0xf1, 0xf2, 0xf5, 0xa2, 0x31, 0x3d, 0x0, 0x3c, 0xf9, 0x64, 0x8, 0x3a, 0x26, 0x8d, 0x23, 0x2, 0xdc, 0x1c, 0xfd, 0xcd, 0xdd, 0xd8, 0x3e, 0x7b, 0x5, 0x46, 0x9b, + 0x7b, 0xb1, 0x7d, 0xf6, 0xa, 0x2b, 0xdc, 0x2e, 0xf0, 0x13, 0x6a, 0x28, 0x4, 0xfe, 0x3c, 0xc6, 0xc9, 0x92, 0x2f, 0xa, 0x2c, 0x20, 0x91, 0xe2, 0x81, 0x48, 0xb5, 0x62, 0xfb, + 0xb8, 0x4, 0xc, 0x3a, 0x2, 0xfd, 0xcd, 0xdd, 0xfc, 0xcd, 0xd5, 0x58, 0x14, 0xda, 0x30, 0xe0, 0x84, 0x24, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x57, 0x34, 0x80, 0x71, 0x26, + 0x80, 0xd2, 0xa3, 0xfc, 0x24, 0x70, 0xa1, 0xdf, 0x99, 0x68, 0xd0, 0xb9, 0xd, 0x91, 0xd4, 0x98, 0x49, 0xdb, 0x95, 0x21, 0xe3, 0x20, 0x70, 0x8e, 0x9f, 0x48, 0x43, 0xa2, 0xb6, + 0x42, 0x0, 0x1a, 0x41, 0xb5, 0xda, 0x5e, 0xeb, 0x3e, 0xa0, 0xae, 0x0, 0x83, 0x4e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x52, 0xd, 0x9, 0x3, 0xcf, 0x14, 0xaa, 0xda, 0xf6, 0x15, + 0x73, 0x23, 0x9e, 0x38, 0x8, 0xc8, 0xf9, 0x5d, 0xd1, 0x90, 0x0, 0xa9, 0x67, 0x21, 0x17, 0xfa, 0x6d, 0x4b, 0x43, 0xc5, 0x24, 0x60, 0x4a, 0x18, 0x2d, 0x45, 0x2a, 0x90, 0x1f, + 0x20, 0xd0, 0x60, 0xba, 0xc, 0x4d, 0x8, 0xa7, 0x6d, 0x5f, 0xf5, 0x9f, 0x84, 0x19, 0x6d, 0xee, 0xe5, 0xb7, 0x44, 0x6a, 0x91, 0xdf, 0x84, 0x86, 0xce, 0xe1, 0x6f, 0x7d, 0xdb, + 0x5f, 0xc, 0xff, 0x2a, 0x7d, 0x2d, 0xdb, 0xa6, 0x44, 0x25, 0xd8, 0x5e, 0xeb, 0x71, 0xe5, 0x6c, 0x1a, 0x16, 0xef, 0x1, 0x2, 0xfe, 0xfb, 0x1f, 0xc1, 0xed, 0x27, 0xe4, 0x69, + 0x57, 0xe1, 0x4c, 0x8c, 0x62, 0x46, 0x7e, 0x23, 0x80, 0x88, 0x9f, 0x5a, 0x83, 0xf7, 0xee, 0xf3, 0x7, 0xcb, 0x76, 0x7e, 0xf5, 0xf7, 0x1e, 0xfe, 0xfa, 0x9d, 0x25, 0x7b, 0xd1, + 0x5a, 0xf4, 0x3f, 0xb, 0xb3, 0xe7, 0x7a, 0x47, 0x1a, 0x4e, 0xce, 0x9d, 0xb2, 0xbd, 0xd3, 0x1a, 0xb4, 0x66, 0x40, 0x71, 0x24, 0x8c, 0x1b, 0xf9, 0xc, 0x8f, 0x84, 0x5, 0x0, + 0xde, 0x3b, 0x4b, 0xf6, 0xf2, 0x1d, 0xcc, 0xd9, 0x4f, 0x9c, 0xc, 0x0, 0x88, 0x8, 0x92, 0xb4, 0xe, 0xe0, 0xbf, 0x90, 0xc3, 0x34, 0x88, 0xc1, 0xd6, 0x73, 0xbd, 0xa3, 0x8c, + 0xdb, 0x10, 0xaf, 0x4c, 0x3, 0x20, 0x49, 0x8, 0x96, 0xc, 0x47, 0x5e, 0xe4, 0xbf, 0xce, 0x63, 0x2a, 0x1, 0x54, 0x74, 0xd9, 0x2c, 0xf3, 0xb8, 0xed, 0x65, 0x7d, 0x16, 0xfb, + 0xb, 0x0, 0x83, 0xa5, 0xb, 0xf8, 0xe6, 0xe6, 0xc7, 0x62, 0x3b, 0x93, 0x1a, 0x82, 0xf0, 0x0, 0xbf, 0xcd, 0x75, 0xf9, 0x75, 0x12, 0x30, 0x34, 0x8, 0x7b, 0xae, 0x77, 0x94, + 0x19, 0xc2, 0xa6, 0xf3, 0x83, 0x23, 0x2d, 0xec, 0x7, 0x1, 0xc4, 0xf3, 0x4b, 0xf8, 0x49, 0xc1, 0x92, 0xaf, 0xbd, 0xa5, 0x88, 0xc1, 0xf1, 0xb, 0xa6, 0xf5, 0x79, 0x0, 0x30, + 0x58, 0xf7, 0x61, 0xe4, 0x41, 0xb7, 0xe6, 0x1c, 0xc1, 0xa3, 0x6, 0x6b, 0x57, 0x34, 0x5c, 0x43, 0xeb, 0x64, 0xb4, 0x8e, 0xc, 0x61, 0x24, 0xde, 0x2a, 0xe5, 0x1a, 0x50, 0xbb, + 0xb3, 0x71, 0x1, 0x93, 0x4, 0xed, 0x2d, 0x45, 0xdc, 0x82, 0x3f, 0xd0, 0x8e, 0x5f, 0x1a, 0xb7, 0xc6, 0x17, 0x2, 0x5f, 0x42, 0xc, 0xc, 0x4d, 0x72, 0x6d, 0x0, 0xf0, 0x68, + 0xe1, 0x51, 0x5c, 0xc1, 0x51, 0xae, 0xcb, 0x4, 0x5e, 0x7d, 0xa1, 0x2e, 0x4d, 0x73, 0x23, 0xbf, 0xd5, 0xc7, 0x34, 0x4, 0xed, 0x7c, 0x65, 0xde, 0x66, 0xdf, 0xf6, 0x9d, 0x7, + 0x53, 0x69, 0xa9, 0x54, 0xe0, 0x31, 0x4d, 0x3, 0x43, 0x93, 0x3e, 0xd, 0xba, 0xfc, 0x89, 0x12, 0x70, 0xac, 0xf1, 0x8, 0x0, 0xe0, 0x4a, 0xfd, 0xd3, 0xe6, 0x41, 0x43, 0x98, + 0x6, 0xb, 0x7e, 0x0, 0x91, 0x23, 0x6d, 0x48, 0x22, 0xa4, 0xd, 0x82, 0xb8, 0x1, 0xa0, 0x30, 0x30, 0x34, 0xe9, 0xa5, 0xc, 0x54, 0x2d, 0xb0, 0xc4, 0x3, 0xa6, 0x6d, 0xb3, + 0x40, 0x32, 0x28, 0xc0, 0xe2, 0xb5, 0x8f, 0xc8, 0xf, 0x0, 0x67, 0xfe, 0x2c, 0xa1, 0xbd, 0x5, 0x3e, 0x1d, 0x5d, 0x2b, 0xe7, 0x98, 0x18, 0x8, 0x5c, 0x58, 0xc5, 0x14, 0xc1, + 0x93, 0xcf, 0x4, 0x2a, 0x61, 0x6, 0xf4, 0x39, 0x20, 0x24, 0xd0, 0x0, 0xc8, 0x93, 0x8f, 0x8d, 0x52, 0x49, 0xf9, 0x18, 0xd8, 0xc, 0xb3, 0xc0, 0x5e, 0x99, 0xa5, 0x5, 0xa6, + 0x27, 0x8, 0x83, 0xc9, 0x7, 0x20, 0x36, 0xd0, 0xa, 0xc2, 0x7f, 0x13, 0x89, 0x22, 0x3d, 0x47, 0x96, 0x3, 0x5b, 0x8, 0x7c, 0xba, 0x4c, 0xea, 0x71, 0x23, 0x9a, 0x62, 0x10, + 0x13, 0xfc, 0x3c, 0xd0, 0x6, 0x86, 0x26, 0x8d, 0x18, 0x27, 0x2c, 0xb8, 0x83, 0xfc, 0xa, 0xa3, 0xbb, 0xb1, 0x9f, 0x4a, 0xd6, 0xd4, 0x63, 0x75, 0xe1, 0x45, 0x73, 0x40, 0xd3, + 0x82, 0xaa, 0xff, 0x14, 0x34, 0x18, 0xb5, 0xbd, 0xad, 0x41, 0xa0, 0x22, 0x12, 0x50, 0x6, 0x49, 0xf0, 0x5b, 0x5d, 0x88, 0x89, 0x98, 0xf9, 0xa4, 0x4e, 0x4e, 0x30, 0xf3, 0x26, + 0xd2, 0x13, 0x62, 0x87, 0xb4, 0x50, 0xb1, 0xa3, 0x94, 0xe7, 0xce, 0x83, 0x29, 0xd2, 0x2a, 0x61, 0x41, 0xc3, 0x4c, 0xb4, 0xb7, 0x4c, 0x97, 0xc4, 0xb6, 0x11, 0xf4, 0x6f, 0x92, + 0xeb, 0x4f, 0x97, 0x13, 0x30, 0xb4, 0xf4, 0x14, 0x60, 0x75, 0xa4, 0x8f, 0xa, 0x24, 0x93, 0x8b, 0x1c, 0x69, 0x21, 0x24, 0xbb, 0xf5, 0x11, 0x3f, 0x6a, 0x50, 0x99, 0xbe, 0xe, + 0x94, 0x56, 0xf, 0x46, 0x67, 0x23, 0x9b, 0x3, 0x5b, 0xd6, 0xdc, 0x2e, 0x27, 0xa0, 0xca, 0x75, 0x4e, 0x19, 0x22, 0xca, 0x50, 0xad, 0x20, 0x8, 0x4b, 0xbe, 0x0, 0xb7, 0xed, + 0x7b, 0x6c, 0xce, 0x20, 0x10, 0x78, 0xb2, 0x7e, 0x4b, 0x2b, 0x10, 0x61, 0x21, 0x26, 0x75, 0x12, 0x4a, 0x34, 0x50, 0x2d, 0xd0, 0xf8, 0xee, 0xc9, 0x8a, 0x6f, 0xe8, 0xce, 0xbc, + 0x4e, 0x27, 0x20, 0x43, 0x48, 0xb9, 0xa5, 0x1c, 0x4, 0xc2, 0xc, 0xa1, 0x1c, 0x4, 0x31, 0x33, 0x1c, 0x55, 0xe2, 0xf1, 0xbe, 0x89, 0xfa, 0x6c, 0xcf, 0x8, 0x69, 0x67, 0x57, + 0xdd, 0xd5, 0xd0, 0x98, 0xfe, 0xb8, 0x34, 0xe8, 0x79, 0x5d, 0x2b, 0xe7, 0xc8, 0xf6, 0x2b, 0x6b, 0x74, 0x3e, 0x1, 0x3, 0xc9, 0x97, 0xd8, 0xf8, 0x3a, 0xd7, 0x64, 0xc2, 0x28, + 0xe6, 0x92, 0xb3, 0x1, 0xc8, 0x4b, 0x43, 0xd3, 0xe5, 0x67, 0x8, 0xac, 0x2e, 0x28, 0x31, 0x8, 0x3e, 0x72, 0xca, 0xf6, 0xb6, 0x6, 0x39, 0xdb, 0xdf, 0x86, 0x30, 0x5d, 0x22, + 0x64, 0x51, 0x72, 0xf8, 0x9e, 0x0, 0x50, 0xab, 0x10, 0x3, 0x2e, 0xcd, 0xa, 0xe0, 0xf1, 0x4b, 0xe3, 0x3a, 0xb3, 0x9f, 0xab, 0xb6, 0x2f, 0x7b, 0x32, 0x84, 0xc, 0xc2, 0xc0, + 0xad, 0x1c, 0xa7, 0xd6, 0x12, 0x50, 0x98, 0x9a, 0x13, 0x27, 0x8d, 0x58, 0x4f, 0x87, 0x4c, 0xf5, 0x4a, 0x18, 0x18, 0x9a, 0xa4, 0xbc, 0x70, 0xcf, 0xea, 0x3a, 0xc5, 0x24, 0x4f, + 0x1, 0x48, 0x37, 0xea, 0x7, 0x12, 0x8f, 0x2a, 0xa9, 0x32, 0xbd, 0x46, 0xec, 0x5a, 0x39, 0x47, 0x3b, 0xee, 0x93, 0x18, 0xc5, 0xdb, 0xb8, 0x6c, 0x7a, 0x71, 0xa4, 0xa1, 0xde, + 0x7f, 0x53, 0x5c, 0x96, 0x24, 0x29, 0x4b, 0x47, 0x59, 0x27, 0xe2, 0xce, 0x15, 0xd6, 0x71, 0xeb, 0x25, 0x5a, 0x6, 0xe5, 0x61, 0xe8, 0xa7, 0x6d, 0x2c, 0x95, 0xa1, 0x41, 0x5b, + 0xea, 0xda, 0xde, 0xba, 0xcd, 0xc3, 0x6, 0xe6, 0x3b, 0xf, 0xa6, 0xd8, 0x0, 0x6e, 0x53, 0x43, 0x28, 0xbf, 0x6a, 0xdc, 0xff, 0xf, 0xc1, 0xaf, 0x5b, 0x28, 0xd1, 0x2f, 0x8c, + 0xb9, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto citrim_data_size = 0x9ae; + +inline uint8_t danilka22ah_data[0x988] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0x42, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5c, + 0x3f, 0x68, 0xdc, 0x56, 0x1c, 0xfe, 0x2e, 0x39, 0x5c, 0x54, 0xb8, 0xdc, 0x59, 0x83, 0xd, 0x81, 0x4b, 0x16, 0x1b, 0xc, 0xcd, 0x5d, 0x86, 0x12, 0x4a, 0x17, 0x9b, 0x6, 0x2, + 0xd, 0x1e, 0x52, 0x12, 0x3a, 0xc5, 0x4b, 0x86, 0x4c, 0xa1, 0xc4, 0x59, 0xd2, 0x6c, 0xc1, 0x74, 0x29, 0x59, 0xda, 0x90, 0x66, 0xea, 0x9a, 0x8e, 0x9, 0x1c, 0xd4, 0xa4, 0x60, + 0x8, 0xd8, 0x6b, 0xa7, 0xc6, 0x19, 0xa, 0x4d, 0x87, 0x26, 0x24, 0xd4, 0x26, 0x75, 0x9d, 0xdc, 0x20, 0x62, 0x8e, 0xaa, 0xc3, 0xdd, 0x93, 0x25, 0x9d, 0xfe, 0x3c, 0xe9, 0xbd, + 0xa7, 0xdf, 0x93, 0xee, 0x7d, 0x20, 0x8c, 0xce, 0x92, 0xbe, 0xef, 0xfd, 0xfe, 0xbc, 0xdf, 0xd3, 0x7b, 0x92, 0x6a, 0xc8, 0x88, 0xcd, 0x4e, 0xc7, 0xd, 0xff, 0xb6, 0xb4, 0xbd, + 0x5d, 0xcb, 0x7a, 0x9d, 0x3c, 0xa0, 0xe4, 0xd6, 0x81, 0x9f, 0x52, 0x43, 0x14, 0x2f, 0x35, 0x7f, 0x15, 0x6c, 0x9f, 0xeb, 0xe4, 0xcd, 0x4e, 0xc7, 0x5d, 0x5c, 0x7a, 0xeb, 0xed, + 0x6f, 0x6d, 0x36, 0xa5, 0x88, 0xd1, 0x9d, 0x5b, 0x7, 0x7e, 0x4a, 0xd, 0x2c, 0x0, 0x27, 0xd5, 0xf7, 0x2a, 0x34, 0x1c, 0xc9, 0x2b, 0x84, 0x11, 0x3, 0x87, 0xe, 0x49, 0xea, + 0x25, 0x65, 0x82, 0x92, 0x5b, 0x7, 0x7e, 0x2a, 0xd, 0x2c, 0xc8, 0xde, 0xdf, 0x3b, 0xeb, 0x6d, 0x93, 0xe6, 0x7b, 0xd9, 0x1a, 0x72, 0xf7, 0x1c, 0x9b, 0x9d, 0x8e, 0xfb, 0xc9, + 0xd3, 0x8f, 0xbd, 0xfd, 0xf, 0xbe, 0x7a, 0x52, 0x68, 0x4f, 0x4c, 0xc5, 0xad, 0x3, 0x3f, 0xa5, 0x6, 0x56, 0x1, 0xde, 0xdf, 0x3b, 0x5b, 0x38, 0x37, 0xe3, 0xaf, 0x92, 0xed, + 0x73, 0x57, 0x40, 0x46, 0xcc, 0x50, 0x74, 0x6f, 0x48, 0xc9, 0xad, 0x3, 0x3f, 0x85, 0x86, 0x56, 0xab, 0x15, 0x18, 0x7e, 0x1d, 0x38, 0xa7, 0x71, 0xe0, 0x9c, 0xe, 0x70, 0xb7, + 0x5a, 0xad, 0xca, 0xfb, 0x5e, 0xa6, 0x86, 0x5c, 0x9, 0x48, 0xe9, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd2, 0xd0, 0x6a, 0xb5, 0xdc, 0x5e, 0xbb, 0x1d, 0xf8, 0x6d, 0xca, 0xfa, + 0xcd, 0xe3, 0x67, 0xdc, 0xbd, 0x76, 0xbb, 0xb2, 0xbe, 0x57, 0xa1, 0x21, 0x73, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0xa9, 0x35, 0xb0, 0x0, 0xeb, 0xdf, 0xb9, 0xe1, + 0x5, 0x1e, 0xc3, 0x81, 0x73, 0x1a, 0xfd, 0x3b, 0x37, 0x2, 0x13, 0x34, 0x32, 0x51, 0x55, 0xdb, 0x67, 0x1e, 0x33, 0xb7, 0x5a, 0x2d, 0xf7, 0xdf, 0x95, 0x63, 0x0, 0x86, 0x8e, + 0x88, 0x43, 0xe3, 0xe6, 0x77, 0x98, 0x7e, 0xf0, 0xe, 0xfb, 0xfb, 0xfb, 0xd2, 0xc6, 0xe5, 0x94, 0xdc, 0x3a, 0xf0, 0x53, 0x6a, 0x60, 0x1, 0xf5, 0xe2, 0xf5, 0xed, 0xc4, 0xe3, + 0x4e, 0x1c, 0x5f, 0xc3, 0xfe, 0xfe, 0x3e, 0x20, 0x30, 0xbf, 0x10, 0xc7, 0x5f, 0x45, 0xdb, 0xe7, 0x4a, 0x40, 0x80, 0xc6, 0x11, 0x3a, 0x4, 0x1, 0x25, 0x3f, 0xa5, 0x86, 0x56, + 0xab, 0xe5, 0xae, 0x36, 0x9b, 0xf8, 0xfe, 0x6d, 0x72, 0x85, 0xeb, 0xb5, 0xdb, 0x58, 0xda, 0xde, 0x96, 0xc6, 0xeb, 0xe7, 0x7, 0xaa, 0x67, 0xfb, 0x7a, 0x1e, 0x21, 0xab, 0xcd, + 0x26, 0x4e, 0x1c, 0x5f, 0x4b, 0x3c, 0xa6, 0xd7, 0x6e, 0x63, 0x69, 0x28, 0x42, 0x2a, 0x28, 0xb9, 0x75, 0xe0, 0xa7, 0xd6, 0xb0, 0xda, 0x1c, 0xce, 0xf6, 0x7d, 0x76, 0xec, 0x98, + 0xf4, 0x6b, 0xf3, 0x70, 0x57, 0xcd, 0xf6, 0xb9, 0x12, 0x90, 0x9, 0x1, 0xe8, 0x1c, 0x41, 0xc5, 0xad, 0x3, 0x3f, 0xb5, 0x86, 0x49, 0x6d, 0xb7, 0xa, 0xd, 0x42, 0xcb, 0x10, + 0x94, 0x46, 0xa0, 0xe4, 0xd6, 0x81, 0x5f, 0x17, 0xd, 0x14, 0xd0, 0xa1, 0xdd, 0xb2, 0x34, 0x8, 0x25, 0xa0, 0xc1, 0xe4, 0xe2, 0xc2, 0xcb, 0x97, 0xb8, 0xf2, 0xe6, 0x95, 0xb7, + 0x7f, 0xe5, 0xcd, 0xab, 0xc0, 0xbe, 0x1, 0x1f, 0x84, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0xc1, 0xb6, 0x8e, 0xe0, 0xcf, 0xd7, 0xff, 0x4, 0x7e, 0xb, + 0xef, 0xab, 0x44, 0x55, 0x6c, 0x2f, 0x9c, 0x80, 0x94, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x4a, 0xd, 0x7b, 0xce, 0x7f, 0x98, 0x9e, 0x9e, 0x8e, 0xdd, 0x57, 0x8d, 0xaa, 0xd8, + 0x5e, 0x38, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x94, 0x1a, 0x7a, 0xed, 0x36, 0xfc, 0x8b, 0xd2, 0xe1, 0x7d, 0xd5, 0xa8, 0x8a, 0xed, 0x73, 0xcf, 0x82, 0x32, 0x84, + 0x8d, 0x5e, 0xa4, 0x13, 0x28, 0xb9, 0x75, 0xe0, 0xd7, 0x45, 0x3, 0x5, 0x74, 0x68, 0xb7, 0xc, 0xd, 0x66, 0x12, 0xc6, 0xc0, 0x80, 0x10, 0x26, 0x1, 0xd, 0xb8, 0x91, 0xf6, + 0x14, 0xc, 0x0, 0xf6, 0x14, 0x8c, 0x1, 0x27, 0x72, 0x3f, 0x8a, 0xb6, 0xda, 0x6c, 0x26, 0xae, 0x85, 0xf8, 0x1c, 0x21, 0xfd, 0x51, 0x34, 0xa, 0x6e, 0x1d, 0xf8, 0x35, 0xd0, + 0xc0, 0xfb, 0x90, 0x73, 0xd5, 0xda, 0xad, 0x4c, 0x43, 0x5e, 0x91, 0x64, 0x8e, 0x20, 0xe6, 0xd6, 0x81, 0x9f, 0x42, 0x83, 0xc7, 0x37, 0x35, 0xbb, 0xc, 0x0, 0x78, 0xff, 0xf7, + 0xcf, 0x81, 0x3, 0x3e, 0x9c, 0xff, 0x1a, 0x0, 0xe0, 0x3c, 0xbf, 0x23, 0x9b, 0x3b, 0x52, 0x47, 0xa, 0x4a, 0x63, 0xfb, 0xac, 0x43, 0x50, 0x97, 0x9, 0x98, 0x9a, 0x5d, 0xc6, + 0xd4, 0xec, 0x32, 0x5c, 0xd7, 0xd, 0x6c, 0xd6, 0xdc, 0x4d, 0x58, 0x73, 0x37, 0xb3, 0x8a, 0xd5, 0x9d, 0x5b, 0x7, 0xfe, 0xa2, 0x35, 0x30, 0x2e, 0x97, 0x71, 0xb1, 0xe4, 0x3, + 0x80, 0x5a, 0xad, 0x86, 0xad, 0x6e, 0x17, 0x5b, 0xdd, 0x2e, 0x6a, 0xb5, 0xc3, 0x58, 0xb, 0x71, 0xcb, 0xb2, 0x41, 0x65, 0x6d, 0xcf, 0x93, 0xa5, 0x63, 0xbd, 0x9f, 0x1f, 0x7, + 0x3b, 0xeb, 0xd8, 0xec, 0x74, 0x0, 0xc, 0x4b, 0xaf, 0x4f, 0x80, 0xbf, 0x37, 0xe4, 0xe5, 0xd2, 0x89, 0x5b, 0x7, 0x7e, 0x2a, 0xd, 0x5e, 0xa0, 0x25, 0xe1, 0x60, 0x67, 0x1d, + 0x40, 0x20, 0xe9, 0x2, 0x18, 0xf1, 0x1b, 0xdb, 0x27, 0x68, 0x48, 0x13, 0x47, 0xe9, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd4, 0xe0, 0xf2, 0x70, 0xc6, 0x5, 0x9f, 0x0, 0xaf, + 0xc7, 0xf, 0x4c, 0x86, 0xed, 0x53, 0x87, 0xa0, 0xbc, 0x8e, 0xd8, 0xec, 0x74, 0xc2, 0x59, 0x2f, 0xc, 0x4a, 0x6e, 0x1d, 0xf8, 0x75, 0xd1, 0x40, 0x1, 0x1d, 0xda, 0x5d, 0x84, + 0x6, 0xb3, 0xc, 0x61, 0x90, 0x8, 0xd6, 0xc3, 0x67, 0x41, 0x95, 0x3a, 0x2, 0xd5, 0xe0, 0x4e, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0xbf, 0x2e, 0x1a, 0x28, 0xa0, 0x43, + 0xbb, 0x55, 0x6a, 0x30, 0x15, 0xd0, 0xc0, 0x80, 0x10, 0x26, 0x1, 0xd, 0xc, 0x8, 0x61, 0x12, 0xd0, 0x20, 0x15, 0x79, 0x86, 0x60, 0x6, 0x7c, 0xc8, 0x94, 0x80, 0x94, 0x8e, + 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x5d, 0x34, 0x50, 0x40, 0x87, 0x76, 0xab, 0xd2, 0x20, 0xfc, 0x3a, 0x92, 0xc1, 0x64, 0x62, 0x6a, 0x76, 0x19, 0x4b, 0xdb, 0xc9, 0x6b, 0x60, 0x6, + 0xe9, 0x10, 0x4e, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0xb5, 0x6, 0xca, 0xc4, 0xab, 0x8a, 0xed, 0xa5, 0x54, 0x40, 0x4a, 0x47, 0x50, 0xf7, 0xbe, 0xd4, 0xfc, 0x5, + 0x69, 0xa8, 0x1d, 0xec, 0xac, 0xa7, 0x3e, 0x1d, 0x3, 0x14, 0xbb, 0xf4, 0x51, 0x5, 0xdb, 0x67, 0x9d, 0x84, 0xa9, 0xf1, 0x8e, 0x85, 0x15, 0x38, 0x82, 0x92, 0x5b, 0x7, 0x7e, + 0x5d, 0x34, 0x0, 0x0, 0x8e, 0x36, 0x3e, 0x52, 0x7a, 0xfd, 0x10, 0x74, 0x68, 0xb7, 0x12, 0xd, 0xc2, 0xb3, 0xa0, 0x5, 0x3b, 0x42, 0x1b, 0x6e, 0x1d, 0xf8, 0x75, 0xd1, 0x40, + 0x1, 0x1d, 0xda, 0x2d, 0x43, 0x83, 0x59, 0x86, 0x28, 0x19, 0x2c, 0xcb, 0xe2, 0x3e, 0x8e, 0x1d, 0xcb, 0x7b, 0x8e, 0xce, 0xa8, 0x6a, 0xbb, 0x4d, 0x2, 0x1a, 0x18, 0x10, 0xc2, + 0x24, 0xa0, 0x81, 0x1, 0x21, 0xcc, 0x3a, 0xa0, 0x41, 0x24, 0x44, 0x17, 0x9e, 0xab, 0xf0, 0x20, 0x78, 0x11, 0x48, 0x4d, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0xbf, 0x14, + 0xbc, 0xba, 0x97, 0xeb, 0x34, 0xff, 0xcb, 0xb6, 0x51, 0x48, 0x6b, 0xdb, 0x66, 0xa7, 0x23, 0xf4, 0x85, 0x34, 0xe1, 0x27, 0x4f, 0x72, 0xb6, 0x5b, 0xa6, 0x6, 0x1e, 0xff, 0xa7, + 0x26, 0x60, 0x94, 0x23, 0x2, 0xc2, 0x52, 0x44, 0x8a, 0x38, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x1, 0x60, 0x63, 0xe6, 0xc5, 0x50, 0xc3, 0x4e, 0xcc, 0x1, 0x29, 0x81, 0xf6, 0xcb, + 0xdc, 0x1c, 0x3e, 0x7f, 0xfe, 0x5c, 0x48, 0x3, 0x43, 0x54, 0x40, 0xda, 0xb6, 0x8d, 0x7a, 0xfd, 0x30, 0x8c, 0xae, 0x5d, 0x38, 0x87, 0xdb, 0x3f, 0xfe, 0x24, 0xcc, 0x95, 0x66, + 0xfb, 0x22, 0xda, 0x9d, 0xaa, 0x1, 0xc9, 0x31, 0xc0, 0xe3, 0xff, 0x3c, 0x1f, 0x65, 0x82, 0x6d, 0xdb, 0x58, 0xbb, 0x7a, 0xd9, 0x9b, 0x71, 0xb2, 0x2c, 0xb, 0x33, 0x33, 0x33, + 0x98, 0x99, 0x99, 0xc1, 0xda, 0xd5, 0xcb, 0x19, 0x2f, 0x99, 0xd, 0x7, 0x3b, 0xeb, 0xde, 0xc6, 0xc0, 0xb8, 0x81, 0xe1, 0xcc, 0x17, 0xd3, 0x30, 0xfb, 0xc3, 0x37, 0x85, 0xf1, + 0x33, 0x6e, 0x3f, 0xbf, 0x2a, 0x1c, 0x7d, 0xf7, 0xc4, 0xdb, 0x18, 0x2c, 0xcb, 0x42, 0xa3, 0xd1, 0xc0, 0xad, 0x95, 0x8b, 0x0, 0x0, 0xc7, 0x71, 0x84, 0xbe, 0xc, 0xb6, 0xb4, + 0xbd, 0x3d, 0x16, 0x3c, 0xfe, 0xf6, 0xa5, 0xcd, 0x30, 0xaa, 0xf8, 0x3e, 0x68, 0x54, 0xbb, 0x1b, 0x8d, 0x86, 0xb7, 0xdd, 0x5a, 0xb9, 0xa8, 0x7c, 0xe6, 0xd3, 0xef, 0x7f, 0x96, + 0x7c, 0x22, 0xb1, 0x9f, 0x5a, 0x1, 0xc3, 0x86, 0xb4, 0x6d, 0x7b, 0xec, 0x98, 0x46, 0xa3, 0x11, 0xd8, 0x3f, 0x75, 0xea, 0x14, 0x9e, 0x3d, 0x7b, 0x16, 0x79, 0x7e, 0x16, 0x44, + 0x9d, 0xcb, 0x82, 0xfd, 0xda, 0x85, 0x73, 0xb8, 0xfb, 0xf0, 0x71, 0xe2, 0xf9, 0xb, 0x4b, 0x5f, 0xe4, 0xe6, 0x96, 0xc1, 0x2f, 0x23, 0x8, 0xc3, 0xd7, 0x70, 0x1c, 0xa7, 0x66, + 0x59, 0x56, 0xec, 0x17, 0xb7, 0xee, 0xf7, 0x36, 0x0, 0x0, 0xec, 0x98, 0x9c, 0x55, 0x20, 0x77, 0xf2, 0x32, 0x7e, 0x91, 0x6b, 0x0, 0xe2, 0xb6, 0x93, 0x51, 0xf5, 0xa3, 0x34, + 0x58, 0x96, 0x85, 0x5b, 0x2b, 0x17, 0xf1, 0xed, 0x83, 0x47, 0x0, 0x0, 0xc7, 0x71, 0x2, 0xff, 0xb7, 0x6d, 0x1b, 0x7b, 0x7b, 0x7b, 0xb1, 0xe7, 0x87, 0x91, 0x56, 0x1, 0x6b, + 0xa1, 0xd, 0xd7, 0x2f, 0x9d, 0xc7, 0xf5, 0x4b, 0xe7, 0x3d, 0x1, 0x8d, 0x46, 0x3, 0xbb, 0xbb, 0xbb, 0xde, 0x9, 0xf7, 0x7b, 0x1b, 0xf8, 0xf2, 0xd3, 0xd3, 0x51, 0xe7, 0x67, + 0xc5, 0x18, 0x37, 0x2f, 0x98, 0x36, 0x1, 0x6e, 0x1d, 0xf8, 0xb9, 0x34, 0xb0, 0x8a, 0x7, 0x0, 0x83, 0xc1, 0x0, 0xc0, 0x61, 0x87, 0xe8, 0x38, 0x4e, 0x8d, 0x6d, 0x2, 0x1a, + 0x2, 0x5c, 0xfe, 0xe0, 0x53, 0x88, 0x5c, 0xb6, 0xbf, 0xdf, 0xdb, 0xc0, 0xf5, 0x4b, 0xe7, 0x1, 0x1c, 0xb6, 0xbd, 0x48, 0xd, 0x77, 0x1f, 0x3e, 0xf6, 0xf8, 0x79, 0xcf, 0xcd, + 0xfc, 0xa5, 0xb2, 0x70, 0x89, 0x67, 0x9, 0xc8, 0x2a, 0x3, 0xc3, 0x28, 0x29, 0x65, 0x7f, 0x20, 0xd5, 0x65, 0x65, 0x9e, 0x55, 0x1f, 0xff, 0xfd, 0xc7, 0xee, 0xee, 0xae, 0x37, + 0x4, 0x19, 0xf5, 0x4c, 0xca, 0xf9, 0x99, 0x6, 0x3f, 0xb7, 0x42, 0x7e, 0x0, 0xc3, 0xea, 0xc6, 0x12, 0xcf, 0x9f, 0xc, 0x96, 0x65, 0x79, 0xf6, 0xe8, 0xf7, 0xfb, 0xc2, 0xc3, + 0xd0, 0x10, 0xc6, 0x7c, 0xef, 0x38, 0x8e, 0x37, 0x22, 0xa, 0xfb, 0x1, 0x92, 0xdb, 0x1e, 0x57, 0xf5, 0xc3, 0xa3, 0xaf, 0xc1, 0x60, 0x0, 0xc7, 0x71, 0x64, 0xb7, 0xdd, 0xf, + 0x17, 0x0, 0xd6, 0xae, 0x5e, 0xc6, 0xb7, 0xf, 0x1e, 0xc1, 0x71, 0x9c, 0x40, 0xec, 0xf, 0x6, 0x3, 0x56, 0x1, 0xb9, 0xf8, 0x4b, 0x97, 0x80, 0xe1, 0x21, 0x30, 0x73, 0x3c, + 0xab, 0xc2, 0xaa, 0x13, 0x30, 0x89, 0xbf, 0xc8, 0x4, 0x4c, 0xf8, 0x1f, 0xea, 0xf5, 0x3a, 0xfa, 0xfd, 0x3e, 0xd3, 0x21, 0x43, 0x83, 0xcb, 0xae, 0xed, 0x7, 0x1b, 0x7e, 0x85, + 0x27, 0x62, 0x7c, 0x23, 0x22, 0x69, 0xed, 0xd7, 0x28, 0x1, 0x1, 0x9f, 0x3d, 0x44, 0x13, 0xb0, 0x4c, 0xb, 0xf1, 0xa9, 0x5f, 0x1a, 0x8e, 0xb8, 0x1, 0x57, 0xf1, 0x85, 0xe4, + 0x52, 0x20, 0x1c, 0x98, 0xa2, 0x88, 0x9a, 0xdc, 0x88, 0x9b, 0xf0, 0x8, 0x77, 0xc6, 0x15, 0x44, 0xd, 0x18, 0xbf, 0xff, 0xcb, 0x83, 0x32, 0x25, 0x60, 0xe4, 0x4, 0x50, 0x1c, + 0xca, 0xf0, 0x1c, 0xa0, 0x41, 0xa9, 0x21, 0xa5, 0xc2, 0x96, 0x2a, 0x1, 0xc3, 0xf0, 0xf, 0x7b, 0xc, 0xe8, 0xb0, 0xb7, 0xb7, 0xe7, 0x4d, 0x0, 0x85, 0x30, 0xb1, 0x23, 0x10, + 0x5e, 0x94, 0x3a, 0x1, 0x19, 0xfc, 0xb3, 0xb0, 0x11, 0x50, 0x16, 0x4, 0x71, 0xf7, 0x7f, 0x93, 0x82, 0xa4, 0x21, 0xd8, 0x4, 0xc, 0x43, 0xa5, 0xa0, 0xf4, 0x9, 0x98, 0x94, + 0x7c, 0x93, 0x98, 0x14, 0x4, 0x50, 0x39, 0xd9, 0x51, 0x79, 0x94, 0x3e, 0x1, 0x47, 0x28, 0x22, 0x8, 0xb4, 0x1f, 0x4e, 0x29, 0xea, 0x70, 0xc8, 0xdb, 0x9d, 0x34, 0xeb, 0x4b, + 0x8, 0x29, 0x9a, 0xca, 0x92, 0x80, 0x63, 0x8d, 0xa5, 0xb8, 0xff, 0x8b, 0x9a, 0x4, 0x4a, 0x19, 0xfe, 0x4a, 0x47, 0x5c, 0x30, 0xb2, 0xe4, 0xf3, 0xaf, 0x3, 0x4a, 0xe4, 0x14, + 0x39, 0x5d, 0xc7, 0xe4, 0x11, 0x45, 0xe4, 0xb2, 0x4c, 0x1e, 0x94, 0x25, 0x1, 0x33, 0xcd, 0x80, 0x46, 0x40, 0x34, 0x8, 0xd2, 0x3a, 0x80, 0x9a, 0x8c, 0x29, 0xe9, 0xbc, 0x60, + 0x6b, 0x7f, 0xe1, 0xe4, 0x93, 0xb0, 0x16, 0x16, 0x6b, 0xb7, 0x70, 0x7b, 0xa3, 0x26, 0x62, 0x64, 0xdc, 0x7, 0x6a, 0x58, 0xfd, 0xa4, 0x25, 0x1f, 0x50, 0x8e, 0x4, 0x8c, 0x75, + 0x0, 0x4f, 0xf5, 0xc9, 0x61, 0x28, 0x37, 0x62, 0x13, 0xed, 0x0, 0xa4, 0xe3, 0xcc, 0xfc, 0x49, 0x0, 0xe3, 0xed, 0x93, 0xbc, 0x0, 0x9f, 0x66, 0xbf, 0x5a, 0xe8, 0xaf, 0x28, + 0x97, 0x1b, 0xde, 0x64, 0x5c, 0x57, 0x2, 0x2, 0xb1, 0x20, 0x73, 0xa8, 0x2f, 0x94, 0x80, 0xb2, 0x17, 0x7b, 0xe3, 0x10, 0xf7, 0xf4, 0xc9, 0x8, 0x9e, 0xf3, 0x65, 0x55, 0xa1, + 0xc5, 0xee, 0x2, 0x16, 0xbb, 0xb, 0xb1, 0xff, 0xf, 0x3f, 0x7d, 0x93, 0x0, 0xe5, 0x1, 0xa4, 0xa8, 0xf2, 0x25, 0x42, 0x65, 0xb5, 0x3f, 0x33, 0x7f, 0xd2, 0xeb, 0x5c, 0x44, + 0x20, 0x3b, 0x79, 0x59, 0x3c, 0xc8, 0xbe, 0xcf, 0x2e, 0x43, 0x5, 0x8c, 0x44, 0x44, 0xf0, 0x2b, 0x9, 0x3a, 0xdb, 0xb6, 0xd3, 0xaa, 0x5f, 0x24, 0x6f, 0x11, 0x33, 0xb0, 0x67, + 0xe6, 0x4f, 0xa2, 0xdf, 0xef, 0x7b, 0x1b, 0x20, 0xf5, 0xd1, 0xb3, 0xb4, 0x0, 0x8e, 0xe4, 0x89, 0x59, 0xf, 0x2c, 0xc, 0xf5, 0x7a, 0xbd, 0xb0, 0xd9, 0xef, 0x70, 0x47, 0x94, + 0xa7, 0xed, 0x3a, 0x27, 0x60, 0x64, 0x10, 0xc4, 0x55, 0xbf, 0xa2, 0x90, 0xa1, 0xfa, 0x15, 0xe, 0x99, 0x95, 0x2f, 0x6e, 0x4, 0x90, 0x54, 0xfd, 0xd8, 0x6b, 0x38, 0x11, 0xd0, + 0x65, 0x28, 0x29, 0x84, 0xc5, 0xee, 0x2, 0x7b, 0xce, 0x54, 0xda, 0x28, 0x40, 0xe7, 0x4, 0x8c, 0xd, 0x82, 0xa4, 0xe0, 0x4f, 0x30, 0x8c, 0x70, 0x10, 0xb0, 0xb7, 0x1e, 0x54, + 0x3c, 0x6c, 0xac, 0x2b, 0xfc, 0x1, 0xe7, 0xb3, 0x6d, 0x54, 0xbb, 0x3, 0xbf, 0x31, 0x3b, 0xf9, 0x7c, 0x28, 0x35, 0x9, 0x55, 0xf, 0xb3, 0x53, 0x10, 0xfb, 0xaa, 0x51, 0x42, + 0x27, 0x14, 0x89, 0x52, 0x3c, 0xcb, 0x15, 0xd3, 0xa8, 0xb8, 0x20, 0xf0, 0x1c, 0xcd, 0x2, 0x66, 0xb1, 0xbb, 0x80, 0xad, 0xa7, 0xbf, 0x63, 0xf4, 0x3f, 0x2e, 0xc7, 0x8d, 0x8e, + 0xcf, 0xc2, 0xad, 0x1c, 0xfe, 0xfb, 0x9a, 0x5f, 0xff, 0xf8, 0x4b, 0x39, 0x1f, 0x4b, 0x9e, 0x91, 0x2d, 0xb8, 0xda, 0xec, 0xb7, 0x17, 0x3b, 0xdf, 0x67, 0x7f, 0x2e, 0x24, 0xb5, + 0x8d, 0x38, 0xf1, 0xc2, 0x70, 0x63, 0x66, 0x7a, 0xb9, 0x35, 0x6a, 0x9f, 0x80, 0x79, 0x82, 0xc0, 0x5f, 0x5, 0xf3, 0x4, 0x81, 0xef, 0x38, 0x9d, 0x9c, 0x9d, 0x88, 0x2, 0x2, + 0x93, 0xbb, 0xf3, 0x4a, 0x9a, 0xc0, 0x4a, 0x3, 0x4b, 0x3e, 0xcd, 0x12, 0x2d, 0x53, 0x7, 0x92, 0x5, 0x99, 0xdf, 0x7, 0x2c, 0x80, 0xc3, 0xe3, 0xf2, 0x3b, 0x32, 0x43, 0x52, + 0xb8, 0x40, 0x74, 0x10, 0x64, 0x49, 0xe2, 0x1c, 0x88, 0xb3, 0x8d, 0xf2, 0x77, 0xe2, 0x0, 0xe9, 0x1, 0x3b, 0x66, 0x43, 0x4e, 0xdb, 0xb9, 0x61, 0xbb, 0x87, 0x2, 0xb7, 0x90, + 0x97, 0x74, 0x19, 0xa, 0xea, 0x94, 0xe2, 0xa0, 0xe6, 0x85, 0xdc, 0xb8, 0xc0, 0x4e, 0x8, 0xf8, 0x3c, 0x3c, 0x40, 0x49, 0x82, 0x80, 0x93, 0x57, 0xda, 0x3a, 0x59, 0xd4, 0x14, + 0xbd, 0xa2, 0xaa, 0x11, 0xb0, 0x7f, 0x56, 0xdb, 0x17, 0x61, 0xf3, 0x38, 0x7b, 0x0, 0x85, 0x55, 0xd2, 0xd8, 0x7c, 0x18, 0x21, 0x95, 0x5b, 0x4a, 0x2, 0x32, 0x52, 0x5, 0x55, + 0x27, 0xaa, 0x87, 0xe1, 0xaa, 0x80, 0x39, 0xce, 0x13, 0x45, 0x92, 0x33, 0x94, 0x26, 0x20, 0x30, 0xc, 0x38, 0x5, 0xc1, 0x16, 0xb6, 0x65, 0x56, 0xdb, 0x2b, 0xb5, 0x79, 0x92, + 0x3d, 0x0, 0x65, 0x36, 0xf1, 0x23, 0x31, 0x1f, 0xc0, 0xd1, 0xfe, 0xff, 0x1, 0x96, 0x14, 0x3b, 0xb, 0x9b, 0xbc, 0x5f, 0xda, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82}; + +constexpr auto danilka22ah_data_size = 0x988; + +inline uint8_t gradient_data[0xc10] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x40, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xaa, 0x69, 0x71, 0xde, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, + 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc3, 0x0, 0x0, 0xe, 0xc3, 0x1, 0xc7, 0x6f, 0xa8, 0x64, 0x0, 0x0, 0x0, 0x18, + 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x8b, + 0xd6, 0xf7, 0x39, 0x0, 0x0, 0x0, 0xb6, 0x65, 0x58, 0x49, 0x66, 0x49, 0x49, 0x2a, 0x0, 0x8, 0x0, 0x0, 0x0, 0x5, 0x0, 0x1a, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x4a, 0x0, 0x0, 0x0, 0x1b, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x28, 0x1, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x31, + 0x1, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x69, 0x87, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, + 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, + 0x0, 0x3, 0x0, 0x0, 0x90, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x32, 0x33, 0x30, 0x1, 0xa0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0xa0, + 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x2, 0x0, 0x4, 0x0, 0x0, 0x0, 0x52, 0x39, 0x38, 0x0, 0x2, + 0x0, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x31, 0x30, 0x30, 0x0, 0x0, 0x0, 0x0, 0x25, 0x47, 0x9e, 0x8d, 0xa3, 0x34, 0xb5, 0xc5, 0x0, 0x0, 0xa, 0xbf, 0x49, 0x44, + 0x41, 0x54, 0x78, 0x5e, 0xad, 0xdb, 0x89, 0x6e, 0x24, 0xc7, 0x11, 0x84, 0xe1, 0x5d, 0xc9, 0x3a, 0x6c, 0xbf, 0xff, 0xc3, 0xea, 0xb2, 0x3d, 0x1f, 0xcd, 0xbf, 0x11, 0x5b, 0x6a, + 0xe, 0x49, 0x41, 0x1, 0x24, 0x32, 0x2b, 0x33, 0xf2, 0xaa, 0xee, 0x19, 0x52, 0xc4, 0xea, 0xeb, 0x97, 0xff, 0xe3, 0xa7, 0x91, 0x1f, 0x1f, 0xf2, 0xef, 0x87, 0xfc, 0xf0, 0x6a, + 0xff, 0xeb, 0x21, 0x3f, 0x3f, 0xe4, 0xfb, 0x87, 0xf0, 0xff, 0xe3, 0x21, 0xff, 0x7c, 0x88, 0x58, 0x3e, 0x75, 0xf0, 0xc4, 0xaa, 0xc3, 0x56, 0x3, 0xa7, 0x9c, 0x6c, 0x7e, 0x5a, + 0x8d, 0xef, 0x1e, 0xc2, 0x1f, 0xd7, 0xb9, 0xb8, 0xba, 0x7c, 0x2b, 0x7c, 0x1b, 0xc3, 0x3f, 0xed, 0xf4, 0x29, 0xb0, 0xfa, 0x2b, 0x22, 0xfc, 0xfa, 0x90, 0xff, 0x3e, 0xe4, 0xf7, + 0x87, 0xf0, 0xfd, 0xf1, 0x10, 0xe0, 0x83, 0xff, 0x3c, 0xa4, 0x38, 0x2d, 0x4e, 0x34, 0xa5, 0xe5, 0xe0, 0x28, 0x2a, 0x1e, 0x1f, 0xc4, 0xf0, 0x9c, 0x9, 0x8e, 0x38, 0xc8, 0xcd, + 0x1f, 0x9a, 0x29, 0xee, 0x37, 0x3, 0xbf, 0xa, 0xa4, 0xcb, 0xad, 0xe, 0x7f, 0xf6, 0x5b, 0xb8, 0x72, 0x6b, 0xd6, 0x80, 0x6e, 0x76, 0x8b, 0x14, 0x37, 0x30, 0xe, 0x1, 0x3c, + 0xc0, 0xdb, 0xe5, 0xd9, 0x49, 0x35, 0xc2, 0x79, 0x29, 0xe1, 0x1a, 0xe6, 0x55, 0x57, 0xcb, 0x79, 0xf3, 0xd9, 0x5d, 0xdc, 0xd6, 0xc2, 0xad, 0xc6, 0xa7, 0xd1, 0x20, 0x8a, 0x55, + 0xc4, 0x53, 0x61, 0xb7, 0xa4, 0xa7, 0xde, 0x40, 0x35, 0xee, 0xe9, 0x3b, 0xf7, 0xd6, 0xe0, 0xb0, 0xe3, 0xd0, 0x9b, 0x7, 0xf5, 0xd8, 0x73, 0x36, 0x38, 0x97, 0x13, 0xd8, 0xf9, + 0x8a, 0x93, 0xbd, 0xe4, 0xf8, 0x9d, 0xc3, 0xda, 0x77, 0xb8, 0x3e, 0x2, 0x2d, 0xdb, 0x62, 0x2d, 0xd2, 0x53, 0xaf, 0x21, 0xf8, 0x7c, 0x42, 0x3, 0x89, 0xb3, 0x5b, 0x84, 0x5d, + 0xc, 0xd2, 0xf9, 0xea, 0x1, 0x7c, 0xd5, 0x85, 0xcd, 0xe3, 0x27, 0xd5, 0xb, 0x71, 0xf4, 0xcb, 0x5f, 0xce, 0x9, 0xfe, 0xb7, 0x62, 0x2f, 0xa8, 0xb9, 0x42, 0xbf, 0x3d, 0xa4, + 0x73, 0x3, 0x6a, 0xc2, 0xa7, 0x48, 0xba, 0x81, 0x6a, 0xde, 0x25, 0x75, 0xde, 0x9a, 0xfb, 0x74, 0xf9, 0xf9, 0xd2, 0x40, 0x93, 0x73, 0xd0, 0x72, 0xe3, 0x9f, 0x71, 0xe8, 0x4c, + 0x6f, 0xbd, 0x93, 0x57, 0xec, 0x16, 0xd, 0xdb, 0x6b, 0x5e, 0x33, 0x6f, 0x44, 0x3, 0xf4, 0x45, 0x85, 0x3, 0x15, 0xac, 0x11, 0x5e, 0x4f, 0x95, 0x9c, 0x97, 0x86, 0xdf, 0x5, + 0xf1, 0xd1, 0xd5, 0x86, 0xf8, 0xc5, 0x4f, 0xf0, 0x93, 0x66, 0x5, 0x39, 0xa1, 0x3a, 0x21, 0xfe, 0x87, 0xb0, 0x45, 0xd9, 0xde, 0x2, 0xc5, 0xfd, 0x54, 0x30, 0x74, 0x4b, 0xd0, + 0xd9, 0xbb, 0x6c, 0xf9, 0xf4, 0x2e, 0x25, 0x1f, 0x1a, 0x86, 0xb4, 0x7c, 0xf5, 0x80, 0xee, 0xd2, 0xd8, 0x2d, 0x56, 0x9d, 0x34, 0x6c, 0x9d, 0x6a, 0x85, 0xea, 0x85, 0x38, 0xef, + 0xa2, 0x5, 0x2a, 0xd6, 0x93, 0x6a, 0x51, 0x68, 0xe0, 0x7c, 0xbd, 0x1d, 0xb0, 0x83, 0xc8, 0xd, 0xec, 0x72, 0xaa, 0x9, 0xe9, 0x16, 0x2e, 0x1f, 0xaf, 0x9a, 0xb, 0xb1, 0x33, + 0xa7, 0x73, 0xe0, 0x5b, 0xd, 0x77, 0xbc, 0xc5, 0x15, 0xd3, 0x18, 0x2c, 0x55, 0x81, 0x6c, 0x22, 0xbe, 0x3, 0xb4, 0xa4, 0x98, 0xcb, 0xd8, 0x45, 0xd8, 0x4, 0x1f, 0x4f, 0x9c, + 0xbd, 0xfe, 0xea, 0xd5, 0xb7, 0x7c, 0x3e, 0x2, 0xc5, 0xeb, 0x1f, 0x9c, 0x17, 0x71, 0x42, 0xf9, 0xb0, 0xb5, 0xd6, 0x1f, 0xae, 0xbc, 0xb3, 0x41, 0x9, 0xbd, 0xe6, 0xfd, 0x34, + 0x20, 0x1, 0x2f, 0x2e, 0xf4, 0xdd, 0xc0, 0xa7, 0x5e, 0x79, 0xcb, 0x1, 0xe7, 0x90, 0x5d, 0x3f, 0x28, 0x7f, 0x7d, 0x74, 0x97, 0x1e, 0x36, 0x37, 0xac, 0xbd, 0xc0, 0xdd, 0xbe, + 0xe1, 0xe2, 0x77, 0x1, 0x3d, 0xad, 0xfd, 0x11, 0x17, 0x70, 0x5a, 0x4c, 0xb1, 0x16, 0x6, 0x17, 0xc3, 0x8f, 0xdf, 0x25, 0xd1, 0xd5, 0x6d, 0x29, 0xd2, 0x45, 0xee, 0x40, 0xde, + 0x36, 0xb9, 0xf1, 0xb2, 0xe3, 0xd0, 0x72, 0x76, 0x9e, 0x38, 0xf4, 0xfa, 0xa1, 0xbc, 0xf7, 0x70, 0xf1, 0x76, 0x50, 0x62, 0x39, 0x45, 0x2d, 0xe5, 0xb, 0x91, 0xaf, 0xc5, 0x6a, + 0x78, 0x2e, 0xc7, 0xb7, 0x43, 0xee, 0x13, 0xe3, 0xeb, 0xa3, 0xd2, 0x5, 0x56, 0x8f, 0x2d, 0x9e, 0x2e, 0x3f, 0xd, 0xd9, 0xf5, 0x84, 0xe5, 0xca, 0xd, 0x6b, 0x7f, 0x18, 0x15, + 0xde, 0xe6, 0xa, 0x19, 0x1a, 0xd8, 0x6, 0xbe, 0xfb, 0x3c, 0x43, 0x17, 0x86, 0xb7, 0x3f, 0x3a, 0x77, 0x60, 0xb0, 0xbc, 0x1a, 0xfc, 0xb8, 0x38, 0xd5, 0xe8, 0x12, 0xf7, 0x5c, + 0x5f, 0x88, 0x4f, 0x2f, 0xca, 0x83, 0x33, 0xf6, 0x61, 0x34, 0x68, 0x3, 0x28, 0xf4, 0xcb, 0x43, 0x2a, 0xde, 0x10, 0xfb, 0x25, 0xc9, 0x5f, 0xbc, 0xa7, 0x4a, 0x70, 0x9d, 0xe9, + 0xbe, 0x3, 0xd8, 0x3b, 0x68, 0x3d, 0xa0, 0xbc, 0x7c, 0xf1, 0x93, 0x78, 0x70, 0x67, 0x6f, 0xcd, 0xb0, 0x36, 0x9c, 0xe7, 0x70, 0xf9, 0xbb, 0x80, 0x5d, 0xd0, 0xf7, 0x0, 0xdb, + 0x7f, 0xaa, 0xe6, 0x6b, 0x28, 0xb0, 0xa4, 0x2, 0xe7, 0x25, 0xb0, 0x7d, 0x6c, 0x60, 0x63, 0x9e, 0xfc, 0x39, 0x74, 0xb5, 0x7a, 0xd3, 0xf8, 0x89, 0x3c, 0xdc, 0xf8, 0xcd, 0x57, + 0x3c, 0xd4, 0x6f, 0xb9, 0x70, 0x77, 0x7e, 0x8a, 0x1a, 0x34, 0x50, 0x4d, 0x1a, 0xc, 0x5a, 0x38, 0xb0, 0x5b, 0x8a, 0xc8, 0x2d, 0x5e, 0x3d, 0xe0, 0x13, 0xc3, 0x61, 0x8b, 0x91, + 0x6c, 0x7a, 0x63, 0x74, 0x52, 0x5e, 0x73, 0x6d, 0x5d, 0xfe, 0x74, 0x7c, 0x58, 0x1b, 0xe2, 0x3d, 0x45, 0x85, 0x7b, 0x75, 0x25, 0x95, 0xd8, 0x62, 0x2d, 0xdb, 0xa5, 0x78, 0x5b, + 0x60, 0x2f, 0x49, 0x5c, 0xad, 0x62, 0xf2, 0x7a, 0x33, 0x40, 0x4c, 0xbd, 0x72, 0xea, 0x5b, 0x1e, 0x3e, 0xbd, 0xfc, 0xd5, 0x5d, 0x4, 0x9c, 0x4b, 0x96, 0x3, 0xec, 0x8d, 0xbf, + 0x87, 0xeb, 0xef, 0x1, 0x6, 0x33, 0x30, 0xe9, 0xc7, 0x9c, 0x18, 0xf1, 0x91, 0xc8, 0xd6, 0x0, 0x57, 0x93, 0x4, 0x6a, 0x4c, 0xe2, 0xed, 0x8f, 0xcb, 0xfc, 0x4, 0xba, 0xec, + 0x72, 0x88, 0x33, 0xc4, 0xe1, 0x6b, 0xf1, 0x6a, 0x2e, 0x9c, 0xab, 0x73, 0x87, 0xea, 0xc2, 0x5d, 0xee, 0xb, 0x6a, 0x96, 0x43, 0x2, 0xdf, 0xbe, 0x11, 0xce, 0xe7, 0x97, 0x9a, + 0x27, 0x4d, 0x1a, 0xbc, 0x46, 0x2e, 0xa7, 0x9c, 0xe2, 0xec, 0x9e, 0xbc, 0x73, 0xdc, 0xd3, 0x4e, 0x93, 0x73, 0xb1, 0xbb, 0x7c, 0x50, 0xfb, 0xf4, 0x2d, 0xaa, 0xf1, 0x66, 0x5c, + 0x1, 0xd0, 0xd0, 0x92, 0x2d, 0x6a, 0xf8, 0x92, 0xfb, 0x62, 0x3, 0x7c, 0xdc, 0x80, 0x63, 0xb8, 0xde, 0x8a, 0x2e, 0xce, 0xb9, 0x25, 0xce, 0x65, 0xa0, 0x1a, 0x2d, 0x20, 0x9e, + 0x6, 0x7e, 0x76, 0xfe, 0xed, 0x1b, 0x87, 0x9f, 0x84, 0xb8, 0x21, 0xde, 0x1d, 0x2e, 0x5e, 0x17, 0x10, 0xb9, 0x81, 0x2c, 0xdd, 0xad, 0x2f, 0xb6, 0x29, 0x2d, 0x8f, 0x74, 0x61, + 0xbb, 0x18, 0x14, 0x27, 0x2d, 0x71, 0xda, 0x50, 0xcd, 0x3d, 0x93, 0xea, 0x5, 0x79, 0x71, 0x80, 0x7d, 0xce, 0x13, 0xf2, 0xdf, 0xe1, 0xe2, 0x35, 0xa8, 0x27, 0x7, 0x92, 0xb2, + 0x35, 0xef, 0x5c, 0x42, 0x7c, 0xd8, 0xe6, 0x71, 0x1, 0xa7, 0xcf, 0x3f, 0x9f, 0x98, 0x1a, 0x2e, 0x74, 0x17, 0x27, 0x2d, 0xd8, 0x39, 0x64, 0xe3, 0x13, 0x75, 0xca, 0x65, 0x27, + 0x10, 0x97, 0xce, 0xf7, 0x61, 0x28, 0xa, 0x12, 0x3d, 0x45, 0x67, 0xc3, 0x77, 0x6e, 0xc0, 0x96, 0xd8, 0x6, 0x78, 0xf8, 0x1a, 0xb7, 0x1c, 0x1b, 0xd7, 0x17, 0x67, 0x5c, 0x75, + 0x96, 0xb, 0x38, 0xec, 0xce, 0x62, 0xf8, 0xf5, 0x5b, 0xe4, 0x5b, 0x3e, 0x5d, 0xe, 0x38, 0xef, 0x6c, 0xe1, 0xce, 0xf7, 0xd, 0x14, 0x49, 0xb7, 0x78, 0xbf, 0x8, 0xf5, 0xe4, + 0xd, 0x60, 0x9, 0x4b, 0xd6, 0x18, 0xd8, 0x20, 0x47, 0x9c, 0x26, 0xe2, 0xe5, 0x34, 0x7c, 0xc3, 0x12, 0x79, 0xa4, 0x33, 0xac, 0xd, 0xf1, 0xf2, 0xb1, 0xf5, 0x3f, 0x39, 0x21, + 0xfe, 0x99, 0x43, 0x9e, 0xa2, 0x65, 0x2a, 0xd0, 0x99, 0xee, 0x57, 0x62, 0xe8, 0xfb, 0x0, 0xcf, 0x45, 0x39, 0xbb, 0x20, 0xb, 0xf2, 0x75, 0x39, 0x6c, 0x3e, 0x36, 0x2d, 0x3f, + 0x4e, 0xc3, 0x14, 0x3, 0x7e, 0x75, 0xa0, 0xfe, 0xf1, 0xc4, 0x80, 0x8f, 0x7d, 0xc6, 0xb2, 0x81, 0xdd, 0xb9, 0x99, 0xcb, 0x7f, 0x86, 0xeb, 0xf7, 0x80, 0xc8, 0x74, 0x37, 0x6d, + 0x30, 0xf1, 0x6, 0x68, 0x11, 0x7e, 0xb2, 0x97, 0x12, 0xaa, 0xd7, 0xf2, 0x62, 0xc5, 0xe9, 0xe2, 0xc5, 0x0, 0xb7, 0x5, 0xea, 0xb1, 0xe8, 0x72, 0xbb, 0x34, 0x70, 0x5e, 0x1e, + 0xbb, 0xdc, 0x33, 0xff, 0x19, 0xae, 0x1f, 0x83, 0x90, 0xdd, 0x13, 0x1, 0x4f, 0x5b, 0x61, 0x1f, 0xb, 0xfe, 0x1d, 0xb2, 0xd7, 0x5e, 0x9e, 0x58, 0x76, 0xba, 0x81, 0xc5, 0xd8, + 0xf9, 0xd4, 0x0, 0xe7, 0x16, 0x21, 0xd0, 0x99, 0x4e, 0xaa, 0xc9, 0x5e, 0x94, 0x3, 0x71, 0x3f, 0xd, 0xc5, 0xc1, 0x2d, 0x37, 0x30, 0xdd, 0xb9, 0xa7, 0x9c, 0x6e, 0x11, 0xcd, + 0xf9, 0xb2, 0xbb, 0xa8, 0xbe, 0xec, 0xa0, 0xa1, 0xf8, 0x7b, 0x63, 0x1a, 0x52, 0xce, 0xb9, 0xd4, 0x2e, 0x4, 0xf2, 0xe2, 0x1, 0x6e, 0x67, 0x72, 0xe6, 0x9e, 0xbe, 0xb5, 0xdf, + 0x44, 0xc3, 0xf6, 0x4, 0x35, 0x5, 0x36, 0x9f, 0xb8, 0xa5, 0x6a, 0xde, 0x17, 0x5b, 0xc5, 0xc5, 0xf1, 0x8, 0x5f, 0x8b, 0x42, 0xbc, 0x2e, 0xa9, 0x1, 0x37, 0x9f, 0x2f, 0xbd, + 0x1c, 0xa0, 0x9d, 0x9b, 0x71, 0xe3, 0x71, 0xc2, 0x59, 0xf, 0xd6, 0x3e, 0x71, 0xc5, 0x2a, 0xe, 0x6c, 0x85, 0x68, 0xaf, 0x3c, 0x34, 0x4, 0x18, 0xbc, 0xa7, 0xd8, 0xd3, 0x27, + 0xe2, 0x62, 0xd9, 0xe2, 0xce, 0xd9, 0x34, 0x11, 0x6f, 0x79, 0xe2, 0xc, 0x9d, 0xc9, 0x22, 0x5f, 0x75, 0x48, 0x39, 0xc0, 0xff, 0xc, 0x67, 0xbd, 0xc5, 0x15, 0xab, 0x60, 0x83, + 0x79, 0x82, 0xe0, 0xc, 0xce, 0xfb, 0xd4, 0xf1, 0xd3, 0x2e, 0xc1, 0xdf, 0xff, 0x9d, 0xf3, 0xb5, 0x28, 0x74, 0x6e, 0x50, 0x1c, 0x76, 0x97, 0x13, 0x36, 0x1e, 0x67, 0xe3, 0x21, + 0x7f, 0x9c, 0xfa, 0x84, 0xf2, 0x4f, 0xdc, 0xd5, 0xba, 0x70, 0xe, 0x6b, 0xa9, 0x9a, 0x18, 0x94, 0x14, 0x73, 0x11, 0x20, 0x96, 0x6f, 0xe1, 0xd7, 0x67, 0xbe, 0x16, 0x24, 0x7d, + 0x1c, 0x1a, 0xba, 0xdc, 0xea, 0x3, 0x9b, 0x40, 0x9c, 0xf2, 0xb3, 0xe3, 0x6c, 0xdf, 0xf4, 0x62, 0x7d, 0xec, 0x72, 0x4f, 0x5c, 0x3c, 0x5, 0x61, 0x3f, 0xbb, 0x82, 0x3e, 0xf7, + 0x50, 0x63, 0xbe, 0x6, 0x6, 0x36, 0x7f, 0x79, 0xe7, 0x85, 0xd4, 0x94, 0xbf, 0x1e, 0xe5, 0x97, 0x5b, 0xdd, 0xad, 0x1f, 0x37, 0x1f, 0x54, 0x3b, 0xce, 0x33, 0x6c, 0x1e, 0x38, + 0xdf, 0xe1, 0xf2, 0xd7, 0xd0, 0xc2, 0x3d, 0xe1, 0x1d, 0x1a, 0x2c, 0xd8, 0xa2, 0xa4, 0x6, 0x8a, 0x34, 0x74, 0x97, 0xb0, 0x79, 0x72, 0x1a, 0x9c, 0x74, 0x2e, 0xf, 0xd6, 0x86, + 0x6a, 0xc3, 0x39, 0xbc, 0xf3, 0x9d, 0x6f, 0x21, 0x7f, 0x67, 0xd8, 0x7a, 0xb7, 0x88, 0x4c, 0xd7, 0xc0, 0x40, 0x2d, 0xd, 0xe7, 0x62, 0x50, 0xe3, 0x2e, 0xa0, 0x3c, 0xda, 0x45, + 0xd2, 0xbd, 0x45, 0xd, 0x51, 0x7c, 0x25, 0xe8, 0xe7, 0xdc, 0x5, 0x41, 0xf6, 0xea, 0xb0, 0xb9, 0xb0, 0xb1, 0xb5, 0xdf, 0x45, 0x8b, 0xed, 0x70, 0xa, 0xf4, 0x36, 0x18, 0xc, + 0x1a, 0xc2, 0xa5, 0xf4, 0x24, 0xbb, 0x98, 0xfe, 0x5e, 0xc0, 0x8f, 0x6f, 0x71, 0xf1, 0xfe, 0x9b, 0xa2, 0x61, 0xe9, 0x2e, 0xb, 0xaf, 0x41, 0xab, 0x53, 0xcd, 0x7a, 0x65, 0x43, + 0x3a, 0x38, 0x27, 0x7f, 0x5, 0x57, 0x9e, 0x26, 0xa0, 0x61, 0xff, 0x4e, 0xa8, 0xa5, 0x5b, 0x8c, 0xcf, 0x52, 0xd, 0xd4, 0x82, 0xe9, 0xad, 0x71, 0x42, 0xad, 0x5d, 0xb6, 0xda, + 0xbb, 0x5c, 0x38, 0x7d, 0x1e, 0x4a, 0xe0, 0x2f, 0x56, 0x9f, 0xb3, 0xdf, 0x59, 0xf, 0x70, 0xde, 0xf2, 0xbf, 0x60, 0x87, 0xef, 0x89, 0x79, 0xfa, 0x96, 0x67, 0xf7, 0xb4, 0x7b, + 0xba, 0xd9, 0x62, 0xfd, 0x2b, 0xb1, 0x6a, 0x88, 0xc7, 0x37, 0xbc, 0xb, 0x15, 0x8b, 0xcf, 0xa6, 0xc5, 0xb3, 0xa1, 0x4b, 0x69, 0xd0, 0xf4, 0x89, 0xf8, 0xc5, 0x3b, 0x87, 0xce, + 0xab, 0x71, 0x4f, 0x1e, 0x5c, 0x3d, 0xf6, 0x2, 0xc, 0x92, 0xf8, 0x67, 0x6e, 0xc0, 0xbf, 0xd2, 0x53, 0x91, 0x87, 0xe7, 0x5c, 0x13, 0xbe, 0x6d, 0xe8, 0x7c, 0xd6, 0x2f, 0x26, + 0x8f, 0x88, 0x97, 0x1b, 0xb6, 0xe, 0xc1, 0x2b, 0x6f, 0xd1, 0x2c, 0xa1, 0x9c, 0x96, 0xdb, 0x1a, 0x27, 0x2e, 0x5f, 0x8d, 0xd, 0x27, 0xa1, 0x27, 0x8a, 0xc0, 0xe6, 0x87, 0x8a, + 0xf2, 0x79, 0xf5, 0x5b, 0x1c, 0x97, 0x74, 0x6, 0xb9, 0xf9, 0xf9, 0xaa, 0xdd, 0x19, 0x1a, 0xcc, 0x79, 0x75, 0xc8, 0x7, 0xf9, 0x57, 0xaf, 0x40, 0xba, 0x9c, 0xc5, 0x53, 0x9f, + 0xa1, 0x80, 0xc3, 0xab, 0x4f, 0xb7, 0xe4, 0x2e, 0xbf, 0xb, 0x75, 0x49, 0xc4, 0xe2, 0x78, 0x7c, 0x62, 0x6, 0xe1, 0xdf, 0x81, 0xf6, 0xcc, 0x6, 0xe7, 0x7c, 0x80, 0x47, 0xe0, + 0xd4, 0xa1, 0x73, 0x97, 0x9d, 0x3c, 0x83, 0xf8, 0xf6, 0xf9, 0x13, 0x76, 0xa0, 0x96, 0xd6, 0xc0, 0x65, 0xb4, 0x20, 0x6c, 0x43, 0x5c, 0xb1, 0x2e, 0xc8, 0xf2, 0xc0, 0x5f, 0x7e, + 0x4d, 0x77, 0x79, 0x90, 0x5f, 0x5d, 0xfe, 0x96, 0x81, 0xed, 0x5, 0x78, 0xf5, 0xcb, 0x7, 0xd5, 0xdb, 0xba, 0x70, 0x77, 0x3e, 0x73, 0xc3, 0xc5, 0xd5, 0x24, 0xf4, 0x6, 0x90, + 0x5e, 0xf3, 0x2d, 0xd0, 0x99, 0xf4, 0x13, 0xa0, 0x78, 0x9c, 0x86, 0x6, 0x97, 0xc1, 0xde, 0xc5, 0x88, 0xdc, 0x5d, 0xae, 0x1a, 0x7b, 0x91, 0xdb, 0x9b, 0x86, 0xf2, 0xc9, 0xdf, + 0x86, 0x2e, 0xa0, 0xa2, 0x35, 0xed, 0xdf, 0xfa, 0xd6, 0xbc, 0xd7, 0x9c, 0x18, 0x2e, 0x7e, 0x3, 0xed, 0x90, 0x6a, 0x5a, 0xb2, 0x85, 0xf8, 0x5a, 0x8, 0xe8, 0x6a, 0x10, 0xd8, + 0x39, 0xe2, 0x41, 0xb9, 0xe2, 0x64, 0x6b, 0x94, 0x9b, 0x86, 0xcd, 0x7d, 0x86, 0x2b, 0xa7, 0xc6, 0x15, 0xa4, 0x89, 0xa6, 0x7e, 0x14, 0xd6, 0xb8, 0xe6, 0xeb, 0xeb, 0x63, 0xc2, + 0xdf, 0x53, 0x65, 0x43, 0xcb, 0x37, 0xbc, 0x73, 0x1f, 0x19, 0x9c, 0xb8, 0x69, 0xa2, 0xbf, 0x73, 0x39, 0x69, 0x31, 0x76, 0xf3, 0xf1, 0x65, 0x43, 0xfa, 0x5a, 0xea, 0x15, 0x9d, + 0x4f, 0xff, 0xe2, 0xfa, 0x9b, 0xe0, 0x59, 0xb4, 0x57, 0x5c, 0xe3, 0x9a, 0xb2, 0x2d, 0xc2, 0x6f, 0x99, 0xb8, 0x62, 0x7e, 0x87, 0x68, 0xe0, 0x80, 0xd7, 0xb9, 0x18, 0x5f, 0xf9, + 0xb0, 0x36, 0x6c, 0x8e, 0xfa, 0xf1, 0x43, 0xe7, 0x62, 0x21, 0xdf, 0xa2, 0xf3, 0xe9, 0x5f, 0x5c, 0x7f, 0x13, 0xb4, 0x30, 0xec, 0xc2, 0x7e, 0xd1, 0x9, 0xdb, 0xb4, 0xe5, 0xe9, + 0xce, 0xc5, 0xd9, 0x2d, 0xeb, 0x4c, 0x40, 0x1c, 0x3a, 0xd7, 0x17, 0xf2, 0xc9, 0xc3, 0x4b, 0x6f, 0xce, 0xd6, 0xc9, 0x7f, 0x57, 0xa3, 0xd8, 0x87, 0x51, 0x91, 0x9a, 0xf4, 0x8f, + 0x22, 0xbc, 0xea, 0x5b, 0xac, 0x25, 0xf1, 0xd, 0xe8, 0x4d, 0xd8, 0x1, 0x40, 0xbc, 0x41, 0xf0, 0x1, 0x97, 0xf8, 0xb8, 0x2c, 0xf8, 0x82, 0x9c, 0x6a, 0x82, 0xba, 0xf5, 0x6e, + 0xae, 0xea, 0xae, 0x1d, 0x3a, 0x9f, 0xcb, 0x3b, 0x9f, 0xbe, 0x70, 0xd5, 0xd8, 0xb, 0x30, 0x84, 0xc5, 0x49, 0xaf, 0x3a, 0x7f, 0xba, 0xc1, 0xba, 0x4, 0x52, 0x83, 0x16, 0x76, + 0xee, 0x72, 0xf6, 0xd2, 0xe2, 0x85, 0xea, 0x26, 0xd5, 0xdc, 0x4b, 0x0, 0x31, 0x7e, 0x68, 0xe8, 0xcd, 0x83, 0x8d, 0xc7, 0x9, 0x77, 0xbe, 0x6f, 0x50, 0x23, 0x9a, 0x78, 0x3, + 0xfa, 0x3c, 0x57, 0x58, 0xa3, 0xfe, 0x46, 0xe8, 0xa3, 0x52, 0xc1, 0x72, 0xc4, 0xb7, 0x89, 0xbc, 0x86, 0x13, 0xdf, 0x3a, 0x67, 0xe, 0x61, 0xc7, 0xef, 0xd2, 0x42, 0x75, 0xab, + 0x49, 0xe7, 0x5b, 0xbd, 0x39, 0x27, 0x9e, 0xc5, 0x5e, 0x86, 0x81, 0x1a, 0xd3, 0xde, 0x0, 0x45, 0x3d, 0x8d, 0x86, 0xe7, 0x67, 0xe7, 0x93, 0x87, 0xd7, 0x60, 0xd, 0xd1, 0x50, + 0xec, 0x5e, 0xfb, 0x7a, 0xd0, 0xd5, 0x11, 0x27, 0x7c, 0x72, 0xaa, 0xc9, 0xae, 0x46, 0x79, 0x9d, 0x61, 0x7d, 0xf2, 0xc3, 0x72, 0x3e, 0x85, 0xa, 0xf6, 0xea, 0x19, 0xc4, 0x5b, + 0xc0, 0xdf, 0x17, 0x23, 0xf0, 0xef, 0xef, 0x5, 0xd0, 0x7f, 0x3d, 0x6e, 0x8d, 0x16, 0x3, 0xcb, 0x42, 0x39, 0x6a, 0x34, 0xf8, 0xd6, 0x92, 0x9f, 0x3f, 0x1f, 0xe0, 0x3, 0x5f, + 0x12, 0xb6, 0xf, 0x64, 0xaf, 0xf, 0xce, 0xf3, 0x9f, 0xd0, 0xf0, 0xc1, 0x59, 0x92, 0xe6, 0x16, 0xea, 0x89, 0x6b, 0xde, 0x5b, 0x92, 0xf, 0xe2, 0xc9, 0xdb, 0x81, 0xf9, 0x0, + 0x9f, 0xc8, 0xdd, 0x25, 0xf8, 0xd8, 0x72, 0xaa, 0xf, 0x5d, 0x1a, 0xe0, 0x40, 0x75, 0x17, 0xf8, 0x3b, 0xbb, 0x73, 0xfc, 0x74, 0x35, 0xef, 0x10, 0xe7, 0x2a, 0xa2, 0x71, 0xaf, + 0xac, 0x44, 0xb6, 0x37, 0x80, 0x7f, 0x2f, 0x5, 0x68, 0x71, 0x3e, 0xdc, 0x3e, 0xa, 0x78, 0x2d, 0x2e, 0x6f, 0x2f, 0x86, 0xbd, 0x35, 0xe4, 0xe1, 0x5c, 0x83, 0xbc, 0x62, 0x17, + 0x69, 0xb6, 0x34, 0xb4, 0x14, 0x4e, 0xbc, 0xec, 0x62, 0x21, 0xdf, 0xe9, 0x87, 0xab, 0x4e, 0xc5, 0x2d, 0xe4, 0xf, 0x18, 0xfd, 0x14, 0x80, 0x5e, 0xd3, 0xc8, 0x3b, 0x10, 0x4e, + 0xd, 0x2c, 0x17, 0x6f, 0x17, 0xec, 0xb, 0xb3, 0xe5, 0x41, 0xae, 0xba, 0x78, 0xe5, 0xec, 0x82, 0x2d, 0x53, 0x3c, 0x3b, 0x3f, 0x1, 0x39, 0xe2, 0x90, 0x16, 0xab, 0x26, 0xac, + 0xff, 0x2d, 0x5c, 0xbf, 0x8, 0x59, 0x48, 0x82, 0xcf, 0x35, 0x9f, 0xe1, 0xbb, 0x80, 0x86, 0x8e, 0xdb, 0x19, 0xc, 0xd7, 0x6b, 0xdb, 0x80, 0xe5, 0x90, 0x7c, 0xc0, 0x4f, 0xe2, + 0x57, 0xaf, 0x73, 0x71, 0x28, 0xd6, 0x39, 0x54, 0xbf, 0x4b, 0x39, 0xe3, 0x8b, 0xfa, 0x3e, 0xc5, 0x36, 0x22, 0x86, 0xe9, 0xf6, 0xb3, 0x93, 0x2e, 0x25, 0x7f, 0x4b, 0xf6, 0x84, + 0x13, 0xb1, 0x86, 0xcb, 0xe, 0xec, 0xf7, 0x16, 0x2f, 0x8f, 0x40, 0x31, 0x58, 0xbb, 0x7e, 0xb0, 0xfe, 0x4f, 0x61, 0x2f, 0xa0, 0xa6, 0x96, 0x6c, 0x50, 0xfe, 0x84, 0xaf, 0xa1, + 0x21, 0xfe, 0xe, 0x41, 0xca, 0xc7, 0xed, 0x7b, 0x0, 0xf8, 0xe2, 0x2, 0x6e, 0x7a, 0x6b, 0x9f, 0xfe, 0xbd, 0x88, 0xb3, 0x1f, 0x9c, 0xe7, 0x4f, 0xa1, 0xe1, 0x68, 0x83, 0xf7, + 0x84, 0xd3, 0xd0, 0xc7, 0x83, 0x8f, 0xbd, 0x4b, 0x6d, 0x53, 0x3e, 0xc3, 0x78, 0x53, 0xc, 0x2a, 0x56, 0xd, 0xfe, 0x6, 0xe5, 0xdb, 0xa1, 0xd9, 0xb4, 0xba, 0x2d, 0x1b, 0xf8, + 0xb7, 0x47, 0xf6, 0xfa, 0xea, 0xb, 0x69, 0x58, 0xce, 0x9b, 0x68, 0x11, 0x89, 0xfe, 0x49, 0x4c, 0x5, 0xc, 0x62, 0x50, 0x45, 0xc, 0xe6, 0xb, 0xd2, 0xd9, 0xdf, 0x9, 0x70, + 0x8, 0xbf, 0xb8, 0x1a, 0xb4, 0x1c, 0x76, 0x52, 0x6c, 0xf9, 0x50, 0x1c, 0xf8, 0xf1, 0xe2, 0x40, 0x75, 0x42, 0x71, 0xa8, 0x6e, 0x79, 0x6b, 0x7f, 0x6, 0xd5, 0xbb, 0x1a, 0x59, + 0xce, 0xff, 0x20, 0xdd, 0xeb, 0x6b, 0x88, 0x6, 0x6, 0x5f, 0x8e, 0xbd, 0x15, 0x35, 0xcd, 0xc6, 0xed, 0xa9, 0x43, 0xf9, 0x69, 0xe8, 0xe9, 0x36, 0x74, 0x36, 0xc4, 0xad, 0xee, + 0xea, 0x90, 0x2f, 0x81, 0xb5, 0x81, 0x1d, 0xf, 0x36, 0xb6, 0xb5, 0xe0, 0x3a, 0x77, 0x1, 0x96, 0xb3, 0x84, 0xa5, 0xf8, 0x5a, 0x5e, 0x11, 0x3, 0x7a, 0xf5, 0x8b, 0xf1, 0xf5, + 0x85, 0x58, 0xd3, 0x72, 0xf8, 0x2b, 0xee, 0xcc, 0x96, 0x2f, 0x17, 0x1a, 0x4a, 0x2c, 0x5b, 0x2e, 0x5e, 0x67, 0x76, 0x79, 0x8b, 0xea, 0xc2, 0xf2, 0x21, 0x9b, 0x6e, 0xa7, 0xe5, + 0x2f, 0x17, 0xae, 0x73, 0xe4, 0x6, 0x74, 0xee, 0x89, 0x90, 0x1a, 0x2d, 0x8f, 0xaf, 0xff, 0x60, 0x62, 0xf7, 0xf4, 0xfb, 0x7e, 0xc0, 0xef, 0x6d, 0xa9, 0x6, 0x7e, 0x35, 0x49, + 0x75, 0xe2, 0xb3, 0x41, 0x9f, 0x38, 0xf9, 0xc2, 0x9e, 0xc5, 0xd3, 0x71, 0x8b, 0xe7, 0x8b, 0x73, 0x87, 0x57, 0xee, 0x97, 0x2f, 0xff, 0x3, 0x95, 0xc2, 0xd6, 0xa2, 0x9b, 0xfe, + 0x9b, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto gradient_data_size = 0xc10; + +inline uint8_t invisedivine_data[0x9ff] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0xb9, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4f, 0x68, 0x1d, 0xc7, 0x1d, 0xfe, 0xc6, 0x7a, 0xc8, 0x7a, 0xf6, 0xd3, 0x9f, 0x47, 0xc1, 0x89, 0xdc, 0x92, 0x48, 0xd8, 0x7, 0x29, 0x24, 0xa7, 0xe6, 0x96, 0x43, 0xc0, 0x49, + 0xe9, 0xc1, 0x36, 0xee, 0xa5, 0x18, 0x6c, 0x70, 0xa0, 0x38, 0xe8, 0x96, 0x43, 0xc0, 0x2, 0x23, 0x54, 0x93, 0x2a, 0x22, 0xa0, 0x40, 0xc1, 0xbd, 0x94, 0xe0, 0x12, 0xf7, 0xa2, + 0x40, 0xe8, 0xa5, 0xc5, 0xce, 0x49, 0x25, 0x34, 0x7, 0x1f, 0x75, 0x28, 0x29, 0x8e, 0x29, 0x36, 0x4e, 0x4a, 0xe5, 0x38, 0x81, 0x26, 0x96, 0x2d, 0x55, 0x8d, 0x90, 0x35, 0x3d, + 0x3c, 0xcd, 0x6a, 0xde, 0xbc, 0xd9, 0xdd, 0x99, 0xdd, 0x99, 0xfd, 0xcd, 0x7b, 0x6f, 0x3e, 0x58, 0xf4, 0xde, 0xee, 0xce, 0x7c, 0xdf, 0xfe, 0xfe, 0xcc, 0xcc, 0xce, 0xec, 0x5b, + 0x1, 0x11, 0x11, 0x11, 0x64, 0x60, 0xd4, 0x2, 0x22, 0x82, 0x7, 0x97, 0x3e, 0x9b, 0xc4, 0x8b, 0xed, 0xf9, 0x7d, 0x8d, 0x3, 0x16, 0xe7, 0x72, 0x69, 0xf3, 0x71, 0x7e, 0xa8, + 0xdc, 0x21, 0xf0, 0x93, 0x6a, 0x58, 0x9e, 0x9b, 0x93, 0xeb, 0xcc, 0xe3, 0x94, 0xcf, 0x77, 0x81, 0x9e, 0xb6, 0xbd, 0x4d, 0x2, 0x92, 0x3a, 0x82, 0x38, 0x8, 0xc8, 0xf9, 0xa9, + 0x35, 0x18, 0x70, 0xf7, 0xe4, 0x75, 0xfb, 0xd6, 0x60, 0x95, 0x80, 0x86, 0x42, 0x28, 0x8d, 0xe0, 0x8d, 0x3b, 0x4, 0x7e, 0x4a, 0xd, 0xaf, 0x9f, 0x98, 0xc1, 0xe2, 0x1b, 0xaf, + 0xc9, 0x1c, 0xea, 0x86, 0xc5, 0x37, 0x5e, 0xc3, 0xeb, 0x27, 0x66, 0x9c, 0xf2, 0xa, 0xf4, 0xaa, 0xed, 0xad, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0xe1, + 0xe2, 0x85, 0xeb, 0x58, 0x9e, 0x9b, 0xc3, 0xf2, 0xdc, 0x1c, 0xf8, 0xfa, 0x46, 0xb2, 0x89, 0x7d, 0x17, 0x2f, 0x5c, 0x77, 0xce, 0x29, 0xd0, 0xab, 0xb6, 0xaf, 0x15, 0x11, 0x72, + 0xf1, 0xc2, 0x75, 0x4c, 0xfc, 0xe4, 0x3, 0x0, 0xc0, 0xb9, 0xd9, 0xcb, 0xc9, 0xfe, 0x8f, 0x96, 0xde, 0x4b, 0x84, 0xfa, 0x2, 0x25, 0x77, 0x8, 0xfc, 0x54, 0x1a, 0xfe, 0xfa, + 0xe9, 0x7, 0x4e, 0xce, 0x29, 0x83, 0x5e, 0xb4, 0xbd, 0x75, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x43, 0xd1, 0x40, 0x81, 0x10, 0xae, 0xdb, 0x87, 0x6, 0xeb, 0x21, + 0x68, 0x44, 0x84, 0xdc, 0xf2, 0xeb, 0xbe, 0x47, 0x98, 0xa3, 0x54, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x29, 0x34, 0x9c, 0x7b, 0xf7, 0x5d, 0xcc, 0x5c, 0xbd, 0x8a, + 0x63, 0x53, 0xcf, 0xb5, 0x1f, 0x18, 0x39, 0x8c, 0x99, 0xab, 0x57, 0x31, 0xff, 0xe1, 0xef, 0xbd, 0xf2, 0x27, 0x3a, 0x7a, 0xc8, 0xf6, 0x85, 0x12, 0x90, 0xd2, 0x11, 0xd4, 0x41, + 0x40, 0xcd, 0x4f, 0xad, 0xe1, 0xc8, 0xf0, 0x20, 0xee, 0x3d, 0xf8, 0x8f, 0xf6, 0x58, 0xda, 0x7e, 0x57, 0xe8, 0x45, 0xdb, 0x17, 0xee, 0x1, 0x29, 0x1d, 0x41, 0xc9, 0x1d, 0x2, + 0x3f, 0xa5, 0x86, 0x8d, 0xad, 0x6d, 0xc, 0xf, 0xf, 0x77, 0xec, 0x3f, 0x54, 0x3, 0x8e, 0x1d, 0xfd, 0x91, 0x37, 0x5e, 0x81, 0x5e, 0xb3, 0x7d, 0xe1, 0x4, 0xa4, 0x74, 0x4, + 0x75, 0x10, 0x50, 0xf3, 0x57, 0xa0, 0xa1, 0x63, 0x9d, 0xeb, 0xdc, 0x2f, 0x7f, 0x5, 0xfc, 0xf3, 0xdf, 0xf8, 0xe6, 0xab, 0x87, 0x78, 0xb2, 0xf6, 0x10, 0x0, 0xb0, 0xbd, 0xbe, + 0xdb, 0x3a, 0xf8, 0x78, 0x13, 0xdf, 0x7c, 0xf5, 0x10, 0xf7, 0xfe, 0xf6, 0xf7, 0xd6, 0x79, 0x72, 0x45, 0x9c, 0x37, 0x75, 0xf5, 0x15, 0x45, 0xaf, 0xd9, 0x3e, 0x6f, 0x16, 0x94, + 0x43, 0x79, 0x9e, 0x4f, 0x76, 0x84, 0xc0, 0xf6, 0xfa, 0x2e, 0x6, 0x47, 0xf, 0x24, 0x8e, 0xc0, 0xc3, 0xef, 0x81, 0xad, 0x6d, 0x7c, 0xf4, 0xa7, 0xf, 0xf7, 0x2b, 0xe2, 0xbc, + 0xc9, 0x18, 0xfb, 0x4e, 0xad, 0x2f, 0x50, 0xee, 0x10, 0xf8, 0xc9, 0x34, 0x70, 0xce, 0x87, 0x18, 0x63, 0xed, 0xdc, 0xf5, 0x41, 0x60, 0x6b, 0xbb, 0xed, 0xbc, 0xc1, 0x51, 0xa5, + 0xfd, 0xde, 0xda, 0x6e, 0x9d, 0x27, 0x81, 0x31, 0xf6, 0x1d, 0xe7, 0x7c, 0x94, 0x31, 0xab, 0x4b, 0xef, 0x1b, 0xdb, 0x67, 0xf6, 0x80, 0x9c, 0xf3, 0x21, 0xa8, 0xad, 0x57, 0x49, + 0x47, 0x64, 0xf1, 0x85, 0xc2, 0x1d, 0x2, 0x3f, 0xa5, 0x6, 0xc6, 0xd8, 0xf, 0x9c, 0x73, 0x51, 0x29, 0x3b, 0xbf, 0xb8, 0x8, 0x3c, 0xdb, 0x4, 0x26, 0x9f, 0xc9, 0x2e, 0x38, + 0xf9, 0xc, 0xf0, 0x6c, 0x13, 0xe7, 0x17, 0x17, 0x81, 0xfd, 0x60, 0x63, 0x8c, 0xb1, 0xc7, 0x26, 0xbc, 0x2, 0xfd, 0x64, 0x7b, 0x93, 0xd6, 0x90, 0xed, 0xb5, 0x86, 0xad, 0xaf, + 0xeb, 0x1b, 0x79, 0x45, 0xf6, 0x2b, 0x1f, 0x6d, 0x18, 0x71, 0x84, 0xc8, 0x1d, 0x2, 0x3f, 0xa1, 0x6, 0xc1, 0x27, 0xca, 0xb6, 0xf1, 0xb2, 0xd1, 0x6, 0xf2, 0xbe, 0xcb, 0x65, + 0x95, 0xba, 0xcc, 0x4, 0xf4, 0x89, 0xed, 0xf3, 0xee, 0x1, 0x39, 0x63, 0x6c, 0x37, 0x87, 0x24, 0xf5, 0xbb, 0x5a, 0x17, 0xec, 0xee, 0x5, 0x28, 0xb9, 0x43, 0xe0, 0xa7, 0xd4, + 0xc0, 0xd0, 0x1e, 0x3c, 0x4c, 0xae, 0x9b, 0xaf, 0x6f, 0x80, 0x8d, 0x36, 0x92, 0x2d, 0x23, 0xf9, 0x74, 0x75, 0x99, 0xa0, 0x6f, 0x6c, 0x5f, 0xa8, 0x75, 0xd4, 0x18, 0xbc, 0x75, + 0x20, 0xdb, 0x11, 0x2e, 0x40, 0xc9, 0x1d, 0x2, 0x7f, 0x95, 0x1a, 0x3a, 0xee, 0x81, 0x54, 0x6e, 0x15, 0x1a, 0x4e, 0x5d, 0x1d, 0x85, 0xf5, 0xf4, 0xa2, 0xed, 0x4d, 0x7f, 0x60, + 0x49, 0xe5, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd2, 0x20, 0x9f, 0x6f, 0xd3, 0x7b, 0x24, 0x1c, 0x9c, 0xf3, 0x1, 0xc6, 0xd8, 0xd3, 0x2, 0xdc, 0x3a, 0xd, 0xfb, 0xd5, 0xf6, + 0x98, 0xed, 0xf3, 0xc4, 0x51, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x43, 0xd0, 0xc0, 0xc7, 0xc6, 0xc6, 0xda, 0x76, 0x3c, 0x7a, 0xf4, 0xa8, 0x75, 0x20, 0xa5, 0x27, 0x28, 0xc0, + 0xa1, 0xe5, 0x45, 0x9f, 0xd8, 0xde, 0x78, 0x49, 0x80, 0xc8, 0x11, 0xd4, 0xdc, 0x21, 0xf0, 0x53, 0x69, 0x48, 0x38, 0x5, 0x97, 0xc, 0x59, 0x4f, 0xb3, 0xd9, 0x4, 0x0, 0xdc, + 0xbf, 0x7f, 0xdf, 0x25, 0x7f, 0x9b, 0x6, 0x81, 0x5e, 0xb3, 0xbd, 0xd1, 0x10, 0x94, 0xd0, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0x21, 0x69, 0xf5, 0xd5, 0x0, 0x54, 0x21, + 0x78, 0x5, 0x5c, 0xf1, 0xf7, 0x83, 0xed, 0xad, 0x5e, 0xb2, 0x43, 0xe0, 0x8, 0xf2, 0x20, 0x20, 0xe6, 0xa7, 0xd2, 0xc0, 0x4d, 0xf8, 0x74, 0x9c, 0x2, 0x7f, 0x6c, 0x34, 0xf0, + 0xea, 0xe7, 0x9f, 0xdb, 0xf2, 0x76, 0x68, 0x30, 0xd1, 0xd1, 0xcd, 0xb6, 0xcf, 0x5d, 0x86, 0x10, 0xe4, 0xb6, 0x2, 0x0, 0x60, 0x72, 0x72, 0x12, 0x9f, 0xbd, 0xf4, 0x52, 0xe, + 0x45, 0x90, 0xdc, 0x21, 0xf0, 0x93, 0x6a, 0x78, 0x6b, 0x62, 0xa2, 0x50, 0x39, 0x47, 0xe8, 0x1b, 0xdb, 0xe7, 0x3e, 0xb, 0x4a, 0xe9, 0x8, 0xe2, 0x20, 0x20, 0xe7, 0xf, 0x45, + 0x43, 0x1a, 0xd2, 0x7a, 0x3f, 0x17, 0x8, 0xe1, 0xba, 0xab, 0xd0, 0xe0, 0xe4, 0x7, 0xb9, 0x3e, 0x1d, 0x11, 0x32, 0x77, 0x8, 0xfc, 0xbe, 0x35, 0xe8, 0xee, 0x7d, 0xf2, 0xa0, + 0xc, 0xbf, 0xbc, 0xa1, 0x17, 0x6c, 0x6f, 0x9c, 0x80, 0x94, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0xfe, 0x50, 0x34, 0x50, 0x20, 0x84, 0xeb, 0xf6, 0xa9, 0x21, 0xbe, 0x92, 0x22, 0x22, + 0x82, 0x10, 0x31, 0x1, 0x23, 0x22, 0x8, 0x11, 0x13, 0x30, 0x22, 0x17, 0x45, 0x86, 0x60, 0x11, 0x66, 0xb0, 0x4a, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x7f, 0x28, 0x1a, + 0x28, 0x10, 0xc2, 0x75, 0xfb, 0xd2, 0x10, 0x7b, 0xc0, 0x88, 0x8, 0x42, 0xc4, 0x4, 0x8c, 0x88, 0x20, 0x44, 0x4c, 0xc0, 0x8, 0x13, 0x30, 0xd3, 0x21, 0x58, 0x2f, 0x2c, 0x7d, + 0x54, 0x9, 0xdb, 0x4, 0xa4, 0x74, 0x4, 0x75, 0x10, 0x50, 0xf3, 0x87, 0xa2, 0x1, 0x40, 0xe5, 0x8b, 0xe0, 0x21, 0x5c, 0xb7, 0x17, 0xd, 0xa5, 0x7b, 0xc0, 0xf8, 0x14, 0xc, + 0x2d, 0x42, 0xd0, 0x40, 0x81, 0x10, 0xae, 0xdb, 0x85, 0x86, 0x38, 0x4, 0x8d, 0x88, 0x20, 0x44, 0x4c, 0xc0, 0x88, 0x8, 0x42, 0xc4, 0x4, 0x8c, 0x88, 0x20, 0x44, 0xa1, 0x7f, + 0xd0, 0x19, 0xd1, 0xfb, 0xf8, 0xdd, 0x97, 0x5f, 0x96, 0x2a, 0xbf, 0xf7, 0x63, 0xdc, 0x88, 0x1c, 0x98, 0xbc, 0x94, 0x49, 0x3d, 0x9f, 0xeb, 0x7e, 0x8a, 0xaf, 0x42, 0x33, 0x13, + 0x54, 0xe4, 0xa5, 0x48, 0x54, 0xdc, 0x21, 0xf0, 0x3, 0x0, 0x7f, 0x6b, 0x62, 0x42, 0x4e, 0x86, 0xaa, 0x34, 0xf0, 0xb5, 0xd5, 0x15, 0x0, 0xc0, 0x8f, 0x7f, 0xfa, 0x33, 0x2d, + 0x6f, 0xde, 0x8c, 0xe0, 0xda, 0xea, 0x8a, 0x5c, 0xd6, 0x16, 0x41, 0xd8, 0x3e, 0x0, 0xd, 0xe0, 0x6b, 0xab, 0x2b, 0x7c, 0x6d, 0x75, 0x45, 0x7e, 0xb1, 0x28, 0xb7, 0xd9, 0x94, + 0xb2, 0xa5, 0xb9, 0xc7, 0xc6, 0xc6, 0x92, 0xcd, 0x23, 0x77, 0x8, 0xfc, 0x94, 0x1a, 0xf8, 0xda, 0xea, 0xa, 0xbf, 0xf3, 0xd9, 0x9f, 0x73, 0xfd, 0x5e, 0x3f, 0x3e, 0xcb, 0xf, + 0xbf, 0xb0, 0x90, 0x6c, 0xef, 0xbc, 0x79, 0x9e, 0x3, 0x50, 0xcb, 0x76, 0xcb, 0x75, 0x5b, 0x69, 0x98, 0x9c, 0x9c, 0x2c, 0xad, 0xc1, 0x68, 0x8, 0xfa, 0x64, 0x63, 0x33, 0x11, + 0x5, 0x0, 0x43, 0xe3, 0x67, 0x70, 0xf9, 0x54, 0x3, 0xef, 0xdd, 0xdc, 0x7f, 0x2b, 0xd4, 0x40, 0xf3, 0x65, 0x0, 0xc0, 0xec, 0x2b, 0x77, 0x70, 0xe5, 0xda, 0xb2, 0xae, 0x6c, + 0x21, 0xa8, 0xe5, 0x75, 0x2d, 0xef, 0xe1, 0x17, 0x16, 0x0, 0x0, 0x9b, 0xb7, 0xe7, 0xd1, 0x38, 0x7a, 0x1a, 0x97, 0x4e, 0x8e, 0xe0, 0xca, 0xb5, 0xe5, 0xd2, 0xdc, 0x36, 0xfc, + 0x9b, 0xb7, 0xe7, 0x51, 0x1b, 0x3f, 0x8b, 0x21, 0xf6, 0x5f, 0xa7, 0xfc, 0xa6, 0x1a, 0xea, 0xc7, 0x67, 0x71, 0x60, 0x70, 0x58, 0xb6, 0x3f, 0x3, 0xc0, 0x8b, 0x6a, 0xd8, 0xeb, + 0xbd, 0xda, 0xd0, 0x38, 0x7a, 0x1a, 0x0, 0x70, 0xe9, 0xe4, 0x8, 0xde, 0xff, 0xe4, 0x31, 0x36, 0x1e, 0xdc, 0x48, 0x2d, 0x3f, 0xf5, 0xea, 0x2f, 0xa, 0xf1, 0xca, 0xb0, 0xf1, + 0x3d, 0xd0, 0x8a, 0x3d, 0xa1, 0xab, 0xa, 0xdb, 0x8b, 0xcf, 0x42, 0x43, 0x91, 0xd8, 0xcf, 0x4d, 0x40, 0xd5, 0x11, 0x43, 0xe3, 0x67, 0x3a, 0xce, 0x11, 0xc9, 0x97, 0x54, 0xfa, + 0xdc, 0xc, 0x76, 0xfe, 0xd5, 0xfa, 0x5f, 0xd9, 0x65, 0x1c, 0xa1, 0xb, 0x2, 0xf9, 0x62, 0x7f, 0xfb, 0x69, 0x1d, 0x0, 0xb0, 0x93, 0x52, 0xbe, 0x6c, 0x10, 0xe8, 0xf8, 0x47, + 0x8f, 0x5d, 0x4, 0x0, 0xbc, 0x7d, 0x62, 0xcb, 0x3b, 0x7f, 0x8a, 0x6, 0x6, 0x80, 0xf, 0x1c, 0x69, 0x25, 0xc3, 0xd3, 0x6f, 0xdb, 0x93, 0x60, 0xe9, 0xd6, 0x94, 0xf8, 0xc8, + 0x4b, 0x68, 0x28, 0x3c, 0x64, 0x92, 0xf8, 0x4b, 0xbd, 0x95, 0x2c, 0xab, 0x1, 0x10, 0xf0, 0xdd, 0x0, 0xe8, 0x34, 0xd4, 0xc6, 0xcf, 0x62, 0xfe, 0x54, 0xd, 0xb, 0x37, 0x5b, + 0x5e, 0xdf, 0xf9, 0xfa, 0xe3, 0x8e, 0xe3, 0x62, 0x9f, 0x89, 0x86, 0xbc, 0x59, 0x50, 0xa6, 0x6c, 0xb8, 0x7c, 0xaa, 0xd1, 0xd6, 0xfb, 0xd, 0x34, 0x5f, 0xc6, 0xe6, 0xed, 0xf9, + 0xa4, 0xc0, 0xd2, 0xad, 0x29, 0xcc, 0xff, 0x7c, 0x43, 0x57, 0xde, 0x16, 0x1d, 0xdc, 0xa6, 0x78, 0xff, 0x93, 0xe4, 0x9f, 0xf1, 0x14, 0xe5, 0xe, 0x81, 0xdf, 0x48, 0xc3, 0x3b, + 0x6f, 0x9e, 0x4f, 0x3e, 0xef, 0x6e, 0x3f, 0x1, 0xd0, 0xd6, 0x2b, 0x94, 0xb1, 0x7f, 0x7, 0x2e, 0x9d, 0x1c, 0x49, 0x7a, 0x3f, 0xcf, 0x28, 0x64, 0xfb, 0xa5, 0x5b, 0x53, 0xb8, + 0x74, 0x72, 0x44, 0xad, 0xa3, 0x32, 0xd, 0xb, 0x37, 0x77, 0x30, 0x7f, 0x2a, 0xe9, 0xd3, 0x8c, 0xca, 0x5a, 0xcf, 0x82, 0xca, 0xc3, 0xce, 0x34, 0x48, 0xad, 0xa0, 0x73, 0xcc, + 0xbe, 0x72, 0x7, 0x0, 0xf6, 0x7b, 0x9f, 0x83, 0xcf, 0x7b, 0xe3, 0xd2, 0xe1, 0xed, 0x13, 0x5b, 0x6d, 0xfc, 0x2a, 0xfe, 0xc7, 0xf, 0x55, 0xa2, 0xe3, 0xd7, 0x67, 0x5a, 0x81, + 0x26, 0x5a, 0xe2, 0xad, 0xbb, 0x4b, 0xa8, 0x1f, 0x9f, 0xf5, 0xca, 0x99, 0x96, 0x78, 0xbb, 0xdb, 0x4f, 0x70, 0x60, 0xb0, 0xf3, 0x1f, 0x56, 0x52, 0x40, 0xd8, 0xc3, 0x13, 0xd8, + 0xce, 0xd7, 0x1f, 0xf3, 0x2b, 0xd7, 0x5a, 0xd, 0x9f, 0xca, 0x75, 0xb0, 0xf9, 0x22, 0x16, 0x6e, 0xfe, 0xc3, 0xaa, 0xc2, 0xae, 0x5b, 0x86, 0x48, 0xb, 0x7c, 0xb9, 0x17, 0xae, + 0x92, 0xbf, 0xea, 0x6, 0x40, 0xe0, 0x37, 0x7f, 0x69, 0x25, 0x3, 0x1b, 0x38, 0x94, 0xc, 0x7b, 0x44, 0x12, 0x4a, 0xc9, 0xc0, 0xe1, 0xee, 0x55, 0xf1, 0x5a, 0x64, 0x24, 0xbe, + 0x2b, 0xee, 0xd0, 0xc0, 0x0, 0xf0, 0x2b, 0xd7, 0x96, 0x51, 0x1b, 0x3f, 0x5b, 0xba, 0xb2, 0x6e, 0x5a, 0x88, 0xcf, 0x9d, 0xd1, 0x52, 0xef, 0x11, 0x4c, 0xca, 0xf4, 0xa, 0xd4, + 0x60, 0x90, 0x27, 0x27, 0x5c, 0x40, 0x63, 0x5b, 0xed, 0x3e, 0x1f, 0xdc, 0x1, 0x82, 0x1, 0x9d, 0xf7, 0x7f, 0x45, 0xd0, 0x4d, 0x9, 0x98, 0x4c, 0x80, 0x98, 0x20, 0x2d, 0x38, + 0x22, 0x22, 0x1c, 0xc1, 0x49, 0xef, 0xde, 0x55, 0x9, 0xa8, 0x82, 0x6a, 0xf8, 0x17, 0xd1, 0x8e, 0xad, 0xbb, 0x4b, 0xc9, 0x4, 0x90, 0x82, 0xbe, 0x19, 0x81, 0x14, 0x45, 0x57, + 0x27, 0xa0, 0x40, 0xce, 0xfd, 0x9f, 0xb7, 0x20, 0x10, 0xd, 0x80, 0x58, 0x3, 0xec, 0x37, 0x64, 0x2d, 0x3, 0xf4, 0xc1, 0x30, 0xd4, 0x9, 0xba, 0x3e, 0x1, 0xb3, 0x92, 0xaf, + 0x9f, 0x86, 0xa1, 0x2e, 0xee, 0x47, 0xa, 0xa2, 0x17, 0x27, 0x5a, 0x2a, 0x43, 0xd7, 0x27, 0xe0, 0x1e, 0xaa, 0x8, 0x82, 0xe0, 0x86, 0x53, 0x7c, 0xa7, 0xb5, 0x24, 0x22, 0x92, + 0xcf, 0xd3, 0x32, 0x44, 0x8, 0xd7, 0x1d, 0x82, 0x6, 0x15, 0x4e, 0x34, 0x75, 0x4b, 0x2, 0x76, 0x5c, 0x2c, 0xc5, 0xfd, 0x9f, 0x6e, 0x12, 0xa8, 0xaa, 0xe5, 0xf, 0x9, 0x89, + 0x2d, 0x58, 0xad, 0xde, 0x91, 0x7c, 0x62, 0x9, 0xc2, 0xa5, 0xae, 0x92, 0x23, 0x9, 0x27, 0x81, 0x1a, 0xd8, 0x68, 0x86, 0x3, 0x9d, 0x33, 0xcf, 0x45, 0xd0, 0x2d, 0x9, 0x68, + 0x35, 0x3, 0xaa, 0x41, 0xd9, 0x20, 0xc8, 0x6b, 0x0, 0x58, 0xd5, 0x43, 0xc0, 0xa7, 0xdf, 0xde, 0x48, 0x1e, 0x43, 0x13, 0x6b, 0x7f, 0x9a, 0xe4, 0x2b, 0xfd, 0xf, 0x4a, 0xd3, + 0xe, 0xa8, 0xf7, 0x7f, 0xba, 0x89, 0x18, 0x47, 0xf7, 0x81, 0xa1, 0xf5, 0x7e, 0xce, 0x92, 0xf, 0xe8, 0x8e, 0x4, 0x4c, 0x75, 0x80, 0x49, 0x2b, 0x5f, 0xa0, 0xe5, 0xd4, 0x3d, + 0xd9, 0x5e, 0xb6, 0x1, 0x70, 0x8e, 0xe9, 0x5a, 0xeb, 0x81, 0x0, 0x75, 0xd8, 0xe9, 0x30, 0xf9, 0x0, 0xe4, 0xda, 0x8f, 0x29, 0x7f, 0xcb, 0x42, 0x6b, 0xfb, 0x0, 0x7a, 0xbf, + 0x36, 0x3d, 0x2e, 0x27, 0xdc, 0x4a, 0x25, 0xa0, 0xfa, 0x10, 0xb6, 0x2f, 0xa8, 0xc1, 0xaf, 0xf6, 0x3e, 0xe2, 0x43, 0xd6, 0xac, 0x9c, 0xd, 0xa6, 0x6b, 0xf5, 0x24, 0xc0, 0x75, + 0x90, 0x67, 0x3f, 0x73, 0xe0, 0xbd, 0xf5, 0xf6, 0xd4, 0xf3, 0x65, 0xc2, 0x95, 0x9d, 0x75, 0xc8, 0xb3, 0xbd, 0x85, 0x6, 0xa7, 0xb6, 0x17, 0x9a, 0x5c, 0xcf, 0x76, 0x77, 0xdd, + 0xa3, 0x68, 0x2, 0x9a, 0xe0, 0x67, 0xf0, 0x10, 0xf0, 0x6, 0x3d, 0x9f, 0x36, 0xd8, 0xe5, 0xa7, 0xe2, 0x7d, 0x61, 0xba, 0x56, 0xc7, 0x17, 0x7a, 0x3b, 0x94, 0x85, 0x89, 0x1d, + 0xb5, 0x3c, 0x2e, 0x9f, 0xb, 0x2d, 0xd2, 0xf3, 0x1d, 0x6c, 0xbe, 0x8, 0xa0, 0x9a, 0x59, 0x61, 0x95, 0xe3, 0x87, 0xef, 0xed, 0x9e, 0x3, 0x5, 0xc2, 0x1e, 0x82, 0x6a, 0x7f, + 0xcc, 0x98, 0xd6, 0xfb, 0x55, 0x5, 0x8b, 0xde, 0xaf, 0x32, 0x48, 0xad, 0xb2, 0x33, 0x7b, 0xa4, 0xf5, 0x42, 0x59, 0x3d, 0xcf, 0xd6, 0xdd, 0xa5, 0xb4, 0x43, 0x4e, 0x1b, 0x46, + 0x9f, 0x3d, 0x70, 0x16, 0xa6, 0xf7, 0x26, 0xbd, 0xc4, 0xe6, 0x2, 0x41, 0xf7, 0x80, 0xd3, 0xb5, 0x3a, 0xbe, 0xd8, 0x9b, 0x6a, 0x97, 0x91, 0x15, 0xfc, 0x1b, 0xf, 0x6e, 0xa4, + 0xb5, 0x9c, 0xa5, 0x1f, 0xe, 0xde, 0x39, 0xf8, 0xbc, 0xca, 0xdd, 0xf3, 0x6b, 0x60, 0x29, 0xc1, 0xae, 0xbb, 0xee, 0xb6, 0x11, 0x88, 0xb0, 0x93, 0xe4, 0xc3, 0xd2, 0xf6, 0x57, + 0xb4, 0x78, 0x19, 0xf1, 0x18, 0x42, 0xbe, 0x8e, 0x36, 0xd, 0xb6, 0x89, 0x19, 0x74, 0x2, 0xa, 0xac, 0xdf, 0xfb, 0x83, 0x6e, 0x77, 0x6e, 0x10, 0x8, 0x87, 0x15, 0x9, 0x2, + 0x91, 0xf8, 0x16, 0xdc, 0x55, 0x20, 0xb9, 0x36, 0xb9, 0x61, 0xf2, 0x35, 0xdc, 0x12, 0xbd, 0xe0, 0x1e, 0x97, 0xd1, 0x35, 0xcb, 0xbd, 0xa0, 0x28, 0x9f, 0xd6, 0x90, 0xa6, 0x41, + 0x9c, 0x6b, 0x91, 0xfc, 0x54, 0xe0, 0x29, 0x33, 0xbd, 0xc6, 0x1a, 0x83, 0x4f, 0xc0, 0x22, 0x41, 0x20, 0x3b, 0xae, 0x48, 0x10, 0x48, 0xe7, 0x85, 0xe4, 0x6c, 0x0, 0xc0, 0xc0, + 0x91, 0xd3, 0xc9, 0x2, 0x3c, 0xab, 0xd5, 0xc1, 0x6, 0xe, 0x89, 0x4, 0xf4, 0xad, 0xd5, 0xb8, 0xf1, 0x32, 0x99, 0x44, 0x49, 0x43, 0xa8, 0xb6, 0xb7, 0x69, 0x40, 0x6c, 0x50, + 0xf6, 0x4d, 0x65, 0x3e, 0x38, 0x12, 0x2e, 0xd9, 0x91, 0x16, 0x8e, 0xe1, 0x80, 0x3e, 0x8, 0x6c, 0x92, 0xb8, 0x0, 0xd2, 0x6c, 0xe3, 0x92, 0x2f, 0xcb, 0xfe, 0xce, 0x79, 0x34, + 0xf6, 0xcf, 0xb5, 0xbd, 0x6a, 0x77, 0x25, 0x70, 0x5d, 0xdb, 0x3e, 0x2f, 0x1e, 0xab, 0x68, 0x94, 0x4a, 0x71, 0x5b, 0x27, 0x60, 0x5a, 0x60, 0x67, 0x4, 0x7c, 0x11, 0x1e, 0xa0, + 0x7b, 0x82, 0xc0, 0x84, 0xd7, 0xd9, 0x3a, 0x99, 0x7, 0x3b, 0xa7, 0x72, 0x1, 0xd6, 0x23, 0x10, 0xae, 0x9c, 0xef, 0x43, 0x97, 0x96, 0x4f, 0x45, 0x45, 0x3d, 0x69, 0x69, 0x7f, + 0x38, 0x49, 0x40, 0x41, 0xea, 0xa1, 0xd7, 0xd1, 0xb5, 0x30, 0xb6, 0xef, 0x32, 0x35, 0x2d, 0x57, 0x16, 0x59, 0xce, 0xf0, 0x9a, 0x80, 0x1e, 0x78, 0x12, 0x3e, 0xe5, 0x7b, 0x91, + 0xf7, 0xc8, 0xfa, 0x44, 0xaa, 0x3d, 0x0, 0xef, 0x23, 0x9e, 0x4c, 0x7e, 0x53, 0xee, 0xff, 0x3, 0xd6, 0xd8, 0x86, 0xab, 0xaf, 0xd2, 0x3e, 0x19, 0x0, 0x0, 0x0, 0x0, 0x49, + 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto invisedivine_data_size = 0x9ff; + +inline uint8_t jaan_data[0x837] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x7, 0xf1, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4b, 0xb2, 0xeb, 0x28, 0xc, 0x95, 0xbb, 0x7b, 0x9a, 0xaa, 0x64, 0x5, 0xc, 0xb2, 0x1, 0xbf, 0xfd, 0x6f, 0x22, 0x1b, 0xc8, 0xc0, 0x2b, 0x48, 0xaa, 0xb2, 0x0, 0x7a, 0xd0, + 0xc6, 0x8d, 0xb1, 0x30, 0x60, 0x24, 0xa4, 0x38, 0x9c, 0xaa, 0xd4, 0x7b, 0x37, 0x37, 0xd7, 0xe7, 0xa0, 0xf, 0x60, 0x90, 0x9, 0x40, 0x47, 0x7, 0x3, 0x8c, 0x31, 0xd6, 0x18, + 0x63, 0xa5, 0x75, 0x68, 0xc7, 0xc0, 0x4d, 0xe0, 0x9c, 0x30, 0x4d, 0x13, 0x3b, 0x97, 0x26, 0x6e, 0xd, 0xfc, 0xad, 0x34, 0xf8, 0x89, 0xe6, 0xf3, 0x8c, 0xe3, 0x68, 0x5f, 0xaf, + 0xd7, 0x4f, 0xfa, 0x3e, 0x57, 0x3, 0xa9, 0x38, 0x49, 0x47, 0x48, 0x7, 0x81, 0x34, 0xbf, 0x94, 0x86, 0x71, 0x1c, 0x57, 0xa3, 0x5c, 0xc8, 0x63, 0x8c, 0xb1, 0xdd, 0xf6, 0x71, + 0xd, 0xff, 0x50, 0x9, 0x8, 0x1d, 0x1, 0x0, 0x8b, 0xe1, 0x1f, 0x8f, 0xc7, 0xc0, 0x39, 0x1d, 0x91, 0xe4, 0xd6, 0xc0, 0xaf, 0x45, 0x3, 0x0, 0xc0, 0xed, 0x76, 0x5b, 0x71, + 0x73, 0x7, 0xbf, 0x86, 0x76, 0xd7, 0x68, 0x20, 0x4b, 0xc0, 0x10, 0xad, 0x1d, 0xa1, 0x85, 0x5b, 0x3, 0x7f, 0x4b, 0xd, 0x8f, 0xc7, 0x63, 0xd5, 0xdb, 0x63, 0xdc, 0x2d, 0xf1, + 0x6d, 0xb6, 0x67, 0x11, 0xe7, 0xf7, 0x8, 0xad, 0xef, 0x1, 0x24, 0xb9, 0x35, 0xf0, 0x37, 0xd0, 0x10, 0xeb, 0xcd, 0x7, 0x9f, 0xbb, 0xdb, 0x3e, 0x4f, 0xc3, 0x5f, 0x15, 0x5c, + 0x36, 0xf2, 0x5a, 0xf5, 0x8a, 0x4c, 0x90, 0xe4, 0xd6, 0xc0, 0xdf, 0x4c, 0x43, 0x30, 0x7d, 0xb2, 0xc6, 0x18, 0x70, 0xaf, 0x71, 0x1c, 0x97, 0x57, 0xc8, 0x7d, 0xbb, 0xdd, 0xc2, + 0xbf, 0xa5, 0xc2, 0xa9, 0x6c, 0x9f, 0xfd, 0xe1, 0xe0, 0x66, 0xda, 0x1a, 0x63, 0x96, 0xdf, 0xcd, 0x43, 0x2e, 0xcc, 0x2, 0x96, 0xeb, 0x52, 0xf5, 0x86, 0x92, 0xdc, 0x1a, 0xf8, + 0xa5, 0x34, 0xe4, 0x72, 0xc6, 0xb8, 0xbb, 0xed, 0xd3, 0x1a, 0xb2, 0x46, 0xc0, 0x12, 0x47, 0x60, 0xbd, 0x61, 0xd, 0x24, 0xb9, 0x35, 0xf0, 0x4b, 0x69, 0x30, 0xc6, 0x58, 0xef, + 0xda, 0xc9, 0xe4, 0xa3, 0xe4, 0xf6, 0x35, 0x9c, 0xdd, 0xf6, 0xc9, 0x4, 0x94, 0x74, 0x84, 0x74, 0x10, 0x48, 0xf3, 0x6b, 0xd1, 0xe0, 0xe3, 0x76, 0xbb, 0xc1, 0xe3, 0xf1, 0x70, + 0xbd, 0xfd, 0x2, 0xec, 0xbd, 0x9a, 0x69, 0xa8, 0x86, 0x76, 0xb7, 0xd0, 0x70, 0x78, 0x15, 0xd4, 0x39, 0xc2, 0x23, 0x85, 0x99, 0x14, 0xfd, 0x2c, 0x10, 0xae, 0x8a, 0x49, 0x72, + 0x6b, 0xe0, 0xe7, 0xd6, 0x10, 0x4, 0x1e, 0xa, 0x6b, 0x2d, 0xfc, 0xf9, 0xf3, 0x67, 0xf3, 0xde, 0x30, 0xfc, 0x4f, 0xc1, 0xb1, 0xd, 0x70, 0x36, 0xdb, 0xef, 0x8e, 0x80, 0xb9, + 0x8e, 0x48, 0xbd, 0x77, 0xa4, 0x37, 0x92, 0xe4, 0xd6, 0xc0, 0xaf, 0x45, 0x43, 0x2d, 0x8e, 0xde, 0x7b, 0x4a, 0xb7, 0xbb, 0x95, 0x86, 0x9a, 0x55, 0xd0, 0x22, 0x48, 0x96, 0x4, + 0x49, 0x72, 0x6b, 0xe0, 0xe7, 0xd0, 0xe0, 0x8f, 0x74, 0x7b, 0xef, 0x49, 0x43, 0xbb, 0xed, 0xab, 0x13, 0x50, 0xd2, 0x11, 0xd2, 0x41, 0x20, 0xcd, 0x2f, 0xa5, 0xc1, 0xdb, 0x7a, + 0xd8, 0x7d, 0x8f, 0x13, 0x67, 0xb1, 0x7d, 0x55, 0x25, 0xc, 0x66, 0x70, 0xf7, 0x1e, 0x36, 0x1f, 0xa6, 0x84, 0x24, 0xb7, 0x6, 0x7e, 0x4e, 0xd, 0x73, 0x8f, 0xed, 0x4f, 0xc1, + 0x86, 0x69, 0x9a, 0x56, 0x8b, 0x10, 0x18, 0xfc, 0x65, 0x78, 0x4e, 0x9c, 0xc9, 0xf6, 0xbb, 0x23, 0xe0, 0x34, 0x4d, 0xc3, 0xeb, 0xf5, 0xf2, 0xdf, 0x1a, 0xa6, 0x69, 0x4a, 0x5e, + 0x94, 0xc2, 0x11, 0x92, 0xdc, 0x1a, 0xf8, 0xb5, 0x68, 0xf0, 0x2a, 0x3b, 0x76, 0xb9, 0x7d, 0xce, 0xda, 0x85, 0x17, 0xd, 0xed, 0x6e, 0xa5, 0x21, 0x7b, 0xa, 0x2a, 0xe1, 0x8, + 0xd, 0xdc, 0x1a, 0xf8, 0x25, 0x34, 0xf8, 0x1, 0xe8, 0x73, 0xbb, 0xed, 0x86, 0xf0, 0xe5, 0x38, 0x91, 0xc2, 0xe4, 0x2a, 0x9c, 0xdd, 0xf6, 0xc5, 0xcb, 0xd2, 0xde, 0xaa, 0x4e, + 0xb2, 0x26, 0x90, 0xaa, 0x12, 0x42, 0x8a, 0x5b, 0x3, 0xbf, 0xb4, 0x86, 0x8, 0x37, 0x8a, 0x33, 0xb5, 0xbb, 0x95, 0x86, 0xac, 0x11, 0x30, 0xd6, 0x1b, 0x46, 0x5e, 0xa4, 0x46, + 0x90, 0xe4, 0xd6, 0xc0, 0x2f, 0xad, 0x1, 0x99, 0x8a, 0xa1, 0x30, 0xc6, 0xac, 0x38, 0xad, 0xb5, 0x7f, 0x53, 0x72, 0xff, 0xa2, 0xed, 0x37, 0x30, 0xc6, 0xd8, 0xd4, 0x14, 0x23, + 0x3c, 0x8a, 0x80, 0xc2, 0x11, 0xd2, 0xdc, 0x1a, 0xf8, 0xb5, 0x68, 0x70, 0x97, 0xf5, 0x78, 0x38, 0xa, 0xae, 0x57, 0xd0, 0xd0, 0x6e, 0xd, 0x1a, 0x30, 0x34, 0x75, 0x84, 0x22, + 0x6e, 0xd, 0xfc, 0x4d, 0x34, 0x5c, 0xaf, 0x57, 0xb4, 0xf2, 0x3f, 0xe0, 0x45, 0x9f, 0xc, 0x60, 0xc4, 0x69, 0x6c, 0x9f, 0xbd, 0xd, 0x71, 0xbd, 0x5e, 0xed, 0xfb, 0xfd, 0x4e, + 0x8a, 0x42, 0xde, 0xab, 0x1e, 0x8a, 0x25, 0xb9, 0x35, 0xf0, 0xb, 0x69, 0xb0, 0x0, 0x0, 0xef, 0xf7, 0x1b, 0xf6, 0xb6, 0x1f, 0x8c, 0x31, 0x9b, 0xba, 0xc8, 0x79, 0x31, 0xc2, + 0x9f, 0xae, 0x1d, 0xc6, 0xd9, 0x6d, 0x9f, 0x23, 0x72, 0xb9, 0x70, 0x6a, 0x1f, 0x28, 0xe2, 0x88, 0x12, 0x2e, 0x4d, 0xdc, 0x1a, 0xf8, 0xa5, 0x34, 0xd8, 0x1c, 0x3e, 0x8c, 0x13, + 0xe1, 0xef, 0xb6, 0xdf, 0xd1, 0x90, 0x12, 0x27, 0xe9, 0x8, 0xe9, 0x20, 0x90, 0xe6, 0x97, 0xd4, 0x90, 0xdc, 0x74, 0x67, 0xe2, 0x5d, 0xf8, 0x1, 0x7e, 0xc3, 0xf6, 0x39, 0x8f, + 0x23, 0x25, 0x5, 0x70, 0x41, 0x92, 0x5b, 0x3, 0xbf, 0x16, 0xd, 0x31, 0xa4, 0x8a, 0x95, 0x6b, 0xa0, 0xa1, 0xdd, 0x2d, 0x34, 0x90, 0x14, 0x63, 0x73, 0x3a, 0x42, 0x33, 0xb7, + 0x6, 0x7e, 0x6e, 0xd, 0x39, 0xd5, 0x1f, 0x21, 0x5a, 0x95, 0x83, 0x9d, 0xc1, 0xf6, 0xd9, 0x9, 0x28, 0xe9, 0x8, 0xe9, 0x20, 0x90, 0xe6, 0xd7, 0xa2, 0x41, 0x2, 0x1a, 0xda, + 0xcd, 0xa9, 0xa1, 0xd9, 0xe3, 0x48, 0x1d, 0x1d, 0x1d, 0x5b, 0xf4, 0x4, 0xec, 0xe8, 0x10, 0x44, 0x4f, 0xc0, 0x8e, 0x24, 0x8e, 0x4c, 0xc1, 0x3a, 0xf2, 0x50, 0x94, 0x80, 0x92, + 0x8e, 0x90, 0xe, 0x2, 0x69, 0xfe, 0xd6, 0x1a, 0xa6, 0x69, 0xaa, 0xe2, 0x93, 0xbe, 0x7, 0xa7, 0x6, 0x97, 0x86, 0x64, 0x25, 0x4c, 0x2d, 0x71, 0xe5, 0x83, 0xa1, 0x62, 0xdc, + 0x1a, 0xf8, 0x5, 0x35, 0x84, 0xfb, 0x56, 0x16, 0xd3, 0x91, 0xd0, 0x56, 0x55, 0x89, 0xf2, 0x2b, 0xb6, 0x3f, 0xb4, 0x39, 0x5e, 0x8, 0xaa, 0x92, 0x20, 0x49, 0x6e, 0xd, 0xfc, + 0x5a, 0x34, 0x48, 0x40, 0x43, 0xbb, 0x59, 0x34, 0x9c, 0xc1, 0x39, 0x1d, 0xf4, 0xa0, 0x2c, 0x70, 0xee, 0x31, 0xb6, 0x83, 0xd2, 0x33, 0x61, 0x6a, 0x1c, 0xd3, 0x62, 0xb4, 0xa5, + 0xe2, 0xd6, 0xc0, 0x2f, 0xaa, 0xc1, 0x55, 0x81, 0xb8, 0x69, 0x18, 0x56, 0x15, 0xb2, 0x73, 0x3c, 0x3d, 0x8c, 0xe3, 0x58, 0x33, 0xd, 0xfc, 0x19, 0xdb, 0xa7, 0x12, 0x70, 0x23, + 0x22, 0x74, 0x44, 0xac, 0x12, 0x80, 0xc2, 0x11, 0xc2, 0x41, 0x20, 0xce, 0xaf, 0x45, 0x3, 0x6, 0xee, 0x2a, 0x14, 0xd, 0xed, 0x6e, 0xa1, 0x21, 0xab, 0x16, 0x34, 0x56, 0x13, + 0x27, 0x5d, 0xa, 0xf4, 0xeb, 0xfc, 0x5a, 0x34, 0x48, 0x40, 0x43, 0xbb, 0x29, 0x34, 0xf4, 0x7d, 0xc0, 0x8e, 0xe, 0x41, 0xf4, 0x4, 0xec, 0xc8, 0x42, 0xc1, 0x91, 0x7c, 0x1d, + 0x5, 0x28, 0x4e, 0x40, 0x49, 0x47, 0x48, 0x7, 0x81, 0x34, 0xbf, 0xa0, 0x86, 0x1, 0x32, 0xcf, 0xc5, 0x4, 0xa6, 0x55, 0xcf, 0xb3, 0xda, 0xbe, 0x74, 0x15, 0x74, 0x98, 0x85, + 0x44, 0x1f, 0xd8, 0xc, 0x1e, 0x40, 0x24, 0x5f, 0x49, 0xca, 0x39, 0xa1, 0x79, 0xfe, 0x2c, 0xf5, 0x59, 0x21, 0xd2, 0xfc, 0x1a, 0x34, 0xc, 0xd3, 0x34, 0xd9, 0x59, 0x43, 0x8c, + 0x93, 0x3, 0xd2, 0xed, 0x66, 0xd3, 0x70, 0xf4, 0x68, 0xfa, 0x61, 0x9a, 0x26, 0xb4, 0x3a, 0xa2, 0x1, 0x52, 0x41, 0x70, 0x76, 0xfe, 0x1c, 0xd, 0x9c, 0x7b, 0x6f, 0x92, 0xfb, + 0x7a, 0x92, 0xed, 0x66, 0xd1, 0x70, 0x74, 0x1f, 0x70, 0x39, 0x7, 0x31, 0xe3, 0xb3, 0x1c, 0x90, 0xde, 0xdc, 0x95, 0xe6, 0x7, 0x60, 0xd6, 0xa0, 0xa1, 0x14, 0x2c, 0x82, 0xd3, + 0xdb, 0xde, 0x7, 0x7a, 0x1c, 0x1d, 0xa4, 0x93, 0x8b, 0xe2, 0x98, 0x3a, 0xec, 0xef, 0x5b, 0x71, 0xa7, 0xf8, 0x4b, 0x35, 0x1c, 0xc5, 0xd1, 0xeb, 0x50, 0xd9, 0x20, 0x76, 0xcd, + 0x1c, 0x4e, 0x2a, 0xae, 0xda, 0xd8, 0x51, 0xad, 0x21, 0xb5, 0x8, 0xb3, 0x39, 0xf9, 0x17, 0x60, 0xd9, 0x90, 0xc4, 0x9c, 0x6c, 0x1, 0xc0, 0x7a, 0xdf, 0x1c, 0xb3, 0xf9, 0xdb, + 0x2, 0xa0, 0xdc, 0xf7, 0xfb, 0xdd, 0xe7, 0xe, 0x61, 0x83, 0x7d, 0xcb, 0xa3, 0xdc, 0x29, 0x7e, 0xa7, 0x1, 0x83, 0x25, 0xe2, 0x8f, 0x6a, 0x80, 0x7d, 0xe7, 0x52, 0xd9, 0x7f, + 0x3, 0xcf, 0xb6, 0x21, 0xaf, 0x75, 0x5f, 0x4f, 0x46, 0xf4, 0x15, 0x65, 0x58, 0xbb, 0x73, 0x12, 0xc2, 0xff, 0x9d, 0x84, 0xed, 0xfd, 0xdf, 0x67, 0xd9, 0xfe, 0xf0, 0x36, 0x84, + 0x73, 0x86, 0x33, 0x38, 0xb1, 0x3, 0x76, 0x11, 0x24, 0x1, 0x65, 0x2f, 0x5f, 0xcb, 0x9f, 0x7d, 0x9a, 0x58, 0x2d, 0x22, 0xc9, 0x60, 0x3d, 0x6d, 0xac, 0xdc, 0x20, 0x60, 0xf7, + 0xa0, 0x73, 0x5d, 0xb5, 0x1b, 0xe6, 0x4e, 0xa0, 0x45, 0xfb, 0x9d, 0x16, 0x4c, 0x43, 0x29, 0x7f, 0xd5, 0xf7, 0x3, 0x4a, 0xc2, 0x35, 0xf4, 0x72, 0xb9, 0x0, 0x40, 0xfb, 0x3d, + 0x28, 0x8c, 0x5f, 0xe2, 0x24, 0x2f, 0x63, 0xc, 0xb8, 0x45, 0x1, 0x4, 0xae, 0x27, 0xae, 0xc5, 0xe6, 0xfa, 0x33, 0x2f, 0x0, 0x40, 0x2c, 0xe8, 0xa9, 0xb8, 0x37, 0xf0, 0x4a, + 0xc4, 0x16, 0x5d, 0xd, 0xbf, 0x1c, 0x74, 0x0, 0xf8, 0xef, 0xf1, 0xac, 0xd0, 0xf6, 0xe3, 0x38, 0xc2, 0xe7, 0xf3, 0x29, 0xba, 0xd8, 0x37, 0x6d, 0xc4, 0x27, 0x7b, 0x5a, 0x24, + 0x1, 0x9a, 0xf5, 0xce, 0x92, 0xc0, 0xca, 0x5, 0xa9, 0x3, 0x12, 0xeb, 0x5c, 0x62, 0x1d, 0x4e, 0xcb, 0x6f, 0xca, 0x6d, 0xfd, 0xcd, 0xbc, 0x33, 0xdc, 0x96, 0x44, 0xb5, 0x86, + 0x6f, 0x4a, 0xc0, 0xa2, 0xe9, 0x85, 0x86, 0x73, 0x25, 0x3b, 0x4e, 0xd, 0x92, 0xd1, 0xfd, 0xab, 0x12, 0x30, 0x84, 0x9b, 0xfe, 0x75, 0xc8, 0xe2, 0xf9, 0x7c, 0xc6, 0xa6, 0x5e, + 0x3f, 0x31, 0x3, 0xa9, 0xc1, 0x57, 0x27, 0xa0, 0x43, 0xe2, 0xfe, 0x8f, 0x2d, 0x8, 0xa4, 0xef, 0xff, 0xa4, 0xb1, 0xb7, 0x57, 0x28, 0x30, 0x2d, 0xfc, 0x4a, 0x7c, 0x7d, 0x2, + 0xee, 0x25, 0xdf, 0x2f, 0x25, 0x85, 0x64, 0x55, 0x8e, 0x14, 0xf1, 0x19, 0x50, 0xbc, 0xa, 0x1a, 0x3a, 0xda, 0xfd, 0x2c, 0x5c, 0x9, 0xcf, 0x55, 0xff, 0xe7, 0x43, 0xed, 0x74, + 0x2a, 0xb1, 0x1a, 0x59, 0xb, 0xd, 0xed, 0xd6, 0xa0, 0x21, 0x4, 0x89, 0xa6, 0xd2, 0x11, 0x30, 0xdc, 0x9c, 0x4c, 0xbd, 0xa8, 0xb0, 0x69, 0xac, 0xc4, 0xfd, 0x1f, 0x16, 0xe0, + 0x2, 0x1d, 0xcf, 0xca, 0x16, 0x61, 0xf2, 0x71, 0x6c, 0xcb, 0x54, 0xce, 0x24, 0x48, 0x2, 0x55, 0xd9, 0x6c, 0xc6, 0x2, 0xd0, 0x68, 0x2a, 0x4d, 0xc0, 0x68, 0xf5, 0x4b, 0xe4, + 0x45, 0x86, 0xca, 0xde, 0x9d, 0xa2, 0x34, 0x6a, 0x85, 0xa0, 0x3, 0xc8, 0x7d, 0x54, 0x87, 0xc, 0xfe, 0xb9, 0x9d, 0xf7, 0xfb, 0x1d, 0x2e, 0x97, 0xb, 0x96, 0x7c, 0xb5, 0x9d, + 0x60, 0xd4, 0x6e, 0x61, 0x7b, 0xb1, 0x85, 0x18, 0xa2, 0xfb, 0x40, 0x6d, 0xa3, 0x1f, 0x59, 0xf2, 0x1, 0x1c, 0x98, 0x82, 0x62, 0x67, 0xc2, 0x3c, 0x1e, 0x8f, 0x8d, 0xb1, 0x9, + 0x7b, 0xe0, 0xa8, 0x3, 0x72, 0x38, 0xfc, 0xd, 0xe3, 0x1a, 0xbe, 0x56, 0x15, 0x16, 0xb9, 0x70, 0xe7, 0x8d, 0x84, 0xba, 0x8, 0x93, 0xf, 0x0, 0x92, 0x81, 0x36, 0x78, 0xff, + 0x52, 0xd5, 0x9b, 0x96, 0x6a, 0x68, 0x81, 0x95, 0x2e, 0x4a, 0x3d, 0x55, 0x8b, 0x30, 0xad, 0xce, 0xe5, 0x8, 0x83, 0x2c, 0x1c, 0x7d, 0xdc, 0x7f, 0xa8, 0x46, 0xa1, 0xd4, 0xc6, + 0x6a, 0xc1, 0x34, 0x8f, 0xbd, 0xf7, 0x66, 0x1a, 0xf9, 0x76, 0xc1, 0x39, 0xda, 0xe7, 0x6e, 0x6a, 0x67, 0x68, 0x20, 0xb5, 0xbd, 0xd3, 0x44, 0xdd, 0x19, 0x7c, 0x6d, 0x29, 0x1a, + 0x12, 0xfc, 0x2c, 0xb, 0x31, 0x19, 0x23, 0x1f, 0x1a, 0xec, 0x7, 0x46, 0xde, 0x62, 0x44, 0x4e, 0xdd, 0x62, 0x29, 0x3d, 0x43, 0x80, 0xf2, 0x7c, 0x3e, 0x1f, 0xb2, 0xfb, 0xf3, + 0x23, 0xc1, 0x7e, 0xb9, 0x5c, 0xe0, 0x7e, 0xbf, 0xc3, 0xf3, 0xf9, 0x24, 0xd1, 0xb0, 0x87, 0xd0, 0xbf, 0xa5, 0x65, 0x68, 0x0, 0xba, 0xb7, 0x21, 0xd0, 0xfb, 0xc8, 0xd8, 0xe8, + 0xd7, 0xa, 0x52, 0xb5, 0xa7, 0x7b, 0x8, 0x9e, 0xbe, 0x20, 0x41, 0x6c, 0x14, 0xda, 0xeb, 0x54, 0x76, 0x82, 0x9e, 0xb4, 0x63, 0x94, 0xda, 0x72, 0x19, 0xc7, 0x71, 0xb9, 0xf7, + 0xa6, 0xd2, 0xa0, 0x7a, 0x4, 0x8c, 0x9d, 0xab, 0xb8, 0x17, 0xfc, 0xae, 0x48, 0x16, 0x41, 0x75, 0x71, 0xf0, 0xe5, 0x72, 0x9, 0xb9, 0x4f, 0xbf, 0x7, 0x56, 0xf0, 0xd4, 0xf7, + 0x6a, 0x6, 0x82, 0x9c, 0x8d, 0x59, 0x6d, 0xff, 0x40, 0x4b, 0x8b, 0xad, 0xa7, 0x18, 0xc2, 0xc7, 0x93, 0x16, 0x94, 0x8e, 0xbc, 0xaa, 0x13, 0xd0, 0x21, 0xd2, 0xa8, 0x64, 0x10, + 0xf8, 0xc5, 0xb2, 0xa5, 0x41, 0xe0, 0x2, 0xa8, 0x80, 0xbb, 0x5, 0x36, 0x1, 0xe, 0xc0, 0x37, 0x22, 0xb8, 0x51, 0x30, 0x38, 0xe7, 0x67, 0x17, 0xbe, 0xbd, 0xfc, 0x47, 0xd5, + 0x4a, 0x66, 0xc, 0xee, 0xb3, 0x82, 0xc7, 0x4e, 0xe4, 0xc2, 0x46, 0x66, 0xa, 0xd9, 0x1a, 0xd5, 0x27, 0xe0, 0x91, 0x20, 0xf0, 0x1d, 0x77, 0x24, 0x8, 0x5a, 0x2d, 0x66, 0x1c, + 0x1, 0x36, 0xba, 0xcf, 0xed, 0xe5, 0xd6, 0x9a, 0xdd, 0x79, 0xd5, 0x6c, 0x3f, 0x68, 0xb5, 0x3d, 0xd7, 0x2d, 0x47, 0x69, 0x23, 0x8f, 0xc, 0xf9, 0x47, 0xd, 0xb9, 0xea, 0x5d, + 0xa, 0x1c, 0x63, 0x1, 0xf0, 0x20, 0x28, 0x49, 0xe2, 0x3, 0x88, 0xd9, 0x86, 0xb5, 0x20, 0x81, 0x93, 0x7, 0xb1, 0x7f, 0xd2, 0xf6, 0x89, 0xed, 0x28, 0x6a, 0xdb, 0xa7, 0xe2, + 0xb1, 0x45, 0xa7, 0x54, 0xc5, 0x5d, 0x9c, 0x80, 0xb1, 0xc0, 0xde, 0x9, 0xf8, 0x23, 0x3c, 0x0, 0xdf, 0x13, 0x4, 0x39, 0xbc, 0x54, 0x9c, 0x51, 0xfb, 0x13, 0xf3, 0x0, 0x4, + 0xf6, 0x2f, 0xb5, 0xbd, 0x94, 0xcd, 0x1d, 0x1a, 0x8d, 0xa4, 0xd5, 0xfe, 0x20, 0x49, 0x40, 0x47, 0xca, 0x30, 0xea, 0x60, 0x3d, 0x4c, 0xd6, 0x8, 0x78, 0xe0, 0xef, 0x6a, 0xb1, + 0xe7, 0xc, 0xd6, 0x4, 0x64, 0xe0, 0x59, 0xf8, 0x82, 0x9f, 0x4b, 0x6d, 0x2f, 0x62, 0x73, 0x7, 0xe6, 0x19, 0xcf, 0x2e, 0x7f, 0x2e, 0xf7, 0xbf, 0xdf, 0x1f, 0x1e, 0xaf, 0x81, + 0x60, 0x53, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto jaan_data_size = 0x837; + +inline uint8_t kolyah35_data[0x76c] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x3, 0x0, 0x0, 0x0, + 0xff, 0xb3, 0x58, 0x98, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, + 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x63, 0x50, 0x4c, 0x54, 0x45, 0x8a, 0x4c, 0x0, 0x7d, 0xa4, 0xd7, 0x7a, 0x47, 0xf, 0x80, 0x45, 0x2, 0xe5, 0xcd, 0xbb, 0x78, 0x43, + 0x8, 0xff, 0xff, 0xff, 0x10, 0x10, 0x10, 0x50, 0x6e, 0x95, 0x41, 0x41, 0x41, 0x5c, 0x36, 0xb, 0x5b, 0x89, 0xc5, 0x21, 0x21, 0x21, 0x58, 0x84, 0xbd, 0x52, 0x2e, 0x7, 0x0, + 0x0, 0x0, 0x5b, 0x87, 0xc0, 0x4c, 0x6a, 0x91, 0x54, 0x4f, 0x51, 0x72, 0x6a, 0x6f, 0x77, 0x6c, 0x72, 0xd8, 0xc1, 0xb0, 0x9, 0x24, 0x76, 0xb, 0x2a, 0x83, 0x81, 0x65, 0x5b, + 0x8, 0x19, 0x4f, 0xc, 0x1a, 0x4d, 0x4, 0x19, 0x57, 0x4, 0x1e, 0x67, 0xf, 0x23, 0x64, 0x3, 0x16, 0x4d, 0x2, 0x12, 0x44, 0x0, 0x0, 0x0, 0x24, 0xc2, 0x52, 0x69, 0x0, + 0x0, 0x0, 0x21, 0x74, 0x52, 0x4e, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x9f, 0xc1, 0xd0, 0x21, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc1, 0x0, 0x0, + 0xe, 0xc1, 0x1, 0xb8, 0x91, 0x6b, 0xed, 0x0, 0x0, 0x0, 0x18, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, + 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x8b, 0xd6, 0xf7, 0x39, 0x0, 0x0, 0x0, 0xb6, 0x65, 0x58, 0x49, 0x66, 0x49, 0x49, 0x2a, 0x0, 0x8, 0x0, 0x0, + 0x0, 0x5, 0x0, 0x1a, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x1b, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x28, 0x1, + 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x31, 0x1, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x69, 0x87, 0x4, 0x0, 0x1, 0x0, 0x0, + 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x76, 0x1, 0x0, 0xe8, 0x3, 0x0, 0x0, 0xd9, 0x76, 0x1, 0x0, 0xe8, 0x3, 0x0, 0x0, 0x50, 0x61, 0x69, 0x6e, + 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x0, 0x3, 0x0, 0x0, 0x90, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x32, 0x33, 0x30, 0x1, 0xa0, 0x3, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0xa0, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, + 0x2, 0x0, 0x4, 0x0, 0x0, 0x0, 0x52, 0x39, 0x38, 0x0, 0x2, 0x0, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x31, 0x30, 0x30, 0x0, 0x0, 0x0, 0x0, 0x6b, 0xba, 0xd6, + 0x1b, 0x92, 0xfb, 0x18, 0x53, 0x0, 0x0, 0x5, 0x7f, 0x49, 0x44, 0x41, 0x54, 0x68, 0x43, 0xed, 0x57, 0x5d, 0x63, 0xdb, 0x36, 0x10, 0x93, 0x1d, 0x3b, 0x6e, 0xbd, 0xcd, 0x9c, + 0xb7, 0x36, 0xfe, 0x5a, 0x1c, 0xff, 0xff, 0x5f, 0xb9, 0xbb, 0xe3, 0x91, 0x22, 0x29, 0xf2, 0x20, 0x4b, 0x5a, 0x97, 0x87, 0xe0, 0x21, 0x15, 0x9, 0x8, 0x7, 0x88, 0xb2, 0xd3, + 0x74, 0x8f, 0x4f, 0x83, 0x6e, 0xa5, 0x58, 0x34, 0x53, 0x66, 0x6, 0x46, 0xa0, 0x4, 0x30, 0xa1, 0x29, 0x20, 0xb2, 0x13, 0x4c, 0x1d, 0x5f, 0x17, 0x64, 0xd7, 0xf6, 0x8, 0x40, + 0x8f, 0x4a, 0xd8, 0x16, 0xd0, 0xee, 0xba, 0x7b, 0xd9, 0x6c, 0x36, 0x2f, 0x8d, 0xfb, 0x27, 0xda, 0xa7, 0x97, 0xf6, 0x8, 0x94, 0x0, 0x27, 0xb4, 0x4, 0x5d, 0xb7, 0x5d, 0x9, + 0x29, 0xf4, 0x82, 0xf6, 0xc9, 0x95, 0x3d, 0x2, 0x25, 0x18, 0x91, 0xd0, 0x12, 0x6c, 0x39, 0x55, 0x17, 0xd8, 0xe7, 0xc7, 0x37, 0x5, 0xfd, 0x15, 0x18, 0x81, 0x12, 0x20, 0xde, + 0x16, 0xf0, 0x8b, 0xa5, 0xf1, 0x36, 0x1b, 0xbe, 0xd6, 0xfd, 0x88, 0xc9, 0xf6, 0xfd, 0x85, 0x3d, 0x2, 0x25, 0x80, 0x9, 0x6d, 0x41, 0xd7, 0xad, 0xff, 0x23, 0xfb, 0xfe, 0xc2, + 0x1e, 0x81, 0x13, 0xd8, 0x3c, 0x10, 0x74, 0x74, 0x0, 0x2f, 0xaf, 0xbb, 0x6f, 0xc4, 0xbd, 0x7e, 0xff, 0xb6, 0xa4, 0x7d, 0x7f, 0x61, 0x8f, 0x80, 0x9, 0x0, 0x6f, 0xb, 0xd6, + 0xdd, 0x76, 0xbb, 0xda, 0xbf, 0xee, 0x7e, 0x63, 0xf6, 0xf7, 0x3f, 0xf6, 0xb, 0xda, 0x87, 0xb, 0x30, 0x2, 0x25, 0x80, 0x9, 0x6d, 0xc1, 0x96, 0xbe, 0x21, 0x56, 0xab, 0xd7, + 0xdd, 0x8e, 0xd9, 0xdd, 0x8e, 0xae, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0x4, 0x4a, 0x80, 0x78, 0x20, 0xf0, 0x2c, 0x51, 0x1e, 0x83, 0xdb, 0x67, 0xd8, 0xe7, 0x5, 0xc5, + 0x9e, 0x51, 0x5a, 0x8c, 0x4b, 0xa0, 0x6c, 0x85, 0x7, 0x82, 0xed, 0x96, 0xde, 0x30, 0xa5, 0x18, 0xe5, 0x9, 0xcd, 0xb0, 0x8f, 0x5, 0xed, 0x11, 0x30, 0x1, 0xe0, 0x81, 0x80, + 0x59, 0xff, 0x15, 0xef, 0xd1, 0xad, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0xc4, 0x98, 0x4, 0x16, 0xf, 0x4, 0x3, 0xb6, 0x28, 0x30, 0xc3, 0xbe, 0x59, 0x30, 0x1f, 0xf1, + 0x74, 0x82, 0x82, 0x7, 0x2, 0xe2, 0xba, 0x83, 0xec, 0x3b, 0xe7, 0x6, 0xec, 0x2c, 0xfb, 0x70, 0x1, 0x46, 0xc0, 0x4, 0x80, 0x7, 0x2, 0xfa, 0x8, 0x1d, 0xe, 0xbc, 0xed, + 0xe1, 0xba, 0x3f, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0x4, 0x4e, 0x60, 0xf3, 0x40, 0xb0, 0xee, 0x8e, 0x87, 0x9e, 0x76, 0x87, 0x5, 0xed, 0x43, 0x41, 0x30, 0x2, 0x25, + 0x40, 0x3c, 0x10, 0x6c, 0x8f, 0xc4, 0xd2, 0xb3, 0xf7, 0x38, 0x1c, 0x9e, 0xbb, 0x9b, 0xd0, 0x16, 0xc4, 0x13, 0xb4, 0x47, 0xa0, 0x4, 0x88, 0x7, 0x2, 0x66, 0xff, 0x22, 0x70, + 0x42, 0x77, 0x3c, 0x1e, 0x17, 0xb4, 0x4f, 0xb, 0x1a, 0x23, 0xc6, 0x24, 0xb0, 0x78, 0x24, 0x38, 0x3a, 0x21, 0xf9, 0xa7, 0x23, 0x5a, 0x77, 0x23, 0x66, 0xd8, 0xc7, 0xf, 0x23, + 0x18, 0x1, 0x68, 0xc8, 0x3, 0x1, 0x6d, 0xcb, 0xb3, 0x17, 0x96, 0xa0, 0xdb, 0x11, 0xd3, 0xed, 0x63, 0x41, 0xa2, 0xc4, 0x5a, 0x14, 0x4, 0xdd, 0xe, 0x0, 0x34, 0xe4, 0x81, + 0xc0, 0x13, 0x82, 0xbf, 0x9, 0x43, 0x7e, 0xb2, 0x7d, 0x5f, 0xd0, 0x1e, 0x1, 0x68, 0xc8, 0xdb, 0x82, 0x9e, 0x13, 0x92, 0x79, 0x65, 0x14, 0xd3, 0xed, 0x43, 0x41, 0x30, 0x2, + 0x25, 0x18, 0x91, 0x50, 0xe9, 0xaa, 0xa0, 0x27, 0x17, 0xb7, 0x8f, 0x5, 0x95, 0x26, 0x14, 0xa, 0x1, 0x4c, 0xa0, 0x24, 0xa1, 0xca, 0x3, 0xc1, 0x20, 0xde, 0x72, 0xf6, 0xc3, + 0x82, 0x3f, 0xa, 0x85, 0x60, 0x7c, 0x2, 0xa5, 0xdb, 0x9, 0x94, 0xcf, 0x4, 0xc4, 0xaa, 0x40, 0xb9, 0xe5, 0xec, 0x93, 0x82, 0xd6, 0x8, 0x40, 0x43, 0x1e, 0x8, 0xd0, 0xed, + 0x88, 0x37, 0x4, 0x5f, 0x5, 0x3d, 0x0, 0x3d, 0x27, 0x1, 0x3, 0xdd, 0x8e, 0x78, 0x43, 0xf0, 0x79, 0xa, 0x7a, 0xba, 0xc6, 0xce, 0xb2, 0x4f, 0xb, 0x7a, 0x49, 0xa9, 0x10, + 0x0, 0x1a, 0xf2, 0x40, 0x80, 0x6e, 0x47, 0xbc, 0x21, 0xf8, 0x2a, 0xe8, 0x1, 0xe8, 0x39, 0x9, 0x18, 0xe8, 0x76, 0xc4, 0x1b, 0x82, 0xcf, 0x53, 0x90, 0x7f, 0x28, 0xeb, 0x16, + 0xb4, 0x4f, 0xb, 0x1a, 0x23, 0x0, 0xd, 0x79, 0x20, 0x88, 0xac, 0x90, 0x8b, 0xda, 0xf, 0xa, 0x8a, 0x60, 0x60, 0x1, 0x68, 0xc8, 0x3, 0x1, 0xba, 0x1d, 0xf1, 0x86, 0xe0, + 0xab, 0xa0, 0x7, 0xa0, 0x21, 0xf, 0x4, 0xe8, 0x76, 0xc4, 0x1b, 0x82, 0xaf, 0x82, 0x1e, 0x80, 0x86, 0x3c, 0x10, 0xd0, 0xdf, 0xa7, 0x39, 0x5b, 0xfc, 0x41, 0x3b, 0xc3, 0x3e, + 0x16, 0xb4, 0x47, 0x0, 0x1a, 0xf2, 0x40, 0xe0, 0x36, 0x1b, 0xcf, 0xf2, 0x3e, 0x83, 0x96, 0x29, 0x78, 0x6b, 0xa2, 0x7d, 0x2c, 0x28, 0x23, 0x12, 0xe4, 0x23, 0x60, 0x2, 0xc0, + 0x3, 0x81, 0xdb, 0xfc, 0xc, 0xd3, 0xdf, 0x4e, 0xa7, 0xd3, 0xd9, 0xd1, 0x32, 0xc5, 0x78, 0x7b, 0xe9, 0x96, 0xa, 0xfa, 0x82, 0x3f, 0x69, 0xfb, 0x72, 0xbe, 0x5c, 0x2e, 0x3c, + 0xc0, 0x15, 0x23, 0x92, 0x4, 0xa7, 0x93, 0xbb, 0x56, 0x12, 0xf4, 0xbc, 0xbb, 0xd, 0xf9, 0x54, 0xf0, 0x46, 0xfe, 0x8f, 0x5c, 0xc0, 0xdb, 0xf, 0x77, 0xbd, 0x9e, 0xaf, 0x5a, + 0xb0, 0x38, 0xa1, 0x6c, 0xfc, 0x89, 0x54, 0x86, 0x7d, 0x11, 0x3f, 0x7d, 0x45, 0xdd, 0x85, 0xb, 0xb2, 0xc3, 0x3f, 0xbc, 0x52, 0x46, 0x20, 0x6b, 0xbe, 0xf7, 0xfd, 0xdd, 0x17, + 0x2c, 0x13, 0x8, 0xff, 0xfe, 0xce, 0xbc, 0x14, 0x2c, 0x78, 0x2f, 0x78, 0xb8, 0xfb, 0x5d, 0xce, 0x88, 0x57, 0x85, 0x80, 0xc8, 0x58, 0xf0, 0x54, 0x72, 0x22, 0x27, 0xfe, 0x7a, + 0xd5, 0x82, 0x55, 0x7b, 0x77, 0x3b, 0xdf, 0x6e, 0x1c, 0xf2, 0x26, 0x4b, 0x8f, 0x50, 0x90, 0xe1, 0xce, 0xdc, 0x4f, 0x2c, 0x6, 0xd3, 0x19, 0x7d, 0xc1, 0x6b, 0x9d, 0x8f, 0x5, + 0xeb, 0x3c, 0x29, 0xee, 0xf7, 0xb3, 0x7b, 0xe3, 0x86, 0xba, 0x91, 0x82, 0xc6, 0xd3, 0x8d, 0xd5, 0x82, 0x82, 0x58, 0xb0, 0x11, 0x2f, 0x16, 0xbc, 0xa5, 0x7c, 0x56, 0x90, 0xde, + 0x4f, 0x5f, 0xb0, 0x31, 0xe1, 0x2c, 0xfd, 0xda, 0x5, 0x99, 0xe7, 0x82, 0x34, 0x46, 0xb7, 0xa, 0x90, 0x82, 0x9e, 0x6e, 0xab, 0xa0, 0x14, 0xe0, 0xfa, 0xa8, 0x60, 0xd3, 0xde, + 0x91, 0x7d, 0xc1, 0x3f, 0x55, 0x90, 0xe2, 0xf3, 0x1, 0x1a, 0x27, 0x28, 0xbc, 0x51, 0xf0, 0x7e, 0x27, 0x8e, 0x1a, 0xe, 0x5f, 0x50, 0x4a, 0x27, 0x5, 0xe4, 0x8, 0x2b, 0x34, + 0x9, 0x60, 0x41, 0xf2, 0x98, 0x53, 0xd0, 0x85, 0x2, 0x92, 0x43, 0x37, 0x53, 0x8c, 0x2c, 0x78, 0xab, 0x1f, 0xa1, 0xe4, 0x27, 0xe7, 0xe6, 0x3b, 0x3a, 0xa2, 0x20, 0x7f, 0x16, + 0xb, 0xfe, 0x99, 0x82, 0x9c, 0x5f, 0xb, 0x56, 0x8f, 0xf0, 0x13, 0x14, 0xa4, 0x86, 0x5, 0xff, 0x6c, 0x41, 0xe6, 0x64, 0x90, 0x6e, 0xa6, 0x58, 0xa6, 0xa0, 0x34, 0xac, 0xbd, + 0x21, 0xbf, 0xaa, 0x60, 0xf8, 0xac, 0xe8, 0x6e, 0x2, 0x16, 0xf8, 0x7e, 0xd3, 0xb, 0xd2, 0x3b, 0xd6, 0x3a, 0xc2, 0x5f, 0x54, 0x90, 0x12, 0xf8, 0x24, 0xba, 0x9b, 0x60, 0x64, + 0xc1, 0xc6, 0xd7, 0x68, 0xb0, 0xfd, 0xdf, 0xb, 0xc6, 0x24, 0x25, 0xe4, 0x4b, 0x8, 0x15, 0xfc, 0xe0, 0x7e, 0xb5, 0x82, 0xf1, 0xb9, 0xb5, 0xa, 0xea, 0x9b, 0xc3, 0x64, 0xbb, + 0xe0, 0x9c, 0x2f, 0x99, 0x90, 0xbf, 0x5d, 0xd0, 0x3f, 0x0, 0xa3, 0xa0, 0xa3, 0x13, 0xd4, 0x7e, 0x3, 0x81, 0x77, 0xed, 0xb, 0x36, 0x4, 0x76, 0xc1, 0x59, 0xbf, 0x26, 0x7c, + 0xfe, 0xbe, 0x60, 0x29, 0xe9, 0x1f, 0x80, 0x51, 0x50, 0x3f, 0x62, 0x95, 0xf8, 0xd1, 0xb5, 0xf1, 0x21, 0xc, 0x2, 0xe6, 0x5a, 0x5, 0xf9, 0xe1, 0x4e, 0x2e, 0xa8, 0xbf, 0x5, + 0x39, 0x81, 0x4c, 0x4a, 0x8f, 0x50, 0x82, 0xf7, 0xf, 0xc0, 0x28, 0xb8, 0x6f, 0x9c, 0x5f, 0x6a, 0x3a, 0x28, 0xe8, 0xed, 0x55, 0xc0, 0x5c, 0xd5, 0x9e, 0x35, 0x3c, 0xb9, 0xe0, + 0xcb, 0x82, 0xe4, 0x5c, 0xd8, 0x2b, 0x62, 0x7e, 0x72, 0xf2, 0xa3, 0x94, 0x20, 0xb8, 0xfd, 0x9e, 0xdc, 0x3d, 0xaf, 0x5, 0x6b, 0x11, 0xa4, 0x20, 0x9b, 0x57, 0x48, 0xf5, 0x64, + 0x66, 0x58, 0x50, 0xec, 0x55, 0xc0, 0x5c, 0xd5, 0x9e, 0xbc, 0x69, 0xf0, 0xdc, 0x82, 0x3e, 0x81, 0x9f, 0xe5, 0xf7, 0x19, 0x9c, 0x80, 0x69, 0x7d, 0x0, 0x32, 0x47, 0xa9, 0xc, + 0x54, 0x90, 0xa3, 0x56, 0xcc, 0xd3, 0x87, 0x36, 0xf8, 0xef, 0x28, 0xdf, 0x25, 0x74, 0x28, 0x58, 0x3d, 0x42, 0x5f, 0x90, 0x5, 0xd9, 0xf4, 0x91, 0x5, 0xe3, 0x1, 0xc9, 0xc2, + 0xcf, 0x12, 0x42, 0x10, 0xa, 0x12, 0x4f, 0xbb, 0xa0, 0x60, 0x23, 0x9c, 0x8f, 0x2f, 0x8b, 0xf2, 0x63, 0xda, 0x17, 0xa4, 0x18, 0x9c, 0xae, 0x51, 0x50, 0x1e, 0xde, 0xd4, 0x82, + 0xd2, 0x40, 0xa7, 0xfa, 0xc7, 0x5d, 0x24, 0xf0, 0x34, 0xef, 0x4d, 0x2b, 0x28, 0xd0, 0x15, 0xff, 0x67, 0x9c, 0x76, 0xfc, 0xca, 0xdb, 0x6b, 0x3d, 0xfe, 0x93, 0xcd, 0x28, 0xc8, + 0xff, 0x30, 0x9b, 0xd0, 0xe3, 0xb, 0xa6, 0x9, 0x78, 0x58, 0x96, 0xc0, 0xb3, 0x7e, 0xa3, 0x59, 0x50, 0x45, 0x15, 0x8a, 0xc2, 0x49, 0x3a, 0xf, 0xd6, 0xa4, 0x1b, 0xa9, 0x3d, + 0x2a, 0xc8, 0x7c, 0xc6, 0x8e, 0x2e, 0x68, 0x26, 0xc8, 0x42, 0xb7, 0xb, 0xde, 0x3f, 0x3e, 0xee, 0x75, 0x86, 0xdd, 0x12, 0x3b, 0x5a, 0x36, 0xec, 0x8d, 0x82, 0x22, 0xb3, 0xb, + 0xa6, 0xd0, 0x3d, 0x85, 0x9d, 0x20, 0x47, 0xed, 0x7e, 0x81, 0x27, 0xea, 0x4c, 0x56, 0x48, 0xcc, 0xab, 0xc2, 0x98, 0x51, 0x97, 0x3, 0xc, 0xe8, 0xac, 0x20, 0x1b, 0xef, 0xf5, + 0x67, 0x6e, 0x31, 0x3e, 0x41, 0x64, 0x75, 0x95, 0xa0, 0xea, 0xec, 0xc1, 0xfe, 0xa9, 0xbd, 0x6d, 0xde, 0x30, 0x61, 0xc, 0x66, 0xc, 0xb, 0x86, 0x86, 0xba, 0xa9, 0xc8, 0x9e, + 0x8b, 0x2c, 0x5a, 0x23, 0xc2, 0xc, 0x5d, 0x25, 0x8, 0xfe, 0xba, 0xcc, 0x90, 0x1a, 0x62, 0xf3, 0x86, 0x9, 0xa1, 0x98, 0xf1, 0x78, 0xfc, 0xb, 0xb7, 0xf7, 0x2e, 0x64, 0x30, + 0x7b, 0xee, 0x74, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto kolyah35_data_size = 0x76c; + +inline uint8_t fullharmony_data[0x582] = {0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x41,0x8,0x3,0x0,0x0,0x0,0xff,0xb3,0x58,0x98,0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,0x63,0x50,0x4c,0x54,0x45,0x8a,0x4c,0x0,0x7d,0xa4,0xd7,0x7a,0x47,0xf,0x80,0x45,0x2,0xe5,0xcd,0xbb,0x78,0x43,0x8,0xff,0xff,0xff,0x10,0x10,0x10,0x50,0x6e,0x95,0x41,0x41,0x41,0x5c,0x36,0xb,0x5b,0x89,0xc5,0x21,0x21,0x21,0x58,0x84,0xbd,0x52,0x2e,0x7,0x0,0x0,0x0,0x5b,0x87,0xc0,0x4c,0x6a,0x91,0x54,0x4f,0x51,0x72,0x6a,0x6f,0x77,0x6c,0x72,0xd8,0xc1,0xb0,0x9,0x24,0x76,0xb,0x2a,0x83,0x81,0x65,0x5b,0x8,0x19,0x4f,0xc,0x1a,0x4d,0x4,0x19,0x57,0x4,0x1e,0x67,0xf,0x23,0x64,0x3,0x16,0x4d,0x2,0x12,0x44,0x0,0x0,0x0,0x24,0xc2,0x52,0x69,0x0,0x0,0x0,0x21,0x74,0x52,0x4e,0x53,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x9f,0xc1,0xd0,0x21,0x0,0x0,0x4,0xa0,0x49,0x44,0x41,0x54,0x68,0x81,0xed,0x9a,0x5b,0x6f,0xa3,0x30,0x10,0x85,0x51,0x1f,0x16,0x9,0x21,0xcd,0x5b,0x20,0xb0,0xa4,0xfc,0xff,0x5f,0xb9,0x8c,0x8d,0xc1,0x97,0xb9,0x18,0x3,0x4d,0xb5,0x8a,0xa5,0x46,0x55,0xcf,0xe4,0xcc,0xf9,0xb0,0xcd,0x4d,0xad,0xe6,0xff,0x7c,0x54,0xef,0xe,0xb0,0xf,0xd8,0xc7,0x85,0xae,0xd5,0x81,0x16,0x5a,0x2,0x35,0xa1,0x58,0x0,0x50,0xbb,0x51,0xd6,0x9e,0x2e,0xa8,0xf2,0x5b,0x68,0x9,0x32,0x12,0xa,0x5,0xbb,0x66,0xf4,0xcb,0xec,0x3d,0x40,0xa5,0x85,0x96,0x40,0x4f,0x28,0x15,0x84,0xe2,0x85,0xf6,0x15,0x53,0x90,0x58,0x68,0x9,0xe,0x26,0x24,0x0,0xf7,0x19,0x20,0x16,0x61,0xb1,0x7d,0x0,0x28,0xb5,0xc8,0x48,0x20,0xea,0x4a,0x1,0xd4,0x46,0xb7,0x83,0x5e,0xc1,0x65,0xf6,0x3e,0xa0,0xd8,0x42,0x4f,0x20,0xeb,0x4a,0xc1,0xf2,0x97,0xb6,0x75,0xf9,0xda,0xb,0xed,0x3,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x8c,0xba,0x8d,0xb,0xed,0x23,0x40,0xbe,0x45,0x56,0x2,0x41,0x57,0xa,0x50,0xc5,0x63,0xdf,0xb6,0xf4,0x85,0xa0,0xd8,0x3e,0x4,0x14,0x5a,0xe4,0x24,0x90,0x74,0xa5,0x0,0x57,0x15,0x54,0x5f,0xa8,0x2e,0x9f,0x17,0xda,0x7,0x80,0x52,0x8b,0x8c,0x4,0xa2,0xae,0x14,0x98,0x7c,0x5f,0xd,0x46,0x33,0x9f,0x97,0xd9,0x7,0x80,0x52,0x8b,0x8c,0x4,0xa2,0xae,0x14,0x64,0x2d,0x90,0x12,0xfb,0x8,0xf0,0x9d,0x4b,0x54,0xdd,0xe2,0xe7,0x97,0xe8,0x9b,0x4f,0x32,0xb7,0xd8,0x7f,0x0,0x7f,0xc,0xb0,0xdd,0x65,0xa0,0xee,0x4,0x2f,0x0,0x14,0x5b,0xe8,0x9,0x64,0x5d,0x29,0x58,0xd4,0xd6,0xdd,0x87,0x0,0x79,0xfc,0xa,0xed,0x3,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x0,0x65,0x13,0x11,0x6f,0x48,0x8e,0x7e,0x5b,0x28,0xf0,0x0,0xe5,0x16,0x6a,0x2,0x45,0xcf,0xf0,0xb7,0x77,0xcb,0x40,0xcd,0x4f,0xb9,0x7d,0x15,0x94,0x28,0x2d,0x24,0x59,0xd5,0x75,0x7f,0x58,0x55,0xea,0x2a,0x50,0x6c,0x5f,0x5,0x25,0x4a,0xb,0x51,0x56,0x75,0xa9,0xc0,0xa,0xf5,0x1f,0xfc,0x31,0xe7,0x8,0x6a,0x89,0x14,0xd9,0x57,0x9e,0x2c,0xb5,0xd0,0x12,0xa8,0x9,0xc5,0x2,0xf7,0x24,0xb7,0xa8,0xed,0x1f,0x7b,0x9a,0x38,0x68,0x5f,0x6f,0x6,0x51,0x41,0xb5,0x39,0x88,0x2d,0xb4,0x4,0x19,0x9,0xa5,0x2,0xa8,0x4f,0xda,0xd7,0xac,0xc1,0x6,0x28,0xb7,0x50,0x13,0x28,0xba,0x52,0xb0,0xab,0x6d,0x99,0xfd,0x11,0x40,0xb2,0x45,0x7e,0x2,0x5a,0x57,0xa,0xf0,0xfc,0xe0,0xab,0x70,0xd4,0xbe,0x66,0xb,0x3c,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x7c,0xb5,0x2d,0xb1,0x8f,0x1,0x41,0x4,0x24,0x5a,0x1c,0x49,0x40,0xe9,0x4a,0x81,0x53,0xeb,0x52,0x7b,0x1f,0xb0,0x15,0x1,0x99,0x16,0xb9,0x9,0x38,0x5d,0x29,0x38,0x6d,0x5f,0x6f,0xe3,0xf7,0x2,0xc2,0xfd,0x80,0x42,0x8b,0x9c,0x4,0x92,0xae,0x14,0x9c,0xb6,0xff,0x0,0x7e,0x0,0xef,0x7,0xb4,0x17,0x3b,0x2b,0xde,0x4,0x28,0xb4,0xc8,0x49,0x20,0xe9,0x4a,0xc1,0xa6,0xb6,0x85,0xf6,0x28,0xd1,0x5,0x9,0x20,0xdd,0x22,0x3b,0x1,0xa3,0x2b,0x5,0xa7,0xed,0x37,0xc0,0xa4,0xe0,0x3,0xf8,0x1,0xfc,0x0,0xe6,0x0,0xe2,0x3,0xaa,0xaf,0xc6,0x8f,0xdb,0x17,0x0,0xca,0x2d,0xd4,0x4,0x8a,0xae,0x14,0xe0,0xb,0x77,0xa3,0xee,0xaf,0xc5,0x8e,0xd9,0x27,0x80,0xe9,0x13,0xbd,0x69,0xe1,0x8d,0x68,0x6,0xb5,0x4,0x8a,0xae,0x14,0x78,0xdd,0x1f,0x5d,0xd7,0xf5,0x87,0xed,0x17,0xb0,0x15,0x30,0x2e,0xf0,0x1,0x1,0x9e,0xfd,0xf3,0xf9,0xc4,0x6,0x34,0xa0,0x19,0x5d,0x7,0x3,0x93,0xc0,0xea,0x30,0xa6,0x7a,0x88,0xd0,0x2f,0xbf,0x12,0x4b,0x74,0x18,0xfa,0x61,0x5,0x8c,0x17,0x88,0xdf,0xbe,0x5b,0xaa,0x68,0xc0,0xb5,0xa0,0x27,0x1,0x71,0x3c,0x11,0x10,0x1d,0xfe,0xd2,0x4b,0x74,0x51,0xa6,0xc9,0x2,0x92,0x4b,0x74,0x9a,0x50,0x37,0x80,0xe4,0x12,0x9d,0xe1,0xf5,0x32,0x73,0x4,0xb1,0xbf,0x29,0xd9,0x0,0xbb,0x58,0x73,0x7,0x60,0x18,0x56,0x40,0x7a,0x89,0x8e,0xfd,0x38,0x62,0xc8,0x91,0x58,0xa2,0xc6,0xa6,0x47,0x3e,0x63,0x91,0x74,0x37,0xfa,0x6,0x38,0xd0,0xfa,0x6,0x48,0xeb,0x6,0xb0,0x87,0xc7,0x23,0x25,0x58,0xdb,0xf,0xc,0xa0,0xd5,0x1d,0x20,0x13,0x6f,0x3,0x1c,0x7d,0x3d,0x0,0x7c,0x3e,0x57,0x40,0xa6,0x43,0x6f,0xf8,0x78,0x40,0xd4,0x11,0x70,0x69,0xc3,0x0,0xf6,0x78,0x74,0x39,0x40,0x3,0x80,0xf8,0x1a,0x20,0x6b,0xf,0x3d,0x2,0x6,0x7a,0xe5,0xeb,0x1a,0xe0,0x34,0x99,0x9,0x14,0x66,0xd0,0xe8,0x2,0xe0,0xeb,0x35,0x1a,0x42,0xf2,0xc5,0xae,0x1,0x30,0x53,0x48,0xbf,0x58,0x56,0x1,0x17,0x8f,0x33,0x80,0xe0,0x0,0x4c,0x8e,0x72,0xc0,0x91,0x9e,0x42,0x93,0x5f,0x5a,0xa3,0x19,0x80,0xb3,0x3d,0xb,0x95,0x2,0x4e,0x3b,0x20,0x39,0x85,0xbf,0x0,0x70,0x3e,0xd,0xd8,0xdd,0xe,0xc8,0xae,0xd1,0x9f,0x2,0x74,0x7b,0x85,0x2e,0xb0,0x7c,0xe5,0x80,0xeb,0xa5,0x9e,0xa,0xf0,0x43,0x80,0x0,0x6b,0x92,0x62,0x40,0xe6,0x34,0xea,0x6c,0xdf,0xe,0x38,0x73,0x80,0x90,0x3,0xf8,0x8d,0x7c,0x14,0x20,0x68,0x80,0x70,0xf7,0x49,0xc6,0xe5,0xe7,0x1,0xd7,0x19,0xe6,0x1,0xc1,0xde,0xc9,0x3c,0xa8,0x3d,0xe6,0xb6,0xa0,0x3,0x64,0xa,0x6e,0xbc,0x4c,0xb8,0x2d,0xb8,0x6d,0x96,0xc4,0xdc,0xe9,0x2,0x20,0x70,0xe7,0x10,0xd8,0x5c,0x99,0x4d,0x8,0x19,0x80,0x78,0x70,0x8b,0x1,0xc1,0x4d,0xd0,0x7e,0xac,0xc3,0xe0,0xfb,0x1,0x10,0x0,0x1b,0x66,0xfe,0x7c,0xd3,0x4,0xd0,0xda,0xf,0xa,0x20,0xd6,0x8c,0x3a,0x60,0xc7,0x2,0xba,0xfc,0x73,0x7a,0x96,0x81,0xa6,0x1,0x37,0x81,0x2b,0x20,0x7d,0xab,0xb3,0x0,0x4a,0xd7,0x0,0xbb,0x2c,0x52,0x40,0x63,0xbf,0x16,0x58,0x40,0xca,0xa1,0xb1,0x9b,0xe3,0x1c,0xa0,0x4d,0x40,0x1,0x4e,0xfb,0x1,0x60,0x37,0x21,0xd8,0xa8,0xd4,0xf2,0xf0,0x3c,0x93,0xdb,0x51,0xfc,0xd6,0x30,0x78,0x80,0xe4,0x14,0x5a,0x40,0x2c,0x18,0xb,0x0,0xb7,0x9,0x9a,0x25,0x40,0x3b,0x39,0xa,0x20,0x13,0x6e,0xdf,0xd7,0xc9,0x36,0xdd,0x1,0x41,0x4,0x6c,0xd6,0xe7,0xc1,0x22,0x40,0x43,0xd0,0xb9,0x4,0xd1,0x59,0x66,0x5,0xec,0xec,0xe4,0x94,0x1,0x7a,0x8f,0x88,0xe6,0x66,0xbc,0xd9,0xfd,0x1d,0xe0,0xfa,0x4c,0x2a,0x0,0xce,0xe6,0x99,0x2e,0x58,0xc1,0xf9,0x80,0x7e,0x2,0x6c,0x16,0x24,0x0,0x4f,0x66,0x1,0xc1,0xaf,0x8a,0xc3,0x35,0x10,0xd4,0xf9,0x7f,0xf0,0xed,0x35,0xc0,0x78,0xb,0xe6,0x3,0x8a,0x9,0xc2,0x37,0x48,0x2c,0xe0,0xeb,0xfb,0xfb,0x45,0x2b,0xe8,0xe6,0xd9,0x35,0xd,0x67,0x2f,0x0,0xda,0x77,0x6,0x22,0xa0,0x3f,0x8e,0x24,0x48,0x3b,0xf1,0xff,0x29,0xc4,0x28,0xe1,0x8c,0x99,0x6e,0xcc,0x2a,0x67,0x4d,0xe8,0x1e,0x55,0x44,0xb1,0x38,0xdb,0x4f,0x88,0xbe,0x97,0x9b,0x60,0x53,0x19,0x81,0x54,0xec,0xee,0xf4,0xea,0x64,0x73,0xc6,0x84,0xec,0x51,0x11,0x5f,0xa6,0xa6,0x27,0x38,0x2e,0xca,0x41,0xe4,0xa6,0xd7,0xf9,0x93,0x5f,0x8a,0xec,0x65,0x73,0x76,0xf5,0xa4,0x3d,0xfe,0x1,0x1a,0xe7,0x3b,0x40,0x89,0x1,0x1e,0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82}; + +constexpr auto fullharmony_data_size = 0x582; + +inline uint8_t level_data[0x1a2c] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x1, 0x40, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xcd, 0x90, 0xa5, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x19, 0xe6, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0xdd, + 0x7d, 0x90, 0x1c, 0x75, 0x9d, 0xc7, 0xf1, 0xcf, 0x84, 0xdd, 0x48, 0x42, 0x1e, 0xd8, 0x54, 0x9e, 0x80, 0x25, 0x24, 0x2c, 0xe4, 0x1, 0x82, 0x87, 0xc9, 0x21, 0xb5, 0x90, 0x32, + 0xd6, 0xe9, 0xe9, 0x71, 0x70, 0x8a, 0x7, 0xc8, 0x83, 0x85, 0x88, 0x45, 0x21, 0x85, 0x8, 0x48, 0x2a, 0xc8, 0x89, 0xca, 0xa1, 0x15, 0xf, 0x2e, 0x95, 0xa8, 0x78, 0xde, 0x9, + 0x7a, 0x97, 0x3, 0xa, 0x30, 0x24, 0x88, 0x27, 0x1, 0x4e, 0x4a, 0x28, 0xf1, 0x84, 0x54, 0xa0, 0x88, 0x41, 0x36, 0x84, 0x24, 0x6c, 0x1e, 0x37, 0x3c, 0x24, 0x21, 0xb0, 0xd9, + 0xcd, 0x6e, 0xc8, 0xcc, 0x4e, 0xdf, 0x1f, 0x33, 0xbf, 0xde, 0x9e, 0x9e, 0xee, 0x99, 0xe9, 0x9e, 0xee, 0xe9, 0x99, 0xdd, 0xf7, 0xab, 0x5c, 0x99, 0xe9, 0xfe, 0x75, 0xff, 0x7a, + 0x93, 0xdd, 0x4f, 0xbe, 0xdd, 0xbf, 0x5f, 0xf7, 0xa4, 0xe6, 0xcd, 0x3b, 0xcb, 0xea, 0xed, 0xed, 0xd1, 0xe1, 0xc3, 0xfd, 0x6a, 0x6b, 0x6b, 0x53, 0x77, 0x77, 0x8f, 0x2a, 0x15, + 0x66, 0x3b, 0xf7, 0x36, 0x53, 0xfb, 0xf, 0x56, 0xdc, 0x5f, 0x1c, 0x9e, 0xda, 0xb4, 0x39, 0x95, 0xe8, 0x1, 0x54, 0xa1, 0xad, 0xad, 0xcd, 0xea, 0xec, 0xec, 0x6c, 0xd8, 0xe3, + 0x7, 0x92, 0xd6, 0xd4, 0xdb, 0x5b, 0x18, 0x5c, 0xee, 0xf7, 0x95, 0xa, 0xb3, 0x5d, 0x6f, 0x6f, 0x8f, 0xda, 0x4f, 0x3a, 0x3e, 0x54, 0x7f, 0xa5, 0xac, 0xed, 0x7a, 0x4b, 0xed, + 0xad, 0x95, 0xed, 0xf7, 0xa9, 0x4d, 0x9b, 0x23, 0xef, 0xbf, 0x16, 0xda, 0xda, 0xda, 0xac, 0x51, 0xa3, 0x46, 0x11, 0x82, 0x40, 0x15, 0x9a, 0xe, 0x1f, 0xee, 0xb7, 0xdf, 0x74, + 0x76, 0x76, 0x86, 0xda, 0x49, 0x98, 0xed, 0xcc, 0x36, 0x5d, 0x87, 0xe, 0x85, 0xea, 0xd3, 0xcf, 0x7b, 0x87, 0x6, 0xbf, 0x9f, 0x28, 0xf7, 0xbd, 0x7a, 0xde, 0x3c, 0xcb, 0xbc, + 0xbe, 0x78, 0xfd, 0xfa, 0xa2, 0xc0, 0x59, 0x3d, 0x6f, 0x9e, 0xe5, 0xb5, 0x3c, 0x4e, 0x93, 0x26, 0x4d, 0xd6, 0xae, 0x5d, 0x3b, 0x6b, 0xd9, 0x25, 0x30, 0xa4, 0x34, 0xb5, 0xb5, + 0xb5, 0x15, 0x2c, 0x70, 0x86, 0x99, 0x7b, 0x5d, 0x29, 0x41, 0xb7, 0xb, 0x1b, 0xb6, 0x49, 0x31, 0xe1, 0xb6, 0x7a, 0xde, 0x3c, 0xcb, 0x84, 0x61, 0xad, 0x3, 0xcf, 0x30, 0xd5, + 0x9f, 0x24, 0x51, 0x5, 0x2, 0xe1, 0x35, 0xb9, 0xaf, 0xdd, 0x1d, 0x7d, 0xf4, 0xa8, 0x50, 0xd7, 0x3, 0x83, 0x6e, 0x67, 0xda, 0x37, 0xa2, 0xf9, 0xb, 0x7b, 0xf5, 0xca, 0xf3, + 0x63, 0xa, 0xaa, 0xbe, 0xa4, 0xc2, 0x10, 0x40, 0x78, 0x23, 0x92, 0x3e, 0x80, 0x46, 0x35, 0x7f, 0x61, 0xaf, 0xa4, 0xc2, 0x53, 0x63, 0x27, 0x67, 0xa5, 0x18, 0x87, 0x49, 0x93, + 0x26, 0x17, 0xfc, 0xb7, 0xde, 0xc4, 0xf9, 0xbd, 0x3, 0x51, 0x21, 0x0, 0xab, 0x30, 0x7f, 0x61, 0xaf, 0xe6, 0x2f, 0xec, 0x2d, 0xfa, 0x65, 0x8f, 0xf3, 0x14, 0xd9, 0x79, 0xfa, + 0x6b, 0x98, 0xd3, 0xe0, 0xa8, 0xfb, 0x72, 0xab, 0x24, 0xd4, 0x4c, 0xf0, 0x53, 0x11, 0xa3, 0x11, 0x14, 0x8d, 0x2, 0x3b, 0xd5, 0x62, 0x44, 0xd8, 0x39, 0x68, 0x11, 0xb5, 0xa8, + 0xf6, 0xed, 0x3e, 0xd5, 0x5d, 0xad, 0x79, 0xd6, 0xfc, 0x85, 0xbd, 0x9a, 0x7e, 0xd7, 0x65, 0xda, 0x71, 0xdb, 0xaf, 0x8a, 0xda, 0xf, 0xe5, 0x5f, 0xfe, 0x4a, 0xc2, 0x7d, 0x28, + 0x7f, 0xff, 0x18, 0x5a, 0x52, 0xd3, 0xa6, 0x9d, 0x94, 0xe8, 0xa9, 0xca, 0xdc, 0x63, 0x8e, 0x4e, 0xb2, 0xfb, 0x8a, 0xe7, 0x1, 0x3a, 0x43, 0x70, 0xf5, 0xbc, 0x5c, 0x0, 0x4a, + 0xd2, 0xf4, 0xbb, 0x2e, 0xd3, 0x63, 0xed, 0x6b, 0x6a, 0xf2, 0x4b, 0x6f, 0xaa, 0x3f, 0xaf, 0xd3, 0xde, 0x7d, 0xfb, 0xf6, 0xaa, 0xbf, 0xbf, 0x5f, 0xb5, 0x18, 0xc, 0xf1, 0xb, + 0xc1, 0xa4, 0x7, 0x87, 0x80, 0xa0, 0x8a, 0x46, 0x81, 0xfd, 0x84, 0x1d, 0x1d, 0x2e, 0xb7, 0x7d, 0x7b, 0x53, 0xf9, 0xfc, 0xd, 0x32, 0xaf, 0x2f, 0xa8, 0x4a, 0xe7, 0x1, 0x7a, + 0xfd, 0x52, 0x4f, 0xbf, 0xeb, 0x32, 0x49, 0xb9, 0x53, 0xe1, 0xd5, 0x1a, 0x1e, 0xa7, 0x7d, 0x26, 0xfc, 0x5f, 0x79, 0x7e, 0x4c, 0x45, 0xcb, 0x81, 0x7a, 0x56, 0x34, 0xa, 0xec, + 0x27, 0xec, 0xe8, 0x70, 0xb9, 0xed, 0xbb, 0x8e, 0x2e, 0x9d, 0x19, 0x71, 0xcd, 0xeb, 0xb, 0xcb, 0xfc, 0xa2, 0x9b, 0xf0, 0x1b, 0xae, 0x3e, 0xff, 0x87, 0x26, 0x69, 0x5c, 0xe5, + 0xcb, 0x81, 0x7a, 0xc4, 0x20, 0x48, 0x85, 0xda, 0xda, 0xda, 0x2c, 0x33, 0xd0, 0xe0, 0xe, 0x3f, 0xf3, 0xde, 0xd9, 0x26, 0x8e, 0xfe, 0xfd, 0x4e, 0x7f, 0xa5, 0xdc, 0x68, 0x70, + 0x2d, 0x6, 0x43, 0x2e, 0x5e, 0xbf, 0x3e, 0xd5, 0x7a, 0xe7, 0xb1, 0x6a, 0x1e, 0xf7, 0x52, 0xd1, 0xbf, 0x5c, 0x7e, 0xcb, 0x81, 0x7a, 0xd5, 0x94, 0xf4, 0x1, 0x34, 0x82, 0xb6, + 0xb6, 0x36, 0x6b, 0xe4, 0xc8, 0x51, 0xca, 0x8d, 0xbe, 0xe, 0xf8, 0xb6, 0x1b, 0x3f, 0x7e, 0x82, 0xfa, 0xfb, 0xfb, 0x23, 0x9b, 0x98, 0xec, 0xc, 0x33, 0x77, 0xf8, 0xed, 0xdb, + 0xb7, 0xd7, 0x7e, 0xed, 0x9c, 0x12, 0xb3, 0x6f, 0xdf, 0xde, 0x82, 0xed, 0xe2, 0xb8, 0x26, 0xd8, 0x3c, 0xee, 0xa5, 0xa2, 0x65, 0x17, 0xaf, 0x5f, 0x9f, 0xd2, 0x38, 0x31, 0xf5, + 0x5, 0xd, 0xa5, 0xe4, 0x28, 0xb0, 0x9f, 0xb0, 0xa3, 0xc3, 0x9e, 0xdb, 0x1f, 0x5d, 0xdf, 0xe7, 0x4b, 0x85, 0xe1, 0x57, 0x9e, 0x69, 0x17, 0x36, 0x4, 0xdd, 0xa1, 0x67, 0xb8, + 0xc3, 0xaf, 0xa3, 0xa3, 0xc3, 0xde, 0xf7, 0xdc, 0xb9, 0x73, 0x2d, 0x77, 0x8, 0x7a, 0xed, 0x2f, 0xaa, 0x30, 0xdc, 0xfe, 0xcd, 0x99, 0x9a, 0xf1, 0xa3, 0x2d, 0xee, 0x65, 0xa6, + 0x1f, 0x6b, 0xc6, 0x8f, 0xb6, 0x50, 0x5, 0xa2, 0x21, 0x34, 0x5, 0xbd, 0x1b, 0xa3, 0xda, 0x5b, 0xd8, 0x8a, 0xb7, 0xaf, 0xdf, 0x0, 0xc, 0x1a, 0x7e, 0x46, 0x98, 0x10, 0x34, + 0x41, 0xe5, 0x17, 0x7a, 0x86, 0x3b, 0xfc, 0x24, 0xa9, 0xa3, 0xa3, 0x23, 0xe5, 0xe, 0x41, 0x67, 0x7b, 0x77, 0x1f, 0xd5, 0x4, 0xa1, 0x23, 0xe8, 0x8a, 0xcc, 0xf8, 0xd1, 0x96, + 0x54, 0xa9, 0xf5, 0x7e, 0xee, 0x3b, 0x7b, 0x62, 0xdd, 0x57, 0x8e, 0xd7, 0xae, 0xdb, 0x4f, 0xa8, 0xf, 0x41, 0xf6, 0x28, 0x70, 0xb5, 0xa3, 0xbc, 0x61, 0xf7, 0xf1, 0xde, 0x81, + 0x7d, 0x15, 0xef, 0x3f, 0xce, 0x39, 0x83, 0x5e, 0x3a, 0x3b, 0x3b, 0x53, 0xee, 0x60, 0xfa, 0xa1, 0x8e, 0x92, 0xda, 0xd7, 0xe8, 0xa2, 0xb5, 0x17, 0xd8, 0xed, 0x1e, 0x6b, 0x5f, + 0x93, 0x5b, 0x9e, 0xd7, 0xdf, 0xdf, 0xaf, 0x23, 0x47, 0x2a, 0x9f, 0x92, 0x52, 0xee, 0xfa, 0x5e, 0x35, 0xdc, 0xfb, 0x34, 0xa7, 0xc8, 0x61, 0x43, 0x30, 0x6c, 0xc8, 0xf9, 0x31, + 0xe1, 0x37, 0x37, 0x86, 0xa7, 0x2, 0x45, 0xa5, 0x63, 0xe7, 0x5b, 0xba, 0xef, 0xec, 0x89, 0x16, 0x21, 0x38, 0xf4, 0xd8, 0xa3, 0xc0, 0xd5, 0x8e, 0xf2, 0x86, 0xdd, 0xc7, 0xa8, + 0x23, 0x47, 0x2a, 0x6a, 0xb7, 0xb6, 0xeb, 0xad, 0x50, 0xc7, 0x54, 0x2d, 0x13, 0x82, 0x47, 0x8e, 0xf4, 0xcb, 0x54, 0x83, 0x3f, 0xd4, 0x51, 0xba, 0x28, 0xbf, 0x7e, 0x7e, 0xfb, + 0xd3, 0x52, 0x3e, 0xfc, 0x4c, 0xf0, 0x99, 0xed, 0x82, 0xf6, 0xb1, 0x6b, 0xd7, 0xce, 0xb2, 0x15, 0x60, 0x50, 0xce, 0xa, 0xb0, 0xbf, 0x3f, 0xf8, 0xb1, 0x5, 0x11, 0x36, 0x18, + 0xeb, 0x39, 0xfc, 0xa4, 0xdc, 0xf1, 0x75, 0xec, 0x4c, 0xe6, 0xe7, 0xf, 0xf1, 0x4a, 0x7c, 0x10, 0x24, 0x8e, 0xf9, 0x7d, 0x51, 0x3f, 0xf, 0xd0, 0x19, 0x82, 0x26, 0x8, 0x4f, + 0x3b, 0xf3, 0xd7, 0x5, 0x6d, 0x4c, 0xf0, 0x99, 0xf6, 0xc1, 0x8e, 0x78, 0x70, 0x1b, 0xe7, 0x35, 0x3b, 0xbf, 0x81, 0x8e, 0xb9, 0x73, 0xe7, 0x5a, 0x7e, 0xd7, 0x0, 0xdd, 0xdb, + 0x99, 0xd0, 0xb, 0x7b, 0x5c, 0x95, 0x32, 0xd7, 0xfd, 0xa2, 0xac, 0xe, 0x81, 0xb8, 0x25, 0x1e, 0x80, 0x8d, 0xf2, 0x3c, 0x40, 0x67, 0x40, 0x39, 0xc3, 0xce, 0xab, 0x4d, 0x14, + 0xfd, 0x98, 0xbe, 0xcc, 0xeb, 0x7d, 0xfb, 0xf6, 0x16, 0x85, 0xa0, 0x59, 0xe7, 0xe, 0xbf, 0x38, 0x43, 0xcf, 0x4, 0xdc, 0xf6, 0x6f, 0xce, 0x2c, 0x18, 0xec, 0x20, 0xf8, 0xd0, + 0x88, 0x3c, 0x47, 0x81, 0xab, 0x1d, 0xe5, 0xd, 0xb4, 0x8f, 0x3a, 0x1f, 0x5, 0x76, 0xf3, 0xaa, 0xd4, 0xe2, 0xaa, 0xac, 0xdc, 0x61, 0xe8, 0xe, 0x41, 0xb7, 0xa8, 0x6f, 0x87, + 0xb3, 0x2c, 0xab, 0x20, 0xd4, 0x76, 0xdc, 0x32, 0x4b, 0xd3, 0x97, 0xf, 0x56, 0xcc, 0xd6, 0x72, 0x59, 0xee, 0x65, 0x92, 0xb4, 0x5d, 0xb3, 0xac, 0xe9, 0xcb, 0x37, 0xeb, 0xb1, + 0xf9, 0xf3, 0x75, 0xd1, 0x2b, 0xaf, 0x28, 0x95, 0x4a, 0x71, 0xed, 0xc, 0x75, 0x29, 0xf1, 0x7b, 0x81, 0xcf, 0x6b, 0x9d, 0x12, 0xe9, 0xfe, 0xde, 0x3b, 0xd4, 0xaf, 0xbe, 0x23, + 0x47, 0xd4, 0xde, 0x7a, 0x7c, 0x45, 0x15, 0xe0, 0xbd, 0x2f, 0x6, 0x9f, 0xb8, 0x7b, 0xf5, 0xd5, 0x57, 0x5b, 0x73, 0x4f, 0x3b, 0xcd, 0x7e, 0xdf, 0xf1, 0xfa, 0xeb, 0x5a, 0xb1, + 0x62, 0xc5, 0x90, 0xb9, 0x17, 0xd8, 0x1d, 0x7c, 0xd5, 0x30, 0x1, 0xb9, 0xe5, 0xfe, 0xaf, 0x69, 0xd6, 0x57, 0xee, 0x2b, 0x3a, 0xb6, 0x46, 0x18, 0x1, 0x36, 0x18, 0x4, 0x19, + 0x7a, 0x2a, 0xba, 0x17, 0x38, 0xae, 0xfb, 0x80, 0x25, 0x49, 0x1f, 0xf6, 0x6, 0xde, 0x5f, 0xd2, 0x56, 0xac, 0x58, 0x91, 0xaa, 0x45, 0x5, 0x98, 0x4, 0x67, 0xf8, 0x99, 0xf0, + 0xf2, 0xaa, 0xf2, 0x32, 0x3d, 0x67, 0xab, 0x69, 0xec, 0x3a, 0xb9, 0xdb, 0xba, 0x99, 0x65, 0x33, 0xaf, 0xba, 0x57, 0xd6, 0x55, 0xf7, 0x5a, 0x5e, 0xd5, 0xa0, 0x19, 0x4, 0xe9, + 0xd8, 0xf9, 0x56, 0x5d, 0x85, 0xcc, 0x7d, 0x67, 0x4f, 0xb4, 0x9c, 0xc7, 0x86, 0xa1, 0xa7, 0xa2, 0x7b, 0x81, 0xe3, 0xba, 0xf, 0x38, 0xb7, 0xb2, 0x6e, 0x7e, 0xde, 0xe1, 0x90, + 0x3b, 0x7d, 0xcd, 0x85, 0x97, 0x33, 0xd8, 0x4c, 0xd0, 0x39, 0xc3, 0xcf, 0xd9, 0xc6, 0x2f, 0x8, 0x81, 0x7a, 0x94, 0xf8, 0x20, 0x48, 0x23, 0x3c, 0xf, 0xb0, 0x5e, 0x98, 0xd1, + 0x68, 0xe7, 0xb5, 0x40, 0x29, 0x9e, 0x47, 0x61, 0x5d, 0xf4, 0xca, 0x2b, 0x9e, 0xcb, 0xcb, 0x85, 0x1b, 0xe1, 0x17, 0x4c, 0xd2, 0x97, 0xa0, 0x1a, 0xdd, 0xae, 0x5d, 0x3b, 0xab, + 0xfa, 0x99, 0x4f, 0x3c, 0x0, 0xfb, 0x2a, 0x9c, 0x7, 0x18, 0x54, 0x52, 0xf3, 0x6, 0x87, 0xaa, 0x2d, 0xf7, 0x7f, 0x4d, 0x33, 0xaf, 0xba, 0xd7, 0x73, 0x9d, 0x19, 0xec, 0xf0, + 0x62, 0x2a, 0xc2, 0x52, 0x6d, 0xe0, 0x7d, 0x69, 0xa9, 0xd4, 0xa5, 0xa3, 0x72, 0x97, 0xa5, 0xfc, 0xd6, 0x57, 0x72, 0x39, 0x2b, 0x68, 0x9b, 0xa0, 0xc7, 0x50, 0x4e, 0x98, 0xfe, + 0xc3, 0xa, 0x7c, 0x2f, 0x70, 0xa4, 0xf7, 0x1, 0x4b, 0x15, 0x7d, 0x2e, 0x70, 0x3d, 0x3c, 0xf, 0xb0, 0x5e, 0x38, 0xef, 0x4e, 0x31, 0xa2, 0xac, 0xfe, 0xbe, 0x7e, 0xde, 0x39, + 0x3a, 0x75, 0x9c, 0xf7, 0x43, 0x82, 0x9e, 0x7a, 0x6a, 0x81, 0xf7, 0x46, 0xa7, 0x8c, 0xd2, 0x8f, 0x2f, 0xf5, 0x59, 0xa7, 0x49, 0xd2, 0xa5, 0xb, 0xa4, 0x53, 0x46, 0xe9, 0xeb, + 0xe7, 0x9d, 0x13, 0xc5, 0x21, 0xe, 0x39, 0x7e, 0x97, 0x96, 0x4a, 0x5d, 0x3a, 0x2a, 0x77, 0x59, 0xca, 0x6f, 0x7d, 0x25, 0x97, 0xb3, 0x82, 0xb4, 0x9, 0x7b, 0xfc, 0xa5, 0x4, + 0xed, 0xbf, 0x1a, 0x81, 0xee, 0x5, 0x8e, 0xfe, 0x3e, 0xe0, 0xf2, 0x73, 0xf5, 0xea, 0xed, 0x79, 0x80, 0xf5, 0xc2, 0x9c, 0x6, 0x3b, 0x27, 0x3d, 0xa3, 0x71, 0x95, 0x2b, 0x2c, + 0xaa, 0xf9, 0xe8, 0xa, 0xbf, 0xf5, 0x95, 0x14, 0x33, 0x95, 0x16, 0x3c, 0xd5, 0x1c, 0x7f, 0x1c, 0xdb, 0x55, 0xaa, 0xa9, 0xad, 0xad, 0xad, 0x66, 0x9f, 0x5, 0xec, 0xb9, 0x4d, + 0x3, 0x8e, 0x2, 0xf, 0x55, 0xcb, 0x96, 0x2e, 0xb5, 0x3a, 0x9f, 0xfd, 0x75, 0xf9, 0x86, 0x55, 0xf6, 0xb1, 0x68, 0xf1, 0x62, 0x46, 0xbe, 0x1c, 0xca, 0x15, 0x16, 0xa5, 0xd6, + 0x87, 0xdd, 0xb6, 0x92, 0x62, 0xa6, 0xd2, 0x82, 0xa7, 0x9a, 0xe3, 0x8f, 0x63, 0xbb, 0x20, 0x9a, 0xba, 0xbb, 0x7b, 0x6a, 0xf6, 0x59, 0xc0, 0x92, 0x34, 0x71, 0xe2, 0x64, 0xed, + 0xdf, 0xbf, 0x77, 0x70, 0x1b, 0x46, 0x81, 0x3, 0x73, 0x9e, 0x6, 0x47, 0x75, 0xfa, 0xbb, 0x6c, 0xe9, 0x52, 0x6b, 0xcd, 0x53, 0x4f, 0x6b, 0xce, 0x47, 0xaa, 0x3f, 0xbe, 0x52, + 0xd6, 0x3c, 0xf5, 0x34, 0x21, 0xe8, 0x21, 0x8a, 0xe9, 0x68, 0x41, 0xa, 0x92, 0x6a, 0xdb, 0x56, 0x72, 0xd, 0xb0, 0x9a, 0x3e, 0x83, 0xf6, 0x1f, 0x56, 0xe2, 0x83, 0x20, 0x8, + 0x2f, 0xae, 0xd3, 0xdf, 0xad, 0x7, 0xb3, 0xb1, 0xec, 0x17, 0xde, 0x2a, 0x2d, 0x20, 0xc2, 0x5e, 0xf7, 0xb, 0xb3, 0xaf, 0x72, 0x6d, 0x2b, 0xb9, 0x6, 0x58, 0x4d, 0x9f, 0x41, + 0xfa, 0xaf, 0x6, 0x1, 0xd8, 0xa0, 0x4c, 0x15, 0x18, 0xd5, 0xe0, 0xc7, 0xa2, 0xc5, 0x8b, 0x53, 0xa6, 0xa, 0x8c, 0xd3, 0x5, 0x7f, 0x7f, 0x9e, 0xa8, 0xfe, 0x8a, 0x45, 0x3d, + 0x18, 0x19, 0x64, 0x7f, 0x51, 0xb4, 0xad, 0xd5, 0x60, 0x6a, 0xd4, 0xd7, 0x4, 0x13, 0xf, 0xc0, 0x20, 0x73, 0xf5, 0x86, 0xda, 0xbc, 0xbe, 0x6a, 0x45, 0x7d, 0x7, 0x8a, 0x9, + 0xc1, 0x28, 0xf7, 0xe9, 0xd5, 0x87, 0x7b, 0x59, 0x3d, 0xdf, 0x65, 0x51, 0x8b, 0x63, 0xb, 0x7a, 0x3a, 0x17, 0xe5, 0x35, 0xb7, 0x28, 0xda, 0x46, 0x7d, 0xfc, 0x51, 0x6f, 0x57, + 0xa, 0xff, 0x12, 0x3, 0xc3, 0xd8, 0xed, 0x5f, 0x3e, 0x21, 0xd1, 0x89, 0xd8, 0x4b, 0x1e, 0xd8, 0x13, 0x34, 0x83, 0xfc, 0x8e, 0x37, 0x54, 0x96, 0x25, 0x5e, 0x1, 0x6, 0x71, + 0xe3, 0xc2, 0x39, 0xd6, 0x3d, 0xcf, 0x6f, 0xf2, 0xfd, 0x46, 0xcb, 0xad, 0xa7, 0xff, 0xc6, 0x96, 0xf4, 0xf7, 0x9f, 0x74, 0xff, 0x71, 0x38, 0xeb, 0x8c, 0x13, 0xa, 0xde, 0xbf, + 0xfc, 0xda, 0x9e, 0xa2, 0x65, 0x95, 0xa, 0xb7, 0xed, 0x9e, 0x20, 0x8d, 0xad, 0x3f, 0x5d, 0xde, 0xea, 0xb9, 0x62, 0xc1, 0x23, 0x5d, 0x96, 0x42, 0x84, 0x60, 0x43, 0xfc, 0x65, + 0xdd, 0xb8, 0x70, 0x8e, 0x9d, 0xfa, 0x33, 0xa6, 0x4c, 0xf0, 0x6d, 0xb7, 0xfd, 0xdd, 0x3, 0xf6, 0xeb, 0x28, 0x7f, 0x10, 0x87, 0x7b, 0xff, 0x49, 0x4b, 0xfa, 0xfb, 0x4f, 0xba, + 0xff, 0x38, 0xed, 0x78, 0xe2, 0xfc, 0x82, 0x8a, 0xea, 0x17, 0xab, 0x36, 0xe8, 0xac, 0x33, 0x4e, 0xd0, 0x99, 0xb3, 0x27, 0x5, 0xde, 0xd7, 0x2f, 0x1e, 0x7f, 0x53, 0x67, 0xcd, + 0x19, 0x1f, 0x68, 0xdb, 0xe9, 0xff, 0xf0, 0x64, 0xa5, 0x7f, 0x4e, 0xbe, 0xe1, 0x27, 0x49, 0xeb, 0x7a, 0x8e, 0xd1, 0xa2, 0x35, 0x9b, 0xa5, 0x80, 0x99, 0xd6, 0x10, 0x7f, 0x49, + 0x46, 0xd2, 0xff, 0x2, 0xf, 0xf7, 0xfe, 0x93, 0x96, 0xf4, 0xf7, 0x9f, 0x74, 0xff, 0x71, 0x88, 0x34, 0x0, 0x43, 0x6c, 0x5b, 0x61, 0x0, 0xda, 0xe1, 0x77, 0xee, 0xc3, 0xbb, + 0xf5, 0xc2, 0x15, 0x27, 0x16, 0x35, 0x58, 0xd7, 0x73, 0x8c, 0x24, 0x5, 0xe, 0xc1, 0x46, 0xfa, 0xcb, 0xa, 0x72, 0xad, 0x22, 0x8e, 0xef, 0x6b, 0xb8, 0xf7, 0x9f, 0xb4, 0xa4, + 0xbf, 0xff, 0xa4, 0xfb, 0x8f, 0x45, 0x23, 0x5, 0xa0, 0x5f, 0xf8, 0x49, 0xe1, 0x3, 0xb0, 0xa1, 0xae, 0x1, 0xf6, 0xbc, 0x54, 0x7e, 0xf2, 0xe4, 0xd8, 0x8f, 0xc7, 0x37, 0x7b, + 0xfc, 0x33, 0x77, 0x2f, 0x29, 0xdb, 0xe6, 0x99, 0x6f, 0xdd, 0x1e, 0x5b, 0xff, 0xb7, 0x1c, 0x77, 0x5c, 0xd9, 0x36, 0xcb, 0xdf, 0x7e, 0x3b, 0xb6, 0xfe, 0x93, 0xb6, 0xe9, 0xba, + 0x39, 0x65, 0xdb, 0xcc, 0xf9, 0xf9, 0xa6, 0xf8, 0xe, 0xe0, 0x7f, 0x2a, 0xc8, 0xc0, 0xcf, 0x37, 0x4c, 0xf6, 0x35, 0x1c, 0xbf, 0xf0, 0xab, 0x86, 0xf7, 0x5d, 0xef, 0x2e, 0xd7, + 0x58, 0x97, 0xf0, 0xc8, 0x1e, 0x0, 0x43, 0x4e, 0x45, 0x15, 0xe0, 0x2f, 0x53, 0xab, 0x3c, 0xff, 0x59, 0x1b, 0xfb, 0x13, 0x59, 0x3d, 0x37, 0xe5, 0xca, 0xcd, 0x6b, 0xac, 0x4b, + 0x2c, 0xbf, 0x76, 0x88, 0x8f, 0x65, 0x59, 0xf6, 0xb9, 0x59, 0x94, 0xff, 0x4a, 0x7d, 0xe2, 0xa3, 0xa7, 0x46, 0xb6, 0xbb, 0x3f, 0xfe, 0x65, 0x2b, 0x3f, 0x17, 0x75, 0xea, 0x17, + 0xab, 0x36, 0x14, 0x2d, 0x7b, 0x79, 0x53, 0xb7, 0x5e, 0x7e, 0x2d, 0xd0, 0xe8, 0xec, 0xe0, 0xb6, 0xaf, 0xed, 0x9, 0xbd, 0x6d, 0x12, 0x22, 0x3b, 0x5, 0x1e, 0xe, 0xe1, 0x37, + 0x22, 0x3d, 0x60, 0xbf, 0x7e, 0xfa, 0xf6, 0xef, 0xda, 0xaf, 0xcf, 0x5b, 0xf2, 0x83, 0x9a, 0xf4, 0x3f, 0x60, 0xc2, 0xce, 0x23, 0xf4, 0x2c, 0xe5, 0xc2, 0x30, 0x4a, 0xed, 0x73, + 0x4e, 0x96, 0x24, 0xb5, 0xcc, 0x3c, 0x53, 0xef, 0x6f, 0xd9, 0x60, 0xff, 0x37, 0x88, 0xb5, 0x9b, 0xb6, 0x45, 0x7a, 0x4c, 0x88, 0x96, 0xff, 0xb4, 0x95, 0xf1, 0xf6, 0xab, 0x6a, + 0xa6, 0xc6, 0x94, 0xdf, 0x47, 0xb2, 0x61, 0x19, 0x3a, 0x0, 0xc7, 0xfe, 0x44, 0xd6, 0xa5, 0x37, 0x5e, 0xa2, 0x95, 0x5a, 0x65, 0x57, 0x81, 0x43, 0xdd, 0x88, 0x4c, 0xe1, 0x3d, + 0xb2, 0xe7, 0xdf, 0x79, 0x67, 0x6e, 0x79, 0x8d, 0xfa, 0x4f, 0x67, 0x73, 0xfd, 0x5b, 0x92, 0x3e, 0xd5, 0xda, 0xaa, 0xdf, 0x77, 0x75, 0xd9, 0xa1, 0xc7, 0x35, 0xa, 0x84, 0x51, + 0xc9, 0x80, 0x85, 0xa9, 0xe8, 0xc2, 0xc, 0x8c, 0x44, 0xb9, 0x8f, 0x38, 0xd4, 0xea, 0x77, 0x77, 0x48, 0x38, 0x2a, 0x9d, 0xb5, 0xbf, 0x24, 0xe9, 0xc9, 0x3b, 0xee, 0xd0, 0x93, + 0x77, 0xdc, 0x51, 0xb4, 0x3c, 0x2e, 0x69, 0xcb, 0xca, 0x7d, 0xe5, 0x83, 0x30, 0x9d, 0xcd, 0xe, 0x2e, 0x73, 0x2c, 0x8f, 0x9a, 0xa9, 0xfa, 0x4a, 0x55, 0x7f, 0x2d, 0x33, 0xcf, + 0x8c, 0xa5, 0x6f, 0x20, 0x4e, 0xa1, 0x2a, 0x40, 0x53, 0xfd, 0xfd, 0x56, 0xab, 0x54, 0xcb, 0x2a, 0xf0, 0x83, 0x9e, 0xb1, 0x71, 0x77, 0x51, 0x92, 0xb3, 0x2, 0xbc, 0xf0, 0xb6, + 0xdc, 0x29, 0xf0, 0x6f, 0xee, 0xfa, 0x41, 0x51, 0x65, 0x18, 0x97, 0x4c, 0x36, 0x9b, 0x3b, 0xd5, 0xcd, 0xbf, 0x3f, 0x6f, 0xda, 0x34, 0xfd, 0x76, 0xe7, 0xce, 0x58, 0xab, 0x40, + 0xf7, 0x69, 0xaf, 0xdf, 0x69, 0x70, 0xd8, 0x53, 0xe4, 0x20, 0x6, 0xb2, 0x96, 0xcc, 0x67, 0xca, 0x99, 0x1f, 0xb6, 0x9a, 0x7e, 0xe4, 0xf0, 0xc0, 0x61, 0x49, 0x52, 0xfa, 0xd3, + 0xb, 0x8b, 0x56, 0x35, 0xff, 0xfe, 0xf9, 0xda, 0x1d, 0x7, 0x22, 0x13, 0xcb, 0x34, 0x98, 0xb8, 0x6, 0x44, 0xba, 0xf3, 0x1, 0x78, 0xf9, 0xe2, 0x7b, 0x8a, 0xd6, 0x3d, 0xb2, + 0xf4, 0xc6, 0xa8, 0xbb, 0x2b, 0xe2, 0xac, 0xf0, 0x1e, 0x5b, 0xb6, 0xc4, 0x73, 0x79, 0x9c, 0xd2, 0x8e, 0x6b, 0x7f, 0xf6, 0xb2, 0x6c, 0x56, 0x17, 0xcd, 0x98, 0xa1, 0xd5, 0xdb, + 0xb7, 0xc7, 0x12, 0x80, 0x26, 0xd8, 0x9c, 0xef, 0xcb, 0xb5, 0x8d, 0x2b, 0x4, 0xfb, 0x1d, 0xff, 0xd0, 0xa4, 0x24, 0x29, 0x95, 0x52, 0x2a, 0xff, 0x5d, 0xd7, 0x24, 0x6, 0xb3, + 0x1f, 0x2a, 0xfd, 0x99, 0xcf, 0xa8, 0x79, 0xdc, 0x4b, 0x45, 0xab, 0xd2, 0x7, 0x17, 0xaa, 0xf9, 0x99, 0x67, 0xaa, 0xda, 0xfd, 0xc1, 0x87, 0x6e, 0xb6, 0xc6, 0x7d, 0xe9, 0xc7, + 0x81, 0xbe, 0x95, 0x83, 0xf, 0xdd, 0x6c, 0x49, 0x52, 0xb9, 0xed, 0x2a, 0x6d, 0x57, 0xa7, 0x52, 0xb, 0x1e, 0xe9, 0xf2, 0xbd, 0x13, 0x24, 0xec, 0x1c, 0x40, 0x29, 0x44, 0x0, + 0x3a, 0xab, 0x3f, 0x49, 0x9e, 0x55, 0x60, 0x5c, 0x3, 0x22, 0xdd, 0xbd, 0x63, 0x75, 0xdd, 0x9d, 0x4b, 0xf4, 0xf3, 0x3b, 0x8a, 0xe7, 0xda, 0x5d, 0xbe, 0xf8, 0x1e, 0xcf, 0xe5, + 0x51, 0x72, 0x56, 0x7a, 0x97, 0xdc, 0xf4, 0x4f, 0x83, 0xcb, 0x63, 0xed, 0x75, 0x50, 0x3a, 0x5f, 0x1, 0x4a, 0xd2, 0xca, 0x6d, 0xb9, 0xc1, 0x5, 0x4b, 0xd2, 0x23, 0xf9, 0xa7, + 0x64, 0xc4, 0x75, 0x1d, 0xd0, 0x1d, 0x68, 0xe5, 0x4e, 0x77, 0xe3, 0xa, 0xc1, 0xbe, 0xfc, 0x3f, 0x34, 0x29, 0xa5, 0x94, 0xfb, 0xdf, 0xe0, 0x77, 0x9c, 0xb2, 0xff, 0x2f, 0x3e, + 0x5e, 0xe1, 0x67, 0xf5, 0x48, 0xa9, 0xb1, 0x52, 0x53, 0xea, 0xa5, 0xdc, 0xfa, 0x10, 0xfb, 0x35, 0xe1, 0xf4, 0xea, 0x13, 0xab, 0xec, 0xd7, 0x92, 0x77, 0x58, 0x39, 0xd7, 0x9b, + 0x6d, 0xdc, 0xcb, 0xcd, 0x76, 0xce, 0x65, 0xce, 0x76, 0x81, 0x43, 0xb0, 0x69, 0x4c, 0xa0, 0xe6, 0x31, 0x49, 0x2d, 0x78, 0xa4, 0xcb, 0x5a, 0x76, 0xc1, 0x2c, 0xcf, 0x95, 0x61, + 0xc2, 0x4f, 0x6a, 0xb0, 0x89, 0xd0, 0xd7, 0xdd, 0xb9, 0x44, 0x2f, 0x3e, 0x74, 0xb1, 0xe7, 0xba, 0x17, 0x1f, 0xba, 0x58, 0xe7, 0x7c, 0x69, 0xb5, 0xa4, 0xa7, 0x62, 0xeb, 0xbf, + 0x56, 0x95, 0x9e, 0x1f, 0x53, 0x1, 0x7e, 0xc9, 0xe3, 0x69, 0xba, 0xf, 0xbc, 0xf9, 0x66, 0xcd, 0x8e, 0xa3, 0xdc, 0xb5, 0xc0, 0xb8, 0x2a, 0xc0, 0x5c, 0x0, 0xa6, 0xf4, 0x77, + 0x8f, 0x6c, 0xb5, 0x97, 0x3d, 0x73, 0xc5, 0x29, 0x45, 0xa7, 0xc5, 0x71, 0x32, 0x81, 0x67, 0xfe, 0xeb, 0x7c, 0x9d, 0x3e, 0x18, 0x7c, 0x7f, 0x7, 0x1f, 0xba, 0xd9, 0x32, 0xe1, + 0xd4, 0x7a, 0xdc, 0x31, 0x76, 0x50, 0x99, 0x75, 0xee, 0xf6, 0xce, 0xf5, 0x66, 0x1b, 0xf7, 0x72, 0x67, 0xa0, 0x7a, 0xb5, 0x33, 0x21, 0x78, 0xf0, 0xa1, 0x9b, 0xad, 0x3, 0xda, + 0xaa, 0x6, 0x92, 0x5a, 0xb4, 0x66, 0x73, 0x72, 0x4f, 0x83, 0x71, 0x57, 0x7f, 0x46, 0xad, 0xaf, 0x5, 0x26, 0xc5, 0x59, 0x1, 0x3e, 0x7c, 0xdf, 0x52, 0xfb, 0xf5, 0x15, 0xd7, + 0x2e, 0xae, 0x49, 0xff, 0x57, 0xb4, 0xb5, 0xe9, 0xfe, 0xad, 0x5b, 0xf5, 0xdf, 0x5b, 0x73, 0x3f, 0xb4, 0x5f, 0x39, 0xf5, 0x54, 0x7b, 0xdd, 0x97, 0x4f, 0x39, 0x45, 0xff, 0xb9, + 0x65, 0x4b, 0x4d, 0x8e, 0xc3, 0x4f, 0xdc, 0xd7, 0x0, 0xfb, 0x32, 0x96, 0x52, 0xb2, 0xf4, 0xf8, 0x25, 0x27, 0xeb, 0xb, 0xab, 0xb6, 0xe5, 0x97, 0x65, 0x7, 0xaf, 0x7, 0xc6, + 0xd6, 0xf3, 0x20, 0x67, 0xe0, 0x49, 0x85, 0x81, 0x98, 0x9, 0x51, 0x82, 0xbf, 0xfa, 0xc4, 0x2a, 0x3b, 0x9c, 0x24, 0x15, 0xbc, 0x76, 0x87, 0x9d, 0x7b, 0xbd, 0xdf, 0x72, 0x67, + 0xa0, 0x7a, 0xb5, 0x33, 0x21, 0xf8, 0xea, 0x13, 0xab, 0xf4, 0xbf, 0x23, 0x5d, 0xd, 0x9a, 0xc6, 0x48, 0x99, 0xde, 0xa2, 0x65, 0x9e, 0xf3, 0xfb, 0xbc, 0xda, 0xba, 0xd7, 0x97, + 0xdb, 0x47, 0x70, 0xf6, 0x5f, 0xb3, 0x65, 0x59, 0x56, 0xaa, 0xca, 0x8b, 0xc0, 0xd, 0x55, 0x1, 0x1a, 0xb9, 0x4a, 0xcf, 0x59, 0xf5, 0xc9, 0xb7, 0x32, 0x8c, 0xd2, 0x51, 0xae, + 0xc1, 0x8e, 0x2b, 0xbf, 0xba, 0x28, 0xb7, 0x3c, 0xf6, 0x9e, 0x73, 0x7e, 0xb9, 0x65, 0x8b, 0xae, 0x99, 0x39, 0xb3, 0x68, 0xf9, 0xbd, 0x9b, 0x37, 0x27, 0x3e, 0xd, 0x26, 0xee, + 0xf0, 0x93, 0xa4, 0x7e, 0x47, 0x5, 0xfe, 0xf0, 0x85, 0xd3, 0x75, 0xc5, 0x6f, 0x76, 0xe8, 0xc2, 0x47, 0xb7, 0xe9, 0x91, 0x2f, 0x4c, 0xaf, 0xc9, 0x29, 0xb0, 0xe4, 0x5d, 0x1, + 0x4a, 0xe1, 0x2b, 0x40, 0xbf, 0x40, 0x2b, 0xb7, 0x2e, 0xec, 0x3e, 0xcd, 0x7a, 0x13, 0xbc, 0x67, 0x1d, 0x7f, 0x6c, 0xc1, 0x3a, 0xff, 0xf9, 0x7a, 0xe3, 0x3d, 0x96, 0xe5, 0x96, + 0x57, 0x3e, 0x4f, 0xd0, 0x6b, 0x1f, 0x75, 0x3c, 0xf, 0xb0, 0x5e, 0xef, 0xee, 0x70, 0x86, 0x5d, 0x2d, 0x82, 0xcf, 0x70, 0x4e, 0x84, 0x96, 0xa4, 0x7, 0xff, 0x6b, 0x99, 0x24, + 0xe9, 0xaa, 0x2b, 0x6f, 0xae, 0x49, 0xff, 0x19, 0xcb, 0xd2, 0x7f, 0x6c, 0xde, 0x6c, 0x8f, 0xfa, 0x5e, 0x3f, 0x7b, 0xb6, 0x7e, 0xf6, 0xc6, 0x1b, 0xb2, 0x24, 0xdd, 0x30, 0x7b, + 0xb6, 0x7e, 0xba, 0x29, 0xc6, 0xfb, 0x60, 0xcb, 0x88, 0x3b, 0xfc, 0x24, 0xc7, 0x35, 0xc0, 0x94, 0x74, 0xcd, 0x9a, 0x5d, 0x5, 0xcb, 0x6b, 0x35, 0x1a, 0xec, 0xc, 0xbc, 0x7a, + 0x51, 0x6e, 0x2, 0xbc, 0x55, 0xf4, 0x42, 0x3a, 0x7e, 0xca, 0x68, 0x65, 0xb3, 0x56, 0xd1, 0xbc, 0xbc, 0x30, 0xf3, 0xf5, 0xea, 0x75, 0x8e, 0x5f, 0x25, 0x4a, 0x5e, 0xbf, 0x77, + 0x87, 0x5f, 0xcf, 0x4d, 0x4a, 0xad, 0xbc, 0x67, 0x95, 0x3e, 0xa7, 0x4b, 0xa, 0xda, 0x7d, 0x4e, 0x97, 0x68, 0xe5, 0x3d, 0xab, 0xe4, 0x75, 0xfa, 0x1b, 0xe5, 0x7d, 0xc4, 0x17, + 0x7c, 0xf2, 0x39, 0x49, 0x83, 0x15, 0xa0, 0xfb, 0xbf, 0x66, 0x7d, 0x5c, 0x46, 0x64, 0xb2, 0xf6, 0x97, 0x24, 0x5d, 0x7d, 0xf9, 0x8d, 0xba, 0xfa, 0xf2, 0x1b, 0x8b, 0x96, 0xc7, + 0xe5, 0xba, 0x59, 0xb3, 0x94, 0xce, 0x66, 0x95, 0xc9, 0xcf, 0xfb, 0x93, 0xf2, 0x73, 0x1, 0xf3, 0xf3, 0xff, 0xbe, 0x31, 0xa7, 0xfc, 0xc3, 0x2, 0x1a, 0x59, 0x5f, 0x3a, 0xab, + 0xbe, 0x4c, 0xd6, 0xe, 0x42, 0xa3, 0x3f, 0x63, 0xa9, 0x2f, 0x9d, 0x2d, 0xa8, 0x10, 0x1b, 0x45, 0x36, 0x6b, 0x15, 0x7c, 0xd, 0x38, 0xbf, 0x6, 0x9c, 0x5f, 0x59, 0xfb, 0x2b, + 0xe3, 0xfa, 0x2a, 0x6c, 0x67, 0x29, 0xe3, 0xfa, 0x72, 0xaf, 0x77, 0xb6, 0x69, 0x54, 0x56, 0x44, 0xb7, 0x3d, 0xc5, 0x7e, 0xa, 0x1c, 0x65, 0x5, 0x69, 0xa6, 0xc1, 0x98, 0x53, + 0x5f, 0xe7, 0x7f, 0x9d, 0xeb, 0xe3, 0xe2, 0x1e, 0x4, 0xa9, 0xf5, 0xa0, 0xc8, 0xf2, 0xd7, 0x5f, 0xd7, 0x2d, 0xa7, 0x9d, 0xa6, 0x65, 0x1b, 0x37, 0xda, 0xff, 0x98, 0x9b, 0x20, + 0xfc, 0xd7, 0x8d, 0x1b, 0x75, 0xeb, 0xe9, 0xa7, 0x47, 0xda, 0x5f, 0xb9, 0xdb, 0xd8, 0xda, 0xe7, 0x9c, 0x5c, 0xd3, 0x5b, 0xdd, 0xcc, 0xf5, 0xbe, 0xdb, 0x9e, 0xcb, 0x7d, 0x4e, + 0xc7, 0xdd, 0x9f, 0x3a, 0x41, 0xdf, 0x7a, 0x76, 0x8f, 0xfa, 0xd2, 0x59, 0xdd, 0xfa, 0xec, 0x1e, 0x2d, 0xfd, 0x54, 0x75, 0xb7, 0x6b, 0x95, 0xd3, 0xbc, 0x7a, 0x89, 0xd2, 0x7, + 0x6f, 0xf7, 0x99, 0x6, 0xf3, 0x71, 0x35, 0xaf, 0x5e, 0x22, 0xe9, 0x6f, 0x3, 0xed, 0xb3, 0x38, 0x84, 0xac, 0xa2, 0x97, 0x65, 0x7f, 0xd3, 0xad, 0xf2, 0x6d, 0xac, 0xc2, 0xff, + 0x6b, 0x68, 0x26, 0xfc, 0xaa, 0xbd, 0xfe, 0x27, 0x85, 0x8, 0xc0, 0x9e, 0x9b, 0x94, 0x5a, 0xa9, 0x55, 0xf6, 0x60, 0x48, 0xa9, 0xea, 0x2f, 0x6a, 0xce, 0x80, 0x33, 0xa1, 0xe7, + 0x3c, 0x5, 0x8e, 0x3b, 0x0, 0x9d, 0x15, 0xde, 0xb5, 0x17, 0x5e, 0x5f, 0xf3, 0xdb, 0x68, 0xd2, 0xd9, 0xac, 0xee, 0xee, 0xe8, 0x28, 0x98, 0xc, 0x6d, 0xaa, 0xbf, 0x6f, 0x9f, + 0x71, 0x46, 0xa4, 0x7d, 0x95, 0x7b, 0x80, 0x81, 0xf3, 0x61, 0x9, 0xb5, 0x7a, 0xd8, 0x41, 0x7f, 0x3a, 0xab, 0xef, 0xff, 0xdf, 0x3b, 0xf6, 0x7b, 0x53, 0x9, 0xde, 0xfa, 0x6c, + 0xee, 0x14, 0xac, 0x2f, 0xee, 0x9, 0xe9, 0xd9, 0xf, 0xd5, 0xfc, 0xe8, 0xf7, 0x94, 0x3e, 0xf8, 0xfd, 0xa2, 0x55, 0xcd, 0x8f, 0x7e, 0x4f, 0xd2, 0x87, 0x81, 0x77, 0x39, 0x30, + 0x50, 0x7c, 0xcc, 0x5e, 0xa7, 0xac, 0xbe, 0x6d, 0x3c, 0xdb, 0xf9, 0x4c, 0x8c, 0xb7, 0x4a, 0xbe, 0x6d, 0x28, 0x51, 0x84, 0x9f, 0x14, 0x20, 0x0, 0xeb, 0xe1, 0x7a, 0xe0, 0x7, + 0xbd, 0x63, 0x75, 0xd9, 0xe2, 0x9f, 0x24, 0xd6, 0x7f, 0x3d, 0x4c, 0x83, 0x91, 0xa4, 0xef, 0x9c, 0x71, 0x86, 0x7e, 0xf0, 0x97, 0xbf, 0x48, 0x2a, 0xc, 0xbe, 0x7f, 0xce, 0x2f, + 0x1b, 0xaa, 0x9c, 0xa7, 0xbe, 0x8b, 0xdb, 0xa7, 0x14, 0xfc, 0x8b, 0xfb, 0xad, 0x73, 0xa6, 0xc4, 0x7f, 0x0, 0xd9, 0xdc, 0x9d, 0x20, 0xcd, 0xbf, 0xba, 0xd5, 0x63, 0xe5, 0xe1, + 0x50, 0xbb, 0x1c, 0x18, 0x28, 0x9e, 0xdc, 0x6e, 0x2b, 0x2e, 0x6, 0xbd, 0x1b, 0x44, 0x58, 0x29, 0xe, 0x37, 0x15, 0x7, 0xa0, 0x33, 0xfc, 0x9c, 0x55, 0x60, 0xa9, 0x6b, 0x7f, + 0x51, 0x7, 0x66, 0x77, 0xcf, 0xb8, 0x28, 0x77, 0x17, 0x98, 0xb3, 0x2, 0xfc, 0xd9, 0xef, 0xee, 0xb3, 0x5f, 0x7f, 0xfd, 0xb3, 0xd7, 0xd6, 0xa4, 0xff, 0x8c, 0x63, 0x22, 0xf4, + 0x77, 0x3f, 0xfa, 0x51, 0x7b, 0xf9, 0x77, 0x36, 0xe4, 0x6, 0x20, 0x86, 0xfa, 0xf, 0x77, 0x5f, 0xc6, 0xd2, 0xf5, 0x7f, 0x3d, 0xa9, 0x60, 0xda, 0xcb, 0xd, 0x67, 0x4d, 0xaa, + 0xdd, 0x34, 0x98, 0x6c, 0xf0, 0xa, 0xaf, 0x1c, 0xbf, 0xeb, 0x70, 0x85, 0x67, 0xab, 0x25, 0xe3, 0xaf, 0xe4, 0x5f, 0xfc, 0x6b, 0xf, 0x1c, 0xd2, 0xdc, 0x2f, 0xe7, 0x46, 0x85, + 0x3b, 0x1e, 0x38, 0xa4, 0xb9, 0x57, 0x86, 0x1b, 0x59, 0xae, 0x17, 0x51, 0x5d, 0xfb, 0x33, 0x62, 0xbb, 0x6, 0x18, 0xe7, 0xad, 0x70, 0x49, 0x71, 0x57, 0x80, 0x37, 0xfe, 0xcd, + 0x35, 0xb9, 0xe5, 0x35, 0xea, 0xdf, 0x4c, 0x84, 0xfe, 0xf6, 0x86, 0xd, 0xb2, 0x2c, 0x4b, 0xff, 0xf2, 0xb1, 0x8f, 0xe9, 0xb6, 0x3f, 0xff, 0x39, 0x96, 0xe7, 0x1, 0xd6, 0xa3, + 0xbe, 0xb4, 0x6b, 0xce, 0x5f, 0xd1, 0x7d, 0xc1, 0x31, 0x1f, 0x40, 0x36, 0x5c, 0x95, 0x57, 0xca, 0xc0, 0xc0, 0xe0, 0xdf, 0x5e, 0xc7, 0x83, 0x7d, 0x3a, 0xfd, 0xca, 0xd1, 0x83, + 0x2b, 0x2b, 0x3d, 0x65, 0xf5, 0xa9, 0x14, 0x37, 0x3d, 0xd4, 0x27, 0x29, 0x17, 0x7c, 0x46, 0xc7, 0x83, 0x87, 0x34, 0xfb, 0x8a, 0x51, 0xfe, 0x7, 0x54, 0x1f, 0x77, 0x7d, 0x94, + 0x14, 0xd5, 0xe9, 0xaf, 0x54, 0x45, 0x0, 0x9a, 0x2a, 0xb0, 0x96, 0x13, 0x9f, 0xbb, 0x7b, 0xeb, 0xe7, 0x61, 0x8, 0x92, 0x74, 0xcf, 0x73, 0xbf, 0x94, 0x24, 0xdd, 0xfc, 0x89, + 0xaf, 0xd6, 0xa4, 0xff, 0xb4, 0x65, 0x15, 0x3d, 0xf8, 0x20, 0x1d, 0xf1, 0x33, 0x0, 0xeb, 0x99, 0x3d, 0xca, 0x9b, 0x52, 0x51, 0xd5, 0x97, 0xaa, 0xc5, 0x44, 0xc0, 0x58, 0x2a, + 0xc0, 0xc2, 0x9f, 0xa9, 0x8d, 0xf, 0xf6, 0xd, 0x6, 0x54, 0xa0, 0xc1, 0x8d, 0x82, 0x25, 0x25, 0xd, 0x38, 0xaa, 0xce, 0x82, 0x7, 0xa2, 0xe6, 0xc3, 0xaf, 0xe2, 0x9, 0xcb, + 0x26, 0x2c, 0xa3, 0x9b, 0xe4, 0x5c, 0x52, 0xd4, 0xd5, 0x9f, 0xe4, 0xa, 0xc0, 0x69, 0xd3, 0x4e, 0xa, 0xd6, 0xc1, 0x32, 0xa9, 0x65, 0x5a, 0xf0, 0xc2, 0x63, 0xd7, 0xae, 0x9d, + 0xa1, 0x7e, 0x52, 0x13, 0xaf, 0x0, 0x5d, 0x1, 0xb8, 0xe8, 0x9c, 0xaf, 0xe4, 0x96, 0xd7, 0xa8, 0xff, 0x81, 0x61, 0x14, 0x76, 0x5e, 0xfa, 0xd2, 0x59, 0xcf, 0xf0, 0xcb, 0x3d, + 0x14, 0x41, 0x6a, 0xc4, 0x1a, 0x78, 0x60, 0xc0, 0xd2, 0xd6, 0x95, 0x85, 0x95, 0xe5, 0x1b, 0xf, 0xf7, 0xeb, 0x94, 0x4b, 0x8f, 0xf6, 0xfc, 0x76, 0xde, 0x7c, 0xf4, 0xb0, 0xda, + 0xbe, 0x78, 0xb4, 0x4a, 0x5d, 0x20, 0x2c, 0xf7, 0xa7, 0xb0, 0x75, 0xe5, 0x61, 0xcd, 0xb8, 0xf8, 0x23, 0x92, 0xa4, 0xb3, 0x3e, 0x56, 0x7e, 0xd2, 0x73, 0x65, 0x13, 0x9d, 0xfd, + 0x26, 0x4a, 0x97, 0xdb, 0x3e, 0x58, 0x68, 0x46, 0x59, 0xfd, 0x49, 0x1e, 0x15, 0x60, 0x9b, 0xe3, 0x3e, 0xd3, 0xce, 0xce, 0xce, 0x82, 0xf7, 0x7e, 0xca, 0xb5, 0x73, 0xae, 0xef, + 0xec, 0xc, 0xff, 0xa1, 0x45, 0xdd, 0xbd, 0xc9, 0x5e, 0x3, 0xac, 0x37, 0x8b, 0xd6, 0xaf, 0x4f, 0xfa, 0x10, 0x6a, 0xca, 0x8c, 0xf2, 0xba, 0x1f, 0x85, 0x55, 0xd3, 0x27, 0xc2, + 0x44, 0xcc, 0x1d, 0x7e, 0xc6, 0x9b, 0x8e, 0xe5, 0xd3, 0x2f, 0x1a, 0xa9, 0x1d, 0x8f, 0x1d, 0xb1, 0xdf, 0x3b, 0x47, 0x8e, 0xcd, 0xf2, 0x93, 0xfe, 0xb1, 0xf0, 0x9e, 0xb6, 0x9d, + 0xbf, 0x3e, 0xa2, 0x52, 0xb6, 0xaf, 0xfe, 0x50, 0xd3, 0xbe, 0xd0, 0x5c, 0x93, 0x7, 0xa2, 0x46, 0x31, 0x51, 0x3a, 0x8e, 0xea, 0x4f, 0xf2, 0x39, 0x5, 0xee, 0xee, 0xee, 0x51, + 0x6f, 0x6f, 0x4f, 0xc1, 0x7b, 0x3f, 0xe5, 0xda, 0x39, 0xd7, 0xef, 0xd9, 0xf3, 0x56, 0xa8, 0x83, 0xcc, 0x4b, 0x49, 0xa3, 0x2c, 0xa9, 0xbf, 0x44, 0x93, 0x51, 0xf9, 0x76, 0xb1, + 0x48, 0x2d, 0x5f, 0x7b, 0xbf, 0x75, 0x4b, 0xfb, 0x55, 0x92, 0x6, 0xab, 0x3f, 0xa7, 0xe5, 0x6b, 0xef, 0x8f, 0xb5, 0xff, 0x9d, 0x92, 0x75, 0x52, 0x89, 0x6, 0x3b, 0xf3, 0xed, + 0x62, 0xea, 0x3f, 0x69, 0xa9, 0xe7, 0x76, 0xf4, 0x5a, 0xed, 0x27, 0xe4, 0xae, 0x91, 0xe5, 0xc2, 0xaf, 0x30, 0xf8, 0x5e, 0xe8, 0x3a, 0xe4, 0x7c, 0x1b, 0x79, 0xff, 0xba, 0xe1, + 0x7a, 0x4b, 0xff, 0xf6, 0xef, 0xfe, 0x2d, 0x6e, 0xb8, 0x3e, 0x96, 0xfe, 0x9d, 0xe1, 0xe7, 0xf5, 0x5e, 0x2a, 0x1f, 0x78, 0x5e, 0x76, 0x3d, 0x9e, 0xd6, 0xc9, 0x57, 0x85, 0x3e, + 0xac, 0x9a, 0x8b, 0xba, 0xfa, 0x93, 0x3c, 0x2, 0xd0, 0x5d, 0xa1, 0x55, 0x5a, 0xb1, 0x95, 0x6b, 0x57, 0x4d, 0xe5, 0xe7, 0x50, 0x22, 0x4, 0x63, 0xd, 0x3f, 0xbb, 0x7f, 0x67, + 0x8, 0x3a, 0xc5, 0x1c, 0x7e, 0x76, 0xff, 0xee, 0x10, 0x5c, 0x36, 0x6f, 0x9e, 0x16, 0xad, 0x5f, 0x3f, 0xd4, 0xc3, 0xcf, 0x48, 0xad, 0xdd, 0xd3, 0x67, 0xfd, 0xd5, 0x94, 0x51, + 0x85, 0x55, 0x5f, 0x4a, 0xfa, 0xf3, 0x3b, 0xfd, 0xf6, 0xdb, 0x38, 0xfb, 0xf7, 0xd, 0xc1, 0x98, 0xc2, 0xf, 0xf1, 0x55, 0x7f, 0x52, 0x99, 0x53, 0x60, 0x2f, 0xd5, 0x9e, 0x16, + 0x47, 0x10, 0x84, 0x1e, 0x21, 0x58, 0x93, 0xf0, 0xb3, 0xfb, 0x77, 0x87, 0x60, 0x8d, 0xc2, 0xcf, 0xee, 0xdf, 0x19, 0x82, 0xc3, 0x28, 0xfc, 0x8c, 0xd4, 0xab, 0xef, 0xf6, 0x5b, + 0x33, 0x27, 0x7c, 0xc4, 0xe, 0xbf, 0xcd, 0xef, 0x7d, 0x98, 0x7f, 0x55, 0x9b, 0xfe, 0x8b, 0x42, 0xb0, 0x8a, 0xf0, 0xdb, 0x3f, 0xba, 0x2f, 0x9a, 0xa3, 0x1a, 0xa2, 0xa2, 0xbc, + 0xeb, 0xc3, 0x8b, 0xef, 0x29, 0xb0, 0x97, 0x6a, 0x4f, 0x8b, 0x9d, 0xcb, 0xab, 0xe4, 0x8, 0xc1, 0x9a, 0x86, 0x9f, 0xdd, 0xbf, 0x9, 0xc1, 0x1a, 0x87, 0x9f, 0xdd, 0xbf, 0x9, + 0xc1, 0x61, 0x16, 0x7e, 0x46, 0x6a, 0xcb, 0x81, 0xf, 0xad, 0x13, 0xc7, 0x35, 0x6b, 0xf7, 0xc1, 0xb4, 0x94, 0xc0, 0x9f, 0xbf, 0x1d, 0x82, 0x55, 0x56, 0x7e, 0x4, 0x60, 0x79, + 0x71, 0x85, 0x9f, 0x54, 0xc1, 0x29, 0xb0, 0x97, 0xa8, 0x4e, 0x8b, 0xab, 0x94, 0xf, 0xc1, 0xc4, 0x7e, 0xf9, 0x53, 0xcb, 0xd7, 0xde, 0x9f, 0x68, 0xff, 0x3b, 0x73, 0x17, 0xc1, + 0x12, 0xb, 0xbf, 0x84, 0x3f, 0xf2, 0x32, 0xb5, 0xfb, 0x60, 0x3a, 0xd1, 0x3f, 0x7f, 0xdd, 0x70, 0x7d, 0xa2, 0x7f, 0xfe, 0xa8, 0x5e, 0x35, 0x7f, 0x79, 0x91, 0x3e, 0x99, 0xb5, + 0x81, 0xfa, 0x8e, 0xb4, 0xff, 0x9f, 0x5e, 0x34, 0xd7, 0x3a, 0xd2, 0xdb, 0x2d, 0x49, 0x1a, 0x39, 0x26, 0x37, 0x95, 0xc0, 0xbc, 0x37, 0x46, 0x8e, 0x19, 0x6f, 0x2f, 0x6b, 0x9a, + 0x3c, 0xbd, 0x60, 0x5d, 0x66, 0xef, 0x8e, 0x82, 0x65, 0x99, 0xbd, 0x3b, 0xec, 0xfd, 0x38, 0xb9, 0xf7, 0x69, 0xf6, 0xfb, 0x8d, 0xc7, 0x3a, 0xf8, 0x5, 0xc6, 0xb0, 0x15, 0x76, + 0x22, 0xb4, 0xf5, 0xa7, 0x56, 0xef, 0xf, 0x28, 0x59, 0xd0, 0xd5, 0x15, 0xf7, 0xbf, 0x8a, 0xd6, 0x17, 0xff, 0xe4, 0xdd, 0xf7, 0xa3, 0xb, 0x62, 0xef, 0x5b, 0x92, 0xac, 0x83, + 0xef, 0x78, 0xf, 0xe7, 0x8f, 0x9b, 0xba, 0x2f, 0x70, 0xff, 0x27, 0x9f, 0x3e, 0x5e, 0xce, 0x39, 0x54, 0xdb, 0x36, 0x76, 0x6b, 0xf6, 0xd9, 0xd3, 0x8a, 0xda, 0x4d, 0x3d, 0x76, + 0xa2, 0xcf, 0x1e, 0x6, 0xaf, 0xb3, 0xbe, 0xf8, 0xc2, 0x7e, 0x7d, 0xfa, 0xfc, 0xd9, 0x9e, 0xad, 0x32, 0x99, 0xc2, 0xed, 0xdf, 0xf9, 0x20, 0x9d, 0x7b, 0xf1, 0x58, 0x90, 0xa3, + 0x5, 0x86, 0x96, 0x30, 0x1, 0xe8, 0x1b, 0x7e, 0x92, 0xb4, 0x6c, 0xd6, 0x2c, 0x2d, 0xda, 0xbc, 0x39, 0xae, 0x20, 0xf2, 0xd, 0x3f, 0x49, 0x6a, 0x5f, 0x36, 0x4b, 0x6b, 0x17, + 0xc5, 0xd6, 0xb7, 0x54, 0x22, 0xfc, 0x24, 0x69, 0xcd, 0x8a, 0x9, 0xba, 0xe0, 0xea, 0x3, 0x81, 0xfa, 0x9f, 0x33, 0x73, 0x46, 0xc1, 0xfb, 0x6d, 0x1b, 0x37, 0x68, 0xea, 0xb1, + 0xcd, 0x6a, 0x99, 0xdc, 0xaa, 0x9e, 0x3, 0xef, 0x16, 0xac, 0xcb, 0x64, 0xd2, 0x45, 0xdb, 0xb7, 0x4c, 0xce, 0xfd, 0x79, 0xbc, 0xbf, 0xb7, 0x4b, 0x92, 0xd4, 0xb5, 0xbf, 0x4f, + 0x73, 0x66, 0xce, 0x28, 0xd8, 0x76, 0xec, 0x84, 0xe2, 0x7, 0x5, 0xb4, 0x4c, 0x36, 0xaf, 0x5e, 0xa8, 0xf4, 0x50, 0x81, 0x21, 0x27, 0xe8, 0x13, 0x9d, 0xec, 0xf0, 0x3b, 0x77, + 0xf7, 0x6e, 0xdf, 0x46, 0xcb, 0x66, 0xcd, 0x92, 0xa2, 0x9f, 0x96, 0x6f, 0x87, 0xdf, 0xca, 0x73, 0xfd, 0xfb, 0x6e, 0x5f, 0x16, 0x4b, 0xdf, 0x92, 0x23, 0xfc, 0xc6, 0x4e, 0xd9, + 0xeb, 0xdb, 0x68, 0xcd, 0x8a, 0x9, 0x81, 0xfa, 0xef, 0x39, 0xf0, 0xae, 0xfd, 0xe5, 0x36, 0x76, 0xc2, 0x94, 0x82, 0xaf, 0x96, 0xc9, 0xad, 0x5, 0x5f, 0x52, 0x2e, 0xf8, 0x4c, + 0xf8, 0xb9, 0xb7, 0x35, 0x81, 0xe9, 0xec, 0xc3, 0xb4, 0xf7, 0xda, 0x6, 0x18, 0x6e, 0x42, 0x9d, 0x2, 0x9f, 0xbb, 0x7b, 0xb7, 0x5e, 0x38, 0xf1, 0xc4, 0xa8, 0x8f, 0xa5, 0x22, + 0x2b, 0xcf, 0xdd, 0xad, 0x4b, 0x5f, 0x48, 0xa6, 0x6f, 0x29, 0x17, 0x7e, 0x3d, 0xef, 0x4e, 0x2e, 0xdf, 0xb0, 0xd2, 0xfd, 0x79, 0x54, 0x67, 0x46, 0xa9, 0x90, 0x6a, 0x99, 0xdc, + 0xaa, 0xa6, 0xa6, 0xdc, 0x87, 0x30, 0x7a, 0x55, 0x86, 0x7e, 0xdb, 0x96, 0xda, 0x6, 0x18, 0x6e, 0x42, 0x5, 0x60, 0x52, 0xe1, 0x27, 0x29, 0xd1, 0xf0, 0x93, 0x14, 0x69, 0xf8, + 0x95, 0x63, 0xaa, 0x3c, 0x37, 0x77, 0x5, 0xd7, 0x32, 0xb9, 0xb5, 0xe0, 0xbd, 0x79, 0xed, 0x5e, 0x6e, 0xc2, 0xf, 0x40, 0x4e, 0x43, 0x7e, 0x2a, 0xdc, 0x50, 0xb5, 0x69, 0xcb, + 0xf6, 0x82, 0xf7, 0x7e, 0xa7, 0xc5, 0xce, 0x60, 0xf4, 0x3a, 0x9d, 0x75, 0x5f, 0x17, 0x74, 0x6, 0xdf, 0xd8, 0x9, 0x53, 0xd4, 0x73, 0xe0, 0x5d, 0x35, 0x35, 0x35, 0x7b, 0xee, + 0x1f, 0x18, 0x4e, 0x8, 0xc0, 0x3a, 0xe5, 0x77, 0xa, 0xeb, 0xe, 0x35, 0xaf, 0x53, 0x5a, 0x13, 0x6c, 0x5e, 0x15, 0x1f, 0xa1, 0x7, 0xc, 0x22, 0x0, 0x13, 0xf6, 0xe4, 0xe3, + 0xc5, 0x1f, 0x27, 0xf9, 0xe2, 0xb, 0xfb, 0x3d, 0xe7, 0x2, 0x4a, 0xb9, 0xf9, 0x7c, 0x5e, 0xf3, 0xfc, 0x8c, 0x6d, 0x1b, 0xbb, 0xb5, 0x4d, 0xdd, 0x45, 0x6d, 0xbd, 0xe6, 0x1, + 0x2, 0xc3, 0x1d, 0x1, 0x98, 0xb0, 0x4f, 0x2c, 0x3c, 0xce, 0x67, 0x4d, 0xf1, 0xf2, 0xae, 0xfd, 0x7d, 0x7a, 0x63, 0x5d, 0xb7, 0xce, 0x39, 0xd7, 0x6f, 0x4e, 0xa0, 0xbb, 0xea, + 0x3b, 0xce, 0xe7, 0xb5, 0xc3, 0xef, 0xfc, 0x47, 0xd4, 0x81, 0xa1, 0x8e, 0x0, 0x4c, 0x98, 0xd7, 0x68, 0x6c, 0x53, 0x53, 0xb3, 0x3d, 0x3a, 0xec, 0x3c, 0x65, 0x9d, 0x7a, 0x6c, + 0xb3, 0xb6, 0xe5, 0x2b, 0x3a, 0xe7, 0x75, 0xc0, 0x72, 0x73, 0xfe, 0xca, 0xad, 0x7, 0x86, 0x2b, 0x2, 0x30, 0x61, 0xee, 0x91, 0xde, 0xf7, 0xf7, 0x76, 0x29, 0x93, 0x49, 0x97, + 0x1d, 0xbd, 0x7d, 0x7f, 0x6f, 0x97, 0xbd, 0x6d, 0xb9, 0x50, 0x33, 0x3, 0x1f, 0xd2, 0x60, 0x18, 0x12, 0x84, 0x40, 0xf0, 0x0, 0x4c, 0x2d, 0xe8, 0xea, 0xf2, 0xbd, 0x13, 0x64, + 0xdd, 0x31, 0xb9, 0x4f, 0x9c, 0x5a, 0xb4, 0x79, 0xb3, 0x14, 0xfd, 0xdd, 0x18, 0xa9, 0x47, 0x17, 0x74, 0xf9, 0xde, 0x9, 0xb2, 0x7b, 0x5d, 0xae, 0xef, 0xb5, 0x8b, 0x62, 0xe9, + 0x5b, 0x92, 0x52, 0xe3, 0xa6, 0xee, 0xf3, 0xbd, 0x13, 0xe4, 0x8f, 0x4f, 0xf, 0x48, 0x92, 0x2e, 0xb8, 0xfa, 0x40, 0xa0, 0xfe, 0xdd, 0x83, 0x12, 0xce, 0xea, 0xcf, 0x84, 0xa0, + 0xb3, 0x4a, 0xcc, 0x8e, 0x6e, 0xf1, 0xdd, 0xde, 0x19, 0x74, 0x0, 0xca, 0xb, 0x53, 0x1, 0xa6, 0x16, 0x74, 0x75, 0x59, 0xf9, 0xbb, 0x3d, 0x8a, 0xc4, 0x14, 0x7e, 0x76, 0xdf, + 0x8f, 0x2e, 0xe8, 0xb2, 0xf2, 0x77, 0x7b, 0x14, 0x89, 0x31, 0xfc, 0xec, 0xfe, 0xc7, 0x4d, 0xdd, 0x67, 0xe5, 0xef, 0xf6, 0x28, 0x12, 0x34, 0xfc, 0xa4, 0xd2, 0x95, 0x98, 0xbb, + 0x3a, 0xdc, 0xb4, 0x65, 0xbb, 0x46, 0xf4, 0x75, 0xeb, 0x9d, 0xf, 0xc6, 0x6b, 0xea, 0xb1, 0xcd, 0x5, 0xdb, 0xbb, 0xef, 0x26, 0x29, 0x75, 0xdb, 0x9c, 0x73, 0x7f, 0xc0, 0x70, + 0x16, 0xf6, 0x14, 0x38, 0x95, 0xbf, 0xdf, 0xd7, 0x73, 0x5d, 0xd8, 0x83, 0xa9, 0xb4, 0xef, 0xfc, 0xfd, 0xbe, 0x49, 0xf4, 0x2d, 0x49, 0xa9, 0xfc, 0xfd, 0xbe, 0xb1, 0xf4, 0xef, + 0x57, 0xc1, 0x79, 0x5, 0xa5, 0x7b, 0x4a, 0x8c, 0x3b, 0xf4, 0xdc, 0xcb, 0xdd, 0x93, 0xa7, 0x81, 0xe1, 0xae, 0x9a, 0x6b, 0x80, 0xf6, 0x2f, 0xbb, 0x65, 0x59, 0x56, 0x9c, 0xf, + 0x2d, 0xac, 0xb3, 0xbe, 0x23, 0xed, 0xbf, 0xd2, 0x7b, 0x72, 0xdd, 0xd5, 0x5a, 0x25, 0x77, 0x75, 0xf8, 0x5, 0xa2, 0xd7, 0xfe, 0x80, 0xe1, 0x88, 0x41, 0x90, 0x84, 0xfd, 0xe1, + 0x77, 0x83, 0xf, 0x8d, 0x35, 0xcf, 0xfd, 0x73, 0xcf, 0xf3, 0x33, 0xcb, 0xb2, 0xa3, 0x5b, 0xa4, 0xd1, 0x2d, 0x7a, 0x73, 0xbb, 0xf4, 0xc6, 0xba, 0x37, 0xec, 0x6d, 0xdc, 0x6d, + 0xdd, 0x9c, 0x6d, 0x6, 0xaf, 0x21, 0x8e, 0xd0, 0x88, 0xbe, 0xf7, 0x23, 0xfa, 0x2e, 0x80, 0xc6, 0x44, 0x0, 0x26, 0xec, 0x93, 0x9f, 0x1d, 0x7c, 0x9e, 0xdf, 0x3b, 0x1f, 0xa4, + 0xb5, 0x6d, 0xa3, 0x79, 0x46, 0xe0, 0xa0, 0x39, 0x33, 0xcf, 0xb4, 0x5f, 0xf7, 0x1c, 0x78, 0x37, 0x7f, 0x3a, 0x7c, 0x92, 0xfd, 0xbe, 0xb0, 0xd2, 0xcb, 0xcd, 0x11, 0x74, 0xdf, + 0xfe, 0xf6, 0xe4, 0xe3, 0x1b, 0xf2, 0xfb, 0xcd, 0xaa, 0x75, 0x62, 0xee, 0x93, 0xd5, 0x32, 0x99, 0x89, 0x3c, 0xf, 0x10, 0xc3, 0x5a, 0xd5, 0x1, 0x18, 0xe7, 0x27, 0x36, 0xd5, + 0x73, 0xdf, 0x51, 0xf5, 0x5f, 0x78, 0x2a, 0x9b, 0xb, 0x32, 0xf3, 0x8c, 0x40, 0xe7, 0xd4, 0x15, 0x73, 0xd, 0xd0, 0x7d, 0x2d, 0x70, 0xec, 0x84, 0x29, 0xbe, 0xf7, 0x2, 0x7b, + 0x31, 0xfb, 0xe6, 0x71, 0x58, 0x40, 0x95, 0x1, 0x18, 0xf7, 0x27, 0x36, 0xd5, 0x6b, 0xdf, 0x51, 0xf6, 0x5f, 0x10, 0x68, 0xfb, 0x7, 0xaf, 0xcb, 0xb9, 0x3, 0xca, 0x2b, 0xb0, + 0x4c, 0xd0, 0xb9, 0x1f, 0x9e, 0xea, 0xc, 0x4c, 0x23, 0x77, 0xea, 0x9b, 0xf5, 0xa8, 0x18, 0x81, 0xe1, 0xab, 0xea, 0xa, 0x30, 0xa9, 0x0, 0x4a, 0xba, 0xef, 0xb8, 0xfa, 0xcf, + 0x8e, 0x6e, 0xb1, 0x9f, 0xd6, 0xe2, 0x37, 0x45, 0xa6, 0x92, 0xca, 0xd0, 0x29, 0x37, 0xe0, 0x31, 0xc2, 0x6e, 0x47, 0xf5, 0x7, 0xe4, 0x70, 0xd, 0xb0, 0xe, 0x95, 0x7a, 0xac, + 0x7d, 0xb9, 0xca, 0xd0, 0xeb, 0xce, 0x12, 0x0, 0xde, 0x42, 0x7, 0x20, 0xd7, 0xfe, 0xa2, 0x51, 0xea, 0xd6, 0x34, 0xe7, 0xb2, 0x4a, 0xe6, 0xf0, 0x39, 0x9f, 0xd, 0xe8, 0xae, + 0x20, 0x73, 0x23, 0xbe, 0xfe, 0x4f, 0x91, 0x1, 0x86, 0xa3, 0xaa, 0x2a, 0x40, 0x4e, 0x7f, 0xa3, 0x63, 0xe6, 0xe5, 0x99, 0xa0, 0xda, 0xb4, 0x65, 0xbb, 0x3d, 0x5a, 0xeb, 0xe6, + 0xf5, 0xa0, 0x53, 0xe7, 0xfb, 0x4c, 0x26, 0x6d, 0xdf, 0x4f, 0x6c, 0x7f, 0xfa, 0x9b, 0xa4, 0xd6, 0x89, 0xa3, 0xa9, 0x8, 0x1, 0x87, 0x50, 0x1, 0x48, 0xf5, 0x17, 0x9d, 0xdf, + 0x3f, 0xf9, 0x46, 0xc1, 0xfb, 0x91, 0x63, 0xc6, 0x6b, 0xdb, 0xc6, 0x6e, 0x1d, 0xe9, 0xed, 0xb6, 0x9f, 0xfc, 0x22, 0x95, 0x7f, 0x9e, 0x9f, 0xf3, 0xb3, 0x83, 0x9d, 0xaf, 0x9d, + 0xeb, 0xff, 0xf0, 0xf2, 0x61, 0xfb, 0x7d, 0x66, 0xef, 0x8e, 0x2a, 0x8f, 0x1c, 0x68, 0x7c, 0xa1, 0x2b, 0x40, 0xaa, 0xbf, 0x68, 0x78, 0x7d, 0x6, 0xb0, 0x24, 0x6d, 0xdb, 0xe8, + 0x7e, 0x56, 0xa0, 0xdf, 0x73, 0x3, 0x73, 0xfe, 0xf8, 0xfc, 0xdb, 0xfa, 0xf4, 0xf9, 0xb3, 0x1d, 0x23, 0xbc, 0x83, 0xcf, 0xc, 0x74, 0x56, 0x8a, 0x99, 0x4c, 0xba, 0xf0, 0xf3, + 0x83, 0x79, 0x1e, 0x20, 0x86, 0xb1, 0xc0, 0x1, 0x48, 0xf5, 0x17, 0x2d, 0xe7, 0xe7, 0x2, 0x3b, 0x7, 0x3d, 0xcc, 0x53, 0x9d, 0x9d, 0x4a, 0x3f, 0xc2, 0xea, 0x6d, 0xcf, 0xc1, + 0x13, 0x37, 0x13, 0x86, 0x5d, 0xfb, 0xfb, 0x82, 0x1f, 0x2c, 0x30, 0xc4, 0x84, 0xaa, 0x0, 0xa9, 0xfe, 0xe2, 0xe1, 0x1c, 0xe9, 0x3d, 0xd2, 0xdb, 0xad, 0xae, 0xfd, 0xe3, 0x8b, + 0x3e, 0x38, 0xdd, 0x1d, 0x6e, 0x66, 0x9b, 0xdc, 0x29, 0xef, 0x78, 0xdf, 0x41, 0x15, 0xe7, 0x76, 0xd9, 0xd1, 0x2d, 0x9a, 0x33, 0xf3, 0xa4, 0xfc, 0x3b, 0x3e, 0x18, 0x1d, 0xc3, + 0x57, 0xa0, 0x0, 0xa4, 0xfa, 0x8b, 0x5e, 0x25, 0xf, 0x28, 0xad, 0xf4, 0x4e, 0xf, 0xe7, 0xa0, 0x89, 0x99, 0x23, 0xe8, 0x57, 0xd, 0x7a, 0x4d, 0x96, 0x6, 0x86, 0x9b, 0x8a, + 0x3, 0x90, 0xbb, 0x3e, 0xe2, 0xe9, 0xdf, 0x19, 0x42, 0xce, 0xb0, 0x72, 0x3e, 0xc0, 0xc0, 0x4, 0x9e, 0xb9, 0x8b, 0xc3, 0x6f, 0x24, 0xb7, 0x6b, 0x7f, 0x5f, 0xd1, 0xc8, 0xb1, + 0xdf, 0x5d, 0x1f, 0x5d, 0xfb, 0xfb, 0x34, 0xc7, 0xfb, 0xb1, 0x86, 0xc0, 0xb0, 0x31, 0x22, 0x48, 0x63, 0x4e, 0x7d, 0xe3, 0xe1, 0xac, 0x2, 0x4b, 0xdd, 0xa6, 0xe6, 0xf7, 0xf9, + 0x21, 0xee, 0x41, 0xe, 0xd3, 0xce, 0xdc, 0x51, 0x62, 0xbe, 0x5a, 0x26, 0xb7, 0x16, 0x4c, 0x8b, 0xe1, 0xe9, 0xd1, 0x18, 0xee, 0xb8, 0x13, 0x24, 0x61, 0xa6, 0x9a, 0xf3, 0x9b, + 0xdb, 0xe7, 0xbc, 0x77, 0xd7, 0xeb, 0x19, 0x80, 0x66, 0xdd, 0xc8, 0x31, 0xe3, 0xb, 0xaa, 0x3f, 0xaf, 0xb0, 0x74, 0xcf, 0x35, 0xe4, 0x14, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xe6, 0xff, 0x1, 0xed, 0x72, 0x19, 0xe0, 0x6c, 0xc6, 0xfe, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82}; + +constexpr auto level_data_size = 0x1a2c; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..6b67f32 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,31 @@ +#include "Game.hpp" +#include "Multiplayer.hpp" +#include "thread" + +int main(int argc, char** argv) { + auto& mp = Multiplayer::get(); + +#if KOLYAH_MODE + // std::thread(&Multiplayer::connect, &mp, "Kolyah35").detach(); + std::string name = "Kolyah35"; +#else + if (argc != 2) { + printf("specify ur name in args\n"); + return 1; + } + // std::thread(&Multiplayer::connect, &mp, argv[1]).detach(); + std::string name = argv[1]; +#endif + + std::thread(&Multiplayer::connect, &mp, name.c_str()).detach(); + + Game::get().start(name); + + // printf("hi!\n"); + + // char data = Header::DISCONNECT; + + // Multiplayer::get().sendPacket(&data, 1); + + return 0; +} diff --git a/src/saferaylib.h b/src/saferaylib.h new file mode 100644 index 0000000..a3d4871 --- /dev/null +++ b/src/saferaylib.h @@ -0,0 +1,103 @@ +#pragma once + +#if defined(_WIN32) + // To avoid conflicting windows.h symbols with raylib, some flags are defined + // WARNING: Those flags avoid inclusion of some Win32 headers that could be required + // by user at some point and won't be included... + //------------------------------------------------------------------------------------- + + // If defined, the following flags inhibit definition of the indicated items. + #define NOGDICAPMASKS // CC_*, LC_*, PC_*, CP_*, TC_*, RC_ + #define NOVIRTUALKEYCODES // VK_* + #define NOWINMESSAGES // WM_*, EM_*, LB_*, CB_* + #define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* + #define NOSYSMETRICS // SM_* + #define NOMENUS // MF_* + #define NOICONS // IDI_* + #define NOKEYSTATES // MK_* + #define NOSYSCOMMANDS // SC_* + #define NORASTEROPS // Binary and Tertiary raster ops + #define NOSHOWWINDOW // SW_* + #define OEMRESOURCE // OEM Resource values + #define NOATOM // Atom Manager routines + #define NOCLIPBOARD // Clipboard routines + #define NOCOLOR // Screen colors + #define NOCTLMGR // Control and Dialog routines + #define NODRAWTEXT // DrawText() and DT_* + #define NOGDI // All GDI defines and routines + #define NOKERNEL // All KERNEL defines and routines + #define NOUSER // All USER defines and routines + // #define NONLS // All NLS defines and routines + #define NOMB // MB_* and MessageBox() + #define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines + #define NOMETAFILE // typedef METAFILEPICT + #define NOMINMAX // Macros min(a,b) and max(a,b) + #define NOMSG // typedef MSG and associated routines + #define NOOPENFILE // OpenFile(), OemToAnsi, AnsiToOem, and OF_* + #define NOSCROLL // SB_* and scrolling routines + #define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc. + #define NOSOUND // Sound driver routines + #define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines + #define NOWH // SetWindowsHook and WH_* + #define NOWINOFFSETS // GWL_*, GCL_*, associated routines + #define NOCOMM // COMM driver routines + #define NOKANJI // Kanji support stuff. + #define NOHELP // Help engine interface. + #define NOPROFILER // Profiler interface. + #define NODEFERWINDOWPOS // DeferWindowPos routines + #define NOMCX // Modem Configuration Extensions + + #define MMNOSOUND + +// Type required before windows.h inclusion +typedef struct tagMSG* LPMSG; + + #include // Now windows.h won't define CloseWindow, DrawText, etc. +// #include + +// Type required by some unused function... +typedef struct tagBITMAPINFOHEADER { + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} BITMAPINFOHEADER, *PBITMAPINFOHEADER; + + #include + #include + #include + + // Some required types defined for MSVC/TinyC compiler + #if defined(_MSC_VER) || defined(__TINYC__) + #include "propidl.h" + #endif +#endif + +// #define WIN32_LEAN_AND_MEAN +// #define NOMINMAX +// #define NOGDI +#if defined(__linux__) +#include // Now windows.h won't define CloseWindow, DrawText, etc. +#endif +// // Explicitly undefine remaining problematic macros +// #ifdef CloseWindow +// #undef CloseWindow +// #endif +// #ifdef DrawText +// #undef DrawText +// #endif + +#include "raylib.h" + + + +////////////////////////////////////////////////////////////////////////////////////////// + +#define KOLYAH_MODE 0 \ No newline at end of file