First Commit
804
3rdparty/sdl/SDL/test/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,804 @@
|
||||
#
|
||||
# CMake script for building the SDL tests
|
||||
#
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
set(SDL3_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake")
|
||||
|
||||
include(CheckIncludeFile)
|
||||
include(CheckStructHasMember)
|
||||
include(CMakePushCheckState)
|
||||
include(sdlcompilers)
|
||||
|
||||
find_package(Python3 COMPONENTS Interpreter)
|
||||
if(NOT PYTHON3_EXECUTABLE)
|
||||
set(PYTHON3_EXECUTABLE "python3")
|
||||
endif()
|
||||
|
||||
if(SDL_TESTS_LINK_SHARED)
|
||||
set(sdl_name_component SDL3-shared)
|
||||
else()
|
||||
set(sdl_name_component SDL3-static)
|
||||
endif()
|
||||
set(HAVE_TESTS_LINK_SHARED "${SDL_TESTS_LINK_SHARED}" PARENT_SCOPE)
|
||||
|
||||
# CMake incorrectly detects opengl32.lib being present on MSVC ARM64
|
||||
if(NOT (MSVC AND SDL_CPU_ARM64))
|
||||
# Prefer GLVND, if present
|
||||
set(OpenGL_GL_PREFERENCE GLVND)
|
||||
find_package(OpenGL)
|
||||
endif()
|
||||
|
||||
set(SDL_TEST_EXECUTABLES)
|
||||
|
||||
add_library(sdltests_utils OBJECT
|
||||
testutils.c
|
||||
)
|
||||
target_link_libraries(sdltests_utils PRIVATE SDL3::Headers)
|
||||
|
||||
file(GLOB RESOURCE_FILES *.bmp *.wav *.hex moose.dat utf8.txt)
|
||||
|
||||
option(SDLTEST_TRACKMEM "Run tests with --trackmem" OFF)
|
||||
|
||||
if(WIN32)
|
||||
option(SDLTEST_PROCDUMP "Run tests using sdlprocdump for minidump generation" OFF)
|
||||
add_executable(sdlprocdump win32/sdlprocdump.c)
|
||||
set_property(TARGET sdlprocdump PROPERTY C_STANDARD "90")
|
||||
SDL_AddCommonCompilerFlags(sdlprocdump)
|
||||
if(SDLTEST_PROCDUMP)
|
||||
set(CMAKE_TEST_LAUNCHER "$<TARGET_FILE:sdlprocdump>;--")
|
||||
else()
|
||||
set_property(TARGET sdlprocdump PROPERTY EXCLUDE_FROM_ALL "1")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(EMSCRIPTEN)
|
||||
set(SDLTEST_BROWSER "firefox" CACHE STRING "Browser in which to run SDL unit tests (chrome or firefox)")
|
||||
set(SDLTEST_PORT "8080" CACHE STRING "Port on which to serve the tests")
|
||||
set(SDLTEST_CHROME_BINARY "" CACHE STRING "Chrome/Chromium browser binary (optional)")
|
||||
if(TARGET Python3::Interpreter)
|
||||
add_custom_target(serve-sdl-tests
|
||||
COMMAND Python3::Interpreter "${CMAKE_CURRENT_SOURCE_DIR}/emscripten/server.py"
|
||||
"${SDLTEST_PORT}"
|
||||
-d "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
--map "${SDL3_SOURCE_DIR}:/SDL")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
set(test_bin_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||||
if(NOT IS_ABSOLUTE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||||
set(test_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|
||||
endif()
|
||||
else()
|
||||
set(test_bin_dir "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endif()
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.20)
|
||||
get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
set(test_bin_dir "${test_bin_dir}$<$<BOOL:${is_multi_config}>:/$<CONFIG>>")
|
||||
endif()
|
||||
|
||||
set(RESOURCE_FILE_NAMES)
|
||||
set(RESOURCE_FILES_BINDIR)
|
||||
foreach(resource_file IN LISTS RESOURCE_FILES)
|
||||
get_filename_component(res_file_name ${resource_file} NAME)
|
||||
list(APPEND RESOURCE_FILE_NAMES "${res_file_name}")
|
||||
set(resource_file_bindir "${test_bin_dir}/${res_file_name}")
|
||||
add_custom_command(OUTPUT "${resource_file_bindir}"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy "${resource_file}" "${resource_file_bindir}"
|
||||
DEPENDS "${resource_file}"
|
||||
)
|
||||
list(APPEND RESOURCE_FILES_BINDIR "${resource_file_bindir}")
|
||||
endforeach()
|
||||
add_custom_target(copy-sdl-test-resources
|
||||
DEPENDS "${RESOURCE_FILES_BINDIR}"
|
||||
)
|
||||
|
||||
define_property(TARGET PROPERTY SDL_NONINTERACTIVE BRIEF_DOCS "If true, target is a non-interactive test executable." FULL_DOCS "If true, target is a noninteractive test executable.")
|
||||
define_property(TARGET PROPERTY SDL_NONINTERACTIVE_ARGUMENTS BRIEF_DOCS "Argument(s) to run executable in non-interactive mode." FULL_DOCS "Argument(s) to run executable in non-interactive mode.")
|
||||
define_property(TARGET PROPERTY SDL_NONINTERACTIVE_TIMEOUT BRIEF_DOCS "Timeout for noninteractive executable." FULL_DOCS "Timeout for noninteractive executable.")
|
||||
|
||||
macro(add_sdl_test_executable TARGET)
|
||||
cmake_parse_arguments(AST "BUILD_DEPENDENT;NONINTERACTIVE;NEEDS_RESOURCES;TESTUTILS;THREADS;NO_C90;MAIN_CALLBACKS;NOTRACKMEM" "" "DEPENDS;DISABLE_THREADS_ARGS;NONINTERACTIVE_TIMEOUT;NONINTERACTIVE_ARGS;INSTALLED_ARGS;SOURCES" ${ARGN})
|
||||
if(AST_UNPARSED_ARGUMENTS)
|
||||
message(FATAL_ERROR "Unknown argument(s): ${AST_UNPARSED_ARGUMENTS}")
|
||||
endif()
|
||||
if(NOT AST_SOURCES)
|
||||
message(FATAL_ERROR "add_sdl_test_executable needs at least one source")
|
||||
endif()
|
||||
if(AST_TESTUTILS)
|
||||
list(APPEND AST_SOURCES $<TARGET_OBJECTS:sdltests_utils>)
|
||||
endif()
|
||||
set(EXTRA_SOURCES "")
|
||||
if(AST_NEEDS_RESOURCES)
|
||||
list(APPEND EXTRA_SOURCES ${RESOURCE_FILES})
|
||||
endif()
|
||||
if(ANDROID)
|
||||
add_library(${TARGET} SHARED ${AST_SOURCES} ${EXTRA_SOURCES})
|
||||
else()
|
||||
add_executable(${TARGET} ${AST_SOURCES} ${EXTRA_SOURCES})
|
||||
endif()
|
||||
target_compile_definitions(${TARGET} PRIVATE HAVE_BUILD_CONFIG)
|
||||
SDL_AddCommonCompilerFlags(${TARGET})
|
||||
target_include_directories(${TARGET} PRIVATE "${SDL3_SOURCE_DIR}/src/video/khronos")
|
||||
target_link_libraries(${TARGET} PRIVATE SDL3::SDL3_test SDL3::${sdl_name_component})
|
||||
if(NOT AST_NO_C90 AND NOT SDL_CMAKE_PLATFORM MATCHES "^(n3ds|ps2|psp)$")
|
||||
set_property(TARGET ${TARGET} PROPERTY C_STANDARD 90)
|
||||
set_property(TARGET ${TARGET} PROPERTY C_EXTENSIONS FALSE)
|
||||
endif()
|
||||
if(AST_DEPENDS)
|
||||
add_dependencies(${TARGET} ${AST_DEPENDS})
|
||||
endif()
|
||||
|
||||
list(APPEND SDL_TEST_EXECUTABLES ${TARGET})
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_NOTRACKMEM ${AST_NOTRACKMEM})
|
||||
if(AST_NONINTERACTIVE)
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE 1)
|
||||
endif()
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_DISABLE_THREADS_ARGS "${AST_DISABLE_THREADS_ARGS}")
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_THREADS "${AST_THREADS}")
|
||||
if(AST_NONINTERACTIVE_ARGS)
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE_ARGUMENTS "${AST_NONINTERACTIVE_ARGS}")
|
||||
endif()
|
||||
if(AST_INSTALLED_ARGS)
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_INSTALLED_ARGUMENTS "${AST_INSTALLED_ARGS}")
|
||||
elseif(AST_NONINTERACTIVE_ARGS)
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_INSTALLED_ARGUMENTS "${AST_NONINTERACTIVE_ARGS}")
|
||||
endif()
|
||||
if(AST_NONINTERACTIVE_TIMEOUT)
|
||||
set_property(TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE_TIMEOUT "${AST_NONINTERACTIVE_TIMEOUT}")
|
||||
endif()
|
||||
if(AST_NEEDS_RESOURCES)
|
||||
if(PSP OR PS2 OR N3DS)
|
||||
add_custom_command(TARGET ${TARGET} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} ARGS -E make_directory $<TARGET_FILE_DIR:${TARGET}>/sdl-${TARGET}
|
||||
COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILES} $<TARGET_FILE_DIR:${TARGET}>/sdl-${TARGET})
|
||||
else()
|
||||
add_dependencies(${TARGET} copy-sdl-test-resources)
|
||||
endif()
|
||||
if(APPLE)
|
||||
# Make sure resource files get installed into macOS/iOS .app bundles.
|
||||
set_target_properties(${TARGET} PROPERTIES RESOURCE "${RESOURCE_FILES}")
|
||||
endif()
|
||||
if(EMSCRIPTEN)
|
||||
foreach(res IN LISTS RESOURCE_FILES)
|
||||
get_filename_component(res_name "${res}" NAME)
|
||||
target_link_options(${TARGET} PRIVATE "SHELL:--embed-file ${res}@${res_name}")
|
||||
set_property(TARGET ${TARGET} APPEND PROPERTY LINK_DEPENDS "${res}")
|
||||
endforeach()
|
||||
endif()
|
||||
set_property(TARGET ${TARGET} APPEND PROPERTY ADDITIONAL_CLEAN_FILES "$<TARGET_FILE_DIR:${TARGET}>/$<JOIN:${RESOURCE_FILE_NAMES},$<SEMICOLON>$<TARGET_FILE_DIR:${TARGET}>/>")
|
||||
endif()
|
||||
if(AST_BUILD_DEPENDENT)
|
||||
target_include_directories(${TARGET} BEFORE PRIVATE $<TARGET_PROPERTY:SDL3::${sdl_name_component},INCLUDE_DIRECTORIES>)
|
||||
target_include_directories(${TARGET} BEFORE PRIVATE ${SDL3_SOURCE_DIR}/src)
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.20")
|
||||
target_include_directories(${TARGET} AFTER PRIVATE "${SDL3_SOURCE_DIR}/include/build_config")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WINDOWS)
|
||||
# CET support was added in VS 16.7
|
||||
if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
|
||||
set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -CETCOMPAT")
|
||||
endif()
|
||||
elseif(PSP)
|
||||
target_link_libraries(${TARGET} PRIVATE GL)
|
||||
elseif(EMSCRIPTEN)
|
||||
set_property(TARGET ${TARGET} PROPERTY SUFFIX ".html")
|
||||
target_link_options(${TARGET} PRIVATE "SHELL:--pre-js ${CMAKE_CURRENT_SOURCE_DIR}/emscripten/pre.js")
|
||||
target_link_options(${TARGET} PRIVATE "-sEXIT_RUNTIME=1")
|
||||
set_property(TARGET ${TARGET} APPEND PROPERTY LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/emscripten/pre.js")
|
||||
endif()
|
||||
|
||||
if(OPENGL_FOUND)
|
||||
target_compile_definitions(${TARGET} PRIVATE HAVE_OPENGL)
|
||||
endif()
|
||||
|
||||
# FIXME: only add "${SDL3_BINARY_DIR}/include-config-$<LOWER_CASE:$<CONFIG>>" + include paths of external dependencies
|
||||
target_include_directories(${TARGET} PRIVATE "$<TARGET_PROPERTY:SDL3::${sdl_name_component},INCLUDE_DIRECTORIES>")
|
||||
endmacro()
|
||||
|
||||
check_include_file(signal.h HAVE_SIGNAL_H)
|
||||
if(HAVE_SIGNAL_H)
|
||||
add_definitions(-DHAVE_SIGNAL_H)
|
||||
endif()
|
||||
|
||||
check_include_file(libudev.h HAVE_LIBUDEV_H)
|
||||
if(HAVE_LIBUDEV_H)
|
||||
add_definitions(-DHAVE_LIBUDEV_H)
|
||||
endif()
|
||||
|
||||
function(files2headers OUTPUT)
|
||||
set(xxd "${SDL3_SOURCE_DIR}/cmake/xxd.py")
|
||||
set(inputs ${ARGN})
|
||||
set(outputs )
|
||||
foreach(input IN LISTS inputs)
|
||||
get_filename_component(file_we "${input}" NAME_WE)
|
||||
set(intermediate "${CMAKE_CURRENT_BINARY_DIR}/${file_we}.h")
|
||||
set(output "${CMAKE_CURRENT_SOURCE_DIR}/${file_we}.h")
|
||||
list(APPEND outputs "${output}")
|
||||
if(TARGET Python3::Interpreter AND NOT CMAKE_CROSSCOMPILING)
|
||||
list(APPEND outputs "${intermediate}")
|
||||
# Don't add the 'output' header to the output, to avoid marking them as GENERATED
|
||||
# (generated files are removed when running the CLEAN target)
|
||||
add_custom_command(OUTPUT "${intermediate}"
|
||||
COMMAND Python3::Interpreter "${xxd}" -i "${CMAKE_CURRENT_SOURCE_DIR}/${input}" "-o" "${intermediate}"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${intermediate}" "${output}"
|
||||
DEPENDS "${xxd}" "${bmp}"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
set(${OUTPUT} "${outputs}" PARENT_SCOPE)
|
||||
add_custom_target(generate-${OUTPUT} DEPENDS ${outputs})
|
||||
endfunction()
|
||||
|
||||
files2headers(gamepad_image_headers
|
||||
gamepad_axis_arrow.bmp
|
||||
gamepad_axis.bmp
|
||||
gamepad_back.bmp
|
||||
gamepad_battery.bmp
|
||||
gamepad_battery_wired.bmp
|
||||
gamepad_button_background.bmp
|
||||
gamepad_button.bmp
|
||||
gamepad_button_small.bmp
|
||||
gamepad_face_abxy.bmp
|
||||
gamepad_face_bayx.bmp
|
||||
gamepad_face_sony.bmp
|
||||
gamepad_front.bmp
|
||||
gamepad_touchpad.bmp
|
||||
gamepad_wired.bmp
|
||||
gamepad_wireless.bmp
|
||||
)
|
||||
files2headers(icon_bmp_header icon.bmp)
|
||||
files2headers(glass_bmp_header glass.bmp)
|
||||
|
||||
set(FFmpeg_FIND_COMPONENTS AVCODEC AVFORMAT AVUTIL SWSCALE)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/../cmake/FindFFmpeg.cmake")
|
||||
if(FFmpeg_FOUND)
|
||||
cmake_push_check_state()
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES "${FFmpeg_AVUTIL_INCLUDE_DIRS}")
|
||||
list(APPEND CMAKE_REQUIRED_INCLUDES "${SDL3_SOURCE_DIR}/src/video/khronos")
|
||||
check_struct_has_member("AVFrame" "ch_layout" "libavutil/frame.h" LIBAVUTIL_AVFRAME_HAS_CH_LAYOUT)
|
||||
check_struct_has_member("AVVulkanFramesContext" "format" "libavutil/hwcontext_vulkan.h" LIBAVUTIL_AVFULKANFRAMESCONTEXT_HAS_FORMAT)
|
||||
cmake_pop_check_state()
|
||||
endif()
|
||||
if(FFmpeg_FOUND AND LIBAVUTIL_AVFRAME_HAS_CH_LAYOUT)
|
||||
add_sdl_test_executable(testffmpeg NO_C90 SOURCES testffmpeg.c testffmpeg_vulkan.c ${icon_bmp_header} DEPENDS generate-icon_bmp_header)
|
||||
if(LIBAVUTIL_AVFULKANFRAMESCONTEXT_HAS_FORMAT)
|
||||
target_compile_definitions(testffmpeg PRIVATE FFMPEG_VULKAN_SUPPORT)
|
||||
endif()
|
||||
if(APPLE)
|
||||
target_link_options(testffmpeg PRIVATE "-Wl,-framework,CoreVideo")
|
||||
endif()
|
||||
if(TARGET OpenGL::EGL)
|
||||
message(DEBUG "Enabling EGL support in testffmpeg")
|
||||
target_link_libraries(testffmpeg PRIVATE OpenGL::EGL)
|
||||
target_compile_definitions(testffmpeg PRIVATE HAVE_EGL)
|
||||
endif()
|
||||
target_include_directories(testffmpeg SYSTEM BEFORE PRIVATE ${SDL3_SOURCE_DIR}/src/video/khronos)
|
||||
target_link_libraries(testffmpeg PRIVATE ${FFMPEG_LIBRARIES})
|
||||
else()
|
||||
message(STATUS "Can't find ffmpeg 5.1.3 or newer, skipping testffmpeg")
|
||||
endif()
|
||||
|
||||
add_sdl_test_executable(checkkeys SOURCES checkkeys.c)
|
||||
add_sdl_test_executable(loopwave NEEDS_RESOURCES TESTUTILS MAIN_CALLBACKS SOURCES loopwave.c)
|
||||
add_sdl_test_executable(testsurround SOURCES testsurround.c)
|
||||
add_sdl_test_executable(testresample NEEDS_RESOURCES SOURCES testresample.c)
|
||||
add_sdl_test_executable(testaudioinfo SOURCES testaudioinfo.c)
|
||||
add_sdl_test_executable(testaudiostreamdynamicresample NEEDS_RESOURCES TESTUTILS SOURCES testaudiostreamdynamicresample.c)
|
||||
|
||||
file(GLOB TESTAUTOMATION_SOURCE_FILES testautomation*.c)
|
||||
add_sdl_test_executable(testautomation NONINTERACTIVE NONINTERACTIVE_TIMEOUT 120 NEEDS_RESOURCES BUILD_DEPENDENT NO_C90 SOURCES ${TESTAUTOMATION_SOURCE_FILES})
|
||||
if(EMSCRIPTEN)
|
||||
target_link_options(testautomation PRIVATE -sALLOW_MEMORY_GROWTH=1 -sMAXIMUM_MEMORY=1gb)
|
||||
endif()
|
||||
add_sdl_test_executable(testmultiaudio NEEDS_RESOURCES TESTUTILS SOURCES testmultiaudio.c)
|
||||
add_sdl_test_executable(testaudiohotplug NEEDS_RESOURCES TESTUTILS SOURCES testaudiohotplug.c)
|
||||
add_sdl_test_executable(testaudiorecording MAIN_CALLBACKS SOURCES testaudiorecording.c)
|
||||
add_sdl_test_executable(testatomic NONINTERACTIVE DISABLE_THREADS_ARGS "--no-threads" SOURCES testatomic.c)
|
||||
add_sdl_test_executable(testintersections SOURCES testintersections.c)
|
||||
add_sdl_test_executable(testrelative SOURCES testrelative.c)
|
||||
add_sdl_test_executable(testhittesting SOURCES testhittesting.c)
|
||||
add_sdl_test_executable(testdraw SOURCES testdraw.c)
|
||||
add_sdl_test_executable(testdrawchessboard SOURCES testdrawchessboard.c)
|
||||
add_sdl_test_executable(testdropfile MAIN_CALLBACKS SOURCES testdropfile.c)
|
||||
add_sdl_test_executable(testerror NONINTERACTIVE DISABLE_THREADS_ARGS "--no-threads" SOURCES testerror.c)
|
||||
|
||||
set(build_options_dependent_tests )
|
||||
|
||||
add_sdl_test_executable(testevdev BUILD_DEPENDENT NONINTERACTIVE NO_C90 SOURCES testevdev.c)
|
||||
|
||||
if(MACOS)
|
||||
add_sdl_test_executable(testnative BUILD_DEPENDENT NEEDS_RESOURCES TESTUTILS
|
||||
SOURCES
|
||||
testnative.c
|
||||
testnativecocoa.m
|
||||
testnativex11.c
|
||||
)
|
||||
elseif(WINDOWS)
|
||||
add_sdl_test_executable(testnative BUILD_DEPENDENT NEEDS_RESOURCES TESTUTILS SOURCES testnative.c testnativew32.c)
|
||||
elseif(HAVE_X11 OR HAVE_WAYLAND)
|
||||
add_sdl_test_executable(testnative BUILD_DEPENDENT NO_C90 NEEDS_RESOURCES TESTUTILS SOURCES testnative.c)
|
||||
if(HAVE_X11)
|
||||
target_sources(testnative PRIVATE testnativex11.c)
|
||||
target_link_libraries(testnative PRIVATE X11)
|
||||
endif()
|
||||
if(HAVE_WAYLAND)
|
||||
set_property(SOURCE ${SDL3_BINARY_DIR}/wayland-generated-protocols/xdg-shell-protocol.c PROPERTY GENERATED 1)
|
||||
target_sources(testnative PRIVATE testnativewayland.c ${SDL3_BINARY_DIR}/wayland-generated-protocols/xdg-shell-protocol.c)
|
||||
|
||||
# Needed to silence the documentation warning in the generated header file
|
||||
target_compile_options(testnative PRIVATE -Wno-documentation-unknown-command)
|
||||
target_link_libraries(testnative PRIVATE wayland-client)
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
add_sdl_test_executable(testasyncio MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testasyncio.c)
|
||||
add_sdl_test_executable(testaudio MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testaudio.c)
|
||||
add_sdl_test_executable(testcolorspace SOURCES testcolorspace.c)
|
||||
add_sdl_test_executable(testfile NONINTERACTIVE SOURCES testfile.c)
|
||||
add_sdl_test_executable(testcontroller TESTUTILS SOURCES testcontroller.c gamepadutils.c ${gamepad_image_headers} DEPENDS generate-gamepad_image_headers)
|
||||
add_sdl_test_executable(testgeometry TESTUTILS SOURCES testgeometry.c)
|
||||
add_sdl_test_executable(testgl SOURCES testgl.c)
|
||||
add_sdl_test_executable(testgles SOURCES testgles.c)
|
||||
add_sdl_test_executable(testgpu_simple_clear SOURCES testgpu_simple_clear.c)
|
||||
add_sdl_test_executable(testgpu_spinning_cube SOURCES testgpu_spinning_cube.c)
|
||||
if(ANDROID)
|
||||
target_link_libraries(testgles PRIVATE GLESv1_CM)
|
||||
elseif(IOS OR TVOS)
|
||||
find_library(GLES_LIB OpenGLES REQUIRED)
|
||||
target_link_libraries(testgles PRIVATE "${GLES_LIB}")
|
||||
endif()
|
||||
add_sdl_test_executable(testgles2 SOURCES testgles2.c)
|
||||
add_sdl_test_executable(testhaptic SOURCES testhaptic.c)
|
||||
add_sdl_test_executable(testhotplug SOURCES testhotplug.c)
|
||||
add_sdl_test_executable(testpen SOURCES testpen.c)
|
||||
add_sdl_test_executable(testrumble SOURCES testrumble.c)
|
||||
add_sdl_test_executable(testthread NONINTERACTIVE THREADS NONINTERACTIVE_TIMEOUT 40 SOURCES testthread.c)
|
||||
add_sdl_test_executable(testiconv NEEDS_RESOURCES TESTUTILS SOURCES testiconv.c)
|
||||
add_sdl_test_executable(testime NEEDS_RESOURCES TESTUTILS SOURCES testime.c)
|
||||
add_sdl_test_executable(testkeys SOURCES testkeys.c)
|
||||
add_sdl_test_executable(testloadso SOURCES testloadso.c)
|
||||
add_sdl_test_executable(testlocale NONINTERACTIVE SOURCES testlocale.c)
|
||||
add_sdl_test_executable(testlock NO_C90 SOURCES testlock.c)
|
||||
add_sdl_test_executable(testrwlock SOURCES testrwlock.c)
|
||||
add_sdl_test_executable(testmouse SOURCES testmouse.c)
|
||||
|
||||
add_sdl_test_executable(testoverlay NEEDS_RESOURCES TESTUTILS SOURCES testoverlay.c)
|
||||
add_sdl_test_executable(testplatform NONINTERACTIVE SOURCES testplatform.c)
|
||||
add_sdl_test_executable(testpower NONINTERACTIVE SOURCES testpower.c)
|
||||
add_sdl_test_executable(testfilesystem NONINTERACTIVE SOURCES testfilesystem.c)
|
||||
if(WIN32 AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
add_sdl_test_executable(pretest SOURCES pretest.c NONINTERACTIVE NONINTERACTIVE_TIMEOUT 60)
|
||||
endif()
|
||||
add_sdl_test_executable(testrendertarget NEEDS_RESOURCES TESTUTILS SOURCES testrendertarget.c)
|
||||
add_sdl_test_executable(testscale NEEDS_RESOURCES TESTUTILS SOURCES testscale.c)
|
||||
add_sdl_test_executable(testsem NONINTERACTIVE DISABLE_THREADS_ARGS "--no-threads" NONINTERACTIVE_ARGS 10 NONINTERACTIVE_TIMEOUT 30 SOURCES testsem.c)
|
||||
add_sdl_test_executable(testsensor SOURCES testsensor.c)
|
||||
add_sdl_test_executable(testshader NEEDS_RESOURCES TESTUTILS SOURCES testshader.c)
|
||||
if(EMSCRIPTEN)
|
||||
target_link_options(testshader PRIVATE "-sLEGACY_GL_EMULATION")
|
||||
endif()
|
||||
add_sdl_test_executable(testshape NEEDS_RESOURCES SOURCES testshape.c ${glass_bmp_header} DEPENDS generate-glass_bmp_header)
|
||||
add_sdl_test_executable(testsprite MAIN_CALLBACKS NEEDS_RESOURCES TESTUTILS SOURCES testsprite.c)
|
||||
add_sdl_test_executable(testspriteminimal SOURCES testspriteminimal.c ${icon_bmp_header} DEPENDS generate-icon_bmp_header)
|
||||
add_sdl_test_executable(testspritesurface SOURCES testspritesurface.c ${icon_bmp_header} DEPENDS generate-icon_bmp_header)
|
||||
add_sdl_test_executable(teststreaming NEEDS_RESOURCES TESTUTILS SOURCES teststreaming.c)
|
||||
add_sdl_test_executable(testtimer NONINTERACTIVE NONINTERACTIVE_ARGS --no-interactive NONINTERACTIVE_TIMEOUT 60 SOURCES testtimer.c)
|
||||
add_sdl_test_executable(testurl SOURCES testurl.c)
|
||||
add_sdl_test_executable(testver NONINTERACTIVE NOTRACKMEM SOURCES testver.c)
|
||||
add_sdl_test_executable(testcamera MAIN_CALLBACKS SOURCES testcamera.c)
|
||||
add_sdl_test_executable(testclipboard MAIN_CALLBACKS SOURCES testclipboard.c ${icon_bmp_header} DEPENDS generate-icon_bmp_header)
|
||||
add_sdl_test_executable(testviewport NEEDS_RESOURCES TESTUTILS SOURCES testviewport.c)
|
||||
add_sdl_test_executable(testwm SOURCES testwm.c)
|
||||
add_sdl_test_executable(testyuv NONINTERACTIVE NONINTERACTIVE_ARGS "--automated" NEEDS_RESOURCES TESTUTILS SOURCES testyuv.c testyuv_cvt.c)
|
||||
add_sdl_test_executable(torturethread NONINTERACTIVE THREADS NONINTERACTIVE_TIMEOUT 30 SOURCES torturethread.c)
|
||||
add_sdl_test_executable(testrendercopyex NEEDS_RESOURCES TESTUTILS SOURCES testrendercopyex.c)
|
||||
add_sdl_test_executable(testmessage SOURCES testmessage.c)
|
||||
add_sdl_test_executable(testdisplayinfo SOURCES testdisplayinfo.c)
|
||||
add_sdl_test_executable(testqsort NONINTERACTIVE SOURCES testqsort.c)
|
||||
add_sdl_test_executable(testbounds NONINTERACTIVE SOURCES testbounds.c)
|
||||
add_sdl_test_executable(testcustomcursor SOURCES testcustomcursor.c)
|
||||
add_sdl_test_executable(testvulkan NO_C90 SOURCES testvulkan.c)
|
||||
add_sdl_test_executable(testoffscreen SOURCES testoffscreen.c)
|
||||
add_sdl_test_executable(testpopup SOURCES testpopup.c)
|
||||
add_sdl_test_executable(testdialog SOURCES testdialog.c)
|
||||
add_sdl_test_executable(testtime SOURCES testtime.c)
|
||||
add_sdl_test_executable(testmanymouse SOURCES testmanymouse.c)
|
||||
add_sdl_test_executable(testmodal SOURCES testmodal.c)
|
||||
add_sdl_test_executable(testtray SOURCES testtray.c)
|
||||
|
||||
|
||||
add_sdl_test_executable(testprocess
|
||||
NONINTERACTIVE THREADS
|
||||
NONINTERACTIVE_ARGS $<TARGET_FILE:childprocess>
|
||||
INSTALLED_ARGS "${CMAKE_INSTALL_FULL_LIBEXECDIR}/installed-tests/SDL3/childprocess${CMAKE_EXECUTABLE_SUFFIX}"
|
||||
SOURCES testprocess.c
|
||||
)
|
||||
add_sdl_test_executable(childprocess SOURCES childprocess.c)
|
||||
add_dependencies(testprocess childprocess)
|
||||
|
||||
if (HAVE_WAYLAND)
|
||||
# Set the GENERATED property on the protocol file, since it is first created at build time
|
||||
set_property(SOURCE ${SDL3_BINARY_DIR}/wayland-generated-protocols/xdg-shell-protocol.c PROPERTY GENERATED 1)
|
||||
add_sdl_test_executable(testwaylandcustom NO_C90 NEEDS_RESOURCES SOURCES testwaylandcustom.c ${SDL3_BINARY_DIR}/wayland-generated-protocols/xdg-shell-protocol.c)
|
||||
# Needed to silence the documentation warning in the generated header file
|
||||
target_compile_options(testwaylandcustom PRIVATE -Wno-documentation-unknown-command)
|
||||
target_link_libraries(testwaylandcustom PRIVATE wayland-client)
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag(-Wformat-overflow HAVE_WFORMAT_OVERFLOW)
|
||||
if(HAVE_WFORMAT_OVERFLOW)
|
||||
target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT_OVERFLOW)
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag(-Wformat HAVE_WFORMAT)
|
||||
if(HAVE_WFORMAT)
|
||||
target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT)
|
||||
endif()
|
||||
|
||||
cmake_push_check_state()
|
||||
if(HAVE_WFORMAT)
|
||||
# Some compilers ignore -Wformat-extra-args without -Wformat
|
||||
string(APPEND CMAKE_REQUIRED_FLAGS " -Wformat")
|
||||
endif()
|
||||
check_c_compiler_flag(-Wformat-extra-args HAVE_WFORMAT_EXTRA_ARGS)
|
||||
cmake_pop_check_state()
|
||||
if(HAVE_WFORMAT_EXTRA_ARGS)
|
||||
target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT_EXTRA_ARGS)
|
||||
endif()
|
||||
|
||||
if(SDL_DUMMYAUDIO)
|
||||
set_property(TARGET testaudioinfo PROPERTY SDL_NONINTERACTIVE 1)
|
||||
endif()
|
||||
|
||||
if(SDL_DUMMYVIDEO)
|
||||
set_property(TARGET testkeys PROPERTY SDL_NONINTERACTIVE 1)
|
||||
set_property(TARGET testbounds PROPERTY SDL_NONINTERACTIVE 1)
|
||||
set_property(TARGET testdisplayinfo PROPERTY SDL_NONINTERACTIVE 1)
|
||||
endif()
|
||||
|
||||
if(OPENGL_FOUND)
|
||||
if(TARGET OpenGL::GL)
|
||||
target_link_libraries(testshader PRIVATE OpenGL::GL)
|
||||
target_link_libraries(testgl PRIVATE OpenGL::GL)
|
||||
else()
|
||||
if(EMSCRIPTEN AND OPENGL_gl_LIBRARY STREQUAL "nul")
|
||||
set(OPENGL_gl_LIBRARY GL)
|
||||
endif()
|
||||
# emscripten's FindOpenGL.cmake does not create OpenGL::GL
|
||||
target_link_libraries(testshader PRIVATE ${OPENGL_gl_LIBRARY})
|
||||
target_link_libraries(testgl PRIVATE ${OPENGL_gl_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
if(MACOS)
|
||||
target_link_options(testnative PRIVATE "-Wl,-framework,Cocoa")
|
||||
endif()
|
||||
if(APPLE)
|
||||
cmake_push_check_state()
|
||||
check_c_compiler_flag(-Wno-error=deprecated-declarations HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
|
||||
cmake_pop_check_state()
|
||||
if(HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
|
||||
set_property(SOURCE "testnativecocoa.m" APPEND PROPERTY COMPILE_OPTIONS "-Wno-error=deprecated-declarations")
|
||||
set_property(TARGET testgles APPEND PROPERTY COMPILE_OPTIONS "-Wno-error=deprecated-declarations")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
if(PSP)
|
||||
# Build EBOOT files if building for PSP
|
||||
foreach(APP ${SDL_TEST_EXECUTABLES})
|
||||
create_pbp_file(
|
||||
TARGET ${APP}
|
||||
TITLE SDL-${APP}
|
||||
ICON_PATH NULL
|
||||
BACKGROUND_PATH NULL
|
||||
PREVIEW_PATH NULL
|
||||
OUTPUT_DIR $<TARGET_FILE_DIR:${APP}>/sdl-${APP}
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(N3DS)
|
||||
foreach(APP ${SDL_TEST_EXECUTABLES})
|
||||
get_target_property(TARGET_BINARY_DIR ${APP} BINARY_DIR)
|
||||
set(ROMFS_DIR "${TARGET_BINARY_DIR}/sdl-${APP}")
|
||||
set(SMDH_FILE "${TARGET_BINARY_DIR}/${APP}.smdh")
|
||||
file(MAKE_DIRECTORY ${ROMFS_DIR})
|
||||
ctr_generate_smdh("${SMDH_FILE}"
|
||||
NAME "SDL-${APP}"
|
||||
DESCRIPTION "SDL3 Test suite"
|
||||
AUTHOR "SDL3 Contributors"
|
||||
ICON "${CMAKE_CURRENT_SOURCE_DIR}/n3ds/logo48x48.png"
|
||||
)
|
||||
ctr_create_3dsx(
|
||||
${APP}
|
||||
ROMFS "${ROMFS_DIR}"
|
||||
SMDH "${SMDH_FILE}"
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(RISCOS)
|
||||
set(SDL_TEST_EXECUTABLES_AIF)
|
||||
foreach(APP ${SDL_TEST_EXECUTABLES})
|
||||
set_property(TARGET ${APP} APPEND_STRING PROPERTY LINK_FLAGS " -static")
|
||||
add_custom_command(
|
||||
OUTPUT ${APP},ff8
|
||||
COMMAND elf2aif ${APP} ${APP},ff8
|
||||
DEPENDS ${APP}
|
||||
)
|
||||
add_custom_target(${APP}-aif ALL DEPENDS ${APP},ff8)
|
||||
list(APPEND SDL_TEST_EXECUTABLES_AIF ${CMAKE_CURRENT_BINARY_DIR}/${APP},ff8)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Set Apple App ID / Bundle ID. This is needed to launch apps on some Apple
|
||||
# platforms (iOS, for example).
|
||||
if(APPLE)
|
||||
foreach(CURRENT_TARGET ${SDL_TEST_EXECUTABLES})
|
||||
set_target_properties("${CURRENT_TARGET}" PROPERTIES
|
||||
MACOSX_BUNDLE_GUI_IDENTIFIER "org.libsdl.${CURRENT_TARGET}"
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION "${SDL3_VERSION}"
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "${SDL3_VERSION}"
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(SDLTEST_TIMEOUT_MULTIPLIER "1" CACHE STRING "SDL test time-out multiplier")
|
||||
|
||||
set(SDLTEST_AUDIO_DRIVER_DEFAULT "dummy")
|
||||
set(SDLTEST_VIDEO_DRIVER_DEFAULT "dummy")
|
||||
if(EMSCRIPTEN)
|
||||
set(SDLTEST_AUDIO_DRIVER_DEFAULT "emscripten")
|
||||
set(SDLTEST_VIDEO_DRIVER_DEFAULT "emscripten")
|
||||
endif()
|
||||
set(SDLTEST_AUDIO_DRIVER "${SDLTEST_AUDIO_DRIVER_DEFAULT}" CACHE STRING "SDL audio driver for CTest")
|
||||
set(SDLTEST_VIDEO_DRIVER "${SDLTEST_VIDEO_DRIVER_DEFAULT}" CACHE STRING "SDL video driver for CTest")
|
||||
|
||||
set(TESTS_ENVIRONMENT
|
||||
"SDL_AUDIO_DRIVER=${SDLTEST_AUDIO_DRIVER}"
|
||||
"SDL_VIDEO_DRIVER=${SDLTEST_VIDEO_DRIVER}"
|
||||
"SDL_ASSERT=abort"
|
||||
)
|
||||
|
||||
function(add_sdl_test TEST TARGET)
|
||||
cmake_parse_arguments(ast "INSTALL" "" "" ${ARGN})
|
||||
get_property(noninteractive TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE)
|
||||
if(noninteractive)
|
||||
if(EMSCRIPTEN)
|
||||
set(command "${PYTHON3_EXECUTABLE};${CMAKE_CURRENT_SOURCE_DIR}/emscripten/driver.py;--server;http://localhost:${SDLTEST_PORT};--browser;${SDLTEST_BROWSER}")
|
||||
if(SDLTEST_CHROME_BINARY)
|
||||
list(APPEND command "--chrome-binary;${SDLTEST_CHROME_BINARY}")
|
||||
endif()
|
||||
list(APPEND command "--;${TARGET}")
|
||||
else()
|
||||
set(command ${TARGET})
|
||||
endif()
|
||||
get_property(noninteractive_arguments TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE_ARGUMENTS)
|
||||
get_property(installed_arguments TARGET ${TARGET} PROPERTY SDL_INSTALLED_ARGUMENTS)
|
||||
get_property(disable_threads_args TARGET ${TARGET} PROPERTY SDL_DISABLE_THREADS_ARGS)
|
||||
get_property(uses_threads TARGET ${TARGET} PROPERTY SDL_THREADS)
|
||||
if(noninteractive_arguments)
|
||||
list(APPEND command ${noninteractive_arguments})
|
||||
endif()
|
||||
if(SDLTEST_TRACKMEM)
|
||||
get_property(notrackmem TARGET ${TARGET} PROPERTY SDL_NOTRACKMEM)
|
||||
if(NOT notrackmem)
|
||||
list(APPEND command --trackmem)
|
||||
endif()
|
||||
endif()
|
||||
if(EMSCRIPTEN)
|
||||
list(APPEND command ${disable_threads_args})
|
||||
endif()
|
||||
add_test(
|
||||
NAME ${TEST}
|
||||
COMMAND ${command}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
if(WIN32 AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.27")
|
||||
set_property(TEST ${TEST} APPEND PROPERTY ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_RUNTIME_DLL_DIRS:${TARGET}>")
|
||||
endif()
|
||||
if(NOT notrackmem)
|
||||
set_property(TEST ${TEST} PROPERTY FAIL_REGULAR_EXPRESSION "Total: [0-9]+\\.[0-9]+ Kb in [1-9][0-9]* allocations")
|
||||
endif()
|
||||
set_tests_properties(${TEST} PROPERTIES ENVIRONMENT "${TESTS_ENVIRONMENT}")
|
||||
if(EMSCRIPTEN AND uses_threads)
|
||||
set_tests_properties(${TEST} PROPERTIES DISABLED 1)
|
||||
endif()
|
||||
get_property(noninteractive_timeout TARGET ${TARGET} PROPERTY SDL_NONINTERACTIVE_TIMEOUT)
|
||||
if(NOT noninteractive_timeout)
|
||||
set(noninteractive_timeout 10)
|
||||
endif()
|
||||
math(EXPR noninteractive_timeout "${noninteractive_timeout}*${SDLTEST_TIMEOUT_MULTIPLIER}")
|
||||
set_tests_properties(${TEST} PROPERTIES TIMEOUT "${noninteractive_timeout}")
|
||||
if(ast_INSTALL AND SDL_INSTALL_TESTS)
|
||||
set(exe ${TARGET})
|
||||
set(installedtestsdir "${CMAKE_INSTALL_FULL_LIBEXECDIR}/installed-tests/SDL3")
|
||||
configure_file(template.test.in "${exe}.test" @ONLY)
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/${exe}.test"
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/installed-tests/SDL3
|
||||
)
|
||||
endif()
|
||||
if(TARGET pretest AND NOT "${TARGET}" MATCHES "pretest")
|
||||
set_property(TEST ${TEST} APPEND PROPERTY DEPENDS pretest)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
foreach(TARGET ${SDL_TEST_EXECUTABLES})
|
||||
add_sdl_test(${TARGET} ${TARGET} INSTALL)
|
||||
endforeach()
|
||||
|
||||
if(NOT EMSCRIPTEN)
|
||||
add_sdl_test(testautomation-no-simd testautomation)
|
||||
add_sdl_test(testplatform-no-simd testplatform)
|
||||
set_property(TEST testautomation-no-simd testplatform-no-simd APPEND PROPERTY ENVIRONMENT "SDL_CPU_FEATURE_MASK=-all")
|
||||
|
||||
# testautomation creates temporary files which might conflict
|
||||
set_property(TEST testautomation-no-simd testautomation PROPERTY RUN_SERIAL TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_INSTALL_TESTS)
|
||||
if(RISCOS)
|
||||
install(
|
||||
FILES ${SDL_TEST_EXECUTABLES_AIF}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3
|
||||
)
|
||||
else()
|
||||
install(
|
||||
TARGETS ${SDL_TEST_EXECUTABLES}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3
|
||||
)
|
||||
endif()
|
||||
if(MSVC)
|
||||
foreach(test IN LISTS SDL_TEST_EXECUTABLES)
|
||||
SDL_install_pdb(${test} "${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3")
|
||||
endforeach()
|
||||
endif()
|
||||
install(
|
||||
FILES ${RESOURCE_FILES}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL3
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ANDROID AND TARGET SDL3::Jar)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../cmake/android")
|
||||
find_package(SdlAndroid MODULE)
|
||||
if(SdlAndroid_FOUND)
|
||||
set(apks "")
|
||||
set(packages "")
|
||||
|
||||
include(SdlAndroidFunctions)
|
||||
sdl_create_android_debug_keystore(SDL_test-debug-keystore)
|
||||
sdl_android_compile_resources(SDL_test-resources RESFOLDER android/res)
|
||||
add_custom_target(sdl-test-apks)
|
||||
foreach(TEST ${SDL_TEST_EXECUTABLES})
|
||||
set(ANDROID_MANIFEST_APP_NAME "${TEST}")
|
||||
set(ANDROID_MANIFEST_LABEL "${TEST}")
|
||||
set(ANDROID_MANIFEST_LIB_NAME "$<TARGET_FILE_BASE_NAME:${TEST}>")
|
||||
set(ANDROID_MANIFEST_PACKAGE "org.libsdl.sdl.test.${TEST}")
|
||||
set(generated_manifest_path "${CMAKE_CURRENT_BINARY_DIR}/android/${TEST}-src/AndroidManifest.xml")
|
||||
string(REPLACE "." "/" JAVA_PACKAGE_DIR "${ANDROID_MANIFEST_PACKAGE}")
|
||||
set(GENERATED_SRC_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/android/${TEST}-src")
|
||||
set(GENERATED_RES_FOLDER "${GENERATED_SRC_FOLDER}/res")
|
||||
set(JAVA_PACKAGE_DIR "${GENERATED_SRC_FOLDER}/${JAVA_PACKAGE_DIR}")
|
||||
configure_file(android/cmake/SDLEntryTestActivity.java.cmake "${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java" @ONLY)
|
||||
configure_file(android/cmake/SDLTestActivity.java.cmake "${JAVA_PACKAGE_DIR}/SDLTestActivity.java" @ONLY)
|
||||
configure_file(android/cmake/res/values/strings.xml.cmake android/res/values/strings-${TEST}.xml @ONLY)
|
||||
configure_file(android/cmake/res/xml/shortcuts.xml.cmake "${GENERATED_RES_FOLDER}/xml/shortcuts.xml" @ONLY)
|
||||
configure_file(android/cmake/AndroidManifest.xml.cmake "${generated_manifest_path}" @ONLY)
|
||||
file(GENERATE
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/android/${TEST}-$<CONFIG>/res/values/strings.xml"
|
||||
INPUT "${CMAKE_CURRENT_BINARY_DIR}/android/res/values/strings-${TEST}.xml"
|
||||
)
|
||||
|
||||
sdl_android_compile_resources(${TEST}-resources
|
||||
RESOURCES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/android/${TEST}-$<CONFIG>/res/values/strings.xml"
|
||||
"${GENERATED_RES_FOLDER}/xml/shortcuts.xml"
|
||||
)
|
||||
|
||||
sdl_android_link_resources(${TEST}-apk-linked
|
||||
MANIFEST "${generated_manifest_path}"
|
||||
PACKAGE ${ANDROID_MANIFEST_PACKAGE}
|
||||
RES_TARGETS SDL_test-resources ${TEST}-resources
|
||||
TARGET_SDK_VERSION 31
|
||||
)
|
||||
|
||||
set(CMAKE_JAVA_COMPILE_FLAGS "-encoding;utf-8")
|
||||
set(classes_path "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TEST}-java.dir/classes")
|
||||
# Some CMake versions have a slow `cmake -E make_directory` implementation
|
||||
if(NOT IS_DIRECTORY "${classes_path}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${classes_path}")
|
||||
endif()
|
||||
set(OUT_JAR "${CMAKE_CURRENT_BINARY_DIR}/${TEST}.jar")
|
||||
add_custom_command(
|
||||
OUTPUT "${OUT_JAR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -rf "${classes_path}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${classes_path}"
|
||||
COMMAND ${Java_JAVAC_EXECUTABLE}
|
||||
-source 1.8 -target 1.8
|
||||
-bootclasspath "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>"
|
||||
"${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java"
|
||||
"${JAVA_PACKAGE_DIR}/SDLTestActivity.java"
|
||||
$<TARGET_PROPERTY:${TEST}-apk-linked,JAVA_R>
|
||||
-cp "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>:${SDL_ANDROID_PLATFORM_ANDROID_JAR}"
|
||||
-d "${classes_path}"
|
||||
COMMAND ${Java_JAR_EXECUTABLE} cf "${OUT_JAR}" -C "${classes_path}" .
|
||||
DEPENDS $<TARGET_PROPERTY:${TEST}-apk-linked,OUTPUTS> "$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>" "${JAVA_PACKAGE_DIR}/SDLTestActivity.java" "${JAVA_PACKAGE_DIR}/SDLEntryTestActivity.java"
|
||||
)
|
||||
add_custom_target(${TEST}-jar DEPENDS "${OUT_JAR}")
|
||||
set_property(TARGET ${TEST}-jar PROPERTY OUTPUT "${OUT_JAR}")
|
||||
|
||||
set(dexworkdir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TEST}-dex.dir")
|
||||
# Some CMake versions have a slow `cmake -E make_directory` implementation
|
||||
if(NOT IS_DIRECTORY "${dexworkdir}")
|
||||
execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${dexworkdir}")
|
||||
endif()
|
||||
set(classes_dex_base_name "classes.dex")
|
||||
set(classes_dex "${dexworkdir}/${classes_dex_base_name}")
|
||||
add_custom_command(
|
||||
OUTPUT "${classes_dex}"
|
||||
COMMAND SdlAndroid::d8
|
||||
$<TARGET_PROPERTY:${TEST}-jar,OUTPUT>
|
||||
$<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>
|
||||
--lib "${SDL_ANDROID_PLATFORM_ANDROID_JAR}"
|
||||
--output "${dexworkdir}"
|
||||
DEPENDS $<TARGET_PROPERTY:${TEST}-jar,OUTPUT> $<TARGET_PROPERTY:SDL3::Jar,JAR_FILE>
|
||||
)
|
||||
add_custom_target(${TEST}-dex DEPENDS "${classes_dex}")
|
||||
set_property(TARGET ${TEST}-dex PROPERTY OUTPUT "${classes_dex}")
|
||||
set_property(TARGET ${TEST}-dex PROPERTY OUTPUT_BASE_NAME "${classes_dex_base_name}")
|
||||
|
||||
sdl_add_to_apk_unaligned(${TEST}-unaligned-apk
|
||||
APK_IN ${TEST}-apk-linked
|
||||
OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/intermediates"
|
||||
ASSETS ${RESOURCE_FILES}
|
||||
NATIVE_LIBS SDL3::SDL3-shared ${TEST}
|
||||
DEX ${TEST}-dex
|
||||
)
|
||||
|
||||
sdl_apk_align(${TEST}-aligned-apk ${TEST}-unaligned-apk
|
||||
OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/intermediates"
|
||||
)
|
||||
sdl_apk_sign(${TEST}-apk ${TEST}-aligned-apk
|
||||
KEYSTORE SDL_test-debug-keystore
|
||||
)
|
||||
add_dependencies(sdl-test-apks ${TEST}-apk)
|
||||
|
||||
if(TARGET SdlAndroid::adb)
|
||||
add_custom_target(install-${TEST}
|
||||
COMMAND "${CMAKE_COMMAND}" -DACTION=install "-DAPKS=$<TARGET_PROPERTY:${TEST}-apk,OUTPUT>" -P "${SDL3_SOURCE_DIR}/cmake/android/SdlAndroidScript.cmake"
|
||||
DEPENDS "${TEST}-apk"
|
||||
)
|
||||
add_custom_target(start-${TEST}
|
||||
COMMAND "${ADB_BIN}" shell am start-activity -S "${ANDROID_MANIFEST_PACKAGE}/.SDLTestActivity"
|
||||
)
|
||||
add_custom_target(build-install-start-${TEST}
|
||||
COMMAND "${CMAKE_COMMAND}" -DACTION=build-install-run "-DEXECUTABLES=${TEST}" "-DBUILD_FOLDER=${CMAKE_BINARY_DIR}" -P "${SDL3_SOURCE_DIR}/cmake/android/SdlAndroidScript.cmake"
|
||||
)
|
||||
endif()
|
||||
|
||||
list(APPEND packages "${ANDROID_MANIFEST_PACKAGE}")
|
||||
list(APPEND install_targets install-${TEST})
|
||||
endforeach()
|
||||
|
||||
if(TARGET SdlAndroid::adb)
|
||||
add_custom_target(install-sdl-test-apks
|
||||
DEPENDS ${install_targets}
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(uninstall-sdl-test-apks
|
||||
COMMAND "${CMAKE_COMMAND}" "-DADB=$<TARGET_FILE:SdlAndroid::adb>" -DACTION=uninstall "-DPACKAGES=${packages}" -P "${SDL3_SOURCE_DIR}/cmake/android/SdlAndroidScript.cmake"
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
8
3rdparty/sdl/SDL/test/COPYING
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
The test programs in this directory tree are for demonstrating and
|
||||
testing the functionality of the SDL library, and are placed in the
|
||||
public domain.
|
||||
|
||||
October 28, 1997
|
||||
--
|
||||
Sam Lantinga (slouken@libsdl.org)
|
||||
49
3rdparty/sdl/SDL/test/LICENSE.txt
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
Source code in this directory, unless otherwise noted, falls under the
|
||||
following license, which is different (more permissive) than SDL's usual
|
||||
license.
|
||||
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
|
||||
This directory contains sample.wav, which is a sample from Will Provost's
|
||||
song, The Living Proof:
|
||||
|
||||
From the album The Living Proof
|
||||
Publisher: 5 Guys Named Will
|
||||
Copyright 1996 Will Provost
|
||||
|
||||
You can get a copy of the full song (and album!) from iTunes...
|
||||
|
||||
https://itunes.apple.com/us/album/the-living-proof/id4153978
|
||||
|
||||
or Amazon...
|
||||
|
||||
http://www.amazon.com/The-Living-Proof-Will-Provost/dp/B00004R8RH
|
||||
|
||||
Thanks to Will for permitting us to distribute this sample with SDL!
|
||||
|
||||
|
||||
|
||||
This directory contains sword.wav:
|
||||
|
||||
sword04.wav by Erdie
|
||||
Original: https://freesound.org/s/27858/
|
||||
License: https://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
|
||||
|
||||
The .bmp files used by testaudio.c were made by AlDraw:
|
||||
|
||||
https://linktr.ee/AlexDraw
|
||||
|
||||
These bitmaps may be distributed as public domain files!
|
||||
74
3rdparty/sdl/SDL/test/android/cmake/AndroidManifest.xml.cmake
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="@ANDROID_MANIFEST_PACKAGE@">
|
||||
|
||||
<!-- OpenGL ES 2.0 -->
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
|
||||
<!-- Touchscreen support -->
|
||||
<uses-feature
|
||||
android:name="android.hardware.touchscreen"
|
||||
android:required="false" />
|
||||
|
||||
<!-- Game controller support -->
|
||||
<uses-feature
|
||||
android:name="android.hardware.bluetooth"
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.gamepad"
|
||||
android:required="false" />
|
||||
<uses-feature
|
||||
android:name="android.hardware.usb.host"
|
||||
android:required="false" />
|
||||
|
||||
<!-- External mouse input events -->
|
||||
<uses-feature
|
||||
android:name="android.hardware.type.pc"
|
||||
android:required="false" />
|
||||
|
||||
<!-- Allow access to the vibrator -->
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
<!-- Allow access to the microphone -->
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
|
||||
<!-- Allow access to the camera -->
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/sdl-test"
|
||||
android:roundIcon="@mipmap/sdl-test_round"
|
||||
android:label="@string/label"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:hardwareAccelerated="true">
|
||||
<activity
|
||||
android:name="@ANDROID_MANIFEST_PACKAGE@.SDLTestActivity"
|
||||
android:exported="true"
|
||||
android:label="@string/label"
|
||||
android:alwaysRetainTaskState="true"
|
||||
android:launchMode="singleInstance"
|
||||
android:configChanges="layoutDirection|locale|orientation|uiMode|screenLayout|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
|
||||
android:preferMinimalPostProcessing="true"
|
||||
android:screenOrientation="fullSensor">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.app.shortcuts"
|
||||
android:resource="@xml/shortcuts" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name="@ANDROID_MANIFEST_PACKAGE@.SDLEntryTestActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/label">
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
121
3rdparty/sdl/SDL/test/android/cmake/SDLEntryTestActivity.java.cmake
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
package @ANDROID_MANIFEST_PACKAGE@;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import org.libsdl.app.SDL;
|
||||
import org.libsdl.app.SDLActivity;
|
||||
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
public class SDLEntryTestActivity extends Activity {
|
||||
|
||||
public String MODIFY_ARGUMENTS = "@ANDROID_MANIFEST_PACKAGE@.MODIFY_ARGUMENTS";
|
||||
boolean isModifyingArguments;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Log.v("SDL", "SDLEntryTestActivity onCreate");
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
String intent_action = getIntent().getAction();
|
||||
Log.v("SDL", "SDLEntryTestActivity intent.action = " + intent_action);
|
||||
|
||||
if (intent_action == MODIFY_ARGUMENTS) {
|
||||
isModifyingArguments = true;
|
||||
createArgumentLayout();
|
||||
} else {
|
||||
startChildActivityAndFinish();
|
||||
}
|
||||
}
|
||||
|
||||
protected void createArgumentLayout() {
|
||||
LayoutInflater inflater = getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.arguments_layout, null);
|
||||
setContentView(view);
|
||||
|
||||
Button button = (Button)requireViewById(R.id.arguments_start_button);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
startChildActivityAndFinish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected String[] getArguments() {
|
||||
if (!isModifyingArguments) {
|
||||
return new String[0];
|
||||
}
|
||||
EditText editText = (EditText)findViewById(R.id.arguments_edit);
|
||||
String text = editText.getText().toString();
|
||||
String new_text = text.replace("[ \t]*[ \t\n]+[ \t]+", "\n").strip();
|
||||
Log.v("SDL", "text = " + text + "\n becomes \n" + new_text);
|
||||
return new_text.split("\n", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
Log.v("SDL", "SDLEntryTestActivity onStart");
|
||||
super.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
Log.v("SDL", "SDLEntryTestActivity onResume");
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
Log.v("SDL", "SDLEntryTestActivity onPause");
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
Log.v("SDL", "SDLEntryTestActivity onStop");
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
Log.v("SDL", "SDLEntryTestActivity onDestroy");
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
Log.v("SDL", "SDLEntryTestActivity onRestoreInstanceState");
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
EditText editText = (EditText)findViewById(R.id.arguments_edit);
|
||||
editText.setText(savedInstanceState.getCharSequence("args", ""), TextView.BufferType.EDITABLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
Log.v("SDL", "SDLEntryTestActivity onSaveInstanceState");
|
||||
EditText editText = (EditText)findViewById(R.id.arguments_edit);
|
||||
outState.putCharSequence("args", editText.getText());
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
private void startChildActivityAndFinish() {
|
||||
Intent intent = new Intent(Intent.ACTION_MAIN);
|
||||
intent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
intent.setClassName("@ANDROID_MANIFEST_PACKAGE@", "@ANDROID_MANIFEST_PACKAGE@.SDLTestActivity");
|
||||
intent.putExtra("arguments", getArguments());
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
33
3rdparty/sdl/SDL/test/android/cmake/SDLTestActivity.java.cmake
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
package @ANDROID_MANIFEST_PACKAGE@;
|
||||
|
||||
import org.libsdl.app.SDLActivity;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
public class SDLTestActivity extends SDLActivity {
|
||||
private String[] m_arguments;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
m_arguments = getIntent().getStringArrayExtra("arguments");
|
||||
if (m_arguments == null) {
|
||||
m_arguments = new String[0];
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getLibraries() {
|
||||
return new String[] { getString(R.string.lib_name) };
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getArguments() {
|
||||
Log.v("SDLTest", "#arguments = " + m_arguments.length);
|
||||
for(int i = 0; i < m_arguments.length; i++) {
|
||||
Log.v("SDLTest", "argument[" + i + "] = " + m_arguments[i]);
|
||||
}
|
||||
return m_arguments;
|
||||
}
|
||||
}
|
||||
5
3rdparty/sdl/SDL/test/android/cmake/res/values/strings.xml.cmake
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<resources>
|
||||
<string name="app_name">@ANDROID_MANIFEST_APP_NAME@</string>
|
||||
<string name="lib_name">@ANDROID_MANIFEST_LIB_NAME@</string>
|
||||
<string name="label">@ANDROID_MANIFEST_LABEL@</string>
|
||||
</resources>
|
||||
24
3rdparty/sdl/SDL/test/android/cmake/res/xml/shortcuts.xml.cmake
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<shortcut
|
||||
android:shortcutId="modifyArguments"
|
||||
android:enabled="true"
|
||||
android:icon="@drawable/sdl-test_foreground"
|
||||
android:shortcutShortLabel="@string/shortcutModifyArgumentsShortLabel">
|
||||
<intent
|
||||
android:action="@ANDROID_MANIFEST_PACKAGE@.MODIFY_ARGUMENTS"
|
||||
android:targetPackage="@ANDROID_MANIFEST_PACKAGE@"
|
||||
android:targetClass="@ANDROID_MANIFEST_PACKAGE@.SDLEntryTestActivity" />
|
||||
</shortcut>
|
||||
<shortcut
|
||||
android:shortcutId="intermediateActivity"
|
||||
android:enabled="true"
|
||||
android:icon="@drawable/sdl-test_foreground"
|
||||
android:shortcutShortLabel="@string/shortcutIntermediateActivityShortLabel">
|
||||
<intent
|
||||
android:action="android.intent.action.MAIN"
|
||||
android:targetPackage="@ANDROID_MANIFEST_PACKAGE@"
|
||||
android:targetClass="@ANDROID_MANIFEST_PACKAGE@.SDLEntryTestActivity" />
|
||||
</shortcut>
|
||||
<!-- Specify more shortcuts here. -->
|
||||
</shortcuts>
|
||||
102
3rdparty/sdl/SDL/test/android/res/drawable/sdl-test_foreground.xml
vendored
Normal file
26
3rdparty/sdl/SDL/test/android/res/layout/arguments_layout.xml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp"
|
||||
android:orientation="vertical" >
|
||||
<TextView
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:inputType="textImeMultiLine|textNoSuggestions"
|
||||
android:text="@string/label_enter_arguments" />
|
||||
<EditText
|
||||
android:id="@+id/arguments_edit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="top"
|
||||
android:hint="@string/hint_enter_arguments_here" />
|
||||
<Button
|
||||
android:id="@+id/arguments_start_button"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/button_start_app" />
|
||||
</LinearLayout>
|
||||
5
3rdparty/sdl/SDL/test/android/res/mipmap-anydpi-v26/sdl-test.xml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/sdl-test_background"/>
|
||||
<foreground android:drawable="@drawable/sdl-test_foreground"/>
|
||||
</adaptive-icon>
|
||||
5
3rdparty/sdl/SDL/test/android/res/mipmap-anydpi-v26/sdl-test_round.xml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/sdl-test_background"/>
|
||||
<foreground android:drawable="@drawable/sdl-test_foreground"/>
|
||||
</adaptive-icon>
|
||||
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-hdpi/sdl-test.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-hdpi/sdl-test_round.png
vendored
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-mdpi/sdl-test.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-mdpi/sdl-test_round.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xhdpi/sdl-test.png
vendored
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xhdpi/sdl-test_round.png
vendored
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xxhdpi/sdl-test.png
vendored
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xxhdpi/sdl-test_round.png
vendored
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xxxhdpi/sdl-test.png
vendored
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
3rdparty/sdl/SDL/test/android/res/mipmap-xxxhdpi/sdl-test_round.png
vendored
Normal file
|
After Width: | Height: | Size: 19 KiB |
7
3rdparty/sdl/SDL/test/android/res/values/arg_strings.xml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<resources>
|
||||
<string name="label_enter_arguments">Arguments</string>
|
||||
<string name="hint_enter_arguments_here">One argument per line.\ne.g.\n--track-mem\n--windows\n3</string>
|
||||
<string name="button_start_app">Start</string>
|
||||
<string name="shortcutModifyArgumentsShortLabel">Modify arguments</string>
|
||||
<string name="shortcutIntermediateActivityShortLabel">Pass through activity</string>
|
||||
</resources>
|
||||
4
3rdparty/sdl/SDL/test/android/res/values/sdl-test_background.xml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="sdl-test_background">#FFFFFF</color>
|
||||
</resources>
|
||||
7
3rdparty/sdl/SDL/test/android/res/values/styles.xml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
|
||||
<!-- Customize your theme here. -->
|
||||
</style>
|
||||
</resources>
|
||||
BIN
3rdparty/sdl/SDL/test/audiofile.bmp
vendored
Normal file
|
After Width: | Height: | Size: 64 KiB |
531
3rdparty/sdl/SDL/test/checkkeys.c
vendored
Normal file
@@ -0,0 +1,531 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Simple program: Loop, watching keystrokes
|
||||
Note that you need to call SDL_PollEvent() or SDL_WaitEvent() to
|
||||
pump the event loop and catch keystrokes.
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
#include <emscripten/emscripten.h>
|
||||
#endif
|
||||
|
||||
#define TEXT_WINDOW_OFFSET_X 2.0f
|
||||
#define TEXT_WINDOW_OFFSET_Y (2.0f + FONT_LINE_HEIGHT)
|
||||
|
||||
#define CURSOR_BLINK_INTERVAL_MS 500
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDLTest_TextWindow *textwindow;
|
||||
char *edit_text;
|
||||
int edit_cursor;
|
||||
int edit_length;
|
||||
} TextWindowState;
|
||||
|
||||
static SDLTest_CommonState *state;
|
||||
static TextWindowState *windowstates;
|
||||
static bool escape_pressed;
|
||||
static bool cursor_visible;
|
||||
static Uint64 last_cursor_change;
|
||||
static int done;
|
||||
|
||||
static TextWindowState *GetTextWindowStateForWindowID(SDL_WindowID id)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
if (id == SDL_GetWindowID(state->windows[i])) {
|
||||
return &windowstates[i];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static SDLTest_TextWindow *GetTextWindowForWindowID(SDL_WindowID id)
|
||||
{
|
||||
TextWindowState *windowstate = GetTextWindowStateForWindowID(id);
|
||||
if (windowstate) {
|
||||
return windowstate->textwindow;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void UpdateTextWindowInputRect(SDL_WindowID id)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
if (id == SDL_GetWindowID(state->windows[i])) {
|
||||
SDLTest_TextWindow *textwindow = windowstates[i].textwindow;
|
||||
int w, h;
|
||||
SDL_Rect rect;
|
||||
int cursor = 0;
|
||||
int current = textwindow->current;
|
||||
const char *current_line = textwindow->lines[current];
|
||||
|
||||
SDL_GetWindowSize(state->windows[i], &w, &h);
|
||||
|
||||
if (current_line) {
|
||||
cursor = (int)SDL_utf8strlen(current_line) * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
|
||||
rect.x = (int)TEXT_WINDOW_OFFSET_X;
|
||||
rect.y = (int)TEXT_WINDOW_OFFSET_Y + current * FONT_LINE_HEIGHT;
|
||||
rect.w = (int)(w - (2 * TEXT_WINDOW_OFFSET_X));
|
||||
rect.h = FONT_CHARACTER_SIZE;
|
||||
SDL_SetTextInputArea(state->windows[i], &rect, cursor);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void print_string(char **text, size_t *maxlen, const char *fmt, ...)
|
||||
{
|
||||
int len;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
len = SDL_vsnprintf(*text, *maxlen, fmt, ap);
|
||||
if (len > 0) {
|
||||
*text += len;
|
||||
if (((size_t)len) < *maxlen) {
|
||||
*maxlen -= (size_t)len;
|
||||
} else {
|
||||
*maxlen = 0;
|
||||
}
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
static void print_modifiers(char **text, size_t *maxlen, SDL_Keymod mod)
|
||||
{
|
||||
print_string(text, maxlen, " modifiers:");
|
||||
if (mod == SDL_KMOD_NONE) {
|
||||
print_string(text, maxlen, " (none)");
|
||||
return;
|
||||
}
|
||||
if ((mod & SDL_KMOD_SHIFT) == SDL_KMOD_SHIFT) {
|
||||
print_string(text, maxlen, " SHIFT");
|
||||
} else {
|
||||
if (mod & SDL_KMOD_LSHIFT) {
|
||||
print_string(text, maxlen, " LSHIFT");
|
||||
}
|
||||
if (mod & SDL_KMOD_RSHIFT) {
|
||||
print_string(text, maxlen, " RSHIFT");
|
||||
}
|
||||
}
|
||||
if ((mod & SDL_KMOD_CTRL) == SDL_KMOD_CTRL) {
|
||||
print_string(text, maxlen, " CTRL");
|
||||
} else {
|
||||
if (mod & SDL_KMOD_LCTRL) {
|
||||
print_string(text, maxlen, " LCTRL");
|
||||
}
|
||||
if (mod & SDL_KMOD_RCTRL) {
|
||||
print_string(text, maxlen, " RCTRL");
|
||||
}
|
||||
}
|
||||
if ((mod & SDL_KMOD_ALT) == SDL_KMOD_ALT) {
|
||||
print_string(text, maxlen, " ALT");
|
||||
} else {
|
||||
if (mod & SDL_KMOD_LALT) {
|
||||
print_string(text, maxlen, " LALT");
|
||||
}
|
||||
if (mod & SDL_KMOD_RALT) {
|
||||
print_string(text, maxlen, " RALT");
|
||||
}
|
||||
}
|
||||
if ((mod & SDL_KMOD_GUI) == SDL_KMOD_GUI) {
|
||||
print_string(text, maxlen, " GUI");
|
||||
} else {
|
||||
if (mod & SDL_KMOD_LGUI) {
|
||||
print_string(text, maxlen, " LGUI");
|
||||
}
|
||||
if (mod & SDL_KMOD_RGUI) {
|
||||
print_string(text, maxlen, " RGUI");
|
||||
}
|
||||
}
|
||||
if (mod & SDL_KMOD_NUM) {
|
||||
print_string(text, maxlen, " NUM");
|
||||
}
|
||||
if (mod & SDL_KMOD_CAPS) {
|
||||
print_string(text, maxlen, " CAPS");
|
||||
}
|
||||
if (mod & SDL_KMOD_MODE) {
|
||||
print_string(text, maxlen, " MODE");
|
||||
}
|
||||
if (mod & SDL_KMOD_LEVEL5) {
|
||||
print_string(text, maxlen, " LEVEL5");
|
||||
}
|
||||
if (mod & SDL_KMOD_SCROLL) {
|
||||
print_string(text, maxlen, " SCROLL");
|
||||
}
|
||||
}
|
||||
|
||||
static void PrintModifierState(void)
|
||||
{
|
||||
char message[512];
|
||||
char *spot;
|
||||
size_t left;
|
||||
|
||||
spot = message;
|
||||
left = sizeof(message);
|
||||
|
||||
print_modifiers(&spot, &left, SDL_GetModState());
|
||||
SDL_Log("Initial state:%s", message);
|
||||
}
|
||||
|
||||
static void PrintKey(SDL_KeyboardEvent *event)
|
||||
{
|
||||
char message[512];
|
||||
char *spot;
|
||||
size_t left;
|
||||
|
||||
spot = message;
|
||||
left = sizeof(message);
|
||||
|
||||
/* Print the keycode, name and state */
|
||||
if (event->key) {
|
||||
print_string(&spot, &left,
|
||||
"Key %s: raw 0x%.2x, scancode %d = %s, keycode 0x%08X = %s ",
|
||||
event->down ? "pressed " : "released",
|
||||
event->raw,
|
||||
event->scancode,
|
||||
event->scancode == SDL_SCANCODE_UNKNOWN ? "UNKNOWN" : SDL_GetScancodeName(event->scancode),
|
||||
event->key, SDL_GetKeyName(event->key));
|
||||
} else {
|
||||
print_string(&spot, &left,
|
||||
"Unknown Key (raw 0x%.2x, scancode %d = %s) %s ",
|
||||
event->raw,
|
||||
event->scancode,
|
||||
event->scancode == SDL_SCANCODE_UNKNOWN ? "UNKNOWN" : SDL_GetScancodeName(event->scancode),
|
||||
event->down ? "pressed " : "released");
|
||||
}
|
||||
print_modifiers(&spot, &left, event->mod);
|
||||
if (event->repeat) {
|
||||
print_string(&spot, &left, " (repeat)");
|
||||
}
|
||||
SDL_Log("%s", message);
|
||||
}
|
||||
|
||||
static void PrintText(const char *eventtype, const char *text)
|
||||
{
|
||||
const char *spot;
|
||||
char expanded[1024];
|
||||
|
||||
expanded[0] = '\0';
|
||||
for (spot = text; *spot; ++spot) {
|
||||
size_t length = SDL_strlen(expanded);
|
||||
(void)SDL_snprintf(expanded + length, sizeof(expanded) - length, "\\x%.2x", (unsigned char)*spot);
|
||||
}
|
||||
SDL_Log("%s Text (%s): \"%s%s\"", eventtype, expanded, *text == '"' ? "\\" : "", text);
|
||||
}
|
||||
|
||||
static void CountKeysDown(void)
|
||||
{
|
||||
int i, count = 0, max_keys = 0;
|
||||
const bool *keystate = SDL_GetKeyboardState(&max_keys);
|
||||
|
||||
for (i = 0; i < max_keys; ++i) {
|
||||
if (keystate[i]) {
|
||||
++count;
|
||||
}
|
||||
}
|
||||
SDL_Log("Keys down: %d", count);
|
||||
}
|
||||
|
||||
static void DrawCursor(int i)
|
||||
{
|
||||
SDL_FRect rect;
|
||||
TextWindowState *windowstate = &windowstates[i];
|
||||
SDLTest_TextWindow *textwindow = windowstate->textwindow;
|
||||
int current = textwindow->current;
|
||||
const char *current_line = textwindow->lines[current];
|
||||
|
||||
rect.x = TEXT_WINDOW_OFFSET_X;
|
||||
if (current_line) {
|
||||
rect.x += SDL_utf8strlen(current_line) * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
if (windowstate->edit_cursor > 0) {
|
||||
rect.x += (float)windowstate->edit_cursor * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
rect.y = TEXT_WINDOW_OFFSET_Y + current * FONT_LINE_HEIGHT;
|
||||
rect.w = FONT_CHARACTER_SIZE * 0.75f;
|
||||
rect.h = (float)FONT_CHARACTER_SIZE;
|
||||
|
||||
SDL_SetRenderDrawColor(state->renderers[i], 0xAA, 0xAA, 0xAA, 255);
|
||||
SDL_RenderFillRect(state->renderers[i], &rect);
|
||||
}
|
||||
|
||||
static void DrawEditText(int i)
|
||||
{
|
||||
SDL_FRect rect;
|
||||
TextWindowState *windowstate = &windowstates[i];
|
||||
SDLTest_TextWindow *textwindow = windowstate->textwindow;
|
||||
int current = textwindow->current;
|
||||
const char *current_line = textwindow->lines[current];
|
||||
|
||||
if (windowstate->edit_text == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Draw the highlight under the selected text */
|
||||
if (windowstate->edit_length > 0) {
|
||||
rect.x = TEXT_WINDOW_OFFSET_X;
|
||||
if (current_line) {
|
||||
rect.x += SDL_utf8strlen(current_line) * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
if (windowstate->edit_cursor > 0) {
|
||||
rect.x += (float)windowstate->edit_cursor * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
rect.y = TEXT_WINDOW_OFFSET_Y + current * FONT_LINE_HEIGHT;
|
||||
rect.w = (float)windowstate->edit_length * FONT_CHARACTER_SIZE;
|
||||
rect.h = (float)FONT_CHARACTER_SIZE;
|
||||
|
||||
SDL_SetRenderDrawColor(state->renderers[i], 0xAA, 0xAA, 0xAA, 255);
|
||||
SDL_RenderFillRect(state->renderers[i], &rect);
|
||||
}
|
||||
|
||||
/* Draw the edit text */
|
||||
rect.x = TEXT_WINDOW_OFFSET_X;
|
||||
if (current_line) {
|
||||
rect.x += SDL_utf8strlen(current_line) * FONT_CHARACTER_SIZE;
|
||||
}
|
||||
rect.y = TEXT_WINDOW_OFFSET_Y + current * FONT_LINE_HEIGHT;
|
||||
SDL_SetRenderDrawColor(state->renderers[i], 255, 255, 0, 255);
|
||||
SDLTest_DrawString(state->renderers[i], rect.x, rect.y, windowstate->edit_text);
|
||||
}
|
||||
|
||||
static void loop(void)
|
||||
{
|
||||
SDL_Event event;
|
||||
Uint64 now;
|
||||
int i;
|
||||
char line[1024];
|
||||
|
||||
while (SDL_PollEvent(&event)) {
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
case SDL_EVENT_KEY_UP:
|
||||
PrintKey(&event.key);
|
||||
if (event.type == SDL_EVENT_KEY_DOWN) {
|
||||
switch (event.key.key) {
|
||||
case SDLK_BACKSPACE:
|
||||
SDLTest_TextWindowAddText(GetTextWindowForWindowID(event.key.windowID), "\b");
|
||||
UpdateTextWindowInputRect(event.key.windowID);
|
||||
break;
|
||||
case SDLK_RETURN:
|
||||
SDLTest_TextWindowAddText(GetTextWindowForWindowID(event.key.windowID), "\n");
|
||||
UpdateTextWindowInputRect(event.key.windowID);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (event.key.key == SDLK_ESCAPE) {
|
||||
/* Pressing escape twice will stop the application */
|
||||
if (escape_pressed) {
|
||||
done = 1;
|
||||
} else {
|
||||
escape_pressed = true;
|
||||
}
|
||||
} else {
|
||||
escape_pressed = true;
|
||||
}
|
||||
}
|
||||
CountKeysDown();
|
||||
break;
|
||||
case SDL_EVENT_TEXT_EDITING:
|
||||
{
|
||||
TextWindowState *windowstate = GetTextWindowStateForWindowID(event.edit.windowID);
|
||||
if (windowstate->edit_text) {
|
||||
SDL_free(windowstate->edit_text);
|
||||
windowstate->edit_text = NULL;
|
||||
}
|
||||
if (event.edit.text && *event.edit.text) {
|
||||
windowstate->edit_text = SDL_strdup(event.edit.text);
|
||||
}
|
||||
windowstate->edit_cursor = event.edit.start;
|
||||
windowstate->edit_length = event.edit.length;
|
||||
|
||||
SDL_snprintf(line, sizeof(line), "EDIT %" SDL_PRIs32 ":%" SDL_PRIs32, event.edit.start, event.edit.length);
|
||||
PrintText(line, event.edit.text);
|
||||
break;
|
||||
}
|
||||
case SDL_EVENT_TEXT_INPUT:
|
||||
PrintText("INPUT", event.text.text);
|
||||
SDLTest_TextWindowAddText(GetTextWindowForWindowID(event.text.windowID), "%s", event.text.text);
|
||||
UpdateTextWindowInputRect(event.text.windowID);
|
||||
break;
|
||||
case SDL_EVENT_FINGER_DOWN:
|
||||
{
|
||||
SDL_Window *window = SDL_GetWindowFromEvent(&event);
|
||||
if (SDL_TextInputActive(window)) {
|
||||
SDL_Log("Stopping text input for window %" SDL_PRIu32, event.tfinger.windowID);
|
||||
SDL_StopTextInput(window);
|
||||
} else {
|
||||
SDL_Log("Starting text input for window %" SDL_PRIu32, event.tfinger.windowID);
|
||||
SDL_StartTextInput(window);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SDL_EVENT_MOUSE_BUTTON_DOWN:
|
||||
if (event.button.button == SDL_BUTTON_RIGHT) {
|
||||
SDL_Window *window = SDL_GetWindowFromEvent(&event);
|
||||
if (SDL_TextInputActive(window)) {
|
||||
SDL_Log("Stopping text input for window %" SDL_PRIu32, event.button.windowID);
|
||||
SDL_StopTextInput(window);
|
||||
} else {
|
||||
SDL_Log("Starting text input for window %" SDL_PRIu32, event.button.windowID);
|
||||
SDL_StartTextInput(window);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SDL_EVENT_KEYMAP_CHANGED:
|
||||
SDL_Log("Keymap changed!");
|
||||
break;
|
||||
case SDL_EVENT_QUIT:
|
||||
done = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
now = SDL_GetTicks();
|
||||
for (i = 0; i < state->num_windows; i++) {
|
||||
char caption[1024];
|
||||
|
||||
/* Clear the window */
|
||||
SDL_SetRenderDrawColor(state->renderers[i], 0, 0, 0, 255);
|
||||
SDL_RenderClear(state->renderers[i]);
|
||||
|
||||
/* Draw the text */
|
||||
SDL_SetRenderDrawColor(state->renderers[i], 255, 255, 255, 255);
|
||||
SDL_snprintf(caption, sizeof(caption), "Text input %s (click right mouse button to toggle)\n", SDL_TextInputActive(state->windows[i]) ? "enabled" : "disabled");
|
||||
SDLTest_DrawString(state->renderers[i], TEXT_WINDOW_OFFSET_X, TEXT_WINDOW_OFFSET_X, caption);
|
||||
SDLTest_TextWindowDisplay(windowstates[i].textwindow, state->renderers[i]);
|
||||
|
||||
/* Draw the cursor */
|
||||
if ((now - last_cursor_change) >= CURSOR_BLINK_INTERVAL_MS) {
|
||||
cursor_visible = !cursor_visible;
|
||||
last_cursor_change = now;
|
||||
}
|
||||
if (cursor_visible) {
|
||||
DrawCursor(i);
|
||||
}
|
||||
|
||||
/* Draw the composition text */
|
||||
DrawEditText(i);
|
||||
|
||||
SDL_RenderPresent(state->renderers[i]);
|
||||
}
|
||||
|
||||
/* Slow down framerate */
|
||||
SDL_Delay(100);
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
if (done) {
|
||||
emscripten_cancel_main_loop();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
SDL_SetHint(SDL_HINT_WINDOWS_RAW_KEYBOARD, "1");
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
state->window_title = "CheckKeys Test";
|
||||
|
||||
/* Parse commandline */
|
||||
if (!SDLTest_CommonDefaultArgs(state, argc, argv)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Disable mouse emulation */
|
||||
SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0");
|
||||
|
||||
/* Initialize SDL */
|
||||
if (!SDLTest_CommonInit(state)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
|
||||
windowstates = (TextWindowState *)SDL_calloc(state->num_windows, sizeof(*windowstates));
|
||||
if (!windowstates) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't allocate text windows: %s", SDL_GetError());
|
||||
goto done;
|
||||
}
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
int w, h;
|
||||
SDL_FRect rect;
|
||||
|
||||
SDL_GetWindowSize(state->windows[i], &w, &h);
|
||||
rect.x = TEXT_WINDOW_OFFSET_X;
|
||||
rect.y = TEXT_WINDOW_OFFSET_Y;
|
||||
rect.w = w - (2 * TEXT_WINDOW_OFFSET_X);
|
||||
rect.h = h - TEXT_WINDOW_OFFSET_Y;
|
||||
windowstates[i].textwindow = SDLTest_TextWindowCreate(rect.x, rect.y, rect.w, rect.h);
|
||||
}
|
||||
|
||||
#ifdef SDL_PLATFORM_IOS
|
||||
{
|
||||
/* Creating the context creates the view, which we need to show keyboard */
|
||||
for (i = 0; i < state->num_windows; i++) {
|
||||
SDL_GL_CreateContext(state->windows[i]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
UpdateTextWindowInputRect(SDL_GetWindowID(state->windows[i]));
|
||||
|
||||
SDL_StartTextInput(state->windows[i]);
|
||||
}
|
||||
|
||||
/* Print initial state */
|
||||
SDL_PumpEvents();
|
||||
PrintModifierState();
|
||||
|
||||
/* Watch keystrokes */
|
||||
done = 0;
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
emscripten_set_main_loop(loop, 0, 1);
|
||||
#else
|
||||
while (!done) {
|
||||
loop();
|
||||
}
|
||||
#endif
|
||||
|
||||
done:
|
||||
if (windowstates) {
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDLTest_TextWindowDestroy(windowstates[i].textwindow);
|
||||
}
|
||||
SDL_free(windowstates);
|
||||
}
|
||||
SDLTest_CleanupTextDrawing();
|
||||
SDLTest_CommonQuit(state);
|
||||
return 0;
|
||||
}
|
||||
170
3rdparty/sdl/SDL/test/childprocess.c
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
SDLTest_CommonState *state;
|
||||
int i;
|
||||
bool print_arguments = false;
|
||||
bool print_environment = false;
|
||||
bool stdin_to_stdout = false;
|
||||
bool read_stdin = false;
|
||||
bool stdin_to_stderr = false;
|
||||
SDL_IOStream *log_stdin = NULL;
|
||||
int exit_code = 0;
|
||||
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (SDL_strcmp(argv[i], "--print-arguments") == 0) {
|
||||
print_arguments = true;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcmp(argv[i], "--print-environment") == 0) {
|
||||
print_environment = true;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcmp(argv[i], "--stdin-to-stdout") == 0) {
|
||||
stdin_to_stdout = true;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcmp(argv[i], "--stdin-to-stderr") == 0) {
|
||||
stdin_to_stderr = true;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcmp(argv[i], "--stdin") == 0) {
|
||||
read_stdin = true;
|
||||
consumed = 1;
|
||||
} else if (SDL_strcmp(argv[i], "--stdout") == 0) {
|
||||
if (i + 1 < argc) {
|
||||
fprintf(stdout, "%s", argv[i + 1]);
|
||||
consumed = 2;
|
||||
}
|
||||
} else if (SDL_strcmp(argv[i], "--stderr") == 0) {
|
||||
if (i + 1 < argc) {
|
||||
fprintf(stderr, "%s", argv[i + 1]);
|
||||
consumed = 2;
|
||||
}
|
||||
} else if (SDL_strcmp(argv[i], "--log-stdin") == 0) {
|
||||
if (i + 1 < argc) {
|
||||
log_stdin = SDL_IOFromFile(argv[i + 1], "w");
|
||||
if (!log_stdin) {
|
||||
fprintf(stderr, "Couldn't open %s\n", argv[i + 1]);
|
||||
return 2;
|
||||
}
|
||||
consumed = 2;
|
||||
}
|
||||
} else if (SDL_strcmp(argv[i], "--exit-code") == 0) {
|
||||
if (i + 1 < argc) {
|
||||
char *endptr = NULL;
|
||||
exit_code = SDL_strtol(argv[i + 1], &endptr, 0);
|
||||
if (endptr && *endptr == '\0') {
|
||||
consumed = 2;
|
||||
}
|
||||
}
|
||||
} else if (SDL_strcmp(argv[i], "--version") == 0) {
|
||||
int version = SDL_GetVersion();
|
||||
fprintf(stdout, "SDL version %d.%d.%d",
|
||||
SDL_VERSIONNUM_MAJOR(version),
|
||||
SDL_VERSIONNUM_MINOR(version),
|
||||
SDL_VERSIONNUM_MICRO(version));
|
||||
fprintf(stderr, "SDL version %d.%d.%d",
|
||||
SDL_VERSIONNUM_MAJOR(version),
|
||||
SDL_VERSIONNUM_MINOR(version),
|
||||
SDL_VERSIONNUM_MICRO(version));
|
||||
consumed = 1;
|
||||
break;
|
||||
} else if (SDL_strcmp(argv[i], "--") == 0) {
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
const char *args[] = {
|
||||
"[--print-arguments]",
|
||||
"[--print-environment]",
|
||||
"[--stdin]",
|
||||
"[--log-stdin FILE]",
|
||||
"[--stdin-to-stdout]",
|
||||
"[--stdout TEXT]",
|
||||
"[--stdin-to-stderr]",
|
||||
"[--stderr TEXT]",
|
||||
"[--exit-code EXIT_CODE]",
|
||||
"[--] [ARG [ARG ...]]",
|
||||
NULL
|
||||
};
|
||||
SDLTest_CommonLogUsage(state, argv[0], args);
|
||||
return 1;
|
||||
}
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
if (print_arguments) {
|
||||
int print_i;
|
||||
for (print_i = 0; i + print_i < argc; print_i++) {
|
||||
fprintf(stdout, "|%d=%s|\r\n", print_i, argv[i + print_i]);
|
||||
}
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if (print_environment) {
|
||||
char **env = SDL_GetEnvironmentVariables(SDL_GetEnvironment());
|
||||
if (env) {
|
||||
for (i = 0; env[i]; ++i) {
|
||||
fprintf(stdout, "%s\n", env[i]);
|
||||
}
|
||||
SDL_free(env);
|
||||
}
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if (stdin_to_stdout || stdin_to_stderr || read_stdin) {
|
||||
for (;;) {
|
||||
char buffer[4 * 4096];
|
||||
size_t result;
|
||||
|
||||
result = fread(buffer, 1, sizeof(buffer), stdin);
|
||||
if (result == 0) {
|
||||
if (!feof(stdin)) {
|
||||
char error[128];
|
||||
|
||||
if (errno == EAGAIN) {
|
||||
clearerr(stdin);
|
||||
SDL_Delay(20);
|
||||
continue;
|
||||
}
|
||||
|
||||
#ifdef SDL_PLATFORM_WINDOWS
|
||||
if (strerror_s(error, sizeof(error), errno) != 0) {
|
||||
SDL_strlcpy(error, "Unknown error", sizeof(error));
|
||||
}
|
||||
#else
|
||||
SDL_strlcpy(error, strerror(errno), sizeof(error));
|
||||
#endif
|
||||
SDL_Log("Error reading from stdin: %s", error);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (log_stdin) {
|
||||
SDL_WriteIO(log_stdin, buffer, result);
|
||||
SDL_FlushIO(log_stdin);
|
||||
}
|
||||
if (stdin_to_stdout) {
|
||||
fwrite(buffer, 1, result, stdout);
|
||||
fflush(stdout);
|
||||
}
|
||||
if (stdin_to_stderr) {
|
||||
fwrite(buffer, 1, result, stderr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (log_stdin) {
|
||||
SDL_CloseIO(log_stdin);
|
||||
}
|
||||
|
||||
SDLTest_CommonDestroyState(state);
|
||||
|
||||
return exit_code;
|
||||
}
|
||||
184
3rdparty/sdl/SDL/test/emscripten/driver.py
vendored
Executable file
@@ -0,0 +1,184 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import contextlib
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
import shlex
|
||||
import sys
|
||||
import time
|
||||
from typing import Optional
|
||||
import urllib.parse
|
||||
|
||||
from selenium import webdriver
|
||||
import selenium.common.exceptions
|
||||
from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class SDLSeleniumTestDriver:
|
||||
def __init__(self, server: str, test: str, arguments: list[str], browser: str, firefox_binary: Optional[str]=None, chrome_binary: Optional[str]=None):
|
||||
self. server = server
|
||||
self.test = test
|
||||
self.arguments = arguments
|
||||
self.chrome_binary = chrome_binary
|
||||
self.firefox_binary = firefox_binary
|
||||
self.driver = None
|
||||
self.stdout_printed = False
|
||||
self.failed_messages: list[str] = []
|
||||
self.return_code = None
|
||||
|
||||
options = [
|
||||
"--headless",
|
||||
]
|
||||
|
||||
driver_contructor = None
|
||||
match browser:
|
||||
case "firefox":
|
||||
driver_contructor = webdriver.Firefox
|
||||
driver_options = webdriver.FirefoxOptions()
|
||||
if self.firefox_binary:
|
||||
driver_options.binary_location = self.firefox_binary
|
||||
case "chrome":
|
||||
driver_contructor = webdriver.Chrome
|
||||
driver_options = webdriver.ChromeOptions()
|
||||
if self.chrome_binary:
|
||||
driver_options.binary_location = self.chrome_binary
|
||||
options.append("--no-sandbox")
|
||||
if driver_contructor is None:
|
||||
raise ValueError(f"Invalid {browser=}")
|
||||
for o in options:
|
||||
driver_options.add_argument(o)
|
||||
logger.debug("About to create driver")
|
||||
self.driver = driver_contructor(options=driver_options)
|
||||
|
||||
@property
|
||||
def finished(self):
|
||||
return len(self.failed_messages) > 0 or self.return_code is not None
|
||||
|
||||
def __del__(self):
|
||||
if self.driver:
|
||||
self.driver.quit()
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
req = {
|
||||
"loghtml": "1",
|
||||
"SDL_ASSERT": "abort",
|
||||
}
|
||||
for key, value in os.environ.items():
|
||||
if key.startswith("SDL_"):
|
||||
req[key] = value
|
||||
req.update({f"arg_{i}": a for i, a in enumerate(self.arguments, 1) })
|
||||
req_str = urllib.parse.urlencode(req)
|
||||
return f"{self.server}/{self.test}.html?{req_str}"
|
||||
|
||||
@contextlib.contextmanager
|
||||
def _selenium_catcher(self):
|
||||
try:
|
||||
yield
|
||||
success = True
|
||||
except selenium.common.exceptions.UnexpectedAlertPresentException as e:
|
||||
# FIXME: switch context, verify text of dialog and answer "a" for abort
|
||||
wait = WebDriverWait(self.driver, timeout=2)
|
||||
try:
|
||||
alert = wait.until(lambda d: d.switch_to.alert)
|
||||
except selenium.common.exceptions.NoAlertPresentException:
|
||||
self.failed_messages.append(e.msg)
|
||||
return False
|
||||
self.failed_messages.append(alert)
|
||||
if "Assertion failure" in e.msg and "[ariA]" in e.msg:
|
||||
alert.send_keys("a")
|
||||
alert.accept()
|
||||
else:
|
||||
self.failed_messages.append(e.msg)
|
||||
success = False
|
||||
return success
|
||||
|
||||
def get_stdout_and_print(self):
|
||||
if self.stdout_printed:
|
||||
return
|
||||
with self._selenium_catcher():
|
||||
div_terminal = self.driver.find_element(by=By.ID, value="terminal")
|
||||
assert div_terminal
|
||||
text = div_terminal.text
|
||||
print(text)
|
||||
self.stdout_printed = True
|
||||
|
||||
def update_return_code(self):
|
||||
with self._selenium_catcher():
|
||||
div_process_quit = self.driver.find_element(by=By.ID, value="process-quit")
|
||||
if not div_process_quit:
|
||||
return
|
||||
if div_process_quit.text != "":
|
||||
try:
|
||||
self.return_code = int(div_process_quit.text)
|
||||
except ValueError:
|
||||
raise ValueError(f"process-quit element contains invalid data: {div_process_quit.text:r}")
|
||||
|
||||
def loop(self):
|
||||
print(f"Connecting to \"{self.url}\"", file=sys.stderr)
|
||||
self.driver.get(url=self.url)
|
||||
self.driver.implicitly_wait(0.2)
|
||||
|
||||
while True:
|
||||
self.update_return_code()
|
||||
if self.finished:
|
||||
break
|
||||
time.sleep(0.1)
|
||||
|
||||
self.get_stdout_and_print()
|
||||
if not self.stdout_printed:
|
||||
self.failed_messages.append("Failed to get stdout/stderr")
|
||||
|
||||
|
||||
|
||||
def main() -> int:
|
||||
parser = argparse.ArgumentParser(allow_abbrev=False, description="Selenium SDL test driver")
|
||||
parser.add_argument("--browser", default="firefox", choices=["firefox", "chrome"], help="browser")
|
||||
parser.add_argument("--server", default="http://localhost:8080", help="Server where SDL tests live")
|
||||
parser.add_argument("--verbose", action="store_true", help="Verbose logging")
|
||||
parser.add_argument("--chrome-binary", help="Chrome binary")
|
||||
parser.add_argument("--firefox-binary", help="Firefox binary")
|
||||
|
||||
index_double_dash = sys.argv.index("--")
|
||||
if index_double_dash < 0:
|
||||
parser.error("Missing test arguments. Need -- <FILENAME> <ARGUMENTS>")
|
||||
driver_arguments = sys.argv[1:index_double_dash]
|
||||
test = pathlib.Path(sys.argv[index_double_dash+1]).name
|
||||
test_arguments = sys.argv[index_double_dash+2:]
|
||||
|
||||
args = parser.parse_args(args=driver_arguments)
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
|
||||
|
||||
logger.debug("driver_arguments=%r test=%r test_arguments=%r", driver_arguments, test, test_arguments)
|
||||
|
||||
sdl_test_driver = SDLSeleniumTestDriver(
|
||||
server=args.server,
|
||||
test=test,
|
||||
arguments=test_arguments,
|
||||
browser=args.browser,
|
||||
chrome_binary=args.chrome_binary,
|
||||
firefox_binary=args.firefox_binary,
|
||||
)
|
||||
sdl_test_driver.loop()
|
||||
|
||||
rc = sdl_test_driver.return_code
|
||||
if sdl_test_driver.failed_messages:
|
||||
for msg in sdl_test_driver.failed_messages:
|
||||
print(f"FAILURE MESSAGE: {msg}", file=sys.stderr)
|
||||
if rc == 0:
|
||||
print(f"Test signaled success (rc=0) but a failure happened", file=sys.stderr)
|
||||
rc = 1
|
||||
sys.stdout.flush()
|
||||
logger.info("Exit code = %d", rc)
|
||||
return rc
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
25
3rdparty/sdl/SDL/test/emscripten/joystick-pre.js
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
Module['arguments'] = ['0'];
|
||||
//Gamepads don't appear until a button is pressed and the joystick/gamepad tests expect one to be connected
|
||||
Module['preRun'].push(function()
|
||||
{
|
||||
Module['print']("Waiting for gamepad...");
|
||||
Module['addRunDependency']("gamepad");
|
||||
window.addEventListener('gamepadconnected', function()
|
||||
{
|
||||
//OK, got one
|
||||
Module['removeRunDependency']("gamepad");
|
||||
}, false);
|
||||
|
||||
//chrome
|
||||
if(!!navigator.webkitGetGamepads)
|
||||
{
|
||||
var timeout = function()
|
||||
{
|
||||
if(navigator.webkitGetGamepads()[0] !== undefined)
|
||||
Module['removeRunDependency']("gamepad");
|
||||
else
|
||||
setTimeout(timeout, 100);
|
||||
}
|
||||
setTimeout(timeout, 100);
|
||||
}
|
||||
});
|
||||
54
3rdparty/sdl/SDL/test/emscripten/pre.js
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
|
||||
Module.preRun = () => {
|
||||
};
|
||||
|
||||
const arguments = [];
|
||||
for (let i = 1; true; i++) {
|
||||
const arg_i = searchParams.get(`arg_${i}`);
|
||||
if (arg_i == null) {
|
||||
break;
|
||||
}
|
||||
arguments.push(arg_i);
|
||||
}
|
||||
|
||||
Module.arguments = arguments;
|
||||
|
||||
if (searchParams.get("loghtml") === "1") {
|
||||
const divTerm = document.createElement("div");
|
||||
divTerm.id = "terminal";
|
||||
document.body.append(divTerm);
|
||||
|
||||
function printToStdOut(msg, id) {
|
||||
const divMsg = document.createElement("div", {class: "stdout"});
|
||||
divMsg.id = id;
|
||||
divMsg.append(document.createTextNode(msg));
|
||||
divTerm.append(divMsg);
|
||||
return divMsg;
|
||||
}
|
||||
|
||||
Module.print = (msg) => {
|
||||
console.log(msg);
|
||||
printToStdOut(msg, "stdout");
|
||||
}
|
||||
|
||||
Module.printErr = (msg) => {
|
||||
console.error(msg);
|
||||
const e = printToStdOut(msg, "stderr");
|
||||
e.style = "color:red";
|
||||
}
|
||||
|
||||
const divQuit = document.createElement("div");
|
||||
divQuit.id = "process-quit";
|
||||
document.body.append(divQuit);
|
||||
|
||||
Module.quit = (msg) => {
|
||||
divQuit.innerText = msg;
|
||||
console.log(`QUIT: ${msg}`)
|
||||
}
|
||||
|
||||
Module.onabort = (msg) => {
|
||||
printToStdOut(`ABORT: ${msg}`, "stderr");
|
||||
console.log(`ABORT: ${msg}`);
|
||||
}
|
||||
}
|
||||
102
3rdparty/sdl/SDL/test/emscripten/server.py
vendored
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Based on http/server.py from Python
|
||||
|
||||
from argparse import ArgumentParser
|
||||
import contextlib
|
||||
from http.server import SimpleHTTPRequestHandler
|
||||
from http.server import ThreadingHTTPServer
|
||||
import os
|
||||
import socket
|
||||
|
||||
|
||||
class MyHTTPRequestHandler(SimpleHTTPRequestHandler):
|
||||
extensions_map = {
|
||||
".manifest": "text/cache-manifest",
|
||||
".html": "text/html",
|
||||
".png": "image/png",
|
||||
".jpg": "image/jpg",
|
||||
".svg": "image/svg+xml",
|
||||
".css": "text/css",
|
||||
".js": "application/x-javascript",
|
||||
".wasm": "application/wasm",
|
||||
"": "application/octet-stream",
|
||||
}
|
||||
|
||||
def __init__(self, *args, maps=None, **kwargs):
|
||||
self.maps = maps or []
|
||||
SimpleHTTPRequestHandler.__init__(self, *args, **kwargs)
|
||||
|
||||
def end_headers(self):
|
||||
self.send_my_headers()
|
||||
SimpleHTTPRequestHandler.end_headers(self)
|
||||
|
||||
def send_my_headers(self):
|
||||
self.send_header("Cache-Control", "no-cache, no-store, must-revalidate")
|
||||
self.send_header("Pragma", "no-cache")
|
||||
self.send_header("Expires", "0")
|
||||
|
||||
def translate_path(self, path):
|
||||
for map_path, map_prefix in self.maps:
|
||||
if path.startswith(map_prefix):
|
||||
res = os.path.join(map_path, path.removeprefix(map_prefix).lstrip("/"))
|
||||
break
|
||||
else:
|
||||
res = super().translate_path(path)
|
||||
return res
|
||||
|
||||
|
||||
def serve_forever(port: int, ServerClass):
|
||||
handler = MyHTTPRequestHandler
|
||||
|
||||
addr = ("0.0.0.0", port)
|
||||
with ServerClass(addr, handler) as httpd:
|
||||
host, port = httpd.socket.getsockname()[:2]
|
||||
url_host = f"[{host}]" if ":" in host else host
|
||||
print(f"Serving HTTP on {host} port {port} (http://{url_host}:{port}/) ...")
|
||||
try:
|
||||
httpd.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
print("\nKeyboard interrupt received, exiting.")
|
||||
return 0
|
||||
|
||||
|
||||
def main():
|
||||
parser = ArgumentParser(allow_abbrev=False)
|
||||
parser.add_argument("port", nargs="?", type=int, default=8080)
|
||||
parser.add_argument("-d", dest="directory", type=str, default=None)
|
||||
parser.add_argument("--map", dest="maps", nargs="+", type=str, help="Mappings, used as e.g. \"$HOME/projects/SDL:/sdl\"")
|
||||
args = parser.parse_args()
|
||||
|
||||
maps = []
|
||||
for m in args.maps:
|
||||
try:
|
||||
path, uri = m.split(":", 1)
|
||||
except ValueError:
|
||||
parser.error(f"Invalid mapping: \"{m}\"")
|
||||
maps.append((path, uri))
|
||||
|
||||
class DualStackServer(ThreadingHTTPServer):
|
||||
def server_bind(self):
|
||||
# suppress exception when protocol is IPv4
|
||||
with contextlib.suppress(Exception):
|
||||
self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
|
||||
return super().server_bind()
|
||||
|
||||
def finish_request(self, request, client_address):
|
||||
self.RequestHandlerClass(
|
||||
request,
|
||||
client_address,
|
||||
self,
|
||||
directory=args.directory,
|
||||
maps=maps,
|
||||
)
|
||||
|
||||
return serve_forever(
|
||||
port=args.port,
|
||||
ServerClass=DualStackServer,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_axis.bmp
vendored
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
847
3rdparty/sdl/SDL/test/gamepad_axis.h
vendored
Normal file
@@ -0,0 +1,847 @@
|
||||
unsigned char gamepad_axis_bmp[] = {
|
||||
0x42, 0x4d, 0x8a, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,
|
||||
0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x27,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x6e,
|
||||
0x69, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff,
|
||||
0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff,
|
||||
0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff,
|
||||
0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x01, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff,
|
||||
0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff,
|
||||
0xff, 0x04, 0xff, 0xff, 0xff, 0x04, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 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, 0xfc, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfc, 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, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
|
||||
0xff, 0xf8, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xf9, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff,
|
||||
0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe5, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff,
|
||||
0xff, 0xfd, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfd, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfd, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x4c, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x84, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xf9, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x24, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x24, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x26, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0x26, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xfe, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff,
|
||||
0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xd5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||
0xff, 0xd5, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xd0, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
unsigned int gamepad_axis_bmp_len = 10122;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_axis_arrow.bmp
vendored
Normal file
|
After Width: | Height: | Size: 410 B |
38
3rdparty/sdl/SDL/test/gamepad_axis_arrow.h
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
unsigned char gamepad_axis_arrow_bmp[] = {
|
||||
0x42, 0x4d, 0x9a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,
|
||||
0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x01,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x6e,
|
||||
0x69, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xc7, 0xc7, 0xc7, 0x7f, 0xc7, 0xc7, 0xc7, 0x02, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x02, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x7f, 0xc7, 0xc7,
|
||||
0xc7, 0x02, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0x7f, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x7f, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x7f, 0xc7, 0xc7,
|
||||
0xc7, 0x02, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0x7f, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0x80, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x80, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x80, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0x80, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0x80, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x80, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7, 0xc7, 0x01, 0xc7, 0xc7,
|
||||
0xc7, 0x02
|
||||
};
|
||||
unsigned int gamepad_axis_arrow_bmp_len = 410;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_back.bmp
vendored
Normal file
|
After Width: | Height: | Size: 18 KiB |
1499
3rdparty/sdl/SDL/test/gamepad_back.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/gamepad_battery.bmp
vendored
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
180
3rdparty/sdl/SDL/test/gamepad_battery.h
vendored
Normal file
@@ -0,0 +1,180 @@
|
||||
unsigned char gamepad_battery_bmp[] = {
|
||||
0x42, 0x4d, 0x4a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x07,
|
||||
0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x26, 0x26, 0xbc, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x1a, 0x1a, 0x1a, 0xfb, 0x30, 0x30,
|
||||
0x30, 0x59, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff,
|
||||
0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x56, 0x56, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03,
|
||||
0x03, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xc2, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff,
|
||||
0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x4a, 0x4a, 0x4a, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x23,
|
||||
0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0x17, 0x17,
|
||||
0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x01, 0x01, 0x01, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff,
|
||||
0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x23, 0x23,
|
||||
0x23, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x44, 0x44,
|
||||
0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x2e, 0x2e,
|
||||
0x2e, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x0b, 0x0b,
|
||||
0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x01, 0x01, 0x01, 0x00, 0x32, 0x32, 0x32, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x92, 0x92, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff,
|
||||
0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x1a, 0x1a,
|
||||
0x1a, 0x00, 0x45, 0x45, 0x45, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0x15, 0xff, 0x0a, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xd6, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x0d, 0x0d, 0x0d, 0xaf, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x0a, 0x0a,
|
||||
0x0a, 0x52, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00
|
||||
};
|
||||
unsigned int gamepad_battery_bmp_len = 2122;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_battery_unknown.bmp
vendored
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
179
3rdparty/sdl/SDL/test/gamepad_battery_unknown.h
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
unsigned char gamepad_battery_unknown_bmp[] = {
|
||||
0x42, 0x4d, 0x3a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,
|
||||
0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x07,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x6e,
|
||||
0x69, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x26, 0x26, 0x26, 0xbc, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x1a, 0x1a, 0x1a, 0xfb, 0x30, 0x30, 0x30, 0x59, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00,
|
||||
0x00, 0xed, 0x00, 0x00, 0x00, 0x2a, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x56, 0x56,
|
||||
0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
|
||||
0x00, 0xd5, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x2a, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xeb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06,
|
||||
0x06, 0x00, 0x4a, 0x4a, 0x4a, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x23, 0x23, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
|
||||
0x02, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x95, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00,
|
||||
0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00,
|
||||
0x00, 0xac, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x23, 0x23, 0x23, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00,
|
||||
0x00, 0xeb, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00,
|
||||
0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3e, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00,
|
||||
0x00, 0x1d, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xac, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0x32, 0x32, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x92, 0x92, 0x92, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x42, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x02, 0x02, 0x02, 0x00, 0x1a, 0x1a, 0x1a, 0x00, 0x45, 0x45,
|
||||
0x45, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xc2, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0x53, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00,
|
||||
0x00, 0xf3, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x49, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x0d, 0x0d, 0x0d, 0xaf, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x0a, 0x0a, 0x0a, 0x52, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00
|
||||
};
|
||||
unsigned int gamepad_battery_unknown_bmp_len = 2106;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_battery_wired.bmp
vendored
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
179
3rdparty/sdl/SDL/test/gamepad_battery_wired.h
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
unsigned char gamepad_battery_wired_bmp[] = {
|
||||
0x42, 0x4d, 0x3a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,
|
||||
0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x07,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x6e,
|
||||
0x69, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x26, 0x26, 0x26, 0xbc, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x1a, 0x1a, 0x1a, 0xfb, 0x30, 0x30, 0x30, 0x59, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x56, 0x56,
|
||||
0x56, 0x3d, 0x00, 0x00, 0x00, 0x14, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01,
|
||||
0x01, 0x1f, 0x00, 0x00, 0x00, 0x8f, 0x03, 0x03, 0x03, 0x0a, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xeb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x02, 0x02, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00,
|
||||
0x00, 0xb8, 0x01, 0x01, 0x01, 0x66, 0x01, 0x01, 0x01, 0x14, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x01, 0x01, 0x01, 0x7b, 0x00, 0x00, 0x00, 0xff, 0x06, 0x06,
|
||||
0x06, 0xcd, 0x4a, 0x4a, 0x4a, 0x28, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x52, 0x23, 0x23, 0x23, 0xf4, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x66, 0x01, 0x01,
|
||||
0x01, 0x14, 0xff, 0xff, 0xff, 0x00, 0x17, 0x17, 0x17, 0xba, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x02, 0x02,
|
||||
0x02, 0x5c, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01,
|
||||
0x01, 0x1f, 0x03, 0x03, 0x03, 0xc2, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x01,
|
||||
0x01, 0x0a, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x85, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xe0, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x1f, 0x1f, 0x1f, 0xda, 0x23, 0x23, 0x23, 0x33, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x44, 0x44, 0x44, 0x43, 0x00, 0x00,
|
||||
0x00, 0xe0, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x2e, 0x2e, 0x2e, 0x2f, 0x0b, 0x0b,
|
||||
0x0b, 0x7b, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0x70, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x02, 0x02, 0x02, 0x14, 0x0b, 0x0b, 0x0b, 0xb8, 0x00, 0x00,
|
||||
0x00, 0xff, 0x11, 0x11, 0x11, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x01, 0x01,
|
||||
0x01, 0x1f, 0x32, 0x32, 0x32, 0x77, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00,
|
||||
0x00, 0xad, 0x92, 0x92, 0x92, 0x12, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x03, 0x03, 0x03, 0x70, 0x00, 0x00, 0x00, 0x3d, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x02, 0x02, 0x02, 0x14, 0x1a, 0x1a, 0x1a, 0x48, 0x45, 0x45,
|
||||
0x45, 0x0a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xc2, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcc, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0x00, 0x0d, 0x0d, 0x0d, 0xaf, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xf5, 0x0a, 0x0a, 0x0a, 0x52, 0xff, 0xff,
|
||||
0xff, 0x00, 0xff, 0xff, 0xff, 0x00
|
||||
};
|
||||
unsigned int gamepad_battery_wired_bmp_len = 2106;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_button.bmp
vendored
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
847
3rdparty/sdl/SDL/test/gamepad_button.h
vendored
Normal file
@@ -0,0 +1,847 @@
|
||||
unsigned char gamepad_button_bmp[] = {
|
||||
0x42, 0x4d, 0x8a, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00,
|
||||
0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x32, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, 0x27,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x6e,
|
||||
0x69, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x31, 0x31,
|
||||
0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31,
|
||||
0x31, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x35, 0x35, 0x35, 0xff, 0x36, 0x36,
|
||||
0x36, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e,
|
||||
0x3e, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x40, 0x40,
|
||||
0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3f, 0x3f,
|
||||
0x3f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x23, 0x23,
|
||||
0x23, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x32, 0x32,
|
||||
0x32, 0xff, 0x36, 0x36, 0x36, 0xff, 0x39, 0x39, 0x39, 0xff, 0x38, 0x38,
|
||||
0x38, 0xff, 0x36, 0x36, 0x36, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33,
|
||||
0x33, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3d, 0x3d,
|
||||
0x3d, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x43, 0x43,
|
||||
0x43, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x1d, 0x1d, 0x1d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x30, 0x30,
|
||||
0x30, 0xff, 0x34, 0x34, 0x34, 0xff, 0x30, 0x30, 0x30, 0xff, 0x21, 0x21,
|
||||
0x21, 0xff, 0x14, 0x14, 0x14, 0xff, 0x0a, 0x0a, 0x0a, 0xff, 0x05, 0x05,
|
||||
0x05, 0xff, 0x04, 0x04, 0x04, 0xff, 0x04, 0x04, 0x04, 0xff, 0x04, 0x04,
|
||||
0x04, 0xff, 0x08, 0x08, 0x08, 0xff, 0x11, 0x11, 0x11, 0xff, 0x1f, 0x1f,
|
||||
0x1f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3a, 0x3a,
|
||||
0x3a, 0xff, 0x42, 0x42, 0x42, 0xff, 0x48, 0x48, 0x48, 0xff, 0x37, 0x37,
|
||||
0x37, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x29, 0x29, 0x29, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x29, 0x29, 0x29, 0xff, 0x12, 0x12,
|
||||
0x12, 0xff, 0x09, 0x09, 0x09, 0xff, 0x15, 0x15, 0x15, 0xff, 0x2e, 0x2e,
|
||||
0x2e, 0xff, 0x57, 0x57, 0x57, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x95, 0x95, 0x95, 0xff, 0x89, 0x89, 0x89, 0xff, 0x6d, 0x6d,
|
||||
0x6d, 0xff, 0x42, 0x42, 0x42, 0xff, 0x1c, 0x1c, 0x1c, 0xff, 0x0d, 0x0d,
|
||||
0x0d, 0xff, 0x10, 0x10, 0x10, 0xff, 0x25, 0x25, 0x25, 0xff, 0x34, 0x34,
|
||||
0x34, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3f, 0x3f,
|
||||
0x3f, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x25, 0x25, 0x25, 0xff, 0x0f, 0x0f,
|
||||
0x0f, 0xff, 0x13, 0x13, 0x13, 0xff, 0x47, 0x47, 0x47, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0x99, 0x99, 0x99, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8d, 0x8d,
|
||||
0x8d, 0xff, 0x95, 0x95, 0x95, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xb3, 0xb3,
|
||||
0xb3, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0x65, 0x65,
|
||||
0x65, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x0b, 0x0b, 0x0b, 0xff, 0x21, 0x21,
|
||||
0x21, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x43, 0x43,
|
||||
0x43, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x14, 0x14,
|
||||
0x14, 0xff, 0x0d, 0x0d, 0x0d, 0xff, 0x47, 0x47, 0x47, 0xff, 0x8e, 0x8e,
|
||||
0x8e, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x85, 0x85, 0x85, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7b, 0x7b,
|
||||
0x7b, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x88, 0x88, 0x88, 0xff, 0x99, 0x99, 0x99, 0xff, 0xa6, 0xa6,
|
||||
0xa6, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x1d, 0x1d, 0x1d, 0xff, 0x0e, 0x0e,
|
||||
0x0e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x44, 0x44,
|
||||
0x44, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x0c, 0x0c, 0x0c, 0xff, 0x18, 0x18, 0x18, 0xff, 0x63, 0x63,
|
||||
0x63, 0xff, 0x87, 0x87, 0x87, 0xff, 0x69, 0x69, 0x69, 0xff, 0x75, 0x75,
|
||||
0x75, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7e, 0x7e,
|
||||
0x7e, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x04, 0x04,
|
||||
0x04, 0xff, 0x28, 0x28, 0x28, 0xff, 0x38, 0x38, 0x38, 0xff, 0x47, 0x47,
|
||||
0x47, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2e, 0x2e,
|
||||
0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x23, 0x23,
|
||||
0x23, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x69, 0x69, 0x69, 0xff, 0x67, 0x67,
|
||||
0x67, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7b, 0x7b,
|
||||
0x7b, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x80, 0x80, 0x80, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0x67, 0x67, 0x67, 0xff, 0x0b, 0x0b,
|
||||
0x0b, 0xff, 0x28, 0x28, 0x28, 0xff, 0x38, 0x38, 0x38, 0xff, 0x44, 0x44,
|
||||
0x44, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2a, 0x2a, 0x2a, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x12, 0x12,
|
||||
0x12, 0xff, 0x25, 0x25, 0x25, 0xff, 0x48, 0x48, 0x48, 0xff, 0x57, 0x57,
|
||||
0x57, 0xff, 0x6d, 0x6d, 0x6d, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x80, 0x80, 0x80, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81, 0x81, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0xab, 0xab, 0xab, 0xff, 0x74, 0x74, 0x74, 0xff, 0x0c, 0x0c,
|
||||
0x0c, 0xff, 0x28, 0x28, 0x28, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x42, 0x42,
|
||||
0x42, 0xff, 0x36, 0x36, 0x36, 0xff, 0x25, 0x25, 0x25, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x32, 0x32,
|
||||
0x32, 0xff, 0x13, 0x13, 0x13, 0xff, 0x20, 0x20, 0x20, 0xff, 0x39, 0x39,
|
||||
0x39, 0xff, 0x50, 0x50, 0x50, 0xff, 0x74, 0x74, 0x74, 0xff, 0x7b, 0x7b,
|
||||
0x7b, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x80, 0x80, 0x80, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x83, 0x83,
|
||||
0x83, 0xff, 0x84, 0x84, 0x84, 0xff, 0x83, 0x83, 0x83, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x84, 0x84, 0x84, 0xff, 0x83, 0x83, 0x83, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x81, 0x81, 0x81, 0xff, 0x81, 0x81, 0x81, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0x60, 0x60, 0x60, 0xff, 0x06, 0x06,
|
||||
0x06, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3f, 0x3f,
|
||||
0x3f, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x1e, 0x1e, 0x1e, 0xff, 0x1a, 0x1a,
|
||||
0x1a, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x72, 0x72,
|
||||
0x72, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x81, 0x81, 0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x85, 0x85, 0x85, 0xff, 0x86, 0x86, 0x86, 0xff, 0x86, 0x86,
|
||||
0x86, 0xff, 0x87, 0x87, 0x87, 0xff, 0x86, 0x86, 0x86, 0xff, 0x86, 0x86,
|
||||
0x86, 0xff, 0x86, 0x86, 0x86, 0xff, 0x84, 0x84, 0x84, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x83, 0x83, 0x83, 0xff, 0x81, 0x81, 0x81, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x80, 0x80, 0x80, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0x34, 0x34, 0x34, 0xff, 0x0f, 0x0f,
|
||||
0x0f, 0xff, 0x35, 0x35, 0x35, 0xff, 0x44, 0x44, 0x44, 0xff, 0x37, 0x37,
|
||||
0x37, 0xff, 0x1e, 0x1e, 0x1e, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x19, 0x19, 0x19, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x35, 0x35,
|
||||
0x35, 0xff, 0x68, 0x68, 0x68, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x82, 0x82, 0x82, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x86, 0x86, 0x86, 0xff, 0x87, 0x87, 0x87, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x89, 0x89, 0x89, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0x8b, 0x8b,
|
||||
0x8b, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x89, 0x89, 0x89, 0xff, 0x87, 0x87, 0x87, 0xff, 0x86, 0x86,
|
||||
0x86, 0xff, 0x84, 0x84, 0x84, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x14, 0x14, 0x14, 0xff, 0x24, 0x24,
|
||||
0x24, 0xff, 0x39, 0x39, 0x39, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x25, 0x25, 0x25, 0xff, 0x23, 0x23,
|
||||
0x23, 0xff, 0x25, 0x25, 0x25, 0xff, 0x55, 0x55, 0x55, 0xff, 0x78, 0x78,
|
||||
0x78, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x84, 0x84, 0x84, 0xff, 0x87, 0x87, 0x87, 0xff, 0x89, 0x89,
|
||||
0x89, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x8d, 0x8d,
|
||||
0x8d, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8d, 0x8d,
|
||||
0x8d, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x89, 0x89, 0x89, 0xff, 0x87, 0x87,
|
||||
0x87, 0xff, 0x85, 0x85, 0x85, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x79, 0x79, 0x79, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x74, 0x74, 0x74, 0xff, 0x0c, 0x0c, 0x0c, 0xff, 0x36, 0x36,
|
||||
0x36, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x25, 0x25,
|
||||
0x25, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x2a,
|
||||
0x2a, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x36, 0x36,
|
||||
0x36, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x22, 0x22, 0x22, 0xff, 0x36, 0x36,
|
||||
0x36, 0xff, 0x72, 0x72, 0x72, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x81, 0x81, 0x81, 0xff, 0x84, 0x84, 0x84, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x91, 0x91, 0x91, 0xff, 0x91, 0x91, 0x91, 0xff, 0x92, 0x92,
|
||||
0x92, 0xff, 0x94, 0x94, 0x94, 0xff, 0x94, 0x94, 0x94, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x92, 0x92, 0x92, 0xff, 0x91, 0x91, 0x91, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x85, 0x85, 0x85, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x29, 0x29, 0x29, 0xff, 0x37, 0x37,
|
||||
0x37, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x25, 0x25,
|
||||
0x25, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x59, 0x59, 0x59, 0xff, 0x77, 0x77,
|
||||
0x77, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x88, 0x88, 0x88, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8c, 0x8c,
|
||||
0x8c, 0xff, 0x90, 0x90, 0x90, 0xff, 0x91, 0x91, 0x91, 0xff, 0x93, 0x93,
|
||||
0x93, 0xff, 0x96, 0x96, 0x96, 0xff, 0x97, 0x97, 0x97, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x98, 0x98, 0x98, 0xff, 0x98, 0x98, 0x98, 0xff, 0x97, 0x97,
|
||||
0x97, 0xff, 0x96, 0x96, 0x96, 0xff, 0x94, 0x94, 0x94, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x85, 0x85, 0x85, 0xff, 0x81, 0x81, 0x81, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x92, 0x92, 0x92, 0xff, 0x4f, 0x4f,
|
||||
0x4f, 0xff, 0x12, 0x12, 0x12, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3d, 0x3d,
|
||||
0x3d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x2a,
|
||||
0x2a, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x3b, 0x3b,
|
||||
0x3b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x27, 0x27, 0x27, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x6a, 0x6a, 0x6a, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x81, 0x81, 0x81, 0xff, 0x86, 0x86, 0x86, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x90, 0x90, 0x90, 0xff, 0x93, 0x93,
|
||||
0x93, 0xff, 0x95, 0x95, 0x95, 0xff, 0x98, 0x98, 0x98, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x97, 0x97, 0x97, 0xff, 0x94, 0x94, 0x94, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x87, 0x87,
|
||||
0x87, 0xff, 0x83, 0x83, 0x83, 0xff, 0x81, 0x81, 0x81, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x83, 0x83, 0x83, 0xff, 0x75, 0x75, 0x75, 0xff, 0x0a, 0x0a,
|
||||
0x0a, 0xff, 0x33, 0x33, 0x33, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3a, 0x3a,
|
||||
0x3a, 0xff, 0x29, 0x29, 0x29, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x2a, 0x2a, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x34, 0x34,
|
||||
0x34, 0xff, 0x22, 0x22, 0x22, 0xff, 0x40, 0x40, 0x40, 0xff, 0x71, 0x71,
|
||||
0x71, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x89, 0x89, 0x89, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x92, 0x92, 0x92, 0xff, 0x96, 0x96, 0x96, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa0, 0xa0,
|
||||
0xa0, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0x9b, 0x9b,
|
||||
0x9b, 0xff, 0x97, 0x97, 0x97, 0xff, 0x94, 0x94, 0x94, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x88, 0x88, 0x88, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x82, 0x82, 0x82, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x79, 0x79, 0x79, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x90, 0x90, 0x90, 0xff, 0x14, 0x14, 0x14, 0xff, 0x23, 0x23,
|
||||
0x23, 0xff, 0x38, 0x38, 0x38, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x2a, 0x2a, 0x2a, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x34, 0x34,
|
||||
0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x1c, 0x1c,
|
||||
0x1c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x74, 0x74, 0x74, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x80, 0x80, 0x80, 0xff, 0x86, 0x86, 0x86, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x91, 0x91, 0x91, 0xff, 0x95, 0x95,
|
||||
0x95, 0xff, 0x98, 0x98, 0x98, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9e, 0x9e,
|
||||
0x9e, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xa4, 0xa4,
|
||||
0xa4, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa4, 0xa4,
|
||||
0xa4, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0x9b, 0x9b,
|
||||
0x9b, 0xff, 0x96, 0x96, 0x96, 0xff, 0x93, 0x93, 0x93, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x87, 0x87, 0x87, 0xff, 0x83, 0x83,
|
||||
0x83, 0xff, 0x82, 0x82, 0x82, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x79, 0x79, 0x79, 0xff, 0x75, 0x75, 0x75, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x24, 0x24, 0x24, 0xff, 0x17, 0x17, 0x17, 0xff, 0x38, 0x38,
|
||||
0x38, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x2a,
|
||||
0x2a, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x38, 0x38, 0x38, 0xff, 0x4b, 0x4b,
|
||||
0x4b, 0xff, 0x44, 0x44, 0x44, 0xff, 0x1c, 0x1c, 0x1c, 0xff, 0x56, 0x56,
|
||||
0x56, 0xff, 0x77, 0x77, 0x77, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x87, 0x87, 0x87, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x93, 0x93, 0x93, 0xff, 0x96, 0x96, 0x96, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa3, 0xa3,
|
||||
0xa3, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xa4, 0xa4,
|
||||
0xa4, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x94, 0x94, 0x94, 0xff, 0x91, 0x91, 0x91, 0xff, 0x8c, 0x8c,
|
||||
0x8c, 0xff, 0x87, 0x87, 0x87, 0xff, 0x84, 0x84, 0x84, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x73, 0x73, 0x73, 0xff, 0x88, 0x88, 0x88, 0xff, 0x34, 0x34,
|
||||
0x34, 0xff, 0x0e, 0x0e, 0x0e, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34,
|
||||
0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x2f, 0x2f, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x45, 0x45,
|
||||
0x45, 0xff, 0x1d, 0x1d, 0x1d, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x78, 0x78,
|
||||
0x78, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x82, 0x82, 0x82, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x91, 0x91, 0x91, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x97, 0x97, 0x97, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9e, 0x9e,
|
||||
0x9e, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xab, 0xab, 0xab, 0xff, 0xab, 0xab,
|
||||
0xab, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xa3, 0xa3,
|
||||
0xa3, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x92, 0x92, 0x92, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x89, 0x89,
|
||||
0x89, 0xff, 0x86, 0x86, 0x86, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x73, 0x73,
|
||||
0x73, 0xff, 0x77, 0x77, 0x77, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x0b, 0x0b,
|
||||
0x0b, 0xff, 0x35, 0x35, 0x35, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x33, 0x33, 0x33, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3c, 0x3c,
|
||||
0x3c, 0xff, 0x79, 0x79, 0x79, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x1d, 0x1d,
|
||||
0x1d, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7e, 0x7e,
|
||||
0x7e, 0xff, 0x82, 0x82, 0x82, 0xff, 0x89, 0x89, 0x89, 0xff, 0x8e, 0x8e,
|
||||
0x8e, 0xff, 0x92, 0x92, 0x92, 0xff, 0x95, 0x95, 0x95, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0xa2, 0xa2,
|
||||
0xa2, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xac, 0xac,
|
||||
0xac, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xab, 0xab,
|
||||
0xab, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa0, 0xa0,
|
||||
0xa0, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x97, 0x97, 0x97, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0x87, 0x87,
|
||||
0x87, 0xff, 0x83, 0x83, 0x83, 0xff, 0x82, 0x82, 0x82, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x73, 0x73, 0x73, 0xff, 0x64, 0x64,
|
||||
0x64, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x0b, 0x0b, 0x0b, 0xff, 0x32, 0x32,
|
||||
0x32, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36,
|
||||
0x36, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x56, 0x56, 0x56, 0xff, 0x1c, 0x1c, 0x1c, 0xff, 0x60, 0x60,
|
||||
0x60, 0xff, 0x78, 0x78, 0x78, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x92, 0x92,
|
||||
0x92, 0xff, 0x96, 0x96, 0x96, 0xff, 0x99, 0x99, 0x99, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xa6, 0xa6,
|
||||
0xa6, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xac, 0xac, 0xac, 0xff, 0xae, 0xae,
|
||||
0xae, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xab, 0xab, 0xab, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x99, 0x99, 0x99, 0xff, 0x94, 0x94, 0x94, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x88, 0x88, 0x88, 0xff, 0x83, 0x83,
|
||||
0x83, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x73, 0x73, 0x73, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x37, 0x37,
|
||||
0x37, 0xff, 0x0d, 0x0d, 0x0d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x30, 0x30,
|
||||
0x30, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x3d, 0x3d, 0xff, 0x3b, 0x3b,
|
||||
0x3b, 0xff, 0x47, 0x47, 0x47, 0xff, 0xac, 0xac, 0xac, 0xff, 0x71, 0x71,
|
||||
0x71, 0xff, 0x1a, 0x1a, 0x1a, 0xff, 0x66, 0x66, 0x66, 0xff, 0x77, 0x77,
|
||||
0x77, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x82, 0x82, 0x82, 0xff, 0x89, 0x89,
|
||||
0x89, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x92, 0x92, 0x92, 0xff, 0x95, 0x95,
|
||||
0x95, 0xff, 0x99, 0x99, 0x99, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0xab, 0xab, 0xab, 0xff, 0xac, 0xac, 0xac, 0xff, 0xac, 0xac,
|
||||
0xac, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa4, 0xa4,
|
||||
0xa4, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x94, 0x94, 0x94, 0xff, 0x90, 0x90, 0x90, 0xff, 0x8b, 0x8b,
|
||||
0x8b, 0xff, 0x88, 0x88, 0x88, 0xff, 0x83, 0x83, 0x83, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x71, 0x71,
|
||||
0x71, 0xff, 0x50, 0x50, 0x50, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x0e, 0x0e,
|
||||
0x0e, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x44, 0x44, 0x44, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4d, 0x4d,
|
||||
0x4d, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0x15, 0x15,
|
||||
0x15, 0xff, 0x6c, 0x6c, 0x6c, 0xff, 0x76, 0x76, 0x76, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x80, 0x80, 0x80, 0xff, 0x88, 0x88, 0x88, 0xff, 0x8e, 0x8e,
|
||||
0x8e, 0xff, 0x92, 0x92, 0x92, 0xff, 0x95, 0x95, 0x95, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0xa1, 0xa1,
|
||||
0xa1, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x97, 0x97, 0x97, 0xff, 0x93, 0x93,
|
||||
0x93, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x84, 0x84, 0x84, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7e, 0x7e,
|
||||
0x7e, 0xff, 0x79, 0x79, 0x79, 0xff, 0x6d, 0x6d, 0x6d, 0xff, 0x45, 0x45,
|
||||
0x45, 0xff, 0x24, 0x24, 0x24, 0xff, 0x13, 0x13, 0x13, 0xff, 0x35, 0x35,
|
||||
0x35, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x4b,
|
||||
0x4b, 0xff, 0x45, 0x45, 0x45, 0xff, 0x58, 0x58, 0x58, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0x18, 0x18, 0x18, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x73, 0x73, 0x73, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x87, 0x87, 0x87, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x95, 0x95, 0x95, 0xff, 0x98, 0x98, 0x98, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa1, 0xa1,
|
||||
0xa1, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xa3, 0xa3,
|
||||
0xa3, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9a, 0x9a,
|
||||
0x9a, 0xff, 0x97, 0x97, 0x97, 0xff, 0x93, 0x93, 0x93, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x86, 0x86, 0x86, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x64, 0x64, 0x64, 0xff, 0x39, 0x39, 0x39, 0xff, 0x1b, 0x1b,
|
||||
0x1b, 0xff, 0x1b, 0x1b, 0x1b, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x58, 0x58, 0xff, 0x53, 0x53,
|
||||
0x53, 0xff, 0x6d, 0x6d, 0x6d, 0xff, 0x70, 0x70, 0x70, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x6f, 0x6f, 0x6f, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x78, 0x78, 0x78, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x83, 0x83,
|
||||
0x83, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x90, 0x90, 0x90, 0xff, 0x93, 0x93,
|
||||
0x93, 0xff, 0x95, 0x95, 0x95, 0xff, 0x98, 0x98, 0x98, 0xff, 0x9b, 0x9b,
|
||||
0x9b, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xa1, 0xa1,
|
||||
0xa1, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xa3, 0xa3,
|
||||
0xa3, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x98, 0x98, 0x98, 0xff, 0x95, 0x95,
|
||||
0x95, 0xff, 0x91, 0x91, 0x91, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x89, 0x89,
|
||||
0x89, 0xff, 0x86, 0x86, 0x86, 0xff, 0x82, 0x82, 0x82, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x77, 0x77, 0x77, 0xff, 0x54, 0x54,
|
||||
0x54, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x13, 0x13, 0x13, 0xff, 0x29, 0x29,
|
||||
0x29, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x5f, 0x5f, 0x5f, 0xff, 0x67, 0x67, 0x67, 0xff, 0x70, 0x70,
|
||||
0x70, 0xff, 0x77, 0x77, 0x77, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x40, 0x40, 0x40, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0x71, 0x71,
|
||||
0x71, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x80, 0x80, 0x80, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x92, 0x92, 0x92, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x97, 0x97, 0x97, 0xff, 0x99, 0x99, 0x99, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x96, 0x96, 0x96, 0xff, 0x93, 0x93, 0x93, 0xff, 0x90, 0x90,
|
||||
0x90, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x89, 0x89, 0x89, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x75, 0x75, 0x75, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x26, 0x26,
|
||||
0x26, 0xff, 0x11, 0x11, 0x11, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x79, 0x79, 0x79, 0xff, 0x66, 0x66, 0x66, 0xff, 0x8d, 0x8d,
|
||||
0x8d, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0x27, 0x27,
|
||||
0x27, 0xff, 0xac, 0xac, 0xac, 0xff, 0x81, 0x81, 0x81, 0xff, 0x78, 0x78,
|
||||
0x78, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x83, 0x83, 0x83, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x92, 0x92, 0x92, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x97, 0x97, 0x97, 0xff, 0x99, 0x99, 0x99, 0xff, 0x9a, 0x9a,
|
||||
0x9a, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9c, 0x9c,
|
||||
0x9c, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x9a, 0x9a,
|
||||
0x9a, 0xff, 0x99, 0x99, 0x99, 0xff, 0x97, 0x97, 0x97, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x92, 0x92, 0x92, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8b, 0x8b,
|
||||
0x8b, 0xff, 0x87, 0x87, 0x87, 0xff, 0x83, 0x83, 0x83, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x63, 0x63,
|
||||
0x63, 0xff, 0x26, 0x26, 0x26, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x20, 0x20,
|
||||
0x20, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84,
|
||||
0x84, 0xff, 0x74, 0x74, 0x74, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x8e, 0x8e,
|
||||
0x8e, 0xff, 0xec, 0xec, 0xec, 0xff, 0x50, 0x50, 0x50, 0xff, 0x69, 0x69,
|
||||
0x69, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0x75, 0x75, 0x75, 0xff, 0x7b, 0x7b,
|
||||
0x7b, 0xff, 0x80, 0x80, 0x80, 0xff, 0x86, 0x86, 0x86, 0xff, 0x8b, 0x8b,
|
||||
0x8b, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x92, 0x92, 0x92, 0xff, 0x95, 0x95,
|
||||
0x95, 0xff, 0x97, 0x97, 0x97, 0xff, 0x98, 0x98, 0x98, 0xff, 0x99, 0x99,
|
||||
0x99, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x9b, 0x9b,
|
||||
0x9b, 0xff, 0x99, 0x99, 0x99, 0xff, 0x98, 0x98, 0x98, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x94, 0x94, 0x94, 0xff, 0x92, 0x92, 0x92, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x89, 0x89, 0x89, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x75, 0x75, 0x75, 0xff, 0x39, 0x39, 0x39, 0xff, 0x21, 0x21,
|
||||
0x21, 0xff, 0x1b, 0x1b, 0x1b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x97, 0x97, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0x21, 0x21, 0x21, 0xff, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0x95, 0x95, 0x95, 0xff, 0x77, 0x77, 0x77, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x81, 0x81, 0x81, 0xff, 0x87, 0x87, 0x87, 0xff, 0x8b, 0x8b,
|
||||
0x8b, 0xff, 0x90, 0x90, 0x90, 0xff, 0x92, 0x92, 0x92, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x95, 0x95, 0x95, 0xff, 0x96, 0x96, 0x96, 0xff, 0x97, 0x97,
|
||||
0x97, 0xff, 0x97, 0x97, 0x97, 0xff, 0x97, 0x97, 0x97, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x95, 0x95, 0x95, 0xff, 0x93, 0x93, 0x93, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x86, 0x86, 0x86, 0xff, 0x82, 0x82, 0x82, 0xff, 0x7e, 0x7e,
|
||||
0x7e, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x78, 0x78, 0x78, 0xff, 0x55, 0x55,
|
||||
0x55, 0xff, 0x1d, 0x1d, 0x1d, 0xff, 0x25, 0x25, 0x25, 0xff, 0x26, 0x26,
|
||||
0x26, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xa7, 0xa7, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0xac, 0xac, 0xac, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0x83, 0x83, 0x83, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x81, 0x81, 0x81, 0xff, 0x87, 0x87, 0x87, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x90, 0x90, 0x90, 0xff, 0x92, 0x92,
|
||||
0x92, 0xff, 0x93, 0x93, 0x93, 0xff, 0x93, 0x93, 0x93, 0xff, 0x94, 0x94,
|
||||
0x94, 0xff, 0x94, 0x94, 0x94, 0xff, 0x93, 0x93, 0x93, 0xff, 0x91, 0x91,
|
||||
0x91, 0xff, 0x90, 0x90, 0x90, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8c, 0x8c,
|
||||
0x8c, 0xff, 0x89, 0x89, 0x89, 0xff, 0x86, 0x86, 0x86, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x78, 0x78,
|
||||
0x78, 0xff, 0x64, 0x64, 0x64, 0xff, 0x25, 0x25, 0x25, 0xff, 0x25, 0x25,
|
||||
0x25, 0xff, 0x29, 0x29, 0x29, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2e, 0x2e,
|
||||
0x2e, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xb4, 0xb4, 0xb4, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xa1, 0xa1,
|
||||
0xa1, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xfb, 0xfb,
|
||||
0xfb, 0xff, 0x54, 0x54, 0x54, 0xff, 0x6b, 0x6b, 0x6b, 0xff, 0xba, 0xba,
|
||||
0xba, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x79, 0x79, 0x79, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x80, 0x80, 0x80, 0xff, 0x86, 0x86, 0x86, 0xff, 0x88, 0x88,
|
||||
0x88, 0xff, 0x8c, 0x8c, 0x8c, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x90, 0x90, 0x90, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x8d, 0x8d,
|
||||
0x8d, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x88, 0x88, 0x88, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x81, 0x81, 0x81, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7a, 0x7a,
|
||||
0x7a, 0xff, 0x77, 0x77, 0x77, 0xff, 0x6a, 0x6a, 0x6a, 0xff, 0x32, 0x32,
|
||||
0x32, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xb7, 0xb7, 0xb7, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0x94, 0x94, 0x94, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0x43, 0x43, 0x43, 0xff, 0x83, 0x83, 0x83, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0x86, 0x86, 0x86, 0xff, 0x79, 0x79, 0x79, 0xff, 0x78, 0x78,
|
||||
0x78, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x82, 0x82, 0x82, 0xff, 0x85, 0x85,
|
||||
0x85, 0xff, 0x86, 0x86, 0x86, 0xff, 0x89, 0x89, 0x89, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x8a, 0x8a,
|
||||
0x8a, 0xff, 0x88, 0x88, 0x88, 0xff, 0x87, 0x87, 0x87, 0xff, 0x84, 0x84,
|
||||
0x84, 0xff, 0x83, 0x83, 0x83, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7b, 0x7b,
|
||||
0x7b, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x77, 0x77, 0x77, 0xff, 0x67, 0x67,
|
||||
0x67, 0xff, 0x37, 0x37, 0x37, 0xff, 0x1a, 0x1a, 0x1a, 0xff, 0x3a, 0x3a,
|
||||
0x3a, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0x92, 0x92, 0x92, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0x45, 0x45, 0x45, 0xff, 0x6a, 0x6a, 0x6a, 0xff, 0xb8, 0xb8,
|
||||
0xb8, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x77, 0x77,
|
||||
0x77, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x80, 0x80,
|
||||
0x80, 0xff, 0x81, 0x81, 0x81, 0xff, 0x82, 0x82, 0x82, 0xff, 0x83, 0x83,
|
||||
0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x82, 0x82, 0x82, 0xff, 0x81, 0x81,
|
||||
0x81, 0xff, 0x80, 0x80, 0x80, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7c, 0x7c,
|
||||
0x7c, 0xff, 0x7c, 0x7c, 0x7c, 0xff, 0x79, 0x79, 0x79, 0xff, 0x73, 0x73,
|
||||
0x73, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x18, 0x18,
|
||||
0x18, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3b, 0x3b,
|
||||
0x3b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xad, 0xad, 0xad, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xb9, 0xb9,
|
||||
0xb9, 0xff, 0x99, 0x99, 0x99, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0xab, 0xab,
|
||||
0xab, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x75, 0x75,
|
||||
0x75, 0xff, 0x78, 0x78, 0x78, 0xff, 0x7d, 0x7d, 0x7d, 0xff, 0x7e, 0x7e,
|
||||
0x7e, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7f, 0x7f, 0x7f, 0xff, 0x7f, 0x7f,
|
||||
0x7f, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x79, 0x79, 0x79, 0xff, 0x73, 0x73,
|
||||
0x73, 0xff, 0x67, 0x67, 0x67, 0xff, 0x45, 0x45, 0x45, 0xff, 0x1a, 0x1a,
|
||||
0x1a, 0xff, 0x1d, 0x1d, 0x1d, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x63, 0x63,
|
||||
0x63, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xbc,
|
||||
0xbc, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xba, 0xba,
|
||||
0xba, 0xff, 0x92, 0x92, 0x92, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xfd, 0xfd,
|
||||
0xfd, 0xff, 0x90, 0x90, 0x90, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x7d, 0x7d,
|
||||
0x7d, 0xff, 0xb6, 0xb6, 0xb6, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x96, 0x96,
|
||||
0x96, 0xff, 0x7e, 0x7e, 0x7e, 0xff, 0x78, 0x78, 0x78, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x7a, 0x7a, 0x7a, 0xff, 0x79, 0x79,
|
||||
0x79, 0xff, 0x76, 0x76, 0x76, 0xff, 0x73, 0x73, 0x73, 0xff, 0x71, 0x71,
|
||||
0x71, 0xff, 0x66, 0x66, 0x66, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x25, 0x25,
|
||||
0x25, 0xff, 0x12, 0x12, 0x12, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0x85, 0x85, 0x85, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xb8, 0xb8,
|
||||
0xb8, 0xff, 0x94, 0x94, 0x94, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0xf0, 0xf0,
|
||||
0xf0, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0x60, 0x60, 0x60, 0xff, 0x47, 0x47,
|
||||
0x47, 0xff, 0x66, 0x66, 0x66, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0xa2, 0xa2,
|
||||
0xa2, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x9b, 0x9b,
|
||||
0x9b, 0xff, 0x91, 0x91, 0x91, 0xff, 0x83, 0x83, 0x83, 0xff, 0x74, 0x74,
|
||||
0x74, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x1c, 0x1c,
|
||||
0x1c, 0xff, 0x18, 0x18, 0x18, 0xff, 0x40, 0x40, 0x40, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x3d, 0x3d,
|
||||
0x3d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xae, 0xae, 0xae, 0xff, 0xab, 0xab, 0xab, 0xff, 0xb8, 0xb8,
|
||||
0xb8, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xa2, 0xa2,
|
||||
0xa2, 0xff, 0x6c, 0x6c, 0x6c, 0xff, 0x45, 0x45, 0x45, 0xff, 0x35, 0x35,
|
||||
0x35, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2a, 0x2a,
|
||||
0x2a, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x16, 0x16, 0x16, 0xff, 0x1e, 0x1e,
|
||||
0x1e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x80, 0x80, 0x80, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0x64, 0x64,
|
||||
0x64, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xab, 0xab, 0xab, 0xff, 0xaa, 0xaa,
|
||||
0xaa, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xad, 0xad, 0xad, 0xff, 0x8f, 0x8f,
|
||||
0x8f, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xf5, 0xf5,
|
||||
0xf5, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xee, 0xee, 0xee, 0xff, 0xf7, 0xf7,
|
||||
0xf7, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0x6b, 0x6b,
|
||||
0x6b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2e, 0x2e,
|
||||
0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b,
|
||||
0x2b, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0x9f, 0x9f,
|
||||
0x9f, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xae, 0xae,
|
||||
0xae, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0x84, 0x84, 0x84, 0xff, 0x61, 0x61,
|
||||
0x61, 0xff, 0x45, 0x45, 0x45, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2c, 0x2c,
|
||||
0x2c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x28, 0x28,
|
||||
0x28, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xca, 0xca, 0xca, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xaa, 0xaa,
|
||||
0xaa, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0x98, 0x98,
|
||||
0x98, 0xff, 0x8f, 0x8f, 0x8f, 0xff, 0x89, 0x89, 0x89, 0xff, 0x82, 0x82,
|
||||
0x82, 0xff, 0x73, 0x73, 0x73, 0xff, 0x66, 0x66, 0x66, 0xff, 0x59, 0x59,
|
||||
0x59, 0xff, 0x47, 0x47, 0x47, 0xff, 0x37, 0x37, 0x37, 0xff, 0x2f, 0x2f,
|
||||
0x2f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d,
|
||||
0x2d, 0xff, 0x29, 0x29, 0x29, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0xcb, 0xcb, 0xff, 0xc0, 0xc0,
|
||||
0xc0, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa5, 0xa5,
|
||||
0xa5, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x97, 0x97,
|
||||
0x97, 0xff, 0x8e, 0x8e, 0x8e, 0xff, 0x81, 0x81, 0x81, 0xff, 0x68, 0x68,
|
||||
0x68, 0xff, 0x56, 0x56, 0x56, 0xff, 0x47, 0x47, 0x47, 0xff, 0x43, 0x43,
|
||||
0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x31, 0x31,
|
||||
0x31, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xd4, 0xd4, 0xd4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x8e, 0x8e,
|
||||
0x8e, 0xff, 0x80, 0x80, 0x80, 0xff, 0x6f, 0x6f, 0x6f, 0xff, 0x60, 0x60,
|
||||
0x60, 0xff, 0x52, 0x52, 0x52, 0xff, 0x47, 0x47, 0x47, 0xff, 0x33, 0x33,
|
||||
0x33, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
unsigned int gamepad_button_bmp_len = 10122;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_button_background.bmp
vendored
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
708
3rdparty/sdl/SDL/test/gamepad_button_background.h
vendored
Normal file
@@ -0,0 +1,708 @@
|
||||
unsigned char gamepad_button_background_bmp[] = {
|
||||
0x42, 0x4d, 0x0a, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20,
|
||||
0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x13, 0x13, 0x0a, 0x38, 0x38,
|
||||
0x38, 0x53, 0x52, 0x52, 0x52, 0xc8, 0x69, 0x69, 0x69, 0xe7, 0x6d, 0x6d,
|
||||
0x6d, 0xe9, 0x6d, 0x6d, 0x6d, 0xe9, 0x6d, 0x6d, 0x6d, 0xe9, 0x6c, 0x6c,
|
||||
0x6c, 0xe9, 0x6c, 0x6c, 0x6c, 0xe9, 0x6c, 0x6c, 0x6c, 0xe9, 0x6c, 0x6c,
|
||||
0x6c, 0xe9, 0x6c, 0x6c, 0x6c, 0xe9, 0x6b, 0x6b, 0x6b, 0xe9, 0x6b, 0x6b,
|
||||
0x6b, 0xe9, 0x6a, 0x6a, 0x6a, 0xe9, 0x6a, 0x6a, 0x6a, 0xe9, 0x6a, 0x6a,
|
||||
0x6a, 0xe9, 0x69, 0x69, 0x69, 0xe9, 0x69, 0x69, 0x69, 0xe9, 0x69, 0x69,
|
||||
0x69, 0xe9, 0x68, 0x68, 0x68, 0xe9, 0x68, 0x68, 0x68, 0xe9, 0x68, 0x68,
|
||||
0x68, 0xe9, 0x67, 0x67, 0x67, 0xe9, 0x67, 0x67, 0x67, 0xe9, 0x67, 0x67,
|
||||
0x67, 0xe9, 0x66, 0x66, 0x66, 0xe9, 0x66, 0x66, 0x66, 0xe9, 0x66, 0x66,
|
||||
0x66, 0xe9, 0x66, 0x66, 0x66, 0xe9, 0x65, 0x65, 0x65, 0xe9, 0x65, 0x65,
|
||||
0x65, 0xe9, 0x65, 0x65, 0x65, 0xe9, 0x64, 0x64, 0x64, 0xe9, 0x64, 0x64,
|
||||
0x64, 0xe9, 0x64, 0x64, 0x64, 0xe9, 0x64, 0x64, 0x64, 0xe9, 0x63, 0x63,
|
||||
0x63, 0xe9, 0x63, 0x63, 0x63, 0xe9, 0x62, 0x62, 0x62, 0xe9, 0x62, 0x62,
|
||||
0x62, 0xe9, 0x62, 0x62, 0x62, 0xe9, 0x62, 0x62, 0x62, 0xe9, 0x61, 0x61,
|
||||
0x61, 0xe9, 0x61, 0x61, 0x61, 0xe9, 0x61, 0x61, 0x61, 0xe9, 0x60, 0x60,
|
||||
0x60, 0xe9, 0x60, 0x60, 0x60, 0xe9, 0x60, 0x60, 0x60, 0xe9, 0x5f, 0x5f,
|
||||
0x5f, 0xe9, 0x5f, 0x5f, 0x5f, 0xe9, 0x5f, 0x5f, 0x5f, 0xe9, 0x5f, 0x5f,
|
||||
0x5f, 0xe9, 0x5e, 0x5e, 0x5e, 0xe9, 0x5e, 0x5e, 0x5e, 0xe9, 0x5e, 0x5e,
|
||||
0x5e, 0xe9, 0x5d, 0x5d, 0x5d, 0xe9, 0x5d, 0x5d, 0x5d, 0xe9, 0x5d, 0x5d,
|
||||
0x5d, 0xe9, 0x5c, 0x5c, 0x5c, 0xe9, 0x5c, 0x5c, 0x5c, 0xe9, 0x5a, 0x5a,
|
||||
0x5a, 0xe8, 0x4c, 0x4c, 0x4c, 0xd8, 0x33, 0x33, 0x33, 0x7e, 0x1d, 0x1d,
|
||||
0x1d, 0x15, 0x34, 0x34, 0x34, 0x39, 0x64, 0x64, 0x64, 0xee, 0xad, 0xad,
|
||||
0xad, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xc0, 0xc0,
|
||||
0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe,
|
||||
0xbe, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xba, 0xba, 0xba, 0xff, 0xb9, 0xb9,
|
||||
0xb9, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xb8, 0xb8,
|
||||
0xb8, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xb6, 0xb6,
|
||||
0xb6, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xb4, 0xb4,
|
||||
0xb4, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0xb2, 0xb2,
|
||||
0xb2, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xb1, 0xb1,
|
||||
0xb1, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xaf, 0xaf,
|
||||
0xaf, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0xae, 0xae, 0xae, 0xff, 0xad, 0xad,
|
||||
0xad, 0xff, 0xad, 0xad, 0xad, 0xff, 0xac, 0xac, 0xac, 0xff, 0xac, 0xac,
|
||||
0xac, 0xff, 0xab, 0xab, 0xab, 0xff, 0xab, 0xab, 0xab, 0xff, 0xab, 0xab,
|
||||
0xab, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xa9, 0xa9,
|
||||
0xa9, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0x9a, 0x9a,
|
||||
0x9a, 0xff, 0x68, 0x68, 0x68, 0xfd, 0x31, 0x31, 0x31, 0x72, 0x3e, 0x3e,
|
||||
0x3e, 0x82, 0x98, 0x98, 0x98, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbc, 0xbc,
|
||||
0xbc, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xba, 0xba,
|
||||
0xba, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xb8, 0xb8,
|
||||
0xb8, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xb6, 0xb6,
|
||||
0xb6, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0x95, 0x95,
|
||||
0x95, 0xff, 0x44, 0x44, 0x44, 0xc3, 0x49, 0x49, 0x49, 0x92, 0xa7, 0xa7,
|
||||
0xa7, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0,
|
||||
0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbe, 0xbe,
|
||||
0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbc, 0xbc,
|
||||
0xbc, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xba, 0xba, 0xba, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xb9, 0xb9,
|
||||
0xb9, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x4f, 0x4f,
|
||||
0x4f, 0xcf, 0x4a, 0x4a, 0x4a, 0x92, 0xa9, 0xa9, 0xa9, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xba, 0xba, 0xba, 0xff, 0xb9, 0xb9,
|
||||
0xb9, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0x51, 0x51, 0x51, 0xd0, 0x4a, 0x4a,
|
||||
0x4a, 0x92, 0xaa, 0xaa, 0xaa, 0xff, 0xda, 0xda, 0xda, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbc, 0xbc,
|
||||
0xbc, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xba, 0xba,
|
||||
0xba, 0xff, 0xb9, 0xb9, 0xb9, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xa2, 0xa2,
|
||||
0xa2, 0xff, 0x51, 0x51, 0x51, 0xd0, 0x4a, 0x4a, 0x4a, 0x92, 0xab, 0xab,
|
||||
0xab, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0,
|
||||
0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe,
|
||||
0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbc, 0xbc,
|
||||
0xbc, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbb, 0xbb, 0xbb, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xba, 0xba, 0xba, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0x53, 0x53,
|
||||
0x53, 0xd0, 0x4b, 0x4b, 0x4b, 0x92, 0xac, 0xac, 0xac, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0x53, 0x53, 0x53, 0xd0, 0x4c, 0x4c,
|
||||
0x4c, 0x92, 0xad, 0xad, 0xad, 0xff, 0xde, 0xde, 0xde, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xa5, 0xa5,
|
||||
0xa5, 0xff, 0x53, 0x53, 0x53, 0xd0, 0x4c, 0x4c, 0x4c, 0x92, 0xae, 0xae,
|
||||
0xae, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc0, 0xc0,
|
||||
0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe,
|
||||
0xbe, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0x54, 0x54,
|
||||
0x54, 0xd0, 0x4c, 0x4c, 0x4c, 0x92, 0xaf, 0xaf, 0xaf, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xbe, 0xbe,
|
||||
0xbe, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0x54, 0x54, 0x54, 0xd0, 0x4d, 0x4d,
|
||||
0x4d, 0x92, 0xb0, 0xb0, 0xb0, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xc1, 0xc1,
|
||||
0xc1, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xbf, 0xbf, 0xbf, 0xff, 0xa8, 0xa8,
|
||||
0xa8, 0xff, 0x55, 0x55, 0x55, 0xd0, 0x4e, 0x4e, 0x4e, 0x92, 0xb1, 0xb1,
|
||||
0xb1, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0x55, 0x55,
|
||||
0x55, 0xd0, 0x4e, 0x4e, 0x4e, 0x92, 0xb2, 0xb2, 0xb2, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xc2, 0xc2,
|
||||
0xc2, 0xff, 0xab, 0xab, 0xab, 0xff, 0x56, 0x56, 0x56, 0xd0, 0x4e, 0x4e,
|
||||
0x4e, 0x92, 0xb3, 0xb3, 0xb3, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0xac, 0xac,
|
||||
0xac, 0xff, 0x56, 0x56, 0x56, 0xd0, 0x4f, 0x4f, 0x4f, 0x92, 0xb4, 0xb4,
|
||||
0xb4, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0xad, 0xad, 0xad, 0xff, 0x57, 0x57,
|
||||
0x57, 0xd0, 0x4f, 0x4f, 0x4f, 0x92, 0xb5, 0xb5, 0xb5, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc6, 0xc6,
|
||||
0xc6, 0xff, 0xae, 0xae, 0xae, 0xff, 0x58, 0x58, 0x58, 0xd0, 0x4f, 0x4f,
|
||||
0x4f, 0x92, 0xb6, 0xb6, 0xb6, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xaf, 0xaf,
|
||||
0xaf, 0xff, 0x58, 0x58, 0x58, 0xd0, 0x50, 0x50, 0x50, 0x92, 0xb7, 0xb7,
|
||||
0xb7, 0xff, 0xea, 0xea, 0xea, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0x58, 0x58,
|
||||
0x58, 0xd0, 0x51, 0x51, 0x51, 0x92, 0xb8, 0xb8, 0xb8, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0x59, 0x59, 0x59, 0xd0, 0x52, 0x52,
|
||||
0x52, 0x92, 0xb9, 0xb9, 0xb9, 0xff, 0xec, 0xec, 0xec, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcc, 0xcc,
|
||||
0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xb3, 0xb3,
|
||||
0xb3, 0xff, 0x5a, 0x5a, 0x5a, 0xd0, 0x52, 0x52, 0x52, 0x92, 0xba, 0xba,
|
||||
0xba, 0xff, 0xed, 0xed, 0xed, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0x5a, 0x5a,
|
||||
0x5a, 0xd0, 0x52, 0x52, 0x52, 0x92, 0xbb, 0xbb, 0xbb, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf0, 0xf0,
|
||||
0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0x5b, 0x5b, 0x5b, 0xd0, 0x52, 0x52,
|
||||
0x52, 0x92, 0xbc, 0xbc, 0xbc, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xf3, 0xf3,
|
||||
0xf3, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd0, 0xd0,
|
||||
0xd0, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xb6, 0xb6,
|
||||
0xb6, 0xff, 0x5c, 0x5c, 0x5c, 0xd0, 0x53, 0x53, 0x53, 0x92, 0xbd, 0xbd,
|
||||
0xbd, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf4, 0xf4,
|
||||
0xf4, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x5c, 0x5c,
|
||||
0x5c, 0xd0, 0x53, 0x53, 0x53, 0x92, 0xbe, 0xbe, 0xbe, 0xff, 0xf2, 0xf2,
|
||||
0xf2, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf4, 0xf4,
|
||||
0xf4, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf2, 0xf2,
|
||||
0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf0, 0xf0,
|
||||
0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0x5d, 0x5d, 0x5d, 0xd0, 0x54, 0x54,
|
||||
0x54, 0x92, 0xbf, 0xbf, 0xbf, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf6, 0xf6,
|
||||
0xf6, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf5, 0xf5,
|
||||
0xf5, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf3, 0xf3,
|
||||
0xf3, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xb9, 0xb9,
|
||||
0xb9, 0xff, 0x5e, 0x5e, 0x5e, 0xd0, 0x54, 0x54, 0x54, 0x92, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf7, 0xf7,
|
||||
0xf7, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xf5, 0xf5,
|
||||
0xf5, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf4, 0xf4,
|
||||
0xf4, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf2, 0xf2,
|
||||
0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe7, 0xe7,
|
||||
0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda,
|
||||
0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xba, 0xba, 0xba, 0xff, 0x5e, 0x5e,
|
||||
0x5e, 0xd0, 0x53, 0x53, 0x53, 0x92, 0xbf, 0xbf, 0xbf, 0xff, 0xf6, 0xf6,
|
||||
0xf6, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8,
|
||||
0xf8, 0xff, 0xf7, 0xf7, 0xf7, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xf6, 0xf6,
|
||||
0xf6, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf4, 0xf4,
|
||||
0xf4, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf2, 0xf2,
|
||||
0xf2, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf0, 0xf0,
|
||||
0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef, 0xef, 0xff, 0xee, 0xee,
|
||||
0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed, 0xed, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec, 0xec, 0xff, 0xeb, 0xeb,
|
||||
0xeb, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xba, 0xba, 0xba, 0xff, 0x5d, 0x5d, 0x5d, 0xcf, 0x49, 0x49,
|
||||
0x49, 0x82, 0xb0, 0xb0, 0xb0, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xfa, 0xfa,
|
||||
0xfa, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xf8, 0xf8,
|
||||
0xf8, 0xff, 0xf7, 0xf7, 0xf7, 0xff, 0xf7, 0xf7, 0xf7, 0xff, 0xf6, 0xf6,
|
||||
0xf6, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xf5, 0xf5,
|
||||
0xf5, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf3, 0xf3,
|
||||
0xf3, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xef, 0xef, 0xef, 0xff, 0xef, 0xef,
|
||||
0xef, 0xff, 0xee, 0xee, 0xee, 0xff, 0xee, 0xee, 0xee, 0xff, 0xed, 0xed,
|
||||
0xed, 0xff, 0xed, 0xed, 0xed, 0xff, 0xec, 0xec, 0xec, 0xff, 0xec, 0xec,
|
||||
0xec, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xea, 0xea, 0xea, 0xff, 0xea, 0xea,
|
||||
0xea, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8,
|
||||
0xe8, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4,
|
||||
0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xe2, 0xe2,
|
||||
0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd,
|
||||
0xdd, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xb0, 0xb0,
|
||||
0xb0, 0xff, 0x51, 0x51, 0x51, 0xc3, 0x3e, 0x3e, 0x3e, 0x3a, 0x75, 0x75,
|
||||
0x75, 0xee, 0xc9, 0xc9, 0xc9, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xe0, 0xe0, 0xe0, 0xff, 0xe0, 0xe0,
|
||||
0xe0, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdd, 0xdd, 0xdd, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xda, 0xda, 0xda, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd9, 0xd9,
|
||||
0xd9, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xd6, 0xd6,
|
||||
0xd6, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xcf, 0xcf,
|
||||
0xcf, 0xff, 0xce, 0xce, 0xce, 0xff, 0xce, 0xce, 0xce, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xcb, 0xcb,
|
||||
0xcb, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xca, 0xca, 0xca, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xc8, 0xc8,
|
||||
0xc8, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0xc5, 0xc5,
|
||||
0xc5, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x7c, 0x7c, 0x7c, 0xfd, 0x3b, 0x3b,
|
||||
0x3b, 0x72, 0x1b, 0x1b, 0x1b, 0x0a, 0x44, 0x44, 0x44, 0x55, 0x61, 0x61,
|
||||
0x61, 0xc9, 0x7b, 0x7b, 0x7b, 0xe7, 0x81, 0x81, 0x81, 0xe9, 0x81, 0x81,
|
||||
0x81, 0xe9, 0x80, 0x80, 0x80, 0xe9, 0x80, 0x80, 0x80, 0xe9, 0x80, 0x80,
|
||||
0x80, 0xe9, 0x7f, 0x7f, 0x7f, 0xe9, 0x7f, 0x7f, 0x7f, 0xe9, 0x7f, 0x7f,
|
||||
0x7f, 0xe9, 0x7e, 0x7e, 0x7e, 0xe9, 0x7e, 0x7e, 0x7e, 0xe9, 0x7e, 0x7e,
|
||||
0x7e, 0xe9, 0x7d, 0x7d, 0x7d, 0xe9, 0x7d, 0x7d, 0x7d, 0xe9, 0x7d, 0x7d,
|
||||
0x7d, 0xe9, 0x7c, 0x7c, 0x7c, 0xe9, 0x7c, 0x7c, 0x7c, 0xe9, 0x7c, 0x7c,
|
||||
0x7c, 0xe9, 0x7b, 0x7b, 0x7b, 0xe9, 0x7b, 0x7b, 0x7b, 0xe9, 0x7a, 0x7a,
|
||||
0x7a, 0xe9, 0x7a, 0x7a, 0x7a, 0xe9, 0x7a, 0x7a, 0x7a, 0xe9, 0x7a, 0x7a,
|
||||
0x7a, 0xe9, 0x79, 0x79, 0x79, 0xe9, 0x79, 0x79, 0x79, 0xe9, 0x79, 0x79,
|
||||
0x79, 0xe9, 0x79, 0x79, 0x79, 0xe9, 0x78, 0x78, 0x78, 0xe9, 0x78, 0x78,
|
||||
0x78, 0xe9, 0x77, 0x77, 0x77, 0xe9, 0x77, 0x77, 0x77, 0xe9, 0x77, 0x77,
|
||||
0x77, 0xe9, 0x77, 0x77, 0x77, 0xe9, 0x76, 0x76, 0x76, 0xe9, 0x76, 0x76,
|
||||
0x76, 0xe9, 0x76, 0x76, 0x76, 0xe9, 0x76, 0x76, 0x76, 0xe9, 0x75, 0x75,
|
||||
0x75, 0xe9, 0x75, 0x75, 0x75, 0xe9, 0x74, 0x74, 0x74, 0xe9, 0x74, 0x74,
|
||||
0x74, 0xe9, 0x74, 0x74, 0x74, 0xe9, 0x73, 0x73, 0x73, 0xe9, 0x73, 0x73,
|
||||
0x73, 0xe9, 0x73, 0x73, 0x73, 0xe9, 0x72, 0x72, 0x72, 0xe9, 0x72, 0x72,
|
||||
0x72, 0xe9, 0x72, 0x72, 0x72, 0xe9, 0x71, 0x71, 0x71, 0xe9, 0x71, 0x71,
|
||||
0x71, 0xe9, 0x71, 0x71, 0x71, 0xe9, 0x71, 0x71, 0x71, 0xe9, 0x70, 0x70,
|
||||
0x70, 0xe9, 0x70, 0x70, 0x70, 0xe9, 0x70, 0x70, 0x70, 0xe9, 0x6f, 0x6f,
|
||||
0x6f, 0xe9, 0x6f, 0x6f, 0x6f, 0xe9, 0x6d, 0x6d, 0x6d, 0xe8, 0x5c, 0x5c,
|
||||
0x5c, 0xd9, 0x3e, 0x3e, 0x3e, 0x7e, 0x26, 0x26, 0x26, 0x15
|
||||
};
|
||||
unsigned int gamepad_button_background_bmp_len = 8458;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_button_small.bmp
vendored
Normal file
|
After Width: | Height: | Size: 714 B |
63
3rdparty/sdl/SDL/test/gamepad_button_small.h
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
unsigned char gamepad_button_small_bmp[] = {
|
||||
0x42, 0x4d, 0xca, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02,
|
||||
0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x5d, 0x5d, 0x34, 0x5e, 0x5e,
|
||||
0x5e, 0x7d, 0x5d, 0x5d, 0x5d, 0x7d, 0x5b, 0x5b, 0x5b, 0x7d, 0x57, 0x57,
|
||||
0x57, 0x7d, 0x56, 0x56, 0x56, 0x7d, 0x55, 0x55, 0x55, 0x7d, 0x53, 0x53,
|
||||
0x53, 0x7d, 0x52, 0x52, 0x52, 0x7d, 0x51, 0x51, 0x51, 0x7d, 0x4f, 0x4f,
|
||||
0x4f, 0x7d, 0x4e, 0x4e, 0x4e, 0x34, 0x97, 0x97, 0x97, 0xc3, 0xc6, 0xc6,
|
||||
0xc6, 0xf3, 0xc3, 0xc3, 0xc3, 0xf3, 0xc0, 0xc0, 0xc0, 0xf3, 0xbc, 0xbc,
|
||||
0xbc, 0xf3, 0xba, 0xba, 0xba, 0xf3, 0xb7, 0xb7, 0xb7, 0xf3, 0xb3, 0xb3,
|
||||
0xb3, 0xf3, 0xaf, 0xaf, 0xaf, 0xf3, 0xad, 0xad, 0xad, 0xf3, 0xaa, 0xaa,
|
||||
0xaa, 0xf3, 0x7f, 0x7f, 0x7f, 0xc2, 0xa9, 0xa9, 0xa9, 0xdd, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xc8, 0xc8, 0xc8, 0xff, 0xc4, 0xc4,
|
||||
0xc4, 0xff, 0xc1, 0xc1, 0xc1, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xbb, 0xbb,
|
||||
0xbb, 0xff, 0x8e, 0x8e, 0x8e, 0xdd, 0xad, 0xad, 0xad, 0xde, 0xde, 0xde,
|
||||
0xde, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xd3, 0xd3,
|
||||
0xd3, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xc9, 0xc9,
|
||||
0xc9, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xbf, 0xbf,
|
||||
0xbf, 0xff, 0x92, 0x92, 0x92, 0xde, 0xb0, 0xb0, 0xb0, 0xde, 0xe1, 0xe1,
|
||||
0xe1, 0xff, 0xde, 0xde, 0xde, 0xff, 0xda, 0xda, 0xda, 0xff, 0xd7, 0xd7,
|
||||
0xd7, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xcd, 0xcd,
|
||||
0xcd, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xc3, 0xc3,
|
||||
0xc3, 0xff, 0x94, 0x94, 0x94, 0xde, 0xb2, 0xb2, 0xb2, 0xde, 0xe5, 0xe5,
|
||||
0xe5, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xde, 0xde, 0xde, 0xff, 0xdb, 0xdb,
|
||||
0xdb, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xd1, 0xd1,
|
||||
0xd1, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xca, 0xca, 0xca, 0xff, 0xc7, 0xc7,
|
||||
0xc7, 0xff, 0x97, 0x97, 0x97, 0xde, 0xb5, 0xb5, 0xb5, 0xde, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xdf, 0xdf,
|
||||
0xdf, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd5, 0xd5,
|
||||
0xd5, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xce, 0xce, 0xce, 0xff, 0xca, 0xca,
|
||||
0xca, 0xff, 0x9a, 0x9a, 0x9a, 0xde, 0xb8, 0xb8, 0xb8, 0xde, 0xed, 0xed,
|
||||
0xed, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xe3, 0xe3,
|
||||
0xe3, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdc, 0xdc, 0xdc, 0xff, 0xd8, 0xd8,
|
||||
0xd8, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xce, 0xce,
|
||||
0xce, 0xff, 0x9d, 0x9d, 0x9d, 0xde, 0xbb, 0xbb, 0xbb, 0xde, 0xf1, 0xf1,
|
||||
0xf1, 0xff, 0xed, 0xed, 0xed, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe6, 0xe6,
|
||||
0xe6, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xdc, 0xdc,
|
||||
0xdc, 0xff, 0xd9, 0xd9, 0xd9, 0xff, 0xd5, 0xd5, 0xd5, 0xff, 0xd2, 0xd2,
|
||||
0xd2, 0xff, 0xa0, 0xa0, 0xa0, 0xde, 0xbc, 0xbc, 0xbc, 0xdd, 0xf3, 0xf3,
|
||||
0xf3, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xec, 0xec, 0xec, 0xff, 0xe9, 0xe9,
|
||||
0xe9, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe2, 0xe2, 0xe2, 0xff, 0xde, 0xde,
|
||||
0xde, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd4, 0xd4,
|
||||
0xd4, 0xff, 0xa1, 0xa1, 0xa1, 0xdd, 0xae, 0xae, 0xae, 0xc3, 0xe4, 0xe4,
|
||||
0xe4, 0xf3, 0xe2, 0xe2, 0xe2, 0xf3, 0xde, 0xde, 0xde, 0xf3, 0xdb, 0xdb,
|
||||
0xdb, 0xf3, 0xd8, 0xd8, 0xd8, 0xf3, 0xd6, 0xd6, 0xd6, 0xf3, 0xd2, 0xd2,
|
||||
0xd2, 0xf3, 0xce, 0xce, 0xce, 0xf3, 0xcc, 0xcc, 0xcc, 0xf3, 0xc9, 0xc9,
|
||||
0xc9, 0xf3, 0x95, 0x95, 0x95, 0xc2, 0x6b, 0x6b, 0x6b, 0x34, 0x6e, 0x6e,
|
||||
0x6e, 0x7d, 0x6d, 0x6d, 0x6d, 0x7d, 0x6a, 0x6a, 0x6a, 0x7d, 0x68, 0x68,
|
||||
0x68, 0x7d, 0x67, 0x67, 0x67, 0x7d, 0x66, 0x66, 0x66, 0x7d, 0x64, 0x64,
|
||||
0x64, 0x7d, 0x62, 0x62, 0x62, 0x7d, 0x61, 0x61, 0x61, 0x7d, 0x60, 0x60,
|
||||
0x60, 0x7d, 0x5c, 0x5c, 0x5c, 0x34
|
||||
};
|
||||
unsigned int gamepad_button_small_bmp_len = 714;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_face_abxy.bmp
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
2756
3rdparty/sdl/SDL/test/gamepad_face_abxy.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/gamepad_face_bayx.bmp
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
2756
3rdparty/sdl/SDL/test/gamepad_face_bayx.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/gamepad_face_sony.bmp
vendored
Normal file
|
After Width: | Height: | Size: 32 KiB |
2756
3rdparty/sdl/SDL/test/gamepad_face_sony.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/gamepad_front.bmp
vendored
Normal file
|
After Width: | Height: | Size: 33 KiB |
2828
3rdparty/sdl/SDL/test/gamepad_front.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/gamepad_touchpad.bmp
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
314
3rdparty/sdl/SDL/test/gamepad_touchpad.h
vendored
Normal file
@@ -0,0 +1,314 @@
|
||||
unsigned char gamepad_touchpad_bmp[] = {
|
||||
0x42, 0x4d, 0x8c, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x04,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x9f, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x0a,
|
||||
0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x01,
|
||||
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
|
||||
0x01, 0x00, 0x02, 0x02, 0x02, 0x00, 0x03, 0x03, 0x03, 0x00, 0x04, 0x04,
|
||||
0x04, 0x00, 0x05, 0x05, 0x05, 0x00, 0x06, 0x06, 0x06, 0x00, 0x07, 0x07,
|
||||
0x07, 0x00, 0x08, 0x08, 0x08, 0x00, 0x09, 0x09, 0x09, 0x00, 0x0a, 0x0a,
|
||||
0x0a, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x0d, 0x0d,
|
||||
0x0d, 0x00, 0x0e, 0x0e, 0x0e, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x10, 0x10,
|
||||
0x10, 0x00, 0x11, 0x11, 0x11, 0x00, 0x12, 0x12, 0x12, 0x00, 0x13, 0x13,
|
||||
0x13, 0x00, 0x14, 0x14, 0x14, 0x00, 0x15, 0x15, 0x15, 0x00, 0x16, 0x16,
|
||||
0x16, 0x00, 0x17, 0x17, 0x17, 0x00, 0x18, 0x18, 0x18, 0x00, 0x19, 0x19,
|
||||
0x19, 0x00, 0x1a, 0x1a, 0x1a, 0x00, 0x1b, 0x1b, 0x1b, 0x00, 0x1c, 0x1c,
|
||||
0x1c, 0x00, 0x1d, 0x1d, 0x1d, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x1f, 0x1f,
|
||||
0x1f, 0x00, 0x20, 0x20, 0x20, 0x00, 0x21, 0x21, 0x21, 0x00, 0x22, 0x22,
|
||||
0x22, 0x00, 0x23, 0x23, 0x23, 0x00, 0x24, 0x24, 0x24, 0x00, 0x25, 0x25,
|
||||
0x25, 0x00, 0x26, 0x26, 0x26, 0x00, 0x27, 0x27, 0x27, 0x00, 0x28, 0x28,
|
||||
0x28, 0x00, 0x29, 0x29, 0x29, 0x00, 0x2a, 0x2a, 0x2a, 0x00, 0x2b, 0x2b,
|
||||
0x2b, 0x00, 0x2c, 0x2c, 0x2c, 0x00, 0x2d, 0x2d, 0x2d, 0x00, 0x2e, 0x2e,
|
||||
0x2e, 0x00, 0x2f, 0x2f, 0x2f, 0x00, 0x30, 0x30, 0x30, 0x00, 0x31, 0x31,
|
||||
0x31, 0x00, 0x32, 0x32, 0x32, 0x00, 0x33, 0x33, 0x33, 0x00, 0x34, 0x34,
|
||||
0x34, 0x00, 0x35, 0x35, 0x35, 0x00, 0x36, 0x36, 0x36, 0x00, 0x37, 0x37,
|
||||
0x37, 0x00, 0x38, 0x38, 0x38, 0x00, 0x39, 0x39, 0x39, 0x00, 0x3a, 0x3a,
|
||||
0x3a, 0x00, 0x3b, 0x3b, 0x3b, 0x00, 0x3c, 0x3c, 0x3c, 0x00, 0x3d, 0x3d,
|
||||
0x3d, 0x00, 0x3e, 0x3e, 0x3e, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x40, 0x40,
|
||||
0x40, 0x00, 0x41, 0x41, 0x41, 0x00, 0x42, 0x42, 0x42, 0x00, 0x43, 0x43,
|
||||
0x43, 0x00, 0x44, 0x44, 0x44, 0x00, 0x45, 0x45, 0x45, 0x00, 0x46, 0x46,
|
||||
0x46, 0x00, 0x47, 0x47, 0x47, 0x00, 0x48, 0x48, 0x48, 0x00, 0x49, 0x49,
|
||||
0x49, 0x00, 0x4a, 0x4a, 0x4a, 0x00, 0x4b, 0x4b, 0x4b, 0x00, 0x4c, 0x4c,
|
||||
0x4c, 0x00, 0x4d, 0x4d, 0x4d, 0x00, 0x4e, 0x4e, 0x4e, 0x00, 0x4f, 0x4f,
|
||||
0x4f, 0x00, 0x50, 0x50, 0x50, 0x00, 0x51, 0x51, 0x51, 0x00, 0x52, 0x52,
|
||||
0x52, 0x00, 0x53, 0x53, 0x53, 0x00, 0x54, 0x54, 0x54, 0x00, 0x55, 0x55,
|
||||
0x55, 0x00, 0x56, 0x56, 0x56, 0x00, 0x57, 0x57, 0x57, 0x00, 0x58, 0x58,
|
||||
0x58, 0x00, 0x59, 0x59, 0x59, 0x00, 0x5a, 0x5a, 0x5a, 0x00, 0x5b, 0x5b,
|
||||
0x5b, 0x00, 0x5c, 0x5c, 0x5c, 0x00, 0x5d, 0x5d, 0x5d, 0x00, 0x5e, 0x5e,
|
||||
0x5e, 0x00, 0x5f, 0x5f, 0x5f, 0x00, 0x60, 0x60, 0x60, 0x00, 0x61, 0x61,
|
||||
0x61, 0x00, 0x62, 0x62, 0x62, 0x00, 0x63, 0x63, 0x63, 0x00, 0x64, 0x64,
|
||||
0x64, 0x00, 0x65, 0x65, 0x65, 0x00, 0x66, 0x66, 0x66, 0x00, 0x67, 0x67,
|
||||
0x67, 0x00, 0x68, 0x68, 0x68, 0x00, 0x69, 0x69, 0x69, 0x00, 0x6a, 0x6a,
|
||||
0x6a, 0x00, 0x6b, 0x6b, 0x6b, 0x00, 0x6c, 0x6c, 0x6c, 0x00, 0x6d, 0x6d,
|
||||
0x6d, 0x00, 0x6e, 0x6e, 0x6e, 0x00, 0x6f, 0x6f, 0x6f, 0x00, 0x70, 0x70,
|
||||
0x70, 0x00, 0x71, 0x71, 0x71, 0x00, 0x72, 0x72, 0x72, 0x00, 0x73, 0x73,
|
||||
0x73, 0x00, 0x74, 0x74, 0x74, 0x00, 0x75, 0x75, 0x75, 0x00, 0x76, 0x76,
|
||||
0x76, 0x00, 0x77, 0x77, 0x77, 0x00, 0x78, 0x78, 0x78, 0x00, 0x79, 0x79,
|
||||
0x79, 0x00, 0x7a, 0x7a, 0x7a, 0x00, 0x7b, 0x7b, 0x7b, 0x00, 0x7c, 0x7c,
|
||||
0x7c, 0x00, 0x7d, 0x7d, 0x7d, 0x00, 0x7e, 0x7e, 0x7e, 0x00, 0x7f, 0x7f,
|
||||
0x7f, 0x00, 0x80, 0x80, 0x80, 0x00, 0x81, 0x81, 0x81, 0x00, 0x82, 0x82,
|
||||
0x82, 0x00, 0x83, 0x83, 0x83, 0x00, 0x84, 0x84, 0x84, 0x00, 0x85, 0x85,
|
||||
0x85, 0x00, 0x86, 0x86, 0x86, 0x00, 0x87, 0x87, 0x87, 0x00, 0x88, 0x88,
|
||||
0x88, 0x00, 0x89, 0x89, 0x89, 0x00, 0x8a, 0x8a, 0x8a, 0x00, 0x8b, 0x8b,
|
||||
0x8b, 0x00, 0x8c, 0x8c, 0x8c, 0x00, 0x8d, 0x8d, 0x8d, 0x00, 0x8e, 0x8e,
|
||||
0x8e, 0x00, 0x8f, 0x8f, 0x8f, 0x00, 0x90, 0x90, 0x90, 0x00, 0x91, 0x91,
|
||||
0x91, 0x00, 0x92, 0x92, 0x92, 0x00, 0x93, 0x93, 0x93, 0x00, 0x94, 0x94,
|
||||
0x94, 0x00, 0x95, 0x95, 0x95, 0x00, 0x96, 0x96, 0x96, 0x00, 0x97, 0x97,
|
||||
0x97, 0x00, 0x98, 0x98, 0x98, 0x00, 0x99, 0x99, 0x99, 0x00, 0x9a, 0x9a,
|
||||
0x9a, 0x00, 0x9b, 0x9b, 0x9b, 0x00, 0x9c, 0x9c, 0x9c, 0x00, 0x9d, 0x9d,
|
||||
0x9d, 0x00, 0x9e, 0x9e, 0x9e, 0x00, 0x9f, 0x9f, 0x9f, 0x00, 0xa0, 0xa0,
|
||||
0xa0, 0x00, 0xa1, 0xa1, 0xa1, 0x00, 0xa2, 0xa2, 0xa2, 0x00, 0xa3, 0xa3,
|
||||
0xa3, 0x00, 0xa4, 0xa4, 0xa4, 0x00, 0xa5, 0xa5, 0xa5, 0x00, 0xa6, 0xa6,
|
||||
0xa6, 0x00, 0xa7, 0xa7, 0xa7, 0x00, 0xa8, 0xa8, 0xa8, 0x00, 0xa9, 0xa9,
|
||||
0xa9, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0xab, 0xab, 0xab, 0x00, 0xac, 0xac,
|
||||
0xac, 0x00, 0xad, 0xad, 0xad, 0x00, 0xae, 0xae, 0xae, 0x00, 0xaf, 0xaf,
|
||||
0xaf, 0x00, 0xb0, 0xb0, 0xb0, 0x00, 0xb1, 0xb1, 0xb1, 0x00, 0xb2, 0xb2,
|
||||
0xb2, 0x00, 0xb3, 0xb3, 0xb3, 0x00, 0xb4, 0xb4, 0xb4, 0x00, 0xb5, 0xb5,
|
||||
0xb5, 0x00, 0xb6, 0xb6, 0xb6, 0x00, 0xb7, 0xb7, 0xb7, 0x00, 0xb8, 0xb8,
|
||||
0xb8, 0x00, 0xb9, 0xb9, 0xb9, 0x00, 0xba, 0xba, 0xba, 0x00, 0xbb, 0xbb,
|
||||
0xbb, 0x00, 0xbc, 0xbc, 0xbc, 0x00, 0xbd, 0xbd, 0xbd, 0x00, 0xbe, 0xbe,
|
||||
0xbe, 0x00, 0xbf, 0xbf, 0xbf, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0xc1, 0xc1,
|
||||
0xc1, 0x00, 0xc2, 0xc2, 0xc2, 0x00, 0xc3, 0xc3, 0xc3, 0x00, 0xc4, 0xc4,
|
||||
0xc4, 0x00, 0xc5, 0xc5, 0xc5, 0x00, 0xc6, 0xc6, 0xc6, 0x00, 0xc7, 0xc7,
|
||||
0xc7, 0x00, 0xc8, 0xc8, 0xc8, 0x00, 0xc9, 0xc9, 0xc9, 0x00, 0xca, 0xca,
|
||||
0xca, 0x00, 0xcb, 0xcb, 0xcb, 0x00, 0xcc, 0xcc, 0xcc, 0x00, 0xcd, 0xcd,
|
||||
0xcd, 0x00, 0xce, 0xce, 0xce, 0x00, 0xcf, 0xcf, 0xcf, 0x00, 0xd0, 0xd0,
|
||||
0xd0, 0x00, 0xd1, 0xd1, 0xd1, 0x00, 0xd2, 0xd2, 0xd2, 0x00, 0xd3, 0xd3,
|
||||
0xd3, 0x00, 0xd4, 0xd4, 0xd4, 0x00, 0xd5, 0xd5, 0xd5, 0x00, 0xd6, 0xd6,
|
||||
0xd6, 0x00, 0xd7, 0xd7, 0xd7, 0x00, 0xd8, 0xd8, 0xd8, 0x00, 0xd9, 0xd9,
|
||||
0xd9, 0x00, 0xda, 0xda, 0xda, 0x00, 0xdb, 0xdb, 0xdb, 0x00, 0xdc, 0xdc,
|
||||
0xdc, 0x00, 0xdd, 0xdd, 0xdd, 0x00, 0xde, 0xde, 0xde, 0x00, 0xdf, 0xdf,
|
||||
0xdf, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0xe1, 0xe1, 0xe1, 0x00, 0xe2, 0xe2,
|
||||
0xe2, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0xe4, 0xe4, 0xe4, 0x00, 0xe5, 0xe5,
|
||||
0xe5, 0x00, 0xe6, 0xe6, 0xe6, 0x00, 0xe7, 0xe7, 0xe7, 0x00, 0xe8, 0xe8,
|
||||
0xe8, 0x00, 0xe9, 0xe9, 0xe9, 0x00, 0xea, 0xea, 0xea, 0x00, 0xeb, 0xeb,
|
||||
0xeb, 0x00, 0xec, 0xec, 0xec, 0x00, 0xed, 0xed, 0xed, 0x00, 0xee, 0xee,
|
||||
0xee, 0x00, 0xef, 0xef, 0xef, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0xf1, 0xf1,
|
||||
0xf1, 0x00, 0xf2, 0xf2, 0xf2, 0x00, 0xf3, 0xf3, 0xf3, 0x00, 0xf4, 0xf4,
|
||||
0xf4, 0x00, 0xf5, 0xf5, 0xf5, 0x00, 0xf6, 0xf6, 0xf6, 0x00, 0xf7, 0xf7,
|
||||
0xf7, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0xf9, 0xf9, 0xf9, 0x00, 0xfa, 0xfa,
|
||||
0xfa, 0x00, 0xfb, 0xfb, 0xfb, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0xfd, 0xfd,
|
||||
0xfd, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0x96, 0xff, 0x01, 0xfb, 0xd0, 0xff,
|
||||
0x01, 0xfb, 0x98, 0xff, 0x00, 0x00, 0x97, 0xff, 0x01, 0x53, 0x01, 0x17,
|
||||
0xce, 0x00, 0x01, 0x17, 0x01, 0x53, 0x97, 0xff, 0x00, 0x00, 0x94, 0xff,
|
||||
0x00, 0x06, 0xfe, 0xc1, 0x17, 0x74, 0xbc, 0xc8, 0xcc, 0xc7, 0x00, 0x06,
|
||||
0xc8, 0xbc, 0x74, 0x17, 0xc1, 0xfe, 0x94, 0xff, 0x00, 0x00, 0x95, 0xff,
|
||||
0x00, 0x03, 0x3a, 0x86, 0xc6, 0x00, 0xd0, 0xc7, 0x00, 0x03, 0xc6, 0x86,
|
||||
0x3a, 0x00, 0x95, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x05, 0xfd, 0xff,
|
||||
0x9d, 0x5e, 0xc2, 0x00, 0xd2, 0xc7, 0x00, 0x03, 0xc2, 0x5e, 0x9d, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfb, 0xff, 0x5f, 0xa1,
|
||||
0xd4, 0xc7, 0x01, 0xa1, 0x01, 0x5f, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x25, 0xba, 0xd4, 0xc7, 0x01, 0xba, 0x01, 0x25,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3, 0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x00, 0xc3,
|
||||
0xd4, 0xc7, 0x01, 0xc3, 0x01, 0x00, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x04, 0xfa, 0xff, 0x00, 0xc0, 0xd4, 0xc7, 0x01, 0xc0, 0x01, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x92, 0xff, 0x00, 0x04, 0xfa, 0xff, 0x4d, 0xb0,
|
||||
0xd4, 0xc7, 0x01, 0xb0, 0x01, 0x4d, 0x94, 0xff, 0x00, 0x00, 0x92, 0xff,
|
||||
0x00, 0x05, 0xfc, 0xff, 0x7a, 0x86, 0xc6, 0x00, 0xd2, 0xc7, 0x00, 0x03,
|
||||
0xc6, 0x86, 0x7a, 0x00, 0x94, 0xff, 0x00, 0x00, 0x94, 0xff, 0x00, 0x03,
|
||||
0xc3, 0x36, 0xb2, 0x00, 0xd2, 0xc7, 0x00, 0x03, 0xb2, 0x36, 0xc3, 0x00,
|
||||
0x94, 0xff, 0x00, 0x00, 0x94, 0xff, 0x00, 0x04, 0xf7, 0x77, 0x43, 0xb1,
|
||||
0xd0, 0xc7, 0x00, 0x04, 0xb1, 0x43, 0x77, 0xf7, 0x94, 0xff, 0x00, 0x00,
|
||||
0x95, 0xff, 0x00, 0x06, 0xf1, 0x76, 0x25, 0x00, 0xaf, 0xc5, 0xca, 0xc8,
|
||||
0x00, 0x06, 0xc5, 0xaf, 0x00, 0x25, 0x76, 0xf1, 0x95, 0xff, 0x00, 0x00,
|
||||
0x96, 0xff, 0x00, 0x04, 0xfa, 0xcc, 0x76, 0x07, 0xcc, 0x00, 0x00, 0x04,
|
||||
0x07, 0x76, 0xcc, 0xfa, 0x96, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff,
|
||||
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
|
||||
0x01, 0xff, 0x01, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
|
||||
0x01, 0xff, 0x00, 0x01
|
||||
};
|
||||
unsigned int gamepad_touchpad_bmp_len = 3724;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_wired.bmp
vendored
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
106
3rdparty/sdl/SDL/test/gamepad_wired.h
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
unsigned char gamepad_wired_bmp[] = {
|
||||
0x42, 0x4d, 0xca, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x40, 0x04,
|
||||
0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0xd7, 0x0d, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00,
|
||||
0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
|
||||
0x00, 0x5e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00,
|
||||
0x00, 0xa9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00,
|
||||
0x00, 0xc5, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x13, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00,
|
||||
0x00, 0x1e, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00,
|
||||
0x00, 0xf3, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x71, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00,
|
||||
0x00, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00,
|
||||
0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xe1, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1d, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x25, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00,
|
||||
0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00,
|
||||
0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x56, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00,
|
||||
0x00, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00,
|
||||
0x00, 0xed, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x1a, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
|
||||
0x00, 0xed, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x8d, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
|
||||
0x00, 0xdf, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00,
|
||||
0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00,
|
||||
0x00, 0xf2, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00,
|
||||
0x00, 0xed, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
|
||||
0x00, 0x5a, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x5b, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00,
|
||||
0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00,
|
||||
0x00, 0x55, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
unsigned int gamepad_wired_bmp_len = 1226;
|
||||
BIN
3rdparty/sdl/SDL/test/gamepad_wireless.bmp
vendored
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
100
3rdparty/sdl/SDL/test/gamepad_wireless.h
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
unsigned char gamepad_wireless_bmp[] = {
|
||||
0x42, 0x4d, 0x8a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00,
|
||||
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x23, 0x2e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff,
|
||||
0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x42, 0x47,
|
||||
0x52, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0a, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00,
|
||||
0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00,
|
||||
0x00, 0xea, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00,
|
||||
0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0e, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00,
|
||||
0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00,
|
||||
0x00, 0x84, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00,
|
||||
0x00, 0x9a, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x69, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x7b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00,
|
||||
0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00,
|
||||
0x00, 0xac, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00,
|
||||
0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00,
|
||||
0x00, 0x99, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00,
|
||||
0x00, 0x09, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00,
|
||||
0x00, 0xf0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00,
|
||||
0x00, 0xe9, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xef, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00,
|
||||
0x00, 0xf0, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0c, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00,
|
||||
0x00, 0xf5, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x28, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xf3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00,
|
||||
0x00, 0x64, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00,
|
||||
0x00, 0xac, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xcc, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x4a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||
0x00, 0xff, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00,
|
||||
0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00,
|
||||
0x00, 0x34, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
unsigned int gamepad_wireless_bmp_len = 1162;
|
||||
2972
3rdparty/sdl/SDL/test/gamepadutils.c
vendored
Normal file
169
3rdparty/sdl/SDL/test/gamepadutils.h
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Gamepad image */
|
||||
|
||||
typedef struct GamepadImage GamepadImage;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CONTROLLER_MODE_TESTING,
|
||||
CONTROLLER_MODE_BINDING,
|
||||
} ControllerDisplayMode;
|
||||
|
||||
enum
|
||||
{
|
||||
SDL_GAMEPAD_ELEMENT_INVALID = -1,
|
||||
|
||||
/* ... SDL_GamepadButton ... */
|
||||
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_LEFTX_NEGATIVE = SDL_GAMEPAD_BUTTON_COUNT,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_LEFTX_POSITIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_LEFTY_NEGATIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_LEFTY_POSITIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_RIGHTX_NEGATIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_RIGHTX_POSITIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_RIGHTY_NEGATIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_RIGHTY_POSITIVE,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_LEFT_TRIGGER,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_RIGHT_TRIGGER,
|
||||
SDL_GAMEPAD_ELEMENT_AXIS_MAX,
|
||||
|
||||
SDL_GAMEPAD_ELEMENT_NAME = SDL_GAMEPAD_ELEMENT_AXIS_MAX,
|
||||
SDL_GAMEPAD_ELEMENT_TYPE,
|
||||
SDL_GAMEPAD_ELEMENT_MAX,
|
||||
};
|
||||
|
||||
#define HIGHLIGHT_COLOR 224, 255, 255, SDL_ALPHA_OPAQUE
|
||||
#define HIGHLIGHT_TEXTURE_MOD 224, 255, 255
|
||||
#define PRESSED_COLOR 175, 238, 238, SDL_ALPHA_OPAQUE
|
||||
#define PRESSED_TEXTURE_MOD 175, 238, 238
|
||||
#define SELECTED_COLOR 224, 255, 224, SDL_ALPHA_OPAQUE
|
||||
|
||||
/* Gamepad image display */
|
||||
|
||||
extern GamepadImage *CreateGamepadImage(SDL_Renderer *renderer);
|
||||
extern void SetGamepadImagePosition(GamepadImage *ctx, float x, float y);
|
||||
extern void GetGamepadImageArea(GamepadImage *ctx, SDL_FRect *area);
|
||||
extern void GetGamepadTouchpadArea(GamepadImage *ctx, SDL_FRect *area);
|
||||
extern void SetGamepadImageShowingFront(GamepadImage *ctx, bool showing_front);
|
||||
extern SDL_GamepadType GetGamepadImageType(GamepadImage *ctx);
|
||||
extern void SetGamepadImageDisplayMode(GamepadImage *ctx, ControllerDisplayMode display_mode);
|
||||
extern float GetGamepadImageButtonWidth(GamepadImage *ctx);
|
||||
extern float GetGamepadImageButtonHeight(GamepadImage *ctx);
|
||||
extern float GetGamepadImageAxisWidth(GamepadImage *ctx);
|
||||
extern float GetGamepadImageAxisHeight(GamepadImage *ctx);
|
||||
extern int GetGamepadImageElementAt(GamepadImage *ctx, float x, float y);
|
||||
|
||||
extern void ClearGamepadImage(GamepadImage *ctx);
|
||||
extern void SetGamepadImageElement(GamepadImage *ctx, int element, bool active);
|
||||
|
||||
extern void UpdateGamepadImageFromGamepad(GamepadImage *ctx, SDL_Gamepad *gamepad);
|
||||
extern void RenderGamepadImage(GamepadImage *ctx);
|
||||
extern void DestroyGamepadImage(GamepadImage *ctx);
|
||||
|
||||
/* Gamepad element display */
|
||||
|
||||
typedef struct GamepadDisplay GamepadDisplay;
|
||||
|
||||
extern GamepadDisplay *CreateGamepadDisplay(SDL_Renderer *renderer);
|
||||
extern void SetGamepadDisplayDisplayMode(GamepadDisplay *ctx, ControllerDisplayMode display_mode);
|
||||
extern void SetGamepadDisplayArea(GamepadDisplay *ctx, const SDL_FRect *area);
|
||||
extern int GetGamepadDisplayElementAt(GamepadDisplay *ctx, SDL_Gamepad *gamepad, float x, float y);
|
||||
extern void SetGamepadDisplayHighlight(GamepadDisplay *ctx, int element, bool pressed);
|
||||
extern void SetGamepadDisplaySelected(GamepadDisplay *ctx, int element);
|
||||
extern void RenderGamepadDisplay(GamepadDisplay *ctx, SDL_Gamepad *gamepad);
|
||||
extern void DestroyGamepadDisplay(GamepadDisplay *ctx);
|
||||
|
||||
/* Gamepad type display */
|
||||
|
||||
enum
|
||||
{
|
||||
SDL_GAMEPAD_TYPE_UNSELECTED = -1
|
||||
};
|
||||
|
||||
typedef struct GamepadTypeDisplay GamepadTypeDisplay;
|
||||
|
||||
extern GamepadTypeDisplay *CreateGamepadTypeDisplay(SDL_Renderer *renderer);
|
||||
extern void SetGamepadTypeDisplayArea(GamepadTypeDisplay *ctx, const SDL_FRect *area);
|
||||
extern int GetGamepadTypeDisplayAt(GamepadTypeDisplay *ctx, float x, float y);
|
||||
extern void SetGamepadTypeDisplayHighlight(GamepadTypeDisplay *ctx, int type, bool pressed);
|
||||
extern void SetGamepadTypeDisplaySelected(GamepadTypeDisplay *ctx, int type);
|
||||
extern void SetGamepadTypeDisplayRealType(GamepadTypeDisplay *ctx, SDL_GamepadType type);
|
||||
extern void RenderGamepadTypeDisplay(GamepadTypeDisplay *ctx);
|
||||
extern void DestroyGamepadTypeDisplay(GamepadTypeDisplay *ctx);
|
||||
|
||||
/* Joystick element display */
|
||||
|
||||
typedef struct JoystickDisplay JoystickDisplay;
|
||||
|
||||
extern JoystickDisplay *CreateJoystickDisplay(SDL_Renderer *renderer);
|
||||
extern void SetJoystickDisplayArea(JoystickDisplay *ctx, const SDL_FRect *area);
|
||||
extern char *GetJoystickDisplayElementAt(JoystickDisplay *ctx, SDL_Joystick *joystick, float x, float y);
|
||||
extern void SetJoystickDisplayHighlight(JoystickDisplay *ctx, const char *element, bool pressed);
|
||||
extern void RenderJoystickDisplay(JoystickDisplay *ctx, SDL_Joystick *joystick);
|
||||
extern void DestroyJoystickDisplay(JoystickDisplay *ctx);
|
||||
|
||||
/* Simple buttons */
|
||||
|
||||
typedef struct GamepadButton GamepadButton;
|
||||
|
||||
extern GamepadButton *CreateGamepadButton(SDL_Renderer *renderer, const char *label);
|
||||
extern void SetGamepadButtonArea(GamepadButton *ctx, const SDL_FRect *area);
|
||||
extern void GetGamepadButtonArea(GamepadButton *ctx, SDL_FRect *area);
|
||||
extern void SetGamepadButtonHighlight(GamepadButton *ctx, bool highlight, bool pressed);
|
||||
extern float GetGamepadButtonLabelWidth(GamepadButton *ctx);
|
||||
extern float GetGamepadButtonLabelHeight(GamepadButton *ctx);
|
||||
extern bool GamepadButtonContains(GamepadButton *ctx, float x, float y);
|
||||
extern void RenderGamepadButton(GamepadButton *ctx);
|
||||
extern void DestroyGamepadButton(GamepadButton *ctx);
|
||||
|
||||
/* Working with mappings and bindings */
|
||||
|
||||
/* Return whether a mapping has any bindings */
|
||||
extern bool MappingHasBindings(const char *mapping);
|
||||
|
||||
/* Return true if the mapping has a controller name */
|
||||
extern bool MappingHasName(const char *mapping);
|
||||
|
||||
/* Return the name from a mapping, which should be freed using SDL_free(), or NULL if there is no name specified */
|
||||
extern char *GetMappingName(const char *mapping);
|
||||
|
||||
/* Set the name in a mapping, freeing the mapping passed in and returning a new mapping */
|
||||
extern char *SetMappingName(char *mapping, const char *name);
|
||||
|
||||
/* Get the friendly string for an SDL_GamepadType */
|
||||
extern const char *GetGamepadTypeString(SDL_GamepadType type);
|
||||
|
||||
/* Return the type from a mapping, which should be freed using SDL_free(), or NULL if there is no type specified */
|
||||
extern SDL_GamepadType GetMappingType(const char *mapping);
|
||||
|
||||
/* Set the type in a mapping, freeing the mapping passed in and returning a new mapping */
|
||||
extern char *SetMappingType(char *mapping, SDL_GamepadType type);
|
||||
|
||||
/* Return true if a mapping has this element bound */
|
||||
extern bool MappingHasElement(const char *mapping, int element);
|
||||
|
||||
/* Get the binding for an element, which should be freed using SDL_free(), or NULL if the element isn't bound */
|
||||
extern char *GetElementBinding(const char *mapping, int element);
|
||||
|
||||
/* Set the binding for an element, or NULL to clear it, freeing the mapping passed in and returning a new mapping */
|
||||
extern char *SetElementBinding(char *mapping, int element, const char *binding);
|
||||
|
||||
/* Get the element for a binding, or SDL_GAMEPAD_ELEMENT_INVALID if that binding isn't used */
|
||||
extern int GetElementForBinding(char *mapping, const char *binding);
|
||||
|
||||
/* Return true if a mapping contains this binding */
|
||||
extern bool MappingHasBinding(const char *mapping, const char *binding);
|
||||
|
||||
/* Clear any previous binding */
|
||||
extern char *ClearMappingBinding(char *mapping, const char *binding);
|
||||
BIN
3rdparty/sdl/SDL/test/glass.bmp
vendored
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
128148
3rdparty/sdl/SDL/test/glass.h
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/icon.bmp
vendored
Normal file
|
After Width: | Height: | Size: 578 B |
52
3rdparty/sdl/SDL/test/icon.h
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
unsigned char icon_bmp[] = {
|
||||
0x42, 0x4d, 0x42, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00,
|
||||
0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00,
|
||||
0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
|
||||
0x00, 0x00, 0x6d, 0x0b, 0x00, 0x00, 0x6d, 0x0b, 0x00, 0x00, 0x03, 0x00,
|
||||
0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x22, 0x22, 0x22, 0x22,
|
||||
0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22,
|
||||
0x21, 0x11, 0x11, 0x12, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x12, 0x21, 0x11, 0x11, 0x11, 0x11, 0x12, 0x21, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x11, 0x11, 0x11, 0x11, 0x11,
|
||||
0x11, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x21, 0x11,
|
||||
0x22, 0x22, 0x22, 0x22, 0x11, 0x12, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||
0x22, 0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x22,
|
||||
0x22, 0x21, 0x12, 0x22, 0x22, 0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x22, 0x22, 0x22, 0x22, 0x21, 0x12, 0x22, 0x22, 0x22, 0x22, 0x10,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||
0x22, 0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x22,
|
||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x22, 0x22, 0x11, 0x11, 0x22, 0x22, 0x11, 0x11, 0x22, 0x22, 0x10,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x11, 0x01, 0x22, 0x22, 0x11,
|
||||
0x01, 0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x22, 0x11,
|
||||
0x11, 0x22, 0x22, 0x11, 0x11, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
|
||||
0x22, 0x22, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x22,
|
||||
0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x10, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x22, 0x22, 0x22, 0x22,
|
||||
0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
unsigned int icon_bmp_len = 578;
|
||||
BIN
3rdparty/sdl/SDL/test/icon2x.bmp
vendored
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
3rdparty/sdl/SDL/test/logaudiodev.bmp
vendored
Normal file
|
After Width: | Height: | Size: 64 KiB |
137
3rdparty/sdl/SDL/test/loopwave.c
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Program to load a wave file and loop playing it using SDL audio */
|
||||
|
||||
/* loopwaves.c is much more robust in handling WAVE files --
|
||||
This is only for simple WAVEs
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SDL_MAIN_USE_CALLBACKS 1
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testutils.h"
|
||||
|
||||
static struct
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
Uint8 *sound; /* Pointer to wave data */
|
||||
Uint32 soundlen; /* Length of wave data */
|
||||
} wave;
|
||||
|
||||
static SDL_AudioStream *stream;
|
||||
static SDLTest_CommonState *state;
|
||||
|
||||
static int fillerup(void)
|
||||
{
|
||||
const int minimum = (wave.soundlen / SDL_AUDIO_FRAMESIZE(wave.spec)) / 2;
|
||||
if (SDL_GetAudioStreamQueued(stream) < minimum) {
|
||||
SDL_PutAudioStreamData(stream, wave.sound, wave.soundlen);
|
||||
}
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
char *filename = NULL;
|
||||
|
||||
/* this doesn't have to run very much, so give up tons of CPU time between iterations. */
|
||||
SDL_SetHint(SDL_HINT_MAIN_CALLBACK_RATE, "5");
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
return SDL_APP_SUCCESS;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (!filename) {
|
||||
filename = argv[i];
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
static const char *options[] = { "[sample.wav]", NULL };
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDL_Init(SDL_INIT_AUDIO | SDL_INIT_EVENTS)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
filename = GetResourceFilename(filename, "sample.wav");
|
||||
|
||||
if (!filename) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
/* Load the wave file into memory */
|
||||
if (!SDL_LoadWAV(filename, &wave.spec, &wave.sound, &wave.soundlen)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s", filename, SDL_GetError());
|
||||
SDL_free(filename);
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
SDL_free(filename);
|
||||
|
||||
/* Show the list of available drivers */
|
||||
SDL_Log("Available audio drivers:");
|
||||
for (i = 0; i < SDL_GetNumAudioDrivers(); ++i) {
|
||||
SDL_Log("%i: %s", i, SDL_GetAudioDriver(i));
|
||||
}
|
||||
|
||||
SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver());
|
||||
|
||||
stream = SDL_OpenAudioDeviceStream(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &wave.spec, NULL, NULL);
|
||||
if (!stream) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create audio stream: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
SDL_ResumeAudioStreamDevice(stream);
|
||||
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event)
|
||||
{
|
||||
return (event->type == SDL_EVENT_QUIT) ? SDL_APP_SUCCESS : SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppIterate(void *appstate)
|
||||
{
|
||||
return fillerup();
|
||||
}
|
||||
|
||||
void SDL_AppQuit(void *appstate, SDL_AppResult result)
|
||||
{
|
||||
SDL_DestroyAudioStream(stream);
|
||||
SDL_free(wave.sound);
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
}
|
||||
|
||||
11
3rdparty/sdl/SDL/test/main.cpp
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/*
|
||||
* This file is supposed to be used to build tests on platforms that require
|
||||
* the main function to be implemented in C++, which means that SDL_main's
|
||||
* implementation needs C++ and thus can't be included in test*.c
|
||||
*
|
||||
* Placed in the public domain by Daniel Gibson, 2022-12-12
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL_main.h>
|
||||
|
||||
// that's all, folks!
|
||||
BIN
3rdparty/sdl/SDL/test/moose.dat
vendored
Normal file
BIN
3rdparty/sdl/SDL/test/n3ds/logo48x48.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
3rdparty/sdl/SDL/test/physaudiodev.bmp
vendored
Normal file
|
After Width: | Height: | Size: 64 KiB |
14
3rdparty/sdl/SDL/test/picture.xbm
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
#define picture_width 32
|
||||
#define picture_height 32
|
||||
static char picture_bits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x18,
|
||||
0x64, 0x6f, 0xf6, 0x26, 0x0a, 0x00, 0x00, 0x50, 0xf2, 0xff, 0xff, 0x4f,
|
||||
0x14, 0x04, 0x00, 0x28, 0x14, 0x0e, 0x00, 0x28, 0x10, 0x32, 0x00, 0x08,
|
||||
0x94, 0x03, 0x00, 0x08, 0xf4, 0x04, 0x00, 0x08, 0xb0, 0x08, 0x00, 0x08,
|
||||
0x34, 0x01, 0x00, 0x28, 0x34, 0x01, 0x00, 0x28, 0x12, 0x00, 0x40, 0x48,
|
||||
0x12, 0x20, 0xa6, 0x48, 0x14, 0x50, 0x11, 0x29, 0x14, 0x50, 0x48, 0x2a,
|
||||
0x10, 0x27, 0xac, 0x0e, 0xd4, 0x71, 0xe8, 0x0a, 0x74, 0x20, 0xa8, 0x0a,
|
||||
0x14, 0x20, 0x00, 0x08, 0x10, 0x50, 0x00, 0x08, 0x14, 0x00, 0x00, 0x28,
|
||||
0x14, 0x00, 0x00, 0x28, 0xf2, 0xff, 0xff, 0x4f, 0x0a, 0x00, 0x00, 0x50,
|
||||
0x64, 0x6f, 0xf6, 0x26, 0x18, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
36
3rdparty/sdl/SDL/test/pretest.c
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
/* Call SDL_GetPrefPath to warm the SHGetFolderPathW cache */
|
||||
|
||||
/**
|
||||
* We noticed frequent ci timeouts running testfilesystem on 32-bit Windows.
|
||||
* Internally, this functions calls Shell32.SHGetFolderPathW.
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Uint64 start;
|
||||
Uint64 prequit;
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
SDL_Init(0);
|
||||
start = SDL_GetTicks();
|
||||
SDL_free(SDL_GetPrefPath("libsdl", "test_filesystem"));
|
||||
prequit = SDL_GetTicks();
|
||||
SDL_Log("SDL_GetPrefPath took %" SDL_PRIu64 "ms", prequit - start);
|
||||
SDL_Quit();
|
||||
SDL_Log("SDL_Quit took %" SDL_PRIu64 "ms", SDL_GetTicks() - prequit);
|
||||
return 0;
|
||||
}
|
||||
58
3rdparty/sdl/SDL/test/relative_mode.markdown
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
Relative mode testing
|
||||
=====================
|
||||
|
||||
See test program at the bottom of this file.
|
||||
|
||||
Initial tests:
|
||||
|
||||
- When in relative mode, the mouse shouldn't be moveable outside of the window.
|
||||
- When the cursor is outside the window when relative mode is enabled, mouse
|
||||
clicks should not go to whatever app was under the cursor previously.
|
||||
- When alt/cmd-tabbing between a relative mode app and another app, clicks when
|
||||
in the relative mode app should also not go to whatever app was under the
|
||||
cursor previously.
|
||||
|
||||
|
||||
Code
|
||||
====
|
||||
|
||||
#include <SDL.h>
|
||||
|
||||
int PollEvents()
|
||||
{
|
||||
SDL_Event event;
|
||||
while (SDL_PollEvent(&event))
|
||||
{
|
||||
switch (event.type)
|
||||
{
|
||||
case SDL_EVENT_QUIT:
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SDL_Window *win;
|
||||
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
|
||||
win = SDL_CreateWindow("Test", 800, 600, 0);
|
||||
SDL_SetWindowRelativeMouseMode(win, true);
|
||||
|
||||
while (1)
|
||||
{
|
||||
if (PollEvents())
|
||||
break;
|
||||
}
|
||||
|
||||
SDL_DestroyWindow(win);
|
||||
|
||||
SDL_Quit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
BIN
3rdparty/sdl/SDL/test/sample.bmp
vendored
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
3rdparty/sdl/SDL/test/sdl-test_round.bmp
vendored
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
3rdparty/sdl/SDL/test/soundboard.bmp
vendored
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
3rdparty/sdl/SDL/test/soundboard_levels.bmp
vendored
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
3rdparty/sdl/SDL/test/speaker.bmp
vendored
Normal file
|
After Width: | Height: | Size: 64 KiB |
3
3rdparty/sdl/SDL/test/template.test.in
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[Test]
|
||||
Type=session
|
||||
Exec=@installedtestsdir@/@exe@ @installed_arguments@
|
||||
191
3rdparty/sdl/SDL/test/testasyncio.c
vendored
Normal file
@@ -0,0 +1,191 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
#define SDL_MAIN_USE_CALLBACKS 1
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include <SDL3/SDL_test_common.h>
|
||||
|
||||
static SDL_Renderer *renderer = NULL;
|
||||
static SDL_Texture *texture = NULL;
|
||||
static SDL_AsyncIOQueue *queue = NULL;
|
||||
static SDLTest_CommonState *state = NULL;
|
||||
|
||||
SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
||||
{
|
||||
const char *base = NULL;
|
||||
SDL_AsyncIO *asyncio = NULL;
|
||||
char **bmps = NULL;
|
||||
int bmpcount = 0;
|
||||
int i;
|
||||
|
||||
SDL_srand(0);
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO);
|
||||
if (!state) {
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
/* Enable standard application logging */
|
||||
SDL_SetLogPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed = SDLTest_CommonArg(state, i);
|
||||
if (consumed <= 0) {
|
||||
static const char *options[] = {
|
||||
NULL,
|
||||
};
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
return 1;
|
||||
}
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
state->num_windows = 1;
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDLTest_CommonInit(state)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
SDL_SetLogPriorities(SDL_LOG_PRIORITY_VERBOSE);
|
||||
|
||||
renderer = state->renderers[0];
|
||||
if (!renderer) {
|
||||
/* SDL_Log("Couldn't create renderer: %s", SDL_GetError()); */
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC, 512, 512);
|
||||
if (!texture) {
|
||||
SDL_Log("Couldn't create texture: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
} else {
|
||||
static const Uint32 blank[512 * 512];
|
||||
const SDL_Rect rect = { 0, 0, 512, 512 };
|
||||
SDL_UpdateTexture(texture, &rect, blank, 512 * sizeof (Uint32));
|
||||
}
|
||||
|
||||
queue = SDL_CreateAsyncIOQueue();
|
||||
if (!queue) {
|
||||
SDL_Log("Couldn't create async i/o queue: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
base = SDL_GetBasePath();
|
||||
bmps = SDL_GlobDirectory(base, "*.bmp", SDL_GLOB_CASEINSENSITIVE, &bmpcount);
|
||||
if (!bmps || (bmpcount == 0)) {
|
||||
SDL_Log("No BMP files found.");
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
for (i = 0; i < bmpcount; i++) {
|
||||
char *path = NULL;
|
||||
if (SDL_asprintf(&path, "%s%s", base, bmps[i]) < 0) {
|
||||
SDL_free(path);
|
||||
} else {
|
||||
SDL_Log("Loading %s...", path);
|
||||
SDL_LoadFileAsync(path, queue, path);
|
||||
}
|
||||
}
|
||||
|
||||
SDL_free(bmps);
|
||||
|
||||
SDL_Log("Opening asyncio.tmp...");
|
||||
asyncio = SDL_AsyncIOFromFile("asyncio.tmp", "w");
|
||||
if (!asyncio) {
|
||||
SDL_Log("Failed!");
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
SDL_WriteAsyncIO(asyncio, "hello", 0, 5, queue, "asyncio.tmp (write)");
|
||||
SDL_CloseAsyncIO(asyncio, true, queue, "asyncio.tmp (flush/close)");
|
||||
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event)
|
||||
{
|
||||
switch (event->type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return SDL_APP_SUCCESS;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return SDLTest_CommonEventMainCallbacks(state, event);
|
||||
}
|
||||
|
||||
static void async_io_task_complete(const SDL_AsyncIOOutcome *outcome)
|
||||
{
|
||||
const char *fname = (const char *) outcome->userdata;
|
||||
const char *resultstr = "[unknown result]";
|
||||
|
||||
switch (outcome->result) {
|
||||
#define RESCASE(x) case x: resultstr = #x; break
|
||||
RESCASE(SDL_ASYNCIO_COMPLETE);
|
||||
RESCASE(SDL_ASYNCIO_FAILURE);
|
||||
RESCASE(SDL_ASYNCIO_CANCELED);
|
||||
#undef RESCASE
|
||||
}
|
||||
|
||||
SDL_Log("File '%s' async results: %s", fname, resultstr);
|
||||
|
||||
if (SDL_strncmp(fname, "asyncio.tmp", 11) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (outcome->result == SDL_ASYNCIO_COMPLETE) {
|
||||
SDL_Surface *surface = SDL_LoadBMP_IO(SDL_IOFromConstMem(outcome->buffer, (size_t) outcome->bytes_transferred), true);
|
||||
if (surface) {
|
||||
SDL_Surface *converted = SDL_ConvertSurface(surface, SDL_PIXELFORMAT_RGBA8888);
|
||||
SDL_DestroySurface(surface);
|
||||
if (converted) {
|
||||
const SDL_Rect rect = { 50 + SDL_rand(512 - 100), 50 + SDL_rand(512 - 100), converted->w, converted->h };
|
||||
SDL_UpdateTexture(texture, &rect, converted->pixels, converted->pitch);
|
||||
SDL_DestroySurface(converted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SDL_free(outcome->userdata);
|
||||
SDL_free(outcome->buffer);
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppIterate(void *appstate)
|
||||
{
|
||||
SDL_AsyncIOOutcome outcome;
|
||||
if (SDL_GetAsyncIOResult(queue, &outcome)) {
|
||||
async_io_task_complete(&outcome);
|
||||
}
|
||||
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
|
||||
SDL_RenderClear(renderer);
|
||||
SDL_RenderTexture(renderer, texture, NULL, NULL);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
void SDL_AppQuit(void *appstate, SDL_AppResult result)
|
||||
{
|
||||
SDL_DestroyAsyncIOQueue(queue);
|
||||
SDL_DestroyTexture(texture);
|
||||
SDL_RemovePath("asyncio.tmp");
|
||||
SDLTest_CommonQuit(state);
|
||||
}
|
||||
|
||||
764
3rdparty/sdl/SDL/test/testatomic.c
vendored
Normal file
@@ -0,0 +1,764 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
/*
|
||||
Absolutely basic tests just to see if we get the expected value
|
||||
after calling each function.
|
||||
*/
|
||||
|
||||
static const char *
|
||||
tf(bool _tf)
|
||||
{
|
||||
static const char *t = "TRUE";
|
||||
static const char *f = "FALSE";
|
||||
|
||||
if (_tf) {
|
||||
return t;
|
||||
}
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
static void RunBasicTest(void)
|
||||
{
|
||||
int value;
|
||||
SDL_SpinLock lock = 0;
|
||||
|
||||
SDL_AtomicInt v;
|
||||
bool tfret = false;
|
||||
|
||||
SDL_Log("%s", "");
|
||||
SDL_Log("spin lock---------------------------------------");
|
||||
SDL_Log("%s", "");
|
||||
|
||||
SDL_LockSpinlock(&lock);
|
||||
SDL_Log("AtomicLock lock=%d", lock);
|
||||
SDL_UnlockSpinlock(&lock);
|
||||
SDL_Log("AtomicUnlock lock=%d", lock);
|
||||
|
||||
SDL_Log("%s", "");
|
||||
SDL_Log("atomic -----------------------------------------");
|
||||
SDL_Log("%s", "");
|
||||
|
||||
SDL_SetAtomicInt(&v, 0);
|
||||
tfret = SDL_SetAtomicInt(&v, 10) == 0;
|
||||
SDL_Log("AtomicSet(10) tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
tfret = SDL_AddAtomicInt(&v, 10) == 10;
|
||||
SDL_Log("AtomicAdd(10) tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
|
||||
SDL_SetAtomicInt(&v, 0);
|
||||
SDL_AtomicIncRef(&v);
|
||||
tfret = (SDL_GetAtomicInt(&v) == 1);
|
||||
SDL_Log("AtomicIncRef() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
SDL_AtomicIncRef(&v);
|
||||
tfret = (SDL_GetAtomicInt(&v) == 2);
|
||||
SDL_Log("AtomicIncRef() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
tfret = (SDL_AtomicDecRef(&v) == false);
|
||||
SDL_Log("AtomicDecRef() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
tfret = (SDL_AtomicDecRef(&v) == true);
|
||||
SDL_Log("AtomicDecRef() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
|
||||
SDL_SetAtomicInt(&v, 10);
|
||||
tfret = (SDL_CompareAndSwapAtomicInt(&v, 0, 20) == false);
|
||||
SDL_Log("AtomicCAS() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
value = SDL_GetAtomicInt(&v);
|
||||
tfret = (SDL_CompareAndSwapAtomicInt(&v, value, 20) == true);
|
||||
SDL_Log("AtomicCAS() tfret=%s val=%d", tf(tfret), SDL_GetAtomicInt(&v));
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/* Atomic operation test
|
||||
* Adapted with permission from code by Michael Davidsaver at:
|
||||
* http://bazaar.launchpad.net/~mdavidsaver/epics-base/atomic/revision/12105#src/libCom/test/epicsAtomicTest.c
|
||||
* Original copyright 2010 Brookhaven Science Associates as operator of Brookhaven National Lab
|
||||
* http://www.aps.anl.gov/epics/license/open.php
|
||||
*/
|
||||
|
||||
/* Tests semantics of atomic operations. Also a stress test
|
||||
* to see if they are really atomic.
|
||||
*
|
||||
* Several threads adding to the same variable.
|
||||
* at the end the value is compared with the expected
|
||||
* and with a non-atomic counter.
|
||||
*/
|
||||
|
||||
/* Number of concurrent incrementers */
|
||||
#define NThreads 2
|
||||
#define CountInc 100
|
||||
#define VALBITS (sizeof(atomicValue) * 8)
|
||||
|
||||
#define atomicValue int
|
||||
#define CountTo ((atomicValue)((unsigned int)(1 << (VALBITS - 1)) - 1))
|
||||
#define NInter (CountTo / CountInc / NThreads)
|
||||
#define Expect (CountTo - NInter * CountInc * NThreads)
|
||||
|
||||
enum
|
||||
{
|
||||
CountTo_GreaterThanZero = CountTo > 0,
|
||||
};
|
||||
SDL_COMPILE_TIME_ASSERT(size, CountTo_GreaterThanZero); /* check for rollover */
|
||||
|
||||
static SDL_AtomicInt good = { 42 };
|
||||
static atomicValue bad = 42;
|
||||
static SDL_AtomicInt threadsRunning;
|
||||
static SDL_Semaphore *threadDone;
|
||||
|
||||
static int SDLCALL adder(void *junk)
|
||||
{
|
||||
unsigned long N = NInter;
|
||||
SDL_Log("Thread subtracting %d %lu times", CountInc, N);
|
||||
while (N--) {
|
||||
SDL_AddAtomicInt(&good, -CountInc);
|
||||
bad -= CountInc;
|
||||
}
|
||||
SDL_AddAtomicInt(&threadsRunning, -1);
|
||||
SDL_SignalSemaphore(threadDone);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void runAdder(void)
|
||||
{
|
||||
Uint64 start, end;
|
||||
int i;
|
||||
SDL_Thread *threads[NThreads];
|
||||
|
||||
start = SDL_GetTicksNS();
|
||||
|
||||
threadDone = SDL_CreateSemaphore(0);
|
||||
|
||||
SDL_SetAtomicInt(&threadsRunning, NThreads);
|
||||
|
||||
for (i = 0; i < NThreads; i++) {
|
||||
threads[i] = SDL_CreateThread(adder, "Adder", NULL);
|
||||
}
|
||||
|
||||
while (SDL_GetAtomicInt(&threadsRunning) > 0) {
|
||||
SDL_WaitSemaphore(threadDone);
|
||||
}
|
||||
|
||||
for (i = 0; i < NThreads; i++) {
|
||||
SDL_WaitThread(threads[i], NULL);
|
||||
}
|
||||
|
||||
SDL_DestroySemaphore(threadDone);
|
||||
|
||||
end = SDL_GetTicksNS();
|
||||
|
||||
SDL_Log("Finished in %f sec", (end - start) / 1000000000.0);
|
||||
}
|
||||
|
||||
static void RunEpicTest(void)
|
||||
{
|
||||
int b;
|
||||
atomicValue v;
|
||||
|
||||
SDL_Log("%s", "");
|
||||
SDL_Log("epic test---------------------------------------");
|
||||
SDL_Log("%s", "");
|
||||
|
||||
SDL_Log("Size asserted to be >= 32-bit");
|
||||
SDL_assert(sizeof(atomicValue) >= 4);
|
||||
|
||||
SDL_Log("Check static initializer");
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 42);
|
||||
|
||||
SDL_assert(bad == 42);
|
||||
|
||||
SDL_Log("Test negative values");
|
||||
SDL_SetAtomicInt(&good, -5);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == -5);
|
||||
|
||||
SDL_Log("Verify maximum value");
|
||||
SDL_SetAtomicInt(&good, CountTo);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == CountTo);
|
||||
|
||||
SDL_Log("Test compare and exchange");
|
||||
|
||||
b = SDL_CompareAndSwapAtomicInt(&good, 500, 43);
|
||||
SDL_assert(!b); /* no swap since CountTo!=500 */
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == CountTo); /* ensure no swap */
|
||||
|
||||
b = SDL_CompareAndSwapAtomicInt(&good, CountTo, 44);
|
||||
SDL_assert(!!b); /* will swap */
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 44);
|
||||
|
||||
SDL_Log("Test Add");
|
||||
|
||||
v = SDL_AddAtomicInt(&good, 1);
|
||||
SDL_assert(v == 44);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 45);
|
||||
|
||||
v = SDL_AddAtomicInt(&good, 10);
|
||||
SDL_assert(v == 45);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 55);
|
||||
|
||||
SDL_Log("Test Add (Negative values)");
|
||||
|
||||
v = SDL_AddAtomicInt(&good, -20);
|
||||
SDL_assert(v == 55);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 35);
|
||||
|
||||
v = SDL_AddAtomicInt(&good, -50); /* crossing zero down */
|
||||
SDL_assert(v == 35);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == -15);
|
||||
|
||||
v = SDL_AddAtomicInt(&good, 30); /* crossing zero up */
|
||||
SDL_assert(v == -15);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == 15);
|
||||
|
||||
SDL_Log("Reset before count down test");
|
||||
SDL_SetAtomicInt(&good, CountTo);
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_assert(v == CountTo);
|
||||
|
||||
bad = CountTo;
|
||||
SDL_assert(bad == CountTo);
|
||||
|
||||
SDL_Log("Counting down from %d, Expect %d remaining", CountTo, Expect);
|
||||
runAdder();
|
||||
|
||||
v = SDL_GetAtomicInt(&good);
|
||||
SDL_Log("Atomic %d Non-Atomic %d", v, bad);
|
||||
SDL_assert(v == Expect);
|
||||
/* We can't guarantee that bad != Expect, this would happen on a single core system, for example. */
|
||||
/*SDL_assert(bad != Expect);*/
|
||||
}
|
||||
|
||||
/* End atomic operation test */
|
||||
/**************************************************************************/
|
||||
|
||||
/**************************************************************************/
|
||||
/* Lock-free FIFO test */
|
||||
|
||||
/* This is useful to test the impact of another thread locking the queue
|
||||
entirely for heavy-weight manipulation.
|
||||
*/
|
||||
#define TEST_SPINLOCK_FIFO
|
||||
|
||||
#define NUM_READERS 4
|
||||
#define NUM_WRITERS 4
|
||||
#define EVENTS_PER_WRITER 1000000
|
||||
|
||||
/* The number of entries must be a power of 2 */
|
||||
#define MAX_ENTRIES 256
|
||||
#define WRAP_MASK (MAX_ENTRIES - 1)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_AtomicInt sequence;
|
||||
SDL_Event event;
|
||||
} SDL_EventQueueEntry;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_EventQueueEntry entries[MAX_ENTRIES];
|
||||
|
||||
char cache_pad1[SDL_CACHELINE_SIZE - ((sizeof(SDL_EventQueueEntry) * MAX_ENTRIES) % SDL_CACHELINE_SIZE)];
|
||||
|
||||
SDL_AtomicInt enqueue_pos;
|
||||
|
||||
char cache_pad2[SDL_CACHELINE_SIZE - sizeof(SDL_AtomicInt)];
|
||||
|
||||
SDL_AtomicInt dequeue_pos;
|
||||
|
||||
char cache_pad3[SDL_CACHELINE_SIZE - sizeof(SDL_AtomicInt)];
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
SDL_SpinLock lock;
|
||||
SDL_AtomicInt rwcount;
|
||||
SDL_AtomicInt watcher;
|
||||
|
||||
char cache_pad4[SDL_CACHELINE_SIZE - sizeof(SDL_SpinLock) - 2 * sizeof(SDL_AtomicInt)];
|
||||
#endif
|
||||
|
||||
SDL_AtomicInt active;
|
||||
|
||||
/* Only needed for the mutex test */
|
||||
SDL_Mutex *mutex;
|
||||
|
||||
} SDL_EventQueue;
|
||||
|
||||
static void InitEventQueue(SDL_EventQueue *queue)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_ENTRIES; ++i) {
|
||||
SDL_SetAtomicInt(&queue->entries[i].sequence, i);
|
||||
}
|
||||
SDL_SetAtomicInt(&queue->enqueue_pos, 0);
|
||||
SDL_SetAtomicInt(&queue->dequeue_pos, 0);
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
queue->lock = 0;
|
||||
SDL_SetAtomicInt(&queue->rwcount, 0);
|
||||
SDL_SetAtomicInt(&queue->watcher, 0);
|
||||
#endif
|
||||
SDL_SetAtomicInt(&queue->active, 1);
|
||||
}
|
||||
|
||||
static bool EnqueueEvent_LockFree(SDL_EventQueue *queue, const SDL_Event *event)
|
||||
{
|
||||
SDL_EventQueueEntry *entry;
|
||||
unsigned queue_pos;
|
||||
unsigned entry_seq;
|
||||
int delta;
|
||||
bool status;
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
/* This is a gate so an external thread can lock the queue */
|
||||
SDL_LockSpinlock(&queue->lock);
|
||||
SDL_assert(SDL_GetAtomicInt(&queue->watcher) == 0);
|
||||
SDL_AtomicIncRef(&queue->rwcount);
|
||||
SDL_UnlockSpinlock(&queue->lock);
|
||||
#endif
|
||||
|
||||
queue_pos = (unsigned)SDL_GetAtomicInt(&queue->enqueue_pos);
|
||||
for (;;) {
|
||||
entry = &queue->entries[queue_pos & WRAP_MASK];
|
||||
entry_seq = (unsigned)SDL_GetAtomicInt(&entry->sequence);
|
||||
|
||||
delta = (int)(entry_seq - queue_pos);
|
||||
if (delta == 0) {
|
||||
/* The entry and the queue position match, try to increment the queue position */
|
||||
if (SDL_CompareAndSwapAtomicInt(&queue->enqueue_pos, (int)queue_pos, (int)(queue_pos + 1))) {
|
||||
/* We own the object, fill it! */
|
||||
entry->event = *event;
|
||||
SDL_SetAtomicInt(&entry->sequence, (int)(queue_pos + 1));
|
||||
status = true;
|
||||
break;
|
||||
}
|
||||
} else if (delta < 0) {
|
||||
/* We ran into an old queue entry, which means it still needs to be dequeued */
|
||||
status = false;
|
||||
break;
|
||||
} else {
|
||||
/* We ran into a new queue entry, get the new queue position */
|
||||
queue_pos = (unsigned)SDL_GetAtomicInt(&queue->enqueue_pos);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
(void)SDL_AtomicDecRef(&queue->rwcount);
|
||||
#endif
|
||||
return status;
|
||||
}
|
||||
|
||||
static bool DequeueEvent_LockFree(SDL_EventQueue *queue, SDL_Event *event)
|
||||
{
|
||||
SDL_EventQueueEntry *entry;
|
||||
unsigned queue_pos;
|
||||
unsigned entry_seq;
|
||||
int delta;
|
||||
bool status;
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
/* This is a gate so an external thread can lock the queue */
|
||||
SDL_LockSpinlock(&queue->lock);
|
||||
SDL_assert(SDL_GetAtomicInt(&queue->watcher) == 0);
|
||||
SDL_AtomicIncRef(&queue->rwcount);
|
||||
SDL_UnlockSpinlock(&queue->lock);
|
||||
#endif
|
||||
|
||||
queue_pos = (unsigned)SDL_GetAtomicInt(&queue->dequeue_pos);
|
||||
for (;;) {
|
||||
entry = &queue->entries[queue_pos & WRAP_MASK];
|
||||
entry_seq = (unsigned)SDL_GetAtomicInt(&entry->sequence);
|
||||
|
||||
delta = (int)(entry_seq - (queue_pos + 1));
|
||||
if (delta == 0) {
|
||||
/* The entry and the queue position match, try to increment the queue position */
|
||||
if (SDL_CompareAndSwapAtomicInt(&queue->dequeue_pos, (int)queue_pos, (int)(queue_pos + 1))) {
|
||||
/* We own the object, fill it! */
|
||||
*event = entry->event;
|
||||
SDL_SetAtomicInt(&entry->sequence, (int)(queue_pos + MAX_ENTRIES));
|
||||
status = true;
|
||||
break;
|
||||
}
|
||||
} else if (delta < 0) {
|
||||
/* We ran into an old queue entry, which means we've hit empty */
|
||||
status = false;
|
||||
break;
|
||||
} else {
|
||||
/* We ran into a new queue entry, get the new queue position */
|
||||
queue_pos = (unsigned)SDL_GetAtomicInt(&queue->dequeue_pos);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
(void)SDL_AtomicDecRef(&queue->rwcount);
|
||||
#endif
|
||||
return status;
|
||||
}
|
||||
|
||||
static bool EnqueueEvent_Mutex(SDL_EventQueue *queue, const SDL_Event *event)
|
||||
{
|
||||
SDL_EventQueueEntry *entry;
|
||||
unsigned queue_pos;
|
||||
unsigned entry_seq;
|
||||
int delta;
|
||||
bool status = false;
|
||||
|
||||
SDL_LockMutex(queue->mutex);
|
||||
|
||||
queue_pos = (unsigned)queue->enqueue_pos.value;
|
||||
entry = &queue->entries[queue_pos & WRAP_MASK];
|
||||
entry_seq = (unsigned)entry->sequence.value;
|
||||
|
||||
delta = (int)(entry_seq - queue_pos);
|
||||
if (delta == 0) {
|
||||
++queue->enqueue_pos.value;
|
||||
|
||||
/* We own the object, fill it! */
|
||||
entry->event = *event;
|
||||
entry->sequence.value = (int)(queue_pos + 1);
|
||||
status = true;
|
||||
} else if (delta < 0) {
|
||||
/* We ran into an old queue entry, which means it still needs to be dequeued */
|
||||
} else {
|
||||
SDL_Log("ERROR: mutex failed!");
|
||||
}
|
||||
|
||||
SDL_UnlockMutex(queue->mutex);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static bool DequeueEvent_Mutex(SDL_EventQueue *queue, SDL_Event *event)
|
||||
{
|
||||
SDL_EventQueueEntry *entry;
|
||||
unsigned queue_pos;
|
||||
unsigned entry_seq;
|
||||
int delta;
|
||||
bool status = false;
|
||||
|
||||
SDL_LockMutex(queue->mutex);
|
||||
|
||||
queue_pos = (unsigned)queue->dequeue_pos.value;
|
||||
entry = &queue->entries[queue_pos & WRAP_MASK];
|
||||
entry_seq = (unsigned)entry->sequence.value;
|
||||
|
||||
delta = (int)(entry_seq - (queue_pos + 1));
|
||||
if (delta == 0) {
|
||||
++queue->dequeue_pos.value;
|
||||
|
||||
/* We own the object, fill it! */
|
||||
*event = entry->event;
|
||||
entry->sequence.value = (int)(queue_pos + MAX_ENTRIES);
|
||||
status = true;
|
||||
} else if (delta < 0) {
|
||||
/* We ran into an old queue entry, which means we've hit empty */
|
||||
} else {
|
||||
SDL_Log("ERROR: mutex failed!");
|
||||
}
|
||||
|
||||
SDL_UnlockMutex(queue->mutex);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_EventQueue *queue;
|
||||
int index;
|
||||
char padding1[SDL_CACHELINE_SIZE - (sizeof(SDL_EventQueue *) + sizeof(int)) % SDL_CACHELINE_SIZE];
|
||||
int waits;
|
||||
bool lock_free;
|
||||
char padding2[SDL_CACHELINE_SIZE - sizeof(int) - sizeof(bool)];
|
||||
SDL_Thread *thread;
|
||||
} WriterData;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_EventQueue *queue;
|
||||
int counters[NUM_WRITERS];
|
||||
int waits;
|
||||
bool lock_free;
|
||||
char padding[SDL_CACHELINE_SIZE - (sizeof(SDL_EventQueue *) + sizeof(int) * NUM_WRITERS + sizeof(int) + sizeof(bool)) % SDL_CACHELINE_SIZE];
|
||||
SDL_Thread *thread;
|
||||
} ReaderData;
|
||||
|
||||
static int SDLCALL FIFO_Writer(void *_data)
|
||||
{
|
||||
WriterData *data = (WriterData *)_data;
|
||||
SDL_EventQueue *queue = data->queue;
|
||||
int i;
|
||||
SDL_Event event;
|
||||
|
||||
event.type = SDL_EVENT_USER;
|
||||
event.user.windowID = 0;
|
||||
event.user.code = 0;
|
||||
event.user.data1 = data;
|
||||
event.user.data2 = NULL;
|
||||
|
||||
if (data->lock_free) {
|
||||
for (i = 0; i < EVENTS_PER_WRITER; ++i) {
|
||||
event.user.code = i;
|
||||
while (!EnqueueEvent_LockFree(queue, &event)) {
|
||||
++data->waits;
|
||||
SDL_Delay(0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < EVENTS_PER_WRITER; ++i) {
|
||||
event.user.code = i;
|
||||
while (!EnqueueEvent_Mutex(queue, &event)) {
|
||||
++data->waits;
|
||||
SDL_Delay(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int SDLCALL FIFO_Reader(void *_data)
|
||||
{
|
||||
ReaderData *data = (ReaderData *)_data;
|
||||
SDL_EventQueue *queue = data->queue;
|
||||
SDL_Event event;
|
||||
|
||||
if (data->lock_free) {
|
||||
for (;;) {
|
||||
if (DequeueEvent_LockFree(queue, &event)) {
|
||||
WriterData *writer = (WriterData *)event.user.data1;
|
||||
++data->counters[writer->index];
|
||||
} else if (SDL_GetAtomicInt(&queue->active)) {
|
||||
++data->waits;
|
||||
SDL_Delay(0);
|
||||
} else {
|
||||
/* We drained the queue, we're done! */
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (;;) {
|
||||
if (DequeueEvent_Mutex(queue, &event)) {
|
||||
WriterData *writer = (WriterData *)event.user.data1;
|
||||
++data->counters[writer->index];
|
||||
} else if (SDL_GetAtomicInt(&queue->active)) {
|
||||
++data->waits;
|
||||
SDL_Delay(0);
|
||||
} else {
|
||||
/* We drained the queue, we're done! */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
/* This thread periodically locks the queue for no particular reason */
|
||||
static int SDLCALL FIFO_Watcher(void *_data)
|
||||
{
|
||||
SDL_EventQueue *queue = (SDL_EventQueue *)_data;
|
||||
|
||||
while (SDL_GetAtomicInt(&queue->active)) {
|
||||
SDL_LockSpinlock(&queue->lock);
|
||||
SDL_AtomicIncRef(&queue->watcher);
|
||||
while (SDL_GetAtomicInt(&queue->rwcount) > 0) {
|
||||
SDL_Delay(0);
|
||||
}
|
||||
/* Do queue manipulation here... */
|
||||
(void)SDL_AtomicDecRef(&queue->watcher);
|
||||
SDL_UnlockSpinlock(&queue->lock);
|
||||
|
||||
/* Wait a bit... */
|
||||
SDL_Delay(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif /* TEST_SPINLOCK_FIFO */
|
||||
|
||||
static void RunFIFOTest(bool lock_free)
|
||||
{
|
||||
SDL_EventQueue queue;
|
||||
SDL_Thread *fifo_thread = NULL;
|
||||
WriterData writerData[NUM_WRITERS];
|
||||
ReaderData readerData[NUM_READERS];
|
||||
Uint64 start, end;
|
||||
int i, j;
|
||||
int grand_total;
|
||||
char textBuffer[1024];
|
||||
size_t len;
|
||||
|
||||
SDL_Log("%s", "");
|
||||
SDL_Log("FIFO test---------------------------------------");
|
||||
SDL_Log("%s", "");
|
||||
SDL_Log("Mode: %s", lock_free ? "LockFree" : "Mutex");
|
||||
|
||||
SDL_memset(&queue, 0xff, sizeof(queue));
|
||||
|
||||
InitEventQueue(&queue);
|
||||
if (!lock_free) {
|
||||
queue.mutex = SDL_CreateMutex();
|
||||
}
|
||||
|
||||
start = SDL_GetTicksNS();
|
||||
|
||||
#ifdef TEST_SPINLOCK_FIFO
|
||||
/* Start a monitoring thread */
|
||||
if (lock_free) {
|
||||
fifo_thread = SDL_CreateThread(FIFO_Watcher, "FIFOWatcher", &queue);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Start the readers first */
|
||||
SDL_Log("Starting %d readers", NUM_READERS);
|
||||
SDL_zeroa(readerData);
|
||||
for (i = 0; i < NUM_READERS; ++i) {
|
||||
char name[64];
|
||||
(void)SDL_snprintf(name, sizeof(name), "FIFOReader%d", i);
|
||||
readerData[i].queue = &queue;
|
||||
readerData[i].lock_free = lock_free;
|
||||
readerData[i].thread = SDL_CreateThread(FIFO_Reader, name, &readerData[i]);
|
||||
}
|
||||
|
||||
/* Start up the writers */
|
||||
SDL_Log("Starting %d writers", NUM_WRITERS);
|
||||
SDL_zeroa(writerData);
|
||||
for (i = 0; i < NUM_WRITERS; ++i) {
|
||||
char name[64];
|
||||
(void)SDL_snprintf(name, sizeof(name), "FIFOWriter%d", i);
|
||||
writerData[i].queue = &queue;
|
||||
writerData[i].index = i;
|
||||
writerData[i].lock_free = lock_free;
|
||||
writerData[i].thread = SDL_CreateThread(FIFO_Writer, name, &writerData[i]);
|
||||
}
|
||||
|
||||
/* Wait for the writers */
|
||||
for (i = 0; i < NUM_WRITERS; ++i) {
|
||||
SDL_WaitThread(writerData[i].thread, NULL);
|
||||
}
|
||||
|
||||
/* Shut down the queue so readers exit */
|
||||
SDL_SetAtomicInt(&queue.active, 0);
|
||||
|
||||
/* Wait for the readers */
|
||||
for (i = 0; i < NUM_READERS; ++i) {
|
||||
SDL_WaitThread(readerData[i].thread, NULL);
|
||||
}
|
||||
|
||||
end = SDL_GetTicksNS();
|
||||
|
||||
/* Wait for the FIFO thread */
|
||||
if (fifo_thread) {
|
||||
SDL_WaitThread(fifo_thread, NULL);
|
||||
}
|
||||
|
||||
if (!lock_free) {
|
||||
SDL_DestroyMutex(queue.mutex);
|
||||
}
|
||||
|
||||
SDL_Log("Finished in %f sec", (end - start) / 1000000000.0);
|
||||
|
||||
SDL_Log("%s", "");
|
||||
for (i = 0; i < NUM_WRITERS; ++i) {
|
||||
SDL_Log("Writer %d wrote %d events, had %d waits", i, EVENTS_PER_WRITER, writerData[i].waits);
|
||||
}
|
||||
SDL_Log("Writers wrote %d total events", NUM_WRITERS * EVENTS_PER_WRITER);
|
||||
|
||||
/* Print a breakdown of which readers read messages from which writer */
|
||||
SDL_Log("%s", "");
|
||||
grand_total = 0;
|
||||
for (i = 0; i < NUM_READERS; ++i) {
|
||||
int total = 0;
|
||||
for (j = 0; j < NUM_WRITERS; ++j) {
|
||||
total += readerData[i].counters[j];
|
||||
}
|
||||
grand_total += total;
|
||||
SDL_Log("Reader %d read %d events, had %d waits", i, total, readerData[i].waits);
|
||||
(void)SDL_snprintf(textBuffer, sizeof(textBuffer), " { ");
|
||||
for (j = 0; j < NUM_WRITERS; ++j) {
|
||||
if (j > 0) {
|
||||
len = SDL_strlen(textBuffer);
|
||||
(void)SDL_snprintf(textBuffer + len, sizeof(textBuffer) - len, ", ");
|
||||
}
|
||||
len = SDL_strlen(textBuffer);
|
||||
(void)SDL_snprintf(textBuffer + len, sizeof(textBuffer) - len, "%d", readerData[i].counters[j]);
|
||||
}
|
||||
len = SDL_strlen(textBuffer);
|
||||
(void)SDL_snprintf(textBuffer + len, sizeof(textBuffer) - len, " }\n");
|
||||
SDL_Log("%s", textBuffer);
|
||||
}
|
||||
SDL_Log("Readers read %d total events", grand_total);
|
||||
}
|
||||
|
||||
/* End FIFO test */
|
||||
/**************************************************************************/
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
SDLTest_CommonState *state;
|
||||
int i;
|
||||
bool enable_threads = true;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (consumed == 0) {
|
||||
consumed = -1;
|
||||
if (SDL_strcasecmp(argv[i], "--no-threads") == 0) {
|
||||
enable_threads = false;
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed < 0) {
|
||||
static const char *options[] = {
|
||||
"[--no-threads]",
|
||||
NULL
|
||||
};
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
return 1;
|
||||
}
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
RunBasicTest();
|
||||
|
||||
if (SDL_GetEnvironmentVariable(SDL_GetEnvironment(), "SDL_TESTS_QUICK") != NULL) {
|
||||
SDL_Log("Not running slower tests");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (enable_threads) {
|
||||
RunEpicTest();
|
||||
}
|
||||
/* This test is really slow, so don't run it by default */
|
||||
#if 0
|
||||
RunFIFOTest(false);
|
||||
#endif
|
||||
RunFIFOTest(true);
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
return 0;
|
||||
}
|
||||
1274
3rdparty/sdl/SDL/test/testaudio.c
vendored
Normal file
209
3rdparty/sdl/SDL/test/testaudiohotplug.c
vendored
Normal file
@@ -0,0 +1,209 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
/* Program to test hotplugging of audio devices */
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testutils.h"
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
#include <emscripten/emscripten.h>
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
static SDL_AudioSpec spec;
|
||||
static Uint8 *sound = NULL; /* Pointer to wave data */
|
||||
static Uint32 soundlen = 0; /* Length of wave data */
|
||||
|
||||
static SDLTest_CommonState *state;
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
quit(int rc)
|
||||
{
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
/* Let 'main()' return normally */
|
||||
if (rc != 0) {
|
||||
exit(rc);
|
||||
}
|
||||
}
|
||||
|
||||
static int done = 0;
|
||||
|
||||
static void poked(int sig)
|
||||
{
|
||||
done = 1;
|
||||
}
|
||||
|
||||
static const char *devtypestr(int recording)
|
||||
{
|
||||
return recording ? "recording" : "playback";
|
||||
}
|
||||
|
||||
static void iteration(void)
|
||||
{
|
||||
SDL_Event e;
|
||||
SDL_AudioDeviceID dev;
|
||||
while (SDL_PollEvent(&e)) {
|
||||
if (e.type == SDL_EVENT_QUIT) {
|
||||
done = 1;
|
||||
} else if (e.type == SDL_EVENT_KEY_UP) {
|
||||
if (e.key.key == SDLK_ESCAPE) {
|
||||
done = 1;
|
||||
}
|
||||
} else if (e.type == SDL_EVENT_AUDIO_DEVICE_ADDED) {
|
||||
const SDL_AudioDeviceID which = e.adevice.which;
|
||||
const bool recording = e.adevice.recording ? true : false;
|
||||
const char *name = SDL_GetAudioDeviceName(which);
|
||||
if (name) {
|
||||
SDL_Log("New %s audio device at id %u: %s", devtypestr(recording), (unsigned int)which, name);
|
||||
} else {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Got new %s device, id %u, but failed to get the name: %s",
|
||||
devtypestr(recording), (unsigned int)which, SDL_GetError());
|
||||
continue;
|
||||
}
|
||||
if (!recording) {
|
||||
SDL_AudioStream *stream = SDL_OpenAudioDeviceStream(which, &spec, NULL, NULL);
|
||||
if (!stream) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to create/bind an audio stream to %u ('%s'): %s", (unsigned int) which, name, SDL_GetError());
|
||||
} else {
|
||||
SDL_Log("Opened '%s' as %u", name, (unsigned int) which);
|
||||
/* !!! FIXME: laziness, this used to loop the audio, but we'll just play it once for now on each connect. */
|
||||
SDL_PutAudioStreamData(stream, sound, soundlen);
|
||||
SDL_FlushAudioStream(stream);
|
||||
SDL_ResumeAudioStreamDevice(stream);
|
||||
/* !!! FIXME: this is leaking the stream for now. We'll wire it up to a dictionary or whatever later. */
|
||||
}
|
||||
}
|
||||
} else if (e.type == SDL_EVENT_AUDIO_DEVICE_REMOVED) {
|
||||
dev = e.adevice.which;
|
||||
SDL_Log("%s device %u removed.", devtypestr(e.adevice.recording), (unsigned int)dev);
|
||||
/* !!! FIXME: we need to keep track of our streams and destroy them here. */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
static void loop(void)
|
||||
{
|
||||
if (done)
|
||||
emscripten_cancel_main_loop();
|
||||
else
|
||||
iteration();
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
char *filename = NULL;
|
||||
SDL_Window *window;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (!filename) {
|
||||
filename = argv[i];
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
static const char *options[] = { "[sample.wav]", NULL };
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Some targets (Mac CoreAudio) need an event queue for audio hotplug, so make and immediately hide a window. */
|
||||
window = SDL_CreateWindow("testaudiohotplug", 640, 480, 0);
|
||||
if (!window) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateWindow failed: %s", SDL_GetError());
|
||||
quit(1);
|
||||
}
|
||||
SDL_MinimizeWindow(window);
|
||||
|
||||
filename = GetResourceFilename(filename, "sample.wav");
|
||||
|
||||
if (!filename) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "%s", SDL_GetError());
|
||||
quit(1);
|
||||
}
|
||||
|
||||
/* Load the wave file into memory */
|
||||
if (!SDL_LoadWAV(filename, &spec, &sound, &soundlen)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't load %s: %s", filename, SDL_GetError());
|
||||
quit(1);
|
||||
}
|
||||
|
||||
#ifdef HAVE_SIGNAL_H
|
||||
/* Set the signals */
|
||||
#ifdef SIGHUP
|
||||
(void)signal(SIGHUP, poked);
|
||||
#endif
|
||||
(void)signal(SIGINT, poked);
|
||||
#ifdef SIGQUIT
|
||||
(void)signal(SIGQUIT, poked);
|
||||
#endif
|
||||
(void)signal(SIGTERM, poked);
|
||||
#endif /* HAVE_SIGNAL_H */
|
||||
|
||||
/* Show the list of available drivers */
|
||||
SDL_Log("Available audio drivers:");
|
||||
for (i = 0; i < SDL_GetNumAudioDrivers(); ++i) {
|
||||
SDL_Log("%i: %s", i, SDL_GetAudioDriver(i));
|
||||
}
|
||||
|
||||
SDL_Log("Select a driver with the SDL_AUDIO_DRIVER environment variable.");
|
||||
SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver());
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
emscripten_set_main_loop(loop, 0, 1);
|
||||
#else
|
||||
while (!done) {
|
||||
SDL_Delay(100);
|
||||
iteration();
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Clean up on signal */
|
||||
/* Quit audio first, then free WAV. This prevents access violations in the audio threads. */
|
||||
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||
SDL_free(sound);
|
||||
SDL_free(filename);
|
||||
quit(0);
|
||||
return 0;
|
||||
}
|
||||
122
3rdparty/sdl/SDL/test/testaudioinfo.c
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
static void
|
||||
print_devices(bool recording)
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
const char *typestr = (recording ? "recording" : "playback");
|
||||
int n = 0;
|
||||
int frames;
|
||||
SDL_AudioDeviceID *devices = recording ? SDL_GetAudioRecordingDevices(&n) : SDL_GetAudioPlaybackDevices(&n);
|
||||
|
||||
if (!devices) {
|
||||
SDL_Log(" Driver failed to report %s devices: %s", typestr, SDL_GetError());
|
||||
SDL_Log("%s", "");
|
||||
} else if (n == 0) {
|
||||
SDL_Log(" No %s devices found.", typestr);
|
||||
SDL_Log("%s", "");
|
||||
} else {
|
||||
int i;
|
||||
SDL_Log("Found %d %s device%s:", n, typestr, n != 1 ? "s" : "");
|
||||
for (i = 0; i < n; i++) {
|
||||
const char *name = SDL_GetAudioDeviceName(devices[i]);
|
||||
if (name) {
|
||||
SDL_Log(" %d: %s", i, name);
|
||||
} else {
|
||||
SDL_Log(" %d Error: %s", i, SDL_GetError());
|
||||
}
|
||||
|
||||
if (SDL_GetAudioDeviceFormat(devices[i], &spec, &frames)) {
|
||||
SDL_Log(" Sample Rate: %d", spec.freq);
|
||||
SDL_Log(" Channels: %d", spec.channels);
|
||||
SDL_Log(" SDL_AudioFormat: %X", spec.format);
|
||||
SDL_Log(" Buffer Size: %d frames", frames);
|
||||
}
|
||||
}
|
||||
SDL_Log("%s", "");
|
||||
}
|
||||
SDL_free(devices);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
int i;
|
||||
int n;
|
||||
int frames;
|
||||
SDLTest_CommonState *state;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
if (!SDLTest_CommonDefaultArgs(state, argc, argv)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDL_Init(SDL_INIT_AUDIO)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Print available audio drivers */
|
||||
n = SDL_GetNumAudioDrivers();
|
||||
if (n == 0) {
|
||||
SDL_Log("No built-in audio drivers");
|
||||
SDL_Log("%s", "");
|
||||
} else {
|
||||
SDL_Log("Built-in audio drivers:");
|
||||
for (i = 0; i < n; ++i) {
|
||||
SDL_Log(" %d: %s", i, SDL_GetAudioDriver(i));
|
||||
}
|
||||
SDL_Log("Select a driver with the SDL_AUDIO_DRIVER environment variable.");
|
||||
}
|
||||
|
||||
SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver());
|
||||
SDL_Log("%s", "");
|
||||
|
||||
print_devices(false);
|
||||
print_devices(true);
|
||||
|
||||
if (SDL_GetAudioDeviceFormat(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &spec, &frames)) {
|
||||
SDL_Log("Default Playback Device:");
|
||||
SDL_Log("Sample Rate: %d", spec.freq);
|
||||
SDL_Log("Channels: %d", spec.channels);
|
||||
SDL_Log("SDL_AudioFormat: %X", spec.format);
|
||||
SDL_Log("Buffer Size: %d frames", frames);
|
||||
} else {
|
||||
SDL_Log("Error when calling SDL_GetAudioDeviceFormat(default playback): %s", SDL_GetError());
|
||||
}
|
||||
|
||||
if (SDL_GetAudioDeviceFormat(SDL_AUDIO_DEVICE_DEFAULT_RECORDING, &spec, &frames)) {
|
||||
SDL_Log("Default Recording Device:");
|
||||
SDL_Log("Sample Rate: %d", spec.freq);
|
||||
SDL_Log("Channels: %d", spec.channels);
|
||||
SDL_Log("SDL_AudioFormat: %X", spec.format);
|
||||
SDL_Log("Buffer Size: %d frames", frames);
|
||||
} else {
|
||||
SDL_Log("Error when calling SDL_GetAudioDeviceFormat(default recording): %s", SDL_GetError());
|
||||
}
|
||||
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
214
3rdparty/sdl/SDL/test/testaudiorecording.c
vendored
Normal file
@@ -0,0 +1,214 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
#define SDL_MAIN_USE_CALLBACKS 1
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
static SDL_Window *window = NULL;
|
||||
static SDL_Renderer *renderer = NULL;
|
||||
static SDL_AudioStream *stream_in = NULL;
|
||||
static SDL_AudioStream *stream_out = NULL;
|
||||
static SDLTest_CommonState *state = NULL;
|
||||
|
||||
SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv)
|
||||
{
|
||||
SDL_AudioDeviceID *devices;
|
||||
SDL_AudioSpec outspec;
|
||||
SDL_AudioSpec inspec;
|
||||
SDL_AudioDeviceID device;
|
||||
SDL_AudioDeviceID want_device = SDL_AUDIO_DEVICE_DEFAULT_RECORDING;
|
||||
const char *devname = NULL;
|
||||
int i;
|
||||
|
||||
/* this doesn't have to run very much, so give up tons of CPU time between iterations. */
|
||||
SDL_SetHint(SDL_HINT_MAIN_CALLBACK_RATE, "15");
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, 0);
|
||||
if (!state) {
|
||||
return SDL_APP_SUCCESS;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (!devname) {
|
||||
devname = argv[i];
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
static const char *options[] = { "[device_name]", NULL };
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return SDL_APP_SUCCESS;
|
||||
}
|
||||
|
||||
if (!SDL_CreateWindowAndRenderer("testaudiorecording", 320, 240, 0, &window, &renderer)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create SDL window and renderer: %s", SDL_GetError());
|
||||
return SDL_APP_SUCCESS;
|
||||
}
|
||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
|
||||
SDL_RenderClear(renderer);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
SDL_Log("Using audio driver: %s", SDL_GetCurrentAudioDriver());
|
||||
|
||||
devices = SDL_GetAudioRecordingDevices(NULL);
|
||||
for (i = 0; devices[i] != 0; i++) {
|
||||
const char *name = SDL_GetAudioDeviceName(devices[i]);
|
||||
SDL_Log(" Recording device #%d: '%s'", i, name);
|
||||
if (devname && (SDL_strcmp(devname, name) == 0)) {
|
||||
want_device = devices[i];
|
||||
}
|
||||
}
|
||||
|
||||
if (devname && (want_device == SDL_AUDIO_DEVICE_DEFAULT_RECORDING)) {
|
||||
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION, "Didn't see a recording device named '%s', using the system default instead.", devname);
|
||||
devname = NULL;
|
||||
}
|
||||
|
||||
/* DirectSound can fail in some instances if you open the same hardware
|
||||
for both recording and output and didn't open the output end first,
|
||||
according to the docs, so if you're doing something like this, always
|
||||
open your recording devices second in case you land in those bizarre
|
||||
circumstances. */
|
||||
|
||||
SDL_Log("Opening default playback device...");
|
||||
device = SDL_OpenAudioDevice(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, NULL);
|
||||
if (!device) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open an audio device for playback: %s!", SDL_GetError());
|
||||
SDL_free(devices);
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
SDL_PauseAudioDevice(device);
|
||||
SDL_GetAudioDeviceFormat(device, &outspec, NULL);
|
||||
stream_out = SDL_CreateAudioStream(&outspec, &outspec);
|
||||
if (!stream_out) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create an audio stream for playback: %s!", SDL_GetError());
|
||||
SDL_free(devices);
|
||||
return SDL_APP_FAILURE;
|
||||
} else if (!SDL_BindAudioStream(device, stream_out)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't bind an audio stream for playback: %s!", SDL_GetError());
|
||||
SDL_free(devices);
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
SDL_Log("Opening recording device %s%s%s...",
|
||||
devname ? "'" : "",
|
||||
devname ? devname : "[[default]]",
|
||||
devname ? "'" : "");
|
||||
|
||||
device = SDL_OpenAudioDevice(want_device, NULL);
|
||||
if (!device) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't open an audio device for recording: %s!", SDL_GetError());
|
||||
SDL_free(devices);
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
SDL_free(devices);
|
||||
SDL_PauseAudioDevice(device);
|
||||
SDL_GetAudioDeviceFormat(device, &inspec, NULL);
|
||||
stream_in = SDL_CreateAudioStream(&inspec, &inspec);
|
||||
if (!stream_in) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create an audio stream for recording: %s!", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
} else if (!SDL_BindAudioStream(device, stream_in)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't bind an audio stream for recording: %s!", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
SDL_SetAudioStreamFormat(stream_in, NULL, &outspec); /* make sure we output at the playback format. */
|
||||
|
||||
SDL_Log("Ready! Hold down mouse or finger to record!");
|
||||
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event)
|
||||
{
|
||||
if (event->type == SDL_EVENT_QUIT) {
|
||||
return SDL_APP_SUCCESS;
|
||||
} else if (event->type == SDL_EVENT_KEY_DOWN) {
|
||||
if (event->key.key == SDLK_ESCAPE) {
|
||||
return SDL_APP_SUCCESS;
|
||||
}
|
||||
} else if (event->type == SDL_EVENT_MOUSE_BUTTON_DOWN) {
|
||||
if (event->button.button == 1) {
|
||||
SDL_PauseAudioStreamDevice(stream_out);
|
||||
SDL_FlushAudioStream(stream_out); /* so no samples are held back for resampling purposes. */
|
||||
SDL_ResumeAudioStreamDevice(stream_in);
|
||||
}
|
||||
} else if (event->type == SDL_EVENT_MOUSE_BUTTON_UP) {
|
||||
if (event->button.button == 1) {
|
||||
SDL_PauseAudioStreamDevice(stream_in);
|
||||
SDL_FlushAudioStream(stream_in); /* so no samples are held back for resampling purposes. */
|
||||
SDL_ResumeAudioStreamDevice(stream_out);
|
||||
}
|
||||
}
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
SDL_AppResult SDL_AppIterate(void *appstate)
|
||||
{
|
||||
if (!SDL_AudioStreamDevicePaused(stream_in)) {
|
||||
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255);
|
||||
} else {
|
||||
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
|
||||
}
|
||||
SDL_RenderClear(renderer);
|
||||
SDL_RenderPresent(renderer);
|
||||
|
||||
/* Feed any new data we recorded to the output stream. It'll play when we unpause the device. */
|
||||
while (SDL_GetAudioStreamAvailable(stream_in) > 0) {
|
||||
Uint8 buf[1024];
|
||||
const int br = SDL_GetAudioStreamData(stream_in, buf, sizeof(buf));
|
||||
if (br < 0) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to read from input audio stream: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
} else if (!SDL_PutAudioStreamData(stream_out, buf, br)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to write to output audio stream: %s", SDL_GetError());
|
||||
return SDL_APP_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
return SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
void SDL_AppQuit(void *appstate, SDL_AppResult result)
|
||||
{
|
||||
SDL_Log("Shutting down.");
|
||||
const SDL_AudioDeviceID devid_in = SDL_GetAudioStreamDevice(stream_in);
|
||||
const SDL_AudioDeviceID devid_out = SDL_GetAudioStreamDevice(stream_out);
|
||||
SDL_CloseAudioDevice(devid_in); /* !!! FIXME: use SDL_OpenAudioDeviceStream instead so we can dump this. */
|
||||
SDL_CloseAudioDevice(devid_out);
|
||||
SDL_DestroyAudioStream(stream_in);
|
||||
SDL_DestroyAudioStream(stream_out);
|
||||
SDL_DestroyRenderer(renderer);
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
SDLTest_CommonDestroyState(state);
|
||||
}
|
||||
|
||||
|
||||
441
3rdparty/sdl/SDL/test/testaudiostreamdynamicresample.c
vendored
Normal file
@@ -0,0 +1,441 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testutils.h"
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
#include <emscripten/emscripten.h>
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#define SLIDER_WIDTH_PERC 500.f / 600.f
|
||||
#define SLIDER_HEIGHT_PERC 70.f / 480.f
|
||||
|
||||
static int done;
|
||||
static SDLTest_CommonState *state;
|
||||
|
||||
static SDL_AudioSpec spec;
|
||||
static SDL_AudioStream *stream;
|
||||
static Uint8 *audio_buf = NULL;
|
||||
static Uint32 audio_len = 0;
|
||||
|
||||
static bool auto_loop = true;
|
||||
static bool auto_flush = false;
|
||||
|
||||
static Uint64 last_get_callback = 0;
|
||||
static int last_get_amount_additional = 0;
|
||||
static int last_get_amount_total = 0;
|
||||
|
||||
typedef struct Slider
|
||||
{
|
||||
SDL_FRect area;
|
||||
bool changed;
|
||||
char fmtlabel[64];
|
||||
float pos;
|
||||
int flags;
|
||||
float min;
|
||||
float mid;
|
||||
float max;
|
||||
float value;
|
||||
} Slider;
|
||||
|
||||
#define NUM_SLIDERS 3
|
||||
Slider sliders[NUM_SLIDERS];
|
||||
static int active_slider = -1;
|
||||
|
||||
static void init_slider(int index, const char* fmtlabel, int flags, float value, float min, float max)
|
||||
{
|
||||
Slider* slider = &sliders[index];
|
||||
|
||||
slider->area.x = state->window_w * (1.f - SLIDER_WIDTH_PERC) / 2;
|
||||
slider->area.y = state->window_h * (0.2f + (index * SLIDER_HEIGHT_PERC * 1.4f));
|
||||
slider->area.w = SLIDER_WIDTH_PERC * state->window_w;
|
||||
slider->area.h = SLIDER_HEIGHT_PERC * state->window_h;
|
||||
slider->changed = true;
|
||||
SDL_strlcpy(slider->fmtlabel, fmtlabel, SDL_arraysize(slider->fmtlabel));
|
||||
slider->flags = flags;
|
||||
slider->min = min;
|
||||
slider->max = max;
|
||||
slider->value = value;
|
||||
|
||||
if (slider->flags & 1) {
|
||||
slider->pos = (value - slider->min + 0.5f) / (slider->max - slider->min + 1.0f);
|
||||
} else {
|
||||
slider->pos = 0.5f;
|
||||
slider->mid = value;
|
||||
}
|
||||
}
|
||||
|
||||
static float lerp(float v0, float v1, float t)
|
||||
{
|
||||
return (1 - t) * v0 + t * v1;
|
||||
}
|
||||
|
||||
static void draw_text(SDL_Renderer* renderer, int x, int y, const char* text)
|
||||
{
|
||||
SDL_SetRenderDrawColor(renderer, 0xFD, 0xF6, 0xE3, 0xFF);
|
||||
SDLTest_DrawString(renderer, (float) x, (float) y, text);
|
||||
}
|
||||
|
||||
static void draw_textf(SDL_Renderer* renderer, int x, int y, const char* fmt, ...)
|
||||
{
|
||||
char text[256];
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
SDL_vsnprintf(text, SDL_arraysize(text), fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
draw_text(renderer, x, y, text);
|
||||
}
|
||||
|
||||
static void queue_audio(void)
|
||||
{
|
||||
Uint8* new_data = NULL;
|
||||
int new_len = 0;
|
||||
bool result = true;
|
||||
SDL_AudioSpec new_spec;
|
||||
|
||||
SDL_zero(new_spec);
|
||||
new_spec.format = spec.format;
|
||||
new_spec.channels = (int) sliders[2].value;
|
||||
new_spec.freq = (int) sliders[1].value;
|
||||
|
||||
SDL_Log("Converting audio from %i to %i", spec.freq, new_spec.freq);
|
||||
|
||||
/* You shouldn't actually use SDL_ConvertAudioSamples like this (just put the data straight into the stream and let it handle conversion) */
|
||||
result = result && SDL_ConvertAudioSamples(&spec, audio_buf, audio_len, &new_spec, &new_data, &new_len);
|
||||
result = result && SDL_SetAudioStreamFormat(stream, &new_spec, NULL);
|
||||
result = result && SDL_PutAudioStreamData(stream, new_data, new_len);
|
||||
|
||||
if (auto_flush) {
|
||||
result = result && SDL_FlushAudioStream(stream);
|
||||
}
|
||||
|
||||
SDL_free(new_data);
|
||||
|
||||
if (result) {
|
||||
SDL_Log("Queued audio");
|
||||
} else {
|
||||
SDL_Log("Failed to queue audio: %s", SDL_GetError());
|
||||
}
|
||||
}
|
||||
|
||||
static void skip_audio(float amount)
|
||||
{
|
||||
float speed;
|
||||
SDL_AudioSpec dst_spec;
|
||||
int num_bytes;
|
||||
int result = 0;
|
||||
void* buf = NULL;
|
||||
|
||||
SDL_LockAudioStream(stream);
|
||||
|
||||
speed = SDL_GetAudioStreamFrequencyRatio(stream);
|
||||
SDL_GetAudioStreamFormat(stream, NULL, &dst_spec);
|
||||
|
||||
SDL_SetAudioStreamFrequencyRatio(stream, 100.0f);
|
||||
|
||||
num_bytes = (int)(SDL_AUDIO_FRAMESIZE(dst_spec) * dst_spec.freq * ((speed * amount) / 100.0f));
|
||||
buf = SDL_malloc(num_bytes);
|
||||
|
||||
if (buf) {
|
||||
result = SDL_GetAudioStreamData(stream, buf, num_bytes);
|
||||
SDL_free(buf);
|
||||
}
|
||||
|
||||
SDL_SetAudioStreamFrequencyRatio(stream, speed);
|
||||
|
||||
SDL_UnlockAudioStream(stream);
|
||||
|
||||
if (result >= 0) {
|
||||
SDL_Log("Skipped %.2f seconds", amount);
|
||||
} else {
|
||||
SDL_Log("Failed to skip: %s", SDL_GetError());
|
||||
}
|
||||
}
|
||||
|
||||
static const char *AudioChansToStr(const int channels)
|
||||
{
|
||||
switch (channels) {
|
||||
case 1: return "Mono";
|
||||
case 2: return "Stereo";
|
||||
case 3: return "2.1";
|
||||
case 4: return "Quad";
|
||||
case 5: return "4.1";
|
||||
case 6: return "5.1";
|
||||
case 7: return "6.1";
|
||||
case 8: return "7.1";
|
||||
default: break;
|
||||
}
|
||||
return "?";
|
||||
}
|
||||
|
||||
static void scale_mouse_coords(SDL_FPoint *p)
|
||||
{
|
||||
SDL_Window *window = SDL_GetMouseFocus();
|
||||
if (window) {
|
||||
int w, p_w;
|
||||
float scale;
|
||||
SDL_GetWindowSize(window, &w, NULL);
|
||||
SDL_GetWindowSizeInPixels(window, &p_w, NULL);
|
||||
scale = (float)p_w / (float)w;
|
||||
p->x *= scale;
|
||||
p->y *= scale;
|
||||
}
|
||||
}
|
||||
|
||||
static void loop(void)
|
||||
{
|
||||
int i, j;
|
||||
SDL_Event e;
|
||||
SDL_FPoint p;
|
||||
SDL_AudioSpec src_spec, dst_spec;
|
||||
int queued_bytes = 0;
|
||||
int available_bytes = 0;
|
||||
float available_seconds = 0;
|
||||
|
||||
while (SDL_PollEvent(&e)) {
|
||||
SDLTest_CommonEvent(state, &e, &done);
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
if (done) {
|
||||
emscripten_cancel_main_loop();
|
||||
}
|
||||
#endif
|
||||
if (e.type == SDL_EVENT_KEY_DOWN) {
|
||||
SDL_Keycode key = e.key.key;
|
||||
if (key == SDLK_Q) {
|
||||
if (SDL_AudioDevicePaused(state->audio_id)) {
|
||||
SDL_ResumeAudioDevice(state->audio_id);
|
||||
} else {
|
||||
SDL_PauseAudioDevice(state->audio_id);
|
||||
}
|
||||
} else if (key == SDLK_W) {
|
||||
auto_loop = !auto_loop;
|
||||
} else if (key == SDLK_E) {
|
||||
auto_flush = !auto_flush;
|
||||
} else if (key == SDLK_A) {
|
||||
SDL_ClearAudioStream(stream);
|
||||
SDL_Log("Cleared audio stream");
|
||||
} else if (key == SDLK_S) {
|
||||
queue_audio();
|
||||
} else if (key == SDLK_D) {
|
||||
float amount = 1.0f;
|
||||
amount *= (e.key.mod & SDL_KMOD_CTRL) ? 10.0f : 1.0f;
|
||||
amount *= (e.key.mod & SDL_KMOD_SHIFT) ? 10.0f : 1.0f;
|
||||
skip_audio(amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (SDL_GetMouseState(&p.x, &p.y) & SDL_BUTTON_LMASK) {
|
||||
scale_mouse_coords(&p);
|
||||
if (active_slider == -1) {
|
||||
for (i = 0; i < NUM_SLIDERS; ++i) {
|
||||
if (SDL_PointInRectFloat(&p, &sliders[i].area)) {
|
||||
active_slider = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
active_slider = -1;
|
||||
}
|
||||
|
||||
if (active_slider != -1) {
|
||||
Slider* slider = &sliders[active_slider];
|
||||
|
||||
float value = (p.x - slider->area.x) / slider->area.w;
|
||||
value = SDL_clamp(value, 0.0f, 1.0f);
|
||||
slider->pos = value;
|
||||
|
||||
if (slider->flags & 1) {
|
||||
value = slider->min + (value * (slider->max - slider->min + 1.0f));
|
||||
value = SDL_clamp(value, slider->min, slider->max);
|
||||
} else {
|
||||
value = (value * 2.0f) - 1.0f;
|
||||
value = (value >= 0)
|
||||
? lerp(slider->mid, slider->max, value)
|
||||
: lerp(slider->mid, slider->min, -value);
|
||||
}
|
||||
|
||||
if (value != slider->value) {
|
||||
slider->value = value;
|
||||
slider->changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (sliders[0].changed) {
|
||||
sliders[0].changed = false;
|
||||
SDL_SetAudioStreamFrequencyRatio(stream, sliders[0].value);
|
||||
}
|
||||
|
||||
if (SDL_GetAudioStreamFormat(stream, &src_spec, &dst_spec)) {
|
||||
available_bytes = SDL_GetAudioStreamAvailable(stream);
|
||||
available_seconds = (float)available_bytes / (float)(SDL_AUDIO_FRAMESIZE(dst_spec) * dst_spec.freq);
|
||||
|
||||
/* keep it looping. */
|
||||
if (auto_loop && (available_seconds < 10.0f)) {
|
||||
queue_audio();
|
||||
}
|
||||
}
|
||||
|
||||
queued_bytes = SDL_GetAudioStreamQueued(stream);
|
||||
|
||||
for (i = 0; i < state->num_windows; i++) {
|
||||
int draw_y = 0;
|
||||
SDL_Renderer* rend = state->renderers[i];
|
||||
|
||||
SDL_SetRenderDrawColor(rend, 0x00, 0x2B, 0x36, 0xFF);
|
||||
SDL_RenderClear(rend);
|
||||
|
||||
for (j = 0; j < NUM_SLIDERS; ++j) {
|
||||
Slider* slider = &sliders[j];
|
||||
SDL_FRect area;
|
||||
|
||||
SDL_copyp(&area, &slider->area);
|
||||
|
||||
SDL_SetRenderDrawColor(rend, 0x07, 0x36, 0x42, 0xFF);
|
||||
SDL_RenderFillRect(rend, &area);
|
||||
|
||||
area.w *= slider->pos;
|
||||
|
||||
SDL_SetRenderDrawColor(rend, 0x58, 0x6E, 0x75, 0xFF);
|
||||
SDL_RenderFillRect(rend, &area);
|
||||
|
||||
draw_textf(rend, (int)slider->area.x, (int)slider->area.y, slider->fmtlabel,
|
||||
(slider->flags & 2) ? ((float)(int)slider->value) : slider->value);
|
||||
}
|
||||
|
||||
draw_textf(rend, 0, draw_y, "%7s, Loop: %3s, Flush: %3s",
|
||||
SDL_AudioDevicePaused(state->audio_id) ? "Paused" : "Playing", auto_loop ? "On" : "Off", auto_flush ? "On" : "Off");
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Available: %4.2f (%i bytes)", available_seconds, available_bytes);
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Queued: %i bytes", queued_bytes);
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
SDL_LockAudioStream(stream);
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Get Callback: %i/%i bytes, %2i ms ago",
|
||||
last_get_amount_additional, last_get_amount_total, (int)(SDL_GetTicks() - last_get_callback));
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
SDL_UnlockAudioStream(stream);
|
||||
|
||||
draw_y = state->window_h - FONT_LINE_HEIGHT * 3;
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Wav: %6s/%6s/%i",
|
||||
SDL_GetAudioFormatName(spec.format), AudioChansToStr(spec.channels), spec.freq);
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Src: %6s/%6s/%i",
|
||||
SDL_GetAudioFormatName(src_spec.format), AudioChansToStr(src_spec.channels), src_spec.freq);
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
draw_textf(rend, 0, draw_y, "Dst: %6s/%6s/%i",
|
||||
SDL_GetAudioFormatName(dst_spec.format), AudioChansToStr(dst_spec.channels), dst_spec.freq);
|
||||
draw_y += FONT_LINE_HEIGHT;
|
||||
|
||||
SDL_RenderPresent(rend);
|
||||
}
|
||||
}
|
||||
|
||||
static void SDLCALL our_get_callback(void *userdata, SDL_AudioStream *strm, int additional_amount, int total_amount)
|
||||
{
|
||||
last_get_callback = SDL_GetTicks();
|
||||
last_get_amount_additional = additional_amount;
|
||||
last_get_amount_total = total_amount;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *filename = NULL;
|
||||
int i;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_AUDIO | SDL_INIT_VIDEO);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (!consumed) {
|
||||
if (!filename) {
|
||||
filename = argv[i];
|
||||
consumed = 1;
|
||||
}
|
||||
}
|
||||
if (consumed <= 0) {
|
||||
static const char *options[] = { "[sample.wav]", NULL };
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
/* Load the SDL library */
|
||||
if (!SDLTest_CommonInit(state)) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s", SDL_GetError());
|
||||
return 1;
|
||||
}
|
||||
|
||||
FONT_CHARACTER_SIZE = 16;
|
||||
|
||||
filename = GetResourceFilename(filename, "sample.wav");
|
||||
if (!SDL_LoadWAV(filename, &spec, &audio_buf, &audio_len)) {
|
||||
SDL_Log("Failed to load '%s': %s", filename, SDL_GetError());
|
||||
SDL_free(filename);
|
||||
SDL_Quit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
SDL_free(filename);
|
||||
init_slider(0, "Speed: %3.2fx", 0x0, 1.0f, 0.2f, 5.0f);
|
||||
init_slider(1, "Freq: %g", 0x2, (float)spec.freq, 4000.0f, 192000.0f);
|
||||
init_slider(2, "Channels: %g", 0x3, (float)spec.channels, 1.0f, 8.0f);
|
||||
|
||||
for (i = 0; i < state->num_windows; i++) {
|
||||
SDL_SetWindowTitle(state->windows[i], "Resampler Test");
|
||||
}
|
||||
|
||||
stream = SDL_CreateAudioStream(&spec, &spec);
|
||||
SDL_SetAudioStreamGetCallback(stream, our_get_callback, NULL);
|
||||
|
||||
SDL_BindAudioStream(state->audio_id, stream);
|
||||
|
||||
#ifdef SDL_PLATFORM_EMSCRIPTEN
|
||||
emscripten_set_main_loop(loop, 0, 1);
|
||||
#else
|
||||
while (!done) {
|
||||
loop();
|
||||
}
|
||||
#endif
|
||||
|
||||
SDLTest_CleanupTextDrawing();
|
||||
SDL_DestroyAudioStream(stream);
|
||||
SDL_free(audio_buf);
|
||||
SDLTest_CommonQuit(state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
151
3rdparty/sdl/SDL/test/testautomation.c
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_main.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
|
||||
#include "testautomation_suites.h"
|
||||
|
||||
static SDLTest_CommonState *state;
|
||||
static SDLTest_TestSuiteRunner *runner;
|
||||
|
||||
/* All test suites */
|
||||
static SDLTest_TestSuiteReference *testSuites[] = {
|
||||
&audioTestSuite,
|
||||
&clipboardTestSuite,
|
||||
&eventsTestSuite,
|
||||
&guidTestSuite,
|
||||
&hintsTestSuite,
|
||||
&intrinsicsTestSuite,
|
||||
&joystickTestSuite,
|
||||
&keyboardTestSuite,
|
||||
&logTestSuite,
|
||||
&mainTestSuite,
|
||||
&mathTestSuite,
|
||||
&mouseTestSuite,
|
||||
&pixelsTestSuite,
|
||||
&platformTestSuite,
|
||||
&propertiesTestSuite,
|
||||
&rectTestSuite,
|
||||
&renderTestSuite,
|
||||
&iostrmTestSuite,
|
||||
&sdltestTestSuite,
|
||||
&stdlibTestSuite,
|
||||
&surfaceTestSuite,
|
||||
&timeTestSuite,
|
||||
&timerTestSuite,
|
||||
&videoTestSuite,
|
||||
&blitTestSuite,
|
||||
&subsystemsTestSuite, /* run last, not interfere with other test environment */
|
||||
NULL
|
||||
};
|
||||
|
||||
/* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
|
||||
static void
|
||||
quit(int rc)
|
||||
{
|
||||
SDLTest_DestroyTestSuiteRunner(runner);
|
||||
SDLTest_CommonQuit(state);
|
||||
/* Let 'main()' return normally */
|
||||
if (rc != 0) {
|
||||
exit(rc);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int result;
|
||||
int i, done;
|
||||
SDL_Event event;
|
||||
int list = 0;
|
||||
|
||||
/* Initialize test framework */
|
||||
state = SDLTest_CommonCreateState(argv, SDL_INIT_VIDEO | SDL_INIT_AUDIO);
|
||||
if (!state) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* No need of windows (or update testautomation_mouse.c:mouse_getMouseFocus() */
|
||||
state->num_windows = 0;
|
||||
|
||||
runner = SDLTest_CreateTestSuiteRunner(state, testSuites);
|
||||
|
||||
/* Parse commandline */
|
||||
for (i = 1; i < argc;) {
|
||||
int consumed;
|
||||
|
||||
consumed = SDLTest_CommonArg(state, i);
|
||||
if (consumed == 0) {
|
||||
consumed = -1;
|
||||
|
||||
if (SDL_strcasecmp(argv[i], "--list") == 0) {
|
||||
consumed = 1;
|
||||
list = 1;
|
||||
}
|
||||
}
|
||||
if (consumed < 0) {
|
||||
static const char *options[] = {
|
||||
"[--list]",
|
||||
NULL };
|
||||
SDLTest_CommonLogUsage(state, argv[0], options);
|
||||
quit(1);
|
||||
}
|
||||
|
||||
i += consumed;
|
||||
}
|
||||
|
||||
/* List all suites. */
|
||||
if (list) {
|
||||
int suiteCounter;
|
||||
for (suiteCounter = 0; testSuites[suiteCounter]; ++suiteCounter) {
|
||||
int testCounter;
|
||||
SDLTest_TestSuiteReference *testSuite = testSuites[suiteCounter];
|
||||
SDL_Log("Test suite: %s", testSuite->name);
|
||||
for (testCounter = 0; testSuite->testCases[testCounter]; ++testCounter) {
|
||||
const SDLTest_TestCaseReference *testCase = testSuite->testCases[testCounter];
|
||||
SDL_Log(" test: %s%s", testCase->name, testCase->enabled ? "" : " (disabled)");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Initialize common state */
|
||||
if (!SDLTest_CommonInit(state)) {
|
||||
quit(2);
|
||||
}
|
||||
|
||||
/* Create the windows, initialize the renderers */
|
||||
for (i = 0; i < state->num_windows; ++i) {
|
||||
SDL_Renderer *renderer = state->renderers[i];
|
||||
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
|
||||
SDL_RenderClear(renderer);
|
||||
}
|
||||
|
||||
/* Call Harness */
|
||||
result = SDLTest_ExecuteTestSuiteRunner(runner);
|
||||
|
||||
/* Empty event queue */
|
||||
done = 0;
|
||||
for (i = 0; i < 100; i++) {
|
||||
while (SDL_PollEvent(&event)) {
|
||||
SDLTest_CommonEvent(state, &event, &done);
|
||||
}
|
||||
SDL_Delay(10);
|
||||
}
|
||||
|
||||
/* Shutdown everything */
|
||||
quit(0);
|
||||
return result;
|
||||
}
|
||||
1559
3rdparty/sdl/SDL/test/testautomation_audio.c
vendored
Normal file
215
3rdparty/sdl/SDL/test/testautomation_blit.c
vendored
Normal file
@@ -0,0 +1,215 @@
|
||||
/**
|
||||
* SDL_BlitSurface bit-perfect rendering test suite written by Isaac Aronson
|
||||
*/
|
||||
|
||||
/* Suppress C4996 VS compiler warnings for unlink() */
|
||||
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#endif
|
||||
#if defined(_MSC_VER) && !defined(_CRT_NONSTDC_NO_DEPRECATE)
|
||||
#define _CRT_NONSTDC_NO_DEPRECATE
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#ifndef _MSC_VER
|
||||
#include <unistd.h>
|
||||
#else
|
||||
/* Suppress uint64 to uint32 conversion warning within the PRNG engine */
|
||||
#pragma warning( disable : 4244 )
|
||||
#endif
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testautomation_images.h"
|
||||
|
||||
/* ====== xoroshiro128+ PRNG engine for deterministic blit input ===== */
|
||||
Uint64 rotl(Uint64 x, int k) { return (x << k) | (x >> (-k & 63)); }
|
||||
Uint64 next(Uint64 state[2]) {
|
||||
Uint64 s0 = state[0], s1 = state[1];
|
||||
Uint64 result = rotl((s0 + s1) * 9, 29) + s0;
|
||||
state[0] = s0 ^ rotl(s1, 29);
|
||||
state[1] = s0 ^ s1 << 9;
|
||||
return result;
|
||||
}
|
||||
static Uint64 rngState[2] = {1, 2};
|
||||
Uint32 getRandomUint32(void) {
|
||||
return (Uint32)next(rngState);
|
||||
}
|
||||
/* ================= Test Case Helper Functions ================== */
|
||||
/*
|
||||
* Resets PRNG state to initialize tests using PRNG
|
||||
*/
|
||||
void SDLCALL blitSetUp(void **arg) {
|
||||
rngState[0] = 1;
|
||||
rngState[1] = 2;
|
||||
}
|
||||
/*
|
||||
* Fill buffer with stream of PRNG pixel data given size
|
||||
*/
|
||||
static Uint32 *fillNextRandomBuffer(Uint32 *buf, const int width, const int height) {
|
||||
int i;
|
||||
for (i = 0; i < width * height; i++) {
|
||||
buf[i] = getRandomUint32();
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
/*
|
||||
* Generates a stream of PRNG pixel data given length
|
||||
*/
|
||||
static Uint32 *getNextRandomBuffer(const int width, const int height) {
|
||||
Uint32* buf = SDL_malloc(sizeof(Uint32) * width * height);
|
||||
fillNextRandomBuffer(buf, width, height);
|
||||
return buf;
|
||||
}
|
||||
/*
|
||||
* Generates a 800 x 600 surface of PRNG pixel data
|
||||
*/
|
||||
SDL_Surface* getRandomSVGASurface(Uint32 *pixels, SDL_PixelFormat format) {
|
||||
return SDL_CreateSurfaceFrom(800, 600, format, pixels, 800 * 4);
|
||||
}
|
||||
/*
|
||||
* Calculates the FNV-1a hash of input pixel data
|
||||
*/
|
||||
Uint32 FNVHash(Uint32* buf, int length) {
|
||||
const Uint32 fnv_prime = 0x811C9DC5;
|
||||
Uint32 hash = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < length; buf++, i++)
|
||||
{
|
||||
hash *= fnv_prime;
|
||||
hash ^= (*buf);
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
/*
|
||||
* Wraps the FNV-1a hash for an input surface's pixels
|
||||
*/
|
||||
Uint32 hashSurfacePixels(SDL_Surface * surface) {
|
||||
Uint64 buffer_size = surface->w * surface->h;
|
||||
return FNVHash(surface->pixels, buffer_size);
|
||||
}
|
||||
/* ================= Test Case Implementation ================== */
|
||||
/**
|
||||
* Tests rendering a rainbow gradient background onto a blank surface, then rendering a sprite with complex geometry and
|
||||
* transparency on top of said surface, and comparing the result to known accurate renders with a hash.
|
||||
*/
|
||||
static int SDLCALL blit_testExampleApplicationRender(void *arg) {
|
||||
const int width = 32;
|
||||
const int height = 32;
|
||||
const Uint32 correct_hash = 0xe345d7a7;
|
||||
SDL_Surface* dest_surface = SDL_CreateSurface(width, height, SDL_PIXELFORMAT_ARGB8888);
|
||||
SDL_Surface* rainbow_background = SDLTest_ImageBlendingBackground();
|
||||
SDL_Surface* gearbrain_sprite = SDLTest_ImageBlendingSprite();
|
||||
// Blit background into "screen"
|
||||
SDL_BlitSurface(rainbow_background, NULL, dest_surface, NULL);
|
||||
// Blit example game sprite onto "screen"
|
||||
SDL_BlitSurface(gearbrain_sprite, NULL, dest_surface, NULL);
|
||||
// Check result
|
||||
const Uint32 hash = hashSurfacePixels(dest_surface);
|
||||
SDLTest_AssertCheck(hash == correct_hash,
|
||||
"Should render identically, expected hash 0x%" SDL_PRIx32 ", got 0x%" SDL_PRIx32,
|
||||
correct_hash, hash);
|
||||
// Clean up
|
||||
SDL_DestroySurface(rainbow_background);
|
||||
SDL_DestroySurface(gearbrain_sprite);
|
||||
SDL_DestroySurface(dest_surface);
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
/**
|
||||
* Tests rendering PRNG noise onto a surface of PRNG noise, while also testing color shift operations between the
|
||||
* different source and destination pixel formats, without an alpha shuffle, at SVGA resolution. Compares to known
|
||||
* accurate renders with a hash.
|
||||
*/
|
||||
static int SDLCALL blit_testRandomToRandomSVGA(void *arg) {
|
||||
const int width = 800;
|
||||
const int height = 600;
|
||||
const Uint32 correct_hash = 0x42140c5f;
|
||||
// Allocate random buffers
|
||||
Uint32 *dest_pixels = getNextRandomBuffer(width, height);
|
||||
Uint32 *src_pixels = getNextRandomBuffer(width, height);
|
||||
// Create surfaces of different pixel formats
|
||||
SDL_Surface* dest_surface = getRandomSVGASurface(dest_pixels, SDL_PIXELFORMAT_BGRA8888);
|
||||
SDL_Surface* src_surface = getRandomSVGASurface(src_pixels, SDL_PIXELFORMAT_RGBA8888);
|
||||
// Blit surfaces
|
||||
SDL_BlitSurface(src_surface, NULL, dest_surface, NULL);
|
||||
// Check result
|
||||
const Uint32 hash = hashSurfacePixels(dest_surface);
|
||||
SDLTest_AssertCheck(hash == correct_hash,
|
||||
"Should render identically, expected hash 0x%" SDL_PRIx32 ", got 0x%" SDL_PRIx32,
|
||||
correct_hash, hash);
|
||||
// Clean up
|
||||
SDL_DestroySurface(dest_surface);
|
||||
SDL_DestroySurface(src_surface);
|
||||
SDL_free(dest_pixels);
|
||||
SDL_free(src_pixels);
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
/**
|
||||
* Tests rendering small chunks of 15 by 15px PRNG noise onto an initially blank SVGA surface, while also testing color
|
||||
* shift operations between the different source and destination pixel formats, including an alpha shuffle. Compares to
|
||||
* known accurate renders with a hash.
|
||||
*/
|
||||
static int SDLCALL blit_testRandomToRandomSVGAMultipleIterations(void *arg) {
|
||||
const int width = 800;
|
||||
const int height = 600;
|
||||
const int blit_width = 15;
|
||||
const int blit_height = 15;
|
||||
int i;
|
||||
const Uint32 correct_hash = 0x5d26be78;
|
||||
Uint32 *buf = SDL_malloc(blit_width * blit_height * sizeof(Uint32));
|
||||
// Create blank source surface
|
||||
SDL_Surface *sourceSurface = SDL_CreateSurface(blit_width, blit_height, SDL_PIXELFORMAT_RGBA8888);
|
||||
// Create blank destination surface
|
||||
SDL_Surface* dest_surface = SDL_CreateSurface(width, height, SDL_PIXELFORMAT_ABGR8888);
|
||||
|
||||
// Perform 250k random blits into random areas of the blank surface
|
||||
for (i = 0; i < 250000; i++) {
|
||||
fillNextRandomBuffer(buf, blit_width, blit_height);
|
||||
SDL_LockSurface(sourceSurface);
|
||||
SDL_memcpy(sourceSurface->pixels, buf, blit_width * blit_height * sizeof(Uint32));
|
||||
SDL_UnlockSurface(sourceSurface);
|
||||
|
||||
SDL_Rect dest_rect;
|
||||
int location = (int)getRandomUint32();
|
||||
dest_rect.x = location % (width - 15 - 1);
|
||||
dest_rect.y = location % (height - 15 - 1);
|
||||
|
||||
SDL_BlitSurface(sourceSurface, NULL, dest_surface, &dest_rect);
|
||||
}
|
||||
// Check result
|
||||
const Uint32 hash = hashSurfacePixels(dest_surface);
|
||||
// Clean up
|
||||
SDL_DestroySurface(dest_surface);
|
||||
SDLTest_AssertCheck(hash == correct_hash,
|
||||
"Should render identically, expected hash 0x%" SDL_PRIx32 ", got 0x%" SDL_PRIx32,
|
||||
correct_hash, hash);
|
||||
SDL_DestroySurface(sourceSurface);
|
||||
SDL_free(buf);
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
static const SDLTest_TestCaseReference blitTest1 = {
|
||||
blit_testExampleApplicationRender, "blit_testExampleApplicationRender",
|
||||
"Test example application render.", TEST_ENABLED
|
||||
};
|
||||
static const SDLTest_TestCaseReference blitTest2 = {
|
||||
blit_testRandomToRandomSVGA, "blit_testRandomToRandomSVGA",
|
||||
"Test SVGA noise render.", TEST_ENABLED
|
||||
};
|
||||
static const SDLTest_TestCaseReference blitTest3 = {
|
||||
blit_testRandomToRandomSVGAMultipleIterations, "blit_testRandomToRandomSVGAMultipleIterations",
|
||||
"Test SVGA noise render (250k iterations).", TEST_ENABLED
|
||||
};
|
||||
static const SDLTest_TestCaseReference *blitTests[] = {
|
||||
&blitTest1, &blitTest2, &blitTest3, NULL
|
||||
};
|
||||
|
||||
SDLTest_TestSuiteReference blitTestSuite = {
|
||||
"Blending",
|
||||
blitSetUp,
|
||||
blitTests,
|
||||
NULL
|
||||
};
|
||||
596
3rdparty/sdl/SDL/test/testautomation_clipboard.c
vendored
Normal file
@@ -0,0 +1,596 @@
|
||||
/**
|
||||
* New/updated tests: aschiffler at ferzkopp dot net
|
||||
*/
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testautomation_suites.h"
|
||||
|
||||
/* ================= Test Case Implementation ================== */
|
||||
|
||||
static int clipboard_update_count;
|
||||
|
||||
static bool SDLCALL ClipboardEventWatch(void *userdata, SDL_Event *event)
|
||||
{
|
||||
if (event->type == SDL_EVENT_CLIPBOARD_UPDATE) {
|
||||
++clipboard_update_count;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
TEST_MIME_TYPE_TEXT,
|
||||
TEST_MIME_TYPE_CUSTOM_TEXT,
|
||||
TEST_MIME_TYPE_DATA,
|
||||
NUM_TEST_MIME_TYPES
|
||||
};
|
||||
static const char *test_mime_types[] = {
|
||||
"text/plain;charset=utf-8",
|
||||
"test/text",
|
||||
"test/data"
|
||||
};
|
||||
SDL_COMPILE_TIME_ASSERT(test_mime_types, SDL_arraysize(test_mime_types) == NUM_TEST_MIME_TYPES);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const void *data;
|
||||
size_t data_size;
|
||||
} TestClipboardData;
|
||||
|
||||
static int clipboard_callback_count;
|
||||
|
||||
static const void * SDLCALL ClipboardDataCallback(void *userdata, const char *mime_type, size_t *length)
|
||||
{
|
||||
TestClipboardData *test_data = (TestClipboardData *)userdata;
|
||||
|
||||
++clipboard_callback_count;
|
||||
|
||||
if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_TEXT]) == 0) {
|
||||
/* We're returning the string "TEST", with no termination */
|
||||
static const char *test_text = "XXX TEST XXX";
|
||||
*length = 4;
|
||||
return test_text + 4;
|
||||
}
|
||||
if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]) == 0) {
|
||||
/* We're returning the string "CUSTOM", with no termination */
|
||||
static const char *custom_text = "XXX CUSTOM XXX";
|
||||
*length = 6;
|
||||
return custom_text + 4;
|
||||
}
|
||||
if (SDL_strcmp(mime_type, test_mime_types[TEST_MIME_TYPE_DATA]) == 0) {
|
||||
*length = test_data->data_size;
|
||||
return test_data->data;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int clipboard_cleanup_count;
|
||||
|
||||
static void SDLCALL ClipboardCleanupCallback(void *userdata)
|
||||
{
|
||||
++clipboard_cleanup_count;
|
||||
}
|
||||
|
||||
/* Test case functions */
|
||||
|
||||
/**
|
||||
* End-to-end test of SDL_xyzClipboardData functions
|
||||
* \sa SDL_HasClipboardData
|
||||
* \sa SDL_GetClipboardData
|
||||
* \sa SDL_SetClipboardData
|
||||
*/
|
||||
static int SDLCALL clipboard_testClipboardDataFunctions(void *arg)
|
||||
{
|
||||
int result = -1;
|
||||
bool boolResult;
|
||||
int last_clipboard_update_count;
|
||||
int last_clipboard_callback_count;
|
||||
int last_clipboard_cleanup_count;
|
||||
void *data;
|
||||
size_t size;
|
||||
char *text;
|
||||
const char *expected_text;
|
||||
|
||||
TestClipboardData test_data1 = {
|
||||
&test_data1,
|
||||
sizeof(test_data1)
|
||||
};
|
||||
TestClipboardData test_data2 = {
|
||||
&last_clipboard_callback_count,
|
||||
sizeof(last_clipboard_callback_count)
|
||||
};
|
||||
|
||||
SDL_AddEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
/* Test clearing clipboard data */
|
||||
result = SDL_ClearClipboardData();
|
||||
SDLTest_AssertCheck(
|
||||
result == true,
|
||||
"Validate SDL_ClearClipboardData result, expected true, got %i",
|
||||
result);
|
||||
expected_text = "";
|
||||
text = SDL_GetClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
text && SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify clipboard text, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
SDL_free(text);
|
||||
|
||||
/* Test clearing clipboard data when it's already clear */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
result = SDL_ClearClipboardData();
|
||||
SDLTest_AssertCheck(
|
||||
result == true,
|
||||
"Validate SDL_ClearClipboardData result, expected true, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count != last_clipboard_update_count,
|
||||
"Verify clipboard update count changed, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
/* Validate error handling */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
result = SDL_SetClipboardData(NULL, NULL, NULL, test_mime_types, SDL_arraysize(test_mime_types));
|
||||
SDLTest_AssertCheck(
|
||||
result == false,
|
||||
"Validate SDL_SetClipboardData(invalid) result, expected false, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count,
|
||||
"Verify clipboard update count unchanged, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, NULL, NULL, 0);
|
||||
SDLTest_AssertCheck(
|
||||
result == false,
|
||||
"Validate SDL_SetClipboardData(invalid) result, expected false, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count,
|
||||
"Verify clipboard update count unchanged, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
/* Test setting and getting clipboard data */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
last_clipboard_callback_count = clipboard_callback_count;
|
||||
last_clipboard_cleanup_count = clipboard_cleanup_count;
|
||||
result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, &test_data1, test_mime_types, SDL_arraysize(test_mime_types));
|
||||
SDLTest_AssertCheck(
|
||||
result == true,
|
||||
"Validate SDL_SetClipboardData(test_data1) result, expected true, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_cleanup_count == last_clipboard_cleanup_count,
|
||||
"Verify clipboard cleanup count unchanged, got %d",
|
||||
clipboard_cleanup_count - last_clipboard_cleanup_count);
|
||||
|
||||
expected_text = "TEST";
|
||||
text = SDL_GetClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
text && SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify clipboard text, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
SDL_free(text);
|
||||
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]);
|
||||
SDLTest_AssertCheck(
|
||||
boolResult,
|
||||
"Verify has test text data, expected true, got false");
|
||||
text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT], &size);
|
||||
SDLTest_AssertCheck(
|
||||
text != NULL,
|
||||
"Verify has test text data, expected valid result, got NULL");
|
||||
if (text) {
|
||||
SDLTest_AssertCheck(
|
||||
text[size] == '\0',
|
||||
"Verify test text data, expected null termination, got %c",
|
||||
text[size]);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify test text data, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
}
|
||||
SDLTest_AssertCheck(
|
||||
size == SDL_strlen(expected_text),
|
||||
"Verify test text size, expected %d, got %d",
|
||||
(int)SDL_strlen(expected_text), (int)size);
|
||||
SDL_free(text);
|
||||
|
||||
expected_text = "CUSTOM";
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]);
|
||||
SDLTest_AssertCheck(
|
||||
boolResult,
|
||||
"Verify has test text data, expected true, got false");
|
||||
text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT], &size);
|
||||
SDLTest_AssertCheck(
|
||||
text != NULL,
|
||||
"Verify has test text data, expected valid result, got NULL");
|
||||
if (text) {
|
||||
SDLTest_AssertCheck(
|
||||
text[size] == '\0',
|
||||
"Verify test text data, expected null termination, got %c",
|
||||
text[size]);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify test text data, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
}
|
||||
SDLTest_AssertCheck(
|
||||
size == SDL_strlen(expected_text),
|
||||
"Verify test text size, expected %d, got %d",
|
||||
(int)SDL_strlen(expected_text), (int)size);
|
||||
SDL_free(text);
|
||||
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_DATA]);
|
||||
SDLTest_AssertCheck(
|
||||
boolResult,
|
||||
"Verify has test text data, expected true, got false");
|
||||
data = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_DATA], &size);
|
||||
SDLTest_AssertCheck(
|
||||
data && SDL_memcmp(data, test_data1.data, test_data1.data_size) == 0,
|
||||
"Verify test data");
|
||||
SDLTest_AssertCheck(
|
||||
size == test_data1.data_size,
|
||||
"Verify test data size, expected %d, got %d",
|
||||
(int)test_data1.data_size, (int)size);
|
||||
SDL_free(data);
|
||||
|
||||
boolResult = SDL_HasClipboardData("test/invalid");
|
||||
SDLTest_AssertCheck(
|
||||
!boolResult,
|
||||
"Verify has test text data, expected false, got true");
|
||||
data = SDL_GetClipboardData("test/invalid", &size);
|
||||
SDLTest_AssertCheck(
|
||||
data == NULL,
|
||||
"Verify invalid data, expected NULL, got %p",
|
||||
data);
|
||||
SDLTest_AssertCheck(
|
||||
size == 0,
|
||||
"Verify invalid data size, expected 0, got %d",
|
||||
(int)size);
|
||||
SDL_free(data);
|
||||
|
||||
#if 0 /* There's no guarantee how or when the callback is called */
|
||||
SDLTest_AssertCheck(
|
||||
(clipboard_callback_count == last_clipboard_callback_count + 3) ||
|
||||
(clipboard_callback_count == last_clipboard_callback_count + 4),
|
||||
"Verify clipboard callback count incremented by 3 or 4, got %d",
|
||||
clipboard_callback_count - last_clipboard_callback_count);
|
||||
#endif
|
||||
|
||||
/* Test setting and getting clipboard data again */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
last_clipboard_callback_count = clipboard_callback_count;
|
||||
last_clipboard_cleanup_count = clipboard_cleanup_count;
|
||||
result = SDL_SetClipboardData(ClipboardDataCallback, ClipboardCleanupCallback, &test_data2, test_mime_types, SDL_arraysize(test_mime_types));
|
||||
SDLTest_AssertCheck(
|
||||
result == true,
|
||||
"Validate SDL_SetClipboardData(test_data2) result, expected true, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_cleanup_count == last_clipboard_cleanup_count + 1,
|
||||
"Verify clipboard cleanup count incremented by 1, got %d",
|
||||
clipboard_cleanup_count - last_clipboard_cleanup_count);
|
||||
|
||||
expected_text = "TEST";
|
||||
text = SDL_GetClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
text && SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify clipboard text, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
SDL_free(text);
|
||||
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]);
|
||||
SDLTest_AssertCheck(
|
||||
boolResult,
|
||||
"Verify has test text data, expected true, got false");
|
||||
text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT], &size);
|
||||
SDLTest_AssertCheck(
|
||||
text != NULL,
|
||||
"Verify has test text data, expected valid result, got NULL");
|
||||
if (text) {
|
||||
SDLTest_AssertCheck(
|
||||
text[size] == '\0',
|
||||
"Verify test text data, expected null termination, got %c",
|
||||
text[size]);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify test text data, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
}
|
||||
SDLTest_AssertCheck(
|
||||
size == SDL_strlen(expected_text),
|
||||
"Verify test text size, expected %d, got %d",
|
||||
(int)SDL_strlen(expected_text), (int)size);
|
||||
SDL_free(text);
|
||||
|
||||
expected_text = "CUSTOM";
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT]);
|
||||
SDLTest_AssertCheck(
|
||||
boolResult,
|
||||
"Verify has test text data, expected true, got false");
|
||||
text = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_CUSTOM_TEXT], &size);
|
||||
SDLTest_AssertCheck(
|
||||
text != NULL,
|
||||
"Verify has test text data, expected valid result, got NULL");
|
||||
if (text) {
|
||||
SDLTest_AssertCheck(
|
||||
text[size] == '\0',
|
||||
"Verify test text data, expected null termination, got %c",
|
||||
text[size]);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(text, expected_text) == 0,
|
||||
"Verify test text data, expected \"%s\", got \"%s\"",
|
||||
expected_text, text);
|
||||
}
|
||||
SDLTest_AssertCheck(
|
||||
size == SDL_strlen(expected_text),
|
||||
"Verify test text size, expected %d, got %d",
|
||||
(int)SDL_strlen(expected_text), (int)size);
|
||||
SDL_free(text);
|
||||
|
||||
data = SDL_GetClipboardData(test_mime_types[TEST_MIME_TYPE_DATA], &size);
|
||||
SDLTest_AssertCheck(
|
||||
data && SDL_memcmp(data, test_data2.data, test_data2.data_size) == 0,
|
||||
"Verify test data");
|
||||
SDLTest_AssertCheck(
|
||||
size == test_data2.data_size,
|
||||
"Verify test data size, expected %d, got %d",
|
||||
(int)test_data2.data_size, (int)size);
|
||||
SDL_free(data);
|
||||
|
||||
data = SDL_GetClipboardData("test/invalid", &size);
|
||||
SDLTest_AssertCheck(
|
||||
data == NULL,
|
||||
"Verify invalid data, expected NULL, got %p",
|
||||
data);
|
||||
SDLTest_AssertCheck(
|
||||
size == 0,
|
||||
"Verify invalid data size, expected 0, got %d",
|
||||
(int)size);
|
||||
SDL_free(data);
|
||||
|
||||
#if 0 /* There's no guarantee how or when the callback is called */
|
||||
SDLTest_AssertCheck(
|
||||
(clipboard_callback_count == last_clipboard_callback_count + 3) ||
|
||||
(clipboard_callback_count == last_clipboard_callback_count + 4),
|
||||
"Verify clipboard callback count incremented by 3 or 4, got %d",
|
||||
clipboard_callback_count - last_clipboard_callback_count);
|
||||
#endif
|
||||
|
||||
/* Test clearing clipboard data when has data */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
last_clipboard_cleanup_count = clipboard_cleanup_count;
|
||||
result = SDL_ClearClipboardData();
|
||||
SDLTest_AssertCheck(
|
||||
result == true,
|
||||
"Validate SDL_ClearClipboardData result, expected true, got %i",
|
||||
result);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_cleanup_count == last_clipboard_cleanup_count + 1,
|
||||
"Verify clipboard cleanup count incremented by 1, got %d",
|
||||
clipboard_cleanup_count - last_clipboard_cleanup_count);
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_TEXT]);
|
||||
SDLTest_AssertCheck(
|
||||
!boolResult,
|
||||
"Verify has test text data, expected false, got true");
|
||||
boolResult = SDL_HasClipboardData(test_mime_types[TEST_MIME_TYPE_DATA]);
|
||||
SDLTest_AssertCheck(
|
||||
!boolResult,
|
||||
"Verify has test text data, expected false, got true");
|
||||
boolResult = SDL_HasClipboardData("test/invalid");
|
||||
SDLTest_AssertCheck(
|
||||
!boolResult,
|
||||
"Verify has test text data, expected false, got true");
|
||||
|
||||
SDL_RemoveEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* End-to-end test of SDL_xyzClipboardText functions
|
||||
* \sa SDL_HasClipboardText
|
||||
* \sa SDL_GetClipboardText
|
||||
* \sa SDL_SetClipboardText
|
||||
*/
|
||||
static int SDLCALL clipboard_testClipboardTextFunctions(void *arg)
|
||||
{
|
||||
char *textRef = SDLTest_RandomAsciiString();
|
||||
char *text = SDL_strdup(textRef);
|
||||
bool boolResult;
|
||||
int intResult;
|
||||
char *charResult;
|
||||
int last_clipboard_update_count;
|
||||
|
||||
SDL_AddEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
/* Empty clipboard text */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
intResult = SDL_SetClipboardText(NULL);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetClipboardText(NULL), expected true, got %i",
|
||||
intResult);
|
||||
charResult = SDL_GetClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
charResult && SDL_strcmp(charResult, "") == 0,
|
||||
"Verify SDL_GetClipboardText returned \"\", got %s",
|
||||
charResult);
|
||||
SDL_free(charResult);
|
||||
boolResult = SDL_HasClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
boolResult == false,
|
||||
"Verify SDL_HasClipboardText returned false, got %s",
|
||||
(boolResult) ? "true" : "false");
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
|
||||
/* Set clipboard text */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
intResult = SDL_SetClipboardText(text);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetClipboardText(%s), expected true, got %i", text,
|
||||
intResult);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(textRef, text) == 0,
|
||||
"Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
|
||||
textRef, text);
|
||||
boolResult = SDL_HasClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
boolResult == true,
|
||||
"Verify SDL_HasClipboardText returned true, got %s",
|
||||
(boolResult) ? "true" : "false");
|
||||
charResult = SDL_GetClipboardText();
|
||||
SDLTest_AssertCheck(
|
||||
charResult && SDL_strcmp(textRef, charResult) == 0,
|
||||
"Verify SDL_GetClipboardText returned correct string, expected '%s', got '%s'",
|
||||
textRef, charResult);
|
||||
SDL_free(charResult);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
/* Reset clipboard text */
|
||||
intResult = SDL_SetClipboardText(NULL);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetClipboardText(NULL), expected true, got %i",
|
||||
intResult);
|
||||
|
||||
/* Cleanup */
|
||||
SDL_free(textRef);
|
||||
SDL_free(text);
|
||||
|
||||
SDL_RemoveEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* End-to-end test of SDL_xyzPrimarySelectionText functions
|
||||
* \sa SDL_HasPrimarySelectionText
|
||||
* \sa SDL_GetPrimarySelectionText
|
||||
* \sa SDL_SetPrimarySelectionText
|
||||
*/
|
||||
static int SDLCALL clipboard_testPrimarySelectionTextFunctions(void *arg)
|
||||
{
|
||||
char *textRef = SDLTest_RandomAsciiString();
|
||||
char *text = SDL_strdup(textRef);
|
||||
bool boolResult;
|
||||
int intResult;
|
||||
char *charResult;
|
||||
int last_clipboard_update_count;
|
||||
|
||||
SDL_AddEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
/* Empty primary selection */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
intResult = SDL_SetPrimarySelectionText(NULL);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetPrimarySelectionText(NULL), expected true, got %i",
|
||||
intResult);
|
||||
charResult = SDL_GetPrimarySelectionText();
|
||||
SDLTest_AssertCheck(
|
||||
charResult && SDL_strcmp(charResult, "") == 0,
|
||||
"Verify SDL_GetPrimarySelectionText returned \"\", got %s",
|
||||
charResult);
|
||||
SDL_free(charResult);
|
||||
boolResult = SDL_HasPrimarySelectionText();
|
||||
SDLTest_AssertCheck(
|
||||
boolResult == false,
|
||||
"Verify SDL_HasPrimarySelectionText returned false, got %s",
|
||||
(boolResult) ? "true" : "false");
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
/* Set primary selection */
|
||||
last_clipboard_update_count = clipboard_update_count;
|
||||
intResult = SDL_SetPrimarySelectionText(text);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetPrimarySelectionText(%s), expected true, got %i", text,
|
||||
intResult);
|
||||
SDLTest_AssertCheck(
|
||||
SDL_strcmp(textRef, text) == 0,
|
||||
"Verify SDL_SetPrimarySelectionText did not modify input string, expected '%s', got '%s'",
|
||||
textRef, text);
|
||||
boolResult = SDL_HasPrimarySelectionText();
|
||||
SDLTest_AssertCheck(
|
||||
boolResult == true,
|
||||
"Verify SDL_HasPrimarySelectionText returned true, got %s",
|
||||
(boolResult) ? "true" : "false");
|
||||
charResult = SDL_GetPrimarySelectionText();
|
||||
SDLTest_AssertCheck(
|
||||
charResult && SDL_strcmp(textRef, charResult) == 0,
|
||||
"Verify SDL_GetPrimarySelectionText returned correct string, expected '%s', got '%s'",
|
||||
textRef, charResult);
|
||||
SDL_free(charResult);
|
||||
SDLTest_AssertCheck(
|
||||
clipboard_update_count == last_clipboard_update_count + 1,
|
||||
"Verify clipboard update count incremented by 1, got %d",
|
||||
clipboard_update_count - last_clipboard_update_count);
|
||||
|
||||
/* Reset primary selection */
|
||||
intResult = SDL_SetPrimarySelectionText(NULL);
|
||||
SDLTest_AssertCheck(
|
||||
intResult == true,
|
||||
"Verify result from SDL_SetPrimarySelectionText(NULL), expected true, got %i",
|
||||
intResult);
|
||||
|
||||
/* Cleanup */
|
||||
SDL_free(textRef);
|
||||
SDL_free(text);
|
||||
|
||||
SDL_RemoveEventWatch(ClipboardEventWatch, NULL);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/* ================= Test References ================== */
|
||||
|
||||
static const SDLTest_TestCaseReference clipboardTest1 = {
|
||||
clipboard_testClipboardDataFunctions, "clipboard_testClipboardDataFunctions", "End-to-end test of SDL_xyzClipboardData functions", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference clipboardTest2 = {
|
||||
clipboard_testClipboardTextFunctions, "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference clipboardTest3 = {
|
||||
clipboard_testPrimarySelectionTextFunctions, "clipboard_testPrimarySelectionTextFunctions", "End-to-end test of SDL_xyzPrimarySelectionText functions", TEST_ENABLED
|
||||
};
|
||||
|
||||
/* Sequence of Clipboard test cases */
|
||||
static const SDLTest_TestCaseReference *clipboardTests[] = {
|
||||
&clipboardTest1, &clipboardTest2, &clipboardTest3, NULL
|
||||
};
|
||||
|
||||
/* Clipboard test suite (global) */
|
||||
SDLTest_TestSuiteReference clipboardTestSuite = {
|
||||
"Clipboard",
|
||||
NULL,
|
||||
clipboardTests,
|
||||
NULL
|
||||
};
|
||||
341
3rdparty/sdl/SDL/test/testautomation_events.c
vendored
Normal file
@@ -0,0 +1,341 @@
|
||||
/**
|
||||
* Events test suite
|
||||
*/
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testautomation_suites.h"
|
||||
|
||||
/* ================= Test Case Implementation ================== */
|
||||
|
||||
/* Test case functions */
|
||||
|
||||
/* Flag indicating if the userdata should be checked */
|
||||
static int g_userdataCheck = 0;
|
||||
|
||||
/* Userdata value to check */
|
||||
static int g_userdataValue = 0;
|
||||
|
||||
/* Flag indicating that the filter was called */
|
||||
static int g_eventFilterCalled = 0;
|
||||
|
||||
/* Userdata values for event */
|
||||
static int g_userdataValue1 = 1;
|
||||
static int g_userdataValue2 = 2;
|
||||
|
||||
#define MAX_ITERATIONS 100
|
||||
|
||||
/* Event filter that sets some flags and optionally checks userdata */
|
||||
static bool SDLCALL events_sampleNullEventFilter(void *userdata, SDL_Event *event)
|
||||
{
|
||||
g_eventFilterCalled = 1;
|
||||
|
||||
if (g_userdataCheck != 0) {
|
||||
SDLTest_AssertCheck(userdata != NULL, "Check userdata pointer, expected: non-NULL, got: %s", (userdata != NULL) ? "non-NULL" : "NULL");
|
||||
if (userdata != NULL) {
|
||||
SDLTest_AssertCheck(*(int *)userdata == g_userdataValue, "Check userdata value, expected: %i, got: %i", g_userdataValue, *(int *)userdata);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test pumping and peeking events.
|
||||
*
|
||||
* \sa SDL_PumpEvents
|
||||
* \sa SDL_PollEvent
|
||||
*/
|
||||
static int SDLCALL events_pushPumpAndPollUserevent(void *arg)
|
||||
{
|
||||
SDL_Event event_in;
|
||||
SDL_Event event_out;
|
||||
int result;
|
||||
int i;
|
||||
Sint32 ref_code = SDLTest_RandomSint32();
|
||||
SDL_Window *event_window;
|
||||
|
||||
/* Flush all events */
|
||||
SDL_FlushEvents(SDL_EVENT_FIRST, SDL_EVENT_LAST);
|
||||
SDLTest_AssertCheck(!SDL_HasEvents(SDL_EVENT_USER, SDL_EVENT_USER), "Check SDL_HasEvents returns false");
|
||||
|
||||
/* Create user event */
|
||||
event_in.type = SDL_EVENT_USER;
|
||||
event_in.user.windowID = 0;
|
||||
event_in.common.timestamp = 0;
|
||||
event_in.user.code = ref_code;
|
||||
event_in.user.data1 = (void *)&g_userdataValue1;
|
||||
event_in.user.data2 = (void *)&g_userdataValue2;
|
||||
|
||||
/* Push a user event onto the queue and force queue update */
|
||||
SDL_PushEvent(&event_in);
|
||||
SDLTest_AssertPass("Call to SDL_PushEvent()");
|
||||
SDL_PumpEvents();
|
||||
SDLTest_AssertPass("Call to SDL_PumpEvents()");
|
||||
|
||||
SDLTest_AssertCheck(SDL_HasEvents(SDL_EVENT_USER, SDL_EVENT_USER), "Check SDL_HasEvents returns true");
|
||||
|
||||
/* Poll until we get a user event. */
|
||||
for (i = 0; i < MAX_ITERATIONS; i++) {
|
||||
result = SDL_PollEvent(&event_out);
|
||||
SDLTest_AssertPass("Call to SDL_PollEvent()");
|
||||
SDLTest_AssertCheck(result == 1, "Check result from SDL_PollEvent, expected: 1, got: %d", result);
|
||||
if (!result) {
|
||||
break;
|
||||
}
|
||||
if (event_out.type == SDL_EVENT_USER) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
SDLTest_AssertCheck(i < MAX_ITERATIONS, "Check the user event is seen in less then %d polls, got %d poll", MAX_ITERATIONS, i + 1);
|
||||
|
||||
SDLTest_AssertCheck(SDL_EVENT_USER == event_out.type, "Check event type is SDL_EVENT_USER, expected: 0x%x, got: 0x%" SDL_PRIx32, SDL_EVENT_USER, event_out.type);
|
||||
SDLTest_AssertCheck(ref_code == event_out.user.code, "Check SDL_Event.user.code, expected: 0x%" SDL_PRIx32 ", got: 0x%" SDL_PRIx32 , ref_code, event_out.user.code);
|
||||
SDLTest_AssertCheck(0 == event_out.user.windowID, "Check SDL_Event.user.windowID, expected: NULL , got: %" SDL_PRIu32, event_out.user.windowID);
|
||||
SDLTest_AssertCheck((void *)&g_userdataValue1 == event_out.user.data1, "Check SDL_Event.user.data1, expected: %p, got: %p", &g_userdataValue1, event_out.user.data1);
|
||||
SDLTest_AssertCheck((void *)&g_userdataValue2 == event_out.user.data2, "Check SDL_Event.user.data2, expected: %p, got: %p", &g_userdataValue2, event_out.user.data2);
|
||||
event_window = SDL_GetWindowFromEvent(&event_out);
|
||||
SDLTest_AssertCheck(NULL == SDL_GetWindowFromEvent(&event_out), "Check SDL_GetWindowFromEvent returns the window id from a user event, expected: NULL, got: %p", event_window);
|
||||
|
||||
/* Need to finish getting all events and sentinel, otherwise other tests that rely on event are in bad state */
|
||||
SDL_FlushEvents(SDL_EVENT_FIRST, SDL_EVENT_LAST);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds and deletes an event watch function with NULL userdata
|
||||
*
|
||||
* \sa SDL_AddEventWatch
|
||||
* \sa SDL_RemoveEventWatch
|
||||
*
|
||||
*/
|
||||
static int SDLCALL events_addDelEventWatch(void *arg)
|
||||
{
|
||||
SDL_Event event;
|
||||
|
||||
/* Create user event */
|
||||
event.type = SDL_EVENT_USER;
|
||||
event.common.timestamp = 0;
|
||||
event.user.code = SDLTest_RandomSint32();
|
||||
event.user.data1 = (void *)&g_userdataValue1;
|
||||
event.user.data2 = (void *)&g_userdataValue2;
|
||||
|
||||
/* Disable userdata check */
|
||||
g_userdataCheck = 0;
|
||||
|
||||
/* Reset event filter call tracker */
|
||||
g_eventFilterCalled = 0;
|
||||
|
||||
/* Add watch */
|
||||
SDL_AddEventWatch(events_sampleNullEventFilter, NULL);
|
||||
SDLTest_AssertPass("Call to SDL_AddEventWatch()");
|
||||
|
||||
/* Push a user event onto the queue and force queue update */
|
||||
SDL_PushEvent(&event);
|
||||
SDLTest_AssertPass("Call to SDL_PushEvent()");
|
||||
SDL_PumpEvents();
|
||||
SDLTest_AssertPass("Call to SDL_PumpEvents()");
|
||||
SDLTest_AssertCheck(g_eventFilterCalled == 1, "Check that event filter was called");
|
||||
|
||||
/* Delete watch */
|
||||
SDL_RemoveEventWatch(events_sampleNullEventFilter, NULL);
|
||||
SDLTest_AssertPass("Call to SDL_RemoveEventWatch()");
|
||||
|
||||
/* Push a user event onto the queue and force queue update */
|
||||
g_eventFilterCalled = 0;
|
||||
SDL_PushEvent(&event);
|
||||
SDLTest_AssertPass("Call to SDL_PushEvent()");
|
||||
SDL_PumpEvents();
|
||||
SDLTest_AssertPass("Call to SDL_PumpEvents()");
|
||||
SDLTest_AssertCheck(g_eventFilterCalled == 0, "Check that event filter was NOT called");
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds and deletes an event watch function with userdata
|
||||
*
|
||||
* \sa SDL_AddEventWatch
|
||||
* \sa SDL_RemoveEventWatch
|
||||
*
|
||||
*/
|
||||
static int SDLCALL events_addDelEventWatchWithUserdata(void *arg)
|
||||
{
|
||||
SDL_Event event;
|
||||
|
||||
/* Create user event */
|
||||
event.type = SDL_EVENT_USER;
|
||||
event.common.timestamp = 0;
|
||||
event.user.code = SDLTest_RandomSint32();
|
||||
event.user.data1 = (void *)&g_userdataValue1;
|
||||
event.user.data2 = (void *)&g_userdataValue2;
|
||||
|
||||
/* Enable userdata check and set a value to check */
|
||||
g_userdataCheck = 1;
|
||||
g_userdataValue = SDLTest_RandomIntegerInRange(-1024, 1024);
|
||||
|
||||
/* Reset event filter call tracker */
|
||||
g_eventFilterCalled = 0;
|
||||
|
||||
/* Add watch */
|
||||
SDL_AddEventWatch(events_sampleNullEventFilter, (void *)&g_userdataValue);
|
||||
SDLTest_AssertPass("Call to SDL_AddEventWatch()");
|
||||
|
||||
/* Push a user event onto the queue and force queue update */
|
||||
SDL_PushEvent(&event);
|
||||
SDLTest_AssertPass("Call to SDL_PushEvent()");
|
||||
SDL_PumpEvents();
|
||||
SDLTest_AssertPass("Call to SDL_PumpEvents()");
|
||||
SDLTest_AssertCheck(g_eventFilterCalled == 1, "Check that event filter was called");
|
||||
|
||||
/* Delete watch */
|
||||
SDL_RemoveEventWatch(events_sampleNullEventFilter, (void *)&g_userdataValue);
|
||||
SDLTest_AssertPass("Call to SDL_RemoveEventWatch()");
|
||||
|
||||
/* Push a user event onto the queue and force queue update */
|
||||
g_eventFilterCalled = 0;
|
||||
SDL_PushEvent(&event);
|
||||
SDLTest_AssertPass("Call to SDL_PushEvent()");
|
||||
SDL_PumpEvents();
|
||||
SDLTest_AssertPass("Call to SDL_PumpEvents()");
|
||||
SDLTest_AssertCheck(g_eventFilterCalled == 0, "Check that event filter was NOT called");
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs callbacks on the main thread.
|
||||
*
|
||||
* \sa SDL_IsMainThread
|
||||
* \sa SDL_RunOnMainThread
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct IncrementCounterData_t
|
||||
{
|
||||
Uint32 delay;
|
||||
int counter;
|
||||
} IncrementCounterData_t;
|
||||
|
||||
static void SDLCALL IncrementCounter(void *userdata)
|
||||
{
|
||||
IncrementCounterData_t *data = (IncrementCounterData_t *)userdata;
|
||||
++data->counter;
|
||||
}
|
||||
|
||||
#ifndef SDL_PLATFORM_EMSCRIPTEN /* Emscripten doesn't have threads */
|
||||
static int SDLCALL IncrementCounterThread(void *userdata)
|
||||
{
|
||||
IncrementCounterData_t *data = (IncrementCounterData_t *)userdata;
|
||||
SDL_Event event;
|
||||
|
||||
SDL_assert(!SDL_IsMainThread());
|
||||
|
||||
if (data->delay > 0) {
|
||||
SDL_Delay(data->delay);
|
||||
}
|
||||
|
||||
if (!SDL_RunOnMainThread(IncrementCounter, userdata, false)) {
|
||||
SDLTest_LogError("Couldn't run IncrementCounter asynchronously on main thread: %s", SDL_GetError());
|
||||
}
|
||||
if (!SDL_RunOnMainThread(IncrementCounter, userdata, true)) {
|
||||
SDLTest_LogError("Couldn't run IncrementCounter synchronously on main thread: %s", SDL_GetError());
|
||||
}
|
||||
|
||||
/* Send an event to unblock the main thread, which is waiting in SDL_WaitEvent() */
|
||||
event.type = SDL_EVENT_USER;
|
||||
SDL_PushEvent(&event);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* !SDL_PLATFORM_EMSCRIPTEN */
|
||||
|
||||
static int SDLCALL events_mainThreadCallbacks(void *arg)
|
||||
{
|
||||
IncrementCounterData_t data = { 0, 0 };
|
||||
|
||||
/* Make sure we're on the main thread */
|
||||
SDLTest_AssertCheck(SDL_IsMainThread(), "Verify we're on the main thread");
|
||||
|
||||
SDL_RunOnMainThread(IncrementCounter, &data, true);
|
||||
SDLTest_AssertCheck(data.counter == 1, "Incremented counter on main thread, expected 1, got %d", data.counter);
|
||||
|
||||
#ifndef SDL_PLATFORM_EMSCRIPTEN /* Emscripten doesn't have threads */
|
||||
{
|
||||
SDL_Window *window;
|
||||
SDL_Thread *thread;
|
||||
SDL_Event event;
|
||||
|
||||
window = SDL_CreateWindow("test", 0, 0, SDL_WINDOW_HIDDEN);
|
||||
SDLTest_AssertCheck(window != NULL, "Create window, expected non-NULL, got %p", window);
|
||||
|
||||
/* Flush any pending events */
|
||||
SDL_PumpEvents();
|
||||
SDL_FlushEvents(SDL_EVENT_FIRST, SDL_EVENT_LAST);
|
||||
|
||||
/* Increment the counter on a thread, waiting for both calls to be queued */
|
||||
thread = SDL_CreateThread(IncrementCounterThread, NULL, &data);
|
||||
SDLTest_AssertCheck(thread != NULL, "Create counter thread");
|
||||
|
||||
/* Wait for both increment calls to be queued up */
|
||||
SDL_Delay(100);
|
||||
|
||||
/* Run the main callbacks */
|
||||
SDL_WaitEvent(&event);
|
||||
SDLTest_AssertCheck(event.type == SDL_EVENT_USER, "Expected user event (0x%.4x), got 0x%.4x", SDL_EVENT_USER, (int)event.type);
|
||||
SDL_WaitThread(thread, NULL);
|
||||
SDLTest_AssertCheck(data.counter == 3, "Incremented counter on main thread, expected 3, got %d", data.counter);
|
||||
|
||||
/* Try again, but this time delay the calls until we've started waiting for events */
|
||||
data.delay = 100;
|
||||
thread = SDL_CreateThread(IncrementCounterThread, NULL, &data);
|
||||
SDLTest_AssertCheck(thread != NULL, "Create counter thread");
|
||||
|
||||
/* Run the main callbacks */
|
||||
SDL_WaitEvent(&event);
|
||||
SDLTest_AssertCheck(event.type == SDL_EVENT_USER, "Expected user event (0x%.4x), got 0x%.4x", SDL_EVENT_USER, (int)event.type);
|
||||
SDL_WaitThread(thread, NULL);
|
||||
SDLTest_AssertCheck(data.counter == 5, "Incremented counter on main thread, expected 5, got %d", data.counter);
|
||||
|
||||
SDL_DestroyWindow(window);
|
||||
}
|
||||
#endif /* !SDL_PLATFORM_EMSCRIPTEN */
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/* ================= Test References ================== */
|
||||
|
||||
/* Events test cases */
|
||||
static const SDLTest_TestCaseReference eventsTest_pushPumpAndPollUserevent = {
|
||||
events_pushPumpAndPollUserevent, "events_pushPumpAndPollUserevent", "Pushes, pumps and polls a user event", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference eventsTest_addDelEventWatch = {
|
||||
events_addDelEventWatch, "events_addDelEventWatch", "Adds and deletes an event watch function with NULL userdata", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference eventsTest_addDelEventWatchWithUserdata = {
|
||||
events_addDelEventWatchWithUserdata, "events_addDelEventWatchWithUserdata", "Adds and deletes an event watch function with userdata", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference eventsTest_mainThreadCallbacks = {
|
||||
events_mainThreadCallbacks, "events_mainThreadCallbacks", "Run callbacks on the main thread", TEST_ENABLED
|
||||
};
|
||||
|
||||
/* Sequence of Events test cases */
|
||||
static const SDLTest_TestCaseReference *eventsTests[] = {
|
||||
&eventsTest_pushPumpAndPollUserevent,
|
||||
&eventsTest_addDelEventWatch,
|
||||
&eventsTest_addDelEventWatchWithUserdata,
|
||||
&eventsTest_mainThreadCallbacks,
|
||||
NULL
|
||||
};
|
||||
|
||||
/* Events test suite (global) */
|
||||
SDLTest_TestSuiteReference eventsTestSuite = {
|
||||
"Events",
|
||||
NULL,
|
||||
eventsTests,
|
||||
NULL
|
||||
};
|
||||
146
3rdparty/sdl/SDL/test/testautomation_guid.c
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
/**
|
||||
* GUID test suite
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testautomation_suites.h"
|
||||
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
/* ================= Test Case Implementation ================== */
|
||||
|
||||
/* Helper functions */
|
||||
|
||||
#define NUM_TEST_GUIDS 5
|
||||
|
||||
#ifndef UINT64_C
|
||||
#ifdef _MSC_VER
|
||||
#define UINT64_C(x) x##ui64
|
||||
#elif defined(_LP64)
|
||||
#define UINT64_C(x) x##UL
|
||||
#else
|
||||
#define UINT64_C(x) x##ULL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static struct
|
||||
{
|
||||
char *str;
|
||||
Uint64 upper, lower;
|
||||
} test_guids[NUM_TEST_GUIDS] = {
|
||||
{ "0000000000000000"
|
||||
"ffffffffffffffff",
|
||||
UINT64_C(0x0000000000000000), UINT64_C(0xffffffffffffffff) },
|
||||
{ "0011223344556677"
|
||||
"8091a2b3c4d5e6f0",
|
||||
UINT64_C(0x0011223344556677), UINT64_C(0x8091a2b3c4d5e6f0) },
|
||||
{ "a011223344556677"
|
||||
"8091a2b3c4d5e6f0",
|
||||
UINT64_C(0xa011223344556677), UINT64_C(0x8091a2b3c4d5e6f0) },
|
||||
{ "a011223344556677"
|
||||
"8091a2b3c4d5e6f1",
|
||||
UINT64_C(0xa011223344556677), UINT64_C(0x8091a2b3c4d5e6f1) },
|
||||
{ "a011223344556677"
|
||||
"8191a2b3c4d5e6f0",
|
||||
UINT64_C(0xa011223344556677), UINT64_C(0x8191a2b3c4d5e6f0) },
|
||||
};
|
||||
|
||||
static void
|
||||
upper_lower_to_bytestring(Uint8 *out, Uint64 upper, Uint64 lower)
|
||||
{
|
||||
Uint64 values[2];
|
||||
int i, k;
|
||||
|
||||
values[0] = upper;
|
||||
values[1] = lower;
|
||||
|
||||
for (i = 0; i < 2; ++i) {
|
||||
Uint64 v = values[i];
|
||||
|
||||
for (k = 0; k < 8; ++k) {
|
||||
*out++ = v >> 56;
|
||||
v <<= 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Test case functions */
|
||||
|
||||
/**
|
||||
* Check String-to-GUID conversion
|
||||
*
|
||||
* \sa SDL_StringToGUID
|
||||
*/
|
||||
static int SDLCALL
|
||||
TestStringToGUID(void *arg)
|
||||
{
|
||||
int i;
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_StringToGUID");
|
||||
for (i = 0; i < NUM_TEST_GUIDS; ++i) {
|
||||
Uint8 expected[16];
|
||||
SDL_GUID guid;
|
||||
|
||||
upper_lower_to_bytestring(expected,
|
||||
test_guids[i].upper, test_guids[i].lower);
|
||||
|
||||
guid = SDL_StringToGUID(test_guids[i].str);
|
||||
SDLTest_AssertCheck(SDL_memcmp(expected, guid.data, 16) == 0, "GUID from string, GUID was: '%s'", test_guids[i].str);
|
||||
}
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check GUID-to-String conversion
|
||||
*
|
||||
* \sa SDL_GUIDToString
|
||||
*/
|
||||
static int SDLCALL
|
||||
TestGUIDToString(void *arg)
|
||||
{
|
||||
int i;
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_GUIDToString");
|
||||
for (i = 0; i < NUM_TEST_GUIDS; ++i) {
|
||||
char guid_str[33];
|
||||
SDL_GUID guid;
|
||||
|
||||
upper_lower_to_bytestring(guid.data,
|
||||
test_guids[i].upper, test_guids[i].lower);
|
||||
|
||||
SDL_GUIDToString(guid, guid_str, sizeof(guid_str));
|
||||
SDLTest_AssertCheck(SDL_strcmp(guid_str, test_guids[i].str) == 0, "Checking whether strings match, expected %s, got %s\n", test_guids[i].str, guid_str);
|
||||
}
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/* ================= Test References ================== */
|
||||
|
||||
/* GUID routine test cases */
|
||||
static const SDLTest_TestCaseReference guidTest1 = {
|
||||
TestStringToGUID, "TestStringToGUID", "Call to SDL_StringToGUID", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference guidTest2 = {
|
||||
TestGUIDToString, "TestGUIDToString", "Call to SDL_GUIDToString", TEST_ENABLED
|
||||
};
|
||||
|
||||
/* Sequence of GUID routine test cases */
|
||||
static const SDLTest_TestCaseReference *guidTests[] = {
|
||||
&guidTest1,
|
||||
&guidTest2,
|
||||
NULL
|
||||
};
|
||||
|
||||
/* GUID routine test suite (global) */
|
||||
SDLTest_TestSuiteReference guidTestSuite = {
|
||||
"GUID",
|
||||
NULL,
|
||||
guidTests,
|
||||
NULL
|
||||
};
|
||||
248
3rdparty/sdl/SDL/test/testautomation_hints.c
vendored
Normal file
@@ -0,0 +1,248 @@
|
||||
/**
|
||||
* Hints test suite
|
||||
*/
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_test.h>
|
||||
#include "testautomation_suites.h"
|
||||
|
||||
static const char *HintsEnum[] = {
|
||||
SDL_HINT_FRAMEBUFFER_ACCELERATION,
|
||||
SDL_HINT_GAMECONTROLLERCONFIG,
|
||||
SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS,
|
||||
SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK,
|
||||
SDL_HINT_ORIENTATIONS,
|
||||
SDL_HINT_RENDER_DIRECT3D_THREADSAFE,
|
||||
SDL_HINT_RENDER_VSYNC,
|
||||
SDL_HINT_TIMER_RESOLUTION,
|
||||
SDL_HINT_VIDEO_ALLOW_SCREENSAVER,
|
||||
SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES,
|
||||
SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS,
|
||||
SDL_HINT_VIDEO_WIN_D3DCOMPILER,
|
||||
SDL_HINT_VIDEO_X11_XRANDR,
|
||||
SDL_HINT_XINPUT_ENABLED,
|
||||
};
|
||||
static const char *HintsVerbose[] = {
|
||||
"SDL_FRAMEBUFFER_ACCELERATION",
|
||||
"SDL_GAMECONTROLLERCONFIG",
|
||||
"SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS",
|
||||
"SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK",
|
||||
"SDL_ORIENTATIONS",
|
||||
"SDL_RENDER_DIRECT3D_THREADSAFE",
|
||||
"SDL_RENDER_VSYNC",
|
||||
"SDL_TIMER_RESOLUTION",
|
||||
"SDL_VIDEO_ALLOW_SCREENSAVER",
|
||||
"SDL_VIDEO_MAC_FULLSCREEN_SPACES",
|
||||
"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS",
|
||||
"SDL_VIDEO_WIN_D3DCOMPILER",
|
||||
"SDL_VIDEO_X11_XRANDR",
|
||||
"SDL_XINPUT_ENABLED"
|
||||
};
|
||||
|
||||
SDL_COMPILE_TIME_ASSERT(HintsEnum, SDL_arraysize(HintsEnum) == SDL_arraysize(HintsVerbose));
|
||||
|
||||
static const int numHintsEnum = SDL_arraysize(HintsEnum);
|
||||
|
||||
/* Test case functions */
|
||||
|
||||
/**
|
||||
* Call to SDL_GetHint
|
||||
*/
|
||||
static int SDLCALL hints_getHint(void *arg)
|
||||
{
|
||||
const char *result1;
|
||||
const char *result2;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < numHintsEnum; i++) {
|
||||
result1 = SDL_GetHint(HintsEnum[i]);
|
||||
SDLTest_AssertPass("Call to SDL_GetHint(%s) - using define definition", (char *)HintsEnum[i]);
|
||||
result2 = SDL_GetHint(HintsVerbose[i]);
|
||||
SDLTest_AssertPass("Call to SDL_GetHint(%s) - using string definition", (char *)HintsVerbose[i]);
|
||||
SDLTest_AssertCheck(
|
||||
(result1 == NULL && result2 == NULL) || (SDL_strcmp(result1, result2) == 0),
|
||||
"Verify returned values are equal; got: result1='%s' result2='%s",
|
||||
(result1 == NULL) ? "null" : result1,
|
||||
(result2 == NULL) ? "null" : result2);
|
||||
}
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
static void SDLCALL hints_testHintChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
|
||||
{
|
||||
*(char **)userdata = hint ? SDL_strdup(hint) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call to SDL_SetHint
|
||||
*/
|
||||
static int SDLCALL hints_setHint(void *arg)
|
||||
{
|
||||
const char *testHint = "SDL_AUTOMATED_TEST_HINT";
|
||||
const char *originalValue;
|
||||
char *value;
|
||||
const char *testValue;
|
||||
char *callbackValue;
|
||||
bool result;
|
||||
int i, j;
|
||||
|
||||
/* Create random values to set */
|
||||
value = SDLTest_RandomAsciiStringOfSize(10);
|
||||
|
||||
for (i = 0; i < numHintsEnum; i++) {
|
||||
/* Capture current value */
|
||||
originalValue = SDL_GetHint(HintsEnum[i]);
|
||||
SDLTest_AssertPass("Call to SDL_GetHint(%s)", HintsEnum[i]);
|
||||
|
||||
/* Copy the original value, since it will be freed when we set it again */
|
||||
originalValue = originalValue ? SDL_strdup(originalValue) : NULL;
|
||||
|
||||
/* Set value (twice) */
|
||||
for (j = 1; j <= 2; j++) {
|
||||
result = SDL_SetHint(HintsEnum[i], value);
|
||||
SDLTest_AssertPass("Call to SDL_SetHint(%s, %s) (iteration %i)", HintsEnum[i], value, j);
|
||||
SDLTest_AssertCheck(
|
||||
result == true || result == false,
|
||||
"Verify valid result was returned, got: %i",
|
||||
(int)result);
|
||||
testValue = SDL_GetHint(HintsEnum[i]);
|
||||
SDLTest_AssertPass("Call to SDL_GetHint(%s) - using string definition", HintsVerbose[i]);
|
||||
SDLTest_AssertCheck(
|
||||
(SDL_strcmp(value, testValue) == 0),
|
||||
"Verify returned value equals set value; got: testValue='%s' value='%s",
|
||||
(testValue == NULL) ? "null" : testValue,
|
||||
value);
|
||||
}
|
||||
|
||||
/* Reset original value */
|
||||
result = SDL_SetHint(HintsEnum[i], originalValue);
|
||||
SDLTest_AssertPass("Call to SDL_SetHint(%s, originalValue)", HintsEnum[i]);
|
||||
SDLTest_AssertCheck(
|
||||
result == true || result == false,
|
||||
"Verify valid result was returned, got: %i",
|
||||
(int)result);
|
||||
SDL_free((void *)originalValue);
|
||||
}
|
||||
|
||||
SDL_free(value);
|
||||
|
||||
/* Set default value in environment */
|
||||
SDL_SetEnvironmentVariable(SDL_GetEnvironment(), testHint, "original", 1);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_GetHint() after saving and restoring hint");
|
||||
originalValue = SDL_GetHint(testHint);
|
||||
value = (originalValue == NULL) ? NULL : SDL_strdup(originalValue);
|
||||
SDL_SetHint(testHint, "temp");
|
||||
SDL_SetHint(testHint, value);
|
||||
SDL_free(value);
|
||||
testValue = SDL_GetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
testValue && SDL_strcmp(testValue, "original") == 0,
|
||||
"testValue = %s, expected \"original\"",
|
||||
testValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_SetHintWithPriority(NULL, SDL_HINT_DEFAULT)");
|
||||
SDL_SetHintWithPriority(testHint, NULL, SDL_HINT_DEFAULT);
|
||||
testValue = SDL_GetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
testValue && SDL_strcmp(testValue, "original") == 0,
|
||||
"testValue = %s, expected \"original\"",
|
||||
testValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_SetHintWithPriority(\"temp\", SDL_HINT_OVERRIDE)");
|
||||
SDL_SetHintWithPriority(testHint, "temp", SDL_HINT_OVERRIDE);
|
||||
testValue = SDL_GetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
testValue && SDL_strcmp(testValue, "temp") == 0,
|
||||
"testValue = %s, expected \"temp\"",
|
||||
testValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_SetHintWithPriority(NULL, SDL_HINT_OVERRIDE)");
|
||||
SDL_SetHintWithPriority(testHint, NULL, SDL_HINT_OVERRIDE);
|
||||
testValue = SDL_GetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
testValue == NULL,
|
||||
"testValue = %s, expected NULL",
|
||||
testValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_ResetHint()");
|
||||
SDL_ResetHint(testHint);
|
||||
testValue = SDL_GetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
testValue && SDL_strcmp(testValue, "original") == 0,
|
||||
"testValue = %s, expected \"original\"",
|
||||
testValue);
|
||||
|
||||
/* Make sure callback functionality works past a reset */
|
||||
SDLTest_AssertPass("Call to SDL_AddHintCallback()");
|
||||
callbackValue = NULL;
|
||||
SDL_AddHintCallback(testHint, hints_testHintChanged, &callbackValue);
|
||||
SDLTest_AssertCheck(
|
||||
callbackValue && SDL_strcmp(callbackValue, "original") == 0,
|
||||
"callbackValue = %s, expected \"original\"",
|
||||
callbackValue);
|
||||
SDL_free(callbackValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_SetHintWithPriority(\"temp\", SDL_HINT_OVERRIDE), using callback");
|
||||
callbackValue = NULL;
|
||||
SDL_SetHintWithPriority(testHint, "temp", SDL_HINT_OVERRIDE);
|
||||
SDLTest_AssertCheck(
|
||||
callbackValue && SDL_strcmp(callbackValue, "temp") == 0,
|
||||
"callbackValue = %s, expected \"temp\"",
|
||||
callbackValue);
|
||||
SDL_free(callbackValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_ResetHint(), using callback");
|
||||
callbackValue = NULL;
|
||||
SDL_ResetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
callbackValue && SDL_strcmp(callbackValue, "original") == 0,
|
||||
"callbackValue = %s, expected \"original\"",
|
||||
callbackValue);
|
||||
SDL_free(callbackValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_SetHintWithPriority(\"temp\", SDL_HINT_OVERRIDE), using callback after reset");
|
||||
callbackValue = NULL;
|
||||
SDL_SetHintWithPriority(testHint, "temp", SDL_HINT_OVERRIDE);
|
||||
SDLTest_AssertCheck(
|
||||
callbackValue && SDL_strcmp(callbackValue, "temp") == 0,
|
||||
"callbackValue = %s, expected \"temp\"",
|
||||
callbackValue);
|
||||
SDL_free(callbackValue);
|
||||
|
||||
SDLTest_AssertPass("Call to SDL_ResetHint(), after clearing callback");
|
||||
callbackValue = NULL;
|
||||
SDL_RemoveHintCallback(testHint, hints_testHintChanged, &callbackValue);
|
||||
SDL_ResetHint(testHint);
|
||||
SDLTest_AssertCheck(
|
||||
callbackValue == NULL,
|
||||
"callbackValue = %s, expected \"(null)\"",
|
||||
callbackValue);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/* ================= Test References ================== */
|
||||
|
||||
/* Hints test cases */
|
||||
static const SDLTest_TestCaseReference hintsTest1 = {
|
||||
hints_getHint, "hints_getHint", "Call to SDL_GetHint", TEST_ENABLED
|
||||
};
|
||||
|
||||
static const SDLTest_TestCaseReference hintsTest2 = {
|
||||
hints_setHint, "hints_setHint", "Call to SDL_SetHint", TEST_ENABLED
|
||||
};
|
||||
|
||||
/* Sequence of Hints test cases */
|
||||
static const SDLTest_TestCaseReference *hintsTests[] = {
|
||||
&hintsTest1, &hintsTest2, NULL
|
||||
};
|
||||
|
||||
/* Hints test suite (global) */
|
||||
SDLTest_TestSuiteReference hintsTestSuite = {
|
||||
"Hints",
|
||||
NULL,
|
||||
hintsTests,
|
||||
NULL
|
||||
};
|
||||